/*!--------------------------------------------------------
 * Copyright (C) Microsoft Corporation. All rights reserved.
 *--------------------------------------------------------*/
/******************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol */

var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
    return extendStatics(d, b);
};

export function __extends(d, b) {
    if (typeof b !== "function" && b !== null)
        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

export var __assign = function() {
    __assign = Object.assign || function __assign(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
        }
        return t;
    }
    return __assign.apply(this, arguments);
}

export function __rest(s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
}

export function __decorate(decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
}

export function __param(paramIndex, decorator) {
    return function (target, key) { decorator(target, key, paramIndex); }
}

export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
    function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
    var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
    var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
    var _, done = false;
    for (var i = decorators.length - 1; i >= 0; i--) {
        var context = {};
        for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
        for (var p in contextIn.access) context.access[p] = contextIn.access[p];
        context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
        var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
        if (kind === "accessor") {
            if (result === void 0) continue;
            if (result === null || typeof result !== "object") throw new TypeError("Object expected");
            if (_ = accept(result.get)) descriptor.get = _;
            if (_ = accept(result.set)) descriptor.set = _;
            if (_ = accept(result.init)) initializers.unshift(_);
        }
        else if (_ = accept(result)) {
            if (kind === "field") initializers.unshift(_);
            else descriptor[key] = _;
        }
    }
    if (target) Object.defineProperty(target, contextIn.name, descriptor);
    done = true;
};

export function __runInitializers(thisArg, initializers, value) {
    var useValue = arguments.length > 2;
    for (var i = 0; i < initializers.length; i++) {
        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
    }
    return useValue ? value : void 0;
};

export function __propKey(x) {
    return typeof x === "symbol" ? x : "".concat(x);
};

export function __setFunctionName(f, name, prefix) {
    if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
    return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
};

export function __metadata(metadataKey, metadataValue) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

export function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}

export function __generator(thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
}

export var __createBinding = Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
        desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
});

export function __exportStar(m, o) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}

export function __values(o) {
    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
    if (m) return m.call(o);
    if (o && typeof o.length === "number") return {
        next: function () {
            if (o && i >= o.length) o = void 0;
            return { value: o && o[i++], done: !o };
        }
    };
    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}

export function __read(o, n) {
    var m = typeof Symbol === "function" && o[Symbol.iterator];
    if (!m) return o;
    var i = m.call(o), r, ar = [], e;
    try {
        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
    }
    catch (error) { e = { error: error }; }
    finally {
        try {
            if (r && !r.done && (m = i["return"])) m.call(i);
        }
        finally { if (e) throw e.error; }
    }
    return ar;
}

/** @deprecated */
export function __spread() {
    for (var ar = [], i = 0; i < arguments.length; i++)
        ar = ar.concat(__read(arguments[i]));
    return ar;
}

/** @deprecated */
export function __spreadArrays() {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
}

export function __spreadArray(to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
}

export function __await(v) {
    return this instanceof __await ? (this.v = v, this) : new __await(v);
}

export function __asyncGenerator(thisArg, _arguments, generator) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var g = generator.apply(thisArg, _arguments || []), i, q = [];
    return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
    function fulfill(value) { resume("next", value); }
    function reject(value) { resume("throw", value); }
    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}

export function __asyncDelegator(o) {
    var i, p;
    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}

export function __asyncValues(o) {
    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
    var m = o[Symbol.asyncIterator], i;
    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}

export function __makeTemplateObject(cooked, raw) {
    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
    return cooked;
};

var __setModuleDefault = Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
};

export function __importStar(mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
}

export function __importDefault(mod) {
    return (mod && mod.__esModule) ? mod : { default: mod };
}

export function __classPrivateFieldGet(receiver, state, kind, f) {
    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}

export function __classPrivateFieldSet(receiver, state, value, kind, f) {
    if (kind === "m") throw new TypeError("Private method is not writable");
    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}

export function __classPrivateFieldIn(state, receiver) {
    if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
    return typeof state === "function" ? receiver === state : state.has(receiver);
}

export function __addDisposableResource(env, value, async) {
    if (value !== null && value !== void 0) {
        if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
        var dispose, inner;
        if (async) {
            if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
            dispose = value[Symbol.asyncDispose];
        }
        if (dispose === void 0) {
            if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
            dispose = value[Symbol.dispose];
            if (async) inner = dispose;
        }
        if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
        env.stack.push({ value: value, dispose: dispose, async: async });
    }
    else if (async) {
        env.stack.push({ async: true });
    }
    return value;

}

var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
    var e = new Error(message);
    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};

export function __disposeResources(env) {
    function fail(e) {
        env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
        env.hasError = true;
    }
    function next() {
        while (env.stack.length) {
            var rec = env.stack.pop();
            try {
                var result = rec.dispose && rec.dispose.call(rec.value);
                if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
            }
            catch (e) {
                fail(e);
            }
        }
        if (env.hasError) throw env.error;
    }
    return next();
}

export default {
    __extends: __extends,
    __assign: __assign,
    __rest: __rest,
    __decorate: __decorate,
    __param: __param,
    __metadata: __metadata,
    __awaiter: __awaiter,
    __generator: __generator,
    __createBinding: __createBinding,
    __exportStar: __exportStar,
    __values: __values,
    __read: __read,
    __spread: __spread,
    __spreadArrays: __spreadArrays,
    __spreadArray: __spreadArray,
    __await: __await,
    __asyncGenerator: __asyncGenerator,
    __asyncDelegator: __asyncDelegator,
    __asyncValues: __asyncValues,
    __makeTemplateObject: __makeTemplateObject,
    __importStar: __importStar,
    __importDefault: __importDefault,
    __classPrivateFieldGet: __classPrivateFieldGet,
    __classPrivateFieldSet: __classPrivateFieldSet,
    __classPrivateFieldIn: __classPrivateFieldIn,
    __addDisposableResource: __addDisposableResource,
    __disposeResources: __disposeResources,
};

var TI=Object.defineProperty;var CI=Object.getOwnPropertyDescriptor;var R=(i,t,e,n)=>{for(var r=n>1?void 0:n?CI(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&TI(t,e,r),r},T=(i,t)=>(e,n)=>t(e,n,i);function xI(i,t,e=0,n=i.length){let r=e,o=n;for(;r<o;){let s=Math.floor((r+o)/2);t(i[s])?r=s+1:o=s}return r-1}var bm=class i{constructor(t){this._array=t;this._findLastMonotonousLastIdx=0}static{this.assertInvariants=!1}findLastMonotonous(t){if(i.assertInvariants){if(this._prevFindLastPredicate){for(let n of this._array)if(this._prevFindLastPredicate(n)&&!t(n))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}let e=xI(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};var zd=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?Xt.isErrorNoTelemetry(t)?new Xt(t.message+`

`+t.stack):new Error(t.message+`

`+t.stack):t},0)}}addListener(t){return this.listeners.push(t),()=>{this._removeListener(t)}}emit(t){this.listeners.forEach(e=>{e(t)})}_removeListener(t){this.listeners.splice(this.listeners.indexOf(t),1)}setUnexpectedErrorHandler(t){this.unexpectedErrorHandler=t}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}},jd=new zd;function $n(i){jd.onUnexpectedError(i)}function De(i){Cr(i)||jd.onUnexpectedError(i)}function Im(i){Cr(i)||jd.onUnexpectedExternalError(i)}var ha="Canceled";function Cr(i){return i instanceof ae?!0:i instanceof Error&&i.name===ha&&i.message===ha}var ae=class extends Error{constructor(){super(ha),this.name=this.message}},Sm=class i extends Error{static{this._name="PendingMigrationError"}static is(t){return t instanceof i||t instanceof Error&&t.name===i._name}constructor(t){super(t),this.name=i._name}};function ya(){let i=new Error(ha);return i.name=i.message,i}function va(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}function ba(i){return i?i.message?i.message:i.stack?i.stack.split(`
`)[0]:String(i):"Error"}var Xt=class i extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof i)return t;let e=new i;return e.message=t.message,e.stack=t.stack,e}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}},ve=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function qt(i,t,e=(n,r)=>n===r){if(i===t)return!0;if(!i||!t||i.length!==t.length)return!1;for(let n=0,r=i.length;n<r;n++)if(!e(i[n],t[n]))return!1;return!0}function ri(i){return i.filter(t=>!!t)}function hn(i,t=e=>e){let e=new Set;return i.filter(n=>{let r=t(n);return e.has(r)?!1:(e.add(r),!0)})}function Kd(i,t){return i.push(t),()=>wI(i,t)}function wI(i,t){let e=i.indexOf(t);if(e>-1)return i.splice(e,1),t}function Gd(i,t){let e;if(typeof t=="number"){let n=t;e=()=>{let r=Math.sin(n++)*179426549;return r-Math.floor(r)}}else e=Math.random;for(let n=i.length-1;n>0;n-=1){let r=Math.floor(e()*(n+1)),o=i[n];i[n]=i[r],i[r]=o}}function Cm(i){return i[Math.floor(Math.random()*i.length)]}var xm;(a=>{function i(l){return l<0}a.isLessThan=i;function t(l){return l<=0}a.isLessThanOrEqual=t;function e(l){return l>0}a.isGreaterThan=e;function n(l){return l===0}a.isNeitherLessOrGreaterThan=n,a.greaterThan=1,a.lessThan=-1,a.neitherLessOrGreaterThan=0})(xm||={});function wm(i,t){return(e,n)=>t(i(e),i(n))}var Rm=(i,t)=>i-t;var Tm=class i{constructor(t){this.iterate=t}static{this.empty=new i(t=>{})}forEach(t){this.iterate(e=>(t(e),!0))}toArray(){let t=[];return this.iterate(e=>(t.push(e),!0)),t}filter(t){return new i(e=>this.iterate(n=>t(n)?e(n):!0))}map(t){return new i(e=>this.iterate(n=>e(t(n))))}some(t){let e=!1;return this.iterate(n=>(e=t(n),!e)),e}findFirst(t){let e;return this.iterate(n=>t(n)?(e=n,!1):!0),e}findLast(t){let e;return this.iterate(n=>(t(n)&&(e=n),!0)),e}findLastMaxBy(t){let e,n=!0;return this.iterate(r=>((n||xm.isGreaterThan(t(r,e)))&&(n=!1,e=r),!0)),e}};function Am(i,t){let e=Object.create(null);for(let n of i){let r=t(n),o=e[r];o||(o=e[r]=[]),o.push(n)}return e}var Pm,km,Em=class{constructor(t,e){this.toKey=e;this._map=new Map;this[Pm]="SetWithKey";for(let n of t)this.add(n)}get size(){return this._map.size}add(t){let e=this.toKey(t);return this._map.set(e,t),this}delete(t){return this._map.delete(this.toKey(t))}has(t){return this._map.has(this.toKey(t))}*entries(){for(let t of this._map.values())yield[t,t]}keys(){return this.values()}*values(){for(let t of this._map.values())yield t}clear(){this._map.clear()}forEach(t,e){this._map.forEach(n=>t.call(e,n,n,this))}[(km=Symbol.iterator,Pm=Symbol.toStringTag,km)](){return this.values()}};function ii(i,t){let e=this,n=!1,r;return function(){if(n)return r;if(n=!0,t)try{r=i.apply(e,arguments)}finally{t()}else r=i.apply(e,arguments);return r}}var Qd=class{constructor(t,e){this.uri=t;this.value=e}};function RI(i){return Array.isArray(i)}var Om,Te=class i{constructor(t,e){this[Om]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(RI(t)){this.map=new Map,this.toKey=e??i.defaultToKey;for(let[n,r]of t)this.set(n,r)}else this.map=new Map,this.toKey=t??i.defaultToKey}static{this.defaultToKey=t=>t.toString()}set(t,e){return this.map.set(this.toKey(t),new Qd(t,e)),this}get(t){return this.map.get(this.toKey(t))?.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,e){typeof e<"u"&&(t=t.bind(e));for(let[n,r]of this.map)t(r.value,r.uri,this)}*values(){for(let t of this.map.values())yield t.value}*keys(){for(let t of this.map.values())yield t.uri}*entries(){for(let t of this.map.values())yield[t.uri,t.value]}*[(Om=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},Lm,Dm=class{constructor(t,e){this[Lm]="ResourceSet";!t||typeof t=="function"?this._map=new Te(t):(this._map=new Te(e),t.forEach(this.add,this))}get size(){return this._map.size}add(t){return this._map.set(t,t),this}clear(){this._map.clear()}delete(t){return this._map.delete(t)}forEach(t,e){this._map.forEach((n,r)=>t.call(e,r,r,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(Lm=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var Mm,Yd=class{constructor(){this[Mm]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,e=0){let n=this._map.get(t);if(n)return e!==0&&this.touch(n,e),n.value}set(t,e,n=0){let r=this._map.get(t);if(r)r.value=e,n!==0&&this.touch(r,n);else{switch(r={key:t,value:e,next:void 0,previous:void 0},n){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(t,r),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let e=this._map.get(t);if(e)return this._map.delete(t),this.removeItem(e),this._size--,e.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,e){let n=this._state,r=this._head;for(;r;){if(e?t.bind(e)(r.value,r.key,this):t(r.value,r.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}values(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}entries(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}[(Mm=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._head,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.next,n--;this._head=e,this._size=n,e&&(e.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._tail,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.previous,n--;this._tail=e,this._size=n,e&&(e.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{let e=t.next,n=t.previous;if(!e||!n)throw new Error("Invalid list");e.previous=n,n.next=e}t.next=void 0,t.previous=void 0,this._state++}touch(t,e){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(e!==1&&e!==2)){if(e===1){if(t===this._head)return;let n=t.next,r=t.previous;t===this._tail?(r.next=void 0,this._tail=r):(n.previous=r,r.next=n),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(e===2){if(t===this._tail)return;let n=t.next,r=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=r,r.next=n),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((e,n)=>{t.push([n,e])}),t}fromJSON(t){this.clear();for(let[e,n]of t)this.set(e,n)}},Xd=class extends Yd{constructor(t,e=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,e),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,e=2){return super.get(t,e)}peek(t){return super.get(t,0)}set(t,e){return super.set(t,e,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}},Zt=class extends Xd{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var Sa=class{constructor(){this.map=new Map}add(t,e){let n=this.map.get(t);n||(n=new Set,this.map.set(t,n)),n.add(e)}delete(t,e){let n=this.map.get(t);n&&(n.delete(e),n.size===0&&this.map.delete(t))}forEach(t,e){let n=this.map.get(t);n&&n.forEach(e)}get(t){let e=this.map.get(t);return e||new Set}};function Ia(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function _a(i,t="unexpected state"){if(!i)throw typeof t=="string"?new ve(`Assertion Failed: ${t}`):t}function Ko(i){if(!i()){debugger;i(),De(new ve("Assertion Failed"))}}function Ee(i){return typeof i=="string"}function Pe(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function Nm(i){let t=Object.getPrototypeOf(Uint8Array);return typeof i=="object"&&i instanceof t}function Go(i){return typeof i=="number"&&!isNaN(i)}function Fm(i){return!!i&&typeof i[Symbol.iterator]=="function"}function oi(i){return typeof i>"u"}function Bn(i){return!Ht(i)}function Ht(i){return oi(i)||i===null}function Um(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}var PI=Object.prototype.hasOwnProperty;function Ta(i){if(!Pe(i))return!1;for(let t in i)if(PI.call(i,t))return!1;return!0}function Jo(i){return typeof i=="function"}function ke(i,t){for(let e in t)if(!(e in i))return!1;return!0}var ai;(re=>{function i(k){return!!k&&typeof k=="object"&&typeof k[Symbol.iterator]=="function"}re.is=i;let t=Object.freeze([]);function e(){return t}re.empty=e;function*n(k){yield k}re.single=n;function r(k){return i(k)?k:n(k)}re.wrap=r;function o(k){return k??t}re.from=o;function*s(k){for(let O=k.length-1;O>=0;O--)yield k[O]}re.reverse=s;function a(k){return!k||k[Symbol.iterator]().next().done===!0}re.isEmpty=a;function l(k){return k[Symbol.iterator]().next().value}re.first=l;function c(k,O){let M=0;for(let se of k)if(O(se,M++))return!0;return!1}re.some=c;function u(k,O){let M=0;for(let se of k)if(!O(se,M++))return!1;return!0}re.every=u;function d(k,O){for(let M of k)if(O(M))return M}re.find=d;function*f(k,O){for(let M of k)O(M)&&(yield M)}re.filter=f;function*g(k,O){let M=0;for(let se of k)yield O(se,M++)}re.map=g;function*h(k,O){let M=0;for(let se of k)yield*O(se,M++)}re.flatMap=h;function*v(...k){for(let O of k)Fm(O)?yield*O:yield O}re.concat=v;function S(k,O,M){let se=M;for(let ue of k)se=O(se,ue);return se}re.reduce=S;function _(k){let O=0;for(let M of k)O++;return O}re.length=_;function*I(k,O,M=k.length){for(O<-k.length&&(O=0),O<0&&(O+=k.length),M<0?M+=k.length:M>k.length&&(M=k.length);O<M;O++)yield k[O]}re.slice=I;function b(k,O=Number.POSITIVE_INFINITY){let M=[];if(O===0)return[M,k];let se=k[Symbol.iterator]();for(let ue=0;ue<O;ue++){let Me=se.next();if(Me.done)return[M,re.empty()];M.push(Me.value)}return[M,{[Symbol.iterator](){return se}}]}re.consume=b;async function w(k){let O=[];for await(let M of k)O.push(M);return O}re.asyncToArray=w;async function D(k){let O=[];for await(let M of k)O=O.concat(M);return O}re.asyncToArrayFlat=D})(ai||={});var kI=!1,li=null;var Vm=class i{constructor(){this.livingDisposables=new Map}static{this.idx=0}getDisposableData(t){let e=this.livingDisposables.get(t);return e||(e={parent:null,source:null,isSingleton:!1,value:t,idx:i.idx++},this.livingDisposables.set(t,e)),e}trackDisposable(t){let e=this.getDisposableData(t);e.source||(e.source=new Error().stack)}setParent(t,e){let n=this.getDisposableData(t);n.parent=e}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,e){let n=e.get(t);if(n)return n;let r=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,r),r}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,t).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(t=10,e){let n;if(e)n=e;else{let l=new Map,c=[...this.livingDisposables.values()].filter(d=>d.source!==null&&!this.getRootParent(d,l).isSingleton);if(c.length===0)return;let u=new Set(c.map(d=>d.value));if(n=c.filter(d=>!(d.parent&&u.has(d.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(l){function c(d,f){for(;d.length>0&&f.some(g=>typeof g=="string"?g===d[0]:d[0].match(g));)d.shift()}let u=l.source.split(`
`).map(d=>d.trim().replace("at ","")).filter(d=>d!=="");return c(u,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),u.reverse()}let o=new Sa;for(let l of n){let c=r(l);for(let u=0;u<=c.length;u++)o.add(c.slice(0,u).join(`
`),l)}n.sort(wm(l=>l.idx,Rm));let s="",a=0;for(let l of n.slice(0,t)){a++;let c=r(l),u=[];for(let d=0;d<c.length;d++){let f=c[d];f=`(shared with ${o.get(c.slice(0,d+1).join(`
`)).size}/${n.length} leaks) at ${f}`;let h=o.get(c.slice(0,d).join(`
`)),v=Am([...h].map(S=>r(S)[d]),S=>S);delete v[c[d]];for(let[S,_]of Object.entries(v))_&&u.unshift(`    - stacktraces of ${_.length} other leaks continue with ${S}`);u.unshift(f)}s+=`


==================== Leaking disposable ${a}/${n.length}: ${l.value.constructor.name} ====================
${u.join(`
`)}
============================================================

`}return n.length>t&&(s+=`


... and ${n.length-t} more leaking disposables

`),{leaks:n,details:s}}};function AI(i){li=i}if(kI){let i="__is_disposable_tracked__";AI(new class{trackDisposable(t){let e=new Error("Potentially leaked disposable").stack;setTimeout(()=>{t[i]||console.log(e)},3e3)}setParent(t,e){if(t&&t!==C.None)try{t[i]=!0}catch{}}markAsDisposed(t){if(t&&t!==C.None)try{t[i]=!0}catch{}}markAsSingleton(t){}})}function Hn(i){return li?.trackDisposable(i),i}function zn(i){li?.markAsDisposed(i)}function xr(i,t){li?.setParent(i,t)}function DI(i,t){if(li)for(let e of i)li.setParent(e,t)}function ci(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function rt(i){if(ai.is(i)){let t=[];for(let e of i)if(e)try{e.dispose()}catch(n){t.push(n)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(i)?[]:i}else if(i)return i.dispose(),i}function Wm(...i){let t=E(()=>rt(i));return DI(i,t),t}var Zd=class{constructor(t){this._isDisposed=!1,this._fn=t,Hn(this)}dispose(){if(!this._isDisposed){if(!this._fn)throw new Error("Unbound disposable context: Need to use an arrow function to preserve the value of this");this._isDisposed=!0,zn(this),this._fn()}}};function E(i){return new Zd(i)}var $=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;Hn(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(zn(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{rt(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===C.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return xr(t,this),this._isDisposed?i.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.delete(t)&&xr(t,null)}assertNotDisposed(){this._isDisposed&&De(new ve("Object disposed"))}},C=class{constructor(){this._store=new $;Hn(this),xr(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){zn(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},qn=class{constructor(){this._isDisposed=!1;Hn(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&xr(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,zn(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&xr(t,null),t}};var Ca=class{constructor(){this.references=new Map}acquire(t,...e){let n=this.references.get(t);n||(n={counter:0,object:this.createReferencedObject(t,...e)},this.references.set(t,n));let{object:r}=n,o=ii(()=>{--n.counter===0&&(this.destroyReferencedObject(t,n.object),this.references.delete(t))});return n.counter++,{object:r,dispose:o}}};var at=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,Hn(this)}dispose(){zn(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{rt(this._store.values())}finally{this._store.clear()}}has(t){return this._store.has(t)}get size(){return this._store.size}get(t){return this._store.get(t)}set(t,e,n=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),n||this._store.get(t)?.dispose(),this._store.set(t,e),xr(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&xr(e,null),this._store.delete(t),e}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}};function $m(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var xa=class extends at{constructor(){super(new Te)}};var be=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},Qo=class{constructor(){this._first=be.Undefined;this._last=be.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===be.Undefined}clear(){let t=this._first;for(;t!==be.Undefined;){let e=t.next;t.prev=be.Undefined,t.next=be.Undefined,t=e}this._first=be.Undefined,this._last=be.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new be(t);if(this._first===be.Undefined)this._first=n,this._last=n;else if(e){let o=this._last;this._last=n,n.prev=o,o.next=n}else{let o=this._first;this._first=n,n.next=o,o.prev=n}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(n))}}shift(){if(this._first!==be.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==be.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==be.Undefined)return this._last.element}_remove(t){if(t.prev!==be.Undefined&&t.next!==be.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===be.Undefined&&t.next===be.Undefined?(this._first=be.Undefined,this._last=be.Undefined):t.next===be.Undefined?(this._last=this._last.prev,this._last.next=be.Undefined):t.prev===be.Undefined&&(this._first=this._first.next,this._first.prev=be.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==be.Undefined;)yield t.element,t=t.next}};function OI(){return globalThis._VSCODE_NLS_MESSAGES}function eu(){return globalThis._VSCODE_NLS_LANGUAGE}var LI=eu()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function Bm(i,t){let e;return t.length===0?e=i:e=i.replace(/\{(\d+)\}/g,(n,r)=>{let o=r[0],s=t[o],a=n;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),LI&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function m(i,t,...e){return Bm(typeof i=="number"?MI(i,t):t,e)}function MI(i,t){let e=OI()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}var Kn="en",Xo=!1,Zo=!1,Yo=!1,Hm=!1,zm=!1,tu=!1,NI=!1,jm=!1,FI=!1,UI=!1,Ra,Ea=Kn,qm=Kn,VI,yn,vn=globalThis,mt;typeof vn.vscode<"u"&&typeof vn.vscode.process<"u"?mt=vn.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(mt=process);var Km=typeof mt?.versions?.electron=="string",WI=Km&&mt?.type==="renderer";if(typeof mt=="object"){Xo=mt.platform==="win32",Zo=mt.platform==="darwin",Yo=mt.platform==="linux",Hm=Yo&&!!mt.env.SNAP&&!!mt.env.SNAP_REVISION,NI=Km,FI=!!mt.env.CI||!!mt.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!mt.env.GITHUB_WORKSPACE,Ra=Kn,Ea=Kn;let i=mt.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);Ra=t.userLocale,qm=t.osLocale,Ea=t.resolvedLanguage||Kn,VI=t.languagePack?.translationsConfigFile}catch{}zm=!0}else typeof navigator=="object"&&!WI?(yn=navigator.userAgent,Xo=yn.indexOf("Windows")>=0,Zo=yn.indexOf("Macintosh")>=0,jm=(yn.indexOf("Macintosh")>=0||yn.indexOf("iPad")>=0||yn.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Yo=yn.indexOf("Linux")>=0,UI=yn?.indexOf("Mobi")>=0,tu=!0,Ea=eu()||Kn,Ra=navigator.language.toLowerCase(),qm=Ra):console.error("Unable to resolve platform.");function Gm(i){switch(i){case 0:return"Web";case 1:return"Mac";case 2:return"Linux";case 3:return"Windows"}}var Pa=0;Zo?Pa=1:Xo?Pa=3:Yo&&(Pa=2);var q=Xo,Be=Zo,Se=Yo,Jm=Hm,Qm=zm;var _t=tu,$I=tu&&typeof vn.importScripts=="function",Ym=$I?vn.origin:void 0;var nu=Pa,en=yn,jn=Ea,BI;(n=>{function i(){return jn}n.value=i;function t(){return jn.length===2?jn==="en":jn.length>=3?jn[0]==="e"&&jn[1]==="n"&&jn[2]==="-":!1}n.isDefaultVariant=t;function e(){return jn==="en"}n.isDefault=e})(BI||={});var qI=typeof vn.postMessage=="function"&&!vn.importScripts,Xm=(()=>{if(qI){let i=[];vn.addEventListener("message",e=>{if(e.data&&e.data.vscodeScheduleAsyncWork)for(let n=0,r=i.length;n<r;n++){let o=i[n];if(o.id===e.data.vscodeScheduleAsyncWork){i.splice(n,1),o.callback();return}}});let t=0;return e=>{let n=++t;i.push({id:n,callback:e}),vn.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var zt=Zo||jm?2:Xo?1:3;var ru=!!(en&&en.indexOf("Chrome")>=0),Zm=!!(en&&en.indexOf("Firefox")>=0),eg=!!(!ru&&en&&en.indexOf("Safari")>=0),tg=!!(en&&en.indexOf("Edg/")>=0),eP=!!(en&&en.indexOf("Android")>=0);var Rr,iu=globalThis.vscode;if(typeof iu<"u"&&typeof iu.process<"u"){let i=iu.process;Rr={get platform(){return i.platform},get arch(){return i.arch},get env(){return i.env},cwd(){return i.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?Rr={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:Rr={get platform(){return q?"win32":Be?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var di=Rr.cwd,Ne=Rr.env,ui=Rr.platform,rP=Rr.arch;var HI=globalThis.performance.now.bind(globalThis.performance),ka=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:HI,this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}};var ng=!1,zI=!1,jI=100,rg=6e4;function ig(){return!!Ne.VSCODE_DEV}var X;(_r=>{_r.None=()=>C.None;function t(F){if(zI){let{onDidAddListener:A}=F,L=fi.create(),N=0;F.onDidAddListener=()=>{++N===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),L.print()),A?.()}}}function e(F,A,L){return g(F,()=>{},0,void 0,A??!0,void 0,L)}_r.defer=e;function n(F){return(A,L=null,N)=>{let U=!1,K;return K=F(Y=>{if(!U)return K?K.dispose():U=!0,A.call(L,Y)},null,N),U&&K.dispose(),K}}_r.once=n;function r(F,A){return _r.once(_r.filter(F,A))}_r.onceIf=r;function o(F,A,L){return d((N,U=null,K)=>F(Y=>N.call(U,A(Y)),null,K),L)}_r.map=o;function s(F,A,L){return d((N,U=null,K)=>F(Y=>{A(Y),N.call(U,Y)},null,K),L)}_r.forEach=s;function a(F,A,L){return d((N,U=null,K)=>F(Y=>A(Y)&&N.call(U,Y),null,K),L)}_r.filter=a;function l(F){return F}_r.signal=l;function c(...F){return(A,L=null,N)=>{let U=Wm(...F.map(K=>K(Y=>A.call(L,Y))));return f(U,N)}}_r.any=c;function u(F,A,L,N){let U=L;return o(F,K=>(U=A(U,K),U),N)}_r.reduce=u;function d(F,A){let L,N={onWillAddFirstListener(){L=F(U.fire,U)},onDidRemoveLastListener(){L?.dispose()}};A||t(N);let U=new x(N);return A?.add(U),U.event}function f(F,A){return A instanceof Array?A.push(F):A&&A.add(F),F}function g(F,A,L=100,N=!1,U=!1,K,Y){let Ke,me,et,Ge=0,nt,gn={leakWarningThreshold:K,onWillAddFirstListener(){Ke=F(ym=>{Ge++,me=A(me,ym),N&&!et&&(Tr.fire(me),me=void 0),nt=()=>{let vm=me;me=void 0,et=void 0,(!N||Ge>1)&&Tr.fire(vm),Ge=0},typeof L=="number"?(et&&clearTimeout(et),et=setTimeout(nt,L)):et===void 0&&(et=null,queueMicrotask(nt))})},onWillRemoveListener(){U&&Ge>0&&nt?.()},onDidRemoveLastListener(){nt=void 0,Ke.dispose()}};Y||t(gn);let Tr=new x(gn);return Y?.add(Tr),Tr.event}_r.debounce=g;function h(F,A=0,L,N){return _r.debounce(F,(U,K)=>U?(U.push(K),U):[K],A,void 0,L??!0,void 0,N)}_r.accumulate=h;function v(F,A,L=100,N=!0,U=!0,K,Y){let Ke,me,et,Ge=0,nt={leakWarningThreshold:K,onWillAddFirstListener(){Ke=F(Tr=>{Ge++,me=A(me,Tr),et===void 0&&(N&&(gn.fire(me),me=void 0,Ge=0),typeof L=="number"?et=setTimeout(()=>{U&&Ge>0&&gn.fire(me),me=void 0,et=void 0,Ge=0},L):(et=0,queueMicrotask(()=>{U&&Ge>0&&gn.fire(me),me=void 0,et=void 0,Ge=0})))})},onDidRemoveLastListener(){Ke.dispose()}};Y||t(nt);let gn=new x(nt);return Y?.add(gn),gn.event}_r.throttle=v;function S(F,A=(N,U)=>N===U,L){let N=!0,U;return a(F,K=>{let Y=N||!A(K,U);return N=!1,U=K,Y},L)}_r.latch=S;function _(F,A,L){return[_r.filter(F,A,L),_r.filter(F,N=>!A(N),L)]}_r.split=_;function I(F,A,L=!1,N=[],U){let K=N.slice(),Y;ig()&&(Y={stack:fi.create(),timerId:setTimeout(()=>{K&&K.length>0&&Y&&!Y.warned&&(Y.warned=!0,console.warn(`[Event.buffer][${A}] potential LEAK detected: ${K.length} events buffered for ${rg/1e3}s without being consumed. Buffered here:`),Y.stack.print())},rg),warned:!1},U&&U.add(E(()=>clearTimeout(Y.timerId))));let Ke=()=>{Y&&clearTimeout(Y.timerId)},me=F(nt=>{K?(K.push(nt),ig()&&Y&&!Y.warned&&K.length>=jI&&(Y.warned=!0,console.warn(`[Event.buffer][${A}] potential LEAK detected: ${K.length} events buffered without being consumed. Buffered here:`),Y.stack.print())):Ge.fire(nt)});U&&U.add(me);let et=()=>{K?.forEach(nt=>Ge.fire(nt)),K=null,Ke()},Ge=new x({onWillAddFirstListener(){me||(me=F(nt=>Ge.fire(nt)),U&&U.add(me))},onDidAddFirstListener(){K&&(L?setTimeout(et):et())},onDidRemoveLastListener(){me&&me.dispose(),me=null,Ke()}});return U&&U.add(Ge),Ge.event}_r.buffer=I;function b(F,A){return(N,U,K)=>{let Y=A(new D);return F(function(Ke){let me=Y.evaluate(Ke);me!==w&&N.call(U,me)},void 0,K)}}_r.chain=b;let w=Symbol("HaltChainable");class D{constructor(){this.steps=[]}map(A){return this.steps.push(A),this}forEach(A){return this.steps.push(L=>(A(L),L)),this}filter(A){return this.steps.push(L=>A(L)?L:w),this}reduce(A,L){let N=L;return this.steps.push(U=>(N=A(N,U),N)),this}latch(A=(L,N)=>L===N){let L=!0,N;return this.steps.push(U=>{let K=L||!A(U,N);return L=!1,N=U,K?U:w}),this}evaluate(A){for(let L of this.steps)if(A=L(A),A===w)break;return A}}function re(F,A,L=N=>N){let N=(...Ke)=>Y.fire(L(...Ke)),U=()=>F.on(A,N),K=()=>F.removeListener(A,N),Y=new x({onWillAddFirstListener:U,onDidRemoveLastListener:K});return Y.event}_r.fromNodeEventEmitter=re;function k(F,A,L=N=>N){let N=(...Ke)=>Y.fire(L(...Ke)),U=()=>F.addEventListener(A,N),K=()=>F.removeEventListener(A,N),Y=new x({onWillAddFirstListener:U,onDidRemoveLastListener:K});return Y.event}_r.fromDOMEventEmitter=k;function O(F,A){let L,N,U=new Promise(K=>{N=n(F)(K),du(N,A),L=()=>{sg(N,A)}});return U.cancel=L,A&&U.finally(()=>sg(N,A)),U}_r.toPromise=O;function M(F,A){return F(L=>A.fire(L))}_r.forward=M;function se(F,A,L){return A(L),F(N=>A(N))}_r.runAndSubscribe=se;class ue{constructor(A,L){this._observable=A;this._counter=0;this._hasChanged=!1;let N={onWillAddFirstListener:()=>{A.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{A.removeObserver(this)}};L||t(N),this.emitter=new x(N),L&&L.add(this.emitter)}beginUpdate(A){this._counter++}handlePossibleChange(A){}handleChange(A,L){this._hasChanged=!0}endUpdate(A){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function Me(F,A){return new ue(F,A).emitter.event}_r.fromObservable=Me;function _I(F){return(A,L,N)=>{let U=0,K=!1,Y={beginUpdate(){U++},endUpdate(){U--,U===0&&(F.reportChanges(),K&&(K=!1,A.call(L)))},handlePossibleChange(){},handleChange(){K=!0}};F.addObserver(Y),F.reportChanges();let Ke={dispose(){F.removeObserver(Y)}};return du(Ke,N),Ke}}_r.fromObservableLight=_I})(X||={});var su=class i{constructor(t){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${t}_${i._idPool++}`,i.all.add(this)}static{this.all=new Set}static{this._idPool=0}start(t){this._stopWatch=new ka,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}},og=-1;var au=class i{constructor(t,e,n=(i._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t;this.threshold=e;this.name=n;this._warnCountdown=0}static{this._idPool=1}dispose(){this._stacks?.clear()}check(t,e){let n=this.threshold;if(n<=0||e<n)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[o,s]=this.getMostFrequentStack(),a=/^[0-9a-f]+$/i.test(this.name)?void 0:this.name,l=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${s}):`;console.warn(l),console.warn(o);let c=s/e>.3?"dominated":"popular",u=new Aa(c,l,o,e,a);this._errorHandler(u)}return()=>{let o=this._stacks.get(t.value)||0;this._stacks.set(t.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[n,r]of this._stacks)(!t||e<r)&&(t=[n,r],e=r);return t}},fi=class i{constructor(t){this.value=t}static create(){let t=new Error;return new i(t.stack??"")}print(){console.warn(this.value.split(`
`).slice(2).join(`
`))}},Aa=class i extends Error{constructor(t,e,n,r,o){super(o?`[${o}] potential listener LEAK detected, ${t}`:`potential listener LEAK detected, ${t}`),this.name="ListenerLeakError",this.kind=t,this.listenerCount=r,this.details=e,this.stack=n}static is(t){return t instanceof i||t instanceof Error&&typeof t.kind=="string"&&typeof t.listenerCount=="number"}},lu=class extends Aa{constructor(t,e,n,r,o){super(t,e,n,r,o),this.name="ListenerRefusalError"}},KI=0,pi=class{constructor(t){this.value=t;this.id=KI++}},GI=2,JI=(i,t)=>{if(i instanceof pi)t(i);else for(let e=0;e<i.length;e++){let n=i[e];n&&t(n)}},x=class{constructor(t){this._size=0;this._options=t,this._leakageMon=og>0||this._options?.leakWarningThreshold?new au(t?.onListenerError??De,this._options?.leakWarningThreshold??og,this._options?.leakWarningName):void 0,this._perfMon=this._options?._profName?new su(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(ng){let t=this._listeners;queueMicrotask(()=>{JI(t,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(t,e,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let l=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(l);let c=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],u=c[1]/this._size>.3?"dominated":"popular",d=new lu(u,`${l}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||De)(d),C.None}if(this._disposed)return C.None;e&&(t=t.bind(e));let r=new pi(t),o,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=fi.create(),o=this._leakageMon.check(r.stack,this._size+1)),ng&&(r.stack=s??fi.create()),this._listeners?this._listeners instanceof pi?(this._deliveryQueue??=new cu,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=E(()=>{o?.(),this._removeListener(r)});return du(a,n),a},this._event}_removeListener(t){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let e=this._listeners,n=e.indexOf(t);if(n===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,e[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*GI<=e.length){let o=0;for(let s=0;s<e.length;s++)e[s]?e[o++]=e[s]:r&&o<this._deliveryQueue.end&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);e.length=o}}_deliver(t,e){if(!t)return;let n=this._options?.onListenerError||De;if(!n){t.value(e);return}try{t.value(e)}catch(r){n(r)}}_deliverQueue(t){let e=t.current._listeners;for(;t.i<t.end;)this._deliver(e[t.i++],t.value);t.reset()}fire(t){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof pi)this._deliver(this._listeners,t);else{let e=this._deliveryQueue;e.enqueue(this,t,this._listeners.length),this._deliverQueue(e)}this._perfMon?.stop()}hasListeners(){return this._size>0}};var cu=class{constructor(){this.i=-1;this.end=0}enqueue(t,e,n){this.i=0,this.end=n,this.current=t,this.value=e}reset(){this.i=this.end,this.current=void 0,this.value=void 0}};var Da=class{constructor(){this.hasListeners=!1;this.events=[];this.emitter=new x({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){let e={event:t,listener:null};return this.events.push(e),this.hasListeners&&this.hook(e),E(ii(()=>{this.hasListeners&&this.unhook(e);let r=this.events.indexOf(e);this.events.splice(r,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(t=>this.hook(t))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(t=>this.unhook(t))}hook(t){t.listener=t.event(e=>this.emitter.fire(e))}unhook(t){t.listener?.dispose(),t.listener=null}dispose(){this.emitter.dispose();for(let t of this.events)t.listener?.dispose();this.events=[]}};var es=class{constructor(){this.listening=!1;this.inputEvent=X.None;this.inputEventListener=C.None;this.emitter=new x({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}});this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}};function du(i,t){t instanceof $?t.add(i):Array.isArray(t)&&t.push(i)}function sg(i,t){if(t instanceof $)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var ag=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),Fe;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof mi?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:X.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:ag})})(Fe||={});var mi=class{constructor(){this._isCancelled=!1;this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?ag:(this._emitter||(this._emitter=new x),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},He=class{constructor(t){this._token=void 0;this._parentListener=void 0;this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new mi),this._token}cancel(){this._token?this._token instanceof mi&&this._token.cancel():this._token=Fe.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof mi&&this._token.dispose():this._token=Fe.None}};var QI=65,YI=97,XI=90,ZI=122,Er=46,Je=47,gt=92,bn=58,e1=63,Oa=class extends Error{constructor(t,e,n){let r;typeof e=="string"&&e.indexOf("not ")===0?(r="must not be",e=e.replace(/^not /,"")):r="must be";let o=t.indexOf(".")!==-1?"property":"argument",s=`The "${t}" ${o} ${r} of type ${e}`;s+=`. Received type ${typeof n}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}};function t1(i,t){if(i===null||typeof i!="object")throw new Oa(t,"Object",i)}function Le(i,t){if(typeof i!="string")throw new Oa(t,"string",i)}var ht=ui==="win32";function Z(i){return i===Je||i===gt}function uu(i){return i===Je}function Sn(i){return i>=QI&&i<=XI||i>=YI&&i<=ZI}function La(i,t,e,n){let r="",o=0,s=-1,a=0,l=0;for(let c=0;c<=i.length;++c){if(c<i.length)l=i.charCodeAt(c);else{if(n(l))break;l=Je}if(n(l)){if(!(s===c-1||a===1))if(a===2){if(r.length<2||o!==2||r.charCodeAt(r.length-1)!==Er||r.charCodeAt(r.length-2)!==Er){if(r.length>2){let u=r.lastIndexOf(e);u===-1?(r="",o=0):(r=r.slice(0,u),o=r.length-1-r.lastIndexOf(e)),s=c,a=0;continue}else if(r.length!==0){r="",o=0,s=c,a=0;continue}}t&&(r+=r.length>0?`${e}..`:"..",o=2)}else r.length>0?r+=`${e}${i.slice(s+1,c)}`:r=i.slice(s+1,c),o=c-s-1;s=c,a=0}else l===Er&&a!==-1?++a:a=-1}return r}function n1(i){return i?`${i[0]==="."?"":"."}${i}`:""}function lg(i,t){t1(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${n1(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var Ce={resolve(...i){let t="",e="",n=!1;for(let r=i.length-1;r>=-1;r--){let o;if(r>=0){if(o=i[r],Le(o,`paths[${r}]`),o.length===0)continue}else t.length===0?o=di():(o=Ne[`=${t}`]||di(),(o===void 0||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===gt)&&(o=`${t}\\`));let s=o.length,a=0,l="",c=!1,u=o.charCodeAt(0);if(s===1)Z(u)&&(a=1,c=!0);else if(Z(u))if(c=!0,Z(o.charCodeAt(1))){let d=2,f=d;for(;d<s&&!Z(o.charCodeAt(d));)d++;if(d<s&&d!==f){let g=o.slice(f,d);for(f=d;d<s&&Z(o.charCodeAt(d));)d++;if(d<s&&d!==f){for(f=d;d<s&&!Z(o.charCodeAt(d));)d++;(d===s||d!==f)&&(l=`\\\\${g}\\${o.slice(f,d)}`,a=d)}}}else a=1;else Sn(u)&&o.charCodeAt(1)===bn&&(l=o.slice(0,2),a=2,s>2&&Z(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(t.length>0){if(l.toLowerCase()!==t.toLowerCase())continue}else t=l;if(n){if(t.length>0)break}else if(e=`${o.slice(a)}\\${e}`,n=c,c&&t.length>0)break}return e=La(e,!n,"\\",Z),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){Le(i,"path");let t=i.length;if(t===0)return".";let e=0,n,r=!1,o=i.charCodeAt(0);if(t===1)return uu(o)?"\\":i;if(Z(o))if(r=!0,Z(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!Z(i.charCodeAt(a));)a++;if(a<t&&a!==l){let c=i.slice(l,a);for(l=a;a<t&&Z(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!Z(i.charCodeAt(a));)a++;if(a===t)return`\\\\${c}\\${i.slice(l)}\\`;a!==l&&(n=`\\\\${c}\\${i.slice(l,a)}`,e=a)}}}else e=1;else Sn(o)&&i.charCodeAt(1)===bn&&(n=i.slice(0,2),e=2,t>2&&Z(i.charCodeAt(2))&&(r=!0,e=3));let s=e<t?La(i.slice(e),!r,"\\",Z):"";if(s.length===0&&!r&&(s="."),s.length>0&&Z(i.charCodeAt(t-1))&&(s+="\\"),!r&&n===void 0&&i.includes(":")){if(s.length>=2&&Sn(s.charCodeAt(0))&&s.charCodeAt(1)===bn)return`.\\${s}`;let a=i.indexOf(":");do if(a===t-1||Z(i.charCodeAt(a+1)))return`.\\${s}`;while((a=i.indexOf(":",a+1))!==-1)}return n===void 0?r?`\\${s}`:s:r?`${n}\\${s}`:`${n}${s}`},isAbsolute(i){Le(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return Z(e)||t>2&&Sn(e)&&i.charCodeAt(1)===bn&&Z(i.charCodeAt(2))},join(...i){if(i.length===0)return".";let t,e;for(let o=0;o<i.length;++o){let s=i[o];Le(s,"path"),s.length>0&&(t===void 0?t=e=s:t+=`\\${s}`)}if(t===void 0)return".";let n=!0,r=0;if(typeof e=="string"&&Z(e.charCodeAt(0))){++r;let o=e.length;o>1&&Z(e.charCodeAt(1))&&(++r,o>2&&(Z(e.charCodeAt(2))?++r:n=!1))}if(n){for(;r<t.length&&Z(t.charCodeAt(r));)r++;r>=2&&(t=`\\${t.slice(r)}`)}return Ce.normalize(t)},relative(i,t){if(Le(i,"from"),Le(t,"to"),i===t)return"";let e=Ce.resolve(i),n=Ce.resolve(t);if(e===n||(i=e.toLowerCase(),t=n.toLowerCase(),i===t))return"";if(e.length!==i.length||n.length!==t.length){let h=e.split("\\"),v=n.split("\\");h[h.length-1]===""&&h.pop(),v[v.length-1]===""&&v.pop();let S=h.length,_=v.length,I=S<_?S:_,b;for(b=0;b<I&&h[b].toLowerCase()===v[b].toLowerCase();b++);return b===0?n:b===I?_>I?v.slice(b).join("\\"):S>I?"..\\".repeat(S-1-b)+"..":"":"..\\".repeat(S-b)+v.slice(b).join("\\")}let r=0;for(;r<i.length&&i.charCodeAt(r)===gt;)r++;let o=i.length;for(;o-1>r&&i.charCodeAt(o-1)===gt;)o--;let s=o-r,a=0;for(;a<t.length&&t.charCodeAt(a)===gt;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===gt;)l--;let c=l-a,u=s<c?s:c,d=-1,f=0;for(;f<u;f++){let h=i.charCodeAt(r+f);if(h!==t.charCodeAt(a+f))break;h===gt&&(d=f)}if(f!==u){if(d===-1)return n}else{if(c>u){if(t.charCodeAt(a+f)===gt)return n.slice(a+f+1);if(f===2)return n.slice(a+f)}s>u&&(i.charCodeAt(r+f)===gt?d=f:f===2&&(d=3)),d===-1&&(d=0)}let g="";for(f=r+d+1;f<=o;++f)(f===o||i.charCodeAt(f)===gt)&&(g+=g.length===0?"..":"\\..");return a+=d,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===gt&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=Ce.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===gt){if(t.charCodeAt(1)===gt){let e=t.charCodeAt(2);if(e!==e1&&e!==Er)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Sn(t.charCodeAt(0))&&t.charCodeAt(1)===bn&&t.charCodeAt(2)===gt)return`\\\\?\\${t}`;return t},dirname(i){Le(i,"path");let t=i.length;if(t===0)return".";let e=-1,n=0,r=i.charCodeAt(0);if(t===1)return Z(r)?i:".";if(Z(r)){if(e=n=1,Z(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!Z(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&Z(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!Z(i.charCodeAt(a));)a++;if(a===t)return i;a!==l&&(e=n=a+1)}}}}else Sn(r)&&i.charCodeAt(1)===bn&&(e=t>2&&Z(i.charCodeAt(2))?3:2,n=e);let o=-1,s=!0;for(let a=t-1;a>=n;--a)if(Z(i.charCodeAt(a))){if(!s){o=a;break}}else s=!1;if(o===-1){if(e===-1)return".";o=e}return i.slice(0,o)},basename(i,t){t!==void 0&&Le(t,"suffix"),Le(i,"path");let e=0,n=-1,r=!0,o;if(i.length>=2&&Sn(i.charCodeAt(0))&&i.charCodeAt(1)===bn&&(e=2),t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(o=i.length-1;o>=e;--o){let l=i.charCodeAt(o);if(Z(l)){if(!r){e=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=o):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(o=i.length-1;o>=e;--o)if(Z(i.charCodeAt(o))){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){Le(i,"path");let t=0,e=-1,n=0,r=-1,o=!0,s=0;i.length>=2&&i.charCodeAt(1)===bn&&Sn(i.charCodeAt(0))&&(t=n=2);for(let a=i.length-1;a>=t;--a){let l=i.charCodeAt(a);if(Z(l)){if(!o){n=a+1;break}continue}r===-1&&(o=!1,r=a+1),l===Er?e===-1?e=a:s!==1&&(s=1):e!==-1&&(s=-1)}return e===-1||r===-1||s===0||s===1&&e===r-1&&e===n+1?"":i.slice(e,r)},format:lg.bind(null,"\\"),parse(i){Le(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.length,n=0,r=i.charCodeAt(0);if(e===1)return Z(r)?(t.root=t.dir=i,t):(t.base=t.name=i,t);if(Z(r)){if(n=1,Z(i.charCodeAt(1))){let d=2,f=d;for(;d<e&&!Z(i.charCodeAt(d));)d++;if(d<e&&d!==f){for(f=d;d<e&&Z(i.charCodeAt(d));)d++;if(d<e&&d!==f){for(f=d;d<e&&!Z(i.charCodeAt(d));)d++;d===e?n=d:d!==f&&(n=d+1)}}}}else if(Sn(r)&&i.charCodeAt(1)===bn){if(e<=2)return t.root=t.dir=i,t;if(n=2,Z(i.charCodeAt(2))){if(e===3)return t.root=t.dir=i,t;n=3}}n>0&&(t.root=i.slice(0,n));let o=-1,s=n,a=-1,l=!0,c=i.length-1,u=0;for(;c>=n;--c){if(r=i.charCodeAt(c),Z(r)){if(!l){s=c+1;break}continue}a===-1&&(l=!1,a=c+1),r===Er?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1)}return a!==-1&&(o===-1||u===0||u===1&&o===a-1&&o===s+1?t.base=t.name=i.slice(s,a):(t.name=i.slice(s,o),t.base=i.slice(s,a),t.ext=i.slice(o,a))),s>0&&s!==n?t.dir=i.slice(0,s-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},r1=(()=>{if(ht){let i=/\\/g;return()=>{let t=di().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>di()})(),ee={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let r=i[n];Le(r,`paths[${n}]`),r.length!==0&&(t=`${r}/${t}`,e=r.charCodeAt(0)===Je)}if(!e){let n=r1();t=`${n}/${t}`,e=n.charCodeAt(0)===Je}return t=La(t,!e,"/",uu),e?`/${t}`:t.length>0?t:"."},normalize(i){if(Le(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Je,e=i.charCodeAt(i.length-1)===Je;return i=La(i,!t,"/",uu),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return Le(i,"path"),i.length>0&&i.charCodeAt(0)===Je},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];Le(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":ee.normalize(t.join("/"))},relative(i,t){if(Le(i,"from"),Le(t,"to"),i===t||(i=ee.resolve(i),t=ee.resolve(t),i===t))return"";let e=1,n=i.length,r=n-e,o=1,s=t.length-o,a=r<s?r:s,l=-1,c=0;for(;c<a;c++){let d=i.charCodeAt(e+c);if(d!==t.charCodeAt(o+c))break;d===Je&&(l=c)}if(c===a)if(s>a){if(t.charCodeAt(o+c)===Je)return t.slice(o+c+1);if(c===0)return t.slice(o+c)}else r>a&&(i.charCodeAt(e+c)===Je?l=c:c===0&&(l=0));let u="";for(c=e+l+1;c<=n;++c)(c===n||i.charCodeAt(c)===Je)&&(u+=u.length===0?"..":"/..");return`${u}${t.slice(o+l)}`},toNamespacedPath(i){return i},dirname(i){if(Le(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Je,e=-1,n=!0;for(let r=i.length-1;r>=1;--r)if(i.charCodeAt(r)===Je){if(!n){e=r;break}}else n=!1;return e===-1?t?"/":".":t&&e===1?"//":i.slice(0,e)},basename(i,t){t!==void 0&&Le(t,"suffix"),Le(i,"path");let e=0,n=-1,r=!0,o;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(o=i.length-1;o>=0;--o){let l=i.charCodeAt(o);if(l===Je){if(!r){e=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=o):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(o=i.length-1;o>=0;--o)if(i.charCodeAt(o)===Je){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){Le(i,"path");let t=-1,e=0,n=-1,r=!0,o=0;for(let s=i.length-1;s>=0;--s){let a=i[s];if(a==="/"){if(!r){e=s+1;break}continue}n===-1&&(r=!1,n=s+1),a==="."?t===-1?t=s:o!==1&&(o=1):t!==-1&&(o=-1)}return t===-1||n===-1||o===0||o===1&&t===n-1&&t===e+1?"":i.slice(t,n)},format:lg.bind(null,"/"),parse(i){Le(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===Je,n;e?(t.root="/",n=1):n=0;let r=-1,o=0,s=-1,a=!0,l=i.length-1,c=0;for(;l>=n;--l){let u=i.charCodeAt(l);if(u===Je){if(!a){o=l+1;break}continue}s===-1&&(a=!1,s=l+1),u===Er?r===-1?r=l:c!==1&&(c=1):r!==-1&&(c=-1)}if(s!==-1){let u=o===0&&e?1:o;r===-1||c===0||c===1&&r===s-1&&r===o+1?t.base=t.name=i.slice(u,s):(t.name=i.slice(u,r),t.base=i.slice(u,s),t.ext=i.slice(r,s))}return o>0?t.dir=i.slice(0,o-1):e&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};ee.win32=Ce.win32=Ce;ee.posix=Ce.posix=ee;var Dt=ht?Ce.normalize:ee.normalize,Gn=ht?Ce.isAbsolute:ee.isAbsolute,B=ht?Ce.join:ee.join,In=ht?Ce.resolve:ee.resolve,cg=ht?Ce.relative:ee.relative,ce=ht?Ce.dirname:ee.dirname,ge=ht?Ce.basename:ee.basename,Ma=ht?Ce.extname:ee.extname,SP=ht?Ce.format:ee.format,dg=ht?Ce.parse:ee.parse,IP=ht?Ce.toNamespacedPath:ee.toNamespacedPath,he=ht?Ce.sep:ee.sep,ts=ht?Ce.delimiter:ee.delimiter;function i1(i){return i}var Na=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=i1):(this._fn=e,this._computeKey=t.getCacheKey)}get(t){let e=this._computeKey(t);return this.lastArgKey!==e&&(this.lastArgKey=e,this.lastCache=this._fn(t)),this.lastCache}};var Ae=class{constructor(t){this.executor=t;this._state=0}get hasValue(){return this._state===2}get value(){if(this._state===0){this._state=1;try{this._value=this.executor()}catch(t){this._error=t}finally{this._state=2}}else if(this._state===1)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}};function gg(i){return!i||typeof i!="string"?!0:i.trim().length===0}var o1=/{(\d+)}/g;function Pr(i,...t){return t.length===0?i:i.replace(o1,function(e,n){let r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]})}function Ot(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function pu(i,t){if(!i||!t)return i;let e=t.length,n=0;if(e===1){let r=t.charCodeAt(0);for(;n<i.length&&i.charCodeAt(n)===r;)n++}else for(;i.startsWith(t,n);)n+=e;return i.substring(n)}function hi(i,t){if(!i||!t)return i;let e=t.length,n=i.length;if(e===1){let o=n,s=t.charCodeAt(0);for(;o>0&&i.charCodeAt(o-1)===s;)o--;return i.substring(0,o)}let r=n;for(;r>0&&i.endsWith(t,r);)r-=e;return i.substring(0,r)}function hg(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function yg(i){let t=[],e=i.split(/(\r\n|\r|\n)/);for(let n=0;n<Math.ceil(e.length/2);n++)t.push(e[2*n]+(e[2*n+1]??""));return t}function ns(i,t){return i<t?-1:i>t?1:0}function Fa(i,t,e=0,n=i.length,r=0,o=t.length){for(;e<n&&r<o;e++,r++){let l=i.charCodeAt(e),c=t.charCodeAt(r);if(l<c)return-1;if(l>c)return 1}let s=n-e,a=o-r;return s<a?-1:s>a?1:0}function fu(i,t){return kr(i,t,0,i.length,0,t.length)}function kr(i,t,e=0,n=i.length,r=0,o=t.length){for(;e<n&&r<o;e++,r++){let l=i.charCodeAt(e),c=t.charCodeAt(r);if(l===c)continue;if(l>=128||c>=128)return Fa(i.toLowerCase(),t.toLowerCase(),e,n,r,o);ug(l)&&(l-=32),ug(c)&&(c-=32);let u=l-c;if(u!==0)return u}let s=n-e,a=o-r;return s<a?-1:s>a?1:0}function ug(i){return i>=97&&i<=122}function mu(i){return i>=65&&i<=90}function Tn(i,t){return i.length===t.length&&kr(i,t)===0}function Jn(i,t){let e=t.length;return e<=i.length&&kr(i,t,0,e)===0}function vg(i,t){let e=i.length,n=e-t.length;return n>=0&&kr(i,t,n,e)===0}function bg(i){return 55296<=i&&i<=56319}function gu(i){return 56320<=i&&i<=57343}function Sg(i,t){return(i-55296<<10)+(t-56320)+65536}var s1=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,a1=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,l1=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,c1=new RegExp("(?:"+[s1.source,a1.source,l1.source].join("|")+")","g");function Ig(i){return i&&(i=i.replace(c1,"")),i}var DP=String.fromCharCode(65279);function d1(i){return!!(i&&i.length>0&&i.charCodeAt(0)===65279)}function _g(i){return d1(i)?i.substr(1):i}var pg=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=u1()}getGraphemeBreakType(t){if(t<32)return t===10?3:t===13?2:4;if(t<127)return 0;let e=this._data,n=e.length/3,r=1;for(;r<=n;)if(t<e[3*r])r=2*r;else if(t>e[3*r+1])r=2*r+1;else return e[3*r+2];return 0}};function u1(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}var fg=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new Ae(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,1523,96,8242,96,1370,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,118002,50,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,118003,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,118008,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,118009,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,117974,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,117975,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,117977,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,117978,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,117979,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,117980,71,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,117981,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,117983,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,117984,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,117985,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,117986,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,117987,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,117989,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,117990,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,117991,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,117992,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,117993,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,117994,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,117995,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71910,87,71919,87,117996,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,117997,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,117998,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,71909,90,66293,90,65338,90,8484,90,8488,90,117999,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65297,49],"zh-hant":[8211,45,65374,126,8218,44,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89]}'))}static{this.cache=new Na(t=>{let e=t.split(",");function n(d){let f=new Map;for(let g=0;g<d.length;g+=2)f.set(d[g],d[g+1]);return f}function r(d,f){let g=new Map(d);for(let[h,v]of f)g.set(h,v);return g}function o(d,f){if(!d)return f;let g=new Map;for(let[h,v]of d)f.has(h)&&g.set(h,v);return g}let s=this.ambiguousCharacterData.value,a=e.filter(d=>!d.startsWith("_")&&Object.hasOwn(s,d));a.length===0&&(a=["_default"]);let l;for(let d of a){let f=n(s[d]);l=o(l,f)}let c=n(s._common),u=r(c,l);return new i(u)})}static getInstance(t){return i.cache.get(Array.from(t).join(","))}static{this._locales=new Ae(()=>Object.keys(i.ambiguousCharacterData.value).filter(t=>!t.startsWith("_")))}static getLocales(){return i._locales.value}isAmbiguous(t){return this.confusableDictionary.has(t)}containsAmbiguousCharacter(t){for(let e=0;e<t.length;e++){let n=t.codePointAt(e);if(typeof n=="number"&&this.isAmbiguous(n))return!0}return!1}getPrimaryConfusable(t){return this.confusableDictionary.get(t)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}},mg=class i{static getRawData(){return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}')}static{this._data=void 0}static getData(){return this._data||(this._data=new Set([...Object.values(i.getRawData())].flat())),this._data}static isInvisibleCharacter(t){return i.getData().has(t)}static containsInvisibleCharacter(t){for(let e=0;e<t.length;e++){let n=t.codePointAt(e);if(typeof n=="number"&&(i.isInvisibleCharacter(n)||n===32))return!0}return!1}static get codePoints(){return i.getData()}};function Qn(i){return i===47||i===92}function Ua(i){return i.replace(/[\\/]/g,ee.sep)}function Tg(i){return i.indexOf("/")===-1&&(i=Ua(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function yu(i,t=ee.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(Qn(n)){if(Qn(i.charCodeAt(1))&&!Qn(i.charCodeAt(2))){let o=3,s=o;for(;o<e&&!Qn(i.charCodeAt(o));o++);if(s!==o&&!Qn(i.charCodeAt(o+1))){for(o+=1;o<e;o++)if(Qn(i.charCodeAt(o)))return i.slice(0,o+1).replace(/[\\/]/g,t)}}return t}else if(Cg(n)&&i.charCodeAt(1)===58)return Qn(i.charCodeAt(2))?i.slice(0,2)+t:i.slice(0,2);let r=i.indexOf("://");if(r!==-1){for(r+=3;r<e;r++)if(Qn(i.charCodeAt(r)))return i.slice(0,r+1)}return""}function yi(i,t,e){let n=i===t;return!e||n?n:!i||!t?!1:Tn(i,t)}function Cn(i,t,e,n=he){if(i===t)return!0;if(!i||!t||t.length>i.length)return!1;if(e){if(!Jn(i,t))return!1;if(t.length===i.length)return!0;let o=t.length;return t.charAt(t.length-1)===n&&o--,i.charAt(o)===n}return t.charAt(t.length-1)!==n&&(t+=n),i.indexOf(t)===0}function Cg(i){return i>=65&&i<=90||i>=97&&i<=122}function xg(i){return q?(i=hi(i,he),i.endsWith(":")&&(i+=he)):(i=hi(i,he),i||(i=he)),i}function vu(i){let t=Dt(i);return q?i.length>3?!1:wg(t)&&(i.length===2||t.charCodeAt(2)===92):t===ee.sep}function wg(i,t=q){return t?Cg(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}var p1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",f1="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function Rg(i,t,e=8){let n="";for(let o=0;o<e;o++){let s;o===0&&q&&!t&&(e===3||e===4)?s=f1:s=p1,n+=s.charAt(Math.floor(Math.random()*s.length))}let r;return t?r=`${t}-${n}`:r=n,i?B(i,r):r}var g1=/^\w[\w\d+.-]*$/,h1=/^\//,y1=/^\/\//;function v1(i,t){if(!i.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${i.authority}", path: "${i.path}", query: "${i.query}", fragment: "${i.fragment}"}`);if(i.scheme&&!g1.test(i.scheme)){let e=[...i.scheme.matchAll(/[^\w\d+.-]/gu)],n=e.length>0?` Found '${e[0][0]}' at index ${e[0].index} (${e.length} total)`:"";throw new Error(`[UriError]: Scheme contains illegal characters.${n} (len:${i.scheme.length})`)}if(i.path){if(i.authority){if(!h1.test(i.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(y1.test(i.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function b1(i,t){return!i&&!t?"file":i}function S1(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==jt&&(t=jt+t):t=jt;break}return t}var ye="",jt="/",I1=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,y=class i{static isUri(t){return t instanceof i?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,e,n,r,o,s=!1){typeof t=="object"?(this.scheme=t.scheme||ye,this.authority=t.authority||ye,this.path=t.path||ye,this.query=t.query||ye,this.fragment=t.fragment||ye):(this.scheme=b1(t,s),this.authority=e||ye,this.path=S1(this.scheme,n||ye),this.query=r||ye,this.fragment=o||ye,v1(this,s))}get fsPath(){return rs(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:n,path:r,query:o,fragment:s}=t;return e===void 0?e=this.scheme:e===null&&(e=ye),n===void 0?n=this.authority:n===null&&(n=ye),r===void 0?r=this.path:r===null&&(r=ye),o===void 0?o=this.query:o===null&&(o=ye),s===void 0?s=this.fragment:s===null&&(s=ye),e===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&s===this.fragment?this:new Yn(e,n,r,o,s)}static parse(t,e=!1){let n=I1.exec(t);return n?new Yn(n[2]||ye,Va(n[4]||ye),Va(n[5]||ye),Va(n[7]||ye),Va(n[9]||ye),e):new Yn(ye,ye,ye,ye,ye)}static file(t){let e=ye;if(q&&(t=t.replace(/\\/g,jt)),t[0]===jt&&t[1]===jt){let n=t.indexOf(jt,2);n===-1?(e=t.substring(2),t=jt):(e=t.substring(2,n),t=t.substring(n)||jt)}return new Yn("file",e,t,ye,ye)}static from(t,e){return new Yn(t.scheme,t.authority,t.path,t.query,t.fragment,e)}static joinPath(t,...e){if(!t.path)throw new Error(`[UriError]: cannot call joinPath on URI without path: ${t.toString()}`);let n;return q&&t.scheme==="file"?n=i.file(Ce.join(rs(t,!0),...e)).path:n=ee.join(t.path,...e),t.with({path:n})}toString(t=!1){return bu(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new Yn(t);return e._formatted=t.external??null,e._fsPath=t._sep===Ag?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};var Ag=q?1:void 0,Yn=class extends y{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=rs(this,!1)),this._fsPath}toString(e=!1){return e?bu(this,!0):(this._formatted||(this._formatted=bu(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=Ag),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}},Dg={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function Eg(i,t,e){let n,r=-1;for(let o=0;o<i.length;o++){let s=i.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||t&&s===47||e&&s===91||e&&s===93||e&&s===58)r!==-1&&(n+=encodeURIComponent(i.substring(r,o)),r=-1),n!==void 0&&(n+=i.charAt(o));else{n===void 0&&(n=i.substr(0,o));let a=Dg[s];a!==void 0?(r!==-1&&(n+=encodeURIComponent(i.substring(r,o)),r=-1),n+=a):r===-1&&(r=o)}}return r!==-1&&(n+=encodeURIComponent(i.substring(r))),n!==void 0?n:i}function _1(i){let t;for(let e=0;e<i.length;e++){let n=i.charCodeAt(e);n===35||n===63?(t===void 0&&(t=i.substr(0,e)),t+=Dg[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function rs(i,t){let e;return i.authority&&i.path.length>1&&i.scheme==="file"?e=`//${i.authority}${i.path}`:i.path.charCodeAt(0)===47&&(i.path.charCodeAt(1)>=65&&i.path.charCodeAt(1)<=90||i.path.charCodeAt(1)>=97&&i.path.charCodeAt(1)<=122)&&i.path.charCodeAt(2)===58?t?e=i.path.substr(1):e=i.path[1].toLowerCase()+i.path.substr(2):e=i.path,q&&(e=e.replace(/\//g,"\\")),e}function bu(i,t){let e=t?_1:Eg,n="",{scheme:r,authority:o,path:s,query:a,fragment:l}=i;if(r&&(n+=r,n+=":"),(o||r==="file")&&(n+=jt,n+=jt),o){let c=o.indexOf("@");if(c!==-1){let u=o.substr(0,c);o=o.substr(c+1),c=u.lastIndexOf(":"),c===-1?n+=e(u,!1,!1):(n+=e(u.substr(0,c),!1,!1),n+=":",n+=e(u.substr(c+1),!1,!0)),n+="@"}o=o.toLowerCase(),c=o.lastIndexOf(":"),c===-1?n+=e(o,!1,!0):(n+=e(o.substr(0,c),!1,!0),n+=o.substr(c))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let c=s.charCodeAt(1);c>=65&&c<=90&&(s=`/${String.fromCharCode(c+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let c=s.charCodeAt(0);c>=65&&c<=90&&(s=`${String.fromCharCode(c+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l:Eg(l,!1,!1)),n}function Og(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+Og(i.substr(3)):i}}var Pg=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Va(i){return i.match(Pg)?i.replace(Pg,t=>Og(t)):i}var te;(J=>(J.inMemory="inmemory",J.vscode="vscode",J.internal="private",J.walkThrough="walkThrough",J.walkThroughSnippet="walkThroughSnippet",J.http="http",J.https="https",J.file="file",J.mailto="mailto",J.untitled="untitled",J.data="data",J.command="command",J.vscodeRemote="vscode-remote",J.vscodeRemoteResource="vscode-remote-resource",J.vscodeManagedRemoteResource="vscode-managed-remote-resource",J.vscodeUserData="vscode-userdata",J.vscodeCustomEditor="vscode-custom-editor",J.vscodeNotebookCell="vscode-notebook-cell",J.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",J.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",J.vscodeNotebookCellOutput="vscode-notebook-cell-output",J.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",J.vscodeNotebookMetadata="vscode-notebook-metadata",J.vscodeInteractiveInput="vscode-interactive-input",J.vscodeSettings="vscode-settings",J.vscodeWorkspaceTrust="vscode-workspace-trust",J.vscodeTerminal="vscode-terminal",J.vscodeImageCarousel="vscode-image-carousel",J.vscodeChatCodeBlock="vscode-chat-code-block",J.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",J.vscodeChatEditor="vscode-chat-editor",J.vscodeChatInput="chatSessionInput",J.vscodeLocalChatSession="vscode-chat-session",J.webviewPanel="webview-panel",J.vscodeWebview="vscode-webview",J.vscodeBrowser="vscode-browser",J.extension="extension",J.vscodeFileResource="vscode-file",J.tmp="tmp",J.vsls="vsls",J.vscodeSourceControl="vscode-scm",J.commentsInput="comment",J.codeSetting="code-setting",J.outputChannel="output",J.accessibleView="accessible-view",J.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",J.chatEditingModel="chat-editing-text-model",J.copilotPr="copilot-pr"))(te||={});var _u="tkn",Su=class{constructor(){this._hosts=Object.create(null);this._ports=Object.create(null);this._connectionTokens=Object.create(null);this._preferredWebSchema="http";this._delegate=null;this._serverRootPath="/"}setPreferredWebSchema(t){this._preferredWebSchema=t}setDelegate(t){this._delegate=t}setServerRootPath(t,e){this._serverRootPath=ee.join(e??"/",C1(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return ee.join(this._serverRootPath,te.vscodeRemoteResource)}set(t,e,n){this._hosts[t]=e,this._ports[t]=n}setConnectionToken(t,e){this._connectionTokens[t]=e}getPreferredWebSchema(){return this._preferredWebSchema}rewrite(t){if(this._delegate)try{return this._delegate(t)}catch(a){return Im(a),t}let e=t.authority,n=this._hosts[e];n&&n.indexOf(":")!==-1&&n.indexOf("[")===-1&&(n=`[${n}]`);let r=this._ports[e],o=this._connectionTokens[e],s=`path=${encodeURIComponent(t.path)}`;return typeof o=="string"&&(s+=`&${_u}=${encodeURIComponent(o)}`),y.from({scheme:_t?this._preferredWebSchema:te.vscodeRemoteResource,authority:`${n}:${r}`,path:this._remoteResourcesPath,query:s})}},T1=new Su;function C1(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var Lg="vs/../../node_modules",Mg="vs/../../node_modules.asar";var Tu="vscode-app",Iu=class i{static{this.FALLBACK_AUTHORITY=Tu}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===te.vscodeRemote?T1.rewrite(t):t.scheme===te.file&&(Qm||Ym===`${te.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:te.vscodeFileResource,authority:t.authority||i.FALLBACK_AUTHORITY,query:null,fragment:null}):t}asFileUri(t){let e=this.toUri(t);return this.uriToFileUri(e)}uriToFileUri(t){return t.scheme===te.vscodeFileResource?t.with({scheme:te.file,authority:t.authority!==i.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(y.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return y.joinPath(y.parse(e,!0),t);let n=B(e,t);return y.file(n)}throw new Error("Cannot determine URI for module id!")}},it=new Iu,zP=Object.freeze({"Cache-Control":"no-cache, no-store"}),jP=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),x1;(o=>{let i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);o.CoopAndCoep=Object.freeze(i.get("3"));let e="vscode-coi";function n(s){let a;typeof s=="string"?a=new URL(s).searchParams:s instanceof URL?a=s.searchParams:y.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);let l=a?.get(e);if(l)return i.get(l)}o.getHeadersFromQuery=n;function r(s,a,l){if(!globalThis.crossOriginIsolated)return;let c=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,c):s[e]=c}o.addSearchParam=r})(x1||={});function xn(i){return rs(i,!0)}var is=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:ns(this.getComparisonKey(t,n),this.getComparisonKey(e,n))}isEqual(t,e,n=!1){return t===e?!0:!t||!e?!1:this.getComparisonKey(t,n)===this.getComparisonKey(e,n)}getComparisonKey(t,e=!1){return t.with({path:this._ignorePathCasing(t)?t.path.toLowerCase():void 0,fragment:e?null:void 0}).toString()}ignorePathCasing(t){return this._ignorePathCasing(t)}isEqualOrParent(t,e,n=!1){if(t.scheme===e.scheme){if(t.scheme===te.file)return Cn(xn(t),xn(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(Ng(t.authority,e.authority))return Cn(t.path,e.path,this._ignorePathCasing(t),"/")&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return y.joinPath(t,...e)}basenameOrAuthority(t){return xe(t)||t.authority}basename(t,e){return ee.basename(t.path,e)}extname(t){return ee.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===te.file?e=y.file(ce(xn(t))).path:(e=ee.dirname(t.path),t.authority&&e.length&&e.charCodeAt(0)!==47&&(console.error(`dirname("${t.toString})) resulted in a relative path`),e="/")),t.with({path:e})}normalizePath(t){if(!t.path.length)return t;let e;return t.scheme===te.file?e=y.file(Dt(xn(t))).path:e=ee.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!Ng(t.authority,e.authority))return;if(t.scheme===te.file){let o=cg(xn(t),xn(e));return q?Ua(o):o}let n=t.path||"/",r=e.path||"/";if(this._ignorePathCasing(t)){let o=0;for(let s=Math.min(n.length,r.length);o<s&&!(n.charCodeAt(o)!==r.charCodeAt(o)&&n.charAt(o).toLowerCase()!==r.charAt(o).toLowerCase());o++);n=r.substr(0,o)+n.substr(o)}return ee.relative(n,r)}resolvePath(t,e){if(t.scheme===te.file){let n=y.file(In(xn(t),e));return t.with({authority:n.authority,path:n.path})}return e=Tg(e),t.with({path:ee.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&Tn(t,e)}hasTrailingPathSeparator(t,e=he){if(t.scheme===te.file){let n=xn(t);return n.length>yu(n).length&&n[n.length-1]===e}else{let n=t.path;return n.length>1&&n.charCodeAt(n.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(t.fsPath)}}removeTrailingPathSeparator(t,e=he){return Fg(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=he){let n=!1;if(t.scheme===te.file){let r=xn(t);n=r!==void 0&&r.length===yu(r).length&&r[r.length-1]===e}else{e="/";let r=t.path;n=r.length===1&&r.charCodeAt(r.length-1)===47}return!n&&!Fg(t,e)?t.with({path:t.path+"/"}):t}},ne=new is(()=>!1),lt=new is(i=>i.scheme===te.file?!Se:!0),Cu=new is(i=>!0),xu=ne.isEqual.bind(ne),wu=ne.isEqualOrParent.bind(ne),ZP=ne.getComparisonKey.bind(ne),ek=ne.basenameOrAuthority.bind(ne),xe=ne.basename.bind(ne),os=ne.extname.bind(ne),tn=ne.dirname.bind(ne),Q=ne.joinPath.bind(ne),Tt=ne.normalizePath.bind(ne),Ru=ne.relativePath.bind(ne),tk=ne.resolvePath.bind(ne),Ug=ne.isAbsolutePath.bind(ne),Ng=ne.isEqualAuthority.bind(ne),Fg=ne.hasTrailingPathSeparator.bind(ne),nk=ne.removeTrailingPathSeparator.bind(ne),rk=ne.addTrailingPathSeparator.bind(ne);var w1;(o=>{o.META_DATA_LABEL="label",o.META_DATA_DESCRIPTION="description",o.META_DATA_SIZE="size",o.META_DATA_MIME="mime";function r(s){let a=new Map;s.path.substring(s.path.indexOf(";")+1,s.path.lastIndexOf(";")).split(";").forEach(u=>{let[d,f]=u.split(":");d&&f&&a.set(d,f)});let c=s.path.substring(0,s.path.indexOf(";"));return c&&a.set(o.META_DATA_MIME,c),a}o.parseMetaData=r})(w1||={});var Vg=Symbol("MicrotaskDelay");function Ha(i){return!!i&&typeof i.then=="function"}function Ii(i){let t=new He,e=i(t.token),n=!1,r=new Promise((o,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new ae)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?ci(l)&&l.dispose():o(l)},l=>{a.dispose(),t.dispose(),s(l)})});return new class{cancel(){t.cancel(),t.dispose()}then(o,s){return r.then(o,s)}catch(o){return this.then(void 0,o)}finally(o){return r.finally(o)}}}function Bg(i){let t=-1,e=i.map((r,o)=>r.then(s=>(t=o,s))),n=Promise.race(e);return n.cancel=()=>{i.forEach((r,o)=>{o!==t&&r.cancel&&r.cancel()})},n.finally(()=>{n.cancel()}),n}var Eu=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new He}queue(t){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){let e=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;let n=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,n};this.queuedPromise=new Promise(n=>{this.activePromise.then(e,e).then(n)})}return new Promise((e,n)=>{this.queuedPromise.then(e,n)})}return this.activePromise=t(this.cancellationTokenSource.token),new Promise((e,n)=>{this.activePromise.then(r=>{this.activePromise=null,e(r)},r=>{this.activePromise=null,n(r)})})}dispose(){this.cancellationTokenSource.cancel()}};var yt=class{constructor(){this.promiseMap=new Map}queue(t,e){let r=(this.promiseMap.get(t)??Promise.resolve()).catch(()=>{}).then(e).finally(()=>{this.promiseMap.get(t)===r&&this.promiseMap.delete(t)});return this.promiseMap.set(t,r),r}peek(t){return this.promiseMap.get(t)||void 0}keys(){return this.promiseMap.keys()}},E1=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},P1=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},Ar=class{constructor(t){this.defaultDelay=t;this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,e=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((r,o)=>{this.doResolve=r,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){let r=this.task;return this.task=null,r()}}));let n=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=e===Vg?P1(n):E1(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new ae),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},Dr=class{constructor(t){this.delayer=new Ar(t),this.throttler=new Eu}trigger(t,e){return this.delayer.trigger(()=>this.throttler.queue(t),e)}isTriggered(){return this.delayer.isTriggered()}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}},$a=class{constructor(){this._isOpen=!1,this._promise=new Promise((t,e)=>{this._completePromise=t})}isOpen(){return this._isOpen}open(){this._isOpen=!0,this._completePromise(!0)}wait(){return this._promise}};function wn(i,t){return t?new Promise((e,n)=>{let r=setTimeout(()=>{o.dispose(),e()},i),o=t.onCancellationRequested(()=>{clearTimeout(r),o.dispose(),n(new ae)})}):Ii(e=>wn(i,e))}function za(i,t=0,e){let n=setTimeout(()=>{i(),e&&r.dispose()},t),r=E(()=>{clearTimeout(n),e?.delete(r)});return e?.add(r),r}var vi=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new x}whenIdle(){return this.size>0?X.toPromise(this.onDrained):Promise.resolve()}get onDrained(){return this._onDrained.event}get size(){return this._size}queue(t){if(this._isDisposed)throw new Error("Object has been disposed");return this._size++,new Promise((e,n)=>{this.outstandingPromises.push({factory:t,c:e,e:n}),this.consume()})}consume(){for(;this.outstandingPromises.length&&this.runningPromises<this.maxDegreeOfParalellism;){let t=this.outstandingPromises.shift();this.runningPromises++;let e=t.factory();e.then(t.c,t.e),e.then(()=>this.consumed(),()=>this.consumed())}}consumed(){this._isDisposed||(this.runningPromises--,--this._size===0&&this._onDrained.fire(),this.outstandingPromises.length>0&&this.consume())}clear(){if(this._isDisposed)throw new Error("Object has been disposed");this.outstandingPromises.length=0,this._size=this.runningPromises}dispose(){this._isDisposed=!0,this.outstandingPromises.length=0,this._size=0,this._onDrained.dispose()}},Xn=class extends vi{constructor(){super(1)}};var bi=class{constructor(){this.queues=new Map;this.drainers=new Set;this.drainListeners=void 0;this.drainListenerCount=0}async whenDrained(){if(this.isDrained())return;let t=new pe;return this.drainers.add(t),t.p}isDrained(){for(let[,t]of this.queues)if(t.size>0)return!1;return!0}queueSize(t,e=ne){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=ne){let r=n.getComparisonKey(t),o=this.queues.get(r);if(!o){o=new Xn;let s=this.drainListenerCount++,a=X.once(o.onDrained)(()=>{o?.dispose(),this.queues.delete(r),this.onDidQueueDrain(),this.drainListeners?.deleteAndDispose(s),this.drainListeners?.size===0&&(this.drainListeners.dispose(),this.drainListeners=void 0)});this.drainListeners||(this.drainListeners=new at),this.drainListeners.set(s,a),this.queues.set(r,o)}return o.queue(e)}onDidQueueDrain(){this.isDrained()&&this.releaseDrainers()}releaseDrainers(){for(let t of this.drainers)t.complete();this.drainers.clear()}dispose(){for(let[,t]of this.queues)t.dispose();this.queues.clear(),this.releaseDrainers(),this.drainListeners?.dispose()}};var Zn=class{constructor(t,e){this.timeoutToken=void 0,this.runner=t,this.timeout=e,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=void 0)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return this.timeoutToken!==void 0}flush(){this.isScheduled()&&(this.cancel(),this.doRun())}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){this.runner?.()}};var Ba=class extends Zn{constructor(e,n){super(e,n);this.units=[]}work(e){this.units.push(e),this.isScheduled()||this.schedule()}doRun(){let e=this.units;this.units=[],this.runner?.(e)}dispose(){this.units=[],super.dispose()}},Si=class extends C{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new qn);this.disposed=!1;this.lastExecutionTime=0}get pending(){return this.pendingWork.length}work(e){if(this.disposed)return!1;if(typeof this.options.maxBufferedWork=="number"){if(this.throttler.value){if(this.pending+e.length>this.options.maxBufferedWork)return!1}else if(this.pending+e.length-this.options.maxWorkChunkSize>this.options.maxBufferedWork)return!1}for(let r of e)this.pendingWork.push(r);let n=Date.now()-this.lastExecutionTime;return!this.throttler.value&&(!this.options.waitThrottleDelayBetweenWorkUnits||n>=this.options.throttleDelay)?this.doWork():!this.throttler.value&&this.options.waitThrottleDelayBetweenWorkUnits&&this.scheduleThrottler(Math.max(this.options.throttleDelay-n,0)),!0}doWork(){this.lastExecutionTime=Date.now(),this.handler(this.pendingWork.splice(0,this.options.maxWorkChunkSize)),this.pendingWork.length>0&&this.scheduleThrottler()}scheduleThrottler(e=this.options.throttleDelay){this.throttler.value=new Zn(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},k1,Wa;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?Wa=(t,e,n)=>{Xm(()=>{if(r)return;let o=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,o-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:Wa=(t,e,n)=>{let r=t.requestIdleCallback(e,typeof n=="number"?{timeout:n}:void 0),o=!1;return{dispose(){o||(o=!0,t.cancelIdleCallback(r))}}},k1=(t,e)=>Wa(globalThis,t,e)})();var Pu=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=Wa(t,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}},qa=class extends Pu{constructor(t){super(globalThis,t)}};async function qg(i,t,e){let n;for(let r=0;r<e;r++)try{return await i()}catch(o){n=o,await wn(t)}throw n}var pe=class i{static fromPromise(t){let e=new i;return e.settleWith(t),e}get isRejected(){return this.outcome?.outcome===1}get isResolved(){return this.outcome?.outcome===0}get isSettled(){return!!this.outcome}get value(){return this.outcome?.outcome===0?this.outcome?.value:void 0}constructor(){this.p=new Promise((t,e)=>{this.completeCallback=t,this.errorCallback=e})}complete(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.completeCallback(t),this.outcome={outcome:0,value:t},e()})}error(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.errorCallback(t),this.outcome={outcome:1,value:t},e()})}settleWith(t){return t.then(e=>this.complete(e),e=>this.error(e))}cancel(){return this.error(new ae)}},Or;(e=>{async function i(n){let r,o=await Promise.all(n.map(s=>s.then(a=>a,a=>{r||(r=a)})));if(typeof r<"u")throw r;return o}e.settled=i;function t(n){return new Promise(async(r,o)=>{try{await n(r,o)}catch(s){o(s)}})}e.withAsyncBody=t})(Or||={});var Wg=class i{static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new x,queueMicrotask(async()=>{let n={emitOne:r=>this.emitOne(r),emitMany:r=>this.emitMany(r),reject:r=>this.reject(r)};try{await Promise.resolve(t(n)),this.resolve()}catch(r){this.reject(r)}finally{n.emitOne=void 0,n.emitMany=void 0,n.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await X.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}map(t){return i.map(this,t)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static async toPromise(t){let e=[];for await(let n of t)e.push(n);return e}toPromise(){return i.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};var ku=class{constructor(){this._unsatisfiedConsumers=[];this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(t){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let e=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(e,t)}else this._unconsumedValues.push(t)}produceFinal(t){this._ensureNoFinalValue(),this._finalValue=t;for(let e of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(e,t);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new ve("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(t,e){e.ok?t.complete(e.value):t.error(e.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let t=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return t.ok?Promise.resolve(t.value):Promise.reject(t.error)}else{let t=new pe;return this._unsatisfiedConsumers.push(t),t.p}}},$g=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new ku;this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async t=>(this._finishError(t),{done:!0,value:void 0})};queueMicrotask(async()=>{let n=t({emitOne:r=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:r}}),emitMany:r=>{for(let o of r)this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}})},reject:r=>this._finishError(r)});if(!this._producerConsumer.hasFinalValue)try{await n,this._finishOk()}catch(r){this._finishError(r)}})}static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}static tee(t){let e,n,r=new pe,o=async()=>{if(!(!e||!n))try{for await(let l of t)e.emitOne(l),n.emitOne(l)}catch(l){e.reject(l),n.reject(l)}finally{r.complete()}},s=new i(async l=>(e=l,o(),r.p)),a=new i(async l=>(n=l,o(),r.p));return[s,a]}map(t){return i.map(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(t){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:t})}[Symbol.asyncIterator](){return this._iterator}};function ss(i){let t=i;return t?[t.on,t.pause,t.resume,t.destroy].every(e=>typeof e=="function"):!1}function ja(i){let t=i;return t?ss(t.stream)&&Array.isArray(t.buffer)&&typeof t.ended=="boolean":!1}function Rn(i,t){return new Au(i,t)}var Au=class{constructor(t,e){this.reducer=t;this.options=e;this.state={flowing:!1,ended:!1,destroyed:!1};this.buffer={data:[],error:[]};this.listeners={data:[],error:[],end:[]};this.pendingWritePromises=[]}pause(){this.state.destroyed||(this.state.flowing=!1)}resume(){this.state.destroyed||this.state.flowing||(this.state.flowing=!0,this.flowData(),this.flowErrors(),this.flowEnd())}write(t){if(!this.state.destroyed){if(this.state.flowing)this.emitData(t);else if(this.buffer.data.push(t),typeof this.options?.highWaterMark=="number"&&this.buffer.data.length>this.options.highWaterMark)return new Promise(e=>this.pendingWritePromises.push(e))}}error(t){this.state.destroyed||(this.state.flowing?this.emitError(t):this.buffer.error.push(t))}end(t){this.state.destroyed||(typeof t<"u"&&this.write(t),this.state.flowing?(this.emitEnd(),this.destroy()):this.state.ended=!0)}emitData(t){this.listeners.data.slice(0).forEach(e=>e(t))}emitError(t){this.listeners.error.length===0?De(t):this.listeners.error.slice(0).forEach(e=>e(t))}emitEnd(){this.listeners.end.slice(0).forEach(t=>t())}on(t,e){if(!this.state.destroyed)switch(t){case"data":this.listeners.data.push(e),this.resume();break;case"end":this.listeners.end.push(e),this.state.flowing&&this.flowEnd()&&this.destroy();break;case"error":this.listeners.error.push(e),this.state.flowing&&this.flowErrors();break}}removeListener(t,e){if(this.state.destroyed)return;let n;switch(t){case"data":n=this.listeners.data;break;case"end":n=this.listeners.end;break;case"error":n=this.listeners.error;break}if(n){let r=n.indexOf(e);r>=0&&n.splice(r,1)}}flowData(){if(this.buffer.data.length===0)return;if(typeof this.reducer=="function"){let e=this.reducer(this.buffer.data);this.emitData(e)}else for(let e of this.buffer.data)this.emitData(e);this.buffer.data.length=0;let t=[...this.pendingWritePromises];this.pendingWritePromises.length=0,t.forEach(e=>e())}flowErrors(){if(this.listeners.error.length>0){for(let t of this.buffer.error)this.emitError(t);this.buffer.error.length=0}}flowEnd(){return this.state.ended?(this.emitEnd(),this.listeners.end.length>0):!1}destroy(){this.state.destroyed||(this.state.destroyed=!0,this.state.ended=!0,this.buffer.data.length=0,this.buffer.error.length=0,this.listeners.data.length=0,this.listeners.error.length=0,this.listeners.end.length=0,this.pendingWritePromises.length=0)}};function Hg(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function zg(i,t,e){let n=[],r;for(;(r=i.read())!==null&&n.length<e;)n.push(r);return r===null&&n.length>0?t(n):{read:()=>{if(n.length>0)return n.shift();if(typeof r<"u"){let o=r;return r=void 0,o}return i.read()}}}function Ka(i,t){return new Promise((e,n)=>{let r=[];Ga(i,{onData:o=>{t&&r.push(o)},onError:o=>{t?n(o):e(void 0)},onEnd:()=>{e(t?t(r):void 0)}})})}function Ga(i,t,e){i.on("error",n=>{e?.isCancellationRequested||t.onError(n)}),i.on("end",()=>{e?.isCancellationRequested||t.onEnd()}),i.on("data",n=>{e?.isCancellationRequested||t.onData(n)})}function jg(i,t){return new Promise((e,n)=>{let r=new $,o=[],s=c=>{if(o.push(c),o.length>t)return r.dispose(),i.pause(),e({stream:i,buffer:o,ended:!1})},a=c=>(r.dispose(),n(c)),l=()=>(r.dispose(),e({stream:i,buffer:o,ended:!0}));r.add(E(()=>i.removeListener("error",a))),i.on("error",a),r.add(E(()=>i.removeListener("end",l))),i.on("end",l),r.add(E(()=>i.removeListener("data",s))),i.on("data",s)})}function Kg(i){let t=!1;return{read:()=>t?null:(t=!0,i)}}function Du(i,t,e){let n=Rn(e);return Ga(i,{onData:r=>n.write(t.data(r)),onError:r=>n.error(t.error?t.error(r):r),onEnd:()=>n.end()}),n}var as=typeof Buffer<"u",D1=new Ae(()=>new Uint8Array(256)),Ou,Lu,P=class i{static alloc(t){return as?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return as&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&as?new i(Buffer.from(t)):(Ou||(Ou=new TextEncoder),new i(Ou.encode(t)))}static fromByteArray(t){let e=i.alloc(t.length);for(let n=0,r=t.length;n<r;n++)e.buffer[n]=t[n];return e}static concat(t,e){if(typeof e>"u"){e=0;for(let o=0,s=t.length;o<s;o++)e+=t[o].byteLength}let n=i.alloc(e),r=0;for(let o=0,s=t.length;o<s;o++){let a=t[o];n.set(a,r),r+=a.byteLength}return n}static isNativeBuffer(t){return as&&Buffer.isBuffer(t)}constructor(t){this.buffer=t,this.byteLength=this.buffer.byteLength}clone(){let t=i.alloc(this.byteLength);return t.set(this),t}toString(){return as?this.buffer.toString():(Lu||(Lu=new TextDecoder(void 0,{ignoreBOM:!0})),Lu.decode(this.buffer))}slice(t,e){return new i(this.buffer.subarray(t,e))}set(t,e){if(t instanceof i)this.buffer.set(t.buffer,e);else if(t instanceof Uint8Array)this.buffer.set(t,e);else if(t instanceof ArrayBuffer)this.buffer.set(new Uint8Array(t),e);else if(ArrayBuffer.isView(t))this.buffer.set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),e);else throw new Error("Unknown argument 'array'")}readUInt32BE(t){return L1(this.buffer,t)}writeUInt32BE(t,e){M1(this.buffer,t,e)}readUInt32LE(t){return N1(this.buffer,t)}writeUInt32LE(t,e){F1(this.buffer,t,e)}readUInt8(t){return U1(this.buffer,t)}writeUInt8(t,e){V1(this.buffer,t,e)}indexOf(t,e=0){return O1(this.buffer,t instanceof i?t.buffer:t,e)}equals(t){return this===t?!0:this.byteLength!==t.byteLength?!1:this.buffer.every((e,n)=>e===t.buffer[n])}};function O1(i,t,e=0){let n=t.byteLength,r=i.byteLength;if(n===0)return 0;if(n===1)return i.indexOf(t[0],e);if(n>r-e)return-1;let o=D1.value;o.fill(t.length);for(let c=0;c<t.length;c++)o[t[c]]=t.length-c-1;let s=e+t.length-1,a=s,l=-1;for(;s<r;)if(i[s]===t[a]){if(a===0){l=s;break}s--,a--}else s+=Math.max(t.length-a,o[i[s]]),a=t.length-1;return l}function L1(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function M1(i,t,e){i[e+3]=t,t=t>>>8,i[e+2]=t,t=t>>>8,i[e+1]=t,t=t>>>8,i[e]=t}function N1(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function F1(i,t,e){i[e+0]=t&255,t=t>>>8,i[e+1]=t&255,t=t>>>8,i[e+2]=t&255,t=t>>>8,i[e+3]=t&255}function U1(i,t){return i[t]}function V1(i,t,e){i[e]=t}function Qg(i){return Hg(i,t=>P.concat(t))}function Yg(i){return Kg(i)}function er(i){return Ka(i,t=>P.concat(t))}async function Xg(i){return i.ended?P.concat(i.buffer):P.concat([...i.buffer,await er(i.stream)])}function Zg(i){return Rn(t=>P.concat(t),i)}function tr(i){let t=0,e=0,n=0,r=new Uint8Array(Math.floor(i.length/4*3)),o=a=>{switch(e){case 3:r[n++]=t|a,e=0;break;case 2:r[n++]=t|a>>>2,t=a<<6,e=3;break;case 1:r[n++]=t|a>>>4,t=a<<4,e=2;break;default:t=a<<2,e=1}};for(let a=0;a<i.length;a++){let l=i.charCodeAt(a);if(l>=65&&l<=90)o(l-65);else if(l>=97&&l<=122)o(l-97+26);else if(l>=48&&l<=57)o(l-48+52);else if(l===43||l===45)o(62);else if(l===47||l===95)o(63);else{if(l===61)break;throw new SyntaxError(`Unexpected base64 character ${i[a]}`)}}let s=n;for(;e>0;)o(0);return P.wrap(r).slice(0,s)}var W1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function Ja({buffer:i},t=!0,e=!1){let n=e?$1:W1,r="",o=i.byteLength%3,s=0;for(;s<i.byteLength-o;s+=3){let a=i[s+0],l=i[s+1],c=i[s+2];r+=n[a>>>2],r+=n[(a<<4|l>>>4)&63],r+=n[(l<<2|c>>>6)&63],r+=n[c&63]}if(o===1){let a=i[s+0];r+=n[a>>>2],r+=n[a<<4&63],t&&(r+="==")}else if(o===2){let a=i[s+0],l=i[s+1];r+=n[a>>>2],r+=n[(a<<4|l>>>4)&63],r+=n[l<<2&63],t&&(r+="=")}return r}var Gg="0123456789abcdef";function Kt({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=Gg[n>>>4],t+=Gg[n&15]}return t}function _i(i){if(i.length%2!==0)throw new SyntaxError("Hex string must have an even length");let t=new Uint8Array(i.length>>1);for(let e=0;e<i.length;)t[e>>1]=Jg(i,e++)<<4|Jg(i,e++);return P.wrap(t)}function Jg(i,t){let e=i.charCodeAt(t);if(e>=48&&e<=57)return e-48;if(e>=97&&e<=102)return e-87;if(e>=65&&e<=70)return e-55;throw new SyntaxError(`Invalid hex character at position ${t}`)}function oe(i,t,e){let n=null,r=null;if(typeof e.value=="function"?(n="value",r=e.value,r.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof e.get=="function"&&(n="get",r=e.get),!r)throw new Error("not supported");let o=`$memoize$${t}`;e[n]=function(...s){return this.hasOwnProperty(o)||Object.defineProperty(this,o,{configurable:!1,enumerable:!1,writable:!1,value:r.apply(this,s)}),this[o]}}function ls(i,t=0){if(!i||t>200)return i;if(typeof i=="object"){switch(i.$mid){case 1:return y.revive(i);case 2:return new RegExp(i.source,i.flags);case 17:return new Date(i.source)}if(i instanceof P||i instanceof Uint8Array)return i;if(Array.isArray(i))for(let e=0;e<i.length;++e)i[e]=ls(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=ls(i[e],t+1))}return i}function xi(i){switch(i){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function Qa(i){switch(i){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function Ti(i){let t=0;for(let e=0;;e+=7){let n=i.read(1);if(t|=(n.buffer[0]&127)<<e,!(n.buffer[0]&128))return t}}var B1=nr(0);function Ci(i,t){if(t===0){i.write(B1);return}let e=0;for(let r=t;r!==0;r=r>>>7)e++;let n=P.alloc(e);for(let r=0;t!==0;r++)n.buffer[r]=t&127,t=t>>>7,t>0&&(n.buffer[r]|=128);i.write(n)}var cs=class{constructor(t){this.buffer=t;this.pos=0}read(t){let e=this.buffer.slice(this.pos,this.pos+t);return this.pos+=e.byteLength,e}},Ya=class{constructor(){this.buffers=[]}get buffer(){return P.concat(this.buffers)}write(t){this.buffers.push(t)}};function nr(i){let t=P.alloc(1);return t.writeUInt8(i,0),t}var Lr={Undefined:nr(0),String:nr(1),Buffer:nr(2),VSBuffer:nr(3),Array:nr(4),Object:nr(5),Uint:nr(6)};function ds(i,t){if(typeof t>"u")i.write(Lr.Undefined);else if(typeof t=="string"){let e=P.fromString(t);i.write(Lr.String),Ci(i,e.byteLength),i.write(e)}else if(P.isNativeBuffer(t)){let e=P.wrap(t);i.write(Lr.Buffer),Ci(i,e.byteLength),i.write(e)}else if(t instanceof P)i.write(Lr.VSBuffer),Ci(i,t.byteLength),i.write(t);else if(Array.isArray(t)){i.write(Lr.Array),Ci(i,t.length);for(let e of t)ds(i,e)}else if(typeof t=="number"&&(t|0)===t)i.write(Lr.Uint),Ci(i,t);else{let e=P.fromString(JSON.stringify(t));i.write(Lr.Object),Ci(i,e.byteLength),i.write(e)}}function Ri(i){switch(i.read(1).readUInt8(0)){case 0:return;case 1:return i.read(Ti(i)).toString();case 2:return i.read(Ti(i)).buffer;case 3:return i.read(Ti(i));case 4:{let e=Ti(i),n=[];for(let r=0;r<e;r++)n.push(Ri(i));return n}case 5:return JSON.parse(i.read(Ti(i)).toString());case 6:return Ti(i)}}var us=class{constructor(t,e,n=null,r=1e3){this.protocol=t;this.ctx=e;this.logger=n;this.timeoutDelay=r;this.channels=new Map;this.activeRequests=new Map;this.pendingRequests=new Map;this.protocolListener=this.protocol.onMessage(o=>this.onRawMessage(o)),this.sendResponse({type:200})}registerChannel(t,e){this.channels.set(t,e),setTimeout(()=>this.flushPendingRequests(t),0)}sendResponse(t){switch(t.type){case 200:{let e=this.send([t.type]);this.logger?.logOutgoing(e,0,1,Qa(t.type));return}case 201:case 202:case 204:case 203:{let e=this.send([t.type,t.id],t.data);this.logger?.logOutgoing(e,t.id,1,Qa(t.type),t.data);return}}}send(t,e=void 0){let n=new Ya;return ds(n,t),ds(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onRawMessage(t){let e=new cs(t),n=Ri(e),r=Ri(e),o=n[0];switch(o){case 100:return this.logger?.logIncoming(t.byteLength,n[1],1,`${xi(o)}: ${n[2]}.${n[3]}`,r),this.onPromise({type:o,id:n[1],channelName:n[2],name:n[3],arg:r});case 102:return this.logger?.logIncoming(t.byteLength,n[1],1,`${xi(o)}: ${n[2]}.${n[3]}`,r),this.onEventListen({type:o,id:n[1],channelName:n[2],name:n[3],arg:r});case 101:return this.logger?.logIncoming(t.byteLength,n[1],1,`${xi(o)}`),this.disposeActiveRequest({type:o,id:n[1]});case 103:return this.logger?.logIncoming(t.byteLength,n[1],1,`${xi(o)}`),this.disposeActiveRequest({type:o,id:n[1]})}}onPromise(t){let e=this.channels.get(t.channelName);if(!e){this.collectPendingRequest(t);return}let n=new He,r;try{r=e.call(this.ctx,t.name,t.arg,n.token)}catch(a){r=Promise.reject(a)}let o=t.id;r.then(a=>{this.sendResponse({id:o,data:a,type:201})},a=>{a instanceof Error?this.sendResponse({id:o,data:{message:a.message,name:a.name,stack:a.stack?a.stack.split(`
`):void 0},type:202}):this.sendResponse({id:o,data:a,type:203})}).finally(()=>{s.dispose(),this.activeRequests.delete(t.id)});let s=E(()=>n.cancel());this.activeRequests.set(t.id,s)}onEventListen(t){let e=this.channels.get(t.channelName);if(!e){this.collectPendingRequest(t);return}let n=t.id,o=e.listen(this.ctx,t.name,t.arg)(s=>this.sendResponse({id:n,data:s,type:204}));this.activeRequests.set(t.id,o)}disposeActiveRequest(t){let e=this.activeRequests.get(t.id);e&&(e.dispose(),this.activeRequests.delete(t.id))}collectPendingRequest(t){let e=this.pendingRequests.get(t.channelName);e||(e=[],this.pendingRequests.set(t.channelName,e));let n=setTimeout(()=>{console.error(`Unknown channel: ${t.channelName}`),t.type===100&&this.sendResponse({id:t.id,data:{name:"Unknown channel",message:`Channel name '${t.channelName}' timed out after ${this.timeoutDelay}ms`,stack:void 0},type:202})},this.timeoutDelay);e.push({request:t,timeoutTimer:n})}flushPendingRequests(t){let e=this.pendingRequests.get(t);if(e){for(let n of e)switch(clearTimeout(n.timeoutTimer),n.request.type){case 100:this.onPromise(n.request);break;case 102:this.onEventListen(n.request);break}this.pendingRequests.delete(t)}}dispose(){this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),rt(this.activeRequests.values()),this.activeRequests.clear()}};var wi=class{constructor(t,e=null){this.protocol=t;this.isDisposed=!1;this.state=0;this.activeRequests=new Set;this.handlers=new Map;this.lastRequestId=0;this._onDidInitialize=new x;this.onDidInitialize=this._onDidInitialize.event;this.protocolListener=this.protocol.onMessage(n=>this.onBuffer(n)),this.logger=e}getChannel(t){let e=this;return{call(n,r,o){return e.isDisposed?Promise.reject(new ae):e.requestPromise(t,n,r,o)},listen(n,r){return e.isDisposed?X.None:e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=Fe.None){let o=this.lastRequestId++,a={id:o,type:100,channelName:t,name:e,arg:n};if(r.isCancellationRequested)return Promise.reject(new ae);let l,c;return new Promise((d,f)=>{if(r.isCancellationRequested)return f(new ae);let g=()=>{let S=_=>{switch(_.type){case 201:this.handlers.delete(o),d(_.data);break;case 202:{this.handlers.delete(o);let I=new Error(_.data.message);I.stack=Array.isArray(_.data.stack)?_.data.stack.join(`
`):_.data.stack,I.name=_.data.name,f(I);break}case 203:this.handlers.delete(o),f(_.data);break}};this.handlers.set(o,S),this.sendRequest(a)},h=null;this.state===1?g():(h=Ii(S=>this.whenInitialized()),h.then(()=>{h=null,g()}));let v=()=>{h?(h.cancel(),h=null):this.sendRequest({id:o,type:101}),f(new ae)};l=r.onCancellationRequested(v),c={dispose:ii(()=>{v(),l.dispose()})},this.activeRequests.add(c)}).finally(()=>{l?.dispose(),this.activeRequests.delete(c)})}requestEvent(t,e,n){let r=this.lastRequestId++,s={id:r,type:102,channelName:t,name:e,arg:n},a=null,l=new x({onWillAddFirstListener:()=>{let u=()=>{this.activeRequests.add(l),this.sendRequest(s)};this.state===1?u():(a=Ii(d=>this.whenInitialized()),a.then(()=>{a=null,u()}))},onDidRemoveLastListener:()=>{a?(a.cancel(),a=null):(this.activeRequests.delete(l),this.sendRequest({id:r,type:103})),this.handlers.delete(r)}}),c=u=>l.fire(u.data);return this.handlers.set(r,c),l.event}sendRequest(t){switch(t.type){case 100:case 102:{let e=this.send([t.type,t.id,t.channelName,t.name],t.arg);this.logger?.logOutgoing(e,t.id,0,`${xi(t.type)}: ${t.channelName}.${t.name}`,t.arg);return}case 101:case 103:{let e=this.send([t.type,t.id]);this.logger?.logOutgoing(e,t.id,0,xi(t.type));return}}}send(t,e=void 0){let n=new Ya;return ds(n,t),ds(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new cs(t),n=Ri(e),r=Ri(e),o=n[0];switch(o){case 200:return this.logger?.logIncoming(t.byteLength,0,0,Qa(o)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,Qa(o),r),this.onResponse({type:n[0],id:n[1],data:r})}}onResponse(t){if(t.type===200){this.state=1,this._onDidInitialize.fire();return}this.handlers.get(t.id)?.(t)}get onDidInitializePromise(){return X.toPromise(this.onDidInitialize)}whenInitialized(){return this.state===1?Promise.resolve():this.onDidInitializePromise}dispose(){this.isDisposed=!0,this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),rt(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};R([oe],wi.prototype,"onDidInitializePromise",1);var Xa=class{constructor(t,e,n){this.channels=new Map;this._connections=new Set;this._onDidAddConnection=new x;this.onDidAddConnection=this._onDidAddConnection.event;this._onDidRemoveConnection=new x;this.onDidRemoveConnection=this._onDidRemoveConnection.event;this.disposables=new $;this.disposables.add(t(({protocol:r,onDidClientDisconnect:o})=>{let s=X.once(r.onMessage),a=new $,l=s(c=>{let u=new cs(c),d=Ri(u),f=new us(r,d,e,n),g=new wi(r,e);this.channels.forEach((v,S)=>f.registerChannel(S,v));let h={channelServer:f,channelClient:g,ctx:d};this._connections.add(h),this._onDidAddConnection.fire(h),a.add(o(()=>{f.dispose(),g.dispose(),this._connections.delete(h),this._onDidRemoveConnection.fire(h),this.disposables.delete(a),a.dispose()}))});a.add(l),this.disposables.add(a)}))}get connections(){let t=[];return this._connections.forEach(e=>t.push(e)),t}getChannel(t,e){let n=this;return{call(r,o,s){let a;if(Jo(e)){let c=Cm(n.connections.filter(e));a=c?Promise.resolve(c):X.toPromise(X.filter(n.onDidAddConnection,e))}else a=e.routeCall(n,r,o);let l=a.then(c=>c.channelClient.getChannel(t));return eh(l).call(r,o,s)},listen(r,o){if(Jo(e))return n.getMulticastEvent(t,e,r,o);let s=e.routeEvent(n,r,o).then(a=>a.channelClient.getChannel(t));return eh(s).listen(r,o)}}}getMulticastEvent(t,e,n,r){let o=this,s,a=new x({onWillAddFirstListener:()=>{s=new $;let l=new Da,c=new Map,u=f=>{let h=f.channelClient.getChannel(t).listen(n,r),v=l.add(h);c.set(f,v)},d=f=>{let g=c.get(f);g&&(g.dispose(),c.delete(f))};o.connections.filter(e).forEach(u),X.filter(o.onDidAddConnection,e)(u,void 0,s),o.onDidRemoveConnection(d,void 0,s),l.event(a.fire,a,s),s.add(l)},onDidRemoveLastListener:()=>{s?.dispose(),s=void 0}});return o.disposables.add(a),a.event}registerChannel(t,e){this.channels.set(t,e);for(let n of this._connections)n.channelServer.registerChannel(t,e)}dispose(){this.disposables.dispose();for(let t of this._connections)t.channelClient.dispose(),t.channelServer.dispose();this._connections.clear(),this.channels.clear(),this._onDidAddConnection.dispose(),this._onDidRemoveConnection.dispose()}};function eh(i){return{call(t,e,n){return i.then(r=>r.call(t,e,n))},listen(t,e){let n=new es;return i.then(r=>n.input=r.listen(t,e)),n.event}}}function th(i){let t=!1;return{call(e,n,r){return t?i.call(e,n,r):wn(0).then(()=>t=!0).then(()=>i.call(e,n,r))},listen(e,n){if(t)return i.listen(e,n);let r=new es;return wn(0).then(()=>t=!0).then(()=>r.input=i.listen(e,n)),r.event}}}var Ei;(r=>{function i(o,s,a){let l=o,c=a?.disableMarshalling,u=new Map;for(let d in l)e(d)&&u.set(d,X.buffer(l[d],d,!0,void 0,s));return new class{listen(d,f,g){let h=u.get(f);if(h)return h;let v=l[f];if(typeof v=="function"){if(n(f))return v.call(l,g);if(e(f))return u.set(f,X.buffer(l[f],f,!0,void 0,s)),u.get(f)}throw new Xt(`Event not found: ${f}`)}call(d,f,g){let h=l[f];if(typeof h=="function"){if(!c&&Array.isArray(g))for(let S=0;S<g.length;S++)g[S]=ls(g[S]);let v=h.apply(l,g);return v instanceof Promise||(v=Promise.resolve(v)),v}throw new Xt(`Method not found: ${f}`)}}}r.fromService=i;function t(o,s){let a=s?.disableMarshalling;return new Proxy({},{get(l,c){if(typeof c=="string")return s?.properties?.has(c)?s.properties.get(c):n(c)?function(u){return o.listen(c,u)}:e(c)?o.listen(c):async function(...u){let d;s&&!Ht(s.context)?d=[s.context,...u]:d=u;let f=await o.call(c,d);return a?f:ls(f)};throw new Xt(`Property not found: ${String(c)}`)}})}r.toService=t;function e(o){return o[0]==="o"&&o[1]==="n"&&mu(o.charCodeAt(2))}function n(o){return/^onDynamic/.test(o)&&mu(o.charCodeAt(9))}})(Ei||={});import{fork as g_}from"child_process";function nh(i){let t=i;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function q1(i){let t=[],e;try{let n=JSON.parse(i.arguments),r=n[n.length-1];r&&r.__$stack&&(n.pop(),e=r.__$stack),t.push(...n)}catch{t.push("Unable to log remote console arguments",i.arguments)}return{args:t,stack:e}}function H1(i){if(!i)return i;let t=i.indexOf(`
`);return t===-1?i:i.substring(0,t)}function rh(i,t){let{args:e,stack:n}=q1(i),r=typeof e[0]=="string"&&e.length===1,o=H1(n);o&&(o=`(${o.trim()})`);let s=[];if(typeof e[0]=="string"?o&&r?s=[`%c[${t}] %c${e[0]} %c${o}`,Pi("blue"),Pi(""),Pi("grey")]:s=[`%c[${t}] %c${e[0]}`,Pi("blue"),Pi(""),...e.slice(1)]:s=[`%c[${t}]%`,Pi("blue"),...e],o&&!r&&s.push(o),typeof console[i.severity]!="function")throw new Error("Unknown console method");console[i.severity].apply(console,s)}function Pi(i){return`color: ${i}`}function Lt(i){if(!i||typeof i!="object"||i instanceof RegExp)return i;let t=Array.isArray(i)?[]:{};return Object.entries(i).forEach(([e,n])=>{t[e]=n&&typeof n=="object"?Lt(n):n}),t}function ih(i){if(!i||typeof i!="object")return i;let t=[i];for(;t.length>0;){let e=t.shift();Object.freeze(e);for(let n in e)if(oh.call(e,n)){let r=e[n];typeof r=="object"&&!Object.isFrozen(r)&&!Nm(r)&&t.push(r)}}return i}var oh=Object.prototype.hasOwnProperty;function ps(i,t){return Mu(i,t,new Set)}function Mu(i,t,e){if(Ht(i))return i;let n=t(i);if(typeof n<"u")return n;if(Array.isArray(i)){let r=[];for(let o of i)r.push(Mu(o,t,e));return r}if(Pe(i)){if(e.has(i))throw new Error("Cannot clone recursive data-structure");e.add(i);let r={};for(let o in i)oh.call(i,o)&&(r[o]=Mu(i[o],t,e));return e.delete(i),r}return i}function ki(i,t,e=!0){return Pe(i)?(Pe(t)&&Object.keys(t).forEach(n=>{n in i?e&&(Pe(i[n])&&Pe(t[n])?ki(i[n],t[n],e):i[n]=t[n]):i[n]=t[n]}),i):t}function Ue(i,t){if(i===t)return!0;if(i==null||t===null||t===void 0||typeof i!=typeof t||typeof i!="object"||Array.isArray(i)!==Array.isArray(t))return!1;let e,n;if(Array.isArray(i)){if(i.length!==t.length)return!1;for(e=0;e<i.length;e++)if(!Ue(i[e],t[e]))return!1}else{let r=[];for(n in i)r.push(n);r.sort();let o=[];for(n in t)o.push(n);if(o.sort(),!Ue(r,o))return!1;for(e=0;e<r.length;e++)if(!Ue(i[r[e]],t[r[e]]))return!1}return!0}function Nu(i){let t=new Set;return JSON.stringify(i,(e,n)=>{if(Pe(n)||Array.isArray(n)){if(t.has(n))return"[Circular]";t.add(n)}return typeof n=="bigint"?`[BigInt ${n.toString()}]`:n})}import*as f_ from"child_process";import{promises as wA}from"fs";function sh(i){i&&(delete i.DEBUG,delete i.NODE_OPTIONS,Se&&delete i.LD_PRELOAD)}import*as G from"fs";import{tmpdir as Y1}from"os";import{promisify as ms}from"util";var j1=new Zt(1e4);function fs(i){return ah(i,"NFC",j1)}var K1=new Zt(1e4);function G1(i){return ah(i,"NFD",K1)}var J1=/[^\u0000-\u0080]/;function ah(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let r;return J1.test(i)?r=i.normalize(t):r=i,e.set(i,r),r}var Q1=(function(){let i=new Zt(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let r=G1(e).replace(t,""),o=(r.length===e.length?r:e).toLowerCase();return i.set(e,o),o}})();async function dh(i,t=0,e){if(vu(i))throw new Error("rimraf - will refuse to recursively delete root");return t===0?Fu(i):X1(i,e)}async function X1(i,t=Rg(Y1())){try{try{await G.promises.rename(i,t)}catch(e){return e.code==="ENOENT"?void 0:Fu(i)}Fu(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function Fu(i){return G.promises.rm(i,{recursive:!0,force:!0,maxRetries:3})}async function Za(i,t){try{return await lh(i,t)}catch(e){if(e.code==="ENOENT"&&q&&vu(i))try{return await lh(`${i}.`,t)}catch{}throw e}}async function lh(i,t){return e_(await(t?Z1(i):G.promises.readdir(i)))}async function Z1(i){try{return await G.promises.readdir(i,{withFileTypes:!0})}catch(n){n.code!=="ENOENT"&&console.warn("[node.js fs] readdir with filetypes failed with error: ",n)}let t=[],e=await Za(i);for(let n of e){let r=!1,o=!1,s=!1;try{let a=await G.promises.lstat(B(i,n));r=a.isFile(),o=a.isDirectory(),s=a.isSymbolicLink()}catch(a){a.code!=="ENOENT"&&console.warn("[node.js fs] unexpected error from lstat after readdir: ",a)}t.push({name:n,isFile:()=>r,isDirectory:()=>o,isSymbolicLink:()=>s})}return t}function e_(i){return i.map(t=>typeof t=="string"?Be?fs(t):t:(t.name=Be?fs(t.name):t.name,t))}async function t_(i){let t=await Za(i),e=[];for(let n of t)await ct.existsDirectory(B(i,n))&&e.push(n);return e}var ct;(n=>{async function i(r){let o;try{if(o=await G.promises.lstat(r),!o.isSymbolicLink())return{stat:o}}catch{}try{return{stat:await G.promises.stat(r),symbolicLink:o?.isSymbolicLink()?{dangling:!1}:void 0}}catch(s){if(s.code==="ENOENT"&&o)return{stat:o,symbolicLink:{dangling:!0}};if(q&&s.code==="EACCES")try{return{stat:await G.promises.stat(await G.promises.readlink(r)),symbolicLink:{dangling:!1}}}catch(a){if(a.code==="ENOENT"&&o)return{stat:o,symbolicLink:{dangling:!0}};throw a}throw s}}n.stat=i;async function t(r){try{let{stat:o,symbolicLink:s}=await n.stat(r);return o.isFile()&&s?.dangling!==!0}catch{}return!1}n.existsFile=t;async function e(r){try{let{stat:o,symbolicLink:s}=await n.stat(r);return o.isDirectory()&&s?.dangling!==!0}catch{}return!1}n.existsDirectory=e})(ct||={});var n_=new bi;function r_(i,t,e){return n_.queueFor(y.file(i),()=>{let n=s_(e);return new Promise((r,o)=>o_(i,t,n,s=>s?o(s):r()))},lt)}var uh=!0;function i_(i){uh=i}function o_(i,t,e,n){if(!uh)return G.writeFile(i,t,{mode:e.mode,flag:e.flag},n);G.open(i,e.flag,e.mode,(r,o)=>{if(r)return n(r);G.writeFile(o,t,s=>{if(s)return G.close(o,()=>n(s));G.fdatasync(o,a=>(a&&(console.warn("[node.js fs] fdatasync is now disabled for this session because it failed: ",a),i_(!1)),G.close(o,l=>n(l))))})})}function s_(i){return i?{mode:typeof i.mode=="number"?i.mode:438,flag:typeof i.flag=="string"?i.flag:"w"}:{mode:438,flag:"w"}}async function a_(i,t,e=6e4){if(i!==t)try{q&&typeof e=="number"?await ph(i,t,Date.now(),e):await G.promises.rename(i,t)}catch(n){if(i.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||i.endsWith("."))await fh(i,t,{preserveSymlinks:!1}),await dh(i,1);else throw n}}async function ph(i,t,e,n,r=0){try{return await G.promises.rename(i,t)}catch(o){if(o.code!=="EACCES"&&o.code!=="EPERM"&&o.code!=="EBUSY")throw o;if(Date.now()-e>=n)throw console.error(`[node.js fs] rename failed after ${r} retries with error: ${o}`),o;if(r===0){let s=!1;try{let{stat:a}=await ct.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw o}return await wn(Math.min(100,r*10)),ph(i,t,e,n,r+1)}}async function fh(i,t,e){return mh(i,t,{root:{source:i,target:t},options:e,handledSourcePaths:new Set})}var ch=511;async function mh(i,t,e){if(e.handledSourcePaths.has(i))return;e.handledSourcePaths.add(i);let{stat:n,symbolicLink:r}=await ct.stat(i);if(r){if(e.options.preserveSymlinks)try{return await d_(i,t,e)}catch{}if(r.dangling)return}return n.isDirectory()?l_(i,t,n.mode&ch,e):c_(i,t,n.mode&ch)}async function l_(i,t,e,n){await G.promises.mkdir(t,{recursive:!0,mode:e});let r=await Za(i);for(let o of r)await mh(B(i,o),B(t,o),n)}async function c_(i,t,e){await G.promises.copyFile(i,t),await G.promises.chmod(t,e)}async function d_(i,t,e){let n=await G.promises.readlink(i);Cn(n,e.root.source,!Se)&&(n=B(e.root.target,n.substr(e.root.source.length+1))),await G.promises.symlink(n,t)}async function u_(i){try{return await ms(G.realpath)(i)}catch{let t=p_(i);return await G.promises.access(t,G.constants.R_OK),t}}function p_(i){return hi(Dt(i),he)}var Ie=new class{get read(){return(i,t,e,n,r)=>new Promise((o,s)=>{G.read(i,t,e,n,r,(a,l,c)=>a?s(a):o({bytesRead:l,buffer:c}))})}get write(){return(i,t,e,n,r)=>new Promise((o,s)=>{G.write(i,t,e,n,r,(a,l,c)=>a?s(a):o({bytesWritten:l,buffer:c}))})}get fdatasync(){return ms(G.fdatasync)}get open(){return ms(G.open)}get close(){return ms(G.close)}get ftruncate(){return ms(G.ftruncate)}async exists(i){try{return await G.promises.access(i),!0}catch{return!1}}get readdir(){return Za}get readDirsInDir(){return t_}get writeFile(){return r_}get rm(){return dh}get rename(){return a_}get copy(){return fh}get realpath(){return u_}};function hh(i=Ne){return i.comspec||"cmd.exe"}function yh(i){let t=[],e=!1,n=function(r){if(e){t.push(r);return}(!i.send(r,s=>{if(s&&console.error(s),e=!1,t.length>0){let a=t.slice(0);t=[],a.forEach(l=>n(l))}})||q)&&(e=!0)};return{send:n}}var el=class extends us{constructor(t){super({send:e=>{try{process.send?.(e.buffer.toString("base64"))}catch{}},onMessage:X.fromNodeEventEmitter(process,"message",e=>P.wrap(Buffer.from(e,"base64")))},t),process.once("disconnect",()=>this.dispose())}},tl=class{constructor(t,e){this.modulePath=t;this.options=e;this.activeRequests=new Set;this.channels=new Map;this._onDidProcessExit=new x;this.onDidProcessExit=this._onDidProcessExit.event;let n=e.timeout||6e4;this.disposeDelayer=new Ar(n),this.child=null,this._client=null}getChannel(t){let e=this;return{call(n,r,o){return e.requestPromise(t,n,r,o)},listen(n,r){return e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=Fe.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(r.isCancellationRequested)return Promise.reject(ya());this.disposeDelayer.cancel();let o=this.getCachedChannel(t),s=Ii(c=>o.call(e,n,c)),a=r.onCancellationRequested(()=>s.cancel()),l=E(()=>s.cancel());return this.activeRequests.add(l),s.finally(()=>{a.dispose(),this.activeRequests.delete(l),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}),s}requestEvent(t,e,n){if(!this.disposeDelayer)return X.None;this.disposeDelayer.cancel();let r,o=new x({onWillAddFirstListener:()=>{r=this.getCachedChannel(t).listen(e,n)(o.fire,o),this.activeRequests.add(r)},onDidRemoveLastListener:()=>{this.activeRequests.delete(r),r.dispose(),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}});return o.event}get client(){if(!this._client){let t=this.options.args||[],e=Object.create(null);e.env={...Lt(process.env),VSCODE_PARENT_PID:String(process.pid)},this.options.env&&(e.env={...e.env,...this.options.env}),this.options.freshExecArgv&&(e.execArgv=[]),typeof this.options.debug=="number"&&(e.execArgv=["--nolazy","--inspect="+this.options.debug]),typeof this.options.debugBrk=="number"&&(e.execArgv=["--nolazy","--inspect-brk="+this.options.debugBrk]),e.execArgv===void 0&&(e.execArgv=process.execArgv.filter(d=>!/^--inspect(-brk)?=/.test(d)).filter(d=>!d.startsWith("--vscode-"))),sh(e.env),this.child=g_(this.modulePath,t,e);let n=new x,o=X.fromNodeEventEmitter(this.child,"message",d=>d)(d=>{if(nh(d)){rh(d,`IPC Library: ${this.options.serverName}`);return}n.fire(P.wrap(Buffer.from(d,"base64")))}),s=this.options.useQueue?yh(this.child):this.child,a=d=>this.child?.connected&&s.send(d.buffer.toString("base64")),l=n.event,c={send:a,onMessage:l};this._client=new wi(c);let u=()=>this.disposeClient();process.once("exit",u),this.child.on("error",d=>console.warn('IPC "'+this.options.serverName+'" errored with '+d)),this.child.on("exit",(d,f)=>{process.removeListener("exit",u),o.dispose(),this.activeRequests.forEach(g=>rt(g)),this.activeRequests.clear(),d!==0&&f!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+d+" and signal "+f),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:d,signal:f})})}return this._client}getCachedChannel(t){let e=this.channels.get(t);return e||(e=this.client.getChannel(t),this.channels.set(t,e)),e}disposeClient(){this._client&&(this.child&&(this.child.kill(),this.child=null),this._client=null,this.channels.clear())}dispose(){this._onDidProcessExit.dispose(),this.disposeDelayer?.cancel(),this.disposeDelayer=void 0,this.disposeClient(),this.activeRequests.clear()}};function nl(i){return!!i.parentPort}var Uu=class{constructor(t){this.port=t;this.onMessage=X.fromNodeEventEmitter(this.port,"message",e=>e.data?P.wrap(e.data):P.alloc(0)),t.start()}send(t){this.port.postMessage(t.buffer)}disconnect(){this.port.close()}},gs=class i extends Xa{static getOnDidClientConnect(t){Um(nl(process),"Electron Utility Process");let e=new x;return process.parentPort.on("message",n=>{if(t?.handledClientConnection(n))return;let r=n.ports.at(0);r&&e.fire(r)}),X.map(e.event,n=>({protocol:new Uu(n),onDidClientDisconnect:X.fromNodeEventEmitter(n,"close")}))}constructor(t){super(i.getOnDidClientConnect(t))}};var H=(function(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let i=new Uint8Array(16),t=[];for(let e=0;e<256;e++)t.push(e.toString(16).padStart(2,"0"));return function(){crypto.getRandomValues(i),i[6]=i[6]&15|64,i[8]=i[8]&63|128;let n=0,r="";return r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r}})();import*as ga from"os";import*as ma from"inspector";var Gt;(r=>{r.serviceIds=new Map,r.DI_TARGET="$di$target",r.DI_DEPENDENCIES="$di$dependencies";function n(o){return o[r.DI_DEPENDENCIES]||[]}r.getServiceDependencies=n})(Gt||={});var Ve=z("instantiationService");function y_(i,t,e){t[Gt.DI_TARGET]===t?t[Gt.DI_DEPENDENCIES].push({id:i,index:e}):(t[Gt.DI_DEPENDENCIES]=[{id:i,index:e}],t[Gt.DI_TARGET]=t)}function z(i){if(Gt.serviceIds.has(i))return Gt.serviceIds.get(i);let t=function(e,n,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");y_(t,e,r)};return t.toString=()=>i,Gt.serviceIds.set(i,t),t}var hs="VSCODE_AGENT_HOST_CLAUDE_SDK_PATH";var vh="agent-host/otel/agent-host-traces.db",u2=Object.freeze({Enabled:"COPILOT_OTEL_ENABLED",ExporterType:"COPILOT_OTEL_EXPORTER_TYPE",OtlpEndpoint:"OTEL_EXPORTER_OTLP_ENDPOINT",OtlpEndpointAlt:"COPILOT_OTEL_ENDPOINT",OtlpProtocol:"OTEL_EXPORTER_OTLP_PROTOCOL",OtlpHeaders:"OTEL_EXPORTER_OTLP_HEADERS",CaptureContent:"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT",FilePath:"COPILOT_OTEL_FILE_EXPORTER_PATH",SourceName:"COPILOT_OTEL_SOURCE_NAME",DbSpanExporterEnabled:"COPILOT_OTEL_DB_SPAN_EXPORTER_ENABLED"});var Ai={resource:"https://api.github.com",resource_name:"GitHub Copilot",authorization_servers:["https://github.com/login/oauth"],scopes_supported:["read:user","user:email"],required:!0},j;(n=>{function i(r,o){return y.from({scheme:r,path:`/${o}`})}n.uri=i;function t(r){return(typeof r=="string"?y.parse(r):r).path.substring(1)}n.id=t;function e(r){return(typeof r=="string"?y.parse(r):r).scheme||void 0}n.provider=e})(j||={});var p2=z("agentService"),f2=z("agentHostService");function Vu(i,t){return t&&(i.stack||i.stacktrace)?m(116,null,Sh(i),bh(i.stack)||bh(i.stacktrace)):Sh(i)}function bh(i){return Array.isArray(i)?i.join(`
`):i}function Sh(i){return i.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${i.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof i.code=="string"&&typeof i.errno=="number"&&typeof i.syscall=="string"?m(115,null,i.message):i.message||m(113,null)}function Ct(i=null,t=!1){if(!i)return m(113,null);if(Array.isArray(i)){let e=ri(i),n=Ct(e[0],t);return e.length>1?m(114,null,n,e.length):n}if(Ee(i))return i;if(i.detail){let e=i.detail;if(e.error)return Vu(e.error,t);if(e.exception)return Vu(e.exception,t)}return i.stack?Vu(i,t):i.message?i.message:m(113,null)}var y2=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list",html:"text/html"});var Wu={".aac":"audio/x-aac",".avi":"video/x-msvideo",".bmp":"image/bmp",".flv":"video/x-flv",".gif":"image/gif",".ico":"image/x-icon",".jpe":["image/jpg","image/jpeg"],".jpeg":["image/jpg","image/jpeg"],".jpg":["image/jpg","image/jpeg"],".m1v":"video/mpeg",".m2a":"audio/mpeg",".m2v":"video/mpeg",".m3a":"audio/mpeg",".mid":"audio/midi",".midi":"audio/midi",".mk3d":"video/x-matroska",".mks":"video/x-matroska",".mkv":"video/x-matroska",".mov":"video/quicktime",".movie":"video/x-sgi-movie",".mp2":"audio/mpeg",".mp2a":"audio/mpeg",".mp3":"audio/mpeg",".mp4":"video/mp4",".mp4a":"audio/mp4",".mp4v":"video/mp4",".mpe":"video/mpeg",".mpeg":"video/mpeg",".mpg":"video/mpeg",".mpg4":"video/mp4",".mpga":"audio/mpeg",".oga":"audio/ogg",".ogg":"audio/ogg",".opus":"audio/opus",".ogv":"video/ogg",".png":"image/png",".psd":"image/vnd.adobe.photoshop",".qt":"video/quicktime",".spx":"audio/ogg",".svg":"image/svg+xml",".tga":"image/x-tga",".tif":"image/tiff",".tiff":"image/tiff",".wav":"audio/x-wav",".webm":"video/webm",".webp":"image/webp",".wma":"audio/x-ms-wma",".wmv":"video/x-ms-wmv",".woff":"application/font-woff"};function rl(i){let t=Ma(i),e=Wu[t.toLowerCase()];return Array.isArray(e)?e[0]:e}function Ih(i){for(let t in Wu){let e=Wu[t];if(Array.isArray(e)?e.includes(i):e===i)return t}}var ot=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return xh(t,this)}},_h=new Map,$u=new WeakMap;function xh(i,t){let e=$u.get(i);if(e)return e;let n=v_(i,t);if(n){let r=_h.get(n)??0;r++,_h.set(n,r);let o=r===1?n:`${n}#${r}`;return $u.set(i,o),o}}function v_(i,t){let e=$u.get(i);if(e)return e;let n=t.owner?S_(t.owner)+".":"",r,o=t.debugNameSource;if(o!==void 0)if(typeof o=="function"){if(r=o(),r!==void 0)return n+r}else return n+o;let s=t.referenceFn;if(s!==void 0&&(r=ys(s),r!==void 0))return n+r;if(t.owner!==void 0){let a=b_(t.owner,i);if(a!==void 0)return n+a}}function b_(i,t){for(let e in i)if(i[e]===t)return e}var Th=new Map,Ch=new WeakMap;function S_(i){let t=Ch.get(i);if(t)return t;let e=Bu(i)??"Object",n=Th.get(e)??0;n++,Th.set(e,n);let r=n===1?e:`${e}#${n}`;return Ch.set(i,r),r}function Bu(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function ys(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function Mt(i,t){return i===t}function I_(){return(i,t)=>i===t}function __(i,t,e){return qt(i,t,e??Mt)}function T_(i){return(t,e)=>qt(t,e,i??Mt)}function il(i,t){if(i===t)return!0;if(Array.isArray(i)&&Array.isArray(t)){if(i.length!==t.length)return!1;for(let e=0;e<i.length;e++)if(!il(i[e],t[e]))return!1;return!0}if(i&&typeof i=="object"&&t&&typeof t=="object"&&Object.getPrototypeOf(i)===Object.prototype&&Object.getPrototypeOf(t)===Object.prototype){let e=i,n=t,r=Object.keys(e),o=Object.keys(n),s=new Set(o);if(r.length!==o.length)return!1;for(let a of r)if(!s.has(a)||!il(e[a],n[a]))return!1;return!0}return!1}function C_(){return(i,t)=>il(i,t)}function x_(i,t){return JSON.stringify(i)===JSON.stringify(t)}function w_(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function R_(){return(i,t)=>i.equals(t)}function E_(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function P_(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var k_;(d=>(d.strict=Mt,d.strictC=I_,d.array=__,d.arrayC=T_,d.structural=il,d.structuralC=C_,d.jsonStringify=x_,d.jsonStringifyC=w_,d.thisC=R_,d.ifDefined=E_,d.ifDefinedC=P_))(k_||={});function qu(i){let t=new Error("BugIndicatingErrorRecovery: "+i);De(t),console.error("recovered from an error that indicates a bug",t)}var Mr;function vs(i){Mr?Mr instanceof ol?Mr.loggers.push(i):Mr=new ol([Mr,i]):Mr=i}function _e(){return Mr}var Hu;function wh(i){Hu=i}function Rh(i){Hu&&Hu(i)}var ol=class{constructor(t){this.loggers=t}handleObservableCreated(t,e){for(let n of this.loggers)n.handleObservableCreated(t,e)}handleOnListenerCountChanged(t,e){for(let n of this.loggers)n.handleOnListenerCountChanged(t,e)}handleObservableUpdated(t,e){for(let n of this.loggers)n.handleObservableUpdated(t,e)}handleAutorunCreated(t,e){for(let n of this.loggers)n.handleAutorunCreated(t,e)}handleAutorunDisposed(t){for(let e of this.loggers)e.handleAutorunDisposed(t)}handleAutorunDependencyChanged(t,e,n){for(let r of this.loggers)r.handleAutorunDependencyChanged(t,e,n)}handleAutorunStarted(t){for(let e of this.loggers)e.handleAutorunStarted(t)}handleAutorunFinished(t){for(let e of this.loggers)e.handleAutorunFinished(t)}handleDerivedDependencyChanged(t,e,n){for(let r of this.loggers)r.handleDerivedDependencyChanged(t,e,n)}handleDerivedCleared(t){for(let e of this.loggers)e.handleDerivedCleared(t)}handleBeginTransaction(t){for(let e of this.loggers)e.handleBeginTransaction(t)}handleEndTransaction(t){for(let e of this.loggers)e.handleEndTransaction(t)}};function Fr(i,t){let e=new Nr(i,t);try{i(e)}finally{e.finish()}}function zu(i,t,e){i?t(i):Fr(t,e)}var Nr=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];_e()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():ys(this._fn)}updateObserver(t,e){if(!this._updatingObservers){qu("Transaction already finished!"),Fr(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){qu("transaction.finish() has already been called!");return}for(let e=0;e<t.length;e++){let{observer:n,observable:r}=t[e];n.endUpdate(r)}this._updatingObservers=null,_e()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var qe;(n=>{let i=!1;function t(){i=!0}n.enable=t;function e(){if(!i)return;let r=Error,o=r.stackTraceLimit;r.stackTraceLimit=3;let s=new Error().stack;return r.stackTraceLimit=o,ju.fromStack(s,2)}n.ofCaller=e})(qe||={});var ju=class i{constructor(t,e,n,r){this.fileName=t;this.line=e;this.column=n;this.id=r}static fromStack(t,e){let n=t.split(`
`),r=A_(n[e+1]);if(r)return new i(r.fileName,r.line,r.column,r.id)}};function A_(i){let t=i.match(/\((.*):(\d+):(\d+)\)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:i};let e=i.match(/at ([^\(\)]*):(\d+):(\d+)/);if(e)return{fileName:e[1],line:parseInt(e[2]),column:parseInt(e[3]),id:i}}var Ku;function Eh(i){Ku=i}var Ph;function kh(i){Ph=i}var Ah;function Dh(i){Ah=i}var Gu;function Oh(i){Gu=i}var sl=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=qe.ofCaller()){let r=e===void 0?void 0:t,o=e===void 0?t:e;return Ku({owner:r,debugName:()=>{let s=ys(o);if(s!==void 0)return s;let l=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(o.toString());if(l)return`${this.debugName}.${l[2]}`;if(!r)return`${this.debugName} (mapped)`},debugReferenceFn:o},s=>o(this.read(s),s),n)}flatten(){return Ku({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(Ph(this,e)),this}keepObserved(t){return t.add(Ah(this)),this}get debugValue(){return this.get()}get debug(){return new Ju(this)}},Ju=class{constructor(t){this.observable=t}getDependencyGraph(){return Gu(this.observable,{type:"dependencies"})}getObserverGraph(){return Gu(this.observable,{type:"observers"})}},Jt=class extends sl{constructor(e){super();this._observers=new Set;_e()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&_e()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&_e()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!_e();return Rh(this),e||_e()?.handleObservableCreated(this,qe.ofCaller()),this}debugGetObservers(){return this._observers}};function nn(i,t,e=qe.ofCaller()){let n;return typeof i=="string"?n=new ot(void 0,i,void 0):n=new ot(i,void 0,void 0),new En(n,t,Mt,e)}var En=class extends Jt{constructor(e,n,r,o){super(o);this._debugNameData=e;this._equalityComparator=r;this._value=n,_e()?.handleObservableUpdated(this,{hadValue:!1,newValue:n,change:void 0,didChange:!0,oldValue:void 0})}get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}get(){return this._value}set(e,n,r){if(r===void 0&&this._equalityComparator(this._value,e))return;let o;n||(n=o=new Nr(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),_e()?.handleObservableUpdated(this,{oldValue:s,newValue:e,change:r,didChange:!0,hadValue:!0});for(let a of this._observers)n.updateObserver(a,this),a.handleChange(this,r)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}};function D_(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Pn=class{constructor(t,e,n,r){this._debugNameData=t;this._runFn=e;this._changeTracker=n;this._state=2;this._updateCount=0;this._disposed=!1;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._isRunning=!1;this._iteration=0;this._store=void 0;this._delayedStore=void 0;this._changeSummary=this._changeTracker?.createChangeSummary(void 0),_e()?.handleAutorunCreated(this,r),this._run(),Hn(this)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}dispose(){if(!this._disposed){this._disposed=!0;for(let t of this._dependencies)t.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),_e()?.handleAutorunDisposed(this),zn(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){_e()?.handleAutorunStarted(this);let e=this._changeSummary,n=this._delayedStore;n!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&(this._changeTracker.beforeUpdate?.(this,e),this._changeSummary=this._changeTracker.createChangeSummary(e)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,e)}catch(r){$n(r)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||_e()?.handleAutorunFinished(this);for(let e of this._dependenciesToBeRemoved)e.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(t){this._state===3&&(this._checkIterations(),this._state=1),this._updateCount++}endUpdate(t){try{if(this._updateCount===1){this._iteration=1;do{if(this._checkIterations())return;if(this._state===1){this._state=3;for(let e of this._dependencies)if(e.reportChanges(),this._state===2)break}this._iteration++,this._state!==3&&this._run()}while(this._state!==3)}}finally{this._updateCount--}Ko(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){_e()?.handleAutorunDependencyChanged(this,t,e);try{(!this._changeTracker||this._changeTracker.handleChange({changedObservable:t,change:e,didChange:r=>r===t},this._changeSummary))&&(this._checkIterations(),this._state=2)}catch(n){$n(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new ve("The reader object cannot be used outside its compute function!")}readObservable(t){if(this._ensureNoRunning(),this._disposed)return t.get();t.addObserver(this);let e=t.get();return this._dependencies.add(t),this._dependenciesToBeRemoved.delete(t),e}get store(){if(this._ensureNoRunning(),this._disposed)throw new ve("Cannot access store after dispose");return this._store===void 0&&(this._store=new $),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new ve("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new $),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:D_(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?($n(new ve(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function Di(i,t=qe.ofCaller()){return new Pn(new ot(void 0,void 0,i),i,void 0,t)}function O_(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Qe=class extends Jt{constructor(e,n,r,o=void 0,s,a){super(a);this._debugNameData=e;this._computeFn=n;this._changeTracker=r;this._handleLastObserverRemoved=o;this._equalityComparator=s;this._state=0;this._value=void 0;this._updateCount=0;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._changeSummary=void 0;this._isUpdating=!1;this._isComputing=!1;this._didReportChange=!1;this._isInBeforeUpdate=!1;this._isReaderValid=!1;this._store=void 0;this._delayedStore=void 0;this._removedObserverToCallEndUpdateOn=null;this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}onLastObserverRemoved(){this._state=0,this._value=void 0,_e()?.handleDerivedCleared(this);for(let e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),this._handleLastObserverRemoved?.()}get(){if(this._isComputing,this._observers.size===0){let n;try{this._isReaderValid=!0;let r;this._changeTracker&&(r=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,r)),n=this._computeFn(this,r)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),n}else{do{if(this._state===1){for(let n of this._dependencies)if(n.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){let e=!1;this._isComputing=!0,this._didReportChange=!1;let n=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=n;try{let r=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,r),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(r));let o=this._state!==0,s=this._value;this._state=3;let a=this._delayedStore;a!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,r)}finally{this._isReaderValid=!1;for(let l of this._dependenciesToBeRemoved)l.removeObserver(this);this._dependenciesToBeRemoved.clear(),a!==void 0&&a.dispose()}e=this._didReportChange||o&&!this._equalityComparator(s,this._value),_e()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:o})}catch(r){$n(r)}if(this._isComputing=!1,!this._didReportChange&&e)for(let r of this._observers)r.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new ve("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{let n=this._updateCount===1;if(this._state===3&&(this._state=1,!n))for(let r of this._observers)r.handlePossibleChange(this);if(n)for(let r of this._observers)r.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){let n=[...this._observers];for(let r of n)r.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){let r=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(let o of r)o.endUpdate(this)}}Ko(()=>this._updateCount>=0)}handlePossibleChange(e){if(this._state===3&&this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)){this._state=1;for(let n of this._observers)n.handlePossibleChange(this)}}handleChange(e,n){if(this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)||this._isInBeforeUpdate){_e()?.handleDerivedDependencyChanged(this,e,n);let r=!1;try{r=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:n,didChange:s=>s===e},this._changeSummary):!0}catch(s){$n(s)}let o=this._state===3;if(r&&(this._state===1||o)&&(this._state=2,o))for(let s of this._observers)s.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new ve("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);let n=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),n}reportChange(e){this._ensureReaderValid(),this._didReportChange=!0;for(let n of this._observers)n.handleChange(this,e)}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new $),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new $),this._delayedStore}addObserver(e){let n=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),n&&(this._removedObserverToCallEndUpdateOn?.delete(e)||e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:O_(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this.beginUpdate(this);try{this._isComputing?this._state=2:this._recompute()}finally{this.endUpdate(this)}}setValue(e,n,r){this._value=e;let o=this._observers;n.updateObserver(this,this);for(let s of o)s.handleChange(this,r)}};function Qu(i,t,e=qe.ofCaller()){return new Qe(new ot(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??Mt,e)}Eh(Qu);function Oi(...i){let t,e,n,r;return i.length===2?[e,n]=i:[t,e,n,r]=i,new Nt(new ot(t,void 0,n),e,n,()=>Nt.globalTransaction,Mt,r??qe.ofCaller())}var Nt=class extends Jt{constructor(e,n,r,o,s,a){super(a);this._debugNameData=e;this.event=n;this._getValue=r;this._getTransaction=o;this._equalityComparator=s;this._hasValue=!1;this.handleEvent=e=>{let n=this._getValue(e),r=this._value,o=!this._hasValue||!this._equalityComparator(r,n),s=!1;o&&(this._value=n,this._hasValue&&(s=!0,zu(this._getTransaction(),a=>{_e()?.handleObservableUpdated(this,{oldValue:r,newValue:n,change:void 0,didChange:o,hadValue:this._hasValue});for(let l of this._observers)a.updateObserver(l,this),l.handleChange(this,void 0)},()=>{let a=this.getDebugName();return"Event fired"+(a?`: ${a}`:"")})),this._hasValue=!0),s||_e()?.handleObservableUpdated(this,{oldValue:r,newValue:n,change:void 0,didChange:o,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){let e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}};(e=>{e.Observer=Nt;function t(n,r){let o=!1;Nt.globalTransaction===void 0&&(Nt.globalTransaction=n,o=!0);try{r()}finally{o&&(Nt.globalTransaction=void 0)}}e.batchEventsGlobally=t})(Oi||={});function Mh(i){let t=new al(!1,void 0);return i.addObserver(t),E(()=>{i.removeObserver(t)})}Dh(Mh);function Nh(i,t){let e=new al(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return E(()=>{i.removeObserver(e)})}kh(Nh);var al=class{constructor(t,e){this._forceRecompute=t;this._handleValue=e;this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges()),this._counter--}handlePossibleChange(t){}handleChange(t,e){}};var ll;function Uh(i){ll||(ll=new bs,vs(ll)),ll.addFilteredObj(i)}var bs=class{constructor(){this.indentation=0;this.changedObservablesSets=new WeakMap}addFilteredObj(t){this._filteredObjects||(this._filteredObjects=new Set),this._filteredObjects.add(t)}_isIncluded(t){return this._filteredObjects?.has(t)??!0}textToConsoleArgs(t){return V_([Li(B_("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[Li(" "),Ft(xt(t.oldValue,70),{color:"red",strikeThrough:!0}),Li(" "),Ft(xt(t.newValue,60),{color:"green"})]:[Li(" (unchanged)")]:[Li(" "),Ft(xt(t.newValue,60),{color:"green"}),Li(" (initial)")]}handleObservableCreated(t){if(t instanceof Qe){let e=t;if(this.changedObservablesSets.set(e,new Set),!1){let r=[];e.__debugUpdating=r;let o=e.beginUpdate;e.beginUpdate=a=>(r.push(a),o.apply(e,[a]));let s=e.endUpdate;e.endUpdate=a=>{let l=r.indexOf(a);return l===-1&&console.error("endUpdate called without beginUpdate",e.debugName,a.debugName),r.splice(l,1),s.apply(e,[a])}}}}handleOnListenerCountChanged(t,e){}handleObservableUpdated(t,e){if(this._isIncluded(t)){if(t instanceof Qe){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Mi("observable value changed"),Ft(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return Ft(" (changed deps: "+[...t].map(e=>e.debugName).join(", ")+")",{color:"gray"})}handleDerivedDependencyChanged(t,e,n){this._isIncluded(t)&&this.changedObservablesSets.get(t)?.add(e)}_handleDerivedRecomputed(t,e){if(!this._isIncluded(t))return;let n=this.changedObservablesSets.get(t);n&&(console.log(...this.textToConsoleArgs([Mi("derived recomputed"),Ft(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e),this.formatChanges(n),{data:[{fn:t._debugNameData.referenceFn??t._computeFn}]}])),n.clear())}handleDerivedCleared(t){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Mi("derived cleared"),Ft(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Mi("observable from event triggered"),Ft(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e),{data:[{fn:t._getValue}]}]))}handleAutorunCreated(t){this._isIncluded(t)&&this.changedObservablesSets.set(t,new Set)}handleAutorunDisposed(t){}handleAutorunDependencyChanged(t,e,n){this._isIncluded(t)&&this.changedObservablesSets.get(t).add(e)}handleAutorunStarted(t){let e=this.changedObservablesSets.get(t);e&&(this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Mi("autorun"),Ft(t.debugName,{color:"BlueViolet"}),this.formatChanges(e),{data:[{fn:t._debugNameData.referenceFn??t._runFn}]}])),e.clear(),this.indentation++)}handleAutorunFinished(t){this.indentation--}handleBeginTransaction(t){let e=t.getDebugName();e===void 0&&(e=""),this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Mi("transaction"),Ft(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function V_(i){let t=new Array,e=[],n="";function r(s){if("length"in s)for(let a of s)a&&r(a);else"text"in s?(n+=`%c${s.text}`,t.push(s.style),s.data&&e.push(...s.data)):"data"in s&&e.push(...s.data)}r(i);let o=[n,...t];return o.push(...e),o}function Li(i){return Ft(i,{color:"black"})}function Mi(i){return Ft(q_(`${i}: `,10),{color:"black",bold:!0})}function Ft(i,t={color:"black"}){function e(r){return Object.entries(r).reduce((o,[s,a])=>`${o}${s}:${a};`,"")}let n={color:t.color};return t.strikeThrough&&(n["text-decoration"]="line-through"),t.bold&&(n["font-weight"]="bold"),{text:i,style:e(n)}}function xt(i,t){switch(typeof i){case"number":return""+i;case"string":return i.length+2<=t?`"${i}"`:`"${i.substr(0,t-7)}"+...`;case"boolean":return i?"true":"false";case"undefined":return"undefined";case"object":return i===null?"null":Array.isArray(i)?W_(i,t):$_(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function W_(i,t){let e="[ ",n=!0;for(let r of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${xt(r,t-e.length)}`}return e+=" ]",e}function $_(i,t){if(typeof i.toString=="function"&&i.toString!==Object.prototype.toString){let o=i.toString();return o.length<=t?o:o.substring(0,t-3)+"..."}let e=Bu(i),n=e?e+"(":"{ ",r=!0;for(let[o,s]of Object.entries(i)){if(r||(n+=", "),n.length-5>t){n+="...";break}r=!1,n+=`${o}: ${xt(s,t-n.length)}`}return n+=e?")":" }",n}function B_(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function q_(i,t){for(;i.length<t;)i+=" ";return i}var cl=class i{constructor(t,e){this._channelFactory=t;this._getHandler=e;this._channel=this._channelFactory({handleNotification:o=>{let s=o,a=this._getHandler().notifications[s[0]];if(!a)throw new Error(`Unknown notification "${s[0]}"!`);a(...s[1])},handleRequest:o=>{let s=o;try{return{type:"result",value:this._getHandler().requests[s[0]](...s[1])}}catch(a){return{type:"error",value:a}}}});let n=new Proxy({},{get:(o,s)=>async(...a)=>{let l=await this._channel.sendRequest([s,a]);if(l.type==="error")throw l.value;return l.value}}),r=new Proxy({},{get:(o,s)=>(...a)=>{this._channel.sendNotification([s,a])}});this.api={notifications:r,requests:n}}static createHost(t,e){return new i(t,e)}static createClient(t,e){return new i(t,e)}};function Vh(i,t){let e=globalThis,n=[],r,{channel:o,handler:s}=H_({sendNotification:l=>{r?r.sendNotification(l):n.push(l)}}),a;return(e.$$debugValueEditor_debugChannels??(e.$$debugValueEditor_debugChannels={}))[i]=l=>{a=t(),r=l;for(let c of n)l.sendNotification(c);return n=[],s},cl.createClient(o,()=>{if(!a)throw new Error("Not supported");return a})}function H_(i){let t;return{channel:n=>(t=n,{sendNotification:r=>{i.sendNotification(r)},sendRequest:r=>{throw new Error("not supported")}}),handler:{handleRequest:n=>n.type==="notification"?t?.handleNotification(n.data):t?.handleRequest(n.data)}}}var dl=class{constructor(){this._timeout=void 0}throttle(t,e){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,t()},e))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}};function Yu(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?Yu(i[e],t[e]):i[e]=t[e]}function Xu(i,t){for(let e in t)t[e]===null?delete i[e]:i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?Xu(i[e],t[e]):i[e]=t[e]}var ul=class i{constructor(){this._declarationId=0;this._instanceId=0;this._declarations=new Map;this._instanceInfos=new WeakMap;this._aliveInstances=new Map;this._activeTransactions=new Set;this._channel=Vh("observableDevTools",()=>({notifications:{setDeclarationIdFilter:t=>{},logObservableValue:t=>{console.log("logObservableValue",t)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{let t={};for(let e of this._declarations.values())t[e.id]=e;return{decls:t}},getSummarizedInstances:()=>null,getObservableValueInfo:t=>({observers:[...this._aliveInstances.get(t).debugGetObservers()].map(n=>this._formatObserver(n)).filter(Bn)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(Bn),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(Bn)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(Bn)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof Qe)n.debugSetValue(e);else if(n instanceof En)n.debugSetValue(e);else if(n instanceof Nt)n.debugSetValue(e);else throw new ve("Observable is not supported");let r=[...n.debugGetObservers()];for(let o of r)o.beginUpdate(n);for(let o of r)o.handleChange(n,void 0);for(let o of r)o.endUpdate(n)},getValue:t=>{let e=this._aliveInstances.get(t);if(e instanceof Qe)return xt(e.debugGetState().value,200);if(e instanceof En)return xt(e.debugGetState().value,200)},logValue:t=>{let e=this._aliveInstances.get(t);if(e&&"get"in e)console.log("Logged Value:",e.get());else throw new ve("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof Qe)e.debugRecompute();else if(e instanceof Pn)e.debugRerun();else throw new ve("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new dl;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};qe.enable()}static{this._instance=void 0}static getInstance(){return i._instance===void 0&&(i._instance=new i),i._instance}getTransactionState(){let t=[],e=[...this._activeTransactions];if(e.length===0)return;let n=e.flatMap(o=>o.debugGetUpdatingObservers()??[]).map(o=>o.observer),r=new Set;for(;n.length>0;){let o=n.shift();if(r.has(o))continue;r.add(o);let s=this._getInfo(o,a=>{r.has(a)||n.push(a)});s&&t.push(s)}return{names:e.map(o=>o.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){let e=this._instanceInfos.get(t);if(!e){De(new ve("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){De(new ve("No info found"));return}return e}_getInfo(t,e){if(t instanceof Qe){let n=[...t.debugGetObservers()];for(let l of n)e(l);let r=this._getObservableInfo(t);if(!r)return;let o=t.debugGetState(),s={name:t.debugName,instanceId:r.instanceId,updateCount:o.updateCount},a=[...r.changedObservables].map(l=>this._instanceInfos.get(l)?.instanceId).filter(Bn);if(o.isComputing)return{...s,type:"observable/derived",state:"updating",changedDependencies:a,initialComputation:!1};switch(o.state){case 0:return{...s,type:"observable/derived",state:"noValue"};case 3:return{...s,type:"observable/derived",state:"upToDate"};case 2:return{...s,type:"observable/derived",state:"stale",changedDependencies:a};case 1:return{...s,type:"observable/derived",state:"possiblyStale"}}}else if(t instanceof Pn){let n=this._getAutorunInfo(t);if(!n)return;let r={name:t.debugName,instanceId:n.instanceId,updateCount:n.updateCount},o=[...n.changedObservables].map(s=>this._instanceInfos.get(s).instanceId);if(t.debugGetState().isRunning)return{...r,type:"autorun",state:"updating",changedDependencies:o};switch(t.debugGetState().state){case 3:return{...r,type:"autorun",state:"upToDate"};case 2:return{...r,type:"autorun",state:"stale",changedDependencies:o};case 1:return{...r,type:"autorun",state:"possiblyStale"}}}}_formatObservable(t){let e=this._getObservableInfo(t);if(e)return{name:t.debugName,instanceId:e.instanceId}}_formatObserver(t){if(t instanceof Qe)return{name:t.toString(),instanceId:this._getObservableInfo(t)?.instanceId};let e=this._getAutorunInfo(t);if(e)return{name:t.toString(),instanceId:e.instanceId}}_handleChange(t){Xu(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:Yu(this._pendingChanges,t),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(t,e){if(!e)return-1;let n=this._declarations.get(e.id);return n===void 0&&(n={id:this._declarationId++,type:t,url:e.fileName,line:e.line,column:e.column},this._declarations.set(e.id,n),this._handleChange({decls:{[n.id]:n}})),n.id}handleObservableCreated(t,e){let r={declarationId:this._getDeclarationId("observable/value",e),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,r)}handleOnListenerCountChanged(t,e){let n=this._getObservableInfo(t);if(n){if(n.listenerCount===0&&e>0){let r=t instanceof Qe?"observable/derived":"observable/value";this._aliveInstances.set(n.instanceId,t),this._handleChange({instances:{[n.instanceId]:{instanceId:n.instanceId,declarationId:n.declarationId,formattedValue:n.lastValue,type:r,name:t.debugName}}})}else n.listenerCount>0&&e===0&&(this._handleChange({instances:{[n.instanceId]:null}}),this._aliveInstances.delete(n.instanceId));n.listenerCount=e}}handleObservableUpdated(t,e){if(t instanceof Qe){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=xt(e.newValue,30),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:n.lastValue}}}))}handleAutorunCreated(t,e){let r={declarationId:this._getDeclarationId("autorun",e),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,r),this._aliveInstances.set(r.instanceId,t),r&&this._handleChange({instances:{[r.instanceId]:{instanceId:r.instanceId,declarationId:r.declarationId,runCount:0,type:"autorun",name:t.debugName}}})}handleAutorunDisposed(t){let e=this._getAutorunInfo(t);e&&(this._handleChange({instances:{[e.instanceId]:null}}),this._instanceInfos.delete(t),this._aliveInstances.delete(e.instanceId))}handleAutorunDependencyChanged(t,e,n){let r=this._getAutorunInfo(t);r&&r.changedObservables.add(e)}handleAutorunStarted(t){}handleAutorunFinished(t){let e=this._getAutorunInfo(t);e&&(e.changedObservables.clear(),e.updateCount++,this._handleChange({instances:{[e.instanceId]:{runCount:e.updateCount}}}))}handleDerivedDependencyChanged(t,e,n){let r=this._getObservableInfo(t);r&&r.changedObservables.add(e)}_handleDerivedRecomputed(t,e){let n=this._getObservableInfo(t);if(!n)return;let r=xt(e.newValue,30);n.updateCount++,n.changedObservables.clear(),n.lastValue=r,n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:r,recomputationCount:n.updateCount}}})}handleDerivedCleared(t){let e=this._getObservableInfo(t);e&&(e.lastValue=void 0,e.changedObservables.clear(),e.listenerCount>0&&this._handleChange({instances:{[e.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(t){this._activeTransactions.add(t)}handleEndTransaction(t){this._activeTransactions.delete(t)}};function Wh(i,t){let e=t?.debugNamePostProcessor??(o=>o),n=Ur.from(i,e);if(!n)return"";let r=new Set;return t.type==="observers"?Bh(n,0,r,t).trim():$h(n,0,r,t).trim()}function $h(i,t,e,n){let r="		".repeat(t),o=[];if(e.has(i.sourceObj))return o.push(`${r}* ${i.type} ${i.name} (already listed)`),o.join(`
`);if(e.add(i.sourceObj),o.push(`${r}* ${i.type} ${i.name}:`),o.push(`${r}  value: ${xt(i.value,50)}`),o.push(`${r}  state: ${i.state}`),i.dependencies.length>0){o.push(`${r}  dependencies:`);for(let a of i.dependencies){let l=Ur.from(a,n.debugNamePostProcessor??(c=>c))??Ur.unknown(a);o.push($h(l,t+1,e,n))}}return o.join(`
`)}function Bh(i,t,e,n){let r="		".repeat(t),o=[];if(e.has(i.sourceObj))return o.push(`${r}* ${i.type} ${i.name} (already listed)`),o.join(`
`);if(e.add(i.sourceObj),o.push(`${r}* ${i.type} ${i.name}:`),o.push(`${r}  value: ${xt(i.value,50)}`),o.push(`${r}  state: ${i.state}`),i.observers.length>0){o.push(`${r}  observers:`);for(let a of i.observers){let l=Ur.from(a,n.debugNamePostProcessor??(c=>c))??Ur.unknown(a);o.push(Bh(l,t+1,e,n))}}return o.join(`
`)}var Ur=class i{constructor(t,e,n,r,o,s,a){this.sourceObj=t;this.name=e;this.type=n;this.value=r;this.state=o;this.dependencies=s;this.observers=a}static from(t,e){if(t instanceof Pn){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof Qe){let n=t.debugGetState();return new i(t,e(t.debugName),"derived",n.value,n.stateStr,Array.from(n.dependencies),Array.from(t.debugGetObservers()))}else if(t instanceof En){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof Nt){let n=t.debugGetState();return new i(t,e(t.debugName),"fromEvent",n.value,n.hasValue?"upToDate":"initial",[],Array.from(t.debugGetObservers()))}}static unknown(t){return new i(t,"(unknown)","unknown",void 0,"unknown",[],[])}};Oh(Wh);wh(Uh);var z_=!1;z_&&vs(new bs);Ne&&Ne.VSCODE_DEV_DEBUG_OBSERVABLES&&vs(ul.getInstance());var Zu=class{constructor(){this._value="";this._pos=0}reset(t){return this._value=t,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos<this._value.length-1}cmp(t){let e=t.charCodeAt(0),n=this._value.charCodeAt(this._pos);return e-n}value(){return this._value[this._pos]}},ep=class{constructor(t=!0){this._caseSensitive=t}reset(t){return this._value=t,this._from=0,this._to=0,this.next()}hasNext(){return this._to<this._value.length}next(){this._from=this._to;let t=!0;for(;this._to<this._value.length;this._to++)if(this._value.charCodeAt(this._to)===46)if(t)this._from++;else break;else t=!1;return this}cmp(t){return this._caseSensitive?Fa(t,this._value,0,t.length,this._from,this._to):kr(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},pl=class{constructor(t=!0,e=!0){this._splitOnBackslash=t;this._caseSensitive=e}reset(t){this._from=0,this._to=0,this._value=t,this._valueLen=t.length;for(let e=t.length-1;e>=0;e--,this._valueLen--){let n=this._value.charCodeAt(e);if(!(n===47||this._splitOnBackslash&&n===92))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let t=!0;for(;this._to<this._valueLen;this._to++){let e=this._value.charCodeAt(this._to);if(e===47||this._splitOnBackslash&&e===92)if(t)this._from++;else break;else t=!1}return this}cmp(t){return this._caseSensitive?Fa(t,this._value,0,t.length,this._from,this._to):kr(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var tp=class{constructor(t,e){this._ignorePathCasing=t;this._ignoreQueryAndFragment=e;this._states=[];this._stateIdx=0}reset(t){return this._value=t,this._states=[],this._value.scheme&&this._states.push(1),this._value.authority&&this._states.push(2),this._value.path&&(this._pathIterator=new pl(!1,!this._ignorePathCasing(t)),this._pathIterator.reset(t.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(t)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(t){if(this._states[this._stateIdx]===1)return fu(t,this._value.scheme);if(this._states[this._stateIdx]===2)return fu(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return ns(t,this._value.query);if(this._states[this._stateIdx]===5)return ns(t,this._value.fragment);throw new Error}value(){if(this._states[this._stateIdx]===1)return this._value.scheme;if(this._states[this._stateIdx]===2)return this._value.authority;if(this._states[this._stateIdx]===3)return this._pathIterator.value();if(this._states[this._stateIdx]===4)return this._value.query;if(this._states[this._stateIdx]===5)return this._value.fragment;throw new Error}},kn=class i{static{this.Val=Symbol("undefined_placeholder")}static wrap(t){return t===void 0?i.Val:t}static unwrap(t){return t===i.Val?void 0:t}},Ni=class{constructor(){this.height=1;this.value=void 0;this.key=void 0;this.left=void 0;this.mid=void 0;this.right=void 0}isEmpty(){return!this.left&&!this.mid&&!this.right&&this.value===void 0}rotateLeft(){let t=this.right;return this.right=t.left,t.left=this,this.updateHeight(),t.updateHeight(),t}rotateRight(){let t=this.left;return this.left=t.right,t.right=this,this.updateHeight(),t.updateHeight(),t}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){return this.left?.height??0}get heightRight(){return this.right?.height??0}};var rn=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new tp(t,e))}static forPaths(t=!1){return new i(new pl(void 0,!t))}static forStrings(){return new i(new Zu)}static forConfigKeys(){return new i(new ep)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);Gd(n);for(let r of n)this.set(r,t)}else{let n=t.slice(0);Gd(n);for(let r of n)this.set(r[0],r[1])}}set(t,e){let n=this._iter.reset(t),r;this._root||(this._root=new Ni,this._root.segment=n.value());let o=[];for(r=this._root;;){let a=n.cmp(r.segment);if(a>0)r.left||(r.left=new Ni,r.left.segment=n.value()),o.push([-1,r]),r=r.left;else if(a<0)r.right||(r.right=new Ni,r.right.segment=n.value()),o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),r.mid||(r.mid=new Ni,r.mid.segment=n.value()),o.push([0,r]),r=r.mid;else break}let s=kn.unwrap(r.value);r.value=kn.wrap(e),r.key=t;for(let a=o.length-1;a>=0;a--){let l=o[a][1];l.updateHeight();let c=l.balanceFactor();if(c<-1||c>1){let u=o[a][0],d=o[a+1][0];if(u===1&&d===1)o[a][1]=l.rotateLeft();else if(u===-1&&d===-1)o[a][1]=l.rotateRight();else if(u===1&&d===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(u===-1&&d===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return s}get(t){return kn.unwrap(this._getNode(t)?.value)}_getNode(t){let e=this._iter.reset(t),n=this._root;for(;n;){let r=e.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else if(e.hasNext())e.next(),n=n.mid;else break}return n}has(t){let e=this._getNode(t);return!(e?.value===void 0&&e?.mid===void 0)}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,e){let n=this._iter.reset(t),r=[],o=this._root;for(;o;){let s=n.cmp(o.segment);if(s>0)r.push([-1,o]),o=o.left;else if(s<0)r.push([1,o]),o=o.right;else if(n.hasNext())n.next(),r.push([0,o]),o=o.mid;else break}if(o){if(e?(o.left=void 0,o.mid=void 0,o.right=void 0,o.height=1):(o.key=void 0,o.value=void 0),!o.mid&&!o.value)if(o.left&&o.right){let s=[[1,o]],a=this._min(o.right,s);if(a.key){o.key=a.key,o.value=a.value,o.segment=a.segment;let l=a.right;if(s.length>1){let[u,d]=s[s.length-1];switch(u){case-1:d.left=l;break;case 0:_a(!1);case 1:_a(!1)}}else o.right=l;let c=this._balanceByStack(s);if(r.length>0){let[u,d]=r[r.length-1];switch(u){case-1:d.left=c;break;case 0:d.mid=c;break;case 1:d.right=c;break}}else this._root=c}}else{let s=o.left??o.right;if(r.length>0){let[a,l]=r[r.length-1];switch(a){case-1:l.left=s;break;case 0:l.mid=s;break;case 1:l.right=s;break}}else this._root=s}this._root=this._balanceByStack(r)??this._root}}_min(t,e){for(;t.left;)e.push([-1,t]),t=t.left;return t}_balanceByStack(t){for(let e=t.length-1;e>=0;e--){let n=t[e][1];n.updateHeight();let r=n.balanceFactor();if(r>1?(n.right.balanceFactor()>=0||(n.right=n.right.rotateRight()),t[e][1]=n.rotateLeft()):r<-1&&(n.left.balanceFactor()<=0||(n.left=n.left.rotateLeft()),t[e][1]=n.rotateRight()),e>0)switch(t[e-1][0]){case-1:t[e-1][1].left=t[e][1];break;case 1:t[e-1][1].right=t[e][1];break;case 0:t[e-1][1].mid=t[e][1];break}else return t[0][1]}}findSubstr(t){let e=this._iter.reset(t),n=this._root,r;for(;n;){let o=e.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else if(e.hasNext())e.next(),r=kn.unwrap(n.value)||r,n=n.mid;else break}return n&&kn.unwrap(n.value)||r}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,e){let n=this._iter.reset(t),r=this._root;for(;r;){let o=n.cmp(r.segment);if(o>0)r=r.left;else if(o<0)r=r.right;else if(n.hasNext())n.next(),r=r.mid;else return r.mid?this._entries(r.mid):e?kn.unwrap(r.value):void 0}}hasElementOrSubtree(t){return this._findSuperstrOrElement(t,!0)!==void 0}forEach(t){for(let[e,n]of this)t(n,e)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(t){let e=[];return this._dfsEntries(t,e),e[Symbol.iterator]()}_dfsEntries(t,e){t&&(t.left&&this._dfsEntries(t.left,e),t.value!==void 0&&e.push([t.key,kn.unwrap(t.value)]),t.mid&&this._dfsEntries(t.mid,e),t.right&&this._dfsEntries(t.right,e))}_isBalanced(){let t=e=>{if(!e)return!0;let n=e.balanceFactor();return n<-1||n>1?!1:t(e.left)&&t(e.right)};return t(this._root)}};var We=z("fileService");function Dn(i){return i.create===!0}function wt(i){return!!(i.capabilities&2)}function qh(i){return!!(i.capabilities&524288)}function np(i){return!!(i.capabilities&8)}function Hh(i){return!!(i.capabilities&131072)}function zh(i){return!!(i.capabilities&262144)}function On(i){return!!(i.capabilities&4)}function gl(i){return!!(i.capabilities&16)}function hl(i){return wt(i)?!!(i.capabilities&16384):!1}function rp(i){return wt(i)?!!(i.capabilities&32768):!1}function jh(i){return!!(i.capabilities&65536)}var Fi=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let r=new i(e.toString(),n);return j_(r,n),r}};function le(i,t){return Fi.create(i,t)}function Ln(i){return i||le(m(2326,null),"Unknown")}function j_(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function on(i){if(!i)return"Unknown";if(i instanceof Fi)return i.code;let t=/^(.+) \(FileSystemError\)$/.exec(i.name);if(!t)return"Unknown";switch(t[1]){case"EntryExists":return"EntryExists";case"EntryIsADirectory":return"EntryIsADirectory";case"EntryNotADirectory":return"EntryNotADirectory";case"EntryNotFound":return"EntryNotFound";case"EntryTooLarge":return"EntryTooLarge";case"EntryWriteLocked":return"EntryWriteLocked";case"NoPermissions":return"NoPermissions";case"Unavailable":return"Unavailable"}return"Unknown"}function ip(i){if(i instanceof ze)return i.fileOperationResult;switch(on(i)){case"EntryNotFound":return 1;case"EntryIsADirectory":return 0;case"EntryNotADirectory":return 9;case"EntryWriteLocked":return 5;case"NoPermissions":return 6;case"EntryExists":return 4;case"EntryTooLarge":return 7;default:return 10}}var An=class{constructor(t,e,n){this.resource=t;this.operation=e;this.target=n}isOperation(t){return this.operation===t}};var fl=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new Ae(()=>{let t=rn.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new Ae(()=>{let t=rn.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new Ae(()=>{let t=rn.forUris(()=>this.ignorePathCasing);return t.fill(this.rawDeleted.map(e=>[e,!0])),t});this.rawAdded=[];this.rawUpdated=[];this.rawDeleted=[];for(let n of t){switch(n.type){case 1:this.rawAdded.push(n.resource);break;case 0:this.rawUpdated.push(n.resource);break;case 2:this.rawDeleted.push(n.resource);break}this.correlationId!==i.MIXED_CORRELATION&&(typeof n.cId=="number"?this.correlationId===void 0?this.correlationId=n.cId:this.correlationId!==n.cId&&(this.correlationId=i.MIXED_CORRELATION):this.correlationId!==void 0&&(this.correlationId=i.MIXED_CORRELATION))}}static{this.MIXED_CORRELATION=null}contains(t,...e){return this.doContains(t,{includeChildren:!1},...e)}affects(t,...e){return this.doContains(t,{includeChildren:!0},...e)}doContains(t,e,...n){if(!t)return!1;let r=n.length>0;return!!((!r||n.includes(1))&&(this.added.value.get(t)||e.includeChildren&&this.added.value.findSuperstr(t))||(!r||n.includes(0))&&(this.updated.value.get(t)||e.includeChildren&&this.updated.value.findSuperstr(t))||(!r||n.includes(2))&&(this.deleted.value.findSubstr(t)||e.includeChildren&&this.deleted.value.findSuperstr(t)))}gotAdded(){return this.rawAdded.length>0}gotDeleted(){return this.rawDeleted.length>0}gotUpdated(){return this.rawUpdated.length>0}correlates(t){return this.correlationId===t}hasCorrelation(){return typeof this.correlationId=="number"}};function Kh(i,t,e){return!i||!t||i===t||t.length>i.length?!1:(t.charAt(t.length-1)!==he&&(t+=he),e?Jn(i,t):i.indexOf(t)===0)}var ze=class extends Error{constructor(e,n,r){super(e);this.fileOperationResult=n;this.options=r}},Ui=class extends ze{constructor(e,n,r,o){super(e,n,o);this.fileOperationResult=n;this.size=r}},Vi=class extends ze{constructor(e,n,r){super(e,2,r);this.stat=n}};var yl="";function op(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var ml=class i{static{this.KB=1024}static{this.MB=i.KB*i.KB}static{this.GB=i.MB*i.KB}static{this.TB=i.GB*i.KB}static formatSize(t){return Go(t)||(t=0),t<i.KB?m(2321,null,t.toFixed(0)):t<i.MB?m(2323,null,(t/i.KB).toFixed(2)):t<i.GB?m(2324,null,(t/i.MB).toFixed(2)):t<i.TB?m(2322,null,(t/i.GB).toFixed(2)):m(2325,null,(t/i.TB).toFixed(2))}};var Mn=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var sp=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},Ss=class{constructor(t){this._hashFn=t;this._nodes=new Map}roots(){let t=[];for(let e of this._nodes.values())e.outgoing.size===0&&t.push(e);return t}insertEdge(t,e){let n=this.lookupOrInsertNode(t),r=this.lookupOrInsertNode(e);n.outgoing.set(r.key,r),r.incoming.set(n.key,n)}removeNode(t){let e=this._hashFn(t);this._nodes.delete(e);for(let n of this._nodes.values())n.outgoing.delete(e),n.incoming.delete(e)}lookupOrInsertNode(t){let e=this._hashFn(t),n=this._nodes.get(e);return n||(n=new sp(e,t),this._nodes.set(e,n)),n}lookup(t){return this._nodes.get(this._hashFn(t))}isEmpty(){return this._nodes.size===0}toString(){let t=[];for(let[e,n]of this._nodes)t.push(`${e}
	(-> incoming)[${[...n.incoming.keys()].join(", ")}]
	(outgoing ->)[${[...n.outgoing.keys()].join(",")}]
`);return t.join(`
`)}findCycleSlow(){for(let[t,e]of this._nodes){let n=new Set([t]),r=this._findCycle(e,n);if(r)return r}}_findCycle(t,e){for(let[n,r]of t.outgoing){if(e.has(n))return[...e,n].join(" -> ");e.add(n);let o=this._findCycle(r,e);if(o)return o;e.delete(n)}}};var rr=class{constructor(...t){this._entries=new Map;for(let[e,n]of t)this.set(e,n)}set(t,e){let n=this._entries.get(t);return this._entries.set(t,e),n}has(t){return this._entries.has(t)}get(t){return this._entries.get(t)}};var K_=!1,vl=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},Wi=class i{constructor(t=new rr,e=!1,n,r=K_){this._services=t;this._strict=e;this._parent=n;this._enableTracing=r;this._isDisposed=!1;this._servicesToMaybeDispose=new Set;this._children=new Set;this._activeInstantiations=new Set;this._services.set(Ve,this),this._globalGraph=r?n?._globalGraph??new Ss(o=>o):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,rt(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)ci(t)&&t.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(t,e){this._throwIfDisposed();let n=this,r=new class extends i{dispose(){n._children.delete(r),super.dispose()}}(t,this._strict,this,this._enableTracing);return this._children.add(r),e?.add(r),r}invokeFunction(t,...e){this._throwIfDisposed();let n=Is.traceInvocation(this._enableTracing,t),r=!1;try{return t({get:s=>{if(r)throw va("service accessor is only valid during the invocation of its target method");let a=this._getOrCreateServiceInstance(s,n);return a||this._throwIfStrict(`[invokeFunction] unknown service '${s}'`,!1),a}},...e)}finally{r=!0,n.stop()}}createInstance(t,...e){this._throwIfDisposed();let n,r;return t instanceof Mn?(n=Is.traceCreation(this._enableTracing,t.ctor),r=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=Is.traceCreation(this._enableTracing,t),r=this._createInstance(t,e,n)),n.stop(),r}_createInstance(t,e=[],n){let r=Gt.getServiceDependencies(t).sort((a,l)=>a.index-l.index),o=[];for(let a of r){let l=this._getOrCreateServiceInstance(a.id,n);l||this._throwIfStrict(`[createInstance] ${t.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}let s=r.length>0?r[0].index:e.length;if(e.length!==s){console.trace(`[createInstance] First service dependency of ${t.name} at position ${s+1} conflicts with ${e.length} static arguments`);let a=s-e.length;a>0?e=e.concat(new Array(a)):e=e.slice(0,s)}return Reflect.construct(t,e.concat(o))}_setCreatedServiceInstance(t,e){if(this._services.get(t)instanceof Mn)this._services.set(t,e);else if(this._parent)this._parent._setCreatedServiceInstance(t,e);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(t){let e=this._services.get(t);return!e&&this._parent?this._parent._getServiceInstanceOrDescriptor(t):e}_getOrCreateServiceInstance(t,e){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(t));let n=this._getServiceInstanceOrDescriptor(t);return n instanceof Mn?this._safeCreateAndCacheServiceInstance(t,n,e.branch(t,!0)):(e.branch(t,!1),n)}_safeCreateAndCacheServiceInstance(t,e,n){if(this._activeInstantiations.has(t))throw new Error(`illegal state - RECURSIVELY instantiating service '${t}'`);this._activeInstantiations.add(t);try{return this._createAndCacheServiceInstance(t,e,n)}finally{this._activeInstantiations.delete(t)}}_createAndCacheServiceInstance(t,e,n){let r=new Ss(l=>l.id.toString()),o=0,s=[{id:t,desc:e,_trace:n}],a=new Set;for(;s.length;){let l=s.pop();if(!a.has(String(l.id))){if(a.add(String(l.id)),r.lookupOrInsertNode(l),o++>1e3)throw new vl(r);for(let c of Gt.getServiceDependencies(l.desc.ctor)){let u=this._getServiceInstanceOrDescriptor(c.id);if(u||this._throwIfStrict(`[createInstance] ${t} depends on ${c.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(c.id)),u instanceof Mn){let d={id:c.id,desc:u,_trace:l._trace.branch(c.id,!0)};r.insertEdge(l,d),s.push(d)}}}}for(;;){let l=r.roots();if(l.length===0){if(!r.isEmpty())throw new vl(r);break}for(let{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof Mn){let d=this._createServiceInstanceWithOwner(c.id,c.desc.ctor,c.desc.staticArguments,c.desc.supportsDelayedInstantiation,c._trace);this._setCreatedServiceInstance(c.id,d)}r.removeNode(c)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,e,n=[],r,o){if(this._services.get(t)instanceof Mn)return this._createServiceInstance(t,e,n,r,o,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(t,e,n,r,o);throw new Error(`illegalState - creating UNKNOWN service instance ${e.name}`)}_createServiceInstance(t,e,n=[],r,o,s){if(r){let a=new i(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(t);let l=new Map,c=new qa(()=>{let u=a._createInstance(e,n,o);for(let[d,f]of l){let g=u[d];if(typeof g=="function")for(let h of f)h.disposable=g.apply(u,h.listener)}return l.clear(),s.add(u),u});return new Proxy(Object.create(null),{get(u,d){if(!c.isInitialized&&typeof d=="string"&&(d.startsWith("onDid")||d.startsWith("onWill"))){let h=l.get(d);return h||(h=new Qo,l.set(d,h)),(S,_,I)=>{if(c.isInitialized)return c.value[d](S,_,I);{let b={listener:[S,_,I],disposable:void 0},w=h.push(b);return E(()=>{w(),b.disposable?.dispose()})}}}if(d in u)return u[d];let f=c.value,g=f[d];return typeof g!="function"||(g=g.bind(f),u[d]=g),g},set(u,d,f){return c.value[d]=f,!0},getPrototypeOf(u){return e.prototype}})}else{let a=this._createInstance(e,n,o);return s.add(a),a}}_throwIfStrict(t,e){if(e&&console.warn(t),this._strict)throw new Error(t)}};var Is=class i{constructor(t,e){this.type=t;this.name=e;this._start=Date.now();this._dep=[]}static{this.all=new Set}static{this._None=new class extends i{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(t,e){return t?new i(2,e.name||new Error().stack.split(`
`).slice(3,4).join(`
`)):i._None}static traceCreation(t,e){return t?new i(1,e.name):i._None}static{this._totals=0}branch(t,e){let n=new i(3,t.toString());return this._dep.push([t,e,n]),n}stop(){let t=Date.now()-this._start;i._totals+=t;let e=!1;function n(o,s){let a=[],l=new Array(o+1).join("	");for(let[c,u,d]of s._dep)if(u&&d){e=!0,a.push(`${l}CREATES -> ${c}`);let f=n(o+1,d);f&&a.push(f)}else a.push(`${l}uses -> ${c}`);return a.join(`
`)}let r=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${n(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${i._totals.toFixed(2)}ms)`];(t>2||e)&&i.all.add(r.join(`
`))}};function Rt(i){return lp(i,0)}function lp(i,t){switch(typeof i){case"object":return i===null?Nn(349,t):Array.isArray(i)?J_(i,t):Q_(i,t);case"string":return Jh(i,t);case"boolean":return G_(i,t);case"number":return Nn(i,t);case"undefined":return Nn(937,t);default:return Nn(617,t)}}function Nn(i,t){return(t<<5)-t+i|0}function G_(i,t){return Nn(i?433:863,t)}function Jh(i,t){t=Nn(149417,t);for(let e=0,n=i.length;e<n;e++)t=Nn(i.charCodeAt(e),t);return t}function J_(i,t){return t=Nn(104579,t),i.reduce((e,n)=>lp(n,e),t)}function Q_(i,t){return t=Nn(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=Jh(n,e),lp(i[n],e)),t)}function ap(i,t,e=32){let n=e-t,r=~((1<<n)-1);return(i<<t|(r&i)>>>n)>>>0}function _s(i,t=32){return i instanceof ArrayBuffer?Kt(P.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var Gh=class i{constructor(){this._h0=1732584193;this._h1=4023233417;this._h2=2562383102;this._h3=271733878;this._h4=3285377520;this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}static{this._bigBlock32=new DataView(new ArrayBuffer(320))}update(t){let e=t.length;if(e===0)return;let n=this._buff,r=this._buffLen,o=this._leftoverHighSurrogate,s,a;for(o!==0?(s=o,a=-1,o=0):(s=t.charCodeAt(0),a=0);;){let l=s;if(bg(s))if(a+1<e){let c=t.charCodeAt(a+1);gu(c)?(a++,l=Sg(s,c)):l=65533}else{o=s;break}else gu(s)&&(l=65533);if(r=this._push(n,r,l),a++,a<e)s=t.charCodeAt(a);else break}this._buffLen=r,this._leftoverHighSurrogate=o}_push(t,e,n){return n<128?t[e++]=n:n<2048?(t[e++]=192|(n&1984)>>>6,t[e++]=128|(n&63)>>>0):n<65536?(t[e++]=224|(n&61440)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0):(t[e++]=240|(n&1835008)>>>18,t[e++]=128|(n&258048)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0),e>=64&&(this._step(),e-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),e}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),_s(this._h0)+_s(this._h1)+_s(this._h2)+_s(this._h3)+_s(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=i._bigBlock32,e=this._buffDV;for(let d=0;d<64;d+=4)t.setUint32(d,e.getUint32(d,!1),!1);for(let d=64;d<320;d+=4)t.setUint32(d,ap(t.getUint32(d-12,!1)^t.getUint32(d-32,!1)^t.getUint32(d-56,!1)^t.getUint32(d-64,!1),1),!1);let n=this._h0,r=this._h1,o=this._h2,s=this._h3,a=this._h4,l,c,u;for(let d=0;d<80;d++)d<20?(l=r&o|~r&s,c=1518500249):d<40?(l=r^o^s,c=1859775393):d<60?(l=r&o|r&s|o&s,c=2400959708):(l=r^o^s,c=3395469782),u=ap(n,5)+l+a+c+t.getUint32(d*4,!1)&4294967295,a=s,s=o,o=ap(r,30),r=n,n=u;this._h0=this._h0+n&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}};function cp(...i){switch(i.length){case 1:return m(2124,null,i[0]);case 2:return m(2125,null,i[0],i[1]);case 3:return m(2126,null,i[0],i[1],i[2]);default:return}}var Y_=m(2123,null),X_=m(2122,null),ir=class i{constructor(){this._input="";this._start=0;this._current=0;this._tokens=[];this._errors=[];this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(t){switch(t.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return t.isTripleEq?"===":"==";case 4:return t.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">";case 8:return">=";case 9:return"=~";case 10:return t.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return t.lexeme;case 18:return t.lexeme;case 19:return t.lexeme;case 20:return"EOF";default:throw va(`unhandled token type: ${JSON.stringify(t)}; have you forgotten to add a case?`)}}static{this._regexFlags=new Set(["i","g","s","m","y","u"].map(t=>t.charCodeAt(0)))}static{this._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}get errors(){return this._errors}reset(t){return this._input=t,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){let e=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:e})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){let e=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:e})}else this._match(126)?this._addToken(9):this._error(cp("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(cp("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(cp("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return this._isAtEnd()||this._input.charCodeAt(this._current)!==t?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){let e=this._start,n=this._input.substring(this._start,this._current),r={type:19,offset:this._start,lexeme:n};this._errors.push({offset:e,lexeme:n,additionalInfo:t}),this._tokens.push(r)}_string(){this.stringRe.lastIndex=this._start;let t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;let e=this._input.substring(this._start,this._current),n=i._keywords.get(e);n?this._addToken(n):this._tokens.push({type:17,lexeme:e,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(Y_);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let t=this._current,e=!1,n=!1;for(;;){if(t>=this._input.length){this._current=t,this._error(X_);return}let o=this._input.charCodeAt(t);if(e)e=!1;else if(o===47&&!n){t++;break}else o===91?n=!0:o===92?e=!0:o===93&&(n=!1);t++}for(;t<this._input.length&&i._regexFlags.has(this._input.charCodeAt(t));)t++;this._current=t;let r=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:r,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};var je=new Map;je.set("false",!1);je.set("true",!0);je.set("isMac",Be);je.set("isLinux",Se);je.set("isWindows",q);je.set("isWeb",_t);je.set("isMacNative",Be&&!_t);je.set("isEdge",tg);je.set("isFirefox",Zm);je.set("isChrome",ru);je.set("isSafari",eg);var eT=Object.prototype.hasOwnProperty;var tT={regexParsingWithErrorRecovery:!0},nT=m(2103,null),rT=m(2104,null),iT=m(2106,null),Qh=m(2102,null),oT=m(2109,null),sT=m(2110,null),aT=m(2107,null),lT=m(2108,null),dp=class i{constructor(t=tT){this._config=t;this._scanner=new ir;this._tokens=[];this._current=0;this._parsingErrors=[];this._flagsGYRe=/g|y/g}static{this._parseError=new Error}get lexingErrors(){return this._scanner.errors}get parsingErrors(){return this._parsingErrors}parse(t){if(t===""){this._parsingErrors.push({message:nT,offset:0,lexeme:"",additionalInfo:rT});return}this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{let e=this._expr();if(!this._isAtEnd()){let n=this._peek(),r=n.type===17?sT:void 0;throw this._parsingErrors.push({message:oT,offset:n.offset,lexeme:ir.getLexeme(n),additionalInfo:r}),i._parseError}return e}catch(e){if(e!==i._parseError)throw e;return}}_expr(){return this._or()}_or(){let t=[this._and()];for(;this._matchOne(16);){let e=this._and();t.push(e)}return t.length===1?t[0]:Ye.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:Ye.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),tt.INSTANCE;case 12:return this._advance(),st.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,Qh),e?.negate()}case 17:return this._advance(),Wr.create(t.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",t)}}return this._primary()}_primary(){let t=this._peek();switch(t.type){case 11:return this._advance(),Ye.true();case 12:return this._advance(),Ye.false();case 0:{this._advance();let e=this._expr();return this._consume(1,Qh),e}case 17:{let e=t.lexeme;if(this._advance(),this._matchOne(9)){let r=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),r.type!==10)throw this._errExpectedButGot("REGEX",r);let o=r.lexeme,s=o.lastIndexOf("/"),a=s===o.length-1?void 0:this._removeFlagsGY(o.substring(s+1)),l;try{l=new RegExp(o.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",r)}return Ps.create(e,l)}switch(r.type){case 10:case 19:{let o=[r.lexeme];this._advance();let s=this._peek(),a=0;for(let f=0;f<r.lexeme.length;f++)r.lexeme.charCodeAt(f)===40?a++:r.lexeme.charCodeAt(f)===41&&a--;for(;!this._isAtEnd()&&s.type!==15&&s.type!==16;){switch(s.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let f=0;f<s.lexeme.length;f++)s.lexeme.charCodeAt(f)===40?a++:r.lexeme.charCodeAt(f)===41&&a--}if(a<0)break;o.push(ir.getLexeme(s)),this._advance(),s=this._peek()}let l=o.join(""),c=l.lastIndexOf("/"),u=c===l.length-1?void 0:this._removeFlagsGY(l.substring(c+1)),d;try{d=new RegExp(l.substring(1,c),u)}catch{throw this._errExpectedButGot("REGEX",r)}return Ye.regex(e,d)}case 18:{let o=r.lexeme;this._advance();let s=null;if(!gg(o)){let a=o.indexOf("/"),l=o.lastIndexOf("/");if(a!==l&&a>=0){let c=o.slice(a+1,l),u=o[l+1]==="i"?"i":"";try{s=new RegExp(c,u)}catch{throw this._errExpectedButGot("REGEX",r)}}}if(s===null)throw this._errExpectedButGot("REGEX",r);return Ps.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,iT);let r=this._value();return Ye.notIn(e,r)}switch(this._peek().type){case 3:{this._advance();let r=this._value();if(this._previous().type===18)return Ye.equals(e,r);switch(r){case"true":return Ye.has(e);case"false":return Ye.not(e);default:return Ye.equals(e,r)}}case 4:{this._advance();let r=this._value();if(this._previous().type===18)return Ye.notEquals(e,r);switch(r){case"true":return Ye.not(e);case"false":return Ye.has(e);default:return Ye.notEquals(e,r)}}case 5:return this._advance(),Rs.create(e,this._value());case 6:return this._advance(),Es.create(e,this._value());case 7:return this._advance(),$i.create(e,this._value());case 8:return this._advance(),ws.create(e,this._value());case 13:return this._advance(),Ye.in(e,this._value());default:return Ye.has(e)}}case 20:throw this._parsingErrors.push({message:aT,offset:t.offset,lexeme:"",additionalInfo:lT}),i._parseError;default:throw this._errExpectedButGot(`true | false | KEY 
	| KEY '=~' REGEX 
	| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){let t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return this._check(t)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,e){if(this._check(t))return this._advance();throw this._errExpectedButGot(e,this._peek())}_errExpectedButGot(t,e,n){let r=m(2105,null,t,ir.getLexeme(e)),o=e.offset,s=ir.getLexeme(e);return this._parsingErrors.push({message:r,offset:o,lexeme:s,additionalInfo:n}),i._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},Ye=class{static false(){return tt.INSTANCE}static true(){return st.INSTANCE}static has(t){return Vr.create(t)}static equals(t,e){return Cs.create(t,e)}static notEquals(t,e){return xs.create(t,e)}static regex(t,e){return Ps.create(t,e)}static in(t,e){return bl.create(t,e)}static notIn(t,e){return Sl.create(t,e)}static not(t){return Wr.create(t)}static and(...t){return Il.create(t,null,!0)}static or(...t){return ks.create(t,null,!0)}static greater(t,e){return $i.create(t,e)}static greaterEquals(t,e){return ws.create(t,e)}static smaller(t,e){return Rs.create(t,e)}static smallerEquals(t,e){return Es.create(t,e)}static{this._parser=new dp({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function Ts(i,t){return i.cmp(t)}var tt=class i{constructor(){this.type=0}static{this.INSTANCE=new i}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!1}serialize(){return"false"}keys(){return[]}map(t){return this}negate(){return st.INSTANCE}},st=class i{constructor(){this.type=1}static{this.INSTANCE=new i}cmp(t){return this.type-t.type}equals(t){return t.type===this.type}substituteConstants(){return this}evaluate(t){return!0}serialize(){return"true"}keys(){return[]}map(t){return this}negate(){return tt.INSTANCE}},Vr=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=je.get(t);return typeof n=="boolean"?n?st.INSTANCE:tt.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Zh(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=je.get(this.key);return typeof t=="boolean"?t?st.INSTANCE:tt.INSTANCE:this}evaluate(t){return!!t.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}map(t){return t.mapDefined(this.key)}negate(){return this.negated||(this.negated=Wr.create(this.key,this)),this.negated}},Cs=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=4}static create(t,e,n=null){if(typeof e=="boolean")return e?Vr.create(t,n):Wr.create(t,n);let r=je.get(t);return typeof r=="boolean"?e===(r?"true":"false")?st.INSTANCE:tt.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=je.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?st.INSTANCE:tt.INSTANCE}return this}evaluate(t){return t.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}map(t){return t.mapEquals(this.key,this.value)}negate(){return this.negated||(this.negated=xs.create(this.key,this.value,this)),this.negated}},bl=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=10;this.negated=null}static create(t,e){return new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.valueKey,t.key,t.valueKey)}equals(t){return t.type===this.type?this.key===t.key&&this.valueKey===t.valueKey:!1}substituteConstants(){return this}evaluate(t){let e=t.getValue(this.valueKey),n=t.getValue(this.key);if(Array.isArray(e)){if(e.includes(n))return!0;if(q&&typeof n=="string"&&n.startsWith("file:///")){let r=n.toLowerCase();return e.some(o=>typeof o=="string"&&o.toLowerCase()===r)}return!1}if(typeof n=="string"&&typeof e=="object"&&e!==null){if(eT.call(e,n))return!0;if(q&&n.startsWith("file:///")){let r=n.toLowerCase();return Object.keys(e).some(o=>o.toLowerCase()===r)}return!1}return!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}map(t){return t.mapIn(this.key,this.valueKey)}negate(){return this.negated||(this.negated=Sl.create(this.key,this.valueKey)),this.negated}},Sl=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=bl.create(t,e)}static create(t,e){return new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:this._negated.cmp(t._negated)}equals(t){return t.type===this.type?this._negated.equals(t._negated):!1}substituteConstants(){return this}evaluate(t){return!this._negated.evaluate(t)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}map(t){return t.mapNotIn(this.key,this.valueKey)}negate(){return this._negated}},xs=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=5}static create(t,e,n=null){if(typeof e=="boolean")return e?Wr.create(t,n):Vr.create(t,n);let r=je.get(t);return typeof r=="boolean"?e===(r?"true":"false")?tt.INSTANCE:st.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=je.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?tt.INSTANCE:st.INSTANCE}return this}evaluate(t){return t.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}map(t){return t.mapNotEquals(this.key,this.value)}negate(){return this.negated||(this.negated=Cs.create(this.key,this.value,this)),this.negated}},Wr=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=je.get(t);return typeof n=="boolean"?n?tt.INSTANCE:st.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Zh(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=je.get(this.key);return typeof t=="boolean"?t?tt.INSTANCE:st.INSTANCE:this}evaluate(t){return!t.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}map(t){return t.mapNot(this.key)}negate(){return this.negated||(this.negated=Vr.create(this.key,this)),this.negated}};function Tl(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):tt.INSTANCE}var $i=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=12}static create(t,e,n=null){return Tl(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}map(t){return t.mapGreater(this.key,this.value)}negate(){return this.negated||(this.negated=Es.create(this.key,this.value,this)),this.negated}},ws=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=13}static create(t,e,n=null){return Tl(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}map(t){return t.mapGreaterEquals(this.key,this.value)}negate(){return this.negated||(this.negated=Rs.create(this.key,this.value,this)),this.negated}},Rs=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=14}static create(t,e,n=null){return Tl(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}map(t){return t.mapSmaller(this.key,this.value)}negate(){return this.negated||(this.negated=ws.create(this.key,this.value,this)),this.negated}},Es=class i{constructor(t,e,n){this.key=t;this.value=e;this.negated=n;this.type=15}static create(t,e,n=null){return Tl(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:$r(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){return this}evaluate(t){return typeof this.value=="string"?!1:parseFloat(t.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}map(t){return t.mapSmallerEquals(this.key,this.value)}negate(){return this.negated||(this.negated=$i.create(this.key,this.value,this)),this.negated}},Ps=class i{constructor(t,e){this.key=t;this.regexp=e;this.type=7;this.negated=null}static create(t,e){return new i(t,e)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.key<t.key)return-1;if(this.key>t.key)return 1;let e=this.regexp?this.regexp.source:"",n=t.regexp?t.regexp.source:"";return e<n?-1:e>n?1:0}equals(t){if(t.type===this.type){let e=this.regexp?this.regexp.source:"",n=t.regexp?t.regexp.source:"";return this.key===t.key&&e===n}return!1}substituteConstants(){return this}evaluate(t){let e=t.getValue(this.key);return this.regexp?this.regexp.test(e):!1}serialize(){let t=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${t}`}keys(){return[this.key]}map(t){return t.mapRegex(this.key,this.regexp)}negate(){return this.negated||(this.negated=up.create(this)),this.negated}},up=class i{constructor(t){this._actual=t;this.type=8}static create(t){return new i(t)}cmp(t){return t.type!==this.type?this.type-t.type:this._actual.cmp(t._actual)}equals(t){return t.type===this.type?this._actual.equals(t._actual):!1}substituteConstants(){return this}evaluate(t){return!this._actual.evaluate(t)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}map(t){return new i(this._actual.map(t))}negate(){return this._actual}};function Xh(i){let t=null;for(let e=0,n=i.length;e<n;e++){let r=i[e].substituteConstants();if(i[e]!==r&&t===null){t=[];for(let o=0;o<e;o++)t[o]=i[o]}t!==null&&(t[e]=r)}return t===null?i:t}var Il=class i{constructor(t,e){this.expr=t;this.negated=e;this.type=6}static create(t,e,n){return i._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let r=Ts(this.expr[e],t.expr[e]);if(r!==0)return r}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=Xh(this.expr);return t===this.expr?this:i.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].evaluate(t))return!1;return!0}static _normalizeArr(t,e,n){let r=[],o=!1;for(let s of t)if(s){if(s.type===1){o=!0;continue}if(s.type===0)return tt.INSTANCE;if(s.type===6){r.push(...s.expr);continue}r.push(s)}if(r.length===0&&o)return st.INSTANCE;if(r.length!==0){if(r.length===1)return r[0];r.sort(Ts);for(let s=1;s<r.length;s++)r[s-1].equals(r[s])&&(r.splice(s,1),s--);if(r.length===1)return r[0];for(;r.length>1;){let s=r[r.length-1];if(s.type!==9)break;r.pop();let a=r.pop(),l=r.length===0,c=ks.create(s.expr.map(u=>i.create([u,a],null,n)),null,l);c&&(r.push(c),r.sort(Ts))}if(r.length===1)return r[0];if(n){for(let s=0;s<r.length;s++)for(let a=s+1;a<r.length;a++)if(r[s].negate().equals(r[a]))return tt.INSTANCE;if(r.length===1)return r[0]}return new i(r,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" && ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new i(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());this.negated=ks.create(t,this,!0)}return this.negated}},ks=class i{constructor(t,e){this.expr=t;this.negated=e;this.type=9}static create(t,e,n){return i._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let r=Ts(this.expr[e],t.expr[e]);if(r!==0)return r}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=Xh(this.expr);return t===this.expr?this:i.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(this.expr[e].evaluate(t))return!0;return!1}static _normalizeArr(t,e,n){let r=[],o=!1;if(t){for(let s=0,a=t.length;s<a;s++){let l=t[s];if(l){if(l.type===0){o=!0;continue}if(l.type===1)return st.INSTANCE;if(l.type===9){r=r.concat(l.expr);continue}r.push(l)}}if(r.length===0&&o)return tt.INSTANCE;r.sort(Ts)}if(r.length!==0){if(r.length===1)return r[0];for(let s=1;s<r.length;s++)r[s-1].equals(r[s])&&(r.splice(s,1),s--);if(r.length===1)return r[0];if(n){for(let s=0;s<r.length;s++)for(let a=s+1;a<r.length;a++)if(r[s].negate().equals(r[a]))return st.INSTANCE;if(r.length===1)return r[0]}return new i(r,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" || ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new i(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());for(;t.length>1;){let e=t.shift(),n=t.shift(),r=[];for(let o of Yh(e))for(let s of Yh(n))r.push(Il.create([o,s],null,!1));t.unshift(i.create(r,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},_l=class i extends Vr{static{this._info=[]}static all(){return i._info.values()}constructor(t,e,n){super(t,null),this._defaultValue=e,typeof n=="object"?i._info.push({...n,key:t}):n!==!0&&i._info.push({key:t,description:n,type:e!=null?typeof e:void 0})}bindTo(t){return t.createKey(this.key,this._defaultValue)}getValue(t){return t.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(t){return Cs.create(this.key,t)}notEqualsTo(t){return xs.create(this.key,t)}greater(t){return $i.create(this.key,t)}},a7=z("contextKeyService");function Zh(i,t){return i<t?-1:i>t?1:0}function $r(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function Yh(i){return i.type===9?i.expr:[i]}var V=z("logService"),ty=z("loggerService");function fp(i){return Go(i)}var ny=3;function cT(i,t){return i!==0&&i<=t}function dT(i,t,e){switch(t){case 1:i.trace(e);break;case 2:i.debug(e);break;case 3:i.info(e);break;case 4:i.warn(e);break;case 5:i.error(e);break;case 0:break;default:throw new Error(`Invalid log level ${t}`)}}var ry=!1,ey=!1,uT=!1;function As(i,t){switch(i){case"debug":console.debug=t;break;case"error":console.error=t;break;case"info":console.info=t;break;case"log":console.log=t;break;case"warn":console.warn=t;break}}function iy(i){let t={debug:console.debug,error:console.error,info:console.info,log:console.log,warn:console.warn},e=(r,o,s)=>{if(!uT){ey=!0;try{dT(i,o,Br(s))}catch{}finally{ey=!1}}t[r].apply(console,s)},n={debug:(...r)=>e("debug",2,r),error:(...r)=>e("error",5,r),info:(...r)=>e("info",3,r),log:(...r)=>e("log",3,r),warn:(...r)=>e("warn",4,r)};return As("debug",n.debug),As("error",n.error),As("info",n.info),As("log",n.log),As("warn",n.warn),E(()=>{console.debug===n.debug&&(console.debug=t.debug),console.error===n.error&&(console.error=t.error),console.info===n.info&&(console.info=t.info),console.log===n.log&&(console.log=t.log),console.warn===n.warn&&(console.warn=t.warn)})}function Br(i,t=!1){let e="";for(let n=0;n<i.length;n++){let r=i[n];if(r instanceof Error&&(r=Ct(r,t)),typeof r=="object")try{r=JSON.stringify(r)}catch{}e+=(n>0?" ":"")+r}return e}var Cl=class extends C{constructor(){super(...arguments);this.level=ny;this._onDidChangeLogLevel=this._register(new x)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return cT(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},Ds=class extends Cl{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,Br([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,Br([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,Br([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,Br([e,...n]))}error(e,...n){if(this.canLog(5))if(e instanceof Error){let r=Array.prototype.slice.call(arguments);r[0]=e.stack,this.log(5,Br(r))}else this.log(5,Br([e,...n]))}flush(){}};var xl=class extends Cl{constructor(e){super();this.loggers=e;e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(let n of this.loggers)n.setLevel(e);super.setLevel(e)}trace(e,...n){for(let r of this.loggers)r.trace(e,...n)}debug(e,...n){for(let r of this.loggers)r.debug(e,...n)}info(e,...n){for(let r of this.loggers)r.info(e,...n)}warn(e,...n){for(let r of this.loggers)r.warn(e,...n)}error(e,...n){for(let r of this.loggers)r.error(e,...n)}flush(){for(let e of this.loggers)e.flush()}dispose(){for(let e of this.loggers)e.dispose();super.dispose()}},Os=class extends C{constructor(e,n,r){super();this.logLevel=e;this.logsHome=n;this._loggers=new Te;this._onDidChangeLoggers=this._register(new x);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new x);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new x);this.onDidChangeVisibility=this._onDidChangeVisibility.event;if(r)for(let o of r)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(e){return Ee(e)?[...this._loggers.values()].find(n=>n.info.id===e):this._loggers.get(e)}getLogger(e){return this.getLoggerEntry(e)?.logger}createLogger(e,n){let r=this.toResource(e),o=Ee(e)?e:n?.id??Rt(r.toString()).toString(16),s=this._loggers.get(r)?.logger,a=n?.logLevel==="always"?1:n?.logLevel;s||(s=this.doCreateLogger(r,a??this.getLogLevel(r)??this.logLevel,{...n,id:o}));let l={logger:s,info:{resource:r,id:o,logLevel:a,name:n?.name,hidden:n?.hidden,group:n?.group,extensionId:n?.extensionId,when:n?.when}};return this.registerLogger(l.info),this._loggers.set(r,l),s}toResource(e){return Ee(e)?Q(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(y.isUri(e)){let r=e,o=n,s=this._loggers.get(r);s&&o!==s.info.logLevel&&(s.info.logLevel=o===this.logLevel?void 0:o,s.logger?.setLevel(o),this._loggers.set(s.info.resource,s),this._onDidChangeLogLevel.fire([r,o]))}else{this.logLevel=e;for(let[r,o]of this._loggers.entries())this._loggers.get(r)?.info.logLevel===void 0&&o.logger?.setLevel(this.logLevel);this._onDidChangeLogLevel.fire(this.logLevel)}}setVisibility(e,n){let r=this.getLoggerEntry(e);r&&n!==!r.info.hidden&&(r.info.hidden=!n,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,n]))}getLogLevel(e){let n;return e&&(n=this._loggers.get(e)?.info.logLevel),n??this.logLevel}registerLogger(e){let n=this._loggers.get(e.resource);n?n.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}deregisterLogger(e){let n=this.toResource(e),r=this._loggers.get(n);r&&(r.logger&&r.logger.dispose(),this._loggers.delete(n),this._onDidChangeLoggers.fire({added:[],removed:[r.info]}))}*getRegisteredLoggers(){for(let e of this._loggers.values())yield e.info}getRegisteredLogger(e){return this._loggers.get(e)?.info}dispose(){this._loggers.forEach(e=>e.logger?.dispose()),this._loggers.clear(),super.dispose()}},pp=class{constructor(){this.onDidChangeLogLevel=new x().event}setLevel(t){}getLevel(){return 3}trace(t,...e){}debug(t,...e){}info(t,...e){}warn(t,...e){}error(t,...e){}critical(t,...e){}dispose(){}flush(){}},wl=class extends pp{};function oy(i){if(i.verbose)return 1;if(typeof i.logLevel=="string"){let t=fT(i.logLevel.toLowerCase());if(t!==void 0)return t}return ny}function pT(i){switch(i){case 1:return"trace";case 2:return"debug";case 3:return"info";case 4:return"warn";case 5:return"error";case 0:return"off"}}function fT(i){switch(i){case"trace":return 1;case"debug":return 2;case"info":return 3;case"warn":return 4;case"error":return 5;case"critical":return 5;case"off":return 0}}var T7=new _l("logLevel",pT(3));var sn=z("sessionDataService"),Ls="session.db",Rl="attachments";function ay(i){return i.type.startsWith("root/")}function qr(i){return i.type.startsWith("session/")}function Ms(i){return i.type.startsWith("terminal/")}var Fn={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603},Oe={SessionNotFound:-32001,ProviderNotFound:-32002,SessionAlreadyExists:-32003,TurnInProgress:-32004,UnsupportedProtocolVersion:-32005,ContentNotFound:-32006,AuthRequired:-32007,NotFound:-32008,PermissionDenied:-32009,AlreadyExists:-32010};var ly=-32700,Bi=-32603,or=-32001,cy=-32002;var dy=-32005;var qi=-32007;function uy(i){return"method"in i&&"id"in i}function py(i){return"method"in i&&!("id"in i)}var W=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}};var Pl="agenthost:/root";function vy(i){if(!i.content||i.content.length===0)return[];let t=[];for(let e of i.content)ke(e,{type:!0})&&e.type==="fileEdit"&&t.push(e);return t}var mT="subagent",gT=`/${mT}/`,hT=/^(?<parentPath>.+)\/subagent\/(?<toolCallId>.+)$/;function by(i){return typeof i=="string"?y.parse(i):i}function Sy(i){let t=by(i),e=t.path.endsWith("/")?t.path.slice(0,-1):t.path;return{parent:t,path:`${e}${gT}`}}function Hi(i,t){let{parent:e,path:n}=Sy(i);return e.with({path:`${n}${t}`}).toString()}function Xe(i){let t=by(i),e=hT.exec(t.path);if(e?.groups)return{parentSession:t.with({path:e.groups.parentPath}),toolCallId:e.groups.toolCallId}}function kl(i){return Xe(i)!==void 0}function Iy(i){let{parent:t,path:e}=Sy(i);return t.with({path:e}).toString()}function _y(){return{agents:[],activeSessions:0}}function Sp(i){return{summary:i,lifecycle:"creating",turns:[],activeTurn:void 0}}var gp="git";function Ip(i){let t=i?.[gp];if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};return typeof e.hasGitHubRemote=="boolean"&&(n.hasGitHubRemote=e.hasGitHubRemote),typeof e.branchName=="string"&&(n.branchName=e.branchName),typeof e.baseBranchName=="string"&&(n.baseBranchName=e.baseBranchName),typeof e.upstreamBranchName=="string"&&(n.upstreamBranchName=e.upstreamBranchName),typeof e.incomingChanges=="number"&&(n.incomingChanges=e.incomingChanges),typeof e.outgoingChanges=="number"&&(n.outgoingChanges=e.outgoingChanges),typeof e.uncommittedChanges=="number"&&(n.uncommittedChanges=e.uncommittedChanges),typeof e.githubOwner=="string"&&(n.githubOwner=e.githubOwner),typeof e.githubRepo=="string"&&(n.githubRepo=e.githubRepo),n}function Ty(i,t){let e={...i};return t!==void 0?e[gp]=t:delete e[gp],Object.keys(e).length>0?e:void 0}var Ut=z("productService");import*as Vs from"fs";var zi=z("telemetryService");var Y7=z("customEndpointTelemetryService");var Cy="telemetry",ji="telemetry.telemetryLevel",Al="telemetry.enableCrashReporter",Ns="telemetry.enableTelemetry";function Pt(i){let t=_p(i);return{protocol:i,validate:r=>{try{return t(r,""),!0}catch{return!1}},assertValid:(r,o="")=>t(r,o)}}function sr(i){return{definition:i,toProtocol(){let t={};for(let e of Object.keys(i))t[e]=i[e].protocol;return{type:"object",properties:t}},values(t){let e=t;for(let n of Object.keys(i)){let r=e[n];if(r===void 0)continue;i[n].assertValid(r,n)}return{...e}},validate(t,e){let n=i[t];return n?n.validate(e):!1},assertValid(t,e){let n=i[t];if(!n)throw new W(Fn.InvalidParams,`Unknown schema key '${t}'`);n.assertValid(e,t)},validateOrDefault(t,e){let n={},r=t??{};for(let o of Object.keys(i)){let s=i[o],a=r[o];a!==void 0&&s.validate(a)?n[o]=a:Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n}}}function _p(i){if(i.type==="object"&&i.properties){let t={};for(let n of Object.keys(i.properties))t[n]=_p(i.properties[n]);let e=new Set(i.required??[]);return(n,r)=>{if(typeof n!="object"||n===null||Array.isArray(n))throw jr(r,"object",n);let o=n;for(let s of Object.keys(t)){let a=vT(r,s);if(o[s]===void 0){if(e.has(s))throw new W(Fn.InvalidParams,`Missing required property at '${a}'`);continue}t[s](o[s],a)}}}if(i.type==="array"&&i.items){let t=_p(i.items);return(e,n)=>{if(!Array.isArray(e))throw jr(n,"array",e);for(let r=0;r<e.length;r++)t(e[r],`${n}[${r}]`)}}return yT(i)}function yT(i){let t=i.enumDynamic===!0;return(e,n)=>{switch(i.type){case"string":if(typeof e!="string")throw jr(n,"string",e);break;case"number":if(typeof e!="number")throw jr(n,"number",e);break;case"boolean":if(typeof e!="boolean")throw jr(n,"boolean",e);break;case"array":if(!Array.isArray(e))throw jr(n,"array",e);break;case"object":if(typeof e!="object"||e===null||Array.isArray(e))throw jr(n,"object",e);break}if(i.enum&&!t&&!i.enum.includes(e))throw new W(Fn.InvalidParams,`Invalid value at '${n||"<root>"}': ${wy(e)} is not one of [${i.enum.map(r=>JSON.stringify(r)).join(", ")}]`)}}function jr(i,t,e){return new W(Fn.InvalidParams,`Invalid value at '${i||"<root>"}': expected ${t}, got ${wy(e)}`)}function vT(i,t){return i?`${i}.${t}`:t}function wy(i){try{return JSON.stringify(i)}catch{return String(i)}}var Ry=Pt({type:"object",title:m(1876,null),description:m(1880,null),properties:{allow:{type:"array",title:m(1877,null),items:{type:"string",title:m(1879,null)}},deny:{type:"array",title:m(1878,null),items:{type:"string",title:m(1879,null)}}},default:{allow:[],deny:[]},sessionMutable:!0}),vt=sr({autoApprove:Pt({type:"string",title:m(1862,null),description:m(1869,null),enum:["default","autoApprove","autopilot"],enumLabels:[m(1867,null),m(1865,null),m(1863,null)],enumDescriptions:[m(1868,null),m(1866,null),m(1864,null)],default:"default",sessionMutable:!0}),permissions:Ry,mode:Pt({type:"string",title:m(1870,null),description:m(1875,null),enum:["interactive","plan"],enumLabels:[m(1871,null),m(1873,null)],enumDescriptions:[m(1872,null),m(1874,null)],default:"interactive",sessionMutable:!0})}),Us="telemetryLevel";function Ey(i){switch(i){case 0:return"off";case 1:return"crash";case 2:return"error";case 3:return"all"}}function Py(i){switch(i){case"off":return 0;case"crash":return 1;case"error":return 2;case"all":return 3;default:return}}var Tp=sr({permissions:Ry,[Us]:Pt({type:"string",title:m(1861,null),description:m(1860,null),enum:["all","error","crash","off"],default:"all"})});var ar=sr({customizations:Pt({type:"array",title:m(1854,null),description:m(1850,null),default:[],items:{type:"object",title:m(1853,null),properties:{uri:{type:"string",title:m(1855,null)},displayName:{type:"string",title:m(1852,null)},description:{type:"string",title:m(1851,null)}},required:["uri","displayName"]}}),defaultShell:Pt({type:"string",title:m(1857,null),description:m(1856,null)}),disableCustomTerminalTool:Pt({type:"boolean",title:m(1859,null),description:m(1858,null),default:!1})}),ky={customizations:[]};var ut=z("agentConfigurationService"),Ki=class extends C{constructor(e,n,r){super();this._stateManager=e;this._logService=n;this._rootConfigResource=r;this._rootConfigWrite=Promise.resolve();this._onDidRootConfigChange=this._register(new x);this.onDidRootConfigChange=this._onDidRootConfigChange.event;let o=this._stateManager.rootState.config,s=ar.toProtocol();this._stateManager.rootState.config={schema:{type:"object",properties:{...o?.schema.properties,...s.properties}},values:{...o?.values,...this._loadPersistedRootConfig()}},this._register(this._stateManager.onDidEmitEnvelope(a=>{a.action.type==="root/configChanged"&&this._onDidRootConfigChange.fire()}))}getEffectiveValue(e,n,r){for(let o of this._effectiveChain(e)){let s=o[r];if(s!==void 0)try{return n.assertValid(r,s),s}catch(a){let l=a instanceof W?a.message:String(a);this._logService.warn(`[AgentConfigurationService] Value for '${r}' on ${e} failed schema validation, falling back: ${l}`)}}}getEffectiveWorkingDirectory(e){let n=this._stateManager.getSessionState(e)?.summary.workingDirectory;if(n!==void 0)return n;let r=Xe(e);if(r)return this._stateManager.getSessionState(r.parentSession.toString())?.summary.workingDirectory}updateSessionConfig(e,n){this._stateManager.dispatchServerAction({type:"session/configChanged",session:e,config:n})}getSessionConfigValues(e){return this._stateManager.getSessionState(e)?.config?.values}getRootValue(e,n){let o=this._stateManager.rootState.config?.values?.[n];if(o!==void 0)try{return e.assertValid(n,o),o}catch(s){let a=s instanceof W?s.message:String(s);this._logService.warn(`[AgentConfigurationService] Host value for '${n}' failed schema validation, ignoring: ${a}`);return}}updateRootConfig(e,n=!1){this._stateManager.dispatchServerAction({type:"root/configChanged",config:e,replace:n}),this.persistRootConfig()}persistRootConfig(){if(!this._rootConfigResource)return;let e=this._stateManager.rootState.config?.values??{customizations:[]},n=JSON.stringify(e,void 0,"	"),r=this._rootConfigResource;this._rootConfigWrite=this._rootConfigWrite.catch(o=>{this._logService.warn("[AgentConfigurationService] Previous host config write failed",o)}).then(async()=>{await Vs.promises.mkdir(ce(r.fsPath),{recursive:!0}),await Vs.promises.writeFile(r.fsPath,`${n}
`,"utf8")}).catch(o=>{this._logService.error(`[AgentConfigurationService] Failed to persist host config to ${r.fsPath}`,o)})}*_effectiveChain(e){let n=this._stateManager.getSessionState(e)?.config?.values;n&&(yield n);let r=Xe(e);if(r){let s=this._stateManager.getSessionState(r.parentSession.toString())?.config?.values;s&&(yield s)}let o=this._stateManager.rootState.config?.values;o&&(yield o)}_loadPersistedRootConfig(){let e=ky;if(!this._rootConfigResource)return{...e};try{let n=Vs.readFileSync(this._rootConfigResource.fsPath,"utf8"),r=JSON.parse(n);return ar.validateOrDefault(r,e)}catch(n){return(n&&typeof n=="object"&&ke(n,{code:!0})?String(n.code):void 0)!=="ENOENT"&&this._logService.warn(`[AgentConfigurationService] Failed to read host config from ${this._rootConfigResource.fsPath}: ${n instanceof Error?n.message:String(n)}`),{...e}}}};Ki=R([T(1,V)],Ki);import*as xp from"child_process";var Cp=z("environmentService"),lr=Cp;var Dy="git-blob";function Oy(i,t,e){return y.from({scheme:Dy,authority:Kt(P.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${Kt(P.fromString(e))}/${ge(e)}`}).toString()}function Ly(i){let t;try{t=y.parse(i)}catch{return}if(t.scheme!==Dy)return;let[,e,n]=t.path.split("/");if(!(!e||!n))try{return{sessionUri:_i(t.authority).toString(),sha:decodeURIComponent(e),repoRelativePath:_i(n).toString()}}catch{return}}var ln=z("agentHostGitService"),Ol="agentHost.diffBaseBranch";function My(i){return i==="main"?0:i==="master"?1:2}function bT(i,t){let e=t?.query?.toLowerCase(),n=e?i.filter(r=>r.toLowerCase().includes(e)):[...i];return n.sort((r,o)=>My(r)-My(o)),t?.limit?n.slice(0,t.limit):n}var Gi=class{constructor(t,e){this._fileService=t;this._environmentService=e}async isInsideWorkTree(t){return(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()==="true"}async getCurrentBranch(t){return(await this._runGit(t,["branch","--show-current"]))?.trim()||(await this._runGit(t,["rev-parse","--short","HEAD"]))?.trim()||void 0}async getDefaultBranch(t){let e=(await this._runGit(t,["symbolic-ref","refs/remotes/origin/HEAD"]))?.trim();if(e){if(!e.startsWith("refs/remotes/origin/"))return e;let n=e.substring(20);return await this._runGit(t,["show-ref","--verify","--quiet",`refs/remotes/origin/${n}`])!==void 0?`origin/${n}`:await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${n}`])!==void 0?n:void 0}}async getBranches(t,e){let n=["for-each-ref","--format=%(refname:short)","--sort=-committerdate"];n.push("refs/heads");let r=await this._runGit(t,n);if(!r)return[];let o=r.split(/\r?\n/g).map(s=>s.trim()).filter(s=>s.length>0);return bT(o,e)}async getRepositoryRoot(t){let e=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();return e?y.file(e):void 0}async getWorktreeRoots(t){let e=await this._runGit(t,["worktree","list","--porcelain"]);return e?e.split(/\r?\n/g).filter(n=>n.startsWith("worktree ")).map(n=>y.file(n.substring(9))):[]}async addWorktree(t,e,n,r){let o=await this._resolveRemoteTrackingBranch(t,r)??r;await this._runGit(t,["worktree","add","--no-track","-b",n,e.fsPath,o],{timeout:3e4,throwOnError:!0})}async addExistingWorktree(t,e,n){await this._runGit(t,["worktree","add",e.fsPath,n],{timeout:3e4,throwOnError:!0})}async removeWorktree(t,e){await this._runGit(t,["worktree","remove","--force",e.fsPath],{timeout:3e4,throwOnError:!0})}async branchExists(t,e){return await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${e}`])!==void 0}async hasUncommittedChanges(t){let e=await this._runGit(t,["status","--porcelain"]);return!!e&&e.trim().length>0}async computeSessionFileDiffs(t,e){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let r=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!r)return;let o=y.file(r),s;if(e.baseBranch){let u=await this._resolveRemoteTrackingBranch(o,e.baseBranch)??e.baseBranch;s=(await this._runGit(o,["merge-base","HEAD",u]))?.trim()}s||(s=(await this._runGit(o,["rev-parse","HEAD"]))?.trim()),s||(s=Ny);let a=await this._runGit(o,["status","--porcelain=v1","-z","--untracked-files=all"]),l=ST(a),c;if(l.length===0?c=await this._runGit(o,["diff","--raw","--numstat","--diff-filter=ADMR","-z",s,"--"]):c=await this._runWithTempIndex(o,s),c!==void 0)return IT(c,o,e.sessionUri,s)}async _runWithTempIndex(t,e){let n=y.joinPath(this._environmentService.tmpDir,`agent-host-git-diff-${H()}`);await this._fileService.createFolder(n);let o={GIT_INDEX_FILE:y.joinPath(n,"index").fsPath};o.COMMAND_HOOK_LOCK="1";try{return await this._runGit(t,["read-tree","HEAD"],{env:o})===void 0&&await this._runGit(t,["read-tree",Ny],{env:o}),await this._runGit(t,["add","-A","--",":/"],{env:o}),await this._runGit(t,["diff","--cached","--raw","--numstat","--diff-filter=ADMR","-z",e,"--"],{env:o})}finally{try{await this._fileService.del(n,{recursive:!0,useTrash:!1})}catch{}}}async _resolveRemoteTrackingBranch(t,e){let n=`origin/${e}`;return await this._runGit(t,["show-ref","--verify","--quiet",`refs/remotes/${n}`])!==void 0?n:void 0}async showBlob(t,e,n){if(!(!/^[0-9a-f]{4,64}$/.test(e)||(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true"))return new Promise(o=>{xp.execFile("git",["show",`${e}:${n}`],{cwd:t.fsPath,timeout:5e3,encoding:"buffer",maxBuffer:32*1024*1024},(s,a)=>{if(s){o(void 0);return}o(P.wrap(a))})})}async getSessionGitState(t){return this._computeSessionGitState(t)}async _computeSessionGitState(t){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let[n,r,o]=await Promise.all([this._runGit(t,["status","-b","--porcelain=v2"]),this._runGit(t,["remote","-v"]),this._runGit(t,["symbolic-ref","--quiet","refs/remotes/origin/HEAD"])]),s=_T(n),a=TT(r),l=wT(o),c=CT(r),u=s.outgoingChanges;if(u===void 0&&l&&s.branchName&&s.branchName!==l){let f=await this._runGit(t,["rev-list","--count",`${l}..HEAD`]),g=f===void 0?NaN:Number(f.trim());Number.isFinite(g)&&(u=g)}let d={hasGitHubRemote:a,branchName:s.branchName,baseBranchName:l,upstreamBranchName:s.upstreamBranchName,incomingChanges:s.incomingChanges,outgoingChanges:u,uncommittedChanges:s.uncommittedChanges,githubOwner:c?.owner,githubRepo:c?.repo};return RT(d)}_runGit(t,e,n){return new Promise((r,o)=>{let s=n?.env?{...process.env,...n.env}:void 0;xp.execFile("git",[...e],{cwd:t.fsPath,timeout:n?.timeout??5e3,env:s,maxBuffer:n?.maxBuffer??32*1024*1024},(a,l,c)=>{if(a){if(n?.throwOnError){o(new Error(c||a.message));return}r(void 0);return}r(l)})})}};Gi=R([T(0,We),T(1,lr)],Gi);var Ny="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function ST(i){if(!i)return[];let t=[],e=i.split("\0");for(let n=0;n<e.length;n++){let r=e[n];if(!r)continue;let o=r.substring(0,2),s=r.substring(3);o==="??"?t.push(s):(o[0]==="R"||o[0]==="C")&&n++}return t}function IT(i,t,e,n){let r=i.split("\0"),o=[],s=new Map,a=0;for(;a<r.length;){let l=r[a++];if(l)if(l.startsWith(":")){let u=l.split(" ")[4]??"",d=r[a++];if(!d)continue;switch(u[0]){case"A":o.push({kind:"create",newPath:d});break;case"M":o.push({kind:"edit",oldPath:d,newPath:d});break;case"D":o.push({kind:"delete",oldPath:d});break;case"R":{let f=r[a++];if(!f)continue;o.push({kind:"rename",oldPath:d,newPath:f});break}default:break}}else{let[c,u,d]=l.split("	"),f;if(d===""||d===void 0){let g=r[a++];f=r[a++]??g??""}else f=d;if(!f)continue;s.set(f,{added:c==="-"?0:Number(c)||0,removed:u==="-"?0:Number(u)||0})}}return o.map(l=>{let c=s.get(l.newPath??l.oldPath??""),u=l.kind!=="create",d=l.kind!=="delete";return{...u&&l.oldPath?{before:{uri:y.joinPath(t,l.oldPath).toString(),content:{uri:Oy(e,n,l.oldPath)}}}:{},...d&&l.newPath?{after:{uri:y.joinPath(t,l.newPath).toString(),content:{uri:y.joinPath(t,l.newPath).toString()}}}:{},diff:{added:c?.added??0,removed:c?.removed??0}}})}function _T(i){if(!i)return{};let t,e,n,r,o=0;for(let s of i.split(/\r?\n/g)){let a=s.trimEnd();if(a)if(a.startsWith("# branch.head ")){let l=a.substring(14).trim();t=l==="(detached)"?void 0:l}else if(a.startsWith("# branch.upstream "))e=a.substring(18).trim();else if(a.startsWith("# branch.ab ")){let l=/^# branch\.ab \+(\d+) -(\d+)$/.exec(a);l&&(n=Number(l[1]),r=Number(l[2]))}else a.startsWith("#")||o++}return{branchName:t,upstreamBranchName:e,outgoingChanges:n,incomingChanges:r,uncommittedChanges:o}}function TT(i){if(i!==void 0)return i.trim()?/github\.com[:\/]/i.test(i):!1}function CT(i){if(!i)return;let t=[];for(let n of i.split(/\r?\n/)){let r=n.trim();if(!r)continue;let o=/^(\S+)\s+(\S+)\s+\(fetch\)$/.exec(r);o&&t.push({name:o[1],url:o[2]})}if(t.length===0)return;let e=[...t.filter(n=>n.name==="origin"),...t.filter(n=>n.name!=="origin")];for(let{url:n}of e){let r=xT(n);if(r)return r}}function xT(i){let t=/^[^@\s]+@github\.com:([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i.exec(i);if(t)return{owner:t[1],repo:t[2]};if(t=/^[a-z+]+:\/\/(?:[^@\/\s]+@)?github\.com(?::\d+)?\/([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i.exec(i),t)return{owner:t[1],repo:t[2]}}function wT(i){let t=i?.trim();if(!t)return;let e="refs/remotes/origin/";return t.startsWith(e)?t.substring(e.length):t}function RT(i){let t={};for(let[e,n]of Object.entries(i))n!==void 0&&(t[e]=n);return t}import{Worker as ET}from"worker_threads";var Ll=z("diffComputeService"),Uy=5e3;var cr=class extends C{constructor(e){super();this._logService=e;this._workerFailures=0;this._nextId=1;this._pending=new Map}async computeDiffCounts(e,n,r=Uy){let o=this._ensureWorker(),s=this._nextId++;return new Promise((a,l)=>{this._pending.set(s,{resolve:a,reject:l});try{o.postMessage({id:s,fn:"computeDiffCounts",args:[e,n,r]})}catch(c){this._pending.delete(s),l(c instanceof Error?c:new Error(String(c)))}})}_ensureWorker(){if(this._workerFailures>=3)throw new Error("Diff compute worker failed too many times");if(!this._worker){let e=it.asFileUri("vs/platform/agentHost/node/diffWorkerMain.js").fsPath,n=new ET(e,{name:"Diff compute worker"});n.on("message",r=>{let o=this._pending.get(r.id);if(o)if(this._pending.delete(r.id),r.err){let s=new Error(r.err.message);r.err.stack&&(s.stack=r.err.stack),o.reject(s)}else o.resolve(r.res)}),n.on("error",r=>{this._logService.error("[DiffComputeService] Worker error",r);for(let[,o]of this._pending)o.reject(r);this._pending.clear(),this._worker=void 0,this._workerFailures++}),this._worker=n}return this._worker}dispose(){this._worker&&(this._worker.terminate(),this._worker=void 0);for(let[,e]of this._pending)e.reject(new Error("DiffComputeService disposed"));this._pending.clear(),super.dispose()}};cr=R([T(0,V)],cr);var Vy="session-db";function ur(i,t,e,n){return y.from({scheme:Vy,authority:Kt(P.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${Kt(P.fromString(e))}/${n}/${ge(e)}`}).toString()}function Wy(i){let t=y.parse(i);if(t.scheme!==Vy)return;let[,e,n,r]=t.path.split("/");if(!(!e||!n||r!=="before"&&r!=="after"))try{return{sessionUri:_i(t.authority).toString(),toolCallId:decodeURIComponent(e),filePath:_i(n).toString(),part:r}}catch{return}}var dr=class{constructor(t,e,n,r,o){this._sessionUri=t;this._db=e;this._fileService=n;this._logService=r;this._diffComputeService=o;this._pendingEdits=new Map;this._completedEdits=new Map}async trackEditStart(t){let e=this._readFileWithExistence(t),n={beforeContent:P.fromString(""),beforeExisted:!1,snapshotDone:e.then(({content:r,existed:o})=>{n.beforeContent=r,n.beforeExisted=o})};this._pendingEdits.set(t,n),await n.snapshotDone}async completeEdit(t){let e=this._pendingEdits.get(t);if(!e)return;this._pendingEdits.delete(t),await e.snapshotDone;let n=await this._readFile(t);this._completedEdits.set(t,{beforeContent:e.beforeContent,beforeExisted:e.beforeExisted,afterContent:n})}async takeCompletedEdit(t,e,n){let r=this._completedEdits.get(n);if(!r)return;this._completedEdits.delete(n);let o=r.beforeContent.buffer,s=r.afterContent.buffer,a=r.beforeContent.toString(),l=r.afterContent.toString(),c=!r.beforeExisted&&s.length>0,u,d;try{let f=await this._diffComputeService.computeDiffCounts(a,l);u=f.added,d=c?0:f.removed}catch(f){this._logService.warn(`[FileEditTracker] Failed to compute diff counts: ${n}`,f)}try{await this._db.storeFileEdit({turnId:t,toolCallId:e,filePath:n,kind:c?"create":"edit",beforeContent:o,afterContent:s,addedLines:u,removedLines:d})}catch(f){this._logService.warn(`[FileEditTracker] Failed to persist file edit to database: ${n}`,f)}return{type:"fileEdit",before:{uri:y.file(n).toString(),content:{uri:ur(this._sessionUri,e,n,"before")}},after:{uri:y.file(n).toString(),content:{uri:ur(this._sessionUri,e,n,"after")}},diff:u!==void 0?{added:u,removed:d}:void 0}}async _readFile(t){try{return(await this._fileService.readFile(y.file(t))).value}catch(e){return this._logService.trace(`[FileEditTracker] Could not read file for snapshot: ${t}`,e),P.fromString("")}}async _readFileWithExistence(t){try{return{content:(await this._fileService.readFile(y.file(t))).value,existed:!0}}catch(e){return this._logService.trace(`[FileEditTracker] Could not read file for snapshot: ${t}`,e),{content:P.fromString(""),existed:!1}}}};dr=R([T(2,We),T(3,V),T(4,Ll)],dr);function $y(i){return i.after?.uri??i.before?.uri}function PT(i,t,e,n){let r=t.firstKind!=="create",o=t.lastKind!=="delete";return{...r?{before:{uri:y.file(t.firstFilePath).toString(),content:{uri:ur(i,t.firstToolCallId,t.firstFilePath,"before")}}}:{},...o?{after:{uri:y.file(t.terminalPath).toString(),content:{uri:ur(i,t.lastToolCallId,t.lastFilePath,"after")}}}:{},diff:{added:e,removed:n}}}async function By(i,t,e,n){let r,o=!1;if(n){let f=await t.getFileEditsByTurn(n.changedTurnId);if(f.length===0)return[...n.previousDiffs];let g=new Set(n.previousDiffs.map($y));f.some(v=>v.kind==="rename"||g.has(y.file(v.filePath).toString()))?r=await t.getAllFileEdits():(r=f,o=!0)}else r=await t.getAllFileEdits();if(r.length===0)return[];let s=new Map,a=new Map,l=n&&!o?new Set:void 0;for(let f of r){let g;f.kind==="rename"&&f.originalPath?(g=s.get(f.originalPath)??f.originalPath,s.set(f.filePath,g),s.delete(f.originalPath)):(g=s.get(f.filePath)??f.filePath,s.set(f.filePath,g)),l&&f.turnId===n.changedTurnId&&l.add(g);let h=a.get(g);h?(h.terminalPath=f.filePath,h.lastToolCallId=f.toolCallId,h.lastFilePath=f.filePath,h.lastKind=f.kind):a.set(g,{terminalPath:f.filePath,firstToolCallId:f.toolCallId,firstFilePath:f.kind==="rename"&&f.originalPath?f.originalPath:f.filePath,firstKind:f.kind,lastToolCallId:f.toolCallId,lastFilePath:f.filePath,lastKind:f.kind})}let c=n&&!o?new Map(n.previousDiffs.map(f=>[$y(f),f])):void 0,u=[],d=[];for(let[f,g]of a){if(l&&!l.has(f)){let h=y.file(g.terminalPath).toString(),v=c.get(h);v&&u.push(v);continue}d.push((async()=>{let h;if(g.firstKind==="create")h="";else{let _=await t.readFileEditContent(g.firstToolCallId,g.firstFilePath);h=_?.beforeContent?new TextDecoder().decode(_.beforeContent):""}let v;if(g.lastKind==="delete")v="";else{let _=await t.readFileEditContent(g.lastToolCallId,g.lastFilePath);v=_?.afterContent?new TextDecoder().decode(_.afterContent):""}if(h===v)return;let S=await e.computeDiffCounts(h,v);u.push(PT(i,g,S.added,S.removed))})())}return await Promise.allSettled(d),o&&u.push(...n.previousDiffs),u}var Ji="**",qy="/",Ml="[/\\\\]",Nl="[^/\\\\]",kT=/\//g;function Hy(i,t){switch(i){case 0:return"";case 1:return`${Nl}*?`;default:return`(?:${Ml}|${Nl}+${Ml}${t?`|${Ml}${Nl}+`:""})*?`}}function zy(i,t){if(!i)return[];let e=[],n=!1,r=!1,o="";for(let s of i){switch(s){case t:if(!n&&!r){e.push(o),o="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":r=!0;break;case"]":r=!1;break}o+=s}return o&&e.push(o),e}function Qy(i){if(!i)return"";let t="",e=zy(i,qy);if(e.every(n=>n===Ji))t=".*";else{let n=!1;e.forEach((r,o)=>{if(r===Ji){if(n)return;t+=Hy(2,o===e.length-1)}else{let s=!1,a="",l=!1,c="";for(let u of r){if(u!=="}"&&s){a+=u;continue}if(l&&(u!=="]"||!c)){let d;u==="-"?d=u:(u==="^"||u==="!")&&!c?d="^":u===qy?d="":d=Ot(u),c+=d;continue}switch(u){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let f=`(?:${zy(a,",").map(g=>Qy(g)).join("|")})`;t+=f,s=!1,a="";break}case"]":{t+="["+c+"]",l=!1,c="";break}case"?":t+=Nl;continue;case"*":t+=Hy(1);continue;default:t+=Ot(u)}}o<e.length-1&&(e[o+1]!==Ji||o+2<e.length)&&(t+=Ml)}n=r===Ji})}return t}var AT=/^\*\*\/\*\.[\w\.-]+$/,DT=/^\*\*\/([\w\.-]+)\/?$/,OT=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,LT=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,MT=/^\*\*((\/[\w\.-]+)+)\/?$/,NT=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,jy=new Zt(1e4),Ky=function(){return!1},cn=function(){return null};function Rp(i,t){if(!i)return cn;let e;typeof i!="string"?e=i.pattern:e=i,e=e.trim();let n=t.ignoreCase??!1,r={...t,equals:n?Tn:(l,c)=>l===c,endsWith:n?vg:(l,c)=>l.endsWith(c),isEqualOrParent:(l,c)=>Cn(l,c,t.ignoreCase??!Se)},o=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=jy.get(o);if(s)return Gy(s,i,r);let a;return AT.test(e)?s=FT(e.substring(4),e,r):(a=DT.exec(wp(e,r)))?s=UT(a[1],e,r):(t.trimForExclusions?LT:OT).test(e)?s=VT(e,r):(a=MT.exec(wp(e,r)))?s=Jy(a[1].substring(1),e,!0,r):(a=NT.exec(wp(e,r)))?s=Jy(a[1],e,!1,r):s=WT(e,r),jy.set(o,s),Gy(s,i,r)}function Gy(i,t,e){if(typeof t=="string")return i;let n=function(r,o){return e.isEqualOrParent(r,t.base)?i(pu(r.substring(t.base.length),he),o):null};return n.allBasenames=i.allBasenames,n.allPaths=i.allPaths,n.basenames=i.basenames,n.patterns=i.patterns,n}function wp(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function FT(i,t,e){return function(n,r){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function UT(i,t,e){let n=`/${i}`,r=`\\${i}`,o=function(a,l){return typeof a!="string"?null:l?e.equals(l,i)?t:null:e.equals(a,i)||e.endsWith(a,n)||e.endsWith(a,r)?t:null},s=[i];return o.basenames=s,o.patterns=[t],o.allBasenames=s,o}function VT(i,t){let e=Xy(i.slice(1,-1).split(",").map(a=>Rp(a,t)).filter(a=>a!==cn),i),n=e.length;if(!n)return cn;if(n===1)return e[0];let r=function(a,l){for(let c=0,u=e.length;c<u;c++)if(e[c](a,l))return i;return null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function Jy(i,t,e,n){let r=he===ee.sep,o=r?i:i.replace(kT,he),s=he+o,a=ee.sep+i,l;return e?l=function(c,u){return typeof c=="string"&&(n.equals(c,o)||n.endsWith(c,s)||!r&&(n.equals(c,i)||n.endsWith(c,a)))?t:null}:l=function(c,u){return typeof c=="string"&&(n.equals(c,o)||!r&&n.equals(c,i))?t:null},l.allPaths=[(e?"*/":"./")+i],l}function WT(i,t){try{let e=new RegExp(`^${Qy(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return cn}}function Yy(i,t,e){return!i||typeof t!="string"?!1:Ep(i,e)(t)}function Ep(i,t={}){if(!i)return Ky;if(typeof i=="string"||$T(i)){let e=Rp(i,t);if(e===cn)return Ky;let n=function(r,o){return!!e(r,o)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return BT(i,t)}function $T(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function BT(i,t){let e=Xy(Object.getOwnPropertyNames(i).map(a=>qT(a,i[a],t)).filter(a=>a!==cn)),n=e.length;if(!n)return cn;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(u,d){let f;for(let g=0,h=e.length;g<h;g++){let v=e[g](u,d);if(typeof v=="string")return v;Ha(v)&&(f||(f=[]),f.push(v))}return f?(async()=>{for(let g of f){let h=await g;if(typeof h=="string")return h}return null})():null},l=e.find(u=>!!u.allBasenames);l&&(a.allBasenames=l.allBasenames);let c=e.reduce((u,d)=>d.allPaths?u.concat(d.allPaths):u,[]);return c.length&&(a.allPaths=c),a}let r=function(a,l,c){let u,d;for(let f=0,g=e.length;f<g;f++){let h=e[f];h.requiresSiblings&&c&&(l||(l=ge(a)),u||(u=l.substring(0,l.length-Ma(a).length)));let v=h(a,l,u,c);if(typeof v=="string")return v;Ha(v)&&(d||(d=[]),d.push(v))}return d?(async()=>{for(let f of d){let g=await f;if(typeof g=="string")return g}return null})():null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function qT(i,t,e){if(t===!1)return cn;let n=Rp(i,e);if(n===cn)return cn;if(typeof t=="boolean")return n;if(t){let r=t.when;if(typeof r=="string"){let o=(s,a,l,c)=>{if(!c||!n(s,a))return null;let u=r.replace("$(basename)",()=>l),d=c(u);return Ha(d)?d.then(f=>f?i:null):d?i:null};return o.requiresSiblings=!0,o}}return n}function Xy(i,t){let e=i.filter(a=>!!a.basenames);if(e.length<2)return i;let n=e.reduce((a,l)=>{let c=l.basenames;return c?a.concat(c):a},[]),r;if(t){r=[];for(let a=0,l=n.length;a<l;a++)r.push(t)}else r=e.reduce((a,l)=>{let c=l.patterns;return c?a.concat(c):a},[]);let o=function(a,l){if(typeof a!="string")return null;if(!l){let u;for(u=a.length;u>0;u--){let d=a.charCodeAt(u-1);if(d===47||d===92)break}l=a.substring(u)}let c=n.indexOf(l);return c!==-1?r[c]:null};o.basenames=n,o.patterns=r,o.allBasenames=n;let s=i.filter(a=>!a.basenames);return s.push(o),s}function Pp(i,t){return qt(i,t,(e,n)=>typeof e=="string"&&typeof n=="string"?e===n:typeof e!="string"&&typeof n!="string"?e.base===n.base&&e.pattern===n.pattern:!1)}import*as ev from"fs";var HT=/&&|\|\||[;|]|`|\$\(/,kp=/(?!.*)/,Zy=/^[A-Z_][A-Z0-9_]*=/i,Fl=class extends C{constructor(e){super();this._logService=e;this._initPromise=this._initTreeSitter()}initialize(){return this._initPromise}shouldAutoApprove(e){let n=e.trimStart();if(n.length===0)return"approved";this._ensureRules();let r=this._extractSubCommands(n);return r&&r.length>0?this._matchSubCommands(r):HT.test(n)?(this._logService.trace("[CommandAutoApprover] Compound command without tree-sitter, requiring confirmation"),"noMatch"):this._matchCommandLine(n)}_matchSubCommands(e){let n=!0;for(let r of e){if(Zy.test(r))return"denied";let o=this._matchSingleCommand(r);if(o==="denied")return"denied";o!=="approved"&&(n=!1)}return n?"approved":"noMatch"}_matchCommandLine(e){return Zy.test(e)?"denied":this._matchSingleCommand(e)}_matchSingleCommand(e){for(let n of this._denyRules)if(n.regex.test(e))return"denied";for(let n of this._allowRules)if(n.regex.test(e))return"approved";return"noMatch"}_extractSubCommands(e){if(!(!this._parser||!this._bashLanguage||!this._queryClass))try{this._parser.setLanguage(this._bashLanguage);let n=this._parser.parse(e);if(!n)return;try{let r=new this._queryClass(this._bashLanguage,"(command) @command"),s=r.captures(n.rootNode).map(a=>a.node.text);return r.delete(),s.length>0?s:void 0}finally{n.delete()}}catch(n){this._logService.warn("[CommandAutoApprover] Tree-sitter parsing failed",n);return}}async _initTreeSitter(){try{let{default:e}=await import("@vscode/tree-sitter-wasm");if(this._store.isDisposed)return;let n=y.joinPath(it.asFileUri(""),"..","node_modules","@vscode","tree-sitter-wasm","wasm"),r=y.joinPath(n,"tree-sitter.wasm").fsPath;if(await e.Parser.init({locateFile(){return r}}),this._store.isDisposed)return;let o=new e.Parser;this._register(E(()=>{try{o.delete()}catch{}}));let s=y.joinPath(n,"tree-sitter-bash.wasm").fsPath,a=await ev.promises.readFile(s);if(this._store.isDisposed)return;let l=await e.Language.load(new Uint8Array(a.buffer,a.byteOffset,a.byteLength));if(this._store.isDisposed)return;this._parser=o,this._bashLanguage=l,this._queryClass=e.Query,this._logService.info("[CommandAutoApprover] Tree-sitter initialized successfully")}catch(e){this._logService.warn("[CommandAutoApprover] Failed to initialize tree-sitter",e)}}_ensureRules(){if(this._allowRules&&this._denyRules)return;let e=[],n=[];for(let[r,o]of Object.entries(jT)){let s=zT(r);o===!0?e.push({regex:s}):o===!1&&n.push({regex:s})}this._allowRules=e,this._denyRules=n}};function zT(i){let t=i.match(/^\/(?<pattern>.+)\/(?<flags>[dgimsuvy]*)$/),e=t?.groups?.pattern;if(e){let r=t.groups?.flags;if(r&&(r=r.replaceAll("g","")),e===".*")return new RegExp(e);try{let o=new RegExp(e,r||void 0);return hg(o)?kp:o}catch{return kp}}if(i==="")return kp;let n;if(i.includes("/")||i.includes("\\")){let r=i.replace(/[/\\]/g,"%%PATH_SEP%%");r=Ot(r),r=r.replace(/%%PATH_SEP%%*/g,"[/\\\\]"),n=`^(?:\\.[/\\\\])?${r}`}else n=Ot(i);return new RegExp(`^${n}\\b`)}var jT={cd:!0,echo:!0,ls:!0,dir:!0,pwd:!0,cat:!0,head:!0,tail:!0,findstr:!0,wc:!0,tr:!0,cut:!0,cmp:!0,which:!0,basename:!0,dirname:!0,realpath:!0,readlink:!0,stat:!0,file:!0,od:!0,du:!0,df:!0,sleep:!0,nl:!0,grep:!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+status\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b.*\\s--output(=|\\s|$)/":!1,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+show\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+diff\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+ls-files\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+grep\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b.*\\s-(d|D|m|M|-delete|-force)\\b/":!1,"/^docker\\s+(ps|images|info|version|inspect|logs|top|stats|port|diff|search|events)\\b/":!0,"/^docker\\s+(container|image|network|volume|context|system)\\s+(ls|ps|inspect|history|show|df|info)\\b/":!0,"/^docker\\s+compose\\s+(ps|ls|top|logs|images|config|version|port|events)\\b/":!0,"Get-ChildItem":!0,"Get-Content":!0,"Get-Date":!0,"Get-Random":!0,"Get-Location":!0,"Set-Location":!0,"Write-Host":!0,"Write-Output":!0,"Out-String":!0,"Split-Path":!0,"Join-Path":!0,"Start-Sleep":!0,"Where-Object":!0,"/^Select-[a-z0-9]/i":!0,"/^Measure-[a-z0-9]/i":!0,"/^Compare-[a-z0-9]/i":!0,"/^Format-[a-z0-9]/i":!0,"/^Sort-[a-z0-9]/i":!0,"/^npm\\s+(ls|list|outdated|view|info|show|explain|why|root|prefix|bin|search|doctor|fund|repo|bugs|docs|home|help(-search)?)\\b/":!0,"/^npm\\s+config\\s+(list|get)\\b/":!0,"/^npm\\s+pkg\\s+get\\b/":!0,"/^npm\\s+audit$/":!0,"/^npm\\s+cache\\s+verify\\b/":!0,"/^yarn\\s+(list|outdated|info|why|bin|help|versions)\\b/":!0,"/^yarn\\s+licenses\\b/":!0,"/^yarn\\s+audit\\b(?!.*\\bfix\\b)/":!0,"/^yarn\\s+config\\s+(list|get)\\b/":!0,"/^yarn\\s+cache\\s+dir\\b/":!0,"/^pnpm\\s+(ls|list|outdated|why|root|bin|doctor)\\b/":!0,"/^pnpm\\s+licenses\\b/":!0,"/^pnpm\\s+audit\\b(?!.*\\bfix\\b)/":!0,"/^pnpm\\s+config\\s+(list|get)\\b/":!0,"npm ci":!0,"/^yarn\\s+install\\s+--frozen-lockfile\\b/":!0,"/^pnpm\\s+install\\s+--frozen-lockfile\\b/":!0,column:!0,"/^column\\b.*\\s-c\\s+[0-9]{4,}/":!1,date:!0,"/^date\\b.*\\s(-s|--set)\\b/":!1,find:!0,"/^find\\b.*\\s-(delete|exec|execdir|fprint|fprintf|fls|ok|okdir)\\b/":!1,rg:!0,"/^rg\\b.*\\s(--pre|--hostname-bin)\\b/":!1,sed:!0,"/^sed\\b.*\\s(-[a-zA-Z]*(e|f)[a-zA-Z]*|--expression|--file)\\b/":!1,"/^sed\\b.*s\\/.*\\/.*\\/[ew]/":!1,"/^sed\\b.*;W/":!1,sort:!0,"/^sort\\b.*\\s-(o|S)\\b/":!1,tree:!0,"/^tree\\b.*\\s-o\\b/":!1,"/^xxd$/":!0,"/^xxd\\b(\\s+-\\S+)*\\s+[^-\\s]\\S*$/":!0,rm:!1,rmdir:!1,del:!1,"Remove-Item":!1,ri:!1,rd:!1,erase:!1,dd:!1,kill:!1,ps:!1,top:!1,"Stop-Process":!1,spps:!1,taskkill:!1,"taskkill.exe":!1,curl:!1,wget:!1,"Invoke-RestMethod":!1,"Invoke-WebRequest":!1,irm:!1,iwr:!1,chmod:!1,chown:!1,"Set-ItemProperty":!1,sp:!1,"Set-Acl":!1,jq:!1,xargs:!1,eval:!1,"Invoke-Expression":!1,iex:!1};var tv="allow-session",GT=[{id:tv,label:m(2069,null),kind:"approve",group:1},{id:"allow-once",label:m(2068,null),kind:"approve"},{id:"skip",label:m(2070,null),kind:"deny",group:2}],JT={"**/*":!0,"**/.vscode/*.json":!1,"**/.git/**":!1,"**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env}":!1,"**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}":!1,"**/*.lock":!1,"**/*-lock.{yaml,json}":!1},Qi=class extends C{constructor(e,n,r){super();this._stateManager=e;this._configService=n;this._logService=r;this._commandAutoApprover=this._register(new Fl(this._logService))}initialize(){return this._commandAutoApprover.initialize()}getAutoApproval(e,n){let r=this._configService.getEffectiveValue(n,vt,"autoApprove"),o=this._configService.getEffectiveWorkingDirectory(n);if(r==="autoApprove"||r==="autopilot")return this._logService.trace(`[SessionPermissionManager] Auto-approving tool call (session autoApprove=${r})`),"setting";if(this._isToolAllowedByPermissions(n,e.toolCallId))return"setting";if(e.permissionKind==="read"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)?(this._logService.trace(`[SessionPermissionManager] Auto-approving read of ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="write"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)&&this._isEditAutoApproved(e.permissionPath)?(this._logService.trace(`[SessionPermissionManager] Auto-approving write to ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="shell"&&e.toolInput){let s=this._commandAutoApprover.shouldAutoApprove(e.toolInput);if(s==="approved")return this._logService.trace("[SessionPermissionManager] Auto-approving shell command"),"not-needed";s==="denied"&&this._logService.trace("[SessionPermissionManager] Shell command denied by rule");return}}createToolReadyAction(e,n,r){let o=e.state;return o.confirmationTitle?{type:"session/toolCallReady",session:n,turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmationTitle:o.confirmationTitle,edits:o.edits,editable:o.editable,options:o.options?o.options.slice():GT.slice()}:{type:"session/toolCallReady",session:n,turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmed:"not-needed"}}handleToolCallConfirmed(e,n,r){if(r===tv){let o=this._getToolNameForToolCall(e,n);o&&this._addToolToSessionPermissions(e,o)}}_isPathInWorkingDirectory(e,n){if(!n)return!1;let r=y.parse(n);return lt.isEqualOrParent(Tt(y.file(e)),r)}_isEditAutoApproved(e){let n=!0;for(let[r,o]of Object.entries(JT))o!==n&&Yy(r,e)&&(n=o);return n}_isToolAllowedByPermissions(e,n){let r=this._getToolNameForToolCall(e,n);if(!r)return!1;let s=this._configService.getEffectiveValue(e,vt,"permissions")?.allow.includes(r)??!1;return s&&this._logService.trace(`[SessionPermissionManager] Auto-approving "${r}" via permissions`),s}_getToolNameForToolCall(e,n){let o=this._stateManager.getSessionState(e)?.activeTurn?.responseParts;if(o){for(let s of o)if(s.kind==="toolCall"&&s.toolCall.toolCallId===n)return s.toolCall.toolName}}_addToolToSessionPermissions(e,n){let r=this._configService.getEffectiveValue(e,vt,"permissions")??{allow:[],deny:[]};r.allow.includes(n)||(this._configService.updateSessionConfig(e,{permissions:{allow:[...r.allow,n],deny:[...r.deny]}}),this._logService.info(`[SessionPermissionManager] Added "${n}" to session permissions for ${e}`))}};Qi=R([T(1,ut),T(2,V)],Qi);import{hostname as RC,release as EC}from"os";import{networkInterfaces as ZT}from"os";import{networkInterfaces as QT}from"os";var YT=new Set(["00:00:00:00:00:00","ff:ff:ff:ff:ff:ff","ac:de:48:00:11:22"]);function XT(i){let t=i.replace(/\-/g,":").toLowerCase();return!YT.has(t)}function nv(){let i=QT();for(let t in i){let e=i[t];if(e){for(let{mac:n}of e)if(XT(n))return n}}throw new Error("Unable to retrieve mac address (unexpected format)")}var qM=new class{_isVirtualMachineMacAddress(i){return this._virtualMachineOUIs||(this._virtualMachineOUIs=rn.forStrings(),this._virtualMachineOUIs.set("00-50-56",!0),this._virtualMachineOUIs.set("00-0C-29",!0),this._virtualMachineOUIs.set("00-05-69",!0),this._virtualMachineOUIs.set("00-03-FF",!0),this._virtualMachineOUIs.set("00-1C-42",!0),this._virtualMachineOUIs.set("00-16-3E",!0),this._virtualMachineOUIs.set("08-00-27",!0),this._virtualMachineOUIs.set("00:50:56",!0),this._virtualMachineOUIs.set("00:0C:29",!0),this._virtualMachineOUIs.set("00:05:69",!0),this._virtualMachineOUIs.set("00:03:FF",!0),this._virtualMachineOUIs.set("00:1C:42",!0),this._virtualMachineOUIs.set("00:16:3E",!0),this._virtualMachineOUIs.set("08:00:27",!0)),!!this._virtualMachineOUIs.findSubstr(i)}value(){if(this._value===void 0){let i=0,t=0,e=ZT();for(let n in e){let r=e[n];if(r)for(let{mac:o,internal:s}of r)s||(t+=1,this._isVirtualMachineMacAddress(o.toUpperCase())&&(i+=1))}this._value=t>0?i/t:0}return this._value}},Ap;async function Ul(i){return Ap||(Ap=(async()=>await eC(i)||H())()),Ap}async function eC(i){try{let t=await import("crypto"),e=nv();return t.createHash("sha256").update(e,"utf8").digest("hex")}catch(t){i(t);return}}var tC="Software\\Microsoft\\SQMClient";async function rv(i){if(q){let t=await import("@vscode/windows-registry");try{return t.GetStringRegKey("HKEY_LOCAL_MACHINE",tC,"MachineId")||""}catch(e){return i(e),""}}return""}async function Vl(i){try{let e=await(await import("@vscode/deviceid")).getDeviceId();return _g(e)}catch(t){return i(t),H()}}var $l;(t=>t.DEFAULT={allowTrailingComma:!0})($l||={});function Op(i,t=!1){let e=0,n=i.length,r="",o=0,s=16,a=0;function l(v){let S=0,_=0;for(;S<v;){let I=i.charCodeAt(e);if(I>=48&&I<=57)_=_*16+I-48;else if(I>=65&&I<=70)_=_*16+I-65+10;else if(I>=97&&I<=102)_=_*16+I-97+10;else break;e++,S++}return S<v&&(_=-1),_}function c(v){e=v,r="",o=0,s=16,a=0}function u(){let v=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&Yi(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&Yi(i.charCodeAt(e)))for(e++;e<i.length&&Yi(i.charCodeAt(e));)e++;else return a=3,i.substring(v,e);let S=e;if(e<i.length&&(i.charCodeAt(e)===69||i.charCodeAt(e)===101))if(e++,(e<i.length&&i.charCodeAt(e)===43||i.charCodeAt(e)===45)&&e++,e<i.length&&Yi(i.charCodeAt(e))){for(e++;e<i.length&&Yi(i.charCodeAt(e));)e++;S=e}else a=3;return i.substring(v,S)}function d(){let v="",S=e;for(;;){if(e>=n){v+=i.substring(S,e),a=2;break}let _=i.charCodeAt(e);if(_===34){v+=i.substring(S,e),e++;break}if(_===92){if(v+=i.substring(S,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:v+='"';break;case 92:v+="\\";break;case 47:v+="/";break;case 98:v+="\b";break;case 102:v+="\f";break;case 110:v+=`
`;break;case 114:v+="\r";break;case 116:v+="	";break;case 117:{let b=l(4);b>=0?v+=String.fromCharCode(b):a=4;break}default:a=5}S=e;continue}if(_>=0&&_<=31)if(Wl(_)){v+=i.substring(S,e),a=2;break}else a=6;e++}return v}function f(){if(r="",a=0,o=e,e>=n)return o=n,s=17;let v=i.charCodeAt(e);if(Dp(v)){do e++,r+=String.fromCharCode(v),v=i.charCodeAt(e);while(Dp(v));return s=15}if(Wl(v))return e++,r+=String.fromCharCode(v),v===13&&i.charCodeAt(e)===10&&(e++,r+=`
`),s=14;switch(v){case 123:return e++,s=1;case 125:return e++,s=2;case 91:return e++,s=3;case 93:return e++,s=4;case 58:return e++,s=6;case 44:return e++,s=5;case 34:return e++,r=d(),s=10;case 47:{let S=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!Wl(i.charCodeAt(e));)e++;return r=i.substring(S,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let _=n-1,I=!1;for(;e<_;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,I=!0;break}e++}return I||(e++,a=1),r=i.substring(S,e),s=13}return r+=String.fromCharCode(v),e++,s=16}case 45:if(r+=String.fromCharCode(v),e++,e===n||!Yi(i.charCodeAt(e)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return r+=u(),s=11;default:for(;e<n&&g(v);)e++,v=i.charCodeAt(e);if(o!==e){switch(r=i.substring(o,e),r){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return r+=String.fromCharCode(v),e++,s=16}}function g(v){if(Dp(v)||Wl(v))return!1;switch(v){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function h(){let v;do v=f();while(v>=12&&v<=15);return v}return{setPosition:c,getPosition:()=>e,scan:t?h:f,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>e-o,getTokenError:()=>a}}function Dp(i){return i===32||i===9||i===11||i===12||i===160||i===5760||i>=8192&&i<=8203||i===8239||i===8287||i===12288||i===65279}function Wl(i){return i===10||i===13||i===8232||i===8233}function Yi(i){return i>=48&&i<=57}function Bl(i,t=[],e=$l.DEFAULT){let n=null,r=[],o=[];function s(l){Array.isArray(r)?r.push(l):n!==null&&(r[n]=l)}return Xi(i,{onObjectBegin:()=>{let l={};s(l),o.push(r),r=l,n=null},onObjectProperty:l=>{n=l},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let l=[];s(l),o.push(r),r=l,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:s,onError:(l,c,u)=>{t.push({error:l,offset:c,length:u})}},e),r[0]}function iv(i,t=[],e=$l.DEFAULT){let n={type:"array",offset:-1,length:-1,children:[],parent:void 0};function r(l){n.type==="property"&&(n.length=l-n.offset,n=n.parent)}function o(l){return n.children.push(l),l}Xi(i,{onObjectBegin:l=>{n=o({type:"object",offset:l,length:-1,parent:n,children:[]})},onObjectProperty:(l,c,u)=>{n=o({type:"property",offset:c,length:-1,parent:n,children:[]}),n.children.push({type:"string",value:l,offset:c,length:u,parent:n})},onObjectEnd:(l,c)=>{n.length=l+c-n.offset,n=n.parent,r(l+c)},onArrayBegin:(l,c)=>{n=o({type:"array",offset:l,length:-1,parent:n,children:[]})},onArrayEnd:(l,c)=>{n.length=l+c-n.offset,n=n.parent,r(l+c)},onLiteralValue:(l,c,u)=>{o({type:nC(l),offset:c,length:u,parent:n,value:l}),r(c+u)},onSeparator:(l,c,u)=>{n.type==="property"&&(l===":"?n.colonOffset=c:l===","&&r(c))},onError:(l,c,u)=>{t.push({error:l,offset:c,length:u})}},e);let a=n.children[0];return a&&delete a.parent,a}function Lp(i,t){if(!i)return;let e=i;for(let n of t)if(typeof n=="string"){if(e.type!=="object"||!Array.isArray(e.children))return;let r=!1;for(let o of e.children)if(Array.isArray(o.children)&&o.children[0].value===n){e=o.children[1],r=!0;break}if(!r)return}else{let r=n;if(e.type!=="array"||r<0||!Array.isArray(e.children)||r>=e.children.length)return;e=e.children[r]}return e}function Xi(i,t,e=$l.DEFAULT){let n=Op(i,!1);function r(M){return M?()=>M(n.getTokenOffset(),n.getTokenLength()):()=>!0}function o(M){return M?se=>M(se,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=r(t.onObjectBegin),a=o(t.onObjectProperty),l=r(t.onObjectEnd),c=r(t.onArrayBegin),u=r(t.onArrayEnd),d=o(t.onLiteralValue),f=o(t.onSeparator),g=r(t.onComment),h=o(t.onError),v=e&&e.disallowComments,S=e&&e.allowTrailingComma;function _(){for(;;){let M=n.scan();switch(n.getTokenError()){case 4:I(14);break;case 5:I(15);break;case 3:I(13);break;case 1:v||I(11);break;case 2:I(12);break;case 6:I(16);break}switch(M){case 12:case 13:v?I(10):g();break;case 16:I(1);break;case 15:case 14:break;default:return M}}}function I(M,se=[],ue=[]){if(h(M),se.length+ue.length>0){let Me=n.getToken();for(;Me!==17;){if(se.indexOf(Me)!==-1){_();break}else if(ue.indexOf(Me)!==-1)break;Me=_()}}}function b(M){let se=n.getTokenValue();return M?d(se):a(se),_(),!0}function w(){switch(n.getToken()){case 11:{let M=0;try{M=JSON.parse(n.getTokenValue()),typeof M!="number"&&(I(2),M=0)}catch{I(2)}d(M);break}case 7:d(null);break;case 8:d(!0);break;case 9:d(!1);break;default:return!1}return _(),!0}function D(){return n.getToken()!==10?(I(3,[],[2,5]),!1):(b(!1),n.getToken()===6?(f(":"),_(),O()||I(4,[],[2,5])):I(5,[],[2,5]),!0)}function re(){s(),_();let M=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(M||I(4,[],[]),f(","),_(),n.getToken()===2&&S)break}else M&&I(6,[],[]);D()||I(4,[],[2,5]),M=!0}return l(),n.getToken()!==2?I(7,[2],[]):_(),!0}function k(){c(),_();let M=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(M||I(4,[],[]),f(","),_(),n.getToken()===4&&S)break}else M&&I(6,[],[]);O()||I(4,[],[4,5]),M=!0}return u(),n.getToken()!==4?I(8,[4],[]):_(),!0}function O(){switch(n.getToken()){case 3:return k();case 1:return re();case 10:return b(!0);default:return w()}}return _(),n.getToken()===17?e.allowEmptyContent?!0:(I(4,[],[]),!1):O()?(n.getToken()!==17&&I(9,[],[]),!0):(I(4,[],[]),!1)}function nC(i){switch(typeof i){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(i){if(Array.isArray(i))return"array"}else return"null";return"object"}default:return"null"}}function sv(i,t,e){let n,r,o,s,a;if(t){for(s=t.offset,a=s+t.length,o=s;o>0&&!Ws(i,o-1);)o--;let b=a;for(;b<i.length&&!Ws(i,b);)b++;r=i.substring(o,b),n=rC(r,e)}else r=i,n=0,o=0,s=0,a=i.length;let l=iC(e,i),c=!1,u=0,d;e.insertSpaces?d=Mp(" ",e.tabSize||4):d="	";let f=Op(r,!1),g=!1;function h(){return l+Mp(d,n+u)}function v(){let b=f.scan();for(c=!1;b===15||b===14;)c=c||b===14,b=f.scan();return g=b===16||f.getTokenError()!==0,b}let S=[];function _(b,w,D){!g&&w<a&&D>s&&i.substring(w,D)!==b&&S.push({offset:w,length:D-w,content:b})}let I=v();if(I!==17){let b=f.getTokenOffset()+o,w=Mp(d,n);_(w,o,b)}for(;I!==17;){let b=f.getTokenOffset()+f.getTokenLength()+o,w=v(),D="";for(;!c&&(w===12||w===13);){let k=f.getTokenOffset()+o;_(" ",b,k),b=f.getTokenOffset()+f.getTokenLength()+o,D=w===12?h():"",w=v()}if(w===2)I!==1&&(u--,D=h());else if(w===4)I!==3&&(u--,D=h());else{switch(I){case 3:case 1:u++,D=h();break;case 5:case 12:D=h();break;case 13:c?D=h():D=" ";break;case 6:D=" ";break;case 10:if(w===6){D="";break}case 7:case 8:case 9:case 11:case 2:case 4:w===12||w===13?D=" ":w!==5&&w!==17&&(g=!0);break;case 16:g=!0;break}c&&(w===12||w===13)&&(D=h())}let re=f.getTokenOffset()+o;_(D,b,re),I=w}return S}function Mp(i,t){let e="";for(let n=0;n<t;n++)e+=i;return e}function rC(i,t){let e=0,n=0,r=t.tabSize||4;for(;e<i.length;){let o=i.charAt(e);if(o===" ")n++;else if(o==="	")n+=r;else break;e++}return Math.floor(n/r)}function iC(i,t){for(let e=0;e<t.length;e++){let n=t.charAt(e);if(n==="\r")return e+1<t.length&&t.charAt(e+1)===`
`?`\r
`:"\r";if(n===`
`)return`
`}return i&&i.eol||`
`}function Ws(i,t){return`\r
`.indexOf(i.charAt(t))!==-1}function av(i,t,e,n,r){let o=t.slice(),a=iv(i,[]),l,c;for(;o.length>0&&(c=o.pop(),l=Lp(a,o),l===void 0&&e!==void 0);)typeof c=="string"?e={[c]:e}:e=[e];if(l)if(l.type==="object"&&typeof c=="string"&&Array.isArray(l.children)){let u=Lp(l,[c]);if(u!==void 0)if(e===void 0){if(!u.parent)throw new Error("Malformed AST");let d=l.children.indexOf(u.parent),f,g=u.parent.offset+u.parent.length;if(d>0){let h=l.children[d-1];f=h.offset+h.length}else f=l.offset+1,l.children.length>1&&(g=l.children[1].offset);return Zi(i,{offset:f,length:g-f,content:""},n)}else return Zi(i,{offset:u.offset,length:u.length,content:JSON.stringify(e)},n);else{if(e===void 0)return[];let d=`${JSON.stringify(c)}: ${JSON.stringify(e)}`,f=r?r(l.children.map(h=>h.children[0].value)):l.children.length,g;if(f>0){let h=l.children[f-1];g={offset:h.offset+h.length,length:0,content:","+d}}else l.children.length===0?g={offset:l.offset+1,length:0,content:d}:g={offset:l.offset+1,length:0,content:d+","};return Zi(i,g,n)}}else if(l.type==="array"&&typeof c=="number"&&Array.isArray(l.children))if(e!==void 0){let u=`${JSON.stringify(e)}`,d;if(l.children.length===0||c===0)d={offset:l.offset+1,length:0,content:l.children.length===0?u:u+","};else{let f=c===-1||c>l.children.length?l.children.length:c,g=l.children[f-1];d={offset:g.offset+g.length,length:0,content:","+u}}return Zi(i,d,n)}else{let u=c,d=l.children[u],f;if(l.children.length===1)f={offset:l.offset+1,length:l.length-2,content:""};else if(l.children.length-1===u){let g=l.children[u-1],h=g.offset+g.length,v=l.offset+l.length;f={offset:h,length:v-2-h,content:""}}else f={offset:d.offset,length:l.children[u+1].offset-d.offset,content:""};return Zi(i,f,n)}else throw new Error(`Can not add ${typeof c!="number"?"index":"property"} to parent of type ${l.type}`);else return e===void 0?[]:Zi(i,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(e)},n)}function Zi(i,t,e){let n=Np(i,t),r=t.offset,o=t.offset+t.content.length;if(t.length===0||t.content.length===0){for(;r>0&&!Ws(n,r-1);)r--;for(;o<n.length&&!Ws(n,o);)o++}let s=sv(n,{offset:r,length:o-r},e);for(let l=s.length-1;l>=0;l--){let c=s[l];n=Np(n,c),r=Math.min(r,c.offset),o=Math.max(o,c.offset+c.length),o+=c.content.length-c.length}let a=i.length-(n.length-o)-r;return[{offset:r,length:a,content:n.substring(r,o)}]}function Np(i,t){return i.substring(0,t.offset)+t.content+i.substring(t.offset+t.length)}function lv(i,t){let e=t.slice(0).sort((r,o)=>{let s=r.offset-o.offset;return s===0?r.length-o.length:s}),n=i.length;for(let r=e.length-1;r>=0;r--){let o=e[r];if(o.offset+o.length<=n)i=Np(i,o);else throw new Error("Overlapping edit");n=o.offset}return i}var cv=z("configurationService");function ql(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifier||typeof t.overrideIdentifier=="string")&&(!t.resource||t.resource instanceof y)}function dv(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifiers||Array.isArray(t.overrideIdentifiers))&&!t.overrideIdentifier&&(!t.resource||t.resource instanceof y)}function Hl(i,t){let e=Object.create(null);for(let n in i)Fp(e,n,i[n],t);return e}function Fp(i,t,e,n){let r=t.split("."),o=r.pop(),s=i;for(let a=0;a<r.length;a++){let l=r[a],c=s[l];switch(typeof c){case"undefined":c=s[l]=Object.create(null);break;case"object":if(c===null){n(`Ignoring ${t} as ${r.slice(0,a+1).join(".")} is null`);return}break;default:n(`Ignoring ${t} as ${r.slice(0,a+1).join(".")} is ${JSON.stringify(c)}`);return}s=c}if(typeof s=="object"&&s!==null)try{s[o]=e}catch{n(`Ignoring ${t} as ${r.join(".")} is ${JSON.stringify(s)}`)}else n(`Ignoring ${t} as ${r.join(".")} is ${JSON.stringify(s)}`)}function uv(i,t){let e=t.split(".");pv(i,e)}function pv(i,t){if(!i)return;let e=i,n=t.shift();if(t.length===0){delete e[n];return}if(Object.keys(e).indexOf(n)!==-1){let r=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&(pv(r,t),Object.keys(r).length===0&&delete e[n])}}function $s(i,t,e){function n(s,a){let l=s;for(let c of a){if(typeof l!="object"||l===null)return;l=l[c]}return l}let r=t.split("."),o=n(i,r);return typeof o>"u"?e:o}function fv(i){return i.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}function mv(i){let t=!1,e=new Map,n=new Map;if(oC(i,u=>{if(i===u)return!0;let d=JSON.stringify(u);if(d.length<30)return!0;let f=e.get(d);if(!f){let g={schemas:[u]};return e.set(d,g),n.set(u,g),!0}return f.schemas.push(u),n.set(u,f),t=!0,!1}),e.clear(),!t)return JSON.stringify(i);let o="$defs";for(;i.hasOwnProperty(o);)o+="_";let s=[];function a(u){return JSON.stringify(u,(d,f)=>{if(f!==u){let g=n.get(f);if(g&&g.schemas.length>1)return g.id||(g.id=`_${s.length}`,s.push(g.schemas[0])),{$ref:`#/${o}/${g.id}`}}return f})}let l=a(i),c=[];for(let u=0;u<s.length;u++)c.push(`"_${u}":${a(s[u])}`);return c.length?`${l.substring(0,l.length-1)},"${o}":{${c.join(",")}}}`:l}function eo(i){return typeof i=="object"&&i!==null}function oC(i,t){if(!i||typeof i!="object")return;let e=(...l)=>{for(let c of l)eo(c)&&s.push(c)},n=(...l)=>{for(let c of l)if(eo(c))for(let u in c){let d=c[u];eo(d)&&s.push(d)}},r=(...l)=>{for(let c of l)if(Array.isArray(c))for(let u of c)eo(u)&&s.push(u)},o=l=>{if(Array.isArray(l))for(let c of l)eo(c)&&s.push(c);else eo(l)&&s.push(l)},s=[i],a=s.pop();for(;a;)t(a)&&(e(a.additionalItems,a.additionalProperties,a.not,a.contains,a.propertyNames,a.if,a.then,a.else,a.unevaluatedItems,a.unevaluatedProperties),n(a.definitions,a.$defs,a.properties,a.patternProperties,a.dependencies,a.dependentSchemas),r(a.anyOf,a.allOf,a.oneOf,a.prefixItems),o(a.items)),a=s.pop()}var Up=class{constructor(){this.data=new Map}add(t,e){Ia(Ee(t)),Ia(Pe(e)),Ia(!this.data.has(t),"There is already an extension with this id"),this.data.set(t,e)}knows(t){return this.data.has(t)}as(t){return this.data.get(t)||null}dispose(){this.data.forEach(t=>{Jo(t.dispose)&&t.dispose()}),this.data.clear()}},Ze=new Up;var Wp={JSONContribution:"base.contributions.json"};function gv(i){return i.length>0&&i.charAt(i.length-1)==="#"?i.substring(0,i.length-1):i}var Vp=class extends C{constructor(){super(...arguments);this.schemasById={};this.schemaAssociations={};this._onDidChangeSchema=this._register(new x);this.onDidChangeSchema=this._onDidChangeSchema.event;this._onDidChangeSchemaAssociations=this._register(new x);this.onDidChangeSchemaAssociations=this._onDidChangeSchemaAssociations.event}registerSchema(e,n,r){let o=gv(e);this.schemasById[o]=n,this._onDidChangeSchema.fire(e),r&&r.add(E(()=>{delete this.schemasById[o],this._onDidChangeSchema.fire(e)}))}registerSchemaAssociation(e,n){let r=gv(e);return this.schemaAssociations[r]||(this.schemaAssociations[r]=[]),this.schemaAssociations[r].includes(n)||(this.schemaAssociations[r].push(n),this._onDidChangeSchemaAssociations.fire()),E(()=>{let o=this.schemaAssociations[r];if(o){let s=o.indexOf(n);s!==-1&&(o.splice(s,1),o.length===0&&delete this.schemaAssociations[r],this._onDidChangeSchemaAssociations.fire())}})}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}getSchemaContributions(){return{schemas:this.schemasById}}getSchemaContent(e){let n=this.schemasById[e];return n?mv(n):void 0}hasSchemaContent(e){return!!this.schemasById[e]}getSchemaAssociations(){return this.schemaAssociations}},aC=new Vp;Ze.add(Wp.JSONContribution,aC);var bt,$p=globalThis.vscode;if(typeof $p<"u"&&typeof $p.context<"u"){let i=$p.context.configuration();if(i)bt=i.product;else throw new Error("Sandbox: unable to resolve product configuration from preload script.")}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(bt=globalThis._VSCODE_PRODUCT_JSON,Ne.VSCODE_DEV&&Object.assign(bt,{nameShort:`${bt.nameShort} Dev`,nameLong:`${bt.nameLong} Dev`,dataFolderName:`${bt.dataFolderName}-dev`,serverDataFolderName:bt.serverDataFolderName?`${bt.serverDataFolderName}-dev`:void 0}),!bt.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(bt,{version:i.version})}}else bt={nameShort:"Code",nameLong:"Visual Studio Code",applicationName:"code",win32x64AppId:"{{EA457B21-F73E-494C-ACAB-524FDE069978}",win32arm64AppId:"{{A5270FC5-65AD-483E-AC30-2C276B63D0AC}",win32x64UserAppId:"{{771FD6B0-FA20-440A-A002-3B3BAC16DC50}",win32arm64UserAppId:"{{D9E514E7-1A56-452D-9337-2990C0DC4310}",win32NameVersion:"Microsoft Visual Studio Code",win32DirName:"Microsoft VS Code",win32SetupExeBasename:"VSCodeSetup",win32AppUserModelId:"Microsoft.VisualStudioCode",win32ShellNameShort:"Code",win32MutexName:"vscode",win32RegValueName:"VSCode",win32VersionedUpdate:!0,darwinCredits:"resources/darwin/Credits.rtf",darwinBundleIdentifier:"com.microsoft.VSCode",darwinSharedKeychainServiceName:"com.microsoft.VSCode.shared-secrets",darwinProfileUUID:"EBAE60D6-C8A2-4419-92FF-24F8AD5077AB",darwinProfilePayloadUUID:"C6B5723A-6539-4F31-8A4E-3CC96E51F48C",darwinExecutable:"VSCode",linuxIconName:"vscode",licenseFileName:"LICENSE.rtf",licenseName:"Multiple, see https://code.visualstudio.com/license",serverGreeting:[],serverLicense:["*","* Visual Studio Code Server","*","* By using the software, you agree to","* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and","* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).","*"],serverLicensePrompt:"Do you accept the terms in the License Agreement (Y/n)?",serverApplicationName:"code-server",urlProtocol:"vscode",dataFolderName:".vscode",sharedDataFolderName:".vscode-shared",serverDataFolderName:".vscode-server",downloadUrl:"https://code.visualstudio.com",updateUrl:"https://update.code.visualstudio.com",webUrl:"https://vscode.dev",webEndpointUrl:"https://main.vscode-cdn.net",webEndpointUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}",nlsCoreBaseUrl:"https://www.vscode-unpkg.net/nls/",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}/out/vs/workbench/contrib/webview/browser/pre/",quality:"stable",extensionsGallery:{nlsBaseUrl:"https://www.vscode-unpkg.net/_lp/",serviceUrl:"https://marketplace.visualstudio.com/_apis/public/gallery",itemUrl:"https://marketplace.visualstudio.com/items",publisherUrl:"https://marketplace.visualstudio.com/publishers",resourceUrlTemplate:"https://{publisher}.vscode-unpkg.net/{publisher}/{name}/{version}/{path}",extensionUrlTemplate:"https://www.vscode-unpkg.net/_gallery/{publisher}/{name}/latest",controlUrl:"https://main.vscode-cdn.net/extensions/marketplace.json",mcpUrl:"https://main.vscode-cdn.net/mcp/servers.json",accessSKUs:["copilot_enterprise_seat","copilot_enterprise_seat_quota","copilot_enterprise_seat_multi_quota","copilot_enterprise_seat_assignment","copilot_enterprise_seat_assignment_quota","copilot_enterprise_seat_assignment_multi_quota","copilot_enterprise_trial_seat","copilot_enterprise_trial_seat_quota","copilot_for_business_seat","copilot_for_business_seat_quota","copilot_for_business_seat_multi_quota","copilot_for_business_seat_assignment","copilot_for_business_seat_assignment_quota","copilot_for_business_seat_assignment_multi_quota","copilot_for_business_trial_seat","copilot_for_business_trial_seat_quota"]},mcpGallery:{serviceUrl:"https://api.mcp.github.com",itemWebUrl:"https://github.com/mcp/{name}",publisherUrl:"https://github.com/{name}",supportUrl:"https://support.github.com",privacyPolicyUrl:"https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement",termsOfServiceUrl:"https://docs.github.com/site-policy/github-terms/github-terms-of-service",reportUrl:"https://docs.github.com/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam"},extensionProperties:{"github.copilot-chat":{hasPrereleaseVersion:!1,excludeVersionRange:"<=0.16.1"},"github.copilot":{hasPrereleaseVersion:!0}},extensionsForceVersionByQuality:["github.copilot-chat","github.copilot"],builtInExtensions:[{name:"ms-vscode.js-debug-companion",version:"1.1.3",sha256:"7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",repo:"https://github.com/microsoft/vscode-js-debug-companion",metadata:{id:"99cb0b7f-7354-4278-b8da-6cc79972169d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.js-debug",version:"1.117.0",sha256:"854eeb8a785b1f41ba2bd02d7ccd4fdbe10021b61473293973c7e96d036c7fb8",repo:"https://github.com/microsoft/vscode-js-debug",metadata:{id:"25629058-ddac-4e17-abba-74678e126c5d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.vscode-js-profile-table",version:"1.0.10",sha256:"7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",repo:"https://github.com/microsoft/vscode-js-profile-visualizer",metadata:{id:"7e52b41b-71ad-457b-ab7e-0620f1fc4feb",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"TypeScriptTeam.jsts-chat-features",version:"0.0.2",sha256:"288d8bc26a6e3a752c0971bc93078736c3d818384b27989c1e05ec49a28e1c29",metadata:{id:"7d881d23-233c-448d-9700-cf11a0de79c2",publisherId:{publisherId:"4f0355d2-4a53-4ab1-a8ea-507f4a333a6f",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}}],profileTemplatesUrl:"https://main.vscode-cdn.net/core/profile-templates.json",emergencyAlertUrl:"https://main.vscode-cdn.net/core/stable.json",extensionPublisherOrgs:["microsoft"],trustedExtensionPublishers:["microsoft","github","openai"],extensionRecommendations:{"ms-vscode.vscode-chat-customizations-evaluations":{onFileOpen:[{pathGlob:"{**/*prompt.md, **/*skill.md, **/*instructions.md, **/*agent.md}",important:!0},{languages:["prompt","chatagent","skill","instructions"],important:!0}]},"ms-dotnettools.csdevkit":{onFileOpen:[{pathGlob:"{**/*.cs,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln}",important:!0},{languages:["csharp"],important:!0},{pathGlob:"{**/project.json,**/appsettings.json}"}]},"microsoft-aspire.aspire-vscode":{onFileOpen:[{pathGlob:"{**/apphost.cs,**/apphost.js,**/apphost.ts,**/apphost.py,**/AppHost.java,**/aspire.config.json,**/.aspire/settings.json}",important:!0}]},"ms-python.python":{onFileOpen:[{pathGlob:"{**/*.py}",important:!0},{languages:["python"],important:!0},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.jupyter":{onFileOpen:[{pathGlob:"{**/*.py}",contentPattern:"^#\\s*%%$",important:!0,whenInstalled:["ms-python.python"]},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.datawrangler":{onFileOpen:[{pathGlob:"{**/*.ipynb}",contentPattern:"import\\s*pandas|from\\s*pandas",whenInstalled:["ms-toolsai.jupyter"]}]},"golang.Go":{onFileOpen:[{pathGlob:"**/*.go",important:!0},{languages:["go"],important:!0}]},"vscjava.vscode-java-pack":{onFileOpen:[{pathGlob:"{**/*.java}",important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},{languages:["java"],important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}]},"ms-vscode.PowerShell":{onFileOpen:[{pathGlob:"{**/*.ps1,**/*.psd1,**/*.psm1}",important:!0},{languages:["powershell"],important:!0},{pathGlob:"{**/*.ps.config,**/*.ps1.config}"}]},"ms-toolsai.prompty":{onFileOpen:[{pathGlob:"{**/*.prompty}",important:!1}]},"quantum.qsharp-lang-vscode":{onFileOpen:[{pathGlob:"{**/*.qs,**/*.qsc,**/*.qasm}",important:!0}]},"typespec.typespec-vscode":{onFileOpen:[{pathGlob:"{**/*.tsp,**/tspconfig.yaml}",important:!0}]},"ms-vscode.cpptools-extension-pack":{onFileOpen:[{pathGlob:"{**/*.c,**/*.cpp,**/*.cc,**/.cxx,**/*.hh,**/*.hpp,**/*.hxx,**/*.h}",important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]},{languages:["c","cpp"],important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]}]},"ms-azuretools.vscode-containers":{onFileOpen:[{pathGlob:"{**/dockerfile,**/Dockerfile,**/docker-compose.yml,**/docker-compose.*.yml}",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{languages:["dockerfile"],important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{pathGlob:"{**/*.cs,**/project.json,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln,**/appsettings.json,**/*.py,**/*.ipynb,**/*.js,**/*.ts,**/package.json}",whenNotInstalled:["ms-azuretools.vscode-docker"]}]},"vue.volar":{onFileOpen:[{pathGlob:"{**/*.vue}",important:!0},{languages:["vue"],important:!0}]},"ms-vscode.makefile-tools":{onFileOpen:[{pathGlob:"{**/makefile,**/Makefile}",important:!0},{languages:["makefile"],important:!0}]},"ms-vscode.cmake-tools":{onFileOpen:[{pathGlob:"{**/CMakeLists.txt}",important:!0}]},"ms-azure-devops.azure-pipelines":{onFileOpen:[{pathGlob:"{**/azure-pipelines.yaml}",important:!0}]},"msazurermtools.azurerm-vscode-tools":{onFileOpen:[{pathGlob:"{**/azuredeploy.json}",important:!0}]},"ms-vscode-remote.remote-containers":{onFileOpen:[{pathGlob:"{**/devcontainer.json}",important:!0}]},"ms-azuretools.vscode-bicep":{onFileOpen:[{pathGlob:"{**/*.bicep}",important:!0,whenNotInstalled:["ms-azuretools.rad-vscode-bicep"]}]},"svelte.svelte-vscode":{onFileOpen:[{pathGlob:"{**/*.svelte}",important:!0}]},"ms-vscode.vscode-github-issue-notebooks":{onFileOpen:[{pathGlob:"{**/*.github-issues}",important:!0}]},"ms-playwright.playwright":{onFileOpen:[{pathGlob:"{**/*playwright*.config.ts,**/*playwright*.config.js,**/*playwright*.config.mjs}",important:!0}]},"vscjava.vscode-gradle":{onFileOpen:[{pathGlob:"{**/gradlew,**/gradlew.bat,**/build.gradle,**/build.gradle.kts,**/settings.gradle,**/settings.gradle.kts}",important:!0}]},"REditorSupport.r":{onFileOpen:[{pathGlob:"{**/*.r}",important:!0},{languages:["r"],important:!0}]},"firefox-devtools.vscode-firefox-debug":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/.babelrc}"}]},"ms-edgedevtools.vscode-edge-devtools":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.css,**/*.html}"}]},"Ionide.Ionide-fsharp":{onFileOpen:[{pathGlob:"{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}"}]},"dbaeumer.vscode-eslint":{onFileOpen:[{pathGlob:"{**/*.js,**/*.jsx,**/*.es6,**/.eslintrc.*,**/.eslintrc,**/.babelrc,**/jsconfig.json}"}]},"bmewburn.vscode-intelephense-client":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"xdebug.php-debug":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"rust-lang.rust-analyzer":{onFileOpen:[{pathGlob:"{**/*.rs,**/*.rslib}"}]},"DavidAnson.vscode-markdownlint":{onFileOpen:[{pathGlob:"{**/*.md}"}]},"EditorConfig.EditorConfig":{onFileOpen:[{pathGlob:"{**/.editorconfig}"}]},"HookyQR.beautify":{onFileOpen:[{pathGlob:"{**/.jsbeautifyrc}"}]},"donjayamanne.githistory":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"eamodio.gitlens":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"Shopify.ruby-lsp":{onFileOpen:[{pathGlob:"{**/*.rb,**/*.erb,**/*.reek,**/.fasterer.yml,**/ruby-lint.yml,**/.rubocop.yml}"}]},"swiftlang.swift-vscode":{onFileOpen:[{pathGlob:"{**/*.swift,**/*.swiftinterface}",important:!0}]},"DotJoshJohnson.xml":{onFileOpen:[{pathGlob:"{**/*.xml}"}]},"stylelint.vscode-stylelint":{onFileOpen:[{pathGlob:"{**/.stylelintrc,**/stylelint.config.js}"}]},"ms-mssql.mssql":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"mtxr.sqltools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"usqlextpublisher.usql-vscode-ext":{onFileOpen:[{pathGlob:"{**/*.usql}"}]},"ms-vscode.sublime-keybindings":{onFileOpen:[{pathGlob:"{**/.sublime-project,**/.sublime-workspace}"}]},"k--kato.intellij-idea-keybindings":{onFileOpen:[{pathGlob:"{**/.idea}"}]},"christian-kohler.npm-intellisense":{onFileOpen:[{pathGlob:"{**/package.json}"}]},"cake-build.cake-vscode":{onFileOpen:[{pathGlob:"{**/build.cake}"}]},"Angular.ng-template":{onFileOpen:[{pathGlob:"{**/.angular-cli.json,**/angular.json,**/*.ng.html,**/*.ng,**/*.ngml}"}]},"vscjava.vscode-maven":{onFileOpen:[{pathGlob:"**/pom.xml"}]},"ms-azuretools.vscode-azureterraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"HashiCorp.terraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"vsciot-vscode.vscode-arduino":{onFileOpen:[{pathGlob:"**/*.ino"}]},"ms-kubernetes-tools.vscode-kubernetes-tools":{onFileOpen:[{pathGlob:"{**/Chart.yaml}"}]},"Oracle.oracledevtools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"betterthantomorrow.calva":{onFileOpen:[{pathGlob:"{**/*.clj,**/*.cljs}"}]},"vmware.vscode-boot-dev-pack":{onFileOpen:[{pathGlob:"{**/application.properties}"}]},"GitHub.copilot":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rb,**/*.html,**/*.css,**/*.php,**/*.cpp,**/*.vue,**/*.c,**/*.sql,**/*.java,**/*.cs,**/*.rs,**/*.dart,**/*.ps,**/*.ps1,**/*.tex}"}]},"GitHub.copilot-chat":{onSettingsEditorOpen:{descriptionOverride:"GitHub Copilot is an AI-powered coding assistant that helps you write code faster and smarter."}},"GitHub.vscode-github-actions":{onFileOpen:[{pathGlob:"{**/.github/workflows/*.yml}",important:!0}]},"circleci.circleci":{onFileOpen:[{pathGlob:"{**/.circleci/config.yml}"}]},"mechatroner.rainbow-csv":{onFileOpen:[{pathGlob:"**/*.csv",important:!0}]},"tomoki1207.pdf":{onFileOpen:[{pathGlob:"**/*.pdf",important:!0}]},"Redis.redis-for-vscode":{onFileOpen:[{pathGlob:"{**/redis.*,**/redis-server.*,**/redis_*,**/redisinsight.*}",important:!0}]},"SonarSource.sonarlint-vscode":{onFileOpen:[{pathGlob:"{**/sonar-project.properties,**/sonarcloud.properties,**/sonarlint.*}",important:!0}]}},onboardingKeymaps:[{id:"vscode",label:"VS Code",description:"Default keyboard mapping"},{id:"sublime",label:"Sublime Text",extensionId:"ms-vscode.sublime-keybindings",description:"Keyboard mapping from Sublime Text"},{id:"intellij",label:"IntelliJ / JetBrains",extensionId:"k--kato.intellij-idea-keybindings",description:"Keyboard mapping from IntelliJ IDEA"},{id:"vim",label:"Vim",extensionId:"vscodevim.vim",description:"Vim modal editing"},{id:"eclipse",label:"Eclipse",extensionId:"alphabotsec.vscode-eclipse-keybindings",description:"Keyboard mapping from Eclipse"},{id:"notepadpp",label:"Notepad++",extensionId:"ms-vscode.notepadplusplus-keybindings",description:"Keyboard mapping from Notepad++"}],onboardingThemes:[{id:"dark-2026",label:"Dark 2026",themeId:"Dark 2026",type:"dark"},{id:"hc-dark",label:"Dark High Contrast",themeId:"Default High Contrast",type:"hcDark"},{id:"solarized-dark",label:"Solarized Dark",themeId:"Solarized Dark",type:"dark"},{id:"light-2026",label:"Light 2026",themeId:"Light 2026",type:"light"},{id:"hc-light",label:"Light High Contrast",themeId:"Default High Contrast Light",type:"hcLight"},{id:"solarized-light",label:"Solarized Light",themeId:"Solarized Light",type:"light"}],keymapExtensionTips:["vscodevim.vim","ms-vscode.sublime-keybindings","ms-vscode.atom-keybindings","ms-vscode.brackets-keybindings","ms-vscode.vs-keybindings","ms-vscode.notepadplusplus-keybindings","k--kato.intellij-idea-keybindings","lfs.vscode-emacs-friendly","alphabotsec.vscode-eclipse-keybindings","alefragnani.delphi-keybindings"],languageExtensionTips:["ms-python.python","ms-vscode.cpptools-extension-pack","ms-dotnettools.csdevkit","ms-toolsai.jupyter","vscjava.vscode-java-pack","ecmel.vscode-html-css","vue.volar","bmewburn.vscode-intelephense-client","dsznajder.es7-react-js-snippets","golang.go","ms-vscode.powershell","dart-code.dart-code","rust-lang.rust-analyzer","Shopify.ruby-lsp","GitHub.copilot"],configBasedExtensionTips:{git:{configPath:".git/config",configName:"Git",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",contentPattern:"^\\s*url\\s*=\\s*https:\\/\\/github\\.com.*$"},"eamodio.gitlens":{name:"GitLens"}}},devContainer:{configPath:".devcontainer/devcontainer.json",configName:"Dev Container",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0}}},maven:{configPath:"pom.xml",configName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},"vmware.vscode-boot-dev-pack":{name:"Spring Boot Extension Pack",isExtensionPack:!0}}},gradle:{configPath:"build.gradle",configName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},"github-pull-request":{configPath:".vscode/.github-pull-request.rec",configName:"GitHub",configScheme:"vscode-vfs",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",important:!0}}},"pyproject-formatter":{configPath:"pyproject.toml",configName:"Python Formatter",recommendations:{"ms-python.black-formatter":{name:"Black Formatter",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?black"?\\s*[\\].])|("black\\s*["[(<=>!~;@])'},"ms-python.autopep8":{name:"Autopep8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?autopep8"?\\s*[\\].])|("autopep8\\s*["[(<=>!~;@])'}}},"pep8-formatter":{configPath:".pep8",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8"}}},"python-setup-cgf-formatter":{configPath:"setup.cfg",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"tox-ini-formatter":{configPath:"tox.ini",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"pyproject-linter":{configPath:"pyproject.toml",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?pylint"?\\s*[\\].])|("pylint\\s*["[(<=>!~;@])'},"charliermarsh.ruff":{name:"Ruff",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?ruff"?\\s*[\\].])|("ruff\\s*["[(<=>!~;@])'},"ms-python.mypy-type-checker":{name:"Mypy Type Checker",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?mypy"?\\s*[\\].])|("mypy\\s*["[(<=>!~;@])'},"ms-python.flake8":{name:"Flake8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?flake8"?\\s*[\\].])|("flake8\\s*["[(<=>!~;@])'}}},".pylintrc-linter":{configPath:".pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"pylintrc-linter":{configPath:"pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"mypy-ini-linter":{configPath:".mypy.ini",configName:"Python Linter",recommendations:{"ms-python.mypy-type-checker":{name:"Mypy Type Checker"}}},"tox-ini-linter":{configPath:"tox.ini",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}},".flake8-linter":{configPath:".flake8",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8"}}},"python-setup-cgf-linter":{configPath:"setup.cfg",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}}},exeBasedExtensionTips:{az:{friendlyName:"Azure CLI",windowsPath:"%ProgramFiles(x86)%\\Microsoft SDKs\\Azure\\CLI2\\wbin\\az.cmd",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},azd:{friendlyName:"Azure Dev CLI",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azd-user":{friendlyName:"Azure Dev CLI",windowsPath:"%ProgramFiles%\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azure-powershell":{friendlyName:"Azure PowerShell",windowsPath:"%USERPROFILE%\\.Azure",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"}}},heroku:{friendlyName:"Heroku CLI",windowsPath:"%ProgramFiles%\\Heroku\\bin\\heroku.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"pkosta2005.heroku-command":{name:"heroku-cli"}}},mongo:{friendlyName:"Mongo",windowsPath:"%ProgramFiles%\\MongoDB\\Server\\3.6\\bin\\mongod.exe",recommendations:{"ms-azuretools.vscode-cosmosdb":{name:"Azure Databases"}}},serverless:{friendlyName:"Serverless framework",windowsPath:"%APPDATA%\\npm\\serverless.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},func:{friendlyName:"Azure Function SDK",windowsPath:"%APPDATA%\\npm\\func.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},mysql:{friendlyName:"MySQL",windowsPath:"%ProgramFiles%\\MySQL\\MySQL Server 8.0\\bin\\mysqld.exe",recommendations:{"mtxr.sqltools":{name:"SQLTools"}}},postgres:{friendlyName:"PostgreSQL",windowsPath:"%ProgramFiles%\\PostgreSQL\\11\\bin\\psql.exe",recommendations:{"ms-ossdata.vscode-postgresql":{name:"PostgreSQL"},"mtxr.sqltools":{name:"SQLTools"}}},sqlcmd:{friendlyName:"SQL CLI",recommendations:{"ms-mssql.mssql":{name:"SQL Server (mssql)"}}},now:{friendlyName:"Now CLI",windowsPath:"%APPDATA%\\npm\\now.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"ms-azuretools.vscode-containers":{name:"Docker"}}},docker:{friendlyName:"Docker",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\docker.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},kubectl:{friendlyName:"Kubernetes",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\kubectl.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},ng:{friendlyName:"Angular CLI",windowsPath:"%APPDATA%\\npmexit\\ng.cmd",recommendations:{"johnpapa.Angular2":{name:"Angular Snippets"}}},"create-react-app":{friendlyName:"Create React App",windowsPath:"%APPDATA%\\npm\\create-react-app.cmd",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},"react-native":{friendlyName:"React Native",windowsPath:"%APPDATA%\\npm\\react-native-cli",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},p4:{friendlyName:"Perforce",recommendations:{"slevesque.perforce":{name:"Perforce for VS Code"}}},hg:{friendlyName:"Mercurial",recommendations:{"mrcrowl.hg":{name:"Hg"}}},git:{friendlyName:"Git",windowsPath:"%ProgramFiles%\\Git\\git-bash.exe",recommendations:{"eamodio.gitlens":{name:"GitLens"}}},svn:{friendlyName:"Subversion",windowsPath:"%ProgramFiles%\\TortoiseSVN\\bin\\TortoiseProc.exe",recommendations:{"johnstoncode.svn-scm":{name:"SVN"}}},subl:{friendlyName:"Sublime",windowsPath:"%ProgramFiles%\\Sublime Text3\\sublime_text.exe",recommendations:{"ms-vscode.sublime-keybindings":{name:"Sublime Text Keymap and Settings Importer"}}},atom:{friendlyName:"Atom",windowsPath:"%USERPROFILE%\\AppData\\Local\\atom\\bin\\atom.cmd",recommendations:{"ms-vscode.atom-keybindings":{name:"Atom Keymap"}}},brackets:{friendlyName:"Brackets",windowsPath:"%ProgramFiles(x86)%\\Brackets\\Brackets.exe",recommendations:{"ms-vscode.brackets-keybindings":{name:"Brackets Keymap"}}},notepadplusplus:{friendlyName:"Notepad++",windowsPath:"%ProgramFiles%\\Notepad++\\Notepad++.exe",recommendations:{"ms-vscode.notepadplusplus-keybindings":{name:"Notepad++ keymap"}}},vi:{friendlyName:"VIM",windowsPath:"%ProgramFiles(x86)%\\Vim\\vim80\\gvim.exe",recommendations:{"vscodevim.vim":{name:"Vim"}}},mvn:{friendlyName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},gradle:{friendlyName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},ollama:{friendlyName:"Ollama",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Ollama\\ollama.exe",recommendations:{"ms-windows-ai-studio.windows-ai-studio":{name:"AI Toolkit for Visual Studio Code"}}},"Microsoft Edge":{friendlyName:"Microsoft Edge",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Dev":{friendlyName:"Microsoft Edge Dev",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Dev\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Beta":{friendlyName:"Microsoft Edge Beta",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Beta\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Canary":{friendlyName:"Microsoft Edge Canary",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Mozilla Firefox (x86)":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles(x86)%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition (x86)":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles(x86)%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},cordova:{friendlyName:"Cordova",windowsPath:"%APPDATA%\\npm\\cordova",recommendations:{"msjsdiag.cordova-tools":{name:"Cordova Tools"}}},gcloud:{friendlyName:"Google GCloud CLI",windowsPath:"%ProgramFiles(x86)%\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd",recommendations:{"GoogleCloudTools.cloudcode":{name:"Cloud Code"}}},skaffold:{friendlyName:"Skaffold Code to Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},minikube:{friendlyName:"MiniKube Local Kubernetes Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},podman:{friendlyName:"Podman",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},wsl:{friendlyName:"Windows Subsystem for Linux (WSL)",windowsPath:"%WINDIR%\\system32\\lxss\\LxssManager.dll",recommendations:{"ms-vscode-remote.remote-wsl":{name:"WSL"}}}},webExtensionTips:["tyriar.luna-paint","codespaces-contrib.codeswing","ms-vscode.vscode-github-issue-notebooks","esbenp.prettier-vscode","hediet.vscode-drawio"],virtualWorkspaceExtensionTips:{"vscode-vfs":{friendlyName:"Remote Repositories",extensionId:"ms-vscode.remote-repositories",startEntry:{helpLink:"https://aka.ms/vscode-remote/remote-repositories",startConnectLabel:"Remote Repository",startCommand:"remoteHub.continueOn.openRepository",priority:5}}},remoteExtensionTips:{wsl:{friendlyName:"WSL",extensionId:"ms-vscode-remote.remote-wsl",supportedPlatforms:["Windows","Web"],startEntry:{helpLink:"https://aka.ms/vscode-remote/wsl",startConnectLabel:"WSL",startCommand:"remote-wsl.connect",priority:3}},"ssh-remote":{friendlyName:"Remote - SSH",extensionId:"ms-vscode-remote.remote-ssh",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/ssh",startConnectLabel:"SSH ",startCommand:"opensshremotes.openEmptyWindowInCurrentWindow",priority:1}},"dev-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/containers",startConnectLabel:"Dev Container",startCommand:"remote-containers.reopenInContainer",priority:2}},"attached-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers"},codespaces:{friendlyName:"GitHub Codespaces",extensionId:"github.codespaces",startEntry:{helpLink:"https://aka.ms/vscode-remote-codespaces",startConnectLabel:"GitHub Codespace ",startCommand:"github.codespaces.connect",priority:4}},tunnel:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server",startEntry:{helpLink:"https://aka.ms/remote-tunnels-doc",startConnectLabel:"Tunnel",startCommand:"remote-tunnels.connectCurrentWindowToTunnel",priority:0}},amlext:{friendlyName:"Azure Machine Learning",extensionId:"ms-toolsai.vscode-ai-remote"}},commandPaletteSuggestedCommandIds:["workbench.action.files.openFile","workbench.action.files.openFileFolder","workbench.action.files.openFolder","workbench.action.remote.showMenu","editor.action.formatDocument","editor.action.commentLine","workbench.action.tasks.runTask","workbench.action.openSettings2","workbench.action.selectTheme","workbench.action.openWalkthrough","workbench.action.openIssueReporter"],extensionKeywords:{md:["Markdown"],js:["JavaScript"],jsx:["JavaScript"],es6:["JavaScript"],html:["Html"],ts:["TypeScript"],tsx:["TypeScript"],css:["CSS"],scss:["SASS"],txt:["Text"],php:["PHP"],php3:["PHP"],php4:["PHP"],ph3:["PHP"],ph4:["PHP"],xml:["XML"],py:["Python"],pyc:["Python"],pyd:["Python"],pyo:["Python"],pyw:["Python"],pyz:["Python"],java:["Java"],class:["Java"],jar:["Java"],c:["c","objective c","objective-c"],m:["objective c","objective-c"],mm:["objective c","objective-c"],cpp:["cpp","c plus plus","c","c++"],cc:["cpp","c plus plus","c","c++"],cxx:["cpp","c plus plus","c++"],hh:["cpp","c plus plus","c++"],hpp:["cpp","c++"],h:["cpp","c plus plus","c++","c","objective c","objective-c"],sql:["sql"],sh:["bash"],bash:["bash"],zsh:["bash","zshell"],cs:["c#","csharp"],csproj:["c#","csharp"],sln:["c#","csharp"],go:["go"],sty:["latex"],tex:["latex"],ps:["powershell"],ps1:["powershell"],rs:["rust"],rslib:["rust"],hs:["haskell"],lhs:["haskell"],scm:["scheme"],ss:["scheme"],clj:["clojure"],cljs:["clojure"],cljc:["clojure"],edn:["clojure"],erl:["erlang"],hrl:["erlang"],scala:["scala"],sc:["scala"],pl:["perl"],pm:["perl"],t:["perl"],pod:["perl"],groovy:["groovy"],swift:["swift"],rb:["ruby"],rbw:["ruby"],jl:["julia"],f:["fortran"],for:["fortran"],f90:["fortran"],f95:["fortran"],coffee:["CoffeeScript"],litcoffee:["CoffeeScript"],yaml:["yaml"],yml:["yaml"],dart:["dart"],json:["json"]},extensionAllowedBadgeProviders:["api.travis-ci.com","app.fossa.io","badge.buildkite.com","badge.fury.io","badgen.net","badges.frapsoft.com","badges.gitter.im","cdn.travis-ci.com","ci.appveyor.com","circleci.com","cla.opensource.microsoft.com","codacy.com","codeclimate.com","codecov.io","coveralls.io","david-dm.org","deepscan.io","dev.azure.com","docs.rs","flat.badgen.net","gitlab.com","godoc.org","goreportcard.com","img.shields.io","isitmaintained.com","marketplace.visualstudio.com","nodesecurity.io","opencollective.com","snyk.io","travis-ci.com","travis-ci.org","visualstudio.com","vsmarketplacebadge.apphb.com"],extensionAllowedBadgeProvidersRegex:["^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"],crashReporter:{productName:"VSCode",companyName:"Microsoft"},appCenter:{"win32-x64":"appcenter://code?aid=a4e3233c-699c-46ec-b4f4-9c2a77254662","win32-arm64":"appcenter://code?aid=3712d786-7cc8-4f11-8b08-cc12eab6d4f7","linux-x64":"appcenter://code?aid=fba07a4d-84bd-4fc8-a125-9640fc8ce171",darwin:"appcenter://code?aid=860d6632-f65b-490b-85a8-3e72944f7774","darwin-arm64":"appcenter://code?aid=be71415d-3893-4ae5-b453-e537b9668a10","darwin-universal":"appcenter://code?aid=de75e3cc-e22f-4f42-a03f-1409c21d8af8"},enableTelemetry:!0,aiConfig:{ariaKey:"5bbf946d11a54f6783919c455abaddaf-fd62977b-c92d-4714-a45d-649d06980372-7168"},msftInternalDomains:["redmond.corp.microsoft.com","northamerica.corp.microsoft.com","fareast.corp.microsoft.com","ntdev.corp.microsoft.com","wingroup.corp.microsoft.com","southpacific.corp.microsoft.com","wingroup.windeploy.ntdev.microsoft.com","ddnet.microsoft.com","europe.corp.microsoft.com"],documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#vscode",serverDocumentationUrl:"https://aka.ms/vscode-server-doc",releaseNotesUrl:"https://go.microsoft.com/fwlink/?LinkID=533483#vscode",keyboardShortcutsUrlMac:"https://go.microsoft.com/fwlink/?linkid=832143",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",keyboardShortcutsUrlWin:"https://go.microsoft.com/fwlink/?linkid=832145",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",newsletterSignupUrl:"https://www.research.net/r/vsc-newsletter",youTubeUrl:"https://aka.ms/vscode-youtube",requestFeatureUrl:"https://go.microsoft.com/fwlink/?LinkID=533482",reportIssueUrl:"https://github.com/Microsoft/vscode/issues/new",reportMarketplaceIssueUrl:"https://github.com/microsoft/vsmarketplace/issues/new",licenseUrl:"https://go.microsoft.com/fwlink/?LinkID=533485",serverLicenseUrl:"https://aka.ms/vscode-server-license",privacyStatementUrl:"https://go.microsoft.com/fwlink/?LinkId=521839",showTelemetryOptOut:!0,npsSurveyUrl:"https://aka.ms/vscode-nps",checksumFailMoreInfoUrl:"https://go.microsoft.com/fwlink/?LinkId=828886",electronRepository:"Microsoft/vscode-electron-prebuilt",nodejsRepository:"Microsoft/vscode-node",settingsSearchUrl:"https://bingsettingssearch.trafficmanager.net/api/Search",surveys:[{surveyId:"cpp.1",surveyUrl:"https://www.research.net/r/VBVV6C6",languageId:"cpp",editCount:10,userProbability:.15},{surveyId:"java.2",surveyUrl:"https://www.research.net/r/vscodejava",languageId:"java",editCount:10,userProbability:.3},{surveyId:"javascript.1",surveyUrl:"https://www.research.net/r/vscode-js",languageId:"javascript",editCount:10,userProbability:.05},{surveyId:"typescript.1",surveyUrl:"https://www.research.net/r/vscode-ts",languageId:"typescript",editCount:10,userProbability:.05},{surveyId:"csharp.1",surveyUrl:"https://www.research.net/r/8KGJ9V8",languageId:"csharp",editCount:10,userProbability:.1}],extensionsEnabledWithApiProposalVersion:["GitHub.copilot-chat","ms-vscode.vscode-commander","ms-vscode.vscode-copilot-vision","GitHub.vscode-pull-request-github"],extensionEnabledApiProposals:{"mrleemurray.theme-2026":["css"],"ms-azuretools.vscode-containers":["authenticationChallenges"],"ms-azuretools.vscode-azureresourcegroups":["authenticationChallenges"],"ms-azuretools.vscode-azure-github-copilot":["authenticationChallenges"],"ms-azuretools.vscode-dev-azurecloudshell":["contribEditSessions","authenticationChallenges"],"ms-toolsai.vscode-ai":["authenticationChallenges"],"TeamsDevApp.vscode-ai-foundry":["authenticationChallenges"],"ms-vscode.vscode-selfhost-test-provider":["testObserver","testRelatedCode"],"VisualStudioExptTeam.vscodeintellicode-completions":["inlineCompletionsAdditions"],"ms-vsliveshare.vsliveshare":["contribMenuBarHome","contribShareMenu","contribStatusBarItems","diffCommand","documentFiltersExclusive","fileSearchProvider","findTextInFiles","notebookLiveShare","terminalDimensions","terminalDataWriteEvent","textSearchProvider"],"ms-vscode.js-debug":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-toolsai.vscode-ai-remote":["resolvers","authenticationChallenges"],"ms-python.python":["codeActionAI","contribEditorContentMenu","quickPickSortByLabel","portsAttributes","testObserver","quickPickItemTooltip","terminalDataWriteEvent","terminalExecuteCommandEvent","notebookReplDocument","notebookVariableProvider","terminalShellEnv"],"ms-python.vscode-python-envs":["terminalShellEnv","terminalDataWriteEvent","taskExecutionTerminal"],"ms-dotnettools.dotnet-interactive-vscode":["notebookMessaging"],"GitHub.codespaces":["contribEditSessions","contribMenuBarHome","contribRemoteHelp","contribViewsRemote","resolvers","tunnels","terminalDataWriteEvent","treeViewReveal","notebookKernelSource"],"ms-vscode.azure-repos":["extensionRuntime","fileSearchProvider","textSearchProvider"],"ms-vscode.remote-repositories":["canonicalUriProvider","contribEditSessions","contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","contribShareMenu","documentFiltersExclusive","editSessionIdentityProvider","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","shareProvider","scmActionButton","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-vscode-remote.remote-wsl":["resolvers","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode-remote.remote-ssh":["resolvers","tunnels","terminalDataWriteEvent","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode.remote-server":["resolvers","tunnels","contribViewsWelcome"],"ms-vscode.remote-explorer":["contribRemoteHelp","contribViewsRemote","extensionsAny"],"ms-vscode-remote.remote-containers":["contribEditSessions","resolvers","portsAttributes","tunnels","workspaceTrust","terminalDimensions","contribRemoteHelp","contribViewsRemote"],"ms-vscode.js-debug-nightly":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-vscode.lsif-browser":["documentFiltersExclusive"],"ms-vscode.vscode-speech":["speech"],"GitHub.vscode-pull-request-github":["activeComment","chatContextProvider","chatParticipantAdditions","chatParticipantPrivate","chatSessionsProvider","codiconDecoration","codeActionRanges","commentingRangeHint","commentReactor","commentReveal","commentsDraftState","commentThreadApplicability","contribAccessibilityHelpContent","contribCommentEditorActionsMenu","contribCommentPeekContext","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribEditorContentMenu","contribMultiDiffEditorMenus","contribShareMenu","diffCommand","languageModelToolResultAudience","markdownAlertSyntax","quickDiffProvider","remoteCodingAgents","shareProvider","tabInputMultiDiff","tabInputTextMerge","tokenInformation","treeItemMarkdownLabel","treeViewMarkdownMessage"],"GitHub.copilot":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-nightly":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-chat":["agentSessionsWorkspace","agentsWindowConfiguration","interactive","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","chatParticipantAdditions","defaultChatParticipant","embeddings","chatProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","codeActionAI","findTextInFiles","findTextInFiles2","textSearchProvider","textSearchProvider2","activeComment","commentReveal","contribSourceControlInputBoxMenu","contribCommentEditorActionsMenu","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","extensionAffinity","newSymbolNamesProvider","findFiles2","chatReferenceDiagnostic","extensionsAny","authLearnMore","testObserver","aiTextSearchProvider","documentFiltersExclusive","chatParticipantPrivate","contribDebugCreateConfiguration","inlineCompletionsAdditions","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelThinkingPart","languageModelToolSupportsModel","chatStatusItem","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","chatSessionsProvider","chatSessionCustomizationProvider","devDeviceId","contribEditorContentMenu","tokenInformation","toolInvocationApproveCombination","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","chatHooks","chatDebug","environmentPower","terminalTitle","languageModelPricing","chatInputNotification"],"GitHub.remotehub":["contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","documentFiltersExclusive","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-python.vscode-pylance":["terminalShellEnv","portsAttributes","codeActionAI"],"ms-python.debugpy":["contribViewsWelcome","debugVisualization","portsAttributes"],"ms-toolsai.jupyter-renderers":["contribNotebookStaticPreloads"],"ms-toolsai.jupyter":["notebookDeprecated","notebookMessaging","notebookMime","portsAttributes","quickPickSortByLabel","notebookKernelSource","interactiveWindow","notebookControllerAffinityHidden","contribNotebookStaticPreloads","quickPickItemTooltip","notebookExecution","notebookCellExecution","notebookVariableProvider","notebookReplDocument"],"donjayamanne.kusto":["notebookVariableProvider"],"ms-toolsai.tensorboard":["portsAttributes"],"dbaeumer.vscode-eslint":[],"ms-vscode.azure-sphere-tools-ui":["tunnels"],"ms-azuretools.vscode-azureappservice":["terminalDataWriteEvent"],"ms-vscode.anycode":["extensionsAny"],"ms-vscode.cpptools":["terminalDataWriteEvent","chatParticipantAdditions"],"vscjava.vscode-java-pack":[],"ms-dotnettools.csdevkit":["inlineCompletionsAdditions"],"ms-dotnettools.vscodeintellicode-csharp":["inlineCompletionsAdditions"],"ms-dotnettools.vscode-dotnet-modernize":["chatParticipantAdditions","chatPromptFiles"],"microsoft-IsvExpTools.powerplatform-vscode":["fileSearchProvider","textSearchProvider"],"microsoft-IsvExpTools.powerplatform-vscode-preview":["fileSearchProvider","textSearchProvider"],"TeamsDevApp.ms-teams-vscode-extension":["chatParticipantAdditions","languageModelSystem","mcpServerDefinitions"],"ms-toolsai.datawrangler":[],"ms-vscode.vscode-commander":[],"ms-vscode.vscode-websearchforcopilot":[],"ms-vscode.vscode-copilot-vision":["chatReferenceBinaryData","codeActionAI"],"ms-autodev.vscode-autodev":["chatParticipantAdditions"],"vscjava.migrate-java-to-azure":["chatParticipantAdditions","chatParticipantPrivate"],"vscjava.vscode-java-upgrade":["chatParticipantAdditions","chatParticipantPrivate"],"FoundryLocal.foundry-local-chat":["chatProvider"],"Microsoft.foundry-local-chat":["chatProvider"],"ms-wmcp.windows-mcp-server-extension":["mcpToolDefinitions"],"openai.chatgpt":["languageModelProxy","chatSessionsProvider"],"TypeScriptTeam.native-preview":["editorHoverVerbosityLevel","multiDocumentHighlightProvider"],"ms-vscode.vscode-eng-codereview":["chatContextProvider"],"ms-vscode.vscode-chat-customizations-evaluations":["chatSessionCustomizationProvider","contribEditorContentMenu"]},tasConfig:{endpoint:"https://default.exp-tas.com/vscode/ab",telemetryEventName:"query-expfeature",assignmentContextTelemetryPropertyName:"abexp.assignmentcontext"},extensionKind:{"Shan.code-settings-sync":["ui"],"shalldie.background":["ui"],"techer.open-in-browser":["ui"],"CoenraadS.bracket-pair-colorizer-2":["ui"],"CoenraadS.bracket-pair-colorizer":["ui","workspace"],"hiro-sun.vscode-emacs":["ui","workspace"],"hnw.vscode-auto-open-markdown-preview":["ui","workspace"],"wayou.vscode-todo-highlight":["ui","workspace"],"aaron-bond.better-comments":["ui","workspace"],"vscodevim.vim":["ui"],"ollyhayes.colmak-vim":["ui"]},extensionPointExtensionKind:{typescriptServerPlugins:["workspace"]},extensionSyncedKeys:{"ritwickdey.liveserver":["liveServer.setup.version"]},extensionVirtualWorkspacesSupport:{"esbenp.prettier-vscode":{default:!1},"msjsdiag.debugger-for-chrome":{default:!1},"redhat.java":{default:!1},"HookyQR.beautify":{default:!1},"ritwickdey.LiveServer":{default:!1},"VisualStudioExptTeam.vscodeintellicode":{default:!1},"octref.vetur":{default:!1},"formulahendry.code-runner":{default:!1},"xdebug.php-debug":{default:!1},"ms-mssql.mssql":{default:!1},"christian-kohler.path-intellisense":{default:!1},"eg2.tslint":{default:!1},"eg2.vscode-npm-script":{default:!1},"donjayamanne.githistory":{default:!1},"Zignd.html-css-class-completion":{default:!1},"christian-kohler.npm-intellisense":{default:!1},"EditorConfig.EditorConfig":{default:!1},"austin.code-gnu-global":{default:!1},"johnpapa.Angular2":{default:!1},"ms-vscode.vscode-typescript-tslint-plugin":{default:!1},"DotJoshJohnson.xml":{default:!1},"techer.open-in-browser":{default:!1},"tht13.python":{default:!1},"bmewburn.vscode-intelephense-client":{default:!1},"Angular.ng-template":{default:!1},"xdebug.php-pack":{default:!1},"dbaeumer.jshint":{default:!1},"yzhang.markdown-all-in-one":{default:!1},"Dart-Code.flutter":{default:!1},"streetsidesoftware.code-spell-checker":{default:!1},"rebornix.Ruby":{default:!1},"ms-vscode.sublime-keybindings":{default:!1},"mitaki28.vscode-clang":{default:!1},"steoates.autoimport":{default:!1},"donjayamanne.python-extension-pack":{default:!1},"shd101wyy.markdown-preview-enhanced":{default:!1},"mikestead.dotenv":{default:!1},"pranaygp.vscode-css-peek":{default:!1},"ikappas.phpcs":{default:!1},"platformio.platformio-ide":{default:!1},"jchannon.csharpextensions":{default:!1},"gruntfuggly.todo-tree":{default:!1}},linkProtectionTrustedDomains:["https://*.visualstudio.com","https://*.microsoft.com","https://aka.ms","https://*.gallerycdn.vsassets.io","https://*.github.com","https://login.microsoftonline.com","https://*.vscode.dev","https://*.github.dev","https://gh.io","https://portal.azure.com","https://raw.githubusercontent.com","https://private-user-images.githubusercontent.com","https://avatars.githubusercontent.com","https://auth.openai.com"],trustedExtensionAuthAccess:{github:["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],"github-enterprise":["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],microsoft:["github.copilot-chat","ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"microsoft-sovereign-cloud":["ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"__GitHub.copilot-chat":["ms-azuretools.vscode-azure-github-copilot","github.vscode-pull-request-github"]},trustedExtensionProtocolHandlers:["vscode.git","vscode.github-authentication","vscode.microsoft-authentication","github.vscode-pull-request-github"],authClientIdMetadataUrl:"https://vscode.dev/oauth/client-metadata.json",inheritAuthAccountPreference:{"github.copilot":["github.copilot-chat"]},auth:{loginUrl:"https://login.microsoftonline.com/common/oauth2/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/token",redirectUrl:"https://vscode-redirect.azurewebsites.net/",clientId:"aebc6443-996d-45c2-90f0-388ff96faa56"},"configurationSync.store":{url:"https://vscode-sync.trafficmanager.net/",stableUrl:"https://vscode-sync.trafficmanager.net/",insidersUrl:"https://vscode-sync-insiders.trafficmanager.net/",canSwitch:!1,authenticationProviders:{github:{scopes:["user:email"]},microsoft:{scopes:["openid","profile","email","offline_access"]}}},"editSessions.store":{url:"https://vscode-sync.trafficmanager.net/",authenticationProviders:{microsoft:{scopes:["openid","profile","email","offline_access"]},github:{scopes:["user:email"]}}},tunnelServerQualities:{stable:{serverApplicationName:"code-server"},exploration:{serverApplicationName:"code-server-exploration"},insider:{serverApplicationName:"code-server-insiders"}},tunnelApplicationName:"code-tunnel",tunnelApplicationConfig:{editorWebUrl:"https://vscode.dev",extension:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server"},authenticationProviders:{github:{scopes:["user:email","read:org"]},microsoft:{scopes:["46da2f7e-b5ef-422a-88d4-2a7f9de6a0b2/.default","profile","openid"]}}},win32TunnelServiceMutex:"vscode-tunnelservice",win32TunnelMutex:"vscode-tunnel",aiGeneratedWorkspaceTrust:{title:"This workspace was generated by GitHub Copilot",checkboxText:"Trust the contents of all files in this workspace",trustOption:"Yes, I trust the contents",dontTrustOption:"No, I don't trust the contents",startupTrustRequestLearnMore:"If you don't trust the contents of the files generated by GitHub Copilot, we recommend continuing in restricted mode. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more. "},defaultChatAgent:{providerExtensionId:"vscode.github-authentication",extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",manageSettingsUrl:"https://aka.ms/github-copilot-settings",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",manageOverageUrl:"https://aka.ms/github-copilot-manage-overage",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE.com"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},chatParticipantRegistry:"https://main.vscode-cdn.net/extensions/chat.json",remoteDefaultExtensionsIfInstalledLocally:["GitHub.copilot","GitHub.copilot-chat","GitHub.vscode-pull-request-github"],extensionConfigurationPolicy:{"github.copilot.nextEditSuggestions.enabled":{name:"CopilotNextEditSuggestions",minimumVersion:"1.99",category:"InteractiveSession",description:"Whether to enable next edit suggestions (NES). NES can propose a next edit based on your recent changes."},"github.copilot.chat.reviewSelection.enabled":{name:"CopilotReviewSelection",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables code review on current selection."},"github.copilot.chat.reviewAgent.enabled":{name:"CopilotReviewAgent",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables the code review agent."},"github.copilot.chat.claudeAgent.enabled":{name:"Claude3PIntegration",minimumVersion:"1.113",category:"InteractiveSession",description:"Enable Claude Agent sessions in VS Code. Start and resume agentic coding sessions powered by Anthropic Claude Agent SDK directly in the editor. Uses your existing Copilot subscription."}},win32ContextMenu:{x64:{clsid:"1C6DF0C0-192A-4451-BE36-6A59A86A692E"},arm64:{clsid:"F5EA5883-1DA8-4A05-864A-D5DE2D2B2854"}},chatSessionRecommendations:[{extensionId:"openai.chatgpt",extensionName:"Codex - OpenAI's coding agent",displayName:"Codex Agent",name:"codex",description:"Codex is OpenAI's coding agent that helps you write, review, and ship code faster.",postInstallCommand:"chatgpt.newCodexPanel"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Background Agent",name:"cli",description:"Delegate tasks to a background agent.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilotcli"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Cloud Agent",name:"cloud",description:"Delegate tasks to the GitHub Copilot Cloud Agent. The agent works asynchronously in the cloud to implement changes, iterates via chat, and can create or update pull requests as needed.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilot-cloud-agent"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],sessionsWindowAllowedExtensions:["pkief.material-icon-theme","zhuangtongfa.material-theme","vscode-icons-team.vscode-icons","oderwat.indent-rainbow","formulahendry.auto-close-tag","pranaygp.vscode-css-peek","codezombiech.gitignore","usernamehw.errorlens","wayou.vscode-todo-highlight","bierner.markdown-mermaid","kisstkondoros.vscode-gutter-preview","tomoki1207.pdf","vscodevim.vim","ecmel.vscode-html-css","bradlc.vscode-tailwindcss","xabikos.JavaScriptSnippets","dsznajder.es7-react-js-snippets","formulahendry.auto-rename-tag","naumovs.color-highlight","streetsidesoftware.code-spell-checker","Vue.volar","dbaeumer.vscode-eslint","esbenp.prettier-vscode","redhat.vscode-xml","redhat.java"],version:"1.121.0",commit:"f6cfa2ea2403534de03f069bdf160d06451ed282",date:"2026-05-19T11:51:53+02:00"},Object.keys(bt).length===0&&Object.assign(bt,{version:"1.104.0-dev",nameShort:"Code - OSS Dev",nameLong:"Code - OSS Dev",applicationName:"code-oss",dataFolderName:".vscode-oss",urlProtocol:"code-oss",reportIssueUrl:"https://github.com/microsoft/vscode/issues/new",licenseName:"MIT",licenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",defaultChatAgent:{extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GitHub Enterprise"}},providerScopes:[]}});var St=bt;var Vt={Configuration:"base.contributions.configuration"};function lC(i,t){return i===t?!0:!i||!t?!1:typeof i=="string"||typeof t=="string"?i===t:i.id===t.id}var zl={properties:{},patternProperties:{}},jl={properties:{},patternProperties:{}},Kl={properties:{},patternProperties:{}},Gl={properties:{},patternProperties:{}},Jl={properties:{},patternProperties:{}},Ql={properties:{},patternProperties:{}},Bs={properties:{},patternProperties:{}},Kr="vscode://schemas/settings/resourceLanguage";var Yl=Ze.as(Wp.JSONContribution),Bp=class extends C{constructor(){super();this.registeredConfigurationDefaults=[];this.overrideIdentifiers=new Set;this._onDidSchemaChange=this._register(new x);this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=this._register(new x);this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:m(2098,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},Yl.registerSchema(Kr,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,n=!0){return this.registerConfigurations([e],n),e}registerConfigurations(e,n=!0){let r=new Set;this.doRegisterConfigurations(e,n,r),Yl.registerSchema(Kr,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),Yl.registerSchema(Kr,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n})}updateConfigurations({add:e,remove:n}){let r=new Set;this.doDeregisterConfigurations(n,r),this.doRegisterConfigurations(e,!1,r),Yl.registerSchema(Kr,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}registerDefaultConfigurations(e){let n=new Set;this.doRegisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,n){this.registeredConfigurationDefaults.push(...e);let r=[];for(let{overrides:o,source:s}of e)for(let a in o){n.add(a);let l=this.configurationDefaultsOverrides.get(a)??this.configurationDefaultsOverrides.set(a,{configurationDefaultOverrides:[]}).get(a),c=o[a];if(l.configurationDefaultOverrides.push({value:c,source:s}),dn.test(a)){let u=this.mergeDefaultConfigurationsForOverrideIdentifier(a,c,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u,this.updateDefaultOverrideProperty(a,u,s),r.push(...to(a))}else{let u=this.mergeDefaultConfigurationsForConfigurationProperty(a,c,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u;let d=this.configurationProperties[a];d&&(this.updatePropertyDefaultValue(a,d),this.updateSchema(a,d))}}this.doRegisterOverrideIdentifiers(r)}deregisterDefaultConfigurations(e){let n=new Set;this.doDeregisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doDeregisterDefaultConfigurations(e,n){for(let r of e){let o=this.registeredConfigurationDefaults.indexOf(r);o!==-1&&this.registeredConfigurationDefaults.splice(o,1)}for(let{overrides:r,source:o}of e)for(let s in r){let a=this.configurationDefaultsOverrides.get(s);if(!a)continue;let l=a.configurationDefaultOverrides.findIndex(c=>o?lC(c.source,o):c.value===r[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),dn.test(s)){let c;for(let u of a.configurationDefaultOverrides)c=this.mergeDefaultConfigurationsForOverrideIdentifier(s,u.value,u.source,c);c&&!Ta(c.value)?(a.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(s,c,o)):(this.configurationDefaultsOverrides.delete(s),delete this.configurationProperties[s],delete this.defaultLanguageConfigurationOverridesNode.properties[s])}else{let c;for(let d of a.configurationDefaultOverrides)c=this.mergeDefaultConfigurationsForConfigurationProperty(s,d.value,d.source,c);a.configurationDefaultOverrideValue=c;let u=this.configurationProperties[s];u&&(this.updatePropertyDefaultValue(s,u),this.updateSchema(s,u))}n.add(s)}}this.updateOverridePropertyPatternKey()}updateDefaultOverrideProperty(e,n,r){let o={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:n.value,description:m(2097,null,fv(e)),$ref:Kr,defaultDefaultValue:n.value,source:r,defaultValueSource:r};this.configurationProperties[e]=o,this.defaultLanguageConfigurationOverridesNode.properties[e]=o}mergeDefaultConfigurationsForOverrideIdentifier(e,n,r,o){let s=o?.value||{},a=o?.source??new Map;if(!(a instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(let l of Object.keys(n)){let c=n[l];if(Pe(c)&&(oi(s[l])||Pe(s[l]))){if(s[l]={...s[l]??{},...c},r)for(let d in c)a.set(`${l}.${d}`,r)}else s[l]=c,r?a.set(l,r):a.delete(l)}return{value:s,source:a}}mergeDefaultConfigurationsForConfigurationProperty(e,n,r,o){let s=this.configurationProperties[e],a=o?.value??s?.defaultDefaultValue,l=r;if(Pe(n)&&(s!==void 0&&s.type==="object"||s===void 0&&(oi(a)||Pe(a)))){if(l=o?.source??new Map,!(l instanceof Map)){console.error("defaultValueSource is not a Map");return}for(let u in n)r&&l.set(`${e}.${u}`,r);n={...Pe(a)?a:{},...n}}return{value:n,source:l}}deltaConfiguration(e){let n=!1,r=new Set;e.removedDefaults&&(this.doDeregisterDefaultConfigurations(e.removedDefaults,r),n=!0),e.addedDefaults&&(this.doRegisterDefaultConfigurations(e.addedDefaults,r),n=!0),e.removedConfigurations&&this.doDeregisterConfigurations(e.removedConfigurations,r),e.addedConfigurations&&this.doRegisterConfigurations(e.addedConfigurations,!1,r),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r,defaultsOverrides:n})}notifyConfigurationSchemaUpdated(...e){this._onDidSchemaChange.fire()}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(let n of e)this.overrideIdentifiers.add(n);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,n,r){e.forEach(o=>{this.validateAndRegisterProperties(o,n,o.extensionInfo,o.restrictedProperties,void 0,r),this.configurationContributors.push(o),this.registerJSONConfiguration(o)})}doDeregisterConfigurations(e,n){let r=o=>{if(o.properties)for(let s in o.properties){n.add(s);let a=this.configurationProperties[s];a?.policy?.name&&this.policyConfigurations.delete(a.policy.name),delete this.configurationProperties[s],this.removeFromSchema(s,o.properties[s])}o.allOf?.forEach(s=>r(s))};for(let o of e){r(o);let s=this.configurationContributors.indexOf(o);s!==-1&&this.configurationContributors.splice(s,1)}}validateAndRegisterProperties(e,n=!0,r,o,s=4,a){s=Ht(e.scope)?s:e.scope;let l=e.properties;if(l)for(let u in l){let d=l[u];if(d.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},n&&dC(u,d,r?.id)){delete l[u];continue}d.source=r,d.defaultDefaultValue=l[u].default,this.updatePropertyDefaultValue(u,d),dn.test(u)?d.scope=void 0:(d.scope=Ht(d.scope)?s:d.scope,d.restricted=Ht(d.restricted)?!!o?.includes(u):d.restricted),d.experiment?d.tags?.some(h=>h.toLowerCase()==="onexp")||(d.tags=d.tags??[],d.tags.push("onExP")):d.tags?.some(h=>h.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${u}'. Please use 'experiment' property instead.`),d.experiment={mode:"startup"});let f=l[u].hasOwnProperty("included")&&!l[u].included,g=l[u].policy?.name;f?(this.excludedConfigurationProperties[u]=l[u],g&&(this.policyConfigurations.set(g,u),a.add(u)),delete l[u]):(a.add(u),g&&this.policyConfigurations.set(g,u),this.configurationProperties[u]=l[u],!l[u].deprecationMessage&&l[u].markdownDeprecationMessage&&(l[u].deprecationMessage=l[u].markdownDeprecationMessage))}let c=e.allOf;if(c)for(let u of c)this.validateAndRegisterProperties(u,n,r,o,s,a)}getConfigurations(){return this.configurationContributors}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}getRegisteredDefaultConfigurations(){return[...this.registeredConfigurationDefaults]}getConfigurationDefaultsOverrides(){let e=new Map;for(let[n,r]of this.configurationDefaultsOverrides)r.configurationDefaultOverrideValue&&e.set(n,r.configurationDefaultOverrideValue);return e}registerJSONConfiguration(e){let n=r=>{let o=r.properties;if(o)for(let a in o)this.updateSchema(a,o[a]);r.allOf?.forEach(n)};n(e)}updateSchema(e,n){switch(zl.properties[e]=n,n.scope){case 1:jl.properties[e]=n;break;case 2:Gl.properties[e]=n;break;case 3:Kl.properties[e]=n;break;case 7:Jl.properties[e]=n;break;case 4:Ql.properties[e]=n;break;case 5:Bs.properties[e]=n;break;case 6:Bs.properties[e]=n,this.resourceLanguageSettingsSchema.properties[e]=n;break}}removeFromSchema(e,n){switch(delete zl.properties[e],n.scope){case 1:delete jl.properties[e];break;case 2:delete Gl.properties[e];break;case 3:delete Kl.properties[e];break;case 7:delete Jl.properties[e];break;case 4:delete Ql.properties[e];break;case 5:case 6:delete Bs.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let n=`[${e}]`,r={type:"object",description:m(2099,null),errorMessage:m(2100,null),$ref:Kr};this.updatePropertyDefaultValue(n,r),zl.properties[n]=r,jl.properties[n]=r,Kl.properties[n]=r,Gl.properties[n]=r,Jl.properties[n]=r,Ql.properties[n]=r,Bs.properties[n]=r}}registerOverridePropertyPatternKey(){let e={type:"object",description:m(2099,null),errorMessage:m(2100,null),$ref:Kr};zl.patternProperties[pr]=e,jl.patternProperties[pr]=e,Kl.patternProperties[pr]=e,Gl.patternProperties[pr]=e,Jl.patternProperties[pr]=e,Ql.patternProperties[pr]=e,Bs.patternProperties[pr]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,n){let r=this.configurationDefaultsOverrides.get(e)?.configurationDefaultOverrideValue,o,s;r&&(!n.disallowConfigurationDefault||!r.source)&&(o=r.value,s=r.source),oi(o)&&(o=n.defaultDefaultValue,s=void 0),oi(o)&&(o=cC(n.type)),n.default=o,n.defaultValueSource=s}},yv="\\[([^\\]]+)\\]",hv=new RegExp(yv,"g"),pr=`^(${yv})+$`,dn=new RegExp(pr);function to(i){let t=[];if(dn.test(i)){let e=hv.exec(i);for(;e?.length;){let n=e[1].trim();n&&t.push(n),e=hv.exec(i)}}return hn(t)}function vv(i){return i.reduce((t,e)=>`${t}[${e}]`,"")}function cC(i){switch(Array.isArray(i)?i[0]:i){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}var Xl=new Bp;Ze.add(Vt.Configuration,Xl);function dC(i,t,e){return i.trim()?dn.test(i)?m(2096,null,i):Xl.getConfigurationProperties()[i]!==void 0&&(!e||!uC.has(e.toLowerCase()))?m(2094,null,i):t.policy?.name&&Xl.getPolicyConfigurations().get(t.policy?.name)!==void 0?m(2093,null,i,t.policy?.name,Xl.getPolicyConfigurations().get(t.policy?.name)):null:m(2095,null)}var uC=new Set(St.defaultChatAgent?[St.defaultChatAgent.extensionId,St.defaultChatAgent.chatExtensionId].map(i=>i.toLowerCase()):[]);function qs(i){return Object.isFrozen(i)?i:ih(i)}var we=class i{constructor(t,e,n,r,o){this._contents=t;this._keys=e;this._overrides=n;this._raw=r;this.logService=o;this.overrideConfigurations=new Map}static createEmptyModel(t){return new i({},[],[],void 0,t)}get rawConfiguration(){if(!this._rawConfiguration)if(this._raw){let t=(Array.isArray(this._raw)?this._raw:[this._raw]).map(e=>{if(e instanceof i)return e;let n=new Zl("",this.logService);return n.parseRaw(e),n.configurationModel});this._rawConfiguration=t.reduce((e,n)=>n===e?n:e.merge(n),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}get raw(){if(this._raw&&!(Array.isArray(this._raw)&&this._raw.every(t=>t instanceof i)))return this._raw}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(t){return t?$s(this.contents,t):this.contents}inspect(t,e){let n=this;return{get value(){return qs(n.rawConfiguration.getValue(t))},get override(){return e?qs(n.rawConfiguration.getOverrideValue(t,e)):void 0},get merged(){return qs(e?n.rawConfiguration.override(e).getValue(t):n.rawConfiguration.getValue(t))},get overrides(){let r=[];for(let{contents:o,identifiers:s,keys:a}of n.rawConfiguration.overrides){let l=new i(o,a,[],void 0,n.logService).getValue(t);l!==void 0&&r.push({identifiers:s,value:l})}return r.length?qs(r):void 0}}}getOverrideValue(t,e){let n=this.getContentsForOverrideIdentifer(e);return n?t?$s(n,t):n:void 0}getKeysForOverrideIdentifier(t){let e=[];for(let n of this.overrides)n.identifiers.includes(t)&&e.push(...n.keys);return hn(e)}getAllOverrideIdentifiers(){let t=[];for(let e of this.overrides)t.push(...e.identifiers);return hn(t)}override(t){let e=this.overrideConfigurations.get(t);return e||(e=this.createOverrideConfigurationModel(t),this.overrideConfigurations.set(t,e)),e}merge(...t){let e=Lt(this.contents),n=Lt(this.overrides),r=[...this.keys],o=this._raw?Array.isArray(this._raw)?[...this._raw]:[this._raw]:[this];for(let s of t)if(o.push(...s._raw?Array.isArray(s._raw)?s._raw:[s._raw]:[s]),!s.isEmpty()){this.mergeContents(e,s.contents);for(let a of s.overrides){let[l]=n.filter(c=>qt(c.identifiers,a.identifiers));l?(this.mergeContents(l.contents,a.contents),l.keys.push(...a.keys),l.keys=hn(l.keys)):n.push(Lt(a))}for(let a of s.keys)r.indexOf(a)===-1&&r.push(a)}return new i(e,r,n,!o.length||o.every(s=>s instanceof i)?void 0:o,this.logService)}createOverrideConfigurationModel(t){let e=this.getContentsForOverrideIdentifer(t);if(!e||typeof e!="object"||!Object.keys(e).length)return this;let n={};for(let r of hn([...Object.keys(this.contents),...Object.keys(e)])){let o=this.contents[r],s=e[r];s&&(typeof o=="object"&&typeof s=="object"?(o=Lt(o),this.mergeContents(o,s)):o=s),n[r]=o}return new i(n,this.keys,this.overrides,void 0,this.logService)}mergeContents(t,e){for(let n of Object.keys(e)){if(n in t&&Pe(t[n])&&Pe(e[n])){this.mergeContents(t[n],e[n]);continue}t[n]=Lt(e[n])}}getContentsForOverrideIdentifer(t){let e=null,n=null,r=o=>{o&&(n?this.mergeContents(n,o):n=Lt(o))};for(let o of this.overrides)o.identifiers.length===1&&o.identifiers[0]===t?e=o.contents:o.identifiers.includes(t)&&r(o.contents);return r(e),n}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(t,e){this.updateValue(t,e,!0)}setValue(t,e){this.updateValue(t,e,!1)}removeValue(t){let e=this.keys.indexOf(t);e!==-1&&(this.keys.splice(e,1),uv(this.contents,t),dn.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>qt(n.identifiers,to(t))),1))}updateValue(t,e,n){if(Fp(this.contents,t,e,r=>this.logService.error(r)),n=n||this.keys.indexOf(t)===-1,n&&this.keys.push(t),dn.test(t)){let r=this.contents[t],o=to(t),s={identifiers:o,keys:Object.keys(r),contents:Hl(r,l=>this.logService.error(l))},a=this.overrides.findIndex(l=>qt(l.identifiers,o));a!==-1?this.overrides[a]=s:this.overrides.push(s)}}},Zl=class{constructor(t,e){this._name=t;this.logService=e;this._raw=null;this._configurationModel=null;this._restrictedConfigurations=[];this._parseErrors=[]}get configurationModel(){return this._configurationModel||we.createEmptyModel(this.logService)}get restrictedConfigurations(){return this._restrictedConfigurations}get errors(){return this._parseErrors}parse(t,e){if(!Ht(t)){let n=this.doParseContent(t);this.parseRaw(n,e)}}reparse(t){this._raw&&this.parseRaw(this._raw,t)}parseRaw(t,e){this._raw=t;let{contents:n,keys:r,overrides:o,restricted:s,hasExcludedProperties:a}=this.doParseRaw(t,e);this._configurationModel=new we(n,r,o,a?[t]:void 0,this.logService),this._restrictedConfigurations=s||[]}doParseContent(t){let e={},n=null,r=[],o=[],s=[];function a(c){Array.isArray(r)?r.push(c):n!==null&&(r[n]=c)}let l={onObjectBegin:()=>{let c={};a(c),o.push(r),r=c,n=null},onObjectProperty:c=>{n=c},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let c=[];a(c),o.push(r),r=c,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:a,onError:(c,u,d)=>{s.push({error:c,offset:u,length:d})}};if(t)try{Xi(t,l),e=r[0]||{}}catch(c){this.logService.error(`Error while parsing settings file ${this._name}: ${c}`),this._parseErrors=[c]}return e}doParseRaw(t,e){let n=Ze.as(Vt.Configuration),r=n.getConfigurationProperties(),o=n.getExcludedConfigurationProperties(),s=this.filter(t,r,o,!0,e);t=s.raw;let a=Hl(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`)),l=Object.keys(t),c=this.toOverrides(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`));return{contents:a,keys:l,overrides:c,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(t,e,n,r,o){let s=!1;if(!o?.scopes&&!o?.skipRestricted&&!o?.skipUnregistered&&!o?.exclude?.length)return{raw:t,restricted:[],hasExcludedProperties:s};let a={},l=[];for(let c in t)if(dn.test(c)&&r){let u=this.filter(t[c],e,n,!1,o);a[c]=u.raw,s=s||u.hasExcludedProperties,l.push(...u.restricted)}else{let u=e[c];u?.restricted&&l.push(c),this.shouldInclude(c,u,n,o)?a[c]=t[c]:s=!0}return{raw:a,restricted:l,hasExcludedProperties:s}}shouldInclude(t,e,n,r){if(r.exclude?.includes(t))return!1;if(r.include?.includes(t))return!0;if(r.skipRestricted&&e?.restricted||r.skipUnregistered&&!e)return!1;let o=e??n[t],s=o?typeof o.scope<"u"?o.scope:4:void 0;return s===void 0||r.scopes===void 0?!0:r.scopes.includes(s)}toOverrides(t,e){let n=[];for(let r of Object.keys(t))if(dn.test(r)){let o={},s=t[r];for(let a in s)o[a]=s[a];n.push({identifiers:to(r),keys:Object.keys(o),contents:Hl(o,e)})}return n}},ec=class extends C{constructor(e,n,r,o,s){super();this.userSettingsResource=e;this.parseOptions=n;this.fileService=o;this.logService=s;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this.parser=new Zl(this.userSettingsResource.toString(),s),this._register(this.fileService.watch(r.dirname(this.userSettingsResource))),this._register(this.fileService.watch(this.userSettingsResource)),this._register(X.any(X.filter(this.fileService.onDidFilesChange,a=>a.contains(this.userSettingsResource)),X.filter(this.fileService.onDidRunOperation,a=>(a.isOperation(0)||a.isOperation(3)||a.isOperation(1)||a.isOperation(4))&&r.isEqual(a.resource,e)))(()=>this._onDidChange.fire()))}async loadConfiguration(){try{let e=await this.fileService.readFile(this.userSettingsResource);return this.parser.parse(e.value.toString()||"{}",this.parseOptions),this.parser.configurationModel}catch{return we.createEmptyModel(this.logService)}}reparse(e){return e&&(this.parseOptions=e),this.parser.reparse(this.parseOptions),this.parser.configurationModel}getRestrictedSettings(){return this.parser.restrictedConfigurations}},qp=class{constructor(t,e,n,r,o,s,a,l,c,u,d,f,g){this.key=t;this.overrides=e;this._value=n;this.overrideIdentifiers=r;this.defaultConfiguration=o;this.policyConfiguration=s;this.applicationConfiguration=a;this.userConfiguration=l;this.localUserConfiguration=c;this.remoteUserConfiguration=u;this.workspaceConfiguration=d;this.folderConfigurationModel=f;this.memoryConfigurationModel=g}get value(){return qs(this._value)}toInspectValue(t){return t?.value!==void 0||t?.override!==void 0||t?.overrides!==void 0?t:void 0}get defaultInspectValue(){return this._defaultInspectValue||(this._defaultInspectValue=this.defaultConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._defaultInspectValue}get defaultValue(){return this.defaultInspectValue.merged}get default(){return this.toInspectValue(this.defaultInspectValue)}get policyInspectValue(){return this._policyInspectValue===void 0&&(this._policyInspectValue=this.policyConfiguration?this.policyConfiguration.inspect(this.key):null),this._policyInspectValue}get policyValue(){return this.policyInspectValue?.merged}get policy(){return this.policyInspectValue?.value!==void 0?{value:this.policyInspectValue.value}:void 0}get applicationInspectValue(){return this._applicationInspectValue===void 0&&(this._applicationInspectValue=this.applicationConfiguration?this.applicationConfiguration.inspect(this.key):null),this._applicationInspectValue}get applicationValue(){return this.applicationInspectValue?.merged}get application(){return this.toInspectValue(this.applicationInspectValue)}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get userValue(){return this.userInspectValue.merged}get user(){return this.toInspectValue(this.userInspectValue)}get userLocalInspectValue(){return this._userLocalInspectValue||(this._userLocalInspectValue=this.localUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userLocalInspectValue}get userLocalValue(){return this.userLocalInspectValue.merged}get userLocal(){return this.toInspectValue(this.userLocalInspectValue)}get userRemoteInspectValue(){return this._userRemoteInspectValue||(this._userRemoteInspectValue=this.remoteUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userRemoteInspectValue}get userRemoteValue(){return this.userRemoteInspectValue.merged}get userRemote(){return this.toInspectValue(this.userRemoteInspectValue)}get workspaceInspectValue(){return this._workspaceInspectValue===void 0&&(this._workspaceInspectValue=this.workspaceConfiguration?this.workspaceConfiguration.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceInspectValue}get workspaceValue(){return this.workspaceInspectValue?.merged}get workspace(){return this.toInspectValue(this.workspaceInspectValue)}get workspaceFolderInspectValue(){return this._workspaceFolderInspectValue===void 0&&(this._workspaceFolderInspectValue=this.folderConfigurationModel?this.folderConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceFolderInspectValue}get workspaceFolderValue(){return this.workspaceFolderInspectValue?.merged}get workspaceFolder(){return this.toInspectValue(this.workspaceFolderInspectValue)}get memoryInspectValue(){return this._memoryInspectValue===void 0&&(this._memoryInspectValue=this.memoryConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier)),this._memoryInspectValue}get memoryValue(){return this.memoryInspectValue.merged}get memory(){return this.toInspectValue(this.memoryInspectValue)}},no=class i{constructor(t,e,n,r,o,s,a,l,c,u){this._defaultConfiguration=t;this._policyConfiguration=e;this._applicationConfiguration=n;this._localUserConfiguration=r;this._remoteUserConfiguration=o;this._workspaceConfiguration=s;this._folderConfigurations=a;this._memoryConfiguration=l;this._memoryConfigurationByResource=c;this.logService=u;this._workspaceConsolidatedConfiguration=null;this._foldersConsolidatedConfigurations=new Te;this._userConfiguration=null}getValue(t,e,n){return this.getConsolidatedConfigurationModel(t,e,n).getValue(t)}updateValue(t,e,n={}){let r;n.resource?(r=this._memoryConfigurationByResource.get(n.resource),r||(r=we.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(n.resource,r))):r=this._memoryConfiguration,e===void 0?r.removeValue(t):r.setValue(t,e),n.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(t,e,n){let r=this.getConsolidatedConfigurationModel(t,e,n),o=this.getFolderConfigurationModelForResource(e.resource,n),s=e.resource?this._memoryConfigurationByResource.get(e.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(let l of r.overrides)for(let c of l.identifiers)r.getOverrideValue(t,c)!==void 0&&a.add(c);return new qp(t,e,r.getValue(t),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,n?this._workspaceConfiguration:void 0,o||void 0,s)}keys(t){let e=this.getFolderConfigurationModelForResource(void 0,t);return{default:this._defaultConfiguration.keys.slice(0),policy:this._policyConfiguration.keys.slice(0),user:this.userConfiguration.keys.slice(0),workspace:this._workspaceConfiguration.keys.slice(0),workspaceFolder:e?e.keys.slice(0):[]}}updateDefaultConfiguration(t){this._defaultConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updatePolicyConfiguration(t){this._policyConfiguration=t}updateApplicationConfiguration(t){this._applicationConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateLocalUserConfiguration(t){this._localUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateRemoteUserConfiguration(t){this._remoteUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateWorkspaceConfiguration(t){this._workspaceConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateFolderConfiguration(t,e){this._folderConfigurations.set(t,e),this._foldersConsolidatedConfigurations.delete(t)}deleteFolderConfiguration(t){this.folderConfigurations.delete(t),this._foldersConsolidatedConfigurations.delete(t)}compareAndUpdateDefaultConfiguration(t,e){let n=[];if(!e){let{added:r,updated:o,removed:s}=fr(this._defaultConfiguration,t);e=[...r,...o,...s]}for(let r of e)for(let o of to(r)){let s=this._defaultConfiguration.getKeysForOverrideIdentifier(o),a=t.getKeysForOverrideIdentifier(o),l=[...a.filter(c=>s.indexOf(c)===-1),...s.filter(c=>a.indexOf(c)===-1),...s.filter(c=>!Ue(this._defaultConfiguration.override(o).getValue(c),t.override(o).getValue(c)))];n.push([o,l])}return this.updateDefaultConfiguration(t),{keys:e,overrides:n}}compareAndUpdatePolicyConfiguration(t){let{added:e,updated:n,removed:r}=fr(this._policyConfiguration,t),o=[...e,...n,...r];return o.length&&this.updatePolicyConfiguration(t),{keys:o,overrides:[]}}compareAndUpdateApplicationConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=fr(this.applicationConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateApplicationConfiguration(t),{keys:s,overrides:o}}compareAndUpdateLocalUserConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=fr(this.localUserConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateLocalUserConfiguration(t),{keys:s,overrides:o}}compareAndUpdateRemoteUserConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=fr(this.remoteUserConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateRemoteUserConfiguration(t),{keys:s,overrides:o}}compareAndUpdateWorkspaceConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=fr(this.workspaceConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateWorkspaceConfiguration(t),{keys:s,overrides:o}}compareAndUpdateFolderConfiguration(t,e){let n=this.folderConfigurations.get(t),{added:r,updated:o,removed:s,overrides:a}=fr(n,e),l=[...r,...o,...s];return(l.length||!n)&&this.updateFolderConfiguration(t,e),{keys:l,overrides:a}}compareAndDeleteFolderConfiguration(t){let e=this.folderConfigurations.get(t);if(!e)throw new Error("Unknown folder");this.deleteFolderConfiguration(t);let{added:n,updated:r,removed:o,overrides:s}=fr(e,void 0);return{keys:[...n,...r,...o],overrides:s}}get defaults(){return this._defaultConfiguration}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){if(!this._userConfiguration)if(this._remoteUserConfiguration.isEmpty())this._userConfiguration=this._localUserConfiguration;else{let t=this._localUserConfiguration.merge(this._remoteUserConfiguration);this._userConfiguration=new we(t.contents,t.keys,t.overrides,void 0,this.logService)}return this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}get workspaceConfiguration(){return this._workspaceConfiguration}get folderConfigurations(){return this._folderConfigurations}getConsolidatedConfigurationModel(t,e,n){let r=this.getConsolidatedConfigurationModelForResource(e,n);if(e.overrideIdentifier&&(r=r.override(e.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(t)!==void 0){r=r.merge();for(let o of this._policyConfiguration.keys)r.setValue(o,this._policyConfiguration.getValue(o))}return r}getConsolidatedConfigurationModelForResource({resource:t},e){let n=this.getWorkspaceConsolidatedConfiguration();if(e&&t){let r=e.getFolder(t);r&&(n=this.getFolderConsolidatedConfiguration(r.uri)||n);let o=this._memoryConfigurationByResource.get(t);o&&(n=n.merge(o))}return n}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(t){let e=this._foldersConsolidatedConfigurations.get(t);if(!e){let n=this.getWorkspaceConsolidatedConfiguration(),r=this._folderConfigurations.get(t);r?(e=n.merge(r),this._foldersConsolidatedConfigurations.set(t,e)):e=n}return e}getFolderConfigurationModelForResource(t,e){if(e&&t){let n=e.getFolder(t);if(n)return this._folderConfigurations.get(n.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys,raw:Array.isArray(this.applicationConfiguration.raw)?void 0:this.applicationConfiguration.raw},userLocal:{contents:this.localUserConfiguration.contents,overrides:this.localUserConfiguration.overrides,keys:this.localUserConfiguration.keys,raw:Array.isArray(this.localUserConfiguration.raw)?void 0:this.localUserConfiguration.raw},userRemote:{contents:this.remoteUserConfiguration.contents,overrides:this.remoteUserConfiguration.overrides,keys:this.remoteUserConfiguration.keys,raw:Array.isArray(this.remoteUserConfiguration.raw)?void 0:this.remoteUserConfiguration.raw},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((t,e)=>{let{contents:n,overrides:r,keys:o}=this._folderConfigurations.get(e);return t.push([e,{contents:n,overrides:r,keys:o}]),t},[])}}allKeys(){let t=new Set;return this._defaultConfiguration.keys.forEach(e=>t.add(e)),this.userConfiguration.keys.forEach(e=>t.add(e)),this._workspaceConfiguration.keys.forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.keys.forEach(n=>t.add(n))),[...t.values()]}allOverrideIdentifiers(){let t=new Set;return this._defaultConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this.userConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._workspaceConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.getAllOverrideIdentifiers().forEach(n=>t.add(n))),[...t.values()]}getAllKeysForOverrideIdentifier(t){let e=new Set;return this._defaultConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this.userConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._workspaceConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._folderConfigurations.forEach(n=>n.getKeysForOverrideIdentifier(t).forEach(r=>e.add(r))),[...e.values()]}static parse(t,e){let n=this.parseConfigurationModel(t.defaults,e),r=this.parseConfigurationModel(t.policy,e),o=this.parseConfigurationModel(t.application,e),s=this.parseConfigurationModel(t.userLocal,e),a=this.parseConfigurationModel(t.userRemote,e),l=this.parseConfigurationModel(t.workspace,e),c=t.folders.reduce((u,d)=>(u.set(y.revive(d[0]),this.parseConfigurationModel(d[1],e)),u),new Te);return new i(n,r,o,s,a,l,c,we.createEmptyModel(e),new Te,e)}static parseConfigurationModel(t,e){return new we(t.contents,t.keys,t.overrides,t.raw,e)}};var tc=class{constructor(t,e,n,r,o){this.change=t;this.previous=e;this.currentConfiguraiton=n;this.currentWorkspace=r;this.logService=o;this._marker=`
`;this._markerCode1=this._marker.charCodeAt(0);this._markerCode2=46;this.affectedKeys=new Set;this._previousConfiguration=void 0;for(let s of t.keys)this.affectedKeys.add(s);for(let[,s]of t.overrides)for(let a of s)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(let s of this.affectedKeys)this._affectsConfigStr+=s+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=no.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(t,e){let n=this._marker+t,r=this._affectsConfigStr.indexOf(n);if(r<0)return!1;let o=r+n.length;if(o>=this._affectsConfigStr.length)return!1;let s=this._affectsConfigStr.charCodeAt(o);if(s!==this._markerCode1&&s!==this._markerCode2)return!1;if(e){let a=this.previousConfiguration?this.previousConfiguration.getValue(t,e,this.previous?.workspace):void 0,l=this.currentConfiguraiton.getValue(t,e,this.currentWorkspace);return!Ue(a,l)}return!0}};function fr(i,t){let{added:e,removed:n,updated:r}=bv(t?.rawConfiguration,i?.rawConfiguration),o=[],s=i?.getAllOverrideIdentifiers()||[],a=t?.getAllOverrideIdentifiers()||[];if(t){let l=a.filter(c=>!s.includes(c));for(let c of l)o.push([c,t.getKeysForOverrideIdentifier(c)])}if(i){let l=s.filter(c=>!a.includes(c));for(let c of l)o.push([c,i.getKeysForOverrideIdentifier(c)])}if(t&&i){for(let l of s)if(a.includes(l)){let c=bv({contents:i.getOverrideValue(void 0,l)||{},keys:i.getKeysForOverrideIdentifier(l)},{contents:t.getOverrideValue(void 0,l)||{},keys:t.getKeysForOverrideIdentifier(l)});o.push([l,[...c.added,...c.removed,...c.updated]])}}return{added:e,removed:n,updated:r,overrides:o}}function bv(i,t){let e=i?t?i.keys.filter(o=>t.keys.indexOf(o)===-1):[...i.keys]:[],n=t?i?t.keys.filter(o=>i.keys.indexOf(o)===-1):[...t.keys]:[],r=[];if(i&&t){for(let o of t.keys)if(i.keys.indexOf(o)!==-1){let s=$s(t.contents,o),a=$s(i.contents,o);Ue(s,a)||r.push(o)}}return{added:e,removed:n,updated:r}}var Iv=z("policy");var ro=class{constructor(){this.onDidChange=X.None;this.policyDefinitions={}}async updatePolicyDefinitions(){return{}}getPolicyValue(){}serialize(){}};var nc=class extends C{constructor(e){super();this.logService=e;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this._configurationModel=we.createEmptyModel(e)}get configurationModel(){return this._configurationModel}async initialize(){return this.resetConfigurationModel(),this._register(Ze.as(Vt.Configuration).onDidUpdateConfiguration(({properties:e,defaultsOverrides:n})=>this.onDidUpdateConfiguration(Array.from(e),n))),this.configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}onDidUpdateConfiguration(e,n){this.updateConfigurationModel(e,Ze.as(Vt.Configuration).getConfigurationProperties()),this._onDidChangeConfiguration.fire({defaults:this.configurationModel,properties:e})}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=we.createEmptyModel(this.logService);let e=Ze.as(Vt.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,n){let r=this.getConfigurationDefaultOverrides();for(let o of e){let s=r[o],a=n[o];s!==void 0?this._configurationModel.setValue(o,s):a?this._configurationModel.setValue(o,this.getDefaultValue(o,a)):this._configurationModel.removeValue(o)}}getDefaultValue(e,n){return Lt(n.default)}},rc=class{constructor(){this.onDidChangeConfiguration=X.None;this.configurationModel=we.createEmptyModel(new wl)}async initialize(){return this.configurationModel}},io=class extends C{constructor(e,n,r){super();this.defaultConfiguration=e;this.policyService=n;this.logService=r;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this._configurationModel=we.createEmptyModel(this.logService),this.configurationRegistry=Ze.as(Vt.Configuration)}get configurationModel(){return this._configurationModel}async initialize(){return this.logService.trace("PolicyConfiguration#initialize"),this.update(await this.updatePolicyDefinitions(this.defaultConfiguration.configurationModel.keys),!1),this.update(await this.updatePolicyDefinitions(Object.keys(this.configurationRegistry.getExcludedConfigurationProperties())),!1),this._register(this.policyService.onDidChange(e=>this.onDidChangePolicies(e))),this._register(this.defaultConfiguration.onDidChangeConfiguration(async({properties:e})=>this.update(await this.updatePolicyDefinitions(e),!0))),this._configurationModel}async updatePolicyDefinitions(e){this.logService.trace("PolicyConfiguration#updatePolicyDefinitions",e);let n={},r=[],o=this.configurationRegistry.getConfigurationProperties(),s=this.configurationRegistry.getExcludedConfigurationProperties();for(let a of e){let l=o[a]??s[a];if(!l){r.push(a);continue}if(l.policy){if(l.type!=="string"&&l.type!=="number"&&l.type!=="array"&&l.type!=="object"&&l.type!=="boolean"){this.logService.warn(`Policy ${l.policy.name} has unsupported type ${l.type}`);continue}let{value:c,restrictedValue:u}=l.policy;r.push(a),n[l.policy.name]={type:l.type==="number"?"number":l.type==="boolean"?"boolean":"string",value:c,restrictedValue:u}}}return Ta(n)||await this.policyService.updatePolicyDefinitions(n),r}onDidChangePolicies(e){this.logService.trace("PolicyConfiguration#onDidChangePolicies",e);let n=this.configurationRegistry.getPolicyConfigurations(),r=ri(e.map(o=>n.get(o)));this.update(r,!0)}update(e,n){this.logService.trace("PolicyConfiguration#update",e);let r=this.configurationRegistry.getConfigurationProperties(),o=this.configurationRegistry.getExcludedConfigurationProperties(),s=[],a=this._configurationModel.isEmpty();for(let l of e){let c=r[l]??o[l],u=c?.policy?.name;if(u){let d=this.policyService.getPolicyValue(u);if(Ee(d)&&c.type!=="string")try{d=this.parse(d)}catch(f){this.logService.error(`Error parsing policy value ${u}:`,ba(f));continue}(a?d!==void 0:!Ue(this._configurationModel.getValue(l),d))&&s.push([l,d])}else this._configurationModel.getValue(l)!==void 0&&s.push([l,void 0])}if(s.length){this.logService.trace("PolicyConfiguration#changed",s);let l=this._configurationModel;this._configurationModel=we.createEmptyModel(this.logService);for(let c of l.keys)this._configurationModel.setValue(c,l.getValue(c));for(let[c,u]of s)u===void 0?this._configurationModel.removeValue(c):this._configurationModel.setValue(c,u);n&&this._onDidChangeConfiguration.fire(this._configurationModel)}}parse(e){let n={},r=null,o=[],s=[],a=[];function l(u){if(Array.isArray(o))o.push(u);else if(r!==null){if(o[r]!==void 0)throw new Error(`Duplicate property found: ${r}`);o[r]=u}}if(e&&(Xi(e,{onObjectBegin:()=>{let u={};l(u),s.push(o),o=u,r=null},onObjectProperty:u=>{r=u},onObjectEnd:()=>{o=s.pop()},onArrayBegin:()=>{let u=[];l(u),s.push(o),o=u,r=null},onArrayEnd:()=>{o=s.pop()},onLiteralValue:l,onError:(u,d,f)=>{a.push({error:u,offset:d,length:f})}}),n=o[0]||n),a.length>0)throw new Error(a.map(u=>ba(u.error)).join(`
`));return n}};io=R([T(1,Iv),T(2,V)],io);var ic=class extends C{constructor(e,n,r,o){super();this.settingsResource=e;this.logService=o;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this.defaultConfiguration=this._register(new nc(o)),this.policyConfiguration=r instanceof ro?new rc:this._register(new io(this.defaultConfiguration,r,o)),this.userConfiguration=this._register(new ec(this.settingsResource,{},lt,n,o)),this.configuration=new no(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,we.createEmptyModel(o),we.createEmptyModel(o),we.createEmptyModel(o),we.createEmptyModel(o),new Te,we.createEmptyModel(o),new Te,o),this.configurationEditing=new Hp(e,n,this),this.reloadConfigurationScheduler=this._register(new Zn(()=>this.reloadConfiguration(),50)),this._register(this.defaultConfiguration.onDidChangeConfiguration(({defaults:s,properties:a})=>this.onDidDefaultConfigurationChange(s,a))),this._register(this.policyConfiguration.onDidChangeConfiguration(s=>this.onDidPolicyConfigurationChange(s))),this._register(this.userConfiguration.onDidChange(()=>this.reloadConfigurationScheduler.schedule()))}async initialize(){let[e,n,r]=await Promise.all([this.defaultConfiguration.initialize(),this.policyConfiguration.initialize(),this.userConfiguration.loadConfiguration()]);this.configuration=new no(e,n,we.createEmptyModel(this.logService),r,we.createEmptyModel(this.logService),we.createEmptyModel(this.logService),new Te,we.createEmptyModel(this.logService),new Te,this.logService)}getConfigurationData(){return this.configuration.toData()}getValue(e,n){let r=typeof e=="string"?e:void 0,o=ql(e)?e:ql(n)?n:{};return this.configuration.getValue(r,o,void 0)}async updateValue(e,n,r,o,s){let a=dv(r)?r:ql(r)?{resource:r.resource,overrideIdentifiers:r.overrideIdentifier?[r.overrideIdentifier]:void 0}:void 0,l=a?o:r;if(l!==void 0&&l!==3&&l!==2)throw new Error(`Unable to write ${e} to target ${l}.`);a?.overrideIdentifiers&&(a.overrideIdentifiers=hn(a.overrideIdentifiers),a.overrideIdentifiers=a.overrideIdentifiers.length?a.overrideIdentifiers:void 0);let c=this.inspect(e,{resource:a?.resource,overrideIdentifier:a?.overrideIdentifiers?a.overrideIdentifiers[0]:void 0});if(c.policyValue!==void 0)throw new Error(`Unable to write ${e} because it is configured in system policy.`);if(Ue(n,c.defaultValue)&&(n=void 0),a?.overrideIdentifiers?.length&&a.overrideIdentifiers.length>1){let d=a.overrideIdentifiers.sort(),f=this.configuration.localUserConfiguration.overrides.find(g=>qt([...g.identifiers].sort(),d));f&&(a.overrideIdentifiers=f.identifiers)}let u=a?.overrideIdentifiers?.length?[vv(a.overrideIdentifiers),e]:[e];await this.configurationEditing.write(u,n),await this.reloadConfiguration()}inspect(e,n={}){return this.configuration.inspect(e,n,void 0)}keys(){return this.configuration.keys(void 0)}async reloadConfiguration(){let e=await this.userConfiguration.loadConfiguration();this.onDidChangeUserConfiguration(e)}onDidChangeUserConfiguration(e){let n=this.configuration.toData(),r=this.configuration.compareAndUpdateLocalUserConfiguration(e);this.trigger(r,n,2)}onDidDefaultConfigurationChange(e,n){let r=this.configuration.toData(),o=this.configuration.compareAndUpdateDefaultConfiguration(e,n);this.trigger(o,r,7)}onDidPolicyConfigurationChange(e){let n=this.configuration.toData(),r=this.configuration.compareAndUpdatePolicyConfiguration(e);this.trigger(r,n,7)}trigger(e,n,r){let o=new tc(e,{data:n},this.configuration,void 0,this.logService);o.source=r,this._onDidChangeConfiguration.fire(o)}},Hp=class{constructor(t,e,n){this.settingsResource=t;this.fileService=e;this.configurationService=n;this.queue=new Xn}write(t,e){return this.queue.queue(()=>this.doWriteConfiguration(t,e))}async doWriteConfiguration(t,e){let n;try{n=(await this.fileService.readFile(this.settingsResource)).value.toString()}catch(s){if(s.fileOperationResult===1)n="{}";else throw s}let r=[];if(Bl(n,r,{allowTrailingComma:!0,allowEmptyContent:!0}),r.length>0)throw new Error("Unable to write into the settings file. Please open the file to correct errors/warnings in the file and try again.");let o=this.getEdits(n,t,e);n=lv(n,o),await this.fileService.writeFile(this.settingsResource,P.fromString(n))}getEdits(t,e,n){let{tabSize:r,insertSpaces:o,eol:s}=this.formattingOptions;if(!e.length){let a=JSON.stringify(n,null,o?" ".repeat(r):"	");return[{content:a,length:a.length,offset:0}]}return av(t,e,n,{tabSize:r,insertSpaces:o,eol:s})}get formattingOptions(){if(!this._formattingOptions){let t=zt===3||zt===2?`
`:`\r
`,e=this.configurationService.getValue("files.eol",{overrideIdentifier:"jsonc"});e&&typeof e=="string"&&e!=="auto"&&(t=e),this._formattingOptions={eol:t,insertSpaces:!!this.configurationService.getValue("editor.insertSpaces",{overrideIdentifier:"jsonc"}),tabSize:this.configurationService.getValue("editor.tabSize",{overrideIdentifier:"jsonc"})}}return this._formattingOptions}};var vF=z("requestService"),Cv="NO_FETCH_TELEMETRY";var mC=!1,zp=[],_v,Tv;function gC(i=!0,t=!0){if(_v===i&&Tv===t)return;_v=i,Tv=t;let e=Ze.as(Vt.Configuration),n=zp;zp=[{id:"http",order:15,title:m(2530,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:m(2545,null),restricted:!0}}},{id:"http",order:15,title:m(2530,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:m(2528,null),restricted:!0}}},{id:"http",order:15,title:m(2530,null),type:"object",scope:i?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:m(2533,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:m(2541,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:m(2535,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:m(2532,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:m(2534,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[m(2538,null),m(2539,null),m(2537,null),m(2540,null)],default:"override",markdownDescription:m(2536,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:m(2542,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:mC,markdownDescription:m(2543,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:m(2544,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:m(2529,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:m(2546,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:m(2531,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:zp,remove:n})}gC();var hC=!1,Kp=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var Gp=class i{constructor(){this._isWebWorker=typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope";this._isRenderer=typeof document=="object";this._defineCalls=[];this._state=1}static{this.INSTANCE=new i}_initialize(){if(this._state===1){if(globalThis.define){this._state=3;return}}else return;this._state=2,globalThis.define=(t,e,n)=>{typeof t!="string"&&(n=e,e=t,t=null),(typeof e!="object"||!Array.isArray(e))&&(n=e,e=null),this._defineCalls.push(new Kp(t,e,n))},globalThis.define.amd=!0,this._isRenderer?this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??window.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){if(t.startsWith(window.location.origin)||t.startsWith(`${te.vscodeFileResource}://${Tu}`))return t;throw new Error(`[trusted_script_src] Invalid script url: ${t}`)}}):this._isWebWorker&&(this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??globalThis.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){return t}}))}async load(t){if(this._initialize(),this._state===3)return new Promise(s=>{let a=H();globalThis.define(a,[t],function(l){s(l)})});let e=await(this._isWebWorker?this._workerLoadScript(t):this._isRenderer?this._rendererLoadScript(t):this._nodeJSLoadScript(t));if(!e){console.warn(`Did not receive a define call from script ${t}`);return}let n={},r=[],o=[];if(Array.isArray(e.dependencies))for(let s of e.dependencies)s==="exports"?r.push(n):o.push(s);if(o.length>0)throw new Error(`Cannot resolve dependencies for script ${t}. The dependencies are: ${o.join(", ")}`);return typeof e.callback=="function"?e.callback(...r)??n:e.callback}_rendererLoadScript(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("async","async"),r.setAttribute("type","text/javascript");let o=()=>{r.removeEventListener("load",s),r.removeEventListener("error",a)},s=l=>{o(),e(this._defineCalls.pop())},a=l=>{o(),n(l)};r.addEventListener("load",s),r.addEventListener("error",a),this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),r.setAttribute("src",t),window.document.getElementsByTagName("head")[0].appendChild(r)})}async _workerLoadScript(t){return this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),await import(t),this._defineCalls.pop()}async _nodeJSLoadScript(t){try{let e=(await import("fs")).default,n=(await import("vm")).default,r=(await import("module")).default,o=y.parse(t).fsPath,s=e.readFileSync(o).toString(),a=r.wrap(s.replace(/^#!.*/,""));return new n.Script(a).runInThisContext().apply(),this._defineCalls.pop()}catch(e){throw e}}},jp=new Map;async function Jp(i,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${i}/${t}`:i;if(jp.has(n))return jp.get(n);let r;if(/^\w[\w\d+.-]*:\/\//.test(n))r=n;else{let l=`${hC&&e&&!_t?Mg:Lg}/${n}`;r=it.asBrowserUri(l).toString(!0)}let o=Gp.INSTANCE.load(r);return jp.set(n,o),o}function yC(i){if(nu===2&&/^penguin(\.|$)/i.test(i))return"chromebook"}function xv(i,t,e,n,r,o,s,a,l,c,u){let d=Object.create(null);d["common.machineId"]=o,d["common.sqmId"]=s,d["common.devDeviceId"]=a,d.sessionID=H()+Date.now(),d.commitHash=n,d.version=r,d["common.releaseDate"]=c,d["common.platformVersion"]=(i||"").replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/,"$1$2$3"),d["common.platform"]=Gm(nu),d["common.nodePlatform"]=ui,d["common.nodeArch"]=e,d["common.product"]=u||"desktop",l&&(d["common.msftInternal"]=l);let f=0,g=Date.now();Object.defineProperties(d,{timestamp:{get:()=>new Date,enumerable:!0},"common.timesincesessionstart":{get:()=>Date.now()-g,enumerable:!0},"common.sequence":{get:()=>f++,enumerable:!0}}),Jm&&(d["common.snap"]="true");let h=yC(t);return h&&(d["common.platformDetail"]=h),d}function wv(i){let t=Ne.USERDNSDOMAIN;if(!t)return!1;let e=t.toLowerCase();return i.some(n=>e===n)}var Hs=class{constructor(t){this.value=t;this.isTrustedTelemetryValue=!0}},Qp=class{constructor(){this.telemetryLevel=0;this.sessionId="someValue.sessionId";this.machineId="someValue.machineId";this.sqmId="someValue.sqmId";this.devDeviceId="someValue.devDeviceId";this.firstSessionDate="someValue.firstSessionDate";this.sendErrorTelemetry=!1}publicLog(){}publicLog2(){}publicLogError(){}publicLogError2(){}setExperimentProperty(){}setCommonProperty(){}},sc=new Qp;var Yp="telemetry",Rv={id:Yp,name:m(2570,null)};function Ev(i,t){return!t.isBuilt&&!t.disableTelemetry?!0:!(t.disableTelemetry||!i.enableTelemetry)}function ac(i,t){return t.extensionTestsLocationURI?!0:!(t.isBuilt||t.disableTelemetry||i.enableTelemetry&&i.aiConfig?.ariaKey)}function Pv(i){let t=i.getValue(ji),e=i.getValue(Al);if(i.getValue(Ns)===!1||e===!1)return 0;switch(t??"all"){case"all":return 3;case"error":return 2;case"crash":return 1;case"off":return 0}}function lc(i){let t={},e={},n={};kv(i,n);for(let r in n){r=r.length>150?r.substr(r.length-149):r;let o=n[r];typeof o=="number"?e[r]=o:typeof o=="boolean"?e[r]=o?1:0:typeof o=="string"?(o.length>8192&&console.warn(`Telemetry property: ${r} has been trimmed to 8192, the original length is ${o.length}`),t[r]=o.substring(0,8191)):typeof o<"u"&&o!==null&&(t[r]=String(o))}return{properties:t,measurements:e}}function kv(i,t,e=0,n){if(!i||typeof i!="object"&&typeof i!="function")return;let r=i;for(let o of Object.getOwnPropertyNames(r)){let s=r[o],a=n?n+o:o;Array.isArray(s)?t[a]=Nu(s):s instanceof Date?t[a]=s.toISOString():Pe(s)?e<2?kv(s,t,e+1,a+"."):t[a]=Nu(s):t[a]=s}}function Av(i,t){let e=i.msftInternalDomains||[],n=t.getValue("telemetry.internalTesting");return wv(e)||n}function Dv(i){return[i.appRoot,i.extensionsPath,i.userHome.fsPath,i.tmpDir.fsPath,i.userDataPath]}function vC(i,t){if(!i||!i.includes("/")&&!i.includes("\\"))return i;let e=i,n=[];for(let l of t)for(;;){let c=l.exec(i);if(!c)break;n.push([c.index,l.lastIndex])}let r=/(?:^|[\\\/])((node_modules|node_modules\.asar)[\\\/].*)$/,o=/^(.*?)((?:\.vscode(?:-[a-z]+)*|resources[\\\/]app)[\\\/]extensions[\\\/].*)$/i,s=/(file:\/\/)?([a-zA-Z]:(\\\\|\\|\/)|(\\\\|\\|\/))?([\w\-\._@]+(\\\\|\\|\/))+[\w\-\._@]*/g,a=0;for(e="";;){let l=s.exec(i);if(!l)break;if(!n.some(([u,d])=>l.index<d&&u<s.lastIndex)){let u=o.exec(l[0]);if(u)e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+u[2];else{let d=r.exec(l[0]);d?e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+d[1]:e+=i.substring(a,l.index)+"<REDACTED: user-file-path>"}a=s.lastIndex}}return a<i.length&&(e+=i.substr(a)),e}function bC(i){if(!i)return i;let t=[{label:"URL",regex:/[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s]*/},{label:"Google API Key",regex:/AIza[A-Za-z0-9_\\\-]{35}/},{label:"JWT",regex:/eyJ[0eXAiOiJKV1Qi|hbGci|a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+/},{label:"Slack Token",regex:/xox[pbar]\-[A-Za-z0-9]/},{label:"GitHub Token",regex:/(gh[psuro]_[a-zA-Z0-9]{36}|github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/},{label:"Generic Secret",regex:/(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i},{label:"CLI Credentials",regex:/((login|psexec|(certutil|psexec)\.exe).{1,50}(\s-u(ser(name)?)?\s+.{3,100})?\s-(admin|user|vm|root)?p(ass(word)?)?\s+["']?[^$\-\/\s]|(^|[\s\r\n\\])net(\.exe)?.{1,5}(user\s+|share\s+\/user:| user -? secrets ? set) \s + [^ $\s \/])/},{label:"Microsoft Entra ID",regex:/eyJ(?:0eXAiOiJKV1Qi|hbGci|[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.)/},{label:"Email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/}];for(let e of t)if(e.regex.test(i))return`<REDACTED: ${e.label}>`;return i}function Ov(i,t){return i?ps(i,e=>{if(e instanceof Hs||Object.hasOwnProperty.call(e,"isTrustedTelemetryValue"))return e.value;if(typeof e=="string"){let n=e.replaceAll("%20"," ");n=vC(n,t);for(let r of t)n=n.replace(r,"");return n=bC(n),n}}):{}}var Lv="https://mobile.events.data.microsoft.com/OneCollector/1.0",SC="https://mobile.events.data.microsoft.com/ping";async function IC(i,t,e){let n=_t?await Jp("@microsoft/1ds-core-js","bundle/ms.core.min.js"):await import("@microsoft/1ds-core-js"),r=_t?await Jp("@microsoft/1ds-post-js","bundle/ms.post.min.js"):await import("@microsoft/1ds-post-js"),o=new n.AppInsightsCore,s=new r.PostChannel,a={instrumentationKey:i,endpointUrl:Lv,loggingLevelTelemetry:0,loggingLevelConsole:0,disableCookiesUsage:!0,disableDbgExt:!0,disableInstrumentationKeyValidation:!0,channels:[[s]]};if(e){a.extensionConfig={};let l={alwaysUseXhrOverride:!0,ignoreMc1Ms0CookieProcessing:!0,httpXHROverride:e};a.extensionConfig[s.identifier]=l}return o.initialize(a,[]),o.addTelemetryInitializer(l=>{l.ext=l.ext??{},l.ext.web=l.ext.web??{},l.ext.web.consentDetails='{"GPC_DataSharingOptIn":false}',t&&(l.ext.utc=l.ext.utc??{},l.ext.utc.flags=8462029)}),o}var cc=class{constructor(t,e,n,r,o){this._isInternalTelemetry=t;this._eventPrefix=e;this._defaultData=n;this._xhrOverride=o;this.endPointUrl=Lv;this.endPointHealthUrl=SC;this._defaultData||(this._defaultData={}),typeof r=="function"?this._aiCoreOrKey=r():this._aiCoreOrKey=r,this._asyncAiCore=null}_withAIClient(t){if(this._aiCoreOrKey){if(typeof this._aiCoreOrKey!="string"){t(this._aiCoreOrKey);return}this._asyncAiCore||(this._asyncAiCore=IC(this._aiCoreOrKey,this._isInternalTelemetry,this._xhrOverride)),this._asyncAiCore.then(e=>{t(e)},e=>{De(e),console.error(e)})}}log(t,e){if(!this._aiCoreOrKey)return;e=ki(e,this._defaultData);let n=lc(e),r=this._eventPrefix+"/"+t;try{this._withAIClient(o=>{o.pluginVersionString=n?.properties.version??"Unknown",o.track({name:r,baseData:{name:r,properties:n?.properties,measurements:n?.measurements}})})}catch{}}flush(){return this._aiCoreOrKey?new Promise(t=>{this._withAIClient(e=>{e.unload(!0,()=>{this._aiCoreOrKey=void 0,t(void 0)})})}):Promise.resolve(void 0)}};async function _C(i,t){let e=await t.request(i,Fe.None),n=(await er(e.stream)).toString(),r=e.res.statusCode??200;return{headers:e.res.headers,statusCode:r,responseData:n}}async function TC(i){let t=await import("https"),e={method:i.type,headers:i.headers};return new Promise((r,o)=>{let s=t.request(i.url??"",e,a=>{a.on("data",function(l){r({headers:a.headers,statusCode:a.statusCode??200,responseData:l.toString()})}),a.on("error",function(l){o(l)})});s.write(i.data,a=>{a&&o(a)}),s.end()})}async function CC(i,t,e){let n=typeof t.data=="string"?t.data:new TextDecoder().decode(t.data),r={type:"POST",headers:{...t.headers,"Content-Type":"application/json","Content-Length":Buffer.byteLength(t.data).toString()},url:t.urlString,data:n,callSite:Cv};try{let o=i?await _C(r,i):await TC(r);e(o.statusCode,o.headers,o.responseData)}catch{e(0,{})}}var dc=class extends cc{constructor(t,e,n,r,o){let s={sendPOST:(a,l)=>{CC(t,a,l)}};super(e,n,r,o,s)}};var oo=class extends C{constructor(e,n,r,o,s){super();this.prefix=e;let a=n?"remoteTelemetry":Yp,l=r.getLogger(a);if(l)this.logger=this._register(l);else{let u=ac(s,o)?" (Not Sent)":"";this.logger=this._register(r.createLogger(a,{name:m(2550,null,u),group:Rv,hidden:!0}))}}flush(){return Promise.resolve()}log(e,n){this.logger.trace(`${this.prefix}telemetry/${e}`,lc(n))}};oo=R([T(2,ty),T(3,Cp),T(4,Ut)],oo);var gU={Extensions:{name:{key:"extensionsConfigurationTitle",value:m(138,null)}},IntegratedTerminal:{name:{key:"terminalIntegratedConfigurationTitle",value:m(141,null)}},InteractiveSession:{name:{key:"interactiveSessionConfigurationTitle",value:m(139,null)}},Telemetry:{name:{key:"telemetryConfigurationTitle",value:m(140,null)}},Update:{name:{key:"updateConfigurationTitle",value:m(142,null)}}};var Un=class{constructor(t,e,n){this._configurationService=e;this._productService=n;this._experimentProperties={};this._pendingEvents=[];this._isExperimentPropertySet=!1;this._disposables=new $;this._cleanupPatterns=[];this._appenders=t.appenders,this._commonProperties=t.commonProperties??Object.create(null),this.sessionId=this._commonProperties.sessionID,this.machineId=this._commonProperties["common.machineId"],this.sqmId=this._commonProperties["common.sqmId"],this.devDeviceId=this._commonProperties["common.devDeviceId"],this.firstSessionDate=this._commonProperties["common.firstSessionDate"],this.msftInternal=this._commonProperties["common.msftInternal"],this._piiPaths=t.piiPaths||[],this._telemetryLevel=3,this._sendErrorTelemetry=!!t.sendErrorTelemetry,this._meteredConnectionService=t.meteredConnectionService,this._cleanupPatterns=[/(vscode-)?file:\/\/.*?\/resources\/app\//gi];for(let r of this._piiPaths)this._cleanupPatterns.push(new RegExp(Ot(r),"gi")),r.indexOf("\\")>=0&&this._cleanupPatterns.push(new RegExp(Ot(r.replace(/\\/g,"/")),"gi"));this._updateTelemetryLevel(),this._disposables.add(this._configurationService.onDidChangeConfiguration(r=>{(r.affectsConfiguration(ji)||r.affectsConfiguration(Ns)||r.affectsConfiguration(Al))&&this._updateTelemetryLevel()})),t.waitForExperimentProperties?this._flushTimeout=setTimeout(()=>this._flushPendingEvents(),Un.BUFFER_FLUSH_TIMEOUT):this._isExperimentPropertySet=!0}static{this.IDLE_START_EVENT_NAME="UserIdleStart"}static{this.IDLE_STOP_EVENT_NAME="UserIdleStop"}static{this.BUFFER_FLUSH_TIMEOUT=1e4}static{this.MAX_BUFFER_SIZE=1e3}setExperimentProperty(t,e){this._experimentProperties[t]=new Hs(e),this._isExperimentPropertySet||this._flushPendingEvents()}setCommonProperty(t,e){this._commonProperties[t]=e}_flushPendingEvents(){if(!this._isExperimentPropertySet){this._isExperimentPropertySet=!0,this._flushTimeout!==void 0&&(clearTimeout(this._flushTimeout),this._flushTimeout=void 0);for(let t of this._pendingEvents)this._doLog(t.eventName,t.eventLevel,t.data);this._pendingEvents=[]}}_updateTelemetryLevel(){let t=Pv(this._configurationService),e=this._productService.enabledTelemetryLevels;if(e){this._sendErrorTelemetry=this.sendErrorTelemetry?e.error:!1;let n=e.usage?3:e.error?2:0;t=Math.min(t,n)}this._telemetryLevel=t}get sendErrorTelemetry(){return this._sendErrorTelemetry}get telemetryLevel(){return this._telemetryLevel}dispose(){this._flushPendingEvents(),this._disposables.dispose()}_log(t,e,n){if(!(this._telemetryLevel<e)&&!this._meteredConnectionService?.isConnectionMetered){if(!this._isExperimentPropertySet){this._pendingEvents.length<Un.MAX_BUFFER_SIZE&&this._pendingEvents.push({eventName:t,eventLevel:e,data:n});return}this._doLog(t,e,n)}}_doLog(t,e,n){n=ki(n,this._experimentProperties),n=Ov(n,this._cleanupPatterns),n=ki(n,this._commonProperties),e===2&&(n={...n,isError:!0}),this._appenders.forEach(r=>r.log(t,n??{}))}publicLog(t,e){this._log(t,3,e)}publicLog2(t,e){this.publicLog(t,e)}publicLogError(t,e){this._sendErrorTelemetry&&this._log(t,2,e)}publicLogError2(t,e){this.publicLogError(t,e)}};Un=R([T(1,cv),T(2,Ut)],Un);function xC(){let i=m(2567,null,St.nameLong),t=St.privacyStatementUrl?m(2553,null,"https://aka.ms/vscode-telemetry",St.privacyStatementUrl):m(2554,null,"https://aka.ms/vscode-telemetry"),e=_t?"":m(2559,null),n=m(2552,null),r=m(2557,null),o=m(2568,null),s=m(2566,null),a=`
|       | ${n} | ${r} | ${o} |
|:------|:-------------:|:---------------:|:----------:|
| all   |       \u2713       |        \u2713        |     \u2713      |
| error |       \u2713       |        \u2713        |     -      |
| crash |       \u2713       |        -        |     -      |
| off   |       -       |        -        |     -      |
`,l=m(2562,null);return`
${i} ${t} ${e}

&nbsp;

${s}
${a}

&nbsp;

${l}
`}var wC=Ze.as(Vt.Configuration);wC.registerConfiguration({id:Cy,order:1,type:"object",title:m(2569,null),properties:{[ji]:{type:"string",enum:["all","error","crash","off"],enumDescriptions:[m(2561,null),m(2563,null),m(2560,null),m(2564,null)],markdownDescription:xC(),default:"all",restricted:!0,scope:1,tags:["usesOnlineServices","telemetry"],policy:{name:"TelemetryLevel",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.telemetryLevel.policyDescription",value:m(2565,null)},enumDescriptions:[{key:"telemetry.telemetryLevel.default",value:m(2561,null)},{key:"telemetry.telemetryLevel.error",value:m(2563,null)},{key:"telemetry.telemetryLevel.crash",value:m(2560,null)},{key:"telemetry.telemetryLevel.off",value:m(2564,null)}]}}},"telemetry.feedback.enabled":{type:"boolean",default:!0,description:m(2558,null),policy:{name:"EnableFeedback",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.feedback.enabled",value:m(2558,null)}}}},[Ns]:{type:"boolean",markdownDescription:St.privacyStatementUrl?m(2556,null,St.nameLong,St.privacyStatementUrl):m(2555,null,St.nameLong),default:!0,restricted:!0,markdownDeprecationMessage:m(2551,null,`\`#${ji}#\``),scope:1,tags:["usesOnlineServices","telemetry"]}}});var uc=class extends C{constructor(e){super();this._delegate=e;this._telemetryLevel=3;ci(e)&&this._register(e)}get telemetryLevel(){return Math.min(this._delegate.telemetryLevel,this._telemetryLevel)}get sendErrorTelemetry(){return this.telemetryLevel>=2&&this._delegate.sendErrorTelemetry}get sessionId(){return this._delegate.sessionId}get machineId(){return this._delegate.machineId}get sqmId(){return this._delegate.sqmId}get devDeviceId(){return this._delegate.devDeviceId}get firstSessionDate(){return this._delegate.firstSessionDate}get msftInternal(){return this._delegate.msftInternal}publicLog(e,n){this.telemetryLevel<3||this._delegate.publicLog(e,n)}publicLogError(e,n){this.telemetryLevel<2||this._delegate.publicLogError(e,n)}publicLog2(e,n){this.telemetryLevel<3||this._delegate.publicLog2(e,n)}publicLogError2(e,n){this.telemetryLevel<2||this._delegate.publicLogError2(e,n)}setExperimentProperty(e,n){this._delegate.setExperimentProperty(e,n)}setCommonProperty(e,n){this._delegate.setCommonProperty(e,n)}updateTelemetryLevel(e){this._telemetryLevel=Math.min(this._telemetryLevel,e)}};function pc(i,t){let e=t?.[Us],n=Py(e);!PC(i)||n===void 0||i.updateTelemetryLevel(n)}function PC(i){return typeof i.updateTelemetryLevel=="function"}async function Mv(i){let{environmentService:t,productService:e,fileService:n,loggerService:r,logService:o,disposables:s}=i;if(i.disableTelemetry||!r||!Ev(e,t))return s.add(new uc(sc));let a=s.add(new ic(Q(t.appSettingsHome,"settings.json"),n,new ro,o));await a.initialize();let l=[s.add(new oo("",!1,r,t,e))],c=Av(e,a);if(!ac(e,t)&&e.aiConfig?.ariaKey){let h=new dc(void 0,c,"monacoworkbench",null,e.aiConfig.ariaKey);s.add(E(()=>{h.flush()})),l.push(h)}let[u,d,f]=await Promise.all([Ul(h=>o.error(h)),rv(h=>o.error(h)),Vl(h=>o.error(h))]),g=new Un({appenders:l,sendErrorTelemetry:!0,commonProperties:xv(EC(),RC(),process.arch,e.commit,e.version,u,d,f,c,e.date),piiPaths:Dv(t)},a,e);return s.add(new uc(g))}var fc=class{constructor(t){this._telemetryService=t}userMessageSent(t,e,n,r,o){let s=o?.length??0,a=n?.activeClient;this._telemetryService.publicLog2("agentHost.userMessageSent",{provider:t,agentSessionId:j.id(e),source:r,isSubagentSession:kl(e),turnCount:n?.turns.length??0,...a?{activeClientId:a.clientId,activeClientToolCount:a.tools.length,activeClientCustomizationCount:a.customizations?.length??0}:{},attachmentCount:s})}};var mr=class extends C{constructor(e,n,r,o,s,a){super();this._stateManager=e;this._options=n;this._logService=o;this._gitService=s;this._telemetryService=a;this._toolCallAgents=new Map;this._diffComputationSequencer=new yt;this._lastAgentInfos=[];this._debouncedDiffTimers=this._register(new at);this._subagentSessions=new Map;this._pendingSubagentSignals=new Map;this._telemetryReporter=new fc(this._telemetryService),this._diffComputeService=this._register(new cr(this._logService)),this._permissionManager=this._register(r.createInstance(Qi,this._stateManager)),this._register(Di(l=>{let c=this._options.agents.read(l);this._publishAgentInfos(c,l)})),this._register(this._stateManager.onDidEmitEnvelope(l=>{if(!l.origin&&l.action.type==="session/toolCallComplete"){let c=l.action;this._options.getAgent(c.session)?.onClientToolCallComplete(y.parse(c.session),c.toolCallId,c.result)}}))}static{this._DIFF_DEBOUNCE_MS=5e3}_publishAgentInfos(e,n){let r=e.map(o=>{let s=o.getDescriptor(),a=o.getProtectedResources(),l=n?o.models.read(n):o.models.get(),c=o.getCustomizations?.();return{provider:s.provider,displayName:s.displayName,description:s.description,models:l.map(u=>({id:u.id,provider:u.provider,name:u.name,maxContextWindow:u.maxContextWindow,supportsVision:u.supportsVision,policyState:u.policyState,configSchema:u.configSchema,_meta:u._meta})),customizations:c?.length?[...c]:void 0,protectedResources:a.length>0?a:void 0}});Ue(this._lastAgentInfos,r)||(this._lastAgentInfos=r,this._stateManager.dispatchServerAction({type:"root/agentsChanged",agents:r}))}async _publishSessionCustomizations(e,n){if(!e.getSessionCustomizations)return;let r=await e.getSessionCustomizations(y.parse(n));this._stateManager.dispatchServerAction({type:"session/customizationsChanged",session:n,customizations:[...r]})}_publishSessionCustomizationsSoon(e,n){this._publishSessionCustomizations(e,n).catch(r=>{this._logService.error("[AgentSideEffects] getSessionCustomizations failed",r)})}_publishSessionCustomizationsForAgent(e){for(let n of this._stateManager.getSessionUris())this._options.getAgent(n)===e&&this._publishSessionCustomizationsSoon(e,n)}_publishAllSessionCustomizations(){for(let e of this._stateManager.getSessionUris()){let n=this._options.getAgent(e);n&&this._publishSessionCustomizationsSoon(n,e)}}initialize(){return this._permissionManager.initialize()}registerProgressListener(e){let n=new $;return n.add(e.onDidSessionProgress(r=>{this._handleAgentSignal(e,r)})),e.onDidCustomizationsChange&&n.add(e.onDidCustomizationsChange(()=>{this._publishAgentInfos(this._options.agents.get()),this._publishSessionCustomizationsForAgent(e)})),n}_handleAgentSignal(e,n){let r=n.session.toString();if(n.kind==="action"&&n.action.type==="session/toolCallStart"&&!n.parentToolCallId&&this._toolCallAgents.set(`${r}:${n.action.toolCallId}`,e.id),n.kind==="subagent_started"){this._handleSubagentStarted(r,n.toolCallId,n.agentName,n.agentDisplayName,n.agentDescription),this._drainPendingSubagentSignals(r,n.toolCallId);return}if(n.kind==="subagent_completed"){this.completeSubagentSession(r,n.toolCallId);return}if(n.kind==="steering_consumed"){this._stateManager.dispatchServerAction({type:"session/pendingMessageRemoved",session:r,kind:"steering",id:n.id});return}let o=n.kind==="action"||n.kind==="pending_confirmation"?n.parentToolCallId:void 0;if(o){let a=`${r}:${o}`,l=this._subagentSessions.get(a);if(l){n.kind==="action"&&n.action.type==="session/toolCallStart"&&this._toolCallAgents.set(`${l}:${n.action.toolCallId}`,e.id);let u=this._stateManager.getActiveTurnId(l);u&&this._dispatchActionForSession(n,l,u,e);return}this._logService.trace(`[AgentSideEffects] Buffering ${this._describeSignal(n)} for pending subagent ${a}`);let c=this._pendingSubagentSignals.get(a);c||(c=[],this._pendingSubagentSignals.set(a,c)),c.push({signal:n,agent:e});return}if(n.kind==="pending_confirmation"){let a=this._findSubagentSessionForToolCall(r,n.state.toolCallId);if(a){let l=this._stateManager.getActiveTurnId(a);l&&this._handleToolReady(n,a,l,e);return}}let s=this._stateManager.getActiveTurnId(r);if(s){this._dispatchActionForSession(n,r,s,e);return}n.kind==="action"&&n.action.type==="session/turnComplete"&&this._runTurnCompleteSideEffects(r,void 0)}_dispatchActionForSession(e,n,r,o){if(e.kind==="pending_confirmation"){o&&this._handleToolReady(e,n,r,o);return}if(e.kind!=="action")return;let s=e.action;if(qr(s)&&s.session!==n&&(s={...s,session:n}),ke(s,{turnId:!0})&&s.turnId!==r&&(s={...s,turnId:r}),s.type==="session/toolCallComplete"){let a=`${n}:${s.toolCallId}`;if(this._subagentSessions.get(a)){let c=this._stateManager.getSessionState(n),d=this._getRunningToolCallContent(c,r,s.toolCallId).find(f=>ke(f,{type:!0})&&f.type==="subagent");if(d){let f=[...s.result.content??[],d];s={...s,result:{...s.result,content:f}}}}}this._stateManager.dispatchServerAction(s),s.type==="session/toolCallComplete"&&(this._pendingSubagentSignals.delete(`${n}:${s.toolCallId}`),vy(s.result).length>0&&this._scheduleDebouncedDiffComputation(n,r)),s.type==="session/turnComplete"&&this._runTurnCompleteSideEffects(n,r)}_runTurnCompleteSideEffects(e,n){this._cancelDebouncedDiffComputation(e),this._computeSessionDiffs(e,n),this._tryConsumeNextQueuedMessage(e),this._options.onTurnComplete(e)}_describeSignal(e){return e.kind==="action"?`action(${e.action.type})`:e.kind}_drainPendingSubagentSignals(e,n){let r=`${e}:${n}`,o=this._pendingSubagentSignals.get(r);if(o){this._pendingSubagentSignals.delete(r),this._logService.trace(`[AgentSideEffects] Draining ${o.length} buffered signal(s) for subagent ${r}`);for(let{signal:s,agent:a}of o)this._handleAgentSignal(a,s)}}_handleSubagentStarted(e,n,r,o,s){let a=Hi(e,n),l=`${e}:${n}`;if(this._subagentSessions.has(l))return;this._logService.info(`[AgentSideEffects] Creating subagent session: ${a} (parent=${e}, toolCallId=${n})`);let c=this._stateManager.getSessionState(e);this._stateManager.restoreSession({resource:a,provider:"subagent",title:o,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...c?.summary.project?{project:c.summary.project}:{}},[]);let u=H();this._stateManager.dispatchServerAction({type:"session/turnStarted",session:a,turnId:u,userMessage:{text:""}}),this._subagentSessions.set(l,a);let d=this._stateManager.getActiveTurnId(e);if(d){let f=this._stateManager.getSessionState(e),h=[...this._getRunningToolCallContent(f,d,n),{type:"subagent",resource:a,title:o,agentName:r,description:s}];this._stateManager.dispatchServerAction({type:"session/toolCallContentChanged",session:e,turnId:d,toolCallId:n,content:h})}}_getRunningToolCallContent(e,n,r){if(!e?.activeTurn||e.activeTurn.id!==n)return[];for(let o of e.activeTurn.responseParts)if(o.kind==="toolCall"&&o.toolCall.toolCallId===r&&o.toolCall.status==="running")return o.toolCall.content?[...o.toolCall.content]:[];return[]}cancelSubagentSessions(e){for(let[n,r]of this._subagentSessions)if(n.startsWith(`${e}:`)){let o=this._stateManager.getActiveTurnId(r);o&&this._stateManager.dispatchServerAction({type:"session/turnCancelled",session:r,turnId:o}),this._subagentSessions.delete(n)}for(let n of[...this._pendingSubagentSignals.keys()])n.startsWith(`${e}:`)&&this._pendingSubagentSignals.delete(n)}completeSubagentSession(e,n){let r=`${e}:${n}`;this._pendingSubagentSignals.delete(r);let o=this._subagentSessions.get(r);if(!o)return;let s=this._stateManager.getActiveTurnId(o);s&&this._stateManager.dispatchServerAction({type:"session/turnComplete",session:o,turnId:s}),this._subagentSessions.delete(r)}removeSubagentSessions(e){let n=[];for(let[o,s]of this._subagentSessions)o.startsWith(`${e}:`)&&(this._stateManager.removeSession(s),n.push(o));for(let o of n)this._subagentSessions.delete(o);let r=`${e}/subagent/`;for(let o of this._stateManager.getSessionUrisWithPrefix(r))this._stateManager.removeSession(o);for(let o of[...this._pendingSubagentSignals.keys()])o.startsWith(`${e}:`)&&this._pendingSubagentSignals.delete(o)}_findSubagentSessionForToolCall(e,n){let r=`${e}:`;for(let[o,s]of this._subagentSessions)if(o.startsWith(r)&&this._toolCallAgents.has(`${s}:${n}`))return s}_handleToolReady(e,n,r,o){let s={toolCallId:e.state.toolCallId,session:e.session,permissionKind:e.permissionKind,permissionPath:e.permissionPath,toolInput:e.state.toolInput},a=this._permissionManager.getAutoApproval(s,n),l=e;a!==void 0&&(this._toolCallAgents.delete(`${n}:${e.state.toolCallId}`),o.respondToPermissionRequest(e.state.toolCallId,!0),l={...e,state:{...e.state,confirmationTitle:void 0}}),this._stateManager.dispatchServerAction(this._permissionManager.createToolReadyAction(l,n,r))}handleAction(e){switch(e.type){case"session/turnStarted":{let n=this._stateManager.getSessionState(e.session),r=e.userMessage.text.trim().replace(/\s+/g," ").slice(0,200);n&&n.turns.length===0&&!n.summary.title&&r.length>0&&this._stateManager.dispatchServerAction({type:"session/titleChanged",session:e.session,title:r});let o=this._options.getAgent(e.session);if(!o){this._stateManager.dispatchServerAction({type:"session/error",session:e.session,turnId:e.turnId,error:{errorType:"noAgent",message:"No agent found for session"}});return}let s=e.userMessage.attachments;this._telemetryReporter.userMessageSent(o.id,e.session,n,"direct",s),o.sendMessage(y.parse(e.session),e.userMessage.text,s,e.turnId).catch(a=>{let l=a?.code;this._logService.error(`[AgentSideEffects] sendMessage failed for session=${e.session}: code=${l}, message=${a instanceof Error?a.message:String(a)}, type=${a?.constructor?.name}`,a),this._stateManager.dispatchServerAction({type:"session/error",session:e.session,turnId:e.turnId,error:{errorType:"sendFailed",message:String(a)}})});break}case"session/toolCallConfirmed":{let n=`${e.session}:${e.toolCallId}`,r=this._toolCallAgents.get(n);r?(this._toolCallAgents.delete(n),this._options.agents.get().find(s=>s.id===r)?.respondToPermissionRequest(e.toolCallId,e.approved)):this._logService.warn(`[AgentSideEffects] No agent for tool call confirmation: ${e.toolCallId}`),e.approved&&this._permissionManager.handleToolCallConfirmed(e.session,e.toolCallId,e.selectedOptionId);break}case"session/inputCompleted":{this._options.getAgent(e.session)?.respondToUserInputRequest(e.requestId,e.response,e.answers);break}case"session/turnCancelled":{this.cancelSubagentSessions(e.session),this._options.getAgent(e.session)?.abortSession(y.parse(e.session)).catch(r=>{this._logService.error("[AgentSideEffects] abortSession failed",r)});break}case"session/modelChanged":{this._options.getAgent(e.session)?.changeModel?.(y.parse(e.session),e.model).catch(r=>{this._logService.error("[AgentSideEffects] changeModel failed",r)});break}case"session/titleChanged":{this._persistSessionFlag(e.session,"customTitle",e.title);break}case"session/pendingMessageSet":case"session/pendingMessageRemoved":case"session/queuedMessagesReordered":{this._syncPendingMessages(e.session);break}case"session/truncated":{this._options.getAgent(e.session)?.truncateSession?.(y.parse(e.session),e.turnId).catch(r=>{this._logService.error("[AgentSideEffects] truncateSession failed",r)}),this._computeSessionDiffs(e.session);break}case"session/activeClientChanged":{let n=this._options.getAgent(e.session);if(!n)break;let r=e.activeClient?.clientId??"";n.setClientTools(y.parse(e.session),r,e.activeClient?.tools??[]);let o=e.activeClient?.customizations??[];n.setClientCustomizations(r,o,()=>{this._publishSessionCustomizationsSoon(n,e.session)}).then(()=>{this._publishSessionCustomizationsSoon(n,e.session)}).catch(s=>{this._logService.error("[AgentSideEffects] setClientCustomizations failed",s)});break}case"root/configChanged":{pc(this._telemetryService,e.config),this._publishAgentInfos(this._options.agents.get()),this._publishAllSessionCustomizations();break}case"session/activeClientToolsChanged":{let n=this._options.getAgent(e.session);if(n){let o=this._stateManager.getSessionState(e.session)?.activeClient?.clientId;o&&n.setClientTools(y.parse(e.session),o,e.tools)}break}case"session/customizationToggled":{this._options.getAgent(e.session)?.setCustomizationEnabled?.(e.uri,e.enabled);break}case"session/isReadChanged":{this._persistSessionFlag(e.session,"isRead",e.isRead?"true":"");break}case"session/isArchivedChanged":{this._persistSessionFlag(e.session,"isArchived",e.isArchived?"true":""),this._options.getAgent(e.session)?.onArchivedChanged?.(y.parse(e.session),e.isArchived).catch(r=>{this._logService.warn(`[AgentSideEffects] onArchivedChanged failed for ${e.session}`,r)});break}case"session/configChanged":{let r=this._stateManager.getSessionState(e.session)?.config?.values;r&&this._persistSessionFlag(e.session,"configValues",JSON.stringify(r));break}case"session/toolCallComplete":{this._options.getAgent(e.session)?.onClientToolCallComplete(y.parse(e.session),e.toolCallId,e.result);break}}}_persistSessionFlag(e,n,r){let o=this._options.sessionDataService.openDatabase(y.parse(e));o.object.setMetadata(n,r).catch(s=>{this._logService.warn(`[AgentSideEffects] Failed to persist ${n}`,s)}).finally(()=>{o.dispose()})}_syncPendingMessages(e){let n=this._stateManager.getSessionState(e);if(!n)return;this._options.getAgent(e)?.setPendingMessages?.(y.parse(e),n.steeringMessage,[]),this._tryConsumeNextQueuedMessage(e)}_tryConsumeNextQueuedMessage(e){if(this._stateManager.getActiveTurnId(e))return;let n=this._stateManager.getSessionState(e);if(!n?.queuedMessages?.length)return;let r=n.queuedMessages[0],o=H();this._stateManager.dispatchServerAction({type:"session/turnStarted",session:e,turnId:o,userMessage:r.userMessage,queuedMessageId:r.id});let s=this._options.getAgent(e);if(!s){this._stateManager.dispatchServerAction({type:"session/error",session:e,turnId:o,error:{errorType:"noAgent",message:"No agent found for session"}});return}let a=r.userMessage.attachments;this._telemetryReporter.userMessageSent(s.id,e,this._stateManager.getSessionState(e),"queued",a),s.sendMessage(y.parse(e),r.userMessage.text,a,o).catch(l=>{this._logService.error("[AgentSideEffects] sendMessage failed (queued)",l),this._stateManager.dispatchServerAction({type:"session/error",session:e,turnId:o,error:{errorType:"sendFailed",message:String(l)}})})}_scheduleDebouncedDiffComputation(e,n){this._debouncedDiffTimers.set(e,za(()=>{this._debouncedDiffTimers.deleteAndDispose(e),this._computeSessionDiffs(e,n)},mr._DIFF_DEBOUNCE_MS))}_cancelDebouncedDiffComputation(e){this._debouncedDiffTimers.deleteAndDispose(e)}_computeSessionDiffs(e,n){this._diffComputationSequencer.queue(e,()=>this._doComputeSessionDiffs(e,n))}async _doComputeSessionDiffs(e,n){let r;try{r=this._options.sessionDataService.openDatabase(y.parse(e))}catch(o){this._logService.warn(`[AgentSideEffects] Failed to open session database for diff computation: ${e}`,o);return}try{let o=await this._tryComputeGitDiffs(e,r.object);if(!o){let s;if(n){let a=this._stateManager.getSessionState(e)?.summary.diffs;a&&(s={changedTurnId:n,previousDiffs:a})}o=await By(e,r.object,this._diffComputeService,s)}this._stateManager.dispatchServerAction({type:"session/diffsChanged",session:e,diffs:[...o]}),r.object.setMetadata("diffs",JSON.stringify(o)).catch(s=>{this._logService.warn("[AgentSideEffects] Failed to persist session diffs",s)})}catch(o){this._logService.warn("[AgentSideEffects] Failed to compute session diffs",o)}finally{r.dispose()}}async _tryComputeGitDiffs(e,n){let r=this._stateManager.getSessionState(e)?.summary.workingDirectory;if(!r)return;let o;try{o=y.parse(r)}catch{return}let s=await n.getMetadata(Ol)??void 0;try{return await this._gitService.computeSessionFileDiffs(o,{sessionUri:e,baseBranch:s})}catch(a){this._logService.warn("[AgentSideEffects] git-driven diff computation failed; falling back to edit-tracker",a);return}}dispose(){this._toolCallAgents.clear(),super.dispose()}};mr=R([T(2,Ve),T(3,V),T(4,ln),T(5,zi)],mr);import*as Jr from"fs";import{userInfo as UC}from"os";import*as Xp from"os";var Nv=/^\d+$/,kC=/^Microsoft.PowerShell_.*/,AC=/^Microsoft.PowerShellPreview_.*/;var zs;switch(process.arch){case"ia32":zs=1;break;case"arm":case"arm64":zs=2;break;default:zs=0;break}var so;process.env.PROCESSOR_ARCHITEW6432?so=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?so=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?so=1:so=0;var Gr=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await ct.existsFile(this.exePath)),this.knownToExist}};function DC({useAlternateBitness:i=!1}={}){return i?zs===0?process.env["ProgramFiles(x86)"]||null:so===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function mc({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=DC({useAlternateBitness:i});if(!e)return null;let n=B(e,"PowerShell");if(!await ct.existsDirectory(n))return null;let r=-1,o=null;for(let l of await Ie.readdir(n)){let c=-1;if(t){let d=l.indexOf("-");if(d<0)continue;let f=l.substring(0,d);if(!Nv.test(f)||l.substring(d+1)!=="preview")continue;c=parseInt(f,10)}else{if(!Nv.test(l))continue;c=parseInt(l,10)}if(c<=r)continue;let u=B(n,l,"pwsh.exe");await ct.existsFile(u)&&(o=u,r=c)}if(!o)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new Gr(o,`PowerShell${a}${s}`,!0)}async function Fv({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=B(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await ct.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=i?{pwshMsixDirRegex:AC,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:kC,pwshMsixName:"PowerShell (Store)"};for(let r of await Ie.readdir(t))if(e.test(r)){let o=B(t,r,"pwsh.exe");return new Gr(o,n)}return null}function OC(){let i=B(Xp.homedir(),".dotnet","tools","pwsh.exe");return new Gr(i,".NET Core PowerShell Global Tool")}function LC(){let i=B(Xp.homedir(),"scoop","apps"),t=B(i,"pwsh","current","pwsh.exe");return new Gr(t,"PowerShell (Scoop)")}function MC(){let i=B(process.env.windir,zs===1&&so!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new Gr(i,"Windows PowerShell",!0)}async function*NC(){let i=await mc();i&&(yield i),i=await mc({useAlternateBitness:!0}),i&&(yield i),i=await Fv(),i&&(yield i),i=OC(),i&&(yield i),i=await mc({findPreview:!0}),i&&(yield i),i=await Fv({findPreview:!0}),i&&(yield i),i=await mc({useAlternateBitness:!0,findPreview:!0}),i&&(yield i),i=await LC(),i&&(yield i),i=MC(),i&&(yield i)}async function*FC(){for await(let i of NC())await i.exists()&&(yield i)}async function Uv(){for await(let i of FC())return i;return null}async function Vv(i,t){return i===1?q?WC():hh(t):VC(i,t)}var Zp=null;function VC(i,t){if(Se&&i===2||Be&&i===3)return"/bin/bash";if(!Zp){let e;if(q)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=UC().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}Zp=e}return Zp}var ef=null;async function WC(){return ef||(ef=(await Uv()).exePath),ef}import*as ao from"os";var O6=z("ptyService");var $C={Backend:"workbench.contributions.terminal.processBackend"},tf=class{constructor(){this._backends=new Map}get backends(){return this._backends}registerTerminalBackend(t){let e=this._sanitizeRemoteAuthority(t.remoteAuthority);if(this._backends.has(e))throw new Error(`A terminal backend with remote authority '${e}' was already registered.`);this._backends.set(e,t)}getTerminalBackend(t){return this._backends.get(this._sanitizeRemoteAuthority(t))}_sanitizeRemoteAuthority(t){return t?.toLowerCase()??""}};Ze.add($C.Backend,new tf);var L6=z("localPtyService"),M6=z("terminalLogService");function BC(i){return new Map(i)}function qC(i){return new Map(i??[])}function Wv(i){return new Map(i.map(t=>[t[0],{map:BC(t[1]),descriptionMap:qC(t[2])}]))}var zC=new Map([[2,"APPEND"],[3,"PREPEND"],[1,"REPLACE"]]),jC=/^VSCODE_PYTHON_(PWSH|ZSH|BASH|FISH)_ACTIVATE/,KC="ms-python.vscode-python-envs",gc=class{constructor(t){this.collections=t;this.map=new Map;this.descriptionMap=new Map;t.forEach((e,n)=>{this.populateDescriptionMap(e,n);let r=e.map.entries(),o=r.next();for(;!o.done;){let s=o.value[1],a=o.value[0];if(this.blockPythonActivationVar(a,n)){o=r.next();continue}let l=this.map.get(a);if(l||(l=[],this.map.set(a,l)),l.length>0&&l[0].type===1){o=r.next();continue}let c={extensionIdentifier:n,value:s.value,type:s.type,scope:s.scope,variable:s.variable,options:s.options};c.scope||delete c.scope,l.unshift(c),o=r.next()}})}async applyToProcessEnvironment(t,e,n){let r;q&&(r={},Object.keys(t).forEach(o=>r[o.toLowerCase()]=o));for(let[o,s]of this.getVariableMap(e)){let a=q&&r[o.toLowerCase()]||o;for(let l of s){let c=n?await n(l.value):l.value;if(!this.blockPythonActivationVar(l.variable,l.extensionIdentifier)){if(l.options?.applyAtProcessCreation??!0)switch(l.type){case 2:t[a]=(t[a]||"")+c;break;case 3:t[a]=c+(t[a]||"");break;case 1:t[a]=c;break}if(l.options?.applyAtShellIntegration??!1){let u=`VSCODE_ENV_${zC.get(l.type)}`;t[u]=(t[u]?t[u]+":":"")+o+"="+this._encodeColons(c)}}}}}_encodeColons(t){return t.replaceAll(":","\\x3a")}blockPythonActivationVar(t,e){return!!(jC.test(t)&&KC!==e)}diff(t,e){let n=new Map,r=new Map,o=new Map;if(t.getVariableMap(e).forEach((s,a)=>{let l=this.getVariableMap(e).get(a),c=Bv(s,l);c&&n.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=Bv(s,l);c&&o.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=GC(s,l);c&&r.set(a,c)}),!(n.size===0&&r.size===0&&o.size===0))return{added:n,changed:r,removed:o}}getVariableMap(t){let e=new Map;for(let n of this.map.values()){let r=n.filter(o=>$v(o,t));r.length>0&&e.set(r[0].variable,r)}return e}getDescriptionMap(t){let e=new Map;for(let n of this.descriptionMap.values()){let r=n.filter(o=>$v(o,t,!0));for(let o of r)e.set(o.extensionIdentifier,o.description)}return e}populateDescriptionMap(t,e){if(!t.descriptionMap)return;let n=t.descriptionMap.entries(),r=n.next();for(;!r.done;){let o=r.value[1],s=r.value[0],a=this.descriptionMap.get(s);a||(a=[],this.descriptionMap.set(s,a));let l={extensionIdentifier:e,scope:o.scope,description:o.description};l.scope||delete l.scope,a.push(l),r=n.next()}}};function $v(i,t,e=!1){return i.scope?!!(i.scope.workspaceFolder&&t?.workspaceFolder&&i.scope.workspaceFolder.index===t.workspaceFolder.index):e?t===i.scope:!0}function Bv(i,t){if(!t)return i;let e=new Set;t.forEach(r=>e.add(r.extensionIdentifier));let n=[];return i.forEach(r=>{e.has(r.extensionIdentifier)||n.push(r)}),n.length===0?void 0:n}function GC(i,t){if(!t)return;let e=new Map;t.forEach(r=>e.set(r.extensionIdentifier,r));let n=[];return i.forEach(r=>{let o=e.get(r.extensionIdentifier);o&&(r.type!==o.type||r.value!==o.value||r.scope?.workspaceFolder?.index!==o.scope?.workspaceFolder?.index)&&n.push(o)}),n.length===0?void 0:n}import{chmod as Hv,realpathSync as YC,mkdirSync as XC}from"fs";import{promisify as zv}from"util";import*as hc from"os";var js;async function JC(){if(js)return;if(!q){js={release:hc.release(),buildNumber:0};return}let i,t;try{let e=await import("@vscode/windows-registry"),n="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",r=e.GetStringRegKey("HKEY_LOCAL_MACHINE",n,"CurrentBuild");r!==void 0&&(i=parseInt(r,10),isNaN(i)&&(i=void 0));let o=e.GetDWORDRegKey("HKEY_LOCAL_MACHINE",n,"CurrentMajorVersionNumber"),s=e.GetDWORDRegKey("HKEY_LOCAL_MACHINE",n,"CurrentMinorVersionNumber");o!==void 0&&s!==void 0&&r!==void 0&&(t=`${o}.${s}.${r}`)}catch{}finally{js={release:t||hc.release(),buildNumber:i||QC()}}}async function qv(){return js||await JC(),js.buildNumber}function QC(){let i=/(\d+)\.(\d+)\.(\d+)/g.exec(hc.release());return i&&i.length===4?parseInt(i[3],10):0}async function Jv(i,t,e,n,r,o=!1){if(!t.shellIntegration.enabled)return{type:"failure",reason:"injectionSettingDisabled"};if(!i.executable)return{type:"failure",reason:"noExecutable"};if(i.isFeatureTerminal&&!i.forceShellIntegration)return{type:"failure",reason:"featureTerminal"};if(i.ignoreShellIntegration)return{type:"failure",reason:"ignoreShellIntegrationFlag"};let s=q?await qv():0;if(q&&s<18309)return{type:"failure",reason:"unsupportedWindowsBuild"};let a=i.args,l=ui==="win32"?ge(i.executable).toLowerCase():ge(i.executable),c=ce(it.asFileUri("").fsPath),u="injection",d,f={VSCODE_INJECTION:"1"};t.shellIntegration.nonce&&(f.VSCODE_NONCE=t.shellIntegration.nonce);let g=["PATH","VIRTUAL_ENV","HOME","SHELL","PWD"];if(i.shellIntegrationEnvironmentReporting&&(q?(t.windowsUseConptyDll||s>=22631&&l!=="bash.exe")&&(f.VSCODE_SHELL_ENV_REPORTING=g.join(",")):f.VSCODE_SHELL_ENV_REPORTING=g.join(",")),q)return l==="pwsh.exe"||l==="powershell.exe"?(f.VSCODE_A11Y_MODE=t.isScreenReaderOptimized?"1":"0",!a||Gv(a)?d=Re.get("windows-pwsh"):Kv(a)&&(d=Re.get("windows-pwsh-login")),d?(d=[...d],d[d.length-1]=Pr(d[d.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):l==="bash.exe"?(!a||a.length===0?d=Re.get("bash"):bc(a)&&(f.VSCODE_SHELL_LOGIN="1",yc(t,f,l),d=Re.get("bash")),d?(d=[...d],d[d.length-1]=Pr(d[d.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):(n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"});switch(l){case"bash":return!a||a.length===0?d=Re.get("bash"):bc(a)&&(f.VSCODE_SHELL_LOGIN="1",yc(t,f,l),d=Re.get("bash")),d?(d=[...d],d[d.length-1]=Pr(d[d.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"fish":return!a||a.length===0?d=Re.get("fish"):bc(a)?d=Re.get("fish-login"):(a===Re.get("fish")||a===Re.get("fish-login"))&&(d=a),d?(yc(t,f,l),d=[...d],d[d.length-1]=Pr(d[d.length-1],c),{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"pwsh":return!a||Gv(a)?d=Re.get("pwsh"):Kv(a)&&(d=Re.get("pwsh-login")),d?(d=[...d],d[d.length-1]=Pr(d[d.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"zsh":{if(!a||a.length===0?d=Re.get("zsh"):bc(a)?(d=Re.get("zsh-login"),yc(t,f,l)):(a===Re.get("zsh")||a===Re.get("zsh-login"))&&(d=a),!d)return{type:"failure",reason:"unsupportedArgs"};d=[...d],d[d.length-1]=Pr(d[d.length-1],c);let h;try{h=ao.userInfo().username}catch{h="unknown"}let v=YC(ao.tmpdir()),S=B(v,`${h}-${r.applicationName}-zsh`);if(!o)try{await zv(Hv)(S,960)}catch(b){if(b.message.includes("ENOENT")){try{XC(S)}catch(w){return n.error(`Failed to create zdotdir at ${S}: ${w}`),{type:"failure",reason:"failedToCreateTmpDir"}}try{await zv(Hv)(S,960)}catch{return n.error(`Failed to set sticky bit on ${S}: ${b}`),{type:"failure",reason:"failedToSetStickyBit"}}}return n.error(`Failed to set sticky bit on ${S}: ${b}`),{type:"failure",reason:"failedToSetStickyBit"}}f.ZDOTDIR=S;let _=e?.ZDOTDIR??ao.homedir()??"~";f.USER_ZDOTDIR=_;let I=[];return I.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh"),dest:B(S,".zshrc")}),I.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh"),dest:B(S,".zprofile")}),I.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh"),dest:B(S,".zshenv")}),I.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh"),dest:B(S,".zlogin")}),{type:u,newArgs:d,envMixin:f,filesToCopy:I}}}return n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"}}function yc(i,t,e){if((Be||e==="fish")&&i.environmentVariableCollections){let n=Wv(i.environmentVariableCollections),o=new gc(n).getVariableMap({workspaceFolder:i.workspaceFolder}).get("PATH"),s=[];if(o)for(let a of o)a.type===3&&s.push(a.value);s.length>0&&(t.VSCODE_PATH_PREFIX=s.join(""))}}var Re=new Map;Re.set("windows-pwsh",["-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);Re.set("windows-pwsh-login",["-l","-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);Re.set("pwsh",["-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"{1}']);Re.set("pwsh-login",["-l","-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"']);Re.set("zsh",["-i"]);Re.set("zsh-login",["-il"]);Re.set("bash",["--init-file","{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh"]);Re.set("fish",["--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);Re.set("fish-login",["-l","--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);var vc=["-login","-l"],jv=["--login","-l"],ZC=["-i","--interactive"],Sc=["-nol","-nologo"];function Kv(i){return Ee(i)?vc.includes(i.toLowerCase()):i.length===1&&vc.includes(i[0].toLowerCase())||i.length===2&&(vc.includes(i[0].toLowerCase())||vc.includes(i[1].toLowerCase()))&&(Sc.includes(i[0].toLowerCase())||Sc.includes(i[1].toLowerCase()))}function Gv(i){return Ee(i)?Sc.includes(i.toLowerCase()):i.length===0||i?.length===1&&Sc.includes(i[0].toLowerCase())}function bc(i){return Ee(i)||(i=i.filter(t=>!ZC.includes(t.toLowerCase()))),Ee(i)&&jv.includes(i.toLowerCase())||!Ee(i)&&i.length===1&&jv.includes(i[0].toLowerCase())}import e0 from"@xterm/headless";var{Terminal:t0}=e0,Ic=class extends C{constructor(e){super();this._onResponseData=this._register(new x);this.onResponseData=this._onResponseData.event;this._writeBarrier=Promise.resolve();this._isDisposed=!1;this._logService=e.logService;let n={cols:e.cols,rows:e.rows,scrollback:e.scrollback,allowProposedApi:!0};this._terminal=e.terminalFactory?.(n)??new t0(n),this._register(this._terminal.onData(r=>{this._isCursorPositionReportResponse(r)?(this._logService.debug(`[AgentHostHeadlessTerminal] Forwarding terminal response ${JSON.stringify(r)}`),this._onResponseData.fire(r)):this._logService.debug(`[AgentHostHeadlessTerminal] Dropping terminal response ${JSON.stringify(r)}`)})),this._register({dispose:()=>{this._isDisposed=!0,this._terminal.dispose()}})}writePtyData(e){return this._writeBarrier=this._writeBarrier.catch(()=>{}).then(()=>{if(!this._isDisposed)return new Promise(n=>{try{this._terminal.write(e,n)}catch{n()}})}),this._writeBarrier}whenPtyDataFlushed(){return this._writeBarrier.catch(()=>{})}resize(e,n){this._terminal.resize(e,n)}isBracketedPasteMode(){return this._terminal.modes.bracketedPasteMode}isInAltBuffer(){return this._terminal.buffer.active===this._terminal.buffer.alternate}createAltBufferPromise(e){let n=new pe,r=()=>{n.isSettled||(this._logService.debug("[AgentHostHeadlessTerminal] Detected alternate buffer entry"),n.complete())};return this.isInAltBuffer()?r():e.add(this._terminal.buffer.onBufferChange(()=>{this.isInAltBuffer()&&r()})),n.p}clear(){this.writePtyData("\x1B[2J\x1B[3J\x1B[H")}dispose(){this._isDisposed=!0,super.dispose()}_isCursorPositionReportResponse(e){return/^(?:\x1b\[\??\d+;\d+R)+$/.test(e)}};function _c(i){return zt===1?/^zsh(?:\.exe)?$/i.test(Ce.basename(i)):/^zsh$/.test(ee.basename(i))}function Qv(i){return i.indexOf("\\")===-1?i:i.replaceAll(/\\(\\|x([0-9a-f]{2}))/gi,(t,e,n)=>n?String.fromCharCode(parseInt(n,16)):e)}function n0(i){let t=i.indexOf(";");if((t===-1?i.length:t)!==1)return;let e=i[0],n=t===-1?"":i.substring(t+1);switch(e){case"A":return{type:0};case"B":return{type:1};case"C":return{type:2};case"D":{let r=n.length>0?parseInt(n,10):void 0;return{type:3,exitCode:r!==void 0&&!isNaN(r)?r:void 0}}case"E":{let r=n.indexOf(";"),o=Qv(r===-1?n:n.substring(0,r)),s=r===-1?void 0:n.substring(r+1);return{type:4,commandLine:o,nonce:s}}case"P":{let r=Qv(n),o=r.indexOf("=");return o===-1?void 0:{type:5,key:r.substring(0,o),value:r.substring(o+1)}}default:return}}var of="\x1B",nf=of+"]",rf="\x07",Yv=of+"\\",Tc=class{constructor(){this._pendingOsc="";this._inOsc=!1;this._pendingEscInOsc=!1}parse(t){let e=[];if(!this._inOsc&&t.indexOf(nf)===-1)return{cleanedData:t,events:e};let n="",r=0;for(;r<t.length;){if(this._inOsc){if(this._pendingEscInOsc){if(this._pendingEscInOsc=!1,t[r]==="\\"){r++,this._inOsc=!1;let c=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(c,e,{value:n,append(u){n=u}},Yv);continue}this._inOsc=!1;let l=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(l,e,{value:n,append(c){n=c}});continue}let a=this._consumeOscBody(t,r);if(r=a.nextIndex,a.complete){this._inOsc=!1;let l=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(l,e,{value:n,append(c){n=c}},a.terminator)}else a.pendingEsc&&(this._pendingEscInOsc=!0);continue}let o=t.indexOf(nf,r);if(o===-1){n+=t.substring(r),r=t.length;continue}n+=t.substring(r,o),r=o+2,this._pendingOsc="",this._inOsc=!0;let s=this._consumeOscBody(t,r);if(r=s.nextIndex,s.complete){this._inOsc=!1;let a=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(a,e,{value:n,append(l){n=l}},s.terminator)}else s.pendingEsc&&(this._pendingEscInOsc=!0)}return{cleanedData:n,events:e}}_consumeOscBody(t,e){let n=t.indexOf(rf,e),r=t.indexOf(of,e);return n!==-1&&(r===-1||n<r)?(this._pendingOsc+=t.substring(e,n),{nextIndex:n+1,complete:!0,terminator:rf}):r!==-1?r+1>=t.length?(this._pendingOsc+=t.substring(e,r),{nextIndex:t.length,complete:!1,pendingEsc:!0}):(this._pendingOsc+=t.substring(e,r),t[r+1]==="\\"?{nextIndex:r+2,complete:!0,terminator:Yv}:{nextIndex:r,complete:!0}):(this._pendingOsc+=t.substring(e),{nextIndex:t.length,complete:!1})}_handleOscPayload(t,e,n,r=rf){if(t.startsWith("633;")){let o=t.substring(4),s=n0(o);s&&e.push(s)}else n&&n.append(n.value+nf+t+r)}};var i0=1e4,o0=0,sf="\x1B[6n",af="\x1B[?6n",s0=["\x1B[?6","\x1B[?","\x1B[6","\x1B[","\x1B"],co=z("agentHostTerminalManager");function a0(i,t){if(!t.pendingData&&!i.includes(sf)&&!i.includes(af)&&!Xv(i))return i;let e=t.pendingData+i,n=Xv(e),r=n?e.substring(0,e.length-n.length):e;return t.pendingData=n,!r.includes(sf)&&!r.includes(af)?r:r.replaceAll(af,"").replaceAll(sf,"")}function Xv(i){for(let t of s0)if(i.endsWith(t))return t;return""}function l0(i,t){return t.forceBracketedPasteMode&&(i=`\x1B[200~${i}\x1B[201~`),i=i.replace(/\r?\n/g,"\r"),t.shouldExecute&&!i.endsWith("\r")&&(i+="\r"),i}var lf;async function c0(){return lf||(lf=await import("node-pty")),lf}var lo=class extends C{constructor(e,n,r,o){super();this._stateManager=e;this._logService=n;this._productService=r;this._configurationService=o;this._terminals=new Map;this._register(this._stateManager.onDidEmitEnvelope(s=>{let a=s.action;if(Ms(a))switch(a.type){case"terminal/input":this._writeInput(a.terminal,a.data);break;case"terminal/resized":this._resize(a.terminal,a.cols,a.rows);break;case"terminal/claimed":this._setClaim(a.terminal,a.claim);break;case"terminal/titleChanged":this._setTitle(a.terminal,a.title);break;case"terminal/cleared":this._clearContent(a.terminal);break}}))}getTerminalInfos(){return[...this._terminals.values()].map(e=>({resource:e.uri,title:e.title,claim:e.claim,exitCode:e.exitCode}))}getTerminalState(e){let n=this._terminals.get(e);if(n)return{title:n.title,cwd:n.cwd,cols:n.cols,rows:n.rows,content:n.content,exitCode:n.exitCode,claim:n.claim,supportsCommandDetection:n.commandTracker?.detectionAvailableEmitted}}async createTerminal(e,n){let r=e.terminal;if(this._terminals.has(r))throw new Error(`Terminal already exists: ${r}`);let o=await this._resolveCwd(e.cwd,r),s=e.cols??80,a=e.rows??24,l=n?.shell??await this.getDefaultShell(),c=q?"cmd":"xterm-256color";this._logService.info(`[TerminalManager] Creating terminal ${r}: shell=${l}, cwd=${o}, cols=${s}, rows=${a}`);let u=H(),d={...process.env};n?.preventShellHistory&&(d.VSCODE_PREVENT_SHELL_HISTORY="1"),e.claim?.kind==="session"&&_c(l)&&(d.VSCODE_AGENT_ZSH_FIXUPS="1"),n?.nonInteractive&&(d.LC_ALL="C.UTF-8",d.PAGER="",d.GIT_PAGER="",d.GH_PAGER="",d.GIT_TERMINAL_PROMPT="0",d.DEBIAN_FRONTEND="noninteractive");let f=[];Be&&dg(l).name.match(/(zsh|bash)/)&&(f=["--login"]);let g=await Jv({executable:l,args:f,forceShellIntegration:!0},{shellIntegration:{enabled:!0,suggestEnabled:!1,nonce:u},windowsUseConptyDll:!1,environmentVariableCollections:void 0,workspaceFolder:void 0,isScreenReaderOptimized:!1},void 0,this._logService,this._productService),h;if(g.type==="injection"){if(this._logService.info(`[TerminalManager] Shell integration injected for ${r}`),g.envMixin)for(let[ue,Me]of Object.entries(g.envMixin))Me!==void 0&&(d[ue]=Me);if(g.newArgs&&(f=g.newArgs),g.filesToCopy)for(let ue of g.filesToCopy)try{await Jr.promises.mkdir(ce(ue.dest),{recursive:!0}),await Jr.promises.copyFile(ue.source,ue.dest)}catch{}h={parser:new Tc,nonce:u,commandCounter:0,detectionAvailableEmitted:!1}}else this._logService.info(`[TerminalManager] Shell integration not available for ${r}: ${g.reason}`);let v=await this._spawnPty(l,f,{name:c,cwd:o,env:d,cols:s,rows:a}),S=new $,_=e.claim??{kind:"client",clientId:""},I=S.add(new x),b=S.add(new x),w=S.add(new x),D=S.add(new x),re=S.add(new Ic({cols:s,rows:a,scrollback:o0,logService:this._logService})),k={uri:r,store:S,pty:v,onDataEmitter:I,onExitEmitter:b,onClaimChangedEmitter:w,onCommandFinishedEmitter:D,title:e.name??l,cwd:o,cols:s,rows:a,content:[],contentSize:0,claim:_,commandTracker:h,headlessTerminal:re,terminalQueryFilterState:{pendingData:""}};this._terminals.set(r,k),S.add(re.onResponseData(ue=>{this._logService.debug(`[TerminalManager] Writing headless terminal response for ${r}: ${JSON.stringify(ue)}`);try{v.write(ue)}catch(Me){this._logService.debug(`[TerminalManager] Failed to write headless terminal response for ${r}: ${Me instanceof Error?Me.message:String(Me)}`)}})),S.add(E(()=>{try{v.kill()}catch{}}));let O=new pe,M=v.onData(ue=>{k.headlessTerminal?.writePtyData(ue),this._handlePtyData(k,ue),O.complete()});S.add(E(()=>M.dispose()));let se=v.onExit(ue=>{k.exitCode=ue.exitCode,k.onExitEmitter.fire(ue.exitCode),O.complete(),this._stateManager.dispatchServerAction({type:"terminal/exited",terminal:r,exitCode:ue.exitCode}),this._broadcastTerminalList()});if(S.add(E(()=>se.dispose())),!q){let ue=setInterval(()=>{let Me=v.process;Me&&Me!==k.title&&(k.title=Me,this._stateManager.dispatchServerAction({type:"terminal/titleChanged",terminal:r,title:Me}),this._broadcastTerminalList())},200);S.add(E(()=>clearInterval(ue)))}await Bg([O.p,wn(i0)]),this._broadcastTerminalList()}async _spawnPty(e,n,r){return(await c0()).spawn(e,n,r)}_writeInput(e,n){this.writeInput(e,n)}writeInput(e,n){let r=this._terminals.get(e);r&&r.exitCode===void 0&&r.pty.write(n)}async sendText(e,n,r){let o=this._terminals.get(e),s=!1;r.bracketedPasteMode&&(await o?.headlessTerminal?.whenPtyDataFlushed(),s=!!o?.headlessTerminal?.isBracketedPasteMode()),this.writeInput(e,l0(n,{shouldExecute:r.shouldExecute,forceBracketedPasteMode:s}))}onData(e,n){let r=this._terminals.get(e);return r?r.onDataEmitter.event(n):E(()=>{})}onExit(e,n){let r=this._terminals.get(e);return r?r.onExitEmitter.event(n):E(()=>{})}onClaimChanged(e,n){let r=this._terminals.get(e);return r?r.onClaimChangedEmitter.event(n):E(()=>{})}onCommandFinished(e,n){let r=this._terminals.get(e);return r?r.onCommandFinishedEmitter.event(n):E(()=>{})}createAltBufferPromise(e,n){let r=this._terminals.get(e);return r?.headlessTerminal?r.headlessTerminal.createAltBufferPromise(n):new Promise(()=>{})}getContent(e){let n=this._terminals.get(e);if(n)return n.content.map(r=>r.type==="command"?r.output:r.value).join("")}getClaim(e){return this._terminals.get(e)?.claim}hasTerminal(e){return this._terminals.has(e)}supportsCommandDetection(e){return this._terminals.get(e)?.commandTracker?.detectionAvailableEmitted??!1}getExitCode(e){return this._terminals.get(e)?.exitCode}_resize(e,n,r){let o=this._terminals.get(e);o&&o.exitCode===void 0&&(o.cols=n,o.rows=r,o.pty.resize(n,r),o.headlessTerminal?.resize(n,r))}_setClaim(e,n){let r=this._terminals.get(e);r&&(r.claim=n,r.onClaimChangedEmitter.fire(n),this._broadcastTerminalList())}_setTitle(e,n){let r=this._terminals.get(e);r&&(r.title=n,this._broadcastTerminalList())}_clearContent(e){let n=this._terminals.get(e);n&&(n.content=[],n.contentSize=0,n.headlessTerminal?.clear())}_handlePtyData(e,n){let r=e.commandTracker,o;if(r){let s=r.parser.parse(n);o=s.cleanedData;for(let a of s.events)this._handleOsc633Event(e,r,a)}else o=n;o=a0(o,e.terminalQueryFilterState),o.length>0&&this._appendToContent(e,o),this._trimContent(e),o.length>0&&(e.onDataEmitter.fire(o),this._stateManager.dispatchServerAction({type:"terminal/data",terminal:e.uri,data:o}))}_handleOsc633Event(e,n,r){switch(n.detectionAvailableEmitted||(n.detectionAvailableEmitted=!0,this._stateManager.dispatchServerAction({type:"terminal/commandDetectionAvailable",terminal:e.uri})),r.type){case 4:{r.nonce===n.nonce&&(n.pendingCommandLine=r.commandLine);break}case 2:{let o=`cmd-${++n.commandCounter}`,s=n.pendingCommandLine??"",a=Date.now();n.pendingCommandLine=void 0,n.activeCommandId=o,n.activeCommandTimestamp=a,e.content.push({type:"command",commandId:o,commandLine:s,output:"",timestamp:a,isComplete:!1}),this._stateManager.dispatchServerAction({type:"terminal/commandExecuted",terminal:e.uri,commandId:o,commandLine:s,timestamp:a});break}case 3:{let o=n.activeCommandId;if(!o)break;let s=n.activeCommandTimestamp!==void 0?Date.now()-n.activeCommandTimestamp:void 0,a="",l="";for(let c of e.content)if(c.type==="command"&&c.commandId===o){c.isComplete=!0,c.exitCode=r.exitCode,c.durationMs=s,a=c.commandLine,l=c.output;break}n.activeCommandId=void 0,n.activeCommandTimestamp=void 0,e.onCommandFinishedEmitter.fire({commandId:o,exitCode:r.exitCode,command:a,output:l}),this._stateManager.dispatchServerAction({type:"terminal/commandFinished",terminal:e.uri,commandId:o,exitCode:r.exitCode,durationMs:s});break}case 5:{r.key==="Cwd"&&(e.cwd=r.value,this._stateManager.dispatchServerAction({type:"terminal/cwdChanged",terminal:e.uri,cwd:r.value}));break}}}_appendToContent(e,n){let r=e.content.length>0?e.content[e.content.length-1]:void 0;r?.type==="command"&&!r.isComplete?(r.output+=n,e.contentSize+=n.length):r?.type==="unclassified"?(r.value+=n,e.contentSize+=n.length):(e.content.push({type:"unclassified",value:n}),e.contentSize+=n.length)}_getContentPartSize(e){return e.type==="command"?e.output.length:e.value.length}_trimContent(e){if(!(e.contentSize<=1e5)){for(;e.contentSize>8e4&&e.content.length>1;){let o=e.content.shift();e.contentSize-=this._getContentPartSize(o)}if(e.contentSize>8e4&&e.content.length>0){let o=e.content[0],s=e.contentSize-8e4;o.type==="command"?o.output=o.output.slice(s):o.value=o.value.slice(s),e.contentSize-=s}}}disposeTerminal(e){let n=this._terminals.get(e);n&&(this._terminals.delete(e),n.store.dispose(),this._broadcastTerminalList())}async getDefaultShell(){let e=this._configurationService.getRootValue(ar,"defaultShell");if(e)try{return await Jr.promises.access(e,Jr.constants.X_OK),e}catch(n){this._logService.warn(`[TerminalManager] Configured defaultShell '${e}' is not accessible, falling back to system shell: ${n instanceof Error?n.message:String(n)}`)}return Vv(zt,process.env)}async _resolveCwd(e,n){let r=e;if(e){let s=y.parse(e);s.scheme==="file"&&s.fsPath&&s.fsPath!=="/"?r=s.fsPath:this._logService.warn(`[TerminalManager] Ignoring non-file cwd for ${n}: ${e}`)}try{if(r&&(await Jr.promises.stat(r)).isDirectory())return r}catch{}let o=process.env.HOME||process.env.USERPROFILE||process.cwd();return this._logService.warn(`[TerminalManager] cwd '${r}' is not accessible, falling back to ${o}`),o}_broadcastTerminalList(){this._stateManager.dispatchServerAction({type:"root/terminalsChanged",terminals:this.getTerminalInfos()})}dispose(){for(let e of this._terminals.values())e.store.dispose();this._terminals.clear(),super.dispose()}};lo=R([T(1,V),T(2,Ut),T(3,ut)],lo);var d0={"root/agentsChanged":!1,"root/activeSessionsChanged":!1,"root/terminalsChanged":!1,"root/configChanged":!0,"session/ready":!1,"session/creationFailed":!1,"session/turnStarted":!0,"session/delta":!1,"session/responsePart":!1,"session/toolCallStart":!1,"session/toolCallDelta":!1,"session/toolCallReady":!1,"session/toolCallConfirmed":!0,"session/toolCallComplete":!0,"session/toolCallResultConfirmed":!0,"session/toolCallContentChanged":!0,"session/turnComplete":!1,"session/turnCancelled":!0,"session/error":!1,"session/titleChanged":!0,"session/usage":!1,"session/reasoning":!1,"session/modelChanged":!0,"session/serverToolsChanged":!1,"session/activeClientChanged":!0,"session/activeClientToolsChanged":!0,"session/pendingMessageSet":!0,"session/pendingMessageRemoved":!0,"session/queuedMessagesReordered":!0,"session/inputRequested":!1,"session/inputAnswerChanged":!0,"session/inputCompleted":!0,"session/customizationsChanged":!1,"session/customizationToggled":!0,"session/truncated":!0,"session/isReadChanged":!0,"session/isArchivedChanged":!0,"session/activityChanged":!1,"session/diffsChanged":!1,"session/configChanged":!0,"session/metaChanged":!1,"terminal/data":!1,"terminal/input":!0,"terminal/resized":!0,"terminal/claimed":!0,"terminal/titleChanged":!0,"terminal/cwdChanged":!1,"terminal/exited":!1,"terminal/cleared":!0,"terminal/commandDetectionAvailable":!1,"terminal/commandExecuted":!1,"terminal/commandFinished":!1};function df(i,t){let e=`Unhandled action type: ${JSON.stringify(i)}`;(t??console.warn)(e)}function Ks(i){return{toolCallId:i.toolCallId,toolName:i.toolName,displayName:i.displayName,toolClientId:i.toolClientId,_meta:i._meta}}function u0(i,t){if(!(!t||!i))return i.find(e=>e.id===t)}function p0(i){return i.activeTurn?i.activeTurn.responseParts.some(t=>t.kind==="toolCall"&&(t.toolCall.status==="pending-confirmation"||t.toolCall.status==="pending-result-confirmation")):!1}var f0=31;function xc(i,t,e){return e?i|t:i&~t}function po(i,t){let e;return t?e=t:(i.inputRequests?.length??0)>0||p0(i)?e=24:i.activeTurn?e=8:e=1,i.summary.status&~f0|e}function Cc(i){let t=po(i);return t===i.summary.status?i:{...i,summary:{...i.summary,status:t}}}function cf(i,t,e,n,r){if(!i.activeTurn||i.activeTurn.id!==t)return i;let o=i.activeTurn,s=o.responseParts.map(c=>{if(c.kind!=="toolCall")return c;let u=c.toolCall;return u.status==="completed"||u.status==="cancelled"?c:{kind:"toolCall",toolCall:{status:"cancelled",...Ks(u),invocationMessage:u.status==="streaming"?u.invocationMessage??"":u.invocationMessage,toolInput:u.status==="streaming"?void 0:u.toolInput,reason:"skipped"}}}),a={id:o.id,userMessage:o.userMessage,responseParts:s,usage:o.usage,state:e,error:r},l={...i,turns:[...i.turns,a],activeTurn:void 0,summary:{...i.summary,modifiedAt:Date.now()}};return delete l.inputRequests,{...l,summary:{...l.summary,status:po(l,n)}}}function m0(i,t){let e=i.inputRequests??[],n=e.findIndex(s=>s.id===t.id),r=[...e];if(n>=0){let s=t.answers??r[n].answers;r[n]={...t,answers:s}}else r.push(t);let o={...i,inputRequests:r};return{...o,summary:{...o.summary,status:xc(po(o),32,!1),modifiedAt:Date.now()}}}function uo(i,t,e,n){let r=i.activeTurn;if(!r||r.id!==t)return i;let o=!1,s=r.responseParts.map(a=>{if(a.kind==="toolCall"&&a.toolCall.toolCallId===e){let l=n(a.toolCall);return l===a.toolCall?a:(o=!0,{...a,toolCall:l})}return a});return o?{...i,activeTurn:{...r,responseParts:s}}:i}function Zv(i,t,e,n){let r=i.activeTurn;if(!r||r.id!==t)return i;let o=!1,s=r.responseParts.map(a=>!o&&(a.kind==="toolCall"?a.toolCall.toolCallId:"id"in a?a.id:void 0)===e?(o=!0,n(a)):a);return o?{...i,activeTurn:{...r,responseParts:s}}:i}function uf(i,t,e){switch(t.type){case"root/agentsChanged":return{...i,agents:t.agents};case"root/activeSessionsChanged":return{...i,activeSessions:t.activeSessions};case"root/terminalsChanged":return{...i,terminals:t.terminals};case"root/configChanged":return i.config?{...i,config:{...i.config,values:t.replace?{...t.config}:{...i.config.values,...t.config}}}:i;default:return df(t,e),i}}function pf(i,t,e){switch(t.type){case"session/ready":return{...i,lifecycle:"ready",summary:{...i.summary,status:1}};case"session/creationFailed":return{...i,lifecycle:"creationFailed",creationError:t.error};case"session/turnStarted":{let n={...i,activeTurn:{id:t.turnId,userMessage:t.userMessage,responseParts:[],usage:void 0}};if(n={...n,summary:{...n.summary,status:xc(po(n),32,!1),modifiedAt:Date.now()}},t.queuedMessageId&&(n.steeringMessage?.id===t.queuedMessageId&&(n={...n,steeringMessage:void 0}),n.queuedMessages)){let r=n.queuedMessages.filter(o=>o.id!==t.queuedMessageId);n={...n,queuedMessages:r.length>0?r:void 0}}return n}case"session/delta":return Zv(i,t.turnId,t.partId,n=>n.kind==="markdown"?{...n,content:n.content+t.content}:n);case"session/responsePart":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,responseParts:[...i.activeTurn.responseParts,t.part]}};case"session/turnComplete":return cf(i,t.turnId,"complete");case"session/turnCancelled":return cf(i,t.turnId,"cancelled");case"session/error":return cf(i,t.turnId,"error",2,t.error);case"session/toolCallStart":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,responseParts:[...i.activeTurn.responseParts,{kind:"toolCall",toolCall:{toolCallId:t.toolCallId,toolName:t.toolName,displayName:t.displayName,toolClientId:t.toolClientId,_meta:t._meta,status:"streaming"}}]}};case"session/toolCallDelta":return uo(i,t.turnId,t.toolCallId,n=>n.status!=="streaming"?n:{...n,partialInput:(n.partialInput??"")+t.content,invocationMessage:t.invocationMessage??n.invocationMessage});case"session/toolCallReady":return Cc(uo(i,t.turnId,t.toolCallId,n=>{if(n.status!=="streaming"&&n.status!=="running")return n;let r=Ks(n);return t.confirmed?{status:"running",...r,invocationMessage:t.invocationMessage,toolInput:t.toolInput,confirmed:t.confirmed}:{status:"pending-confirmation",...r,invocationMessage:t.invocationMessage,toolInput:t.toolInput,confirmationTitle:t.confirmationTitle,edits:t.edits,editable:t.editable,...t.options?{options:t.options}:{}}}));case"session/toolCallConfirmed":return Cc(uo(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-confirmation")return n;let r=Ks(n),o=u0(n.options,t.selectedOptionId);return t.approved?{status:"running",...r,invocationMessage:n.invocationMessage,toolInput:t.editedToolInput??n.toolInput,confirmed:t.confirmed,...o?{selectedOption:o}:{}}:{status:"cancelled",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,reason:t.reason,reasonMessage:t.reasonMessage,userSuggestion:t.userSuggestion,...o?{selectedOption:o}:{}}}));case"session/toolCallComplete":return Cc(uo(i,t.turnId,t.toolCallId,n=>{if(n.status!=="running"&&n.status!=="pending-confirmation")return n;let r=Ks(n),o=n.status==="running"?n.confirmed:"not-needed",s=n.status==="running"?n.selectedOption:void 0;return t.requiresResultConfirmation?{status:"pending-result-confirmation",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:o,...s?{selectedOption:s}:{},...t.result}:{status:"completed",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:o,...s?{selectedOption:s}:{},...t.result}}));case"session/toolCallResultConfirmed":return Cc(uo(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-result-confirmation")return n;let r=Ks(n);return t.approved?{status:"completed",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:n.confirmed,...n.selectedOption?{selectedOption:n.selectedOption}:{},success:n.success,pastTenseMessage:n.pastTenseMessage,content:n.content,structuredContent:n.structuredContent,error:n.error}:{status:"cancelled",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,reason:"result-denied",...n.selectedOption?{selectedOption:n.selectedOption}:{}}}));case"session/toolCallContentChanged":return uo(i,t.turnId,t.toolCallId,n=>n.status!=="running"?n:{...n,content:t.content});case"session/titleChanged":return{...i,summary:{...i.summary,title:t.title,modifiedAt:Date.now()}};case"session/usage":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,usage:t.usage}};case"session/reasoning":return Zv(i,t.turnId,t.partId,n=>n.kind==="reasoning"?{...n,content:n.content+t.content}:n);case"session/modelChanged":return{...i,summary:{...i.summary,model:t.model,modifiedAt:Date.now()}};case"session/isReadChanged":return{...i,summary:{...i.summary,status:xc(i.summary.status,32,t.isRead)}};case"session/isArchivedChanged":return{...i,summary:{...i.summary,status:xc(i.summary.status,64,t.isArchived)}};case"session/activityChanged":return{...i,summary:{...i.summary,activity:t.activity}};case"session/diffsChanged":return{...i,summary:{...i.summary,diffs:t.diffs}};case"session/configChanged":return i.config?{...i,config:{...i.config,values:t.replace?{...t.config}:{...i.config.values,...t.config}},summary:{...i.summary,modifiedAt:Date.now()}}:i;case"session/metaChanged":return{...i,_meta:t._meta};case"session/serverToolsChanged":return{...i,serverTools:t.tools};case"session/activeClientChanged":return{...i,activeClient:t.activeClient??void 0};case"session/activeClientToolsChanged":return i.activeClient?{...i,activeClient:{...i.activeClient,tools:t.tools}}:i;case"session/customizationsChanged":return{...i,customizations:t.customizations};case"session/customizationToggled":{let n=i.customizations;if(!n)return i;let r=n.findIndex(s=>s.customization.uri===t.uri);if(r<0)return i;let o=[...n];return o[r]={...n[r],enabled:t.enabled},{...i,customizations:o}}case"session/truncated":{let n;if(t.turnId===void 0)n=[];else{let o=i.turns.findIndex(s=>s.id===t.turnId);if(o<0)return i;n=i.turns.slice(0,o+1)}let r={...i,turns:n,activeTurn:void 0,summary:{...i.summary,modifiedAt:Date.now()}};return delete r.inputRequests,{...r,summary:{...r.summary,status:po(r)}}}case"session/inputRequested":return m0(i,t.request);case"session/inputAnswerChanged":{let n=i.inputRequests,r=n?.findIndex(l=>l.id===t.requestId)??-1;if(!n||r<0)return i;let o=n[r],s={...o.answers??{}};t.answer===void 0?delete s[t.questionId]:s[t.questionId]=t.answer;let a=[...n];return a[r]={...o,answers:Object.keys(s).length>0?s:void 0},{...i,inputRequests:a,summary:{...i.summary,modifiedAt:Date.now()}}}case"session/inputCompleted":{let n=i.inputRequests;if(!n?.some(s=>s.id===t.requestId))return i;let r=n.filter(s=>s.id!==t.requestId),o={...i};return r.length>0?o.inputRequests=r:delete o.inputRequests,{...o,summary:{...o.summary,status:po(o),modifiedAt:Date.now()}}}case"session/pendingMessageSet":{let n={id:t.id,userMessage:t.userMessage};if(t.kind==="steering")return{...i,steeringMessage:n};let r=i.queuedMessages??[],o=r.findIndex(s=>s.id===t.id);if(o>=0){let s=[...r];return s[o]=n,{...i,queuedMessages:s}}return{...i,queuedMessages:[...r,n]}}case"session/pendingMessageRemoved":{if(t.kind==="steering")return!i.steeringMessage||i.steeringMessage.id!==t.id?i:{...i,steeringMessage:void 0};let n=i.queuedMessages;if(!n)return i;let r=n.filter(o=>o.id!==t.id);return r.length===n.length?i:{...i,queuedMessages:r.length>0?r:void 0}}case"session/queuedMessagesReordered":{let n=i.queuedMessages;if(!n)return i;let r=new Map(n.map(a=>[a.id,a])),o=new Set,s=t.order.filter(a=>r.has(a)&&!o.has(a)?(o.add(a),!0):!1).map(a=>r.get(a));for(let a of n)o.has(a.id)||s.push(a);return{...i,queuedMessages:s}}default:return df(t,e),i}}var fo=class extends C{constructor(e){super();this._logService=e;this._serverSeq=0;this._sessionStates=new Map;this._sessionsWithActiveTurn=new Set;this._lastNotifiedSummaries=new Map;this._dirtySummaries=new Set;this._summaryNotifyScheduler=this._register(new Zn(()=>this._flushSummaryNotifications(),100));this._onDidEmitEnvelope=this._register(new x);this.onDidEmitEnvelope=this._onDidEmitEnvelope.event;this._onDidEmitNotification=this._register(new x);this.onDidEmitNotification=this._onDidEmitNotification.event;this._log=e=>this._logService.warn(`[AgentHostStateManager] ${e}`);this._rootState=_y(),this._rootState={...this._rootState,config:{schema:Tp.toProtocol(),values:Tp.validateOrDefault({},{permissions:{allow:[],deny:[]},[Us]:Ey(3)})}}}get hasActiveSessions(){return this._sessionsWithActiveTurn.size>0}get rootState(){return this._rootState}getSessionState(e){return this._sessionStates.get(e)}get serverSeq(){return this._serverSeq}getSessionUris(){return[...this._sessionStates.keys()]}getSessionUrisWithPrefix(e){let n=[];for(let r of this._sessionStates.keys())r.startsWith(e)&&n.push(r);return n}getSnapshot(e){if(e===Pl)return{resource:e,state:this._rootState,fromSeq:this._serverSeq};let n=this._sessionStates.get(e);if(n)return{resource:e,state:n,fromSeq:this._serverSeq}}createSession(e,n){let r=e.resource;if(this._sessionStates.has(r))return this._logService.warn(`[AgentHostStateManager] Session already exists: ${r}`),this._sessionStates.get(r);let o=Sp(e);return this._sessionStates.set(r,o),this._logService.trace(`[AgentHostStateManager] Created session: ${r}`),n?.emitNotification!==!1&&(this._lastNotifiedSummaries.set(r,e),this._onDidEmitNotification.fire({type:"notify/sessionAdded",summary:e})),o}markSessionPersisted(e,n){let r=e.toString(),o=this._sessionStates.get(r);if(!o){this._logService.warn(`[AgentHostStateManager] markSessionPersisted: unknown session ${r}`);return}this._lastNotifiedSummaries.has(r)||(o.summary=n,this._lastNotifiedSummaries.set(r,n),this._onDidEmitNotification.fire({type:"notify/sessionAdded",summary:n}))}restoreSession(e,n){let r=e.resource;if(this._sessionStates.has(r))return this._logService.warn(`[AgentHostStateManager] Session already exists (restore): ${r}`),this._sessionStates.get(r);let o={...Sp(e),lifecycle:"ready",turns:n};return this._sessionStates.set(r,o),this._lastNotifiedSummaries.set(r,e),this._logService.trace(`[AgentHostStateManager] Restored session: ${r} (${n.length} turns)`),o}removeSession(e){this._sessionStates.get(e)&&(this._dirtySummaries.has(e)&&this._flushSummaryNotificationFor(e),this._sessionsWithActiveTurn.delete(e)&&this.dispatchServerAction({type:"root/activeSessionsChanged",activeSessions:this._sessionsWithActiveTurn.size}),this._sessionStates.delete(e),this._lastNotifiedSummaries.delete(e),this._dirtySummaries.delete(e),this._logService.trace(`[AgentHostStateManager] Removed session: ${e}`))}deleteSession(e){let n=this._lastNotifiedSummaries.has(e);this._dirtySummaries.delete(e),this.removeSession(e),n&&this._onDidEmitNotification.fire({type:"notify/sessionRemoved",session:e})}setSessionMeta(e,n){this.dispatchServerAction({type:"session/metaChanged",session:e,_meta:n})}getActiveTurnId(e){return this._sessionStates.get(e)?.activeTurn?.id}dispatchServerAction(e){this._applyAndEmit(e,void 0)}dispatchClientAction(e,n){return this._applyAndEmit(e,n)}_applyAndEmit(e,n){let r;if(ay(e)){if(e.type==="root/configChanged"&&this._rootState.config){let s=this._rootState.config.values,a=e.config;if(e.replace?Ue(s,a):Ue({...s,...a},s))return this._rootState}this._rootState=uf(this._rootState,e,this._log),r=this._rootState}if(qr(e)){let s=e,a=s.session,l=this._sessionStates.get(a);if(l){let c=pf(l,s,this._log);this._sessionStates.set(a,c),l.summary!==c.summary&&(this._dirtySummaries.add(a),this._summaryNotifyScheduler.schedule());let u=!!l.activeTurn,d=!!c.activeTurn;u!==d&&(d?this._sessionsWithActiveTurn.add(a):this._sessionsWithActiveTurn.delete(a),this.dispatchServerAction({type:"root/activeSessionsChanged",activeSessions:this._sessionsWithActiveTurn.size})),r=c}else this._logService.warn(`[AgentHostStateManager] Action for unknown session: ${a}, type=${e.type}`)}let o={action:e,serverSeq:++this._serverSeq,origin:n};return this._logService.trace(`[AgentHostStateManager] Emitting envelope: seq=${o.serverSeq}, type=${e.type}${n?`, origin=${n.clientId}:${n.clientSeq}`:""}`),this._onDidEmitEnvelope.fire(o),r}_flushSummaryNotifications(){for(let e of this._dirtySummaries)this._flushSummaryNotificationFor(e);this._dirtySummaries.clear()}_flushSummaryNotificationFor(e){let n=this._sessionStates.get(e),r=this._lastNotifiedSummaries.get(e);if(!n||!r||n.summary===r)return;let o=n.summary,s={};o.title!==r.title&&(s.title=o.title),o.status!==r.status&&(s.status=o.status),o.activity!==r.activity&&(s.activity=o.activity),o.modifiedAt!==r.modifiedAt&&(s.modifiedAt=o.modifiedAt),o.project!==r.project&&(s.project=o.project),o.model!==r.model&&(s.model=o.model),o.workingDirectory!==r.workingDirectory&&(s.workingDirectory=o.workingDirectory),o.diffs!==r.diffs&&(s.diffs=o.diffs),this._lastNotifiedSummaries.set(e,o),Object.keys(s).length>0&&this._onDidEmitNotification.fire({type:"notify/sessionSummaryChanged",session:e,changes:s})}};fo=R([T(0,V)],fo);var wc=z("agentHostCompletions");var mo=class extends C{constructor(e){super();this._logService=e;this._providers=new Set}get triggerCharacters(){let e=new Set;for(let n of this._providers)if(n.triggerCharacters)for(let r of n.triggerCharacters)e.add(r);return[...e]}registerProvider(e){return this._providers.add(e),E(()=>this._providers.delete(e))}async completions(e,n=Fe.None){let r=[...this._providers].filter(a=>a.kinds.has(e.kind));if(r.length===0)return{items:[]};let o=await Promise.allSettled(r.map(a=>a.provideCompletionItems(e,n))),s=[];for(let a=0;a<o.length;a++){let l=o[a];l.status==="fulfilled"?s.push(...l.value):this._logService.error(l.reason,`[AgentHostCompletions] Provider failed for kind=${e.kind}`)}return{items:s}}};mo=R([T(0,V)],mo);var g0=60,h0=g0*60,ff=h0*24,$V=ff*7,BV=ff*30,qV=ff*365;function eb(i){return i.getFullYear()+"-"+String(i.getMonth()+1).padStart(2,"0")+"-"+String(i.getDate()).padStart(2,"0")+"T"+String(i.getHours()).padStart(2,"0")+":"+String(i.getMinutes()).padStart(2,"0")+":"+String(i.getSeconds()).padStart(2,"0")+"."+(i.getMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}var Rc={DateTimeFormat(i,t){return new Ae(()=>{try{return new Intl.DateTimeFormat(i,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(i,t){return new Ae(()=>{try{return new Intl.Collator(i,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(i,t){return new Ae(()=>{try{return new Intl.Segmenter(i,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(i,t){return new Ae(()=>{try{return new Intl.Locale(i,t)}catch{return new Intl.Locale(Kn,t)}})},NumberFormat(i,t){return new Ae(()=>{try{return new Intl.NumberFormat(i,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};var tb=new Ae(()=>{let i=Rc.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:i,collatorIsNumeric:i.resolvedOptions().numeric}}),GV=new Ae(()=>({collator:Rc.Collator(void 0,{numeric:!0}).value})),JV=new Ae(()=>({collator:Rc.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function y0(i,t,e=!1){let n=i||"",r=t||"",o=tb.value.collator.compare(n,r);return tb.value.collatorIsNumeric&&o===0&&n!==r?n<r?-1:1:o}function Ec(i,t,e){let n=i.toLowerCase(),r=t.toLowerCase(),o=v0(i,t,e);if(o)return o;let s=n.endsWith(e),a=r.endsWith(e);if(s!==a)return s?-1:1;let l=y0(n,r);return l!==0?l:n.localeCompare(r)}function v0(i,t,e){let n=i.toLowerCase(),r=t.toLowerCase(),o=n.startsWith(e),s=r.startsWith(e);if(o!==s)return o?-1:1;if(o&&s){if(n.length<r.length)return-1;if(n.length>r.length)return 1}return 0}var YV=new Uint32Array(10);var XV=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),ZV=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),eW=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),tW=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function rb(...i){return function(t,e){for(let n=0,r=i.length;n<r;n++){let o=i[n](t,e);if(o)return o}return null}}var dW=ib.bind(void 0,!1),kc=ib.bind(void 0,!0);function ib(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=Jn(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function b0(i,t){if(i.length>t.length)return null;let e=t.toLowerCase().indexOf(i.toLowerCase());return e===-1?null:[{start:e,end:e+i.length}]}function S0(i,t){return i.length>t.length?null:mf(i.toLowerCase(),t.toLowerCase(),0,0)}function mf(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]===t[n]){let r=null;return(r=mf(i,t,e+1,n+1))?sb({start:n,end:n+1},r):null}return mf(i,t,e,n+1)}function hf(i){return 97<=i&&i<=122}function go(i){return 65<=i&&i<=90}function yf(i){return 48<=i&&i<=57}function I0(i){return i===32||i===9||i===10||i===13}var _0=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>_0.add(i.charCodeAt(0)));function ob(i){return hf(i)||go(i)||yf(i)}function sb(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function ab(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if(go(n)||yf(n)||e>0&&!ob(i.charCodeAt(e-1)))return e}return i.length}function gf(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]!==t[n].toLowerCase())return null;{let r=null,o=n+1;for(r=gf(i,t,e+1,n+1);!r&&(o=ab(t,o))<t.length;)r=gf(i,t,e+1,o),o++;return r===null?null:sb({start:n,end:n+1},r)}}function T0(i){let t=0,e=0,n=0,r=0,o=0;for(let u=0;u<i.length;u++)o=i.charCodeAt(u),go(o)&&t++,hf(o)&&e++,ob(o)&&n++,yf(o)&&r++;let s=t/i.length,a=e/i.length,l=n/i.length,c=r/i.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:c}}function C0(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function x0(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:r}=i;return e>.2&&t<.8&&n>.6&&r<.2}function w0(i){let t=0,e=0,n=0,r=0;for(let o=0;o<i.length;o++)n=i.charCodeAt(o),go(n)&&t++,hf(n)&&e++,I0(n)&&r++;return(t===0||e===0)&&r===0?i.length<=30:t<=5}function lb(i,t){if(!t||(t=t.trim(),t.length===0)||!w0(i))return null;t.length>60&&(t=t.substring(0,60));let e=T0(t);if(!x0(e)){if(!C0(e))return null;t=t.toLowerCase()}let n=null,r=0;for(i=i.toLowerCase();r<t.length&&(n=gf(i,t,0,r))===null;)r=ab(t,r+1);return n}var uW=rb(kc,lb,b0),pW=rb(kc,lb,S0),fW=new Zt(1e4);var Pc=128;function vf(){let i=[],t=[];for(let e=0;e<=Pc;e++)t[e]=0;for(let e=0;e<=Pc;e++)i.push(t.slice(0));return i}function cb(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var mW=cb(2*Pc),gW=cb(2*Pc),hW=vf(),yW=vf(),vW=vf();var R0;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(R0||={});var nb=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var Dc=0,db=[Dc,[]];function ub(i,t,e,n){if(!i||!t)return db;let r=i.length,o=t.length;if(r<o)return db;let s=i.toLowerCase();return E0(t,e,o,i,s,r,n)}function E0(i,t,e,n,r,o,s){let a=[],l=[];for(let f=0;f<e;f++){let g=f*o,h=g-o,v=f>0,S=i[f],_=t[f];for(let I=0;I<o;I++){let b=I>0,w=g+I,D=w-1,re=h+I-1,k=b?a[D]:0,O=v&&b?a[re]:0,M=v&&b?l[re]:0,se;!O&&v?se=0:se=P0(S,_,n,r,I,M),se&&O+se>=k&&(s||v||r.startsWith(t,I))?(l[w]=M+1,a[w]=O+se):(l[w]=Dc,a[w]=k)}}let c=[],u=e-1,d=o-1;for(;u>=0&&d>=0;){let f=u*o+d;l[f]===Dc||(c.push(d),u--),d--}return[a[e*o-1],c.reverse()]}function P0(i,t,e,n,r,o){let s=0;if(!k0(t,n[r]))return s;if(s+=1,o>0&&(s+=Math.min(o,3)*6+Math.max(0,o-3)*3),i===e[r]&&(s+=1),r===0)s+=8;else{let a=A0(e.charCodeAt(r-1));a?s+=a:go(e.charCodeAt(r))&&o===0&&(s+=2)}return s}function k0(i,t){return i===t?!0:i==="/"||i==="\\"?t==="/"||t==="\\":!1}function A0(i){switch(i){case 47:case 92:return 5;case 95:case 45:case 46:case 32:case 39:case 34:case 58:return 4;default:return 0}}var Oc=Object.freeze({score:0}),Ac=1<<18,bf=1<<17,Sf=65536;function D0(i,t,e,n){let r=n.values?n.values:[n];return Rt({[n.normalized]:{values:r.map(s=>({value:s.normalized,expectContiguousMatch:s.expectContiguousMatch})),label:i,description:t,allowNonContiguousMatches:e}})}function Lc(i,t,e,n,r){if(!i||!t.normalized)return Oc;let o=n.getItemLabel(i);if(!o)return Oc;let s=n.getItemDescription(i),a=D0(o,s,e,t),l=r[a];if(l)return l;let c=O0(o,s,n.getItemPath(i),t,e);return r[a]=c,c}function O0(i,t,e,n,r){let o=!e||!n.containsPathSeparator;return e&&(Se?n.pathNormalized===e:Tn(n.pathNormalized,e))?{score:Ac,labelMatch:[{start:0,end:i.length}],descriptionMatch:t?[{start:0,end:t.length}]:void 0}:n.values&&n.values.length>1?L0(i,t,e,n.values,o,r):yb(i,t,e,n,o,r)}function L0(i,t,e,n,r,o){let s=0,a=[],l=[];for(let c of n){let{score:u,labelMatch:d,descriptionMatch:f}=yb(i,t,e,c,r,o);if(u===Dc)return Oc;s+=u,d&&a.push(...d),f&&l.push(...f)}return{score:s,labelMatch:fb(a),descriptionMatch:fb(l)}}function yb(i,t,e,n,r,o){if(r||!t){let[s,a]=ub(i,n.normalized,n.normalizedLowercase,o&&!n.expectContiguousMatch);if(s){let l=kc(n.normalized,i),c;if(l){c=bf;let u=Math.round(n.normalized.length/i.length*100);c+=u}else c=Sf;return{score:c+s,labelMatch:l||pb(a)}}}if(t){let s=t;e&&(s=`${t}${he}`);let a=s.length,l=`${s}${i}`,[c,u]=ub(l,n.normalized,n.normalizedLowercase,o&&!n.expectContiguousMatch);if(c){let d=pb(u),f=[],g=[];return d.forEach(h=>{h.start<a&&h.end>a?(f.push({start:0,end:h.end-a}),g.push({start:h.start,end:a})):h.start>=a?f.push({start:h.start-a,end:h.end-a}):g.push(h)}),{score:c,labelMatch:f,descriptionMatch:g}}}return Oc}function pb(i){let t=[];if(!i)return t;let e;for(let n of i)e&&e.end===n?e.end+=1:(e={start:n,end:n+1},t.push(e));return t}function fb(i){let t=i.sort((r,o)=>r.start-o.start),e=[],n;for(let r of t)!n||!M0(n,r)?(n=r,e.push(r)):(n.start=Math.min(n.start,r.start),n.end=Math.max(n.end,r.end));return e}function M0(i,t){return!(i.end<t.start||t.end<i.start)}function vb(i,t,e,n,r,o){let s=Lc(i,e,n,r,o),a=Lc(t,e,n,r,o),l=s.score,c=a.score;if((l===Ac||c===Ac)&&l!==c)return l===Ac?-1:1;if(l>Sf||c>Sf){if(l!==c)return l>c?-1:1;if(l<bf&&c<bf){let S=N0(s.labelMatch,a.labelMatch);if(S!==0)return S}let h=r.getItemLabel(i)||"",v=r.getItemLabel(t)||"";if(h.length!==v.length)return h.length-v.length}if(l!==c)return l>c?-1:1;let u=Array.isArray(s.labelMatch)&&s.labelMatch.length>0,d=Array.isArray(a.labelMatch)&&a.labelMatch.length>0;if(u&&!d)return-1;if(d&&!u)return 1;let f=mb(i,s,r),g=mb(t,a,r);return f&&g&&f!==g?g>f?-1:1:F0(i,t,e,r)}function mb(i,t,e){let n=-1,r=-1;if(t.descriptionMatch?.length?n=t.descriptionMatch[0].start:t.labelMatch?.length&&(n=t.labelMatch[0].start),t.labelMatch?.length){if(r=t.labelMatch[t.labelMatch.length-1].end,t.descriptionMatch?.length){let o=e.getItemDescription(i);o&&(r+=o.length)}}else t.descriptionMatch?.length&&(r=t.descriptionMatch[t.descriptionMatch.length-1].end);return r-n}function N0(i,t){if(!i&&!t||!i?.length&&!t?.length)return 0;if(!t?.length)return-1;if(!i?.length)return 1;let e=i[0].start,r=i[i.length-1].end-e,o=t[0].start,a=t[t.length-1].end-o;return r===a?0:a<r?1:-1}function F0(i,t,e,n){let r=n.getItemLabel(i)||"",o=n.getItemLabel(t)||"",s=n.getItemDescription(i),a=n.getItemDescription(t),l=r.length+(s?s.length:0),c=o.length+(a?a.length:0);if(l!==c)return l-c;let u=n.getItemPath(i),d=n.getItemPath(t);return u&&d&&u.length!==d.length?u.length-d.length:r!==o?Ec(r,o,e.normalized):s&&a&&s!==a?Ec(s,a,e.normalized):u&&d&&u!==d?Ec(u,d,e.normalized):0}function gb(i){return i.startsWith('"')&&i.endsWith('"')}var U0=" ";function bb(i){typeof i!="string"&&(i="");let t=i.toLowerCase(),{pathNormalized:e,normalized:n,normalizedLowercase:r}=hb(i),o=e.indexOf(he)>=0,s=gb(i),a,l=i.split(U0);if(l.length>1)for(let c of l){let u=gb(c),{pathNormalized:d,normalized:f,normalizedLowercase:g}=hb(c);f&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:d,normalized:f,normalizedLowercase:g,expectContiguousMatch:u}))}return{original:i,originalLowercase:t,pathNormalized:e,normalized:n,normalizedLowercase:r,values:a,containsPathSeparator:o,expectContiguousMatch:s}}function hb(i){let t;q?t=i.replace(/\//g,he):t=i.replace(/\\/g,he);let e=t.replace(/[\*\u2026\s"]/g,"").replace(/(?<=.)#$/,"");return{pathNormalized:t,normalized:e,normalizedLowercase:e.toLowerCase()}}var Sb=50;function V0(i,t){if(!(t<0||t>i.length))for(let e=t-1;e>=0;e--){let n=i.charCodeAt(e);if(n===32||n===9||n===10||n===13)return;if(i[e]==="@"){if(e>0){let r=i.charCodeAt(e-1);if(!(r===32||r===9||r===10||r===13))return}return{token:i.slice(e+1,t),rangeStart:e,rangeEnd:t}}}}var If=class{constructor(t){this._workingDirectory=t}getItemLabel(t){return xe(t)}getItemDescription(t){let e=Ru(this._workingDirectory,t);if(!e)return;let n=e.lastIndexOf("/");return n>0?e.slice(0,n):void 0}getItemPath(t){return Ru(this._workingDirectory,t)??t.fsPath}},Mc=class{constructor(t,e){this._stateManager=t;this._workspaceFiles=e;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["@"]}async provideCompletionItems(t,e){let n=this._stateManager.getSessionState(t.session)?.summary.workingDirectory;if(!n)return[];let r=y.parse(n);if(r.scheme!==te.file)return[];let o=V0(t.text,t.offset);if(!o)return[];let s;try{s=await this._workspaceFiles.getFiles(r,e)}catch(d){if(Cr(d))return[];throw d}if(e.isCancellationRequested||s.length===0)return[];let a=new If(r),l=bb(o.token),c=Object.create(null),u;if(!l.normalized)u=s.slice(0,Sb);else{let d=s.filter(f=>Lc(f,l,!0,a,c).score>0);d.sort((f,g)=>vb(f,g,l,!0,a,c)),u=d.slice(0,Sb)}return u.map(d=>{let f=xe(d);return{insertText:"@"+f,rangeStart:o.rangeStart,rangeEnd:o.rangeEnd,attachment:{type:"resource",uri:d.toString(),label:f,displayKind:"document"}}})}};function W0(i,t=[],e={}){let r=new Nc(i).scan();return new Fc(r,i,t,e).parse()}function Tb(i,t=[],e={}){let n=new Nc(i).scan();if(n.length===0||n[0].type!==11)return new Gs(void 0,i);if(!n.slice(1).some(l=>l.type===11))return new Gs(void 0,i);let o=new Fc(n,i,t,e).parse(),s=n[n.length-1],a=s.type===13?i.substring(s.startOffset):"";return new Gs(o,a)}var Gs=class{constructor(t,e){this.header=t;this.body=e}getStringValue(t){if(this.header&&this.header.type==="map"){let e=this.header.properties.find(n=>n.key.value===t);if(e&&e.value.type==="scalar")return e.value.value}}getStringArrayValue(t){if(this.header&&this.header.type==="map"){let e=this.header.properties.find(n=>n.key.value===t);if(e&&e.value.type==="sequence")return e.value.items.filter(n=>n.type==="scalar").map(n=>n.value);if(e&&e.value.type==="scalar"&&e.value.format==="none")return $0(e.value.value,0).map(n=>n.value)}}};function $0(i,t=0){let e=W0(`[${i}]`),n=t-1,r=[];if(e&&e.type==="sequence")for(let o of e.items)o.type==="scalar"&&r.push({...o,startOffset:o.startOffset+n,endOffset:o.endOffset+n});else r.push({type:"scalar",value:i,rawValue:i,startOffset:t,endOffset:i.length+t,format:"none"});return r}function $e(i,t,e,n){return{type:i,startOffset:t,endOffset:e,rawValue:n?.rawValue??"",value:n?.value??"",format:n?.format??"none",indent:n?.indent??0}}var Nc=class{constructor(t){this.input=t;this.pos=0;this.tokens=[];this.flowDepth=0;this.seenBlockColon=!1;this.seenDocumentStart=0}scan(t=1){for(;this.pos<this.input.length&&(this.scanLine(),!(this.seenDocumentStart>t)););return this.tokens.push($e(13,this.pos,this.pos)),this.tokens}scanLine(){if(this.seenBlockColon=!1,this.peekChar()===`
`){this.tokens.push($e(8,this.pos,this.pos+1)),this.pos++;return}if(this.peekChar()==="\r"){let n=this.pos+(this.input[this.pos+1]===`
`?2:1);this.tokens.push($e(8,this.pos,n)),this.pos=n;return}let t=this.pos,e=0;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]==="	");)e++,this.pos++;if(e>0&&this.tokens.push($e(9,t,this.pos,{indent:e})),this.pos>=this.input.length||this.peekChar()===`
`||this.peekChar()==="\r"){if(this.pos<this.input.length){let n=this.pos,r=this.peekChar()==="\r"&&this.input[this.pos+1]===`
`?this.pos+2:this.pos+1;this.tokens.push($e(8,n,r)),this.pos=r}return}if(e===0&&this.input.length-this.pos>=3){let n=this.input[this.pos],r=this.input[this.pos+1],o=this.input[this.pos+2],s=this.input[this.pos+3],a=s===void 0||s===" "||s==="	"||s===`
`||s==="\r";if(n==="-"&&r==="-"&&o==="-"&&a){this.tokens.push($e(11,this.pos,this.pos+3)),this.pos+=3,this.scanLineContent(),this.scanNewline(),this.seenDocumentStart++;return}if(n==="."&&r==="."&&o==="."&&a){this.tokens.push($e(12,this.pos,this.pos+3)),this.pos+=3,this.scanLineContent(),this.scanNewline();return}}if(this.peekChar()==="#"){this.scanComment(),this.scanNewline();return}if(this.peekChar()==="%"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.scanNewline();return}this.scanLineContent(),this.scanNewline()}scanLineContent(){for(;this.pos<this.input.length&&this.peekChar()!==`
`&&this.peekChar()!=="\r"&&(this.skipInlineWhitespace(),!(this.pos>=this.input.length||this.peekChar()===`
`||this.peekChar()==="\r"));){let t=this.peekChar();if(t==="#"){this.scanComment();break}else if(t==="{")this.flowDepth++,this.tokens.push($e(4,this.pos,this.pos+1)),this.pos++;else if(t==="}"&&this.flowDepth>0)this.flowDepth--,this.tokens.push($e(5,this.pos,this.pos+1)),this.pos++;else if(t==="[")this.flowDepth++,this.tokens.push($e(6,this.pos,this.pos+1)),this.pos++;else if(t==="]"&&this.flowDepth>0)this.flowDepth--,this.tokens.push($e(7,this.pos,this.pos+1)),this.pos++;else if(t===","&&this.flowDepth>0)this.tokens.push($e(3,this.pos,this.pos+1)),this.pos++;else if(t==="-"&&this.isBlockDash())this.tokens.push($e(2,this.pos,this.pos+1)),this.pos++;else if(t===":"&&this.isBlockColon())this.tokens.push($e(1,this.pos,this.pos+1)),this.pos++,this.flowDepth===0&&(this.seenBlockColon=!0);else if(t===":"&&this.flowDepth>0&&this.lastTokenIsJsonLike())this.tokens.push($e(1,this.pos,this.pos+1)),this.pos++;else if(t==="'"||t==='"')this.scanQuotedScalar(t);else if((t==="|"||t===">")&&this.flowDepth===0&&this.isBlockScalarStart()){this.scanBlockScalar(t);break}else this.scanUnquotedScalar()}}isBlockDash(){let t=this.input[this.pos+1];return t===void 0||t===" "||t==="	"||t===`
`||t==="\r"}isBlockColon(){if(this.seenBlockColon&&this.flowDepth===0)return!1;let t=this.input[this.pos+1];return t===void 0||t===" "||t==="	"||t===`
`||t==="\r"||this.flowDepth>0&&(t===","||t==="}"||t==="]")}lastTokenIsJsonLike(){for(let t=this.tokens.length-1;t>=0;t--){let e=this.tokens[t];if(!(e.type===8||e.type===9||e.type===10))return e.type===0&&e.format!=="none"||e.type===5||e.type===7}return!1}scanQuotedScalar(t){let e=this.pos;this.pos++;let n="",r=0;for(;this.pos<this.input.length;){let s=this.input[this.pos];if(s===t){if(t==="'"&&this.input[this.pos+1]==="'"){n+="'",this.pos+=2,r=0;continue}this.pos++;let a=this.input.substring(e,this.pos);this.tokens.push($e(0,e,this.pos,{rawValue:a,value:n,format:t==="'"?"single":"double"}));return}if(t==='"'&&s==="\\"){let a=this.input[this.pos+1];if(a===`
`||a==="\r"){this.pos++,this.consumeNewline(),this.skipInlineWhitespace(),r=0;continue}switch(a){case"n":n+=`
`;break;case"t":n+="	";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;case"r":n+="\r";break;case"0":n+="\0";break;case"a":n+="\x07";break;case"b":n+="\b";break;case"e":n+="\x1B";break;case"v":n+="\v";break;case"f":n+="\f";break;case" ":n+=" ";break;case"_":n+="\xA0";break;case"x":{let l=this.input.substring(this.pos+2,this.pos+4),c=parseInt(l,16);l.length===2&&!isNaN(c)?(n+=String.fromCharCode(c),this.pos+=4):(n+="\\x",this.pos+=2),r=0;continue}case"u":{let l=this.input.substring(this.pos+2,this.pos+6),c=parseInt(l,16);l.length===4&&!isNaN(c)?(n+=String.fromCodePoint(c),this.pos+=6):(n+="\\u",this.pos+=2),r=0;continue}case"U":{let l=this.input.substring(this.pos+2,this.pos+10),c=parseInt(l,16);l.length===8&&!isNaN(c)?(n+=String.fromCodePoint(c),this.pos+=10):(n+="\\U",this.pos+=2),r=0;continue}default:n+="\\"+(a??"");break}this.pos+=2,r=0;continue}if(s===`
`||s==="\r"){r>0&&(n=n.substring(0,n.length-r)),r=0,this.consumeNewline();let a=0;for(;this.pos<this.input.length;){this.skipInlineWhitespace();let l=this.input[this.pos];if(l===`
`||l==="\r")a++,this.consumeNewline();else break}a>0?n+=`
`.repeat(a):n+=" ";continue}s===" "||s==="	"?r++:r=0,n+=s,this.pos++}let o=this.input.substring(e,this.pos);this.tokens.push($e(0,e,this.pos,{rawValue:o,value:n,format:t==="'"?"single":"double"}))}scanUnquotedScalar(){let t=this.pos,e=this.pos;for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r===`
`||r==="\r"||this.flowDepth>0&&(r===","||r==="}"||r==="]")||this.flowDepth>0&&(r==="{"||r==="[")||r===":"&&this.isBlockColon()||r==="#"&&this.pos>t&&(this.input[this.pos-1]===" "||this.input[this.pos-1]==="	"))break;this.pos++,r!==" "&&r!=="	"&&(e=this.pos)}let n=this.input.substring(t,e);this.tokens.push($e(0,t,e,{rawValue:n,value:n,format:"none"}))}isBlockScalarStart(){let t=this.pos+1;for(;t<this.input.length;){let n=this.input[t];if(n>="1"&&n<="9"){t++;continue}if(n==="+"||n==="-"){t++;continue}break}for(;t<this.input.length&&(this.input[t]===" "||this.input[t]==="	");)t++;if(t>=this.input.length)return!0;let e=this.input[t];return e===`
`||e==="\r"||e==="#"}scanBlockScalar(t){let e=this.pos;this.pos++;let n=0,r="clip";for(let f=0;f<2;f++)if(this.pos<this.input.length){let g=this.input[this.pos];g>="1"&&g<="9"&&n===0?(n=parseInt(g,10),this.pos++):g==="-"&&r==="clip"?(r="strip",this.pos++):g==="+"&&r==="clip"&&(r="keep",this.pos++)}for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]==="	");)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="#")for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.consumeNewline();let o=this.getParentBlockIndent(e),s=n>0?o+n:0,a=[],l=0;for(;this.pos<this.input.length;){let f=this.pos,g=0;for(;this.pos<this.input.length&&this.input[this.pos]===" ";)g++,this.pos++;if(this.pos>=this.input.length||this.input[this.pos]===`
`||this.input[this.pos]==="\r"){if(s>0&&g>=s){let S=this.input.substring(f+s,this.pos);a.push(S),S===""?l++:l=0}else a.push(""),l++;this.consumeNewline();continue}if(g===0&&this.input.length-this.pos>=3){let S=this.input[this.pos],_=this.input[this.pos+1],I=this.input[this.pos+2],b=this.input[this.pos+3],w=b===void 0||b===" "||b==="	"||b===`
`||b==="\r";if(S==="-"&&_==="-"&&I==="-"&&w||S==="."&&_==="."&&I==="."&&w){this.pos=f;break}}if(s===0){if(g<=o){this.pos=f;break}s=g}if(g<s){this.pos=f;break}let h=f+s;for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;let v=this.input.substring(h,this.pos);a.push(v),l=0,this.consumeNewline()}let c;if(t==="|")c=a.join(`
`);else{c="";let f=!1,g=!1,h=!1;for(let v=0;v<a.length;v++){let S=a[v],_=S.length>0&&(S[0]===" "||S[0]==="	");S===""?(c+=`
`,g=!0):v===0?(c=S,f=_,h=!0):g?((f||_)&&h?c+=`
`+S:c+=S,f=_,g=!1,h=!0):_||f?(c+=`
`+S,f=_,h=!0):(c+=" "+S,f=!1,h=!0)}}if(l>0){let f=c.length;for(;f>0&&c[f-1]===`
`;)f--;c=c.substring(0,f)}let u=a.some(f=>f!=="");switch(r){case"clip":u&&(c+=`
`);break;case"keep":u?c+=`
`.repeat(l+1):c=`
`.repeat(l);break;case"strip":break}let d=this.input.substring(e,this.pos);this.tokens.push($e(0,e,this.pos,{rawValue:d,value:c,format:t==="|"?"literal":"folded"}))}getParentBlockIndent(t){for(let e=this.tokens.length-1;e>=0;e--){let n=this.tokens[e];if(!(n.type===8||n.type===10||n.type===9)){if(n.type===1){for(let r=e-1;r>=0;r--){let o=this.tokens[r];if(!(o.type===8||o.type===10||o.type===9))return this.getColumnAt(o.startOffset)}return 0}if(n.type===2)return this.getColumnAt(n.startOffset);if(n.type===11)return-1;break}}return 0}getColumnAt(t){let e=0,n=t-1;for(;n>=0&&this.input[n]!==`
`&&this.input[n]!=="\r";)e++,n--;return e}scanComment(){let t=this.pos;for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.tokens.push($e(10,t,this.pos,{rawValue:this.input.substring(t,this.pos),value:this.input.substring(t,this.pos)}))}scanNewline(){let t=this.pos;this.consumeNewline()&&this.tokens.push($e(8,t,this.pos))}skipInlineWhitespace(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t==="	")this.pos++;else break}}consumeNewline(){return this.pos>=this.input.length?!1:this.input[this.pos]==="\r"&&this.input[this.pos+1]===`
`?(this.pos+=2,!0):this.input[this.pos]===`
`||this.input[this.pos]==="\r"?(this.pos++,!0):!1}peekChar(){return this.input[this.pos]}},Fc=class{constructor(t,e,n,r){this.tokens=t;this.input=e;this.errors=n;this.options=r;this.pos=0}parse(){return this.skipNewlinesAndComments(),this.currentToken().type===11&&(this.advance(),this.skipNewlinesAndComments()),this.currentToken().type===13||this.currentToken().type===12?void 0:this.parseValue(-1)}currentToken(){return this.tokens[this.pos]}peek(t=0){return this.tokens[Math.min(this.pos+t,this.tokens.length-1)]}advance(){let t=this.tokens[this.pos];return t.type!==13&&this.pos++,t}expect(t){let e=this.currentToken();return e.type===t?this.advance():e}emitError(t,e,n,r){this.errors.push({message:t,startOffset:e,endOffset:n,code:r})}skipNewlinesAndComments(){for(;this.currentToken().type===8||this.currentToken().type===10||this.currentToken().type===9&&this.isFollowedByNewlineOrComment();)this.advance()}isFollowedByNewlineOrComment(){let t=this.peek(1);return t.type===8||t.type===10||t.type===13}currentIndent(){return this.currentToken().type===9?this.currentToken().indent:0}parseValue(t){this.skipNewlinesAndComments();let e=this.currentToken(),n=e.type===9?this.peek(1):e;if(n.type===4||n.type===6)return e.type===9&&this.advance(),n.type===4?this.parseFlowMap():this.parseFlowSeq();let r=this.currentIndent();if(this.peekPastIndent().type===2)return this.parseBlockSequence(r);if(this.looksLikeMapping())return this.parseBlockMapping(r);if(e.type===0||e.type===9)return this.parseScalar(t)}peekPastIndent(){return this.currentToken().type===9?this.peek(1):this.currentToken()}looksLikeMapping(){let t=0;return this.peek(t).type===9&&t++,this.peek(t).type===0&&(t++,this.peek(t).type===1)}parseScalar(t=-1){this.currentToken().type===9&&this.advance();let e=this.expect(0);return e.format!=="none"?this.scalarFromToken(e):this.parsePlainMultiline(e,t)}parsePlainMultiline(t,e){let n=t.value,r=t.endOffset;for(;;){let o=this.pos,s=0,a=!1;for(;this.pos<this.tokens.length;){let c=this.currentToken();if(c.type===10)break;if(c.type===8){this.advance();let u=this.currentToken();if(u.type===8){s++;continue}if(u.type===9){let d=this.peek(1);if(d.type===8||d.type===13){s++,this.advance();continue}if(d.type===10)break;if(u.indent>e){a=!0;break}else break}if(u.type===13||u.type===11||u.type===12)break;if(e<0){a=!0;break}break}if(c.type===9)break;break}if(!a){this.pos=o;break}if(this.currentToken().type===9&&this.advance(),this.currentToken().type!==0){if(this.currentToken().type===2){let c=this.advance(),u="-";if(this.currentToken().type===0){let d=this.advance();u="- "+d.value,r=d.endOffset}else r=c.endOffset;s>0?n+=`
`.repeat(s):n+=" ",n+=u;continue}this.pos=o;break}if(this.peek(1).type===1){this.pos=o;break}let l=this.advance();s>0?n+=`
`.repeat(s):n+=" ",n+=l.value,r=l.endOffset}return{type:"scalar",value:n,rawValue:this.input.substring(t.startOffset,r),startOffset:t.startOffset,endOffset:r,format:"none"}}parseBlockMapping(t,e=!1){let n=this.currentToken().startOffset,r=[],o=new Set;if(e){let a=this.parseMappingEntry(t);a&&(o.add(a.key.value),r.push(a))}for(;this.currentToken().type!==13&&(this.skipNewlinesAndComments(),this.currentToken().type!==13);){let a=this.currentIndent();if(a<t)break;if(a!==t)if(a>t)this.emitError(m(150,null,t,a),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-indentation");else break;if(!this.looksLikeMapping())break;let l=this.parseMappingEntry(t);if(!l)break;!this.options.allowDuplicateKeys&&o.has(l.key.value)&&this.emitError(m(143,null,l.key.value),l.key.startOffset,l.key.endOffset,"duplicate-key"),o.add(l.key.value),r.push(l)}let s=r.length>0?r[r.length-1].value.endOffset:n;return{type:"map",properties:r,style:"block",startOffset:n,endOffset:s}}parseMappingEntry(t){this.currentToken().type===9&&this.advance();let e=this.expect(0),n=this.scalarFromToken(e),r=this.expect(1);if(r.type!==1){this.emitError(m(144,null),r.startOffset,r.endOffset,"expected-colon");return}let o=this.parseMappingValue(t,r);return{key:n,value:o}}parseMappingValue(t,e){let n=this.currentToken();if(n.type===4)return this.parseFlowMap();if(n.type===6)return this.parseFlowSeq();if(n.type===0){this.currentToken().type===9&&this.advance();let s=this.advance();return s.format!=="none"?this.scalarFromToken(s):this.parsePlainMultiline(s,t)}if(this.skipNewlinesAndComments(),this.currentToken().type===13)return this.emitError(m(149,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset);let o=this.currentIndent();return o===t&&this.peekPastIndent().type===2?this.parseValue(t)??this.makeEmptyScalar(e.endOffset):o<=t?(this.emitError(m(149,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.parseValue(t)??this.makeEmptyScalar(e.endOffset)}parseBlockSequence(t){let e=[],n=this.currentToken().startOffset,r=n,o=!0;for(;this.currentToken().type!==13&&(this.skipNewlinesAndComments(),this.currentToken().type!==13);){let s;if(o&&this.currentToken().type===2?s=this.currentToken().startOffset-this.getLineStart(this.currentToken().startOffset):s=this.currentIndent(),o=!1,s<t)break;if(s!==t)if(s>t)this.emitError(m(150,null,t,s),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-indentation");else break;if(this.peekPastIndent().type!==2)break;this.currentToken().type===9&&this.advance();let l=this.advance(),c=this.parseSequenceItemValue(t,l);e.push(c),r=c.endOffset}return{type:"sequence",items:e,style:"block",startOffset:n,endOffset:r}}parseSequenceItemValue(t,e){let n=this.currentToken();if(n.type===10&&this.advance(),n.type===4)return this.parseFlowMap();if(n.type===6)return this.parseFlowSeq();if(n.type===2){let o=n.startOffset-this.getLineStart(n.startOffset);return this.parseBlockSequence(o)}if(n.type===0){if(this.peek(1).type===1){let o=n.startOffset-this.getLineStart(n.startOffset);return this.parseBlockMapping(o,!0)}return this.parseScalar(t)}return this.skipNewlinesAndComments(),this.currentToken().type===13?(this.emitError(m(148,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.currentIndent()<=t?(this.emitError(m(148,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.parseValue(t)??this.makeEmptyScalar(e.endOffset)}getLineStart(t){let e=t-1;for(;e>=0&&this.input[e]!==`
`&&this.input[e]!=="\r";)e--;return e+1}parseFlowMap(){let t=this.advance(),e=[];for(this.skipFlowWhitespace();this.currentToken().type!==5&&this.currentToken().type!==13;){let r;if(this.currentToken().type===0)r=this.parseFlowScalar();else{this.emitError(m(147,null),this.currentToken().startOffset,this.currentToken().endOffset,"expected-key");break}this.skipFlowWhitespace();let o;this.currentToken().type===1?(this.advance(),this.skipFlowWhitespace(),o=this.parseFlowValue()):o=this.makeEmptyScalar(r.endOffset),e.push({key:r,value:o}),this.skipFlowWhitespace(),this.currentToken().type===3&&(this.advance(),this.skipFlowWhitespace())}let n=this.currentToken();return n.type===5?this.advance():this.emitError(m(145,null),n.startOffset,n.endOffset,"expected-flow-map-end"),{type:"map",properties:e,style:"flow",startOffset:t.startOffset,endOffset:n.type===5?n.endOffset:n.startOffset}}parseFlowSeq(){let t=this.advance(),e=[];for(this.skipFlowWhitespace();this.currentToken().type!==7&&this.currentToken().type!==13;){let r;if(this.currentToken().type===4)r=this.parseFlowMap();else if(this.currentToken().type===6)r=this.parseFlowSeq();else if(this.currentToken().type===0)r=this.parseFlowScalar();else{this.emitError(m(151,null),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-token"),this.advance();continue}e.push(r),this.skipFlowWhitespace(),this.currentToken().type===3&&(this.advance(),this.skipFlowWhitespace())}let n=this.currentToken();return n.type===7?this.advance():this.emitError(m(146,null),n.startOffset,n.endOffset,"expected-flow-seq-end"),{type:"sequence",items:e,style:"flow",startOffset:t.startOffset,endOffset:n.type===7?n.endOffset:n.startOffset}}parseFlowScalar(){let t=this.advance();if(t.format!=="none")return this.scalarFromToken(t);let e=t.value,n=t.endOffset;for(;;){let r=!1,o=this.pos;for(;o<this.tokens.length;){let a=this.tokens[o];if(a.type===8)r=!0,o++;else if(a.type===9||a.type===10)o++;else break}if(!r||o>=this.tokens.length)break;let s=this.tokens[o];if(s.type===0&&s.format==="none")this.pos=o+1,e+=" "+s.value,n=s.endOffset;else break}return{type:"scalar",value:e,rawValue:this.input.substring(t.startOffset,n),startOffset:t.startOffset,endOffset:n,format:"none"}}parseFlowValue(){return this.currentToken().type===4?this.parseFlowMap():this.currentToken().type===6?this.parseFlowSeq():this.currentToken().type===0?this.parseFlowScalar():this.makeEmptyScalar(this.currentToken().startOffset)}skipFlowWhitespace(){for(;;){let t=this.currentToken().type;if(t===8||t===9||t===10)this.advance();else break}}scalarFromToken(t){return{type:"scalar",value:t.value,rawValue:t.rawValue,startOffset:t.startOffset,endOffset:t.endOffset,format:t.format}}makeEmptyScalar(t){return{type:"scalar",value:"",rawValue:"",startOffset:t,endOffset:t,format:"none"}}};var _f="vscode-agent-client";function ho(i,t){let e=i.authority||"-";return y.from({scheme:_f,authority:t,path:`/${i.scheme}/${e}${i.path}`})}function Cb(i){let t=i.path,e=t.indexOf("/",1);if(e===-1)return y.from({scheme:"file",path:t});let n=t.substring(1,e),r=t.indexOf("/",e+1);if(r===-1){let a=t.substring(e+1);return y.from({scheme:n,authority:a==="-"?"":a,path:"/"})}let o=t.substring(e+1,r);o==="-"&&(o="");let s=t.substring(r);return y.from({scheme:n,authority:o||void 0,path:s})}function xb(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}var q0={format:0,manifestPath:"plugin.json",hookConfigPath:"hooks.json",pluginRootToken:void 0,pluginRootEnvVar:void 0,parseHooks(i,t,e,n,r){return Rb(i,t,n,r)}},H0={format:1,manifestPath:".claude-plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${CLAUDE_PLUGIN_ROOT}",pluginRootEnvVar:"CLAUDE_PLUGIN_ROOT",parseHooks(i,t,e,n,r){return Eb(i,t,e,n,r,"${CLAUDE_PLUGIN_ROOT}","CLAUDE_PLUGIN_ROOT")}},z0={format:2,manifestPath:".plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${PLUGIN_ROOT}",pluginRootEnvVar:"PLUGIN_ROOT",parseHooks(i,t,e,n,r){return Eb(i,t,e,n,r,"${PLUGIN_ROOT}","PLUGIN_ROOT")}};async function j0(i,t){return await Js(Q(i,".plugin","plugin.json"),t)?z0:i.path.split("/").includes(".claude")||await Js(Q(i,".claude-plugin","plugin.json"),t)?H0:q0}var Tf={paths:[],exclusive:!1};function Uc(i){if(i==null)return Tf;if(typeof i=="string"){let t=i.trim();return t?{paths:[t],exclusive:!1}:Tf}if(Array.isArray(i))return{paths:i.filter(e=>typeof e=="string").map(e=>e.trim()).filter(e=>e.length>0),exclusive:!1};if(typeof i=="object"){let t=i;if(Array.isArray(t.paths)){let e=t.paths.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0),n=t.exclusive===!0;return{paths:e,exclusive:n}}}return Tf}function Vc(i,t,e,n){let r=n&&wu(i,n)?n:i,o=[];e.exclusive||o.push(Q(i,t));for(let s of e.paths){let a=Tt(Q(i,s));wu(a,r)&&o.push(a)}return o}function K0(i){if(!i||typeof i!="object"||Array.isArray(i))return;let t=i;return Object.hasOwn(t,"mcpServers")?t.mcpServers:t}function G0(i){if(!i||typeof i!="object")return;let t=i,e=typeof t.type=="string"?t.type:void 0,n=typeof t.command=="string"?t.command:void 0,r=typeof t.url=="string"?t.url:void 0,o=Array.isArray(t.args)?t.args.filter(d=>typeof d=="string"):void 0,s=t.env&&typeof t.env=="object"?Object.fromEntries(Object.entries(t.env).filter(([,d])=>typeof d=="string"||typeof d=="number"||d===null).map(([d,f])=>[d,f])):void 0,a=typeof t.envFile=="string"?t.envFile:void 0,l=typeof t.cwd=="string"?t.cwd:void 0,c=t.headers&&typeof t.headers=="object"?Object.fromEntries(Object.entries(t.headers).filter(([,d])=>typeof d=="string").map(([d,f])=>[d,f])):void 0,u=t.dev&&typeof t.dev=="object"?t.dev:void 0;if(e!=="ws"){if(e==="stdio"||!e&&n)return n?{type:"stdio",command:n,args:o,env:s,envFile:a,cwd:l,dev:u}:void 0;if(e==="http"||e==="sse"||!e&&r)return r?{type:"http",url:r,headers:c,dev:u}:void 0}}var J0=/[\s&|<>()^;!`"']/;function Q0(i,t,e){if(!i.includes(e))return i;if(!J0.test(t))return i.replaceAll(e,t);let n=Ot(e),r=new RegExp(`(["']?)`+n+"([\\w./\\\\~:-]*)","g");return i.replace(r,(o,s,a)=>{let l=t+a;return s?s+l:'"'+l.replace(/"/g,'\\"')+'"'})}function Y0(i,t,e,n){let r=a=>a.replaceAll(e,t),o=i.configuration,s;if(o.type==="stdio"){let a={...o};a.command=r(a.command),a.args&&(a.args=a.args.map(r)),a.cwd&&(a.cwd=r(a.cwd)),a.env={...a.env};for(let[l,c]of Object.entries(a.env))typeof c=="string"&&(a.env[l]=r(c));a.env[n]=t,a.envFile&&(a.envFile=r(a.envFile)),s=a}else{let a={...o};a.url=r(a.url),a.headers&&(a.headers=Object.fromEntries(Object.entries(a.headers).map(([l,c])=>[l,r(c)]))),s=a}return{name:i.name,configuration:s,uri:i.uri}}var X0=/\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;function Z0(i){return ps(i,t=>{if(y.isUri(t))return t;if(typeof t=="string"){let e=t.replace(X0,"${env:$1}");return e!==t?e:void 0}})}var ex={SessionStart:"SessionStart",SessionEnd:"SessionEnd",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop",ErrorOccurred:"ErrorOccurred",sessionStart:"SessionStart",sessionEnd:"SessionEnd",userPromptSubmitted:"UserPromptSubmit",preToolUse:"PreToolUse",postToolUse:"PostToolUse",agentStop:"Stop",subagentStop:"SubagentStop",errorOccurred:"ErrorOccurred"};function tx(i){if(i.type!==void 0&&i.type!=="command")return;let t=typeof i.command=="string"&&i.command.length>0,e=typeof i.bash=="string"&&i.bash.length>0,n=typeof i.powershell=="string"&&i.powershell.length>0,r=typeof i.windows=="string"&&i.windows.length>0,o=typeof i.linux=="string"&&i.linux.length>0,s=typeof i.osx=="string"&&i.osx.length>0;if(!t&&!e&&!n&&!r&&!o&&!s)return;let a=r?i.windows:n?i.powershell:void 0,l=o?i.linux:e?i.bash:void 0,c=s?i.osx:e?i.bash:void 0,u=typeof i.timeout=="number"?i.timeout:typeof i.timeoutSec=="number"?i.timeoutSec:void 0;return{...t&&{command:i.command},...a&&{windows:a},...l&&{linux:l},...c&&{osx:c},...typeof i.env=="object"&&i.env!==null&&{env:i.env},...u!==void 0&&{timeout:u}}}function wb(i,t,e){let n=tx(i);if(!n)return;let r,o=typeof i.cwd=="string"?i.cwd:void 0;if(o){let s=xb(o,e);Gn(s)?r=y.file(s):t&&(r=Q(t,s))}else r=t;return{...n,cwd:r}}function nx(i,t,e){if(!i||typeof i!="object")return[];let n=i,r=[],o=n.hooks;if(o!==void 0&&Array.isArray(o))for(let s of o){if(!s||typeof s!="object")continue;let a=wb(s,t,e);a&&r.push(a)}else{let s=wb(n,t,e);s&&r.push(s)}return r}function Rb(i,t,e,n){if(!t||typeof t!="object")return[];let r=t;if(r.disableAllHooks===!0)return[];let o=r.hooks;if(!o||typeof o!="object")return[];let s=o,a=[];for(let l of Object.keys(s)){let c=ex[l];if(!c)continue;let u=s[l];if(!Array.isArray(u))continue;let d=[];for(let f of u)d.push(...nx(f,e,n));d.length>0&&a.push({type:c,commands:d,uri:i,originalId:l})}return a}function Eb(i,t,e,n,r,o,s){let a=e.fsPath,l=t,c=d=>{for(let f of["command","windows","linux","osx"])typeof d[f]=="string"&&(d[f]=Q0(d[f],a,o));(!d.env||typeof d.env!="object")&&(d.env={}),d.env[s]=a};for(let d of Object.values(l.hooks??{}))if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let g=f;if(Array.isArray(g.hooks))for(let h of g.hooks)c(h);else c(g)}return Rb(i,ps(t,d=>typeof d=="string"?d.replaceAll(o,e.fsPath):void 0),n,r)}async function Cf(i,t){try{let e=await t.readFile(i);return Bl(e.value.toString())}catch{return}}async function Js(i,t){try{return await t.resolve(i),!0}catch{return!1}}var Wc=".md";async function rx(i,t,e){let n=new Set,r=[],o=(s,a)=>{n.has(s)||(n.add(s),r.push({uri:a,name:s}))};for(let s of t){let a=y.joinPath(s,"SKILL.md");if(await Js(a,e)){o(xe(s),a);continue}let l;try{l=await e.resolve(s)}catch{continue}if(!(!l.isDirectory||!l.children))for(let c of l.children){let u=y.joinPath(c.resource,"SKILL.md");await Js(u,e)&&o(xe(c.resource),u)}}if(r.length===0){let s=y.joinPath(i,"SKILL.md");await Js(s,e)&&o(xe(i),s)}return r.sort((s,a)=>s.name.localeCompare(a.name)),r}async function ix(i,t){let e=new Set,n=[],r=(o,s)=>{e.has(o)||(e.add(o),n.push({uri:s,name:o}))};for(let o of i){let s;try{s=await t.resolve(o)}catch{continue}if(s.isFile&&os(o).toLowerCase()===Wc){r(xe(o).slice(0,-Wc.length),o);continue}if(!(!s.isDirectory||!s.children))for(let a of s.children)!a.isFile||os(a.resource).toLowerCase()!==Wc||r(xe(a.resource).slice(0,-Wc.length),a.resource)}return n.sort((o,s)=>o.name.localeCompare(s.name)),n}async function ox(i,t,e,n,r,o){for(let s of t){let a=await Cf(s,n);if(a)return e.parseHooks(s,a,i,r,o)}return[]}async function sx(i,t,e,n){let r=new Map;for(let o of i){let s=await Cf(o,n);for(let a of Pb(o,s,t,e))r.has(a.name)||r.set(a.name,a)}return[...r.values()].sort((o,s)=>o.name.localeCompare(s.name))}function Pb(i,t,e,n){let r=K0(t);if(!r)return[];let o=[];for(let[s,a]of Object.entries(r)){let l=G0(a);if(!l)continue;let c={name:s,configuration:l,uri:i};n.pluginRootToken&&n.pluginRootEnvVar&&(c=Y0(c,e,n.pluginRootToken,n.pluginRootEnvVar)),c=Z0(c),o.push(c)}return o}async function $c(i,t,e,n,r){let o=await j0(i,t),s=await Cf(Q(i,o.manifestPath),t),a=s&&typeof s=="object"?s:void 0,l=Vc(i,o.hookConfigPath,Uc(a?.hooks),r),c=Vc(i,".mcp.json",Uc(a?.mcpServers),r),u=Vc(i,"skills",Uc(a?.skills),r),d=Vc(i,"agents",Uc(a?.agents),r),f=[],g=a?.mcpServers;g&&typeof g=="object"&&!Array.isArray(g)&&!ke(g,{paths:!0})&&(f=Pb(Q(i,o.manifestPath),{mcpServers:g},i.fsPath,o));let h=[],v=a?.hooks;if(v&&typeof v=="object"&&!Array.isArray(v)&&!ke(v,{paths:!0})){let w=Q(i,o.manifestPath);h=o.parseHooks(w,{hooks:v},i,e,n)}let[S,_,I,b]=await Promise.all([h.length>0?Promise.resolve(h):ox(i,l,o,t,e,n),f.length>0?Promise.resolve(f):sx(c,i.fsPath,o,t),rx(i,u,t),ix(d,t)]);return{hooks:S,mcpServers:_,skills:I,agents:b}}function Bc(i,t){if(i.length===0||i.charCodeAt(0)!==47)return;let e=1;for(;e<i.length;){let r=i.charCodeAt(e);if(r===32||r===9||r===10||r===13)break;e++}if(t<0||t>e)return;let n=i.slice(0,e);return{token:n,typed:n.slice(1),rangeStart:0,rangeEnd:e}}var qc=class extends C{constructor(e,n,r,o=ax()){super();this._getAgent=e;this._fileService=n;this._logService=r;this._userHome=o;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["/"];this._skillCache=new Map;this._watchedAgents=new Set}async provideCompletionItems(e,n){let r=Bc(e.text,e.offset);if(!r)return[];let o=this._getAgent(e.session);if(!o)return[];this._watchAgent(o);let s=await this._getCandidates(o,typeof e.session=="string"?y.parse(e.session):e.session);if(n.isCancellationRequested||s.length===0)return[];let a=new Set,l=new Map;for(let c of s){let u=this._resolvePluginRoot(c),d=this._cacheKey(o.id,u,c.customization.nonce);a.add(d);let f=await this._getCachedSkills(o.id,d,u);if(n.isCancellationRequested)return[];for(let g of f)r.typed.length>0&&!g.slashName.startsWith(r.typed)||l.has(g.slashName)||l.set(g.slashName,g)}return this._pruneUnreachableCacheEntries(o.id,a),[...l.values()].map(c=>({insertText:"/"+c.slashName+" ",rangeStart:r.rangeStart,rangeEnd:r.rangeEnd,attachment:{type:"simple",label:"/"+c.slashName,_meta:{uri:c.uri.toString(),name:c.slashName,displayName:c.displayName,...c.description!==void 0?{description:c.description}:{}}}}))}async _getCandidates(e,n){let r=[];if(e.getSessionCustomizations)try{r=await e.getSessionCustomizations(n)}catch(l){this._logService.warn(`[AgentHostSkillCompletionProvider] Error reading session customizations for '${n.toString()}': ${Ct(l)}`)}let o=new Set,s=[];for(let l of r)o.add(l.customization.uri),s.push({customization:l.customization,enabled:l.enabled,...l.clientId!==void 0?{clientId:l.clientId}:{},...l.status!==void 0?{status:l.status}:{}});let a=e.getCustomizations?.()??[];for(let l of a)o.has(l.uri)||s.push({customization:l,enabled:!0});return s.filter(l=>l.enabled&&l.status!=="loading"&&l.status!=="error")}_watchAgent(e){!e.onDidCustomizationsChange||this._watchedAgents.has(e.id)||(this._watchedAgents.add(e.id),this._register(e.onDidCustomizationsChange(()=>this._clearCache(e.id))))}_resolvePluginRoot(e){let n=y.parse(e.customization.uri);return e.clientId?ho(n,e.clientId):n}_cacheKey(e,n,r){return r?`${e}::${n.toString()}::${r}`:`${e}::${n.toString()}`}_getCachedSkills(e,n,r){let o=this._skillCache.get(n);return o||(o={agentId:e,value:this._readSkills(r)},this._skillCache.set(n,o)),o.value}async _readSkills(e){try{let n=await $c(e,this._fileService,void 0,this._userHome);return await Promise.all(n.skills.map(r=>this._readSkillMetadata(r)))}catch(n){return this._logService.warn(`[AgentHostSkillCompletionProvider] Error parsing customization '${e.toString()}': ${Ct(n)}`),[]}}async _readSkillMetadata(e){let n=e.name,r;try{let o=await this._fileService.readFile(e.uri),s=Tb(o.value.toString());n=s?.getStringValue("name")?.trim()||e.name,r=s?.getStringValue("description")?.trim()||void 0}catch(o){this._logService.trace(`[AgentHostSkillCompletionProvider] Error reading skill metadata '${e.uri.toString()}': ${Ct(o)}`)}return{uri:e.uri,slashName:e.name,displayName:n,...r!==void 0?{description:r}:{}}}_clearCache(e){for(let[n,r]of this._skillCache)r.agentId===e&&this._skillCache.delete(n)}_pruneUnreachableCacheEntries(e,n){for(let[r,o]of this._skillCache)o.agentId===e&&!n.has(r)&&this._skillCache.delete(r)}};function ax(){return process.env.HOME??process.env.USERPROFILE??""}import*as kb from"child_process";import{rgPath as lx}from"@vscode/ripgrep";var cx=5e4,dx=3e4,ux=lx.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),yo=class extends C{constructor(e){super();this._logService=e;this._cache=new Map;this._activeChildren=new Set}dispose(){for(let e of this._activeChildren)try{e.kill()}catch{}this._activeChildren.clear(),this._cache.clear(),super.dispose()}async getFiles(e,n){if(e.scheme!==te.file)return[];let r=e.toString(),o=Date.now(),s=this._cache.get(r),a;if(s&&s.expiresAt>o)a=s.promise;else{a=this._enumerate(e);let l={promise:a,expiresAt:o+dx};this._cache.set(r,l),a.catch(()=>{this._cache.get(r)===l&&this._cache.delete(r)})}if(n.isCancellationRequested)throw new ae;return n===Fe.None?a:new Promise((l,c)=>{let u=n.onCancellationRequested(()=>{u.dispose(),c(new ae)});a.then(d=>{u.dispose(),l(d)},d=>{u.dispose(),c(d)})})}_enumerate(e){return new Promise(n=>{let r=e.fsPath,o=["--files","--hidden","--no-require-git","--follow","--no-config","--glob","!.git"],s;try{s=kb.spawn(ux,o,{cwd:r})}catch(g){this._logService.warn(`[AgentHostWorkspaceFiles] Failed to spawn ripgrep: ${g}`),n([]);return}this._activeChildren.add(s);let a=[],l="",c=!1,u=!1,d=g=>{u||(u=!0,this._activeChildren.delete(s),n(g))};s.stdout.setEncoding("utf8"),s.stdout.on("data",g=>{if(c)return;l+=g;let h;for(;(h=l.indexOf(`
`))>=0;){let v=l.slice(0,h).replace(/\r$/,"");if(l=l.slice(h+1),!!v&&(a.push(y.joinPath(e,v)),a.length>=cx)){c=!0;try{s.kill()}catch{}break}}}),s.stderr.setEncoding("utf8");let f="";s.stderr.on("data",g=>{f+=g}),s.on("error",g=>{this._logService.warn(`[AgentHostWorkspaceFiles] ripgrep error: ${g}`),d([])}),s.on("close",()=>{if(!c&&l.length>0){let g=l.replace(/\r$/,"");g&&a.push(y.joinPath(e,g)),l=""}f&&this._logService.trace(`[AgentHostWorkspaceFiles] ripgrep stderr: ${f}`),d(a)})})}};yo=R([T(0,V)],yo);var px=3e4,Hc=class extends C{constructor(e,n,r,o,s,a,l=sc){super();this._logService=e;this._fileService=n;this._sessionDataService=r;this._productService=o;this._gitService=s;this._rootConfigResource=a;this._telemetryService=l;this._onDidAction=this._register(new x);this.onDidAction=this._onDidAction.event;this._onDidNotification=this._register(new x);this.onDidNotification=this._onDidNotification.event;this._providers=new Map;this._sessionToProvider=new Map;this._providerSubscriptions=this._register(new $);this._agents=nn("agents",[]);this._skillCompletionProviderRegistered=!1;this._resourceSubscribers=new Te;this._pendingSessionGc=this._register(new xa);this._clientDispatchQueues=new Map;this._logService.info("AgentService initialized"),this._stateManager=this._register(new fo(e)),this._register(this._stateManager.onDidEmitEnvelope(g=>this._onDidAction.fire(g))),this._register(this._stateManager.onDidEmitNotification(g=>this._onDidNotification.fire(g)));let c=this._register(new Ki(this._stateManager,this._logService,this._rootConfigResource));this._configurationService=c,pc(this._telemetryService,this._stateManager.rootState.config?.values);let u=new rr([V,this._logService],[Ut,this._productService],[ut,c],[ln,this._gitService],[zi,this._telemetryService]),d=this._register(new Wi(u,!0));this._completions=this._register(d.createInstance(mo));let f=this._register(d.createInstance(yo));this._register(this._completions.registerProvider(new Mc(this._stateManager,f))),this._sideEffects=this._register(d.createInstance(mr,this._stateManager,{getAgent:g=>this._findProviderForSession(g),sessionDataService:this._sessionDataService,agents:this._agents,onTurnComplete:g=>{let h=this._stateManager.getSessionState(g)?.summary.workingDirectory;this._attachGitState(y.parse(g),h?y.parse(h):void 0)}})),this._terminalManager=this._register(d.createInstance(lo,this._stateManager))}get stateManager(){return this._stateManager}get configurationService(){return this._configurationService}get terminalManager(){return this._terminalManager}get completionsService(){return this._completions}get completionTriggerCharacters(){return this._completions.triggerCharacters}registerProvider(e){if(this._providers.has(e.id))throw new Error(`Agent provider already registered: ${e.id}`);this._logService.info(`Registering agent provider: ${e.id}`),this._providers.set(e.id,e),this._providerSubscriptions.add(this._sideEffects.registerProgressListener(e)),e.onDidMaterializeSession&&this._providerSubscriptions.add(e.onDidMaterializeSession(n=>this._onDidMaterializeSession(n))),this._registerSkillCompletionProvider(),this._defaultProvider||(this._defaultProvider=e.id),this._updateAgents()}_registerSkillCompletionProvider(){if(this._skillCompletionProviderRegistered)return;this._skillCompletionProviderRegistered=!0;let e=this._register(new qc(n=>this._findProviderForSession(n),this._fileService,this._logService));this._register(this._completions.registerProvider(e))}async authenticate(e){this._logService.trace(`[AgentService] authenticate called: resource=${e.resource}`);let n=[...this._providers.values()].filter(s=>s.getProtectedResources().some(a=>a.resource===e.resource)),r=await Promise.allSettled(n.map(s=>s.authenticate(e.resource,e.token))),o=!1;for(let s=0;s<r.length;s++){let a=r[s];a.status==="fulfilled"?o||=a.value:this._logService.error(a.reason,`[AgentService] Provider '${n[s].id}' authenticate threw for resource=${e.resource}`)}return{authenticated:o}}async listSessions(){this._logService.trace("[AgentService] listSessions called");let n=(await Promise.all([...this._providers.values()].map(s=>s.listSessions()))).flat(),o=(await Promise.all(n.map(async s=>{try{let a=await this._sessionDataService.tryOpenDatabase(s.session);if(!a)return s;try{let l=await a.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0}),c=s;if(l.customTitle&&(c={...c,summary:l.customTitle}),l.isRead!==void 0&&(c={...c,isRead:l.isRead==="true"}),l.isArchived!==void 0?c={...c,isArchived:l.isArchived==="true"}:l.isDone!==void 0&&(c={...c,isArchived:l.isDone==="true"}),l.diffs)try{c={...c,diffs:JSON.parse(l.diffs)}}catch{}return c}finally{a.dispose()}}catch(a){this._logService.warn(`[AgentService] Failed to read session metadata overlay for ${s.session}`,a)}return s}))).map(s=>{let a=this._stateManager.getSessionState(s.session.toString());return a?{...s,summary:a.summary.title||s.summary,status:a.summary.status,activity:a.summary.activity,model:a.summary.model??s.model}:s});return this._logService.trace(`[AgentService] listSessions returned ${o.length} sessions`),o}async createSession(e){let n=e?.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);if(e?.fork){let c=this._stateManager.getSessionState(e.fork.session.toString())?.turns.slice(0,e.fork.turnIndex+1)??[];if(c.length===0)e={...e,fork:void 0};else{let u=new Map;for(let d of c)u.set(d.id,H());e={...e,fork:{...e.fork,turnIdMapping:u}}}}this._logService.trace("[AgentService] createSession: initializing auto-approver and creating session...");let[,o]=await Promise.all([this._sideEffects.initialize(),r.createSession(e)]),s=o.session;this._logService.trace("[AgentService] createSession: initialization complete"),this._cancelPendingSessionGc(s),this._logService.trace(`[AgentService] createSession: provider=${r.id} model=${e?.model?.id??"(default)"}`),this._sessionToProvider.set(s.toString(),r.id),this._logService.trace(`[AgentService] createSession returned: ${s.toString()}`);let a=await this._resolveCreatedSessionConfig(r,e);if(e?.fork){let l=this._stateManager.getSessionState(e.fork.session.toString()),c=[];l&&e.fork.turnIdMapping&&(c=l.turns.slice(0,e.fork.turnIndex+1).map(f=>({...f,id:e.fork.turnIdMapping.get(f.id)??H()})));let u=this._buildInitialSummary(r,s,e,o,l?.summary.title??"Forked Session"),d=this._stateManager.createSession(u);d.config=a,d.turns=c,d.activeClient=e.activeClient}else{let l=this._buildInitialSummary(r,s,e,o,""),c=this._stateManager.createSession(l,{emitNotification:!o.provisional});c.config=a,c.activeClient=e?.activeClient}return a?.values&&Object.keys(a.values).length>0&&!o.provisional&&this._persistConfigValues(s,a.values),o.provisional||(this._stateManager.dispatchServerAction({type:"session/ready",session:s.toString()}),this._attachGitState(s,o.workingDirectory??e?.workingDirectory)),s}_buildInitialSummary(e,n,r,o,s){let a=Date.now();return{resource:n.toString(),provider:e.id,title:s,status:1,createdAt:a,modifiedAt:a,...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:r?.model,workingDirectory:(o.workingDirectory??r?.workingDirectory)?.toString()}}_onDidMaterializeSession(e){let n=e.session.toString(),r=this._stateManager.getSessionState(n);if(!r){this._logService.warn(`[AgentService] onDidMaterializeSession for unknown session: ${n}`);return}let o={...r.summary,...e.project?{project:{uri:e.project.uri.toString(),displayName:e.project.displayName}}:{},workingDirectory:e.workingDirectory?.toString()??r.summary.workingDirectory,modifiedAt:Date.now()},s=r.config?.values;s&&Object.keys(s).length>0&&this._persistConfigValues(e.session,s),this._stateManager.markSessionPersisted(n,o),this._stateManager.dispatchServerAction({type:"session/ready",session:n}),this._attachGitState(e.session,e.workingDirectory)}_attachGitState(e,n){n&&this._gitService.getSessionGitState(n).then(r=>{if(!r)return;let o=e.toString(),s=this._stateManager.getSessionState(o)?._meta;if(Ue(Ip(s),r))return;let a=Ty(s,r);this._stateManager.setSessionMeta(o,a)},r=>{this._logService.warn(`[AgentService] Failed to compute git state for ${e}`,r)})}_persistConfigValues(e,n){let r;try{r=this._sessionDataService.openDatabase(e)}catch(o){this._logService.warn(`[AgentService] Failed to open session database to persist configValues for ${e.toString()}: ${Ct(o)}`);return}r.object.setMetadata("configValues",JSON.stringify(n)).catch(o=>{this._logService.warn(`[AgentService] Failed to persist configValues for ${e.toString()}: ${Ct(o)}`)}).finally(()=>{r.dispose()})}async _resolveCreatedSessionConfig(e,n){if(!(!n?.config&&!n?.workingDirectory))try{let r=await e.resolveSessionConfig({provider:e.id,workingDirectory:n.workingDirectory,config:n.config});return{schema:r.schema,values:r.values}}catch(r){return this._logService.error(`[AgentService] Failed to resolve created session config for provider ${e.id}`,r),n.config?{schema:{type:"object",properties:{}},values:n.config}:void 0}}async resolveSessionConfig(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.resolveSessionConfig(e)}async sessionConfigCompletions(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.sessionConfigCompletions(e)}async completions(e){return this._completions.completions(e)}async getCompletionTriggerCharacters(){return this._completions.triggerCharacters}async disposeSession(e){this._logService.trace(`[AgentService] disposeSession: ${e.toString()}`);let n=this._findProviderForSession(e);n&&(await n.disposeSession(e),this._sessionToProvider.delete(e.toString())),this._sideEffects.removeSubagentSessions(e.toString()),this._stateManager.deleteSession(e.toString())}async createTerminal(e){await this._terminalManager.createTerminal(e)}async disposeTerminal(e){this._terminalManager.disposeTerminal(e.toString())}async subscribe(e,n){this._logService.trace(`[AgentService] subscribe: ${e.toString()}`);let r=e.toString();this.addSubscriber(e,n);try{let o=this._terminalManager.getTerminalState(r);if(o)return{resource:r,state:o,fromSeq:this._stateManager.serverSeq};let s=this._stateManager.getSnapshot(r);if(!s){let l=Xe(e);l?await this._restoreSubagentSession(r,l.parentSession):await this.restoreSession(e),s=this._stateManager.getSnapshot(r)}if(!s)throw new Error(`Cannot subscribe to unknown resource: ${r}`);let a=this._stateManager.getSessionState(r);if(a&&Ip(a._meta)===void 0){let l=a.summary?.workingDirectory;this._attachGitState(e,l?y.parse(l):void 0)}return s}catch(o){throw this.unsubscribe(e,n),o}}addSubscriber(e,n){let r=this._resourceSubscribers.get(e);r||(r=new Set,this._resourceSubscribers.set(e,r)),r.add(n),this._cancelPendingSessionGc(e)}unsubscribe(e,n){let r=this._resourceSubscribers.get(e);r&&(r.delete(n),!(r.size>0)&&(this._resourceSubscribers.delete(e),!this._maybeScheduleSessionGc(e)&&this._maybeEvictIdleSession(e)))}_maybeScheduleSessionGc(e){if(Xe(e))return!1;let n=e.toString(),r=this._stateManager.getSessionState(n);return!r||r.turns.length>0||r.activeTurn!==void 0?!1:(this._pendingSessionGc.set(e,za(()=>{this._pendingSessionGc.deleteAndDispose(e),this._runSessionGc(e).catch(o=>{this._logService.error(o,`[AgentService] GC failed for ${n}`)})},px)),!0)}_cancelPendingSessionGc(e){this._pendingSessionGc.deleteAndDispose(e)}async _runSessionGc(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=this._stateManager.getSessionState(n);r&&(r.turns.length>0||r.activeTurn!==void 0)||(this._logService.info(`[AgentService] GC: disposing empty unsubscribed session ${n}`),await this.disposeSession(e))}_maybeEvictIdleSession(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=e;{let l;for(;l=Xe(r);)r=l.parentSession}if(this._resourceSubscribers.has(r))return;for(let l of this._resourceSubscribers.keys())if(this._isSubagentDescendantOf(l,r))return;let o=r.toString(),s=this._stateManager.getSessionState(o);if(!s||s.activeTurn!==void 0)return;this._logService.trace(`[AgentService] Evicting idle session: ${o} (triggered by unsubscribe of ${n})`);let a=Iy(r);for(let l of this._stateManager.getSessionUrisWithPrefix(a))this._stateManager.removeSession(l);this._stateManager.removeSession(o)}_isSubagentDescendantOf(e,n){let r=Xe(e);for(;r;){if(xu(r.parentSession,n))return!0;r=Xe(r.parentSession)}return!1}dispatchAction(e,n,r){this._logService.trace(`[AgentService] dispatchAction: type=${e.type}, clientId=${n}, clientSeq=${r}`,e);let o=this._clientDispatchQueues.get(n);if(!o&&!this._needsAsyncRewrite(e)){this._dispatchActionNow(e,n,r);return}let s=(o??Promise.resolve()).then(async()=>{let a=this._needsAsyncRewrite(e)?await this._rewriteUserMessageAttachments(e,n):e;this._dispatchActionNow(a,n,r)}).catch(a=>{this._logService.error(`[AgentService] async dispatchAction failed: ${Ct(a)}`)});this._clientDispatchQueues.set(n,s.finally(()=>{this._clientDispatchQueues.get(n)===s&&this._clientDispatchQueues.delete(n)}))}_dispatchActionNow(e,n,r){let o={clientId:n,clientSeq:r};this._stateManager.dispatchClientAction(e,o),e.type==="root/configChanged"&&this._configurationService.persistRootConfig(),this._sideEffects.handleAction(e)}_needsAsyncRewrite(e){if(e.type!=="session/turnStarted"&&e.type!=="session/pendingMessageSet")return!1;let n=this._attachmentsRoot(y.parse(e.session)).toString();return!!e.userMessage.attachments?.some(r=>this._isRewritableAttachment(r,n))}_isRewritableAttachment(e,n){return e.type==="embeddedResource"?!0:e.type==="resource"?!(e.displayKind==="directory"||e.uri.startsWith(n)):!1}_attachmentsRoot(e){return Q(this._sessionDataService.getSessionDataDir(e),Rl)}async _rewriteUserMessageAttachments(e,n){let r=e.userMessage.attachments;if(!r?.length)return e;let o=this._attachmentsRoot(y.parse(e.session)),s=o.toString(),a=await Promise.all(r.map(l=>this._rewriteSingleAttachment(l,o,s,n)));return{...e,userMessage:{...e.userMessage,attachments:a}}}async _rewriteSingleAttachment(e,n,r,o){try{if(e.type==="embeddedResource"){let s=tr(e.data).buffer,a=this._attachmentBasename(e.label,e.contentType);return this._writeAndRewrite(e,s,a,n)}if(e.type==="resource"&&this._isRewritableAttachment(e,r)){let s=y.parse(e.uri),a=await this._readClientResource(s,o),l=this._attachmentBasename(e.label,rl(s.path));return this._writeAndRewrite(e,a,l,n)}}catch(s){this._logService.warn(`[AgentService] Failed to rewrite attachment '${e.label}': ${Ct(s)}`)}return e}async _readClientResource(e,n){let r=n?ho(e,n):e;try{return(await this._fileService.readFile(r)).value.buffer}catch(o){if(r!==e)return(await this._fileService.readFile(e)).value.buffer;throw o}}async _writeAndRewrite(e,n,r,o){let s=H(),a=Q(o,s,r);await this._fileService.writeFile(a,P.wrap(n));let l={type:"resource",uri:a.toString(),label:e.label,displayKind:e.displayKind,range:e.range,_meta:e._meta};return e.type==="resource"&&e.selection&&(l.selection=e.selection),l}_attachmentBasename(e,n){let r=(e||"attachment").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"_");if(os(y.file(r)))return r;let o=n?Ih(n):void 0;return o?`${r}${o}`:r}async resourceList(e){let n;try{n=await this._fileService.resolve(e)}catch{throw new W(Oe.NotFound,`Directory not found: ${e.toString()}`)}if(!n.isDirectory)throw new W(Oe.NotFound,`Not a directory: ${e.toString()}`);return{entries:(n.children??[]).map(o=>({name:o.name,type:o.isDirectory?"directory":"file"}))}}async restoreSession(e){let n=e.toString();if(this._stateManager.getSessionState(n))return;let r=this._findProviderForSession(e);if(!r)throw new W(or,`No agent for session: ${n}`);let o=await this._getSessionMetadataForRestore(r,e);if(!o)throw new W(or,`Session not found on backend: ${n}`);let s;try{s=await r.getSessionMessages(e)}catch(S){if(S instanceof W)throw S;let _=S instanceof Error?S.message:String(S);throw new W(Bi,`Failed to restore session ${n}: ${_}`)}let a=o.summary??"Session",l,c,u,d,f=this._sessionDataService.tryOpenDatabase?.(e);if(f)try{let S=await f;if(S)try{let _=await S.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0,configValues:!0});if(_.customTitle&&(a=_.customTitle),_.isRead!==void 0&&(l=_.isRead==="true"),_.isArchived!==void 0?c=_.isArchived==="true":_.isDone!==void 0&&(c=_.isDone==="true"),_.diffs)try{u=JSON.parse(_.diffs)}catch{}if(_.configValues)try{d=JSON.parse(_.configValues)}catch(I){this._logService.warn(`[AgentService] Failed to parse persisted configValues for ${n}: ${Ct(I)}`)}}finally{S.dispose()}}catch{}let g=1;l&&(g|=32),c&&(g|=64);let h={resource:n,provider:r.id,title:a,status:g,createdAt:o.startTime,modifiedAt:o.modifiedTime,...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:o.model,workingDirectory:o.workingDirectory?.toString(),diffs:u};this._stateManager.restoreSession(h,[...s]),o._meta&&this._stateManager.setSessionMeta(n,o._meta);let v=await this._resolveCreatedSessionConfig(r,{workingDirectory:o.workingDirectory,config:d});if(v){let S=this._stateManager.getSessionState(n);S&&(S.config=v)}this._logService.info(`[AgentService] Restored session ${n} with ${s.length} turns`),this._attachGitState(e,o.workingDirectory)}async _getSessionMetadataForRestore(e,n){let r=n.toString();if(e.getSessionMetadata)try{return await e.getSessionMetadata(n)}catch(o){if(o instanceof W)throw o;try{return await this._getSessionMetadataFromCatalog(e,n)}catch(s){if(s instanceof W){let a=o instanceof Error?o.message:String(o);throw new W(s.code,`Failed to get session metadata for ${r}: ${a}; ${s.message}`,s.data)}throw s}}return this._getSessionMetadataFromCatalog(e,n)}async _getSessionMetadataFromCatalog(e,n){let r=n.toString(),o;try{o=await e.listSessions()}catch(s){if(s instanceof W)throw s;let a=s instanceof Error?s.message:String(s);throw new W(Bi,`Failed to list sessions for ${r}: ${a}`)}return o.find(s=>s.session.toString()===r)}async resourceRead(e){let n=Wy(e.toString());if(n)return this._fetchSessionDbContent(n);let r=Ly(e.toString());if(r)return this._fetchGitBlobContent(r);try{return{data:(await this._fileService.readFile(e)).value.toString(),encoding:"utf-8",contentType:"text/plain"}}catch{throw new W(Oe.NotFound,`Content not found: ${e.toString()}`)}}async resourceWrite(e){let n=typeof e.uri=="string"?y.parse(e.uri):y.revive(e.uri),r;e.encoding==="base64"?r=tr(e.data):r=P.fromString(e.data);try{return e.createOnly?await this._fileService.createFile(n,r,{overwrite:!1}):await this._fileService.writeFile(n,r),{}}catch(o){let s=on(o);throw s==="EntryExists"?new W(Oe.AlreadyExists,`File already exists: ${n.toString()}`):s==="NoPermissions"?new W(Oe.PermissionDenied,`Permission denied: ${n.toString()}`):new W(Oe.NotFound,`Failed to write file: ${n.toString()}`)}}async resourceCopy(e){let n=y.parse(e.source),r=y.parse(e.destination);try{return await this._fileService.copy(n,r,!e.failIfExists),{}}catch(o){let s=on(o);throw s==="EntryExists"?new W(Oe.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new W(Oe.PermissionDenied,`Permission denied: ${n.toString()}`):new W(Oe.NotFound,`Source not found: ${n.toString()}`)}}async resourceDelete(e){let n=y.parse(e.uri);try{return await this._fileService.del(n,{recursive:e.recursive}),{}}catch(r){throw on(r)==="NoPermissions"?new W(Oe.PermissionDenied,`Permission denied: ${n.toString()}`):new W(Oe.NotFound,`Resource not found: ${n.toString()}`)}}async resourceMove(e){let n=y.parse(e.source),r=y.parse(e.destination);try{return await this._fileService.move(n,r,!e.failIfExists),{}}catch(o){let s=on(o);throw s==="EntryExists"?new W(Oe.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new W(Oe.PermissionDenied,`Permission denied: ${n.toString()}`):new W(Oe.NotFound,`Source not found: ${n.toString()}`)}}async shutdown(){this._logService.info("AgentService: shutting down all providers...");let e=[];for(let n of this._providers.values())e.push(n.shutdown());await Promise.all(e),this._sessionToProvider.clear()}async _fetchSessionDbContent(e){let n=y.parse(e.sessionUri),r=this._sessionDataService.openDatabase(n);try{let o=await r.object.readFileEditContent(e.toolCallId,e.filePath);if(!o)throw new W(Oe.NotFound,`File edit not found: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);let s=e.part==="before"?o.beforeContent:o.afterContent;if(!s)throw new W(Oe.NotFound,`No ${e.part} content for: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);return{data:new TextDecoder().decode(s),encoding:"utf-8",contentType:"text/plain"}}finally{r.dispose()}}async _fetchGitBlobContent(e){if(!this._gitService)throw new W(Oe.NotFound,`git service unavailable for: ${e.repoRelativePath}`);let n=this._stateManager.getSessionState(e.sessionUri)?.summary.workingDirectory;if(!n)throw new W(Oe.NotFound,`Session has no working directory for git-blob URI: ${e.sessionUri}`);let r=await this._gitService.showBlob(y.parse(n),e.sha,e.repoRelativePath);if(!r)throw new W(Oe.NotFound,`git blob not found: ${e.sha}:${e.repoRelativePath}`);return{data:r.toString(),encoding:"utf-8",contentType:"text/plain"}}async _restoreSubagentSession(e,n){let r=n.toString();if(!this._stateManager.getSessionState(r))try{await this.restoreSession(n)}catch{this._logService.warn(`[AgentService] Cannot restore parent session for subagent: ${r}`);return}let o=this._stateManager.getSessionState(r);if(!o)return;let s=[...o.turns];o.activeTurn&&s.push(o.activeTurn);let a;for(let d of s){for(let f of d.responseParts)if(f.kind==="toolCall"){let g=f.toolCall,h=g.status==="completed"||g.status==="running"?g.content:void 0;if(h){for(let v of h)if(v.type==="subagent"&&v.resource===e){a=v;break}}}if(a)break}let l=[],c=this._findProviderForSession(n);if(c)try{l=await c.getSessionMessages(y.parse(e))}catch(d){this._logService.warn(`[AgentService] Failed to load subagent turns for ${e}`,d)}let u=a?.title??"Subagent";this._stateManager.restoreSession({resource:e,provider:"subagent",title:u,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...o?.summary.project?{project:o.summary.project}:{}},[...l]),this._logService.info(`[AgentService] Restored subagent session: ${e} with ${l.length} turn(s)`)}_findProviderForSession(e){let n=typeof e=="string"?e:e.toString(),r=this._sessionToProvider.get(n);if(r)return this._providers.get(r);let o=j.provider(e);if(o)return this._providers.get(o);if(this._defaultProvider)return this._providers.get(this._defaultProvider)}_updateAgents(){this._agents.set([...this._providers.values()],void 0)}dispose(){for(let e of this._providers.values())e.dispose();this._providers.clear(),super.dispose()}};import{CopilotClient as uw}from"@github/copilot-sdk";import{rgPath as pw}from"@vscode/ripgrep";import*as Zr from"fs/promises";var Ab=Object.create(null);function p(i,t){if(Ee(t)){let e=Ab[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return Ab[i]=t,{id:i}}var Db={add:p("add",6e4),plus:p("plus",6e4),gistNew:p("gist-new",6e4),repoCreate:p("repo-create",6e4),lightbulb:p("lightbulb",60001),lightBulb:p("light-bulb",60001),repo:p("repo",60002),repoDelete:p("repo-delete",60002),gistFork:p("gist-fork",60003),repoForked:p("repo-forked",60003),gitPullRequest:p("git-pull-request",60004),gitPullRequestAbandoned:p("git-pull-request-abandoned",60004),recordKeys:p("record-keys",60005),keyboard:p("keyboard",60005),tag:p("tag",60006),gitPullRequestLabel:p("git-pull-request-label",60006),tagAdd:p("tag-add",60006),tagRemove:p("tag-remove",60006),person:p("person",60007),personFollow:p("person-follow",60007),personOutline:p("person-outline",60007),personFilled:p("person-filled",60007),sourceControl:p("source-control",60008),mirror:p("mirror",60009),mirrorPublic:p("mirror-public",60009),star:p("star",60010),starAdd:p("star-add",60010),starDelete:p("star-delete",60010),starEmpty:p("star-empty",60010),comment:p("comment",60011),commentAdd:p("comment-add",60011),alert:p("alert",60012),warning:p("warning",60012),search:p("search",60013),searchSave:p("search-save",60013),logOut:p("log-out",60014),signOut:p("sign-out",60014),logIn:p("log-in",60015),signIn:p("sign-in",60015),eye:p("eye",60016),eyeUnwatch:p("eye-unwatch",60016),eyeWatch:p("eye-watch",60016),circleFilled:p("circle-filled",60017),primitiveDot:p("primitive-dot",60017),closeDirty:p("close-dirty",60017),debugBreakpoint:p("debug-breakpoint",60017),debugBreakpointDisabled:p("debug-breakpoint-disabled",60017),debugHint:p("debug-hint",60017),terminalDecorationSuccess:p("terminal-decoration-success",60017),primitiveSquare:p("primitive-square",60018),edit:p("edit",60019),pencil:p("pencil",60019),info:p("info",60020),issueOpened:p("issue-opened",60020),gistPrivate:p("gist-private",60021),gitForkPrivate:p("git-fork-private",60021),lock:p("lock",60021),mirrorPrivate:p("mirror-private",60021),close:p("close",60022),removeClose:p("remove-close",60022),x:p("x",60022),repoSync:p("repo-sync",60023),sync:p("sync",60023),clone:p("clone",60024),desktopDownload:p("desktop-download",60024),beaker:p("beaker",60025),microscope:p("microscope",60025),vm:p("vm",60026),deviceDesktop:p("device-desktop",60026),file:p("file",60027),more:p("more",60028),ellipsis:p("ellipsis",60028),kebabHorizontal:p("kebab-horizontal",60028),mailReply:p("mail-reply",60029),reply:p("reply",60029),organization:p("organization",60030),organizationFilled:p("organization-filled",60030),organizationOutline:p("organization-outline",60030),newFile:p("new-file",60031),fileAdd:p("file-add",60031),newFolder:p("new-folder",60032),fileDirectoryCreate:p("file-directory-create",60032),trash:p("trash",60033),trashcan:p("trashcan",60033),history:p("history",60034),clock:p("clock",60034),folder:p("folder",60035),fileDirectory:p("file-directory",60035),symbolFolder:p("symbol-folder",60035),logoGithub:p("logo-github",60036),markGithub:p("mark-github",60036),github:p("github",60036),terminal:p("terminal",60037),console:p("console",60037),repl:p("repl",60037),zap:p("zap",60038),symbolEvent:p("symbol-event",60038),error:p("error",60039),stop:p("stop",60039),variable:p("variable",60040),symbolVariable:p("symbol-variable",60040),array:p("array",60042),symbolArray:p("symbol-array",60042),symbolModule:p("symbol-module",60043),symbolPackage:p("symbol-package",60043),symbolNamespace:p("symbol-namespace",60043),symbolObject:p("symbol-object",60043),symbolMethod:p("symbol-method",60044),symbolFunction:p("symbol-function",60044),symbolConstructor:p("symbol-constructor",60044),symbolBoolean:p("symbol-boolean",60047),symbolNull:p("symbol-null",60047),symbolNumeric:p("symbol-numeric",60048),symbolNumber:p("symbol-number",60048),symbolStructure:p("symbol-structure",60049),symbolStruct:p("symbol-struct",60049),symbolParameter:p("symbol-parameter",60050),symbolTypeParameter:p("symbol-type-parameter",60050),symbolKey:p("symbol-key",60051),symbolText:p("symbol-text",60051),symbolReference:p("symbol-reference",60052),goToFile:p("go-to-file",60052),symbolEnum:p("symbol-enum",60053),symbolValue:p("symbol-value",60053),symbolRuler:p("symbol-ruler",60054),symbolUnit:p("symbol-unit",60054),activateBreakpoints:p("activate-breakpoints",60055),archive:p("archive",60056),arrowBoth:p("arrow-both",60057),arrowDown:p("arrow-down",60058),arrowLeft:p("arrow-left",60059),arrowRight:p("arrow-right",60060),arrowSmallDown:p("arrow-small-down",60061),arrowSmallLeft:p("arrow-small-left",60062),arrowSmallRight:p("arrow-small-right",60063),arrowSmallUp:p("arrow-small-up",60064),arrowUp:p("arrow-up",60065),bell:p("bell",60066),bold:p("bold",60067),book:p("book",60068),bookmark:p("bookmark",60069),debugBreakpointConditionalUnverified:p("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:p("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:p("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:p("debug-breakpoint-data-unverified",60072),debugBreakpointData:p("debug-breakpoint-data",60073),debugBreakpointDataDisabled:p("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:p("debug-breakpoint-log-unverified",60074),debugBreakpointLog:p("debug-breakpoint-log",60075),debugBreakpointLogDisabled:p("debug-breakpoint-log-disabled",60075),briefcase:p("briefcase",60076),broadcast:p("broadcast",60077),browser:p("browser",60078),bug:p("bug",60079),calendar:p("calendar",60080),caseSensitive:p("case-sensitive",60081),check:p("check",60082),checklist:p("checklist",60083),chevronDown:p("chevron-down",60084),chevronLeft:p("chevron-left",60085),chevronRight:p("chevron-right",60086),chevronUp:p("chevron-up",60087),chromeClose:p("chrome-close",60088),chromeMaximize:p("chrome-maximize",60089),chromeMinimize:p("chrome-minimize",60090),chromeRestore:p("chrome-restore",60091),circleOutline:p("circle-outline",60092),circle:p("circle",60092),debugBreakpointUnverified:p("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:p("terminal-decoration-incomplete",60092),circleSlash:p("circle-slash",60093),circuitBoard:p("circuit-board",60094),clearAll:p("clear-all",60095),clippy:p("clippy",60096),closeAll:p("close-all",60097),cloudDownload:p("cloud-download",60098),cloudUpload:p("cloud-upload",60099),code:p("code",60100),collapseAll:p("collapse-all",60101),colorMode:p("color-mode",60102),commentDiscussion:p("comment-discussion",60103),creditCard:p("credit-card",60105),dash:p("dash",60108),dashboard:p("dashboard",60109),database:p("database",60110),debugContinue:p("debug-continue",60111),debugDisconnect:p("debug-disconnect",60112),debugPause:p("debug-pause",60113),debugRestart:p("debug-restart",60114),debugStart:p("debug-start",60115),debugStepInto:p("debug-step-into",60116),debugStepOut:p("debug-step-out",60117),debugStepOver:p("debug-step-over",60118),debugStop:p("debug-stop",60119),debug:p("debug",60120),deviceCameraVideo:p("device-camera-video",60121),deviceCamera:p("device-camera",60122),deviceMobile:p("device-mobile",60123),diffAdded:p("diff-added",60124),diffIgnored:p("diff-ignored",60125),diffModified:p("diff-modified",60126),diffRemoved:p("diff-removed",60127),diffRenamed:p("diff-renamed",60128),diff:p("diff",60129),diffSidebyside:p("diff-sidebyside",60129),discard:p("discard",60130),editorLayout:p("editor-layout",60131),emptyWindow:p("empty-window",60132),exclude:p("exclude",60133),extensions:p("extensions",60134),eyeClosed:p("eye-closed",60135),fileBinary:p("file-binary",60136),fileCode:p("file-code",60137),fileMedia:p("file-media",60138),filePdf:p("file-pdf",60139),fileSubmodule:p("file-submodule",60140),fileSymlinkDirectory:p("file-symlink-directory",60141),fileSymlinkFile:p("file-symlink-file",60142),fileZip:p("file-zip",60143),files:p("files",60144),filter:p("filter",60145),flame:p("flame",60146),foldDown:p("fold-down",60147),foldUp:p("fold-up",60148),fold:p("fold",60149),folderActive:p("folder-active",60150),folderOpened:p("folder-opened",60151),gear:p("gear",60152),gift:p("gift",60153),gistSecret:p("gist-secret",60154),gist:p("gist",60155),gitCommit:p("git-commit",60156),gitCompare:p("git-compare",60157),compareChanges:p("compare-changes",60157),gitMerge:p("git-merge",60158),githubAction:p("github-action",60159),githubAlt:p("github-alt",60160),globe:p("globe",60161),grabber:p("grabber",60162),graph:p("graph",60163),gripper:p("gripper",60164),heart:p("heart",60165),home:p("home",60166),horizontalRule:p("horizontal-rule",60167),hubot:p("hubot",60168),inbox:p("inbox",60169),issueReopened:p("issue-reopened",60171),issues:p("issues",60172),italic:p("italic",60173),jersey:p("jersey",60174),json:p("json",60175),bracket:p("bracket",60175),kebabVertical:p("kebab-vertical",60176),key:p("key",60177),law:p("law",60178),lightbulbAutofix:p("lightbulb-autofix",60179),linkExternal:p("link-external",60180),link:p("link",60181),listOrdered:p("list-ordered",60182),listUnordered:p("list-unordered",60183),liveShare:p("live-share",60184),loading:p("loading",60185),location:p("location",60186),mailRead:p("mail-read",60187),mail:p("mail",60188),markdown:p("markdown",60189),megaphone:p("megaphone",60190),mention:p("mention",60191),milestone:p("milestone",60192),gitPullRequestMilestone:p("git-pull-request-milestone",60192),mortarBoard:p("mortar-board",60193),move:p("move",60194),multipleWindows:p("multiple-windows",60195),mute:p("mute",60196),noNewline:p("no-newline",60197),note:p("note",60198),octoface:p("octoface",60199),openPreview:p("open-preview",60200),package:p("package",60201),paintcan:p("paintcan",60202),pin:p("pin",60203),play:p("play",60204),run:p("run",60204),plug:p("plug",60205),preserveCase:p("preserve-case",60206),preview:p("preview",60207),project:p("project",60208),pulse:p("pulse",60209),question:p("question",60210),quote:p("quote",60211),radioTower:p("radio-tower",60212),reactions:p("reactions",60213),references:p("references",60214),refresh:p("refresh",60215),regex:p("regex",60216),remoteExplorer:p("remote-explorer",60217),remote:p("remote",60218),remove:p("remove",60219),replaceAll:p("replace-all",60220),replace:p("replace",60221),repoClone:p("repo-clone",60222),repoForcePush:p("repo-force-push",60223),repoPull:p("repo-pull",60224),repoPush:p("repo-push",60225),report:p("report",60226),requestChanges:p("request-changes",60227),rocket:p("rocket",60228),rootFolderOpened:p("root-folder-opened",60229),rootFolder:p("root-folder",60230),rss:p("rss",60231),ruby:p("ruby",60232),saveAll:p("save-all",60233),saveAs:p("save-as",60234),save:p("save",60235),screenFull:p("screen-full",60236),screenNormal:p("screen-normal",60237),searchStop:p("search-stop",60238),server:p("server",60240),settingsGear:p("settings-gear",60241),settings:p("settings",60242),shield:p("shield",60243),smiley:p("smiley",60244),sortPrecedence:p("sort-precedence",60245),splitHorizontal:p("split-horizontal",60246),splitVertical:p("split-vertical",60247),squirrel:p("squirrel",60248),starFull:p("star-full",60249),starHalf:p("star-half",60250),symbolClass:p("symbol-class",60251),symbolColor:p("symbol-color",60252),symbolConstant:p("symbol-constant",60253),symbolEnumMember:p("symbol-enum-member",60254),symbolField:p("symbol-field",60255),symbolFile:p("symbol-file",60256),symbolInterface:p("symbol-interface",60257),symbolKeyword:p("symbol-keyword",60258),symbolMisc:p("symbol-misc",60259),symbolOperator:p("symbol-operator",60260),symbolProperty:p("symbol-property",60261),wrench:p("wrench",60261),wrenchSubaction:p("wrench-subaction",60261),symbolSnippet:p("symbol-snippet",60262),tasklist:p("tasklist",60263),telescope:p("telescope",60264),textSize:p("text-size",60265),threeBars:p("three-bars",60266),thumbsdown:p("thumbsdown",60267),thumbsup:p("thumbsup",60268),tools:p("tools",60269),triangleDown:p("triangle-down",60270),triangleLeft:p("triangle-left",60271),triangleRight:p("triangle-right",60272),triangleUp:p("triangle-up",60273),twitter:p("twitter",60274),unfold:p("unfold",60275),unlock:p("unlock",60276),unmute:p("unmute",60277),unverified:p("unverified",60278),verified:p("verified",60279),versions:p("versions",60280),vmActive:p("vm-active",60281),vmOutline:p("vm-outline",60282),vmRunning:p("vm-running",60283),watch:p("watch",60284),whitespace:p("whitespace",60285),wholeWord:p("whole-word",60286),window:p("window",60287),wordWrap:p("word-wrap",60288),zoomIn:p("zoom-in",60289),zoomOut:p("zoom-out",60290),listFilter:p("list-filter",60291),listFlat:p("list-flat",60292),listSelection:p("list-selection",60293),selection:p("selection",60293),listTree:p("list-tree",60294),debugBreakpointFunctionUnverified:p("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:p("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:p("debug-breakpoint-function-disabled",60296),debugStackframeActive:p("debug-stackframe-active",60297),circleSmallFilled:p("circle-small-filled",60298),debugStackframeDot:p("debug-stackframe-dot",60298),terminalDecorationMark:p("terminal-decoration-mark",60298),debugStackframe:p("debug-stackframe",60299),debugStackframeFocused:p("debug-stackframe-focused",60299),debugBreakpointUnsupported:p("debug-breakpoint-unsupported",60300),symbolString:p("symbol-string",60301),debugReverseContinue:p("debug-reverse-continue",60302),debugStepBack:p("debug-step-back",60303),debugRestartFrame:p("debug-restart-frame",60304),debugAlt:p("debug-alt",60305),callIncoming:p("call-incoming",60306),callOutgoing:p("call-outgoing",60307),menu:p("menu",60308),expandAll:p("expand-all",60309),feedback:p("feedback",60310),gitPullRequestReviewer:p("git-pull-request-reviewer",60310),groupByRefType:p("group-by-ref-type",60311),ungroupByRefType:p("ungroup-by-ref-type",60312),account:p("account",60313),gitPullRequestAssignee:p("git-pull-request-assignee",60313),bellDot:p("bell-dot",60314),debugConsole:p("debug-console",60315),library:p("library",60316),output:p("output",60317),runAll:p("run-all",60318),syncIgnored:p("sync-ignored",60319),pinned:p("pinned",60320),githubInverted:p("github-inverted",60321),serverProcess:p("server-process",60322),serverEnvironment:p("server-environment",60323),pass:p("pass",60324),issueClosed:p("issue-closed",60324),stopCircle:p("stop-circle",60325),playCircle:p("play-circle",60326),record:p("record",60327),debugAltSmall:p("debug-alt-small",60328),vmConnect:p("vm-connect",60329),cloud:p("cloud",60330),merge:p("merge",60331),export:p("export",60332),graphLeft:p("graph-left",60333),magnet:p("magnet",60334),notebook:p("notebook",60335),redo:p("redo",60336),checkAll:p("check-all",60337),pinnedDirty:p("pinned-dirty",60338),passFilled:p("pass-filled",60339),circleLargeFilled:p("circle-large-filled",60340),circleLarge:p("circle-large",60341),circleLargeOutline:p("circle-large-outline",60341),combine:p("combine",60342),gather:p("gather",60342),table:p("table",60343),variableGroup:p("variable-group",60344),typeHierarchy:p("type-hierarchy",60345),typeHierarchySub:p("type-hierarchy-sub",60346),typeHierarchySuper:p("type-hierarchy-super",60347),gitPullRequestCreate:p("git-pull-request-create",60348),runAbove:p("run-above",60349),runBelow:p("run-below",60350),notebookTemplate:p("notebook-template",60351),debugRerun:p("debug-rerun",60352),workspaceTrusted:p("workspace-trusted",60353),workspaceUntrusted:p("workspace-untrusted",60354),workspaceUnknown:p("workspace-unknown",60355),terminalCmd:p("terminal-cmd",60356),terminalDebian:p("terminal-debian",60357),terminalLinux:p("terminal-linux",60358),terminalPowershell:p("terminal-powershell",60359),terminalTmux:p("terminal-tmux",60360),terminalUbuntu:p("terminal-ubuntu",60361),terminalBash:p("terminal-bash",60362),arrowSwap:p("arrow-swap",60363),copy:p("copy",60364),personAdd:p("person-add",60365),filterFilled:p("filter-filled",60366),wand:p("wand",60367),debugLineByLine:p("debug-line-by-line",60368),inspect:p("inspect",60369),layers:p("layers",60370),layersDot:p("layers-dot",60371),layersActive:p("layers-active",60372),compass:p("compass",60373),compassDot:p("compass-dot",60374),compassActive:p("compass-active",60375),azure:p("azure",60376),issueDraft:p("issue-draft",60377),gitPullRequestClosed:p("git-pull-request-closed",60378),gitPullRequestDraft:p("git-pull-request-draft",60379),debugAll:p("debug-all",60380),debugCoverage:p("debug-coverage",60381),runErrors:p("run-errors",60382),folderLibrary:p("folder-library",60383),debugContinueSmall:p("debug-continue-small",60384),beakerStop:p("beaker-stop",60385),graphLine:p("graph-line",60386),graphScatter:p("graph-scatter",60387),pieChart:p("pie-chart",60388),bracketDot:p("bracket-dot",60389),bracketError:p("bracket-error",60390),lockSmall:p("lock-small",60391),azureDevops:p("azure-devops",60392),verifiedFilled:p("verified-filled",60393),newline:p("newline",60394),layout:p("layout",60395),layoutActivitybarLeft:p("layout-activitybar-left",60396),layoutActivitybarRight:p("layout-activitybar-right",60397),layoutPanelLeft:p("layout-panel-left",60398),layoutPanelCenter:p("layout-panel-center",60399),layoutPanelJustify:p("layout-panel-justify",60400),layoutPanelRight:p("layout-panel-right",60401),layoutPanel:p("layout-panel",60402),layoutSidebarLeft:p("layout-sidebar-left",60403),layoutSidebarRight:p("layout-sidebar-right",60404),layoutStatusbar:p("layout-statusbar",60405),layoutMenubar:p("layout-menubar",60406),layoutCentered:p("layout-centered",60407),target:p("target",60408),indent:p("indent",60409),recordSmall:p("record-small",60410),errorSmall:p("error-small",60411),terminalDecorationError:p("terminal-decoration-error",60411),arrowCircleDown:p("arrow-circle-down",60412),arrowCircleLeft:p("arrow-circle-left",60413),arrowCircleRight:p("arrow-circle-right",60414),arrowCircleUp:p("arrow-circle-up",60415),layoutSidebarRightOff:p("layout-sidebar-right-off",60416),layoutPanelOff:p("layout-panel-off",60417),layoutSidebarLeftOff:p("layout-sidebar-left-off",60418),blank:p("blank",60419),heartFilled:p("heart-filled",60420),map:p("map",60421),mapHorizontal:p("map-horizontal",60421),foldHorizontal:p("fold-horizontal",60421),mapFilled:p("map-filled",60422),mapHorizontalFilled:p("map-horizontal-filled",60422),foldHorizontalFilled:p("fold-horizontal-filled",60422),circleSmall:p("circle-small",60423),bellSlash:p("bell-slash",60424),bellSlashDot:p("bell-slash-dot",60425),commentUnresolved:p("comment-unresolved",60426),gitPullRequestGoToChanges:p("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:p("git-pull-request-new-changes",60428),searchFuzzy:p("search-fuzzy",60429),commentDraft:p("comment-draft",60430),send:p("send",60431),sparkle:p("sparkle",60432),insert:p("insert",60433),mic:p("mic",60434),thumbsdownFilled:p("thumbsdown-filled",60435),thumbsupFilled:p("thumbsup-filled",60436),coffee:p("coffee",60437),snake:p("snake",60438),game:p("game",60439),vr:p("vr",60440),chip:p("chip",60441),piano:p("piano",60442),music:p("music",60443),micFilled:p("mic-filled",60444),repoFetch:p("repo-fetch",60445),copilot:p("copilot",60446),lightbulbSparkle:p("lightbulb-sparkle",60447),robot:p("robot",60448),sparkleFilled:p("sparkle-filled",60449),diffSingle:p("diff-single",60450),diffMultiple:p("diff-multiple",60451),surroundWith:p("surround-with",60452),share:p("share",60453),gitStash:p("git-stash",60454),gitStashApply:p("git-stash-apply",60455),gitStashPop:p("git-stash-pop",60456),vscode:p("vscode",60457),vscodeInsiders:p("vscode-insiders",60458),codeOss:p("code-oss",60459),runCoverage:p("run-coverage",60460),runAllCoverage:p("run-all-coverage",60461),coverage:p("coverage",60462),githubProject:p("github-project",60463),mapVertical:p("map-vertical",60464),foldVertical:p("fold-vertical",60464),mapVerticalFilled:p("map-vertical-filled",60465),foldVerticalFilled:p("fold-vertical-filled",60465),goToSearch:p("go-to-search",60466),percentage:p("percentage",60467),sortPercentage:p("sort-percentage",60467),attach:p("attach",60468),goToEditingSession:p("go-to-editing-session",60469),editSession:p("edit-session",60470),codeReview:p("code-review",60471),copilotWarning:p("copilot-warning",60472),python:p("python",60473),copilotLarge:p("copilot-large",60474),copilotWarningLarge:p("copilot-warning-large",60475),keyboardTab:p("keyboard-tab",60476),copilotBlocked:p("copilot-blocked",60477),copilotNotConnected:p("copilot-not-connected",60478),flag:p("flag",60479),lightbulbEmpty:p("lightbulb-empty",60480),symbolMethodArrow:p("symbol-method-arrow",60481),copilotUnavailable:p("copilot-unavailable",60482),repoPinned:p("repo-pinned",60483),keyboardTabAbove:p("keyboard-tab-above",60484),keyboardTabBelow:p("keyboard-tab-below",60485),gitPullRequestDone:p("git-pull-request-done",60486),mcp:p("mcp",60487),extensionsLarge:p("extensions-large",60488),layoutPanelDock:p("layout-panel-dock",60489),layoutSidebarLeftDock:p("layout-sidebar-left-dock",60490),layoutSidebarRightDock:p("layout-sidebar-right-dock",60491),copilotInProgress:p("copilot-in-progress",60492),copilotError:p("copilot-error",60493),copilotSuccess:p("copilot-success",60494),chatSparkle:p("chat-sparkle",60495),searchSparkle:p("search-sparkle",60496),editSparkle:p("edit-sparkle",60497),copilotSnooze:p("copilot-snooze",60498),sendToRemoteAgent:p("send-to-remote-agent",60499),commentDiscussionSparkle:p("comment-discussion-sparkle",60500),chatSparkleWarning:p("chat-sparkle-warning",60501),chatSparkleError:p("chat-sparkle-error",60502),collection:p("collection",60503),newCollection:p("new-collection",60504),thinking:p("thinking",60505),build:p("build",60506),commentDiscussionQuote:p("comment-discussion-quote",60507),cursor:p("cursor",60508),eraser:p("eraser",60509),fileText:p("file-text",60510),quotes:p("quotes",60512),rename:p("rename",60513),runWithDeps:p("run-with-deps",60514),debugConnected:p("debug-connected",60515),strikethrough:p("strikethrough",60516),openInProduct:p("open-in-product",60517),indexZero:p("index-zero",60518),agent:p("agent",60519),editCode:p("edit-code",60520),repoSelected:p("repo-selected",60521),skip:p("skip",60522),mergeInto:p("merge-into",60523),gitBranchChanges:p("git-branch-changes",60524),gitBranchStagedChanges:p("git-branch-staged-changes",60525),gitBranchConflicts:p("git-branch-conflicts",60526),gitBranch:p("git-branch",60527),gitBranchCreate:p("git-branch-create",60527),gitBranchDelete:p("git-branch-delete",60527),searchLarge:p("search-large",60528),terminalGitBash:p("terminal-git-bash",60529),windowActive:p("window-active",60530),forward:p("forward",60531),download:p("download",60532),clockface:p("clockface",60533),unarchive:p("unarchive",60534),sessionInProgress:p("session-in-progress",60535),collectionSmall:p("collection-small",60536),vmSmall:p("vm-small",60537),cloudSmall:p("cloud-small",60538),addSmall:p("add-small",60539),removeSmall:p("remove-small",60540),worktreeSmall:p("worktree-small",60541),worktree:p("worktree",60542),screenCut:p("screen-cut",60543),ask:p("ask",60544),openai:p("openai",60545),claude:p("claude",60546),openInWindow:p("open-in-window",60547),newSession:p("new-session",60548),terminalSecure:p("terminal-secure",60549),chatImport:p("chat-import",60550),chatExport:p("chat-export",60551),shareWindow:p("share-window",60552)};var fx={dialogError:p("dialog-error","error"),dialogWarning:p("dialog-warning","warning"),dialogInfo:p("dialog-info","info"),dialogClose:p("dialog-close","close"),treeItemExpanded:p("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:p("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:p("tree-filter-on-type-off","list-selection"),treeFilterClear:p("tree-filter-clear","close"),treeItemLoading:p("tree-item-loading","loading"),menuSelection:p("menu-selection","check"),menuSubmenu:p("menu-submenu","chevron-right"),menuBarMore:p("menubar-more","more"),scrollbarButtonLeft:p("scrollbar-button-left","triangle-left"),scrollbarButtonRight:p("scrollbar-button-right","triangle-right"),scrollbarButtonUp:p("scrollbar-button-up","triangle-up"),scrollbarButtonDown:p("scrollbar-button-down","triangle-down"),toolBarMore:p("toolbar-more","more"),quickInputBack:p("quick-input-back","arrow-left"),dropDownButton:p("drop-down-button",60084),symbolCustomColor:p("symbol-customcolor",60252),exportIcon:p("export",60332),workspaceUnspecified:p("workspace-unspecified",60355),newLine:p("newline",60394),thumbsDownFilled:p("thumbsdown-filled",60435),thumbsUpFilled:p("thumbsup-filled",60436),gitFetch:p("git-fetch",60445),lightbulbSparkleAutofix:p("lightbulb-sparkle-autofix",60447),debugBreakpointPending:p("debug-breakpoint-pending",60377),chatImport:p("chat-import",60550),chatExport:p("chat-export",60551)},zc={...Db,...fx};var Ob;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(Ob||={});var Ys;(_=>{_.iconNameSegment="[A-Za-z0-9]+",_.iconNameExpression="[A-Za-z0-9-]+",_.iconModifierExpression="~[A-Za-z]+",_.iconNameCharacter="[A-Za-z0-9~-]";let r=new RegExp(`^(${_.iconNameExpression})(${_.iconModifierExpression})?$`);function o(I){let b=r.exec(I.id);if(!b)return o(zc.error);let[,w,D]=b,re=["codicon","codicon-"+w];return D&&re.push("codicon-modifier-"+D.substring(1)),re}_.asClassNameArray=o;function s(I){return o(I).join(" ")}_.asClassName=s;function a(I){return"."+o(I).join(".")}_.asCSSSelector=a;function l(I){return!!I&&typeof I=="object"&&typeof I.id=="string"&&(typeof I.color>"u"||Ob.isThemeColor(I.color))}_.isThemeIcon=l;let c=new RegExp(`^\\$\\((${_.iconNameExpression}(?:${_.iconModifierExpression})?)\\)$`);function u(I){let b=c.exec(I);if(!b)return;let[,w]=b;return{id:w}}_.fromString=u;function d(I){return{id:I}}_.fromId=d;function f(I,b){let w=I.id,D=w.lastIndexOf("~");return D!==-1&&(w=w.substring(0,D)),b&&(w=`${w}~${b}`),{id:w}}_.modify=f;function g(I){let b=I.id.lastIndexOf("~");if(b!==-1)return I.id.substring(b+1)}_.getModifier=g;function h(I,b){return I.id===b.id&&I.color?.id===b.color?.id}_.isEqual=h;function v(I){return I?.id===zc.file.id}_.isFile=v;function S(I){return I?.id===zc.folder.id}_.isFolder=S})(Ys||={});var xf=new RegExp(`\\$\\(${Ys.iconNameExpression}(?:${Ys.iconModifierExpression})?\\)`,"g"),iq=new RegExp(`(\\\\)?${xf.source}`,"g");var oq=new RegExp(`\\\\${xf.source}`,"g");var sq=new RegExp(`(\\s)?(\\\\)?${xf.source}(\\s)?`,"g");var aq=new RegExp(`\\$\\(${Ys.iconNameCharacter}+\\)`,"g");function Lb(i){return i.replace(/[\\\]]/g,"\\$&")}function pt(i){let t=Math.max(0,...(i.match(/`+/g)??[]).map(o=>o.length)),e="`".repeat(t+1),r=i.startsWith("`")||i.endsWith("`")?` ${i} `:i;return`${e}${r}${e}`}var vo=z("agentPluginManager");var jc=z("agentHostOTelService");function mx(i,t){let e=i.match(t?/^(?:cd(?: \/d)?|Set-Location(?: -Path)?) (?<dir>"[^"]*"|[^\s]+) ?(?:&&|;)\s+(?<suffix>.+)$/i:/^cd (?<dir>"[^"]*"|[^\s]+) &&\s+(?<suffix>.+)$/),n=e?.groups?.dir,r=e?.groups?.suffix;if(n&&r){let o=n;return o.startsWith('"')&&o.endsWith('"')&&(o=o.slice(1,-1)),{directory:o,command:r}}}function Qr(i,t,e){if(!e||!t)return!1;let n=i==="bash",r=i==="powershell";if(!n&&!r)return!1;let o=t.command;if(typeof o!="string")return!1;let s=mx(o,r);return!s||!gx(s.directory,e)?!1:(t.command=s.command,!0)}function gx(i,t){if(!i)return!1;let e=a=>a.replace(/[\\/]+$/,""),n=e(i),r=e(t.fsPath);if(!n||!r)return!1;let o,s;try{o=y.file(n),s=y.file(r)}catch{return!1}return lt.isEqual(o,s)}var hx=["plan","compact"];function yx(i){switch(i){case"plan":return m(1962,null);case"compact":return m(1961,null)}}function Mb(i){let t=/^\/(plan|compact)(?:$|\s+([\s\S]*))/.exec(i);if(t)return{command:t[1],rest:(t[2]??"").trim()}}var Kc=class{constructor(t,e){this.copilotcliId=t;this._sessionInfo=e;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["/"]}async provideCompletionItems(t,e){if(j.provider(t.session)!==this.copilotcliId)return[];let n=Bc(t.text,t.offset);if(!n)return[];let r=j.id(t.session),o=this._sessionInfo?.hasHistory(r)??!0,s=n.typed,a=[];for(let l of hx)s.length>0&&!l.startsWith(s)||l==="compact"&&!o||l!=="compact"&&a.push({insertText:l==="plan"?"/"+l+" ":"/"+l,rangeStart:0,rangeEnd:n.rangeEnd,attachment:{type:"simple",label:"/"+l,_meta:{command:l,description:yx(l)}}});return a}};function Nb(i){if(!Array.isArray(i)||i.length!==2)return;let[t,e]=i;if(!(!Number.isInteger(t)||!Number.isInteger(e))&&!(t<0)&&!(e!==-1&&e<t))return{startLine:t,endLine:e}}var vx=[/^\s*\*\*\*\s+Update File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Add File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Delete File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Move to:\s*(.+?)\s*$/];function wf(i){let t=typeof i=="string"?i:i?.input??i?.patch;if(typeof t!="string"||t.length===0)return[];let e=new Set,n=[];for(let r of t.split(`
`))for(let o of vx){let s=o.exec(r);if(s){let a=s[1];a&&!e.has(a)&&(e.add(a),n.push(a));break}}return n}var bx=new Set(["edit","str_replace","insert","create","apply_patch","git_apply_patch"]),Sx=new Set(["edit","str_replace","insert","create"]);function bo(i,t){return bx.has(i)?!0:i==="str_replace_editor"?t!==void 0&&Sx.has(t):!1}function Gc(i){if(typeof i=="string"){try{i=JSON.parse(i)}catch{return wf(i)}if(typeof i=="string")return wf(i)}if(!i||typeof i!="object")return[];let t=i;if(typeof t.input=="string"||typeof t.patch=="string")return wf(t);let e=i;return typeof e.path=="string"?[e.path]:[]}var Xs=new Set(["bash","powershell"]),Rf=new Set(["write_bash","write_powershell"]),Fb=new Set(["read_bash","read_powershell"]),Ix=new Set(["task"]),_x=new Set(["grep","rg","glob"]),Tx=new Set(["report_intent","skill"]);function Jc(i){return Tx.has(i)}function Ef(i){return Xs.has(i)}function un(i,t){return i.length>t?i.substring(0,t-3)+"...":i}function pn(i){let t=y.file(i);return`[${xe(t)}](${t})`}function de(i){return{markdown:i}}function Wn(i){switch(i){case"str_replace_editor":case"edit":case"str_replace":case"insert":return m(2031,null);case"create":return m(2029,null);case"view":return m(2045,null);case"bash":case"powershell":return m(2053,null);case"read_bash":case"read_powershell":return m(2047,null);case"write_bash":return m(2066,null);case"write_powershell":return m(2067,null);case"stop_bash":case"stop_powershell":case"bash_shutdown":case"powershell_shutdown":return m(2057,null);case"list_bash":case"list_powershell":return m(2038,null);case"grep":case"rg":case"glob":return m(2051,null);case"search_code_subagent":return m(2052,null);case"apply_patch":return m(2025,null);case"git_apply_patch":return m(2043,null);case"codeql_checker":return m(2027,null);case"code_review":return m(2028,null);case"reply_to_comment":return m(2048,null);case"think":return m(2061,null);case"report_intent":return m(2049,null);case"report_progress":return m(2050,null);case"web_search":return m(2064,null);case"web_fetch":return m(2034,null);case"update_todo":return m(2063,null);case"show_file":return m(2054,null);case"fetch_copilot_cli_documentation":return m(2033,null);case"propose_work":return m(2044,null);case"task_complete":return m(2060,null);case"ask_user":return m(2026,null);case"skill":return m(2036,null);case"task":return m(2059,null);case"list_agents":return m(2037,null);case"read_agent":return m(2046,null);case"exit_plan_mode":return m(2032,null);case"sql":return m(2056,null);case"lsp":return m(2039,null);case"create_pull_request":return m(2030,null);case"gh-advisory-database":return m(2035,null);case"store_memory":return m(2058,null);case"parallel_validation":return m(2042,null);case"write_agent":return m(2065,null);case"mcp_reload":return m(2040,null);case"mcp_validate":return m(2041,null);case"tool_search_tool_regex":return m(2062,null);default:return i}}function hr(i,t,e){if(Xs.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return de(m(2014,null,pt(un(r,80))))}return m(2013,null,t)}if(Rf.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return de(m(2024,null,pt(un(r,80))))}return m(2023,null)}if(Fb.has(i))return m(2012,null);switch(i){case"view":{let n=e;if(n?.path){let r=pn(n.path),o=Nb(n.view_range);return o?o.endLine===-1?de(m(2020,null,r,o.startLine)):o.endLine!==o.startLine?de(m(2022,null,r,o.startLine,o.endLine)):de(m(2021,null,r,o.startLine)):de(m(2019,null,r))}return m(2018,null)}case"edit":{let n=e;return n?.path?de(m(2002,null,pn(n.path))):m(2001,null)}case"create":{let n=e;return n?.path?de(m(2000,null,pn(n.path))):m(1999,null)}case"grep":{let n=e;return n?.pattern?de(m(2008,null,pt(un(n.pattern,80)))):m(2007,null)}case"rg":{let n=e;return n?.pattern?de(m(2008,null,pt(un(n.pattern,80)))):m(2007,null)}case"glob":{let n=e;return n?.pattern?de(m(2006,null,pt(un(n.pattern,80)))):m(2005,null)}case"apply_patch":case"git_apply_patch":{let n=Gc(e);return n.length===1?de(m(2010,null,pn(n[0]))):n.length>1?de(m(2011,null,n.map(pn).join(", "))):m(2009,null)}case"sql":return e?.description||m(2017,null);case"exit_plan_mode":return m(2003,null);default:return m(2004,null,t)}}function Qc(i,t,e,n){if(!n)return m(1977,null,t);if(Xs.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return de(m(1988,null,pt(un(o,80))))}return m(1987,null,t)}if(Rf.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return de(m(1998,null,pt(un(o,80))))}return m(1997,null)}if(Fb.has(i))return m(1986,null);switch(i){case"view":{let r=e;if(r?.path){let o=pn(r.path),s=Nb(r.view_range);return s?s.endLine===-1?de(m(1994,null,o,s.startLine)):s.endLine!==s.startLine?de(m(1996,null,o,s.startLine,s.endLine)):de(m(1995,null,o,s.startLine)):de(m(1993,null,o))}return m(1992,null)}case"edit":{let r=e;return r?.path?de(m(1975,null,pn(r.path))):m(1974,null)}case"create":{let r=e;return r?.path?de(m(1973,null,pn(r.path))):m(1972,null)}case"grep":{let r=e;return r?.pattern?de(m(1982,null,pt(un(r.pattern,80)))):m(1981,null)}case"rg":{let r=e;return r?.pattern?de(m(1982,null,pt(un(r.pattern,80)))):m(1981,null)}case"glob":{let r=e;return r?.pattern?de(m(1980,null,pt(un(r.pattern,80)))):m(1979,null)}case"apply_patch":case"git_apply_patch":{let r=Gc(e);return r.length===1?de(m(1984,null,pn(r[0]))):r.length>1?de(m(1985,null,r.map(pn).join(", "))):m(1983,null)}case"sql":return e?.description||m(1991,null);case"exit_plan_mode":return m(1976,null);default:return m(1978,null,t)}}function Cx(i,t){if(i)return`synth-skill-${i}`;let e=t.path??t.name;return`synth-skill-${Rt(e).toString(16)}`}function Yc(i,t){let e=Cx(t,i),n=m(2055,null),r=Lb(i.name),o=i.path?`[${r}](${y.file(i.path)})`:void 0,s=o?de(m(2015,null,o)):m(2016,null,i.name),a=o?de(m(1989,null,o)):m(1990,null,i.name);return{toolCallId:e,toolName:"skill",displayName:n,invocationMessage:s,pastTenseMessage:a}}function Xc(i,t,e){if(!(!t&&!e)){if(Xs.has(i)||Rf.has(i)){let n=t,r=n?.command??n?.args;return typeof r=="string"?r:typeof r=="object"&&r!==null&&ke(r,{command:!0})?r.command:e}switch(i){case"grep":return t?.pattern??e;case"rg":return t?.pattern??e;default:if(t)try{return JSON.stringify(t,null,2)}catch{return e}return e}}}function Zc(i){if(Xs.has(i))return"terminal";if(Ix.has(i))return"subagent";if(_x.has(i))return"search"}function ed(i){if(!i)return{};let t=typeof i.agent_type=="string"&&i.agent_type.length>0?i.agent_type:void 0,e=typeof i.description=="string"&&i.description.length>0?i.description:void 0;return{agentName:t,description:e}}function td(i){switch(i){case"powershell":case"write_powershell":case"read_powershell":return"powershell";default:return"shellscript"}}function Vn(i){try{return JSON.stringify(i)}catch{return}}function gr(i){return typeof i=="string"?i:void 0}function Ub(i,t){let e=gr(i.path)??gr(i.fileName),n=gr(i.fullCommandText),r=gr(i.intention),o=gr(i.serverName),s=gr(i.toolName);switch(i.kind){case"shell":{let a=n?{command:n}:void 0;Qr("bash",a,t);let l=typeof a?.command=="string"?a.command:n;return{confirmationTitle:m(1968,null),invocationMessage:r??hr("bash",Wn("bash"),l?{command:l}:void 0),toolInput:l,permissionKind:"shell",permissionPath:e}}case"custom-tool":{let a=typeof i.args=="object"&&i.args!==null?i.args:void 0,l=gr(i.toolName);if(a&&l&&Ef(l)&&typeof a.command=="string"){Qr(l,a,t);let c=a.command;return{confirmationTitle:m(1968,null),invocationMessage:hr(l,Wn(l),{command:c}),toolInput:c,permissionKind:"shell",permissionPath:e}}return{confirmationTitle:m(1964,null),invocationMessage:de(m(1963,null,pt(s??i.kind))),toolInput:Vn(a||i),permissionKind:i.kind,permissionPath:e}}case"write":return{confirmationTitle:m(1971,null),invocationMessage:hr("edit",Wn("edit"),e?{path:e}:void 0),toolInput:Vn(e?{path:e}:i)??void 0,permissionKind:"write",permissionPath:e};case"mcp":{let a=s??m(1965,null);return{confirmationTitle:o?m(1966,null,o):m(1964,null),invocationMessage:o?`${o}: ${a}`:a,toolInput:Vn({serverName:o,toolName:s})??void 0,permissionKind:"mcp",permissionPath:e}}case"read":return{confirmationTitle:m(1967,null),invocationMessage:r??hr("view",Wn("view"),e?{path:e}:void 0),toolInput:Vn(e?{path:e,intention:r}:i)??void 0,permissionKind:"read",permissionPath:e};case"url":{let a=gr(i.url),l=a?URL.canParse(a)?new URL(a).href:a:void 0;return{confirmationTitle:m(1970,null),invocationMessage:de(m(1969,null)),toolInput:l?JSON.stringify({url:l}):void 0,permissionKind:"url"}}default:return{confirmationTitle:m(1964,null),invocationMessage:de(m(1963,null,pt(s??i.kind))),toolInput:Vn(i)??void 0,permissionKind:i.kind,permissionPath:e}}}function Vb(i){try{return JSON.stringify(i)}catch{return}}function xx(i){if(i.type!=="user.message")return!1;let t=i.data?.source;return!!t&&t.toLowerCase()!=="user"}function nd(i,t,e){let n=e?.length?{text:t,attachments:e}:{text:t};return{id:i,userMessage:n,responseParts:[],pendingTools:new Map}}function Wb(i,t,e,n){if(Jc(i))return;let r=t!==void 0?Vb(t):void 0,o;if(r)try{o=JSON.parse(r)}catch{}let a=(Qr(i,o,n)?Vb(o):void 0)??r,l=Zc(i),c=l==="subagent"?ed(o):void 0,u=Wn(i);return{toolName:i,displayName:u,invocationMessage:hr(i,u,o),toolInput:Xc(i,o,a),toolKind:l,language:l==="terminal"?td(i):void 0,subagentAgentName:c?.agentName,subagentDescription:c?.description,parameters:o,parentToolCallId:e}}function rd(i,t){return{id:i.id,userMessage:i.userMessage,responseParts:i.responseParts,usage:void 0,state:t}}async function Pf(i,t,e,n){let r=new Map,o=[],s=new Map;for(let I of e){if(I.type==="tool.execution_complete"){let b=I.data;s.set(b.toolCallId,b)}if(I.type==="tool.execution_start"){let b=I.data,w=Wb(b.toolName,b.arguments,b.parentToolCallId,n);if(!w)continue;r.set(b.toolCallId,w);let D=Ee(w.parameters?.command)?w.parameters.command:void 0;bo(b.toolName,D)&&o.push(b.toolCallId)}}let a;if(t&&o.length>0)try{let I=await t.getFileEdits(o);if(I.length>0){a=new Map;for(let b of I){let w=a.get(b.toolCallId);w||(w=[],a.set(b.toolCallId,w)),w.push(b)}}}catch{}let l=i.toString(),c=[],u=new Map,d=new Map,f=new Map,g,h=I=>{let b=u.get(I);if(!b||(u.delete(I),b.responseParts.length===0))return;let w=d.get(I)??[];w.push(rd(b,"complete")),d.set(I,w)},v=I=>{let b=u.get(I);return b||(b=nd(H(),""),u.set(I,b)),b},S=I=>I?v(I):g;for(let I of e)switch(I.type){case"user.message":{if(xx(I))continue;let b=I.data,w=b?.messageId??b?.interactionId??"",D=b?.content??"",re=wx(b?.attachments);if(b?.parentToolCallId){let k=v(b.parentToolCallId);D&&k.responseParts.push({kind:"markdown",id:H(),content:D}),re?.length&&(k.userMessage={...k.userMessage,attachments:re})}else g&&c.push(rd(g,"cancelled")),g=nd(w,D,re);break}case"assistant.message":{let b=I.data,w=b?.messageId??b?.interactionId??"",D=b?.content??"",re=b?.reasoningText,k=!!b?.toolRequests&&b.toolRequests.length>0,O=S(b?.parentToolCallId)??(g=nd(w,""));re&&O.responseParts.push({kind:"reasoning",id:H(),content:re}),D&&O.responseParts.push({kind:"markdown",id:H(),content:D}),b?.toolRequests?.length&&_(O,b.toolRequests,b.parentToolCallId),!b?.parentToolCallId&&!k&&O===g&&(c.push(rd(g,"complete")),g=void 0);break}case"subagent.started":{let b=I.data;f.set(b.toolCallId,{agentName:b.agentName,agentDisplayName:b.agentDisplayName,agentDescription:b.agentDescription});break}case"tool.execution_start":break;case"tool.execution_complete":{let b=I.data,w=r.get(b.toolCallId);if(!w)continue;r.delete(b.toolCallId);let D=S(b.parentToolCallId);if(!D)continue;let re=$b(b,w,l,a,f.get(b.toolCallId));D.responseParts.push(re),!b.parentToolCallId&&f.has(b.toolCallId)&&h(b.toolCallId);break}case"skill.invoked":{let b=I,w=Yc(b.data,b.id);(g??(g=nd(H(),""))).responseParts.push({kind:"toolCall",toolCall:{status:"completed",toolCallId:w.toolCallId,toolName:w.toolName,displayName:w.displayName,invocationMessage:w.invocationMessage,success:!0,pastTenseMessage:w.pastTenseMessage,confirmed:"not-needed"}});break}default:break}g&&(c.push(rd(g,"cancelled")),g=void 0);for(let I of[...u.keys()])h(I);return{turns:c,subagentTurnsByToolCallId:d};function _(I,b,w){for(let D of b){let re=s.get(D.toolCallId);if(re&&r.has(D.toolCallId))continue;let k=r.get(D.toolCallId)??Wb(D.name,D.arguments,w,n);k&&I.responseParts.push($b(re??{toolCallId:D.toolCallId,success:!0},k,l,a,f.get(D.toolCallId)))}}}function wx(i){if(!i?.length)return;let t=[];for(let e of i){let n=Rx(e);n&&t.push(n)}return t.length>0?t:void 0}function Rx(i){switch(i.type){case"file":return{type:"resource",uri:y.file(i.path).toString(),label:i.displayName||ge(i.path),displayKind:rl(i.path)?.startsWith("image/")?"image":"document"};case"directory":return{type:"resource",uri:y.file(i.path).toString(),label:i.displayName||ge(i.path),displayKind:"directory"};case"selection":return{type:"resource",uri:y.file(i.filePath).toString(),label:i.displayName,displayKind:"selection",selection:{range:i.selection}};case"blob":{if(i.mimeType.startsWith("text/plain"))return{type:"simple",label:i.displayName??"attachment",modelRepresentation:tr(i.data).toString()};let t=i.mimeType.startsWith("image/")?"image":void 0;return{type:"embeddedResource",label:i.displayName??"attachment",data:i.data,contentType:i.mimeType,displayKind:t}}default:return}}function $b(i,t,e,n,r){let o=i.error?.message??i.result?.content,s=[];o!==void 0&&s.push({type:"text",text:o});let a=n?.get(i.toolCallId);if(a)for(let c of a){let u=c.kind==="rename"&&c.originalPath?y.file(c.originalPath).toString():y.file(c.filePath).toString(),d=y.file(c.filePath).toString(),f=c.kind!=="create",g=c.kind!=="delete";s.push({type:"fileEdit",before:f?{uri:u,content:{uri:ur(e,c.toolCallId,c.filePath,"before")}}:void 0,after:g?{uri:d,content:{uri:ur(e,c.toolCallId,c.filePath,"after")}}:void 0,diff:c.addedLines!==void 0||c.removedLines!==void 0?{added:c.addedLines,removed:c.removedLines}:void 0})}r&&s.push({type:"subagent",resource:Hi(e,i.toolCallId),title:r.agentDisplayName,agentName:r.agentName,description:r.agentDescription});let l={status:"completed",toolCallId:i.toolCallId,toolName:t.toolName,displayName:t.displayName,invocationMessage:t.invocationMessage,toolInput:t.toolInput,success:i.success,pastTenseMessage:Qc(t.toolName,t.displayName,t.parameters,i.success),content:s.length>0?s:void 0,error:i.error,confirmed:"not-needed",_meta:{toolKind:t.toolKind,language:t.language,subagentDescription:t.subagentDescription,subagentAgentName:t.subagentAgentName}};return{kind:"toolCall",toolCall:l}}var Zs=class{constructor(t){this.type=1,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t}},yr=class{constructor(t){this.type=2,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t,this.entries=new Map}},id=class extends C{constructor(){super(...arguments);this.memoryFdCounter=0;this.fdMemory=new Map;this._onDidChangeCapabilities=this._register(new x);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._capabilities=525318;this.root=new yr("");this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._bufferedChanges=[]}get capabilities(){return this._capabilities}setReadOnly(e){let n=!!(this._capabilities&2048);e!==n&&(this._capabilities=525314|(e?2048:0),this._onDidChangeCapabilities.fire())}async stat(e){return this._lookup(e,!1)}async readdir(e){let n=this._lookupAsDirectory(e,!1),r=[];return n.entries.forEach((o,s)=>r.push([s,o.type])),r}async readFile(e){let n=this._lookupAsFile(e,!1).data;if(n)return n;throw le("file not found","EntryNotFound")}readFileStream(e){let n=this._lookupAsFile(e,!1).data,r=Rn(o=>P.concat(o.map(s=>P.wrap(s))).buffer);return r.end(n),r}async writeFile(e,n,r){let o=xe(e),s=this._lookupParentDirectory(e),a=s.entries.get(o);if(a instanceof yr)throw le("file is directory","EntryIsADirectory");if(!a&&!r.create)throw le("file not found","EntryNotFound");if(a&&r.create&&!r.overwrite)throw le("file exists already","EntryExists");if(a||(a=new Zs(o),s.entries.set(o,a),this._fireSoon({type:1,resource:e})),a.mtime=Date.now(),r.append){a.size+=n.byteLength;let l=a.data??new Uint8Array(0),c=new Uint8Array(l.byteLength+n.byteLength);c.set(l,0),c.set(n,l.byteLength),a.data=c}else a.size=n.byteLength,a.data=n;this._fireSoon({type:0,resource:e})}open(e,n){let r=this._lookup(e,!0),o=Dn(n),s=o&&!!n.append;if(r){if(r instanceof yr)throw le("file is directory","EntryIsADirectory")}else{if(!o)throw le("file not found","EntryNotFound");let l=xe(e),c=this._lookupParentDirectory(e);r=new Zs(l),r.data=new Uint8Array(0),c.entries.set(l,r),this._fireSoon({type:1,resource:e})}r.data||(r.data=new Uint8Array(0));let a=this.memoryFdCounter++;return this.fdMemory.set(a,{file:r,resource:e,write:o,append:s}),Promise.resolve(a)}close(e){let n=this.fdMemory.get(e);return n?.write&&(n.file.mtime=Date.now(),n.file.size=n.file.data?.byteLength??0,this._fireSoon({type:0,resource:n.resource})),this.fdMemory.delete(e),Promise.resolve()}read(e,n,r,o,s){let a=this.fdMemory.get(e);if(!a)throw le("No file with that descriptor open","Unavailable");if(!a.file.data)return Promise.resolve(0);let l=P.wrap(a.file.data).slice(n,n+s);return r.set(l.buffer,o),Promise.resolve(l.byteLength)}write(e,n,r,o,s){let a=this.fdMemory.get(e);if(!a)throw le("No file with that descriptor open","Unavailable");let l=P.wrap(r).slice(o,o+s);a.file.data??=new Uint8Array(0);let c=a.append?a.file.data.byteLength:n,u=c+l.byteLength;if(u>a.file.data.byteLength){let d=new Uint8Array(u);d.set(a.file.data,0),a.file.data=d}return a.file.data.set(l.buffer,c),Promise.resolve(l.byteLength)}async rename(e,n,r){if(!r.overwrite&&this._lookup(n,!0))throw le("file exists already","EntryExists");let o=this._lookup(e,!1),s=this._lookupParentDirectory(e),a=this._lookupParentDirectory(n),l=xe(n);s.entries.delete(o.name),o.name=l,a.entries.set(l,o),this._fireSoon({type:2,resource:e},{type:1,resource:n})}async delete(e,n){let r=tn(e),o=xe(e),s=this._lookupAsDirectory(r,!1);s.entries.delete(o)&&(s.mtime=Date.now(),s.size-=1,this._fireSoon({type:0,resource:r},{resource:e,type:2}))}async mkdir(e){if(this._lookup(e,!0))throw le("file exists already","EntryExists");let n=xe(e),r=tn(e),o=this._lookupAsDirectory(r,!1),s=new yr(n);o.entries.set(s.name,s),o.mtime=Date.now(),o.size+=1,this._fireSoon({type:0,resource:r},{type:1,resource:e})}_lookup(e,n){let r=e.path.split("/"),o=this.root;for(let s of r){if(!s)continue;let a;if(o instanceof yr&&(a=o.entries.get(s)),!a){if(n)return;throw le("file not found","EntryNotFound")}o=a}return o}_lookupAsDirectory(e,n){let r=this._lookup(e,n);if(r instanceof yr)return r;throw le("file not a directory","EntryNotADirectory")}_lookupAsFile(e,n){let r=this._lookup(e,n);if(r instanceof Zs)return r;throw le("file is a directory","EntryIsADirectory")}_lookupParentDirectory(e){let n=tn(e);return this._lookupAsDirectory(n,!1)}watch(e,n){return C.None}_fireSoon(...e){this._bufferedChanges.push(...e),this._fireSoonHandle&&clearTimeout(this._fireSoonHandle),this._fireSoonHandle=setTimeout(()=>{this._onDidChangeFile.fire(this._bufferedChanges),this._bufferedChanges.length=0},5)}dispose(){super.dispose(),this.fdMemory.clear()}};var Bb="pending-edit-content";function qb(i,t,e){return y.from({scheme:Bb,authority:Kt(P.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${Kt(P.fromString(e))}`})}function Hb(i){let t=new id,e=i.registerProvider(Bb,t);return{dispose(){e.dispose(),t.dispose()}}}var Ex=".copilot",zb=B(Ex,"session-state");function Px(i){switch(i){case"autopilot":return{label:m(1950,null),description:m(1949,null)};case"autopilot_fleet":return{label:m(1952,null),description:m(1951,null)};case"interactive":return{label:m(1957,null),description:m(1956,null)};case"exit_only":return{label:m(1954,null),description:m(1953,null)};default:return}}function jb(i){let t=Pe(i.toolArgs)?Reflect.get(i.toolArgs,"command"):void 0;return Ee(t)?t:void 0}function kx(i,t,e){let n={id:i,title:t.title??i,message:t.description??t.title??i,required:e};switch(t.type){case"boolean":return{...n,kind:"boolean",defaultValue:t.default};case"integer":case"number":return{...n,kind:t.type==="integer"?"integer":"number",min:t.minimum,max:t.maximum,defaultValue:t.default};case"array":{let r=ke(t.items,{enum:!0})?t.items.enum.map(o=>({id:o,label:o})):t.items.anyOf.map(o=>({id:o.const,label:o.title}));return{...n,kind:"multi-select",options:r,min:t.minItems,max:t.maxItems}}case"string":{if(ke(t,{enum:!0})){let r=t.enumNames,o=t.enum.map((s,a)=>({id:s,label:r?.[a]??s}));return{...n,kind:"single-select",options:o}}if(ke(t,{oneOf:!0})){let r=t.oneOf.map(o=>({id:o.const,label:o.title}));return{...n,kind:"single-select",options:r}}return{...n,kind:"text",format:t.format,min:t.minLength,max:t.maxLength,defaultValue:t.default}}}}function Ax(i,t){if(!t||t.state==="skipped")return;let e=t.value;if(i.type==="boolean")return e.kind==="boolean"?e.value:e.kind==="text"?e.value==="true"?!0:e.value==="false"?!1:void 0:void 0;if(i.type==="number"||i.type==="integer"){if(e.kind==="number")return i.type==="integer"?Math.trunc(e.value):e.value;if(e.kind==="text"){if(e.value.trim()==="")return;let n=Number(e.value);return Number.isFinite(n)?i.type==="integer"?Math.trunc(n):n:void 0}return}if(i.type==="array")return e.kind==="selected-many"?[...e.value,...e.freeformValues??[]]:e.kind==="selected"?e.value?[e.value,...e.freeformValues??[]]:[...e.freeformValues??[]]:e.kind==="text"?e.value?[e.value]:[]:void 0;if(e.kind==="text"||e.kind==="selected")return e.value}function Dx(i){let t=process.env.XDG_STATE_HOME;return t?B(t,zb):B(i,zb)}var Ox=/^(?:\d{10,}-copilot-tool-output-[a-z0-9]{6}|copilot-tool-output-\d{10,}-[a-z0-9]{6})\.txt$/i;function Lx(i,t){let e=Tt(y.file(i)),n=Tt(y.file(t)),r=Tt(y.joinPath(e,".."));if(!lt.isEqual(r,n))return!1;let o=Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\")),s=o>=0?i.substring(o+1):i;return Ox.test(s)}var So=class extends C{constructor(e,n,r,o,s,a,l){super();this._instantiationService=n;this._logService=r;this._fileService=s;this._environmentService=a;this._configurationService=l;this._activeToolCalls=new Map;this._parentToolCallIdsByAgentId=new Map;this._pendingPermissions=new Map;this._pendingUserInputs=new Map;this._pendingElicitations=new Map;this._pendingPlanReviews=new Map;this._turnId="";this._turnCopilotUsageTotalNanoAiu=0;this._pendingClientToolCalls=new Map;this._pendingEditContentUris=new Map;this._currentMarkdownPartIds=new Map;this._currentReasoningPartIds=new Map;this._hasReportedActivity=!1;this.sessionId=e.rawSessionId,this.sessionUri=e.sessionUri,this._onDidSessionProgress=e.onDidSessionProgress,this._wrapperFactory=e.wrapperFactory,this._shellManager=e.shellManager,this._workingDirectory=e.workingDirectory,this._customizationDirectory=e.customizationDirectory,this._appliedSnapshot=e.clientSnapshot??{clientId:"",tools:[],plugins:[]},this._clientToolNames=new Set(this._appliedSnapshot.tools.map(c=>c.name)),this._databaseRef=o.openDatabase(e.sessionUri),this._register(E(()=>this._databaseRef.dispose())),this._sessionDataDir=o.getSessionDataDir(e.sessionUri),this._editTracker=this._instantiationService.createInstance(dr,e.sessionUri.toString(),this._databaseRef.object),this._register(E(()=>this._denyPendingPermissions())),this._register(E(()=>this._shellManager?.dispose())),this._register(E(()=>this._cancelPendingUserInputs())),this._register(E(()=>this._cancelPendingElicitations())),this._register(E(()=>this._cancelPendingPlanReviews())),this._shellManager&&this._register(this._shellManager.onDidAssociateTerminal(({toolCallId:c,terminalUri:u,displayName:d})=>{let f=this._activeToolCalls.get(c);f&&(f.content.push({type:"terminal",resource:u,title:d}),this._emitAction({type:"session/toolCallContentChanged",session:this._protocolSession(),turnId:this._turnId,toolCallId:c,content:f.content}))})),this._register(E(()=>this._cancelPendingClientToolCalls()))}_protocolSession(){return this.sessionUri.toString()}_emitAction(e,n){this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:e,parentToolCallId:n})}_parentToolCallIdForSubagentEvent(e){return e.agentId?this._parentToolCallIdsByAgentId.get(e.agentId):void 0}_shouldDropUnmappedSubagentEvent(e,n){return!this._parentToolCallIdForSubagentEvent(e)&&e.agentId?(this._logService.warn(`[Copilot:${this.sessionId}] Dropping ${n} for unknown subagent agentId=${e.agentId}`),!0):!1}resetTurnState(e){this._turnId=e,this._turnCopilotUsageTotalNanoAiu=0,this._currentMarkdownPartIds.clear(),this._currentReasoningPartIds.clear(),this._parentToolCallIdsByAgentId.clear()}_getEditFilePaths(e){return Gc(e).map(n=>this._resolveEditFilePath(n))}_resolveEditFilePath(e){return Gn(e)||!this._workingDirectory||this._workingDirectory.scheme!==te.file?e:B(this._workingDirectory.fsPath,e)}emitInitialMarkdown(e){this._emitMarkdownDelta(e)}_emitMarkdownDelta(e,n){let r=this._protocolSession(),o=n??"",s=this._currentMarkdownPartIds.get(o);if(!s){s=H(),this._currentMarkdownPartIds.set(o,s),this._emitAction({type:"session/responsePart",session:r,turnId:this._turnId,part:{kind:"markdown",id:s,content:e}},n);return}this._emitAction({type:"session/delta",session:r,turnId:this._turnId,partId:s,content:e},n)}_emitReasoningDelta(e,n){let r=this._protocolSession(),o=n??"",s=this._currentReasoningPartIds.get(o);if(!s){s=H(),this._currentReasoningPartIds.set(o,s),this._emitAction({type:"session/responsePart",session:r,turnId:this._turnId,part:{kind:"reasoning",id:s,content:e}},n);return}this._emitAction({type:"session/reasoning",session:r,turnId:this._turnId,partId:s,content:e},n)}get appliedSnapshot(){return this._appliedSnapshot}get customizationDirectory(){return this._customizationDirectory}createClientSdkTools(){let e=this._appliedSnapshot.tools;return e.length===0?[]:e.map(n=>({name:n.name,description:n.description??"",parameters:n.inputSchema??{type:"object",properties:{}},handler:async(r,{toolCallId:o})=>{try{let s=this._pendingClientToolCalls.get(o);s||(s=new pe,this._pendingClientToolCalls.set(o,s));let a=await s.p;return this._pendingClientToolCalls.delete(o),a}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed in client tool handler: tool=${n.name}, toolCallId=${o}`),s}}}))}handleClientToolCallComplete(e,n){let r=this._pendingClientToolCalls.get(e);r||(r=new pe,this._pendingClientToolCalls.set(e,r));let o=n.content?.filter(a=>a.type==="text").map(a=>a.text).join(`
`)??"",s=n.content?.filter(a=>a.type==="embeddedResource").map(a=>({data:a.data,mimeType:a.contentType,type:/^image(\/|$)/.test(a.contentType)?"image":"resource"}));n.success?r.complete({textResultForLlm:o,resultType:"success",binaryResultsForLlm:s?.length?s:void 0}):r.complete({textResultForLlm:o||n.error?.message||"Tool call failed",resultType:"failure",error:n.error?.message,binaryResultsForLlm:s?.length?s:void 0})}async initializeSession(){this._wrapper=this._register(await this._wrapperFactory({onPermissionRequest:e=>this.handlePermissionRequest(e),onUserInputRequest:(e,n)=>this.handleUserInputRequest(e,n),onElicitationRequest:e=>this.handleElicitationRequest(e),clientTools:this.createClientSdkTools(),hooks:{onPreToolUse:e=>this._handlePreToolUse(e),onPostToolUse:e=>this._handlePostToolUse(e)}})),this._subscribeToEvents(),this._subscribeForLogging()}async send(e,n,r,o){r&&(this._turnId=r,this._turnCopilotUsageTotalNanoAiu=0),this._logService.info(`[Copilot:${this.sessionId}] sendMessage called: "${e.substring(0,100)}${e.length>100?"...":""}" (${n?.length??0} attachments)`);let s=Mb(e);if(s?.command==="compact"){try{await this._wrapper.session.rpc.history.compact()}catch(l){throw this._logService.error(l,`[Copilot:${this.sessionId}] rpc.history.compact failed`),l}return}s?.command==="plan"&&(o="plan",e=s.rest);let a=n?.length?(await Promise.all(n.map(l=>this._toSdkAttachment(l)))).filter(Bn):void 0;a?.length&&this._logService.trace(`[Copilot:${this.sessionId}] Attachments: ${JSON.stringify(a.map(l=>({type:l.type})))}`),await this.applyMode(o),await this._wrapper.session.send({prompt:e,attachments:a?.length?a:void 0}),this._logService.info(`[Copilot:${this.sessionId}] session.send() returned`)}async _toSdkAttachment(e){if(e.type==="simple")return e.modelRepresentation?{type:"blob",data:Ja(P.fromString(e.modelRepresentation)),mimeType:"text/plain",displayName:e.label}:void 0;if(e.type==="embeddedResource")return{type:"blob",data:e.data,mimeType:e.contentType,displayName:e.label};if(e.type!=="resource")return;let n=y.parse(e.uri),r=n.scheme==="file"?n.fsPath:n.toString(),o=e.label??r;if(e.displayKind==="selection"&&e.selection)try{let a=await this._readSelectedText(n,e.selection.range);return{type:"selection",filePath:r,displayName:o,text:a,selection:e.selection.range}}catch(a){return this._logService.warn(`[Copilot:${this.sessionId}] Failed to read selected text for ${n.toString()}: ${a}`),{type:"file",path:r,displayName:o}}return e.displayKind==="selection"?{type:"file",path:r,displayName:o}:{type:e.displayKind==="directory"?"directory":"file",path:r,displayName:o}}async _readSelectedText(e,n){let o=(await this._fileService.readFile(e)).value.toString(),s=yg(o),a=this._getOffsetAt(s,n.start),l=this._getOffsetAt(s,n.end);return o.substring(a,Math.max(a,l))}_getOffsetAt(e,n){let r=Math.max(0,Math.min(n.line,e.length-1)),o=0;for(let a=0;a<r;a++)o+=e[a].length;let s=e[r].replace(/\r\n|\r|\n$/,"");return o+Math.max(0,Math.min(n.character,s.length))}async applyMode(e){if(!(!e||e===this._lastAppliedMode))try{await this._wrapper.session.rpc.mode.set({mode:e}),this._lastAppliedMode=e,this._logService.info(`[Copilot:${this.sessionId}] rpc.mode.set succeeded: mode=${e}`)}catch(n){this._logService.error(n,`[Copilot:${this.sessionId}] rpc.mode.set failed: mode=${e}`)}}async sendSteering(e){this._logService.info(`[Copilot:${this.sessionId}] Sending steering message: "${e.userMessage.text.substring(0,100)}"`);try{await this._wrapper.session.send({prompt:e.userMessage.text,mode:"immediate"}),this._onDidSessionProgress.fire({kind:"steering_consumed",session:this.sessionUri,id:e.id})}catch(n){this._logService.error(`[Copilot:${this.sessionId}] Steering message failed`,n)}}async getMessages(){let e=await this._wrapper.session.getMessages(),n;try{n=this._databaseRef.object}catch{}return(await Pf(this.sessionUri,n,e,this._workingDirectory)).turns}async getSubagentMessages(e){let n=await this._wrapper.session.getMessages(),r;try{r=this._databaseRef.object}catch{}return(await Pf(this.sessionUri,r,n,this._workingDirectory)).subagentTurnsByToolCallId.get(e)??[]}async abort(){this._logService.info(`[Copilot:${this.sessionId}] Aborting session...`),this._denyPendingPermissions(),await this._wrapper.session.abort()}async destroySession(){await this._wrapper.session.destroy()}async setModel(e,n){this._logService.info(`[Copilot:${this.sessionId}] Changing model to: ${e}`),await this._wrapper.session.setModel(e,{reasoningEffort:n})}async handlePermissionRequest(e){this._logService.info(`[Copilot:${this.sessionId}] Permission request: kind=${e.kind}`);try{let n=e.toolCallId;if(!n)return this._logService.warn(`[Copilot:${this.sessionId}] Permission request without toolCallId, auto-denying: kind=${e.kind}`),{kind:"reject"};let r=this._getInternalSessionResourcePath(e);if(r)return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving internal session resource ${r}`),{kind:"approve-once"};if(e.kind==="read"&&typeof e.path=="string"&&this._isSessionAttachmentPath(e.path))return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving session attachment ${e.path}`),{kind:"approve-once"};if(e.kind==="read"&&typeof e.path=="string"&&Lx(e.path,this._environmentService.tmpDir.fsPath))return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving Copilot SDK tool-output temp file ${e.path}`),{kind:"approve-once"};this._logService.info(`[Copilot:${this.sessionId}] Requesting confirmation for tool call: ${n}`);let o=new pe;this._pendingPermissions.set(n,o);let{confirmationTitle:s,invocationMessage:a,toolInput:l,permissionKind:c,permissionPath:u}=Ub(e,this._workingDirectory),d=await this._buildEditsForPermission(e,n);if(!this._pendingPermissions.has(n))return{kind:"reject"};let f=e.toolName??e.kind,g=this._activeToolCalls.get(n)?.parentToolCallId;this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:{status:"pending-confirmation",toolCallId:n,toolName:f,displayName:Wn(f),invocationMessage:a,toolInput:l,confirmationTitle:s,edits:d},permissionKind:c,permissionPath:u,parentToolCallId:g});let h=await o.p;return this._logService.info(`[Copilot:${this.sessionId}] Permission response: toolCallId=${n}, approved=${h}`),{kind:h?"approve-once":"reject"}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed to handle permission request: kind=${e.kind}, toolCallId=${e.toolCallId??"missing"}`),n}}_getInternalSessionResourcePath(e){let n;if(e.kind==="read"?n=typeof e.path=="string"?e.path:void 0:e.kind==="write"&&(n=typeof e.fileName=="string"?e.fileName:void 0),!n)return;let r=Tt(y.file(Dx(this._environmentService.userHome.fsPath))),o=Tt(y.joinPath(r,this.sessionId));if(!lt.isEqualOrParent(o,r))return;let s=Tt(y.file(n));return lt.isEqualOrParent(s,o)?n:void 0}_isSessionAttachmentPath(e){let n=Tt(y.joinPath(this._sessionDataDir,Rl)),r=Tt(y.file(e));return lt.isEqualOrParent(r,n)}async _buildEditsForPermission(e,n){if(e.kind!=="write")return;let r=typeof e.fileName=="string"?e.fileName:void 0,o=typeof e.newFileContents=="string"?e.newFileContents:void 0;if(!r||o===void 0)return;let s=y.file(r),a=s.toString(),l=!1;try{l=await this._fileService.exists(s)}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to check file for edit preview: ${r}`,f)}let c=qb(this.sessionUri.toString(),n,r);try{await this._fileService.writeFile(c,P.fromString(o))}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to write pending edit content for ${r}`,f);return}if(!this._pendingPermissions.has(n)){this._fileService.del(c).catch(f=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete orphaned pending edit content: ${c.toString()}`,f)});return}this._pendingEditContentUris.set(n,c);let u=typeof e.diff=="string"?Nx(e.diff):void 0;return{items:[{...l?{before:{uri:a,content:{uri:a}}}:{},after:{uri:a,content:{uri:c.toString()}},...u?{diff:u}:{}}]}}respondToPermissionRequest(e,n){let r=this._pendingPermissions.get(e);return r?(this._pendingPermissions.delete(e),this._deletePendingEditContent(e),r.complete(n),!0):!1}async handleUserInputRequest(e,n){if(this._configurationService.getEffectiveValue(this.sessionUri.toString(),vt,"autoApprove")==="autopilot")return{answer:"The user is not available to answer your question. Choose a pragmatic option best aligned with the context of the request.",wasFreeform:!0};let o=e.question.substring(0,100);try{let s=H(),a=H();this._logService.info(`[Copilot:${this.sessionId}] User input request: requestId=${s}, question="${o}"`);let l=new pe;this._pendingUserInputs.set(s,{deferred:l,questionId:a});let c={id:s,questions:[e.choices&&e.choices.length>0?{kind:"single-select",id:a,message:e.question,required:!0,options:e.choices.map(g=>({id:g,label:g})),allowFreeformInput:e.allowFreeform??!0}:{kind:"text",id:a,message:e.question,required:!0}]};this._emitAction({type:"session/inputRequested",session:this._protocolSession(),request:c});let u=await l.p;if(this._logService.info(`[Copilot:${this.sessionId}] User input response: requestId=${s}, response=${u.response}`),u.response!=="accept"||!u.answers)return{answer:"",wasFreeform:!0};let d=u.answers[a];if(!d||d.state==="skipped")return{answer:"",wasFreeform:!0};let{value:f}=d;if(f.kind==="text")return{answer:f.value,wasFreeform:!0};if(f.kind==="selected"){let g=!e.choices?.includes(f.value);return{answer:f.value,wasFreeform:g}}return{answer:"",wasFreeform:!0}}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed to handle user input request: question="${o}"`),s}}async handleElicitationRequest(e){if(this._configurationService.getEffectiveValue(this.sessionUri.toString(),vt,"autoApprove")==="autopilot")return{action:"cancel"};let r=e.message.substring(0,100);try{let o=H();this._logService.info(`[Copilot:${this.sessionId}] Elicitation request: requestId=${o}, mode=${e.mode??"form"}, source=${e.elicitationSource??"<unknown>"}, message="${r}"`);let s=e.mode==="url"?void 0:e.requestedSchema,a=new Set(s?.required??[]),l=s?Object.entries(s.properties).map(([h,v])=>kx(h,v,a.has(h))):void 0,c=new pe;this._pendingElicitations.set(o,{deferred:c,schema:s});let u={id:o,message:e.message,...e.mode==="url"&&e.url?{url:e.url}:{},...l&&l.length>0?{questions:l}:{}};this._emitAction({type:"session/inputRequested",session:this._protocolSession(),request:u});let d=await c.p;if(this._logService.info(`[Copilot:${this.sessionId}] Elicitation response: requestId=${o}, response=${d.response}`),d.response==="decline")return{action:"decline"};if(d.response!=="accept")return{action:"cancel"};let f=d.answers??{};if(!s){let h=f.answer;return h&&h.state!=="skipped"&&h.value.kind==="text"?{action:"accept",content:{answer:h.value.value}}:{action:"accept"}}let g={};for(let[h,v]of Object.entries(s.properties)){let S=Ax(v,f[h]);S!==void 0&&(g[h]=S)}return{action:"accept",content:g}}catch(o){throw this._logService.error(o,`[Copilot:${this.sessionId}] Failed to handle elicitation request: message="${r}"`),o}}respondToUserInputRequest(e,n,r){let o=this._pendingPlanReviews.get(e);if(o)return this._pendingPlanReviews.delete(e),o.deferred.complete(this._resolveExitPlanMode(o,n,r)),!0;let s=this._pendingElicitations.get(e);if(s)return this._pendingElicitations.delete(e),s.deferred.complete({response:n,answers:r}),!0;let a=this._pendingUserInputs.get(e);return a?(this._pendingUserInputs.delete(e),a.deferred.complete({response:n,answers:r}),!0):!1}_resolveExitPlanMode(e,n,r){if(n!=="accept")return{approved:!1};let o=r?.[e.questionId];if(!o||o.state==="skipped")return{approved:!1};let s=o.value,a,l;if(s.kind==="selected")a=s.value,l=s.freeformValues?.find(f=>f.trim().length>0)?.trim();else if(s.kind==="text")l=s.value.trim()||void 0;else return{approved:!1};let c=a&&e.actions.includes(a)?a:e.actions.includes(e.recommendedAction)?e.recommendedAction:void 0;return l?{approved:!1,feedback:l,...c?{selectedAction:c}:{}}:c?{approved:!0,selectedAction:c,...c==="autopilot"||c==="autopilot_fleet"?{autoApproveEdits:!0}:{}}:{approved:!1}}async _handlePreToolUse(e){try{if(bo(e.toolName,jb(e))){let n=this._getEditFilePaths(e.toolArgs);await Promise.all(n.map(r=>this._editTracker.trackEditStart(r)))}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPreToolUse: tool=${e.toolName}`),n}}async _handlePostToolUse(e){try{if(bo(e.toolName,jb(e))){let n=this._getEditFilePaths(e.toolArgs);await Promise.all(n.map(r=>this._editTracker.completeEdit(r)))}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPostToolUse: tool=${e.toolName}`),n}}_subscribeToEvents(){let e=this._wrapper,n=this.sessionId;this._register(e.onUserMessage(r=>{this._turnId&&this._databaseRef.object.setTurnEventId(this._turnId,r.id)})),this._register(e.onMessageDelta(r=>{this._logService.trace(`[Copilot:${n}] delta: ${r.data.deltaContent}`),!this._shouldDropUnmappedSubagentEvent(r,"assistant.message_delta")&&this._emitMarkdownDelta(r.data.deltaContent,this._parentToolCallIdForSubagentEvent(r))})),this._register(e.onMessage(r=>{if(this._logService.info(`[Copilot:${n}] Full message received: ${r.data.content.length} chars`),!r.data.content||this._shouldDropUnmappedSubagentEvent(r,"assistant.message"))return;let o=this._parentToolCallIdForSubagentEvent(r),s=o??"";if(this._currentMarkdownPartIds.has(s))return;let a=H();this._currentMarkdownPartIds.set(s,a),this._emitAction({type:"session/responsePart",session:this._protocolSession(),turnId:this._turnId,part:{kind:"markdown",id:a,content:r.data.content}},o)})),this._register(e.onToolStart(r=>{if(Jc(r.data.toolName)){if(this._logService.trace(`[Copilot:${n}] Tool started (hidden): ${r.data.toolName}`),r.data.toolName==="report_intent"){let h=r.data.arguments?.intent;typeof h=="string"&&h.length>0&&(this._hasReportedActivity=!0,this._emitAction({type:"session/activityChanged",session:this._protocolSession(),activity:h}))}return}this._logService.info(`[Copilot:${n}] Tool started: ${r.data.toolName}`);let o=r.data.arguments!==void 0?Vn(r.data.arguments):void 0,s;if(o)try{s=JSON.parse(o)}catch{}Qr(r.data.toolName,s,this._workingDirectory)&&(o=Vn(s));let a=Wn(r.data.toolName);if(this._shouldDropUnmappedSubagentEvent(r,"tool.execution_start"))return;let l=this._parentToolCallIdForSubagentEvent(r);this._activeToolCalls.set(r.data.toolCallId,{toolName:r.data.toolName,displayName:a,parameters:s,content:[],parentToolCallId:l});let c=Zc(r.data.toolName),u=c==="subagent"?ed(s):void 0,d=this._clientToolNames.has(r.data.toolName)?this._appliedSnapshot.clientId:void 0;this._currentMarkdownPartIds.delete(l??""),this._currentReasoningPartIds.delete(l??"");let f={toolKind:c,language:c==="terminal"?td(r.data.toolName):void 0};u?.description&&(f.subagentDescription=u.description),u?.agentName&&(f.subagentAgentName=u.agentName),o!==void 0&&(f.toolArguments=o),r.data.mcpServerName&&(f.mcpServerName=r.data.mcpServerName),r.data.mcpToolName&&(f.mcpToolName=r.data.mcpToolName);let g=this._protocolSession();this._emitAction({type:"session/toolCallStart",session:g,turnId:this._turnId,toolCallId:r.data.toolCallId,toolName:r.data.toolName,displayName:a,toolClientId:d,_meta:f},l),!d&&this._emitAction({type:"session/toolCallReady",session:g,turnId:this._turnId,toolCallId:r.data.toolCallId,invocationMessage:hr(r.data.toolName,a,s),toolInput:Xc(r.data.toolName,s,o),confirmed:"not-needed"},l)})),this._register(e.onToolComplete(async r=>{let o=this._activeToolCalls.get(r.data.toolCallId);if(!o)return;let s=o.parentToolCallId??this._parentToolCallIdForSubagentEvent(r);if(!s&&r.agentId){this._logService.warn(`[Copilot:${this.sessionId}] Dropping tool.execution_complete for unknown subagent agentId=${r.agentId}`);return}this._logService.info(`[Copilot:${n}] Tool completed: ${r.data.toolCallId}`),this._activeToolCalls.delete(r.data.toolCallId);let a=o.displayName,l=r.data.error?.message??r.data.result?.content,c=[...o.content];l!==void 0&&c.push({type:"text",text:l});let u=Ee(o.parameters?.command)?o.parameters.command:void 0,d=bo(o.toolName,u)?this._getEditFilePaths(o.parameters):[];for(let f of d)try{let g=await this._editTracker.takeCompletedEdit(this._turnId,r.data.toolCallId,f);g&&c.push(g)}catch(g){this._logService.warn(`[Copilot:${n}] Failed to take completed edit`,g)}if(Ef(o.toolName)&&this._shellManager){let f=this._shellManager.getTerminalUriForToolCall(r.data.toolCallId);f&&!c.some(g=>g.type==="terminal"&&g.resource===f)&&c.push({type:"terminal",resource:f,title:o.displayName})}this._emitAction({type:"session/toolCallComplete",session:this._protocolSession(),turnId:this._turnId,toolCallId:r.data.toolCallId,result:{success:r.data.success,pastTenseMessage:Qc(o.toolName,a,o.parameters,r.data.success),content:c.length>0?c:void 0,error:r.data.error}},s)})),this._register(e.onIdle(()=>{this._logService.info(`[Copilot:${n}] Session idle`),this._hasReportedActivity&&(this._hasReportedActivity=!1,this._emitAction({type:"session/activityChanged",session:this._protocolSession(),activity:void 0})),this._emitAction({type:"session/turnComplete",session:this._protocolSession(),turnId:this._turnId})})),this._register(e.onSkillInvoked(r=>{this._logService.info(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`);let o=Yc(r.data,r.id),s=this._protocolSession();this._emitAction({type:"session/toolCallStart",session:s,turnId:this._turnId,toolCallId:o.toolCallId,toolName:o.toolName,displayName:o.displayName}),this._emitAction({type:"session/toolCallReady",session:s,turnId:this._turnId,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,confirmed:"not-needed"}),this._emitAction({type:"session/toolCallComplete",session:s,turnId:this._turnId,toolCallId:o.toolCallId,result:{success:!0,pastTenseMessage:o.pastTenseMessage}})})),this._register(e.onSubagentStarted(r=>{r.agentId&&this._parentToolCallIdsByAgentId.set(r.agentId,r.data.toolCallId),this._logService.info(`[Copilot:${n}] Subagent started: toolCallId=${r.data.toolCallId}, agent=${r.data.agentName}`),this._onDidSessionProgress.fire({kind:"subagent_started",session:this.sessionUri,toolCallId:r.data.toolCallId,agentName:r.data.agentName,agentDisplayName:r.data.agentDisplayName,agentDescription:r.data.agentDescription})})),this._register(e.onSessionError(r=>{this._logService.error(`[Copilot:${n}] Session error: ${r.data.errorType} - ${r.data.message}`),this._emitAction({type:"session/error",session:this._protocolSession(),turnId:this._turnId,error:{errorType:r.data.errorType,message:r.data.message,stack:r.data.stack}})})),this._register(e.onUsage(r=>{let o={};typeof r.data.cost=="number"&&(o.cost=r.data.cost),typeof r.data.copilotUsage?.totalNanoAiu=="number"&&(this._turnCopilotUsageTotalNanoAiu+=r.data.copilotUsage.totalNanoAiu,o.copilotUsage={...r.data.copilotUsage,totalNanoAiu:this._turnCopilotUsageTotalNanoAiu}),this._logService.trace(`[Copilot:${n}] Usage: model=${r.data.model}, in=${r.data.inputTokens??"?"}, out=${r.data.outputTokens??"?"}, cacheRead=${r.data.cacheReadTokens??"?"}, cost=${r.data.cost??"?"}, totalNanoAiu=${this._turnCopilotUsageTotalNanoAiu||"?"}`);let s={inputTokens:r.data.inputTokens,outputTokens:r.data.outputTokens,model:r.data.model,cacheReadTokens:r.data.cacheReadTokens,...Object.keys(o).length>0?{_meta:o}:{}};this._emitAction({type:"session/usage",session:this._protocolSession(),turnId:this._turnId,usage:s})})),this._register(e.onReasoningDelta(r=>{this._logService.trace(`[Copilot:${n}] Reasoning delta: ${r.data.deltaContent.length} chars`),!this._shouldDropUnmappedSubagentEvent(r,"assistant.reasoning_delta")&&this._emitReasoningDelta(r.data.deltaContent,this._parentToolCallIdForSubagentEvent(r))})),this._register(e.onSessionModeChanged(r=>{this._logService.info(`[Copilot:${n}] session.mode_changed: ${r.data.previousMode} -> ${r.data.newMode}`);let o=r.data.newMode;o!=="interactive"&&o!=="plan"&&o!=="autopilot"||(this._lastAppliedMode=o,this._syncAhpConfigFromSdkMode(o))}))}_syncAhpConfigFromSdkMode(e){let n=this.sessionUri.toString(),r={};switch(e){case"plan":r.mode="plan";break;case"autopilot":r.mode="interactive",r.autoApprove="autopilot";break;case"interactive":r.mode="interactive";break}this._configurationService.updateSessionConfig(n,r)}async handleExitPlanModeRequest(e){let n=H(),r=H();if(this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request: rpcId=${n}, actions=[${e.actions.join(",")}], recommended=${e.recommendedAction}`),this._configurationService.getEffectiveValue(this.sessionUri.toString(),vt,"autoApprove")==="autopilot"){let d=Mx(e);return this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request auto-accepted (autoApprove=autopilot): selectedAction=${d.selectedAction??"(none)"}`),d}let s=null;try{s=(await this._wrapper.session.rpc.plan.read()).path??null}catch(d){this._logService.warn(`[Copilot:${this.sessionId}] rpc.plan.read failed for exit_plan_mode: ${d instanceof Error?d.message:String(d)}`)}let a=e.summary||m(1955,null);if(s){let d=y.file(s);a+=`

[${m(1960,null)}](${d.toString()})`}this._emitMarkdownDelta(a);let l=e.actions.map(d=>{let f=Px(d);return{id:d,label:f?.label??d,description:f?.description,recommended:d===e.recommendedAction}}),c={id:n,questions:[{kind:"single-select",id:r,title:m(1959,null),message:m(1958,null),required:!0,options:l,allowFreeformInput:!0}]},u=new pe;this._pendingPlanReviews.set(n,{actions:e.actions,recommendedAction:e.recommendedAction,questionId:r,deferred:u}),this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:{type:"session/inputRequested",session:this.sessionUri.toString(),request:c}});try{return await u.p}catch(d){return this._logService.error(d,`[Copilot:${this.sessionId}] exitPlanMode.request handler failed: rpcId=${n}`),{approved:!1}}}_subscribeForLogging(){let e=this._wrapper,n=this.sessionId;this._register(e.onSessionStart(r=>{this._logService.trace(`[Copilot:${n}] Session started: model=${r.data.selectedModel??"default"}, producer=${r.data.producer}`)})),this._register(e.onSessionResume(r=>{this._logService.trace(`[Copilot:${n}] Session resumed: eventCount=${r.data.eventCount}`)})),this._register(e.onSessionInfo(r=>{this._logService.trace(`[Copilot:${n}] Session info [${r.data.infoType}]: ${r.data.message}`)})),this._register(e.onSessionModelChange(r=>{this._logService.trace(`[Copilot:${n}] Model changed: ${r.data.previousModel??"(none)"} -> ${r.data.newModel}`)})),this._register(e.onSessionHandoff(r=>{this._logService.trace(`[Copilot:${n}] Session handoff: sourceType=${r.data.sourceType}, remoteSessionId=${r.data.remoteSessionId??"(none)"}`)})),this._register(e.onSessionTruncation(r=>{this._logService.trace(`[Copilot:${n}] Session truncation: removed ${r.data.tokensRemovedDuringTruncation} tokens, ${r.data.messagesRemovedDuringTruncation} messages`)})),this._register(e.onSessionSnapshotRewind(r=>{this._logService.trace(`[Copilot:${n}] Snapshot rewind: upTo=${r.data.upToEventId}, eventsRemoved=${r.data.eventsRemoved}`)})),this._register(e.onSessionShutdown(r=>{this._logService.trace(`[Copilot:${n}] Session shutdown: type=${r.data.shutdownType}, premiumRequests=${r.data.totalPremiumRequests}, apiDuration=${r.data.totalApiDurationMs}ms`)})),this._register(e.onSessionUsageInfo(r=>{this._logService.trace(`[Copilot:${n}] Usage info: ${r.data.currentTokens}/${r.data.tokenLimit} tokens, ${r.data.messagesLength} messages`)})),this._register(e.onSessionCompactionStart(()=>{this._logService.trace(`[Copilot:${n}] Compaction started`)})),this._register(e.onSessionCompactionComplete(r=>{this._logService.trace(`[Copilot:${n}] Compaction complete: success=${r.data.success}, tokensRemoved=${r.data.tokensRemoved??"?"}`)})),this._register(e.onUserMessage(r=>{this._logService.trace(`[Copilot:${n}] User message: ${r.data.content.length} chars, ${r.data.attachments?.length??0} attachments`)})),this._register(e.onPendingMessagesModified(()=>{this._logService.trace(`[Copilot:${n}] Pending messages modified`)})),this._register(e.onTurnStart(r=>{this._logService.trace(`[Copilot:${n}] Turn started: ${r.data.turnId}`)})),this._register(e.onIntent(r=>{this._logService.trace(`[Copilot:${n}] Intent: ${r.data.intent}`)})),this._register(e.onReasoning(r=>{this._logService.trace(`[Copilot:${n}] Reasoning: ${r.data.content.length} chars`)})),this._register(e.onTurnEnd(r=>{this._logService.trace(`[Copilot:${n}] Turn ended: ${r.data.turnId}`)})),this._register(e.onAbort(r=>{this._logService.trace(`[Copilot:${n}] Aborted: ${r.data.reason}`)})),this._register(e.onToolUserRequested(r=>{this._logService.trace(`[Copilot:${n}] Tool user-requested: ${r.data.toolName} (${r.data.toolCallId})`)})),this._register(e.onToolPartialResult(r=>{this._logService.trace(`[Copilot:${n}] Tool partial result: ${r.data.toolCallId} (${r.data.partialOutput.length} chars)`)})),this._register(e.onToolProgress(r=>{this._logService.trace(`[Copilot:${n}] Tool progress: ${r.data.toolCallId} - ${r.data.progressMessage}`)})),this._register(e.onSkillInvoked(r=>{this._logService.trace(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`)})),this._register(e.onSubagentStarted(r=>{this._logService.trace(`[Copilot:${n}] Subagent started: ${r.data.agentName} (${r.data.agentDisplayName})`)})),this._register(e.onSubagentCompleted(r=>{r.agentId&&this._parentToolCallIdsByAgentId.delete(r.agentId),this._logService.trace(`[Copilot:${n}] Subagent completed: ${r.data.agentName}`),this._onDidSessionProgress.fire({kind:"subagent_completed",session:this.sessionUri,toolCallId:r.data.toolCallId})})),this._register(e.onSubagentFailed(r=>{r.agentId&&this._parentToolCallIdsByAgentId.delete(r.agentId),this._logService.error(`[Copilot:${n}] Subagent failed: ${r.data.agentName} - ${r.data.error}`),this._onDidSessionProgress.fire({kind:"subagent_completed",session:this.sessionUri,toolCallId:r.data.toolCallId})})),this._register(e.onSubagentSelected(r=>{this._logService.trace(`[Copilot:${n}] Subagent selected: ${r.data.agentName}`)})),this._register(e.onHookStart(r=>{this._logService.trace(`[Copilot:${n}] Hook started: ${r.data.hookType} (${r.data.hookInvocationId})`)})),this._register(e.onHookEnd(r=>{this._logService.trace(`[Copilot:${n}] Hook ended: ${r.data.hookType} (${r.data.hookInvocationId}), success=${r.data.success}`)})),this._register(e.onSystemMessage(r=>{this._logService.trace(`[Copilot:${n}] System message [${r.data.role}]: ${r.data.content.length} chars`)}))}getNextTurnEventId(e){return this._databaseRef.object.getNextTurnEventId(e)}getFirstTurnEventId(){return this._databaseRef.object.getFirstTurnEventId()}async truncateAtEventId(e,n){this._logService.info(`[Copilot:${this.sessionId}] Truncating via SDK RPC at eventId=${e}`);let r=await this._wrapper.session.rpc.history.truncate({eventId:e});this._logService.info(`[Copilot:${this.sessionId}] SDK truncation removed ${r.eventsRemoved} events`),n?await this._databaseRef.object.deleteTurnsAfter(n):await this._databaseRef.object.deleteAllTurns()}async remapTurnIds(e){await this._databaseRef.object.remapTurnIds(e)}_denyPendingPermissions(){for(let[e,n]of this._pendingPermissions)this._deletePendingEditContent(e),n.complete(!1);this._pendingPermissions.clear()}_deletePendingEditContent(e){let n=this._pendingEditContentUris.get(e);n&&(this._pendingEditContentUris.delete(e),this._fileService.del(n).catch(r=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete pending edit content: ${n.toString()}`,r)}))}_cancelPendingUserInputs(){for(let[,e]of this._pendingUserInputs)e.deferred.complete({response:"cancel"});this._pendingUserInputs.clear()}_cancelPendingElicitations(){for(let[,e]of this._pendingElicitations)e.deferred.complete({response:"cancel"});this._pendingElicitations.clear()}_cancelPendingPlanReviews(){for(let[,e]of this._pendingPlanReviews)e.deferred.complete({approved:!1});this._pendingPlanReviews.clear()}_cancelPendingClientToolCalls(){for(let[,e]of this._pendingClientToolCalls)e.complete({textResultForLlm:"Tool call cancelled: session ended",resultType:"failure",error:"Session ended"});this._pendingClientToolCalls.clear()}};So=R([T(1,Ve),T(2,V),T(3,sn),T(4,We),T(5,lr),T(6,ut)],So);function Mx(i){let t=i.actions??[],e=n=>n==="autopilot"||n==="autopilot_fleet";if(i.recommendedAction&&t.includes(i.recommendedAction)){let n=i.recommendedAction;return{approved:!0,selectedAction:n,...e(n)?{autoApproveEdits:!0}:{}}}for(let n of["autopilot","autopilot_fleet","interactive","exit_only"])if(t.includes(n))return{approved:!0,selectedAction:n,...e(n)?{autoApproveEdits:!0}:{}};return{approved:!0,autoApproveEdits:!0}}function Nx(i){let t=0,e=0;for(let n of i.split(`
`))n.startsWith("+++")||n.startsWith("---")||(n.startsWith("+")?t++:n.startsWith("-")&&e++);if(!(t===0&&e===0))return{added:t,removed:e}}async function Fx(i,t){if(!i||i.scheme!==te.file||!await t.isInsideWorkTree(i))return;let e=(await t.getWorktreeRoots(i))[0]??await t.getRepositoryRoot(i);if(e)return{uri:e,displayName:ge(e.fsPath)||e.toString()}}function Ux(i){let t=i.includes("://")?y.parse(i):y.parse(`https://github.com/${i}`),e=ge(t.path)||i.split("/").filter(Boolean).pop()||i,n=e.endsWith(".git")?e.slice(0,-4):e;return{uri:t,displayName:n}}async function vr(i,t){let e=typeof i?.cwd=="string"?y.file(i.cwd):typeof i?.gitRoot=="string"?y.file(i.gitRoot):void 0,n=await Fx(e,t);if(n)return n;if(i?.repository)return Ux(i.repository)}import{spawn as Vx}from"child_process";function Gb(i){let t={};for(let e of i){let n=e.configuration;n.type==="stdio"?t[e.name]={type:"local",command:n.command,args:n.args?[...n.args]:[],tools:["*"],...n.env&&{env:Wx(n.env)},...n.cwd&&{cwd:n.cwd}}:t[e.name]={type:"http",url:n.url,tools:["*"],...n.headers&&{headers:{...n.headers}}}}return t}function Wx(i){let t={};for(let[e,n]of Object.entries(i))n!==null&&(t[e]=String(n));return t}async function Jb(i,t){let e=[];for(let n of i)try{let r=await t.readFile(n.uri);e.push({name:n.name,prompt:r.value.toString()})}catch{}return e}function Qb(i){let t=new Set,e=[];for(let n of i){let r=ce(n.uri.fsPath);t.has(r)||(t.add(r),e.push(r))}return e}function $x(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}function ea(i,t){let e=$x(i,zt);if(!e)return Promise.resolve("");let n=(i.timeout??30)*1e3,r=i.cwd?.fsPath;return new Promise((o,s)=>{let a=zt===1,u=Vx(a?"cmd.exe":"/bin/sh",a?["/c",e]:["-c",e],{cwd:r,env:{...process.env,...i.env},stdio:["pipe","pipe","pipe"],timeout:n}),d="",f="";u.stdout.on("data",g=>{d+=g.toString()}),u.stderr.on("data",g=>{f+=g.toString()}),t&&u.stdin.write(t),u.stdin.end(),u.on("error",s),u.on("close",g=>{g===0?o(d):s(new Error(`Hook command exited with code ${g}: ${f||d}`))})})}async function Kb(i,t){if(!i)return;let e=JSON.stringify(t);for(let n of i)try{let r=await ea(n,e);if(r.trim())try{let o=JSON.parse(r);if(o&&typeof o=="object")return o}catch{}}catch{}}var Bx={PreToolUse:"onPreToolUse",PostToolUse:"onPostToolUse",UserPromptSubmit:"onUserPromptSubmitted",SessionStart:"onSessionStart",SessionEnd:"onSessionEnd",ErrorOccurred:"onErrorOccurred"};function Yb(i,t){let e=new Map;for(let u of i){let d=Bx[u.type];if(!d)continue;let f=e.get(d)??[];f.push(...u.commands),e.set(d,f)}let n={},r=e.get("onPreToolUse");(r?.length||t)&&(n.onPreToolUse=async u=>(await t?.onPreToolUse(u),Kb(r,u)));let o=e.get("onPostToolUse");(o?.length||t)&&(n.onPostToolUse=async u=>(await t?.onPostToolUse(u),Kb(o,u)));let s=e.get("onUserPromptSubmitted");s?.length&&(n.onUserPromptSubmitted=async u=>{let d=JSON.stringify(u);for(let f of s)try{await ea(f,d)}catch{}});let a=e.get("onSessionStart");a?.length&&(n.onSessionStart=async u=>{let d=JSON.stringify(u);for(let f of a)try{await ea(f,d)}catch{}});let l=e.get("onSessionEnd");l?.length&&(n.onSessionEnd=async u=>{let d=JSON.stringify(u);for(let f of l)try{await ea(f,d)}catch{}});let c=e.get("onErrorOccurred");return c?.length&&(n.onErrorOccurred=async u=>{let d=JSON.stringify(u);for(let f of c)try{await ea(f,d)}catch{}}),n}function Xb(i,t){let e=n=>JSON.stringify(n.map(r=>({hooks:r.hooks.map(o=>({type:o.type,commands:o.commands.map(s=>({command:s.command,windows:s.windows,linux:s.linux,osx:s.osx,cwd:s.cwd?.toString(),env:s.env,timeout:s.timeout}))})),mcpServers:r.mcpServers.map(o=>({name:o.name,configuration:o.configuration})),skills:r.skills.map(o=>({uri:o.uri.toString(),name:o.name})),agents:r.agents.map(o=>({uri:o.uri.toString(),name:o.name}))})));return e(i)===e(t)}var Io=class extends C{constructor(e){super();this.session=e;this._register(E(()=>{e.destroy().catch(()=>{})}))}get sessionId(){return this.session.sessionId}get onMessageDelta(){return this._onMessageDelta??=this._sdkEvent("assistant.message_delta")}get onMessage(){return this._onMessage??=this._sdkEvent("assistant.message")}get onToolStart(){return this._onToolStart??=this._sdkEvent("tool.execution_start")}get onToolComplete(){return this._onToolComplete??=this._sdkEvent("tool.execution_complete")}get onIdle(){return this._onIdle??=this._sdkEvent("session.idle")}get onSessionStart(){return this._onSessionStart??=this._sdkEvent("session.start")}get onSessionResume(){return this._onSessionResume??=this._sdkEvent("session.resume")}get onSessionError(){return this._onSessionError??=this._sdkEvent("session.error")}get onSessionInfo(){return this._onSessionInfo??=this._sdkEvent("session.info")}get onSessionModelChange(){return this._onSessionModelChange??=this._sdkEvent("session.model_change")}get onSessionHandoff(){return this._onSessionHandoff??=this._sdkEvent("session.handoff")}get onSessionTruncation(){return this._onSessionTruncation??=this._sdkEvent("session.truncation")}get onSessionSnapshotRewind(){return this._onSessionSnapshotRewind??=this._sdkEvent("session.snapshot_rewind")}get onSessionShutdown(){return this._onSessionShutdown??=this._sdkEvent("session.shutdown")}get onSessionUsageInfo(){return this._onSessionUsageInfo??=this._sdkEvent("session.usage_info")}get onSessionCompactionStart(){return this._onSessionCompactionStart??=this._sdkEvent("session.compaction_start")}get onSessionCompactionComplete(){return this._onSessionCompactionComplete??=this._sdkEvent("session.compaction_complete")}get onUserMessage(){return this._onUserMessage??=this._sdkEvent("user.message")}get onPendingMessagesModified(){return this._onPendingMessagesModified??=this._sdkEvent("pending_messages.modified")}get onTurnStart(){return this._onTurnStart??=this._sdkEvent("assistant.turn_start")}get onIntent(){return this._onIntent??=this._sdkEvent("assistant.intent")}get onReasoning(){return this._onReasoning??=this._sdkEvent("assistant.reasoning")}get onReasoningDelta(){return this._onReasoningDelta??=this._sdkEvent("assistant.reasoning_delta")}get onTurnEnd(){return this._onTurnEnd??=this._sdkEvent("assistant.turn_end")}get onUsage(){return this._onUsage??=this._sdkEvent("assistant.usage")}get onAbort(){return this._onAbort??=this._sdkEvent("abort")}get onToolUserRequested(){return this._onToolUserRequested??=this._sdkEvent("tool.user_requested")}get onToolPartialResult(){return this._onToolPartialResult??=this._sdkEvent("tool.execution_partial_result")}get onToolProgress(){return this._onToolProgress??=this._sdkEvent("tool.execution_progress")}get onSkillInvoked(){return this._onSkillInvoked??=this._sdkEvent("skill.invoked")}get onSubagentStarted(){return this._onSubagentStarted??=this._sdkEvent("subagent.started")}get onSubagentCompleted(){return this._onSubagentCompleted??=this._sdkEvent("subagent.completed")}get onSubagentFailed(){return this._onSubagentFailed??=this._sdkEvent("subagent.failed")}get onSubagentSelected(){return this._onSubagentSelected??=this._sdkEvent("subagent.selected")}get onHookStart(){return this._onHookStart??=this._sdkEvent("hook.start")}get onHookEnd(){return this._onHookEnd??=this._sdkEvent("hook.end")}get onSystemMessage(){return this._onSystemMessage??=this._sdkEvent("system.message")}get onSessionModeChanged(){return this._onSessionModeChanged??=this._sdkEvent("session.mode_changed")}_sdkEvent(e){let n=this._register(new x),r=this.session.on(e,o=>n.fire(o));return this._register(E(r)),n.event}};var Zb=8e4,qx=12e4,Of="<<<COPILOT_SENTINEL_",Hx="The command opened the alternate buffer and is still running in the terminal. It likely launched an interactive terminal UI. Use write_bash/write_powershell to interact with it, or shutdown the shell to stop it.";function zx(i){let t=Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\"));switch(i.slice(t+1).toLowerCase().replace(/\.exe$/,"")){case"pwsh":case"powershell":case"pwsh-preview":return"powershell";case"bash":case"sh":case"zsh":case"fish":case"csh":case"ksh":case"nu":case"xonsh":case"git-cmd":case"wsl":case"ubuntu":case"ubuntu1804":case"kali":case"debian":case"opensuse-42":case"sles-12":return"bash";default:return q?"powershell":"bash"}}var Yr=class extends C{constructor(e,n,r,o){super();this._sessionUri=e;this._workingDirectory=n;this._terminalManager=r;this._logService=o;this._shells=new Map;this._toolCallShells=new Map;this._busyShellIds=new Set;this._heldShellReleaseListeners=new Map;this._onDidAssociateTerminal=this._register(new x);this.onDidAssociateTerminal=this._onDidAssociateTerminal.event;this._register(E(()=>{for(let s of this._heldShellReleaseListeners.values())s.dispose();this._heldShellReleaseListeners.clear();for(let s of this._shells.values())this._terminalManager.hasTerminal(s.terminalUri)&&this._terminalManager.disposeTerminal(s.terminalUri);this._shells.clear(),this._toolCallShells.clear(),this._busyShellIds.clear()}))}getResolvedExecutable(){return this._resolvedExecutable||(this._resolvedExecutable=this._terminalManager.getDefaultShell()),this._resolvedExecutable}async getOrCreateShell(e,n,r,o){for(let f of this._shells.values()){if(f.shellType!==e||!this._terminalManager.hasTerminal(f.terminalUri))continue;if(this._terminalManager.getExitCode(f.terminalUri)!==void 0){this._shells.delete(f.id);continue}if(!this._busyShellIds.has(f.id))return this._busyShellIds.add(f.id),this._trackToolCall(r,f.id),this._makeReference(f)}let s=H(),a=`agenthost-terminal://shell/${s}`,l={kind:"session",session:this._sessionUri.toString(),turnId:n,toolCallId:r},c=e==="bash"?"Bash":"PowerShell",u=await this.getResolvedExecutable();await this._terminalManager.createTerminal({terminal:a,claim:l,name:c,cwd:o??this._workingDirectory?.fsPath},{shell:u,preventShellHistory:!0,nonInteractive:!0});let d={id:s,terminalUri:a,shellType:e,executable:u};return this._shells.set(s,d),this._busyShellIds.add(s),this._trackToolCall(r,s),this._logService.info(`[ShellManager] Created ${e} shell ${s} (terminal=${a},  executable=${u})`),this._makeReference(d)}_makeReference(e){let n=!1;return{object:e,dispose:()=>{n||(n=!0,this._busyShellIds.delete(e.id))}}}holdShellUntilCommandFinishes(e){if(this._heldShellReleaseListeners.has(e.id))return;let n=new $,r=()=>{this._busyShellIds.delete(e.id),this._heldShellReleaseListeners.delete(e.id),n.dispose()};n.add(this._terminalManager.onCommandFinished(e.terminalUri,r)),n.add(this._terminalManager.onExit(e.terminalUri,r)),this._heldShellReleaseListeners.set(e.id,n)}_trackToolCall(e,n){this._toolCallShells.set(e,n);let r=this._shells.get(n);if(r){let o=r.shellType==="bash"?"Bash":"PowerShell";this._onDidAssociateTerminal.fire({toolCallId:e,terminalUri:r.terminalUri,displayName:o})}}getTerminalUriForToolCall(e){let n=this._toolCallShells.get(e);if(n)return this._shells.get(n)?.terminalUri}getShell(e){return this._shells.get(e)}listShells(){let e=[];for(let n of this._shells.values())this._terminalManager.hasTerminal(n.terminalUri)&&e.push(n);return e}shutdownShell(e){let n=this._shells.get(e);return n?(this._heldShellReleaseListeners.get(e)?.dispose(),this._heldShellReleaseListeners.delete(e),this._terminalManager.disposeTerminal(n.terminalUri),this._shells.delete(e),this._busyShellIds.delete(e),this._logService.info(`[ShellManager] Shut down shell ${e}`),!0):!1}};Yr=R([T(2,co),T(3,V)],Yr);function jx(){return H().replace(/-/g,"")}function Kx(i,t){return t==="powershell"?`Write-Output "${Of}${i}_EXIT_$LASTEXITCODE>>>"`:`echo "${Of}${i}_EXIT_$?>>>"`}function eS(i){return i==="powershell"?"":" "}function Gx(i){let t=i.replace(/\r\n|\r/g,`
`);return/(?<!\\)\n/.test(t)}function tS(i){return Be||Gx(i)}function Jx(i,t){let e=`${Of}${t}_EXIT_`,n=i.indexOf(e);if(n===-1)return{found:!1,exitCode:-1,outputBeforeSentinel:i};let r=i.substring(0,n),o=i.substring(n+e.length),s=o.indexOf(">>>"),a=s>=0?o.substring(0,s):o.trim(),l=parseInt(a,10);return{found:!0,exitCode:isNaN(l)?-1:l,outputBeforeSentinel:r}}function Xr(i){let t=Ig(i).trim();return t.length>Zb&&(t=t.substring(t.length-Zb)),t}function fn(i){return{textResultForLlm:i,resultType:"success"}}function Wt(i,t){return{textResultForLlm:i,resultType:"failure",error:t}}function mn(i,t){return{toolResult:i,keepShellBusy:t?.keepShellBusy}}function nS(i){return mn(fn(i),{keepShellBusy:!0})}function Qx(){return mn(Wt(Hx,"alternateBuffer"),{keepShellBusy:!0})}function rS(i,t,e,n,r){t.createAltBufferPromise(i.terminalUri,n).then(()=>{e.info("[ShellTool] Command entered alternate buffer"),r(Qx())})}async function Yx(i,t,e,n,r){let o=n.supportsCommandDetection(i.terminalUri)?await Xx(i,t,e,n,r):await Zx(i,t,e,n,r);return{...o,toolResult:{...o.toolResult,textResultForLlm:`Shell ID: ${i.id}
${o.toolResult.textResultForLlm}`}}}async function Xx(i,t,e,n,r){let o=new $,s=new Promise(a=>{let l=!1,c=d=>{l||(l=!0,o.dispose(),a(d))};o.add(n.onCommandFinished(i.terminalUri,d=>{let f=Xr(d.output),g=d.exitCode??0;r.info(`[ShellTool] Command completed (shell integration) with exit code ${g}`),c(mn(g===0?fn(`Exit code: ${g}
${f}`):Wt(`Exit code: ${g}
${f}`)))})),rS(i,n,r,o,c),o.add(n.onExit(i.terminalUri,d=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${d}`);let f=n.getContent(i.terminalUri)??"",g=Xr(f);c(mn(Wt(`Shell exited with code ${d}
${g}`)))})),o.add(n.onClaimChanged(i.terminalUri,d=>{d.kind==="session"&&!d.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),c(nS("The user chose to continue this command in the background. The terminal is still running.")))}));let u=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let d=n.getContent(i.terminalUri)??"",f=Xr(d);c(mn(Wt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${f}`,"timeout")))},e);o.add(E(()=>clearTimeout(u)))});try{await n.sendText(i.terminalUri,`${eS(i.shellType)}${t}`,{shouldExecute:!0,bracketedPasteMode:tS(t)})}catch(a){throw o.dispose(),a}return s}async function Zx(i,t,e,n,r){let o=jx(),s=Kx(o,i.shellType),a=new $,c=(n.getContent(i.terminalUri)??"").length,u=new Promise(d=>{let f=!1,g=S=>{f||(f=!0,a.dispose(),d(S))},h=()=>{let S=n.getContent(i.terminalUri)??"",_=Math.min(c,S.length),I=S.substring(_),b=Jx(I,o);if(b.found){let w=Xr(b.outputBeforeSentinel);r.info(`[ShellTool] Command completed with exit code ${b.exitCode}`),b.exitCode===0?g(mn(fn(`Exit code: ${b.exitCode}
${w}`))):g(mn(Wt(`Exit code: ${b.exitCode}
${w}`)))}};a.add(n.onData(i.terminalUri,()=>{h()})),rS(i,n,r,a,g),a.add(n.onExit(i.terminalUri,S=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${S}`);let I=(n.getContent(i.terminalUri)??"").substring(c),b=Xr(I);g(mn(Wt(`Shell exited with code ${S}
${b}`)))})),a.add(n.onClaimChanged(i.terminalUri,S=>{S.kind==="session"&&!S.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),g(nS("The user chose to continue this command in the background. The terminal is still running.")))}));let v=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let _=(n.getContent(i.terminalUri)??"").substring(c),I=Xr(_);g(mn(Wt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${I}`,"timeout")))},e);a.add(E(()=>clearTimeout(v))),h()});try{await n.sendText(i.terminalUri,`${eS(i.shellType)}${t}`,{shouldExecute:!0,bracketedPasteMode:tS(t)}),await n.sendText(i.terminalUri,s,{shouldExecute:!0})}catch(d){throw a.dispose(),d}return u}async function iS(i,t,e){let n=await i.getResolvedExecutable(),r=zx(n),o={name:r,description:r==="bash"?_c(n)?rw(!1):nw(!1):tw(r,n,!1),parameters:{type:"object",properties:{command:{type:"string",description:"The command to execute"},timeout:{type:"number",description:"Timeout in milliseconds (default 120000)"}},required:["command"]},overridesBuiltInTool:!0,handler:async(g,h)=>{let v=g.timeout??qx,S=await i.getOrCreateShell(r,h.toolCallId,h.toolCallId),_=!0;try{let I=await Yx(S.object,g.command,v,t,e);return I.keepShellBusy&&(_=!1,i.holdShellUntilCommandFinishes(S.object)),I.toolResult}finally{_&&S.dispose()}}},s={name:`read_${r}`,description:`Read the latest output from a running ${r} shell.`,parameters:{type:"object",properties:{shell_id:{type:"string",description:"Shell ID to read from (optional; uses latest shell if omitted)"}}},overridesBuiltInTool:!0,skipPermission:!0,handler:g=>{let h=i.listShells(),v=g.shell_id?i.getShell(g.shell_id):h[h.length-1];if(!v)return Wt("No active shell found.","no_shell");let S=t.getContent(v.terminalUri);return fn(S?Xr(S):"(no output)")}},a={name:`write_${r}`,description:`Send input to a running ${r} shell (e.g. answering a prompt, sending Ctrl+C).`,parameters:{type:"object",properties:{command:{type:"string",description:"Text to write to the shell stdin"}},required:["command"]},overridesBuiltInTool:!0,skipPermission:!0,handler:async g=>{let h=i.listShells(),v=h[h.length-1];return v?(await t.sendText(v.terminalUri,g.command,{shouldExecute:!1}),fn("Input sent to shell.")):Wt("No active shell found.","no_shell")}},l={name:r==="bash"?"bash_shutdown":`${r}_shutdown`,description:`Stop a ${r} shell.`,parameters:{type:"object",properties:{shell_id:{type:"string",description:"Shell ID to stop (optional; stops latest shell if omitted)"}}},overridesBuiltInTool:!0,skipPermission:!0,handler:g=>{if(g.shell_id)return i.shutdownShell(g.shell_id)?fn("Shell stopped."):Wt("Shell not found.","not_found");let h=i.listShells(),v=h[h.length-1];return v?(i.shutdownShell(v.id),fn("Shell stopped.")):Wt("No active shell to stop.","no_shell")}},c={name:`list_${r}`,description:`List active ${r} shell instances.`,parameters:{type:"object",properties:{}},overridesBuiltInTool:!0,skipPermission:!0,handler:()=>{let g=i.listShells();if(g.length===0)return fn("No active shells.");let h=g.map(v=>{let S=t.getExitCode(v.terminalUri),_=S!==void 0?`exited (${S})`:"running";return`- ${v.id}: ${v.shellType} [${_}]`});return fn(h.join(`
`))}},u=r==="bash"?"powershell":"bash",d=`This tool is disabled because the configured shell is ${n}. Use the \`${r}\` tool instead.`;return[o,s,a,l,c,{name:u,description:d,parameters:{type:"object",properties:{command:{type:"string",description:"The command to execute"},timeout:{type:"number",description:"Timeout in milliseconds (default 120000)"}},required:["command"]},overridesBuiltInTool:!0,skipPermission:!0,handler:()=>Wt(d,"wrong_shell")}]}function ew(i){return i.endsWith("System32\\WindowsPowerShell\\v1.0\\powershell.exe")}function tw(i,t,e,n){let r=ew(t),o=[`This tool allows you to execute ${r?"Windows PowerShell 5.1":"PowerShell"} commands in a persistent terminal session, preserving environment variables, working directory, and other context across multiple commands.`,"","Command Execution:",r?"- Use semicolons ; to chain commands on one line, NEVER use && even when asked explicitly":"- Prefer ; when chaining commands on one line","- Prefer pipelines | for object-based data flow",'- Never create a sub-shell (eg. powershell -c "command") unless explicitly asked',"","Directory Management:","- Prefer relative paths when navigating directories, only use absolute when the path is far away or the current cwd is not expected","- By default (mode=sync), shell and cwd are reused by subsequent sync commands","- Use $PWD or Get-Location for current directory","- Use Push-Location/Pop-Location for directory stack","","Program Execution:","- Supports .NET, Python, Node.js, and other executables","- Install modules via Install-Module, Install-Package","- Use Get-Command to verify cmdlet/function availability","","Async Mode:","- For long-running tasks (e.g., servers), use mode=async","- Returns a terminal ID for checking status and runtime later","- Use Start-Job for background PowerShell jobs","",`Use write_${i} to send commands or input to a terminal session.`];return e&&o.push(...oS(n)),o.push("","Output Management:","- Output is automatically truncated if longer than 60KB to prevent context overflow","- Use Select-Object, Where-Object, Format-Table to filter output","- Use -First/-Last parameters to limit results","- For pager commands, add | Out-String or | Format-List","","Best Practices:","- Use proper cmdlet names instead of aliases in scripts",'- Quote paths with spaces: "C:\\Path With Spaces"',"- Prefer PowerShell cmdlets over external commands when available","- Prefer idiomatic PowerShell like Get-ChildItem instead of dir or ls for file listings","- Use Test-Path to check file/directory existence","- Be specific with Select-Object properties to avoid excessive output","- Avoid printing credentials unless absolutely required","","Interactive Input Handling:","- When a terminal command is waiting for interactive input, do NOT suggest alternatives or ask the user whether to proceed. Instead, use the ask_user tool to collect the needed values from the user, then send them.",`- Send exactly one answer per prompt using write_${i}. Never send multiple answers in a single send.`,`- After each send, call read_${i} to read the next prompt before sending the next answer.`,"- Continue one prompt at a time until the command finishes."),o.join(`
`)}function oS(i){let t=["","Sandboxing:","- ATTENTION: Terminal sandboxing is enabled, commands run in a sandbox by default","- When executing commands within the sandboxed environment, all operations requiring a temporary directory must utilize the $TMPDIR environment variable. The /tmp directory is not guaranteed to be accessible or writable and must be avoided","- Tools and scripts should respect the TMPDIR environment variable, which is automatically set to an appropriate path within the sandbox","- When a command fails due to sandbox restrictions, immediately re-run it with requestUnsandboxedExecution=true. Do NOT ask the user for permission \u2014 setting this flag automatically shows a confirmation prompt to the user","- Only set requestUnsandboxedExecution=true when there is evidence of failures caused by the sandbox, e.g. 'Operation not permitted' errors, network failures, or file access errors, etc","- Do NOT set requestUnsandboxedExecution=true without first executing the command in sandbox mode. Always try the command in the sandbox first, and only set requestUnsandboxedExecution=true when retrying after that sandboxed execution failed due to sandbox restrictions.","- When setting requestUnsandboxedExecution=true, also provide requestUnsandboxedExecutionReason explaining why the command needs unsandboxed access"];if(i){let e=new Set(i.deniedDomains),n=i.allowedDomains.filter(r=>!e.has(r));n.length===0?t.push("- All network access is blocked in the sandbox"):t.push(`- Only the following domains are accessible in the sandbox (all other network access is blocked): ${n.join(", ")}`),i.deniedDomains.length>0&&t.push(`- The following domains are explicitly blocked in the sandbox: ${i.deniedDomains.join(", ")}`)}return t}function sS(i,t,e){let n=[`
Command Execution:
- Use && to chain simple commands on one line
- Prefer pipelines | over temporary files for data flow
- Never create a sub-shell (eg. bash -c "command") unless explicitly asked

Directory Management:
- Prefer relative paths when navigating directories, only use absolute when the path is far away or the current cwd is not expected
- By default (mode=sync), shell and cwd are reused by subsequent sync commands
- Use $PWD for current directory references
- Consider using pushd/popd for directory stack management
- Supports directory shortcuts like ~ and -

Program Execution:
- Supports Python, Node.js, and other executables
- Install packages via package managers (brew, apt, etc.)
- Use which or command -v to verify command availability

Async Mode:
- For long-running tasks (e.g., servers), use mode=async
- Returns a terminal ID for checking status and runtime later

Use write_${i} to send commands or input to a terminal session.`];return t&&n.push(oS(e).join(`
`)),n.push(`

Output Management:
- Output is automatically truncated if longer than 60KB to prevent context overflow
- Use head, tail, grep, awk to filter and limit output size
- For pager commands, disable paging: git --no-pager or add | cat
- Use wc -l to count lines before displaying large outputs

Best Practices:
- Quote variables: "$var" instead of $var to handle spaces
- Use find with -exec or xargs for file operations
- Be specific with commands to avoid excessive output
- Avoid printing credentials unless absolutely required
- NEVER run sleep or similar wait commands in a terminal. You will be automatically notified on your next turn when async terminal commands or timed-out sync commands complete or need input. Do NOT poll for completion.

Interactive Input Handling:
- When a terminal command is waiting for interactive input, do NOT suggest alternatives or ask the user whether to proceed. Instead, use the ask_user tool to collect the needed values from the user, then send them.
- Send exactly one answer per prompt using write_${i}. Never send multiple answers in a single send.
- After each send, call read_${i} to read the next prompt before sending the next answer.
- Continue one prompt at a time until the command finishes.`),n.join("")}function nw(i,t){return["This tool allows you to execute shell commands in a persistent bash terminal session, preserving environment variables, working directory, and other context across multiple commands.",sS("bash",i,t),"- Use [[ ]] for conditional tests instead of [ ]","- Prefer $() over backticks for command substitution","- Use set -e at start of complex commands to exit on errors"].join(`
`)}function rw(i,t){return["This tool allows you to execute shell commands in a persistent zsh terminal session, preserving environment variables, working directory, and other context across multiple commands.",sS("bash",i,t),"- Use type to check command type (builtin, function, alias)","- Use jobs, fg, bg for job control","- Use [[ ]] for conditional tests instead of [ ]","- Prefer $() over backticks for command substitution","- Take advantage of zsh globbing features (**, extended globs). Note: unmatched globs fail by default (zsh: no matches found) - use a glob qualifier like *(N) or quote the glob if it should be literal","","zsh pitfalls - these WILL cause errors or hangs:","- NEVER use bare == or === as separators (e.g. echo === triggers zsh equals expansion). Quote them: echo '==='","- NEVER use status as a variable name (it is read-only in zsh). Use exit_code or ret instead"].join(`
`)}var iw=".agent.md",ow=".instructions.md",sw="SKILL.md";function aS(i,t){return{workspace:[{path:[".github","agents"],type:"agent"},{path:[".agents","agents"],type:"agent"},{path:[".claude","agents"],type:"agent"},{path:[".github","skills"],type:"skill"},{path:[".agents","skills"],type:"skill"},{path:[".claude","skills"],type:"skill"},{path:[".github","instructions"],type:"instruction"}],user:[{path:[".copilot","agents"],type:"agent"},{path:[".agents","skills"],type:"skill"}]}}var aw=100,_o=class extends C{constructor(e,n,r,o){super();this._workingDirectory=e;this._userHome=n;this._fileService=r;this._logService=o;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this._watchers=this._register(new $);this._refreshDelayer=this._register(new Ar(aw));let{workspace:s,user:a}=aS(this._workingDirectory,this._userHome);this._rootUris=[...s.map(l=>Q(this._workingDirectory,...l.path)),...a.map(l=>Q(this._userHome,...l.path))],this._register(this._fileService.onDidFilesChange(l=>{this._rootUris.some(c=>l.affects(c))&&this._scheduleRefresh()}))}files(){return this._cached||(this._cached=this._scan()),this._cached}refresh(){this._cached=void 0,this._watchers.clear()}_scheduleRefresh(){this._refreshDelayer.trigger(()=>{this.refresh(),this._onDidChange.fire()}).catch(()=>{})}async _scan(){this._watchers.clear();let e=new Te,{workspace:n,user:r}=aS(this._workingDirectory,this._userHome);return await Promise.all([...n.map(o=>this._scanRoot(this._workingDirectory,o,e)),...r.map(o=>this._scanRoot(this._userHome,o,e))]),[...e.values()]}async _scanRoot(e,n,r){let o=Q(e,...n.path),s;try{s=await this._fileService.resolve(o,{resolveMetadata:!1})}catch{return}if(!(!s.isDirectory||!s.children)){try{this._watchers.add(this._fileService.watch(o,{recursive:!0,excludes:[]}))}catch(a){this._logService.warn(`[SessionCustomizationDiscovery] Failed to watch '${o.toString()}': ${a instanceof Error?a.message:String(a)}`)}for(let a of s.children)if(n.type==="skill"){if(a.isDirectory){let l=Q(a.resource,sw);try{(await this._fileService.resolve(l,{resolveMetadata:!1})).isFile&&!r.has(l)&&r.set(l,{uri:l,type:"skill"})}catch{}}}else if(a.isFile){let l=a.name.toLowerCase(),c=n.type==="agent"?iw:ow;l.endsWith(c)&&!r.has(a.resource)&&r.set(a.resource,{uri:a.resource,type:n.type})}}}};_o=R([T(2,We),T(3,V)],_o);var lS="VS Code Synced Data",lw="host-discovery",cw=JSON.stringify({name:lS,description:"Customization data discovered from this workspace and your home directory"},null,"	");function dw(i){switch(i){case"agent":return"agents";case"skill":return"skills";case"instruction":return"rules"}}var To=class extends C{constructor(e,n,r){super();this._fileService=n;let o=`host-${Rt(e.toString())}`;this._rootUri=y.joinPath(r.basePath,lw,o)}get rootUri(){return this._rootUri}get lastNonce(){return this._lastNonce}async bundle(e){if(e.length===0)return;try{await this._fileService.del(this._rootUri,{recursive:!0})}catch{}let n=y.joinPath(this._rootUri,".plugin","plugin.json");await this._fileService.writeFile(n,P.fromString(cw));let r=[];for(let s of e){let a=dw(s.type),l=xe(s.uri),c,u;if(s.type==="skill"){let f=xe(tn(s.uri));c=y.joinPath(this._rootUri,a,f,l),u=`${a}/${f}/${l}`}else c=y.joinPath(this._rootUri,a,l),u=`${a}/${l}`;let d=await this._fileService.readFile(s.uri);await this._fileService.writeFile(c,d.value),r.push(`${u}:${d.value.toString()}`)}r.sort();let o=String(Rt(r.join(`
`)));return this._lastNonce=o,{ref:{uri:this._rootUri.toString(),displayName:lS,description:`${e.length} customization(s) discovered for this session`,nonce:o}}}};To=R([T(1,We),T(2,vo)],To);var cS="thinkingLevel",fw=["low","medium","high","xhigh"],mw={mode:"customize",sections:{identity:{action:"replace",content:"You are an AI assistant using Copilot CLI runtime in VS Code. You help users with software engineering tasks. When asked about your identity, you must state that you are an AI assistant using Copilot CLI runtime in VS Code."}}};function gw(i){return fw.some(t=>t===i)}function hw(i){return y.joinPath(i,"..",`${ge(i.fsPath)}.worktrees`)}function yw(i){return i.replace(/\//g,"-")}function vw(i,t){return`agents/${t?`${t}-${i.substring(0,8)}`:i}`}function bw(i){let e=i.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").split("-").filter(n=>n.length>0).slice(0,8).join("-").slice(0,48).replace(/-+$/g,"");return e.length>0?e:void 0}function dS(i){return m(1948,null,pt(i))+`

`}function Sw(i,t){if(i.length===0)return i;let e=i.slice(),n=e[0],r=n.responseParts[0];if(r?.kind==="markdown"){let o=n.responseParts.slice();o[0]={...r,content:t+r.content},e[0]={...n,responseParts:o}}else{let o=[{kind:"markdown",id:H(),content:t},...n.responseParts];e[0]={...n,responseParts:o}}return e}var fe=class extends C{constructor(e,n,r,o,s,a,l,c,u){super();this._logService=e;this._instantiationService=n;this._fileService=r;this._sessionDataService=o;this._gitService=s;this._terminalManager=a;this._configurationService=l;this._otelService=c;this.id="copilotcli";this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this._onDidMaterializeSession=this._register(new x);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._models=nn(this,[]);this.models=this._models;this._sessions=this._register(new at);this._provisionalSessions=new Map;this._createdWorktrees=new Map;this._pendingFirstTurnAnnouncements=new Map;this._sessionSequencer=new yt;this._activeClients=new Te;this._plugins=this._register(this._instantiationService.createInstance(ta)),this.onDidCustomizationsChange=this._plugins.onDidChange,this._register(u.registerProvider(new Kc(this.id,{hasHistory:d=>!this._provisionalSessions.has(d)&&this._sessions.has(d)})))}static{this._BRANCH_COMPLETION_LIMIT=25}_createCopilotClient(e){return new uw(e)}getDescriptor(){return{provider:"copilotcli",displayName:"Copilot CLI",description:"Copilot SDK agent running in a dedicated process"}}getProtectedResources(){return[Ai]}getCustomizations(){return this._plugins.getConfiguredHostCustomizations()}async getSessionCustomizations(e){let n=j.id(e),r=this._provisionalSessions.get(n);if(r)return this._plugins.getSessionCustomizations(r.workingDirectory);let o=this._sessions.get(n),s=o?void 0:await this._readSessionMetadata(e);return this._plugins.getSessionCustomizations(o?.customizationDirectory??s?.customizationDirectory??s?.workingDirectory)}async authenticate(e,n){if(e!==Ai.resource)return!1;let r=this._githubToken!==n;return this._githubToken=n,this._logService.info(`[Copilot] Auth token ${r?"updated":"unchanged"}`),r&&this._client&&this._sessions.size===0&&(this._logService.info("[Copilot] Restarting CopilotClient with new token"),await this._stopClient()),r&&this._refreshModels(),!0}async _refreshModels(){let e=this._githubToken;if(!e){this._models.set([],void 0);return}try{let n=await this._listModels();this._githubToken===e&&this._models.set(n,void 0)}catch(n){this._logService.error(n,"[Copilot] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}async _stopClient(){let e=this._client;this._client=void 0,this._clientStarting=void 0,await e?.stop()}_enablePlanModeOnClient(e){let n=e.connection;if(!n){this._logService.warn("[Copilot] Could not enable plan mode: client.connection is null");return}if(typeof n.sendRequest!="function"){this._logService.warn(`[Copilot] Could not enable plan mode: client.connection.sendRequest is ${typeof n.sendRequest}`);return}if(typeof n.onRequest!="function"){this._logService.warn(`[Copilot] Could not enable plan mode: client.connection.onRequest is ${typeof n.onRequest}`);return}let r=n.sendRequest.bind(n);n.sendRequest=(s,a)=>(s==="session.create"||s==="session.resume")&&a&&typeof a=="object"?r(s,{...a,requestExitPlanMode:!0}):r(s,a);let o=n.onRequest("exitPlanMode.request",async s=>{let a=this._sessions.get(s.sessionId);return a?a.handleExitPlanModeRequest(s):(this._logService.warn(`[Copilot] exitPlanMode.request for unknown session ${s.sessionId}`),{approved:!1})});this._register(E(()=>o.dispose()))}async _ensureClient(){let e=this._githubToken;if(!e)throw new W(qi,"Authentication is required to use Copilot",this.getProtectedResources());if(this._client)return this._client;if(this._clientStarting)return this._clientStarting;let n=(async()=>{this._logService.info("[Copilot] Starting CopilotClient... (with token)");let r=Object.assign({},process.env,{ELECTRON_RUN_AS_NODE:"1"});delete r.NODE_OPTIONS,delete r.VSCODE_INSPECTOR_OPTIONS,delete r.VSCODE_ESM_ENTRYPOINT,delete r.VSCODE_HANDLES_UNCAUGHT_ERRORS;for(let f of Object.keys(r))f!=="ELECTRON_RUN_AS_NODE"&&(f.startsWith("VSCODE_")||f.startsWith("ELECTRON_"))&&delete r[f];r.COPILOT_CLI_RUN_AS_NODE="1",r.USE_BUILTIN_RIPGREP="false";let o=y.joinPath(it.asFileUri(""),"..","node_modules","@github","copilot","index.js").fsPath,s=pw.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),a=ce(s),l=Object.keys(r).find(f=>f.toUpperCase()==="PATH")??"PATH",c=r[l];r[l]=c?`${c}${ts}${a}`:a,this._logService.info(`[Copilot] Resolved CLI path: ${o}`);let u=await this._otelService.getSdkTelemetryConfig(),d=this._createCopilotClient({gitHubToken:e,useLoggedInUser:!1,useStdio:!0,autoStart:!0,env:r,cliPath:o,telemetry:u});if(await d.start(),this._githubToken!==e)throw await d.stop(),new Error("Copilot authentication changed while the client was starting");return this._logService.info("[Copilot] CopilotClient started successfully"),this._enablePlanModeOnClient(d),this._client=d,this._clientStarting=void 0,d})();return this._clientStarting=n,n.catch(()=>{this._clientStarting=void 0}),n}_createThinkingLevelConfigSchema(e,n){if(!e?.length)return;let r=e.map(o=>{switch(o){case"low":return m(1943,null);case"medium":return m(1944,null);case"high":return m(1942,null);case"xhigh":return m(1946,null);default:return o}});return{type:"object",properties:{[cS]:{type:"string",title:m(1945,null),description:m(1941,null),default:n,enum:[...e],enumLabels:r}}}}_getReasoningEffort(e){let n=e?.config?.[cS];return gw(n)?n:void 0}_serializeModelSelection(e){return JSON.stringify(e)}_parseModelSelection(e){if(e){try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.id=="string"){let r={id:n.id};if(n.config&&typeof n.config=="object"){let o={};for(let[s,a]of Object.entries(n.config))typeof a=="string"&&(o[s]=a);Object.keys(o).length>0&&(r.config=o)}return r}}catch{}return{id:e}}}async listSessions(){this._logService.info("[Copilot] Listing sessions...");let n=await(await this._ensureClient()).listSessions(),r=new vi(4),o=new Map,a=(await Promise.all(n.map(async l=>{let c=j.uri(this.id,l.sessionId),u=await this._readStoredSessionMetadata(c);if(!u)return;let{project:d,resolved:f}=u;f||(d=await this._resolveSessionProject(l.context,r,o),this._storeSessionProjectResolution(c,d));let g=u.workingDirectory??(typeof l.context?.cwd=="string"?y.file(l.context.cwd):void 0);return{session:c,startTime:l.startTime.getTime(),modifiedTime:l.modifiedTime.getTime(),project:d,summary:l.summary,model:u.model,workingDirectory:g,customizationDirectory:u.customizationDirectory}}))).filter(l=>l!==void 0);return this._logService.info(`[Copilot] Found ${a.length} sessions`),a}async getSessionMetadata(e){let n=j.id(e),r=await this._readStoredSessionMetadata(e);if(!r)return;let s=await(await this._ensureClient()).getSessionMetadata(n);if(!s)return;let a=r?.project;if(r&&!r.resolved){let c=new vi(1);a=await this._resolveSessionProject(s?.context,c,new Map),this._storeSessionProjectResolution(e,a)}let l=r?.workingDirectory??(typeof s?.context?.cwd=="string"?y.file(s.context.cwd):void 0);return{session:e,startTime:s?.startTime.getTime()??Date.now(),modifiedTime:s?.modifiedTime.getTime()??Date.now(),project:a,summary:s?.summary,model:r?.model,workingDirectory:l,customizationDirectory:r?.customizationDirectory}}async _listModels(){this._logService.info("[Copilot] Listing models...");let r=(await(await this._ensureClient()).listModels()).map(o=>({provider:this.id,id:o.id,name:o.name,maxContextWindow:o.capabilities?.limits?.max_context_window_tokens,supportsVision:!!o.capabilities?.supports?.vision,configSchema:this._createThinkingLevelConfigSchema(o.supportedReasoningEfforts,o.defaultReasoningEffort),policyState:o.policy?.state,_meta:typeof o.billing?.multiplier=="number"?{multiplierNumeric:o.billing.multiplier}:void 0}));return this._logService.info(`[Copilot] Found ${r.length} models`),r}async createSession(e){if(!e?.workingDirectory)throw new Error("workingDirectory is required to create a Copilot session");this._logService.info(`[Copilot] Creating session... ${e?.model?`model=${e.model.id}`:""}`);let n=await this._ensureClient();if(e?.fork){let l=j.id(e.fork.session);return this._sessionSequencer.queue(l,async()=>{this._logService.info(`[Copilot] Forking session ${l} at turnId=${e.fork.turnId}`);let u=await(this._sessions.get(l)??await this._resumeSession(l)).getNextTurnEventId(e.fork.turnId),f=(await n.rpc.sessions.fork({sessionId:l,...u?{toEventId:u}:{}})).sessionId,g=this._sessionDataService.getSessionDataDirById(f),h=y.joinPath(g,Ls);try{let I=await this._sessionDataService.tryOpenDatabase(e.fork.session);if(I)try{await Zr.mkdir(g.fsPath,{recursive:!0}),await I.object.vacuumInto(h.fsPath)}finally{I.dispose()}}catch(I){this._logService.warn(`[Copilot] Failed to copy session database for fork: ${I instanceof Error?I.message:String(I)}`)}let v=await this._resumeSession(f);e.fork.turnIdMapping&&await v.remapTurnIds(e.fork.turnIdMapping);let S=v.sessionUri;this._logService.info(`[Copilot] Forked session created: ${S.toString()}`);let _=await vr({cwd:e.workingDirectory?.fsPath},this._gitService);return await this._storeSessionMetadata(S,e.model,e.workingDirectory,e.workingDirectory,_,!0),{session:S,workingDirectory:e.workingDirectory,..._?{project:_}:{}}})}let r=e.session?j.id(e.session):H(),o=j.uri(this.id,r);if(this._sessions.has(r)){this._logService.info(`[Copilot] createSession is a no-op: session already materialized: ${o.toString()}`);let l=await vr({cwd:e.workingDirectory.fsPath},this._gitService);return{session:o,workingDirectory:e.workingDirectory,...l?{project:l}:{}}}let s=this._provisionalSessions.has(r);e.activeClient&&(this._getOrCreateActiveClient(o).updateTools(e.activeClient.clientId,e.activeClient.tools),e.activeClient.customizations!==void 0&&await this._plugins.sync(e.activeClient.clientId,e.activeClient.customizations));let a=await vr({cwd:e.workingDirectory.fsPath},this._gitService);return s||this._provisionalSessions.set(r,{sessionId:r,sessionUri:o,workingDirectory:e.workingDirectory,model:e.model,project:a}),this._logService.info(`[Copilot] Session created (provisional): ${o.toString()}`),{session:o,workingDirectory:e.workingDirectory,provisional:!0,...a?{project:a}:{}}}async _materializeProvisional(e,n){let r=this._provisionalSessions.get(e);if(!r)throw new Error(`Cannot materialize unknown provisional session: ${e}`);let o=await this._ensureClient(),s=r.sessionUri,a=this._configurationService.getSessionConfigValues(s.toString()),l={provider:this.id,session:s,workingDirectory:r.workingDirectory,model:r.model,config:a},c=r.workingDirectory,u=this._activeClients.get(s),d=u?await u.snapshot(c):void 0,f=await this._resolveSessionWorkingDirectory(l,e,n),g=this._instantiationService.createInstance(Yr,s,f),h=this._buildSessionConfig(d,g),v=async I=>{let b=await o.createSession({model:r.model?.id,reasoningEffort:this._getReasoningEffort(r.model),sessionId:e,streaming:!0,workingDirectory:f?.fsPath,...await h(I)});return new Io(b)},S;try{S=this._createAgentSession(v,e,g,f,c,d),await S.initializeSession()}catch(I){throw await this._removeCreatedWorktree(e),I}let _=await vr({cwd:f?.fsPath},this._gitService);return this._provisionalSessions.delete(e),await this._storeSessionMetadata(s,r.model,f,c,_,!0),this._logService.info(`[Copilot] Session materialized: ${s.toString()}`),this._onDidMaterializeSession.fire({session:s,workingDirectory:f,project:_}),S}async resolveSessionConfig(e){let n=e.workingDirectory?await this._getGitInfo(e.workingDirectory):void 0,r=Pt({type:"string",title:m(1935,null),description:m(1940,null),enum:n?["folder","worktree"]:["folder"],enumLabels:n?[m(1936,null),m(1938,null)]:[m(1936,null)],enumDescriptions:n?[m(1937,null),m(1939,null)]:[m(1937,null)],default:n?"worktree":"folder",readOnly:!n,sessionMutable:!1}),o=n?"worktree":"folder",s=r.validate(e.config?.isolation)?e.config.isolation:o,a,l;if(n){let d=s==="folder";l=s==="worktree"?n.defaultBranch:n.currentBranch,a=Pt({type:"string",title:m(1933,null),description:m(1934,null),enum:[l],enumLabels:[l],default:l,enumDynamic:!d,readOnly:d,sessionMutable:!1})}let c=sr({isolation:r,...vt.definition,...a?{branch:a}:{}}),u=c.validateOrDefault(e.config,{isolation:s,autoApprove:"default",mode:"interactive",...l!==void 0?{branch:l}:{}});return{schema:c.toProtocol(),values:u}}async sessionConfigCompletions(e){return e.property!=="branch"||!e.workingDirectory?{items:[]}:{items:(await this._getBranches(e.workingDirectory,e.query)).map(r=>({value:r,label:r}))}}async setClientCustomizations(e,n,r){return this._plugins.sync(e,n,r)}setClientTools(e,n,r){let o=j.id(e),s=this._getOrCreateActiveClient(e),a=this._sessions.has(o);this._logService.info(`[Copilot:${o}] setClientTools: clientId=${n}, tools=[${r.map(l=>l.name).join(", ")||"(none)"}], hasCachedSdkSession=${a}`),s.updateTools(n,r)}onClientToolCallComplete(e,n,r){let o=e,s;for(;s=Xe(o);)o=s.parentSession;let a=j.id(o);this._sessions.get(a)?.handleClientToolCallComplete(n,r)}setCustomizationEnabled(e,n){this._plugins.setEnabled(e,n)}async sendMessage(e,n,r,o){let s=j.id(e);await this._sessionSequencer.queue(s,async()=>{let a;this._provisionalSessions.has(s)?a=await this._materializeProvisional(s,n):a=this._sessions.get(s);let l=this._activeClients.get(e),c=!!a;this._logService.info(`[Copilot:${s}] sendMessage: cachedEntry=${c}, hasActiveClient=${!!l}, activeClientId=${l?"(set)":"(none)"}`),a&&l&&await l.isOutdated(a.appliedSnapshot,a.customizationDirectory)&&(this._logService.info(`[Copilot:${s}] Session config changed (isOutdated=true), refreshing session. snapshotClientId=${a.appliedSnapshot.clientId}`),this._sessions.deleteAndDispose(s),a=void 0),a||this._logService.info(`[Copilot:${s}] No cached entry${c?" (was evicted by isOutdated)":""}, calling _resumeSession`),a??=await this._resumeSession(s),o&&a.resetTurnState(o);let u=this._pendingFirstTurnAnnouncements.get(s);u!==void 0&&(this._pendingFirstTurnAnnouncements.delete(s),a.emitInitialMarkdown(u));try{let d=this._resolveSdkMode(e);await a.send(n,r,o,d)}catch(d){let f=d?.code,g=d instanceof Error?d.message:String(d);throw this._logService.error(`[Copilot:${s}] entry.send() failed: code=${f}, message=${g}, hadCachedEntry=${c}, errorType=${d?.constructor?.name}`),d}})}_resolveSdkMode(e){let n=e.toString(),r=this._configurationService.getEffectiveValue(n,vt,"mode");if(r==="plan")return"plan";if(r==="interactive")return this._configurationService.getEffectiveValue(n,vt,"autoApprove")==="autopilot"?"autopilot":"interactive"}setPendingMessages(e,n,r){let o=j.id(e),s=this._sessions.get(o);if(!s){this._logService.warn(`[Copilot:${o}] setPendingMessages: session not found`);return}n&&s.sendSteering(n)}async getSessionMessages(e){let n=Xe(e);if(n){let l=n.parentSession,c;for(;c=Xe(l);)l=c.parentSession;let u=j.id(l),d=this._sessions.get(u)??await this._resumeSession(u).catch(f=>{this._logService.warn(`[Copilot:${u}] Failed to resume root for subagent restore`,f)});return d?d.getSubagentMessages(n.toolCallId):[]}let r=j.id(e);if(this._provisionalSessions.has(r))return[];let o=this._sessions.get(r)??await this._resumeSession(r).catch(l=>{this._logService.warn(`[Copilot:${r}] Failed to resume session for message lookup`,l)});if(!o)return[];let s=await o.getMessages(),a=await this._readWorktreeMetadata(e).catch(l=>{this._logService.warn(`[Copilot:${r}] Failed to read worktree branch metadata`,l)});return a?.branchName?Sw(s,dS(a.branchName)):s}async disposeSession(e){let n=j.id(e);await this._sessionSequencer.queue(n,async()=>{await this._destroyAndDisposeSession(n)})}async onArchivedChanged(e,n){let r=j.id(e);await this._sessionSequencer.queue(r,async()=>{n?await this._cleanupWorktreeOnArchive(e,r):await this._recreateWorktreeOnUnarchive(e,r)})}async _cleanupWorktreeOnArchive(e,n){let r=await this._readWorktreeMetadata(e).catch(()=>{});if(!r?.worktreePath||!r.repositoryRoot)return;let{branchName:o,worktreePath:s,repositoryRoot:a}=r;try{await Zr.access(s.fsPath)}catch{this._createdWorktrees.delete(n);return}if(!await this._gitService.branchExists(a,o).catch(()=>!1)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: branch '${o}' is missing`);return}if(await this._gitService.hasUncommittedChanges(s).catch(()=>!0)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: '${s.fsPath}' has uncommitted changes`);return}try{await this._gitService.removeWorktree(a,s),this._logService.info(`[Copilot:${n}] Removed worktree '${s.fsPath}' on archive`)}catch(u){this._logService.warn(`[Copilot:${n}] Failed to remove worktree '${s.fsPath}' on archive: ${u instanceof Error?u.message:String(u)}`)}finally{this._createdWorktrees.delete(n)}}async _recreateWorktreeOnUnarchive(e,n){let r=await this._readWorktreeMetadata(e).catch(()=>{});if(!r?.worktreePath||!r.repositoryRoot)return;let{branchName:o,worktreePath:s,repositoryRoot:a}=r;try{await Zr.access(s.fsPath);return}catch{}if(!await this._gitService.branchExists(a,o).catch(()=>!1)){this._logService.info(`[Copilot:${n}] Skipping worktree recreation: branch '${o}' is missing`);return}try{await Zr.mkdir(y.joinPath(s,"..").fsPath,{recursive:!0}),await this._gitService.addExistingWorktree(a,s,o),this._createdWorktrees.set(n,{repositoryRoot:a,worktree:s}),this._logService.info(`[Copilot:${n}] Recreated worktree '${s.fsPath}' on unarchive`)}catch(c){this._logService.warn(`[Copilot:${n}] Failed to recreate worktree '${s.fsPath}' on unarchive: ${c instanceof Error?c.message:String(c)}`)}}async abortSession(e){let n=j.id(e);await this._sessionSequencer.queue(n,async()=>{let r=this._sessions.get(n);r&&await r.abort()})}async truncateSession(e,n){let r=j.id(e);this._provisionalSessions.has(r)||await this._sessionSequencer.queue(r,async()=>{this._logService.info(`[Copilot:${r}] Truncating session${n!==void 0?` at turnId=${n}`:" (all turns)"}`);let o=this._sessions.get(r)??await this._resumeSession(r),s;n?s=await o.getNextTurnEventId(n):s=await o.getFirstTurnEventId(),s?await o.truncateAtEventId(s,n):this._logService.info(`[Copilot:${r}] No event ID found for truncation, nothing to truncate`),this._logService.info(`[Copilot:${r}] Session truncated`)})}async changeModel(e,n){let r=j.id(e),o=this._provisionalSessions.get(r);if(o){o.model=n;return}let s=this._sessions.get(r);s&&await s.setModel(n.id,this._getReasoningEffort(n)),await this._storeSessionMetadata(e,n,void 0,void 0,void 0)}async shutdown(){return this._shutdownPromise??=(async()=>{this._logService.info("[Copilot] Shutting down...");let e=new Set([...this._sessions.keys(),...this._createdWorktrees.keys()]);for(let n of e)await this._sessionSequencer.queue(n,()=>this._destroyAndDisposeSession(n));await this._client?.stop(),this._client=void 0})(),this._shutdownPromise}respondToPermissionRequest(e,n){for(let[,r]of this._sessions)if(r.respondToPermissionRequest(e,n))return}respondToUserInputRequest(e,n,r){for(let[,o]of this._sessions)if(o.respondToUserInputRequest(e,n,r))return}hasSession(e){let n=j.id(e);return this._sessions.has(n)||this._provisionalSessions.has(n)}_getOrCreateActiveClient(e){let n=this._activeClients.get(e);return n||(n=new Mf(r=>this._plugins.getAppliedPlugins(r)),this._activeClients.set(e,n)),n}_createAgentSession(e,n,r,o,s,a){let l=j.uri(this.id,n),c=this._instantiationService.createInstance(So,{sessionUri:l,rawSessionId:n,onDidSessionProgress:this._onDidSessionProgress,wrapperFactory:e,shellManager:r,workingDirectory:o,customizationDirectory:s,clientSnapshot:a});return this._sessions.set(n,c),c}async _destroyAndDisposeSession(e){let n=this._provisionalSessions.get(e);if(n){this._provisionalSessions.delete(e),this._activeClients.delete(n.sessionUri);return}let r=this._sessions.get(e);if(r)try{await r.destroySession()}catch(o){this._logService.warn(`[Copilot:${e}] Failed to destroy session before cleanup: ${o instanceof Error?o.message:String(o)}`)}this._sessions.deleteAndDispose(e),await this._removeCreatedWorktree(e)}_buildSessionConfig(e,n){let r=e?.plugins??[];return async o=>{let a=this._configurationService.getRootValue(ar,"disableCustomTerminalTool")===!0?[]:await iS(n,this._terminalManager,this._logService),l=await Jb(r.flatMap(c=>c.agents),this._fileService);return{onPermissionRequest:o.onPermissionRequest,onUserInputRequest:o.onUserInputRequest,onElicitationRequest:o.onElicitationRequest,hooks:Yb(r.flatMap(c=>c.hooks),o.hooks),mcpServers:Gb(r.flatMap(c=>c.mcpServers)),customAgents:l,skillDirectories:Qb(r.flatMap(c=>c.skills)),systemMessage:mw,tools:[...a,...o.clientTools],infiniteSessions:{enabled:!0}}}}async _resumeSession(e){this._logService.info(`[Copilot:${e}] _resumeSession called \u2014 session not in memory, resuming...`);let n=await this._ensureClient(),r=j.uri(this.id,e),o=await this._readSessionMetadata(r),s=o.customizationDirectory??o.workingDirectory,a=this._activeClients.get(r),l=a?await a.snapshot(s):void 0,c=await n.getSessionMetadata(e).catch(v=>{this._logService.warn(`[Copilot:${e}] getSessionMetadata failed`,v)}),u=o.workingDirectory??(typeof c?.context?.cwd=="string"?y.file(c.context.cwd):void 0);if(!u)throw new Error(`workingDirectory is required to resume Copilot session '${e}'`);let d=this._instantiationService.createInstance(Yr,r,u),f=this._buildSessionConfig(l,d),g=async v=>{let S=await f(v);try{this._logService.info(`[Copilot:${e}] Calling SDK resumeSession...`);let _=await n.resumeSession(e,{...S,workingDirectory:u?.fsPath});return this._logService.info(`[Copilot:${e}] SDK resumeSession succeeded`),new Io(_)}catch(_){let I=_?.code,b=_ instanceof Error?_.message:String(_);if(this._logService.warn(`[Copilot:${e}] SDK resumeSession failed: code=${I}, message=${b}`),!_||I!==-32603)throw _;this._logService.warn(`[Copilot:${e}] Resume failed (code=-32603), falling back to createSession with same ID`);let w=await n.createSession({...S,sessionId:e,streaming:!0,model:o.model?.id,reasoningEffort:this._getReasoningEffort(o.model),workingDirectory:u?.fsPath});return this._logService.info(`[Copilot:${e}] Fallback createSession succeeded`),new Io(w)}},h=this._createAgentSession(g,e,d,u,s,l);return await h.initializeSession(),h}async _getGitInfo(e){if(!await this._gitService.isInsideWorkTree(e))return;let n=await this._gitService.getCurrentBranch(e)??"HEAD",r=await this._gitService.getDefaultBranch(e)??n;return{currentBranch:n,defaultBranch:r}}async _getBranches(e,n){return this._gitService.getBranches(e,{query:n,limit:fe._BRANCH_COMPLETION_LIMIT})}async _resolveSessionWorkingDirectory(e,n,r){if(e?.config?.isolation!=="worktree"||!e.workingDirectory||typeof e.config.branch!="string")return e?.workingDirectory;let o=await this._gitService.getRepositoryRoot(e.workingDirectory);if(!o)return e.workingDirectory;let s=hw(o),a=r?bw(r):void 0,l=vw(n,a),c=y.joinPath(s,yw(l));await Zr.mkdir(s.fsPath,{recursive:!0});let u=typeof e.config.branch=="string"?e.config.branch:void 0;await this._gitService.addWorktree(o,c,l,u),this._createdWorktrees.set(n,{repositoryRoot:o,worktree:c}),this._pendingFirstTurnAnnouncements.set(n,dS(l));let d=j.uri(this.id,n);try{await this._writeWorktreeMetadata(d,{branchName:l,baseBranch:u,worktreePath:c,repositoryRoot:o})}catch(f){this._logService.warn(`[Copilot:${n}] Failed to persist worktree branch metadata: ${f instanceof Error?f.message:String(f)}`)}return c}async _removeCreatedWorktree(e){let n=this._createdWorktrees.get(e);if(n)try{await this._gitService.removeWorktree(n.repositoryRoot,n.worktree)}catch(r){this._logService.warn(`[Copilot:${e}] Failed to remove worktree '${n.worktree.fsPath}': ${r instanceof Error?r.message:String(r)}`)}finally{this._createdWorktrees.delete(e)}}static{this._META_MODEL="copilot.model"}static{this._META_CWD="copilot.workingDirectory"}static{this._META_CUSTOMIZATION_DIRECTORY="copilot.customizationDirectory"}static{this._META_PROJECT_RESOLVED="copilot.project.resolved"}static{this._META_PROJECT_URI="copilot.project.uri"}static{this._META_PROJECT_DISPLAY_NAME="copilot.project.displayName"}static{this._META_WORKTREE_BRANCH="copilot.worktree.branchName"}static{this._META_WORKTREE_PATH="copilot.worktree.path"}static{this._META_WORKTREE_REPOSITORY_ROOT="copilot.worktree.repositoryRoot"}async _writeWorktreeMetadata(e,n){let r=this._sessionDataService.openDatabase(e);try{let o=[r.object.setMetadata(fe._META_WORKTREE_BRANCH,n.branchName),r.object.setMetadata(fe._META_WORKTREE_PATH,n.worktreePath.toString()),r.object.setMetadata(fe._META_WORKTREE_REPOSITORY_ROOT,n.repositoryRoot.toString())];n.baseBranch&&o.push(r.object.setMetadata(Ol,n.baseBranch)),await Promise.all(o)}finally{r.dispose()}}async _readWorktreeMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s]=await Promise.all([n.object.getMetadata(fe._META_WORKTREE_BRANCH),n.object.getMetadata(fe._META_WORKTREE_PATH),n.object.getMetadata(fe._META_WORKTREE_REPOSITORY_ROOT)]);if(!r)return;let a=o?y.parse(o):void 0,l=s?y.parse(s):void 0;return{branchName:r,worktreePath:a,repositoryRoot:l}}finally{n.dispose()}}async _storeSessionMetadata(e,n,r,o,s,a=s!==void 0){let l=this._sessionDataService.openDatabase(e),c=l.object;try{let u=[];n&&u.push(c.setMetadata(fe._META_MODEL,this._serializeModelSelection(n))),r&&u.push(c.setMetadata(fe._META_CWD,r.toString())),o&&u.push(c.setMetadata(fe._META_CUSTOMIZATION_DIRECTORY,o.toString())),a&&u.push(c.setMetadata(fe._META_PROJECT_RESOLVED,"true")),s&&(u.push(c.setMetadata(fe._META_PROJECT_URI,s.uri.toString())),u.push(c.setMetadata(fe._META_PROJECT_DISPLAY_NAME,s.displayName))),await Promise.all(u)}finally{l.dispose()}}async _readSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(!n)return{};try{let[r,o,s]=await Promise.all([n.object.getMetadata(fe._META_MODEL),n.object.getMetadata(fe._META_CWD),n.object.getMetadata(fe._META_CUSTOMIZATION_DIRECTORY)]);return{model:this._parseModelSelection(r),workingDirectory:o?y.parse(o):void 0,customizationDirectory:s?y.parse(s):void 0}}finally{n.dispose()}}async _readStoredSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s,a,l,c]=await Promise.all([n.object.getMetadata(fe._META_MODEL),n.object.getMetadata(fe._META_CWD),n.object.getMetadata(fe._META_CUSTOMIZATION_DIRECTORY),n.object.getMetadata(fe._META_PROJECT_RESOLVED),n.object.getMetadata(fe._META_PROJECT_URI),n.object.getMetadata(fe._META_PROJECT_DISPLAY_NAME)]),u=o?y.parse(o):void 0,d=l&&c?{uri:y.parse(l),displayName:c}:void 0;return{model:this._parseModelSelection(r),workingDirectory:u,customizationDirectory:s?y.parse(s):void 0,project:d,resolved:a==="true"||d!==void 0}}finally{n.dispose()}}async _storeSessionProjectResolution(e,n){await this._storeSessionMetadata(e,void 0,void 0,void 0,n,!0)}_resolveSessionProject(e,n,r){let o=this._projectContextKey(e);if(!o)return Promise.resolve(void 0);let s=r.get(o);return s||(s=n.queue(()=>vr(e,this._gitService)),r.set(o,s)),s}_projectContextKey(e){if(e?.cwd)return`cwd:${e.cwd}`;if(e?.gitRoot)return`gitRoot:${e.gitRoot}`;if(e?.repository)return`repository:${e.repository}`}dispose(){this.shutdown().catch(e=>{this._logService.warn("[Copilot] Shutdown failed during dispose",e)}).finally(()=>super.dispose())}};fe=R([T(0,V),T(1,Ve),T(2,We),T(3,sn),T(4,ln),T(5,co),T(6,ut),T(7,jc),T(8,wc)],fe);var Lf=class extends C{constructor(e,n,r,o,s,a){super();this._resolvePlugin=r;this._onDidRefresh=o;this._logService=s;this._discovery=this._register(a.createInstance(_o,e,n)),this._bundler=this._register(a.createInstance(To,e)),this._settled=this._refresh(),this._register(this._discovery.onDidChange(()=>{this._settled=this._refresh().finally(()=>this._onDidRefresh())}))}whenSettled(){return this._settled}currentResolved(){return this._resolved}async _refresh(){try{let e=await this._discovery.files(),n=await this._bundler.bundle(e);if(!n){this._resolved=void 0;return}let r=y.parse(n.ref.uri),o=await this._resolvePlugin(r);this._resolved={customization:{customization:n.ref,enabled:!0,status:o?"loaded":"error",statusMessage:o?void 0:m(1947,null)},pluginDir:r,plugin:o}}catch(e){this._logService.warn(`[Copilot:SessionDiscoveredEntry] Discovery/bundle failed: ${e instanceof Error?e.message:String(e)}`),this._resolved=void 0}}},ta=class extends C{constructor(e,n,r,o,s){super();this._pluginManager=e;this._logService=n;this._fileService=r;this._configurationService=o;this._instantiationService=s;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this._enablement=new Map;this._clientCustomizations=[];this._hostCustomizations=[];this._clientSync=Promise.resolve([]);this._hostSync=Promise.resolve([]);this._clientRevision=0;this._hostRevision=0;this._lastAppliedRefs=[];this._sessionDiscovered=new Map;this._applyHostCustomizations(),this._register(this._configurationService.onDidRootConfigChange(()=>{this._applyHostCustomizations()}))}dispose(){for(let e of this._sessionDiscovered.values())e.dispose();this._sessionDiscovered.clear(),super.dispose()}getConfiguredHostCustomizations(){return this._hostCustomizations.map(e=>e.customization.customization)}getSessionCustomizations(e){let n=[...this._hostCustomizations.map(s=>this._applyEnablement(s.customization)),...this._clientCustomizations.map(s=>this._applyEnablement(s.customization))],o=(e?this._getOrCreateSessionEntry(e):void 0)?.currentResolved();return o&&n.push(this._applyEnablement(o.customization)),n}async getAppliedPlugins(e){let n=e?this._getOrCreateSessionEntry(e):void 0,[r,o]=await Promise.all([this._hostSync.catch(l=>(this._logService.warn("[Copilot:PluginController] Host customization update failed",l),this._hostCustomizations)),this._clientSync.catch(l=>(this._logService.warn("[Copilot:PluginController] Customization sync failed",l),this._clientCustomizations)),n?.whenSettled()]),s=n?.currentResolved(),a=s?.plugin&&this._isEnabled(s.customization)?[s.plugin]:[];return[...r.filter(l=>!!l.plugin&&this._isEnabled(l.customization)).map(l=>l.plugin),...o.filter(l=>!!l.plugin&&this._isEnabled(l.customization)).map(l=>l.plugin),...a]}_getOrCreateSessionEntry(e){let n=e.toString(),r=this._sessionDiscovered.get(n);return r||(r=new Lf(e,y.file(this._getUserHome()),o=>this._tryParsePlugin(o),()=>this._onDidChange.fire(),this._logService,this._instantiationService),this._sessionDiscovered.set(n,r)),r}setEnabled(e,n){this._enablement.set(e,n)}_applyHostCustomizations(){let e=this._configurationService.getRootValue(ar,"customizations")??[];if(Ue(e,this._lastAppliedRefs))return;this._lastAppliedRefs=e;let n=++this._hostRevision;this._hostCustomizations=e.map(r=>({customization:{customization:r,enabled:!0,status:"loading"}})),this._onDidChange.fire(),this._hostSync=Promise.all(e.map(r=>this._resolveConfiguredCustomization(r))).then(r=>(n===this._hostRevision&&(this._hostCustomizations=r),r)).finally(()=>{n===this._hostRevision&&this._onDidChange.fire()})}sync(e,n,r){let o=++this._clientRevision;this._clientCustomizations=n.map(l=>({customization:{customization:l,clientId:e,enabled:!0,status:"loading"}})),r?.(this._clientCustomizations.map(l=>({customization:this._applyEnablement(l.customization)})));let s=this._clientSync;return(this._clientSync=s.catch(l=>{this._logService.warn("[Copilot:PluginController] Previous customization sync failed",l)}).then(async()=>{let l=await this._pluginManager.syncCustomizations(e,n,u=>{o===this._clientRevision&&(this._clientCustomizations=u.map(d=>({customization:{...d,clientId:e}})),r?.(this._clientCustomizations.map(d=>({customization:this._applyEnablement(d.customization)}))))}),c=await Promise.all(l.map(u=>this._resolveSyncedCustomization(u,e)));return o===this._clientRevision&&(this._clientCustomizations=c),c})).then(l=>l.map(c=>({customization:this._applyEnablement(c.customization),...c.pluginDir?{pluginDir:c.pluginDir}:{}})))}_isEnabled(e){return this._enablement.get(e.customization.uri)??e.enabled}_applyEnablement(e){let n=this._isEnabled(e);return e.enabled===n?e:{...e,enabled:n}}async _resolveConfiguredCustomization(e){let n=y.parse(e.uri),r=await this._tryParsePlugin(n);return r?{customization:{customization:e,enabled:!0,status:"loaded"},pluginDir:n,plugin:r}:{customization:{customization:e,enabled:!0,status:"error",statusMessage:m(1947,null)}}}async _resolveSyncedCustomization(e,n){if(!e.pluginDir)return{customization:{...e.customization,clientId:n}};let r=await this._tryParsePlugin(e.pluginDir);return r?{customization:{...e.customization,clientId:n},pluginDir:e.pluginDir,plugin:r}:{customization:{...e.customization,clientId:n,status:"error",statusMessage:m(1947,null)}}}async _tryParsePlugin(e){try{return await $c(e,this._fileService,void 0,this._getUserHome())}catch(n){this._logService.warn(`[Copilot:PluginController] Error parsing plugin '${e.toString()}': ${n instanceof Error?n.message:String(n)}`);return}}_getUserHome(){return process.env.HOME??process.env.USERPROFILE??""}};ta=R([T(0,vo),T(1,V),T(2,We),T(3,ut),T(4,Ve)],ta);var Mf=class{constructor(t){this._resolvePlugins=t;this._tools=[];this._clientId=""}updateTools(t,e){this._clientId=t,this._tools=e}async snapshot(t){return{clientId:this._clientId,tools:this._tools,plugins:await this._resolvePlugins(t)}}async isOutdated(t,e){let n=await this._resolvePlugins(e);if(!Xb(t.plugins,n)||t.tools.length!==this._tools.length)return!0;let r=new Map(t.tools.map(o=>[o.name,o]));for(let o of this._tools){let s=r.get(o.name);if(!s||s.description!==o.description||!Ue(s.inputSchema,o.inputSchema))return!0}return!1}};import{CAPIClient as Iw,RequestType as uS}from"@vscode/copilot-api";var Nf=520,_w=300,Tw=1800,Cw="2025-04-01",ei=class extends Error{constructor(e,n,r){super(r??n.error.message);this.status=e;this.envelope=n;this.name="CopilotApiError"}};function pS(i,t,e,n="CAPI request failed"){let r;if(e)try{let o=JSON.parse(e);if(o&&typeof o=="object"&&o.type==="error"){let s=o.error;s&&typeof s=="object"&&typeof s.type=="string"&&typeof s.message=="string"&&(r=o)}}catch{}return r||(r={type:"error",error:{type:"api_error",message:e||`${i} ${t}`},request_id:null}),new ei(i,r,`${n}: ${i} ${t} \u2014 ${r.error.message}`)}var xo=z("copilotApiService"),Co=class{constructor(t,e,n){this._logService=e;this._productService=n;this._capiBasePromise=null;this._clientsByToken=new Map;this._fetch=t??globalThis.fetch}messages(t,e,n){return e.stream?this._messagesStreaming(t,e,n):this._messagesNonStreaming(t,e,n)}async countTokens(t,e,n){throw new Error("countTokens not supported by CAPI")}async models(t,e){let n=await this._getClientForToken(t);this._logService.debug("[CopilotApiService] GET models");let r=await n.makeRequest({method:"GET",headers:{...e?.headers,Authorization:`Bearer ${t}`},signal:e?.signal},{type:uS.Models});if(!r.ok){(r.status===401||r.status===403)&&this._invalidateClientForToken(t);let s=await r.text().catch(()=>"");throw pS(r.status,r.statusText,s,"CAPI models request failed")}return(await r.json()).data??[]}_getCapiBase(){return this._capiBasePromise||(this._capiBasePromise=this._buildCapiBase().catch(t=>{throw this._capiBasePromise=null,t})),this._capiBasePromise}async _buildCapiBase(){let[t,e]=await Promise.all([Ul(o=>this._logService.warn("[CopilotApiService] getMachineId failed",o)),Vl(o=>this._logService.warn("[CopilotApiService] getDevDeviceId failed",o))]);return{extensionInfo:{name:"agent-host",sessionId:H(),machineId:t,deviceId:e,vscodeVersion:this._productService.version,version:this._productService.version,buildType:this._productService.quality==="stable"?"prod":"dev"},userUrl:"https://api.github.com/copilot_internal/user"}}async*_messagesStreaming(t,e,n){let r=await this._sendRequest(t,e,!0,n);if(!r.body)throw new Error("CAPI response has no body");yield*this._readSSE(r.body)}async _messagesNonStreaming(t,e,n){return(await this._sendRequest(t,e,!1,n)).json()}async _sendRequest(t,e,n,r){let o=await this._getClientForToken(t),s=H();this._logService.debug("[CopilotApiService] POST messages",`model=${e.model} stream=${n} requestId=${s}`);let{system:a,...l}=e,c=JSON.stringify({...l,stream:n,...a!==void 0?{system:typeof a=="string"?[{type:"text",text:a}]:a}:{}}),u=await o.makeRequest({method:"POST",headers:{...r?.headers,"Content-Type":"application/json",Authorization:`Bearer ${t}`,"X-Request-Id":s,"OpenAI-Intent":"conversation"},body:c,signal:r?.signal},{type:uS.ChatMessages});if(!u.ok){(u.status===401||u.status===403)&&this._invalidateClientForToken(t);let d=await u.text().catch(()=>"");throw pS(u.status,u.statusText,d)}return u}_getClientForToken(t){let e=Date.now()/1e3,n=this._clientsByToken.get(t);if(n)return n.then(o=>o.expiresAt-e>_w?o.capiClient:(this._clientsByToken.delete(t),this._getClientForToken(t))).catch(o=>{throw this._clientsByToken.delete(t),o});let r=this._buildClientForToken(t).catch(o=>{throw this._clientsByToken.delete(t),o});return this._clientsByToken.set(t,r),r.then(o=>o.capiClient)}_invalidateClientForToken(t){this._clientsByToken.delete(t)}async _buildClientForToken(t){let{extensionInfo:e,userUrl:n}=await this._getCapiBase(),r=this._fetch,o=new Iw(e,void 0,{fetch:(l,c)=>r(l,{method:c.method??"GET",headers:c.headers,body:c.body,signal:c.signal})});this._logService.debug("[CopilotApiService] Discovering CAPI endpoints via /copilot_internal/user");let s=await this._fetch(n,{method:"GET",headers:{Authorization:`Bearer ${t}`,Accept:"application/json","X-GitHub-Api-Version":Cw}});if(!s.ok){let l=await s.text().catch(()=>"");throw new Error(`Copilot endpoint discovery failed: ${s.status} ${s.statusText} \u2014 ${l}`)}let a=await s.json();return o.updateDomains({endpoints:a.endpoints??{},sku:a.access_type_sku??""},void 0),this._logService.debug("[CopilotApiService] CAPI endpoint discovered, api=",a.endpoints?.api),{capiClient:o,expiresAt:Date.now()/1e3+Tw}}async*_readSSE(t){let e=t.getReader(),n=new TextDecoder,r="";try{for(;;){let{done:o,value:s}=await e.read();if(o)break;r+=n.decode(s,{stream:!0});let a=r.split(`
`);r=a.pop()??"";for(let l of a){let c=this._parseDataLine(l);if(c!==void 0&&(yield c,c.type==="message_stop"))return}}if(r.trim()){let o=this._parseDataLine(r);if(o!==void 0&&(yield o,o.type==="message_stop"))return}}finally{try{await e.cancel()}catch{}e.releaseLock()}}_parseDataLine(t){if(!t.startsWith("data: "))return;let e=t.slice(6).trim(),n;try{n=JSON.parse(e)}catch{this._logService.warn("[CopilotApiService] Failed to parse SSE data:",e);return}if(typeof n!="object"||n===null)return;let o=n.type;if(typeof o=="string"){if(o==="error"){let s=n.error,a;if(s&&typeof s=="object"&&typeof s.type=="string"&&typeof s.message=="string")a=n;else{let l;typeof s=="string"?l=s:typeof s?.message=="string"?l=s.message:l="Unknown streaming error",a={type:"error",error:{type:"api_error",message:l},request_id:null}}throw new ei(Nf,a)}if(xw.has(o))return n}}};Co=R([T(1,V),T(2,Ut)],Co);var xw=new Set(["message_start","message_delta","message_stop","content_block_start","content_block_delta","content_block_stop"]);function na(i){switch(i){case"default":case"acceptEdits":case"bypassPermissions":case"plan":case"dontAsk":case"auto":return i;default:return}}var fS="thinkingLevel";function Ff(i){if(i!==void 0)return i==="max"?"xhigh":i}function ra(i){let t=i?.config?.[fS];switch(t){case"low":case"medium":case"high":case"xhigh":case"max":return t;default:return}}var ww=["low","medium","high","xhigh","max"];function mS(i){return ww.includes(i)}function Rw(i){switch(i){case"low":return m(1883,null);case"medium":return m(1885,null);case"high":return m(1882,null);case"xhigh":return m(1887,null);case"max":return m(1884,null)}}function gS(i){if(i.length===0)return;let t=i.includes("high")?"high":void 0;return{type:"object",properties:{[fS]:{type:"string",title:m(1886,null),description:m(1881,null),enum:[...i],enumLabels:i.map(Rw),...t!==void 0?{default:t}:{}}}}}import*as od from"fs";import{pathToFileURL as Ew}from"url";var Ro=z("claudeAgentSdkService"),wo=class{constructor(t){this._logService=t;this._firstLoadFailureLogged=!1}async listSessions(){return(await this._getSdk()).listSessions(void 0)}async getSessionInfo(t){return(await this._getSdk()).getSessionInfo(t)}async startup(t){return(await this._getSdk()).startup(t)}async getSessionMessages(t,e){return(await this._getSdk()).getSessionMessages(t,e)}async listSubagents(t,e){return(await this._getSdk()).listSubagents(t,e)}async getSubagentMessages(t,e,n){return(await this._getSdk()).getSubagentMessages(t,e,n)}async _getSdk(){if(this._sdkModule)return this._sdkModule;try{return this._sdkModule=await this._loadSdk(),this._sdkModule}catch(t){throw this._firstLoadFailureLogged||(this._firstLoadFailureLogged=!0,this._logService.error("[Claude] Failed to load @anthropic-ai/claude-agent-sdk",t)),t}}async _loadSdk(){let t=process.env[hs];if(!t)throw new Error(`Cannot load @anthropic-ai/claude-agent-sdk: ${hs} is not set. Set the 'chat.agentHost.claudeAgent.path' setting to a locally-installed SDK package.`);let e=t;if(od.statSync(t).isDirectory()){let n=JSON.parse(od.readFileSync(B(t,"package.json"),"utf8")),r=n.exports?.["."]?.default??n.exports?.["."]?.import??n.main??"index.js";e=In(t,r)}return import(Ew(e).href)}};wo=R([T(0,V)],wo);var sd={Bash:{permissionKind:"shell"},BashOutput:{permissionKind:"shell"},KillBash:{permissionKind:"shell"},Read:{permissionKind:"read",pathField:"file_path"},Glob:{permissionKind:"read",pathField:"path"},Grep:{permissionKind:"read",pathField:"path"},LS:{permissionKind:"read",pathField:"path"},NotebookRead:{permissionKind:"read",pathField:"notebook_path"},Write:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},Edit:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},MultiEdit:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},NotebookEdit:{permissionKind:"write",pathField:"notebook_path",isFileEdit:!0},TodoWrite:{permissionKind:"write"},WebFetch:{permissionKind:"url",pathField:"url"},Task:{permissionKind:"custom-tool"},ExitPlanMode:{permissionKind:"custom-tool",interactive:!0},AskUserQuestion:{permissionKind:"custom-tool",interactive:!0}},ia="mcp__";function ad(i){let t=sd[i];return t?t.permissionKind:i.startsWith(ia)?"mcp":"custom-tool"}function $t(i){switch(i){case"Bash":return m(1916,null);case"BashOutput":return m(1917,null);case"KillBash":return m(1922,null);case"Read":return m(1928,null);case"Glob":return m(1920,null);case"Grep":return m(1921,null);case"LS":return m(1923,null);case"NotebookRead":return m(1927,null);case"Write":return m(1932,null);case"Edit":return m(1918,null);case"MultiEdit":return m(1925,null);case"NotebookEdit":return m(1926,null);case"TodoWrite":return m(1930,null);case"WebFetch":return m(1931,null);case"Task":return m(1929,null);case"ExitPlanMode":return m(1919,null);case"AskUserQuestion":return m(1915,null)}return i.startsWith(ia)?m(1924,null,i.slice(ia.length)):i}function ld(i,t){let e=sd[i];if(!e?.pathField||typeof t!="object"||t===null)return;let n=t[e.pathField];return typeof n=="string"?n:void 0}function hS(i){return sd[i]?.isFileEdit===!0}var yS=new Set(Object.entries(sd).filter(([,i])=>i.interactive).map(([i])=>i));function vS(i){switch(ad(i)){case"shell":return m(1912,null);case"write":return m(1914,null);case"read":return m(1911,null);case"url":return m(1913,null);case"mcp":{let t=i.startsWith(ia)?i.slice(ia.length).split("__")[0]:void 0;return t?m(1910,null,t):m(1909,null)}default:return m(1909,null)}}function oa(i,t,e){let n=new Uf(t,e);for(let r of i){let o=Pw(r);o!==void 0&&n.consume(o)}return n.finish()}function Pw(i){switch(i.type){case"user":return kw(i);case"assistant":return Aw(i);case"system":return Dw(i);default:return}}function kw(i){let t=Mw(i.message);if(t===void 0||$w(t))return;if(typeof t=="string")return{kind:"user-text",uuid:i.uuid,text:t};let e=t.filter(n=>n.type==="text");if(e.length===0){let n=t.filter(r=>r.type==="tool_result");return n.length>0?{kind:"user-tool-results",uuid:i.uuid,results:n}:void 0}return{kind:"user-text",uuid:i.uuid,text:e.map(n=>n.text).join(`
`)}}function Aw(i){let t=Nw(i.message);if(!(t===void 0||t.length===0))return{kind:"assistant",uuid:i.uuid,blocks:t}}function Dw(i){let t=Fw(i.message);if(t===void 0||!Lw.has(t))return;let e=Uw(i.message)??`[${t}]`;return{kind:"system-notification",uuid:i.uuid,subtype:t,text:e}}var Ow=new Set(["Task","Agent"]),Lw=new Set(["compact_boundary","notification"]),bS=/^<(command-name|command-message|command-args|local-command-stdout|local-command-stderr|local-command-caveat)>/,Uf=class{constructor(t,e){this._session=t;this._logService=e;this._turns=[];this._toolUseToTurnId=new Map}consume(t){switch(t.kind){case"user-text":this._closeActive(),this._active={id:t.uuid,userText:t.text,responseParts:[],pendingToolUseIds:new Set,toolCallParts:new Map};return;case"user-tool-results":for(let e of t.results)this._attachToolResult(e);return;case"assistant":this._consumeAssistant(t);return;case"system-notification":if(this._active===void 0)return;this._active.responseParts.push({kind:"systemNotification",content:t.text});return}}finish(){return this._closeActive(),this._turns}_consumeAssistant(t){if(this._active===void 0){this._logService.warn(`[claudeReplayMapper] assistant envelope ${t.uuid} arrived before any user message; dropping`);return}let e=0,n=0;for(let r of t.blocks)r.type==="text"&&typeof r.text=="string"?this._active.responseParts.push({kind:"markdown",id:`${this._active.id}#${t.uuid}#text-${e++}`,content:r.text}):r.type==="thinking"&&typeof r.thinking=="string"?this._active.responseParts.push({kind:"reasoning",id:`${this._active.id}#${t.uuid}#thinking-${n++}`,content:r.thinking}):r.type==="tool_use"&&typeof r.id=="string"&&typeof r.name=="string"&&this._openToolUse(r.id,r.name,r.input)}_openToolUse(t,e,n){if(this._active===void 0)return;let r=Ow.has(e),o=$t(e),s={status:"cancelled",toolCallId:t,toolName:e,displayName:o,invocationMessage:o,toolInput:typeof n=="string"?n:n!==void 0?Ww(n):void 0,reason:"skipped",...r?{_meta:{toolKind:"subagent"}}:{}},a={kind:"toolCall",toolCall:s};this._active.responseParts.push(a),this._active.toolCallParts.set(t,a),this._active.pendingToolUseIds.add(t),this._toolUseToTurnId.set(t,this._active.id)}_attachToolResult(t){let e=this._toolUseToTurnId.get(t.tool_use_id);if(e===void 0){this._logService.warn(`[claudeReplayMapper] tool_result for unknown tool_use_id ${t.tool_use_id}`);return}let n=this._findToolCallPart(e,t.tool_use_id);if(n===void 0)return;let r=t.is_error,o=n.toolCall,s=o._meta?.toolKind==="subagent",a=Vw(t.content)??[];s&&a.push({type:"subagent",resource:Hi(this._session.toString(),o.toolCallId),title:o.displayName});let l={status:"completed",toolCallId:o.toolCallId,toolName:o.toolName,displayName:o.displayName,invocationMessage:o.invocationMessage??o.displayName,toolInput:o.status==="streaming"?void 0:o.toolInput,confirmed:"not-needed",success:!r,pastTenseMessage:`${o.displayName} finished`,content:a.length>0?a:void 0,...o._meta?{_meta:o._meta}:{}};n.toolCall=l,this._active?.id===e&&this._active.pendingToolUseIds.delete(t.tool_use_id)}_findToolCallPart(t,e){if(this._active&&this._active.id===t)return this._active.toolCallParts.get(e);for(let n=this._turns.length-1;n>=0;n--)if(this._turns[n].id===t){for(let r of this._turns[n].responseParts)if(r.kind==="toolCall"&&r.toolCall.toolCallId===e)return r;return}}_closeActive(){if(this._active===void 0)return;let t=this._active,e=t.pendingToolUseIds.size===0?"complete":"cancelled",n={id:t.id,userMessage:{text:t.userText},responseParts:t.responseParts,usage:void 0,state:e};this._turns.push(n),this._active=void 0}};function Mw(i){if(i===null||typeof i!="object")return;let t=i.content;if(typeof t=="string")return t.length>0?t:void 0;if(!Array.isArray(t)||t.length===0)return;let e=[];for(let n of t){if(n===null||typeof n!="object")continue;let r=n;r.type==="text"&&typeof r.text=="string"?e.push({type:"text",text:r.text}):r.type==="tool_result"&&typeof r.tool_use_id=="string"&&e.push({type:"tool_result",tool_use_id:r.tool_use_id,content:r.content,is_error:r.is_error===!0})}return e.length>0?e:void 0}function Nw(i){if(i===null||typeof i!="object")return;let t=i.content;if(!Array.isArray(t))return;let e=[];for(let n of t){if(n===null||typeof n!="object")continue;let r=n;typeof r.type=="string"&&e.push({type:r.type,text:typeof r.text=="string"?r.text:void 0,thinking:typeof r.thinking=="string"?r.thinking:void 0,id:typeof r.id=="string"?r.id:void 0,name:typeof r.name=="string"?r.name:void 0,input:r.input})}return e}function Fw(i){if(i===null||typeof i!="object")return;let t=i.subtype;return typeof t=="string"?t:void 0}function Uw(i){if(i===null||typeof i!="object")return;let t=i;if(typeof t.text=="string")return t.text;if(typeof t.message=="string")return t.message}function Vw(i){if(typeof i=="string")return i.length>0?[{type:"text",text:i}]:void 0;if(!Array.isArray(i))return;let t=[];for(let e of i){if(e===null||typeof e!="object")continue;let n=e;n.type==="text"&&typeof n.text=="string"&&t.push({type:"text",text:n.text})}return t.length>0?t:void 0}function Ww(i){try{return JSON.stringify(i)}catch{return}}function $w(i){if(typeof i=="string")return bS.test(i);let t=i.find(e=>e.type==="text");return t!==void 0&&bS.test(t.text)}var Vf=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},Eo=class extends Vf{constructor(e){super();this.type=e}validate(e){return typeof e!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof e}`}}:{content:e,error:void 0}}getJSONSchema(){return{type:this.type}}},Bw=new Eo("string");function SS(){return Bw}var AK=new Eo("number");var DK=new Eo("boolean");var qw=new Eo("object");function IS(){return qw}var sa=new Set(["Task","Agent"]),Hw=/^\s*agentId:\s+([a-z0-9]+)\b/im,Wf=class{constructor(t){this.toolUseId=t;this.background=!1;this._announced=!1;this._completed=!1}get agentId(){return this._agentId}setAgentId(t){this._agentId===void 0&&(this._agentId=t)}markAnnounced(){return this._announced?!1:(this._announced=!0,!0)}markCompleted(){return this._completed?!1:(this._completed=!0,!0)}},cd=class extends C{constructor(){super(...arguments);this._spawns=new Map;this._innerToParent=new Map}dispose(){this._spawns.clear(),this._innerToParent.clear(),super.dispose()}recordSpawn(e,n){let r=this._spawns.get(e);return r||(r=new Wf(e),this._spawns.set(e,r)),n?.agentId!==void 0&&r.setAgentId(n.agentId),n?.subagentType!==void 0&&r.subagentType===void 0&&(r.subagentType=n.subagentType),n?.description!==void 0&&r.description===void 0&&(r.description=n.description),r}getSpawn(e){return this._spawns.get(e)}removeSpawn(e){this._spawns.delete(e),this._evictInnerEdgesFor(e)}noteInnerTool(e,n){this._innerToParent.set(e,n)}getParentSpawn(e){let n=this._innerToParent.get(e);return n!==void 0?this._spawns.get(n):void 0}drainForegroundSpawns(){let e=[];for(let n of this._spawns.values())n.background||e.push(n);for(let n of e)this._spawns.delete(n.toolUseId),this._evictInnerEdgesFor(n.toolUseId);return e}primeFromTranscript(e){for(let[n,r]of $f(e))this.recordSpawn(n,{agentId:r})}_evictInnerEdgesFor(e){for(let[n,r]of this._innerToParent)r===e&&this._innerToParent.delete(n)}};function $f(i){let t=new Map;for(let e of i)for(let n of e.responseParts){let r=zw(n);r&&t.set(r.toolCallId,r.agentId)}return t}function zw(i){if(i.kind!=="toolCall")return;let t=i.toolCall;if(!sa.has(t.toolName)||t.status!=="completed"&&t.status!=="pending-result-confirmation")return;let e=t.content;if(e)for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="text")continue;let o=Hw.exec(r.text);if(o)return{toolCallId:t.toolCallId,agentId:o[1]}}}var Bf=class{constructor(t,e){this._sdk=t;this._logService=e;this.name="text_suffix"}async lookup(t,e){let n=await _S(this._sdk,this._logService,e,"TextSuffix");if(n)return $f(n).get(t)}};async function _S(i,t,e,n){if(e.parentTranscript)return e.parentTranscript;try{let r=await i.getSessionMessages(e.parentSessionId,{includeSystemMessages:!0});return oa(r,e.parentUri,t)}catch(r){t.warn(`[claudeSubagentResolver] ${n}: parent transcript fetch failed: ${r}`);return}}function TS(i){let t=SS().validate(i);return t.error?void 0:t.content}function qf(i){let t=IS().validate(i);if(!(t.error||t.content===null||Array.isArray(t.content)))return t.content}var Hf=class{constructor(t,e){this._sdk=t;this._logService=e;this.name="prompt_match"}async lookup(t,e){let n=await this._loadParentPrompt(t,e);if(!n)return;let r;try{r=await this._sdk.listSubagents(e.parentSessionId)}catch(o){this._logService.warn(`[claudeSubagentResolver] PromptMatch: listSubagents failed: ${o}`);return}for(let o of r){if(e.token.isCancellationRequested)return;let s;try{s=await this._sdk.getSubagentMessages(e.parentSessionId,o)}catch(l){this._logService.warn(`[claudeSubagentResolver] PromptMatch: getSubagentMessages(${o}) failed: ${l}`);continue}let a=Kw(s);if(a!==void 0&&a===n)return o}}async _loadParentPrompt(t,e){let n=await _S(this._sdk,this._logService,e,"PromptMatch");if(n)return jw(n,t)}};function jw(i,t){for(let e of i)for(let n of e.responseParts){if(n.kind!=="toolCall")continue;let r=n.toolCall;if(r.toolCallId!==t)continue;if(!sa.has(r.toolName)||r.status==="streaming")return;let o=r.toolInput;if(typeof o!="string")return;let s;try{s=JSON.parse(o)}catch{return}let a=qf(s);return a?TS(a.prompt):void 0}}function Kw(i){for(let t of i){if(t.type!=="user")continue;let e=qf(t.message);if(!e)continue;let n=e.content;if(typeof n=="string")return n;if(Array.isArray(n))for(let r of n){let o=qf(r);if(!o||o.type!=="text")continue;let s=TS(o.text);if(s!==void 0)return s}}}var zf=class{constructor(){this.name="native"}async lookup(){}};async function Gw(i,t,e){let n=e.cacheGet(i);if(n)return n;for(let r of e.strategies){if(t.token.isCancellationRequested)return;let o=await r.lookup(i,t);if(o)return e.cacheSet(i,o),o}}function Jw(i,t){return[new Bf(i,t),new Hf(i,t),new zf]}async function CS(i,t,e,n,r){let o=Xe(i);if(!o)throw new Error(`getSubagentTranscript: not a subagent URI: ${i.toString()}`);let{parentSession:s,toolCallId:a}=o,l=j.id(s),c=await Gw(a,{parentUri:s,parentSessionId:l,token:r},{strategies:Jw(e,n),cacheGet:d=>t.getSpawn(d)?.agentId,cacheSet:(d,f)=>{t.recordSpawn(d,{agentId:f})}});if(!c)return[];let u;try{u=await e.getSubagentMessages(l,c)}catch(d){return n.warn(`[getSubagentTranscript] getSubagentMessages(${c}) failed: ${d}`),[]}return oa(u,i,n)}function xS(i,t){let e=typeof i.plan=="string"?i.plan:"";return{status:"pending-confirmation",toolCallId:t,toolName:"ExitPlanMode",displayName:$t("ExitPlanMode"),invocationMessage:{markdown:e},toolInput:JSON.stringify(i),confirmationTitle:m(1908,null),options:[{id:"approve",label:m(1906,null),kind:"approve"},{id:"deny",label:m(1907,null),kind:"deny"}]}}function wS(i){let t=i;if(t.questions?.length)return{questions:t.questions}}function RS(i,t){return i||`q-${t}`}function ES(i){return i.questions.map((t,e)=>{let n=t.options.map(o=>({id:o.label,label:o.label,...o.description!==void 0?{description:o.description}:{}})),r=RS(t.header,e);return t.multiSelect?{id:r,kind:"multi-select",title:t.header,message:t.question,options:n,allowFreeformInput:t.allowFreeformInput??!1}:{id:r,kind:"single-select",title:t.header,message:t.question,options:n,allowFreeformInput:t.allowFreeformInput??!1}})}function PS(i,t){let e={};for(let n=0;n<i.questions.length;n++){let r=i.questions[n],o=t[RS(r.header,n)];if(!o||o.state==="skipped")continue;let s=[],a=o.value;a.kind==="selected"?(a.value&&s.push(a.value),a.freeformValues&&s.push(...a.freeformValues)):a.kind==="selected-many"?(s.push(...a.value),a.freeformValues&&s.push(...a.freeformValues)):a.kind==="text"&&s.push(a.value),s.length>0&&(e[r.question]=s.join(", "))}return e}async function kS(i,t,e,n,r){let o=i.getSession(t);if(!o)return{behavior:"deny",message:"Session is no longer active"};if(r.signal.aborted)return{behavior:"deny",message:"SDK aborted the tool request"};let s=()=>{o.respondToPermissionRequest(r.toolUseID,!1),o.respondToUserInputRequest(r.toolUseID,"cancel")};r.signal.addEventListener("abort",s);try{return await Yw(i,o,e,n,r)}finally{r.signal.removeEventListener("abort",s)}}async function Yw(i,t,e,n,r){if(yS.has(e))return Xw(i,t,e,n,r);let o=ad(e),s=$t(e),a=r.blockedPath??ld(e,n),l=JSON.stringify(n),c={status:"pending-confirmation",toolCallId:r.toolUseID,toolName:e,displayName:s,invocationMessage:s,toolInput:l,confirmationTitle:vS(e)},u=jf(t,r);return await t.requestPermission({toolUseID:r.toolUseID,state:c,permissionKind:o,...a!==void 0?{permissionPath:a}:{},...u!==void 0?{parentToolCallId:u}:{}})?{behavior:"allow",updatedInput:n}:{behavior:"deny",message:"User declined"}}function jf(i,t){if(!t.agentID)return;let e=i.subagents.getParentSpawn(t.toolUseID);if(e)return e.setAgentId(t.agentID),e.toolUseId}function Xw(i,t,e,n,r){switch(e){case"ExitPlanMode":return Zw(i,t,n,r);case"AskUserQuestion":return eR(i,t,n,r);default:return Promise.resolve({behavior:"deny",message:`Unsupported interactive tool: ${e}`})}}async function Zw(i,t,e,n){let r=n.toolUseID,o=jf(t,n);return await t.requestPermission({toolUseID:r,state:xS(e,r),permissionKind:ad("ExitPlanMode"),...o!==void 0?{parentToolCallId:o}:{}})?(i.configurationService.updateSessionConfig(t.sessionUri.toString(),{permissionMode:"acceptEdits"}),{behavior:"allow",updatedInput:e}):{behavior:"deny",message:"The user declined the plan, maybe ask why?"}}async function eR(i,t,e,n){let r=n.toolUseID,o=wS(e);if(!o)return{behavior:"deny",message:"AskUserQuestion called without questions"};let s=jf(t,n),a=await t.requestUserInput({id:r,questions:ES(o)},s);if(a.response!=="accept"||!a.answers)return{behavior:"deny",message:"The user cancelled the question"};let l=PS(o,a.answers);return Object.keys(l).length===0?{behavior:"deny",message:"The user cancelled the question"}:{behavior:"allow",updatedInput:{...e,answers:l}}}import{rgPath as aR}from"@vscode/ripgrep";var aa=class{constructor(){this._entries=new Map}registerAndFire(t,e){let n=new pe;return this._entries.set(t,n),e(),n.p}respond(t,e){let n=this._entries.get(t);return n?(this._entries.delete(t),n.complete(e),!0):!1}denyAll(t){for(let[,e]of this._entries)e.isSettled||e.complete(t);this._entries.clear()}};function dd(i,t){let e=[{type:"text",text:i}];if(!t?.length)return e;let n=[],r=[];for(let o of t){if(o.type==="simple"){o.modelRepresentation&&r.push(o.modelRepresentation);continue}if(o.type!=="resource")continue;let s=y.parse(o.uri);if(o.displayKind==="selection"){let a=o.selection?`:${o.selection.range.start.line+1}`:"";n.push(`- ${AS(s)}${a}`)}else n.push(`- ${AS(s)}`)}return r.length>0&&e.push({type:"text",text:r.join(`

`)}),n.length===0||e.push({type:"text",text:`<system-reminder>
The user provided the following references:
`+n.join(`
`)+`

IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.
</system-reminder>`}),e}function AS(i){return i.scheme==="file"?i.fsPath:i.toString()}var Po=class extends C{constructor(e,n,r,o){super();this._sessionId=e;this._getAbortSignal=n;this._onSteeringYielded=r;this._logService=o;this._toYield=[];this._yielded=[];this._popped=[];this._pendingPromptDeferred=new pe;this.iterable={[Symbol.asyncIterator]:()=>({next:async()=>{for(;;){if(this._getAbortSignal().aborted)return{done:!0,value:void 0};if(this._toYield.length>0){let e=this._toYield.shift();return this._yielded.push(e),this._logService.info(`[Claude:${this._sessionId}] queue yielded sdkUuid=${e.sdkUuid} turnId=${e.turnId}${e.steeringPendingId?` steeringPendingId=${e.steeringPendingId}`:""}`),e.steeringPendingId&&this._onSteeringYielded(e.steeringPendingId),{done:!1,value:e.sdkMessage}}await this._pendingPromptDeferred.p,this._pendingPromptDeferred=new pe}}})}}get isEmpty(){return this._toYield.length===0&&this._yielded.length===0}push(e){return this._toYield.push(e),this._pendingPromptDeferred.complete(),e.deferred.p}peekParent(){return this._yielded[0]??this._toYield[this._toYield.length-1]}settleHead(){let e=this._yielded.shift();if(e){if(this.isEmpty){e.deferred.complete();for(let n of this._popped)n.deferred.isSettled||n.deferred.complete();this._popped=[]}else this._popped.push(e);return e}}failAll(e){let n=r=>{for(let o of r)o.deferred.isSettled||o.deferred.error(e)};n(this._toYield),n(this._yielded),n(this._popped),this._toYield=[],this._yielded=[],this._popped=[]}notifyAborted(){this._pendingPromptDeferred.complete()}resetForRebind(){this._pendingPromptDeferred=new pe}};Po=R([T(3,V)],Po);var ko=class extends C{constructor(e,n,r,o){super();this._logService=r;this._editToolPaths=new Map;this._register(n),this._editTracker=o.createInstance(dr,e,n.object)}observeAssistant(e){let n=e.message.content;if(Array.isArray(n))for(let r of n){if(r.type!=="tool_use"||!hS(r.name))continue;let o=ld(r.name,r.input);o&&(this._editToolPaths.set(r.id,o),this._editTracker.trackEditStart(o).catch(s=>this._logService.warn(`[ClaudeFileEditObserver] trackEditStart failed for ${o}: ${s}`)))}}async observeUser(e,n,r){let o=e.message.content;if(Array.isArray(o))for(let s of o){if(s.type!=="tool_result")continue;let a=this._editToolPaths.get(s.tool_use_id);if(a){this._editToolPaths.delete(s.tool_use_id);try{await this._editTracker.completeEdit(a);let l=await this._editTracker.takeCompletedEdit(n,s.tool_use_id,a);l&&r.cacheFileEdit(s.tool_use_id,l)}catch(l){this._logService.warn(`[ClaudeFileEditObserver] file edit tracking failed for ${a}: ${l}`)}}}}};ko=R([T(2,V),T(3,Ve)],ko);var Kf=sa;function ud(i,t,e,n){if(!e)return i;let r=i.map(a=>a.kind==="action"?{...a,parentToolCallId:e}:a.kind==="pending_confirmation"?{...a,parentToolCallId:e}:a),o=n.getSpawn(e);return!o||!o.markAnnounced()?r:[{kind:"subagent_started",session:t,toolCallId:e,agentName:o.subagentType??"subagent",agentDisplayName:o.subagentType??"Subagent",agentDescription:o.description},...r]}function DS(i,t,e){let n=i.subtype;if(n==="task_started"){let r=i.tool_use_id,o=r?e.getSpawn(r):void 0;return o&&(o.background=!0),[]}if(n==="task_notification"){let r=i;if(!r.tool_use_id)return[];let o=r.status;if(o!=="completed"&&o!=="failed"&&o!=="stopped")return[];let s=e.getSpawn(r.tool_use_id);if(!s||!s.markCompleted())return[];let a=r.tool_use_id;return e.removeSpawn(a),[{kind:"subagent_completed",session:t,toolCallId:a}]}return[]}function OS(i,t,e,n){let r=i.input,o=typeof r?.description=="string"?r.description:void 0,s=typeof r?.subagent_type=="string"?r.subagent_type:void 0,a=i.input!==void 0?MS(i.input):void 0;n.recordSpawn(i.id,{subagentType:s,description:o});let l={toolKind:"subagent"};return o&&(l.subagentDescription=o),s&&(l.subagentAgentName=s),{kind:"action",session:t,action:{type:"session/toolCallReady",session:t.toString(),turnId:e,toolCallId:i.id,invocationMessage:o??$t(i.name),...a!==void 0?{toolInput:a}:{},confirmed:"not-needed",_meta:l}}}function LS(i,t,e,n,r,o){let s=t.toString(),a=i.message.id,l=[];for(let c=0;c<i.message.content.length;c++){let u=i.message.content[c];if(u.type==="text"){l.push({kind:"action",session:t,action:{type:"session/responsePart",session:s,turnId:e,part:{kind:"markdown",id:`${e}#${a}#${c}`,content:u.text}}});continue}if(u.type==="thinking"){l.push({kind:"action",session:t,action:{type:"session/responsePart",session:s,turnId:e,part:{kind:"reasoning",id:`${e}#${a}#${c}`,content:u.thinking}}});continue}if(u.type==="tool_use"){n.startToolBlock(c,u.id,u.name,e),o.noteInnerTool(u.id,r);let d=u.input!==void 0?MS(u.input):void 0,f=$t(u.name);l.push({kind:"action",session:t,action:{type:"session/toolCallStart",session:s,turnId:e,toolCallId:u.id,toolName:u.name,displayName:f}}),l.push({kind:"action",session:t,action:{type:"session/toolCallReady",session:s,turnId:e,toolCallId:u.id,invocationMessage:f,...d!==void 0?{toolInput:d}:{},confirmed:"not-needed"}});continue}}return l}function MS(i){try{return JSON.stringify(i)}catch{return}}var fd=class{constructor(){this._activeToolBlocks=new Map;this._toolCallTurnIds=new Map;this._toolCallNames=new Map;this._completedFileEdits=new Map}resetMessage(t){this._activeToolBlocks.clear(),this._currentMessageId=t}getCurrentMessageId(){return this._currentMessageId}startToolBlock(t,e,n,r){this._activeToolBlocks.set(t,{toolUseId:e,toolName:n}),this._toolCallTurnIds.set(e,r),this._toolCallNames.set(e,n)}getActiveToolBlock(t){return this._activeToolBlocks.get(t)}endToolBlock(t){this._activeToolBlocks.delete(t)}lookupToolCall(t){let e=this._toolCallTurnIds.get(t),n=this._toolCallNames.get(t);if(!(e===void 0||n===void 0))return{turnId:e,toolName:n}}completeToolCall(t){this._toolCallTurnIds.delete(t),this._toolCallNames.delete(t)}cacheFileEdit(t,e){this._completedFileEdits.set(t,e)}takeFileEdit(t){let e=this._completedFileEdits.get(t);return e&&this._completedFileEdits.delete(t),e}clearPendingToolCalls(t){if(this._toolCallTurnIds.size!==0){for(let[e,n]of this._toolCallTurnIds){let r=this._toolCallNames.get(e)??"<unknown>";t.warn(`[claudeMapSessionEvents] turn ${n} ended with pending tool_use ${e} (${r}); dropping cross-message state`)}this._toolCallTurnIds.clear(),this._toolCallNames.clear()}}};function FS(i,t,e,n,r,o){if(r.getLevel()<=1)try{let s=JSON.stringify(i,(a,l)=>typeof l=="string"&&l.length>200?l.slice(0,200)+"\u2026":l);r.trace(`[claudeMapSessionEvents] SDK message type=${i.type}: ${s?.slice(0,2e3)??"<unserializable>"}`)}catch{r.trace(`[claudeMapSessionEvents] SDK message type=${i.type} (unserializable)`)}switch(i.type){case"stream_event":return ud(sR(i.event,t,e,n,r,i.parent_tool_use_id,o),t,i.parent_tool_use_id,o);case"result":return oR(i,t,e,n,r,o);case"assistant":return ud(tR(i,t,e,n,i.parent_tool_use_id,o),t,i.parent_tool_use_id,o);case"user":return ud(nR(i,t,n,r,o),t,i.parent_tool_use_id,o);default:return i.type==="system"?DS(i,t,o):[]}}function tR(i,t,e,n,r,o){if(r===null){let s=[];for(let a of i.message.content)a.type!=="tool_use"||!Kf.has(a.name)||s.push(OS(a,t,e,o));return s}return LS(i,t,e,n,r,o)}function nR(i,t,e,n,r){let o=i.message.content;if(!Array.isArray(o))return[];let s=t.toString(),a=[];for(let l of o){if(l.type!=="tool_result")continue;let c=e.lookupToolCall(l.tool_use_id);if(!c){n.warn(`[claudeMapSessionEvents] tool_result for unknown tool_use_id ${l.tool_use_id}`);continue}let u=l.is_error===!0,d=rR(l.content)??[],f=e.takeFileEdit(l.tool_use_id);f&&d.push(f),a.push({kind:"action",session:t,action:{type:"session/toolCallComplete",session:s,turnId:c.turnId,toolCallId:l.tool_use_id,result:{success:!u,pastTenseMessage:`${$t(c.toolName)} finished`,content:d.length>0?d:void 0}}}),e.completeToolCall(l.tool_use_id);let g=r.getSpawn(l.tool_use_id);g&&!g.background&&g.markCompleted()&&(a.push({kind:"subagent_completed",session:t,toolCallId:l.tool_use_id}),r.removeSpawn(l.tool_use_id))}return a}function rR(i){if(typeof i=="string")return[{type:"text",text:i}];if(!Array.isArray(i))return;let t=[];for(let e of i)iR(e)&&t.push({type:"text",text:e.text});return t.length>0?t:void 0}function iR(i){if(i===null||typeof i!="object")return!1;let t=i;return t.type==="text"&&typeof t.text=="string"}function oR(i,t,e,n,r,o){let s=t.toString(),a=[];if(i.subtype==="success"){let l=Object.keys(i.modelUsage)[0];a.push({kind:"action",session:t,action:{type:"session/usage",session:s,turnId:e,usage:{inputTokens:i.usage.input_tokens,outputTokens:i.usage.output_tokens,cacheReadTokens:i.usage.cache_read_input_tokens,...l?{model:l}:{}}}})}n.clearPendingToolCalls(r);for(let l of o.drainForegroundSpawns())r.warn(`[claudeMapSessionEvents] turn ended with pending subagent-spawning tool_use ${l.toolUseId} (agentId=${l.agentId??"<unresolved>"}); dropping cross-message state`);return a}function sR(i,t,e,n,r,o,s){let a=t.toString();switch(i.type){case"message_start":return n.resetMessage(i.message.id),[];case"content_block_start":{let l=i.content_block;if(l.type==="text")return[{kind:"action",session:t,action:{type:"session/responsePart",session:a,turnId:e,part:{kind:"markdown",id:pd(e,n,i.index,r),content:""}}}];if(l.type==="thinking")return[{kind:"action",session:t,action:{type:"session/responsePart",session:a,turnId:e,part:{kind:"reasoning",id:pd(e,n,i.index,r),content:""}}}];if(l.type==="tool_use"){n.startToolBlock(i.index,l.id,l.name,e);let c=Kf.has(l.name);return o===null?c&&s.recordSpawn(l.id):s.noteInnerTool(l.id,o),[{kind:"action",session:t,action:{type:"session/toolCallStart",session:a,turnId:e,toolCallId:l.id,toolName:l.name,displayName:$t(l.name),...c?{_meta:{toolKind:"subagent"}}:{}}}]}return[]}case"content_block_delta":{if(i.delta.type==="text_delta")return[{kind:"action",session:t,action:{type:"session/delta",session:a,turnId:e,partId:pd(e,n,i.index,r),content:i.delta.text}}];if(i.delta.type==="thinking_delta")return[{kind:"action",session:t,action:{type:"session/reasoning",session:a,turnId:e,partId:pd(e,n,i.index,r),content:i.delta.thinking}}];if(i.delta.type==="input_json_delta"){let l=n.getActiveToolBlock(i.index);return l?[{kind:"action",session:t,action:{type:"session/toolCallDelta",session:a,turnId:e,toolCallId:l.toolUseId,content:i.delta.partial_json}}]:(r.warn(`[claudeMapSessionEvents] input_json_delta for unknown content-block index ${i.index}`),[])}return[]}case"content_block_stop":return n.endToolBlock(i.index),[];case"message_delta":case"message_stop":return[];default:return[]}}function pd(i,t,e,n){let r=t.getCurrentMessageId();return r===void 0?(n.warn(`[claudeMapSessionEvents] content block at index ${e} arrived before message_start; using turn-scoped id`),`${i}#${e}`):`${i}#${r}#${e}`}var Ao=class extends C{constructor(e,n,r,o,s){super();this._sessionUri=e;this._subagents=r;this._logService=s;this._onDidProduceSignal=this._register(new x);this.onDidProduceSignal=this._onDidProduceSignal.event;this._mapperState=new fd;this._editObserver=this._register(o.createInstance(ko,e.toString(),n))}async handle(e,n){if(e.type==="assistant"?this._editObserver.observeAssistant(e):e.type==="user"&&n!==void 0&&await this._editObserver.observeUser(e,n,this._mapperState),n!==void 0)try{let r=FS(e,this._sessionUri,n,this._mapperState,this._logService,this._subagents);for(let o of r)this._onDidProduceSignal.fire(o)}catch(r){this._logService.warn(`[ClaudeSdkMessageRouter] mapper threw, skipping message: ${r}`)}}};Ao=R([T(3,Ve),T(4,V)],Ao);var Do=class extends C{constructor(e,n,r,o,s,a,l,c){super();this.sessionId=e;this.sessionUri=n;this._logService=c;this._isResumed=!1;this._needsRebind=!1;this._consumerLoopRunning=!1;this._onDidProduceSignal=this._register(new x);this.onDidProduceSignal=this._onDidProduceSignal.event;this._warm=r,this._abortController=o,this._wireAbortHandler(o),this._queue=this._register(l.createInstance(Po,e,()=>this._abortController.signal,u=>this._onDidProduceSignal.fire({kind:"steering_consumed",session:this.sessionUri,id:u}))),this._router=this._register(l.createInstance(Ao,n,s,a)),this._register(this._router.onDidProduceSignal(u=>this._onDidProduceSignal.fire(u))),this._register(E(()=>this._abortController.abort())),this._register(E(()=>{Promise.resolve(this._warm[Symbol.asyncDispose]()).catch(u=>this._logService.warn(`[ClaudeSdkPipeline] WarmQuery dispose failed: ${u}`))}))}get isResumed(){return this._isResumed}get isAborted(){return this._abortController.signal.aborted}attachRematerializer(e){this._rematerializer=e}seedCurrentConfig(e,n,r){this._currentModel=e,this._currentEffort=n,this._currentPermissionMode=r,this._appliedModel=e,this._appliedEffort=n,this._appliedPermissionMode=r}async setModel(e){if(this._currentModel=e,this._query&&e!==this._appliedModel)try{await this._query.setModel(e),this._appliedModel=e}catch(n){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] setModel failed: ${n}`)}}async setEffort(e){if(this._currentEffort=e,this._query&&e!==this._appliedEffort)try{await this._query.applyFlagSettings({effortLevel:e}),this._appliedEffort=e}catch(n){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] setEffort failed: ${n}`)}}async send(e,n){if(this._needsRebind&&await this._rebindQuery("recover"),this._abortController.signal.aborted)throw new ae;this._query||(this._query=this._warm.query(this._queue.iterable),await this._replayCurrentConfig()),this._ensureConsumerLoop();let r={sdkMessage:e,sdkUuid:typeof e.uuid=="string"?e.uuid:n,turnId:n,deferred:new pe};return this._queue.push(r)}injectSteering(e,n){if(this._abortController.signal.aborted){this._logService.warn(`[Claude:${this.sessionId}] injectSteering: dropped (controller aborted) id=${n}`);return}let r=this._queue.peekParent();if(!r){this._logService.warn(`[Claude:${this.sessionId}] injectSteering: dropped (no in-flight turn) id=${n}`);return}let o=typeof e.uuid=="string"?e.uuid:n;this._queue.push({sdkMessage:e,sdkUuid:o,turnId:r.turnId,deferred:new pe,steeringPendingId:n}).catch(()=>{}),this._logService.info(`[Claude:${this.sessionId}] injectSteering: enqueued id=${n} sdkUuid=${o}`)}abort(){this._abortController.signal.aborted||(this._abortController.abort(),this._queue.failAll(new ae),this._query=void 0,this._needsRebind=!0)}async setPermissionMode(e){this._currentPermissionMode=e,this._query&&e!==this._appliedPermissionMode&&(await this._query.setPermissionMode(e),this._appliedPermissionMode=e)}_wireAbortHandler(e){e.signal.addEventListener("abort",()=>{this._queue.notifyAborted()},{once:!0})}_ensureConsumerLoop(){this._consumerLoopRunning||(this._consumerLoopRunning=!0,this._processMessages().catch(e=>this._logService.error(`[ClaudeSdkPipeline:${this.sessionId}] _processMessages crashed: ${e}`)).finally(()=>{this._consumerLoopRunning=!1}))}async _replayCurrentConfig(){try{this._currentModel!==void 0&&this._currentModel!==this._appliedModel&&(await this._query?.setModel(this._currentModel),this._appliedModel=this._currentModel),this._currentEffort!==void 0&&this._currentEffort!==this._appliedEffort&&(await this._query?.applyFlagSettings({effortLevel:this._currentEffort}),this._appliedEffort=this._currentEffort),this._currentPermissionMode!==void 0&&this._currentPermissionMode!==this._appliedPermissionMode&&(await this._query?.setPermissionMode(this._currentPermissionMode),this._appliedPermissionMode=this._currentPermissionMode)}catch(e){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] _replayCurrentConfig failed: ${e}`)}}async _rebindQuery(e){if(!this._rematerializer)throw new Error(`ClaudeSdkPipeline.rebind: no rematerializer attached (reason=${e})`);let n=this._warm,r=new AbortController;this._abortController=r;let o=await this._rematerializer(e);if(this._store.isDisposed)throw o.abortController.abort(),Promise.resolve(o.warm[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] rebind-after-dispose: warm dispose failed: ${s}`)),new ae;if(r.signal.aborted)throw o.abortController.abort(),Promise.resolve(o.warm[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] rebind-aborted: warm dispose failed: ${s}`)),Promise.resolve(n[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] previous WarmQuery dispose failed during aborted rebind: ${s}`)),this._queue.failAll(new ae),this._query=void 0,this._needsRebind=!0,new ae;Promise.resolve(n[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] previous WarmQuery dispose failed during rebind: ${s}`)),this._warm=o.warm,this._abortController=o.abortController,this._wireAbortHandler(o.abortController),this._queue.resetForRebind(),this._needsRebind=!1,this._appliedModel=void 0,this._appliedEffort=void 0,this._appliedPermissionMode=void 0,this._query=this._warm.query(this._queue.iterable),await this._replayCurrentConfig()}async _processMessages(){let e=this._query;if(!e)throw new Error("ClaudeSdkPipeline._processMessages called before query was bound");try{for await(let n of e){if(this._abortController.signal.aborted)throw new ae;n.type==="system"&&n.subtype==="init"&&!this._isResumed&&(this._isResumed=!0);let r=this._queue.peekParent()?.turnId;try{await this._router.handle(n,r)}catch(o){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] router threw, skipping: ${o}`)}if(n.type==="result"){let o=this._queue.settleHead();this._logService.info(`[Claude:${this.sessionId}] result for sdkUuid=${o?.sdkUuid}`),o&&this._queue.isEmpty&&this._onDidProduceSignal.fire({kind:"action",session:this.sessionUri,action:{type:"session/turnComplete",session:this.sessionUri.toString(),turnId:o.turnId}})}}throw this._abortController.signal.aborted?new ae:new Error("Claude SDK stream ended without a result message")}catch(n){let r=n instanceof Error?n:new Error(String(n));if(this._query===e&&(this._queue.failAll(r),this._query=void 0,this._needsRebind=!0),!Cr(r))throw r}}};Do=R([T(6,Ve),T(7,V)],Do);var Oo=class extends C{constructor(e,n,r,o,s,a,l){super();this.sessionId=e;this.sessionUri=n;this.workingDirectory=r;this.subagents=this._register(new cd);this._pendingPermissions=new aa;this._pendingUserInputs=new aa;this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this._pipeline=this._register(l.createInstance(Do,e,n,o,s,a,this.subagents)),this._register(this._pipeline.onDidProduceSignal(c=>this._onDidSessionProgress.fire(c)))}get isResumed(){return this._pipeline.isResumed}seedBijectiveState(e){this._pipeline.seedCurrentConfig(e.model,e.effort,e.permissionMode)}attachRematerializer(e){this._pipeline.attachRematerializer(e)}send(e,n){return this._pipeline.send(e,n)}abort(){this._pendingPermissions.denyAll(!1),this._pendingUserInputs.denyAll({response:"cancel"}),this._pipeline.abort()}async queueModelChange(e,n){e!==void 0&&await this._pipeline.setModel(e),n!==void 0&&await this._pipeline.setEffort(n)}injectSteering(e){if(this._pipeline.isAborted)return;let r={type:"user",message:{role:"user",content:dd(e.userMessage.text,e.userMessage.attachments)},session_id:this.sessionId,parent_tool_use_id:null,priority:"now",uuid:e.id};this._pipeline.injectSteering(r,e.id)}setPermissionMode(e){return this._pipeline.setPermissionMode(e)}requestPermission(e){return this._pipeline.isAborted?Promise.resolve(!1):this._pendingPermissions.registerAndFire(e.toolUseID,()=>{this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:e.state,permissionKind:e.permissionKind,...e.permissionPath!==void 0?{permissionPath:e.permissionPath}:{},...e.parentToolCallId!==void 0?{parentToolCallId:e.parentToolCallId}:{}})})}respondToPermissionRequest(e,n){return this._pendingPermissions.respond(e,n)}requestUserInput(e,n){return this._pipeline.isAborted?Promise.resolve({response:"cancel"}):this._pendingUserInputs.registerAndFire(e.id,()=>{this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:{type:"session/inputRequested",session:this.sessionUri.toString(),request:e},...n!==void 0?{parentToolCallId:n}:{}})})}respondToUserInputRequest(e,n,r){return this._pendingUserInputs.respond(e,{response:n,answers:r})}dispose(){this._pendingPermissions.denyAll(!1),this._pendingUserInputs.denyAll({response:"cancel"}),super.dispose()}};Oo=R([T(6,Ve)],Oo);var Lo=class{constructor(t,e,n,r){this._logService=t;this._sdkService=e;this._sessionDataService=n;this._instantiationService=r}async materialize(t,e,n,r){if(!t.workingDirectory)throw new Error(`Cannot materialize Claude session ${t.sessionId}: workingDirectory is required`);let o=this._buildOptions(t,e,n,r,!1);this._logService.info(`[Claude] session ${t.sessionId}: enableFileCheckpointing=${o.enableFileCheckpointing} startMode=fresh`);let s=await this._sdkService.startup({options:o});if(t.abortController.signal.aborted)throw await s[Symbol.asyncDispose](),new ae;let a=this._sessionDataService.openDatabase(t.sessionUri);try{return this._instantiationService.createInstance(Oo,t.sessionId,t.sessionUri,t.workingDirectory,s,t.abortController,a)}catch(l){throw a.dispose(),await s[Symbol.asyncDispose](),l}}async materializeResume(t,e,n,r){if(!t.workingDirectory)throw new Error(`Cannot materialize Claude session ${t.sessionId}: workingDirectory is required`);let o=new AbortController,s={...t,abortController:o},a=this._buildOptions(s,e,n,r,!0);return this._logService.info(`[Claude] session ${t.sessionId}: resume rebuild`),{warm:await this._sdkService.startup({options:a}),abortController:o}}_buildOptions(t,e,n,r,o){let s=lR(),a=aR.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),l={ANTHROPIC_BASE_URL:e.baseUrl,ANTHROPIC_AUTH_TOKEN:`${e.nonce}.${t.sessionId}`,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1",USE_BUILTIN_RIPGREP:"0",PATH:`${ce(a)}${ts}${process.env.PATH??""}`};return{cwd:t.workingDirectory.fsPath,executable:process.execPath,env:s,abortController:t.abortController,allowDangerouslySkipPermissions:!0,canUseTool:r,onElicitation:async c=>(this._logService.info(`[Claude] declining elicitation from MCP server (Phase 7 stub): ${c.message??""}`),{action:"cancel"}),disallowedTools:["WebSearch"],includePartialMessages:!0,forwardSubagentText:!0,enableFileCheckpointing:!0,model:t.model?.id,effort:ra(t.model),permissionMode:n,...o?{resume:t.sessionId}:{sessionId:t.sessionId},settingSources:["user","project","local"],settings:{env:l},systemPrompt:{type:"preset",preset:"claude_code"},stderr:c=>this._logService.error(`[Claude SDK stderr] ${c}`)}}};Lo=R([T(0,V),T(1,Ro),T(2,sn),T(3,Ve)],Lo);function lR(){let i={ELECTRON_RUN_AS_NODE:"1",NODE_OPTIONS:void 0,ANTHROPIC_API_KEY:void 0};for(let t of Object.keys(process.env))t!=="ELECTRON_RUN_AS_NODE"&&(t.startsWith("VSCODE_")||t.startsWith("ELECTRON_"))&&(i[t]=void 0);return i}var cR=new Map([["opus",new Set(["1m"])]]),Gf=new Map;function Mo(i){let t=i.toLowerCase();if(Gf.has(t))return Gf.get(t);let e=uR(t);return Gf.set(t,e),e}var dR=/^(?<base>.*)-(?<date>\d{8})$/;function uR(i){let t="",e=i,n=dR.exec(i);n?.groups&&(e=n.groups.base,t=n.groups.date);let r=e.match(/^claude-(?<name>\w+)-(?<major>\d+)-(?<minor>\d+)(?:-(?<mod>.+))?$/);if(r?.groups)return ca(r.groups.name,r.groups.major,r.groups.minor,la(r.groups.mod,t));let o=e.match(/^claude-(?<major>\d+)-(?<minor>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(o?.groups)return ca(o.groups.name,o.groups.major,o.groups.minor,la(o.groups.mod,t));let s=e.match(/^claude-(?<name>\w+)-(?<major>\d+)\.(?<minor>\d+)(?:-(?<mod>.+))?$/);if(s?.groups)return ca(s.groups.name,s.groups.major,s.groups.minor,la(s.groups.mod,t));let a=e.match(/^claude-(?<name>\w+)-(?<major>\d+)(?:-(?<mod>.+))?$/);if(a?.groups)return ca(a.groups.name,a.groups.major,void 0,la(a.groups.mod,t));let l=e.match(/^claude-(?<major>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(l?.groups)return ca(l.groups.name,l.groups.major,void 0,la(l.groups.mod,t));let c=e.match(/^(?<name>\w+)$/);if(c?.groups)return pR(c.groups.name)}function la(i,t){return i&&t?`${i}-${t}`:i||t}function US(i,t,e,n,r){let o=e!==void 0?`claude-${i}-${t}${n}${e}`:`claude-${i}-${t}`;return r?`${o}-${r}`:o}function pR(i){return{name:i,version:"",modifiers:"",toSdkModelId:()=>i,toEndpointModelId:()=>i}}function ca(i,t,e,n){let r=e!==void 0?`${t}.${e}`:t,o=fR(i,n);return{name:i,version:r,modifiers:n,toSdkModelId:()=>US(i,t,e,"-",o),toEndpointModelId:()=>US(i,t,e,".",o)}}function fR(i,t){if(!t)return"";let e=cR.get(i);if(!e)return"";if(e.has(t))return t;let n=t.split("-")[0];return e.has(n)?n:""}import{once as gR}from"events";var mR=["interleaved-thinking","context-management","advanced-tool-use"];function VS(i){let t=i.split(",").map(e=>e.trim()).filter(e=>e&&mR.some(n=>e.startsWith(n+"-")));return t.length>0?t.join(","):void 0}function Jf(i,t){return{type:"error",error:{type:i,message:t},request_id:null}}function Bt(i,t,e,n){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(Jf(e,n)))}function WS(i,t,e){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(e))}function $S(i){return`event: error
data: ${JSON.stringify(i)}

`}var Qf=Object.freeze({valid:!1,sessionId:void 0});function BS(i,t){let e=i.authorization;if(typeof e!="string"||!e.startsWith("Bearer "))return Qf;let n=e.slice(7),r=n.indexOf(".");if(r===-1)return Qf;let o=n.slice(0,r),s=n.slice(r+1);return o!==t||s.length===0?Qf:{valid:!0,sessionId:s}}var md=z("claudeProxyService"),hR=new Set(["anthropic"]),yR="/v1/messages",br="ClaudeProxyService";function vR(){let i=new Uint8Array(32);crypto.getRandomValues(i);let t="";for(let e=0;e<i.length;e++)t+=i[e].toString(16).padStart(2,"0");return t}var No=class{constructor(t,e){this._logService=t;this._copilotApiService=e;this._disposed=!1}async start(t){if(this._disposed)throw new Error("ClaudeProxyService has been disposed");let e=await this._ensureRuntime(t);if(this._disposed||this._runtime!==e)throw new Error("ClaudeProxyService has been disposed");e.githubToken=t,e.refcount++;let n=!1;return{baseUrl:e.baseUrl,nonce:e.nonce,dispose:()=>{n||(n=!0,this._releaseHandle(e))}}}dispose(){this._disposed||(this._disposed=!0,this._teardownRuntime())}_ensureRuntime(t){return this._runtime?Promise.resolve(this._runtime):(this._starting||(this._starting=(async()=>{try{let e=await this._startServer(t);if(this._disposed)throw e.server.closeAllConnections(),e.server.close(),new Error("ClaudeProxyService has been disposed");return this._runtime=e,e}finally{this._starting=void 0}})()),this._starting)}_releaseHandle(t){this._runtime===t&&(t.refcount--,t.refcount===0&&this._teardownRuntime())}_teardownRuntime(){let t=this._runtime;if(t){this._runtime=void 0;for(let e of t.inFlight)e.ac.abort();t.server.closeAllConnections(),t.server.close(e=>{e&&this._logService.warn(`[${br}] server.close error: ${e.message}`)})}}async _startServer(t){let e=vR(),n=new Set,o=(await import("http")).createServer();await new Promise((c,u)=>{let d=f=>{u(f)};o.once("error",d),o.listen(0,"127.0.0.1",()=>{o.removeListener("error",d),c()})});let s=o.address();if(!s||typeof s=="string")throw o.close(),new Error(`${br} failed to bind: unexpected address ${String(s)}`);let a=`http://127.0.0.1:${s.port}`;this._logService.info(`[${br}] listening on ${a}`);let l={server:o,baseUrl:a,nonce:e,inFlight:n,githubToken:t,refcount:0};return o.on("request",(c,u)=>{this._handleRequest(c,u,l).catch(d=>{if(this._logService.error(`[${br}] unhandled request error: ${da(d)}`),u.headersSent){if(!u.writableEnded)try{u.end()}catch{}}else try{Bt(u,500,"api_error","Internal proxy error")}catch{}})}),l}async _handleRequest(t,e,n){let r=t.method??"GET",o=new URL(t.url??"/","http://127.0.0.1").pathname;if(this._logService.trace(`[${br}] ${r} ${o}`),r==="GET"&&o==="/"){e.writeHead(200,{"Content-Type":"text/plain"}),e.end("ok");return}if(!BS(t.headers,n.nonce).valid){Bt(e,401,"authentication_error","Invalid authentication");return}if(r==="GET"&&o==="/v1/models"){await this._handleModels(e,n);return}if(r==="POST"&&o==="/v1/messages"){await this._handleMessages(t,e,n);return}if(r==="POST"&&o==="/v1/messages/count_tokens"){Bt(e,501,"api_error","count_tokens not supported by CAPI");return}Bt(e,404,"not_found_error",`No route for ${r} ${o}`)}async _handleModels(t,e){let n;try{n=await this._copilotApiService.models(e.githubToken)}catch(s){this._writeUpstreamErrorResponse(t,s);return}let r=[];for(let s of n){if(!bR(s))continue;let a=Mo(s.id),l=a?a.toSdkModelId():s.id;r.push({id:l,type:"model",display_name:s.name||l,created_at:"1970-01-01T00:00:00Z",capabilities:null,max_input_tokens:null,max_tokens:null})}let o={data:r,has_more:!1,first_id:r.length>0?r[0].id:null,last_id:r.length>0?r[r.length-1].id:null};t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify(o))}async _handleMessages(t,e,n){let r;try{r=await _R(t)}catch(h){Bt(e,400,"invalid_request_error",`Failed to read request body: ${da(h)}`);return}let o;try{o=JSON.parse(r)}catch{Bt(e,400,"invalid_request_error","Request body is not valid JSON");return}if(!o||typeof o!="object"){Bt(e,400,"invalid_request_error","Request body must be a JSON object");return}let s=o,a=s.model;if(typeof a!="string"||a.length===0){Bt(e,400,"invalid_request_error","Missing required field: model");return}if(!Array.isArray(s.messages)){Bt(e,400,"invalid_request_error","Missing required field: messages");return}let l=Mo(a);if(!l){Bt(e,404,"not_found_error",`Unknown model: ${a}`);return}let c=l.toEndpointModelId();s.model=c;let u=s.stream===!0,d=IR(t.headers),f={ac:new AbortController,res:e,clientGone:!1};n.inFlight.add(f);let g=()=>{f.clientGone=!0,f.ac.abort()};e.on("close",g);try{u?await this._streamMessages(s,d,e,f,n,a):await this._sendNonStreamingMessage(s,d,e,f,n,a)}finally{e.removeListener("close",g),n.inFlight.delete(f)}}async _sendNonStreamingMessage(t,e,n,r,o,s){let a={headers:e,signal:r.ac.signal},l;try{l=await this._copilotApiService.messages(o.githubToken,t,a)}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}let c=qS(l.model,this._logService)??s,u={...l,model:c};n.writeHead(200,{"Content-Type":"application/json"}),n.end(JSON.stringify(u))}async _streamMessages(t,e,n,r,o,s){let a={headers:e,signal:r.ac.signal},l;try{l=this._copilotApiService.messages(o.githubToken,t,a)}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}let c;try{c=await l.next()}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}n.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),n.flushHeaders(),TR(n);let u=async d=>{let f=SR(d,this._logService),g=`event: ${f.type}
data: ${JSON.stringify(f)}

`;if(!n.write(g))try{await gR(n,"drain",{signal:r.ac.signal})}catch{return!1}return!0};try{if(!c.done&&!await u(c.value))return;for(;;){let d;try{d=await l.next()}catch(g){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}let h=g instanceof ei?g.envelope:Jf("api_error",da(g));if(!n.writableEnded){try{n.write($S(h))}catch{}try{n.end()}catch{}}return}if(d.done)break;if(!await u(d.value))return}n.writableEnded||n.end()}catch(d){if(this._logService.warn(`[${br}] stream loop unexpected error: ${da(d)}`),!n.writableEnded)try{n.end()}catch{}}}_writeUpstreamErrorResponse(t,e){if(t.headersSent){if(this._logService.warn(`[${br}] cannot write upstream error after headers sent: ${da(e)}`),!t.writableEnded)try{t.end()}catch{}return}if(e instanceof ei){let n=e.status===Nf?502:e.status;WS(t,n,e.envelope);return}Bt(t,502,"api_error",e instanceof Error?e.message:String(e))}};No=R([T(0,V),T(1,xo)],No);function bR(i){return hR.has(i.vendor.toLowerCase())?Array.isArray(i.supported_endpoints)&&i.supported_endpoints.includes(yR):!1}function qS(i,t){let e=Mo(i);if(!e){t.warn(`[${br}] outbound model ID could not be parsed for SDK rewrite: ${i}`);return}return e.toSdkModelId()}function SR(i,t){if(i.type!=="message_start")return i;let e=qS(i.message.model,t);return e===void 0||e===i.message.model?i:{...i,message:{...i.message,model:e}}}function IR(i){let t={},e=i["anthropic-version"];typeof e=="string"&&e.length>0&&(t["anthropic-version"]=e);let n=i["anthropic-beta"];if(typeof n=="string"&&n.length>0){let r=VS(n);r!==void 0&&(t["anthropic-beta"]=r)}return t}function _R(i){return new Promise((t,e)=>{let n=[];i.on("data",r=>n.push(Buffer.isBuffer(r)?r:Buffer.from(r))),i.on("end",()=>t(Buffer.concat(n).toString("utf8"))),i.on("error",e)})}function TR(i){let t=i.socket;if(t&&typeof t.setNoDelay=="function")try{t.setNoDelay(!0)}catch{}}function da(i){return i instanceof Error?i.message:String(i)}var kt=class{constructor(t,e){this._provider=t;this._sessionDataService=e}static{this.KEY_CUSTOMIZATION_DIRECTORY="claude.customizationDirectory"}static{this.KEY_MODEL="claude.model"}static{this.KEY_PERMISSION_MODE="claude.permissionMode"}async write(t,e){let n=this._sessionDataService.openDatabase(t),r=n.object;try{let o=[];e.customizationDirectory&&o.push(r.setMetadata(kt.KEY_CUSTOMIZATION_DIRECTORY,e.customizationDirectory.toString())),e.model&&o.push(r.setMetadata(kt.KEY_MODEL,CR(e.model))),e.permissionMode&&o.push(r.setMetadata(kt.KEY_PERMISSION_MODE,e.permissionMode)),await Promise.all(o)}finally{n.dispose()}}async read(t){let e=await this._sessionDataService.tryOpenDatabase(t);if(!e)return{};try{let[n,r,o]=await Promise.all([e.object.getMetadata(kt.KEY_CUSTOMIZATION_DIRECTORY),e.object.getMetadata(kt.KEY_MODEL),e.object.getMetadata(kt.KEY_PERMISSION_MODE)]);return{customizationDirectory:n?y.parse(n):void 0,model:xR(r),permissionMode:na(o)}}finally{e.dispose()}}project(t,e){return{session:j.uri(this._provider,t.sessionId),startTime:t.createdAt??t.lastModified,modifiedTime:t.lastModified,summary:t.customTitle??t.summary,workingDirectory:t.cwd?y.file(t.cwd):void 0,customizationDirectory:e.customizationDirectory,model:e.model}}};kt=R([T(1,sn)],kt);function CR(i){return JSON.stringify(i)}function xR(i){if(i){try{let t=JSON.parse(i);if(t&&typeof t=="object"&&typeof t.id=="string"){let e={id:t.id};if(t.config&&typeof t.config=="object"){let n={};for(let[r,o]of Object.entries(t.config))typeof o=="string"&&(n[r]=o);Object.keys(n).length>0&&(e.config=n)}return e}}catch{}return{id:i}}}function wR(i){return i.vendor==="Anthropic"&&!!i.supported_endpoints?.includes("/v1/messages")&&!!i.model_picker_enabled&&!!i.capabilities?.supports?.tool_calls&&Mo(i.id)!==void 0}function RR(i,t){let e=i.capabilities?.supports,n=(e?.reasoning_effort??[]).filter(mS),r=gS(n),o=i.policy?.state,s=i.billing?.multiplier;return{provider:t,id:i.id,name:i.name,maxContextWindow:i.capabilities?.limits?.max_context_window_tokens,supportsVision:!!e?.vision,...r?{configSchema:r}:{},...o?{policyState:o}:{},...typeof s=="number"?{_meta:{multiplierNumeric:s}}:{}}}var Fo=class extends C{constructor(e,n,r,o,s,a,l){super();this._logService=e;this._copilotApiService=n;this._claudeProxyService=r;this._sdkService=o;this._gitService=s;this._configurationService=a;this.id="claude";this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this._models=nn(this,[]);this.models=this._models;this._sessions=this._register(new at);this._provisionalSessions=new Map;this._onDidMaterializeSession=this._register(new x);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._disposeSequencer=new yt;this._sessionSequencer=new yt;this._materializer=l.createInstance(Lo),this._metadataStore=l.createInstance(kt,this.id)}getDescriptor(){return{provider:this.id,displayName:m(1905,null),description:m(1904,null)}}getProtectedResources(){return[Ai]}_ensureAuthenticated(){let e=this._proxyHandle;if(!e)throw new W(qi,"Authentication is required to use Claude",this.getProtectedResources());return e}async authenticate(e,n){if(e!==Ai.resource)return!1;if(!(this._githubToken!==n))return this._logService.info("[Claude] Auth token unchanged"),!0;let o=await this._claudeProxyService.start(n),s=this._proxyHandle;return this._proxyHandle=o,this._githubToken=n,this._logService.info("[Claude] Auth token updated"),s?.dispose(),this._refreshModels(),!0}async _refreshModels(){let e=this._githubToken;if(!e){this._models.set([],void 0);return}try{let n=await this._copilotApiService.models(e);if(this._githubToken!==e)return;let r=n.filter(wR).sort((o,s)=>Number(s.is_chat_default)-Number(o.is_chat_default)).map(o=>RR(o,this.id));this._models.set(r,void 0)}catch(n){this._logService.error(n,"[Claude] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}async createSession(e={}){if(this._ensureAuthenticated(),e.fork)throw new Error("TODO: Phase 6.5: fork requires message-UUID lookup via sdk.getSessionMessages");let n=e.session?j.id(e.session):H(),r=j.uri(this.id,n),o=this._provisionalSessions.get(n);if(o)return{session:o.sessionUri,workingDirectory:o.workingDirectory,provisional:!0,...o.project?{project:o.project}:{}};if(this._sessions.has(n))return{session:r,workingDirectory:e.workingDirectory};let s=e.workingDirectory?await vr({cwd:e.workingDirectory.fsPath},this._gitService):void 0;return this._provisionalSessions.set(n,{sessionId:n,sessionUri:r,workingDirectory:e.workingDirectory,abortController:new AbortController,project:s,model:e.model,config:e.config}),{session:r,workingDirectory:e.workingDirectory,provisional:!0,...s?{project:s}:{}}}async _materializeProvisional(e){let n=this._provisionalSessions.get(e);if(!n)throw new Error(`Cannot materialize unknown provisional session: ${e}`);let r=this._ensureAuthenticated(),o=this._readSessionPermissionMode(n.sessionUri)??this._resolvePermissionMode(n.config),s=(u,d,f)=>kS({getSession:g=>this._sessions.get(g)?.session,configurationService:this._configurationService},e,u,d,f),a=await this._materializer.materialize(n,r,o,s),l=Ff(ra(n.model));a.seedBijectiveState({model:n.model?.id,effort:l,permissionMode:o}),a.attachRematerializer(async u=>{let d=this._readSessionPermissionMode(n.sessionUri)??o;return this._materializer.materializeResume(n,r,d,s)});try{await this._metadataStore.write(n.sessionUri,{customizationDirectory:n.workingDirectory,model:n.model,permissionMode:o})}catch(u){throw a.dispose(),this._provisionalSessions.delete(e),this._logService.error("[Claude] Failed to persist customization directory; aborting materialize",u),u}if(n.abortController.signal.aborted)throw a.dispose(),this._provisionalSessions.delete(e),new ae;let c=new Yf(a);return c.addDisposable(a.onDidSessionProgress(u=>this._onDidSessionProgress.fire(u))),this._sessions.set(e,c),this._provisionalSessions.delete(e),this._onDidMaterializeSession.fire({session:n.sessionUri,workingDirectory:n.workingDirectory,project:n.project}),a}_resolvePermissionMode(e){return na(e?.permissionMode)??"default"}_readSessionPermissionMode(e){return na(this._configurationService.getSessionConfigValues(e.toString())?.permissionMode)}disposeSession(e){let n=j.id(e);return this._disposeSequencer.queue(n,async()=>{let r=this._provisionalSessions.get(n);if(r){r.abortController.abort(),this._provisionalSessions.delete(n);return}this._sessions.deleteAndDispose(n)})}getSessionForTesting(e){return this._sessions.get(j.id(e))?.session}async getSessionMessages(e){let n=j.id(e);if(this._provisionalSessions.has(n))return[];if(kl(e)){let a=Xe(e),l=a?this._sessions.get(j.id(a.parentSession))?.session:void 0;if(!l)return this._logService.warn(`[Claude] getSessionMessages: parent session not found for subagent ${e.toString()} (registry unavailable)`),[];try{return await CS(e,l.subagents,this._sdkService,this._logService,Fe.None)}catch(c){return this._logService.warn(`[Claude] getSubagentTranscript threw for ${e.toString()}`,c),[]}}let r=this._sessions.get(n)?.session,o;try{o=await this._sdkService.getSessionMessages(n,{includeSystemMessages:!0})}catch(a){return this._logService.warn(`[Claude] getSessionMessages SDK fetch failed for ${n}`,a),[]}let s;try{s=oa(o,e,this._logService)}catch(a){return this._logService.warn(`[Claude] replay mapper threw for ${n}`,a),[]}try{r?.subagents.primeFromTranscript(s)}catch(a){this._logService.warn(`[Claude] primeFromTranscript threw for ${n}`,a)}return s}async listSessions(){let e;try{e=await this._sdkService.listSessions()}catch(n){return this._logService.warn("[Claude] SDK listSessions failed; surfacing empty list",n),[]}return Promise.all(e.map(async n=>{try{let r=j.uri(this.id,n.sessionId),o=await this._metadataStore.read(r);return this._metadataStore.project(n,o)}catch(r){this._logService.warn(`[Claude] Overlay read failed for session ${n.sessionId}`,r)}return this._metadataStore.project(n,{})}))}async getSessionMetadata(e){let n=j.id(e),r=await this._sdkService.getSessionInfo(n);if(!r)return;let o={};try{o=await this._metadataStore.read(e)}catch(s){this._logService.warn(`[Claude] Overlay read failed for session ${n}`,s)}return this._metadataStore.project(r,o)}resolveSessionConfig(e){let n=sr({permissionMode:Pt({type:"string",title:m(1890,null),description:m(1903,null),enum:["default","acceptEdits","bypassPermissions","plan","dontAsk","auto"],enumLabels:[m(1897,null),m(1891,null),m(1895,null),m(1901,null),m(1899,null),m(1893,null)],enumDescriptions:[m(1898,null),m(1892,null),m(1896,null),m(1902,null),m(1900,null),m(1894,null)],default:"default",sessionMutable:!0}),permissions:vt.definition.permissions}),r=n.validateOrDefault(e.config,{permissionMode:"default"});return Promise.resolve({schema:n.toProtocol(),values:r})}sessionConfigCompletions(e){return Promise.resolve({items:[]})}shutdown(){return this._shutdownPromise??=(async()=>{for(let n of this._provisionalSessions.values())n.abortController.abort();this._provisionalSessions.clear();let e=[...this._sessions.keys()];await Promise.all(e.map(n=>this._disposeSequencer.queue(n,async()=>{this._sessions.deleteAndDispose(n)})))})()}async sendMessage(e,n,r,o){let s=j.id(e),a=o??H();return this._sessionSequencer.queue(s,async()=>{let l=this._sessions.get(s)?.session;if(l)await l.setPermissionMode(this._readSessionPermissionMode(e)??"default");else{if(!this._provisionalSessions.has(s))throw new Error(`Cannot send to unknown session: ${s}`);l=await this._materializeProvisional(s)}let u={type:"user",message:{role:"user",content:dd(n,r)},session_id:s,parent_tool_use_id:null,uuid:a};await l.send(u,a)})}respondToPermissionRequest(e,n){for(let r of this._sessions.values())if(r.session.respondToPermissionRequest(e,n))return}respondToUserInputRequest(e,n,r){for(let o of this._sessions.values())if(o.session.respondToUserInputRequest(e,n,r))return}async abortSession(e){let n=j.id(e),r=this._provisionalSessions.get(n);if(r){r.abortController.abort();return}this._sessions.get(n)?.session.abort()}setPendingMessages(e,n,r){let o=j.id(e);this._logService.info(`[Claude:${o}] setPendingMessages called: steering=${n?.id??"none"} queued=${r.length}`);let s=this._sessions.get(o);if(!s){this._logService.warn(`[Claude:${o}] setPendingMessages: session not found`);return}n&&s.session.injectSteering(n)}async changeModel(e,n){let r=j.id(e);await this._sessionSequencer.queue(r,async()=>{let o=this._provisionalSessions.get(r);if(o){o.model=n,await this._metadataStore.write(e,{model:n});return}let s=this._sessions.get(r);if(s){let a=ra(n),l=Ff(a);a==="max"&&this._logService.warn(`[Claude:${r}] changeModel: 'max' effort clamped to 'xhigh' (Copilot CAPI has no 'max' model yet)`),await s.session.queueModelChange(n.id,l)}await this._metadataStore.write(e,{model:n})})}setClientTools(e,n,r){throw new Error("TODO: Phase 10")}onClientToolCallComplete(e,n,r){throw new Error("TODO: Phase 10")}setClientCustomizations(e,n,r){throw new Error("TODO: Phase 11")}setCustomizationEnabled(e,n){throw new Error("TODO: Phase 11")}dispose(){for(let e of this._provisionalSessions.values())e.abortController.abort();this._provisionalSessions.clear(),super.dispose(),this._proxyHandle?.dispose(),this._proxyHandle=void 0,this._githubToken=void 0,this._models.set([],void 0)}};Fo=R([T(0,V),T(1,xo),T(2,md),T(3,Ro),T(4,ln),T(5,ut),T(6,Ve)],Fo);var Yf=class extends C{constructor(t){super(),this.session=this._register(t)}addDisposable(t){this._register(t)}};import{mkdir as jR}from"fs/promises";var ER=/^[0-9a-fA-F]+$/,PR="00000000000000000000000000000000",HS="0000000000000000";function zS(i){if(!i||!Array.isArray(i.resourceSpans))return{spans:[],rejected:0,errors:[]};let t=[],e=[],n=0;for(let r of i.resourceSpans){if(!r)continue;let o=OR(r.resource?.attributes);for(let s of r.scopeSpans??[])if(s)for(let a of s.spans??[])try{let l=kR(a,o);l?t.push(l):n++}catch(l){n++,e.push(l instanceof Error?l.message:String(l))}}return{spans:t,rejected:n,errors:e}}function kR(i,t){if(!i)return;let e=(i.traceId??"").toLowerCase(),n=(i.spanId??"").toLowerCase();if(!Xf(e,32)||e===PR)throw new Error(`invalid traceId: ${i.traceId}`);if(!Xf(n,16)||n===HS)throw new Error(`invalid spanId: ${i.spanId}`);let r;if(i.parentSpanId){let u=i.parentSpanId.toLowerCase();Xf(u,16)&&u!==HS&&(r=u)}let o=em(i.startTimeUnixNano),s=em(i.endTimeUnixNano);if(o===void 0||s===void 0)throw new Error("missing span time bounds");let a={...t};for(let u of i.attributes??[])tm(a,u);let l=[];for(let u of i.events??[]){let d=AR(u);d&&l.push(d)}let c=DR(i.status?.code,i.status?.message);return{name:i.name??"",traceId:e,spanId:n,parentSpanId:r,startTime:o,endTime:s,status:c,attributes:a,events:l}}function AR(i){if(!i)return;let t=em(i.timeUnixNano);if(t===void 0)return;let e={};for(let n of i.attributes??[])tm(e,n);return{name:i.name??"",timestamp:t,attributes:Object.keys(e).length>0?e:void 0}}function DR(i,t){switch(i){case 1:return{code:1,message:t};case 2:return{code:2,message:t};case 0:default:return{code:0,message:t}}}function OR(i){let t={};if(!i)return t;for(let e of i)tm(t,e);return t}function tm(i,t){if(!t||typeof t.key!="string"||t.key.length===0)return;let e=Zf(t.value);e!==void 0&&(i[t.key]=e)}function Zf(i){if(i){if(typeof i.stringValue=="string")return i.stringValue;if(typeof i.boolValue=="boolean")return i.boolValue;if(i.intValue!==void 0){let t=typeof i.intValue=="string"?Number(i.intValue):i.intValue;return Number.isFinite(t)?t:void 0}if(typeof i.doubleValue=="number")return i.doubleValue;if(i.arrayValue?.values){let t=i.arrayValue.values.map(Zf);return t.every(e=>typeof e=="string")?t:JSON.stringify(t)}if(i.kvlistValue?.values){let t={};for(let e of i.kvlistValue.values)e&&typeof e.key=="string"&&(t[e.key]=Zf(e.value));return JSON.stringify(t)}if(typeof i.bytesValue=="string")return i.bytesValue}}function em(i){if(i===void 0||i===""||i==="0")return;let t=i.length<=6?"0":i.slice(0,-6),e=Number(t);return Number.isFinite(e)?e:void 0}function Xf(i,t){return i.length===t&&ER.test(i)}var LR="/v1/traces",MR=64*1024*1024;async function jS(i,t,e={}){let n=e.maxBodyBytes??MR,o=(await import("http")).createServer();o.on("request",(u,d)=>{NR(u,d,i,t,n).catch(f=>{if(t.error(`[agentHost-otel] receiver: unhandled error: ${f instanceof Error?f.message:String(f)}`),!d.headersSent)Sr(d,500,"internal error");else if(!d.writableEnded)try{d.end()}catch{}})}),await new Promise((u,d)=>{let f=g=>d(g);o.once("error",f),o.listen(0,"127.0.0.1",()=>{o.removeListener("error",f),u()})});let s=o.address();if(!s||typeof s=="string")throw o.close(),new Error(`local OTLP receiver failed to bind: unexpected address ${String(s)}`);let a=s.port,l=`http://127.0.0.1:${a}`;t.info(`[agentHost-otel] receiver listening on ${l}`);let c=E(()=>{o.closeAllConnections(),o.close(u=>{u&&t.warn(`[agentHost-otel] receiver close error: ${u.message}`)})});return Object.assign(c,{baseUrl:l,port:a})}async function NR(i,t,e,n,r){if((i.url??"").split("?",1)[0]!==LR){Sr(t,404,"not found");return}if(i.method!=="POST"){t.setHeader("allow","POST"),Sr(t,405,"method not allowed");return}let a=(i.headers["content-type"]??"").toString().toLowerCase();if(!a.includes("application/json")){Sr(t,415,"unsupported content-type; this receiver only accepts application/json");return}let l=(i.headers["content-encoding"]??"").toString().toLowerCase();if(l&&l!=="identity"){Sr(t,415,`unsupported content-encoding: ${l}`);return}let c;try{c=await FR(i,r)}catch(g){g instanceof gd?Sr(t,413,"payload too large"):Sr(t,400,"failed to read body");return}if(e.onForward)try{e.onForward(c,a)}catch(g){n.warn(`[agentHost-otel] forward callback threw: ${g instanceof Error?g.message:String(g)}`)}let u;try{u=JSON.parse(c.toString("utf8"))}catch(g){Sr(t,400,`invalid json: ${g instanceof Error?g.message:String(g)}`);return}let d=zS(u);try{e.onSpans(d)}catch(g){n.warn(`[agentHost-otel] onSpans handler threw: ${g instanceof Error?g.message:String(g)}`)}let f=d.rejected>0?{partialSuccess:{rejectedSpans:d.rejected,errorMessage:d.errors.join("; ").slice(0,1024)}}:{};t.statusCode=200,t.setHeader("content-type","application/json"),t.end(JSON.stringify(f))}var gd=class extends Error{};function FR(i,t){return new Promise((e,n)=>{let r=[],o=0,s=u=>{if(o+=u.length,o>t){c(),n(new gd(`body exceeds ${t} bytes`));return}r.push(u)},a=()=>{c(),e(Buffer.concat(r))},l=u=>{c(),n(u)},c=()=>{i.removeListener("data",s),i.removeListener("end",a),i.removeListener("error",l)};i.on("data",s),i.on("end",a),i.on("error",l)})}function Sr(i,t,e){i.statusCode=t,i.setHeader("content-type","text/plain; charset=utf-8"),i.end(e)}import{URL as KS}from"url";import{promises as UR}from"fs";function VR(i){try{let t=new KS(i);return t.pathname===""||t.pathname==="/"?(t.pathname="/v1/traces",t.toString()):i}catch{return i}}var hd=class extends C{constructor(e,n){super();this._options=e;this._logService=n;this._queue=new Xn;this._disposed=!1;this._resolvedEndpoint=VR(e.endpoint),this._register(E(()=>{this._disposed=!0}))}forwardRaw(e,n){this._disposed||this._queue.queue(()=>this._sendOnce(e,n))}async flush(){try{await this._queue.queue(()=>Promise.resolve())}catch{}}async _sendOnce(e,n){try{let r=new KS(this._resolvedEndpoint),o=r.protocol==="https:",s=o?await import("https"):await import("http"),a={"content-type":n,"content-length":String(e.length),...this._options.headers??{}};await WR(s,{host:r.hostname,port:r.port?Number(r.port):o?443:80,path:r.pathname+(r.search??""),method:"POST",headers:a,timeoutMs:this._options.timeoutMs??1e4},e)}catch(r){this._logService.warn(`[agentHost-otel] forward to ${this._resolvedEndpoint} failed: ${r instanceof Error?r.message:String(r)}`)}}};function WR(i,t,e){return new Promise((n,r)=>{let o=i.request({host:t.host,port:t.port,path:t.path,method:t.method,headers:t.headers,timeout:t.timeoutMs}),s=a=>{o.destroy(),r(a)};o.on("error",s),o.on("timeout",()=>s(new Error(`request timeout after ${t.timeoutMs}ms`))),o.on("response",a=>{a.resume(),a.on("end",()=>{let l=a.statusCode??0;l>=200&&l<300?n():r(new Error(`upstream returned HTTP ${l}`))}),a.on("error",s)}),o.end(e)})}var yd=class extends C{constructor(e,n){super();this._options=e;this._logService=n;this._queue=new Xn;this._disposed=!1;this._register(E(()=>{this._disposed=!0}))}forwardSpans(e){if(this._disposed||e.spans.length===0)return;let n=e.spans.map(r=>JSON.stringify(r)).join(`
`)+`
`;this._queue.queue(()=>this._append(n))}async flush(){try{await this._queue.queue(()=>Promise.resolve())}catch{}}async _append(e){try{await UR.appendFile(this._options.filePath,e,{encoding:"utf8"})}catch(n){this._logService.warn(`[agentHost-otel] file forward to ${this._options.filePath} failed: ${n instanceof Error?n.message:String(n)}`)}}},vd=class extends C{constructor(e){super();this._logService=e;this._disposed=!1;this._register(E(()=>{this._disposed=!0}))}forwardSpans(e){if(!this._disposed)for(let n of e.spans)this._logService.info(`[agentHost-otel] span ${$R(n)}`)}async flush(){}};function $R(i){let t=Math.max(0,i.endTime-i.startTime),e=i.attributes["gen_ai.operation.name"],n=i.attributes["gen_ai.request.model"]??i.attributes["gen_ai.response.model"],r=[e&&`op=${e}`,n&&`model=${n}`].filter(Boolean).join(" ");return`${i.name} (${t}ms) trace=${i.traceId} span=${i.spanId}${r?" "+r:""}`}var bd=class extends C{constructor(t){super(),this._children=t;for(let e of t)this._register(e)}forwardRaw(t,e){for(let n of this._children)n.forwardRaw?.(t,e)}forwardSpans(t){for(let e of this._children)e.forwardSpans?.(t)}async flush(){await Promise.all(this._children.map(t=>t.flush()))}};import{mkdirSync as BR}from"fs";import{createRequire as qR}from"module";var It={OPERATION_NAME:"gen_ai.operation.name",PROVIDER_NAME:"gen_ai.provider.name",REQUEST_MODEL:"gen_ai.request.model",RESPONSE_MODEL:"gen_ai.response.model",RESPONSE_ID:"gen_ai.response.id",RESPONSE_FINISH_REASONS:"gen_ai.response.finish_reasons",USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",USAGE_CACHE_READ_INPUT_TOKENS:"gen_ai.usage.cache_read.input_tokens",USAGE_CACHE_CREATION_INPUT_TOKENS:"gen_ai.usage.cache_creation.input_tokens",USAGE_REASONING_TOKENS:"gen_ai.usage.reasoning_tokens",CONVERSATION_ID:"gen_ai.conversation.id",TOKEN_TYPE:"gen_ai.token.type",AGENT_NAME:"gen_ai.agent.name",TOOL_NAME:"gen_ai.tool.name",TOOL_TYPE:"gen_ai.tool.type",TOOL_CALL_ID:"gen_ai.tool.call.id"},ua={TURN_INDEX:"copilot_chat.turn.index",TIME_TO_FIRST_TOKEN:"copilot_chat.time_to_first_token",CHAT_SESSION_ID:"copilot_chat.chat_session_id",HOOK_TYPE:"copilot_chat.hook_type",HOOK_INPUT:"copilot_chat.hook_input",HOOK_OUTPUT:"copilot_chat.hook_output",HOOK_RESULT_KIND:"copilot_chat.hook_result_kind"};var HR=qR(import.meta.url);function zR(){return HR("node:sqlite")}var GS=1,JS=10080*60*1e3,QS=100,ft={operation_name:It.OPERATION_NAME,provider_name:It.PROVIDER_NAME,agent_name:It.AGENT_NAME,conversation_id:It.CONVERSATION_ID,request_model:It.REQUEST_MODEL,response_model:It.RESPONSE_MODEL,input_tokens:It.USAGE_INPUT_TOKENS,output_tokens:It.USAGE_OUTPUT_TOKENS,cached_tokens:It.USAGE_CACHE_READ_INPUT_TOKENS,reasoning_tokens:It.USAGE_REASONING_TOKENS,tool_name:It.TOOL_NAME,tool_call_id:It.TOOL_CALL_ID,tool_type:It.TOOL_TYPE,chat_session_id:ua.CHAT_SESSION_ID,turn_index:ua.TURN_INDEX,ttft_ms:ua.TIME_TO_FIRST_TOKEN},xY=z("otelSqliteStore"),Sd=class{constructor(t){this._db=null;this._insertSpanStmt=null;this._insertAttrStmt=null;this._insertEventStmt=null;this._beginTx=null;this._commitTx=null;this._rollbackTx=null;this._dbPath=t}get dbPath(){return this._dbPath}insertSpan(t){this._ensureDb();try{this._beginTx.run(),this._insertSpanStmt.run(t.spanId,t.traceId,t.parentSpanId??null,t.name,t.startTime,t.endTime,t.status.code,t.status.message??null,this._attr(t,ft.operation_name),this._attr(t,ft.provider_name),this._attr(t,ft.agent_name),this._attr(t,ft.conversation_id),this._attr(t,ft.request_model),this._attr(t,ft.response_model),this._attr(t,ft.input_tokens),this._attr(t,ft.output_tokens),this._attr(t,ft.cached_tokens),this._attr(t,ft.reasoning_tokens),this._attr(t,ft.tool_name),this._attr(t,ft.tool_call_id),this._attr(t,ft.tool_type),this._attr(t,ft.chat_session_id),this._attr(t,ft.turn_index),this._ttftMs(t));for(let[e,n]of Object.entries(t.attributes)){let r=Array.isArray(n)?JSON.stringify(n):String(n);this._insertAttrStmt.run(t.spanId,e,r)}for(let e of t.events){let n=e.attributes?JSON.stringify(e.attributes):null;this._insertEventStmt.run(t.spanId,e.name,e.timestamp,n)}this._commitTx.run()}catch(e){try{this._rollbackTx.run()}catch{}throw e}}getSpansByTraceId(t){return this._ensureDb().prepare("SELECT * FROM spans WHERE trace_id = ? ORDER BY start_time_ms").all(t)}getSpansByConversationId(t){return this._ensureDb().prepare("SELECT * FROM spans WHERE conversation_id = ? OR chat_session_id = ? ORDER BY start_time_ms").all(t,t)}getSpanAttributes(t){return this._ensureDb().prepare("SELECT key, value FROM span_attributes WHERE span_id = ?").all(t)}getSpanAttribute(t,e){return this._ensureDb().prepare("SELECT value FROM span_attributes WHERE span_id = ? AND key = ?").get(t,e)?.value??null}getSpanEvents(t){return this._ensureDb().prepare("SELECT * FROM span_events WHERE span_id = ? ORDER BY timestamp_ms").all(t)}getTraceIds(t){let e=this._ensureDb();return t?e.prepare("SELECT DISTINCT trace_id FROM spans WHERE conversation_id = ? OR chat_session_id = ?").all(t,t).map(r=>r.trace_id):e.prepare("SELECT DISTINCT trace_id FROM spans").all().map(n=>n.trace_id)}getSessions(t){let e=t?"SELECT * FROM sessions ORDER BY started_at DESC LIMIT ?":"SELECT * FROM sessions ORDER BY started_at DESC";return t?this._ensureDb().prepare(e).all(t):this._ensureDb().prepare(e).all()}getSessionsSince(t){return this._ensureDb().prepare("SELECT * FROM sessions WHERE started_at >= ? ORDER BY started_at DESC").all(t)}cleanup(t=JS){let e=Date.now()-t,n=this._ensureDb().prepare("DELETE FROM spans WHERE start_time_ms < ?").run(e);return Number(n.changes)}checkpoint(){this._ensureDb().exec("PRAGMA wal_checkpoint(TRUNCATE)")}close(){this._db&&(this._db.close(),this._db=null,this._insertSpanStmt=null,this._insertAttrStmt=null,this._insertEventStmt=null,this._beginTx=null,this._commitTx=null,this._rollbackTx=null)}_attr(t,e){let n=t.attributes[e];return n===void 0?null:Array.isArray(n)?JSON.stringify(n):typeof n=="boolean"?n?1:0:n}_ttftMs(t){let e=this._attr(t,ua.TIME_TO_FIRST_TOKEN);if(e!==null)return e;let n=t.attributes["gen_ai.response.time_to_first_chunk"]??t.attributes["github.copilot.time_to_first_chunk"];if(n===void 0)return null;let r=typeof n=="number"?n:parseFloat(String(n));return isNaN(r)?null:Math.round(r*1e3)}_ensureDb(){if(this._db)return this._db;this._dbPath!==":memory:"&&BR(ce(this._dbPath),{recursive:!0});let{DatabaseSync:t}=zR(),e=new t(this._dbPath);try{e.exec("PRAGMA journal_mode = WAL"),e.exec("PRAGMA busy_timeout = 3000"),e.exec("PRAGMA foreign_keys = ON"),this._db=e,this._ensureSchema(),this._prepareStatements(e),this._cleanupOnStartup(e)}catch(n){throw e.close(),this._db=null,n}return this._db}_prepareStatements(t){this._insertSpanStmt=t.prepare(`
			INSERT OR REPLACE INTO spans (
				span_id, trace_id, parent_span_id, name,
				start_time_ms, end_time_ms, status_code, status_message,
				operation_name, provider_name, agent_name, conversation_id,
				request_model, response_model,
				input_tokens, output_tokens, cached_tokens, reasoning_tokens,
				tool_name, tool_call_id, tool_type,
				chat_session_id, turn_index, ttft_ms
			) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
		`),this._insertAttrStmt=t.prepare("INSERT OR REPLACE INTO span_attributes (span_id, key, value) VALUES (?, ?, ?)"),this._insertEventStmt=t.prepare("INSERT INTO span_events (span_id, name, timestamp_ms, attributes) VALUES (?, ?, ?, ?)"),this._beginTx=t.prepare("BEGIN"),this._commitTx=t.prepare("COMMIT"),this._rollbackTx=t.prepare("ROLLBACK")}_ensureSchema(){let t=this._db;((()=>{try{return t.prepare("SELECT version FROM schema_version LIMIT 1").get()}catch{return}})()?.version??0)>=GS||t.exec(`
			CREATE TABLE IF NOT EXISTS schema_version (version INTEGER PRIMARY KEY);
			INSERT OR REPLACE INTO schema_version (version) VALUES (${GS});

			CREATE TABLE IF NOT EXISTS spans (
				span_id TEXT PRIMARY KEY, trace_id TEXT NOT NULL, parent_span_id TEXT,
				name TEXT NOT NULL, start_time_ms INTEGER NOT NULL, end_time_ms INTEGER NOT NULL,
				status_code INTEGER NOT NULL DEFAULT 0, status_message TEXT,
				operation_name TEXT, provider_name TEXT, agent_name TEXT, conversation_id TEXT,
				request_model TEXT, response_model TEXT,
				input_tokens INTEGER, output_tokens INTEGER, cached_tokens INTEGER, reasoning_tokens INTEGER,
				tool_name TEXT, tool_call_id TEXT, tool_type TEXT,
				chat_session_id TEXT, turn_index INTEGER, ttft_ms REAL
			);

			CREATE TABLE IF NOT EXISTS span_attributes (
				span_id TEXT NOT NULL REFERENCES spans(span_id) ON DELETE CASCADE,
				key TEXT NOT NULL, value TEXT,
				PRIMARY KEY (span_id, key)
			);

			CREATE TABLE IF NOT EXISTS span_events (
				id INTEGER PRIMARY KEY AUTOINCREMENT,
				span_id TEXT NOT NULL REFERENCES spans(span_id) ON DELETE CASCADE,
				name TEXT NOT NULL, timestamp_ms INTEGER NOT NULL, attributes TEXT
			);

			CREATE INDEX IF NOT EXISTS idx_spans_trace ON spans(trace_id);
			CREATE INDEX IF NOT EXISTS idx_spans_conversation ON spans(conversation_id);
			CREATE INDEX IF NOT EXISTS idx_spans_chat_session ON spans(chat_session_id);
			CREATE INDEX IF NOT EXISTS idx_spans_operation ON spans(operation_name);
			CREATE INDEX IF NOT EXISTS idx_spans_start_time ON spans(start_time_ms);
			CREATE INDEX IF NOT EXISTS idx_span_events_span ON span_events(span_id);

			-- Session view: derives session boundaries from span data.
			-- No separate sessions table needed \u2014 invoke_agent spans define session lifecycle.
			CREATE VIEW IF NOT EXISTS sessions AS
			SELECT
				COALESCE(conversation_id, chat_session_id) AS session_id,
				agent_name,
				response_model AS model,
				MIN(start_time_ms) AS started_at,
				MAX(end_time_ms) AS ended_at,
				MAX(end_time_ms) - MIN(start_time_ms) AS duration_ms,
				COUNT(*) AS span_count,
				SUM(CASE WHEN operation_name = 'chat' THEN 1 ELSE 0 END) AS llm_calls,
				SUM(CASE WHEN operation_name = 'execute_tool' THEN 1 ELSE 0 END) AS tool_calls,
				SUM(CASE WHEN operation_name = 'chat' THEN input_tokens ELSE 0 END) AS total_input_tokens,
				SUM(CASE WHEN operation_name = 'chat' THEN output_tokens ELSE 0 END) AS total_output_tokens,
				SUM(CASE WHEN operation_name = 'chat' THEN cached_tokens ELSE 0 END) AS total_cached_tokens
			FROM spans
			WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
			GROUP BY COALESCE(conversation_id, chat_session_id);
		`)}_cleanupOnStartup(t){let e=Date.now()-JS;t.prepare("DELETE FROM spans WHERE start_time_ms < ?").run(e);let n=t.prepare(`
			SELECT MIN(max_start) AS cutoff_ms FROM (
				SELECT MAX(start_time_ms) AS max_start
				FROM spans
				WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
				GROUP BY COALESCE(conversation_id, chat_session_id)
				ORDER BY max_start DESC
				LIMIT ?
			)
		`).get(QS);n?.cutoff_ms&&t.prepare(`
				DELETE FROM spans
				WHERE start_time_ms < ?
				AND COALESCE(conversation_id, chat_session_id) NOT IN (
					SELECT COALESCE(conversation_id, chat_session_id)
					FROM spans
					WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
					GROUP BY COALESCE(conversation_id, chat_session_id)
					ORDER BY MAX(start_time_ms) DESC
					LIMIT ?
				)
			`).run(n.cutoff_ms,QS)}};var KR=vh;function nm(i){if(!i)return!1;let t=i.trim().toLowerCase();return t==="true"||t==="1"||t==="yes"||t==="on"}function GR(i){if(!i)return;let t={};for(let e of i.split(",")){let n=e.indexOf("=");if(n<=0)continue;let r=e.slice(0,n).trim(),o=e.slice(n+1).trim();r&&(t[r]=o)}return Object.keys(t).length?t:void 0}function JR(i){let t=nm(i.COPILOT_OTEL_DB_SPAN_EXPORTER_ENABLED),e=i.OTEL_EXPORTER_OTLP_ENDPOINT??i.COPILOT_OTEL_ENDPOINT,n=i.COPILOT_OTEL_FILE_EXPORTER_PATH,o=nm(i.COPILOT_OTEL_ENABLED)||t||!!e||!!n,s=(i.COPILOT_OTEL_EXPORTER_TYPE??"").trim().toLowerCase(),a=(i.OTEL_EXPORTER_OTLP_PROTOCOL??i.COPILOT_OTEL_PROTOCOL??"").trim().toLowerCase(),l="otlp-http";return s==="console"||s==="file"||s==="otlp-grpc"||s==="otlp-http"?l=s:n&&(l="file"),(a==="grpc"||a==="http/grpc")&&(l="otlp-grpc"),{enabled:o,dbSpanExporter:t,exporterType:l,otlpEndpoint:e,filePath:n,sourceName:i.COPILOT_OTEL_SOURCE_NAME,captureContent:i.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT===void 0?void 0:nm(i.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT),headers:GR(i.OTEL_EXPORTER_OTLP_HEADERS)}}var Uo=class extends C{constructor(e,n){super();this._logService=e;this._config=JR(process.env),this._spansDbPath=B(n.userDataPath,KR)}async getSdkTelemetryConfig(){if(this._config.enabled){if(this._config.dbSpanExporter){if(await this._ensureStarted(),this._receiver)return this._buildLoopbackConfig();if(!this._config.otlpEndpoint&&this._config.exporterType!=="console"&&!this._config.filePath)return}return this._buildPassthroughConfig()}}getSpansDbPath(){return this._config.dbSpanExporter?y.file(this._spansDbPath):void 0}async flush(){await this._startPromise,this._forwarder&&await this._forwarder.flush()}_buildLoopbackConfig(){return{exporterType:"otlp-http",otlpEndpoint:this._receiver.baseUrl,sourceName:this._config.sourceName,captureContent:this._config.captureContent}}_buildPassthroughConfig(){return{exporterType:this._config.exporterType,otlpEndpoint:this._config.otlpEndpoint,filePath:this._config.filePath,sourceName:this._config.sourceName,captureContent:this._config.captureContent}}_ensureStarted(){return this._startPromise||(this._startPromise=this._start().catch(e=>{this._logService.error("[agentHost.otel] failed to start loopback OTel pipeline",e),this._receiver=void 0,this._forwarder=void 0})),this._startPromise}async _start(){await jR(ce(this._spansDbPath),{recursive:!0});let e=new Sd(this._spansDbPath);this._register(E(()=>e.close())),this._forwarder=this._buildOutboundForwarder();let n=await jS({onSpans:r=>{for(let o of r.spans)try{e.insertSpan(o)}catch(s){this._logService.warn("[agentHost.otel] failed to insert span",s)}this._forwarder?.forwardSpans?.(r)},onForward:this._forwarder?(r,o)=>{this._forwarder.forwardRaw?.(r,o)}:void 0},this._logService);this._receiver=n,this._register(n),this._forwarder&&this._register(this._forwarder),this._logService.info(`[agentHost.otel] loopback receiver at ${n.baseUrl}, db ${this._spansDbPath}`)}_buildOutboundForwarder(){let e=[];switch(this._config.exporterType){case"otlp-http":case"otlp-grpc":this._config.otlpEndpoint&&e.push(new hd({endpoint:this._config.otlpEndpoint,headers:this._config.headers},this._logService));break;case"file":this._config.filePath&&e.push(new yd({filePath:this._config.filePath},this._logService));break;case"console":e.push(new vd(this._logService));break}if(e.length)return e.length===1?e[0]:new bd(e)}};Uo=R([T(0,V),T(1,lr)],Uo);var Id=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}},YS=class i extends C{constructor(e,n){super();this._send=e;this._handlers=n;this._nextRequestId=1;this._pendingRequests=new Map}static{this.ParseError=-32700}static{this.MethodNotFound=-32601}static{this.InternalError=-32603}sendNotification(e){this._send({jsonrpc:"2.0",...e})}sendRequest(e,n=Fe.None,r){if(this._store.isDisposed)return Promise.reject(new ae);let o=this._nextRequestId++,s=new pe,a=new He;this._pendingRequests.set(o,{promise:s,cts:a});let l=n.onCancellationRequested(()=>{s.isSettled||(this._pendingRequests.delete(o),a.cancel(),r?.(o),s.cancel()),l.dispose()});return this._send({jsonrpc:"2.0",id:o,...e}),s.p.finally(()=>{l.dispose(),this._pendingRequests.delete(o),a.dispose(!0)})}async handleMessage(e){if(Array.isArray(e)){let r=[];for(let o of e){let s=await this._handleMessage(o);s&&r.push(s)}return r}let n=await this._handleMessage(e);return n?[n]:[]}cancelPendingRequest(e){let n=this._pendingRequests.get(e);n&&(this._pendingRequests.delete(e),n.cts.cancel(),n.promise.cancel(),n.cts.dispose(!0))}cancelAllRequests(){for(let[e,n]of this._pendingRequests)this._pendingRequests.delete(e),n.cts.cancel(),n.promise.cancel(),n.cts.dispose(!0)}async _handleMessage(e){if(rm(e)){ke(e,{result:!0})?this._handleResult(e):this._handleError(e);return}if(QR(e))return this._handleRequest(e);YR(e)&&this._handlers.handleNotification?.(e)}_handleResult(e){let n=this._pendingRequests.get(e.id);n&&(this._pendingRequests.delete(e.id),n.promise.complete(e.result),n.cts.dispose(!0))}_handleError(e){if(e.id===void 0)return;let n=this._pendingRequests.get(e.id);n&&(this._pendingRequests.delete(e.id),n.promise.error(new Id(e.error.code,e.error.message,e.error.data)),n.cts.dispose(!0))}async _handleRequest(e){if(!this._handlers.handleRequest){let r={jsonrpc:"2.0",id:e.id,error:{code:i.MethodNotFound,message:`Method not found: ${e.method}`}};return this._send(r),r}let n=new He;this._register(E(()=>n.dispose(!0)));try{let r=this._handlers.handleRequest(e,n.token),o=XR(r)?await r:r,s={jsonrpc:"2.0",id:e.id,result:o};return this._send(s),s}catch(r){let o;return r instanceof Id?o={jsonrpc:"2.0",id:e.id,error:{code:r.code,message:r.message,data:r.data}}:o={jsonrpc:"2.0",id:e.id,error:{code:i.InternalError,message:r instanceof Error?r.message:"Internal error"}},this._send(o),o}finally{n.dispose(!0)}}dispose(){this.cancelAllRequests(),super.dispose()}static createParseError(e,n){return{jsonrpc:"2.0",error:{code:i.ParseError,message:e,data:n}}}};function QR(i){return"method"in i&&"id"in i&&(typeof i.id=="string"||typeof i.id=="number")}function rm(i){return ke(i,{id:!0,result:!0})||ke(i,{id:!0,error:!0})}function YR(i){return ke(i,{method:!0})&&!ke(i,{id:!0})}function XR(i){return typeof i=="object"&&i!==null&&"then"in i&&typeof i.then=="function"}var Vo="0.1.0";function XS(i){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(i);if(!t)throw new Error(`Invalid protocol version: ${i}`);return[Number(t[1]),Number(t[2]),Number(t[3])]}function im(i,t){let[e,n,r]=XS(i),[o,s,a]=XS(t);return e-o||n-s||r-a}var KY={"root/agentsChanged":"0.1.0","root/activeSessionsChanged":"0.1.0","session/ready":"0.1.0","session/creationFailed":"0.1.0","session/turnStarted":"0.1.0","session/delta":"0.1.0","session/responsePart":"0.1.0","session/toolCallStart":"0.1.0","session/toolCallDelta":"0.1.0","session/toolCallReady":"0.1.0","session/toolCallConfirmed":"0.1.0","session/toolCallComplete":"0.1.0","session/toolCallResultConfirmed":"0.1.0","session/toolCallContentChanged":"0.1.0","session/turnComplete":"0.1.0","session/turnCancelled":"0.1.0","session/error":"0.1.0","session/titleChanged":"0.1.0","session/usage":"0.1.0","session/reasoning":"0.1.0","session/modelChanged":"0.1.0","session/serverToolsChanged":"0.1.0","session/activeClientChanged":"0.1.0","session/activeClientToolsChanged":"0.1.0","session/pendingMessageSet":"0.1.0","session/pendingMessageRemoved":"0.1.0","session/queuedMessagesReordered":"0.1.0","session/inputRequested":"0.1.0","session/inputAnswerChanged":"0.1.0","session/inputCompleted":"0.1.0","session/customizationsChanged":"0.1.0","session/customizationToggled":"0.1.0","session/truncated":"0.1.0","session/isReadChanged":"0.1.0","session/isArchivedChanged":"0.1.0","session/activityChanged":"0.1.0","session/diffsChanged":"0.1.0","session/configChanged":"0.1.0","session/metaChanged":"0.1.0","root/terminalsChanged":"0.1.0","root/configChanged":"0.1.0","terminal/data":"0.1.0","terminal/input":"0.1.0","terminal/resized":"0.1.0","terminal/claimed":"0.1.0","terminal/titleChanged":"0.1.0","terminal/cwdChanged":"0.1.0","terminal/exited":"0.1.0","terminal/cleared":"0.1.0","terminal/commandDetectionAvailable":"0.1.0","terminal/commandExecuted":"0.1.0","terminal/commandFinished":"0.1.0"};var GY={"notify/sessionAdded":"0.1.0","notify/sessionRemoved":"0.1.0","notify/sessionSummaryChanged":"0.1.0","notify/authRequired":"0.1.0"};function ZS(i){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(i);if(t)return[Number(t[1]),Number(t[2]),Number(t[3])]}function ZR(i,t){let e=ZS(i),n=ZS(t);return!e||!n||e[0]!==n[0]||e[0]===0&&e[1]!==n[1]?!1:im(i,t)<=0}function eI(i,t){let e;for(let n of i)ZR(n,t)&&(e===void 0||im(n,e)>0)&&(e=n);return e}var om="_vscodeUpgrade";var tI="VSCODE_AGENT_HOST_MANAGEMENT_SOCKET";function _d(){let i=process.env[tI];return i&&i.length>0?i:void 0}async function nI(i=_d()){let t=await import("http");return i?new Promise((e,n)=>{let r=t.request({socketPath:i,method:"POST",path:"/upgrade",headers:{"content-length":"0"}},o=>{let s=[];o.on("data",a=>s.push(a)),o.on("end",()=>{let a=Buffer.concat(s).toString("utf8"),l=o.statusCode??0,c;try{c=a?JSON.parse(a):void 0}catch{}if(l>=200&&l<300&&c&&c.ok!==!1)e(c);else{let u=c?.error||a||`HTTP ${l}`;n(new Error(`Agent host upgrade request failed: ${u}`))}}),o.on("error",n)});r.once("error",n),r.end()}):Promise.reject(new Error(`Cannot request upgrade: ${tI} is not set.`))}var eE=1e3,tE=3e4;function Wo(i,t){return{jsonrpc:"2.0",id:i,result:t}}function Td(i,t,e,n){return{jsonrpc:"2.0",id:i,error:{code:t,message:e,...n!==void 0?{data:n}:{}}}}function $o(i,t){if(t instanceof W)return Td(i,t.code,t.message,t.data);let e=t instanceof Error?t.stack??t.message:String(t);return Td(i,Bi,e)}var ti=class extends C{constructor(e,n,r,o,s,a){super();this._agentService=e;this._stateManager=n;this._server=r;this._config=o;this._clientFileSystemProvider=s;this._logService=a;this._clients=new Map;this._replayBuffer=[];this._clientToolCallDisconnectTimeouts=new Map;this._onDidChangeConnectionCount=this._register(new x);this.onDidChangeConnectionCount=this._onDidChangeConnectionCount.event;this._requestHandlers={subscribe:async(e,n)=>{try{let r=await this._agentService.subscribe(y.parse(n.resource),e.clientId);return e.subscriptions.add(n.resource),this._clearClientToolCallDisconnectTimeout(e.clientId,n.resource),{snapshot:r}}catch(r){throw r instanceof W?r:new W(or,`Resource not found: ${n.resource}`)}},createSession:async(e,n)=>{let r,o;if(n.fork){let s=this._stateManager.getSessionState(n.fork.session);if(!s)throw new W(or,`Fork source session not found: ${n.fork.session}`);let a=s.turns.findIndex(l=>l.id===n.fork.turnId);if(a<0)throw new W(or,`Fork turn ID ${n.fork.turnId} not found in session ${n.fork.session}`);o={session:y.parse(n.fork.session),turnIndex:a,turnId:n.fork.turnId}}if(n.activeClient&&n.activeClient.clientId!==e.clientId)throw new W(Fn.InvalidParams,"createSession.activeClient.clientId must match the connection's clientId");try{r=await this._agentService.createSession({provider:n.provider,model:n.model,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,session:y.parse(n.session),fork:o,config:n.config,activeClient:n.activeClient})}catch(s){throw s instanceof W?s:new W(cy,s instanceof Error?s.message:String(s))}return r.toString()!==y.parse(n.session).toString()&&this._logService.warn(`[ProtocolServer] createSession: provider returned URI ${r.toString()} but client requested ${n.session}`),null},disposeSession:async(e,n)=>(await this._agentService.disposeSession(y.parse(n.session)),null),resourceWrite:async(e,n)=>this._agentService.resourceWrite(n),listSessions:async()=>({items:(await this._agentService.listSessions()).map(r=>{let o=j.provider(r.session);if(!o)throw new Error(`Agent session URI has no provider scheme: ${r.session.toString()}`);let s=r.status??1;return r.isRead&&(s|=32),r.isArchived&&(s|=64),{resource:r.session.toString(),provider:o,title:r.summary??"Session",status:s,activity:r.activity,createdAt:r.startTime,modifiedAt:r.modifiedTime,...r.project?{project:{uri:r.project.uri.toString(),displayName:r.project.displayName}}:{},model:r.model,workingDirectory:r.workingDirectory?.toString(),diffs:r.diffs?[...r.diffs]:void 0}})}),resolveSessionConfig:async(e,n)=>this._agentService.resolveSessionConfig({provider:n.provider,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,config:n.config}),sessionConfigCompletions:async(e,n)=>this._agentService.sessionConfigCompletions({provider:n.provider,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,config:n.config,property:n.property,query:n.query}),completions:async(e,n)=>this._agentService.completions(n),fetchTurns:async(e,n)=>{let r=this._stateManager.getSessionState(n.session);if(!r)throw new W(or,`Session not found: ${n.session}`);let o=r.turns,s=Math.min(n.limit??50,100),a=o.length;if(n.before){let c=o.findIndex(u=>u.id===n.before);c!==-1&&(a=c)}let l=Math.max(0,a-s);return{turns:o.slice(l,a),hasMore:l>0}},resourceList:async(e,n)=>this._agentService.resourceList(y.parse(n.uri)),resourceRead:async(e,n)=>this._agentService.resourceRead(y.parse(n.uri)),resourceCopy:async(e,n)=>this._agentService.resourceCopy(n),resourceDelete:async(e,n)=>this._agentService.resourceDelete(n),resourceMove:async(e,n)=>this._agentService.resourceMove(n),resourceRequest:async(e,n)=>({}),authenticate:async(e,n)=>{if(!(await this._agentService.authenticate(n)).authenticated)throw new W(qi,`Authentication failed for resource: ${n.resource}`);return{}},createTerminal:async(e,n)=>(await this._agentService.createTerminal(n),null),disposeTerminal:async(e,n)=>(await this._agentService.disposeTerminal(y.parse(n.terminal)),null)};this._reverseRequestId=0;this._pendingReverseRequests=new Map;this._register(this._server.onConnection(l=>{this._handleNewConnection(l)})),this._register(this._stateManager.onDidEmitEnvelope(l=>{this._replayBuffer.push(l),this._replayBuffer.length>eE&&this._replayBuffer.shift(),this._broadcastAction(l)})),this._register(this._stateManager.onDidEmitNotification(l=>{this._broadcastNotification(l)}))}_handleNewConnection(e){let n=new $,r;n.add(e.onMessage(o=>{if(uy(o)){if(this._logService.trace(`[ProtocolServer] request: method=${o.method} id=${o.id}`),o.method==="ping"){e.send(Wo(o.id,null));return}if(!r&&o.method==="initialize"){try{let s=this._handleInitialize(o.params,e,n);r=s.client,e.send(Wo(o.id,s.response))}catch(s){e.send($o(o.id,s))}return}if(!r&&o.method==="reconnect"){let s;try{let a=this._handleReconnect(o.params,e,n);r=a.client,s=a.responsePromise}catch(a){e.send($o(o.id,a));return}s.then(a=>e.send(Wo(o.id,a)),a=>e.send($o(o.id,a)));return}if(o.method===om){this._handleVscodeUpgrade(o.id,e);return}if(!r)return;this._handleRequest(r,o.method,o.params,o.id)}else if(py(o))switch(this._logService.trace(`[ProtocolServer] notification: method=${o.method}`),o.method){case"unsubscribe":if(r){let s=o.params.resource;r.subscriptions.delete(s)&&this._agentService.unsubscribe(y.parse(s),r.clientId)}break;case"dispatchAction":if(r){this._logService.trace(`[ProtocolServer] dispatchAction: ${JSON.stringify(o.params.action.type)}`);let s=o.params.action;(qr(s)||Ms(s)||s.type==="root/configChanged")&&this._agentService.dispatchAction(s,r.clientId,o.params.clientSeq)}break}else if(rm(o)){let s=this._pendingReverseRequests.get(o.id);s&&(this._pendingReverseRequests.delete(o.id),ke(o,{error:!0})?s.reject(new W(o.error?.code??-32e3,o.error?.message??"Reverse RPC error",o.error?.data)):s.resolve(o.result))}})),n.add(e.onClose(()=>{if(r&&this._clients.get(r.clientId)===r){this._logService.info(`[ProtocolServer] Client disconnected: ${r.clientId}, subscriptions=${r.subscriptions.size}`);for(let o of r.subscriptions)this._agentService.unsubscribe(y.parse(o),r.clientId);r.subscriptions.clear(),this._clients.delete(r.clientId),this._rejectPendingReverseRequests(r.clientId),this._handleClientDisconnected(r.clientId),this._onDidChangeConnectionCount.fire(this._clients.size)}n.dispose()})),n.add(e)}_handleInitialize(e,n,r){let o=Array.isArray(e.protocolVersions)?e.protocolVersions:[];this._logService.info(`[ProtocolServer] Initialize: clientId=${e.clientId}, protocolVersions=[${o.join(", ")}]`);let s=eI(o,Vo);if(!s){let c={supportedVersions:[`^${Vo}`],_meta:_d()?{vscodeUpgradeMethod:om}:void 0};throw new W(dy,`Client offered protocol versions [${o.join(", ")}], none of which are compatible with this server's version ${Vo} (server accepts ^${Vo}).`,c)}let a={clientId:e.clientId,protocolVersion:s,transport:n,subscriptions:new Set,disposables:r};this._clients.set(e.clientId,a),this._onDidChangeConnectionCount.fire(this._clients.size),r.add(this._clientFileSystemProvider.registerAuthority(e.clientId,{resourceList:c=>this._sendReverseRequest(e.clientId,"resourceList",{uri:c.toString()}),resourceRead:c=>this._sendReverseRequest(e.clientId,"resourceRead",{uri:c.toString()}),resourceWrite:c=>this._sendReverseRequest(e.clientId,"resourceWrite",c),resourceDelete:c=>this._sendReverseRequest(e.clientId,"resourceDelete",c),resourceMove:c=>this._sendReverseRequest(e.clientId,"resourceMove",c),resourceRequest:c=>this._sendReverseRequest(e.clientId,"resourceRequest",c)}));let l=[];if(e.initialSubscriptions)for(let c of e.initialSubscriptions){let u=this._stateManager.getSnapshot(c);if(u){l.push(u);let d=c.toString();a.subscriptions.add(d),this._agentService.addSubscriber(y.parse(d),a.clientId),this._clearClientToolCallDisconnectTimeout(e.clientId,d)}}return{client:a,response:{protocolVersion:s,serverSeq:this._stateManager.serverSeq,snapshots:l,defaultDirectory:this._config.defaultDirectory,completionTriggerCharacters:this._config.completionTriggerCharacters}}}_handleVscodeUpgrade(e,n){let r=_d();if(!r){n.send(Td(e,Fn.MethodNotFound,"No upgrade supervisor is available for this agent host."));return}nI(r).then(o=>n.send(Wo(e,o)),o=>{this._logService.warn(`[ProtocolServer] vscodeUpgrade signal failed: ${o instanceof Error?o.message:String(o)}`),n.send($o(e,o))})}_handleReconnect(e,n,r){this._logService.info(`[ProtocolServer] Reconnect: clientId=${e.clientId}, lastSeenSeq=${e.lastSeenServerSeq}`);let o={clientId:e.clientId,protocolVersion:Vo,transport:n,subscriptions:new Set,disposables:r};this._clients.set(e.clientId,o),this._onDidChangeConnectionCount.fire(this._clients.size);let s=this._replayBuffer.length>0?this._replayBuffer[0].serverSeq:this._stateManager.serverSeq,a=e.lastSeenServerSeq>=s,l=this._restoreReconnectSubscriptions(o,e,a);return{client:o,responsePromise:l}}async _restoreReconnectSubscriptions(e,n,r){let o=[],s=await Promise.all(n.subscriptions.map(async a=>{let l=a.toString();try{let c=await this._agentService.subscribe(y.parse(l),e.clientId);return e.subscriptions.add(l),this._clearClientToolCallDisconnectTimeout(e.clientId,l),c}catch(c){this._logService.info(`[ProtocolServer] Reconnect: failed to restore subscription ${l}: ${c instanceof Error?c.message:String(c)}`),o.push(a);return}}));if(r){let a=[];for(let l of this._replayBuffer)l.serverSeq>n.lastSeenServerSeq&&this._isRelevantToClient(e,l)&&a.push(l);return{type:"replay",actions:a,missing:o}}return{type:"snapshot",snapshots:s.filter(a=>a!==void 0)}}_handleClientDisconnected(e){for(let n of this._stateManager.getSessionUris()){let r=this._stateManager.getSessionState(n),o=r?this._hasPendingClientToolCall(r,e):!1;r?.activeClient?.clientId===e&&this._stateManager.dispatchServerAction({type:"session/activeClientChanged",session:n,activeClient:null}),(r?.activeClient?.clientId===e||o)&&this._startClientToolCallDisconnectTimeout(e,n)}}_hasPendingClientToolCall(e,n){let r=e?.activeTurn;return r?r.responseParts.some(o=>o.kind==="toolCall"&&o.toolCall.toolClientId===n&&(o.toolCall.status==="streaming"||o.toolCall.status==="running"||o.toolCall.status==="pending-confirmation")):!1}_hasReplacementActiveClientTool(e,n,r){let o=e.activeClient;return o!==void 0&&o.clientId!==n&&o.tools.some(s=>s.name===r)}_startClientToolCallDisconnectTimeout(e,n){this._clearClientToolCallDisconnectTimeout(e,n);let r=this._clientToolCallDisconnectTimeoutKey(e,n);this._clientToolCallDisconnectTimeouts.set(r,setTimeout(()=>{this._clientToolCallDisconnectTimeouts.delete(r),this._completeDisconnectedClientToolCalls(e,n)},tE))}_clearClientToolCallDisconnectTimeout(e,n){let r=this._clientToolCallDisconnectTimeoutKey(e,n),o=this._clientToolCallDisconnectTimeouts.get(r);o&&(clearTimeout(o),this._clientToolCallDisconnectTimeouts.delete(r))}_clientToolCallDisconnectTimeoutKey(e,n){return`${e}
${n}`}_completeDisconnectedClientToolCalls(e,n){let r=this._stateManager.getSessionState(n),o=r?.activeTurn;if(o)for(let s of o.responseParts){if(s.kind!=="toolCall")continue;let a=s.toolCall;if(a.toolClientId===e&&(a.status==="streaming"||a.status==="running"||a.status==="pending-confirmation")){let l=this._hasReplacementActiveClientTool(r,e,a.toolName);a.status==="streaming"&&this._stateManager.dispatchServerAction({type:"session/toolCallReady",session:n,turnId:o.id,toolCallId:a.toolCallId,invocationMessage:a.invocationMessage??a.displayName,confirmed:"not-needed"}),this._stateManager.dispatchServerAction({type:"session/toolCallComplete",session:n,turnId:o.id,toolCallId:a.toolCallId,result:{success:!1,pastTenseMessage:`${a.displayName} failed`,...l?{content:[{type:"text",text:`The client that was running ${a.displayName} disconnected, but another active client now provides ${a.displayName}. You may try calling the tool again.`}]}:{},error:{message:`Client ${e} disconnected before completing ${a.displayName}`}}})}}}_sendReverseRequest(e,n,r){let o=this._clients.get(e);if(!o)return Promise.reject(new Error(`Client ${e} is not connected`));let s=++this._reverseRequestId;return new Promise((a,l)=>{this._pendingReverseRequests.set(s,{clientId:e,resolve:a,reject:l});let c={jsonrpc:"2.0",id:s,method:n,params:r};o.transport.send(c)})}_rejectPendingReverseRequests(e){for(let[n,r]of this._pendingReverseRequests)r.clientId===e&&(this._pendingReverseRequests.delete(n),r.reject(new Error(`Client ${e} disconnected`)))}_handleRequest(e,n,r,o){let s=this._requestHandlers.hasOwnProperty(n)?this._requestHandlers[n]:void 0;if(s){s(e,r).then(l=>{this._logService.trace(`[ProtocolServer] Request '${n}' id=${o} succeeded`),e.transport.send(Wo(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Request '${n}' failed`,l),e.transport.send($o(o,l))});return}let a=this._handleExtensionRequest(n,r);if(a){a.then(l=>{e.transport.send(Wo(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Extension request '${n}' failed`,l),e.transport.send($o(o,l))});return}e.transport.send(Td(o,Bi,`Unknown method: ${n}`))}_handleExtensionRequest(e,n){if(e==="shutdown")return this._agentService.shutdown()}_broadcastAction(e){this._logService.trace(`[ProtocolServer] Broadcasting action: ${e.action.type}`);let n={jsonrpc:"2.0",method:"action",params:e};for(let r of this._clients.values())this._isRelevantToClient(r,e)&&r.transport.send(n)}_broadcastNotification(e){let n={jsonrpc:"2.0",method:"notification",params:{notification:e}};for(let r of this._clients.values())r.transport.send(n)}_isRelevantToClient(e,n){let r=n.action;return r.type.startsWith("root/")?e.subscriptions.has(Pl):qr(r)?e.subscriptions.has(r.session):Ms(r)?e.subscriptions.has(r.terminal):!1}dispose(){for(let e of this._clients.values())e.disposables.dispose();this._clients.clear();for(let[,e]of this._pendingReverseRequests)e.reject(new Error("ProtocolServerHandler disposed"));this._pendingReverseRequests.clear();for(let e of this._clientToolCallDisconnectTimeouts.values())clearTimeout(e);this._clientToolCallDisconnectTimeouts.clear(),this._replayBuffer.length=0,super.dispose()}};ti=R([T(5,V)],ti);var nE="ahp",rE=75*1024*1024,iE=5,Bo=class extends C{constructor(e,n,r){super();this._options=e;this._fileService=n;this._logService=r;this._currentSize=0;this._segment=0;this._queue=Promise.resolve();this._directory=Q(this._options.logsHome,nE);let o=sE(this._options.connectionId).slice(0,64);this._baseName=`ahp-${oE(new Date)}-${o}.jsonl`,this._maxFileSizeBytes=this._options.maxFileSizeBytes??rE,this._maxFiles=this._options.maxFiles??iE,this._currentFile=Q(this._directory,this._baseName)}get resource(){return this._currentFile}log(e,n,r){let o={...e,_ahpLog:{ts:new Date().toISOString(),dir:n,connectionId:this._options.connectionId,transport:this._options.transport,...typeof r=="number"?{byteLength:r}:{}}},s=`${JSON.stringify(o)}
`,a=P.fromString(s);this._queue=this._queue.then(()=>this._appendLine(a)).catch(l=>{this._logService.error("[AHPLog] Failed to write transport log",l)})}async flush(){await this._queue}async _appendLine(e){this._folderCreated||(this._folderCreated=this._fileService.createFolder(this._directory)),await this._folderCreated,this._currentSize===0&&(this._currentSize=await this._getFileSize(this._currentFile)),this._currentSize>0&&this._currentSize+e.byteLength>this._maxFileSizeBytes&&await this._rotate(),await this._fileService.writeFile(this._currentFile,e,{append:!0}),this._currentSize+=e.byteLength}async _rotate(){this._segment++;let e=this._segment-this._maxFiles;e>=0&&await this._fileService.del(this._resourceForSegment(e)).catch(n=>{this._logService.trace("[AHPLog] Failed to delete old transport log",n)}),this._currentFile=this._resourceForSegment(this._segment),this._currentSize=await this._getFileSize(this._currentFile)}_resourceForSegment(e){if(e===0)return Q(this._directory,this._baseName);let n=this._baseName.slice(0,-6);return Q(this._directory,`${n}.${e}.jsonl`)}async _getFileSize(e){try{return(await this._fileService.resolve(e)).size??0}catch{return 0}}};Bo=R([T(1,We),T(2,V)],Bo);function Cd(i){return P.fromString(i).byteLength}function oE(i){return i.toISOString().replace(/[:.]/g,"-")}function sE(i){return i.replace(/[\\/:\*\?"<>\|\s]+/g,"-").replace(/^-+|-+$/g,"")||"connection"}var sm=class extends C{constructor(e,n,r){super();this._ws=e;this._WebSocket=n;this._ahpLogger=r;this._onMessage=this._register(new x);this.onMessage=this._onMessage.event;this._onClose=this._register(new x);this.onClose=this._onClose.event;this._ahpLogger&&this._register(this._ahpLogger),this._ws.on("message",o=>{try{let s=typeof o=="string"?o:o.toString("utf-8"),a=JSON.parse(s);this._ahpLogger?.log(a,"c2s",Cd(s)),this._onMessage.fire(a)}catch{this.send({jsonrpc:"2.0",id:null,error:{code:ly,message:"Parse error"}})}}),this._ws.on("close",()=>{this._onClose.fire()}),this._ws.on("error",()=>{this._onClose.fire()})}send(e){if(this._ws.readyState===this._WebSocket.OPEN){let n=JSON.stringify(e);this._ahpLogger?.log(e,"s2c",Cd(n)),this._ws.send(n)}}dispose(){this._ws.close(),super.dispose()}},pa=class i extends C{constructor(e,n,r,o,s,a){super();this._logService=n;this._ahpLogOptions=r;this._connectionCount=0;this._onConnection=this._register(new x);this.onConnection=this._onConnection.event;this._WebSocket=o.WebSocket;let l=typeof e=="number"?{port:e}:e,c=l.host??"127.0.0.1",u=l.connectionTokenValidate?(d,f)=>{let h=a.parse(d.req.url??"",!0).query[_u];if(!l.connectionTokenValidate(h)){this._logService.warn("[WebSocketProtocol] Connection rejected: invalid connection token"),f(!1,403,"Forbidden");return}f(!0)}:void 0;if(l.socketPath){this._httpServer=s.createServer(),this._wss=new o.WebSocketServer({server:this._httpServer,verifyClient:u});let d=this._httpServer;this.whenListening=new Promise((f,g)=>{d.once("listening",()=>{this._logService.info(`[WebSocketProtocol] Server listening on socket ${l.socketPath}`),f()}),d.once("error",g)}),this._httpServer.listen(l.socketPath)}else{this._wss=new o.WebSocketServer({port:l.port,host:c,verifyClient:u});let d=this._wss;this.whenListening=new Promise((f,g)=>{d.once("listening",()=>{let h=d.address(),v=!h||typeof h=="string"?`${c}:${l.port}`:`${h.address}:${h.port}`;this._logService.info(`[WebSocketProtocol] Server listening on ${v}`),f()}),d.once("error",g)})}this._wss.on("connection",d=>{this._logService.trace("[WebSocketProtocol] New client connection");let f=new sm(d,this._WebSocket,this._createAhpLogger());this._onConnection.fire(f)}),this._wss.on("error",d=>{this._logService.error("[WebSocketProtocol] Server error",d)})}get address(){let e=this._wss.address();return!e||typeof e=="string"?e??void 0:`${e.address}:${e.port}`}get boundPort(){let e=this._wss.address();if(!(!e||typeof e=="string"))return e.port}static async create(e,n,r){let[o,s,a]=await Promise.all([import("ws"),import("http"),import("url")]);return new i(e,n,r,o,s,a)}_createAhpLogger(){if(this._ahpLogOptions)return this._ahpLogOptions.instantiationService.createInstance(Bo,{logsHome:this._ahpLogOptions.logsHome,connectionId:`agent-host-${++this._connectionCount}-${H()}`,transport:"websocket"})}dispose(){this._wss.close(),this._httpServer?.close(),super.dispose()}};import{homedir as fE,tmpdir as mE}from"os";var rI=/^([^.]+\..+)[:=](.+)$/,ie=class{constructor(t,e,n){this._args=t;this.paths=e;this.productService=n}get appRoot(){return ce(it.asFileUri("").fsPath)}get userHome(){return y.file(this.paths.homeDir)}get userDataPath(){return this.paths.userDataDir}get appSettingsHome(){return y.file(B(this.userDataPath,"User"))}get tmpDir(){return y.file(this.paths.tmpDir)}get cacheHome(){return y.file(this.userDataPath)}get stateResource(){return Q(this.appSettingsHome,"globalStorage","storage.json")}get userRoamingDataHome(){return this.appSettingsHome.with({scheme:te.vscodeUserData})}get userDataSyncHome(){return Q(this.appSettingsHome,"sync")}get logsHome(){if(!this.args.logsPath){let t=eb(new Date).replace(/-|:|\.\d+Z$/g,"");this.args.logsPath=B(this.userDataPath,"logs",t)}return y.file(this.args.logsPath)}get sync(){return this.args.sync}get workspaceStorageHome(){return Q(this.appSettingsHome,"workspaceStorage")}get localHistoryHome(){return Q(this.appSettingsHome,"History")}get keyboardLayoutResource(){return Q(this.userRoamingDataHome,"keyboardLayout.json")}get argvResource(){let t=Ne.VSCODE_PORTABLE;return t?y.file(B(t,"argv.json")):Q(this.userHome,this.productService.dataFolderName,"argv.json")}get isExtensionDevelopment(){return!!this.args.extensionDevelopmentPath}get untitledWorkspacesHome(){return y.file(B(this.userDataPath,"Workspaces"))}get builtinExtensionsPath(){let t=this.args["builtin-extensions-dir"];return t?In(t):Dt(B(it.asFileUri("").fsPath,"..","extensions"))}get extensionsDownloadLocation(){let t=this.args["extensions-download-dir"];return t?y.file(In(t)):y.file(B(this.userDataPath,"CachedExtensionVSIXs"))}get extensionsPath(){let t=this.args["extensions-dir"];if(t)return In(t);let e=Ne.VSCODE_EXTENSIONS;if(e)return e;let n=Ne.VSCODE_PORTABLE;return n?B(n,"extensions"):Q(this.userHome,this.productService.dataFolderName,"extensions").fsPath}get appSharedDataHome(){let t=this.args["shared-data-dir"];if(t)return y.file(In(t));let e=Ne.VSCODE_PORTABLE;return e?y.file(B(e,"shared-data")):Q(this.userHome,this.productService.sharedDataFolderName)}get extensionDevelopmentLocationURI(){let t=this.args.extensionDevelopmentPath;if(Array.isArray(t))return t.map(e=>/^[^:/?#]+?:\/\//.test(e)?y.parse(e):y.file(Dt(e)))}get extensionDevelopmentKind(){return this.args.extensionDevelopmentKind?.map(t=>t==="ui"||t==="workspace"||t==="web"?t:"workspace")}get extensionTestsLocationURI(){let t=this.args.extensionTestsPath;if(t)return/^[^:/?#]+?:\/\//.test(t)?y.parse(t):y.file(Dt(t))}get disableExtensions(){if(this.args["disable-extensions"])return!0;let t=this.args["disable-extension"];if(t){if(typeof t=="string")return[t];if(Array.isArray(t)&&t.length>0)return t}return!1}get skipBuiltinExtensions(){let t=Ne.VSCODE_SKIP_BUILTIN_EXTENSIONS;return t?t.split(",").map(e=>e.trim()).filter(e=>e):[]}get debugExtensionHost(){return aE(this.args,this.isBuilt)}get debugRenderer(){return!!this.args.debugRenderer}get isBuilt(){return!Ne.VSCODE_DEV}get verbose(){return!!this.args.verbose}get logLevel(){return this.args.log?.find(t=>!rI.test(t))}get extensionLogLevel(){let t=[];for(let e of this.args.log||[]){let n=rI.exec(e);n?.[1]&&n[2]&&t.push([n[1],n[2]])}return t.length?t:void 0}get serviceMachineIdResource(){return Q(y.file(this.userDataPath),"machineid")}get crashReporterId(){return this.args["crash-reporter-id"]}get crashReporterDirectory(){return this.args["crash-reporter-directory"]}get disableTelemetry(){return!!this.args["disable-telemetry"]}get disableExperiments(){return!!this.args["disable-experiments"]}get disableWorkspaceTrust(){return!!this.args["disable-workspace-trust"]}get useInMemorySecretStorage(){return!!this.args["use-inmemory-secretstorage"]}get policyFile(){if(this.args["__enable-file-policy"]){let t=Ne.VSCODE_PORTABLE;return t?y.file(B(t,"policy.json")):Q(this.userHome,this.productService.dataFolderName,"policy.json")}}get agentSessionsWorkspace(){return Q(this.appSettingsHome,"agent-sessions.code-workspace")}get editSessionId(){return this.args.editSessionId}get exportPolicyData(){return this.args["export-policy-data"]}get exportDefaultKeybindings(){return this.args["export-default-keybindings"]}get continueOn(){return this.args.continueOn}set continueOn(t){this.args.continueOn=t}get args(){return this._args}};R([oe],ie.prototype,"appRoot",1),R([oe],ie.prototype,"userHome",1),R([oe],ie.prototype,"userDataPath",1),R([oe],ie.prototype,"appSettingsHome",1),R([oe],ie.prototype,"tmpDir",1),R([oe],ie.prototype,"cacheHome",1),R([oe],ie.prototype,"stateResource",1),R([oe],ie.prototype,"userRoamingDataHome",1),R([oe],ie.prototype,"userDataSyncHome",1),R([oe],ie.prototype,"sync",1),R([oe],ie.prototype,"workspaceStorageHome",1),R([oe],ie.prototype,"localHistoryHome",1),R([oe],ie.prototype,"keyboardLayoutResource",1),R([oe],ie.prototype,"argvResource",1),R([oe],ie.prototype,"isExtensionDevelopment",1),R([oe],ie.prototype,"untitledWorkspacesHome",1),R([oe],ie.prototype,"builtinExtensionsPath",1),R([oe],ie.prototype,"extensionsDownloadLocation",1),R([oe],ie.prototype,"extensionsPath",1),R([oe],ie.prototype,"appSharedDataHome",1),R([oe],ie.prototype,"extensionDevelopmentLocationURI",1),R([oe],ie.prototype,"extensionDevelopmentKind",1),R([oe],ie.prototype,"extensionTestsLocationURI",1),R([oe],ie.prototype,"debugExtensionHost",1),R([oe],ie.prototype,"logLevel",1),R([oe],ie.prototype,"extensionLogLevel",1),R([oe],ie.prototype,"serviceMachineIdResource",1),R([oe],ie.prototype,"disableTelemetry",1),R([oe],ie.prototype,"disableExperiments",1),R([oe],ie.prototype,"disableWorkspaceTrust",1),R([oe],ie.prototype,"useInMemorySecretStorage",1),R([oe],ie.prototype,"policyFile",1),R([oe],ie.prototype,"agentSessionsWorkspace",1);function aE(i,t){return iI(i["inspect-extensions"],i["inspect-brk-extensions"],5870,t,i.debugId,i.extensionEnvironment)}function iI(i,t,e,n,r,o){let a=Number(t||i)||(n?null:e),l=a?!!t:!1,c;if(o)try{c=JSON.parse(o)}catch{}return{port:a,break:l,debugId:r,env:c}}import{homedir as oI}from"os";import{resolve as lE,isAbsolute as cE,join as qo}from"path";var dE=process.env.VSCODE_CWD||process.cwd();function sI(i,t){let e=uE(i,t),n=[e];return cE(e)||n.unshift(dE),lE(...n)}function uE(i,t){process.env.VSCODE_DEV&&(t="code-oss-dev");let e=process.env.VSCODE_PORTABLE;if(e)return qo(e,"user-data");let n=process.env.VSCODE_APPDATA;if(n)return qo(n,t);let r=i["user-data-dir"];return r||pE(t)}function pE(i){let t;switch(process.platform){case"win32":if(t=process.env.APPDATA,!t){let e=process.env.USERPROFILE;if(typeof e!="string")throw new Error("Windows: Unexpected undefined %USERPROFILE% environment variable");t=qo(e,"AppData","Roaming")}break;case"darwin":t=qo(oI(),"Library","Application Support");break;case"linux":t=process.env.XDG_CONFIG_HOME||qo(oI(),".config");break;default:throw new Error("Platform not supported")}return qo(t,i)}var xd=class extends ie{constructor(t,e){let n=fE();super(t,{homeDir:n,tmpDir:mE(),userDataDir:sI(t,e.nameShort)},e)}};import gE from"minimist";var ZX={o:m(2174,null),e:m(2158,null),t:m(2188,null),m:m(2169,null)};var aI={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:m(2178,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:m(2146,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:m(2141,null)},maximize:{type:"boolean",cat:"o",description:m(2145,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2181,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2172,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2177,null)},help:{type:"boolean",alias:"h",description:m(2160,null)}}},"serve-web":{type:"subcommand",description:"Run a server that displays the editor UI in browsers.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2147,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},agent:{type:"subcommand",description:"Start and interact with AI agent hosts.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2147,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},tunnel:{type:"subcommand",description:"Make the current machine accessible from vscode.dev or other machines through a secure tunnel.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2147,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"},user:{type:"subcommand",options:{login:{type:"subcommand",options:{provider:{type:"string"},"access-token":{type:"string"}}}}}}},diff:{type:"boolean",cat:"o",alias:"d",args:["file","file"],description:m(2150,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:m(2170,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:m(2140,null)},remove:{type:"boolean",cat:"o",args:"folder",description:m(2179,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:m(2159,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2171,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2180,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:m(2143,null)},wait:{type:"boolean",cat:"o",alias:"w",description:m(2198,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:m(2166,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:m(2195,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2177,null)},help:{type:"boolean",cat:"o",alias:"h",description:m(2160,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:m(2157,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:m(2165,null)},"agent-plugins-dir":{type:"string"},"agents-user-data-dir":{type:"string"},"agents-extensions-dir":{type:"string"},"show-versions":{type:"boolean",cat:"e",description:m(2182,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:m(2144,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:m(2164,null)},"pre-release":{type:"boolean",cat:"e",description:m(2163,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:m(2190,null)},"update-extensions":{type:"boolean",cat:"e",description:m(2193,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:m(2156,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:m(2142,null)},version:{type:"boolean",cat:"t",alias:"v",description:m(2197,null)},verbose:{type:"boolean",cat:"t",global:!0,description:m(2196,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:m(2168,null)},status:{type:"boolean",alias:"s",cat:"t",description:m(2183,null)},"prof-startup":{type:"boolean",cat:"t",description:m(2176,null)},"prof-append-timers":{type:"string"},"prof-duration-markers":{type:"string[]"},"prof-duration-markers-file":{type:"string"},"no-cached-data":{type:"boolean"},"prof-startup-prefix":{type:"string"},"prof-v8-extensions":{type:"boolean"},"disable-extensions":{type:"boolean",deprecates:["disableExtensions"],cat:"t",description:m(2153,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:m(2152,null)},sync:{type:"string",cat:"t",description:m(2189,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:m(2162,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:m(2161,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:m(2155,null)},"disable-gpu":{type:"boolean",cat:"t",description:m(2154,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:m(2151,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:m(2167,null)},telemetry:{type:"boolean",cat:"t",description:m(2186,null)},remote:{type:"string",allowEmptyValue:!0},"folder-uri":{type:"string[]",cat:"o",args:"uri"},"file-uri":{type:"string[]",cat:"o",args:"uri"},"locate-extension":{type:"string[]"},extensionDevelopmentPath:{type:"string[]"},extensionDevelopmentKind:{type:"string[]"},extensionTestsPath:{type:"string"},extensionEnvironment:{type:"string"},debugId:{type:"string"},debugRenderer:{type:"boolean"},"inspect-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-brk-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-agenthost":{type:"string",allowEmptyValue:!0},"inspect-brk-agenthost":{type:"string",allowEmptyValue:!0},"inspect-sharedprocess":{type:"string",allowEmptyValue:!0},"inspect-brk-sharedprocess":{type:"string",allowEmptyValue:!0},"export-default-configuration":{type:"string"},"export-policy-data":{type:"string",allowEmptyValue:!0},"export-default-keybindings":{type:"string",allowEmptyValue:!0},"install-source":{type:"string"},"enable-smoke-test-driver":{type:"boolean"},"skip-sessions-welcome":{type:"boolean"},logExtensionHostCommunication:{type:"boolean"},"skip-release-notes":{type:"boolean"},"skip-welcome":{type:"boolean"},"disable-telemetry":{type:"boolean"},"disable-updates":{type:"boolean"},"share-secrets-with-agents-app":{type:"boolean"},transient:{type:"boolean",cat:"t",description:m(2187,null)},"use-inmemory-secretstorage":{type:"boolean",deprecates:["disable-keytar"]},"password-store":{type:"string"},"disable-workspace-trust":{type:"boolean"},"disable-crash-reporter":{type:"boolean"},"crash-reporter-directory":{type:"string"},"crash-reporter-id":{type:"string"},"skip-add-to-recently-opened":{type:"boolean"},"open-url":{type:"boolean"},"file-write":{type:"boolean"},"file-chmod":{type:"boolean"},"install-builtin-extension":{type:"string[]"},force:{type:"boolean"},"do-not-sync":{type:"boolean"},"do-not-include-pack-dependencies":{type:"boolean"},trace:{type:"boolean"},"trace-memory-infra":{type:"boolean"},"trace-category-filter":{type:"string"},"trace-options":{type:"string"},"preserve-env":{type:"boolean"},"force-user-env":{type:"boolean"},"force-disable-user-env":{type:"boolean"},"open-devtools":{type:"boolean"},"disable-gpu-sandbox":{type:"boolean"},logsPath:{type:"string"},"__enable-file-policy":{type:"boolean"},editSessionId:{type:"string"},continueOn:{type:"string"},"enable-coi":{type:"boolean"},"unresponsive-sample-interval":{type:"string"},"unresponsive-sample-period":{type:"string"},"enable-rdp-display-tracking":{type:"boolean"},"disable-layout-restore":{type:"boolean"},"disable-experiments":{type:"boolean"},"no-proxy-server":{type:"boolean"},"no-sandbox":{type:"boolean",alias:"sandbox"},"proxy-server":{type:"string"},"proxy-bypass-list":{type:"string"},"proxy-pac-url":{type:"string"},"js-flags":{type:"string"},inspect:{type:"string",allowEmptyValue:!0},"inspect-brk":{type:"string",allowEmptyValue:!0},nolazy:{type:"boolean"},"force-device-scale-factor":{type:"string"},"force-renderer-accessibility":{type:"boolean"},"ignore-certificate-errors":{type:"boolean"},"allow-insecure-localhost":{type:"boolean"},"log-net-log":{type:"string"},vmodule:{type:"string"},_urls:{type:"string[]"},"disable-dev-shm-usage":{type:"boolean"},"profile-temp":{type:"boolean"},"ozone-platform":{type:"string"},"enable-tracing":{type:"string"},"trace-startup-format":{type:"string"},"trace-startup-file":{type:"string"},"trace-startup-duration":{type:"string"},"xdg-portal-required-version":{type:"string"},_:{type:"string[]"}},hE={onUnknownOption:()=>{},onMultipleValues:()=>{},onEmptyValue:()=>{},onDeprecatedOption:()=>{}};function am(i,t,e=hE){let n=i.find((f,g)=>f.length>0&&f[0]!=="-"&&t.hasOwnProperty(f)&&t[f].type==="subcommand"),r={},o=["_"],s=[],a={},l;for(let f in t){let g=t[f];g.type==="subcommand"?f===n&&(l=g):(g.alias&&(r[f]=g.alias),g.type==="string"||g.type==="string[]"?(o.push(f),g.deprecates&&o.push(...g.deprecates)):g.type==="boolean"&&(s.push(f),g.deprecates&&s.push(...g.deprecates)),g.global&&(a[f]=g))}if(l&&n){let f=a;for(let S in l.options)f[S]=l.options[S];let g=i.filter(S=>S!==n),h=e.getSubcommandReporter?e.getSubcommandReporter(n):void 0,v=am(g,f,h);return{[n]:v,_:[]}}let c=gE(i,{string:o,boolean:s,alias:r}),u={},d=c;u._=c._.map(f=>String(f)).filter(f=>f.length>0),delete d._;for(let f in t){let g=t[f];if(g.type==="subcommand")continue;g.alias&&delete d[g.alias];let h=d[f];if(g.deprecates)for(let v of g.deprecates)d.hasOwnProperty(v)&&(h||(h=d[v],h&&e.onDeprecatedOption(v,g.deprecationMessage||m(2149,null,f))),delete d[v]);if(typeof h<"u"){if(g.type==="string[]"){if(Array.isArray(h)||(h=[h]),!g.allowEmptyValue){let v=h.filter(S=>S.length>0);v.length!==h.length&&(e.onEmptyValue(f),h=v.length>0?v:void 0)}}else g.type==="string"&&(Array.isArray(h)?(h=h.pop(),e.onMultipleValues(f,h)):!h&&!g.allowEmptyValue&&(e.onEmptyValue(f),h=void 0));u[f]=h,g.deprecationMessage&&e.onDeprecatedOption(f,g.deprecationMessage)}delete d[f]}for(let f in d)e.onUnknownOption(f);return u}var wd=class extends C{constructor(t,e=[]){super(),this.logger=new xl([t,...e]),this._register(t.onDidChangeLogLevel(n=>this.setLevel(n)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(t){this.logger.setLevel(t)}getLevel(){return this.logger.getLevel()}trace(t,...e){this.logger.trace(t,...e)}debug(t,...e){this.logger.debug(t,...e)}info(t,...e){this.logger.info(t,...e)}warn(t,...e){this.logger.warn(t,...e)}error(t,...e){this.logger.error(t,...e)}flush(){this.logger.flush()}};async function yE(i,t,e,n,r){try{let o=await import("@vscode/spdlog");o.setFlushOn(0);let s=await o.createAsyncRotatingLogger(i,t,e,n);return r?s.clearFormatters():s.setPattern("%Y-%m-%d %H:%M:%S.%e [%l] %v"),s}catch(o){console.error(o)}return null}function lI(i,t,e){switch(t){case 1:i.trace(e);break;case 2:i.debug(e);break;case 3:i.info(e);break;case 4:i.warn(e);break;case 5:i.error(e);break;case 0:break;default:throw new Error(`Invalid log level ${t}`)}}function cI(i,t){switch(t){case 1:i.setLevel(0);break;case 2:i.setLevel(1);break;case 3:i.setLevel(2);break;case 4:i.setLevel(3);break;case 5:i.setLevel(4);break;case 0:i.setLevel(6);break;default:throw new Error(`Invalid log level ${t}`)}}var Rd=class extends Ds{constructor(e,n,r,o,s){super();this.buffer=[];this.setLevel(s),this._loggerCreationPromise=this._createSpdLogLogger(e,n,r,o),this._register(this.onDidChangeLogLevel(a=>{this._logger&&cI(this._logger,a)}))}async _createSpdLogLogger(e,n,r,o){let s=r?6:1,a=30/s*ml.MB,l=await yE(e,n,a,s,o);if(l){this._logger=l,cI(this._logger,this.getLevel());for(let{level:c,message:u}of this.buffer)lI(this._logger,c,u);this.buffer=[]}}log(e,n){this._logger?lI(this._logger,e,n):this.getLevel()<=e&&this.buffer.push({level:e,message:n})}flush(){this._logger?this.flushLogger():this._loggerCreationPromise.then(()=>this.flushLogger())}dispose(){this._logger?this.disposeLogger():this._loggerCreationPromise.then(()=>this.disposeLogger()),super.dispose()}flushLogger(){this._logger&&this._logger.flush()}disposeLogger(){this._logger&&(this._logger.drop(),this._logger=void 0)}};var Ed=class extends Os{doCreateLogger(t,e,n){return new Rd(H(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e)}};var Pd=class{constructor(t,e){this.loggerService=t;this.getUriTransformer=e}listen(t,e){let n=this.getUriTransformer(t);switch(e){case"onDidChangeLoggers":return X.map(this.loggerService.onDidChangeLoggers,r=>({added:[...r.added].map(o=>this.transformLogger(o,n)),removed:[...r.removed].map(o=>this.transformLogger(o,n))}));case"onDidChangeVisibility":return X.map(this.loggerService.onDidChangeVisibility,r=>[n.transformOutgoingURI(r[0]),r[1]]);case"onDidChangeLogLevel":return X.map(this.loggerService.onDidChangeLogLevel,r=>fp(r)?r:[n.transformOutgoingURI(r[0]),r[1]])}throw new Error(`Event not found: ${e}`)}async call(t,e,n){let r=this.getUriTransformer(t);switch(e){case"setLogLevel":return fp(n[0])?this.loggerService.setLogLevel(n[0]):this.loggerService.setLogLevel(y.revive(r.transformIncoming(n[0][0])),n[0][1]);case"getRegisteredLoggers":return Promise.resolve([...this.loggerService.getRegisteredLoggers()].map(o=>this.transformLogger(o,r)))}throw new Error(`Call not found: ${e}`)}transformLogger(t,e){return{...t,resource:e.transformOutgoingURI(t.resource)}}};var dI=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};function lm(i){let t=[];typeof i=="number"&&t.push("code/timeOrigin",i);function e(o,s){t.push(o,s?.startTime??Date.now())}function n(){let o=[];for(let s=0;s<t.length;s+=2)o.push({name:t[s],startTime:t[s+1]});return o}function r(o){if(typeof o>"u"){let s=t.length>=2&&t[0]==="code/timeOrigin",a=s?t[1]:void 0;t.length=0,s&&t.push("code/timeOrigin",a)}else for(let s=t.length-2;s>=0;s-=2)t[s]===o&&t.splice(s,2)}return{mark:e,getMarks:n,clearMarks:r}}function vE(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?lm():{mark(i,t){performance.mark(i,t)},clearMarks(i){performance.clearMarks(i)},getMarks(){let i=performance.timeOrigin;typeof i!="number"&&(i=(performance.timing.navigationStart||performance.timing.redirectStart||performance.timing.fetchStart)??0);let t=[{name:"code/timeOrigin",startTime:Math.round(i)}];for(let e of performance.getEntriesByType("mark"))t.push({name:e.name,startTime:Math.round(i+e.startTime)});return t}};if(typeof process=="object"){let i=performance?.timeOrigin;return lm(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),lm()}function bE(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=vE()),i.MonacoPerformanceMarks}var cm=bE(globalThis),uI=cm.mark,FZ=cm.clearMarks,UZ=cm.getMarks;async function kd(i,t,e,n,r,o){let s;try{await SE(i,t,e,n,r,o)}catch(a){s=a}finally{s&&r.errorTransformer&&(s=r.errorTransformer(s)),typeof s<"u"&&e.error(s),e.end()}}async function SE(i,t,e,n,r,o){dm(o);let s=await i.open(t,{create:!1});try{dm(o);let a=0,l=0,c=r&&typeof r.length=="number"?r.length:void 0,u=P.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),d=r&&typeof r.position=="number"?r.position:0,f=0;do l=await i.read(s,d,u.buffer,f,u.byteLength-f),d+=l,f+=l,a+=l,typeof c=="number"&&(c-=l),f===u.byteLength&&(await e.write(n(u)),u=P.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),f=0);while(l>0&&(typeof c!="number"||c>0)&&dm(o)&&IE(a,r));if(f>0){let g=f;typeof c=="number"&&(g=Math.min(f,c)),e.write(n(u.slice(0,g)))}}catch(a){throw Ln(a)}finally{await i.close(s)}}function dm(i){if(i.isCancellationRequested)throw ya();return!0}function IE(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw le(m(2354,null),"EntryTooLarge");return!0}var Ir=class extends C{constructor(e){super();this.logService=e;this.BUFFER_SIZE=256*1024;this._onDidChangeFileSystemProviderRegistrations=this._register(new x);this.onDidChangeFileSystemProviderRegistrations=this._onDidChangeFileSystemProviderRegistrations.event;this._onWillActivateFileSystemProvider=this._register(new x);this.onWillActivateFileSystemProvider=this._onWillActivateFileSystemProvider.event;this._onDidChangeFileSystemProviderCapabilities=this._register(new x);this.onDidChangeFileSystemProviderCapabilities=this._onDidChangeFileSystemProviderCapabilities.event;this.provider=new Map;this._onDidRunOperation=this._register(new x);this.onDidRunOperation=this._onDidRunOperation.event;this.internalOnDidFilesChange=this._register(new x);this._onDidUncorrelatedFilesChange=this._register(new x);this.onDidFilesChange=this._onDidUncorrelatedFilesChange.event;this._onDidWatchError=this._register(new x);this.onDidWatchError=this._onDidWatchError.event;this.activeWatchers=new Map;this.writeQueue=this._register(new bi)}registerProvider(e,n){if(this.provider.has(e))throw new Error(`A filesystem provider for the scheme '${e}' is already registered.`);uI(`code/registerFilesystem/${e}`);let r=new $;return this.provider.set(e,n),this._onDidChangeFileSystemProviderRegistrations.fire({added:!0,scheme:e,provider:n}),r.add(n.onDidChangeFile(o=>{let s=new fl(o,!this.isPathCaseSensitive(n));this.internalOnDidFilesChange.fire(s),s.hasCorrelation()||this._onDidUncorrelatedFilesChange.fire(s)})),typeof n.onDidWatchError=="function"&&r.add(n.onDidWatchError(o=>this._onDidWatchError.fire(new Error(o)))),r.add(n.onDidChangeCapabilities(()=>this._onDidChangeFileSystemProviderCapabilities.fire({provider:n,scheme:e}))),E(()=>{this._onDidChangeFileSystemProviderRegistrations.fire({added:!1,scheme:e,provider:n}),this.provider.delete(e),rt(r)})}getProvider(e){return this.provider.get(e)}async activateProvider(e){let n=[];this._onWillActivateFileSystemProvider.fire({scheme:e,join(r){n.push(r)}}),!this.provider.has(e)&&await Or.settled(n)}async canHandleResource(e){return await this.activateProvider(e.scheme),this.hasProvider(e)}hasProvider(e){return this.provider.has(e.scheme)}hasCapability(e,n){let r=this.provider.get(e.scheme);return!!(r&&r.capabilities&n)}listCapabilities(){return ai.map(this.provider,([e,n])=>({scheme:e,capabilities:n.capabilities}))}async withProvider(e){if(!Ug(e))throw new ze(m(2343,null,this.resourceForError(e)),8);await this.activateProvider(e.scheme);let n=this.provider.get(e.scheme);if(!n){let r=new Xt;throw r.message=m(2345,null,e.toString()),r}return n}async withReadProvider(e){let n=await this.withProvider(e);if(On(n)||wt(n)||gl(n))return n;throw new Error(`Filesystem provider for scheme '${e.scheme}' neither has FileReadWrite, FileReadStream nor FileOpenReadWriteClose capability which is needed for the read operation.`)}async withWriteProvider(e){let n=await this.withProvider(e);if(On(n)||wt(n))return n;throw new Error(`Filesystem provider for scheme '${e.scheme}' neither has FileReadWrite nor FileOpenReadWriteClose capability which is needed for the write operation.`)}async resolve(e,n){try{return await this.doResolveFile(e,n)}catch(r){throw on(r)==="EntryNotFound"?new ze(m(2340,null,this.resourceForError(e)),1):Ln(r)}}async doResolveFile(e,n){let r=await this.withProvider(e),o=this.isPathCaseSensitive(r),s=n?.resolveTo,a=n?.resolveSingleChildDescendants,l=n?.resolveMetadata,c=await r.stat(e),u;return this.toFileStat(r,e,c,void 0,!!l,(d,f)=>(u||(u=rn.forUris(()=>!o),u.set(e,!0),s&&u.fill(!0,s)),u.get(d.resource)||u.findSuperstr(d.resource.with({query:null,fragment:null}))?!0:d.isDirectory&&a?f===1:!1))}async toFileStat(e,n,r,o,s,a){let{providerExtUri:l}=this.getExtUri(e),c={resource:n,name:l.basename(n),isFile:(r.type&1)!==0,isDirectory:(r.type&2)!==0,isSymbolicLink:(r.type&64)!==0,mtime:r.mtime,ctime:r.ctime,size:r.size,readonly:!!((r.permissions??0)&1)||!!(e.capabilities&2048),locked:!!((r.permissions??0)&2),executable:!!((r.permissions??0)&4),etag:op({mtime:r.mtime,size:r.size}),children:void 0};if(c.isDirectory&&a(c,o)){try{let u=await e.readdir(n),d=await Or.settled(u.map(async([f,g])=>{try{let h=l.joinPath(n,f),v=s?await e.stat(h):{type:g};return await this.toFileStat(e,h,v,u.length,s,a)}catch(h){return this.logService.trace(h),null}}));c.children=ri(d)}catch(u){this.logService.trace(u),c.children=[]}return c}return c}async resolveAll(e){return Or.settled(e.map(async n=>{try{return{stat:await this.doResolveFile(n.resource,n.options),success:!0}}catch(r){return this.logService.trace(r),{stat:void 0,success:!1}}}))}async stat(e){let n=await this.withProvider(e),r=await n.stat(e);return this.toFileStat(n,e,r,void 0,!0,()=>!1)}async realpath(e){let n=await this.withProvider(e);if(zh(n)){let r=await n.realpath(e);return e.with({path:r})}}async exists(e){let n=await this.withProvider(e);try{return!!await n.stat(e)}catch{return!1}}async canCreateFile(e,n){try{await this.doValidateCreateFile(e,n)}catch(r){return r}return!0}async doValidateCreateFile(e,n){if(!n?.overwrite&&await this.exists(e))throw new ze(m(2336,null,this.resourceForError(e)),3,n)}async createFile(e,n=P.fromString(""),r){await this.doValidateCreateFile(e,r);let o=await this.writeFile(e,n);return this._onDidRunOperation.fire(new An(e,0,o)),o}async writeFile(e,n,r){let o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e),{providerExtUri:s}=this.getExtUri(o),a=r;if(rp(o)&&!a?.atomic){let l=o.enforceAtomicWriteFile?.(e);l&&(a={...r,atomic:l})}try{let{stat:l,buffer:c}=await this.validateWriteFile(o,e,n,a);l||await this.mkdirp(o,s.dirname(e)),c||(c=await this.peekBufferForWriting(o,n)),!On(o)||wt(o)&&c instanceof P||wt(o)&&rp(o)&&a?.atomic?await this.doWriteUnbuffered(o,e,a,c):await this.doWriteBuffered(o,e,a,c instanceof P?Yg(c):c),this._onDidRunOperation.fire(new An(e,4))}catch(l){throw new ze(m(2335,null,this.resourceForError(e),Ln(l).toString()),ip(l),a)}return this.resolve(e,{resolveMetadata:!0})}async peekBufferForWriting(e,n){let r;if(wt(e)&&!(n instanceof P))if(ss(n)){let o=await jg(n,3);o.ended?r=P.concat(o.buffer):r=o}else r=zg(n,o=>P.concat(o),3);else r=n;return r}async validateWriteFile(e,n,r,o){let s=!!o?.unlock;if(s&&!(e.capabilities&8192))throw new Error(m(2353,null,this.resourceForError(n)));if(o?.append&&!qh(e))throw new ze(m(2332,null,this.resourceForError(n)),6);if(!!o?.atomic){if(!(e.capabilities&32768))throw new Error(m(2351,null,this.resourceForError(n)));if(!(e.capabilities&2))throw new Error(m(2352,null,this.resourceForError(n)));if(s)throw new Error(m(2350,null,this.resourceForError(n)))}let l;try{l=await e.stat(n)}catch{return Object.create(null)}if((l.type&2)!==0)throw new ze(m(2338,null,this.resourceForError(n)),0,o);this.throwIfFileIsReadonly(n,l);let c;if(typeof o?.mtime=="number"&&typeof o.etag=="string"&&o.etag!==yl&&typeof l.mtime=="number"&&typeof l.size=="number"&&o.mtime<l.mtime&&o.etag!==op({mtime:o.mtime,size:l.size})){if(c=await this.peekBufferForWriting(e,r),c instanceof P&&c.byteLength===l.size)try{let{value:u}=await this.readFile(n,{limits:{size:l.size}});if(c.equals(u))return{stat:l,buffer:c}}catch{}throw new ze(m(2339,null),3,o)}return{stat:l,buffer:c}}async readFile(e,n,r){let o=await this.withReadProvider(e);return n?.atomic?this.doReadFileAtomic(o,e,n,r):this.doReadFile(o,e,n,r)}async doReadFileAtomic(e,n,r,o){return new Promise((s,a)=>{this.writeQueue.queueFor(n,async()=>{try{let l=await this.doReadFile(e,n,r,o);s(l)}catch(l){a(l)}},this.getExtUri(e).providerExtUri)})}async doReadFile(e,n,r,o){let s=await this.doReadFileStream(e,n,{...r,preferUnbuffered:!0},o);return{...s,value:await er(s.value)}}async readFileStream(e,n,r){let o=await this.withReadProvider(e);return this.doReadFileStream(o,e,n,r)}async doReadFileStream(e,n,r,o){let s=new He(o),a=r;hl(e)&&e.enforceAtomicReadFile?.(n)&&(a={...r,atomic:!0});let l=this.validateReadFile(n,a).then(u=>u,u=>{throw s.dispose(!0),u}),c;try{return typeof a?.etag=="string"&&a.etag!==yl&&await l,a?.atomic&&hl(e)||!(On(e)||gl(e))||wt(e)&&a?.preferUnbuffered?c=this.readFileUnbuffered(e,n,a):gl(e)?c=this.readFileStreamed(e,n,s.token,a):c=this.readFileBuffered(e,n,s.token,a),c.on("end",()=>s.dispose()),c.on("error",()=>s.dispose()),{...await l,value:c}}catch(u){throw c&&await Ka(c),this.restoreReadError(u,n,a)}}restoreReadError(e,n,r){let o=m(2333,null,this.resourceForError(n),Ln(e).toString());return e instanceof Vi?new Vi(o,e.stat,r):e instanceof Ui?new Ui(o,e.fileOperationResult,e.size,e.options):new ze(o,ip(e),r)}readFileStreamed(e,n,r,o=Object.create(null)){let s=e.readFileStream(n,o,r);return Du(s,{data:a=>a instanceof P?a:P.wrap(a),error:a=>this.restoreReadError(a,n,o)},a=>P.concat(a))}readFileBuffered(e,n,r,o=Object.create(null)){let s=Zg();return kd(e,n,s,a=>a,{...o,bufferSize:this.BUFFER_SIZE,errorTransformer:a=>this.restoreReadError(a,n,o)},r),s}readFileUnbuffered(e,n,r){let o=Rn(s=>P.concat(s));return(async()=>{try{let s;r?.atomic&&hl(e)?s=await e.readFile(n,{atomic:!0}):s=await e.readFile(n),typeof r?.position=="number"&&(s=s.slice(r.position)),typeof r?.length=="number"&&(s=s.slice(0,r.length)),this.validateReadFileLimits(n,s.byteLength,r),o.end(P.wrap(s))}catch(s){o.error(s),o.end()}})(),o}async validateReadFile(e,n){let r=await this.resolve(e,{resolveMetadata:!0});if(r.isDirectory)throw new ze(m(2337,null,this.resourceForError(e)),0,n);if(typeof n?.etag=="string"&&n.etag!==yl&&n.etag===r.etag)throw new Vi(m(2341,null),r,n);return this.validateReadFileLimits(e,r.size,n),r}validateReadFileLimits(e,n,r){if(typeof r?.limits?.size=="number"&&n>r.limits.size)throw new Ui(m(2342,null,this.resourceForError(e)),7,n,r)}async canMove(e,n,r){return this.doCanMoveCopy(e,n,"move",r)}async canCopy(e,n,r){return this.doCanMoveCopy(e,n,"copy",r)}async doCanMoveCopy(e,n,r,o){if(e.toString()!==n.toString())try{let s=r==="move"?this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e):await this.withReadProvider(e),a=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n);await this.doValidateMoveCopy(s,e,a,n,r,o)}catch(s){return s}return!0}async move(e,n,r){let o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e),s=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n),a=await this.doMoveCopy(o,e,s,n,"move",!!r),l=await this.resolve(n,{resolveMetadata:!0});return this._onDidRunOperation.fire(new An(e,a==="move"?2:3,l)),l}async copy(e,n,r){let o=await this.withReadProvider(e),s=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n),a=await this.doMoveCopy(o,e,s,n,"copy",!!r),l=await this.resolve(n,{resolveMetadata:!0});return this._onDidRunOperation.fire(new An(e,a==="copy"?3:2,l)),l}async doMoveCopy(e,n,r,o,s,a){if(n.toString()===o.toString())return s;let{exists:l,isSameResourceWithDifferentPathCase:c}=await this.doValidateMoveCopy(e,n,r,o,s,a);if(l&&!c&&a&&await this.del(o,{recursive:!0}),await this.mkdirp(r,this.getExtUri(r).providerExtUri.dirname(o)),s==="copy"){if(e===r&&np(e))await e.copy(n,o,{overwrite:a});else{let u=await this.resolve(n);u.isDirectory?await this.doCopyFolder(e,u,r,o):await this.doCopyFile(e,n,r,o)}return s}else return e===r?(await e.rename(n,o,{overwrite:a}),s):(await this.doMoveCopy(e,n,r,o,"copy",a),await this.del(n,{recursive:!0}),"copy")}async doCopyFile(e,n,r,o){if(On(e)&&On(r))return this.doPipeBuffered(e,n,r,o);if(On(e)&&wt(r))return this.doPipeBufferedToUnbuffered(e,n,r,o);if(wt(e)&&On(r))return this.doPipeUnbufferedToBuffered(e,n,r,o);if(wt(e)&&wt(r))return this.doPipeUnbuffered(e,n,r,o)}async doCopyFolder(e,n,r,o){await r.mkdir(o),Array.isArray(n.children)&&await Or.settled(n.children.map(async s=>{let a=this.getExtUri(r).providerExtUri.joinPath(o,s.name);return s.isDirectory?this.doCopyFolder(e,await this.resolve(s.resource),r,a):this.doCopyFile(e,s.resource,r,a)}))}async doValidateMoveCopy(e,n,r,o,s,a){let l=!1;if(e===r){let{providerExtUri:u,isPathCaseSensitive:d}=this.getExtUri(e);if(d||(l=u.isEqual(n,o)),l&&s==="copy")throw new Error(m(2346,null,this.resourceForError(n),this.resourceForError(o)));if(!l&&u.isEqualOrParent(o,n))throw new Error(m(2347,null,this.resourceForError(n),this.resourceForError(o)))}let c=await this.exists(o);if(c&&!l){if(!a)throw new ze(m(2348,null,this.resourceForError(n),this.resourceForError(o)),4);if(e===r){let{providerExtUri:u}=this.getExtUri(e);if(u.isEqualOrParent(n,o))throw new Error(m(2349,null,this.resourceForError(n),this.resourceForError(o)))}}return{exists:c,isSameResourceWithDifferentPathCase:l}}getExtUri(e){let n=this.isPathCaseSensitive(e);return{providerExtUri:n?ne:Cu,isPathCaseSensitive:n}}isPathCaseSensitive(e){return!!(e.capabilities&1024)}async createFolder(e){let n=this.throwIfFileSystemIsReadonly(await this.withProvider(e),e);await this.mkdirp(n,e);let r=await this.resolve(e,{resolveMetadata:!0});return this._onDidRunOperation.fire(new An(e,0,r)),r}async mkdirp(e,n){let r=[],{providerExtUri:o}=this.getExtUri(e);for(;!o.isEqual(n,o.dirname(n));)try{if(((await e.stat(n)).type&2)===0)throw new Error(m(2344,null,this.resourceForError(n)));break}catch(s){if(on(s)!=="EntryNotFound")throw s;r.push(o.basename(n)),n=o.dirname(n)}for(let s=r.length-1;s>=0;s--){n=o.joinPath(n,r[s]);try{await e.mkdir(n)}catch(a){if(on(a)!=="EntryExists")throw a}}}async canDelete(e,n){try{await this.doValidateDelete(e,n)}catch(r){return r}return!0}async doValidateDelete(e,n){let r=this.throwIfFileSystemIsReadonly(await this.withProvider(e),e),o=!!n?.useTrash;if(o&&!(r.capabilities&4096))throw new Error(m(2331,null,this.resourceForError(e)));let s=n?.atomic;if(s&&!(r.capabilities&65536))throw new Error(m(2327,null,this.resourceForError(e)));if(o&&s)throw new Error(m(2330,null,this.resourceForError(e)));let a;try{a=await r.stat(e)}catch{}if(a)this.throwIfFileIsReadonly(e,a);else throw new ze(m(2329,null,this.resourceForError(e)),1);if(!!!n?.recursive){let c=await this.resolve(e);if(c.isDirectory&&Array.isArray(c.children)&&c.children.length>0)throw new Error(m(2328,null,this.resourceForError(e)))}return r}async del(e,n){let r=await this.doValidateDelete(e,n),o=n;if(jh(r)&&!o?.atomic){let c=r.enforceAtomicDelete?.(e);c&&(o={...n,atomic:c})}let s=!!o?.useTrash,a=!!o?.recursive,l=o?.atomic??!1;await r.delete(e,{recursive:a,useTrash:s,atomic:l}),this._onDidRunOperation.fire(new An(e,1))}async cloneFile(e,n){let r=await this.withProvider(e),o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n);if(!(r===o&&this.getExtUri(r).providerExtUri.isEqual(e,n)))return r===o&&Hh(r)?r.cloneFile(e,n):(await this.mkdirp(o,this.getExtUri(o).providerExtUri.dirname(n)),r===o&&np(r)?this.writeQueue.queueFor(e,()=>r.copy(e,n,{overwrite:!0}),this.getExtUri(r).providerExtUri):this.writeQueue.queueFor(e,()=>this.doCopyFile(r,e,o,n),this.getExtUri(r).providerExtUri))}static{this.WATCHER_CORRELATION_IDS=0}createWatcher(e,n){return this.watch(e,{...n,correlationId:Ir.WATCHER_CORRELATION_IDS++})}watch(e,n={recursive:!1,excludes:[]}){let r=new $,o=!1,s=()=>{o=!0};r.add(E(()=>s())),(async()=>{try{let l=await this.doWatch(e,n);o?rt(l):s=()=>rt(l)}catch(l){this.logService.error(l)}})();let a=n.correlationId;if(typeof a=="number"){let l=r.add(new x);return r.add(this.internalOnDidFilesChange.event(u=>{u.correlates(a)&&l.fire(u)})),{onDidChange:l.event,dispose:()=>r.dispose()}}return r}async doWatch(e,n){let r=await this.withProvider(e),o=Rt([this.getExtUri(r).providerExtUri.getComparisonKey(e),n]),s=this.activeWatchers.get(o);return s||(s={count:0,disposable:r.watch(e,n)},this.activeWatchers.set(o,s)),s.count+=1,E(()=>{s&&(s.count--,s.count===0&&(rt(s.disposable),this.activeWatchers.delete(o)))})}dispose(){super.dispose();for(let[,e]of this.activeWatchers)rt(e.disposable);this.activeWatchers.clear()}async doWriteBuffered(e,n,r,o){return this.writeQueue.queueFor(n,async()=>{let s=await e.open(n,{create:!0,unlock:r?.unlock??!1,append:r?.append??!1});try{ss(o)||ja(o)?await this.doWriteStreamBufferedQueued(e,s,o):await this.doWriteReadableBufferedQueued(e,s,o)}catch(a){throw Ln(a)}finally{await e.close(s)}},this.getExtUri(e).providerExtUri)}async doWriteStreamBufferedQueued(e,n,r){let o=0,s;if(ja(r)){if(r.buffer.length>0){let a=P.concat(r.buffer);await this.doWriteBuffer(e,n,a,a.byteLength,o,0),o+=a.byteLength}if(r.ended)return;s=r.stream}else s=r;return new Promise((a,l)=>{Ga(s,{onData:async c=>{s.pause();try{await this.doWriteBuffer(e,n,c,c.byteLength,o,0)}catch(u){return l(u)}o+=c.byteLength,setTimeout(()=>s.resume())},onError:c=>l(c),onEnd:()=>a()})})}async doWriteReadableBufferedQueued(e,n,r){let o=0,s;for(;(s=r.read())!==null;)await this.doWriteBuffer(e,n,s,s.byteLength,o,0),o+=s.byteLength}async doWriteBuffer(e,n,r,o,s,a){let l=0;for(;l<o;){let c=await e.write(n,s+l,r.buffer,a+l,o-l);l+=c}}async doWriteUnbuffered(e,n,r,o){return this.writeQueue.queueFor(n,()=>this.doWriteUnbufferedQueued(e,n,r,o),this.getExtUri(e).providerExtUri)}async doWriteUnbufferedQueued(e,n,r,o){let s;o instanceof P?s=o:ss(o)?s=await er(o):ja(o)?s=await Xg(o):s=Qg(o),await e.writeFile(n,s.buffer,{create:!0,overwrite:!0,unlock:r?.unlock??!1,atomic:r?.atomic??!1,append:r?.append??!1})}async doPipeBuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeBufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeBufferedQueued(e,n,r,o){let s,a;try{s=await e.open(n,{create:!1}),a=await r.open(o,{create:!0,unlock:!1});let l=P.alloc(this.BUFFER_SIZE),c=0,u=0,d=0;do d=await e.read(s,c,l.buffer,u,l.byteLength-u),await this.doWriteBuffer(r,a,l,d,c,u),c+=d,u+=d,u===l.byteLength&&(u=0);while(d>0)}catch(l){throw Ln(l)}finally{await Or.settled([typeof s=="number"?e.close(s):Promise.resolve(),typeof a=="number"?r.close(a):Promise.resolve()])}}async doPipeUnbuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeUnbufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeUnbufferedQueued(e,n,r,o){return r.writeFile(o,await e.readFile(n),{create:!0,overwrite:!0,unlock:!1,atomic:!1})}async doPipeUnbufferedToBuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeUnbufferedToBufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeUnbufferedToBufferedQueued(e,n,r,o){let s=await r.open(o,{create:!0,unlock:!1});try{let a=await e.readFile(n);await this.doWriteBuffer(r,s,P.wrap(a),a.byteLength,0,0)}catch(a){throw Ln(a)}finally{await r.close(s)}}async doPipeBufferedToUnbuffered(e,n,r,o){let s=await er(this.readFileBuffered(e,n,Fe.None));await this.doWriteUnbuffered(r,o,void 0,s)}throwIfFileSystemIsReadonly(e,n){if(e.capabilities&2048)throw new ze(m(2334,null,this.resourceForError(n)),6);return e}throwIfFileIsReadonly(e,n){if((n.permissions??0)&1)throw new ze(m(2334,null,this.resourceForError(e)),6)}resourceForError(e){return e.scheme===te.file?e.fsPath:e.toString(!0)}};Ir=R([T(0,V)],Ir);import{constants as mm,promises as ni}from"fs";function Ld(i){return typeof i.correlationId=="number"}function fI(i){return i.recursive===!0}var Ad=class i extends C{constructor(e,n,r,o){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=r;this.options=o;this.watcherDisposables=this._register(new qn);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new $;this.watcherDisposables.value=e,this.watcher=this.createWatcher(e),this.watcher.setVerboseLogging(this.verboseLogging),e.add(this.watcher.onDidChangeFile(n=>this.onFileChanges(n))),e.add(this.watcher.onDidLogMessage(n=>this.onLogMessage(n))),e.add(this.watcher.onDidError(n=>this.onError(n.error,n.request)))}onError(e,n){this.canRestart(e,n)?this.restartCounter<i.MAX_RESTARTS&&this.requests?(this.error(`restarting watcher after unexpected error: ${e}`),this.restart(this.requests)):this.error(`gave up attempting to restart watcher after unexpected error: ${e}`):this.error(e)}canRestart(e,n){return!(!this.options.restartOnError||n||e.indexOf("No space left on device")!==-1||e.indexOf("EMFILE")!==-1)}restart(e){this.restartCounter++,this.init(),this.watch(e)}async watch(e){this.requests=e,await this.watcher?.watch(e)}async setVerboseLogging(e){this.verboseLogging=e,await this.watcher?.setVerboseLogging(e)}error(e){this.onLogMessage({type:"error",message:`[File Watcher (${this.options.type})] ${e}`})}trace(e){this.onLogMessage({type:"trace",message:`[File Watcher (${this.options.type})] ${e}`})}dispose(){return this.watcher=void 0,super.dispose()}},Dd=class extends Ad{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},Od=class extends Ad{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function pm(i){return i.map(t=>({type:t.type,resource:y.revive(t.resource),cId:t.cId}))}function mI(i){let t=new um;for(let e of i)t.processEvent(e);return t.coalesce()}function _E(i,t){return typeof t=="string"&&!t.startsWith(Ji)&&!Gn(t)?{base:i,pattern:t}:t}function fm(i,t,e){let n=[];for(let r of t)n.push(Ep(_E(i,r),{ignoreCase:e}));return n}var um=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return Se?t.resource.fsPath:t.resource.fsPath.toLowerCase()}processEvent(t){let e=this.mapPathToChange.get(this.toKey(t)),n=!1;if(e){let r=e.type,o=t.type;e.resource.fsPath!==t.resource.fsPath&&(t.type===2||t.type===1)?n=!0:r===1&&o===2?(this.mapPathToChange.delete(this.toKey(t)),this.coalesced.delete(e)):r===2&&o===1?e.type=0:r===1&&o===0||(e.type=o)}else n=!0;n&&(this.coalesced.add(t),this.mapPathToChange.set(this.toKey(t),t))}coalesce(){let t=[],e=[];return Array.from(this.coalesced).filter(n=>n.type!==2?(t.push(n),!1):!0).sort((n,r)=>n.resource.fsPath.length-r.resource.fsPath.length).filter(n=>e.some(r=>Kh(n.resource.fsPath,r,!Se))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function gI(i,t){if(typeof t=="number")switch(i.type){case 1:return(t&4)===0;case 2:return(t&8)===0;case 0:return(t&2)===0}return!1}function hI(i){if(typeof i=="number"){let t=[];return i&4&&t.push("Added"),i&8&&t.push("Deleted"),i&2&&t.push("Updated"),t.length===0?"<all>":`[${t.join(", ")}]`}return"<none>"}var Md=class extends C{constructor(e,n){super();this.logService=e;this.options=n;this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidWatchError=this._register(new x);this.onDidWatchError=this._onDidWatchError.event;this.universalWatchRequests=[];this.universalWatchRequestDelayer=this._register(new Dr(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new Dr(this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)))}watch(e,n){return n.recursive||this.options?.watcher?.forceUniversal?this.watchUniversal(e,n):this.watchNonRecursive(e,n)}getRefreshWatchersDelay(e){return e>200?500:0}watchUniversal(e,n){let r=this.toWatchRequest(e,n),o=Kd(this.universalWatchRequests,r);return this.refreshUniversalWatchers(),E(()=>{o(),this.refreshUniversalWatchers()})}toWatchRequest(e,n){let r={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:n.recursive,filter:n.filter,correlationId:n.correlationId};if(fI(r)){let o=this.options?.watcher?.recursive?.usePolling;o===!0?r.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3:Array.isArray(o)&&o.includes(r.path)&&(r.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3)}return r}refreshUniversalWatchers(){this.universalWatchRequestDelayer.trigger(()=>this.doRefreshUniversalWatchers(),this.getRefreshWatchersDelay(this.universalWatchRequests.length)).catch(e=>De(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire(pm(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.universalWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.universalWatcher.watch(this.universalWatchRequests)}watchNonRecursive(e,n){let r={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:!1,filter:n.filter,correlationId:n.correlationId},o=Kd(this.nonRecursiveWatchRequests,r);return this.refreshNonRecursiveWatchers(),E(()=>{o(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>De(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire(pm(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.nonRecursiveWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.nonRecursiveWatcher.watch(this.nonRecursiveWatchRequests)}onWatcherLogMessage(e){e.type==="error"&&this._onDidWatchError.fire(e.message),this.logWatcherMessage(e)}logWatcherMessage(e){this.logService[e.type](e.message)}toFilePath(e){return Dt(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return xg(n)}};var Nd=class extends Od{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new tl(it.asFileUri("bootstrap-fork").fsPath,{serverName:"File Watcher",args:["--type=fileWatcher"],env:{VSCODE_ESM_ENTRYPOINT:"vs/platform/files/node/watcher/watcherMain",VSCODE_PIPE_LOGGING:"true",VSCODE_VERBOSE_LOGGING:"true"}}));return t.add(e.onDidProcessExit(({code:n,signal:r})=>this.onError(`terminated by itself with code ${n}, signal: ${r} (ETERM)`))),Ei.toService(th(e.getChannel("watcher")))}};import{watchFile as TE,unwatchFile as CE}from"fs";var Fd=class extends C{constructor(){super();this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidLogMessage=this._register(new x);this.onDidLogMessage=this._onDidLogMessage.event;this._onDidWatchFail=this._register(new x);this.onDidWatchFail=this._onDidWatchFail.event;this.correlatedWatchRequests=new Map;this.nonCorrelatedWatchRequests=new Map;this.suspendedWatchRequests=this._register(new at);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new Dr(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new pe;this.verboseLogging=!1;this._register(this.onDidWatchFail(e=>this.suspendWatchRequest({id:this.computeId(e),correlationId:this.isCorrelated(e)?e.correlationId:void 0,path:e.path})))}isCorrelated(e){return Ld(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:Rt(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new pe;try{this.correlatedWatchRequests.clear(),this.nonCorrelatedWatchRequests.clear();for(let n of e)this.isCorrelated(n)?this.correlatedWatchRequests.set(n.correlationId,n):this.nonCorrelatedWatchRequests.set(this.computeId(n),n);for(let[n]of this.suspendedWatchRequests)!this.nonCorrelatedWatchRequests.has(n)&&!this.correlatedWatchRequests.has(n)&&(this.suspendedWatchRequests.deleteAndDispose(n),this.suspendedWatchRequestsWithPolling.delete(n));return await this.updateWatchers(!1)}finally{this.joinWatch.complete()}}updateWatchers(e){let n=[];for(let[r,o]of[...this.nonCorrelatedWatchRequests,...this.correlatedWatchRequests])this.suspendedWatchRequests.has(r)||n.push(o);return this.updateWatchersDelayer.trigger(()=>this.doWatch(n),e?this.getUpdateWatchersDelay():0).catch(r=>De(r))}getUpdateWatchersDelay(){return 800}isSuspended(e){let n=this.computeId(e);return this.suspendedWatchRequestsWithPolling.has(n)?"polling":this.suspendedWatchRequests.has(n)}async suspendWatchRequest(e){if(this.suspendedWatchRequests.has(e.id))return;let n=new $;this.suspendedWatchRequests.set(e.id,n),await this.joinWatch.p,!n.isDisposed&&(this.monitorSuspendedWatchRequest(e,n),this.updateWatchers(!0))}resumeWatchRequest(e){this.suspendedWatchRequests.deleteAndDispose(e.id),this.suspendedWatchRequestsWithPolling.delete(e.id),this.updateWatchers(!1)}monitorSuspendedWatchRequest(e,n){this.doMonitorWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher to monitor ${e.path}`),this.suspendedWatchRequestsWithPolling.delete(e.id)):(this.doMonitorWithNodeJS(e,n),this.suspendedWatchRequestsWithPolling.add(e.id))}doMonitorWithExistingWatcher(e,n){let r=this.recursiveWatcher?.subscribe(e.path,(o,s)=>{n.isDisposed||(o?this.monitorSuspendedWatchRequest(e,n):s?.type===1&&this.onMonitoredPathAdded(e))});return r?(n.add(r),!0):!1}doMonitorWithNodeJS(e,n){let r=!1,o=(s,a)=>{if(n.isDisposed)return;let l=this.isPathNotFound(s),c=this.isPathNotFound(a),u=r;r=l,!l&&(c||u)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{TE(e.path,{persistent:!1,interval:this.suspendedWatchRequestPollingInterval},o)}catch(s){this.warn(`fs.watchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}n.add(E(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{CE(e.path,o)}catch(s){this.warn(`fs.unwatchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}}))}onMonitoredPathAdded(e){this.trace(`detected ${e.path} exists again, resuming watcher (correlationId: ${e.correlationId})`);let n={resource:y.file(e.path),type:1,cId:e.correlationId};this._onDidChangeFile.fire([n]),this.traceEvent(n,e),this.resumeWatchRequest(e)}isPathNotFound(e){return e.ctimeMs===0&&e.ino===0}async stop(){this.suspendedWatchRequests.clearAndDisposeAll(),this.suspendedWatchRequestsWithPolling.clear()}traceEvent(e,n){if(this.verboseLogging){let r=` >> normalized ${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`;this.traceWithCorrelation(r,n)}}traceWithCorrelation(e,n){this.verboseLogging&&this.trace(`${e}${typeof n.correlationId=="number"?` <${n.correlationId}> `:""}`)}requestToString(e){return`${e.path} (excludes: ${e.excludes.length>0?e.excludes:"<none>"}, includes: ${e.includes&&e.includes.length>0?JSON.stringify(e.includes):"<all>"}, filter: ${hI(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as xE,promises as wE}from"fs";var Ud=class i extends C{constructor(e,n,r,o,s,a){super();this.request=e;this.recursiveWatcher=n;this.onDidFilesChange=r;this.onDidWatchFail=o;this.onLogMessage=s;this.verboseLogging=a;this.throttledFileChangesEmitter=this._register(new Si({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new Ba(e=>this.handleFileChanges(e),i.FILE_CHANGES_HANDLER_DELAY));this.cts=new He;this.realPath=new Ae(async()=>{let e=this.request.path;try{e=await Ie.realpath(this.request.path),this.request.path!==e&&this.trace(`correcting a path to watch that seems to be a symbolic link (original: ${this.request.path}, real: ${e})`)}catch{}return e});this._isReusingRecursiveWatcher=!1;this.didFail=!1;let l=!Se;this.excludes=fm(this.request.path,this.request.excludes,l),this.includes=this.request.includes?fm(this.request.path,this.request.includes,l):void 0,this.filter=Ld(this.request)?this.request.filter:void 0,this.ready=this.watch()}static{this.FILE_DELETE_HANDLER_DELAY=100}static{this.FILE_CHANGES_HANDLER_DELAY=75}get isReusingRecursiveWatcher(){return this._isReusingRecursiveWatcher}get failed(){return this.didFail}async watch(){try{let e=await wE.stat(this.request.path);if(this.cts.token.isCancellationRequested)return;this._register(await this.doWatch(e.isDirectory()))}catch(e){e.code!=="ENOENT"?this.error(e):this.trace(`ignoring a path for watching who's stat info failed to resolve: ${this.request.path} (error: ${e})`),this.notifyWatchFailed()}}notifyWatchFailed(){this.didFail=!0,this.onDidWatchFail?.()}async doWatch(e){let n=new $;return this.doWatchWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher for ${this.request.path}`),this._isReusingRecursiveWatcher=!0):(this._isReusingRecursiveWatcher=!1,await this.doWatchWithNodeJS(e,n)),n}doWatchWithExistingWatcher(e,n){if(e)return!1;let r=y.file(this.request.path),o=this.recursiveWatcher?.subscribe(this.request.path,async(s,a)=>{n.isDisposed||(s?await $m(this.doWatch(e),n):a&&(typeof a.cId=="number"||typeof this.request.correlationId=="number")&&this.onFileChange({resource:r,type:a.type,cId:this.request.correlationId},!0))});return o?(n.add(o),!0):!1}async doWatchWithNodeJS(e,n){let r=await this.realPath.value;if(this.cts.token.isCancellationRequested)return;if(Be&&Cn(r,"/Volumes/",!0)){this.error(`Refusing to watch ${r} for changes using fs.watch() for possibly being a network share where watching is unreliable and unstable.`);return}let o=new He(this.cts.token);n.add(E(()=>o.dispose(!0)));let s=new $;n.add(s);try{let a=y.file(this.request.path),l=ge(r),c=xE(r);s.add(E(()=>{c.removeAllListeners(),c.close()})),this.trace(`Started watching: '${r}'`);let u=new Set;if(e)try{for(let f of await Ie.readdir(r))u.add(f)}catch(f){this.error(f)}if(o.token.isCancellationRequested)return;let d=new Map;s.add(E(()=>{for(let[,f]of d)f.dispose();d.clear()})),c.on("error",(f,g)=>{o.token.isCancellationRequested||(this.error(`Failed to watch ${r} for changes using fs.watch() (${f}, ${g})`),this.notifyWatchFailed())}),c.on("change",(f,g)=>{if(o.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${f}"] ${g}`);let h="";if(g&&(h=g.toString(),Be&&(h=fs(h))),!(!h||f!=="change"&&f!=="rename"))if(e)if(f==="rename"){d.get(h)?.dispose();let v=setTimeout(async()=>{if(d.delete(h),yi(h,l,!Se)&&!await Ie.exists(r)){this.onWatchedPathDeleted(a);return}if(o.token.isCancellationRequested)return;let S=await this.existsChildStrictCase(B(r,h));if(o.token.isCancellationRequested)return;let _;S?u.has(h)?_=0:(_=1,u.add(h)):(u.delete(h),_=2),this.onFileChange({resource:Q(a,h),type:_,cId:this.request.correlationId})},i.FILE_DELETE_HANDLER_DELAY);d.set(h,E(()=>clearTimeout(v)))}else{let v;u.has(h)?v=0:(v=1,u.add(h)),this.onFileChange({resource:Q(a,h),type:v,cId:this.request.correlationId})}else if(f==="rename"||!yi(h,l,!Se)){let v=setTimeout(async()=>{let S=await Ie.exists(r);o.token.isCancellationRequested||(S?(this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0),s.add(await this.doWatch(!1))):this.onWatchedPathDeleted(a))},i.FILE_DELETE_HANDLER_DELAY);s.clear(),s.add(E(()=>clearTimeout(v)))}else this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0)})}catch(a){if(o.token.isCancellationRequested)return;this.error(`Failed to watch ${r} for changes using fs.watch() (${a.toString()})`),this.notifyWatchFailed()}}onWatchedPathDeleted(e){this.warn("Watcher shutdown because watched path got deleted"),this.onFileChange({resource:e,type:2,cId:this.request.correlationId},!0),this.fileChangesAggregator.flush(),this.notifyWatchFailed()}onFileChange(e,n=!1){this.cts.token.isCancellationRequested||(this.verboseLogging&&this.traceWithCorrelation(`${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`),!n&&this.excludes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (excluded) ${e.resource.fsPath}`):!n&&this.includes&&this.includes.length>0&&!this.includes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (not included) ${e.resource.fsPath}`):this.fileChangesAggregator.work(e))}handleFileChanges(e){let n=mI(e),r=[];for(let s of n){if(gI(s,this.filter)){this.verboseLogging&&this.traceWithCorrelation(` >> ignored (filtered) ${s.resource.fsPath}`);continue}r.push(s)}if(r.length===0)return;if(this.verboseLogging)for(let s of r)this.traceWithCorrelation(` >> normalized ${s.type===1?"[ADDED]":s.type===2?"[DELETED]":"[CHANGED]"} ${s.resource.fsPath}`);this.throttledFileChangesEmitter.work(r)?this.throttledFileChangesEmitter.pending>0&&this.trace(`started throttling events due to large amount of file change events at once (pending: ${this.throttledFileChangesEmitter.pending}, most recent change: ${r[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`):this.warn(`started ignoring events due to too many file change events at once (incoming: ${r.length}, most recent change: ${r[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`)}async existsChildStrictCase(e){if(Se)return Ie.exists(e);try{let n=ge(e);return(await Ie.readdir(ce(e))).some(o=>o===n)}catch(n){return this.trace(n),!1}}setVerboseLogging(e){this.verboseLogging=e}error(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"error",message:`[File Watcher (node.js)] ${e}`})}warn(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"warn",message:`[File Watcher (node.js)] ${e}`})}trace(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.onLogMessage?.({type:"trace",message:`[File Watcher (node.js)] ${e}`})}traceWithCorrelation(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.trace(`${e}${typeof this.request.correlationId=="number"?` <${this.request.correlationId}> `:""}`)}dispose(){this.cts.dispose(!0),super.dispose()}};var Vd=class extends Fd{constructor(e){super();this.recursiveWatcher=e;this.onDidError=X.None;this._watchers=new Map;this.worker=this._register(new qn)}get watchers(){return this._watchers.values()}async doWatch(e){e=this.removeDuplicateRequests(e);let n=[],r=new Set(Array.from(this.watchers));for(let o of e){let s=this._watchers.get(this.requestToWatcherKey(o));s&&Pp(s.request.excludes,o.excludes)&&Pp(s.request.includes,o.includes)?r.delete(s):n.push(o)}n.length&&this.trace(`Request to start watching: ${n.map(o=>this.requestToString(o)).join(",")}`),r.size&&this.trace(`Request to stop watching: ${Array.from(r).map(o=>this.requestToString(o.request)).join(",")}`),this.worker.clear();for(let o of r)this.stopWatching(o);this.createWatchWorker().work(n)}createWatchWorker(){return this.worker.value=new Si({maxWorkChunkSize:100,throttleDelay:100,maxBufferedWork:Number.MAX_VALUE},e=>{for(let n of e)this.startWatching(n)}),this.worker.value}requestToWatcherKey(e){return typeof e.correlationId=="number"?e.correlationId:this.pathToWatcherKey(e.path)}pathToWatcherKey(e){return Se?e:e.toLowerCase()}startWatching(e){let n=new Ud(e,this.recursiveWatcher,o=>this._onDidChangeFile.fire(o),()=>this._onDidWatchFail.fire(e),o=>this._onDidLogMessage.fire(o),this.verboseLogging),r={request:e,instance:n};this._watchers.set(this.requestToWatcherKey(e),r)}async stop(){await super.stop();for(let e of this.watchers)this.stopWatching(e)}stopWatching(e){this.trace("stopping file watcher",e),this._watchers.delete(this.requestToWatcherKey(e.request)),e.instance.dispose()}removeDuplicateRequests(e){let n=new Map;for(let r of e){let o=n.get(r.correlationId);o||(o=new Map,n.set(r.correlationId,o));let s=this.pathToWatcherKey(r.path);o.has(s)&&this.trace(`ignoring a request for watching who's path is already watched: ${this.requestToString(r)}`),o.set(s,r)}return Array.from(n.values()).flatMap(r=>Array.from(r.values()))}async setVerboseLogging(e){super.setVerboseLogging(e);for(let n of this.watchers)n.instance.setVerboseLogging(e)}trace(e,n){this.verboseLogging&&this._onDidLogMessage.fire({type:"trace",message:this.toMessage(e,n)})}warn(e){this._onDidLogMessage.fire({type:"warn",message:this.toMessage(e)})}toMessage(e,n){return n?`[File Watcher (node.js)] ${e} (${this.requestToString(n.request)})`:`[File Watcher (node.js)] ${e}`}};var Wd=class extends Dd{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new Vd(void 0))}};var $d=class i extends Md{constructor(){super(...arguments);this.onDidChangeCapabilities=X.None;this.resourceLocks=new Te(e=>lt.getComparisonKey(e));this.mapHandleToPos=new Map;this.mapHandleToLock=new Map;this.writeHandles=new Map}static{this.TRACE_LOG_RESOURCE_LOCKS=!1}get capabilities(){return this._capabilities||(this._capabilities=1040414,Se&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:r}=await ct.stat(this.toFilePath(e)),o;return(n.mode&128)===0&&(o=2),(n.mode&mm.S_IXUSR||n.mode&mm.S_IXGRP||n.mode&mm.S_IXOTH)&&(o=(o??0)|4),{type:this.toType(n,r),ctime:n.birthtime.getTime(),mtime:n.mtime.getTime(),size:n.size,permissions:o}}catch(n){throw this.toFileSystemProviderError(n)}}async statIgnoreError(e){try{return await this.stat(e)}catch{return}}async realpath(e){let n=this.toFilePath(e);return Ie.realpath(n)}async readdir(e){try{let n=await Ie.readdir(this.toFilePath(e),{withFileTypes:!0}),r=[];return await Promise.all(n.map(async o=>{try{let s;o.isSymbolicLink()?s=(await this.stat(Q(e,o.name))).type:s=this.toType(o),r.push([o.name,s])}catch(s){this.logService.trace(s)}})),r}catch(n){throw this.toFileSystemProviderError(n)}}toType(e,n){let r;return n?.dangling?r=0:e.isFile()?r=1:e.isDirectory()?r=2:r=0,n&&(r|=64),r}async createResourceLock(e){let n=this.toFilePath(e);this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - request to acquire resource lock (${n})`);let r;for(;r=this.resourceLocks.get(e);)this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - waiting for resource lock to be released (${n})`),await r.wait();let o=new $a;return this.resourceLocks.set(e,o),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),E(()=>{this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock dispose() (${n})`),this.resourceLocks.get(e)===o&&(this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock removed from resource-lock map (${n})`),this.resourceLocks.delete(e)),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock barrier open() (${n})`),o.open()})}async readFile(e,n){let r;try{n?.atomic&&(this.traceLock(`[Disk FileSystemProvider]: atomic read operation started (${this.toFilePath(e)})`),r=await this.createResourceLock(e));let o=this.toFilePath(e);return await ni.readFile(o)}catch(o){throw this.toFileSystemProviderError(o)}finally{r?.dispose()}}traceLock(e){i.TRACE_LOG_RESOURCE_LOCKS&&this.logService.trace(e)}readFileStream(e,n,r){let o=Rn(s=>P.concat(s.map(a=>P.wrap(a))).buffer);return kd(this,e,o,s=>s.buffer,{...n,bufferSize:256*1024},r),o}async writeFile(e,n,r){return r?.atomic!==!1&&r?.atomic?.postfix&&await this.canWriteFileAtomic(e)?this.doWriteFileAtomic(e,Q(tn(e),`${xe(e)}${r.atomic.postfix}`),n,r):this.doWriteFile(e,n,r)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:r}=await ct.stat(n);if(r)return!1}catch{}return!0}async doWriteFileAtomic(e,n,r,o){let s=new $;try{s.add(await this.createResourceLock(e)),s.add(await this.createResourceLock(n)),await this.doWriteFile(n,r,{...o,create:!0,overwrite:!0},!0);try{await this.rename(n,e,{overwrite:!0})}catch(a){try{await this.delete(n,{recursive:!1,useTrash:!1,atomic:!1})}catch{}throw a}}finally{s.dispose()}}async doWriteFile(e,n,r,o){let s;try{let a=this.toFilePath(e);if(!r.create||!r.overwrite){if(await Ie.exists(a)){if(!r.overwrite)throw le(m(2359,null),"EntryExists")}else if(!r.create)throw le(m(2362,null),"EntryNotFound")}s=await this.open(e,{create:!0,append:r.append,unlock:r.unlock},o),await this.write(s,0,n,0,n.byteLength)}catch(a){throw await this.toFileSystemProviderWriteError(e,a)}finally{typeof s=="number"&&await this.close(s)}}static{this.canFlush=!0}static configureFlushOnWrite(e){i.canFlush=e}async open(e,n,r){let o=this.toFilePath(e),s;Dn(n)&&!r&&(s=await this.createResourceLock(e));let a;try{if(Dn(n)&&n.unlock)try{let{stat:l}=await ct.stat(o);l.mode&128||await ni.chmod(o,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(q&&Dn(n)&&!n.append)try{a=await Ie.open(o,"r+"),await Ie.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await Ie.close(a)}catch(c){this.logService.trace(c)}a=void 0}}typeof a!="number"&&(a=await Ie.open(o,Dn(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),Dn(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),Dn(n)&&this.writeHandles.set(a,e),s){let l=this.mapHandleToLock.get(a);this.traceLock(`[Disk FileSystemProvider]: open() - storing lock for handle ${a} (${o})`),this.mapHandleToLock.set(a,s),l&&(this.traceLock(`[Disk FileSystemProvider]: open() - disposing a previous lock that was still stored on same handle ${a} (${o})`),l.dispose())}return a}async close(e){let n=this.mapHandleToLock.get(e);try{if(this.mapHandleToPos.delete(e),this.writeHandles.delete(e)&&i.canFlush)try{await Ie.fdatasync(e)}catch(r){i.configureFlushOnWrite(!1),this.logService.error(r)}return await Ie.close(e)}catch(r){throw this.toFileSystemProviderError(r)}finally{n&&(this.mapHandleToLock.get(e)===n&&(this.traceLock(`[Disk FileSystemProvider]: close() - resource lock removed from handle-lock map ${e}`),this.mapHandleToLock.delete(e)),this.traceLock(`[Disk FileSystemProvider]: close() - disposing lock for handle ${e}`),n.dispose())}}async read(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await Ie.read(e,r,o,s,a)).bytesRead}catch(c){throw this.toFileSystemProviderError(c)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,r){let o=this.mapHandleToPos.get(e);typeof o=="number"&&(typeof n=="number"||(typeof r=="number"?this.mapHandleToPos.set(e,o+r):this.mapHandleToPos.delete(e)))}async write(e,n,r,o,s){return qg(()=>this.doWrite(e,n,r,o,s),100,3)}async doWrite(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await Ie.write(e,r,o,s,a)).bytesWritten}catch(c){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),c)}finally{this.updatePos(e,a,l)}return l}async mkdir(e){try{await ni.mkdir(this.toFilePath(e))}catch(n){throw this.toFileSystemProviderError(n)}}async delete(e,n){try{let r=this.toFilePath(e);if(n.recursive){let o;n?.atomic!==!1&&n.atomic.postfix&&(o=B(ce(r),`${ge(r)}${n.atomic.postfix}`)),await Ie.rm(r,1,o)}else try{await ni.unlink(r)}catch(o){if(o.code==="EPERM"||o.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await ct.stat(r);s=a.isDirectory()&&!l}catch{}if(s)await ni.rmdir(r);else throw o}else throw o}}catch(r){throw this.toFileSystemProviderError(r)}}async rename(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"move",r.overwrite),await Ie.rename(o,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2363,null,ge(o),ge(ce(s)),a.toString()))),this.toFileSystemProviderError(a)}}async copy(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"copy",r.overwrite),await Ie.copy(o,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2357,null,ge(o),ge(ce(s)),a.toString()))),this.toFileSystemProviderError(a)}}async validateMoveCopy(e,n,r,o){let s=this.toFilePath(e),a=this.toFilePath(n),l=!1;if(this.capabilities&1024||(l=yi(s,a,!0)),l){if(r==="copy")throw le(m(2358,null),"EntryExists");if(r==="move")return}let u=await this.statIgnoreError(e);if(!u)throw le(m(2361,null),"EntryNotFound");let d=await this.statIgnoreError(n);if(d){if(!o)throw le(m(2360,null),"EntryExists");(u.type&1)!==0&&(d.type&1)!==0||await this.delete(n,{recursive:!0,useTrash:!1,atomic:!1})}}async cloneFile(e,n){return this.doCloneFile(e,n,!1)}async doCloneFile(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n),a=!!(this.capabilities&1024);if(yi(o,s,!a))return;let l=new $;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),r&&await ni.mkdir(ce(s),{recursive:!0}),await ni.copyFile(o,s)}catch(c){if(c.code==="ENOENT"&&!r)return this.doCloneFile(e,n,!0);throw this.toFileSystemProviderError(c)}finally{l.dispose()}}createUniversalWatcher(e,n,r){return new Nd(o=>e(o),o=>n(o),r)}createNonRecursiveWatcher(e,n,r){return new Wd(o=>e(o),o=>n(o),r)}toFileSystemProviderError(e){if(e instanceof Fi)return e;let n=e,r;switch(e.code){case"ENOENT":r="EntryNotFound";break;case"EISDIR":r="EntryIsADirectory";break;case"ENOTDIR":r="EntryNotADirectory";break;case"EEXIST":r="EntryExists";break;case"EPERM":case"EACCES":r="NoPermissions";break;case"ERR_UNC_HOST_NOT_ALLOWED":n=`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`,r="Unknown";break;default:r="Unknown"}return le(n,r)}async toFileSystemProviderWriteError(e,n){let r=this.toFileSystemProviderError(n);if(e&&r.code==="NoPermissions")try{let{stat:o}=await ct.stat(this.toFilePath(e));o.mode&128||(r=le(n,"EntryWriteLocked"))}catch(o){this.logService.trace(o)}return r}};import*as bI from"fs";var yI=[{version:1,sql:[`CREATE TABLE IF NOT EXISTS turns (
				id TEXT PRIMARY KEY NOT NULL
			)`,`CREATE TABLE IF NOT EXISTS file_edits (
				turn_id        TEXT    NOT NULL REFERENCES turns(id) ON DELETE CASCADE,
				tool_call_id   TEXT    NOT NULL,
				file_path      TEXT    NOT NULL,
				before_content BLOB   NOT NULL,
				after_content  BLOB   NOT NULL,
				added_lines    INTEGER,
				removed_lines  INTEGER,
				PRIMARY KEY (tool_call_id, file_path)
			)`].join(`;
`)},{version:2,sql:`CREATE TABLE IF NOT EXISTS session_metadata (
			key   TEXT PRIMARY KEY NOT NULL,
			value TEXT NOT NULL
		)`},{version:3,sql:[`CREATE TABLE file_edits_v3 (
				turn_id        TEXT    NOT NULL REFERENCES turns(id) ON DELETE CASCADE,
				tool_call_id   TEXT    NOT NULL,
				file_path      TEXT    NOT NULL,
				edit_type      TEXT    NOT NULL DEFAULT 'edit',
				original_path  TEXT,
				before_content BLOB,
				after_content  BLOB,
				added_lines    INTEGER,
				removed_lines  INTEGER,
				PRIMARY KEY (tool_call_id, file_path)
			)`,`INSERT INTO file_edits_v3 (turn_id, tool_call_id, file_path, edit_type, before_content, after_content, added_lines, removed_lines)
				SELECT turn_id, tool_call_id, file_path, 'edit', before_content, after_content, added_lines, removed_lines FROM file_edits`,"DROP TABLE file_edits","ALTER TABLE file_edits_v3 RENAME TO file_edits"].join(`;
`)},{version:4,sql:["ALTER TABLE turns ADD COLUMN event_id TEXT","CREATE INDEX IF NOT EXISTS idx_turns_event_id ON turns(event_id)"].join(`;
`)}];function Yt(i,t){return new Promise((e,n)=>{i.exec(t,r=>r?n(r):e())})}function At(i,t,e){return new Promise((n,r)=>{i.run(t,e,function(o){if(o)return r(o);n({changes:this.changes,lastID:this.lastID})})})}function Ho(i,t,e){return new Promise((n,r)=>{i.get(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function fa(i,t,e){return new Promise((n,r)=>{i.all(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function gm(i){return new Promise((t,e)=>{i.close(n=>n?e(n):t())})}function RE(i){return new Promise((t,e)=>{import("@vscode/sqlite3").then(n=>{let r=new n.default.Database(i,o=>{if(o)return e(o);t(r)})},e)})}async function EE(i,t){await Yt(i,"PRAGMA foreign_keys = ON");let n=(await Ho(i,"PRAGMA user_version",[]))?.user_version??0,r=t.filter(o=>o.version>n).sort((o,s)=>o.version-s.version);if(r.length!==0){await Yt(i,"BEGIN TRANSACTION");try{for(let o of r)await Yt(i,o.sql),await Yt(i,`PRAGMA user_version = ${o.version}`);await Yt(i,"COMMIT")}catch(o){throw await Yt(i,"ROLLBACK"),o}}}var Bd=class i{constructor(t,e=yI){this._path=t;this._migrations=e;this._fileEditSequencer=new yt;this._metadataSequencer=new yt;this._pendingWrites=new Set}static async open(t,e=yI){let n=new i(t,e);return await n._ensureDb(),n}_ensureDb(){return this._closed?Promise.reject(new Error("SessionDatabase has been disposed")):(this._dbPromise||(this._dbPromise=(async()=>{await bI.promises.mkdir(ce(this._path),{recursive:!0});let t=await RE(this._path);try{await EE(t,this._migrations)}catch(e){throw await gm(t),this._dbPromise=void 0,e}if(this._closed)throw await gm(t),new Error("SessionDatabase has been disposed");return t})()),this._dbPromise)}async getAllTables(){let t=await this._ensureDb();return(await fa(t,"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name",[])).map(n=>n.name)}createTurn(t){return this._track(async()=>{let e=await this._ensureDb();await At(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t])})}deleteTurn(t){return this._track(async()=>{let e=await this._ensureDb();await At(e,"DELETE FROM turns WHERE id = ?",[t])})}setTurnEventId(t,e){return this._track(async()=>{let n=await this._ensureDb();await At(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await At(n,"UPDATE turns SET event_id = ? WHERE id = ? AND event_id IS NULL",[e,t])})}async getTurnEventId(t){let e=await this._ensureDb();return(await Ho(e,"SELECT event_id FROM turns WHERE id = ?",[t]))?.event_id??void 0}async getNextTurnEventId(t){let e=await this._ensureDb();return(await Ho(e,"SELECT event_id FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?) ORDER BY rowid LIMIT 1",[t]))?.event_id??void 0}async getFirstTurnEventId(){let t=await this._ensureDb();return(await Ho(t,"SELECT event_id FROM turns ORDER BY rowid LIMIT 1",[]))?.event_id??void 0}truncateFromTurn(t){return this._track(async()=>{let e=await this._ensureDb();await At(e,"DELETE FROM turns WHERE rowid >= (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteTurnsAfter(t){return this._track(async()=>{let e=await this._ensureDb();await At(e,"DELETE FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteAllTurns(){return this._track(async()=>{let t=await this._ensureDb();await Yt(t,"DELETE FROM turns")})}storeFileEdit(t){return this._track(()=>this._fileEditSequencer.queue(t.filePath,async()=>{let e=await this._ensureDb();await At(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t.turnId]),await At(e,`INSERT OR REPLACE INTO file_edits
					(turn_id, tool_call_id, file_path, edit_type, original_path, before_content, after_content, added_lines, removed_lines)
				VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[t.turnId,t.toolCallId,t.filePath,t.kind,t.originalPath??null,t.beforeContent?Buffer.from(t.beforeContent):null,t.afterContent?Buffer.from(t.afterContent):null,t.addedLines??null,t.removedLines??null])}))}async getFileEdits(t){if(t.length===0)return[];let e=await this._ensureDb(),n=t.map(()=>"?").join(",");return(await fa(e,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				WHERE tool_call_id IN (${n})
				ORDER BY rowid`,t)).map(o=>({turnId:o.turn_id,toolCallId:o.tool_call_id,filePath:o.file_path,kind:o.edit_type??"edit",originalPath:o.original_path??void 0,addedLines:o.added_lines??void 0,removedLines:o.removed_lines??void 0}))}async getAllFileEdits(){let t=await this._ensureDb();return(await fa(t,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				ORDER BY rowid`,[])).map(n=>({turnId:n.turn_id,toolCallId:n.tool_call_id,filePath:n.file_path,kind:n.edit_type??"edit",originalPath:n.original_path??void 0,addedLines:n.added_lines??void 0,removedLines:n.removed_lines??void 0}))}async getFileEditsByTurn(t){let e=await this._ensureDb();return(await fa(e,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				WHERE turn_id = ?
				ORDER BY rowid`,[t])).map(r=>({turnId:r.turn_id,toolCallId:r.tool_call_id,filePath:r.file_path,kind:r.edit_type??"edit",originalPath:r.original_path??void 0,addedLines:r.added_lines??void 0,removedLines:r.removed_lines??void 0}))}async readFileEditContent(t,e){return this._fileEditSequencer.queue(e,async()=>{let n=await this._ensureDb(),r=await Ho(n,`SELECT before_content, after_content
					FROM file_edits
					WHERE tool_call_id = ? AND file_path = ?`,[t,e]);if(r)return{beforeContent:r.before_content?vI(r.before_content):void 0,afterContent:r.after_content?vI(r.after_content):void 0}})}async getMetadata(t){let e=await this._ensureDb();return(await Ho(e,"SELECT value FROM session_metadata WHERE key = ?",[t]))?.value}async getMetadataObject(t){let e=Object.keys(t),n={};if(e.length===0)return n;let r=await this._ensureDb(),o=e.map(()=>"?").join(","),s=await fa(r,`SELECT key, value FROM session_metadata WHERE key IN (${o})`,e);for(let a of e)n[a]=void 0;for(let a of s)n[a.key]=a.value;return n}setMetadata(t,e){return this._track(()=>this._metadataSequencer.queue(t,async()=>{let n=await this._ensureDb();await At(n,"INSERT OR REPLACE INTO session_metadata (key, value) VALUES (?, ?)",[t,e])}))}remapTurnIds(t){return this._track(async()=>{let e=await this._ensureDb();await Yt(e,"PRAGMA defer_foreign_keys = ON"),await Yt(e,"BEGIN TRANSACTION");try{let n=[...t.keys()];if(n.length>0){let r=n.map(()=>"?").join(",");await At(e,`DELETE FROM turns WHERE id NOT IN (${r})`,n)}for(let[r,o]of t)await At(e,"UPDATE turns SET id = ? WHERE id = ?",[o,r]),await At(e,"UPDATE file_edits SET turn_id = ? WHERE turn_id = ?",[o,r]);await Yt(e,"COMMIT")}catch(n){throw await Yt(e,"ROLLBACK"),n}})}async whenIdle(){for(;this._pendingWrites.size>0;)await Promise.allSettled([...this._pendingWrites])}async vacuumInto(t){let e=await this._ensureDb();await At(e,"VACUUM INTO ?",[t])}_track(t){let e=t();this._pendingWrites.add(e);let n=()=>{this._pendingWrites.delete(e)};return e.then(n,n),e}async close(){await(this._closed??=this._dbPromise?.then(t=>gm(t)).catch(()=>{})||!0)}dispose(){this.close()}};function vI(i){return i instanceof Buffer?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):i instanceof Uint8Array?i:typeof i=="string"?new TextEncoder().encode(i):new Uint8Array(0)}var hm=class extends Ca{constructor(e,n){super();this._getDbPath=e;this._logService=n;this.liveDatabases=new Set}createReferencedObject(e){let n=this._getDbPath(e);this._logService.trace(`[SessionDataService] Opening database: ${n}`);let r=new Bd(n);return this.liveDatabases.add(r),r}destroyReferencedObject(e,n){this.liveDatabases.delete(n),n.dispose()}},zo=class{constructor(t,e,n,r){this._fileService=e;this._logService=n;this._basePath=y.joinPath(t,"agentSessionData"),this._databases=new hm(r??(o=>y.joinPath(this._basePath,o,Ls).fsPath),this._logService)}getSessionDataDir(t){return this.getSessionDataDirById(j.id(t))}getSessionDataDirById(t){let e=t.replace(/[^a-zA-Z0-9_.-]/g,"-");return y.joinPath(this._basePath,e)}_sanitizedSessionKey(t){return j.id(t).replace(/[^a-zA-Z0-9_.-]/g,"-")}openDatabase(t){return this._databases.acquire(this._sanitizedSessionKey(t))}async tryOpenDatabase(t){let e=this._sanitizedSessionKey(t),n=y.joinPath(this._basePath,e,Ls);if(await this._fileService.exists(n))return this._databases.acquire(e)}async deleteSessionData(t){let e=this.getSessionDataDir(t);try{await this._fileService.exists(e)&&(await this._fileService.del(e,{recursive:!0}),this._logService.trace(`[SessionDataService] Deleted session data: ${e.toString()}`))}catch(n){this._logService.warn(`[SessionDataService] Failed to delete session data: ${e.toString()}`,n)}}async cleanupOrphanedData(t){try{if(!await this._fileService.exists(this._basePath))return;let n=await this._fileService.resolve(this._basePath);if(!n.children)return;let r=[];for(let o of n.children){if(!o.isDirectory)continue;let s=o.name;t.has(s)||(this._logService.trace(`[SessionDataService] Cleaning up orphaned session data: ${s}`),r.push(this._fileService.del(o.resource,{recursive:!0}).catch(a=>{this._logService.warn(`[SessionDataService] Failed to clean up orphaned data: ${s}`,a)})))}await Promise.all(r)}catch(e){this._logService.warn("[SessionDataService] Failed to run orphan cleanup",e)}}async whenIdle(){for(;;){let t=[...this._databases.liveDatabases];if(t.length===0||(await Promise.all(t.map(n=>n.whenIdle())),[...this._databases.liveDatabases].filter(n=>!t.includes(n)).length===0))return}}};zo=R([T(1,We),T(2,V)],zo);var qd=class extends C{constructor(){super(...arguments);this.capabilities=1026;this._onDidChangeCapabilities=this._register(new x);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._authorityToConnection=new Map}registerAuthority(e,n){return this._authorityToConnection.set(e,n),E(()=>this._authorityToConnection.delete(e))}watch(){return C.None}async stat(e){let n=e.path;if(n==="/"||n==="")return{type:2,mtime:0,ctime:0,size:0,permissions:1};let r=this._decodeUri(e);if(r.scheme==="session-db"||r.scheme==="git-blob")return{type:1,mtime:0,ctime:0,size:0,permissions:1};if(r.path==="/"||r.path==="")return{type:2,mtime:0,ctime:0,size:0,permissions:1};let o=tn(e),s=xe(e),l=(await this._listDirectory(e.authority,o)).find(c=>c.name===s);if(!l)throw le(`File not found: ${n}`,"EntryNotFound");return{type:l.type==="directory"?2:1,mtime:0,ctime:0,size:0,permissions:1}}async readdir(e){return(await this._listDirectory(e.authority,e)).map(r=>[r.name,r.type==="directory"?2:1])}async readFile(e){let n=this._getConnection(e.authority);try{let r=this._decodeUri(e),o=await n.resourceRead(r);return o.encoding==="base64"?tr(o.data).buffer:P.fromString(o.data).buffer}catch(r){throw this._mapError(r,"EntryNotFound")}}async writeFile(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e);await o.resourceWrite({uri:s.toString(),data:P.wrap(n).toString(),encoding:"utf-8"})}catch(s){throw this._mapError(s,"NoPermissions")}}async mkdir(){throw le("mkdir not supported on remote filesystem","NoPermissions")}async delete(e,n){let r=this._getConnection(e.authority);try{let o=this._decodeUri(e);await r.resourceDelete({uri:o.toString(),recursive:n.recursive})}catch(o){throw this._mapError(o,"NoPermissions")}}async rename(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e),a=this._decodeUri(n);await o.resourceMove({source:s.toString(),destination:a.toString(),failIfExists:!r.overwrite})}catch(s){throw this._mapError(s,"NoPermissions")}}async requestResourceAccess(e,n){let r=this._getConnection(e.authority);if(!r.resourceRequest)throw le(`Connection for ${e.authority} does not support resourceRequest`,"Unavailable");let o=this._decodeUri(e);try{await r.resourceRequest({uri:o.toString(),read:n.read,write:n.write})}catch(s){throw this._mapError(s,"NoPermissions")}}_getConnection(e){let n=this._authorityToConnection.get(e);if(!n)throw le(`No connection for authority: ${e}`,"Unavailable");return n}_mapError(e,n){return e instanceof W&&e.code===Oe.PermissionDenied?le(e.message,"NoPermissions"):le(e instanceof Error?e.message:String(e),n)}async _listDirectory(e,n){let r=this._getConnection(e);try{let o=this._decodeUri(n);return(await r.resourceList(o)).entries}catch(o){throw this._mapError(o,"Unavailable")}}};var Hd=class extends qd{_decodeUri(t){return Cb(t)}};var SI="agentHostClientResource";function II(i){return{resourceList:t=>i.call("resourceList",{uri:t.toString()}),resourceRead:t=>i.call("resourceRead",{uri:t.toString()}),resourceWrite:t=>i.call("resourceWrite",{...t,uri:t.uri.toString()}),resourceDelete:t=>i.call("resourceDelete",{...t,uri:t.uri.toString()}),resourceMove:t=>i.call("resourceMove",{...t,source:t.source.toString(),destination:t.destination.toString()})}}var PE=20,jo=class{constructor(t,e,n,r=PE){this._fileService=e;this._logService=n;this._sequencer=new yt;this._cachedNonces=new Map;this._lruOrder=[];this._cacheLoaded=!1;this._basePath=y.joinPath(t,"agentPlugins"),this._cachePath=y.joinPath(this._basePath,"cache.json"),this._maxPlugins=r}get basePath(){return this._basePath}async syncCustomizations(t,e,n){await this._ensureCacheLoaded();let r=e.map(s=>({customization:s,enabled:!0,status:"loading"}));return n?.([...r]),await Promise.all(e.map((s,a)=>this._sequencer.queue(s.uri,async()=>{try{let l=await this._syncPlugin(t,s);return r[a]={customization:s,enabled:!0,status:"loaded"},n?.([...r]),{customization:r[a],pluginDir:l}}catch(l){let c=l instanceof Error?l.message:String(l);return this._logService.error(`[AgentPluginManager] Failed to sync plugin ${s.uri}: ${c}`),r[a]={customization:s,enabled:!0,status:"error",statusMessage:c},n?.([...r]),{customization:r[a]}}})))}async _syncPlugin(t,e){let n=ho(y.parse(e.uri),t),r=this._keyForUri(e.uri),o=y.joinPath(this._basePath,r);return e.nonce&&this._cachedNonces.get(e.uri)===e.nonce?(this._touchLru(e.uri),this._logService.trace(`[AgentPluginManager] Nonce match for ${e.uri}, skipping copy`),o):(this._logService.info(`[AgentPluginManager] Syncing plugin: ${e.uri} \u2192 ${o.toString()}`),await this._fileService.copy(n,o,!0),e.nonce&&this._cachedNonces.set(e.uri,e.nonce),this._touchLru(e.uri),await this._evictIfNeeded(),await this._persistCache(),o)}_keyForUri(t){return t.replace(/[^a-zA-Z0-9]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").substring(0,128)}_touchLru(t){let e=this._lruOrder.indexOf(t);e!==-1&&this._lruOrder.splice(e,1),this._lruOrder.push(t)}async _evictIfNeeded(){for(;this._lruOrder.length>this._maxPlugins;){let t=this._lruOrder.shift();if(!t)break;this._cachedNonces.delete(t);let e=this._keyForUri(t),n=y.joinPath(this._basePath,e);this._logService.info(`[AgentPluginManager] Evicting plugin: ${t}`);try{await this._fileService.del(n,{recursive:!0})}catch(r){this._logService.warn(`[AgentPluginManager] Failed to evict plugin: ${t}`,r)}}}async _ensureCacheLoaded(){if(!this._cacheLoaded){this._cacheLoaded=!0;try{if(!await this._fileService.exists(this._cachePath))return;let t=await this._fileService.readFile(this._cachePath),e=JSON.parse(t.value.toString());if(!Array.isArray(e))return;for(let n of e)typeof n.uri=="string"&&typeof n.nonce=="string"&&(this._cachedNonces.set(n.uri,n.nonce),this._lruOrder.push(n.uri));this._logService.trace(`[AgentPluginManager] Loaded ${e.length} cache entries from disk`)}catch(t){this._logService.warn("[AgentPluginManager] Failed to load cache from disk",t)}}}async _persistCache(){try{let t=[];for(let e of this._lruOrder){let n=this._cachedNonces.get(e);n&&t.push({uri:e,nonce:n})}await this._fileService.createFolder(this._basePath),await this._fileService.writeFile(this._cachePath,P.fromString(JSON.stringify(t)))}catch(t){this._logService.warn("[AgentPluginManager] Failed to persist cache to disk",t)}}};jo=R([T(1,We),T(2,V)],jo);kE().catch(i=>{console.error(i),process.exit(1)});async function kE(){let i;nl(process)?i=new gs:i=new el("agentHost");let t=new $,e={_serviceBrand:void 0,...St},n=new xd(am(process.argv,aI),e),r=new Ed(oy(n),n.logsHome);i.registerChannel("agentHostLogger",new Pd(r,()=>dI));let o=r.createLogger("agenthost",{name:m(1889,null)}),s=new wd(o);!n.isBuilt&&ry&&t.add(iy(s)),s.info("Agent Host process started successfully");let a=t.add(new Ir(s));t.add(a.registerProvider(te.file,t.add(new $d(s)))),t.add(Hb(a));let l=new zo(y.file(n.userDataPath),a,s),c=Q(n.appSettingsHome,"globalStorage","agent-host-config.json"),u=await Mv({environmentService:n,productService:e,fileService:a,loggerService:r,logService:s,disposables:t}),d,f;try{let b=new rr;b.set(lr,n),b.set(V,s),b.set(We,a),b.set(sn,l),b.set(Ut,e),b.set(zi,u),f=new Wi(b);let w=f.createInstance(Gi);b.set(ln,w);let D=f.createInstance(Co,void 0);b.set(xo,D);let re=t.add(f.createInstance(No));b.set(md,re);let k=f.createInstance(wo);b.set(Ro,k);let O=t.add(f.createInstance(Uo));b.set(jc,O),d=new Hc(s,a,l,e,w,c,u);let M=new jo(y.file(n.userDataPath),a,s);b.set(vo,M);let se=t.add(new cr(s));b.set(Ll,se),b.set(co,d.terminalManager),b.set(ut,d.configurationService),b.set(wc,d.completionsService),d.registerProvider(f.createInstance(fe)),process.env[hs]&&d.registerProvider(f.createInstance(Fo))}catch(b){throw s.error("Failed to create AgentService",b),b}let g=Ei.fromService(d,t);i.registerChannel("agentHost",g);let h=t.add(new Hd);if(t.add(a.registerProvider(_f,h)),i instanceof gs){let b=new Map;t.add(i.onDidAddConnection(w=>{let D=w.ctx;if(typeof D!="string"||!D)return;let re=i.getChannel(SI,O=>O.ctx===D),k=II(re);b.set(w,h.registerAuthority(D,k))})),t.add(i.onDidRemoveConnection(w=>{let D=b.get(w);D&&(D.dispose(),b.delete(w))}))}let v=t.add(new x),S,_={onDidChangeConnectionCount:v.event,async startWebSocketServer(){if(S)return S;let b=q?`\\\\.\\pipe\\vscode-agent-host-${H().replace(/-/g,"")}`:B(ga.tmpdir(),`vscode-agent-host-${H().replace(/-/g,"")}.sock`),w=t.add(await pa.create({socketPath:b},s,{instantiationService:f,logsHome:n.logsHome})),D=t.add(new ti(d,d.stateManager,w,{defaultDirectory:y.file(ga.homedir()).toString(),completionTriggerCharacters:d.completionTriggerCharacters},h,s));return t.add(D.onDidChangeConnectionCount(re=>v.fire(re))),s.info(`[AgentHost] Dynamic WebSocket server listening on ${b}`),S={socketPath:b},S},async getInspectInfo(b){let w=ma.url();if(!w&&b){try{ma.open(0,"127.0.0.1",!1)}catch(D){s.error("[AgentHost] Failed to open inspector",D);return}w=ma.url()}if(w)try{let D=new URL(w);if(D.protocol!=="ws:"){s.warn(`[AgentHost] Unexpected inspector URL: ${w}`);return}let re=Number(D.port),k=D.pathname.replace(/^\/+/,"");if(!Number.isInteger(re)||!k){s.warn(`[AgentHost] Unexpected inspector URL: ${w}`);return}let O=D.hostname==="0.0.0.0"?"127.0.0.1":D.hostname==="::"?"::1":D.hostname,M=O.includes(":")?`[${O}]`:O;return{host:O,port:re,devtoolsUrl:`devtools://devtools/bundled/js_app.html?v8only=true&ws=${M}:${D.port}/${k}`}}catch{s.warn(`[AgentHost] Unexpected inspector URL: ${w}`);return}}},I=Ei.fromService(_,t);i.registerChannel("agentHostConnectionTracker",I),AE(d,h,f,n.logsHome,s,t,b=>v.fire(b)).catch(b=>{s.error("Failed to start WebSocket server",b)}),process.once("exit",()=>{d.dispose(),s.dispose(),t.dispose()})}async function AE(i,t,e,n,r,o,s){let a=process.env.VSCODE_AGENT_HOST_PORT,l=process.env.VSCODE_AGENT_HOST_SOCKET_PATH;if(!a&&!l)return;let c=process.env.VSCODE_AGENT_HOST_CONNECTION_TOKEN,u=process.env.VSCODE_AGENT_HOST_HOST||"localhost",d=o.add(await pa.create(l?{socketPath:l,connectionTokenValidate:c?h=>h===c:void 0}:{port:parseInt(a,10),host:u,connectionTokenValidate:c?h=>h===c:void 0},r,{instantiationService:e,logsHome:n})),f=o.add(new ti(i,i.stateManager,d,{defaultDirectory:y.file(ga.homedir()).toString(),completionTriggerCharacters:i.completionTriggerCharacters},t,r));o.add(f.onDidChangeConnectionCount(s)),await d.whenListening;let g=l??`${u}:${d.boundPort??a}`;r.info(`[AgentHost] WebSocket server listening on ${g}`),console.log(`Agent host server listening on ${g}`)}
//# sourceMappingURL=https://main.vscode-cdn.net/sourcemaps/f6cfa2ea2403534de03f069bdf160d06451ed282/core/vs/platform/agentHost/node/agentHostMain.js.map
