/*!--------------------------------------------------------
 * 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, Iterator */

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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
    return g.next = verb(0), g["throw"] = verb(1), g["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 = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), 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;
};

var ownKeys = function(o) {
    ownKeys = Object.getOwnPropertyNames || function (o) {
        var ar = [];
        for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
        return ar;
    };
    return ownKeys(o);
};

export function __importStar(mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
    __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;
    }
    var r, s = 0;
    function next() {
        while (r = env.stack.pop()) {
            try {
                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
                if (r.dispose) {
                    var result = r.dispose.call(r.value);
                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
                }
                else s |= 1;
            }
            catch (e) {
                fail(e);
            }
        }
        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
        if (env.hasError) throw env.error;
    }
    return next();
}

export function __rewriteRelativeImportExtension(path, preserveJsx) {
    if (typeof path === "string" && /^\.\.?\//.test(path)) {
        return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
            return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
        });
    }
    return path;
}

export default {
    __extends: __extends,
    __assign: __assign,
    __rest: __rest,
    __decorate: __decorate,
    __param: __param,
    __esDecorate: __esDecorate,
    __runInitializers: __runInitializers,
    __propKey: __propKey,
    __setFunctionName: __setFunctionName,
    __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,
    __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,
};

var nU=Object.defineProperty;var Mz=Object.getOwnPropertyDescriptor;var oU=i=>{throw TypeError(i)};var Lz=(i,t)=>{for(var e in t)nU(i,e,{get:t[e],enumerable:!0})};var D=(i,t,e,n)=>{for(var o=n>1?void 0:n?Mz(t,e):t,r=i.length-1,s;r>=0;r--)(s=i[r])&&(o=(n?s(t,e,o):s(o))||o);return n&&o&&nU(t,e,o),o},C=(i,t)=>(e,n)=>t(e,n,i);var VP=(i,t,e)=>t.has(i)||oU("Cannot "+e);var hn=(i,t,e)=>(VP(i,t,"read from private field"),e?e.call(i):t.get(i)),op=(i,t,e)=>t.has(i)?oU("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(i):t.set(i,e),Ch=(i,t,e,n)=>(VP(i,t,"write to private field"),n?n.call(i,e):t.set(i,e),e),Th=(i,t,e)=>(VP(i,t,"access private method"),e);import*as gz from"http";import wX from"minimist";import*as fz from"net";function rp(i,t){let e=Object.create(null);for(let n of i){let o=t(n),r=e[o];r||(r=e[o]=[]),r.push(n)}return e}function WP(i,t){let e=[],n=[];for(let o of i)t.has(o)||e.push(o);for(let o of t)i.has(o)||n.push(o);return{removed:e,added:n}}var iU,sU,rU=class{constructor(t,e){this.toKey=e;this._map=new Map;this[iU]="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))}[(sU=Symbol.iterator,iU=Symbol.toStringTag,sU)](){return this.values()}};var BP=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?no.isErrorNoTelemetry(t)?new no(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)}},dl=new BP;function Eh(i){dl.setUnexpectedErrorHandler(i)}function aU(i){if(!i||typeof i!="object")return!1;let t=i;return t.code==="EPIPE"&&t.syscall?.toUpperCase()==="WRITE"}function cl(i){dl.onUnexpectedError(i)}function Qe(i){Kt(i)||dl.onUnexpectedError(i)}function ta(i){Kt(i)||dl.onUnexpectedExternalError(i)}function Xi(i){if(i instanceof Error){let{name:t,message:e,cause:n}=i,o=i.stacktrace||i.stack;return{$isError:!0,name:t,message:e,stack:o,noTelemetry:no.isErrorNoTelemetry(i),cause:n?Xi(n):void 0,code:i.code}}return i}function $P(i){let t;return i.noTelemetry?t=new no:(t=new Error,t.name=i.name),t.message=i.message,t.stack=i.stack,i.code&&(t.code=i.code),i.cause&&(t.cause=$P(i.cause)),t}var Xy="Canceled";function Kt(i){return i instanceof Ue?!0:i instanceof Error&&i.name===Xy&&i.message===Xy}var Ue=class extends Error{constructor(){super(Xy),this.name=this.message}},ea=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 na(){let i=new Error(Xy);return i.name=i.message,i}function Ve(i){return i?new Error(`Illegal argument: ${i}`):new Error("Illegal argument")}function ip(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}var fi=class extends TypeError{constructor(t){super(t?`${t} is read-only and cannot be changed`:"Cannot change read-only property")}};function Zi(i){return i?i.message?i.message:i.stack?i.stack.split(`
`)[0]:String(i):"Error"}var Zy=class extends Error{constructor(t){super("NotImplemented"),t&&(this.message=t)}},oc=class extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}};var no=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"}},Rt=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function pl(i,t){let e=this,n=!1,o;return function(){if(n)return o;if(n=!0,t)try{o=i.apply(e,arguments)}finally{t()}else o=i.apply(e,arguments);return o}}function dU(i,t,e=i.length-1){let n=Nz(i,t,e);if(n!==-1)return i[n]}function Nz(i,t,e=i.length-1){for(let n=e;n>=0;n--){let o=i[n];if(t(o,n))return n}return-1}function Uz(i,t,e=0,n=i.length){let o=e,r=n;for(;o<r;){let s=Math.floor((o+r)/2);t(i[s])?o=s+1:r=s}return o-1}function cU(i,t,e=0,n=i.length){let o=e,r=n;for(;o<r;){let s=Math.floor((o+r)/2);t(i[s])?r=s:o=s+1}return o}var lU=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=Uz(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};function an(i,t,e=(n,o)=>n===o){if(i===t)return!0;if(!i||!t||i.length!==t.length)return!1;for(let n=0,o=i.length;n<o;n++)if(!e(i[n],t[n]))return!1;return!0}function pU(i,t,e){return Fz(i.length,n=>e(i[n],t))}function Fz(i,t){let e=0,n=i-1;for(;e<=n;){let o=(e+n)/2|0,r=t(o);if(r<0)e=o+1;else if(r>0)n=o-1;else return o}return-(e+1)}function mU(i,t){let e=[],n;for(let o of i.slice(0).sort(t))!n||t(n[0],o)!==0?(n=[o],e.push(n)):n.push(o);return e}function zP(i,t,e){let n=[];function o(a,l,d){if(l===0&&d.length===0)return;let c=n[n.length-1];c&&c.start+c.deleteCount===a?(c.deleteCount+=l,c.toInsert.push(...d)):n.push({start:a,deleteCount:l,toInsert:d})}let r=0,s=0;for(;;){if(r===i.length){o(r,0,t.slice(s));break}if(s===t.length){o(r,i.length-r,[]);break}let a=i[r],l=t[s],d=e(a,l);d===0?(r+=1,s+=1):d<0?(o(r,1,[]),r+=1):d>0&&(o(r,0,[l]),s+=1)}return n}function gU(i,t,e){let n=zP(i,t,e),o=[],r=[];for(let s of n)o.push(...i.slice(s.start,s.start+s.deleteCount)),r.push(...s.toInsert);return{removed:o,added:r}}function fU(i,t,e,n,o){return e===0?Promise.resolve([]):new Promise((r,s)=>{(async()=>{let a=i.length,l=i.slice(0,e).sort(t);for(let d=e,c=Math.min(e+n,a);d<a;d=c,c=Math.min(c+n,a)){if(d>e&&await new Promise(u=>setTimeout(u)),o&&o.isCancellationRequested)throw new Ue;Hz(i,t,l,d,c)}return l})().then(r,s)})}function Hz(i,t,e,n,o){for(let r=e.length;n<o;n++){let s=i[n];if(t(s,e[r-1])<0){e.pop();let a=cU(e,l=>t(s,l)<0);e.splice(a,0,s)}}}function nt(i){return i.filter(t=>!!t)}function hU(i){let t=0;for(let e=0;e<i.length;e++)i[e]&&(i[t]=i[e],t+=1);i.length=t}function wh(i){return!Array.isArray(i)||i.length===0}function ml(i){return Array.isArray(i)&&i.length>0}function qr(i,t=e=>e){let e=new Set;return i.filter(n=>{let o=t(n);return e.has(o)?!1:(e.add(o),!0)})}function qP(i,t){return i.push(t),()=>Vz(i,t)}function Vz(i,t){let e=i.indexOf(t);if(e>-1)return i.splice(e,1),t}function KP(i,t){let e;if(typeof t=="number"){let n=t;e=()=>{let o=Math.sin(n++)*179426549;return o-Math.floor(o)}}else e=Math.random;for(let n=i.length-1;n>0;n-=1){let o=Math.floor(e()*(n+1)),r=i[n];i[n]=i[o],i[o]=r}}function rc(i,t){return Array.isArray(i)?i.map(t):t(i)}function An(i){return Array.isArray(i)?i:[i]}var vU;(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})(vU||={});function bU(i,t){return(e,n)=>t(i(e),i(n))}var yU=(i,t)=>i-t;var uU=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(o=>((n||vU.isGreaterThan(t(o,e)))&&(n=!1,e=o),!0)),e}};function JP(i,t,e){let n=i.get(t);return n===void 0&&(n=e,i.set(t,n)),n}var jP=class{constructor(t,e){this.uri=t;this.value=e}};function Wz(i){return Array.isArray(i)}var IU,je=class i{constructor(t,e){this[IU]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(Wz(t)){this.map=new Map,this.toKey=e??i.defaultToKey;for(let[n,o]of t)this.set(n,o)}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 jP(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,o]of this.map)t(o.value,o.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]}*[(IU=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},xU,Dr=class{constructor(t,e){this[xU]="ResourceSet";!t||typeof t=="function"?this._map=new je(t):(this._map=new je(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,o)=>t.call(e,o,o,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(xU=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var SU,GP=class{constructor(){this[SU]="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 o=this._map.get(t);if(o)o.value=e,n!==0&&this.touch(o,n);else{switch(o={key:t,value:e,next:void 0,previous:void 0},n){case 0:this.addItemLast(o);break;case 1:this.addItemFirst(o);break;case 2:this.addItemLast(o);break;default:this.addItemLast(o);break}this._map.set(t,o),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,o=this._head;for(;o;){if(e?t.bind(e)(o.value,o.key,this):t(o.value,o.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");o=o.next}}keys(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},[Symbol.dispose](){},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.key,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return o}values(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},[Symbol.dispose](){},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.value,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return o}entries(){let t=this,e=this._state,n=this._head,o={[Symbol.iterator](){return o},[Symbol.dispose](){},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:[n.key,n.value],done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return o}[(SU=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,o=t.previous;t===this._tail?(o.next=void 0,this._tail=o):(n.previous=o,o.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,o=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=o,o.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)}},QP=class extends GP{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))}},Kr=class extends QP{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var eI=class{constructor(t){this._m1=new Map;this._m2=new Map;if(t)for(let[e,n]of t)this.set(e,n)}clear(){this._m1.clear(),this._m2.clear()}set(t,e){this._m1.set(t,e),this._m2.set(e,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){let e=this._m1.get(t);return e===void 0?!1:(this._m1.delete(t),this._m2.delete(e),!0)}forEach(t,e){this._m1.forEach((n,o)=>{t.call(e,n,o,this)})}keys(){return this._m1.keys()}values(){return this._m1.values()}},sp=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 jn(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function ap(i,t="Unreachable"){throw new Error(t)}function lp(i,t="unexpected state"){if(!i)throw typeof t=="string"?new Rt(`Assertion Failed: ${t}`):t}function kh(i){if(!i()){debugger;i(),Qe(new Rt("Assertion Failed"))}}function Me(i){return typeof i=="string"}function TU(i){return Bz(i,Me)}function Bz(i,t){return Array.isArray(i)&&i.every(t)}function st(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function EU(i){let t=Object.getPrototypeOf(Uint8Array);return typeof i=="object"&&i instanceof t}function Hn(i){return typeof i=="number"&&!isNaN(i)}function wU(i){return!!i&&typeof i[Symbol.iterator]=="function"}function tI(i){return i===!0||i===!1}function oa(i){return typeof i>"u"}function xo(i){return!Ht(i)}function Ht(i){return oa(i)||i===null}function dp(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function hi(i){return lp(i!=null,"Argument is `undefined` or `null`."),i}var $z=Object.prototype.hasOwnProperty;function cp(i){if(!st(i))return!1;for(let t in i)if($z.call(i,t))return!1;return!0}function nI(i){return typeof i=="function"}function kU(i,t){let e=Math.min(i.length,t.length);for(let n=0;n<e;n++)YP(i[n],t[n])}function YP(i,t){if(Me(t)){if(typeof i!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(nI(t)){try{if(i instanceof t)return}catch{}if(!Ht(i)&&i.constructor===t||t.length===1&&t.call(void 0,i)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function Gn(i,t){for(let e in t)if(!(e in i))return!1;return!0}var At;(N=>{function i($){return!!$&&typeof $=="object"&&typeof $[Symbol.iterator]=="function"}N.is=i;let t=Object.freeze([]);function e(){return t}N.empty=e;function*n($){yield $}N.single=n;function o($){return i($)?$:n($)}N.wrap=o;function r($){return $??t}N.from=r;function*s($){for(let X=$.length-1;X>=0;X--)yield $[X]}N.reverse=s;function a($){return!$||$[Symbol.iterator]().next().done===!0}N.isEmpty=a;function l($){return $[Symbol.iterator]().next().value}N.first=l;function d($,X){let j=0;for(let q of $)if(X(q,j++))return!0;return!1}N.some=d;function c($,X){let j=0;for(let q of $)if(!X(q,j++))return!1;return!0}N.every=c;function u($,X){for(let j of $)if(X(j))return j}N.find=u;function*m($,X){for(let j of $)X(j)&&(yield j)}N.filter=m;function*g($,X){let j=0;for(let q of $)yield X(q,j++)}N.map=g;function*h($,X){let j=0;for(let q of $)yield*X(q,j++)}N.flatMap=h;function*f(...$){for(let X of $)wU(X)?yield*X:yield X}N.concat=f;function I($,X,j){let q=j;for(let oe of $)q=X(q,oe);return q}N.reduce=I;function x($){let X=0;for(let j of $)X++;return X}N.length=x;function*T($,X,j=$.length){for(X<-$.length&&(X=0),X<0&&(X+=$.length),j<0?j+=$.length:j>$.length&&(j=$.length);X<j;X++)yield $[X]}N.slice=T;function w($,X=Number.POSITIVE_INFINITY){let j=[];if(X===0)return[j,$];let q=$[Symbol.iterator]();for(let oe=0;oe<X;oe++){let ve=q.next();if(ve.done)return[j,N.empty()];j.push(ve.value)}return[j,{[Symbol.iterator](){return q}}]}N.consume=w;async function M($){let X=[];for await(let j of $)X.push(j);return X}N.asyncToArray=M;async function O($){let X=[];for await(let j of $)X=X.concat(j);return X}N.asyncToArrayFlat=O})(At||={});var zz=!1,ic=null;var PU=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 o=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,o),o}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,d=[...this.livingDisposables.values()].filter(u=>u.source!==null&&!this.getRootParent(u,l).isSingleton);if(d.length===0)return;let c=new Set(d.map(u=>u.value));if(n=d.filter(u=>!(u.parent&&c.has(u.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function o(l){function d(u,m){for(;u.length>0&&m.some(g=>typeof g=="string"?g===u[0]:u[0].match(g));)u.shift()}let c=l.source.split(`
`).map(u=>u.trim().replace("at ","")).filter(u=>u!=="");return d(c,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),c.reverse()}let r=new sp;for(let l of n){let d=o(l);for(let c=0;c<=d.length;c++)r.add(d.slice(0,c).join(`
`),l)}n.sort(bU(l=>l.idx,yU));let s="",a=0;for(let l of n.slice(0,t)){a++;let d=o(l),c=[];for(let u=0;u<d.length;u++){let m=d[u];m=`(shared with ${r.get(d.slice(0,u+1).join(`
`)).size}/${n.length} leaks) at ${m}`;let h=r.get(d.slice(0,u).join(`
`)),f=rp([...h].map(I=>o(I)[u]),I=>I);delete f[d[u]];for(let[I,x]of Object.entries(f))x&&c.unshift(`    - stacktraces of ${x.length} other leaks continue with ${I}`);c.unshift(m)}s+=`


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

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


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

`),{leaks:n,details:s}}};function qz(i){ic=i}if(zz){let i="__is_disposable_tracked__";qz(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!==U.None)try{t[i]=!0}catch{}}markAsDisposed(t){if(t&&t!==U.None)try{t[i]=!0}catch{}}markAsSingleton(t){}})}function fl(i){return ic?.trackDisposable(i),i}function hl(i){ic?.markAsDisposed(i)}function sc(i,t){ic?.setParent(i,t)}function Kz(i,t){if(ic)for(let e of i)ic.setParent(e,t)}function Ph(i){return ic?.markAsSingleton(i),i}function rI(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function kn(i){if(At.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 up(...i){let t=Q(()=>kn(i));return Kz(i,t),t}var XP=class{constructor(t){this._isDisposed=!1,this._fn=t,fl(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,hl(this),this._fn()}}};function Q(i){return new XP(i)}var z=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;fl(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(hl(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{kn(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===U.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return sc(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)&&sc(t,null)}assertNotDisposed(){this._isDisposed&&Qe(new Rt("Object disposed"))}},U=class{constructor(){this._store=new z;fl(this),sc(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){hl(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},cn=class{constructor(){this._isDisposed=!1;fl(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&sc(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,hl(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&sc(t,null),t}};var wn=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,fl(this)}dispose(){hl(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{kn(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),sc(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&sc(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 ZP(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var oI=class extends wn{constructor(){super(new je)}};var un=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},mo=class{constructor(){this._first=un.Undefined;this._last=un.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===un.Undefined}clear(){let t=this._first;for(;t!==un.Undefined;){let e=t.next;t.prev=un.Undefined,t.next=un.Undefined,t=e}this._first=un.Undefined,this._last=un.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new un(t);if(this._first===un.Undefined)this._first=n,this._last=n;else if(e){let r=this._last;this._last=n,n.prev=r,r.next=n}else{let r=this._first;this._first=n,n.next=r,r.prev=n}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(n))}}shift(){if(this._first!==un.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==un.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==un.Undefined)return this._last.element}_remove(t){if(t.prev!==un.Undefined&&t.next!==un.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===un.Undefined&&t.next===un.Undefined?(this._first=un.Undefined,this._last=un.Undefined):t.next===un.Undefined?(this._last=this._last.prev,this._last.next=un.Undefined):t.prev===un.Undefined&&(this._first=this._first.next,this._first.prev=un.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==un.Undefined;)yield t.element,t=t.next}};function jz(){return globalThis._VSCODE_NLS_MESSAGES}function e_(){return globalThis._VSCODE_NLS_LANGUAGE}var Gz=e_()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function iI(i,t){let e;return t.length===0?e=i:e=i.replace(/\{(\d+)\}/g,(n,o)=>{let r=o[0],s=t[r],a=n;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),Gz&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function p(i,t,...e){return iI(typeof i=="number"?_U(i,t):t,e)}function _U(i,t){let e=jz()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}function ac(i,t,...e){let n;typeof i=="number"?n=_U(i,t):n=t;let o=iI(n,e);return{value:o,original:t===n?o:iI(t,e)}}var ts="en",Dh=!1,Rh=!1,_h=!1,Qz=!1,MU=!1,t_=!1,Jz=!1,n_=!1,LU=!1,OU=!1,sI,aI=ts,DU=ts,Yz,ra,ia=globalThis,ur;typeof ia.vscode<"u"&&typeof ia.vscode.process<"u"?ur=ia.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(ur=process);var NU=typeof ur?.versions?.electron=="string",Xz=NU&&ur?.type==="renderer";if(typeof ur=="object"){Dh=ur.platform==="win32",Rh=ur.platform==="darwin",_h=ur.platform==="linux",Qz=_h&&!!ur.env.SNAP&&!!ur.env.SNAP_REVISION,Jz=NU,LU=!!ur.env.CI||!!ur.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!ur.env.GITHUB_WORKSPACE,sI=ts,aI=ts;let i=ur.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);sI=t.userLocale,DU=t.osLocale,aI=t.resolvedLanguage||ts,Yz=t.languagePack?.translationsConfigFile}catch{}MU=!0}else typeof navigator=="object"&&!Xz?(ra=navigator.userAgent,Dh=ra.indexOf("Windows")>=0,Rh=ra.indexOf("Macintosh")>=0,n_=(ra.indexOf("Macintosh")>=0||ra.indexOf("iPad")>=0||ra.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,_h=ra.indexOf("Linux")>=0,OU=ra?.indexOf("Mobi")>=0,t_=!0,aI=e_()||ts,sI=navigator.language.toLowerCase(),DU=sI):console.error("Unable to resolve platform.");function o_(i){switch(i){case 0:return"Web";case 1:return"Mac";case 2:return"Linux";case 3:return"Windows"}}var lI=0;Rh?lI=1:Dh?lI=3:_h&&(lI=2);var Ce=Dh,ht=Rh,Je=_h;var dI=MU;var pr=t_,Zz=t_&&typeof ia.importScripts=="function",UU=Zz?ia.origin:void 0,FU=n_,HU=OU,bl=LU,cI=lI,ns=ra,vl=aI,e8;(n=>{function i(){return vl}n.value=i;function t(){return vl.length===2?vl==="en":vl.length>=3?vl[0]==="e"&&vl[1]==="n"&&vl[2]==="-":!1}n.isDefaultVariant=t;function e(){return vl==="en"}n.isDefault=e})(e8||={});var t8=typeof ia.postMessage=="function"&&!ia.importScripts,uI=(()=>{if(t8){let i=[];ia.addEventListener("message",e=>{if(e.data&&e.data.vscodeScheduleAsyncWork)for(let n=0,o=i.length;n<o;n++){let r=i[n];if(r.id===e.data.vscodeScheduleAsyncWork){i.splice(n,1),r.callback();return}}});let t=0;return e=>{let n=++t;i.push({id:n,callback:e}),ia.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var mr=Rh||n_?2:Dh?1:3,RU=!0,AU=!1;function pI(){if(!AU){AU=!0;let i=new Uint8Array(2);i[0]=1,i[1]=2,RU=new Uint16Array(i.buffer)[0]===513}return RU}var Ah=!!(ns&&ns.indexOf("Chrome")>=0),VU=!!(ns&&ns.indexOf("Firefox")>=0),WU=!!(!Ah&&ns&&ns.indexOf("Safari")>=0),mI=!!(ns&&ns.indexOf("Edg/")>=0),eZ=!!(ns&&ns.indexOf("Android")>=0);var lc,r_=globalThis.vscode;if(typeof r_<"u"&&typeof r_.process<"u"){let i=r_.process;lc={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"?lc={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:lc={get platform(){return Ce?"win32":ht?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var vi=lc.cwd,oo=lc.env,i_=lc.platform,n8=lc.arch;var o8=globalThis.performance.now.bind(globalThis.performance),Jt=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:o8,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 BU=!1,r8=!1,i8=100,$U=6e4;function zU(){return!!oo.VSCODE_DEV}var ye;(ze=>{ze.None=()=>U.None;function t(te){if(r8){let{onDidAddListener:Y}=te,ie=mp.create(),ee=0;te.onDidAddListener=()=>{++ee===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),ie.print()),Y?.()}}}function e(te,Y,ie){return g(te,()=>{},0,void 0,Y??!0,void 0,ie)}ze.defer=e;function n(te){return(Y,ie=null,ee)=>{let le=!1,re;return re=te(pe=>{if(!le)return re?re.dispose():le=!0,Y.call(ie,pe)},null,ee),le&&re.dispose(),re}}ze.once=n;function o(te,Y){return ze.once(ze.filter(te,Y))}ze.onceIf=o;function r(te,Y,ie){return u((ee,le=null,re)=>te(pe=>ee.call(le,Y(pe)),null,re),ie)}ze.map=r;function s(te,Y,ie){return u((ee,le=null,re)=>te(pe=>{Y(pe),ee.call(le,pe)},null,re),ie)}ze.forEach=s;function a(te,Y,ie){return u((ee,le=null,re)=>te(pe=>Y(pe)&&ee.call(le,pe),null,re),ie)}ze.filter=a;function l(te){return te}ze.signal=l;function d(...te){return(Y,ie=null,ee)=>{let le=up(...te.map(re=>re(pe=>Y.call(ie,pe))));return m(le,ee)}}ze.any=d;function c(te,Y,ie,ee){let le=ie;return r(te,re=>(le=Y(le,re),le),ee)}ze.reduce=c;function u(te,Y){let ie,ee={onWillAddFirstListener(){ie=te(le.fire,le)},onDidRemoveLastListener(){ie?.dispose()}};Y||t(ee);let le=new E(ee);return Y?.add(le),le.event}function m(te,Y){return Y instanceof Array?Y.push(te):Y&&Y.add(te),te}function g(te,Y,ie=100,ee=!1,le=!1,re,pe){let et,Ne,It,Ut=0,Ge,Rn={leakWarningThreshold:re,onWillAddFirstListener(){et=te(Qi=>{Ut++,Ne=Y(Ne,Qi),ee&&!It&&(Lo.fire(Ne),Ne=void 0),Ge=()=>{let sl=Ne;Ne=void 0,It=void 0,(!ee||Ut>1)&&Lo.fire(sl),Ut=0},typeof ie=="number"?(It&&clearTimeout(It),It=setTimeout(Ge,ie)):It===void 0&&(It=null,queueMicrotask(Ge))})},onWillRemoveListener(){le&&Ut>0&&Ge?.()},onDidRemoveLastListener(){Ge=void 0,et.dispose()}};pe||t(Rn);let Lo=new E(Rn);return pe?.add(Lo),Lo.event}ze.debounce=g;function h(te,Y=0,ie,ee){return ze.debounce(te,(le,re)=>le?(le.push(re),le):[re],Y,void 0,ie??!0,void 0,ee)}ze.accumulate=h;function f(te,Y,ie=100,ee=!0,le=!0,re,pe){let et,Ne,It,Ut=0,Ge={leakWarningThreshold:re,onWillAddFirstListener(){et=te(Lo=>{Ut++,Ne=Y(Ne,Lo),It===void 0&&(ee&&(Rn.fire(Ne),Ne=void 0,Ut=0),typeof ie=="number"?It=setTimeout(()=>{le&&Ut>0&&Rn.fire(Ne),Ne=void 0,It=void 0,Ut=0},ie):(It=0,queueMicrotask(()=>{le&&Ut>0&&Rn.fire(Ne),Ne=void 0,It=void 0,Ut=0})))})},onDidRemoveLastListener(){et.dispose()}};pe||t(Ge);let Rn=new E(Ge);return pe?.add(Rn),Rn.event}ze.throttle=f;function I(te,Y=(ee,le)=>ee===le,ie){let ee=!0,le;return a(te,re=>{let pe=ee||!Y(re,le);return ee=!1,le=re,pe},ie)}ze.latch=I;function x(te,Y,ie){return[ze.filter(te,Y,ie),ze.filter(te,ee=>!Y(ee),ie)]}ze.split=x;function T(te,Y,ie=!1,ee=[],le){let re=ee.slice(),pe;zU()&&(pe={stack:mp.create(),timerId:setTimeout(()=>{re&&re.length>0&&pe&&!pe.warned&&(pe.warned=!0,console.warn(`[Event.buffer][${Y}] potential LEAK detected: ${re.length} events buffered for ${$U/1e3}s without being consumed. Buffered here:`),pe.stack.print())},$U),warned:!1},le&&le.add(Q(()=>clearTimeout(pe.timerId))));let et=()=>{pe&&clearTimeout(pe.timerId)},Ne=te(Ge=>{re?(re.push(Ge),zU()&&pe&&!pe.warned&&re.length>=i8&&(pe.warned=!0,console.warn(`[Event.buffer][${Y}] potential LEAK detected: ${re.length} events buffered without being consumed. Buffered here:`),pe.stack.print())):Ut.fire(Ge)});le&&le.add(Ne);let It=()=>{re?.forEach(Ge=>Ut.fire(Ge)),re=null,et()},Ut=new E({onWillAddFirstListener(){Ne||(Ne=te(Ge=>Ut.fire(Ge)),le&&le.add(Ne))},onDidAddFirstListener(){re&&(ie?setTimeout(It):It())},onDidRemoveLastListener(){Ne&&Ne.dispose(),Ne=null,et()}});return le&&le.add(Ut),Ut.event}ze.buffer=T;function w(te,Y){return(ee,le,re)=>{let pe=Y(new O);return te(function(et){let Ne=pe.evaluate(et);Ne!==M&&ee.call(le,Ne)},void 0,re)}}ze.chain=w;let M=Symbol("HaltChainable");class O{constructor(){this.steps=[]}map(Y){return this.steps.push(Y),this}forEach(Y){return this.steps.push(ie=>(Y(ie),ie)),this}filter(Y){return this.steps.push(ie=>Y(ie)?ie:M),this}reduce(Y,ie){let ee=ie;return this.steps.push(le=>(ee=Y(ee,le),ee)),this}latch(Y=(ie,ee)=>ie===ee){let ie=!0,ee;return this.steps.push(le=>{let re=ie||!Y(le,ee);return ie=!1,ee=le,re?le:M}),this}evaluate(Y){for(let ie of this.steps)if(Y=ie(Y),Y===M)break;return Y}}function N(te,Y,ie=ee=>ee){let ee=(...et)=>pe.fire(ie(...et)),le=()=>te.on(Y,ee),re=()=>te.removeListener(Y,ee),pe=new E({onWillAddFirstListener:le,onDidRemoveLastListener:re});return pe.event}ze.fromNodeEventEmitter=N;function $(te,Y,ie=ee=>ee){let ee=(...et)=>pe.fire(ie(...et)),le=()=>te.addEventListener(Y,ee),re=()=>te.removeEventListener(Y,ee),pe=new E({onWillAddFirstListener:le,onDidRemoveLastListener:re});return pe.event}ze.fromDOMEventEmitter=$;function X(te,Y){let ie,ee,le=new Promise(re=>{ee=n(te)(re),c_(ee,Y),ie=()=>{KU(ee,Y)}});return le.cancel=ie,Y&&le.finally(()=>KU(ee,Y)),le}ze.toPromise=X;function j(te,Y){return te(ie=>Y.fire(ie))}ze.forward=j;function q(te,Y,ie){return Y(ie),te(ee=>Y(ee))}ze.runAndSubscribe=q;class oe{constructor(Y,ie){this._observable=Y;this._counter=0;this._hasChanged=!1;let ee={onWillAddFirstListener:()=>{Y.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Y.removeObserver(this)}};ie||t(ee),this.emitter=new E(ee),ie&&ie.add(this.emitter)}beginUpdate(Y){this._counter++}handlePossibleChange(Y){}handleChange(Y,ie){this._hasChanged=!0}endUpdate(Y){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ve(te,Y){return new oe(te,Y).emitter.event}ze.fromObservable=ve;function yt(te){return(Y,ie,ee)=>{let le=0,re=!1,pe={beginUpdate(){le++},endUpdate(){le--,le===0&&(te.reportChanges(),re&&(re=!1,Y.call(ie)))},handlePossibleChange(){},handleChange(){re=!0}};te.addObserver(pe),te.reportChanges();let et={dispose(){te.removeObserver(pe)}};return c_(et,ee),et}}ze.fromObservableLight=yt})(ye||={});var s_=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 Jt,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}}},qU=-1;var a_=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 o=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,o+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[r,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(r);let d=s/e>.3?"dominated":"popular",c=new gp(d,l,r,e,a);this._errorHandler(c)}return()=>{let r=this._stacks.get(t.value)||0;this._stacks.set(t.value,r-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[n,o]of this._stacks)(!t||e<o)&&(t=[n,o],e=o);return t}},mp=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(`
`))}},gp=class i extends Error{constructor(t,e,n,o,r){super(r?`[${r}] potential listener LEAK detected, ${t}`:`potential listener LEAK detected, ${t}`),this.name="ListenerLeakError",this.kind=t,this.listenerCount=o,this.details=e,this.stack=n}static is(t){return t instanceof i||t instanceof Error&&typeof t.kind=="string"&&typeof t.listenerCount=="number"}},l_=class extends gp{constructor(t,e,n,o,r){super(t,e,n,o,r),this.name="ListenerRefusalError"}},s8=0,pp=class{constructor(t){this.value=t;this.id=s8++}},a8=2,jU=(i,t)=>{if(i instanceof pp)t(i);else for(let e=0;e<i.length;e++){let n=i[e];n&&t(n)}},E=class{constructor(t){this._size=0;this._options=t,this._leakageMon=qU>0||this._options?.leakWarningThreshold?new a_(t?.onListenerError??Qe,this._options?.leakWarningThreshold??qU,this._options?.leakWarningName):void 0,this._perfMon=this._options?._profName?new s_(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(BU){let t=this._listeners;queueMicrotask(()=>{jU(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 d=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],c=d[1]/this._size>.3?"dominated":"popular",u=new l_(c,`${l}. HINT: Stack shows most frequent listener (${d[1]}-times)`,d[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||Qe)(u),U.None}if(this._disposed)return U.None;e&&(t=t.bind(e));let o=new pp(t),r,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(o.stack=mp.create(),r=this._leakageMon.check(o.stack,this._size+1)),BU&&(o.stack=s??mp.create()),this._listeners?this._listeners instanceof pp?(this._deliveryQueue??=new d_,this._listeners=[this._listeners,o]):this._listeners.push(o):(this._options?.onWillAddFirstListener?.(this),this._listeners=o,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=Q(()=>{r?.(),this._removeListener(o)});return c_(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 o=this._deliveryQueue.current===this;if(this._size*a8<=e.length){let r=0;for(let s=0;s<e.length;s++)e[s]?e[r++]=e[s]:o&&r<this._deliveryQueue.end&&(this._deliveryQueue.end--,r<this._deliveryQueue.i&&this._deliveryQueue.i--);e.length=r}}_deliver(t,e){if(!t)return;let n=this._options?.onListenerError||Qe;if(!n){t.value(e);return}try{t.value(e)}catch(o){n(o)}}_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 pp)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 d_=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}},os=class extends E{async fireAsync(t,e,n){if(this._listeners)for(this._asyncDeliveryQueue||(this._asyncDeliveryQueue=new mo),jU(this._listeners,o=>this._asyncDeliveryQueue.push([o.value,t]));this._asyncDeliveryQueue.size>0&&!e.isCancellationRequested;){let[o,r]=this._asyncDeliveryQueue.shift(),s=[],a={...r,token:e,waitUntil:l=>{if(Object.isFrozen(s))throw new Error("waitUntil can NOT be called asynchronous");n&&(l=n(l,o)),s.push(l)}};try{o(a)}catch(l){Qe(l);continue}Object.freeze(s),await Promise.allSettled(s).then(l=>{for(let d of l)d.status==="rejected"&&Qe(d.reason)})}}},rs=class extends E{constructor(e){super(e);this._isPaused=0;this._eventQueue=new mo;this._mergeFn=e?.merge}get isPaused(){return this._isPaused!==0}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){let e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}},fI=class extends rs{constructor(t){super(t),this._delay=t.delay??100}fire(t){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(t)}},hI=class extends E{constructor(e){super(e);this._queuedEvents=[];this._mergeFn=e?.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(n=>super.fire(n)),this._queuedEvents=[]}))}};var vI=class{constructor(){this.listening=!1;this.inputEvent=ye.None;this.inputEventListener=U.None;this.emitter=new E({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 c_(i,t){t instanceof z?t.add(i):Array.isArray(t)&&t.push(i)}function KU(i,t){if(t instanceof z)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var GU=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),me;(n=>{function i(o){return o===n.None||o===n.Cancelled||o instanceof fp?!0:!o||typeof o!="object"?!1:typeof o.isCancellationRequested=="boolean"&&typeof o.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:ye.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:GU})})(me||={});var fp=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?GU:(this._emitter||(this._emitter=new E),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},ke=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 fp),this._token}cancel(){this._token?this._token instanceof fp&&this._token.cancel():this._token=me.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof fp&&this._token.dispose():this._token=me.None}};var l8=65,d8=97,c8=90,u8=122,dc=46,go=47,fr=92,sa=58,p8=63,bI=class extends Error{constructor(t,e,n){let o;typeof e=="string"&&e.indexOf("not ")===0?(o="must not be",e=e.replace(/^not /,"")):o="must be";let r=t.indexOf(".")!==-1?"property":"argument",s=`The "${t}" ${r} ${o} of type ${e}`;s+=`. Received type ${typeof n}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}};function m8(i,t){if(i===null||typeof i!="object")throw new bI(t,"Object",i)}function Ln(i,t){if(typeof i!="string")throw new bI(t,"string",i)}var hr=i_==="win32";function ut(i){return i===go||i===fr}function u_(i){return i===go}function aa(i){return i>=l8&&i<=c8||i>=d8&&i<=u8}function yI(i,t,e,n){let o="",r=0,s=-1,a=0,l=0;for(let d=0;d<=i.length;++d){if(d<i.length)l=i.charCodeAt(d);else{if(n(l))break;l=go}if(n(l)){if(!(s===d-1||a===1))if(a===2){if(o.length<2||r!==2||o.charCodeAt(o.length-1)!==dc||o.charCodeAt(o.length-2)!==dc){if(o.length>2){let c=o.lastIndexOf(e);c===-1?(o="",r=0):(o=o.slice(0,c),r=o.length-1-o.lastIndexOf(e)),s=d,a=0;continue}else if(o.length!==0){o="",r=0,s=d,a=0;continue}}t&&(o+=o.length>0?`${e}..`:"..",r=2)}else o.length>0?o+=`${e}${i.slice(s+1,d)}`:o=i.slice(s+1,d),r=d-s-1;s=d,a=0}else l===dc&&a!==-1?++a:a=-1}return o}function g8(i){return i?`${i[0]==="."?"":"."}${i}`:""}function QU(i,t){m8(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${g8(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var vn={resolve(...i){let t="",e="",n=!1;for(let o=i.length-1;o>=-1;o--){let r;if(o>=0){if(r=i[o],Ln(r,`paths[${o}]`),r.length===0)continue}else t.length===0?r=vi():(r=oo[`=${t}`]||vi(),(r===void 0||r.slice(0,2).toLowerCase()!==t.toLowerCase()&&r.charCodeAt(2)===fr)&&(r=`${t}\\`));let s=r.length,a=0,l="",d=!1,c=r.charCodeAt(0);if(s===1)ut(c)&&(a=1,d=!0);else if(ut(c))if(d=!0,ut(r.charCodeAt(1))){let u=2,m=u;for(;u<s&&!ut(r.charCodeAt(u));)u++;if(u<s&&u!==m){let g=r.slice(m,u);for(m=u;u<s&&ut(r.charCodeAt(u));)u++;if(u<s&&u!==m){for(m=u;u<s&&!ut(r.charCodeAt(u));)u++;(u===s||u!==m)&&(l=`\\\\${g}\\${r.slice(m,u)}`,a=u)}}}else a=1;else aa(c)&&r.charCodeAt(1)===sa&&(l=r.slice(0,2),a=2,s>2&&ut(r.charCodeAt(2))&&(d=!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=`${r.slice(a)}\\${e}`,n=d,d&&t.length>0)break}return e=yI(e,!n,"\\",ut),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){Ln(i,"path");let t=i.length;if(t===0)return".";let e=0,n,o=!1,r=i.charCodeAt(0);if(t===1)return u_(r)?"\\":i;if(ut(r))if(o=!0,ut(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!ut(i.charCodeAt(a));)a++;if(a<t&&a!==l){let d=i.slice(l,a);for(l=a;a<t&&ut(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!ut(i.charCodeAt(a));)a++;if(a===t)return`\\\\${d}\\${i.slice(l)}\\`;a!==l&&(n=`\\\\${d}\\${i.slice(l,a)}`,e=a)}}}else e=1;else aa(r)&&i.charCodeAt(1)===sa&&(n=i.slice(0,2),e=2,t>2&&ut(i.charCodeAt(2))&&(o=!0,e=3));let s=e<t?yI(i.slice(e),!o,"\\",ut):"";if(s.length===0&&!o&&(s="."),s.length>0&&ut(i.charCodeAt(t-1))&&(s+="\\"),!o&&n===void 0&&i.includes(":")){if(s.length>=2&&aa(s.charCodeAt(0))&&s.charCodeAt(1)===sa)return`.\\${s}`;let a=i.indexOf(":");do if(a===t-1||ut(i.charCodeAt(a+1)))return`.\\${s}`;while((a=i.indexOf(":",a+1))!==-1)}return n===void 0?o?`\\${s}`:s:o?`${n}\\${s}`:`${n}${s}`},isAbsolute(i){Ln(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return ut(e)||t>2&&aa(e)&&i.charCodeAt(1)===sa&&ut(i.charCodeAt(2))},join(...i){if(i.length===0)return".";let t,e;for(let r=0;r<i.length;++r){let s=i[r];Ln(s,"path"),s.length>0&&(t===void 0?t=e=s:t+=`\\${s}`)}if(t===void 0)return".";let n=!0,o=0;if(typeof e=="string"&&ut(e.charCodeAt(0))){++o;let r=e.length;r>1&&ut(e.charCodeAt(1))&&(++o,r>2&&(ut(e.charCodeAt(2))?++o:n=!1))}if(n){for(;o<t.length&&ut(t.charCodeAt(o));)o++;o>=2&&(t=`\\${t.slice(o)}`)}return vn.normalize(t)},relative(i,t){if(Ln(i,"from"),Ln(t,"to"),i===t)return"";let e=vn.resolve(i),n=vn.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("\\"),f=n.split("\\");h[h.length-1]===""&&h.pop(),f[f.length-1]===""&&f.pop();let I=h.length,x=f.length,T=I<x?I:x,w;for(w=0;w<T&&h[w].toLowerCase()===f[w].toLowerCase();w++);return w===0?n:w===T?x>T?f.slice(w).join("\\"):I>T?"..\\".repeat(I-1-w)+"..":"":"..\\".repeat(I-w)+f.slice(w).join("\\")}let o=0;for(;o<i.length&&i.charCodeAt(o)===fr;)o++;let r=i.length;for(;r-1>o&&i.charCodeAt(r-1)===fr;)r--;let s=r-o,a=0;for(;a<t.length&&t.charCodeAt(a)===fr;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===fr;)l--;let d=l-a,c=s<d?s:d,u=-1,m=0;for(;m<c;m++){let h=i.charCodeAt(o+m);if(h!==t.charCodeAt(a+m))break;h===fr&&(u=m)}if(m!==c){if(u===-1)return n}else{if(d>c){if(t.charCodeAt(a+m)===fr)return n.slice(a+m+1);if(m===2)return n.slice(a+m)}s>c&&(i.charCodeAt(o+m)===fr?u=m:m===2&&(u=3)),u===-1&&(u=0)}let g="";for(m=o+u+1;m<=r;++m)(m===r||i.charCodeAt(m)===fr)&&(g+=g.length===0?"..":"\\..");return a+=u,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===fr&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=vn.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===fr){if(t.charCodeAt(1)===fr){let e=t.charCodeAt(2);if(e!==p8&&e!==dc)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(aa(t.charCodeAt(0))&&t.charCodeAt(1)===sa&&t.charCodeAt(2)===fr)return`\\\\?\\${t}`;return t},dirname(i){Ln(i,"path");let t=i.length;if(t===0)return".";let e=-1,n=0,o=i.charCodeAt(0);if(t===1)return ut(o)?i:".";if(ut(o)){if(e=n=1,ut(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!ut(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&ut(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!ut(i.charCodeAt(a));)a++;if(a===t)return i;a!==l&&(e=n=a+1)}}}}else aa(o)&&i.charCodeAt(1)===sa&&(e=t>2&&ut(i.charCodeAt(2))?3:2,n=e);let r=-1,s=!0;for(let a=t-1;a>=n;--a)if(ut(i.charCodeAt(a))){if(!s){r=a;break}}else s=!1;if(r===-1){if(e===-1)return".";r=e}return i.slice(0,r)},basename(i,t){t!==void 0&&Ln(t,"suffix"),Ln(i,"path");let e=0,n=-1,o=!0,r;if(i.length>=2&&aa(i.charCodeAt(0))&&i.charCodeAt(1)===sa&&(e=2),t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(r=i.length-1;r>=e;--r){let l=i.charCodeAt(r);if(ut(l)){if(!o){e=r+1;break}}else a===-1&&(o=!1,a=r+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=r):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(r=i.length-1;r>=e;--r)if(ut(i.charCodeAt(r))){if(!o){e=r+1;break}}else n===-1&&(o=!1,n=r+1);return n===-1?"":i.slice(e,n)},extname(i){Ln(i,"path");let t=0,e=-1,n=0,o=-1,r=!0,s=0;i.length>=2&&i.charCodeAt(1)===sa&&aa(i.charCodeAt(0))&&(t=n=2);for(let a=i.length-1;a>=t;--a){let l=i.charCodeAt(a);if(ut(l)){if(!r){n=a+1;break}continue}o===-1&&(r=!1,o=a+1),l===dc?e===-1?e=a:s!==1&&(s=1):e!==-1&&(s=-1)}return e===-1||o===-1||s===0||s===1&&e===o-1&&e===n+1?"":i.slice(e,o)},format:QU.bind(null,"\\"),parse(i){Ln(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.length,n=0,o=i.charCodeAt(0);if(e===1)return ut(o)?(t.root=t.dir=i,t):(t.base=t.name=i,t);if(ut(o)){if(n=1,ut(i.charCodeAt(1))){let u=2,m=u;for(;u<e&&!ut(i.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&ut(i.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&!ut(i.charCodeAt(u));)u++;u===e?n=u:u!==m&&(n=u+1)}}}}else if(aa(o)&&i.charCodeAt(1)===sa){if(e<=2)return t.root=t.dir=i,t;if(n=2,ut(i.charCodeAt(2))){if(e===3)return t.root=t.dir=i,t;n=3}}n>0&&(t.root=i.slice(0,n));let r=-1,s=n,a=-1,l=!0,d=i.length-1,c=0;for(;d>=n;--d){if(o=i.charCodeAt(d),ut(o)){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),o===dc?r===-1?r=d:c!==1&&(c=1):r!==-1&&(c=-1)}return a!==-1&&(r===-1||c===0||c===1&&r===a-1&&r===s+1?t.base=t.name=i.slice(s,a):(t.name=i.slice(s,r),t.base=i.slice(s,a),t.ext=i.slice(r,a))),s>0&&s!==n?t.dir=i.slice(0,s-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},f8=(()=>{if(hr){let i=/\\/g;return()=>{let t=vi().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>vi()})(),$e={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let o=i[n];Ln(o,`paths[${n}]`),o.length!==0&&(t=`${o}/${t}`,e=o.charCodeAt(0)===go)}if(!e){let n=f8();t=`${n}/${t}`,e=n.charCodeAt(0)===go}return t=yI(t,!e,"/",u_),e?`/${t}`:t.length>0?t:"."},normalize(i){if(Ln(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===go,e=i.charCodeAt(i.length-1)===go;return i=yI(i,!t,"/",u_),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return Ln(i,"path"),i.length>0&&i.charCodeAt(0)===go},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];Ln(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":$e.normalize(t.join("/"))},relative(i,t){if(Ln(i,"from"),Ln(t,"to"),i===t||(i=$e.resolve(i),t=$e.resolve(t),i===t))return"";let e=1,n=i.length,o=n-e,r=1,s=t.length-r,a=o<s?o:s,l=-1,d=0;for(;d<a;d++){let u=i.charCodeAt(e+d);if(u!==t.charCodeAt(r+d))break;u===go&&(l=d)}if(d===a)if(s>a){if(t.charCodeAt(r+d)===go)return t.slice(r+d+1);if(d===0)return t.slice(r+d)}else o>a&&(i.charCodeAt(e+d)===go?l=d:d===0&&(l=0));let c="";for(d=e+l+1;d<=n;++d)(d===n||i.charCodeAt(d)===go)&&(c+=c.length===0?"..":"/..");return`${c}${t.slice(r+l)}`},toNamespacedPath(i){return i},dirname(i){if(Ln(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===go,e=-1,n=!0;for(let o=i.length-1;o>=1;--o)if(i.charCodeAt(o)===go){if(!n){e=o;break}}else n=!1;return e===-1?t?"/":".":t&&e===1?"//":i.slice(0,e)},basename(i,t){t!==void 0&&Ln(t,"suffix"),Ln(i,"path");let e=0,n=-1,o=!0,r;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(r=i.length-1;r>=0;--r){let l=i.charCodeAt(r);if(l===go){if(!o){e=r+1;break}}else a===-1&&(o=!1,a=r+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=r):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(r=i.length-1;r>=0;--r)if(i.charCodeAt(r)===go){if(!o){e=r+1;break}}else n===-1&&(o=!1,n=r+1);return n===-1?"":i.slice(e,n)},extname(i){Ln(i,"path");let t=-1,e=0,n=-1,o=!0,r=0;for(let s=i.length-1;s>=0;--s){let a=i[s];if(a==="/"){if(!o){e=s+1;break}continue}n===-1&&(o=!1,n=s+1),a==="."?t===-1?t=s:r!==1&&(r=1):t!==-1&&(r=-1)}return t===-1||n===-1||r===0||r===1&&t===n-1&&t===e+1?"":i.slice(t,n)},format:QU.bind(null,"/"),parse(i){Ln(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===go,n;e?(t.root="/",n=1):n=0;let o=-1,r=0,s=-1,a=!0,l=i.length-1,d=0;for(;l>=n;--l){let c=i.charCodeAt(l);if(c===go){if(!a){r=l+1;break}continue}s===-1&&(a=!1,s=l+1),c===dc?o===-1?o=l:d!==1&&(d=1):o!==-1&&(d=-1)}if(s!==-1){let c=r===0&&e?1:r;o===-1||d===0||d===1&&o===s-1&&o===r+1?t.base=t.name=i.slice(c,s):(t.name=i.slice(c,o),t.base=i.slice(c,s),t.ext=i.slice(o,s))}return r>0?t.dir=i.slice(0,r-1):e&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};$e.win32=vn.win32=vn;$e.posix=vn.posix=$e;var ro=hr?vn.normalize:$e.normalize,xn=hr?vn.isAbsolute:$e.isAbsolute,He=hr?vn.join:$e.join,p_=hr?vn.resolve:$e.resolve,bi=hr?vn.relative:$e.relative,pn=hr?vn.dirname:$e.dirname,ot=hr?vn.basename:$e.basename,yl=hr?vn.extname:$e.extname,bZ=hr?vn.format:$e.format,yZ=hr?vn.parse:$e.parse,IZ=hr?vn.toNamespacedPath:$e.toNamespacedPath,Pt=hr?vn.sep:$e.sep,hp=hr?vn.delimiter:$e.delimiter;function h8(i){return i}var II=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=h8):(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 pt=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 m_(i){return i<0?0:i>255?255:i|0}function cc(i){return i<0?0:i>4294967295?4294967295:i|0}function is(i){return!i||typeof i!="string"?!0:i.trim().length===0}var b8=/{(\d+)}/g;function eF(i,...t){return t.length===0?i:i.replace(b8,function(e,n){let o=parseInt(n,10);return isNaN(o)||o<0||o>=t.length?e:t[o]})}var y8=/{([^}]+)}/g;function v_(i,t){return Object.keys(t).length===0?i:i.replace(y8,(e,n)=>t[n]??e)}function Qo(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function tF(i,t){let e=0,n=i.indexOf(t);for(;n!==-1;)e++,n=i.indexOf(t,n+t.length);return e}function b_(i,t){if(!i||!t)return i;let e=t.length,n=0;if(e===1){let o=t.charCodeAt(0);for(;n<i.length&&i.charCodeAt(n)===o;)n++}else for(;i.startsWith(t,n);)n+=e;return i.substring(n)}function vr(i,t){if(!i||!t)return i;let e=t.length,n=i.length;if(e===1){let r=n,s=t.charCodeAt(0);for(;r>0&&i.charCodeAt(r-1)===s;)r--;return i.substring(0,r)}let o=n;for(;o>0&&i.endsWith(t,o);)o-=e;return i.substring(0,o)}function SI(i,t,e={}){if(!i)throw new Error("Cannot create regex from empty string");t||(i=Qo(i)),e.wholeWord&&(/\B/.test(i.charAt(0))||(i="\\b"+i),/\B/.test(i.charAt(i.length-1))||(i=i+"\\b"));let n="";return e.global&&(n+="g"),e.matchCase||(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),new RegExp(i,n)}function CI(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function TI(i){return i.split(/\r\n|\r|\n/)}function EI(i){for(let t=0,e=i.length;t<e;t++){let n=i.charCodeAt(t);if(n!==32&&n!==9)return t}return-1}function nF(i,t=i.length-1){for(let e=t;e>=0;e--){let n=i.charCodeAt(e);if(n!==32&&n!==9)return e}return-1}function yi(i,t){return i<t?-1:i>t?1:0}function wI(i,t,e=0,n=i.length,o=0,r=t.length){for(;e<n&&o<r;e++,o++){let l=i.charCodeAt(e),d=t.charCodeAt(o);if(l<d)return-1;if(l>d)return 1}let s=n-e,a=r-o;return s<a?-1:s>a?1:0}function uc(i,t){return pc(i,t,0,i.length,0,t.length)}function pc(i,t,e=0,n=i.length,o=0,r=t.length){for(;e<n&&o<r;e++,o++){let l=i.charCodeAt(e),d=t.charCodeAt(o);if(l===d)continue;if(l>=128||d>=128)return wI(i.toLowerCase(),t.toLowerCase(),e,n,o,r);JU(l)&&(l-=32),JU(d)&&(d-=32);let c=l-d;if(c!==0)return c}let s=n-e,a=r-o;return s<a?-1:s>a?1:0}function JU(i){return i>=97&&i<=122}function y_(i){return i>=65&&i<=90}function Pn(i,t){return i.length===t.length&&pc(i,t)===0}function ss(i,t,e){return i===t||!!e&&i!==void 0&&t!==void 0&&Pn(i,t)}function la(i,t){let e=t.length;return e<=i.length&&pc(i,t,0,e)===0}function oF(i,t){let e=i.length,n=e-t.length;return n>=0&&pc(i,t,n,e)===0}function rF(i,t){let e=Math.min(i.length,t.length),n;for(n=0;n<e;n++)if(i.charCodeAt(n)!==t.charCodeAt(n))return n;return e}function mc(i){return 55296<=i&&i<=56319}function Mh(i){return 56320<=i&&i<=57343}function kI(i,t){return(i-55296<<10)+(t-56320)+65536}function I_(i,t,e){let n=i.charCodeAt(e);if(mc(n)&&e+1<t){let o=i.charCodeAt(e+1);if(Mh(o))return kI(n,o)}return n}function I8(i,t){let e=i.charCodeAt(t-1);if(Mh(e)&&t>1){let n=i.charCodeAt(t-2);if(mc(n))return kI(n,e)}return e}var f_=class{get offset(){return this._offset}constructor(t,e=0){this._str=t,this._len=t.length,this._offset=e}setOffset(t){this._offset=t}prevCodePoint(){let t=I8(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){let t=I_(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}},h_=class{get offset(){return this._iterator.offset}constructor(t,e=0){this._iterator=new f_(t,e)}nextGraphemeLength(){let t=xI.getInstance(),e=this._iterator,n=e.offset,o=t.getGraphemeBreakType(e.nextCodePoint());for(;!e.eol();){let r=e.offset,s=t.getGraphemeBreakType(e.nextCodePoint());if(YU(o,s)){e.setOffset(r);break}o=s}return e.offset-n}prevGraphemeLength(){let t=xI.getInstance(),e=this._iterator,n=e.offset,o=t.getGraphemeBreakType(e.prevCodePoint());for(;e.offset>0;){let r=e.offset,s=t.getGraphemeBreakType(e.prevCodePoint());if(YU(s,o)){e.setOffset(r);break}o=s}return n-e.offset}eol(){return this._iterator.eol()}};function x_(i,t){return new h_(i,t).nextGraphemeLength()}var g_;function x8(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function PI(i){return g_||(g_=x8()),g_.test(i)}var S8=/^[\t\n\r\x20-\x7E]*$/;function iF(i){return S8.test(i)}var C8=/[\u2028\u2029]/;function _I(i){return C8.test(i)}var T8=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,E8=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,w8=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,DZ=new RegExp("(?:"+[T8.source,E8.source,w8.source].join("|")+")","g");var sF=String.fromCharCode(65279);function aF(i){return!!(i&&i.length>0&&i.charCodeAt(0)===65279)}function lF(i,t){if(!i||!t||i.length<t.length)return!1;let e=t.length,n=i.toLowerCase(),o=0,r=-1;for(;o<e;){let s=n.indexOf(t[o],r+1);if(s<0)return!1;r=s,o++}return!0}function S_(i,t=!1){return i?(t&&(i=i.replace(/\\./g,"")),i.toLowerCase()!==i):!1}function dF(i){return i.charAt(0).toUpperCase()+i.slice(1)}function cF(i,t=1){if(t===0)return"";let e=-1;do e=i.indexOf(`
`,e+1),t--;while(t>0&&e>=0);return e===-1?i:(i[e-1]==="\r"&&e--,i.substr(0,e))}function YU(i,t){return i===0?t!==5&&t!==7:i===2&&t===3?!1:i===4||i===2||i===3||t===4||t===2||t===3?!0:!(i===8&&(t===8||t===9||t===11||t===12)||(i===11||i===9)&&(t===9||t===10)||(i===12||i===10)&&t===10||t===5||t===13||t===7||i===1||i===13&&t===14||i===6&&t===6)}var xI=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=k8()}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,o=1;for(;o<=n;)if(t<e[3*o])o=2*o;else if(t>e[3*o+1])o=2*o+1;else return e[3*o+2];return 0}};function k8(){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 XU=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new pt(()=>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 II(t=>{let e=t.split(",");function n(u){let m=new Map;for(let g=0;g<u.length;g+=2)m.set(u[g],u[g+1]);return m}function o(u,m){let g=new Map(u);for(let[h,f]of m)g.set(h,f);return g}function r(u,m){if(!u)return m;let g=new Map;for(let[h,f]of u)m.has(h)&&g.set(h,f);return g}let s=this.ambiguousCharacterData.value,a=e.filter(u=>!u.startsWith("_")&&Object.hasOwn(s,u));a.length===0&&(a=["_default"]);let l;for(let u of a){let m=n(s[u]);l=r(l,m)}let d=n(s._common),c=o(d,l);return new i(c)})}static getInstance(t){return i.cache.get(Array.from(t).join(","))}static{this._locales=new pt(()=>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())}},ZU=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 Il(i){return i===47||i===92}function DI(i){return i.replace(/[\\/]/g,$e.sep)}function uF(i){return i.indexOf("/")===-1&&(i=DI(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function Lh(i,t=$e.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(Il(n)){if(Il(i.charCodeAt(1))&&!Il(i.charCodeAt(2))){let r=3,s=r;for(;r<e&&!Il(i.charCodeAt(r));r++);if(s!==r&&!Il(i.charCodeAt(r+1))){for(r+=1;r<e;r++)if(Il(i.charCodeAt(r)))return i.slice(0,r+1).replace(/[\\/]/g,t)}}return t}else if(mF(n)&&i.charCodeAt(1)===58)return Il(i.charCodeAt(2))?i.slice(0,2)+t:i.slice(0,2);let o=i.indexOf("://");if(o!==-1){for(o+=3;o<e;o++)if(Il(i.charCodeAt(o)))return i.slice(0,o+1)}return""}var P8=/[\\/:\*\?"<>\|]/g,_8=/[/]/g,D8=/^(con|prn|aux|clock\$|nul|lpt[0-9]|com[0-9])(\.(.*?))?$/i;function pF(i,t=Ce){let e=t?P8:_8;return!(!i||i.length===0||/^\s+$/.test(i)||(e.lastIndex=0,e.test(i))||t&&D8.test(i)||i==="."||i===".."||t&&i[i.length-1]==="."||t&&i.length!==i.trim().length||i.length>255)}function vp(i,t,e){let n=i===t;return!e||n?n:!i||!t?!1:Pn(i,t)}function Rr(i,t,e,n=!1){let o=n?$e.sep:Pt;if(i===t)return!0;if(!i||!t||((i.indexOf("..")>=0||t.indexOf("..")>=0)&&(i=n?$e.normalize(i):ro(i),t=n?$e.normalize(t):ro(t)),t.length>i.length))return!1;if(e){if(!la(i,t))return!1;if(t.length===i.length)return!0;let s=t.length;return t.charAt(t.length-1)===o&&s--,i.charAt(s)===o}return t.charAt(t.length-1)!==o&&(t+=o),i.indexOf(t)===0}function mF(i){return i>=65&&i<=90||i>=97&&i<=122}function gF(i){return Ce?(i=vr(i,Pt),i.endsWith(":")&&(i+=Pt)):(i=vr(i,Pt),i||(i=Pt)),i}function C_(i){let t=ro(i);return Ce?i.length>3?!1:RI(t)&&(i.length===2||t.charCodeAt(2)===92):t===$e.sep}function RI(i,t=Ce){return t?mF(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}function T_(i,t=Ce){return RI(i,t)?i[0]:void 0}var R8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",A8="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function fF(i,t,e=8){let n="";for(let r=0;r<e;r++){let s;r===0&&Ce&&!t&&(e===3||e===4)?s=A8:s=R8,n+=s.charAt(Math.floor(Math.random()*s.length))}let o;return t?o=`${t}-${n}`:o=n,i?He(i,o):o}var M8=/^\w[\w\d+.-]*$/,L8=/^\//,O8=/^\/\//;function N8(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&&!M8.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(!L8.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(O8.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 U8(i,t){return!i&&!t?"file":i}function F8(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==Ii&&(t=Ii+t):t=Ii;break}return t}var ln="",Ii="/",H8=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,b=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,o,r,s=!1){typeof t=="object"?(this.scheme=t.scheme||ln,this.authority=t.authority||ln,this.path=t.path||ln,this.query=t.query||ln,this.fragment=t.fragment||ln):(this.scheme=U8(t,s),this.authority=e||ln,this.path=F8(this.scheme,n||ln),this.query=o||ln,this.fragment=r||ln,N8(this,s))}get fsPath(){return Oh(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:n,path:o,query:r,fragment:s}=t;return e===void 0?e=this.scheme:e===null&&(e=ln),n===void 0?n=this.authority:n===null&&(n=ln),o===void 0?o=this.path:o===null&&(o=ln),r===void 0?r=this.query:r===null&&(r=ln),s===void 0?s=this.fragment:s===null&&(s=ln),e===this.scheme&&n===this.authority&&o===this.path&&r===this.query&&s===this.fragment?this:new xl(e,n,o,r,s)}static parse(t,e=!1){let n=H8.exec(t);return n?new xl(n[2]||ln,AI(n[4]||ln),AI(n[5]||ln),AI(n[7]||ln),AI(n[9]||ln),e):new xl(ln,ln,ln,ln,ln)}static file(t){let e=ln;if(Ce&&(t=t.replace(/\\/g,Ii)),t[0]===Ii&&t[1]===Ii){let n=t.indexOf(Ii,2);n===-1?(e=t.substring(2),t=Ii):(e=t.substring(2,n),t=t.substring(n)||Ii)}return new xl("file",e,t,ln,ln)}static from(t,e){return new xl(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 Ce&&t.scheme==="file"?n=i.file(vn.join(Oh(t,!0),...e)).path:n=$e.join(t.path,...e),t.with({path:n})}toString(t=!1){return w_(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new xl(t);return e._formatted=t.external??null,e._fsPath=t._sep===bF?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};function Sl(i){return!i||typeof i!="object"?!1:typeof i.scheme=="string"&&(typeof i.authority=="string"||typeof i.authority>"u")&&(typeof i.path=="string"||typeof i.path>"u")&&(typeof i.query=="string"||typeof i.query>"u")&&(typeof i.fragment=="string"||typeof i.fragment>"u")}var bF=Ce?1:void 0,xl=class extends b{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=Oh(this,!1)),this._fsPath}toString(e=!1){return e?w_(this,!0):(this._formatted||(this._formatted=w_(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=bF),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}},yF={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 hF(i,t,e){let n,o=-1;for(let r=0;r<i.length;r++){let s=i.charCodeAt(r);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)o!==-1&&(n+=encodeURIComponent(i.substring(o,r)),o=-1),n!==void 0&&(n+=i.charAt(r));else{n===void 0&&(n=i.substr(0,r));let a=yF[s];a!==void 0?(o!==-1&&(n+=encodeURIComponent(i.substring(o,r)),o=-1),n+=a):o===-1&&(o=r)}}return o!==-1&&(n+=encodeURIComponent(i.substring(o))),n!==void 0?n:i}function V8(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+=yF[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function Oh(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,Ce&&(e=e.replace(/\//g,"\\")),e}function w_(i,t){let e=t?V8:hF,n="",{scheme:o,authority:r,path:s,query:a,fragment:l}=i;if(o&&(n+=o,n+=":"),(r||o==="file")&&(n+=Ii,n+=Ii),r){let d=r.indexOf("@");if(d!==-1){let c=r.substr(0,d);r=r.substr(d+1),d=c.lastIndexOf(":"),d===-1?n+=e(c,!1,!1):(n+=e(c.substr(0,d),!1,!1),n+=":",n+=e(c.substr(d+1),!1,!0)),n+="@"}r=r.toLowerCase(),d=r.lastIndexOf(":"),d===-1?n+=e(r,!1,!0):(n+=e(r.substr(0,d),!1,!0),n+=r.substr(d))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let d=s.charCodeAt(1);d>=65&&d<=90&&(s=`/${String.fromCharCode(d+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let d=s.charCodeAt(0);d>=65&&d<=90&&(s=`${String.fromCharCode(d+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l:hF(l,!1,!1)),n}function IF(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+IF(i.substr(3)):i}}var vF=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function AI(i){return i.match(vF)?i.replace(vF,t=>IF(t)):i}var B;(Se=>(Se.inMemory="inmemory",Se.vscode="vscode",Se.internal="private",Se.walkThrough="walkThrough",Se.walkThroughSnippet="walkThroughSnippet",Se.http="http",Se.https="https",Se.file="file",Se.mailto="mailto",Se.untitled="untitled",Se.data="data",Se.command="command",Se.vscodeRemote="vscode-remote",Se.vscodeRemoteResource="vscode-remote-resource",Se.vscodeManagedRemoteResource="vscode-managed-remote-resource",Se.vscodeUserData="vscode-userdata",Se.vscodeCustomEditor="vscode-custom-editor",Se.vscodeNotebookCell="vscode-notebook-cell",Se.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",Se.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",Se.vscodeNotebookCellOutput="vscode-notebook-cell-output",Se.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",Se.vscodeNotebookMetadata="vscode-notebook-metadata",Se.vscodeInteractiveInput="vscode-interactive-input",Se.vscodeSettings="vscode-settings",Se.vscodeWorkspaceTrust="vscode-workspace-trust",Se.vscodeTerminal="vscode-terminal",Se.vscodeImageCarousel="vscode-image-carousel",Se.vscodeChatCodeBlock="vscode-chat-code-block",Se.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",Se.vscodeChatEditor="vscode-chat-editor",Se.vscodeChatInput="chatSessionInput",Se.vscodeLocalChatSession="vscode-chat-session",Se.webviewPanel="webview-panel",Se.vscodeWebview="vscode-webview",Se.vscodeBrowser="vscode-browser",Se.extension="extension",Se.vscodeFileResource="vscode-file",Se.tmp="tmp",Se.vsls="vsls",Se.vscodeSourceControl="vscode-scm",Se.commentsInput="comment",Se.codeSetting="code-setting",Se.outputChannel="output",Se.accessibleView="accessible-view",Se.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",Se.chatEditingModel="chat-editing-text-model",Se.copilotPr="copilot-pr"))(B||={});function MI(i,t){return b.isUri(i)?Pn(i.scheme,t):la(i,t+":")}function xF(i,...t){return t.some(e=>MI(i,e))}var W8="tkn",k_=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=$e.join(e??"/",B8(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return $e.join(this._serverRootPath,B.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 ta(a),t}let e=t.authority,n=this._hosts[e];n&&n.indexOf(":")!==-1&&n.indexOf("[")===-1&&(n=`[${n}]`);let o=this._ports[e],r=this._connectionTokens[e],s=`path=${encodeURIComponent(t.path)}`;return typeof r=="string"&&(s+=`&${W8}=${encodeURIComponent(r)}`),b.from({scheme:pr?this._preferredWebSchema:B.vscodeRemoteResource,authority:`${n}:${o}`,path:pr?(window.location.pathname+"/"+this._remoteResourcesPath).replace(/\/\/+/g,"/"):this._remoteResourcesPath,query:s})}},__=new k_;function B8(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var SF="vs/../../node_modules",CF="vs/../../node_modules.asar";var D_="vscode-app",P_=class i{static{this.FALLBACK_AUTHORITY=D_}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===B.vscodeRemote?__.rewrite(t):t.scheme===B.file&&(dI||UU===`${B.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:B.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===B.vscodeFileResource?t.with({scheme:B.file,authority:t.authority!==i.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(b.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return b.joinPath(b.parse(e,!0),t);let n=He(e,t);return b.file(n)}throw new Error("Cannot determine URI for module id!")}},Cl=new P_,$Z=Object.freeze({"Cache-Control":"no-cache, no-store"}),zZ=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),$8;(r=>{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"}]]);r.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:b.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);let l=a?.get(e);if(l)return i.get(l)}r.getHeadersFromQuery=n;function o(s,a,l){if(!globalThis.crossOriginIsolated)return;let d=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,d):s[e]=d}r.addSearchParam=o})($8||={});function jr(i){return Oh(i,!0)}var as=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:yi(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===B.file)return Rr(jr(t),jr(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(TF(t.authority,e.authority))return Rr(t.path,e.path,this._ignorePathCasing(t),!0)&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return b.joinPath(t,...e)}basenameOrAuthority(t){return rt(t)||t.authority}basename(t,e){return $e.basename(t.path,e)}extname(t){return $e.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===B.file?e=b.file(pn(jr(t))).path:(e=$e.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===B.file?e=b.file(ro(jr(t))).path:e=$e.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!TF(t.authority,e.authority))return;if(t.scheme===B.file){let r=bi(jr(t),jr(e));return Ce?DI(r):r}let n=t.path||"/",o=e.path||"/";if(this._ignorePathCasing(t)){let r=0;for(let s=Math.min(n.length,o.length);r<s&&!(n.charCodeAt(r)!==o.charCodeAt(r)&&n.charAt(r).toLowerCase()!==o.charAt(r).toLowerCase());r++);n=o.substr(0,r)+n.substr(r)}return $e.relative(n,o)}resolvePath(t,e){if(t.scheme===B.file){let n=b.file(p_(jr(t),e));return t.with({authority:n.authority,path:n.path})}return e=uF(e),t.with({path:$e.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&Pn(t,e)}hasTrailingPathSeparator(t,e=Pt){if(t.scheme===B.file){let n=jr(t);return n.length>Lh(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=Pt){return EF(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=Pt){let n=!1;if(t.scheme===B.file){let o=jr(t);n=o!==void 0&&o.length===Lh(o).length&&o[o.length-1]===e}else{e="/";let o=t.path;n=o.length===1&&o.charCodeAt(o.length-1)===47}return!n&&!EF(t,e)?t.with({path:t.path+"/"}):t}},xt=new as(()=>!1),gc=new as(i=>i.scheme===B.file?!Je:!0),R_=new as(i=>!0),Vn=xt.isEqual.bind(xt),wF=xt.isEqualOrParent.bind(xt),YZ=xt.getComparisonKey.bind(xt),Nh=xt.basenameOrAuthority.bind(xt),rt=xt.basename.bind(xt),Uh=xt.extname.bind(xt),Oo=xt.dirname.bind(xt),vt=xt.joinPath.bind(xt),z8=xt.normalizePath.bind(xt),Fh=xt.relativePath.bind(xt),XZ=xt.resolvePath.bind(xt),kF=xt.isAbsolutePath.bind(xt),TF=xt.isEqualAuthority.bind(xt),EF=xt.hasTrailingPathSeparator.bind(xt),ZZ=xt.removeTrailingPathSeparator.bind(xt),eee=xt.addTrailingPathSeparator.bind(xt);var q8;(r=>{r.META_DATA_LABEL="label",r.META_DATA_DESCRIPTION="description",r.META_DATA_SIZE="size",r.META_DATA_MIME="mime";function o(s){let a=new Map;s.path.substring(s.path.indexOf(";")+1,s.path.lastIndexOf(";")).split(";").forEach(c=>{let[u,m]=c.split(":");u&&m&&a.set(u,m)});let d=s.path.substring(0,s.path.indexOf(";"));return d&&a.set(r.META_DATA_MIME,d),a}r.parseMetaData=o})(q8||={});var PF=Symbol("MicrotaskDelay");function Gr(i){return!!i&&typeof i.then=="function"}function yr(i){let t=new ke,e=i(t.token),n=!1,o=new Promise((r,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new Ue)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?rI(l)&&l.dispose():r(l)},l=>{a.dispose(),t.dispose(),s(l)})});return new class{cancel(){t.cancel(),t.dispose()}then(r,s){return o.then(r,s)}catch(r){return this.then(void 0,r)}finally(r){return o.finally(r)}}}function El(i,t,e){return new Promise((n,o)=>{let r=t.onCancellationRequested(()=>{r.dispose(),n(e)});i.then(n,o).finally(()=>r.dispose())})}function Qr(i,t){return new Promise((e,n)=>{let o=t.onCancellationRequested(()=>{o.dispose(),n(new Ue)});i.then(e,n).finally(()=>o.dispose())})}function bn(i){return new Promise((t,e)=>{let n=i();Gr(n)?n.then(t,e):t(n)})}function Bh(){let i,t;return{promise:new Promise((n,o)=>{i=n,t=o}),resolve:i,reject:t}}var A_=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new ke}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(o=>{this.activePromise=null,e(o)},o=>{this.activePromise=null,n(o)})})}dispose(){this.cancellationTokenSource.cancel()}},OI=class{constructor(){this.current=Promise.resolve(null)}queue(t){return this.current=this.current.then(()=>t(),()=>t())}},Tl=class{constructor(){this.promiseMap=new Map}queue(t,e){let o=(this.promiseMap.get(t)??Promise.resolve()).catch(()=>{}).then(e).finally(()=>{this.promiseMap.get(t)===o&&this.promiseMap.delete(t)});return this.promiseMap.set(t,o),o}peek(t){return this.promiseMap.get(t)||void 0}keys(){return this.promiseMap.keys()}},K8=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},j8=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},Hh=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((o,r)=>{this.doResolve=o,this.doReject=r}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){let o=this.task;return this.task=null,o()}}));let n=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=e===PF?j8(n):K8(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new Ue),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},da=class{constructor(t){this.delayer=new Hh(t),this.throttler=new A_}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()}},Sn=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 Vt(i,t){return t?new Promise((e,n)=>{let o=setTimeout(()=>{r.dispose(),e()},i),r=t.onCancellationRequested(()=>{clearTimeout(o),r.dispose(),n(new Ue)})}):yr(e=>Vt(i,e))}function $h(i,t=0,e){let n=setTimeout(()=>{i(),e&&o.dispose()},t),o=Q(()=>{clearTimeout(n),e?.delete(o)});return e?.add(o),o}function _F(i,t=n=>!!n,e=null){if(i.length===0)return Promise.resolve(e);let n=i.length,o=()=>{n=-1;for(let r of i)r.cancel?.()};return new Promise((r,s)=>{for(let a of i)a.then(l=>{--n>=0&&t(l)?(o(),r(l)):n===0&&r(e)}).catch(l=>{--n>=0&&(o(),s(l))})})}var M_=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new E}whenIdle(){return this.size>0?ye.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()}},L_=class extends M_{constructor(){super(1)}};var yp=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 jt;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=xt){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=xt){let o=n.getComparisonKey(t),r=this.queues.get(o);if(!r){r=new L_;let s=this.drainListenerCount++,a=ye.once(r.onDrained)(()=>{r?.dispose(),this.queues.delete(o),this.onDidQueueDrain(),this.drainListeners?.deleteAndDispose(s),this.drainListeners?.size===0&&(this.drainListeners.dispose(),this.drainListeners=void 0)});this.drainListeners||(this.drainListeners=new wn),this.drainListeners.set(s,a),this.queues.set(o,r)}return r.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 Vh=class{constructor(t,e){this._isDisposed=!1;this._token=void 0,typeof t=="function"&&typeof e=="number"&&this.setIfNotSet(t,e)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==void 0&&(clearTimeout(this._token),this._token=void 0)}cancelAndSet(t,e){if(this._isDisposed)throw new Rt("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=void 0,t()},e)}setIfNotSet(t,e){if(this._isDisposed)throw new Rt("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===void 0&&(this._token=setTimeout(()=>{this._token=void 0,t()},e))}},Ip=class{constructor(){this.disposable=void 0;this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(t,e,n=globalThis){if(this.isDisposed)throw new Rt("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();let o=n.setInterval(()=>{t()},e);this.disposable=Q(()=>{n.clearInterval(o),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}},Jn=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?.()}},Wh=class{constructor(t,e){e%1e3!==0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${e}ms is not a multiple of 1000ms.`),this.runner=t,this.timeout=e,this.counter=0,this.intervalToken=void 0,this.intervalHandler=this.onInterval.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearInterval(this.intervalToken),this.intervalToken=void 0)}schedule(t=this.timeout){t%1e3!==0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${t}ms is not a multiple of 1000ms.`),this.cancel(),this.counter=Math.ceil(t/1e3),this.intervalToken=setInterval(this.intervalHandler,1e3)}isScheduled(){return this.intervalToken!==void 0}onInterval(){this.counter--,!(this.counter>0)&&(clearInterval(this.intervalToken),this.intervalToken=void 0,this.runner?.())}},NI=class extends Jn{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()}},xp=class extends U{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new cn);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 o of e)this.pendingWork.push(o);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 Jn(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},U_,LI;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?LI=(t,e,n)=>{uI(()=>{if(o)return;let r=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,r-Date.now())}}))});let o=!1;return{dispose(){o||(o=!0)}}}:LI=(t,e,n)=>{let o=t.requestIdleCallback(e,typeof n=="number"?{timeout:n}:void 0),r=!1;return{dispose(){r||(r=!0,t.cancelIdleCallback(o))}}},U_=(t,e)=>LI(globalThis,t,e)})();var O_=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=LI(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}},UI=class extends O_{constructor(t){super(globalThis,t)}};async function DF(i,t,e){let n;for(let o=0;o<e;o++)try{return await i()}catch(r){n=r,await Vt(t)}throw n}var jt=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 Ue)}},Jr;(e=>{async function i(n){let o,r=await Promise.all(n.map(s=>s.then(a=>a,a=>{o||(o=a)})));if(typeof o<"u")throw o;return r}e.settled=i;function t(n){return new Promise(async(o,r)=>{try{await n(o,r)}catch(s){r(s)}})}e.withAsyncBody=t})(Jr||={});var ca=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 o of n)e.emitOne(o)}))})}static{this.EMPTY=i.fromArray([])}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new E,queueMicrotask(async()=>{let n={emitOne:o=>this.emitOne(o),emitMany:o=>this.emitMany(o),reject:o=>this.reject(o)};try{await Promise.resolve(t(n)),this.resolve()}catch(o){this.reject(o)}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 ye.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 o of t)n.emitOne(e(o))})}map(t){return i.map(this,t)}static filter(t,e){return new i(async n=>{for await(let o of t)e(o)&&n.emitOne(o)})}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 FI=class{constructor(t){this._deferred=new jt;this._asyncIterable=new ca(o=>{if(e){o.reject(e);return}return n&&o.emitMany(n),this._errorFn=r=>o.reject(r),this._emitOneFn=r=>o.emitOne(r),this._emitManyFn=r=>o.emitMany(r),this._deferred.p},t);let e,n;this._errorFn=o=>{e||(e=o)},this._emitOneFn=o=>{n||(n=[]),n.push(o)},this._emitManyFn=o=>{n?o.forEach(r=>n.push(r)):n=o.slice()}}get asyncIterable(){return this._asyncIterable}resolve(){this._deferred.complete()}reject(t){this._errorFn(t),this._deferred.complete()}emitOne(t){this._emitOneFn(t)}emitMany(t){this._emitManyFn(t)}};var N_=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 Rt("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 jt;return this._unsatisfiedConsumers.push(t),t.p}}},Sp=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new N_;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:o=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}}),emitMany:o=>{for(let r of o)this._producerConsumer.produce({ok:!0,value:{done:!1,value:r}})},reject:o=>this._finishError(o)});if(!this._producerConsumer.hasFinalValue)try{await n,this._finishOk()}catch(o){this._finishError(o)}})}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 o of n)e.emitOne(o)}))})}static{this.EMPTY=i.fromArray([])}static map(t,e){return new i(async n=>{for await(let o of t)n.emitOne(e(o))})}static tee(t){let e,n,o=new jt,r=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{o.complete()}},s=new i(async l=>(e=l,r(),o.p)),a=new i(async l=>(n=l,r(),o.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 o of t)e(o)&&n.emitOne(o)})}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 fc(i,t){return new F_(i,t)}var F_=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?Qe(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 o=n.indexOf(e);o>=0&&n.splice(o,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 RF(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function HI(i,t){return new Promise((e,n)=>{let o=[];VI(i,{onData:r=>{t&&o.push(r)},onError:r=>{t?n(r):e(void 0)},onEnd:()=>{e(t?t(o):void 0)}})})}function VI(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 AF(i,t){let e=fc(t);return e.end(i),e}function MF(i,t,e){let n=fc(e);return VI(i,{onData:o=>n.write(t.data(o)),onError:o=>n.error(t.error?t.error(o):o),onEnd:()=>n.end()}),n}var zh=typeof Buffer<"u",Q8=new pt(()=>new Uint8Array(256)),H_,V_,W=class i{static alloc(t){return zh?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return zh&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&zh?new i(Buffer.from(t)):(H_||(H_=new TextEncoder),new i(H_.encode(t)))}static fromByteArray(t){let e=i.alloc(t.length);for(let n=0,o=t.length;n<o;n++)e.buffer[n]=t[n];return e}static concat(t,e){if(typeof e>"u"){e=0;for(let r=0,s=t.length;r<s;r++)e+=t[r].byteLength}let n=i.alloc(e),o=0;for(let r=0,s=t.length;r<s;r++){let a=t[r];n.set(a,o),o+=a.byteLength}return n}static isNativeBuffer(t){return zh&&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 zh?this.buffer.toString():(V_||(V_=new TextDecoder(void 0,{ignoreBOM:!0})),V_.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 qh(this.buffer,t)}writeUInt32BE(t,e){Kh(this.buffer,t,e)}readUInt32LE(t){return J8(this.buffer,t)}writeUInt32LE(t,e){Y8(this.buffer,t,e)}readUInt8(t){return X8(this.buffer,t)}writeUInt8(t,e){Z8(this.buffer,t,e)}indexOf(t,e=0){return W_(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 W_(i,t,e=0){let n=t.byteLength,o=i.byteLength;if(n===0)return 0;if(n===1)return i.indexOf(t[0],e);if(n>o-e)return-1;let r=Q8.value;r.fill(t.length);for(let d=0;d<t.length;d++)r[t[d]]=t.length-d-1;let s=e+t.length-1,a=s,l=-1;for(;s<o;)if(i[s]===t[a]){if(a===0){l=s;break}s--,a--}else s+=Math.max(t.length-a,r[i[s]]),a=t.length-1;return l}function NF(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0}function UF(i,t,e){i[e+0]=t&255,t=t>>>8,i[e+1]=t&255}function qh(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function Kh(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 J8(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function Y8(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 X8(i,t){return i[t]}function Z8(i,t,e){i[e]=t}function FF(i){return RF(i,t=>W.concat(t))}function B_(i){return HI(i,t=>W.concat(t))}function HF(i){return AF(i,t=>W.concat(t))}function VF(i){return MF(i,{data:t=>typeof t=="string"?W.fromString(t):W.wrap(t)},t=>W.concat(t))}function No(i){let t=0,e=0,n=0,o=new Uint8Array(Math.floor(i.length/4*3)),r=a=>{switch(e){case 3:o[n++]=t|a,e=0;break;case 2:o[n++]=t|a>>>2,t=a<<6,e=3;break;case 1:o[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)r(l-65);else if(l>=97&&l<=122)r(l-97+26);else if(l>=48&&l<=57)r(l-48+52);else if(l===43||l===45)r(62);else if(l===47||l===95)r(63);else{if(l===61)break;throw new SyntaxError(`Unexpected base64 character ${i[a]}`)}}let s=n;for(;e>0;)r(0);return W.wrap(o).slice(0,s)}var e9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function so({buffer:i},t=!0,e=!1){let n=e?t9:e9,o="",r=i.byteLength%3,s=0;for(;s<i.byteLength-r;s+=3){let a=i[s+0],l=i[s+1],d=i[s+2];o+=n[a>>>2],o+=n[(a<<4|l>>>4)&63],o+=n[(l<<2|d>>>6)&63],o+=n[d&63]}if(r===1){let a=i[s+0];o+=n[a>>>2],o+=n[a<<4&63],t&&(o+="==")}else if(r===2){let a=i[s+0],l=i[s+1];o+=n[a>>>2],o+=n[(a<<4|l>>>4)&63],o+=n[l<<2&63],t&&(o+="=")}return o}var LF="0123456789abcdef";function wl({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=LF[n>>>4],t+=LF[n&15]}return t}function jh(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]=OF(i,e++)<<4|OF(i,e++);return W.wrap(t)}function OF(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 $_(i){let t=[];typeof i=="number"&&t.push("code/timeOrigin",i);function e(r,s){t.push(r,s?.startTime??Date.now())}function n(){let r=[];for(let s=0;s<t.length;s+=2)r.push({name:t[s],startTime:t[s+1]});return r}function o(r){if(typeof r>"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]===r&&t.splice(s,2)}return{mark:e,getMarks:n,clearMarks:o}}function n9(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?$_():{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 $_(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),$_()}function o9(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=n9()),i.MonacoPerformanceMarks}var z_=o9(globalThis),Wt=z_.mark,r9=z_.clearMarks,BF=z_.getMarks;var xi={};Lz(xi,{Promises:()=>at,RimRafMode:()=>j_,SymlinkSupport:()=>Uo,configureFlushOnWrite:()=>Q_,realcase:()=>K_,realpathSync:()=>J_,whenDeleted:()=>f9,writeFileSync:()=>y9});import*as Fe from"fs";import{tmpdir as c9}from"os";import{promisify as Gh}from"util";var i9=new Kr(1e4);function hc(i){return $F(i,"NFC",i9)}var s9=new Kr(1e4);function WI(i){return $F(i,"NFD",s9)}var a9=/[^\u0000-\u0080]/;function $F(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let o;return a9.test(i)?o=i.normalize(t):o=i,e.set(i,o),o}var l9=(function(){let i=new Kr(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let o=WI(e).replace(t,""),r=(o.length===e.length?o:e).toLowerCase();return i.set(e,r),r}})();var j_=(e=>(e[e.UNLINK=0]="UNLINK",e[e.MOVE=1]="MOVE",e))(j_||{});async function KF(i,t=0,e){if(C_(i))throw new Error("rimraf - will refuse to recursively delete root");return t===0?q_(i):u9(i,e)}async function u9(i,t=fF(c9())){try{try{await Fe.promises.rename(i,t)}catch(e){return e.code==="ENOENT"?void 0:q_(i)}q_(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function q_(i){return Fe.promises.rm(i,{recursive:!0,force:!0,maxRetries:3})}async function BI(i,t){try{return await zF(i,t)}catch(e){if(e.code==="ENOENT"&&Ce&&C_(i))try{return await zF(`${i}.`,t)}catch{}throw e}}async function zF(i,t){return m9(await(t?p9(i):Fe.promises.readdir(i)))}async function p9(i){try{return await Fe.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 BI(i);for(let n of e){let o=!1,r=!1,s=!1;try{let a=await Fe.promises.lstat(He(i,n));o=a.isFile(),r=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:()=>o,isDirectory:()=>r,isSymbolicLink:()=>s})}return t}function m9(i){return i.map(t=>typeof t=="string"?ht?hc(t):t:(t.name=ht?hc(t.name):t.name,t))}async function g9(i){let t=await BI(i),e=[];for(let n of t)await Uo.existsDirectory(He(i,n))&&e.push(n);return e}function f9(i,t=1e3){return new Promise(e=>{let n=!1,o=setInterval(()=>{n||(n=!0,Fe.access(i,r=>{n=!1,r&&(clearInterval(o),e(void 0))}))},t)})}var Uo;(n=>{async function i(o){let r;try{if(r=await Fe.promises.lstat(o),!r.isSymbolicLink())return{stat:r}}catch{}try{return{stat:await Fe.promises.stat(o),symbolicLink:r?.isSymbolicLink()?{dangling:!1}:void 0}}catch(s){if(s.code==="ENOENT"&&r)return{stat:r,symbolicLink:{dangling:!0}};if(Ce&&s.code==="EACCES")try{return{stat:await Fe.promises.stat(await Fe.promises.readlink(o)),symbolicLink:{dangling:!1}}}catch(a){if(a.code==="ENOENT"&&r)return{stat:r,symbolicLink:{dangling:!0}};throw a}throw s}}n.stat=i;async function t(o){try{let{stat:r,symbolicLink:s}=await n.stat(o);return r.isFile()&&s?.dangling!==!0}catch{}return!1}n.existsFile=t;async function e(o){try{let{stat:r,symbolicLink:s}=await n.stat(o);return r.isDirectory()&&s?.dangling!==!0}catch{}return!1}n.existsDirectory=e})(Uo||={});var h9=new yp;function v9(i,t,e){return h9.queueFor(b.file(i),()=>{let n=jF(e);return new Promise((o,r)=>b9(i,t,n,s=>s?r(s):o()))},gc)}var G_=!0;function Q_(i){G_=i}function b9(i,t,e,n){if(!G_)return Fe.writeFile(i,t,{mode:e.mode,flag:e.flag},n);Fe.open(i,e.flag,e.mode,(o,r)=>{if(o)return n(o);Fe.writeFile(r,t,s=>{if(s)return Fe.close(r,()=>n(s));Fe.fdatasync(r,a=>(a&&(console.warn("[node.js fs] fdatasync is now disabled for this session because it failed: ",a),Q_(!1)),Fe.close(r,l=>n(l))))})})}function y9(i,t,e){let n=jF(e);if(!G_)return Fe.writeFileSync(i,t,{mode:n.mode,flag:n.flag});let o=Fe.openSync(i,n.flag,n.mode);try{Fe.writeFileSync(o,t);try{Fe.fdatasyncSync(o)}catch(r){console.warn("[node.js fs] fdatasyncSync is now disabled for this session because it failed: ",r),Q_(!1)}}finally{Fe.closeSync(o)}}function jF(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 I9(i,t,e=6e4){if(i!==t)try{Ce&&typeof e=="number"?await GF(i,t,Date.now(),e):await Fe.promises.rename(i,t)}catch(n){if(i.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||i.endsWith("."))await QF(i,t,{preserveSymlinks:!1}),await KF(i,1);else throw n}}async function GF(i,t,e,n,o=0){try{return await Fe.promises.rename(i,t)}catch(r){if(r.code!=="EACCES"&&r.code!=="EPERM"&&r.code!=="EBUSY")throw r;if(Date.now()-e>=n)throw console.error(`[node.js fs] rename failed after ${o} retries with error: ${r}`),r;if(o===0){let s=!1;try{let{stat:a}=await Uo.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw r}return await Vt(Math.min(100,o*10)),GF(i,t,e,n,o+1)}}async function QF(i,t,e){return JF(i,t,{root:{source:i,target:t},options:e,handledSourcePaths:new Set})}var qF=511;async function JF(i,t,e){if(e.handledSourcePaths.has(i))return;e.handledSourcePaths.add(i);let{stat:n,symbolicLink:o}=await Uo.stat(i);if(o){if(e.options.preserveSymlinks)try{return await C9(i,t,e)}catch{}if(o.dangling)return}return n.isDirectory()?x9(i,t,n.mode&qF,e):S9(i,t,n.mode&qF)}async function x9(i,t,e,n){await Fe.promises.mkdir(t,{recursive:!0,mode:e});let o=await BI(i);for(let r of o)await JF(He(i,r),He(t,r),n)}async function S9(i,t,e){await Fe.promises.copyFile(i,t),await Fe.promises.chmod(t,e)}async function C9(i,t,e){let n=await Fe.promises.readlink(i);Rr(n,e.root.source,!Je)&&(n=He(e.root.target,n.substr(e.root.source.length+1))),await Fe.promises.symlink(n,t)}async function K_(i,t){if(Je)return i;let e=pn(i);if(i===e)return i;let n=(ot(i)||i).toLowerCase();try{if(t?.isCancellationRequested)return null;let r=(await at.readdir(e)).filter(s=>s.toLowerCase()===n);if(r.length===1){let s=await K_(e,t);if(s)return He(s,r[0])}else if(r.length>1){let s=r.indexOf(n);if(s>=0){let a=await K_(e,t);if(a)return He(a,r[s])}}}catch{}return null}async function T9(i){try{return await Gh(Fe.realpath)(i)}catch{let t=YF(i);return await Fe.promises.access(t,Fe.constants.R_OK),t}}function J_(i){try{return Fe.realpathSync(i)}catch{let t=YF(i);return Fe.accessSync(t,Fe.constants.R_OK),t}}function YF(i){return vr(ro(i),Pt)}var at=new class{get read(){return(i,t,e,n,o)=>new Promise((r,s)=>{Fe.read(i,t,e,n,o,(a,l,d)=>a?s(a):r({bytesRead:l,buffer:d}))})}get write(){return(i,t,e,n,o)=>new Promise((r,s)=>{Fe.write(i,t,e,n,o,(a,l,d)=>a?s(a):r({bytesWritten:l,buffer:d}))})}get fdatasync(){return Gh(Fe.fdatasync)}get open(){return Gh(Fe.open)}get close(){return Gh(Fe.close)}get ftruncate(){return Gh(Fe.ftruncate)}async exists(i){try{return await Fe.promises.access(i),!0}catch{return!1}}get readdir(){return BI}get readDirsInDir(){return g9}get writeFile(){return v9}get rm(){return KF}get rename(){return I9}get copy(){return QF}get realpath(){return T9}};function XF(i){return(t,e,n)=>{let o=null,r=null;if(typeof n.value=="function"?(o="value",r=n.value):typeof n.get=="function"&&(o="get",r=n.get),!r||typeof e=="symbol")throw new Error("not supported");n[o]=i(r,e)}}function $I(i,t,e){let n=null,o=null;if(typeof e.value=="function"?(n="value",o=e.value,o.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof e.get=="function"&&(n="get",o=e.get),!o)throw new Error("not supported");let r=`$memoize$${t}`;e[n]=function(...s){return this.hasOwnProperty(r)||Object.defineProperty(this,r,{configurable:!1,enumerable:!1,writable:!1,value:o.apply(this,s)}),this[r]}}function vc(i,t,e){return XF((n,o)=>{let r=`$debounce$${o}`,s=`$debounce$result$${o}`;return function(...a){this[s]||(this[s]=e?e():void 0),clearTimeout(this[r]),t&&(this[s]=t(this[s],...a),a=[this[s]]),this[r]=setTimeout(()=>{n.apply(this,a),this[s]=e?e():void 0},i)}})}function ZF(i,t,e){return XF((n,o)=>{let r=`$throttle$timer$${o}`,s=`$throttle$result$${o}`,a=`$throttle$lastRun$${o}`,l=`$throttle$pending$${o}`;return function(...d){if(this[s]||(this[s]=e?e():void 0),(this[a]===null||this[a]===void 0)&&(this[a]=-Number.MAX_VALUE),t&&(this[s]=t(this[s],...d)),this[l])return;let c=this[a]+i;c<=Date.now()?(this[a]=Date.now(),n.apply(this,[this[s]]),this[s]=e?e():void 0):(this[l]=!0,this[r]=setTimeout(()=>{this[l]=!1,this[a]=Date.now(),n.apply(this,[this[s]]),this[s]=e?e():void 0},c-Date.now()))}})}function e2(i){return JSON.stringify(i,E9)}function zI(i){let t=JSON.parse(i);return t=St(t),t}function E9(i,t){return t instanceof RegExp?{$mid:2,source:t.source,flags:t.flags}:t}function St(i,t=0){if(!i||t>200)return i;if(typeof i=="object"){switch(i.$mid){case 1:return b.revive(i);case 2:return new RegExp(i.source,i.flags);case 17:return new Date(i.source)}if(i instanceof W||i instanceof Uint8Array)return i;if(Array.isArray(i))for(let e=0;e<i.length;++e)i[e]=St(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=St(i[e],t+1))}return i}function t2(i){switch(i){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function n2(i){switch(i){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function Tp(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 w9=kl(0);function Ep(i,t){if(t===0){i.write(w9);return}let e=0;for(let o=t;o!==0;o=o>>>7)e++;let n=W.alloc(e);for(let o=0;t!==0;o++)n.buffer[o]=t&127,t=t>>>7,t>0&&(n.buffer[o]|=128);i.write(n)}var Y_=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}},X_=class{constructor(){this.buffers=[]}get buffer(){return W.concat(this.buffers)}write(t){this.buffers.push(t)}dispose(){this.buffers.length=0}};function kl(i){let t=W.alloc(1);return t.writeUInt8(i,0),t}var bc={Undefined:kl(0),String:kl(1),Buffer:kl(2),VSBuffer:kl(3),Array:kl(4),Object:kl(5),Uint:kl(6)};function Z_(i,t){if(typeof t>"u")i.write(bc.Undefined);else if(typeof t=="string"){let e=W.fromString(t);i.write(bc.String),Ep(i,e.byteLength),i.write(e)}else if(W.isNativeBuffer(t)){let e=W.wrap(t);i.write(bc.Buffer),Ep(i,e.byteLength),i.write(e)}else if(t instanceof W)i.write(bc.VSBuffer),Ep(i,t.byteLength),i.write(t);else if(Array.isArray(t)){i.write(bc.Array),Ep(i,t.length);for(let e of t)Z_(i,e)}else if(typeof t=="number"&&(t|0)===t)i.write(bc.Uint),Ep(i,t);else{let e=W.fromString(JSON.stringify(t));i.write(bc.Object),Ep(i,e.byteLength),i.write(e)}}function eD(i){switch(i.read(1).readUInt8(0)){case 0:return;case 1:return i.read(Tp(i)).toString();case 2:return i.read(Tp(i)).buffer;case 3:return i.read(Tp(i));case 4:{let e=Tp(i),n=[];for(let o=0;o<e;o++)n.push(eD(i));return n}case 5:return JSON.parse(i.read(Tp(i)).toString());case 6:return Tp(i)}}var Qh=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 E;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,o,r){return e.isDisposed?Promise.reject(new Ue):e.requestPromise(t,n,o,r)},listen(n,o){return e.isDisposed?ye.None:e.requestEvent(t,n,o)}}}requestPromise(t,e,n,o=me.None){let r=this.lastRequestId++,a={id:r,type:100,channelName:t,name:e,arg:n};if(o.isCancellationRequested)return Promise.reject(new Ue);let l,d;return new Promise((u,m)=>{if(o.isCancellationRequested)return m(new Ue);let g=()=>{let I=x=>{switch(x.type){case 201:this.handlers.delete(r),u(x.data);break;case 202:{this.handlers.delete(r);let T=new Error(x.data.message);T.stack=Array.isArray(x.data.stack)?x.data.stack.join(`
`):x.data.stack,T.name=x.data.name,m(T);break}case 203:this.handlers.delete(r),m(x.data);break}};this.handlers.set(r,I);try{this.sendRequest(a)}catch(x){this.handlers.delete(r),m(x)}},h=null;this.state===1?g():(h=yr(I=>this.whenInitialized()),h.then(()=>{h=null,g()}));let f=()=>{h?(h.cancel(),h=null):this.sendRequest({id:r,type:101}),m(new Ue)};l=o.onCancellationRequested(f),d={dispose:pl(()=>{f(),l.dispose()})},this.activeRequests.add(d)}).finally(()=>{l?.dispose(),this.activeRequests.delete(d)})}requestEvent(t,e,n){let o=this.lastRequestId++,s={id:o,type:102,channelName:t,name:e,arg:n},a=null,l=new E({onWillAddFirstListener:()=>{let c=()=>{this.activeRequests.add(l),this.sendRequest(s)};this.state===1?c():(a=yr(u=>this.whenInitialized()),a.then(()=>{a=null,c()}))},onDidRemoveLastListener:()=>{a?(a.cancel(),a=null):(this.activeRequests.delete(l),this.sendRequest({id:o,type:103})),this.handlers.delete(o)}}),d=c=>l.fire(c.data);return this.handlers.set(o,d),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,`${t2(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,t2(t.type));return}}}send(t,e=void 0){let n=new X_;try{return Z_(n,t),Z_(n,e),this.sendBuffer(n.buffer)}finally{n.dispose()}}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new Y_(t),n=eD(e),o=eD(e),r=n[0];switch(r){case 200:return this.logger?.logIncoming(t.byteLength,0,0,n2(r)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,n2(r),o),this.onResponse({type:n[0],id:n[1],data:o})}}onResponse(t){if(t.type===200){this.state=1,this._onDidInitialize.fire();return}this.handlers.get(t.id)?.(t)}get onDidInitializePromise(){return ye.toPromise(this.onDidInitialize)}whenInitialized(){return this.state===1?Promise.resolve():this.onDidInitializePromise}dispose(){this.isDisposed=!0,this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),kn(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};D([$I],Qh.prototype,"onDidInitializePromise",1);function o2(i){let t=!1;return{call(e,n,o){return t?i.call(e,n,o):Vt(0).then(()=>t=!0).then(()=>i.call(e,n,o))},listen(e,n){if(t)return i.listen(e,n);let o=new vI;return Vt(0).then(()=>t=!0).then(()=>o.input=i.listen(e,n)),o.event}}}var tD;(o=>{function i(r,s,a){let l=r,d=a?.disableMarshalling,c=new Map;for(let u in l)e(u)&&c.set(u,ye.buffer(l[u],u,!0,void 0,s));return new class{listen(u,m,g){let h=c.get(m);if(h)return h;let f=l[m];if(typeof f=="function"){if(n(m))return f.call(l,g);if(e(m))return c.set(m,ye.buffer(l[m],m,!0,void 0,s)),c.get(m)}throw new no(`Event not found: ${m}`)}call(u,m,g){let h=l[m];if(typeof h=="function"){if(!d&&Array.isArray(g))for(let I=0;I<g.length;I++)g[I]=St(g[I]);let f=h.apply(l,g);return f instanceof Promise||(f=Promise.resolve(f)),f}throw new no(`Method not found: ${m}`)}}}o.fromService=i;function t(r,s){let a=s?.disableMarshalling;return new Proxy({},{get(l,d){if(typeof d=="string")return s?.properties?.has(d)?s.properties.get(d):n(d)?function(c){return r.listen(d,c)}:e(d)?r.listen(d):async function(...c){let u;s&&!Ht(s.context)?u=[s.context,...c]:u=c;let m=await r.call(d,u);return a?m:St(m)};throw new no(`Property not found: ${String(d)}`)}})}o.toService=t;function e(r){return r[0]==="o"&&r[1]==="n"&&y_(r.charCodeAt(2))}function n(r){return/^onDynamic/.test(r)&&y_(r.charCodeAt(9))}})(tD||={});var Yh;(s=>{s.enableDiagnostics=!1,s.records=[];let e=new WeakMap,n=0;function o(a,l){if(!e.has(a)){let d=String(++n);e.set(a,d)}return e.get(a)}function r(a,l,d,c){}s.traceSocketEvent=r})(Yh||={});var nD=null;function Pl(){return nD||(nD=W.alloc(0)),nD}var Jh=class{get byteLength(){return this._totalLength}constructor(){this._chunks=[],this._totalLength=0}acceptChunk(t){this._chunks.push(t),this._totalLength+=t.byteLength}read(t){return this._read(t,!0)}peek(t){return this._read(t,!1)}_read(t,e){if(t===0)return Pl();if(t>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===t){let s=this._chunks[0];return e&&(this._chunks.shift(),this._totalLength-=t),s}if(this._chunks[0].byteLength>t){let s=this._chunks[0].slice(0,t);return e&&(this._chunks[0]=this._chunks[0].slice(t),this._totalLength-=t),s}let n=W.alloc(t),o=0,r=0;for(;t>0;){let s=this._chunks[r];if(s.byteLength>t){let a=s.slice(0,t);n.set(a,o),o+=t,e&&(this._chunks[r]=s.slice(t),this._totalLength-=t),t-=t}else n.set(s,o),o+=s.byteLength,e?(this._chunks.shift(),this._totalLength-=s.byteLength):r++,t-=s.byteLength}return n}};function r2(i){switch(i){case 0:return"None";case 1:return"Regular";case 2:return"Control";case 3:return"Ack";case 5:return"Disconnect";case 6:return"ReplayRequest";case 7:return"PauseWriting";case 8:return"ResumeWriting";case 9:return"KeepAlive"}}var Yr=class{constructor(t,e,n,o){this.type=t;this.id=e;this.ack=n;this.data=o;this.writtenTime=0}get size(){return this.data.byteLength}},qI=class extends U{constructor(e){super();this._onMessage=this._register(new E);this.onMessage=this._onMessage.event;this._state={readHead:!0,readLen:13,messageType:0,id:0,ack:0};this._socket=e,this._isDisposed=!1,this._incomingData=new Jh,this._register(this._socket.onData(n=>this.acceptChunk(n))),this.lastReadTime=Date.now()}acceptChunk(e){if(!(!e||e.byteLength===0))for(this.lastReadTime=Date.now(),this._incomingData.acceptChunk(e);this._incomingData.byteLength>=this._state.readLen;){let n=this._incomingData.read(this._state.readLen);if(this._state.readHead)this._state.readHead=!1,this._state.readLen=n.readUInt32BE(9),this._state.messageType=n.readUInt8(0),this._state.id=n.readUInt32BE(1),this._state.ack=n.readUInt32BE(5),this._socket.traceSocketEvent("protocolHeaderRead",{messageType:r2(this._state.messageType),id:this._state.id,ack:this._state.ack,messageSize:this._state.readLen});else{let o=this._state.messageType,r=this._state.id,s=this._state.ack;if(this._state.readHead=!0,this._state.readLen=13,this._state.messageType=0,this._state.id=0,this._state.ack=0,this._socket.traceSocketEvent("protocolMessageRead",n),this._onMessage.fire(new Yr(o,r,s,n)),this._isDisposed)break}}}readEntireBuffer(){return this._incomingData.read(this._incomingData.byteLength)}dispose(){this._isDisposed=!0,super.dispose()}},KI=class{constructor(t){this._writeNowTimeout=null;this._isDisposed=!1,this._isPaused=!1,this._socket=t,this._data=[],this._totalLength=0,this.lastWriteTime=0}dispose(){try{this.flush()}catch{}this._isDisposed=!0}drain(){return this.flush(),this._socket.drain()}flush(){this._writeNow()}pause(){this._isPaused=!0}resume(){this._isPaused=!1,this._scheduleWriting()}write(t){if(this._isDisposed)return;t.writtenTime=Date.now(),this.lastWriteTime=Date.now();let e=W.alloc(13);e.writeUInt8(t.type,0),e.writeUInt32BE(t.id,1),e.writeUInt32BE(t.ack,5),e.writeUInt32BE(t.data.byteLength,9),this._socket.traceSocketEvent("protocolHeaderWrite",{messageType:r2(t.type),id:t.id,ack:t.ack,messageSize:t.data.byteLength}),this._socket.traceSocketEvent("protocolMessageWrite",t.data),this._writeSoon(e,t.data)}_bufferAdd(t,e){let n=this._totalLength===0;return this._data.push(t,e),this._totalLength+=t.byteLength+e.byteLength,n}_bufferTake(){let t=W.concat(this._data,this._totalLength);return this._data.length=0,this._totalLength=0,t}_writeSoon(t,e){this._bufferAdd(t,e)&&this._scheduleWriting()}_scheduleWriting(){this._writeNowTimeout||(this._writeNowTimeout=setTimeout(()=>{this._writeNowTimeout=null,this._writeNow()}))}_writeNow(){if(this._totalLength===0||this._isPaused)return;let t=this._bufferTake();this._socket.traceSocketEvent("protocolWrite",{byteLength:t.byteLength}),this._socket.write(t)}};var ls=class{constructor(){this._hasListeners=!1;this._isDeliveringMessages=!1;this._bufferedMessages=[];this._emitter=new E({onWillAddFirstListener:()=>{this._hasListeners=!0,queueMicrotask(()=>this._deliverMessages())},onDidRemoveLastListener:()=>{this._hasListeners=!1}}),this.event=this._emitter.event}_deliverMessages(){if(!this._isDeliveringMessages){for(this._isDeliveringMessages=!0;this._hasListeners&&this._bufferedMessages.length>0;)this._emitter.fire(this._bufferedMessages.shift());this._isDeliveringMessages=!1}}fire(t){this._hasListeners?this._bufferedMessages.length>0?this._bufferedMessages.push(t):this._emitter.fire(t):this._bufferedMessages.push(t)}flushBuffer(){this._bufferedMessages=[]}},oD=class{constructor(t){this.data=t,this.next=null}},rD=class{constructor(){this._first=null,this._last=null}length(){let t=0,e=this._first;for(;e;)e=e.next,t++;return t}peek(){return this._first?this._first.data:null}toArray(){let t=[],e=0,n=this._first;for(;n;)t[e++]=n.data,n=n.next;return t}pop(){if(this._first){if(this._first===this._last){this._first=null,this._last=null;return}this._first=this._first.next}}push(t){let e=new oD(t);if(!this._first){this._first=e,this._last=e;return}this._last.next=e,this._last=e}},iD=class i{static{this._HISTORY_LENGTH=10}static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this.lastRuns=[];let t=Date.now();for(let e=0;e<i._HISTORY_LENGTH;e++)this.lastRuns[e]=t-1e3*e;setInterval(()=>{for(let e=i._HISTORY_LENGTH;e>=1;e--)this.lastRuns[e]=this.lastRuns[e-1];this.lastRuns[0]=Date.now()},1e3)}load(){let t=Date.now(),e=(1+i._HISTORY_LENGTH)*1e3,n=0;for(let o=0;o<i._HISTORY_LENGTH;o++)t-this.lastRuns[o]<=e&&n++;return 1-n/i._HISTORY_LENGTH}hasHighLoad(){return this.load()>=.5}},yc=class{constructor(t){this._onControlMessage=new ls;this.onControlMessage=this._onControlMessage.event;this._onMessage=new ls;this.onMessage=this._onMessage.event;this._onDidDispose=new ls;this.onDidDispose=this._onDidDispose.event;this._onSocketClose=new ls;this.onSocketClose=this._onSocketClose.event;this._onSocketTimeout=new ls;this.onSocketTimeout=this._onSocketTimeout.event;this._loadEstimator=t.loadEstimator??iD.getInstance(),this._shouldSendKeepAlive=t.sendKeepAlive??!0,this._isReconnecting=!1,this._outgoingUnackMsg=new rD,this._outgoingMsgId=0,this._outgoingAckId=0,this._outgoingAckTimeout=null,this._incomingMsgId=0,this._incomingAckId=0,this._incomingMsgLastTime=0,this._incomingAckTimeout=null,this._lastReplayRequestTime=0,this._lastSocketTimeoutTime=Date.now(),this._socketDisposables=new z,this._socket=t.socket,this._socketWriter=this._socketDisposables.add(new KI(this._socket)),this._socketReader=this._socketDisposables.add(new qI(this._socket)),this._socketDisposables.add(this._socketReader.onMessage(e=>this._receiveMessage(e))),this._socketDisposables.add(this._socket.onClose(e=>this._onSocketClose.fire(e))),t.initialChunk&&this._socketReader.acceptChunk(t.initialChunk),this._shouldSendKeepAlive?this._keepAliveInterval=setInterval(()=>{this._sendKeepAlive()},5e3):this._keepAliveInterval=null}get unacknowledgedCount(){return this._outgoingMsgId-this._outgoingAckId}dispose(){this._outgoingAckTimeout&&(clearTimeout(this._outgoingAckTimeout),this._outgoingAckTimeout=null),this._incomingAckTimeout&&(clearTimeout(this._incomingAckTimeout),this._incomingAckTimeout=null),this._keepAliveInterval&&(clearInterval(this._keepAliveInterval),this._keepAliveInterval=null),this._socketDisposables.dispose()}drain(){return this._socketWriter.drain()}sendDisconnect(){if(!this._didSendDisconnect){this._didSendDisconnect=!0;let t=new Yr(5,0,0,Pl());this._socketWriter.write(t),this._socketWriter.flush()}}sendPause(){let t=new Yr(7,0,0,Pl());this._socketWriter.write(t)}sendResume(){let t=new Yr(8,0,0,Pl());this._socketWriter.write(t)}pauseSocketWriting(){this._socketWriter.pause()}getSocket(){return this._socket}getMillisSinceLastIncomingData(){return Date.now()-this._socketReader.lastReadTime}beginAcceptReconnection(t,e){this._isReconnecting=!0,this._socketDisposables.dispose(),this._socketDisposables=new z,this._onControlMessage.flushBuffer(),this._onSocketClose.flushBuffer(),this._onSocketTimeout.flushBuffer(),this._socket.dispose(),this._lastReplayRequestTime=0,this._lastSocketTimeoutTime=Date.now(),this._socket=t,this._socketWriter=this._socketDisposables.add(new KI(this._socket)),this._socketReader=this._socketDisposables.add(new qI(this._socket)),this._socketDisposables.add(this._socketReader.onMessage(n=>this._receiveMessage(n))),this._socketDisposables.add(this._socket.onClose(n=>this._onSocketClose.fire(n))),this._socketReader.acceptChunk(e)}endAcceptReconnection(){this._isReconnecting=!1,this._incomingAckId=this._incomingMsgId;let t=new Yr(3,0,this._incomingAckId,Pl());this._socketWriter.write(t);let e=this._outgoingUnackMsg.toArray();for(let n=0,o=e.length;n<o;n++)this._socketWriter.write(e[n]);this._recvAckCheck()}acceptDisconnect(){this._onDidDispose.fire()}_receiveMessage(t){if(t.ack>this._outgoingAckId){this._outgoingAckId=t.ack;do{let e=this._outgoingUnackMsg.peek();if(e&&e.id<=t.ack)this._outgoingUnackMsg.pop();else break}while(!0)}switch(t.type){case 0:break;case 1:{if(t.id>this._incomingMsgId)if(t.id!==this._incomingMsgId+1){let e=Date.now();e-this._lastReplayRequestTime>1e4&&(this._lastReplayRequestTime=e,this._socketWriter.write(new Yr(6,0,0,Pl())))}else this._incomingMsgId=t.id,this._incomingMsgLastTime=Date.now(),this._sendAckCheck(),this._onMessage.fire(t.data);break}case 2:{this._onControlMessage.fire(t.data);break}case 3:break;case 5:{this._onDidDispose.fire();break}case 6:{let e=this._outgoingUnackMsg.toArray();for(let n=0,o=e.length;n<o;n++)this._socketWriter.write(e[n]);this._recvAckCheck();break}case 7:{this._socketWriter.pause();break}case 8:{this._socketWriter.resume();break}case 9:break}}readEntireBuffer(){return this._socketReader.readEntireBuffer()}flush(){this._socketWriter.flush()}send(t){let e=++this._outgoingMsgId;this._incomingAckId=this._incomingMsgId;let n=new Yr(1,e,this._incomingAckId,t);this._outgoingUnackMsg.push(n),this._isReconnecting||(this._socketWriter.write(n),this._recvAckCheck())}sendControl(t){let e=new Yr(2,0,0,t);this._socketWriter.write(e)}_sendAckCheck(){if(this._incomingMsgId<=this._incomingAckId||this._incomingAckTimeout)return;let t=Date.now()-this._incomingMsgLastTime;if(t>=2e3){this._sendAck();return}this._incomingAckTimeout=setTimeout(()=>{this._incomingAckTimeout=null,this._sendAckCheck()},2e3-t+5)}_recvAckCheck(){if(this._outgoingMsgId<=this._outgoingAckId||this._outgoingAckTimeout||this._isReconnecting)return;let t=this._outgoingUnackMsg.peek(),e=Date.now()-t.writtenTime,n=Date.now()-this._socketReader.lastReadTime,o=Date.now()-this._lastSocketTimeoutTime;if(e>=2e4&&n>=2e4&&o>=2e4&&!this._loadEstimator.hasHighLoad()){this._lastSocketTimeoutTime=Date.now(),this._onSocketTimeout.fire({reason:"unacknowledgedMessage",unacknowledgedMsgCount:this._outgoingUnackMsg.length(),timeSinceOldestUnacknowledgedMsg:e,timeSinceLastReceivedSomeData:n});return}let r=Math.max(2e4-e,2e4-n,2e4-o,500);this._outgoingAckTimeout=setTimeout(()=>{this._outgoingAckTimeout=null,this._recvAckCheck()},r)}_keepAliveTimeoutCheck(){if(this._isReconnecting)return;let t=Date.now(),e=t-this._socketReader.lastReadTime,n=t-this._lastSocketTimeoutTime;if(e>=2e4&&n>=2e4&&!this._loadEstimator.hasHighLoad()){this._lastSocketTimeoutTime=t;let o=this._outgoingUnackMsg.length(),r=this._outgoingUnackMsg.peek();this._onSocketTimeout.fire({reason:"keepAlive",unacknowledgedMsgCount:o,timeSinceOldestUnacknowledgedMsg:r?t-r.writtenTime:void 0,timeSinceLastReceivedSomeData:e})}}_sendAck(){if(this._incomingMsgId<=this._incomingAckId)return;this._incomingAckId=this._incomingMsgId;let t=new Yr(3,0,this._incomingAckId,Pl());this._socketWriter.write(t)}_sendKeepAlive(){this._incomingAckId=this._incomingMsgId;let t=new Yr(9,0,this._incomingAckId,Pl());this._socketWriter.write(t),this._keepAliveTimeoutCheck()}};import{createHash as kte}from"crypto";import{createConnection as Rte,createServer as Ate}from"net";import{tmpdir as P9}from"os";import{createDeflateRaw as _9,createInflateRaw as D9}from"zlib";var Pe=(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,o="";return o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o+="-",o+=t[i[n++]],o+=t[i[n++]],o+="-",o+=t[i[n++]],o+=t[i[n++]],o+="-",o+=t[i[n++]],o+=t[i[n++]],o+="-",o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o+=t[i[n++]],o}})();var R9=3e4,ua=class{constructor(t,e=""){this._canWrite=!0;this.debugLabel=e,this.socket=t,this.traceSocketEvent("created",{type:"NodeSocket"}),this._errorListener=n=>{if(this.traceSocketEvent("error",{code:n?.code,message:n?.message}),n){if(n.code==="EPIPE")return;Qe(n)}},this.socket.on("error",this._errorListener),this._closeListener=n=>{this.traceSocketEvent("close",{hadError:n}),this._canWrite=!1,this._endTimeoutHandle&&clearTimeout(this._endTimeoutHandle)},this.socket.on("close",this._closeListener),this._endListener=()=>{this.traceSocketEvent("nodeEndReceived"),this._canWrite=!1,this._endTimeoutHandle=setTimeout(()=>t.destroy(),R9)},this.socket.on("end",this._endListener)}traceSocketEvent(t,e){Yh.traceSocketEvent(this.socket,this.debugLabel,t,e)}dispose(t=!0){this._endTimeoutHandle&&(clearTimeout(this._endTimeoutHandle),this._endTimeoutHandle=void 0),this.socket.off("error",this._errorListener),this.socket.off("close",this._closeListener),this.socket.off("end",this._endListener),t&&this.socket.destroy()}onData(t){let e=n=>{this.traceSocketEvent("read",n),t(W.wrap(n))};return this.socket.on("data",e),{dispose:()=>this.socket.off("data",e)}}onClose(t){let e=n=>{t({type:0,hadError:n,error:void 0})};return this.socket.on("close",e),{dispose:()=>this.socket.off("close",e)}}onEnd(t){let e=()=>{t()};return this.socket.on("end",e),{dispose:()=>this.socket.off("end",e)}}write(t){if(!(this.socket.destroyed||!this._canWrite))try{this.traceSocketEvent("write",t),this.socket.write(t.buffer,e=>{if(e){if(e.code==="EPIPE")return;Qe(e)}})}catch(e){if(e.code==="EPIPE")return;Qe(e)}}end(){this.traceSocketEvent("nodeEndSent"),this.socket.end()}drain(){return this.traceSocketEvent("nodeDrainBegin"),new Promise((t,e)=>{if(this.socket.bufferSize===0){this.traceSocketEvent("nodeDrainEnd"),t();return}let n=()=>{this.socket.off("close",n),this.socket.off("end",n),this.socket.off("error",n),this.socket.off("timeout",n),this.socket.off("drain",n),this.traceSocketEvent("nodeDrainEnd"),t()};this.socket.on("close",n),this.socket.on("end",n),this.socket.on("error",n),this.socket.on("timeout",n),this.socket.on("drain",n)})}};var jI=class extends U{constructor(e,n,o,r,s=!0){super();this._onData=this._register(new E);this._onClose=this._register(new E);this._isEnded=!1;this._state={state:1,readLen:2,fin:0,compressed:!1,firstFrameOfMessage:!0,mask:0,opcode:0};this.socket=e,this._maxSocketMessageLength=s?262144:1/0,this.traceSocketEvent("created",{type:"WebSocketNodeSocket",permessageDeflate:n,inflateBytesLength:o?.byteLength||0,recordInflateBytes:r}),this._flowManager=this._register(new sD(this,n,o,r,this._onData,(a,l)=>this._write(a,l))),this._register(this._flowManager.onError(a=>{console.error(a),Qe(a),this._onClose.fire({type:0,hadError:!0,error:a})})),this._incomingData=new Jh,this._register(this.socket.onData(a=>this._acceptChunk(a))),this._register(this.socket.onClose(async a=>{this._flowManager.isProcessingReadQueue()&&await ye.toPromise(this._flowManager.onDidFinishProcessingReadQueue),this._onClose.fire(a)}))}get permessageDeflate(){return this._flowManager.permessageDeflate}get recordedInflateBytes(){return this._flowManager.recordedInflateBytes}setRecordInflateBytes(e){this._flowManager.setRecordInflateBytes(e)}traceSocketEvent(e,n){this.socket.traceSocketEvent(e,n)}dispose(){this._flowManager.isProcessingWriteQueue()?this._register(this._flowManager.onDidFinishProcessingWriteQueue(()=>{this.dispose()})):(this.socket.dispose(),super.dispose())}onData(e){return this._onData.event(e)}onClose(e){return this._onClose.event(e)}onEnd(e){return this.socket.onEnd(e)}write(e){let n=0;for(;n<e.byteLength;)this._flowManager.writeMessage(e.slice(n,Math.min(n+this._maxSocketMessageLength,e.byteLength)),{compressed:!0,opcode:2}),n+=this._maxSocketMessageLength}_write(e,{compressed:n,opcode:o}){if(this._isEnded)return;this.traceSocketEvent("webSocketNodeSocketWrite",e);let r=2;e.byteLength<126?r+=0:e.byteLength<2**16?r+=2:r+=8;let s=W.alloc(r),a=n?64:0,l=o&15;if(s.writeUInt8(128|a|l,0),e.byteLength<126)s.writeUInt8(e.byteLength,1);else if(e.byteLength<2**16){s.writeUInt8(126,1);let d=1;s.writeUInt8(e.byteLength>>>8&255,++d),s.writeUInt8(e.byteLength>>>0&255,++d)}else{s.writeUInt8(127,1);let d=1;s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(0,++d),s.writeUInt8(e.byteLength>>>24&255,++d),s.writeUInt8(e.byteLength>>>16&255,++d),s.writeUInt8(e.byteLength>>>8&255,++d),s.writeUInt8(e.byteLength>>>0&255,++d)}this.socket.write(W.concat([s,e]))}end(){this._isEnded=!0,this.socket.end()}_acceptChunk(e){if(e.byteLength!==0){for(this._incomingData.acceptChunk(e);this._incomingData.byteLength>=this._state.readLen;)if(this._state.state===1){let n=this._incomingData.peek(this._state.readLen),o=n.readUInt8(0),r=(o&128)>>>7,s=(o&64)>>>6,a=o&15,l=n.readUInt8(1),d=(l&128)>>>7,c=l&127;this._state.state=2,this._state.readLen=2+(d?4:0)+(c===126?2:0)+(c===127?8:0),this._state.fin=r,this._state.firstFrameOfMessage&&(this._state.compressed=!!s),this._state.firstFrameOfMessage=!!r,this._state.mask=0,this._state.opcode=a,this.traceSocketEvent("webSocketNodeSocketPeekedHeader",{headerSize:this._state.readLen,compressed:this._state.compressed,fin:this._state.fin,opcode:this._state.opcode})}else if(this._state.state===2){let n=this._incomingData.read(this._state.readLen),o=n.readUInt8(1),r=(o&128)>>>7,s=o&127,a=1;s===126?s=n.readUInt8(++a)*2**8+n.readUInt8(++a):s===127&&(s=n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*0+n.readUInt8(++a)*2**24+n.readUInt8(++a)*2**16+n.readUInt8(++a)*2**8+n.readUInt8(++a));let l=0;r&&(l=n.readUInt8(++a)*2**24+n.readUInt8(++a)*2**16+n.readUInt8(++a)*2**8+n.readUInt8(++a)),this._state.state=3,this._state.readLen=s,this._state.mask=l,this.traceSocketEvent("webSocketNodeSocketPeekedHeader",{bodySize:this._state.readLen,compressed:this._state.compressed,fin:this._state.fin,mask:this._state.mask,opcode:this._state.opcode})}else if(this._state.state===3){let n=this._incomingData.read(this._state.readLen);this.traceSocketEvent("webSocketNodeSocketReadData",n),A9(n,this._state.mask),this.traceSocketEvent("webSocketNodeSocketUnmaskedData",n),this._state.state=1,this._state.readLen=2,this._state.mask=0,this._state.opcode<=2?this._flowManager.acceptFrame(n,this._state.compressed,!!this._state.fin):this._state.opcode===9&&this._flowManager.writeMessage(n,{compressed:!1,opcode:10})}}}async drain(){this.traceSocketEvent("webSocketNodeSocketDrainBegin"),this._flowManager.isProcessingWriteQueue()&&await ye.toPromise(this._flowManager.onDidFinishProcessingWriteQueue),await this.socket.drain(),this.traceSocketEvent("webSocketNodeSocketDrainEnd")}},sD=class extends U{constructor(e,n,o,r,s,a){super();this._tracer=e;this._onData=s;this._writeFn=a;this._onError=this._register(new E);this.onError=this._onError.event;this._writeQueue=[];this._readQueue=[];this._onDidFinishProcessingReadQueue=this._register(new E);this.onDidFinishProcessingReadQueue=this._onDidFinishProcessingReadQueue.event;this._onDidFinishProcessingWriteQueue=this._register(new E);this.onDidFinishProcessingWriteQueue=this._onDidFinishProcessingWriteQueue.event;this._isProcessingWriteQueue=!1;this._isProcessingReadQueue=!1;n?(this._zlibInflateStream=this._register(new aD(this._tracer,r,o,{windowBits:15})),this._zlibDeflateStream=this._register(new lD(this._tracer,{windowBits:15})),this._register(this._zlibInflateStream.onError(l=>this._onError.fire(l))),this._register(this._zlibDeflateStream.onError(l=>this._onError.fire(l)))):(this._zlibInflateStream=null,this._zlibDeflateStream=null)}get permessageDeflate(){return!!(this._zlibInflateStream&&this._zlibDeflateStream)}get recordedInflateBytes(){return this._zlibInflateStream?this._zlibInflateStream.recordedInflateBytes:W.alloc(0)}setRecordInflateBytes(e){this._zlibInflateStream?.setRecordInflateBytes(e)}writeMessage(e,n){this._writeQueue.push({data:e,options:n}),this._processWriteQueue()}async _processWriteQueue(){if(!this._isProcessingWriteQueue){for(this._isProcessingWriteQueue=!0;this._writeQueue.length>0;){let{data:e,options:n}=this._writeQueue.shift();if(this._zlibDeflateStream&&n.compressed){let o=await this._deflateMessage(this._zlibDeflateStream,e);this._writeFn(o,n)}else this._writeFn(e,{...n,compressed:!1})}this._isProcessingWriteQueue=!1,this._onDidFinishProcessingWriteQueue.fire()}}isProcessingWriteQueue(){return this._isProcessingWriteQueue}_deflateMessage(e,n){return new Promise((o,r)=>{e.write(n),e.flush(s=>o(s))})}acceptFrame(e,n,o){this._readQueue.push({data:e,isCompressed:n,isLastFrameOfMessage:o}),this._processReadQueue()}async _processReadQueue(){if(!this._isProcessingReadQueue){for(this._isProcessingReadQueue=!0;this._readQueue.length>0;){let e=this._readQueue.shift();if(this._zlibInflateStream&&e.isCompressed){let n=await this._inflateFrame(this._zlibInflateStream,e.data,e.isLastFrameOfMessage);this._onData.fire(n)}else this._onData.fire(e.data)}this._isProcessingReadQueue=!1,this._onDidFinishProcessingReadQueue.fire()}}isProcessingReadQueue(){return this._isProcessingReadQueue}_inflateFrame(e,n,o){return new Promise((r,s)=>{e.write(n),o&&e.write(W.fromByteArray([0,0,255,255])),e.flush(a=>r(a))})}},aD=class extends U{constructor(e,n,o,r){super();this._tracer=e;this._onError=this._register(new E);this.onError=this._onError.event;this._recordedInflateBytes=[];this._pendingInflateData=[];this._recordInflateBytes=n,this._zlibInflate=D9(r),this._zlibInflate.on("error",s=>{this._tracer.traceSocketEvent("zlibInflateError",{message:s?.message,code:s?.code}),this._onError.fire(s)}),this._zlibInflate.on("data",s=>{this._tracer.traceSocketEvent("zlibInflateData",s),this._pendingInflateData.push(W.wrap(s))}),o&&(this._tracer.traceSocketEvent("zlibInflateInitialWrite",o.buffer),this._zlibInflate.write(o.buffer),this._zlibInflate.flush(()=>{this._tracer.traceSocketEvent("zlibInflateInitialFlushFired"),this._pendingInflateData.length=0}))}get recordedInflateBytes(){return this._recordInflateBytes?W.concat(this._recordedInflateBytes):W.alloc(0)}write(e){this._recordInflateBytes&&this._recordedInflateBytes.push(e.clone()),this._tracer.traceSocketEvent("zlibInflateWrite",e),this._zlibInflate.write(e.buffer)}setRecordInflateBytes(e){this._recordInflateBytes=e,e||(this._recordedInflateBytes.length=0)}flush(e){this._zlibInflate.flush(()=>{this._tracer.traceSocketEvent("zlibInflateFlushFired");let n=W.concat(this._pendingInflateData);this._pendingInflateData.length=0,e(n)})}dispose(){this._recordedInflateBytes.length=0,this._pendingInflateData.length=0;try{this._zlibInflate.close()}catch{}super.dispose()}},lD=class extends U{constructor(e,n){super();this._tracer=e;this._onError=this._register(new E);this.onError=this._onError.event;this._pendingDeflateData=[];this._zlibDeflate=_9({windowBits:15}),this._zlibDeflate.on("error",o=>{this._tracer.traceSocketEvent("zlibDeflateError",{message:o?.message,code:o?.code}),this._onError.fire(o)}),this._zlibDeflate.on("data",o=>{this._tracer.traceSocketEvent("zlibDeflateData",o),this._pendingDeflateData.push(W.wrap(o))})}write(e){this._tracer.traceSocketEvent("zlibDeflateWrite",e.buffer),this._zlibDeflate.write(e.buffer)}flush(e){this._zlibDeflate.flush(2,()=>{this._tracer.traceSocketEvent("zlibDeflateFlushFired");let n=W.concat(this._pendingDeflateData);this._pendingDeflateData.length=0,n=n.slice(0,n.byteLength-4),e(n)})}dispose(){this._pendingDeflateData.length=0;try{this._zlibDeflate.close()}catch{}super.dispose()}};function A9(i,t){if(t===0)return;let e=i.byteLength>>>2;for(let l=0;l<e;l++){let d=i.readUInt32BE(l*4);i.writeUInt32BE(d^t,l*4)}let n=e*4,o=i.byteLength-n,r=t>>>24&255,s=t>>>16&255,a=t>>>8&255;o>=1&&i.writeUInt8(i.readUInt8(n)^r,n),o>=2&&i.writeUInt8(i.readUInt8(n+1)^s,n+1),o>=3&&i.writeUInt8(i.readUInt8(n+2)^a,n+2)}var i2=process.env.XDG_RUNTIME_DIR,M9={2:107,1:103};function a2(){let i=Pe();if(process.platform==="win32")return`\\\\.\\pipe\\vscode-ipc-${i}-sock`;let t=process.platform!=="darwin"&&i2?i2:P9(),e=M9[cI],n=i;if(typeof e=="number"){let o=Math.max(0,e-1-He(t,"vscode-ipc-.sock").length);o<n.length&&(n=n.slice(0,o))}return He(t,`vscode-ipc-${n}.sock`)}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 Xh(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(l2.call(e,n)){let o=e[n];typeof o=="object"&&!Object.isFrozen(o)&&!EU(o)&&t.push(o)}}return i}var l2=Object.prototype.hasOwnProperty;function ds(i,t){return cD(i,t,new Set)}function cD(i,t,e){if(Ht(i))return i;let n=t(i);if(typeof n<"u")return n;if(Array.isArray(i)){let o=[];for(let r of i)o.push(cD(r,t,e));return o}if(st(i)){if(e.has(i))throw new Error("Cannot clone recursive data-structure");e.add(i);let o={};for(let r in i)l2.call(i,r)&&(o[r]=cD(i[r],t,e));return e.delete(i),o}return i}function Jo(i,t,e=!0){return st(i)?(st(t)&&Object.keys(t).forEach(n=>{n in i?e&&(st(i[n])&&st(t[n])?Jo(i[n],t[n],e):i[n]=t[n]):i[n]=t[n]}),i):t}function Bt(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(!Bt(i[e],t[e]))return!1}else{let o=[];for(n in i)o.push(n);o.sort();let r=[];for(n in t)r.push(n);if(r.sort(),!Bt(o,r))return!1;for(e=0;e<o.length;e++)if(!Bt(i[o[e]],t[o[e]]))return!1}return!0}function wp(i){let t=new Set;return JSON.stringify(i,(e,n)=>{if(st(n)||Array.isArray(n)){if(t.has(n))return"[Circular]";t.add(n)}return typeof n=="bigint"?`[BigInt ${n.toString()}]`:n})}function uD(i,t){let e=t.toLowerCase(),n=Object.keys(i).find(o=>o.toLowerCase()===e);return n?i[n]:i[t]}function pD(i,t){let e=Object.create(null);for(let[n,o]of Object.entries(i))t(n,o)&&(e[n]=o);return e}var d2=new class{constructor(){this._zoomLevel=0;this._onDidChangeZoomLevel=new E;this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(i){i=Math.min(Math.max(-5,i),20),this._zoomLevel!==i&&(this._zoomLevel=i,this._onDidChangeZoomLevel.fire(this._zoomLevel))}};var L9=ht?1.5:1.35,mD=8,gD=class i{constructor(t){this._bareFontInfoBrand=void 0;this.pixelRatio=t.pixelRatio,this.fontFamily=String(t.fontFamily),this.fontWeight=String(t.fontWeight),this.fontSize=t.fontSize,this.fontFeatureSettings=t.fontFeatureSettings,this.fontVariationSettings=t.fontVariationSettings,this.lineHeight=t.lineHeight|0,this.letterSpacing=t.letterSpacing}static _create(t,e,n,o,r,s,a,l,d){s===0?s=L9*n:s<mD&&(s=s*n),s=Math.round(s),s<mD&&(s=mD);let c=1+(d?0:d2.getZoomLevel()*.1);return n*=c,s*=c,r===hD&&(e==="normal"||e==="bold"?r=fD:(r=`'wght' ${parseInt(e,10)}`,e="normal")),new i({pixelRatio:l,fontFamily:t,fontWeight:e,fontSize:n,fontFeatureSettings:o,fontVariationSettings:r,lineHeight:s,letterSpacing:a})}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){let t=Si.fontFamily,e=i._wrapInQuotes(this.fontFamily);return t&&this.fontFamily!==t?`${e}, ${t}`:e}static _wrapInQuotes(t){return/[,"']/.test(t)?t:/[+ ]/.test(t)?`"${t}"`:t}},O9=2,GI=class extends gD{constructor(e,n){super(e);this._editorStylingBrand=void 0;this.version=O9;this.isTrusted=n,this.isMonospace=e.isMonospace,this.typicalHalfwidthCharacterWidth=e.typicalHalfwidthCharacterWidth,this.typicalFullwidthCharacterWidth=e.typicalFullwidthCharacterWidth,this.canUseHalfwidthRightwardsArrow=e.canUseHalfwidthRightwardsArrow,this.spaceWidth=e.spaceWidth,this.middotWidth=e.middotWidth,this.wsmiddotWidth=e.wsmiddotWidth,this.maxDigitWidth=e.maxDigitWidth}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.maxDigitWidth===e.maxDigitWidth}},fD="normal",hD="translate",N9="Consolas, 'Courier New', monospace",U9="Menlo, Monaco, 'Courier New', monospace",F9="'Droid Sans Mono', monospace",Si={fontFamily:ht?U9:Ce?N9:F9,fontWeight:"normal",fontSize:ht?12:14,lineHeight:0,letterSpacing:0};var vD={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var bD="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function H9(i=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(let e of bD)i.indexOf(e)>=0||(t+="\\"+e);return t+="\\s]+)",new RegExp(t,"g")}var V9=H9();function yD(i){let t=V9;if(i&&i instanceof RegExp)if(i.global)t=i;else{let e="g";i.ignoreCase&&(e+="i"),i.multiline&&(e+="m"),i.unicode&&(e+="u"),t=new RegExp(i.source,e)}return t.lastIndex=0,t}var c2=new mo;c2.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function ID(i,t,e,n,o){if(t=yD(t),o||(o=At.first(c2)),e.length>o.maxLen){let d=i-o.maxLen/2;return d<0?d=0:n+=d,e=e.substring(d,i+o.maxLen/2),ID(i,t,e,n,o)}let r=Date.now(),s=i-1-n,a=-1,l=null;for(let d=1;!(Date.now()-r>=o.timeBudget);d++){let c=s-o.windowSize*d;t.lastIndex=Math.max(0,c);let u=W9(t,e,s,a);if(!u&&l||(l=u,c<=0))break;a=c}if(l){let d={word:l[0],startColumn:n+1+l.index,endColumn:n+1+l.index+l[0].length};return t.lastIndex=0,d}return null}function W9(i,t,e,n){let o;for(;o=i.exec(t);){let r=o.index||0;if(r<=e&&i.lastIndex>=e)return o;if(n>0&&r>n)return null}return null}function xD(...i){switch(i.length){case 1:return p(2254,null,i[0]);case 2:return p(2255,null,i[0],i[1]);case 3:return p(2256,null,i[0],i[1],i[2]);default:return}}var B9=p(2253,null),$9=p(2252,null),Dl=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 ip(`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(xD("==","=~"));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(xD("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(xD("||"));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),o={type:19,offset:this._start,lexeme:n};this._errors.push({offset:e,lexeme:n,additionalInfo:t}),this._tokens.push(o)}_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(B9);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($9);return}let r=this._input.charCodeAt(t);if(e)e=!1;else if(r===47&&!n){t++;break}else r===91?n=!0:r===92?e=!0:r===93&&(n=!1);t++}for(;t<this._input.length&&i._regexFlags.has(this._input.charCodeAt(t));)t++;this._current=t;let o=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:o,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};var Ci;(o=>{o.serviceIds=new Map,o.DI_TARGET="$di$target",o.DI_DEPENDENCIES="$di$dependencies";function n(r){return r[o.DI_DEPENDENCIES]||[]}o.getServiceDependencies=n})(Ci||={});var Yo=R("instantiationService");function z9(i,t,e){t[Ci.DI_TARGET]===t?t[Ci.DI_DEPENDENCIES].push({id:i,index:e}):(t[Ci.DI_DEPENDENCIES]=[{id:i,index:e}],t[Ci.DI_TARGET]=t)}function R(i){if(Ci.serviceIds.has(i))return Ci.serviceIds.get(i);let t=function(e,n,o){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");z9(t,e,o)};return t.toString=()=>i,Ci.serviceIds.set(i,t),t}var ao=new Map;ao.set("false",!1);ao.set("true",!0);ao.set("isMac",ht);ao.set("isLinux",Je);ao.set("isWindows",Ce);ao.set("isWeb",pr);ao.set("isMacNative",ht&&!pr);ao.set("isEdge",mI);ao.set("isFirefox",VU);ao.set("isChrome",Ah);ao.set("isSafari",WU);var q9=Object.prototype.hasOwnProperty;var K9={regexParsingWithErrorRecovery:!0},j9=p(2233,null),G9=p(2234,null),Q9=p(2236,null),u2=p(2232,null),J9=p(2239,null),Y9=p(2240,null),X9=p(2237,null),Z9=p(2238,null),QI=class i{constructor(t=K9){this._config=t;this._scanner=new Dl;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:j9,offset:0,lexeme:"",additionalInfo:G9});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(),o=n.type===17?Y9:void 0;throw this._parsingErrors.push({message:J9,offset:n.offset,lexeme:Dl.getLexeme(n),additionalInfo:o}),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]:bt.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:bt.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),So.INSTANCE;case 12:return this._advance(),Fo.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,u2),e?.negate()}case 17:return this._advance(),xc.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(),bt.true();case 12:return this._advance(),bt.false();case 0:{this._advance();let e=this._expr();return this._consume(1,u2),e}case 17:{let e=t.lexeme;if(this._advance(),this._matchOne(9)){let o=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),o.type!==10)throw this._errExpectedButGot("REGEX",o);let r=o.lexeme,s=r.lastIndexOf("/"),a=s===r.length-1?void 0:this._removeFlagsGY(r.substring(s+1)),l;try{l=new RegExp(r.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",o)}return iv.create(e,l)}switch(o.type){case 10:case 19:{let r=[o.lexeme];this._advance();let s=this._peek(),a=0;for(let m=0;m<o.lexeme.length;m++)o.lexeme.charCodeAt(m)===40?a++:o.lexeme.charCodeAt(m)===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 m=0;m<s.lexeme.length;m++)s.lexeme.charCodeAt(m)===40?a++:o.lexeme.charCodeAt(m)===41&&a--}if(a<0)break;r.push(Dl.getLexeme(s)),this._advance(),s=this._peek()}let l=r.join(""),d=l.lastIndexOf("/"),c=d===l.length-1?void 0:this._removeFlagsGY(l.substring(d+1)),u;try{u=new RegExp(l.substring(1,d),c)}catch{throw this._errExpectedButGot("REGEX",o)}return bt.regex(e,u)}case 18:{let r=o.lexeme;this._advance();let s=null;if(!is(r)){let a=r.indexOf("/"),l=r.lastIndexOf("/");if(a!==l&&a>=0){let d=r.slice(a+1,l),c=r[l+1]==="i"?"i":"";try{s=new RegExp(d,c)}catch{throw this._errExpectedButGot("REGEX",o)}}}if(s===null)throw this._errExpectedButGot("REGEX",o);return iv.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,Q9);let o=this._value();return bt.notIn(e,o)}switch(this._peek().type){case 3:{this._advance();let o=this._value();if(this._previous().type===18)return bt.equals(e,o);switch(o){case"true":return bt.has(e);case"false":return bt.not(e);default:return bt.equals(e,o)}}case 4:{this._advance();let o=this._value();if(this._previous().type===18)return bt.notEquals(e,o);switch(o){case"true":return bt.not(e);case"false":return bt.has(e);default:return bt.notEquals(e,o)}}case 5:return this._advance(),ov.create(e,this._value());case 6:return this._advance(),rv.create(e,this._value());case 7:return this._advance(),kp.create(e,this._value());case 8:return this._advance(),nv.create(e,this._value());case 13:return this._advance(),bt.in(e,this._value());default:return bt.has(e)}}case 20:throw this._parsingErrors.push({message:X9,offset:t.offset,lexeme:"",additionalInfo:Z9}),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 o=p(2235,null,t,Dl.getLexeme(e)),r=e.offset,s=Dl.getLexeme(e);return this._parsingErrors.push({message:o,offset:r,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}},bt=class{static false(){return So.INSTANCE}static true(){return Fo.INSTANCE}static has(t){return Ic.create(t)}static equals(t,e){return ev.create(t,e)}static notEquals(t,e){return tv.create(t,e)}static regex(t,e){return iv.create(t,e)}static in(t,e){return JI.create(t,e)}static notIn(t,e){return YI.create(t,e)}static not(t){return xc.create(t)}static and(...t){return XI.create(t,null,!0)}static or(...t){return sv.create(t,null,!0)}static greater(t,e){return kp.create(t,e)}static greaterEquals(t,e){return nv.create(t,e)}static smaller(t,e){return ov.create(t,e)}static smallerEquals(t,e){return rv.create(t,e)}static{this._parser=new QI({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function m2(i){let t=new QI({regexParsingWithErrorRecovery:!1});return i.map(e=>(t.parse(e),t.lexingErrors.length>0?t.lexingErrors.map(n=>({errorMessage:n.additionalInfo?p(2242,null,n.additionalInfo):p(2241,null),offset:n.offset,length:n.lexeme.length})):t.parsingErrors.length>0?t.parsingErrors.map(n=>({errorMessage:n.additionalInfo?`${n.message}. ${n.additionalInfo}`:n.message,offset:n.offset,length:n.lexeme.length})):[]))}function Zh(i,t){return i.cmp(t)}var So=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 Fo.INSTANCE}},Fo=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 So.INSTANCE}},Ic=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=ao.get(t);return typeof n=="boolean"?n?Fo.INSTANCE:So.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:f2(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=ao.get(this.key);return typeof t=="boolean"?t?Fo.INSTANCE:So.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=xc.create(this.key,this)),this.negated}},ev=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?Ic.create(t,n):xc.create(t,n);let o=ao.get(t);return typeof o=="boolean"?e===(o?"true":"false")?Fo.INSTANCE:So.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=ao.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?Fo.INSTANCE:So.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=tv.create(this.key,this.value,this)),this.negated}},JI=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:Sc(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(Ce&&typeof n=="string"&&n.startsWith("file:///")){let o=n.toLowerCase();return e.some(r=>typeof r=="string"&&r.toLowerCase()===o)}return!1}if(typeof n=="string"&&typeof e=="object"&&e!==null){if(q9.call(e,n))return!0;if(Ce&&n.startsWith("file:///")){let o=n.toLowerCase();return Object.keys(e).some(r=>r.toLowerCase()===o)}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=YI.create(this.key,this.valueKey)),this.negated}},YI=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=JI.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}},tv=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?xc.create(t,n):Ic.create(t,n);let o=ao.get(t);return typeof o=="boolean"?e===(o?"true":"false")?So.INSTANCE:Fo.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=ao.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?So.INSTANCE:Fo.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=ev.create(this.key,this.value,this)),this.negated}},xc=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=ao.get(t);return typeof n=="boolean"?n?So.INSTANCE:Fo.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:f2(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=ao.get(this.key);return typeof t=="boolean"?t?So.INSTANCE:Fo.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=Ic.create(this.key,this)),this.negated}};function ZI(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):So.INSTANCE}var kp=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 ZI(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=rv.create(this.key,this.value,this)),this.negated}},nv=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 ZI(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=ov.create(this.key,this.value,this)),this.negated}},ov=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 ZI(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=nv.create(this.key,this.value,this)),this.negated}},rv=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 ZI(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Sc(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=kp.create(this.key,this.value,this)),this.negated}},iv=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=SD.create(this)),this.negated}},SD=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 g2(i){let t=null;for(let e=0,n=i.length;e<n;e++){let o=i[e].substituteConstants();if(i[e]!==o&&t===null){t=[];for(let r=0;r<e;r++)t[r]=i[r]}t!==null&&(t[e]=o)}return t===null?i:t}var XI=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 o=Zh(this.expr[e],t.expr[e]);if(o!==0)return o}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=g2(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 o=[],r=!1;for(let s of t)if(s){if(s.type===1){r=!0;continue}if(s.type===0)return So.INSTANCE;if(s.type===6){o.push(...s.expr);continue}o.push(s)}if(o.length===0&&r)return Fo.INSTANCE;if(o.length!==0){if(o.length===1)return o[0];o.sort(Zh);for(let s=1;s<o.length;s++)o[s-1].equals(o[s])&&(o.splice(s,1),s--);if(o.length===1)return o[0];for(;o.length>1;){let s=o[o.length-1];if(s.type!==9)break;o.pop();let a=o.pop(),l=o.length===0,d=sv.create(s.expr.map(c=>i.create([c,a],null,n)),null,l);d&&(o.push(d),o.sort(Zh))}if(o.length===1)return o[0];if(n){for(let s=0;s<o.length;s++)for(let a=s+1;a<o.length;a++)if(o[s].negate().equals(o[a]))return So.INSTANCE;if(o.length===1)return o[0]}return new i(o,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=sv.create(t,this,!0)}return this.negated}},sv=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 o=Zh(this.expr[e],t.expr[e]);if(o!==0)return o}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=g2(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 o=[],r=!1;if(t){for(let s=0,a=t.length;s<a;s++){let l=t[s];if(l){if(l.type===0){r=!0;continue}if(l.type===1)return Fo.INSTANCE;if(l.type===9){o=o.concat(l.expr);continue}o.push(l)}}if(o.length===0&&r)return So.INSTANCE;o.sort(Zh)}if(o.length!==0){if(o.length===1)return o[0];for(let s=1;s<o.length;s++)o[s-1].equals(o[s])&&(o.splice(s,1),s--);if(o.length===1)return o[0];if(n){for(let s=0;s<o.length;s++)for(let a=s+1;a<o.length;a++)if(o[s].negate().equals(o[a]))return Fo.INSTANCE;if(o.length===1)return o[0]}return new i(o,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(),o=[];for(let r of p2(e))for(let s of p2(n))o.push(XI.create([r,s],null,!1));t.unshift(i.create(o,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},k=class i extends Ic{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 ev.create(this.key,t)}notEqualsTo(t){return tv.create(this.key,t)}greater(t){return kp.create(this.key,t)}},Ir=R("contextKeyService");function f2(i,t){return i<t?-1:i>t?1:0}function Sc(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function p2(i){return i.type===9?i.expr:[i]}var Mne=R("accessibilityService");var Lne=new k("accessibilityModeEnabled",!1);var e7=8;var CD=class{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}},Nt=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return ex(t,e)}compute(t,e,n){return n}},Pp=class{constructor(t,e){this.newValue=t;this.didChange=e}};function ex(i,t){if(typeof i!="object"||typeof t!="object"||!i||!t)return new Pp(t,i!==t);if(Array.isArray(i)||Array.isArray(t)){let n=Array.isArray(i)&&Array.isArray(t)&&an(i,t);return new Pp(t,!n)}let e=!1;for(let n in t)if(t.hasOwnProperty(n)){let o=ex(i[n],t[n]);o.didChange&&(i[n]=o.newValue,e=!0)}return new Pp(i,e)}var cs=class{constructor(t,e){this.schema=void 0;this.id=t,this.name="_never_",this.defaultValue=e}applyUpdate(t,e){return ex(t,e)}validate(t){return this.defaultValue}},Rl=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return ex(t,e)}compute(t,e,n){return n}};function de(i,t){return typeof i>"u"?t:i==="false"?!1:!!i}var _e=class extends Rl{constructor(t,e,n,o=void 0){typeof o<"u"&&(o.type="boolean",o.default=n),super(t,e,n,o)}validate(t){return de(t,this.defaultValue)}};function t7(i,t,e,n){if(typeof i=="string"&&(i=parseInt(i,10)),typeof i!="number"||isNaN(i))return t;let o=i;return o=Math.max(e,o),o=Math.min(n,o),o|0}var mt=class i extends Rl{static clampedInt(t,e,n,o){return t7(t,e,n,o)}constructor(t,e,n,o,r,s=void 0){typeof s<"u"&&(s.type="integer",s.default=n,s.minimum=o,s.maximum=r),super(t,e,n,s),this.minimum=o,this.maximum=r}validate(t){return i.clampedInt(t,this.defaultValue,this.minimum,this.maximum)}};var xr=class i extends Rl{static clamp(t,e,n){return t<e?e:t>n?n:t}static float(t,e){return typeof t=="string"&&(t=parseFloat(t)),typeof t!="number"||isNaN(t)?e:t}constructor(t,e,n,o,r,s,a){typeof r<"u"&&(r.type="number",r.default=n,r.minimum=s,r.maximum=a),super(t,e,n,r),this.validationFn=o,this.minimum=s,this.maximum=a}validate(t){return this.validationFn(i.float(t,this.defaultValue))}},fo=class i extends Rl{static string(t,e){return typeof t!="string"?e:t}constructor(t,e,n,o=void 0){typeof o<"u"&&(o.type="string",o.default=n),super(t,e,n,o)}validate(t){return i.string(t,this.defaultValue)}};function Ot(i,t,e,n){return typeof i!="string"?t:n&&i in n?n[i]:e.indexOf(i)===-1?t:i}var Lt=class extends Rl{constructor(t,e,n,o,r=void 0){typeof r<"u"&&(r.type="string",r.enum=o.slice(0),r.default=n),super(t,e,n,r),this._allowedValues=o}validate(t){return Ot(t,this.defaultValue,this._allowedValues)}},Tc=class extends Nt{constructor(t,e,n,o,r,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=r,a.default=o),super(t,e,n,a),this._allowedValues=r,this._convert=s}validate(t){return typeof t!="string"?this.defaultValue:this._allowedValues.indexOf(t)===-1?this.defaultValue:this._convert(t)}};function n7(i){switch(i){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}var TD=class extends Nt{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[p(309,null),p(311,null),p(310,null)],default:"auto",tags:["accessibility"],description:p(308,null)})}validate(t){switch(t){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(t,e,n){return n===0?t.accessibilitySupport:n}},ED=class extends Nt{constructor(){let t={insertSpace:!0,ignoreEmptyLines:!0};super(29,"comments",t,{"editor.comments.insertSpace":{type:"boolean",default:t.insertSpace,description:p(339,null)},"editor.comments.ignoreEmptyLines":{type:"boolean",default:t.ignoreEmptyLines,description:p(338,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{insertSpace:de(e.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:de(e.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}};function o7(i){switch(i){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var mR=(s=>(s[s.Line=1]="Line",s[s.Block=2]="Block",s[s.Underline=3]="Underline",s[s.LineThin=4]="LineThin",s[s.BlockOutline=5]="BlockOutline",s[s.UnderlineThin=6]="UnderlineThin",s))(mR||{});function h2(i){switch(i){case"line":return 1;case"block":return 2;case"underline":return 3;case"line-thin":return 4;case"block-outline":return 5;case"underline-thin":return 6}}var wD=class extends cs{constructor(){super(162,"")}compute(t,e,n){let o=["monaco-editor"];return e.get(48)&&o.push(e.get(48)),t.extraEditorClassName&&o.push(t.extraEditorClassName),e.get(82)==="default"?o.push("mouse-default"):e.get(82)==="copy"&&o.push("mouse-copy"),e.get(127)&&o.push("showUnused"),e.get(157)&&o.push("showDeprecated"),o.join(" ")}},kD=class extends _e{constructor(){super(45,"emptySelectionClipboard",!0,{description:p(462,null)})}compute(t,e,n){return n&&t.emptySelectionClipboard}},PD=class extends Nt{constructor(){let t={cursorMoveOnType:!0,findOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0,closeOnResult:!1,history:"workspace",replaceHistory:"workspace"};super(50,"find",t,{"editor.find.cursorMoveOnType":{type:"boolean",default:t.cursorMoveOnType,description:p(475,null)},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:t.seedSearchStringFromSelection,enumDescriptions:[p(398,null),p(397,null),p(399,null)],description:p(481,null)},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:t.autoFindInSelection,enumDescriptions:[p(392,null),p(390,null),p(391,null)],description:p(473,null)},"editor.find.globalFindClipboard":{type:"boolean",default:t.globalFindClipboard,description:p(477,null),included:ht},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:t.addExtraSpaceOnTop,description:p(472,null)},"editor.find.loop":{type:"boolean",default:t.loop,description:p(479,null)},"editor.find.closeOnResult":{type:"boolean",default:t.closeOnResult,description:p(474,null)},"editor.find.history":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[p(393,null),p(394,null)],description:p(478,null)},"editor.find.replaceHistory":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[p(395,null),p(396,null)],description:p(480,null)},"editor.find.findOnType":{type:"boolean",default:t.findOnType,description:p(476,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{cursorMoveOnType:de(e.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:de(e.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":Ot(e.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":Ot(e.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:de(e.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:de(e.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:de(e.loop,this.defaultValue.loop),closeOnResult:de(e.closeOnResult,this.defaultValue.closeOnResult),history:Ot(e.history,this.defaultValue.history,["never","workspace"]),replaceHistory:Ot(e.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}},_D=class i extends Nt{static{this.OFF='"liga" off, "calt" off'}static{this.ON='"liga" on, "calt" on'}constructor(){super(60,"fontLigatures",i.OFF,{anyOf:[{type:"boolean",description:p(491,null)},{type:"string",description:p(490,null)}],description:p(492,null),default:!1})}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t==="false"||t.length===0?i.OFF:t==="true"?i.ON:t:t?i.ON:i.OFF}},DD=class i extends Nt{static{this.OFF=fD}static{this.TRANSLATE=hD}constructor(){super(63,"fontVariations",i.OFF,{anyOf:[{type:"boolean",description:p(494,null)},{type:"string",description:p(495,null)}],description:p(496,null),default:!1})}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t==="false"?i.OFF:t==="true"?i.TRANSLATE:t:t?i.TRANSLATE:i.OFF}compute(t,e,n){return t.fontInfo.fontVariationSettings}},RD=class extends cs{constructor(){super(59,new GI({pixelRatio:0,fontFamily:"",fontWeight:"",fontSize:0,fontFeatureSettings:"",fontVariationSettings:"",lineHeight:0,letterSpacing:0,isMonospace:!1,typicalHalfwidthCharacterWidth:0,typicalFullwidthCharacterWidth:0,canUseHalfwidthRightwardsArrow:!1,spaceWidth:0,middotWidth:0,wsmiddotWidth:0,maxDigitWidth:0},!1))}compute(t,e,n){return t.fontInfo}},AD=class extends cs{constructor(){super(161,1)}compute(t,e,n){return t.inputMode==="overtype"?e.get(92):e.get(34)}},MD=class extends cs{constructor(){super(170,!1)}compute(t,e){return t.editContextSupported&&e.get(44)}},LD=class extends cs{constructor(){super(172,!1)}compute(t,e){return t.accessibilitySupport===2?e.get(7):e.get(6)}},OD=class extends Rl{constructor(){super(61,"fontSize",Si.fontSize,{type:"number",minimum:6,maximum:100,default:Si.fontSize,description:p(493,null)})}validate(t){let e=xr.float(t,this.defaultValue);return e===0?Si.fontSize:xr.clamp(e,6,100)}compute(t,e,n){return t.fontInfo.fontSize}},ND=class i extends Nt{static{this.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"]}static{this.MINIMUM_VALUE=1}static{this.MAXIMUM_VALUE=1e3}constructor(){super(62,"fontWeight",Si.fontWeight,{anyOf:[{type:"number",minimum:i.MINIMUM_VALUE,maximum:i.MAXIMUM_VALUE,errorMessage:p(498,null)},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:i.SUGGESTION_VALUES}],default:Si.fontWeight,description:p(497,null)})}validate(t){return t==="normal"||t==="bold"?t:String(mt.clampedInt(t,Si.fontWeight,i.MINIMUM_VALUE,i.MAXIMUM_VALUE))}},UD=class extends Nt{constructor(){let t={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},e={type:"string",enum:["peek","gotoAndPeek","goto"],default:t.multiple,enumDescriptions:[p(403,null),p(402,null),p(401,null)]},n=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(67,"gotoLocation",t,{"editor.gotoLocation.multiple":{deprecationMessage:p(400,null)},"editor.gotoLocation.multipleDefinitions":{description:p(386,null),...e},"editor.gotoLocation.multipleTypeDefinitions":{description:p(389,null),...e},"editor.gotoLocation.multipleDeclarations":{description:p(385,null),...e},"editor.gotoLocation.multipleImplementations":{description:p(387,null),...e},"editor.gotoLocation.multipleReferences":{description:p(388,null),...e},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:t.alternativeDefinitionCommand,enum:n,description:p(316,null)},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:t.alternativeTypeDefinitionCommand,enum:n,description:p(319,null)},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:t.alternativeDeclarationCommand,enum:n,description:p(315,null)},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:t.alternativeImplementationCommand,enum:n,description:p(317,null)},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:t.alternativeReferenceCommand,enum:n,description:p(318,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{multiple:Ot(e.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:Ot(e.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:Ot(e.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:Ot(e.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:Ot(e.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:Ot(e.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:Ot(e.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:fo.string(e.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:fo.string(e.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:fo.string(e.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:fo.string(e.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:fo.string(e.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:fo.string(e.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}},FD=class extends Nt{constructor(){let t={enabled:"on",delay:300,hidingDelay:300,sticky:!0,above:!0,showLongLineWarning:!0};super(69,"hover",t,{"editor.hover.enabled":{type:"string",enum:["on","off","onKeyboardModifier"],default:t.enabled,markdownEnumDescriptions:[p(507,null),p(506,null),p(508,null,ht?"Command":"Control")],description:p(505,null),keywords:["hint","info","tooltip"]},"editor.hover.delay":{type:"number",default:t.delay,minimum:0,maximum:1e4,description:p(504,null)},"editor.hover.sticky":{type:"boolean",default:t.sticky,description:p(511,null)},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:t.hidingDelay,markdownDescription:p(509,null)},"editor.hover.above":{type:"boolean",default:t.above,description:p(503,null)},"editor.hover.showLongLineWarning":{type:"boolean",default:t.showLongLineWarning,description:p(510,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:Ot(e.enabled,this.defaultValue.enabled,["on","off","onKeyboardModifier"]),delay:mt.clampedInt(e.delay,this.defaultValue.delay,0,1e4),sticky:de(e.sticky,this.defaultValue.sticky),hidingDelay:mt.clampedInt(e.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:de(e.above,this.defaultValue.above),showLongLineWarning:de(e.showLongLineWarning,this.defaultValue.showLongLineWarning)}}};var HD=class i extends cs{constructor(){super(165,{width:0,height:0,glyphMarginLeft:0,glyphMarginWidth:0,glyphMarginDecorationLaneCount:0,lineNumbersLeft:0,lineNumbersWidth:0,decorationsLeft:0,decorationsWidth:0,contentLeft:0,contentWidth:0,minimap:{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:0,minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:0},viewportColumn:0,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1,verticalScrollbarWidth:0,horizontalScrollbarHeight:0,overviewRuler:{top:0,width:0,height:0,right:0}})}compute(t,e,n){return i.computeLayout(e,{memory:t.memory,outerWidth:t.outerWidth,outerHeight:t.outerHeight,isDominatedByLongLines:t.isDominatedByLongLines,lineHeight:t.fontInfo.lineHeight,viewLineCount:t.viewLineCount,lineNumbersDigitCount:t.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:t.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:t.fontInfo.maxDigitWidth,pixelRatio:t.pixelRatio,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(t){let e=t.height/t.lineHeight,n=Math.floor(t.paddingTop/t.lineHeight),o=Math.floor(t.paddingBottom/t.lineHeight);t.scrollBeyondLastLine&&(o=Math.max(o,e-1));let r=(n+t.viewLineCount+o)/(t.pixelRatio*t.height),s=Math.floor(t.viewLineCount/r);return{typicalViewportLineCount:e,extraLinesBeforeFirstLine:n,extraLinesBeyondLastLine:o,desiredRatio:r,minimapLineCount:s}}static _computeMinimapLayout(t,e){let n=t.outerWidth,o=t.outerHeight,r=t.pixelRatio;if(!t.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(r*o),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:o};let s=e.stableMinimapLayoutInput,a=s&&t.outerHeight===s.outerHeight&&t.lineHeight===s.lineHeight&&t.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&t.pixelRatio===s.pixelRatio&&t.scrollBeyondLastLine===s.scrollBeyondLastLine&&t.paddingTop===s.paddingTop&&t.paddingBottom===s.paddingBottom&&t.minimap.enabled===s.minimap.enabled&&t.minimap.side===s.minimap.side&&t.minimap.size===s.minimap.size&&t.minimap.showSlider===s.minimap.showSlider&&t.minimap.renderCharacters===s.minimap.renderCharacters&&t.minimap.maxColumn===s.minimap.maxColumn&&t.minimap.scale===s.minimap.scale&&t.verticalScrollbarWidth===s.verticalScrollbarWidth&&t.isViewportWrapping===s.isViewportWrapping,l=t.lineHeight,d=t.typicalHalfwidthCharacterWidth,c=t.scrollBeyondLastLine,u=t.minimap.renderCharacters,m=r>=2?Math.round(t.minimap.scale*2):t.minimap.scale,g=t.minimap.maxColumn,h=t.minimap.size,f=t.minimap.side,I=t.verticalScrollbarWidth,x=t.viewLineCount,T=t.remainingWidth,w=t.isViewportWrapping,M=u?2:3,O=Math.floor(r*o),N=O/r,$=!1,X=!1,j=M*m,q=m/r,oe=1;if(h==="fill"||h==="fit"){let{typicalViewportLineCount:ee,extraLinesBeforeFirstLine:le,extraLinesBeyondLastLine:re,desiredRatio:pe,minimapLineCount:et}=i.computeContainedMinimapLineCount({viewLineCount:x,scrollBeyondLastLine:c,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:o,lineHeight:l,pixelRatio:r});if(x/et>1)$=!0,X=!0,m=1,j=1,q=m/r;else{let It=!1,Ut=m+1;if(h==="fit"){let Ge=Math.ceil((le+x+re)*j);w&&a&&T<=e.stableFitRemainingWidth?(It=!0,Ut=e.stableFitMaxMinimapScale):It=Ge>O}if(h==="fill"||It){$=!0;let Ge=m;j=Math.min(l*r,Math.max(1,Math.floor(1/pe))),w&&a&&T<=e.stableFitRemainingWidth&&(Ut=e.stableFitMaxMinimapScale),m=Math.min(Ut,Math.max(1,Math.floor(j/M))),m>Ge&&(oe=Math.min(2,m/Ge)),q=m/r/oe,O=Math.ceil(Math.max(ee,le+x+re)*j),w?(e.stableMinimapLayoutInput=t,e.stableFitRemainingWidth=T,e.stableFitMaxMinimapScale=m):(e.stableMinimapLayoutInput=null,e.stableFitRemainingWidth=0)}}}let ve=Math.floor(g*q),yt=Math.min(ve,Math.max(0,Math.floor((T-I-2)*q/(d+q)))+e7),ze=Math.floor(r*yt),te=ze/r;ze=Math.floor(ze*oe);let Y=u?1:2,ie=f==="left"?0:n-yt-I;return{renderMinimap:Y,minimapLeft:ie,minimapWidth:yt,minimapHeightIsEditorHeight:$,minimapIsSampling:X,minimapScale:m,minimapLineHeight:j,minimapCanvasInnerWidth:ze,minimapCanvasInnerHeight:O,minimapCanvasOuterWidth:te,minimapCanvasOuterHeight:N}}static computeLayout(t,e){let n=e.outerWidth|0,o=e.outerHeight|0,r=e.lineHeight|0,s=e.lineNumbersDigitCount|0,a=e.typicalHalfwidthCharacterWidth,l=e.maxDigitWidth,d=e.pixelRatio,c=e.viewLineCount,u=t.get(154),m=u==="inherit"?t.get(153):u,g=m==="inherit"?t.get(149):m,h=t.get(152),f=e.isDominatedByLongLines,I=t.get(66),x=t.get(76).renderType!==0,T=t.get(77),w=t.get(119),M=t.get(96),O=t.get(81),N=t.get(117),$=N.verticalScrollbarSize,X=N.verticalHasArrows,j=N.arrowSize,q=N.horizontalScrollbarSize,oe=t.get(52),ve=t.get(126)!=="never",yt=t.get(74);oe&&ve&&(yt+=16);let ze=0;if(x){let Lo=Math.max(s,T);ze=Math.round(Lo*l)}let te=0;I&&(te=r*e.glyphMarginDecorationLaneCount);let Y=0,ie=Y+te,ee=ie+ze,le=ee+yt,re=n-te-ze-yt,pe=!1,et=!1,Ne=-1;t.get(2)===2&&m==="inherit"&&f?(pe=!0,et=!0):g==="on"||g==="bounded"?et=!0:g==="wordWrapColumn"&&(Ne=h);let It=i._computeMinimapLayout({outerWidth:n,outerHeight:o,lineHeight:r,typicalHalfwidthCharacterWidth:a,pixelRatio:d,scrollBeyondLastLine:w,paddingTop:M.top,paddingBottom:M.bottom,minimap:O,verticalScrollbarWidth:$,viewLineCount:c,remainingWidth:re,isViewportWrapping:et},e.memory||new CD);It.renderMinimap!==0&&It.minimapLeft===0&&(Y+=It.minimapWidth,ie+=It.minimapWidth,ee+=It.minimapWidth,le+=It.minimapWidth);let Ut=re-It.minimapWidth,Ge=Math.max(1,Math.floor((Ut-$-2)/a)),Rn=X?j:0;return et&&(Ne=Math.max(1,Ge),g==="bounded"&&(Ne=Math.min(Ne,h))),{width:n,height:o,glyphMarginLeft:Y,glyphMarginWidth:te,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount,lineNumbersLeft:ie,lineNumbersWidth:ze,decorationsLeft:ee,decorationsWidth:yt,contentLeft:le,contentWidth:Ut,minimap:It,viewportColumn:Ge,isWordWrapMinified:pe,isViewportWrapping:et,wrappingColumn:Ne,verticalScrollbarWidth:$,horizontalScrollbarHeight:q,overviewRuler:{top:Rn,width:$,height:o-2*Rn,right:0}}}},VD=class extends Nt{constructor(){super(156,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[p(724,null),p(723,null)],type:"string",enum:["simple","advanced"],default:"simple",description:p(722,null)}})}validate(t){return Ot(t,"simple",["simple","advanced"])}compute(t,e,n){return e.get(2)===2?"advanced":n}};var WD=class extends Nt{constructor(){let t={enabled:"onCode"};super(73,"lightbulb",t,{"editor.lightbulb.enabled":{type:"string",enum:["off","onCode","on"],default:t.enabled,enumDescriptions:[p(424,null),p(426,null),p(425,null)],description:p(463,null)}})}validate(t){return!t||typeof t!="object"?this.defaultValue:{enabled:Ot(t.enabled,this.defaultValue.enabled,["off","onCode","on"])}}},BD=class extends Nt{constructor(){let t={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(131,"stickyScroll",t,{"editor.stickyScroll.enabled":{type:"boolean",default:t.enabled,description:p(428,null)},"editor.stickyScroll.maxLineCount":{type:"number",default:t.maxLineCount,minimum:1,maximum:20,description:p(429,null)},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:t.defaultModel,description:p(427,null)},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:t.scrollWithEditor,description:p(430,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),maxLineCount:mt.clampedInt(e.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Ot(e.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:de(e.scrollWithEditor,this.defaultValue.scrollWithEditor)}}},$D=class extends Nt{constructor(){let t={enabled:"on",fontSize:0,fontFamily:"",padding:!1,maximumLength:43};super(159,"inlayHints",t,{"editor.inlayHints.enabled":{type:"string",default:t.enabled,description:p(513,null),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[p(420,null),p(421,null,ht?"Ctrl+Option":"Ctrl+Alt"),p(419,null,ht?"Ctrl+Option":"Ctrl+Alt"),p(418,null)]},"editor.inlayHints.fontSize":{type:"number",default:t.fontSize,markdownDescription:p(515,null,"`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:t.fontFamily,markdownDescription:p(514,null,"`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:t.padding,description:p(517,null)},"editor.inlayHints.maximumLength":{type:"number",default:t.maximumLength,markdownDescription:p(516,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return typeof e.enabled=="boolean"&&(e.enabled=e.enabled?"on":"off"),{enabled:Ot(e.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:mt.clampedInt(e.fontSize,this.defaultValue.fontSize,0,100),fontFamily:fo.string(e.fontFamily,this.defaultValue.fontFamily),padding:de(e.padding,this.defaultValue.padding),maximumLength:mt.clampedInt(e.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}},zD=class extends Nt{constructor(){super(74,"lineDecorationsWidth",10)}validate(t){return typeof t=="string"&&/^\d+(\.\d+)?ch$/.test(t)?-parseFloat(t.substring(0,t.length-2)):mt.clampedInt(t,this.defaultValue,0,1e3)}compute(t,e,n){return n<0?mt.clampedInt(-n*t.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):n}},qD=class extends xr{constructor(){super(75,"lineHeight",Si.lineHeight,t=>xr.clamp(t,0,150),{markdownDescription:p(539,null)},0,150)}compute(t,e,n){return t.fontInfo.lineHeight}},KD=class extends Nt{constructor(){let t={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:"none",renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,markSectionHeaderRegex:"\\bMARK:\\s*(?<separator>-?)\\s*(?<label>.*)$",sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(81,"minimap",t,{"editor.minimap.enabled":{type:"boolean",default:t.enabled,description:p(552,null)},"editor.minimap.autohide":{type:"string",enum:["none","mouseover","scroll"],enumDescriptions:[p(550,null),p(549,null),p(551,null)],default:t.autohide,description:p(548,null)},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[p(566,null),p(564,null),p(565,null)],default:t.size,description:p(563,null)},"editor.minimap.side":{type:"string",enum:["left","right"],default:t.side,description:p(562,null)},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:t.showSlider,description:p(561,null)},"editor.minimap.scale":{type:"number",default:t.scale,minimum:1,maximum:3,enum:[1,2,3],description:p(556,null)},"editor.minimap.renderCharacters":{type:"boolean",default:t.renderCharacters,description:p(555,null)},"editor.minimap.maxColumn":{type:"number",default:t.maxColumn,description:p(554,null)},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:t.showRegionSectionHeaders,description:p(560,null)},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:t.showMarkSectionHeaders,description:p(559,null)},"editor.minimap.markSectionHeaderRegex":{type:"string",default:t.markSectionHeaderRegex,description:p(553,null)},"editor.minimap.sectionHeaderFontSize":{type:"number",default:t.sectionHeaderFontSize,description:p(557,null)},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:t.sectionHeaderLetterSpacing,description:p(558,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t,n=this.defaultValue.markSectionHeaderRegex,o=e.markSectionHeaderRegex;if(typeof o=="string")try{new RegExp(o,"d"),n=o}catch{}return{enabled:de(e.enabled,this.defaultValue.enabled),autohide:Ot(e.autohide,this.defaultValue.autohide,["none","mouseover","scroll"]),size:Ot(e.size,this.defaultValue.size,["proportional","fill","fit"]),side:Ot(e.side,this.defaultValue.side,["right","left"]),showSlider:Ot(e.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:de(e.renderCharacters,this.defaultValue.renderCharacters),scale:mt.clampedInt(e.scale,1,1,3),maxColumn:mt.clampedInt(e.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:de(e.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:de(e.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),markSectionHeaderRegex:n,sectionHeaderFontSize:xr.clamp(xr.float(e.sectionHeaderFontSize,this.defaultValue.sectionHeaderFontSize),4,32),sectionHeaderLetterSpacing:xr.clamp(xr.float(e.sectionHeaderLetterSpacing,this.defaultValue.sectionHeaderLetterSpacing),0,5)}}};function r7(i){return i==="ctrlCmd"?ht?"metaKey":"ctrlKey":"altKey"}var jD=class extends Nt{constructor(){super(96,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:p(591,null)},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:p(590,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{top:mt.clampedInt(e.top,0,0,1e3),bottom:mt.clampedInt(e.bottom,0,0,1e3)}}},GD=class extends Nt{constructor(){let t={enabled:!0,cycle:!0};super(98,"parameterHints",t,{"editor.parameterHints.enabled":{type:"boolean",default:t.enabled,description:p(593,null)},"editor.parameterHints.cycle":{type:"boolean",default:t.cycle,description:p(592,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),cycle:de(e.cycle,this.defaultValue.cycle)}}},QD=class extends cs{constructor(){super(163,1)}compute(t,e,n){return t.pixelRatio}},JD=class extends Nt{constructor(){super(100,"placeholder",void 0)}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t:this.defaultValue}},YD=class extends Nt{constructor(){let t={other:"offWhenInlineCompletions",comments:"off",strings:"off"},e=[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(586,null),p(518,null),p(584,null),p(585,null)]}];super(102,"quickSuggestions",t,{anyOf:[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(608,null),p(605,null),p(606,null),p(607,null)]},{type:"object",additionalProperties:!1,properties:{strings:{anyOf:e,default:t.strings,description:p(604,null)},comments:{anyOf:e,default:t.comments,description:p(602,null)},other:{anyOf:e,default:t.other,description:p(603,null)}}}],default:t,markdownDescription:p(601,null,"`#editor.suggestOnTriggerCharacters#`"),experiment:{mode:"auto"}}),this.defaultValue=t}validate(t){if(typeof t=="boolean"){let d=t?"on":"off";return{comments:d,strings:d,other:d}}if(typeof t=="string"){let d=["on","inline","off","offWhenInlineCompletions"],c=Ot(t,this.defaultValue.other,d);return{comments:c,strings:c,other:c}}if(!t||typeof t!="object")return this.defaultValue;let{other:e,comments:n,strings:o}=t,r=["on","inline","off","offWhenInlineCompletions"],s,a,l;return typeof e=="boolean"?s=e?"on":"off":s=Ot(e,this.defaultValue.other,r),typeof n=="boolean"?a=n?"on":"off":a=Ot(n,this.defaultValue.comments,r),typeof o=="boolean"?l=o?"on":"off":l=Ot(o,this.defaultValue.strings,r),{other:s,comments:a,strings:l}}};var XD=class extends Nt{constructor(){super(76,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[p(542,null),p(543,null),p(544,null),p(541,null)],default:"on",description:p(540,null)})}validate(t){let e=this.defaultValue.renderType,n=this.defaultValue.renderFn;return typeof t<"u"&&(typeof t=="function"?(e=4,n=t):t==="interval"?e=3:t==="relative"?e=2:t==="on"?e=1:e=0),{renderType:e,renderFn:n}}};var ZD=class extends Nt{constructor(){let t=[],e={type:"number",description:p(625,null)};super(116,"rulers",t,{type:"array",items:{anyOf:[e,{type:["object"],properties:{column:e,color:{type:"string",description:p(624,null),format:"color-hex"}}}]},default:t,description:p(623,null)})}validate(t){if(Array.isArray(t)){let e=[];for(let n of t)if(typeof n=="number")e.push({column:mt.clampedInt(n,0,0,1e4),color:null});else if(n&&typeof n=="object"){let o=n;e.push({column:mt.clampedInt(o.column,0,0,1e4),color:o.color})}return e.sort((n,o)=>n.column-o.column),e}return this.defaultValue}},eR=class extends Nt{constructor(){super(105,"readOnlyMessage",void 0)}validate(t){return!t||typeof t!="object"?this.defaultValue:t}};function v2(i,t){if(typeof i!="string")return t;switch(i){case"hidden":return 2;case"visible":return 3;default:return 1}}var tR=class extends Nt{constructor(){let t={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(117,"scrollbar",t,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p(635,null),p(637,null),p(636,null)],default:"auto",description:p(634,null)},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p(628,null),p(630,null),p(629,null)],default:"auto",description:p(627,null)},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:t.verticalScrollbarSize,description:p(638,null)},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:t.horizontalScrollbarSize,description:p(631,null)},"editor.scrollbar.scrollByPage":{type:"boolean",default:t.scrollByPage,description:p(633,null)},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:t.ignoreHorizontalScrollbarInContentHeight,description:p(632,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t,n=mt.clampedInt(e.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),o=mt.clampedInt(e.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:mt.clampedInt(e.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:v2(e.vertical,this.defaultValue.vertical),horizontal:v2(e.horizontal,this.defaultValue.horizontal),useShadows:de(e.useShadows,this.defaultValue.useShadows),verticalHasArrows:de(e.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:de(e.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:de(e.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:de(e.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:mt.clampedInt(e.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:o,verticalSliderSize:mt.clampedInt(e.verticalSliderSize,o,0,1e3),scrollByPage:de(e.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:de(e.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}},Ti="inUntrustedWorkspace",Cc={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"},nR=class extends Nt{constructor(){let t={nonBasicASCII:Ti,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Ti,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(142,"unicodeHighlight",t,{[Cc.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ti],default:t.nonBasicASCII,description:p(699,null)},[Cc.invisibleCharacters]:{restricted:!0,type:"boolean",default:t.invisibleCharacters,description:p(698,null)},[Cc.ambiguousCharacters]:{restricted:!0,type:"boolean",default:t.ambiguousCharacters,description:p(695,null)},[Cc.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ti],default:t.includeComments,description:p(696,null)},[Cc.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Ti],default:t.includeStrings,description:p(697,null)},[Cc.allowedCharacters]:{restricted:!0,type:"object",default:t.allowedCharacters,description:p(693,null),additionalProperties:{type:"boolean"}},[Cc.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:t.allowedLocales,description:p(694,null)}})}applyUpdate(t,e){let n=!1;e.allowedCharacters&&t&&(Bt(t.allowedCharacters,e.allowedCharacters)||(t={...t,allowedCharacters:e.allowedCharacters},n=!0)),e.allowedLocales&&t&&(Bt(t.allowedLocales,e.allowedLocales)||(t={...t,allowedLocales:e.allowedLocales},n=!0));let o=super.applyUpdate(t,e);return n?new Pp(o.newValue,!0):o}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{nonBasicASCII:_p(e.nonBasicASCII,Ti,[!0,!1,Ti]),invisibleCharacters:de(e.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:de(e.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:_p(e.includeComments,Ti,[!0,!1,Ti]),includeStrings:_p(e.includeStrings,Ti,[!0,!1,Ti]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(t,e){if(typeof t!="object"||!t)return e;let n={};for(let[o,r]of Object.entries(t))r===!0&&(n[o]=!0);return n}},oR=class extends Nt{constructor(){let t={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default",syntaxHighlightingEnabled:!0,minShowDelay:0,suppressInSnippetMode:!0,edits:{enabled:!0,showCollapsed:!1,renderSideBySide:"auto",allowCodeShifting:"always",showLongDistanceHint:!0},triggerCommandOnProviderChange:!1,experimental:{suppressInlineSuggestions:"",showOnSuggestConflict:"never",emptyResponseInformation:!0}};super(71,"inlineSuggest",t,{"editor.inlineSuggest.enabled":{type:"boolean",default:t.enabled,description:p(525,null)},"editor.inlineSuggest.showToolbar":{type:"string",default:t.showToolbar,enum:["always","onHover","never"],enumDescriptions:[p(530,null),p(532,null),p(531,null)],description:p(529,null)},"editor.inlineSuggest.syntaxHighlightingEnabled":{type:"boolean",default:t.syntaxHighlightingEnabled,description:p(536,null)},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:t.suppressSuggestions,description:p(535,null)},"editor.inlineSuggest.suppressInSnippetMode":{type:"boolean",default:t.suppressInSnippetMode,description:p(534,null)},"editor.inlineSuggest.minShowDelay":{type:"number",default:0,minimum:0,maximum:1e4,description:p(527,null)},"editor.inlineSuggest.experimental.suppressInlineSuggestions":{type:"string",default:t.experimental.suppressInlineSuggestions,tags:["experimental"],description:p(533,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.emptyResponseInformation":{type:"boolean",default:t.experimental.emptyResponseInformation,tags:["experimental"],description:p(524,null),experiment:{mode:"auto"}},"editor.inlineSuggest.triggerCommandOnProviderChange":{type:"boolean",default:t.triggerCommandOnProviderChange,tags:["experimental"],description:p(537,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.showOnSuggestConflict":{type:"string",default:t.experimental.showOnSuggestConflict,tags:["experimental"],enum:["always","never","whenSuggestListIsIncomplete"],description:p(528,null),experiment:{mode:"auto"}},"editor.inlineSuggest.fontFamily":{type:"string",default:t.fontFamily,description:p(526,null)},"editor.inlineSuggest.edits.allowCodeShifting":{type:"string",default:t.edits.allowCodeShifting,description:p(520,null),enum:["always","horizontal","never"],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.showLongDistanceHint":{type:"boolean",default:t.edits.showLongDistanceHint,description:p(523,null),tags:["nextEditSuggestions","experimental"]},"editor.inlineSuggest.edits.renderSideBySide":{type:"string",default:t.edits.renderSideBySide,description:p(521,null),enum:["auto","never"],enumDescriptions:[p(422,null),p(423,null)],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.showCollapsed":{type:"boolean",default:t.edits.showCollapsed,description:p(522,null),tags:["nextEditSuggestions"]}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),mode:Ot(e.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:Ot(e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:de(e.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:de(e.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:fo.string(e.fontFamily,this.defaultValue.fontFamily),syntaxHighlightingEnabled:de(e.syntaxHighlightingEnabled,this.defaultValue.syntaxHighlightingEnabled),minShowDelay:mt.clampedInt(e.minShowDelay,0,0,1e4),suppressInSnippetMode:de(e.suppressInSnippetMode,this.defaultValue.suppressInSnippetMode),edits:this._validateEdits(e.edits),triggerCommandOnProviderChange:de(e.triggerCommandOnProviderChange,this.defaultValue.triggerCommandOnProviderChange),experimental:this._validateExperimental(e.experimental)}}_validateEdits(t){if(!t||typeof t!="object")return this.defaultValue.edits;let e=t;return{enabled:de(e.enabled,this.defaultValue.edits.enabled),showCollapsed:de(e.showCollapsed,this.defaultValue.edits.showCollapsed),allowCodeShifting:Ot(e.allowCodeShifting,this.defaultValue.edits.allowCodeShifting,["always","horizontal","never"]),showLongDistanceHint:de(e.showLongDistanceHint,this.defaultValue.edits.showLongDistanceHint),renderSideBySide:Ot(e.renderSideBySide,this.defaultValue.edits.renderSideBySide,["never","auto"])}}_validateExperimental(t){if(!t||typeof t!="object")return this.defaultValue.experimental;let e=t;return{suppressInlineSuggestions:fo.string(e.suppressInlineSuggestions,this.defaultValue.experimental.suppressInlineSuggestions),showOnSuggestConflict:Ot(e.showOnSuggestConflict,this.defaultValue.experimental.showOnSuggestConflict,["always","never","whenSuggestListIsIncomplete"]),emptyResponseInformation:de(e.emptyResponseInformation,this.defaultValue.experimental.emptyResponseInformation)}}},rR=class extends Nt{constructor(){let t={enabled:vD.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:vD.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(21,"bracketPairColorization",t,{"editor.bracketPairColorization.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(329,null,"`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:t.independentColorPoolPerBracketType,description:p(330,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:de(e.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}},iR=class extends Nt{constructor(){let t={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(22,"guides",t,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p(407,null),p(405,null),p(406,null)],default:t.bracketPairs,description:p(404,null)},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[p(411,null),p(409,null),p(410,null)],default:t.bracketPairsHorizontal,description:p(408,null)},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:t.highlightActiveBracketPair,description:p(412,null)},"editor.guides.indentation":{type:"boolean",default:t.indentation,description:p(417,null)},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[p(416,null),p(414,null),p(415,null)],default:t.highlightActiveIndentation,description:p(413,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{bracketPairs:_p(e.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:_p(e.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:de(e.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:de(e.indentation,this.defaultValue.indentation),highlightActiveIndentation:_p(e.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}};function _p(i,t,e){let n=e.indexOf(i);return n===-1?t:e[n]}var sR=class extends Nt{constructor(){let t={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(134,"suggest",t,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[p(665,null),p(667,null)],default:t.insertMode,description:p(663,null)},"editor.suggest.filterGraceful":{type:"boolean",default:t.filterGraceful,description:p(662,null)},"editor.suggest.localityBonus":{type:"boolean",default:t.localityBonus,description:p(670,null)},"editor.suggest.shareSuggestSelections":{type:"boolean",default:t.shareSuggestSelections,markdownDescription:p(674,null)},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[p(664,null),p(666,null),p(669,null),p(668,null)],default:t.selectionMode,markdownDescription:p(673,null,"`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:t.snippetsPreventQuickSuggestions,description:p(678,null)},"editor.suggest.showIcons":{type:"boolean",default:t.showIcons,description:p(675,null)},"editor.suggest.showStatusBar":{type:"boolean",default:t.showStatusBar,description:p(677,null)},"editor.suggest.preview":{type:"boolean",default:t.preview,description:p(672,null)},"editor.suggest.showInlineDetails":{type:"boolean",default:t.showInlineDetails,description:p(676,null)},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:p(671,null)},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:p(355,null)},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:p(448,null)},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:p(444,null)},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:p(435,null)},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:p(437,null)},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:p(431,null)},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:p(441,null)},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:p(460,null)},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:p(432,null)},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:p(454,null)},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:p(445,null)},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:p(449,null)},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:p(451,null)},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:p(440,null)},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:p(450,null)},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:p(457,null)},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:p(459,null)},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:p(434,null)},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:p(439,null)},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:p(438,null)},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:p(447,null)},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:p(455,null)},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:p(433,null)},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:p(442,null)},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:p(452,null)},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:p(436,null)},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:p(443,null)},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:p(456,null)},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:p(453,null)},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:p(458,null)},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:p(446,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{insertMode:Ot(e.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:de(e.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:de(e.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:de(e.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:de(e.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:Ot(e.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:de(e.showIcons,this.defaultValue.showIcons),showStatusBar:de(e.showStatusBar,this.defaultValue.showStatusBar),preview:de(e.preview,this.defaultValue.preview),previewMode:Ot(e.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:de(e.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:de(e.showMethods,this.defaultValue.showMethods),showFunctions:de(e.showFunctions,this.defaultValue.showFunctions),showConstructors:de(e.showConstructors,this.defaultValue.showConstructors),showDeprecated:de(e.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:de(e.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:de(e.showFields,this.defaultValue.showFields),showVariables:de(e.showVariables,this.defaultValue.showVariables),showClasses:de(e.showClasses,this.defaultValue.showClasses),showStructs:de(e.showStructs,this.defaultValue.showStructs),showInterfaces:de(e.showInterfaces,this.defaultValue.showInterfaces),showModules:de(e.showModules,this.defaultValue.showModules),showProperties:de(e.showProperties,this.defaultValue.showProperties),showEvents:de(e.showEvents,this.defaultValue.showEvents),showOperators:de(e.showOperators,this.defaultValue.showOperators),showUnits:de(e.showUnits,this.defaultValue.showUnits),showValues:de(e.showValues,this.defaultValue.showValues),showConstants:de(e.showConstants,this.defaultValue.showConstants),showEnums:de(e.showEnums,this.defaultValue.showEnums),showEnumMembers:de(e.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:de(e.showKeywords,this.defaultValue.showKeywords),showWords:de(e.showWords,this.defaultValue.showWords),showColors:de(e.showColors,this.defaultValue.showColors),showFiles:de(e.showFiles,this.defaultValue.showFiles),showReferences:de(e.showReferences,this.defaultValue.showReferences),showFolders:de(e.showFolders,this.defaultValue.showFolders),showTypeParameters:de(e.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:de(e.showSnippets,this.defaultValue.showSnippets),showUsers:de(e.showUsers,this.defaultValue.showUsers),showIssues:de(e.showIssues,this.defaultValue.showIssues)}}},aR=class extends Nt{constructor(){super(129,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:p(647,null),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:p(648,null),default:!0,type:"boolean"}})}validate(t){return!t||typeof t!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:de(t.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:de(t.selectSubwords,this.defaultValue.selectSubwords)}}},lR=class extends Nt{constructor(){let t=[];super(147,"wordSegmenterLocales",t,{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}],description:p(708,null),type:"array",items:{type:"string"},default:t})}validate(t){if(typeof t=="string"&&(t=[t]),Array.isArray(t)){let e=[];for(let n of t)if(typeof n=="string")try{Intl.Segmenter.supportedLocalesOf(n).length>0&&e.push(n)}catch{}return e}return this.defaultValue}};var dR=class extends Nt{constructor(){super(155,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[p(720,null),p(721,null),p(719,null),p(718,null)],description:p(717,null),default:"same"}})}validate(t){switch(t){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(t,e,n){return e.get(2)===2?0:n}},cR=class extends cs{constructor(){super(166,{isDominatedByLongLines:!1,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1})}compute(t,e,n){let o=e.get(165);return{isDominatedByLongLines:t.isDominatedByLongLines,isWordWrapMinified:o.isWordWrapMinified,isViewportWrapping:o.isViewportWrapping,wrappingColumn:o.wrappingColumn}}},uR=class extends Nt{constructor(){let t={enabled:!0,showDropSelector:"afterDrop"};super(43,"dropIntoEditor",t,{"editor.dropIntoEditor.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(358,null)},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:p(359,null),enum:["afterDrop","never"],enumDescriptions:[p(360,null),p(361,null)],default:"afterDrop"}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),showDropSelector:Ot(e.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}},pR=class extends Nt{constructor(){let t={enabled:!0,showPasteSelector:"afterPaste"};super(97,"pasteAs",t,{"editor.pasteAs.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(594,null)},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:p(595,null),enum:["afterPaste","never"],enumDescriptions:[p(596,null),p(597,null)],default:"afterPaste"}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:de(e.enabled,this.defaultValue.enabled),showPasteSelector:Ot(e.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}},i7=[];function H(i){return i7[i.id]=i,i}var zne={acceptSuggestionOnCommitCharacter:H(new _e(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:p(304,null)})),acceptSuggestionOnEnter:H(new Lt(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",p(306,null),""],markdownDescription:p(305,null)})),accessibilitySupport:H(new TD),accessibilityPageSize:H(new mt(3,"accessibilityPageSize",500,1,1073741824,{description:p(307,null),tags:["accessibility"]})),allowOverflow:H(new _e(4,"allowOverflow",!0)),allowVariableLineHeights:H(new _e(5,"allowVariableLineHeights",!0,{description:p(314,null)})),allowVariableFonts:H(new _e(6,"allowVariableFonts",!0,{description:p(312,null)})),allowVariableFontsInAccessibilityMode:H(new _e(7,"allowVariableFontsInAccessibilityMode",!1,{description:p(313,null),tags:["accessibility"]})),ariaLabel:H(new fo(8,"ariaLabel",p(461,null))),ariaRequired:H(new _e(9,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:H(new _e(12,"screenReaderAnnounceInlineSuggestion",!0,{description:p(626,null),tags:["accessibility"]})),autoClosingBrackets:H(new Lt(10,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(364,null),p(363,null),""],description:p(320,null)})),autoClosingComments:H(new Lt(11,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(366,null),p(365,null),""],description:p(321,null)})),autoClosingDelete:H(new Lt(13,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",p(367,null),""],description:p(322,null)})),autoClosingOvertype:H(new Lt(14,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",p(368,null),""],description:p(323,null)})),autoClosingQuotes:H(new Lt(15,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(370,null),p(369,null),""],description:p(324,null)})),autoIndent:H(new Tc(16,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],n7,{enumDescriptions:[p(375,null),p(374,null),p(372,null),p(371,null),p(373,null)],description:p(325,null)})),autoIndentOnPaste:H(new _e(17,"autoIndentOnPaste",!1,{description:p(326,null)})),autoIndentOnPasteWithinString:H(new _e(18,"autoIndentOnPasteWithinString",!0,{description:p(327,null)})),automaticLayout:H(new _e(19,"automaticLayout",!1)),autoSurround:H(new Lt(20,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[p(377,null),p(378,null),p(376,null),""],description:p(328,null)})),bracketPairColorization:H(new rR),bracketPairGuides:H(new iR),stickyTabStops:H(new _e(132,"stickyTabStops",!1,{description:p(661,null)})),codeLens:H(new _e(23,"codeLens",!0,{description:p(331,null)})),codeLensFontFamily:H(new fo(24,"codeLensFontFamily","",{description:p(332,null)})),codeLensFontSize:H(new mt(25,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:p(333,null)})),colorDecorators:H(new _e(26,"colorDecorators",!0,{description:p(335,null)})),colorDecoratorActivatedOn:H(new Lt(168,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[p(380,null),p(381,null),p(379,null)],description:p(334,null)})),colorDecoratorsLimit:H(new mt(27,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:p(336,null)})),columnSelection:H(new _e(28,"columnSelection",!1,{description:p(337,null)})),comments:H(new ED),contextmenu:H(new _e(30,"contextmenu",!0)),copyWithSyntaxHighlighting:H(new _e(31,"copyWithSyntaxHighlighting",!0,{description:p(340,null)})),cursorBlinking:H(new Tc(32,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],o7,{description:p(341,null)})),cursorSmoothCaretAnimation:H(new Lt(33,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[p(345,null),p(344,null),p(346,null)],description:p(343,null)})),cursorStyle:H(new Tc(34,"cursorStyle",1,"line",["line","block","underline","line-thin","block-outline","underline-thin"],h2,{description:p(347,null)})),overtypeCursorStyle:H(new Tc(92,"overtypeCursorStyle",2,"block",["line","block","underline","line-thin","block-outline","underline-thin"],h2,{description:p(587,null)})),cursorSurroundingLines:H(new mt(35,"cursorSurroundingLines",0,0,1073741824,{description:p(348,null)})),cursorSurroundingLinesStyle:H(new Lt(36,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[p(351,null),p(350,null)],markdownDescription:p(349,null)})),cursorWidth:H(new mt(37,"cursorWidth",0,0,1073741824,{markdownDescription:p(352,null)})),cursorHeight:H(new mt(38,"cursorHeight",0,0,1073741824,{markdownDescription:p(342,null)})),disableLayerHinting:H(new _e(39,"disableLayerHinting",!1)),disableMonospaceOptimizations:H(new _e(40,"disableMonospaceOptimizations",!1)),domReadOnly:H(new _e(41,"domReadOnly",!1)),doubleClickSelectsBlock:H(new _e(173,"doubleClickSelectsBlock",!0,{description:p(356,null)})),dragAndDrop:H(new _e(42,"dragAndDrop",!0,{description:p(357,null)})),emptySelectionClipboard:H(new kD),dropIntoEditor:H(new uR),editContext:H(new _e(44,"editContext",!0,{description:p(362,null),included:Ah||mI||dI})),renderRichScreenReaderContent:H(new _e(107,"renderRichScreenReaderContent",!1,{markdownDescription:p(617,null)})),stickyScroll:H(new BD),experimentalGpuAcceleration:H(new Lt(46,"experimentalGpuAcceleration","off",["off","on"],{tags:["experimental"],enumDescriptions:[p(465,null),p(466,null)],description:p(464,null)})),experimentalWhitespaceRendering:H(new Lt(47,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[p(470,null),p(468,null),p(469,null)],description:p(467,null)})),extraEditorClassName:H(new fo(48,"extraEditorClassName","")),fastScrollSensitivity:H(new xr(49,"fastScrollSensitivity",5,i=>i<=0?5:i,{markdownDescription:p(471,null)})),find:H(new PD),fixedOverflowWidgets:H(new _e(51,"fixedOverflowWidgets",!1)),folding:H(new _e(52,"folding",!0,{description:p(482,null)})),foldingStrategy:H(new Lt(53,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[p(487,null),p(488,null)],description:p(486,null)})),foldingHighlight:H(new _e(54,"foldingHighlight",!0,{description:p(483,null)})),foldingImportsByDefault:H(new _e(55,"foldingImportsByDefault",!1,{description:p(484,null)})),foldingMaximumRegions:H(new mt(56,"foldingMaximumRegions",5e3,10,65e3,{description:p(485,null)})),unfoldOnClickAfterEndOfLine:H(new _e(57,"unfoldOnClickAfterEndOfLine",!1,{description:p(692,null)})),fontFamily:H(new fo(58,"fontFamily",Si.fontFamily,{description:p(489,null)})),fontInfo:H(new RD),fontLigatures2:H(new _D),fontSize:H(new OD),fontWeight:H(new ND),fontVariations:H(new DD),formatOnPaste:H(new _e(64,"formatOnPaste",!1,{description:p(499,null)})),formatOnType:H(new _e(65,"formatOnType",!1,{description:p(500,null)})),glyphMargin:H(new _e(66,"glyphMargin",!0,{description:p(501,null)})),gotoLocation:H(new UD),hideCursorInOverviewRuler:H(new _e(68,"hideCursorInOverviewRuler",!1,{description:p(502,null)})),hover:H(new FD),inDiffEditor:H(new _e(70,"inDiffEditor",!1)),inertialScroll:H(new _e(158,"inertialScroll",!1,{description:p(512,null)})),letterSpacing:H(new xr(72,"letterSpacing",Si.letterSpacing,i=>xr.clamp(i,-5,20),{description:p(538,null)})),lightbulb:H(new WD),lineDecorationsWidth:H(new zD),lineHeight:H(new qD),lineNumbers:H(new XD),lineNumbersMinChars:H(new mt(77,"lineNumbersMinChars",5,1,300)),linkedEditing:H(new _e(78,"linkedEditing",!1,{description:p(545,null)})),links:H(new _e(79,"links",!0,{description:p(546,null)})),matchBrackets:H(new Lt(80,"matchBrackets","always",["always","near","never"],{description:p(547,null)})),minimap:H(new KD),mouseStyle:H(new Lt(82,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:H(new xr(83,"mouseWheelScrollSensitivity",1,i=>i===0?1:i,{markdownDescription:p(568,null)})),mouseWheelZoom:H(new _e(84,"mouseWheelZoom",!1,{markdownDescription:ht?p(570,null):p(569,null)})),multiCursorMergeOverlapping:H(new _e(85,"multiCursorMergeOverlapping",!0,{description:p(572,null)})),multiCursorModifier:H(new Tc(86,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],r7,{markdownEnumDescriptions:[p(575,null),p(574,null)],markdownDescription:p(573,null)})),mouseMiddleClickAction:H(new Lt(87,"mouseMiddleClickAction","default",["default","openLink","ctrlLeftClick"],{description:p(567,null)})),multiCursorPaste:H(new Lt(88,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[p(578,null),p(577,null)],markdownDescription:p(576,null)})),multiCursorLimit:H(new mt(89,"multiCursorLimit",1e4,1,1e5,{markdownDescription:p(571,null)})),occurrencesHighlight:H(new Lt(90,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[p(581,null),p(582,null),p(580,null)],markdownDescription:p(579,null)})),occurrencesHighlightDelay:H(new mt(91,"occurrencesHighlightDelay",0,0,2e3,{description:p(583,null),tags:["preview"]})),overtypeOnPaste:H(new _e(93,"overtypeOnPaste",!0,{description:p(588,null)})),overviewRulerBorder:H(new _e(94,"overviewRulerBorder",!0,{description:p(589,null)})),overviewRulerLanes:H(new mt(95,"overviewRulerLanes",3,0,3)),padding:H(new jD),pasteAs:H(new pR),parameterHints:H(new GD),peekWidgetDefaultFocus:H(new Lt(99,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[p(600,null),p(599,null)],description:p(598,null)})),placeholder:H(new JD),definitionLinkOpensInPeek:H(new _e(101,"definitionLinkOpensInPeek",!1,{description:p(354,null)})),quickSuggestions:H(new YD),quickSuggestionsDelay:H(new mt(103,"quickSuggestionsDelay",10,0,1073741824,{description:p(609,null),experiment:{mode:"auto"}})),readOnly:H(new _e(104,"readOnly",!1)),readOnlyMessage:H(new eR),renameOnType:H(new _e(106,"renameOnType",!1,{description:p(610,null),markdownDeprecationMessage:p(611,null)})),renderControlCharacters:H(new _e(108,"renderControlCharacters",!0,{description:p(612,null),restricted:!0})),renderFinalNewline:H(new Lt(109,"renderFinalNewline",Je?"dimmed":"on",["off","on","dimmed"],{description:p(613,null)})),renderLineHighlight:H(new Lt(110,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",p(615,null)],description:p(614,null)})),renderLineHighlightOnlyWhenFocus:H(new _e(111,"renderLineHighlightOnlyWhenFocus",!1,{description:p(616,null)})),renderValidationDecorations:H(new Lt(112,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:H(new Lt(113,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",p(619,null),p(620,null),p(621,null),""],description:p(618,null)})),revealHorizontalRightPadding:H(new mt(114,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:H(new _e(115,"roundedSelection",!0,{description:p(622,null)})),rulers:H(new ZD),scrollbar:H(new tR),scrollBeyondLastColumn:H(new mt(118,"scrollBeyondLastColumn",4,0,1073741824,{description:p(639,null)})),scrollBeyondLastLine:H(new _e(119,"scrollBeyondLastLine",!0,{description:p(640,null)})),scrollOnMiddleClick:H(new _e(171,"scrollOnMiddleClick",!1,{description:p(641,null)})),scrollPredominantAxis:H(new _e(120,"scrollPredominantAxis",!0,{description:p(642,null)})),selectionClipboard:H(new _e(121,"selectionClipboard",!0,{description:p(643,null),included:Je})),selectionHighlight:H(new _e(122,"selectionHighlight",!0,{description:p(644,null)})),selectionHighlightMaxLength:H(new mt(123,"selectionHighlightMaxLength",200,0,1073741824,{description:p(645,null)})),selectionHighlightMultiline:H(new _e(124,"selectionHighlightMultiline",!1,{description:p(646,null)})),selectOnLineNumbers:H(new _e(125,"selectOnLineNumbers",!0)),showFoldingControls:H(new Lt(126,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[p(651,null),p(653,null),p(652,null)],description:p(650,null)})),showUnused:H(new _e(127,"showUnused",!0,{description:p(654,null)})),showDeprecated:H(new _e(157,"showDeprecated",!0,{description:p(649,null)})),inlayHints:H(new $D),snippetSuggestions:H(new Lt(128,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[p(660,null),p(657,null),p(658,null),p(659,null)],description:p(656,null)})),smartSelect:H(new aR),smoothScrolling:H(new _e(130,"smoothScrolling",!1,{description:p(655,null)})),stopRenderingLineAfter:H(new mt(133,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:H(new sR),inlineSuggest:H(new oR),inlineCompletionsAccessibilityVerbose:H(new _e(169,"inlineCompletionsAccessibilityVerbose",!1,{description:p(519,null)})),suggestFontSize:H(new mt(135,"suggestFontSize",0,0,1e3,{markdownDescription:p(679,null,"`0`","`#editor.fontSize#`")})),suggestLineHeight:H(new mt(136,"suggestLineHeight",0,0,1e3,{markdownDescription:p(680,null,"`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:H(new _e(137,"suggestOnTriggerCharacters",!0,{description:p(681,null)})),suggestSelection:H(new Lt(138,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[p(683,null),p(684,null),p(685,null)],description:p(682,null)})),tabCompletion:H(new Lt(139,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[p(688,null),p(687,null),p(689,null)],description:p(686,null)})),tabIndex:H(new mt(140,"tabIndex",0,-1,1073741824)),trimWhitespaceOnDelete:H(new _e(141,"trimWhitespaceOnDelete",!1,{description:p(691,null)})),unicodeHighlight:H(new nR),unusualLineTerminators:H(new Lt(143,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[p(701,null),p(702,null),p(703,null)],description:p(700,null)})),useShadowDOM:H(new _e(144,"useShadowDOM",!0)),useTabStops:H(new _e(145,"useTabStops",!0,{description:p(704,null)})),wordBreak:H(new Lt(146,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[p(707,null),p(706,null)],description:p(705,null)})),wordSegmenterLocales:H(new lR),wordSeparators:H(new fo(148,"wordSeparators",bD,{description:p(709,null)})),wordWrap:H(new Lt(149,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[p(712,null),p(713,null),p(714,null),p(711,null)],description:p(710,null)})),wordWrapBreakAfterCharacters:H(new fo(150,"wordWrapBreakAfterCharacters"," 	})]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:H(new fo(151,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:H(new mt(152,"wordWrapColumn",80,1,1073741824,{markdownDescription:p(715,null)})),wordWrapOverride1:H(new Lt(153,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:H(new Lt(154,"wordWrapOverride2","inherit",["off","on","inherit"])),wrapOnEscapedLineFeeds:H(new _e(160,"wrapOnEscapedLineFeeds",!1,{markdownDescription:p(716,null)})),effectiveCursorStyle:H(new AD),editorClassName:H(new wD),defaultColorDecorators:H(new Lt(167,"defaultColorDecorators","auto",["auto","always","never"],{enumDescriptions:[p(383,null),p(382,null),p(384,null)],description:p(353,null)})),pixelRatio:H(new QD),tabFocusMode:H(new _e(164,"tabFocusMode",!1,{markdownDescription:p(690,null)})),layoutInfo:H(new HD),wrappingInfo:H(new cR),wrappingIndent:H(new dR),wrappingStrategy:H(new VD),effectiveEditContextEnabled:H(new MD),effectiveAllowVariableFonts:H(new LD)};var Co,gR=globalThis.vscode;if(typeof gR<"u"&&typeof gR.context<"u"){let i=gR.context.configuration();if(i)Co=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(Co=globalThis._VSCODE_PRODUCT_JSON,oo.VSCODE_DEV&&Object.assign(Co,{nameShort:`${Co.nameShort} Dev`,nameLong:`${Co.nameLong} Dev`,dataFolderName:`${Co.dataFolderName}-dev`,serverDataFolderName:Co.serverDataFolderName?`${Co.serverDataFolderName}-dev`:void 0}),!Co.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(Co,{version:i.version})}Object.assign(Co,{extensionsGallery:oo.EXTENSIONS_GALLERY?JSON.parse(oo.EXTENSIONS_GALLERY):Co.extensionsGallery||{serviceUrl:"https://open-vsx.org/vscode/gallery",itemUrl:"https://open-vsx.org/vscode/item",extensionUrlTemplate:"https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest",resourceUrlTemplate:"https://open-vsx.org/vscode/asset/{publisher}/{name}/{version}/Microsoft.VisualStudio.Code.WebResources/{path}",controlUrl:"",recommendationsUrl:""},telemetryEndpoint:oo.CS_TELEMETRY_URL||Co.telemetryEndpoint||"https://v1.telemetry.coder.com/track"})}else Co={nameShort:"code-server",nameLong:"code-server",applicationName:"code-server",dataFolderName:".code-server",sharedDataFolderName:".vscode-oss-shared",win32MutexName:"codeserver",licenseName:"MIT",licenseUrl:"https://github.com/coder/code-server/blob/main/LICENSE",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverGreeting:[],serverLicense:[],serverLicensePrompt:"",serverApplicationName:"code-server-oss",serverDataFolderName:".vscode-server-oss",tunnelApplicationName:"code-tunnel-oss",win32DirName:"code-server",win32NameVersion:"code-server",win32RegValueName:"CodeOSS",win32x64AppId:"{{D77B7E06-80BA-4137-BCF4-654B95CCEBC5}",win32arm64AppId:"{{D1ACE434-89C5-48D1-88D3-E2991DF85475}",win32x64UserAppId:"{{CC6B787D-37A0-49E8-AE24-8559A032BE0C}",win32arm64UserAppId:"{{3AEBF0C8-F733-4AD4-BADE-FDB816D53D7B}",win32AppUserModelId:"coder.code-server",win32ShellNameShort:"c&ode-server",win32TunnelServiceMutex:"vscodeoss-tunnelservice",win32TunnelMutex:"vscodeoss-tunnel",darwinBundleIdentifier:"com.coder.code.server",darwinProfileUUID:"47827DD9-4734-49A0-AF80-7E19B11495CC",darwinProfilePayloadUUID:"CF808BE7-53F3-46C6-A7E2-7EDB98A5E959",linuxIconName:"com.coder.code.server",licenseFileName:"LICENSE.txt",reportIssueUrl:"https://github.com/coder/code-server/issues/new",nodejsRepository:"https://nodejs.org",urlProtocol:"code-oss",agentsTelemetryAppName:"agents",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/",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"}}],defaultChatAgent:{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",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",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"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerExtensionId:"vscode.github-authentication",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",managedSettingsUrl:"https://api.github.com/copilot_internal/managed_settings"},trustedExtensionAuthAccess:["vscode.git","vscode.github","github.vscode-pull-request-github","github.copilot","github.copilot-chat"],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"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],sessionsWindowAllowedExtensions:[],voiceWsUrl:"wss://falcon-caas.mai.microsoft.com/voice-code/api/v1/realtime/voice",enableTelemetry:!0,quality:"stable",codeServerVersion:"4.125.0",documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#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",linkProtectionTrustedDomains:["https://open-vsx.org"],aiConfig:{ariaKey:"code-server"},version:"1.125.0",commit:"fade53fcaf82e7c535cb972a7e3d8da4e43b63a4",date:"2026-06-15T22:24:03Z"},Object.keys(Co).length===0&&Object.assign(Co,{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 Xo=Co;var av=class i{constructor(t){this._proxyIdentifierBrand=void 0;this.sid=t,this.nid=++i.count}static{this.count=0}},b2=[];function V(i){let t=new av(i);return b2[t.nid]=t,t}function lv(i){return b2[i].sid}var Yt=class{constructor(t){this.value=t}};var fR=(o=>(o[o.None=0]="None",o[o.Process=1]="Process",o[o.Output=2]="Output",o[o.Hybrid=3]="Hybrid",o))(fR||{}),y2=class i{static{this._n=0}static mixin(t){return t._id=i._n++,t}};var F={MainThreadAuthentication:V("MainThreadAuthentication"),MainThreadBulkEdits:V("MainThreadBulkEdits"),MainThreadLanguageModels:V("MainThreadLanguageModels"),MainThreadEmbeddings:V("MainThreadEmbeddings"),MainThreadChatAgents2:V("MainThreadChatAgents2"),MainThreadCodeMapper:V("MainThreadCodeMapper"),MainThreadLanguageModelTools:V("MainThreadChatSkills"),MainThreadGitExtension:V("MainThreadGitExtension"),MainThreadClipboard:V("MainThreadClipboard"),MainThreadCommands:V("MainThreadCommands"),MainThreadComments:V("MainThreadComments"),MainThreadConfiguration:V("MainThreadConfiguration"),MainThreadConsole:V("MainThreadConsole"),MainThreadDebugService:V("MainThreadDebugService"),MainThreadDecorations:V("MainThreadDecorations"),MainThreadDiagnostics:V("MainThreadDiagnostics"),MainThreadDialogs:V("MainThreadDiaglogs"),MainThreadDocuments:V("MainThreadDocuments"),MainThreadDocumentContentProviders:V("MainThreadDocumentContentProviders"),MainThreadTextEditors:V("MainThreadTextEditors"),MainThreadEditorInsets:V("MainThreadEditorInsets"),MainThreadEditorTabs:V("MainThreadEditorTabs"),MainThreadErrors:V("MainThreadErrors"),MainThreadTreeViews:V("MainThreadTreeViews"),MainThreadDownloadService:V("MainThreadDownloadService"),MainThreadLanguageFeatures:V("MainThreadLanguageFeatures"),MainThreadLanguages:V("MainThreadLanguages"),MainThreadLogger:V("MainThreadLogger"),MainThreadMessageService:V("MainThreadMessageService"),MainThreadOutputService:V("MainThreadOutputService"),MainThreadProgress:V("MainThreadProgress"),MainThreadQuickDiff:V("MainThreadQuickDiff"),MainThreadDocumentDiff:V("MainThreadDocumentDiff"),MainThreadQuickOpen:V("MainThreadQuickOpen"),MainThreadStatusBar:V("MainThreadStatusBar"),MainThreadSecretState:V("MainThreadSecretState"),MainThreadStorage:V("MainThreadStorage"),MainThreadSpeech:V("MainThreadSpeechProvider"),MainThreadTelemetry:V("MainThreadTelemetry"),MainThreadMeteredConnection:V("MainThreadMeteredConnection"),MainThreadTerminalService:V("MainThreadTerminalService"),MainThreadTerminalShellIntegration:V("MainThreadTerminalShellIntegration"),MainThreadWebviews:V("MainThreadWebviews"),MainThreadWebviewPanels:V("MainThreadWebviewPanels"),MainThreadWebviewViews:V("MainThreadWebviewViews"),MainThreadCustomEditors:V("MainThreadCustomEditors"),MainThreadUrls:V("MainThreadUrls"),MainThreadUriOpeners:V("MainThreadUriOpeners"),MainThreadProfileContentHandlers:V("MainThreadProfileContentHandlers"),MainThreadWorkspace:V("MainThreadWorkspace"),MainThreadFileSystem:V("MainThreadFileSystem"),MainThreadFileSystemEventService:V("MainThreadFileSystemEventService"),MainThreadExtensionService:V("MainThreadExtensionService"),MainThreadSCM:V("MainThreadSCM"),MainThreadSearch:V("MainThreadSearch"),MainThreadShare:V("MainThreadShare"),MainThreadTask:V("MainThreadTask"),MainThreadWindow:V("MainThreadWindow"),MainThreadPower:V("MainThreadPower"),MainThreadLabelService:V("MainThreadLabelService"),MainThreadNotebook:V("MainThreadNotebook"),MainThreadNotebookDocuments:V("MainThreadNotebookDocumentsShape"),MainThreadNotebookEditors:V("MainThreadNotebookEditorsShape"),MainThreadNotebookKernels:V("MainThreadNotebookKernels"),MainThreadNotebookRenderers:V("MainThreadNotebookRenderers"),MainThreadInteractive:V("MainThreadInteractive"),MainThreadTheming:V("MainThreadTheming"),MainThreadTunnelService:V("MainThreadTunnelService"),MainThreadManagedSockets:V("MainThreadManagedSockets"),MainThreadTimeline:V("MainThreadTimeline"),MainThreadTesting:V("MainThreadTesting"),MainThreadLocalization:V("MainThreadLocalizationShape"),MainThreadMcp:V("MainThreadMcpShape"),MainThreadAiRelatedInformation:V("MainThreadAiRelatedInformation"),MainThreadAiEmbeddingVector:V("MainThreadAiEmbeddingVector"),MainThreadChatStatus:V("MainThreadChatStatus"),MainThreadChatQuota:V("MainThreadChatQuota"),MainThreadChatInputNotification:V("MainThreadChatInputNotification"),MainThreadAiSettingsSearch:V("MainThreadAiSettingsSearch"),MainThreadDataChannels:V("MainThreadDataChannels"),MainThreadChatSessions:V("MainThreadChatSessions"),MainThreadChatOutputRenderer:V("MainThreadChatOutputRenderer"),MainThreadChatContext:V("MainThreadChatContext"),MainThreadChatDebug:V("MainThreadChatDebug"),MainThreadBrowsers:V("MainThreadBrowsers")},fe={ExtHostCodeMapper:V("ExtHostCodeMapper"),ExtHostCommands:V("ExtHostCommands"),ExtHostConfiguration:V("ExtHostConfiguration"),ExtHostDiagnostics:V("ExtHostDiagnostics"),ExtHostDebugService:V("ExtHostDebugService"),ExtHostDecorations:V("ExtHostDecorations"),ExtHostDocumentsAndEditors:V("ExtHostDocumentsAndEditors"),ExtHostDocuments:V("ExtHostDocuments"),ExtHostDocumentContentProviders:V("ExtHostDocumentContentProviders"),ExtHostDocumentSaveParticipant:V("ExtHostDocumentSaveParticipant"),ExtHostEditors:V("ExtHostEditors"),ExtHostTreeViews:V("ExtHostTreeViews"),ExtHostFileSystem:V("ExtHostFileSystem"),ExtHostFileSystemInfo:V("ExtHostFileSystemInfo"),ExtHostFileSystemEventService:V("ExtHostFileSystemEventService"),ExtHostLanguages:V("ExtHostLanguages"),ExtHostLanguageFeatures:V("ExtHostLanguageFeatures"),ExtHostQuickOpen:V("ExtHostQuickOpen"),ExtHostQuickDiff:V("ExtHostQuickDiff"),ExtHostStatusBar:V("ExtHostStatusBar"),ExtHostShare:V("ExtHostShare"),ExtHostExtensionService:V("ExtHostExtensionService"),ExtHostLogLevelServiceShape:V("ExtHostLogLevelServiceShape"),ExtHostTerminalService:V("ExtHostTerminalService"),ExtHostTerminalShellIntegration:V("ExtHostTerminalShellIntegration"),ExtHostSCM:V("ExtHostSCM"),ExtHostSearch:V("ExtHostSearch"),ExtHostTask:V("ExtHostTask"),ExtHostWorkspace:V("ExtHostWorkspace"),ExtHostWindow:V("ExtHostWindow"),ExtHostPower:V("ExtHostPower"),ExtHostWebviews:V("ExtHostWebviews"),ExtHostWebviewPanels:V("ExtHostWebviewPanels"),ExtHostCustomEditors:V("ExtHostCustomEditors"),ExtHostWebviewViews:V("ExtHostWebviewViews"),ExtHostEditorInsets:V("ExtHostEditorInsets"),ExtHostEditorTabs:V("ExtHostEditorTabs"),ExtHostProgress:V("ExtHostProgress"),ExtHostComments:V("ExtHostComments"),ExtHostSecretState:V("ExtHostSecretState"),ExtHostStorage:V("ExtHostStorage"),ExtHostUrls:V("ExtHostUrls"),ExtHostUriOpeners:V("ExtHostUriOpeners"),ExtHostChatOutputRenderer:V("ExtHostChatOutputRenderer"),ExtHostProfileContentHandlers:V("ExtHostProfileContentHandlers"),ExtHostOutputService:V("ExtHostOutputService"),ExtHostLabelService:V("ExtHostLabelService"),ExtHostNotebook:V("ExtHostNotebook"),ExtHostNotebookDocuments:V("ExtHostNotebookDocuments"),ExtHostNotebookEditors:V("ExtHostNotebookEditors"),ExtHostNotebookKernels:V("ExtHostNotebookKernels"),ExtHostNotebookRenderers:V("ExtHostNotebookRenderers"),ExtHostNotebookDocumentSaveParticipant:V("ExtHostNotebookDocumentSaveParticipant"),ExtHostInteractive:V("ExtHostInteractive"),ExtHostChatAgents2:V("ExtHostChatAgents"),ExtHostLanguageModelTools:V("ExtHostChatSkills"),ExtHostChatProvider:V("ExtHostChatProvider"),ExtHostChatContext:V("ExtHostChatContext"),ExtHostChatDebug:V("ExtHostChatDebug"),ExtHostSpeech:V("ExtHostSpeech"),ExtHostEmbeddings:V("ExtHostEmbeddings"),ExtHostAiRelatedInformation:V("ExtHostAiRelatedInformation"),ExtHostAiEmbeddingVector:V("ExtHostAiEmbeddingVector"),ExtHostAiSettingsSearch:V("ExtHostAiSettingsSearch"),ExtHostTheming:V("ExtHostTheming"),ExtHostTunnelService:V("ExtHostTunnelService"),ExtHostManagedSockets:V("ExtHostManagedSockets"),ExtHostAuthentication:V("ExtHostAuthentication"),ExtHostTimeline:V("ExtHostTimeline"),ExtHostTesting:V("ExtHostTesting"),ExtHostTelemetry:V("ExtHostTelemetry"),ExtHostMeteredConnection:V("ExtHostMeteredConnection"),ExtHostLocalization:V("ExtHostLocalization"),ExtHostMcp:V("ExtHostMcp"),ExtHostDataChannels:V("ExtHostDataChannels"),ExtHostChatSessions:V("ExtHostChatSessions"),ExtHostChatQuota:V("ExtHostChatQuota"),ExtHostGitExtension:V("ExtHostGitExtension"),ExtHostBrowsers:V("ExtHostBrowsers")};function I2(i){return i.toJSON()}var tx=class{constructor(t){this._uriTransformer=t}transformIncoming(t){let e=this._uriTransformer.transformIncoming(t);return e===t?t:I2(b.from(e))}transformOutgoing(t){let e=this._uriTransformer.transformOutgoing(t);return e===t?t:I2(b.from(e))}transformOutgoingURI(t){let e=this._uriTransformer.transformOutgoing(t);return e===t?t:b.from(e)}transformOutgoingScheme(t){return this._uriTransformer.transformOutgoingScheme(t)}},ooe=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};function x2(i,t,e,n){if(!i||n>200)return null;if(typeof i=="object"){if(i.$mid===1)return e?b.revive(t.transformIncoming(i)):t.transformIncoming(i);if(i instanceof W)return null;for(let o in i)if(Object.hasOwnProperty.call(i,o)){let r=x2(i[o],t,e,n+1);r!==null&&(i[o]=r)}}return null}function Dp(i,t){let e=x2(i,t,!1,0);return e===null?i:e}var dv=class{constructor(){this._actual=null,this._actualOk=null,this._actualErr=null,this._hasValue=!1,this._value=null,this._hasErr=!1,this._err=null}get[Symbol.toStringTag](){return this.toString()}_ensureActual(){return this._actual||(this._actual=new Promise((t,e)=>{this._actualOk=t,this._actualErr=e,this._hasValue&&this._actualOk(this._value),this._hasErr&&this._actualErr(this._err)})),this._actual}resolveOk(t){this._hasValue||this._hasErr||(this._hasValue=!0,this._value=t,this._actual&&this._actualOk(t))}resolveErr(t){this._hasValue||this._hasErr||(this._hasErr=!0,this._err=t,this._actual?this._actualErr(t):Qe(t))}then(t,e){return this._ensureActual().then(t,e)}catch(t){return this._ensureActual().then(void 0,t)}finally(t){return this._ensureActual().finally(t)}},nx=class extends dv{constructor(){super(),this._hasErr=!0,this._err=new Ue}};function hR(i,t){try{return JSON.stringify(i,t)}catch{return"null"}}var bR="$$ref$$",s7={[bR]:-1};function S2(i,t=null,e=!1){let n=[];return{jsonString:(e?hR:JSON.stringify)(i,(r,s)=>{if(typeof s>"u")return s7;if(typeof s=="object"){if(s instanceof W){let a=n.push(s)-1;return{[bR]:a}}if(t)return t(r,s)}return s}),referencedBuffers:n}}function w2(i,t,e){return JSON.parse(i,(n,o)=>{if(o){let r=o[bR];if(typeof r=="number")return t[r];if(e&&o.$mid===1)return e.transformIncoming(o)}return o})}function C2(i,t){return JSON.stringify(i,t)}function a7(i){return i?(t,e)=>e&&e.$mid===1?i.transformOutgoing(e):e:null}var l7=()=>{},d7=Symbol.for("rpcProtocol"),c7=Symbol.for("rpcProxy"),T2,E2,ox=class i extends(E2=U,T2=d7,E2){constructor(e,n=null,o=null){super();this[T2]=!0;this._onDidChangeResponsiveState=this._register(new E);this.onDidChangeResponsiveState=this._onDidChangeResponsiveState.event;this._protocol=e,this._logger=n,this._uriTransformer=o,this._uriReplacer=a7(this._uriTransformer),this._isDisposed=!1,this._locals=[],this._proxies=[];for(let r=0,s=av.count;r<s;r++)this._locals[r]=null,this._proxies[r]=null;this._lastMessageId=0,this._cancelInvokedHandlers=Object.create(null),this._pendingRPCReplies={},this._responsiveState=0,this._unacknowledgedCount=0,this._unresponsiveTime=0,this._asyncCheckUresponsive=this._register(new Jn(()=>this._checkUnresponsive(),1e3)),this._register(this._protocol.onMessage(r=>this._receiveOneMessage(r)))}static{this.UNRESPONSIVE_TIME=3*1e3}dispose(){this._isDisposed=!0,Object.keys(this._pendingRPCReplies).forEach(e=>{let n=this._pendingRPCReplies[e];delete this._pendingRPCReplies[e],n.resolveErr(na())}),super.dispose()}drain(){return typeof this._protocol.drain=="function"?this._protocol.drain():Promise.resolve()}_onWillSendRequest(e){this._unacknowledgedCount===0&&(this._unresponsiveTime=Date.now()+i.UNRESPONSIVE_TIME),this._unacknowledgedCount++,this._asyncCheckUresponsive.isScheduled()||this._asyncCheckUresponsive.schedule()}_onDidReceiveAcknowledge(e){this._unresponsiveTime=Date.now()+i.UNRESPONSIVE_TIME,this._unacknowledgedCount--,this._unacknowledgedCount===0&&this._asyncCheckUresponsive.cancel(),this._setResponsiveState(0)}_checkUnresponsive(){this._unacknowledgedCount!==0&&(Date.now()>this._unresponsiveTime?this._setResponsiveState(1):this._asyncCheckUresponsive.schedule())}_setResponsiveState(e){this._responsiveState!==e&&(this._responsiveState=e,this._onDidChangeResponsiveState.fire(this._responsiveState))}get responsiveState(){return this._responsiveState}transformIncomingURIs(e){return this._uriTransformer?Dp(e,this._uriTransformer):e}getProxy(e){let{nid:n,sid:o}=e;return this._proxies[n]||(this._proxies[n]=this._createProxy(n,o)),this._proxies[n]}_createProxy(e,n){let o={get:(r,s)=>(typeof s=="string"&&!r[s]&&s.charCodeAt(0)===36&&(r[s]=(...a)=>this._remoteCall(e,s,a)),s===c7?n:r[s])};return new Proxy(Object.create(null),o)}set(e,n){return this._locals[e.nid]=n,n}assertRegistered(e){for(let n=0,o=e.length;n<o;n++){let r=e[n];if(!this._locals[r.nid])throw new Error(`Missing proxy instance ${r.sid}`)}}_receiveOneMessage(e){if(this._isDisposed)return;let n=e.byteLength,o=yn.read(e,0),r=o.readUInt8(),s=o.readUInt32();switch(r){case 1:case 2:{let{rpcId:a,method:l,args:d}=Sr.deserializeRequestJSONArgs(o);this._uriTransformer&&(d=Dp(d,this._uriTransformer)),this._receiveRequest(n,s,a,l,d,r===2);break}case 3:case 4:{let{rpcId:a,method:l,args:d}=Sr.deserializeRequestMixedArgs(o);this._uriTransformer&&(d=Dp(d,this._uriTransformer)),this._receiveRequest(n,s,a,l,d,r===4);break}case 5:{this._logger?.logIncoming(n,s,0,"ack"),this._onDidReceiveAcknowledge(s);break}case 6:{this._receiveCancel(n,s);break}case 7:{this._receiveReply(n,s,void 0);break}case 9:{let a=Sr.deserializeReplyOKJSON(o);this._uriTransformer&&(a=Dp(a,this._uriTransformer)),this._receiveReply(n,s,a);break}case 10:{let a=Sr.deserializeReplyOKJSONWithBuffers(o,this._uriTransformer);this._receiveReply(n,s,a);break}case 8:{let a=Sr.deserializeReplyOKVSBuffer(o);this._receiveReply(n,s,a);break}case 11:{let a=Sr.deserializeReplyErrError(o);this._uriTransformer&&(a=Dp(a,this._uriTransformer)),this._receiveReplyErr(n,s,a);break}case 12:{this._receiveReplyErr(n,s,void 0);break}default:console.error("received unexpected message"),console.error(e)}}_receiveRequest(e,n,o,r,s,a){this._logger?.logIncoming(e,n,1,`receiveRequest ${lv(o)}.${r}(`,s);let l=String(n),d,c;if(a){let m=new ke;s.push(m.token),d=this._invokeHandler(o,r,s),c=()=>m.cancel()}else d=this._invokeHandler(o,r,s),c=l7;this._cancelInvokedHandlers[l]=c;let u=Sr.serializeAcknowledged(n);this._logger?.logOutgoing(u.byteLength,n,1,"ack"),this._protocol.send(u),d.then(m=>{delete this._cancelInvokedHandlers[l];let g=Sr.serializeReplyOK(n,m,this._uriReplacer);this._logger?.logOutgoing(g.byteLength,n,1,"reply:",m),this._protocol.send(g)},m=>{delete this._cancelInvokedHandlers[l];let g=Sr.serializeReplyErr(n,m);this._logger?.logOutgoing(g.byteLength,n,1,"replyErr:",m),this._protocol.send(g)})}_receiveCancel(e,n){this._logger?.logIncoming(e,n,1,"receiveCancel");let o=String(n);this._cancelInvokedHandlers[o]?.()}_receiveReply(e,n,o){this._logger?.logIncoming(e,n,0,"receiveReply:",o);let r=String(n);if(!this._pendingRPCReplies.hasOwnProperty(r))return;let s=this._pendingRPCReplies[r];delete this._pendingRPCReplies[r],s.resolveOk(o)}_receiveReplyErr(e,n,o){this._logger?.logIncoming(e,n,0,"receiveReplyErr:",o);let r=String(n);if(!this._pendingRPCReplies.hasOwnProperty(r))return;let s=this._pendingRPCReplies[r];delete this._pendingRPCReplies[r];let a;o&&(o.$isError?(a=new Error,a.name=o.name,a.message=o.message,a.stack=o.stack):a=o),s.resolveErr(a)}_invokeHandler(e,n,o){try{return Promise.resolve(this._doInvokeHandler(e,n,o))}catch(r){return Promise.reject(r)}}_doInvokeHandler(e,n,o){let r=this._locals[e];if(!r)throw new Error("Unknown actor "+lv(e));let s=r[n];if(typeof s!="function")throw new Error("Unknown method "+n+" on actor "+lv(e));return s.apply(r,o)}_remoteCall(e,n,o){if(this._isDisposed)return new nx;let r=null;if(o.length>0&&me.isCancellationToken(o[o.length-1])&&(r=o.pop()),r&&r.isCancellationRequested)return Promise.reject(na());let s=Sr.serializeRequestArguments(o,this._uriReplacer),a=++this._lastMessageId,l=String(a),d=new dv,c=new z;r&&c.add(r.onCancellationRequested(()=>{let m=Sr.serializeCancel(a);this._logger?.logOutgoing(m.byteLength,a,0,"cancel"),this._protocol.send(m)})),this._pendingRPCReplies[l]=new vR(d,c),this._onWillSendRequest(a);let u=Sr.serializeRequest(a,e,n,s,!!r);return this._logger?.logOutgoing(u.byteLength,a,0,`request: ${lv(e)}.${n}(`,o),this._protocol.send(u),d}},vR=class{constructor(t,e){this._promise=t;this._disposable=e}resolveOk(t){this._promise.resolveOk(t),this._disposable.dispose()}resolveErr(t){this._promise.resolveErr(t),this._disposable.dispose()}},yn=class i{static alloc(t,e,n){let o=new i(W.alloc(n+1+4),0);return o.writeUInt8(t),o.writeUInt32(e),o}static read(t,e){return new i(t,e)}get buffer(){return this._buff}constructor(t,e){this._buff=t,this._offset=e}static sizeUInt8(){return 1}static{this.sizeUInt32=4}writeUInt8(t){this._buff.writeUInt8(t,this._offset),this._offset+=1}readUInt8(){let t=this._buff.readUInt8(this._offset);return this._offset+=1,t}writeUInt32(t){this._buff.writeUInt32BE(t,this._offset),this._offset+=4}readUInt32(){let t=this._buff.readUInt32BE(this._offset);return this._offset+=4,t}static sizeShortString(t){return 1+t.byteLength}writeShortString(t){this._buff.writeUInt8(t.byteLength,this._offset),this._offset+=1,this._buff.set(t,this._offset),this._offset+=t.byteLength}readShortString(){let t=this._buff.readUInt8(this._offset);this._offset+=1;let n=this._buff.slice(this._offset,this._offset+t).toString();return this._offset+=t,n}static sizeLongString(t){return 4+t.byteLength}writeLongString(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}readLongString(){let t=this._buff.readUInt32BE(this._offset);this._offset+=4;let n=this._buff.slice(this._offset,this._offset+t).toString();return this._offset+=t,n}writeBuffer(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}static sizeVSBuffer(t){return 4+t.byteLength}writeVSBuffer(t){this._buff.writeUInt32BE(t.byteLength,this._offset),this._offset+=4,this._buff.set(t,this._offset),this._offset+=t.byteLength}readVSBuffer(){let t=this._buff.readUInt32BE(this._offset);this._offset+=4;let e=this._buff.slice(this._offset,this._offset+t);return this._offset+=t,e}static sizeMixedArray(t){let e=0;e+=1;for(let n=0,o=t.length;n<o;n++){let r=t[n];switch(e+=1,r.type){case 1:e+=this.sizeLongString(r.value);break;case 2:e+=this.sizeVSBuffer(r.value);break;case 3:e+=this.sizeUInt32,e+=this.sizeLongString(r.value);for(let s=0;s<r.buffers.length;++s)e+=this.sizeVSBuffer(r.buffers[s]);break;case 4:break}}return e}writeMixedArray(t){this._buff.writeUInt8(t.length,this._offset),this._offset+=1;for(let e=0,n=t.length;e<n;e++){let o=t[e];switch(o.type){case 1:this.writeUInt8(1),this.writeLongString(o.value);break;case 2:this.writeUInt8(2),this.writeVSBuffer(o.value);break;case 3:this.writeUInt8(3),this.writeUInt32(o.buffers.length),this.writeLongString(o.value);for(let r=0;r<o.buffers.length;++r)this.writeBuffer(o.buffers[r]);break;case 4:this.writeUInt8(4);break}}}readMixedArray(){let t=this._buff.readUInt8(this._offset);this._offset+=1;let e=new Array(t);for(let n=0;n<t;n++)switch(this.readUInt8()){case 1:e[n]=this.readLongString();break;case 2:e[n]=this.readVSBuffer();break;case 3:{let r=this.readUInt32(),s=this.readLongString(),a=[];for(let l=0;l<r;++l)a.push(this.readVSBuffer());e[n]=new Yt(w2(s,a,null));break}case 4:e[n]=void 0;break}return e}};var Sr=class{static _useMixedArgSerialization(t){for(let e=0,n=t.length;e<n;e++)if(t[e]instanceof W||t[e]instanceof Yt||typeof t[e]>"u")return!0;return!1}static serializeRequestArguments(t,e){if(this._useMixedArgSerialization(t)){let n=[];for(let o=0,r=t.length;o<r;o++){let s=t[o];if(s instanceof W)n[o]={type:2,value:s};else if(typeof s>"u")n[o]={type:4};else if(s instanceof Yt){let{jsonString:a,referencedBuffers:l}=S2(s.value,e);n[o]={type:3,value:W.fromString(a),buffers:l}}else n[o]={type:1,value:W.fromString(C2(s,e))}}return{type:1,args:n}}return{type:0,args:C2(t,e)}}static serializeRequest(t,e,n,o,r){switch(o.type){case 0:return this._requestJSONArgs(t,e,n,o.args,r);case 1:return this._requestMixedArgs(t,e,n,o.args,r)}}static _requestJSONArgs(t,e,n,o,r){let s=W.fromString(n),a=W.fromString(o),l=0;l+=yn.sizeUInt8(),l+=yn.sizeShortString(s),l+=yn.sizeLongString(a);let d=yn.alloc(r?2:1,t,l);return d.writeUInt8(e),d.writeShortString(s),d.writeLongString(a),d.buffer}static deserializeRequestJSONArgs(t){let e=t.readUInt8(),n=t.readShortString(),o=t.readLongString();return{rpcId:e,method:n,args:JSON.parse(o)}}static _requestMixedArgs(t,e,n,o,r){let s=W.fromString(n),a=0;a+=yn.sizeUInt8(),a+=yn.sizeShortString(s),a+=yn.sizeMixedArray(o);let l=yn.alloc(r?4:3,t,a);return l.writeUInt8(e),l.writeShortString(s),l.writeMixedArray(o),l.buffer}static deserializeRequestMixedArgs(t){let e=t.readUInt8(),n=t.readShortString(),o=t.readMixedArray(),r=new Array(o.length);for(let s=0,a=o.length;s<a;s++){let l=o[s];typeof l=="string"?r[s]=JSON.parse(l):r[s]=l}return{rpcId:e,method:n,args:r}}static serializeAcknowledged(t){return yn.alloc(5,t,0).buffer}static serializeCancel(t){return yn.alloc(6,t,0).buffer}static serializeReplyOK(t,e,n){if(typeof e>"u")return this._serializeReplyOKEmpty(t);if(e instanceof W)return this._serializeReplyOKVSBuffer(t,e);if(e instanceof Yt){let{jsonString:o,referencedBuffers:r}=S2(e.value,n,!0);return this._serializeReplyOKJSONWithBuffers(t,o,r)}else return this._serializeReplyOKJSON(t,hR(e,n))}static _serializeReplyOKEmpty(t){return yn.alloc(7,t,0).buffer}static _serializeReplyOKVSBuffer(t,e){let n=0;n+=yn.sizeVSBuffer(e);let o=yn.alloc(8,t,n);return o.writeVSBuffer(e),o.buffer}static deserializeReplyOKVSBuffer(t){return t.readVSBuffer()}static _serializeReplyOKJSON(t,e){let n=W.fromString(e),o=0;o+=yn.sizeLongString(n);let r=yn.alloc(9,t,o);return r.writeLongString(n),r.buffer}static _serializeReplyOKJSONWithBuffers(t,e,n){let o=W.fromString(e),r=0;r+=yn.sizeUInt32,r+=yn.sizeLongString(o);for(let a of n)r+=yn.sizeVSBuffer(a);let s=yn.alloc(10,t,r);s.writeUInt32(n.length),s.writeLongString(o);for(let a of n)s.writeBuffer(a);return s.buffer}static deserializeReplyOKJSON(t){let e=t.readLongString();return JSON.parse(e)}static deserializeReplyOKJSONWithBuffers(t,e){let n=t.readUInt32(),o=t.readLongString(),r=[];for(let s=0;s<n;++s)r.push(t.readVSBuffer());return new Yt(w2(o,r,e))}static serializeReplyErr(t,e){let n=e?hR(Xi(e),null):void 0;if(typeof n!="string")return this._serializeReplyErrEmpty(t);let o=W.fromString(n),r=0;r+=yn.sizeLongString(o);let s=yn.alloc(11,t,r);return s.writeLongString(o),s.buffer}static deserializeReplyErrError(t){let e=t.readLongString();return JSON.parse(e)}static _serializeReplyErrEmpty(t){return yn.alloc(12,t,0).buffer}};function cv(i){if(!i)return;let t=i.indexOf("+");return t<0?i:i.substr(0,t)}var rx=["AI","Azure","Chat","Data Science","Debuggers","Extension Packs","Education","Formatters","Keymaps","Language Packs","Linters","Machine Learning","Notebooks","Programming Languages","SCM Providers","Snippets","Testing","Themes","Visualization","Other"];var Ee=class{constructor(t){this.value=t,this._lower=t.toLowerCase()}static equals(t,e){if(typeof t>"u"||t===null)return typeof e>"u"||e===null;if(typeof e>"u"||e===null)return!1;if(typeof t=="string"||typeof e=="string"){let n=typeof t=="string"?t:t.value,o=typeof e=="string"?e:e.value;return Pn(n,o)}return t._lower===e._lower}static toKey(t){return typeof t=="string"?t.toLowerCase():t._lower}},Ho=class{constructor(t){this._set=new Set;if(t)for(let e of t)this.add(e)}get size(){return this._set.size}add(t){this._set.add(Ee.toKey(t))}delete(t){return this._set.delete(Ee.toKey(t))}has(t){return this._set.has(Ee.toKey(t))}},ho=class{constructor(){this._map=new Map}clear(){this._map.clear()}delete(t){this._map.delete(Ee.toKey(t))}get(t){return this._map.get(Ee.toKey(t))}has(t){return this._map.has(Ee.toKey(t))}set(t,e){this._map.set(Ee.toKey(t),e)}values(){return this._map.values()}forEach(t){this._map.forEach(t)}[Symbol.iterator](){return this._map[Symbol.iterator]()}},Rp=class extends Error{constructor(t,e,n){super(`Error in extension ${Ee.toKey(t)}: ${n??e.message}`,{cause:e}),this.name="ExtensionError",this.extension=t}};var Poe=R("IBuiltinExtensionsScannerService");function yR(i,t){return t&&(i.stack||i.stacktrace)?p(116,null,P2(i),k2(i.stack)||k2(i.stacktrace)):P2(i)}function k2(i){return Array.isArray(i)?i.join(`
`):i}function P2(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"?p(115,null,i.message):i.message||p(113,null)}function To(i=null,t=!1){if(!i)return p(113,null);if(Array.isArray(i)){let e=nt(i),n=To(e[0],t);return e.length>1?p(114,null,n,e.length):n}if(Me(i))return i;if(i.detail){let e=i.detail;if(e.error)return yR(e.error,t);if(e.exception)return yR(e.exception,t)}return i.stack?yR(i,t):i.message?i.message:p(113,null)}function Yn(i){return xR(i,0)}function xR(i,t){switch(typeof i){case"object":return i===null?pa(349,t):Array.isArray(i)?p7(i,t):m7(i,t);case"string":return Ap(i,t);case"boolean":return u7(i,t);case"number":return pa(i,t);case"undefined":return pa(937,t);default:return pa(617,t)}}function pa(i,t){return(t<<5)-t+i|0}function u7(i,t){return pa(i?433:863,t)}function Ap(i,t){t=pa(149417,t);for(let e=0,n=i.length;e<n;e++)t=pa(i.charCodeAt(e),t);return t}function p7(i,t){return t=pa(104579,t),i.reduce((e,n)=>xR(n,e),t)}function m7(i,t){return t=pa(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=Ap(n,e),xR(i[n],e)),t)}function IR(i,t,e=32){let n=e-t,o=~((1<<n)-1);return(i<<t|(o&i)>>>n)>>>0}function uv(i,t=32){return i instanceof ArrayBuffer?wl(W.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var _2=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,o=this._buffLen,r=this._leftoverHighSurrogate,s,a;for(r!==0?(s=r,a=-1,r=0):(s=t.charCodeAt(0),a=0);;){let l=s;if(mc(s))if(a+1<e){let d=t.charCodeAt(a+1);Mh(d)?(a++,l=kI(s,d)):l=65533}else{r=s;break}else Mh(s)&&(l=65533);if(o=this._push(n,o,l),a++,a<e)s=t.charCodeAt(a);else break}this._buffLen=o,this._leftoverHighSurrogate=r}_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()),uv(this._h0)+uv(this._h1)+uv(this._h2)+uv(this._h3)+uv(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 u=0;u<64;u+=4)t.setUint32(u,e.getUint32(u,!1),!1);for(let u=64;u<320;u+=4)t.setUint32(u,IR(t.getUint32(u-12,!1)^t.getUint32(u-32,!1)^t.getUint32(u-56,!1)^t.getUint32(u-64,!1),1),!1);let n=this._h0,o=this._h1,r=this._h2,s=this._h3,a=this._h4,l,d,c;for(let u=0;u<80;u++)u<20?(l=o&r|~o&s,d=1518500249):u<40?(l=o^r^s,d=1859775393):u<60?(l=o&r|o&s|r&s,d=2400959708):(l=o^r^s,d=3395469782),c=IR(n,5)+l+a+d+t.getUint32(u*4,!1)&4294967295,a=s,s=r,r=IR(o,30),o=n,n=c;this._h0=this._h0+n&4294967295,this._h1=this._h1+o&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}};var ne=R("logService"),Zo=R("loggerService");var Ei=(s=>(s[s.Off=0]="Off",s[s.Trace=1]="Trace",s[s.Debug=2]="Debug",s[s.Info=3]="Info",s[s.Warning=4]="Warning",s[s.Error=5]="Error",s))(Ei||{}),g7=3;function Lp(i,t){return i!==0&&i<=t}function D2(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 Mp(i,t=!1){let e="";for(let n=0;n<i.length;n++){let o=i[n];if(o instanceof Error&&(o=To(o,t)),typeof o=="object")try{o=JSON.stringify(o)}catch{}e+=(n>0?" ":"")+o}return e}var ix=class extends U{constructor(){super(...arguments);this.level=g7;this._onDidChangeLogLevel=this._register(new E)}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 Lp(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},Al=class extends ix{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,Mp([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,Mp([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,Mp([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,Mp([e,...n]))}error(e,...n){if(this.canLog(5))if(e instanceof Error){let o=Array.prototype.slice.call(arguments);o[0]=e.stack,this.log(5,Mp(o))}else this.log(5,Mp([e,...n]))}flush(){}};var sx=class extends ix{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 o of this.loggers)o.trace(e,...n)}debug(e,...n){for(let o of this.loggers)o.debug(e,...n)}info(e,...n){for(let o of this.loggers)o.info(e,...n)}warn(e,...n){for(let o of this.loggers)o.warn(e,...n)}error(e,...n){for(let o of this.loggers)o.error(e,...n)}flush(){for(let e of this.loggers)e.flush()}dispose(){for(let e of this.loggers)e.dispose();super.dispose()}},ax=class extends U{constructor(e,n,o){super();this.logLevel=e;this.logsHome=n;this._loggers=new je;this._onDidChangeLoggers=this._register(new E);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new E);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new E);this.onDidChangeVisibility=this._onDidChangeVisibility.event;if(o)for(let r of o)this._loggers.set(r.resource,{logger:void 0,info:r})}getLoggerEntry(e){return Me(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 o=this.toResource(e),r=Me(e)?e:n?.id??Yn(o.toString()).toString(16),s=this._loggers.get(o)?.logger,a=n?.logLevel==="always"?1:n?.logLevel;s||(s=this.doCreateLogger(o,a??this.getLogLevel(o)??this.logLevel,{...n,id:r}));let l={logger:s,info:{resource:o,id:r,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(o,l),s}toResource(e){return Me(e)?vt(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(b.isUri(e)){let o=e,r=n,s=this._loggers.get(o);s&&r!==s.info.logLevel&&(s.info.logLevel=r===this.logLevel?void 0:r,s.logger?.setLevel(r),this._loggers.set(s.info.resource,s),this._onDidChangeLogLevel.fire([o,r]))}else{this.logLevel=e;for(let[o,r]of this._loggers.entries())this._loggers.get(o)?.info.logLevel===void 0&&r.logger?.setLevel(this.logLevel);this._onDidChangeLogLevel.fire(this.logLevel)}}setVisibility(e,n){let o=this.getLoggerEntry(e);o&&n!==!o.info.hidden&&(o.info.hidden=!n,this._loggers.set(o.info.resource,o),this._onDidChangeVisibility.fire([o.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),o=this._loggers.get(n);o&&(o.logger&&o.logger.dispose(),this._loggers.delete(n),this._onDidChangeLoggers.fire({added:[],removed:[o.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()}};function f7(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"}}var joe=new k("logLevel",f7(3));var er=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var R2=[];function Ke(i,t,e){t instanceof er||(t=new er(t,[],!!e)),R2.push([i,t])}function A2(){return R2}var Ml=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 Xe=R("IExtHostInitDataService");var SR=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},pv=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),o=this.lookupOrInsertNode(e);n.outgoing.set(o.key,o),o.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 SR(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]),o=this._findCycle(e,n);if(o)return o}}_findCycle(t,e){for(let[n,o]of t.outgoing){if(e.has(n))return[...e,n].join(" -> ");e.add(n);let r=this._findCycle(o,e);if(r)return r;e.delete(n)}}};var h7=!1,lx=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},dx=class i{constructor(t=new Ml,e=!1,n,o=h7){this._services=t;this._strict=e;this._parent=n;this._enableTracing=o;this._isDisposed=!1;this._servicesToMaybeDispose=new Set;this._children=new Set;this._activeInstantiations=new Set;this._services.set(Yo,this),this._globalGraph=o?n?._globalGraph??new pv(r=>r):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,kn(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)rI(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,o=new class extends i{dispose(){n._children.delete(o),super.dispose()}}(t,this._strict,this,this._enableTracing);return this._children.add(o),e?.add(o),o}invokeFunction(t,...e){this._throwIfDisposed();let n=mv.traceInvocation(this._enableTracing,t),o=!1;try{return t({get:s=>{if(o)throw ip("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{o=!0,n.stop()}}createInstance(t,...e){this._throwIfDisposed();let n,o;return t instanceof er?(n=mv.traceCreation(this._enableTracing,t.ctor),o=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=mv.traceCreation(this._enableTracing,t),o=this._createInstance(t,e,n)),n.stop(),o}_createInstance(t,e=[],n){let o=Ci.getServiceDependencies(t).sort((a,l)=>a.index-l.index),r=[];for(let a of o){let l=this._getOrCreateServiceInstance(a.id,n);l||this._throwIfStrict(`[createInstance] ${t.name} depends on UNKNOWN service ${a.id}.`,!1),r.push(l)}let s=o.length>0?o[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(r))}_setCreatedServiceInstance(t,e){if(this._services.get(t)instanceof er)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 er?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 o=new pv(l=>l.id.toString()),r=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)),o.lookupOrInsertNode(l),r++>1e3)throw new lx(o);for(let d of Ci.getServiceDependencies(l.desc.ctor)){let c=this._getServiceInstanceOrDescriptor(d.id);if(c||this._throwIfStrict(`[createInstance] ${t} depends on ${d.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(d.id)),c instanceof er){let u={id:d.id,desc:c,_trace:l._trace.branch(d.id,!0)};o.insertEdge(l,u),s.push(u)}}}}for(;;){let l=o.roots();if(l.length===0){if(!o.isEmpty())throw new lx(o);break}for(let{data:d}of l){if(this._getServiceInstanceOrDescriptor(d.id)instanceof er){let u=this._createServiceInstanceWithOwner(d.id,d.desc.ctor,d.desc.staticArguments,d.desc.supportsDelayedInstantiation,d._trace);this._setCreatedServiceInstance(d.id,u)}o.removeNode(d)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,e,n=[],o,r){if(this._services.get(t)instanceof er)return this._createServiceInstance(t,e,n,o,r,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(t,e,n,o,r);throw new Error(`illegalState - creating UNKNOWN service instance ${e.name}`)}_createServiceInstance(t,e,n=[],o,r,s){if(o){let a=new i(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(t);let l=new Map,d=new UI(()=>{let c=a._createInstance(e,n,r);for(let[u,m]of l){let g=c[u];if(typeof g=="function")for(let h of m)h.disposable=g.apply(c,h.listener)}return l.clear(),s.add(c),c});return new Proxy(Object.create(null),{get(c,u){if(!d.isInitialized&&typeof u=="string"&&(u.startsWith("onDid")||u.startsWith("onWill"))){let h=l.get(u);return h||(h=new mo,l.set(u,h)),(I,x,T)=>{if(d.isInitialized)return d.value[u](I,x,T);{let w={listener:[I,x,T],disposable:void 0},M=h.push(w);return Q(()=>{M(),w.disposable?.dispose()})}}}if(u in c)return c[u];let m=d.value,g=m[u];return typeof g!="function"||(g=g.bind(m),c[u]=g),g},set(c,u,m){return d.value[u]=m,!0},getPrototypeOf(c){return e.prototype}})}else{let a=this._createInstance(e,n,r);return s.add(a),a}}_throwIfStrict(t,e){if(e&&console.warn(t),this._strict)throw new Error(t)}};var mv=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(r,s){let a=[],l=new Array(r+1).join("	");for(let[d,c,u]of s._dep)if(c&&u){e=!0,a.push(`${l}CREATES -> ${d}`);let m=n(r+1,u);m&&a.push(m)}else a.push(`${l}uses -> ${d}`);return a.join(`
`)}let o=[`${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(o.join(`
`))}};var ae=R("IExtHostRpcService"),cx=class{constructor(t){this.getProxy=t.getProxy.bind(t),this.set=t.set.bind(t),this.dispose=t.dispose.bind(t),this.assertRegistered=t.assertRegistered.bind(t),this.drain=t.drain.bind(t)}};var ps=R("IURITransformerService"),ux=class{constructor(t){t?(this.transformIncoming=t.transformIncoming.bind(t),this.transformOutgoing=t.transformOutgoing.bind(t),this.transformOutgoingURI=t.transformOutgoingURI.bind(t),this.transformOutgoingScheme=t.transformOutgoingScheme.bind(t)):(this.transformIncoming=e=>e,this.transformOutgoing=e=>e,this.transformOutgoingURI=e=>e,this.transformOutgoingScheme=e=>e)}};var CR=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]}},TR=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?wI(t,this._value,0,t.length,this._from,this._to):pc(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},px=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?wI(t,this._value,0,t.length,this._from,this._to):pc(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var gv=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 px(!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 uc(t,this._value.scheme);if(this._states[this._stateIdx]===2)return uc(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return yi(t,this._value.query);if(this._states[this._stateIdx]===5)return yi(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}},ma=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}},Op=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 tr=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new gv(t,e))}static forPaths(t=!1){return new i(new px(void 0,!t))}static forStrings(){return new i(new CR)}static forConfigKeys(){return new i(new TR)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);KP(n);for(let o of n)this.set(o,t)}else{let n=t.slice(0);KP(n);for(let o of n)this.set(o[0],o[1])}}set(t,e){let n=this._iter.reset(t),o;this._root||(this._root=new Op,this._root.segment=n.value());let r=[];for(o=this._root;;){let a=n.cmp(o.segment);if(a>0)o.left||(o.left=new Op,o.left.segment=n.value()),r.push([-1,o]),o=o.left;else if(a<0)o.right||(o.right=new Op,o.right.segment=n.value()),r.push([1,o]),o=o.right;else if(n.hasNext())n.next(),o.mid||(o.mid=new Op,o.mid.segment=n.value()),r.push([0,o]),o=o.mid;else break}let s=ma.unwrap(o.value);o.value=ma.wrap(e),o.key=t;for(let a=r.length-1;a>=0;a--){let l=r[a][1];l.updateHeight();let d=l.balanceFactor();if(d<-1||d>1){let c=r[a][0],u=r[a+1][0];if(c===1&&u===1)r[a][1]=l.rotateLeft();else if(c===-1&&u===-1)r[a][1]=l.rotateRight();else if(c===1&&u===-1)l.right=r[a+1][1]=r[a+1][1].rotateRight(),r[a][1]=l.rotateLeft();else if(c===-1&&u===1)l.left=r[a+1][1]=r[a+1][1].rotateLeft(),r[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(r[a-1][0]){case-1:r[a-1][1].left=r[a][1];break;case 1:r[a-1][1].right=r[a][1];break;case 0:r[a-1][1].mid=r[a][1];break}else this._root=r[0][1]}}return s}get(t){return ma.unwrap(this._getNode(t)?.value)}_getNode(t){let e=this._iter.reset(t),n=this._root;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(),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),o=[],r=this._root;for(;r;){let s=n.cmp(r.segment);if(s>0)o.push([-1,r]),r=r.left;else if(s<0)o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),o.push([0,r]),r=r.mid;else break}if(r){if(e?(r.left=void 0,r.mid=void 0,r.right=void 0,r.height=1):(r.key=void 0,r.value=void 0),!r.mid&&!r.value)if(r.left&&r.right){let s=[[1,r]],a=this._min(r.right,s);if(a.key){r.key=a.key,r.value=a.value,r.segment=a.segment;let l=a.right;if(s.length>1){let[c,u]=s[s.length-1];switch(c){case-1:u.left=l;break;case 0:lp(!1);case 1:lp(!1)}}else r.right=l;let d=this._balanceByStack(s);if(o.length>0){let[c,u]=o[o.length-1];switch(c){case-1:u.left=d;break;case 0:u.mid=d;break;case 1:u.right=d;break}}else this._root=d}}else{let s=r.left??r.right;if(o.length>0){let[a,l]=o[o.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(o)??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 o=n.balanceFactor();if(o>1?(n.right.balanceFactor()>=0||(n.right=n.right.rotateRight()),t[e][1]=n.rotateLeft()):o<-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,o;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(),o=ma.unwrap(n.value)||o,n=n.mid;else break}return n&&ma.unwrap(n.value)||o}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,e){let n=this._iter.reset(t),o=this._root;for(;o;){let r=n.cmp(o.segment);if(r>0)o=o.left;else if(r<0)o=o.right;else if(n.hasNext())n.next(),o=o.mid;else return o.mid?this._entries(o.mid):e?ma.unwrap(o.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,ma.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)}};function M2(i,t,e){return Math.min(Math.max(i,t),e)}var mx=class{constructor(){this._next=0}getNext(){return this._next++}},gx=class{constructor(){this._n=1;this._val=0}update(t){return this._val=this._val+(t-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}};var ga=R("fileService");function wc(i){return i.create===!0}var kc=(o=>(o[o.Unknown=0]="Unknown",o[o.File=1]="File",o[o.Directory=2]="Directory",o[o.SymbolicLink=64]="SymbolicLink",o))(kc||{}),Pc=(n=>(n[n.Readonly=1]="Readonly",n[n.Locked=2]="Locked",n[n.Executable=4]="Executable",n))(Pc||{});var Ll=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let o=new i(e.toString(),n);return ER(o,n),o}};function wi(i,t){return Ll.create(i,t)}function O2(i){return i||wi(p(2456,null),"Unknown")}function ER(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function Np(i){if(!i)return"Unknown";if(i instanceof Ll)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 N2(i){if(i instanceof ms)return i.fileOperationResult;switch(Np(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 L2=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new pt(()=>{let t=tr.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new pt(()=>{let t=tr.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new pt(()=>{let t=tr.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 o=n.length>0;return!!((!o||n.includes(1))&&(this.added.value.get(t)||e.includeChildren&&this.added.value.findSuperstr(t))||(!o||n.includes(0))&&(this.updated.value.get(t)||e.includeChildren&&this.updated.value.findSuperstr(t))||(!o||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 U2(i,t,e){return!i||!t||i===t||t.length>i.length?!1:(t.charAt(t.length-1)!==Pt&&(t+=Pt),e?la(i,t):i.indexOf(t)===0)}var ms=class extends Error{constructor(e,n,o){super(e);this.fileOperationResult=n;this.options=o}};var F2="";function wR(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var Ec=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 Hn(t)||(t=0),t<i.KB?p(2451,null,t.toFixed(0)):t<i.MB?p(2453,null,(t/i.KB).toFixed(2)):t<i.GB?p(2454,null,(t/i.MB).toFixed(2)):t<i.TB?p(2452,null,(t/i.GB).toFixed(2)):p(2455,null,(t/i.TB).toFixed(2))}};var hx=(o=>(o[o.Ignore=0]="Ignore",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(hx||{});(a=>{let i="error",t="warning",e="warn",n="info",o="ignore";function r(l){return l?Pn(i,l)?3:Pn(t,l)||Pn(e,l)?2:Pn(n,l)?1:0:0}a.fromValue=r;function s(l){switch(l){case 3:return i;case 2:return t;case 1:return n;default:return o}}a.toString=s})(hx||={});var it=hx;var H2=it,qre=R("notificationService");var gs=R("contextService");function V2(i){let t=i;return typeof t?.id=="string"&&b.isUri(t.uri)}function W2(i){let t=i;return typeof t?.id=="string"&&b.isUri(t.configPath)}var vx=class{constructor(t,e,n,o,r,s){this._id=t;this._transient=n;this._configuration=o;this.ignorePathCasing=r;this._workspaceName=s;this.foldersMap=tr.forUris(this.ignorePathCasing,()=>!0),this.folders=e}get folders(){return this._folders}set folders(t){this._folders=t,this.updateFoldersMap()}update(t){this._id=t.id,this._configuration=t.configuration,this._transient=t.transient,this._workspaceName=t.name,this.ignorePathCasing=t.ignorePathCasing,this.folders=t.folders}get id(){return this._id}get transient(){return this._transient}get configuration(){return this._configuration}set configuration(t){this._configuration=t}get name(){return this._workspaceName}getFolder(t){return t&&this.foldersMap.findSubstr(t)||null}updateFoldersMap(){this.foldersMap=tr.forUris(this.ignorePathCasing,()=>!0);for(let t of this.folders)this.foldersMap.set(t.uri,t)}toJSON(){return{id:this.id,folders:this.folders,transient:this.transient,configuration:this.configuration,name:this.name}}},_c=class{constructor(t,e){this.raw=e;this.uri=t.uri,this.index=t.index,this.name=t.name}toResource(t){return vt(this.uri,t)}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}};function fv(i){return new _c({uri:i,index:0,name:Nh(i)},{uri:i.toString()})}var B2="code-workspace",v7=`.${B2}`,tie=[{name:p(3058,null),extensions:[B2]}];function $2(i){return(typeof i=="string"?yl(i):Uh(i))===v7}var bx=class{constructor(){this._systemSchemes=new Set(Object.keys(B));this._providerInfo=new Map;this.extUri=new as(t=>{let e=this._providerInfo.get(t.scheme);return!(e===void 0||e&1024)})}$acceptProviderInfos(t,e){e===null?this._providerInfo.delete(t.scheme):this._providerInfo.set(t.scheme,e)}isFreeScheme(t){return!this._providerInfo.has(t)&&!this._systemSchemes.has(t)}getCapabilities(t){return this._providerInfo.get(t)}},Xr=R("IExtHostFileSystemInfo");var yx=Object.freeze({create:i=>qr(i.map(t=>t.toString())).join(`\r
`),split:i=>i.split(`\r
`),parse:i=>yx.split(i).filter(t=>!t.startsWith("#"))});var mie=new Uint32Array(10);var gie=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),fie=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),hie=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]),vie=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 q2(...i){return function(t,e){for(let n=0,o=i.length;n<o;n++){let r=i[n](t,e);if(r)return r}return null}}var wie=K2.bind(void 0,!1),xx=K2.bind(void 0,!0);function K2(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=la(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function b7(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 y7(i,t){return i.length>t.length?null:kR(i.toLowerCase(),t.toLowerCase(),0,0)}function kR(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]===t[n]){let o=null;return(o=kR(i,t,e+1,n+1))?G2({start:n,end:n+1},o):null}return kR(i,t,e,n+1)}function _R(i){return 97<=i&&i<=122}function Up(i){return 65<=i&&i<=90}function DR(i){return 48<=i&&i<=57}function I7(i){return i===32||i===9||i===10||i===13}var x7=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>x7.add(i.charCodeAt(0)));function j2(i){return _R(i)||Up(i)||DR(i)}function G2(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function Q2(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if(Up(n)||DR(n)||e>0&&!j2(i.charCodeAt(e-1)))return e}return i.length}function PR(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]!==t[n].toLowerCase())return null;{let o=null,r=n+1;for(o=PR(i,t,e+1,n+1);!o&&(r=Q2(t,r))<t.length;)o=PR(i,t,e+1,r),r++;return o===null?null:G2({start:n,end:n+1},o)}}function S7(i){let t=0,e=0,n=0,o=0,r=0;for(let c=0;c<i.length;c++)r=i.charCodeAt(c),Up(r)&&t++,_R(r)&&e++,j2(r)&&n++,DR(r)&&o++;let s=t/i.length,a=e/i.length,l=n/i.length,d=o/i.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:d}}function C7(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function T7(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:o}=i;return e>.2&&t<.8&&n>.6&&o<.2}function E7(i){let t=0,e=0,n=0,o=0;for(let r=0;r<i.length;r++)n=i.charCodeAt(r),Up(n)&&t++,_R(n)&&e++,I7(n)&&o++;return(t===0||e===0)&&o===0?i.length<=30:t<=5}function J2(i,t){if(!t||(t=t.trim(),t.length===0)||!E7(i))return null;t.length>60&&(t=t.substring(0,60));let e=S7(t);if(!T7(e)){if(!C7(e))return null;t=t.toLowerCase()}let n=null,o=0;for(i=i.toLowerCase();o<t.length&&(n=PR(i,t,0,o))===null;)o=Q2(t,o+1);return n}var kie=q2(xx,J2,b7),Pie=q2(xx,J2,y7),_ie=new Kr(1e4);var Ix=128;function RR(){let i=[],t=[];for(let e=0;e<=Ix;e++)t[e]=0;for(let e=0;e<=Ix;e++)i.push(t.slice(0));return i}function Y2(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var Die=Y2(2*Ix),Rie=Y2(2*Ix),Aie=RR(),Mie=RR(),Lie=RR();var w7;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(w7||={});var z2=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var AR=Object.create(null);function v(i,t){if(Me(t)){let e=AR[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return AR[i]=t,{id:i}}function X2(){return AR}var Z2={add:v("add",6e4),plus:v("plus",6e4),gistNew:v("gist-new",6e4),repoCreate:v("repo-create",6e4),lightbulb:v("lightbulb",60001),lightBulb:v("light-bulb",60001),repo:v("repo",60002),repoDelete:v("repo-delete",60002),gistFork:v("gist-fork",60003),repoForked:v("repo-forked",60003),gitPullRequest:v("git-pull-request",60004),gitPullRequestAbandoned:v("git-pull-request-abandoned",60004),recordKeys:v("record-keys",60005),keyboard:v("keyboard",60005),tag:v("tag",60006),gitPullRequestLabel:v("git-pull-request-label",60006),tagAdd:v("tag-add",60006),tagRemove:v("tag-remove",60006),person:v("person",60007),personFollow:v("person-follow",60007),personOutline:v("person-outline",60007),personFilled:v("person-filled",60007),sourceControl:v("source-control",60008),mirror:v("mirror",60009),mirrorPublic:v("mirror-public",60009),star:v("star",60010),starAdd:v("star-add",60010),starDelete:v("star-delete",60010),starEmpty:v("star-empty",60010),comment:v("comment",60011),commentAdd:v("comment-add",60011),alert:v("alert",60012),warning:v("warning",60012),search:v("search",60013),searchSave:v("search-save",60013),logOut:v("log-out",60014),signOut:v("sign-out",60014),logIn:v("log-in",60015),signIn:v("sign-in",60015),eye:v("eye",60016),eyeUnwatch:v("eye-unwatch",60016),eyeWatch:v("eye-watch",60016),circleFilled:v("circle-filled",60017),primitiveDot:v("primitive-dot",60017),closeDirty:v("close-dirty",60017),debugBreakpoint:v("debug-breakpoint",60017),debugBreakpointDisabled:v("debug-breakpoint-disabled",60017),debugHint:v("debug-hint",60017),terminalDecorationSuccess:v("terminal-decoration-success",60017),primitiveSquare:v("primitive-square",60018),edit:v("edit",60019),pencil:v("pencil",60019),info:v("info",60020),issueOpened:v("issue-opened",60020),gistPrivate:v("gist-private",60021),gitForkPrivate:v("git-fork-private",60021),lock:v("lock",60021),mirrorPrivate:v("mirror-private",60021),close:v("close",60022),removeClose:v("remove-close",60022),x:v("x",60022),repoSync:v("repo-sync",60023),sync:v("sync",60023),clone:v("clone",60024),desktopDownload:v("desktop-download",60024),beaker:v("beaker",60025),microscope:v("microscope",60025),vm:v("vm",60026),deviceDesktop:v("device-desktop",60026),file:v("file",60027),more:v("more",60028),ellipsis:v("ellipsis",60028),kebabHorizontal:v("kebab-horizontal",60028),mailReply:v("mail-reply",60029),reply:v("reply",60029),organization:v("organization",60030),organizationFilled:v("organization-filled",60030),organizationOutline:v("organization-outline",60030),newFile:v("new-file",60031),fileAdd:v("file-add",60031),newFolder:v("new-folder",60032),fileDirectoryCreate:v("file-directory-create",60032),trash:v("trash",60033),trashcan:v("trashcan",60033),history:v("history",60034),clock:v("clock",60034),folder:v("folder",60035),fileDirectory:v("file-directory",60035),symbolFolder:v("symbol-folder",60035),logoGithub:v("logo-github",60036),markGithub:v("mark-github",60036),github:v("github",60036),terminal:v("terminal",60037),console:v("console",60037),repl:v("repl",60037),zap:v("zap",60038),symbolEvent:v("symbol-event",60038),error:v("error",60039),stop:v("stop",60039),variable:v("variable",60040),symbolVariable:v("symbol-variable",60040),array:v("array",60042),symbolArray:v("symbol-array",60042),symbolModule:v("symbol-module",60043),symbolPackage:v("symbol-package",60043),symbolNamespace:v("symbol-namespace",60043),symbolObject:v("symbol-object",60043),symbolMethod:v("symbol-method",60044),symbolFunction:v("symbol-function",60044),symbolConstructor:v("symbol-constructor",60044),symbolBoolean:v("symbol-boolean",60047),symbolNull:v("symbol-null",60047),symbolNumeric:v("symbol-numeric",60048),symbolNumber:v("symbol-number",60048),symbolStructure:v("symbol-structure",60049),symbolStruct:v("symbol-struct",60049),symbolParameter:v("symbol-parameter",60050),symbolTypeParameter:v("symbol-type-parameter",60050),symbolKey:v("symbol-key",60051),symbolText:v("symbol-text",60051),symbolReference:v("symbol-reference",60052),goToFile:v("go-to-file",60052),symbolEnum:v("symbol-enum",60053),symbolValue:v("symbol-value",60053),symbolRuler:v("symbol-ruler",60054),symbolUnit:v("symbol-unit",60054),activateBreakpoints:v("activate-breakpoints",60055),archive:v("archive",60056),arrowBoth:v("arrow-both",60057),arrowDown:v("arrow-down",60058),arrowLeft:v("arrow-left",60059),arrowRight:v("arrow-right",60060),arrowSmallDown:v("arrow-small-down",60061),arrowSmallLeft:v("arrow-small-left",60062),arrowSmallRight:v("arrow-small-right",60063),arrowSmallUp:v("arrow-small-up",60064),arrowUp:v("arrow-up",60065),bell:v("bell",60066),bold:v("bold",60067),book:v("book",60068),bookmark:v("bookmark",60069),debugBreakpointConditionalUnverified:v("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:v("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:v("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:v("debug-breakpoint-data-unverified",60072),debugBreakpointData:v("debug-breakpoint-data",60073),debugBreakpointDataDisabled:v("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:v("debug-breakpoint-log-unverified",60074),debugBreakpointLog:v("debug-breakpoint-log",60075),debugBreakpointLogDisabled:v("debug-breakpoint-log-disabled",60075),briefcase:v("briefcase",60076),broadcast:v("broadcast",60077),browser:v("browser",60078),bug:v("bug",60079),calendar:v("calendar",60080),caseSensitive:v("case-sensitive",60081),check:v("check",60082),checklist:v("checklist",60083),chevronDown:v("chevron-down",60084),chevronLeft:v("chevron-left",60085),chevronRight:v("chevron-right",60086),chevronUp:v("chevron-up",60087),chromeClose:v("chrome-close",60088),chromeMaximize:v("chrome-maximize",60089),chromeMinimize:v("chrome-minimize",60090),chromeRestore:v("chrome-restore",60091),circleOutline:v("circle-outline",60092),circle:v("circle",60092),debugBreakpointUnverified:v("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:v("terminal-decoration-incomplete",60092),circleSlash:v("circle-slash",60093),circuitBoard:v("circuit-board",60094),clearAll:v("clear-all",60095),clippy:v("clippy",60096),closeAll:v("close-all",60097),cloudDownload:v("cloud-download",60098),cloudUpload:v("cloud-upload",60099),code:v("code",60100),collapseAll:v("collapse-all",60101),colorMode:v("color-mode",60102),commentDiscussion:v("comment-discussion",60103),creditCard:v("credit-card",60105),dash:v("dash",60108),dashboard:v("dashboard",60109),database:v("database",60110),debugContinue:v("debug-continue",60111),debugDisconnect:v("debug-disconnect",60112),debugPause:v("debug-pause",60113),debugRestart:v("debug-restart",60114),debugStart:v("debug-start",60115),debugStepInto:v("debug-step-into",60116),debugStepOut:v("debug-step-out",60117),debugStepOver:v("debug-step-over",60118),debugStop:v("debug-stop",60119),debug:v("debug",60120),deviceCameraVideo:v("device-camera-video",60121),deviceCamera:v("device-camera",60122),deviceMobile:v("device-mobile",60123),diffAdded:v("diff-added",60124),diffIgnored:v("diff-ignored",60125),diffModified:v("diff-modified",60126),diffRemoved:v("diff-removed",60127),diffRenamed:v("diff-renamed",60128),diff:v("diff",60129),diffSidebyside:v("diff-sidebyside",60129),discard:v("discard",60130),editorLayout:v("editor-layout",60131),emptyWindow:v("empty-window",60132),exclude:v("exclude",60133),extensions:v("extensions",60134),eyeClosed:v("eye-closed",60135),fileBinary:v("file-binary",60136),fileCode:v("file-code",60137),fileMedia:v("file-media",60138),filePdf:v("file-pdf",60139),fileSubmodule:v("file-submodule",60140),fileSymlinkDirectory:v("file-symlink-directory",60141),fileSymlinkFile:v("file-symlink-file",60142),fileZip:v("file-zip",60143),files:v("files",60144),filter:v("filter",60145),flame:v("flame",60146),foldDown:v("fold-down",60147),foldUp:v("fold-up",60148),fold:v("fold",60149),folderActive:v("folder-active",60150),folderOpened:v("folder-opened",60151),gear:v("gear",60152),gift:v("gift",60153),gistSecret:v("gist-secret",60154),gist:v("gist",60155),gitCommit:v("git-commit",60156),gitCompare:v("git-compare",60157),compareChanges:v("compare-changes",60157),gitMerge:v("git-merge",60158),githubAction:v("github-action",60159),githubAlt:v("github-alt",60160),globe:v("globe",60161),grabber:v("grabber",60162),graph:v("graph",60163),gripper:v("gripper",60164),heart:v("heart",60165),home:v("home",60166),horizontalRule:v("horizontal-rule",60167),hubot:v("hubot",60168),inbox:v("inbox",60169),issueReopened:v("issue-reopened",60171),issues:v("issues",60172),italic:v("italic",60173),jersey:v("jersey",60174),json:v("json",60175),bracket:v("bracket",60175),kebabVertical:v("kebab-vertical",60176),key:v("key",60177),law:v("law",60178),lightbulbAutofix:v("lightbulb-autofix",60179),linkExternal:v("link-external",60180),link:v("link",60181),listOrdered:v("list-ordered",60182),listUnordered:v("list-unordered",60183),liveShare:v("live-share",60184),loading:v("loading",60185),location:v("location",60186),mailRead:v("mail-read",60187),mail:v("mail",60188),markdown:v("markdown",60189),megaphone:v("megaphone",60190),mention:v("mention",60191),milestone:v("milestone",60192),gitPullRequestMilestone:v("git-pull-request-milestone",60192),mortarBoard:v("mortar-board",60193),move:v("move",60194),multipleWindows:v("multiple-windows",60195),mute:v("mute",60196),noNewline:v("no-newline",60197),note:v("note",60198),octoface:v("octoface",60199),openPreview:v("open-preview",60200),package:v("package",60201),paintcan:v("paintcan",60202),pin:v("pin",60203),play:v("play",60204),run:v("run",60204),plug:v("plug",60205),preserveCase:v("preserve-case",60206),preview:v("preview",60207),project:v("project",60208),pulse:v("pulse",60209),question:v("question",60210),quote:v("quote",60211),radioTower:v("radio-tower",60212),reactions:v("reactions",60213),references:v("references",60214),refresh:v("refresh",60215),regex:v("regex",60216),remoteExplorer:v("remote-explorer",60217),remote:v("remote",60218),remove:v("remove",60219),replaceAll:v("replace-all",60220),replace:v("replace",60221),repoClone:v("repo-clone",60222),repoForcePush:v("repo-force-push",60223),repoPull:v("repo-pull",60224),repoPush:v("repo-push",60225),report:v("report",60226),requestChanges:v("request-changes",60227),rocket:v("rocket",60228),rootFolderOpened:v("root-folder-opened",60229),rootFolder:v("root-folder",60230),rss:v("rss",60231),ruby:v("ruby",60232),saveAll:v("save-all",60233),saveAs:v("save-as",60234),save:v("save",60235),screenFull:v("screen-full",60236),screenNormal:v("screen-normal",60237),searchStop:v("search-stop",60238),server:v("server",60240),settingsGear:v("settings-gear",60241),settings:v("settings",60242),shield:v("shield",60243),smiley:v("smiley",60244),sortPrecedence:v("sort-precedence",60245),splitHorizontal:v("split-horizontal",60246),splitVertical:v("split-vertical",60247),squirrel:v("squirrel",60248),starFull:v("star-full",60249),starHalf:v("star-half",60250),symbolClass:v("symbol-class",60251),symbolColor:v("symbol-color",60252),symbolConstant:v("symbol-constant",60253),symbolEnumMember:v("symbol-enum-member",60254),symbolField:v("symbol-field",60255),symbolFile:v("symbol-file",60256),symbolInterface:v("symbol-interface",60257),symbolKeyword:v("symbol-keyword",60258),symbolMisc:v("symbol-misc",60259),symbolOperator:v("symbol-operator",60260),symbolProperty:v("symbol-property",60261),wrench:v("wrench",60261),wrenchSubaction:v("wrench-subaction",60261),symbolSnippet:v("symbol-snippet",60262),tasklist:v("tasklist",60263),telescope:v("telescope",60264),textSize:v("text-size",60265),threeBars:v("three-bars",60266),thumbsdown:v("thumbsdown",60267),thumbsup:v("thumbsup",60268),tools:v("tools",60269),triangleDown:v("triangle-down",60270),triangleLeft:v("triangle-left",60271),triangleRight:v("triangle-right",60272),triangleUp:v("triangle-up",60273),twitter:v("twitter",60274),unfold:v("unfold",60275),unlock:v("unlock",60276),unmute:v("unmute",60277),unverified:v("unverified",60278),verified:v("verified",60279),versions:v("versions",60280),vmActive:v("vm-active",60281),vmOutline:v("vm-outline",60282),vmRunning:v("vm-running",60283),watch:v("watch",60284),whitespace:v("whitespace",60285),wholeWord:v("whole-word",60286),window:v("window",60287),wordWrap:v("word-wrap",60288),zoomIn:v("zoom-in",60289),zoomOut:v("zoom-out",60290),listFilter:v("list-filter",60291),listFlat:v("list-flat",60292),listSelection:v("list-selection",60293),selection:v("selection",60293),listTree:v("list-tree",60294),debugBreakpointFunctionUnverified:v("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:v("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:v("debug-breakpoint-function-disabled",60296),debugStackframeActive:v("debug-stackframe-active",60297),circleSmallFilled:v("circle-small-filled",60298),debugStackframeDot:v("debug-stackframe-dot",60298),terminalDecorationMark:v("terminal-decoration-mark",60298),debugStackframe:v("debug-stackframe",60299),debugStackframeFocused:v("debug-stackframe-focused",60299),debugBreakpointUnsupported:v("debug-breakpoint-unsupported",60300),symbolString:v("symbol-string",60301),debugReverseContinue:v("debug-reverse-continue",60302),debugStepBack:v("debug-step-back",60303),debugRestartFrame:v("debug-restart-frame",60304),debugAlt:v("debug-alt",60305),callIncoming:v("call-incoming",60306),callOutgoing:v("call-outgoing",60307),menu:v("menu",60308),expandAll:v("expand-all",60309),feedback:v("feedback",60310),gitPullRequestReviewer:v("git-pull-request-reviewer",60310),groupByRefType:v("group-by-ref-type",60311),ungroupByRefType:v("ungroup-by-ref-type",60312),account:v("account",60313),gitPullRequestAssignee:v("git-pull-request-assignee",60313),bellDot:v("bell-dot",60314),debugConsole:v("debug-console",60315),library:v("library",60316),output:v("output",60317),runAll:v("run-all",60318),syncIgnored:v("sync-ignored",60319),pinned:v("pinned",60320),githubInverted:v("github-inverted",60321),serverProcess:v("server-process",60322),serverEnvironment:v("server-environment",60323),pass:v("pass",60324),issueClosed:v("issue-closed",60324),stopCircle:v("stop-circle",60325),playCircle:v("play-circle",60326),record:v("record",60327),debugAltSmall:v("debug-alt-small",60328),vmConnect:v("vm-connect",60329),cloud:v("cloud",60330),merge:v("merge",60331),export:v("export",60332),graphLeft:v("graph-left",60333),magnet:v("magnet",60334),notebook:v("notebook",60335),redo:v("redo",60336),checkAll:v("check-all",60337),pinnedDirty:v("pinned-dirty",60338),passFilled:v("pass-filled",60339),circleLargeFilled:v("circle-large-filled",60340),circleLarge:v("circle-large",60341),circleLargeOutline:v("circle-large-outline",60341),combine:v("combine",60342),gather:v("gather",60342),table:v("table",60343),variableGroup:v("variable-group",60344),typeHierarchy:v("type-hierarchy",60345),typeHierarchySub:v("type-hierarchy-sub",60346),typeHierarchySuper:v("type-hierarchy-super",60347),gitPullRequestCreate:v("git-pull-request-create",60348),runAbove:v("run-above",60349),runBelow:v("run-below",60350),notebookTemplate:v("notebook-template",60351),debugRerun:v("debug-rerun",60352),workspaceTrusted:v("workspace-trusted",60353),workspaceUntrusted:v("workspace-untrusted",60354),workspaceUnknown:v("workspace-unknown",60355),terminalCmd:v("terminal-cmd",60356),terminalDebian:v("terminal-debian",60357),terminalLinux:v("terminal-linux",60358),terminalPowershell:v("terminal-powershell",60359),terminalTmux:v("terminal-tmux",60360),terminalUbuntu:v("terminal-ubuntu",60361),terminalBash:v("terminal-bash",60362),arrowSwap:v("arrow-swap",60363),copy:v("copy",60364),personAdd:v("person-add",60365),filterFilled:v("filter-filled",60366),wand:v("wand",60367),debugLineByLine:v("debug-line-by-line",60368),inspect:v("inspect",60369),layers:v("layers",60370),layersDot:v("layers-dot",60371),layersActive:v("layers-active",60372),compass:v("compass",60373),compassDot:v("compass-dot",60374),compassActive:v("compass-active",60375),azure:v("azure",60376),issueDraft:v("issue-draft",60377),gitPullRequestClosed:v("git-pull-request-closed",60378),gitPullRequestDraft:v("git-pull-request-draft",60379),debugAll:v("debug-all",60380),debugCoverage:v("debug-coverage",60381),runErrors:v("run-errors",60382),folderLibrary:v("folder-library",60383),debugContinueSmall:v("debug-continue-small",60384),beakerStop:v("beaker-stop",60385),graphLine:v("graph-line",60386),graphScatter:v("graph-scatter",60387),pieChart:v("pie-chart",60388),bracketDot:v("bracket-dot",60389),bracketError:v("bracket-error",60390),lockSmall:v("lock-small",60391),azureDevops:v("azure-devops",60392),verifiedFilled:v("verified-filled",60393),newline:v("newline",60394),layout:v("layout",60395),layoutActivitybarLeft:v("layout-activitybar-left",60396),layoutActivitybarRight:v("layout-activitybar-right",60397),layoutPanelLeft:v("layout-panel-left",60398),layoutPanelCenter:v("layout-panel-center",60399),layoutPanelJustify:v("layout-panel-justify",60400),layoutPanelRight:v("layout-panel-right",60401),layoutPanel:v("layout-panel",60402),layoutSidebarLeft:v("layout-sidebar-left",60403),layoutSidebarRight:v("layout-sidebar-right",60404),layoutStatusbar:v("layout-statusbar",60405),layoutMenubar:v("layout-menubar",60406),layoutCentered:v("layout-centered",60407),target:v("target",60408),indent:v("indent",60409),recordSmall:v("record-small",60410),errorSmall:v("error-small",60411),terminalDecorationError:v("terminal-decoration-error",60411),arrowCircleDown:v("arrow-circle-down",60412),arrowCircleLeft:v("arrow-circle-left",60413),arrowCircleRight:v("arrow-circle-right",60414),arrowCircleUp:v("arrow-circle-up",60415),layoutSidebarRightOff:v("layout-sidebar-right-off",60416),layoutPanelOff:v("layout-panel-off",60417),layoutSidebarLeftOff:v("layout-sidebar-left-off",60418),blank:v("blank",60419),heartFilled:v("heart-filled",60420),map:v("map",60421),mapHorizontal:v("map-horizontal",60421),foldHorizontal:v("fold-horizontal",60421),mapFilled:v("map-filled",60422),mapHorizontalFilled:v("map-horizontal-filled",60422),foldHorizontalFilled:v("fold-horizontal-filled",60422),circleSmall:v("circle-small",60423),bellSlash:v("bell-slash",60424),bellSlashDot:v("bell-slash-dot",60425),commentUnresolved:v("comment-unresolved",60426),gitPullRequestGoToChanges:v("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:v("git-pull-request-new-changes",60428),searchFuzzy:v("search-fuzzy",60429),commentDraft:v("comment-draft",60430),send:v("send",60431),sparkle:v("sparkle",60432),insert:v("insert",60433),mic:v("mic",60434),thumbsdownFilled:v("thumbsdown-filled",60435),thumbsupFilled:v("thumbsup-filled",60436),coffee:v("coffee",60437),snake:v("snake",60438),game:v("game",60439),vr:v("vr",60440),chip:v("chip",60441),piano:v("piano",60442),music:v("music",60443),micFilled:v("mic-filled",60444),repoFetch:v("repo-fetch",60445),copilot:v("copilot",60446),lightbulbSparkle:v("lightbulb-sparkle",60447),robot:v("robot",60448),sparkleFilled:v("sparkle-filled",60449),diffSingle:v("diff-single",60450),diffMultiple:v("diff-multiple",60451),surroundWith:v("surround-with",60452),share:v("share",60453),gitStash:v("git-stash",60454),gitStashApply:v("git-stash-apply",60455),gitStashPop:v("git-stash-pop",60456),vscode:v("vscode",60457),vscodeInsiders:v("vscode-insiders",60458),codeOss:v("code-oss",60459),runCoverage:v("run-coverage",60460),runAllCoverage:v("run-all-coverage",60461),coverage:v("coverage",60462),githubProject:v("github-project",60463),mapVertical:v("map-vertical",60464),foldVertical:v("fold-vertical",60464),mapVerticalFilled:v("map-vertical-filled",60465),foldVerticalFilled:v("fold-vertical-filled",60465),goToSearch:v("go-to-search",60466),percentage:v("percentage",60467),sortPercentage:v("sort-percentage",60467),attach:v("attach",60468),goToEditingSession:v("go-to-editing-session",60469),editSession:v("edit-session",60470),codeReview:v("code-review",60471),copilotWarning:v("copilot-warning",60472),python:v("python",60473),copilotLarge:v("copilot-large",60474),copilotWarningLarge:v("copilot-warning-large",60475),keyboardTab:v("keyboard-tab",60476),copilotBlocked:v("copilot-blocked",60477),copilotNotConnected:v("copilot-not-connected",60478),flag:v("flag",60479),lightbulbEmpty:v("lightbulb-empty",60480),symbolMethodArrow:v("symbol-method-arrow",60481),copilotUnavailable:v("copilot-unavailable",60482),repoPinned:v("repo-pinned",60483),keyboardTabAbove:v("keyboard-tab-above",60484),keyboardTabBelow:v("keyboard-tab-below",60485),gitPullRequestDone:v("git-pull-request-done",60486),mcp:v("mcp",60487),extensionsLarge:v("extensions-large",60488),layoutPanelDock:v("layout-panel-dock",60489),layoutSidebarLeftDock:v("layout-sidebar-left-dock",60490),layoutSidebarRightDock:v("layout-sidebar-right-dock",60491),copilotInProgress:v("copilot-in-progress",60492),copilotError:v("copilot-error",60493),copilotSuccess:v("copilot-success",60494),chatSparkle:v("chat-sparkle",60495),searchSparkle:v("search-sparkle",60496),editSparkle:v("edit-sparkle",60497),copilotSnooze:v("copilot-snooze",60498),sendToRemoteAgent:v("send-to-remote-agent",60499),commentDiscussionSparkle:v("comment-discussion-sparkle",60500),chatSparkleWarning:v("chat-sparkle-warning",60501),chatSparkleError:v("chat-sparkle-error",60502),collection:v("collection",60503),newCollection:v("new-collection",60504),thinking:v("thinking",60505),build:v("build",60506),commentDiscussionQuote:v("comment-discussion-quote",60507),cursor:v("cursor",60508),eraser:v("eraser",60509),fileText:v("file-text",60510),quotes:v("quotes",60512),rename:v("rename",60513),runWithDeps:v("run-with-deps",60514),debugConnected:v("debug-connected",60515),strikethrough:v("strikethrough",60516),openInProduct:v("open-in-product",60517),indexZero:v("index-zero",60518),agent:v("agent",60519),editCode:v("edit-code",60520),repoSelected:v("repo-selected",60521),skip:v("skip",60522),mergeInto:v("merge-into",60523),gitBranchChanges:v("git-branch-changes",60524),gitBranchStagedChanges:v("git-branch-staged-changes",60525),gitBranchConflicts:v("git-branch-conflicts",60526),gitBranch:v("git-branch",60527),gitBranchCreate:v("git-branch-create",60527),gitBranchDelete:v("git-branch-delete",60527),searchLarge:v("search-large",60528),terminalGitBash:v("terminal-git-bash",60529),windowActive:v("window-active",60530),forward:v("forward",60531),download:v("download",60532),clockface:v("clockface",60533),unarchive:v("unarchive",60534),sessionInProgress:v("session-in-progress",60535),collectionSmall:v("collection-small",60536),vmSmall:v("vm-small",60537),cloudSmall:v("cloud-small",60538),addSmall:v("add-small",60539),removeSmall:v("remove-small",60540),worktreeSmall:v("worktree-small",60541),worktree:v("worktree",60542),screenCut:v("screen-cut",60543),ask:v("ask",60544),openai:v("openai",60545),claude:v("claude",60546),openInWindow:v("open-in-window",60547),newSession:v("new-session",60548),terminalSecure:v("terminal-secure",60549),chatImport:v("chat-import",60550),chatExport:v("chat-export",60551),shareWindow:v("share-window",60552),circleSlashCompact:v("circle-slash-compact",60553),copilotCompact:v("copilot-compact",60554),folderOpenedCompact:v("folder-opened-compact",60555),folderCompact:v("folder-compact",60556),gearCompact:v("gear-compact",60557),gitBranchCompact:v("git-branch-compact",60558),libraryCompact:v("library-compact",60559),recordKeysCompact:v("record-keys-compact",60560),remoteCompact:v("remote-compact",60561),repoForkedCompact:v("repo-forked-compact",60562),repoCompact:v("repo-compact",60563),shieldCompact:v("shield-compact",60564),sparkleCompact:v("sparkle-compact",60565),symbolColorCompact:v("symbol-color-compact",60566),windowCompact:v("window-compact",60567),errorCompact:v("error-compact",60568),warningCompact:v("warning-compact",60569),passCompact:v("pass-compact",60570),important:v("important",60571),importantCompact:v("important-compact",60572),rocketCompact:v("rocket-compact",60573),unpin:v("unpin",60574),addCompact:v("add-compact",60575),attachCompact:v("attach-compact",60576),beakerCompact:v("beaker-compact",60577),checkCompact:v("check-compact",60578),checklistCompact:v("checklist-compact",60579),chevronDownCompact:v("chevron-down-compact",60580),chevronLeftCompact:v("chevron-left-compact",60581),chevronRightCompact:v("chevron-right-compact",60582),chevronUpCompact:v("chevron-up-compact",60583),circleFilledCompact:v("circle-filled-compact",60584),circleSmallFilledCompact:v("circle-small-filled-compact",60585),closeCompact:v("close-compact",60586),collapseAllCompact:v("collapse-all-compact",60587),commentCompact:v("comment-compact",60588),commentUnresolvedCompact:v("comment-unresolved-compact",60589),debugConnectedCompact:v("debug-connected-compact",60590),debugDisconnectCompact:v("debug-disconnect-compact",60591),editCompact:v("edit-compact",60592),fileMediaCompact:v("file-media-compact",60593),gitFetch:v("git-fetch",60594),lightbulbCompact:v("lightbulb-compact",60595),loadingCompact:v("loading-compact",60596),passFilledCompact:v("pass-filled-compact",60597),projectCompact:v("project-compact",60598),refreshCompact:v("refresh-compact",60599),searchCompact:v("search-compact",60600),sessionInProgressCompact:v("session-in-progress-compact",60601),syncCompact:v("sync-compact",60602),terminalCompact:v("terminal-compact",60603),vmPending:v("vm-pending",60604),worktreeCompact:v("worktree-compact",60605),developerTools:v("developer-tools",60606),cloudCompact:v("cloud-compact",60607),agentCompact:v("agent-compact",60608),askCompact:v("ask-compact",60609),settingsCompact:v("settings-compact",60610),vmCompact:v("vm-compact",60611),runCompact:v("run-compact",60612)};var k7={dialogError:v("dialog-error","error"),dialogWarning:v("dialog-warning","warning"),dialogInfo:v("dialog-info","info"),dialogClose:v("dialog-close","close"),treeItemExpanded:v("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:v("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:v("tree-filter-on-type-off","list-selection"),treeFilterClear:v("tree-filter-clear","close"),treeItemLoading:v("tree-item-loading","loading"),menuSelection:v("menu-selection","check"),menuSubmenu:v("menu-submenu","chevron-right"),menuBarMore:v("menubar-more","more"),scrollbarButtonLeft:v("scrollbar-button-left","triangle-left"),scrollbarButtonRight:v("scrollbar-button-right","triangle-right"),scrollbarButtonUp:v("scrollbar-button-up","triangle-up"),scrollbarButtonDown:v("scrollbar-button-down","triangle-down"),toolBarMore:v("toolbar-more","more"),quickInputBack:v("quick-input-back","arrow-left"),dropDownButton:v("drop-down-button",60084),symbolCustomColor:v("symbol-customcolor",60252),exportIcon:v("export",60332),workspaceUnspecified:v("workspace-unspecified",60355),newLine:v("newline",60394),thumbsDownFilled:v("thumbsdown-filled",60435),thumbsUpFilled:v("thumbsup-filled",60436),gitFetch:v("git-fetch",60445),lightbulbSparkleAutofix:v("lightbulb-sparkle-autofix",60447),debugBreakpointPending:v("debug-breakpoint-pending",60377),chatImport:v("chat-import",60550),chatExport:v("chat-export",60551)},ce={...Z2,...k7};var Fp;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(Fp||={});var dt;(x=>{x.iconNameSegment="[A-Za-z0-9]+",x.iconNameExpression="[A-Za-z0-9-]+",x.iconModifierExpression="~[A-Za-z]+",x.iconNameCharacter="[A-Za-z0-9~-]";let o=new RegExp(`^(${x.iconNameExpression})(${x.iconModifierExpression})?$`);function r(T){let w=o.exec(T.id);if(!w)return r(ce.error);let[,M,O]=w,N=["codicon","codicon-"+M];return O&&N.push("codicon-modifier-"+O.substring(1)),N}x.asClassNameArray=r;function s(T){return r(T).join(" ")}x.asClassName=s;function a(T){return"."+r(T).join(".")}x.asCSSSelector=a;function l(T){return!!T&&typeof T=="object"&&typeof T.id=="string"&&(typeof T.color>"u"||Fp.isThemeColor(T.color))}x.isThemeIcon=l;let d=new RegExp(`^\\$\\((${x.iconNameExpression}(?:${x.iconModifierExpression})?)\\)$`);function c(T){let w=d.exec(T);if(!w)return;let[,M]=w;return{id:M}}x.fromString=c;function u(T){return{id:T}}x.fromId=u;function m(T,w){let M=T.id,O=M.lastIndexOf("~");return O!==-1&&(M=M.substring(0,O)),w&&(M=`${M}~${w}`),{id:M}}x.modify=m;function g(T){let w=T.id.lastIndexOf("~");if(w!==-1)return T.id.substring(w+1)}x.getModifier=g;function h(T,w){return T.id===w.id&&T.color?.id===w.color?.id}x.isEqual=h;function f(T){return T?.id===ce.file.id}x.isFile=f;function I(T){return T?.id===ce.folder.id}x.isFolder=I})(dt||={});var MR=new RegExp(`\\$\\(${dt.iconNameExpression}(?:${dt.iconModifierExpression})?\\)`,"g"),P7=new RegExp(`(\\\\)?${MR.source}`,"g");function eH(i){return i.replace(P7,(t,e)=>e?t:`\\${t}`)}var Jie=new RegExp(`\\\\${MR.source}`,"g");var Yie=new RegExp(`(\\s)?(\\\\)?${MR.source}(\\s)?`,"g");var Xie=new RegExp(`\\$\\(${dt.iconNameCharacter}+\\)`,"g");var Mt=class i{static lift(t){let e=new i(t.value,t);return e.uris=t.uris,e.baseUri=t.baseUri?b.revive(t.baseUri):void 0,e}constructor(t="",e=!1){if(this.value=t,typeof this.value!="string")throw Ve("value");typeof e=="boolean"?(this.isTrusted=e,this.supportThemeIcons=!1,this.supportHtml=!1,this.supportAlertSyntax=!1):(this.isTrusted=e.isTrusted??void 0,this.supportThemeIcons=e.supportThemeIcons??!1,this.supportHtml=e.supportHtml??!1,this.supportAlertSyntax=e.supportAlertSyntax??!1)}appendText(t,e=0){return this.value+=_7(this.supportThemeIcons?eH(t):t).replace(/([ \t]+)/g,(n,o)=>"&nbsp;".repeat(o.length)).replace(/\>/gm,"\\>").replace(/\n/g,e===1?`\\
`:`

`),this}appendMarkdown(t){return this.value+=t,this}appendCodeblock(t,e){return this.value+=`
${D7(e,t)}
`,this}appendLink(t,e,n){return this.value+="[",this.value+=this._escape(e,"]"),this.value+="](",this.value+=this._escape(String(t),")"),n&&(this.value+=` "${this._escape(this._escape(n,'"'),")")}"`),this.value+=")",this}_escape(t,e){let n=new RegExp(Qo(e),"g");return t.replace(n,(o,r)=>t.charAt(r-1)!=="\\"?`\\${o}`:o)}};function Vo(i){return i instanceof Mt?!0:i&&typeof i=="object"?typeof i.value=="string"&&(typeof i.isTrusted=="boolean"||typeof i.isTrusted=="object"||i.isTrusted===void 0)&&(typeof i.supportThemeIcons=="boolean"||i.supportThemeIcons===void 0)&&(typeof i.supportAlertSyntax=="boolean"||i.supportAlertSyntax===void 0):!1}function _7(i){return i.replace(/[\\`*_{}[\]()#+!~]/g,"\\$&").replace(/^([ \t]*)-/gm,"$1\\-")}function D7(i,t){let e=i.match(/^`+/gm)?.reduce((o,r)=>o.length>r.length?o:r).length??0,n=e>=3?e+1:3;return[`${"`".repeat(n)}${t}`,i,`${"`".repeat(n)}`].join(`
`)}function tH(i){let t=[],e=i.split("|").map(o=>o.trim());i=e[0];let n=e[1];if(n){let o=/height=(\d+)/.exec(n),r=/width=(\d+)/.exec(n),s=o?o[1]:"",a=r?r[1]:"",l=isFinite(parseInt(a)),d=isFinite(parseInt(s));l&&t.push(`width="${a}"`),d&&t.push(`height="${s}"`)}return{href:i,dimensions:t}}function NR(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Rc=NR();function aH(i){Rc=i}var lH=/[&<>"']/,A7=new RegExp(lH.source,"g"),dH=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,M7=new RegExp(dH.source,"g"),L7={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},nH=i=>L7[i];function Mr(i,t){if(t){if(lH.test(i))return i.replace(A7,nH)}else if(dH.test(i))return i.replace(M7,nH);return i}var O7=/(^|[^\[])\^/g;function Zt(i,t){let e=typeof i=="string"?i:i.source;t=t||"";let n={replace:(o,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(O7,"$1"),e=e.replace(o,s),n},getRegex:()=>new RegExp(e,t)};return n}function oH(i){try{i=encodeURI(i).replace(/%25/g,"%")}catch{return null}return i}var yv={exec:()=>null};function rH(i,t){let e=i.replace(/\|/g,(r,s,a)=>{let l=!1,d=s;for(;--d>=0&&a[d]==="\\";)l=!l;return l?"|":" |"}),n=e.split(/ \|/),o=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;o<n.length;o++)n[o]=n[o].trim().replace(/\\\|/g,"|");return n}function vv(i,t,e){let n=i.length;if(n===0)return"";let o=0;for(;o<n;){let r=i.charAt(n-o-1);if(r===t&&!e)o++;else if(r!==t&&e)o++;else break}return i.slice(0,n-o)}function N7(i,t){if(i.indexOf(t[1])===-1)return-1;let e=0;for(let n=0;n<i.length;n++)if(i[n]==="\\")n++;else if(i[n]===t[0])e++;else if(i[n]===t[1]&&(e--,e<0))return n;return-1}function iH(i,t,e,n){let o=t.href,r=t.title?Mr(t.title):null,s=i[1].replace(/\\([\[\]])/g,"$1");if(i[0].charAt(0)!=="!"){n.state.inLink=!0;let a={type:"link",raw:e,href:o,title:r,text:s,tokens:n.inlineTokens(s)};return n.state.inLink=!1,a}return{type:"image",raw:e,href:o,title:r,text:Mr(s)}}function U7(i,t){let e=i.match(/^(\s+)(?:```)/);if(e===null)return t;let n=e[1];return t.split(`
`).map(o=>{let r=o.match(/^\s+/);if(r===null)return o;let[s]=r;return s.length>=n.length?o.slice(n.length):o}).join(`
`)}var Vp=class{options;rules;lexer;constructor(t){this.options=t||Rc}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:vv(n,`
`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],o=U7(n,e[3]||"");return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:o}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(/#$/.test(n)){let o=vv(n,"#");(this.options.pedantic||!o||/ $/.test(o))&&(n=o.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:vv(e[0],`
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=vv(e[0],`
`).split(`
`),o="",r="",s=[];for(;n.length>0;){let a=!1,l=[],d;for(d=0;d<n.length;d++)if(/^ {0,3}>/.test(n[d]))l.push(n[d]),a=!0;else if(!a)l.push(n[d]);else break;n=n.slice(d);let c=l.join(`
`),u=c.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,`
    $1`).replace(/^ {0,3}>[ \t]?/gm,"");o=o?`${o}
${c}`:c,r=r?`${r}
${u}`:u;let m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,s,!0),this.lexer.state.top=m,n.length===0)break;let g=s[s.length-1];if(g?.type==="code")break;if(g?.type==="blockquote"){let h=g,f=h.raw+`
`+n.join(`
`),I=this.blockquote(f);s[s.length-1]=I,o=o.substring(0,o.length-h.raw.length)+I.raw,r=r.substring(0,r.length-h.text.length)+I.text;break}else if(g?.type==="list"){let h=g,f=h.raw+`
`+n.join(`
`),I=this.list(f);s[s.length-1]=I,o=o.substring(0,o.length-g.raw.length)+I.raw,r=r.substring(0,r.length-h.raw.length)+I.raw,n=f.substring(s[s.length-1].raw.length).split(`
`);continue}}return{type:"blockquote",raw:o,tokens:s,text:r}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),o=n.length>1,r={type:"list",raw:"",ordered:o,start:o?+n.slice(0,-1):"",loose:!1,items:[]};n=o?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=o?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[	 ][^\\n]*)?(?:\\n|$))`),a=!1;for(;t;){let l=!1,d="",c="";if(!(e=s.exec(t))||this.rules.block.hr.test(t))break;d=e[0],t=t.substring(d.length);let u=e[2].split(`
`,1)[0].replace(/^\t+/,x=>" ".repeat(3*x.length)),m=t.split(`
`,1)[0],g=!u.trim(),h=0;if(this.options.pedantic?(h=2,c=u.trimStart()):g?h=e[1].length+1:(h=e[2].search(/[^ ]/),h=h>4?1:h,c=u.slice(h),h+=e[1].length),g&&/^ *$/.test(m)&&(d+=m+`
`,t=t.substring(m.length+1),l=!0),!l){let x=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),T=new RegExp(`^ {0,${Math.min(3,h-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),w=new RegExp(`^ {0,${Math.min(3,h-1)}}(?:\`\`\`|~~~)`),M=new RegExp(`^ {0,${Math.min(3,h-1)}}#`);for(;t;){let O=t.split(`
`,1)[0];if(m=O,this.options.pedantic&&(m=m.replace(/^ {1,4}(?=( {4})*[^ ])/g,"  ")),w.test(m)||M.test(m)||x.test(m)||T.test(t))break;if(m.search(/[^ ]/)>=h||!m.trim())c+=`
`+m.slice(h);else{if(g||u.search(/[^ ]/)>=4||w.test(u)||M.test(u)||T.test(u))break;c+=`
`+m}!g&&!m.trim()&&(g=!0),d+=O+`
`,t=t.substring(O.length+1),u=m.slice(h)}}r.loose||(a?r.loose=!0:/\n *\n *$/.test(d)&&(a=!0));let f=null,I;this.options.gfm&&(f=/^\[[ xX]\] /.exec(c),f&&(I=f[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:d,task:!!f,checked:I,loose:!1,text:c,tokens:[]}),r.raw+=d}r.items[r.items.length-1].raw=r.items[r.items.length-1].raw.trimEnd(),r.items[r.items.length-1].text=r.items[r.items.length-1].text.trimEnd(),r.raw=r.raw.trimEnd();for(let l=0;l<r.items.length;l++)if(this.lexer.state.top=!1,r.items[l].tokens=this.lexer.blockTokens(r.items[l].text,[]),!r.loose){let d=r.items[l].tokens.filter(u=>u.type==="space"),c=d.length>0&&d.some(u=>/\n.*\n/.test(u.raw));r.loose=c}if(r.loose)for(let l=0;l<r.items.length;l++)r.items[l].loose=!0;return r}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(/\s+/g," "),o=e[2]?e[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:o,title:r}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!/[:|]/.test(e[2]))return;let n=rH(e[1]),o=e[2].replace(/^\||\| *$/g,"").split("|"),r=e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split(`
`):[],s={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===o.length){for(let a of o)/^ *-+: *$/.test(a)?s.align.push("right"):/^ *:-+: *$/.test(a)?s.align.push("center"):/^ *:-+ *$/.test(a)?s.align.push("left"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of r)s.rows.push(rH(a,s.header.length).map((l,d)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:s.align[d]})));return s}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:Mr(e[1])}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^<a /i.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&/^</.test(n)){if(!/>$/.test(n))return;let s=vv(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=N7(e[2],"()");if(s>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let o=e[2],r="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);s&&(o=s[1],r=s[3])}else r=e[3]?e[3].slice(1,-1):"";return o=o.trim(),/^</.test(o)&&(this.options.pedantic&&!/>$/.test(n)?o=o.slice(1):o=o.slice(1,-1)),iH(e,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let o=(n[2]||n[1]).replace(/\s+/g," "),r=e[o.toLowerCase()];if(!r){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return iH(n,r,n[0],this.lexer)}}emStrong(t,e,n=""){let o=this.rules.inline.emStrongLDelim.exec(t);if(!o||o[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(o[1]||o[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...o[0]].length-1,a,l,d=s,c=0,u=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);(o=u.exec(e))!=null;){if(a=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!a)continue;if(l=[...a].length,o[3]||o[4]){d+=l;continue}else if((o[5]||o[6])&&s%3&&!((s+l)%3)){c+=l;continue}if(d-=l,d>0)continue;l=Math.min(l,l+d+c);let m=[...o[0]][0].length,g=t.slice(0,s+o.index+m+l);if(Math.min(s,l)%2){let f=g.slice(1,-1);return{type:"em",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}let h=g.slice(2,-2);return{type:"strong",raw:g,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(/\n/g," "),o=/[^ ]/.test(n),r=/^ /.test(n)&&/ $/.test(n);return o&&r&&(n=n.substring(1,n.length-1)),n=Mr(n,!0),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,o;return e[2]==="@"?(n=Mr(e[1]),o="mailto:"+n):(n=Mr(e[1]),o=n),{type:"link",raw:e[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let n,o;if(e[2]==="@")n=Mr(e[0]),o="mailto:"+n;else{let r;do r=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(r!==e[0]);n=Mr(e[0]),e[1]==="www."?o="http://"+e[0]:o=e[0]}return{type:"link",raw:e[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n;return this.lexer.state.inRawBlock?n=e[0]:n=Mr(e[0]),{type:"text",raw:e[0],text:n}}}},F7=/^(?: *(?:\n|$))+/,H7=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,V7=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,xv=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,W7=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,cH=/(?:[*+-]|\d{1,9}[.)])/,uH=Zt(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,cH).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),UR=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,B7=/^[^\n]+/,FR=/(?!\s*\])(?:\\.|[^\[\]\\])+/,$7=Zt(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",FR).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),z7=Zt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,cH).getRegex(),Tx="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",HR=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,q7=Zt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",HR).replace("tag",Tx).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),pH=Zt(UR).replace("hr",xv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tx).getRegex(),K7=Zt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",pH).getRegex(),VR={blockquote:K7,code:H7,def:$7,fences:V7,heading:W7,hr:xv,html:q7,lheading:uH,list:z7,newline:F7,paragraph:pH,table:yv,text:B7},sH=Zt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",xv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tx).getRegex(),j7={...VR,table:sH,paragraph:Zt(UR).replace("hr",xv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",sH).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Tx).getRegex()},G7={...VR,html:Zt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",HR).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:yv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Zt(UR).replace("hr",xv).replace("heading",` *#{1,6} *[^
]`).replace("lheading",uH).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},mH=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Q7=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,gH=/^( {2,}|\\)\n(?!\s*$)/,J7=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Sv="\\p{P}\\p{S}",Y7=Zt(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,Sv).getRegex(),X7=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,Z7=Zt(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Sv).getRegex(),e3=Zt("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Sv).getRegex(),t3=Zt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Sv).getRegex(),n3=Zt(/\\([punct])/,"gu").replace(/punct/g,Sv).getRegex(),o3=Zt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),r3=Zt(HR).replace("(?:-->|$)","-->").getRegex(),i3=Zt("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",r3).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Cx=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,s3=Zt(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Cx).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),fH=Zt(/^!?\[(label)\]\[(ref)\]/).replace("label",Cx).replace("ref",FR).getRegex(),hH=Zt(/^!?\[(ref)\](?:\[\])?/).replace("ref",FR).getRegex(),a3=Zt("reflink|nolink(?!\\()","g").replace("reflink",fH).replace("nolink",hH).getRegex(),WR={_backpedal:yv,anyPunctuation:n3,autolink:o3,blockSkip:X7,br:gH,code:Q7,del:yv,emStrongLDelim:Z7,emStrongRDelimAst:e3,emStrongRDelimUnd:t3,escape:mH,link:s3,nolink:hH,punctuation:Y7,reflink:fH,reflinkSearch:a3,tag:i3,text:J7,url:yv},l3={...WR,link:Zt(/^!?\[(label)\]\((.*?)\)/).replace("label",Cx).getRegex(),reflink:Zt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Cx).getRegex()},LR={...WR,escape:Zt(mH).replace("])","~|])").getRegex(),url:Zt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},d3={...LR,br:Zt(gH).replace("{2,}","*").getRegex(),text:Zt(LR.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Sx={normal:VR,gfm:j7,pedantic:G7},bv={normal:WR,gfm:LR,breaks:d3,pedantic:l3},fa=class i{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Rc,this.options.tokenizer=this.options.tokenizer||new Vp,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={block:Sx.normal,inline:bv.normal};this.options.pedantic?(e.block=Sx.pedantic,e.inline=bv.pedantic):this.options.gfm&&(e.block=Sx.gfm,this.options.breaks?e.inline=bv.breaks:e.inline=bv.gfm),this.tokenizer.rules=e}static get rules(){return{block:Sx,inline:bv}}static lex(t,e){return new i(e).lex(t)}static lexInline(t,e){return new i(e).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,`
`),this.blockTokens(t,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let n=this.inlineQueue[e];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],n=!1){this.options.pedantic?t=t.replace(/\t/g,"    ").replace(/^ +$/gm,""):t=t.replace(/^( *)(\t+)/gm,(a,l,d)=>l+"    ".repeat(d.length));let o,r,s;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(o=a.call({lexer:this},t,e))?(t=t.substring(o.raw.length),e.push(o),!0):!1))){if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length),o.raw.length===1&&e.length>0?e[e.length-1].raw+=`
`:e.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length),r=e[e.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=`
`+o.raw,r.text+=`
`+o.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length),r=e[e.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=`
`+o.raw,r.text+=`
`+o.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title});continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),e.push(o);continue}if(s=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0,l=t.slice(1),d;this.options.extensions.startBlock.forEach(c=>{d=c.call({lexer:this},l),typeof d=="number"&&d>=0&&(a=Math.min(a,d))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(o=this.tokenizer.paragraph(s))){r=e[e.length-1],n&&r?.type==="paragraph"?(r.raw+=`
`+o.raw,r.text+=`
`+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(o),n=s.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length),r=e[e.length-1],r&&r.type==="text"?(r.raw+=`
`+o.raw,r.text+=`
`+o.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(o);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let n,o,r,s=t,a,l,d;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,a.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(l||(d=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(n=c.call({lexer:this},t,e))?(t=t.substring(n.raw.length),e.push(n),!0):!1))){if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length),o=e[e.length-1],o&&n.type==="text"&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length),o=e[e.length-1],o&&n.type==="text"&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(n=this.tokenizer.emStrong(t,s,d)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length),e.push(n);continue}if(n=this.tokenizer.autolink(t)){t=t.substring(n.raw.length),e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t))){t=t.substring(n.raw.length),e.push(n);continue}if(r=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0,u=t.slice(1),m;this.options.extensions.startInline.forEach(g=>{m=g.call({lexer:this},u),typeof m=="number"&&m>=0&&(c=Math.min(c,m))}),c<1/0&&c>=0&&(r=t.substring(0,c+1))}if(n=this.tokenizer.inlineText(r)){t=t.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(d=n.raw.slice(-1)),l=!0,o=e[e.length-1],o&&o.type==="text"?(o.raw+=n.raw,o.text+=n.text):e.push(n);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}},Wp=class{options;parser;constructor(t){this.options=t||Rc}space(t){return""}code({text:t,lang:e,escaped:n}){let o=(e||"").match(/^\S*/)?.[0],r=t.replace(/\n$/,"")+`
`;return o?'<pre><code class="language-'+Mr(o)+'">'+(n?r:Mr(r,!0))+`</code></pre>
`:"<pre><code>"+(n?r:Mr(r,!0))+`</code></pre>
`}blockquote({tokens:t}){return`<blockquote>
${this.parser.parse(t)}</blockquote>
`}html({text:t}){return t}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
`}hr(t){return`<hr>
`}list(t){let e=t.ordered,n=t.start,o="";for(let a=0;a<t.items.length;a++){let l=t.items[a];o+=this.listitem(l)}let r=e?"ol":"ul",s=e&&n!==1?' start="'+n+'"':"";return"<"+r+s+`>
`+o+"</"+r+`>
`}listitem(t){let e="";if(t.task){let n=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=n+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=n+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):e+=n+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`<li>${e}</li>
`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
`}table(t){let e="",n="";for(let r=0;r<t.header.length;r++)n+=this.tablecell(t.header[r]);e+=this.tablerow({text:n});let o="";for(let r=0;r<t.rows.length;r++){let s=t.rows[r];n="";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);o+=this.tablerow({text:n})}return o&&(o=`<tbody>${o}</tbody>`),`<table>
<thead>
`+e+`</thead>
`+o+`</table>
`}tablerow({text:t}){return`<tr>
${t}</tr>
`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${t}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let o=this.parser.parseInline(n),r=oH(t);if(r===null)return o;t=r;let s='<a href="'+t+'"';return e&&(s+=' title="'+e+'"'),s+=">"+o+"</a>",s}image({href:t,title:e,text:n}){let o=oH(t);if(o===null)return n;t=o;let r=`<img src="${t}" alt="${n}"`;return e&&(r+=` title="${e}"`),r+=">",r}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):t.text}},Iv=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}},ha=class i{options;renderer;textRenderer;constructor(t){this.options=t||Rc,this.options.renderer=this.options.renderer||new Wp,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Iv}static parse(t,e){return new i(e).parse(t)}static parseInline(t,e){return new i(e).parseInline(t)}parse(t,e=!0){let n="";for(let o=0;o<t.length;o++){let r=t[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[r.type]){let a=r,l=this.options.extensions.renderers[a.type].call({parser:this},a);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(a.type)){n+=l||"";continue}}let s=r;switch(s.type){case"space":{n+=this.renderer.space(s);continue}case"hr":{n+=this.renderer.hr(s);continue}case"heading":{n+=this.renderer.heading(s);continue}case"code":{n+=this.renderer.code(s);continue}case"table":{n+=this.renderer.table(s);continue}case"blockquote":{n+=this.renderer.blockquote(s);continue}case"list":{n+=this.renderer.list(s);continue}case"html":{n+=this.renderer.html(s);continue}case"paragraph":{n+=this.renderer.paragraph(s);continue}case"text":{let a=s,l=this.renderer.text(a);for(;o+1<t.length&&t[o+1].type==="text";)a=t[++o],l+=`
`+this.renderer.text(a);e?n+=this.renderer.paragraph({type:"paragraph",raw:l,text:l,tokens:[{type:"text",raw:l,text:l}]}):n+=l;continue}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(t,e){e=e||this.renderer;let n="";for(let o=0;o<t.length;o++){let r=t[o];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[r.type]){let a=this.options.extensions.renderers[r.type].call({parser:this},r);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){n+=a||"";continue}}let s=r;switch(s.type){case"escape":{n+=e.text(s);break}case"html":{n+=e.html(s);break}case"link":{n+=e.link(s);break}case"image":{n+=e.image(s);break}case"strong":{n+=e.strong(s);break}case"em":{n+=e.em(s);break}case"codespan":{n+=e.codespan(s);break}case"br":{n+=e.br(s);break}case"del":{n+=e.del(s);break}case"text":{n+=e.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}},Hp=class{options;constructor(t){this.options=t||Rc}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}},OR=class{defaults=NR();options=this.setOptions;parse=this.parseMarkdown(fa.lex,ha.parse);parseInline=this.parseMarkdown(fa.lexInline,ha.parseInline);Parser=ha;Renderer=Wp;TextRenderer=Iv;Lexer=fa;Tokenizer=Vp;Hooks=Hp;constructor(...t){this.use(...t)}walkTokens(t,e){let n=[];for(let o of t)switch(n=n.concat(e.call(this,o)),o.type){case"table":{let r=o;for(let s of r.header)n=n.concat(this.walkTokens(s.tokens,e));for(let s of r.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,e));break}case"list":{let r=o;n=n.concat(this.walkTokens(r.items,e));break}default:{let r=o;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(s=>{let a=r[s].flat(1/0);n=n.concat(this.walkTokens(a,e))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let o={...n};if(o.async=this.defaults.async||o.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=e.renderers[r.name];s?e.renderers[r.name]=function(...a){let l=r.renderer.apply(this,a);return l===!1&&(l=s.apply(this,a)),l}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=e[r.level];s?s.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),o.extensions=e),n.renderer){let r=this.defaults.renderer||new Wp(this.defaults);for(let s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,l=n.renderer[a],d=r[a];r[a]=(...c)=>{let u=l.apply(r,c);return u===!1&&(u=d.apply(r,c)),u||""}}o.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new Vp(this.defaults);for(let s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,l=n.tokenizer[a],d=r[a];r[a]=(...c)=>{let u=l.apply(r,c);return u===!1&&(u=d.apply(r,c)),u}}o.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new Hp;for(let s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let a=s,l=n.hooks[a],d=r[a];Hp.passThroughHooks.has(s)?r[a]=c=>{if(this.defaults.async)return Promise.resolve(l.call(r,c)).then(m=>d.call(r,m));let u=l.call(r,c);return d.call(r,u)}:r[a]=(...c)=>{let u=l.apply(r,c);return u===!1&&(u=d.apply(r,c)),u}}o.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,s=n.walkTokens;o.walkTokens=function(a){let l=[];return l.push(s.call(this,a)),r&&(l=l.concat(r.call(this,a))),l}}this.defaults={...this.defaults,...o}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return fa.lex(t,e??this.defaults)}parser(t,e){return ha.parse(t,e??this.defaults)}parseMarkdown(t,e){return(o,r)=>{let s={...r},a={...this.defaults,...s},l=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&s.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof o>"u"||o===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof o!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(o)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(o):o).then(d=>t(d,a)).then(d=>a.hooks?a.hooks.processAllTokens(d):d).then(d=>a.walkTokens?Promise.all(this.walkTokens(d,a.walkTokens)).then(()=>d):d).then(d=>e(d,a)).then(d=>a.hooks?a.hooks.postprocess(d):d).catch(l);try{a.hooks&&(o=a.hooks.preprocess(o));let d=t(o,a);a.hooks&&(d=a.hooks.processAllTokens(d)),a.walkTokens&&this.walkTokens(d,a.walkTokens);let c=e(d,a);return a.hooks&&(c=a.hooks.postprocess(c)),c}catch(d){return l(d)}}}onError(t,e){return n=>{if(n.message+=`
Please report this to https://github.com/markedjs/marked.`,t){let o="<p>An error occurred:</p><pre>"+Mr(n.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(n);throw n}}},Dc=new OR;function zt(i,t){return Dc.parse(i,t)}zt.options=zt.setOptions=function(i){return Dc.setOptions(i),zt.defaults=Dc.defaults,aH(zt.defaults),zt};zt.getDefaults=NR;zt.defaults=Rc;zt.use=function(...i){return Dc.use(...i),zt.defaults=Dc.defaults,aH(zt.defaults),zt};zt.walkTokens=function(i,t){return Dc.walkTokens(i,t)};zt.parseInline=Dc.parseInline;zt.Parser=ha;zt.parser=ha.parse;zt.Renderer=Wp;zt.TextRenderer=Iv;zt.Lexer=fa;zt.lexer=fa.lex;zt.Tokenizer=Vp;zt.Hooks=Hp;zt.parse=zt;var ase=zt.options,lse=zt.setOptions,dse=zt.use,cse=zt.walkTokens,use=zt.parseInline;var pse=ha.parse,mse=fa.lex;var Cr=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 vH={".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 BR(i){for(let t in vH){let e=vH[t];if(Array.isArray(e)?e.includes(i):e===i)return t}}var u3=/^(.+)\/(.+?)(;.+)?$/;function $R(i,t){let e=u3.exec(i);return e?`${e[1].toLowerCase()}/${e[2].toLowerCase()}${e[3]??""}`:t?void 0:i}function Ex(i){return["application/vnd.code.notebook.stdout","application/vnd.code.notebook.stderr"].includes(i)}var Wo=Symbol("unset"),wx=class{constructor(){this.root=new Cv;this._size=0}get size(){return this._size}get nodes(){return this.root.children?.values()||At.empty()}get entries(){return this.root.children?.entries()||At.empty()}insert(t,e,n){this.opNode(t,o=>o._value=e,n)}mutate(t,e){this.opNode(t,n=>n._value=e(n._value===Wo?void 0:n._value))}mutatePath(t,e){this.opNode(t,()=>{},n=>e(n))}delete(t){let e=this.getPathToKey(t);if(!e)return;let n=e.length-1,o=e[n].node._value;if(o!==Wo){for(this._size--,e[n].node._value=Wo;n>0;n--){let{node:r,part:s}=e[n];if(r.children?.size||r._value!==Wo)break;e[n-1].node.children.delete(s)}return o}}*deleteRecursive(t){let e=this.getPathToKey(t);if(!e)return;let n=e[e.length-1].node;for(let o=e.length-1;o>0;o--){let r=e[o-1];if(r.node.children.delete(e[o].part),r.node.children.size>0||r.node._value!==Wo)break}for(let o of bH(n))o._value!==Wo&&(this._size--,yield o._value);n===this.root&&(this.root._value=Wo,this.root.children=void 0)}find(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return;e=o}return e._value===Wo?void 0:e._value}hasKeyOrParent(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;if(o._value!==Wo)return!0;e=o}return!1}hasKeyOrChildren(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;e=o}return!0}hasKey(t){let e=this.root;for(let n of t){let o=e.children?.get(n);if(!o)return!1;e=o}return e._value!==Wo}getPathToKey(t){let e=[{part:"",node:this.root}],n=0;for(let o of t){let r=e[n].node.children?.get(o);if(!r)return;e.push({part:o,node:r}),n++}return e}opNode(t,e,n){let o=this.root;for(let a of t){if(o.children)if(o.children.has(a))o=o.children.get(a);else{let l=new Cv;o.children.set(a,l),o=l}else{let l=new Cv;o.children=new Map([[a,l]]),o=l}n?.(o)}let r=o._value===Wo?0:1;e(o);let s=o._value===Wo?0:1;this._size+=s-r}*values(){for(let{_value:t}of bH(this.root))t!==Wo&&(yield t)}};function*bH(i){let t=[i];for(;t.length>0;){let e=t.pop();if(yield e,e.children)for(let n of e.children.values())t.push(n)}}var Cv=class{constructor(){this._value=Wo}get value(){return this._value===Wo?void 0:this._value}set value(t){this._value=t===void 0?Wo:t}};var On=class i{constructor(t,e){this.lineNumber=t,this.column=e}with(t=this.lineNumber,e=this.column){return t===this.lineNumber&&e===this.column?this:new i(t,e)}delta(t=0,e=0){return this.with(Math.max(1,this.lineNumber+t),Math.max(1,this.column+e))}equals(t){return i.equals(this,t)}static equals(t,e){return!t&&!e?!0:!!t&&!!e&&t.lineNumber===e.lineNumber&&t.column===e.column}isBefore(t){return i.isBefore(this,t)}static isBefore(t,e){return t.lineNumber<e.lineNumber?!0:e.lineNumber<t.lineNumber?!1:t.column<e.column}isBeforeOrEqual(t){return i.isBeforeOrEqual(this,t)}static isBeforeOrEqual(t,e){return t.lineNumber<e.lineNumber?!0:e.lineNumber<t.lineNumber?!1:t.column<=e.column}static compare(t,e){let n=t.lineNumber|0,o=e.lineNumber|0;if(n===o){let r=t.column|0,s=e.column|0;return r-s}return n-o}clone(){return new i(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(t){return new i(t.lineNumber,t.column)}static isIPosition(t){return!!t&&typeof t.lineNumber=="number"&&typeof t.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};var We=class i{constructor(t,e,n,o){t>n||t===n&&e>o?(this.startLineNumber=n,this.startColumn=o,this.endLineNumber=t,this.endColumn=e):(this.startLineNumber=t,this.startColumn=e,this.endLineNumber=n,this.endColumn=o)}isEmpty(){return i.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return i.containsPosition(this,t)}static containsPosition(t,e){return!(e.lineNumber<t.startLineNumber||e.lineNumber>t.endLineNumber||e.lineNumber===t.startLineNumber&&e.column<t.startColumn||e.lineNumber===t.endLineNumber&&e.column>t.endColumn)}static strictContainsPosition(t,e){return!(e.lineNumber<t.startLineNumber||e.lineNumber>t.endLineNumber||e.lineNumber===t.startLineNumber&&e.column<=t.startColumn||e.lineNumber===t.endLineNumber&&e.column>=t.endColumn)}containsRange(t){return i.containsRange(this,t)}static containsRange(t,e){return!(e.startLineNumber<t.startLineNumber||e.endLineNumber<t.startLineNumber||e.startLineNumber>t.endLineNumber||e.endLineNumber>t.endLineNumber||e.startLineNumber===t.startLineNumber&&e.startColumn<t.startColumn||e.endLineNumber===t.endLineNumber&&e.endColumn>t.endColumn)}strictContainsRange(t){return i.strictContainsRange(this,t)}static strictContainsRange(t,e){return!(e.startLineNumber<t.startLineNumber||e.endLineNumber<t.startLineNumber||e.startLineNumber>t.endLineNumber||e.endLineNumber>t.endLineNumber||e.startLineNumber===t.startLineNumber&&e.startColumn<=t.startColumn||e.endLineNumber===t.endLineNumber&&e.endColumn>=t.endColumn)}plusRange(t){return i.plusRange(this,t)}static plusRange(t,e){let n,o,r,s;return e.startLineNumber<t.startLineNumber?(n=e.startLineNumber,o=e.startColumn):e.startLineNumber===t.startLineNumber?(n=e.startLineNumber,o=Math.min(e.startColumn,t.startColumn)):(n=t.startLineNumber,o=t.startColumn),e.endLineNumber>t.endLineNumber?(r=e.endLineNumber,s=e.endColumn):e.endLineNumber===t.endLineNumber?(r=e.endLineNumber,s=Math.max(e.endColumn,t.endColumn)):(r=t.endLineNumber,s=t.endColumn),new i(n,o,r,s)}intersectRanges(t){return i.intersectRanges(this,t)}static intersectRanges(t,e){let n=t.startLineNumber,o=t.startColumn,r=t.endLineNumber,s=t.endColumn,a=e.startLineNumber,l=e.startColumn,d=e.endLineNumber,c=e.endColumn;return n<a?(n=a,o=l):n===a&&(o=Math.max(o,l)),r>d?(r=d,s=c):r===d&&(s=Math.min(s,c)),n>r||n===r&&o>s?null:new i(n,o,r,s)}equalsRange(t){return i.equalsRange(this,t)}static equalsRange(t,e){return!t&&!e?!0:!!t&&!!e&&t.startLineNumber===e.startLineNumber&&t.startColumn===e.startColumn&&t.endLineNumber===e.endLineNumber&&t.endColumn===e.endColumn}getEndPosition(){return i.getEndPosition(this)}static getEndPosition(t){return new On(t.endLineNumber,t.endColumn)}getStartPosition(){return i.getStartPosition(this)}static getStartPosition(t){return new On(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,e){return new i(this.startLineNumber,this.startColumn,t,e)}setStartPosition(t,e){return new i(t,e,this.endLineNumber,this.endColumn)}collapseToStart(){return i.collapseToStart(this)}static collapseToStart(t){return new i(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}collapseToEnd(){return i.collapseToEnd(this)}static collapseToEnd(t){return new i(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn)}delta(t){return new i(this.startLineNumber+t,this.startColumn,this.endLineNumber+t,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(t,e=t){return new i(t.lineNumber,t.column,e.lineNumber,e.column)}static lift(t){return t?new i(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return!!t&&typeof t.startLineNumber=="number"&&typeof t.startColumn=="number"&&typeof t.endLineNumber=="number"&&typeof t.endColumn=="number"}static areIntersectingOrTouching(t,e){return!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn||e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn)}static areIntersecting(t,e){return!(t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn||e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn)}static areOnlyIntersecting(t,e){return!(t.endLineNumber<e.startLineNumber-1||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn-1||e.endLineNumber<t.startLineNumber-1||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn-1)}static compareRangesUsingStarts(t,e){if(t&&e){let r=t.startLineNumber|0,s=e.startLineNumber|0;if(r===s){let a=t.startColumn|0,l=e.startColumn|0;if(a===l){let d=t.endLineNumber|0,c=e.endLineNumber|0;if(d===c){let u=t.endColumn|0,m=e.endColumn|0;return u-m}return d-c}return a-l}return r-s}return(t?1:0)-(e?1:0)}static compareRangesUsingEnds(t,e){return t.endLineNumber===e.endLineNumber?t.endColumn===e.endColumn?t.startLineNumber===e.startLineNumber?t.startColumn-e.startColumn:t.startLineNumber-e.startLineNumber:t.endColumn-e.endColumn:t.endLineNumber-e.endLineNumber}static spansMultipleLines(t){return t.endLineNumber>t.startLineNumber}toJSON(){return this}};var kx=class{constructor(){this._tokenizationSupports=new Map;this._factories=new Map;this._onDidChange=new E;this.onDidChange=this._onDidChange.event;this._colorMap=null}handleChange(t){this._onDidChange.fire({changedLanguages:t,changedColorMap:!1})}register(t,e){return this._tokenizationSupports.set(t,e),this.handleChange([t]),Q(()=>{this._tokenizationSupports.get(t)===e&&(this._tokenizationSupports.delete(t),this.handleChange([t]))})}get(t){return this._tokenizationSupports.get(t)||null}registerFactory(t,e){this._factories.get(t)?.dispose();let n=new zR(this,t,e);return this._factories.set(t,n),Q(()=>{let o=this._factories.get(t);!o||o!==n||(this._factories.delete(t),o.dispose())})}async getOrCreate(t){let e=this.get(t);if(e)return e;let n=this._factories.get(t);return!n||n.isResolved?null:(await n.resolve(),this.get(t))}isResolved(t){if(this.get(t))return!0;let n=this._factories.get(t);return!!(!n||n.isResolved)}setColorMap(t){this._colorMap=t,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}},zR=class extends U{constructor(e,n,o){super();this._registry=e;this._languageId=n;this._factory=o;this._isDisposed=!1;this._resolvePromise=null;this._isResolved=!1}get isResolved(){return this._isResolved}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){let e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}};var m3;(r=>{let i=new Map;i.set(0,ce.symbolMethod),i.set(1,ce.symbolFunction),i.set(2,ce.symbolConstructor),i.set(3,ce.symbolField),i.set(4,ce.symbolVariable),i.set(5,ce.symbolClass),i.set(6,ce.symbolStruct),i.set(7,ce.symbolInterface),i.set(8,ce.symbolModule),i.set(9,ce.symbolProperty),i.set(10,ce.symbolEvent),i.set(11,ce.symbolOperator),i.set(12,ce.symbolUnit),i.set(13,ce.symbolValue),i.set(15,ce.symbolEnum),i.set(14,ce.symbolConstant),i.set(15,ce.symbolEnum),i.set(16,ce.symbolEnumMember),i.set(17,ce.symbolKeyword),i.set(28,ce.symbolSnippet),i.set(18,ce.symbolText),i.set(19,ce.symbolColor),i.set(20,ce.symbolFile),i.set(21,ce.symbolReference),i.set(22,ce.symbolCustomColor),i.set(23,ce.symbolFolder),i.set(24,ce.symbolTypeParameter),i.set(25,ce.account),i.set(26,ce.issues),i.set(27,ce.tools);function t(s){let a=i.get(s);return a||(console.info("No codicon found for CompletionItemKind "+s),a=ce.symbolProperty),a}r.toIcon=t;function e(s){switch(s){case 0:return p(885,null);case 1:return p(881,null);case 2:return p(873,null);case 3:return p(878,null);case 4:return p(898,null);case 5:return p(870,null);case 6:return p(891,null);case 7:return p(882,null);case 8:return p(886,null);case 9:return p(888,null);case 10:return p(877,null);case 11:return p(887,null);case 12:return p(895,null);case 13:return p(897,null);case 14:return p(872,null);case 15:return p(875,null);case 16:return p(876,null);case 17:return p(884,null);case 18:return p(892,null);case 19:return p(871,null);case 20:return p(879,null);case 21:return p(889,null);case 22:return p(874,null);case 23:return p(880,null);case 24:return p(894,null);case 25:return p(896,null);case 26:return p(883,null);case 27:return p(893,null);case 28:return p(890,null);default:return""}}r.toLabel=e;let n=new Map;n.set("method",0),n.set("function",1),n.set("constructor",2),n.set("field",3),n.set("variable",4),n.set("class",5),n.set("struct",6),n.set("interface",7),n.set("module",8),n.set("property",9),n.set("event",10),n.set("operator",11),n.set("unit",12),n.set("value",13),n.set("constant",14),n.set("enum",15),n.set("enum-member",16),n.set("enumMember",16),n.set("keyword",17),n.set("snippet",28),n.set("text",18),n.set("color",19),n.set("file",20),n.set("reference",21),n.set("customcolor",22),n.set("folder",23),n.set("type-parameter",24),n.set("typeParameter",24),n.set("account",25),n.set("issue",26),n.set("tool",27);function o(s,a){let l=n.get(s);return typeof l>"u"&&!a&&(l=9),l}r.fromString=o})(m3||={});function IH(i){return!!i&&b.isUri(i.uri)&&We.isIRange(i.range)&&(We.isIRange(i.originSelectionRange)||We.isIRange(i.targetSelectionRange))}function xH(i){return!!i&&b.isUri(i.uri)&&We.isIRange(i.range)}var Wse={17:p(846,null),16:p(847,null),4:p(848,null),13:p(849,null),8:p(850,null),9:p(851,null),21:p(852,null),23:p(853,null),7:p(854,null),0:p(855,null),11:p(856,null),10:p(857,null),19:p(858,null),5:p(859,null),1:p(860,null),2:p(861,null),20:p(862,null),15:p(863,null),18:p(864,null),24:p(865,null),3:p(866,null),6:p(867,null),14:p(868,null),22:p(869,null),25:p(900,null),12:p(901,null)};var qR;(o=>{let i=new Map;i.set(0,ce.symbolFile),i.set(1,ce.symbolModule),i.set(2,ce.symbolNamespace),i.set(3,ce.symbolPackage),i.set(4,ce.symbolClass),i.set(5,ce.symbolMethod),i.set(6,ce.symbolProperty),i.set(7,ce.symbolField),i.set(8,ce.symbolConstructor),i.set(9,ce.symbolEnum),i.set(10,ce.symbolInterface),i.set(11,ce.symbolFunction),i.set(12,ce.symbolVariable),i.set(13,ce.symbolConstant),i.set(14,ce.symbolString),i.set(15,ce.symbolNumber),i.set(16,ce.symbolBoolean),i.set(17,ce.symbolArray),i.set(18,ce.symbolObject),i.set(19,ce.symbolKey),i.set(20,ce.symbolNull),i.set(21,ce.symbolEnumMember),i.set(22,ce.symbolStruct),i.set(23,ce.symbolEvent),i.set(24,ce.symbolOperator),i.set(25,ce.symbolTypeParameter);function t(r){let s=i.get(r);return s||(console.info("No codicon found for SymbolKind "+r),s=ce.symbolProperty),s}o.toIcon=t;let e=new Map;e.set(0,20),e.set(1,8),e.set(2,8),e.set(3,8),e.set(4,5),e.set(5,0),e.set(6,9),e.set(7,3),e.set(8,2),e.set(9,15),e.set(10,7),e.set(11,1),e.set(12,4),e.set(13,14),e.set(14,18),e.set(15,13),e.set(16,13),e.set(17,13),e.set(18,13),e.set(19,17),e.set(20,13),e.set(21,16),e.set(22,6),e.set(23,10),e.set(24,11),e.set(25,24);function n(r){let s=e.get(r);return s===void 0&&(console.info("No completion kind found for SymbolKind "+r),s=20),s}o.toCompletionKind=n})(qR||={});var va=class i{constructor(t){this.value=t}static{this.Comment=new i("comment")}static{this.Imports=new i("imports")}static{this.Region=new i("region")}static fromValue(t){switch(t){case"comment":return i.Comment;case"imports":return i.Imports;case"region":return i.Region}return new i(t)}};var KR;(t=>{function i(e){return!e||typeof e!="object"?!1:typeof e.id=="string"&&typeof e.title=="string"}t.is=i})(KR||={});var Bse=new kx;var jR=(o=>(o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=4]="Right",o[o.Full=7]="Full",o))(jR||{});var Ac=class{constructor(t,e){this._findMatchBrand=void 0;this.range=t,this.matches=e}};var _x=class{constructor(t,e,n){this.regex=t,this.wordSeparators=e,this.simpleSearch=n}},Dx=class{constructor(t,e,n){this.reverseEdits=t;this.changes=e;this.trimAutoWhitespaceLineNumbers=n}};var Bp=(o=>(o[o.Hint=1]="Hint",o[o.Info=2]="Info",o[o.Warning=4]="Warning",o[o.Error=8]="Error",o))(Bp||{});(a=>{function i(l,d){return d-l}a.compare=i;let t=Object.create(null);t[8]=p(2539,null),t[4]=p(2543,null),t[2]=p(2541,null);function e(l){return t[l]||""}a.toString=e;let n=Object.create(null);n[8]=p(2540,null),n[4]=p(2544,null),n[2]=p(2542,null);function o(l){return n[l]||""}a.toStringPlural=o;function r(l){switch(l){case it.Error:return 8;case it.Warning:return 4;case it.Info:return 2;case it.Ignore:return 1}}a.fromSeverity=r;function s(l){switch(l){case 8:return it.Error;case 4:return it.Warning;case 2:return it.Info;case 1:return it.Ignore}}a.toSeverity=s})(Bp||={});var g3;(n=>{function t(o){return e(o,!0)}n.makeKey=t;function e(o,r){let s=[""];return o.source?s.push(o.source.replace("\xA6","\\\xA6")):s.push(""),o.code?typeof o.code=="string"?s.push(o.code.replace("\xA6","\\\xA6")):s.push(o.code.value.replace("\xA6","\\\xA6")):s.push(""),o.severity!==void 0&&o.severity!==null?s.push(Bp.toString(o.severity)):s.push(""),o.message&&r?s.push(o.message.replace("\xA6","\\\xA6")):s.push(""),o.startLineNumber!==void 0&&o.startLineNumber!==null?s.push(o.startLineNumber.toString()):s.push(""),o.startColumn!==void 0&&o.startColumn!==null?s.push(o.startColumn.toString()):s.push(""),o.endLineNumber!==void 0&&o.endLineNumber!==null?s.push(o.endLineNumber.toString()):s.push(""),o.endColumn!==void 0&&o.endColumn!==null?s.push(o.endColumn.toString()):s.push(""),s.push(""),s.join("\xA6")}n.makeKeyOptionalMessage=e})(g3||={});var Gse=R("markerService");var f3=R("progressService");var tae=Object.freeze({total(){},worked(){},done(){}}),fs=class{constructor(t){this.callback=t}static{this.None=Object.freeze({report(){}})}get value(){return this._value}report(t){this._value=t,this.callback(this._value)}},Rx=class extends U{constructor(e,n){super();this.deferred=new jt;n.withProgress(e,o=>(this.reporter=o,this.lastStep&&o.report(this.lastStep),this.deferred.p)),this._register(Q(()=>this.deferred.complete()))}report(e){this.reporter?this.reporter.report(e):this.lastStep=e}};Rx=D([C(1,f3)],Rx);var nae=R("editorProgressService");var GR=class{constructor(){this.data=new Map}add(t,e){jn(Me(t)),jn(st(e)),jn(!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=>{nI(t.dispose)&&t.dispose()}),this.data.clear()}},_t=new GR;var QR=class extends U{constructor(e,n="",o="",r=!0,s){super();this._onDidChange=this._register(new E);this._enabled=!0;this._id=e,this._label=n,this._cssClass=o,this._enabled=r,this._actionCallback=s}get onDidChange(){return this._onDidChange.event}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,n){this._actionCallback&&await this._actionCallback(e)}};var CH=class i{constructor(){this.id=i.ID;this.label="";this.tooltip="";this.class="separator";this.enabled=!1;this.checked=void 0}static join(...t){let e=[];for(let n of t)n.length&&(e.length?e=[...e,new i,...n]:e=n);return e}static clean(t){for(;t.length>0&&t[0].id===i.ID;)t.shift();for(;t.length>0&&t[t.length-1].id===i.ID;)t.pop();for(let e=t.length-2;e>=0;e--)t[e].id===i.ID&&t[e+1].id===i.ID&&t.splice(e+1,1);return t}static{this.ID="vs.actions.separator"}async run(){}},Tv=class{constructor(t,e,n,o){this.tooltip="";this.enabled=!0;this.checked=void 0;this.id=t,this.label=e,this.class=o,this._actions=n}get actions(){return this._actions}async run(){}},TH=class i extends QR{static{this.ID="vs.actions.empty"}constructor(){super(i.ID,p(46,null),void 0,!1)}};var h3={EditorPane:"workbench.contributions.editors",EditorFactory:"workbench.contributions.editor.inputFactories"},tA={id:"default",displayName:p(4806,null),providerDisplayName:p(4803,null)};function Mx(i){if(ba(i))return!1;let t=i;return t?.original!==void 0&&t.modified!==void 0}function EH(i){if(ba(i))return!1;let t=i;return!t||t.resources&&!Array.isArray(t.resources)?!1:!!t.resources||!!t.multiDiffSource}function JR(i){if(ba(i)||Mx(i))return!1;let t=i;return t?.primary!==void 0&&t.secondary!==void 0}function Ax(i){if(ba(i))return!1;let t=i;return b.isUri(t?.base?.resource)&&b.isUri(t?.input1?.resource)&&b.isUri(t?.input2?.resource)&&b.isUri(t?.result?.resource)}var YR=class{constructor(){this.mapIdToSaveSource=new Map}registerSource(t,e){let n=this.mapIdToSaveSource.get(t);return n||(n={source:t,label:e},this.mapIdToSaveSource.set(t,n)),n.source}getSourceLabel(t){return this.mapIdToSaveSource.get(t)?.label??t}},Mae=new YR;var XR=class extends U{};function ba(i){return i instanceof XR}function v3(i){let t=i;return b.isUri(t?.preferredResource)}function b3(i){let t=i;return ba(t?.primary)&&ba(t?.secondary)}function kH(i){let t=i;return ba(t?.modified)&&ba(t?.original)}var ZR=class{getOriginalUri(t,e){if(!t)return;if(Ax(t))return wH.getOriginalUri(t.result,e);if(e?.supportSideBySide){let{primary:o,secondary:r}=this.getSideEditors(t);if(o&&r){if(e?.supportSideBySide===3)return{primary:this.getOriginalUri(o,{filterByScheme:e.filterByScheme}),secondary:this.getOriginalUri(r,{filterByScheme:e.filterByScheme})};if(e?.supportSideBySide===4)return this.getOriginalUri(o,{filterByScheme:e.filterByScheme})??this.getOriginalUri(r,{filterByScheme:e.filterByScheme});t=e.supportSideBySide===1?o:r}}if(Mx(t)||EH(t)||JR(t)||Ax(t))return;let n=v3(t)?t.preferredResource:t.resource;return!n||!e?.filterByScheme?n:this.filterUri(n,e.filterByScheme)}getSideEditors(t){return b3(t)||JR(t)?{primary:t.primary,secondary:t.secondary}:kH(t)||Mx(t)?{primary:t.modified,secondary:t.original}:{primary:void 0,secondary:void 0}}getCanonicalUri(t,e){if(!t)return;if(Ax(t))return wH.getCanonicalUri(t.result,e);if(e?.supportSideBySide){let{primary:o,secondary:r}=this.getSideEditors(t);if(o&&r){if(e?.supportSideBySide===3)return{primary:this.getCanonicalUri(o,{filterByScheme:e.filterByScheme}),secondary:this.getCanonicalUri(r,{filterByScheme:e.filterByScheme})};if(e?.supportSideBySide===4)return this.getCanonicalUri(o,{filterByScheme:e.filterByScheme})??this.getCanonicalUri(r,{filterByScheme:e.filterByScheme});t=e.supportSideBySide===1?o:r}}if(Mx(t)||EH(t)||JR(t)||Ax(t))return;let n=t.resource;return!n||!e?.filterByScheme?n:this.filterUri(n,e.filterByScheme)}filterUri(t,e){if(Array.isArray(e)){if(e.some(n=>t.scheme===n))return t}else if(e===t.scheme)return t}};var wH=new ZR;var eA=class{constructor(){this.editorSerializerConstructors=new Map;this.editorSerializerInstances=new Map}start(t){let e=this.instantiationService=t.get(Yo);for(let[n,o]of this.editorSerializerConstructors)this.createEditorSerializer(n,o,e);this.editorSerializerConstructors.clear()}createEditorSerializer(t,e,n){let o=n.createInstance(e);this.editorSerializerInstances.set(t,o)}registerFileEditorFactory(t){if(this.fileEditorFactory)throw new Error("Can only register one file editor factory.");this.fileEditorFactory=t}getFileEditorFactory(){return hi(this.fileEditorFactory)}registerEditorSerializer(t,e){if(this.editorSerializerConstructors.has(t)||this.editorSerializerInstances.has(t))throw new Error(`A editor serializer with type ID '${t}' was already registered.`);return this.instantiationService?this.createEditorSerializer(t,e,this.instantiationService):this.editorSerializerConstructors.set(t,e),Q(()=>{this.editorSerializerConstructors.delete(t),this.editorSerializerInstances.delete(t)})}getEditorSerializer(t){return this.editorSerializerInstances.get(typeof t=="string"?t:t.typeId)}};_t.add(h3.EditorFactory,new eA);var nA=class{constructor(){this._contributions=new Set}register(t){return this._contributions.add(t),{dispose:()=>this._contributions.delete(t)}}getActivators(t){return Array.from(this._contributions).filter(e=>e.matchSessionType(t))}};_t.add("workbench.contrib.chatSessions.asyncActivation",new nA);var oA;(a=>(a.CopilotCLI="copilotcli",a.CopilotCloud="copilot-cloud-agent",a.Local="local",a.ClaudeCode="claude-code",a.Codex="openai-codex",a.Growth="copilot-growth",a.AgentHostCopilot="agent-host-copilotcli"))(oA||={});var $p=oA.Local,y3;(o=>{function i(r){return new Map(Object.entries(r))}o.fromRecord=i;function t(r){let s=Object.create(null),a=n(r);for(let[l,d]of a)s[l]=d;return s}o.toRecord=t;function e(r){if(!r)return;let s=n(r);return Array.from(s,([a,l])=>({optionId:a,value:typeof l=="string"?l:l.id}))}o.toStrValueArray=e;function n(r){return r instanceof Map?r:Object.entries(r)}})(y3||={});var I3=R("chatSessionsService");var Lr;(s=>{s.scheme=B.vscodeLocalChatSession;function t(a){let l=so(W.wrap(new TextEncoder().encode(a)),!1,!0);return b.from({scheme:s.scheme,authority:$p,path:"/"+l})}s.forSession=t;function e(){let a=Math.floor(Math.random()*1e9);return t(`chat-${a}`)}s.getNewSessionUri=e;function n(a){let l=r(a);return l?.chatSessionType===$p?l.sessionId:void 0}s.parseLocalSessionId=n;function o(a){return!!n(a)}s.isLocalSession=o;function r(a){if(a.scheme!==s.scheme||!a.authority)return;let l=a.path.split("/");if(l.length!==2)return;let d=a.authority,c=No(l[1]);return{chatSessionType:d,sessionId:new TextDecoder().decode(c.buffer)}}})(Lr||={});function Ol(i){let t=Lr.parseLocalSessionId(i);return t||i.toString()}function Mc(i){return i.scheme===B.vscodeChatEditor?$p:i.scheme===Lr.scheme?i.authority||$p:i.scheme}function Lc(i){return i.path.startsWith("/untitled-")}var Ev;(r=>{r.icon=ce.error;function t(s){return{filterUri:s.resource,owner:s.owner,problemMessage:s.message,filterRange:{startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,startColumn:s.startColumn,endColumn:s.endColumn}}}r.fromMarker=t;function e(s){return{id:n(s),name:o(s),icon:r.icon,value:s,kind:"diagnostic",...s}}r.toEntry=e;function n(s){return[s.filterUri,s.owner,s.filterSeverity,s.filterRange?.startLineNumber,s.filterRange?.startColumn].join(":")}r.id=n;function o(s){let a;if((u=>(u[u.MaxChars=30]="MaxChars",u[u.MaxSpaceLookback=10]="MaxSpaceLookback"))(a||={}),s.problemMessage){if(s.problemMessage.length<30)return s.problemMessage;let d=s.problemMessage.lastIndexOf(" ",30);return d===-1||d+10<30?s.problemMessage.substring(0,30)+"\u2026":s.problemMessage.substring(0,d)+"\u2026"}let l=p(8665,null);return s.filterUri&&(l=p(8666,null,rt(s.filterUri))),l}r.label=o})(Ev||={});var Nl;(n=>{function i(o){return b.isUri(o.value)?o.value:xH(o.value)?o.value.uri:void 0}n.toUri=i;function t(o){if(o.value instanceof Uint8Array){let r={...o};return r.value={$base64:so(W.wrap(o.value))},r}return o}n.toExport=t;function e(o){if(o&&"values"in o&&Array.isArray(o.values))return{kind:"generic",id:o.id??"",name:o.name,value:o.values[0]?.value,range:o.range,modelDescription:o.modelDescription,references:o.references};if(o.value&&typeof o.value=="object"&&"$base64"in o.value&&typeof o.value.$base64=="string"){let r={...o};return r.value=No(o.value.$base64).buffer,r}return o}n.fromExport=e})(Nl||={});function PH(i){return i.kind==="implicit"}function _H(i){return i.kind==="string"}function DH(i){return i.kind==="image"}function wv(i){return i.kind==="promptFile"}function RH(i){return i.kind==="promptText"}function AH(i){let t=i;return typeof t=="object"&&t!==null&&(typeof t.value=="string"||typeof t.value>"u")&&(typeof t.name=="string"||typeof t.name>"u")&&(t.resourceUri===void 0||b.isUri(t.resourceUri))&&(typeof t.name=="string"||b.isUri(t.resourceUri))&&(t.icon===void 0||dt.isThemeIcon(t.icon))&&b.isUri(t.uri)&&typeof t.handle=="number"}function Ul(i,t,e,n=!1,o){return{id:`${t}__${i.toString()}`,name:`prompt:${rt(i)}`,value:i,kind:"promptFile",modelDescription:"Prompt instructions file",isRoot:t!=="vscode.instructions.file.reference",originLabel:e,toolReferences:o,automaticallyAdded:n}}function MH(i,t=!1,e){return{id:"vscode.customizations.index",name:"prompt:customizationsIndex",value:i,kind:"promptText",modelDescription:"Chat customizations index",automaticallyAdded:t,toolReferences:e}}function LH(i,t){return{kind:"tool",id:i.id,icon:dt.isThemeIcon(i.icon)?i.icon:void 0,name:i.displayName,value:void 0,range:t}}var Oc=class{constructor(t){this._ids=new Set;this._entries=[];t&&this.add(...t)}add(...t){for(let e of t)this._ids.has(e.id)||(this._ids.add(e.id),this._entries.push(e))}insertFirst(t){this._ids.has(t.id)||(this._ids.add(t.id),this._entries.unshift(t))}remove(t){this._ids.delete(t.id),this._entries=this._entries.filter(e=>e.id!==t.id)}has(t){return this._ids.has(t.id)}asArray(){return this._entries.slice(0)}get length(){return this._entries.length}};var Gt=R("configurationService");function Lx(i,t){let e=Object.create(null);for(let n in i)rA(e,n,i[n],t);return e}function rA(i,t,e,n){let o=t.split("."),r=o.pop(),s=i;for(let a=0;a<o.length;a++){let l=o[a],d=s[l];switch(typeof d){case"undefined":d=s[l]=Object.create(null);break;case"object":if(d===null){n(`Ignoring ${t} as ${o.slice(0,a+1).join(".")} is null`);return}break;default:n(`Ignoring ${t} as ${o.slice(0,a+1).join(".")} is ${JSON.stringify(d)}`);return}s=d}if(typeof s=="object"&&s!==null)try{s[r]=e}catch{n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`)}else n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`)}function OH(i,t){let e=t.split(".");NH(i,e)}function NH(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 o=e[n];typeof o=="object"&&o!==null&&!Array.isArray(o)&&(NH(o,t),Object.keys(o).length===0&&delete e[n])}}function kv(i,t,e){function n(s,a){let l=s;for(let d of a){if(typeof l!="object"||l===null)return;l=l[d]}return l}let o=t.split("."),r=n(i,o);return typeof r>"u"?e:r}function UH(i){return i.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}function zp(i,t=Ce){return RI(i,t)?i.charAt(0).toUpperCase()+i.slice(1):i}function Fl(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}var Ox=R("dialogService");var Tle=R("fileDialogService");var hs=R("productService"),FH="vscode://schemas/vscode-product";function HH(i){let t=!1,e=new Map,n=new Map;if(x3(i,c=>{if(i===c)return!0;let u=JSON.stringify(c);if(u.length<30)return!0;let m=e.get(u);if(!m){let g={schemas:[c]};return e.set(u,g),n.set(c,g),!0}return m.schemas.push(c),n.set(c,m),t=!0,!1}),e.clear(),!t)return JSON.stringify(i);let r="$defs";for(;i.hasOwnProperty(r);)r+="_";let s=[];function a(c){return JSON.stringify(c,(u,m)=>{if(m!==c){let g=n.get(m);if(g&&g.schemas.length>1)return g.id||(g.id=`_${s.length}`,s.push(g.schemas[0])),{$ref:`#/${r}/${g.id}`}}return m})}let l=a(i),d=[];for(let c=0;c<s.length;c++)d.push(`"_${c}":${a(s[c])}`);return d.length?`${l.substring(0,l.length-1)},"${r}":{${d.join(",")}}}`:l}function qp(i){return typeof i=="object"&&i!==null}function x3(i,t){if(!i||typeof i!="object")return;let e=(...l)=>{for(let d of l)qp(d)&&s.push(d)},n=(...l)=>{for(let d of l)if(qp(d))for(let c in d){let u=d[c];qp(u)&&s.push(u)}},o=(...l)=>{for(let d of l)if(Array.isArray(d))for(let c of d)qp(c)&&s.push(c)},r=l=>{if(Array.isArray(l))for(let d of l)qp(d)&&s.push(d);else qp(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),o(a.anyOf,a.allOf,a.oneOf,a.prefixItems),r(a.items)),a=s.pop()}var Nc={JSONContribution:"base.contributions.json"};function VH(i){return i.length>0&&i.charAt(i.length-1)==="#"?i.substring(0,i.length-1):i}var iA=class extends U{constructor(){super(...arguments);this.schemasById={};this.schemaAssociations={};this._onDidChangeSchema=this._register(new E);this.onDidChangeSchema=this._onDidChangeSchema.event;this._onDidChangeSchemaAssociations=this._register(new E);this.onDidChangeSchemaAssociations=this._onDidChangeSchemaAssociations.event}registerSchema(e,n,o){let r=VH(e);this.schemasById[r]=n,this._onDidChangeSchema.fire(e),o&&o.add(Q(()=>{delete this.schemasById[r],this._onDidChangeSchema.fire(e)}))}registerSchemaAssociation(e,n){let o=VH(e);return this.schemaAssociations[o]||(this.schemaAssociations[o]=[]),this.schemaAssociations[o].includes(n)||(this.schemaAssociations[o].push(n),this._onDidChangeSchemaAssociations.fire()),Q(()=>{let r=this.schemaAssociations[o];if(r){let s=r.indexOf(n);s!==-1&&(r.splice(s,1),r.length===0&&delete this.schemaAssociations[o],this._onDidChangeSchemaAssociations.fire())}})}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}getSchemaContributions(){return{schemas:this.schemasById}}getSchemaContent(e){let n=this.schemasById[e];return n?HH(n):void 0}hasSchemaContent(e){return!!this.schemasById[e]}getSchemaAssociations(){return this.schemaAssociations}},S3=new iA;_t.add(Nc.JSONContribution,S3);var ei={Configuration:"base.contributions.configuration"};function C3(i,t){return i===t?!0:!i||!t?!1:typeof i=="string"||typeof t=="string"?i===t:i.id===t.id}var Nx={properties:{},patternProperties:{}},Ux={properties:{},patternProperties:{}},Fx={properties:{},patternProperties:{}},Hx={properties:{},patternProperties:{}},Vx={properties:{},patternProperties:{}},Wx={properties:{},patternProperties:{}},Pv={properties:{},patternProperties:{}},Uc="vscode://schemas/settings/resourceLanguage";var Bx=_t.as(Nc.JSONContribution),sA=class extends U{constructor(){super();this.registeredConfigurationDefaults=[];this.overrideIdentifiers=new Set;this._onDidSchemaChange=this._register(new E);this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=this._register(new E);this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:p(2228,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},Bx.registerSchema(Uc,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,n=!0){return this.registerConfigurations([e],n),e}registerConfigurations(e,n=!0){let o=new Set;this.doRegisterConfigurations(e,n,o),Bx.registerSchema(Uc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),Bx.registerSchema(Uc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n})}updateConfigurations({add:e,remove:n}){let o=new Set;this.doDeregisterConfigurations(n,o),this.doRegisterConfigurations(e,!1,o),Bx.registerSchema(Uc,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o})}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 o=[];for(let{overrides:r,source:s}of e)for(let a in r){n.add(a);let l=this.configurationDefaultsOverrides.get(a)??this.configurationDefaultsOverrides.set(a,{configurationDefaultOverrides:[]}).get(a),d=r[a];if(l.configurationDefaultOverrides.push({value:d,source:s}),Zr.test(a)){let c=this.mergeDefaultConfigurationsForOverrideIdentifier(a,d,s,l.configurationDefaultOverrideValue);if(!c)continue;l.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(a,c,s),o.push(...Kp(a))}else{let c=this.mergeDefaultConfigurationsForConfigurationProperty(a,d,s,l.configurationDefaultOverrideValue);if(!c)continue;l.configurationDefaultOverrideValue=c;let u=this.configurationProperties[a];u&&(this.updatePropertyDefaultValue(a,u),this.updateSchema(a,u))}}this.doRegisterOverrideIdentifiers(o)}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 o of e){let r=this.registeredConfigurationDefaults.indexOf(o);r!==-1&&this.registeredConfigurationDefaults.splice(r,1)}for(let{overrides:o,source:r}of e)for(let s in o){let a=this.configurationDefaultsOverrides.get(s);if(!a)continue;let l=a.configurationDefaultOverrides.findIndex(d=>r?C3(d.source,r):d.value===o[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),Zr.test(s)){let d;for(let c of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForOverrideIdentifier(s,c.value,c.source,d);d&&!cp(d.value)?(a.configurationDefaultOverrideValue=d,this.updateDefaultOverrideProperty(s,d,r)):(this.configurationDefaultsOverrides.delete(s),delete this.configurationProperties[s],delete this.defaultLanguageConfigurationOverridesNode.properties[s])}else{let d;for(let u of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForConfigurationProperty(s,u.value,u.source,d);a.configurationDefaultOverrideValue=d;let c=this.configurationProperties[s];c&&(this.updatePropertyDefaultValue(s,c),this.updateSchema(s,c))}n.add(s)}}this.updateOverridePropertyPatternKey()}updateDefaultOverrideProperty(e,n,o){let r={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:n.value,description:p(2227,null,UH(e)),$ref:Uc,defaultDefaultValue:n.value,source:o,defaultValueSource:o};this.configurationProperties[e]=r,this.defaultLanguageConfigurationOverridesNode.properties[e]=r}mergeDefaultConfigurationsForOverrideIdentifier(e,n,o,r){let s=r?.value||{},a=r?.source??new Map;if(!(a instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(let l of Object.keys(n)){let d=n[l];if(st(d)&&(oa(s[l])||st(s[l]))){if(s[l]={...s[l]??{},...d},o)for(let u in d)a.set(`${l}.${u}`,o)}else s[l]=d,o?a.set(l,o):a.delete(l)}return{value:s,source:a}}mergeDefaultConfigurationsForConfigurationProperty(e,n,o,r){let s=this.configurationProperties[e],a=r?.value??s?.defaultDefaultValue,l=o;if(st(n)&&(s!==void 0&&s.type==="object"||s===void 0&&(oa(a)||st(a)))){if(l=r?.source??new Map,!(l instanceof Map)){console.error("defaultValueSource is not a Map");return}for(let c in n)o&&l.set(`${e}.${c}`,o);n={...st(a)?a:{},...n}}return{value:n,source:l}}deltaConfiguration(e){let n=!1,o=new Set;e.removedDefaults&&(this.doDeregisterDefaultConfigurations(e.removedDefaults,o),n=!0),e.addedDefaults&&(this.doRegisterDefaultConfigurations(e.addedDefaults,o),n=!0),e.removedConfigurations&&this.doDeregisterConfigurations(e.removedConfigurations,o),e.addedConfigurations&&this.doRegisterConfigurations(e.addedConfigurations,!1,o),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o,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,o){e.forEach(r=>{this.validateAndRegisterProperties(r,n,r.extensionInfo,r.restrictedProperties,void 0,o),this.configurationContributors.push(r),this.registerJSONConfiguration(r)})}doDeregisterConfigurations(e,n){let o=r=>{if(r.properties)for(let s in r.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,r.properties[s])}r.allOf?.forEach(s=>o(s))};for(let r of e){o(r);let s=this.configurationContributors.indexOf(r);s!==-1&&this.configurationContributors.splice(s,1)}}validateAndRegisterProperties(e,n=!0,o,r,s=4,a){s=Ht(e.scope)?s:e.scope;let l=e.properties;if(l)for(let c in l){let u=l[c];if(u.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},n&&E3(c,u,o?.id)){delete l[c];continue}u.source=o,u.defaultDefaultValue=l[c].default,this.updatePropertyDefaultValue(c,u),Zr.test(c)?u.scope=void 0:(u.scope=Ht(u.scope)?s:u.scope,u.restricted=Ht(u.restricted)?!!r?.includes(c):u.restricted),u.experiment?u.tags?.some(h=>h.toLowerCase()==="onexp")||(u.tags=u.tags??[],u.tags.push("onExP")):u.tags?.some(h=>h.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${c}'. Please use 'experiment' property instead.`),u.experiment={mode:"startup"});let m=l[c].hasOwnProperty("included")&&!l[c].included,g=l[c].policy?.name;m?(this.excludedConfigurationProperties[c]=l[c],g&&(this.policyConfigurations.set(g,c),a.add(c)),delete l[c]):(a.add(c),g&&this.policyConfigurations.set(g,c),this.configurationProperties[c]=l[c],!l[c].deprecationMessage&&l[c].markdownDeprecationMessage&&(l[c].deprecationMessage=l[c].markdownDeprecationMessage))}let d=e.allOf;if(d)for(let c of d)this.validateAndRegisterProperties(c,n,o,r,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,o]of this.configurationDefaultsOverrides)o.configurationDefaultOverrideValue&&e.set(n,o.configurationDefaultOverrideValue);return e}registerJSONConfiguration(e){let n=o=>{let r=o.properties;if(r)for(let a in r)this.updateSchema(a,r[a]);o.allOf?.forEach(n)};n(e)}updateSchema(e,n){switch(Nx.properties[e]=n,n.scope){case 1:Ux.properties[e]=n;break;case 2:Hx.properties[e]=n;break;case 3:Fx.properties[e]=n;break;case 7:Vx.properties[e]=n;break;case 4:Wx.properties[e]=n;break;case 5:Pv.properties[e]=n;break;case 6:Pv.properties[e]=n,this.resourceLanguageSettingsSchema.properties[e]=n;break}}removeFromSchema(e,n){switch(delete Nx.properties[e],n.scope){case 1:delete Ux.properties[e];break;case 2:delete Hx.properties[e];break;case 3:delete Fx.properties[e];break;case 7:delete Vx.properties[e];break;case 4:delete Wx.properties[e];break;case 5:case 6:delete Pv.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let n=`[${e}]`,o={type:"object",description:p(2229,null),errorMessage:p(2230,null),$ref:Uc};this.updatePropertyDefaultValue(n,o),Nx.properties[n]=o,Ux.properties[n]=o,Fx.properties[n]=o,Hx.properties[n]=o,Vx.properties[n]=o,Wx.properties[n]=o,Pv.properties[n]=o}}registerOverridePropertyPatternKey(){let e={type:"object",description:p(2229,null),errorMessage:p(2230,null),$ref:Uc};Nx.patternProperties[Hl]=e,Ux.patternProperties[Hl]=e,Fx.patternProperties[Hl]=e,Hx.patternProperties[Hl]=e,Vx.patternProperties[Hl]=e,Wx.patternProperties[Hl]=e,Pv.patternProperties[Hl]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,n){let o=this.configurationDefaultsOverrides.get(e)?.configurationDefaultOverrideValue,r,s;o&&(!n.disallowConfigurationDefault||!o.source)&&(r=o.value,s=o.source),oa(r)&&(r=n.defaultDefaultValue,s=void 0),oa(r)&&(r=T3(n.type)),n.default=r,n.defaultValueSource=s}},BH="\\[([^\\]]+)\\]",WH=new RegExp(BH,"g"),Hl=`^(${BH})+$`,Zr=new RegExp(Hl);function Kp(i){let t=[];if(Zr.test(i)){let e=WH.exec(i);for(;e?.length;){let n=e[1].trim();n&&t.push(n),e=WH.exec(i)}}return qr(t)}function T3(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 $x=new sA;_t.add(ei.Configuration,$x);function E3(i,t,e){return i.trim()?Zr.test(i)?p(2226,null,i):$x.getConfigurationProperties()[i]!==void 0&&(!e||!w3.has(e.toLowerCase()))?p(2224,null,i):t.policy?.name&&$x.getPolicyConfigurations().get(t.policy?.name)!==void 0?p(2223,null,i,t.policy?.name,$x.getPolicyConfigurations().get(t.policy?.name)):null:p(2225,null)}var w3=new Set(Xo.defaultChatAgent?[Xo.defaultChatAgent.extensionId,Xo.defaultChatAgent.chatExtensionId].map(i=>i.toLowerCase()):[]);var Kx=R("requestService");var lA=class{constructor(t){this.original=t}toJSON(){if(!this.headers){let t=Object.create(null);for(let e in this.original)e.toLowerCase()==="authorization"||e.toLowerCase()==="proxy-authorization"?t[e]="*****":t[e]=this.original[e];this.headers=t}return this.headers}},zx=class extends U{constructor(e){super();this.logService=e;this.counter=0;this._onDidCompleteRequest=this._register(new E);this.onDidCompleteRequest=this._onDidCompleteRequest.event}async logAndRequest(e,n){let o=`#${++this.counter}: ${e.url}`;this.logService.trace(`${o} - begin`,e.type,new lA(e.headers??{}));let r=Date.now();try{let s=await n();return this.logService.trace(`${o} - end`,e.type,s.res.statusCode,s.res.headers),this._onDidCompleteRequest.fire({callSite:e.callSite,latency:Date.now()-r,statusCode:s.res.statusCode}),s}catch(s){throw this.logService.error(`${o} - error`,e.type,Zi(s)),s}}};function k3(i){return i.res.statusCode&&i.res.statusCode>=200&&i.res.statusCode<300||i.res.statusCode===1223}function qH(i){return i.res.statusCode===204}async function dA(i){return qH(i)?null:(await B_(i.stream)).toString()}async function KH(i){if(!k3(i))throw new Error("Server returned "+i.res.statusCode);if(qH(i))return null;let e=(await B_(i.stream)).toString();try{return JSON.parse(e)}catch(n){throw n.message+=`:
`+e,n}}var jp=!1,aA=[],$H,zH;function P3(i=!0,t=!0){if($H===i&&zH===t)return;$H=i,zH=t;let e=_t.as(ei.Configuration),n=aA;aA=[{id:"http",order:15,title:p(2599,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:p(2614,null),restricted:!0}}},{id:"http",order:15,title:p(2599,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:p(2597,null),restricted:!0}}},{id:"http",order:15,title:p(2599,null),type:"object",scope:i?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:p(2602,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:p(2610,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:p(2604,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:p(2601,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:p(2603,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[p(2607,null),p(2608,null),p(2606,null),p(2609,null)],default:"override",markdownDescription:p(2605,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:p(2611,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:jp,markdownDescription:p(2612,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:p(2613,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(2598,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(2615,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:p(2600,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:aA,remove:n})}P3();var Vl=class i extends U{constructor(e,n=Object.create(null)){super();this.database=e;this.options=n;this._onDidChangeStorage=this._register(new rs);this.onDidChangeStorage=this._onDidChangeStorage.event;this.state=0;this.cache=new Map;this.flushDelayer=this._register(new da(i.DEFAULT_FLUSH_DELAY));this.pendingDeletes=new Set;this.pendingInserts=new Map;this.pendingClose=void 0;this.whenFlushedCallbacks=[];this.registerListeners()}static{this.DEFAULT_FLUSH_DELAY=100}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){this._onDidChangeStorage.pause();try{e.changed?.forEach((n,o)=>this.acceptExternal(o,n)),e.deleted?.forEach(n=>this.acceptExternal(n,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,n){if(this.state===2)return;let o=!1;Ht(n)?o=this.cache.delete(e):this.cache.get(e)!==n&&(this.cache.set(e,n),o=!0),o&&this._onDidChangeStorage.fire({key:e,external:!0})}get items(){return this.cache}get size(){return this.cache.size}async init(){this.state===0&&(this.state=1,this.options.hint!==0&&(this.cache=await this.database.getItems()))}get(e,n){let o=this.cache.get(e);return Ht(o)?n:o}getBoolean(e,n){let o=this.get(e);return Ht(o)?n:o==="true"}getNumber(e,n){let o=this.get(e);return Ht(o)?n:parseInt(o,10)}getObject(e,n){let o=this.get(e);return Ht(o)?n:zI(o)}async set(e,n,o=!1){if(this.state===2)return;if(Ht(n))return this.delete(e,o);let r=st(n)||Array.isArray(n)?e2(n):String(n);if(this.cache.get(e)!==r)return this.cache.set(e,r),this.pendingInserts.set(e,r),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:o}),this.doFlush()}async delete(e,n=!1){if(!(this.state===2||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:n}),this.doFlush()}async optimize(){if(this.state!==2)return await this.flush(0),this.database.optimize()}async close(){return this.pendingClose||(this.pendingClose=this.doClose()),this.pendingClose}async doClose(){this.state=2;try{await this.doFlush(0)}catch{}await this.database.close(()=>this.cache)}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;let e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)this.whenFlushedCallbacks.pop()?.()})}async flush(e){if(!(this.state===2||this.pendingClose))return this.doFlush(e)}async doFlush(e){return this.options.hint===1?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}async whenFlushed(){if(this.hasPending)return new Promise(e=>this.whenFlushedCallbacks.push(e))}isInMemory(){return this.options.hint===1}},Fc=class{constructor(){this.onDidChangeItemsExternal=ye.None;this.items=new Map}async getItems(){return this.items}async updateItems(t){t.insert?.forEach((e,n)=>this.items.set(n,e)),t.delete?.forEach(e=>this.items.delete(e))}async optimize(){}async close(){}},jH="__$__migratedStorageMarker",GH=class i extends Vl{constructor(){super(...arguments);this.migratedKeys=new Set;this.fallbackStorage=void 0;this.isFallbackStorageReadonly=!1}async init(){await super.init(),this.migratedKeys=this.loadMigratedKeys()}setFallbackStorage(e,n){this.fallbackStorage=e,this.isFallbackStorageReadonly=n}static{this.INTERNAL_KEY_PREFIX="__$__"}get(e,n){if(!e.startsWith(i.INTERNAL_KEY_PREFIX)&&!this.migratedKeys.has(e)&&oa(super.get(e))){this.migratedKeys.add(e);let o=this.fallbackStorage?.items.get(e);oa(o)||(this.set(e,o),this.isFallbackStorageReadonly||this.fallbackStorage?.delete(e),this.persistMigratedKeys())}return super.get(e,n)}loadMigratedKeys(){let e=super.get(jH);if(e)try{return new Set(JSON.parse(e))}catch{}return new Set}persistMigratedKeys(){this.set(jH,JSON.stringify([...this.migratedKeys]))}};var _v=R("environmentService"),QH=_v;var jx=R("IUriIdentityService");var Dv="agents",D3={settings:!0,keybindings:!0,prompts:!0,mcp:!0,languageModels:!0,snippets:!0,tasks:!0,extensions:!0};function YH(i){let t=i;return!!(t&&typeof t=="object"&&typeof t.id=="string"&&typeof t.isDefault=="boolean"&&typeof t.name=="string"&&b.isUri(t.location)&&b.isUri(t.globalStorageHome)&&b.isUri(t.settingsResource)&&b.isUri(t.keybindingsResource)&&b.isUri(t.tasksResource)&&b.isUri(t.snippetsHome)&&b.isUri(t.promptsHome)&&b.isUri(t.extensionsResource)&&b.isUri(t.mcpResource)&&b.isUri(t.languageModelsResource)&&b.isUri(t.agentPluginsHome))}var XH=R("IUserDataProfilesService");function Gx(i,t,e,n,o,r){let s=i===Dv;return{id:i,name:t,location:e,isDefault:!1,icon:o?.icon,globalStorageHome:r&&o?.useDefaultFlags?.globalState?r.globalStorageHome:vt(e,"globalStorage"),settingsResource:r&&o?.useDefaultFlags?.settings?r.settingsResource:vt(e,"settings.json"),keybindingsResource:r&&o?.useDefaultFlags?.keybindings?r.keybindingsResource:vt(e,"keybindings.json"),tasksResource:r&&o?.useDefaultFlags?.tasks?r.tasksResource:vt(e,"tasks.json"),snippetsHome:r&&o?.useDefaultFlags?.snippets?r.snippetsHome:vt(e,"snippets"),promptsHome:r&&o?.useDefaultFlags?.prompts?r.promptsHome:vt(e,"prompts"),extensionsResource:r&&o?.useDefaultFlags?.extensions?r.extensionsResource:vt(e,"extensions.json"),mcpResource:r&&o?.useDefaultFlags?.mcp?r.mcpResource:vt(e,"mcp.json"),languageModelsResource:r&&o?.useDefaultFlags?.languageModels?r.languageModelsResource:vt(e,"chatLanguageModels.json"),agentPluginsHome:r?r.agentPluginsHome:vt(e,"agent-plugins"),cacheHome:vt(n,i),useDefaultFlags:o?.useDefaultFlags,isTransient:o?.transient,isInternal:s||o?.transient,isAgentsWindowProfile:s,workspaces:o?.workspaces}}var JH="builtin",Qx=class extends U{constructor(e,n,o,r){super();this.environmentService=e;this.fileService=n;this.uriIdentityService=o;this.logService=r;this._onDidChangeProfiles=this._register(new E);this.onDidChangeProfiles=this._onDidChangeProfiles.event;this._onWillCreateProfile=this._register(new E);this.onWillCreateProfile=this._onWillCreateProfile.event;this._onWillRemoveProfile=this._register(new E);this.onWillRemoveProfile=this._onWillRemoveProfile.event;this._onDidResetWorkspaces=this._register(new E);this.onDidResetWorkspaces=this._onDidResetWorkspaces.event;this.profileCreationPromises=new Map;this.transientProfilesObject={profiles:[],emptyWindows:new Map};this.profilesHome=vt(this.environmentService.userRoamingDataHome,"profiles"),this.profilesCacheHome=vt(this.environmentService.cacheHome,"CachedProfilesData")}static{this.PROFILES_KEY="userDataProfiles"}static{this.PROFILE_ASSOCIATIONS_KEY="profileAssociations"}get defaultProfile(){return this.profiles[0]}get profiles(){return[...this.profilesObject.profiles,...this.transientProfilesObject.profiles]}init(){this._profilesObject=void 0}get profilesObject(){if(!this._profilesObject){let e=this.createDefaultProfile(),n=[e];try{for(let r of this.getStoredProfiles()){if(this.isInvalidProfile(r)){this.logService.warn("Skipping the invalid stored profile",r.location||r.name);continue}let s=rt(r.location);n.push(Gx(s,r.name,r.location,this.profilesCacheHome,{icon:r.icon,useDefaultFlags:s===Dv?D3:r.useDefaultFlags},e))}}catch(r){this.logService.error(r)}let o=new Map;if(n.length)try{let r=this.getStoredProfileAssociations();if(r.workspaces)for(let[s,a]of Object.entries(r.workspaces)){let l=b.parse(s),d=n.find(c=>c.id===a);if(d){let c=d.workspaces?d.workspaces.slice(0):[];c.push(l),d.workspaces=c}}if(r.emptyWindows)for(let[s,a]of Object.entries(r.emptyWindows)){let l=n.find(d=>d.id===a);l&&o.set(s,l)}}catch(r){this.logService.error(r)}this._profilesObject={profiles:n,emptyWindows:o}}return this._profilesObject}isInvalidProfile(e){return!e.name||!Me(e.name)||!e.location}createDefaultProfile(){let e=Gx("__default__profile__",p(3040,null),this.environmentService.userRoamingDataHome,this.profilesCacheHome);return{...e,extensionsResource:this.getDefaultProfileExtensionsLocation()??e.extensionsResource,isDefault:!0}}async createTransientProfile(e){let n="Temp",o=new RegExp(`${Qo(n)}\\s(\\d+)`),r=0;for(let a of this.profiles){let l=o.exec(a.name),d=l?parseInt(l[1]):0;r=d>r?d:r}let s=`${n} ${r+1}`;return this.createProfile(Yn(Pe()).toString(16),s,{transient:!0},e)}async createNamedProfile(e,n,o){return this.createProfile(Yn(Pe()).toString(16),e,n,o)}async createProfile(e,n,o,r){return await this.doCreateProfile(e,n,o,r)}async doCreateProfile(e,n,o,r){if(!Me(n)||!n)throw new Error("Name of the profile is mandatory and must be of type `string`");let s=this.profileCreationPromises.get(n);return s||(s=(async()=>{try{if(this.profiles.find(u=>u.id===e||e!==Dv&&!u.isTransient&&!o?.transient&&u.name===n))throw new Error(`Profile with ${n} name already exists`);let l=r?this.getWorkspace(r):void 0;b.isUri(l)&&(o={...o,workspaces:[l]});let d=Gx(e,n,this.uriIdentityService.extUri.joinPath(this.profilesHome,...e===Dv?[JH,e]:[e]),this.profilesCacheHome,e===Dv?{}:o,this.defaultProfile);await this.fileService.createFolder(d.location);let c=[];return this._onWillCreateProfile.fire({profile:d,join(u){c.push(u)}}),await Jr.settled(c),l&&!b.isUri(l)&&this.updateEmptyWindowAssociation(l,d,!!d.isTransient),this.updateProfiles([d],[],[]),this.profiles.find(u=>u.id===d.id)??d}finally{this.profileCreationPromises.delete(n)}})(),this.profileCreationPromises.set(n,s)),s}async updateProfile(e,n){if(e.isAgentsWindowProfile)throw new Error("Cannot update agents window profile");let o=[];for(let s of this.profiles){let a;if(e.id===s.id)s.isDefault?n.workspaces&&(a=s,a.workspaces=n.workspaces):a=Gx(s.id,n.name??s.name,s.location,this.profilesCacheHome,{icon:n.icon===null?void 0:n.icon??s.icon,transient:n.transient??s.isTransient,useDefaultFlags:n.useDefaultFlags??s.useDefaultFlags,workspaces:n.workspaces??s.workspaces},this.defaultProfile);else if(n.workspaces){let l=s.workspaces?.filter(d=>!n.workspaces?.some(c=>this.uriIdentityService.extUri.isEqual(d,c)));s.workspaces?.length!==l?.length&&(a=s,a.workspaces=l)}a&&o.push(a)}if(!o.length)throw e.isDefault?new Error("Cannot update default profile"):new Error(`Profile '${e.name}' does not exist`);this.updateProfiles([],[],o);let r=this.profiles.find(s=>s.id===e.id);if(!r)throw new Error(`Profile '${e.name}' was not updated`);return r}async removeProfile(e){if(e.isDefault)throw new Error("Cannot remove default profile");let n=this.profiles.find(r=>r.id===e.id);if(!n)throw new Error(`Profile '${e.name}' does not exist`);let o=[];this._onWillRemoveProfile.fire({profile:n,join(r){o.push(r)}});try{await Promise.allSettled(o)}catch(r){this.logService.error(r)}this.updateProfiles([],[n],[]);try{await this.fileService.del(n.cacheHome,{recursive:!0})}catch(r){N2(r)!==1&&this.logService.error(r)}}async setProfileForWorkspace(e,n){let o=this.profiles.find(s=>s.id===n.id);if(!o)throw new Error(`Profile '${n.name}' does not exist`);let r=this.getWorkspace(e);if(b.isUri(r)){let s=o.workspaces?[...o.workspaces]:[];s.some(a=>this.uriIdentityService.extUri.isEqual(a,r))||(s.push(r),await this.updateProfile(o,{workspaces:s}))}else this.updateEmptyWindowAssociation(r,o,!1),this.updateStoredProfiles(this.profiles)}unsetWorkspace(e,n=!1){let o=this.getWorkspace(e);if(b.isUri(o)){let r=this.getProfileForWorkspace(e);r&&this.updateProfile(r,{workspaces:r.workspaces?.filter(s=>!this.uriIdentityService.extUri.isEqual(s,o))})}else this.updateEmptyWindowAssociation(o,void 0,n),this.updateStoredProfiles(this.profiles)}async resetWorkspaces(){this.transientProfilesObject.emptyWindows.clear(),this.profilesObject.emptyWindows.clear();for(let e of this.profiles)e.workspaces=void 0;this.updateProfiles([],[],this.profiles),this._onDidResetWorkspaces.fire()}async cleanUp(){try{if(await this.fileService.exists(this.profilesHome)){let e=await this.fileService.resolve(this.profilesHome);await Promise.all((e.children||[]).filter(n=>n.isDirectory&&n.name!==JH&&this.profiles.every(o=>!this.uriIdentityService.extUri.isEqual(o.location,n.resource))).map(n=>this.fileService.del(n.resource,{recursive:!0})))}}catch(e){this.logService.error("Error deleting redundant profile folders",e)}try{let e=this.getStoredProfiles(),n=[];for(let o of this.getStoredProfiles())this.isInvalidProfile(o)?this.logService.warn(`Invalid user data profile found: ${o.name}`):n.push(o);e.length!==n.length&&this.saveStoredProfiles(n)}catch(e){this.logService.error("Error removing invalid stored profiles",e)}}async cleanUpTransientProfiles(){let e=this.transientProfilesObject.profiles.filter(n=>!this.isProfileAssociatedToWorkspace(n));await Promise.allSettled(e.map(n=>this.removeProfile(n)))}getProfileForWorkspace(e){let n=this.getWorkspace(e);return b.isUri(n)&&this.uriIdentityService.extUri.isEqual(n,this.environmentService.agentSessionsWorkspace)?this.profiles.find(o=>o.isAgentsWindowProfile):b.isUri(n)?this.profiles.find(o=>o.workspaces?.some(r=>this.uriIdentityService.extUri.isEqual(r,n))):this.profilesObject.emptyWindows.get(n)??this.transientProfilesObject.emptyWindows.get(n)}getWorkspace(e){return V2(e)?e.uri:W2(e)?e.configPath:e.id}isProfileAssociatedToWorkspace(e){return!!(e.workspaces?.length||[...this.profilesObject.emptyWindows.values()].some(n=>this.uriIdentityService.extUri.isEqual(n.location,e.location))||[...this.transientProfilesObject.emptyWindows.values()].some(n=>this.uriIdentityService.extUri.isEqual(n.location,e.location)))}updateProfiles(e,n,o,r=!1){let s=[...this.profiles,...e],a=this.transientProfilesObject.profiles;this.transientProfilesObject.profiles=[];let l=[];for(let d of s){if(n.some(c=>d.id===c.id)){for(let c of[...this.profilesObject.emptyWindows.keys()])d.id===this.profilesObject.emptyWindows.get(c)?.id&&this.profilesObject.emptyWindows.delete(c);continue}if(!d.isDefault){d=o.find(u=>d.id===u.id)??d;let c=a.find(u=>d.id===u.id);if(d.isTransient)this.transientProfilesObject.profiles.push(d);else if(c){for(let[u,m]of this.transientProfilesObject.emptyWindows.entries())if(d.id===m.id){this.transientProfilesObject.emptyWindows.delete(u),this.profilesObject.emptyWindows.set(u,d);break}}}d.workspaces?.length===0&&(d.workspaces=void 0),l.push(d)}this.updateStoredProfiles(l),r||this.triggerProfilesChanges(e,n,o)}triggerProfilesChanges(e,n,o){this._onDidChangeProfiles.fire({added:e,removed:n,updated:o,all:this.profiles})}updateEmptyWindowAssociation(e,n,o){o=n?.isTransient?!0:o,o?n?this.transientProfilesObject.emptyWindows.set(e,n):this.transientProfilesObject.emptyWindows.delete(e):(this.transientProfilesObject.emptyWindows.delete(e),n?this.profilesObject.emptyWindows.set(e,n):this.profilesObject.emptyWindows.delete(e))}updateStoredProfiles(e){let n=[],o={},r={};for(let s of e)if(!s.isTransient&&(s.isDefault||n.push({location:s.location,name:s.name,icon:s.icon,useDefaultFlags:s.useDefaultFlags}),s.workspaces))for(let a of s.workspaces)o[a.toString()]=s.id;for(let[s,a]of this.profilesObject.emptyWindows.entries())r[s.toString()]=a.id;this.saveStoredProfileAssociations({workspaces:o,emptyWindows:r}),this.saveStoredProfiles(n),this._profilesObject=void 0}getStoredProfiles(){return[]}saveStoredProfiles(e){throw new Error("not implemented")}getStoredProfileAssociations(){return{}}saveStoredProfileAssociations(e){throw new Error("not implemented")}getDefaultProfileExtensionsLocation(){}};Qx=D([C(0,_v),C(1,ga),C(2,jx),C(3,ne)],Qx);var R3="__$__isNewStorageMarker",Jx="__$__targetStorageMarker",nr=R("storageService");function A3(i){let t=i.get(Jx);if(t)try{return JSON.parse(t)}catch{}return Object.create(null)}var uA=class i extends U{constructor(e={flushInterval:i.DEFAULT_FLUSH_INTERVAL}){super();this._onDidChangeValue=this._register(new rs);this._onDidChangeTarget=this._register(new rs);this.onDidChangeTarget=this._onDidChangeTarget.event;this._onWillSaveState=this._register(new E);this.onWillSaveState=this._onWillSaveState.event;this.runFlushWhenIdle=this._register(new cn);this._workspaceKeyTargets=void 0;this._profileKeyTargets=void 0;this._applicationKeyTargets=void 0;this._applicationSharedKeyTargets=void 0;this.flushWhenIdleScheduler=this._register(new Jn(()=>this.doFlushWhenIdle(),e.flushInterval))}static{this.DEFAULT_FLUSH_INTERVAL=60*1e3}onDidChangeValue(e,n,o){return ye.filter(this._onDidChangeValue.event,r=>r.scope===e&&(n===void 0||r.key===n),o)}doFlushWhenIdle(){this.runFlushWhenIdle.value=U_(()=>{this.shouldFlushWhenIdle()&&this.flush(),this.flushWhenIdleScheduler.schedule()})}shouldFlushWhenIdle(){return!0}stopFlushWhenIdle(){kn([this.runFlushWhenIdle,this.flushWhenIdleScheduler])}initialize(){return this.initializationPromise||(this.initializationPromise=(async()=>{Wt("code/willInitStorage");try{await this.doInitialize()}finally{Wt("code/didInitStorage")}this.flushWhenIdleScheduler.schedule()})()),this.initializationPromise}emitDidChangeValue(e,n){let{key:o,external:r}=n;if(o===Jx){switch(e){case-2:this._applicationSharedKeyTargets=void 0;break;case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:o,target:this.getKeyTargets(e)[o],external:r})}emitWillSaveState(e){this._onWillSaveState.fire({reason:e})}get(e,n,o){return this.getStorage(n)?.get(e,o)}getBoolean(e,n,o){return this.getStorage(n)?.getBoolean(e,o)}getNumber(e,n,o){return this.getStorage(n)?.getNumber(e,o)}getObject(e,n,o){return this.getStorage(n)?.getObject(e,o)}storeAll(e,n){this.withPausedEmitters(()=>{for(let o of e)this.store(o.key,o.value,o.scope,o.target,n)})}store(e,n,o,r,s=!1){if(Ht(n)){this.remove(e,o,s);return}this.withPausedEmitters(()=>{this.updateKeyTarget(e,o,r),this.getStorage(o)?.set(e,n,s)})}remove(e,n,o=!1){this.withPausedEmitters(()=>{this.updateKeyTarget(e,n,void 0),this.getStorage(n)?.delete(e,o)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}keys(e,n){let o=[],r=this.getKeyTargets(e);for(let s of Object.keys(r))r[s]===n&&o.push(s);return o}updateKeyTarget(e,n,o,r=!1){let s=this.getKeyTargets(n);typeof o=="number"?s[e]!==o&&(s[e]=o,this.getStorage(n)?.set(Jx,JSON.stringify(s),r)):typeof s[e]=="number"&&(delete s[e],this.getStorage(n)?.set(Jx,JSON.stringify(s),r))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}get applicationSharedKeyTargets(){return this._applicationSharedKeyTargets||(this._applicationSharedKeyTargets=this.loadKeyTargets(-2)),this._applicationSharedKeyTargets}getKeyTargets(e){switch(e){case-2:return this.applicationSharedKeyTargets;case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){let n=this.getStorage(e);return n?A3(n):Object.create(null)}isNew(e){return this.getBoolean(R3,e)===!0}async flush(e=0){this._onWillSaveState.fire({reason:e});let n=this.getStorage(-1),o=this.getStorage(-2),r=this.getStorage(0),s=this.getStorage(1);switch(e){case 0:await Jr.settled([n?.whenFlushed()??Promise.resolve(),o?.whenFlushed()??Promise.resolve(),r?.whenFlushed()??Promise.resolve(),s?.whenFlushed()??Promise.resolve()]);break;case 1:await Jr.settled([n?.flush(0)??Promise.resolve(),o?.flush(0)??Promise.resolve(),r?.flush(0)??Promise.resolve(),s?.flush(0)??Promise.resolve()]);break}}async log(){let e=this.getStorage(-1)?.items??new Map,n=this.getStorage(-2)?.items??new Map,o=this.getStorage(0)?.items??new Map,r=this.getStorage(1)?.items??new Map;return M3(e,n,o,r,this.getLogDetails(-1)??"",this.getLogDetails(-2)??"",this.getLogDetails(0)??"",this.getLogDetails(1)??"")}async optimize(e){return await this.flush(),this.getStorage(e)?.optimize()}async switch(e,n){return this.emitWillSaveState(0),YH(e)?this.switchToProfile(e,n):this.switchToWorkspace(e,n)}canSwitchProfile(e,n){return!(e.id===n.id||ZH(n)&&ZH(e))}switchData(e,n,o){this.withPausedEmitters(()=>{let r=new Set;for(let[s,a]of e)r.add(s),n.get(s)!==a&&this.emitDidChangeValue(o,{key:s,external:!0});for(let[s]of n.items)r.has(s)||this.emitDidChangeValue(o,{key:s,external:!0})})}};function ZH(i){return i.isDefault||!!i.useDefaultFlags?.globalState}var Yx=class extends uA{constructor(){super();this.applicationStorage=this._register(new Vl(new Fc,{hint:1}));this.applicationSharedStorage=this._register(new Vl(new Fc,{hint:1}));this.profileStorage=this._register(new Vl(new Fc,{hint:1}));this.workspaceStorage=this._register(new Vl(new Fc,{hint:1}));this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e))),this._register(this.applicationSharedStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-2,e)))}getStorage(e){switch(e){case-2:return this.applicationSharedStorage;case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}getLogDetails(e){switch(e){case-2:return"inMemory (application-shared)";case-1:return"inMemory (application)";case 0:return"inMemory (profile)";default:return"inMemory (workspace)"}}async doInitialize(){}async switchToProfile(){}async switchToWorkspace(){}shouldFlushWhenIdle(){return!1}hasScope(e){return!1}};async function M3(i,t,e,n,o,r,s,a){let l=M=>{try{return JSON.parse(M)}catch{return M}},d=new Map,c=new Map;i.forEach((M,O)=>{d.set(O,M),c.set(O,l(M))});let u=new Map,m=new Map;t.forEach((M,O)=>{u.set(O,M),m.set(O,l(M))});let g=new Map,h=new Map;e.forEach((M,O)=>{g.set(O,M),h.set(O,l(M))});let f=new Map,I=new Map;n.forEach((M,O)=>{f.set(O,M),I.set(O,l(M))}),console.group(o!==s?`Storage: Application (path: ${o})`:`Storage: Application & Profile (path: ${o}, default profile)`);let x=[];d.forEach((M,O)=>{x.push({key:O,value:M})}),console.table(x),console.groupEnd(),console.log(c),console.group(`Storage: Application Shared (path: ${r})`);let T=[];if(u.forEach((M,O)=>{T.push({key:O,value:M})}),console.table(T),console.groupEnd(),console.log(m),o!==s){console.group(`Storage: Profile (path: ${s}, profile specific)`);let M=[];g.forEach((O,N)=>{M.push({key:N,value:O})}),console.table(M),console.groupEnd(),console.log(h)}console.group(`Storage: Workspace (path: ${a})`);let w=[];f.forEach((M,O)=>{w.push({key:O,value:M})}),console.table(w),console.groupEnd(),console.log(I)}var vs=R("telemetryService");var ece=R("customEndpointTelemetryService");var Xx="__";function eV(i){return typeof i=="object"&&i!==null&&"wwwAuthenticate"in i&&typeof i.wwwAuthenticate=="string"}var tV=R("IAuthenticationService");var oce=R("IAuthenticationExtensionsService");var nV=R("openerService");var Gp=_v;var oV=R("lifecycleService");var Wn=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return aV(t,this)}},rV=new Map,pA=new WeakMap;function aV(i,t){let e=pA.get(i);if(e)return e;let n=L3(i,t);if(n){let o=rV.get(n)??0;o++,rV.set(n,o);let r=o===1?n:`${n}#${o}`;return pA.set(i,r),r}}function L3(i,t){let e=pA.get(i);if(e)return e;let n=t.owner?N3(t.owner)+".":"",o,r=t.debugNameSource;if(r!==void 0)if(typeof r=="function"){if(o=r(),o!==void 0)return n+o}else return n+r;let s=t.referenceFn;if(s!==void 0&&(o=Rv(s),o!==void 0))return n+o;if(t.owner!==void 0){let a=O3(t.owner,i);if(a!==void 0)return n+a}}function O3(i,t){for(let e in i)if(i[e]===t)return e}var iV=new Map,sV=new WeakMap;function N3(i){let t=sV.get(i);if(t)return t;let e=mA(i)??"Object",n=iV.get(e)??0;n++,iV.set(e,n);let o=n===1?e:`${e}#${n}`;return sV.set(i,o),o}function mA(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function Rv(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function Bo(i,t){return i===t}function U3(){return(i,t)=>i===t}function gA(i,t,e){return an(i,t,e??Bo)}function F3(i){return(t,e)=>an(t,e,i??Bo)}function Qp(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(!Qp(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,o=Object.keys(e),r=Object.keys(n),s=new Set(r);if(o.length!==r.length)return!1;for(let a of o)if(!s.has(a)||!Qp(e[a],n[a]))return!1;return!0}return!1}function H3(){return(i,t)=>Qp(i,t)}function V3(i,t){return JSON.stringify(i)===JSON.stringify(t)}function W3(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function B3(){return(i,t)=>i.equals(t)}function $3(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function z3(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var q3;(u=>(u.strict=Bo,u.strictC=U3,u.array=gA,u.arrayC=F3,u.structural=Qp,u.structuralC=H3,u.jsonStringify=V3,u.jsonStringifyC=W3,u.thisC=B3,u.ifDefined=$3,u.ifDefinedC=z3))(q3||={});function fA(i){let t=new Error("BugIndicatingErrorRecovery: "+i);Qe(t),console.error("recovered from an error that indicates a bug",t)}var Hc;function Av(i){Hc?Hc instanceof Zx?Hc.loggers.push(i):Hc=new Zx([Hc,i]):Hc=i}function en(){return Hc}var hA;function lV(i){hA=i}function dV(i){hA&&hA(i)}var Zx=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 o of this.loggers)o.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 o of this.loggers)o.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 Bl(i,t){let e=new Wl(i,t);try{i(e)}finally{e.finish()}}function vA(i,t,e){i?t(i):Bl(t,e)}var Wl=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];en()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():Rv(this._fn)}updateObserver(t,e){if(!this._updatingObservers){fA("Transaction already finished!"),Bl(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){fA("transaction.finish() has already been called!");return}for(let e=0;e<t.length;e++){let{observer:n,observable:o}=t[e];n.endUpdate(o)}this._updatingObservers=null,en()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var Cn;(n=>{let i=!1;function t(){i=!0}n.enable=t;function e(){if(!i)return;let o=Error,r=o.stackTraceLimit;o.stackTraceLimit=3;let s=new Error().stack;return o.stackTraceLimit=r,bA.fromStack(s,2)}n.ofCaller=e})(Cn||={});var bA=class i{constructor(t,e,n,o){this.fileName=t;this.line=e;this.column=n;this.id=o}static fromStack(t,e){let n=t.split(`
`),o=K3(n[e+1]);if(o)return new i(o.fileName,o.line,o.column,o.id)}};function K3(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 yA;function cV(i){yA=i}var uV;function pV(i){uV=i}var mV;function gV(i){mV=i}var IA;function fV(i){IA=i}var Mv=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=Cn.ofCaller()){let o=e===void 0?void 0:t,r=e===void 0?t:e;return yA({owner:o,debugName:()=>{let s=Rv(r);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(r.toString());if(l)return`${this.debugName}.${l[2]}`;if(!o)return`${this.debugName} (mapped)`},debugReferenceFn:r},s=>r(this.read(s),s),n)}flatten(){return yA({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(uV(this,e)),this}keepObserved(t){return t.add(mV(this)),this}get debugValue(){return this.get()}get debug(){return new xA(this)}},xA=class{constructor(t){this.observable=t}getDependencyGraph(){return IA(this.observable,{type:"dependencies"})}getObserverGraph(){return IA(this.observable,{type:"observers"})}},Or=class extends Mv{constructor(e){super();this._observers=new Set;en()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&en()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&en()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!en();return dV(this),e||en()?.handleObservableCreated(this,Cn.ofCaller()),this}debugGetObservers(){return this._observers}};function _n(i,t,e=Cn.ofCaller()){let n;return typeof i=="string"?n=new Wn(void 0,i,void 0):n=new Wn(i,void 0,void 0),new bs(n,t,Bo,e)}var bs=class extends Or{constructor(e,n,o,r){super(r);this._debugNameData=e;this._equalityComparator=o;this._value=n,en()?.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,o){if(o===void 0&&this._equalityComparator(this._value,e))return;let r;n||(n=r=new Wl(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),en()?.handleObservableUpdated(this,{oldValue:s,newValue:e,change:o,didChange:!0,hadValue:!0});for(let a of this._observers)n.updateObserver(a,this),a.handleChange(this,o)}finally{r&&r.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}};var eS=class extends Or{constructor(e,n,o,r){super(r);this._debugNameData=e;this._equalityComparator=o;this._isUpToDate=!0;this._deltas=[];this._updateCounter=0;this._value=n}get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(let e of this._deltas){en()?.handleObservableUpdated(this,{change:e,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(let n of this._observers)n.handleChange(this,e)}this._deltas.length=0}else{en()?.handleObservableUpdated(this,{change:void 0,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(let e of this._observers)e.handleChange(this,void 0)}}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(let e of this._observers)e.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();let e=[...this._observers];for(let n of e)n.endUpdate(this)}}addObserver(e){let n=!this._observers.has(e)&&this._updateCounter>0;super.addObserver(e),n&&e.beginUpdate(this)}removeObserver(e){let n=this._observers.has(e)&&this._updateCounter>0;super.removeObserver(e),n&&e.endUpdate(this)}set(e,n,o){if(o===void 0&&this._equalityComparator(this._value,e))return;let r;n||(n=r=new Wl(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(e),o!==void 0&&this._deltas.push(o),n.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(s,a)=>{},handlePossibleChange:s=>{}},this),this._updateCounter>1)for(let s of this._observers)s.handlePossibleChange(this)}finally{r&&r.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}};function Ia(i,t,e=Cn.ofCaller()){return i.lazy?new eS(new Wn(i.owner,i.debugName,void 0),t,i.equalsFn??Bo,e):new bs(new Wn(i.owner,i.debugName,void 0),t,i.equalsFn??Bo,e)}function j3(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var xa=class{constructor(t,e,n,o){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),en()?.handleAutorunCreated(this,o),this._run(),fl(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(),en()?.handleAutorunDisposed(this),hl(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){en()?.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(o){cl(o)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||en()?.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--}kh(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){en()?.handleAutorunDependencyChanged(this,t,e);try{(!this._changeTracker||this._changeTracker.handleChange({changedObservable:t,change:e,didChange:o=>o===t},this._changeSummary))&&(this._checkIterations(),this._state=2)}catch(n){cl(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new Rt("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 Rt("Cannot access store after dispose");return this._store===void 0&&(this._store=new z),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new Rt("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new z),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:j3(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?(cl(new Rt(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function Eo(i,t=Cn.ofCaller()){return new xa(new Wn(void 0,void 0,i),i,void 0,t)}function SA(i,t,e=Cn.ofCaller()){let n,o=!1;n=Eo(r=>{t({delayedStore:r.delayedStore,store:r.store,readObservable:r.readObservable.bind(r),dispose:()=>{n?i.delete(n):o=!0}})},e),o?n.dispose():i.add(n)}function G3(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Xn=class extends Or{constructor(e,n,o,r=void 0,s,a){super(a);this._debugNameData=e;this._computeFn=n;this._changeTracker=o;this._handleLastObserverRemoved=r;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,en()?.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 o;this._changeTracker&&(o=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,o)),n=this._computeFn(this,o)}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 o=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,o),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(o));let r=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,o)}finally{this._isReaderValid=!1;for(let l of this._dependenciesToBeRemoved)l.removeObserver(this);this._dependenciesToBeRemoved.clear(),a!==void 0&&a.dispose()}e=this._didReportChange||r&&!this._equalityComparator(s,this._value),en()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:r})}catch(o){cl(o)}if(this._isComputing=!1,!this._didReportChange&&e)for(let o of this._observers)o.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new Rt("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 o of this._observers)o.handlePossibleChange(this);if(n)for(let o of this._observers)o.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){let n=[...this._observers];for(let o of n)o.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){let o=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(let r of o)r.endUpdate(this)}}kh(()=>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){en()?.handleDerivedDependencyChanged(this,e,n);let o=!1;try{o=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:n,didChange:s=>s===e},this._changeSummary):!0}catch(s){cl(s)}let r=this._state===3;if(o&&(this._state===1||r)&&(this._state=2,r))for(let s of this._observers)s.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new Rt("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 z),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new z),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:G3(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,o){this._value=e;let r=this._observers;n.updateObserver(this,this);for(let s of r)s.handleChange(this,o)}};function Sa(i,t,e=Cn.ofCaller()){return t!==void 0?new Xn(new Wn(i,void 0,t),t,void 0,void 0,Bo,e):new Xn(new Wn(void 0,void 0,i),i,void 0,void 0,Bo,e)}function Lv(i,t,e=Cn.ofCaller()){return new Xn(new Wn(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??Bo,e)}cV(Lv);function wo(...i){let t,e,n,o;return i.length===2?[e,n]=i:[t,e,n,o]=i,new ti(new Wn(t,void 0,n),e,n,()=>ti.globalTransaction,Bo,o??Cn.ofCaller())}var ti=class extends Or{constructor(e,n,o,r,s,a){super(a);this._debugNameData=e;this.event=n;this._getValue=o;this._getTransaction=r;this._equalityComparator=s;this._hasValue=!1;this.handleEvent=e=>{let n=this._getValue(e),o=this._value,r=!this._hasValue||!this._equalityComparator(o,n),s=!1;r&&(this._value=n,this._hasValue&&(s=!0,vA(this._getTransaction(),a=>{en()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:r,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||en()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:r,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=ti;function t(n,o){let r=!1;ti.globalTransaction===void 0&&(ti.globalTransaction=n,r=!0);try{o()}finally{r&&(ti.globalTransaction=void 0)}}e.batchEventsGlobally=t})(wo||={});function hV(i){let t=new tS(!1,void 0);return i.addObserver(t),Q(()=>{i.removeObserver(t)})}gV(hV);function vV(i,t){let e=new tS(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return Q(()=>{i.removeObserver(e)})}pV(vV);var tS=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){}};function TA(i){return new CA(i)}var CA=class extends Mv{constructor(e){super();this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}log(){return this}toString(){return`Const: ${this.value}`}};function Ov(i,t,e=Cn.ofCaller()){return new EA(typeof i=="string"?i:new Wn(i,void 0,void 0),t,e)}var EA=class extends Or{constructor(e,n,o){super(o);this.event=n;this.handleEvent=()=>{Bl(e=>{for(let n of this._observers)e.updateObserver(n,this),n.handleChange(this,void 0)},()=>this.debugName)};this.debugName=typeof e=="string"?e:e.getDebugName(this)??"Observable Signal From Event"}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}};var nS;function bV(i){nS||(nS=new Nv,Av(nS)),nS.addFilteredObj(i)}var Nv=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 e6([Jp(o6("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[Jp(" "),ni(Nr(t.oldValue,70),{color:"red",strikeThrough:!0}),Jp(" "),ni(Nr(t.newValue,60),{color:"green"})]:[Jp(" (unchanged)")]:[Jp(" "),ni(Nr(t.newValue,60),{color:"green"}),Jp(" (initial)")]}handleObservableCreated(t){if(t instanceof Xn){let e=t;if(this.changedObservablesSets.set(e,new Set),!1){let o=[];e.__debugUpdating=o;let r=e.beginUpdate;e.beginUpdate=a=>(o.push(a),r.apply(e,[a]));let s=e.endUpdate;e.endUpdate=a=>{let l=o.indexOf(a);return l===-1&&console.error("endUpdate called without beginUpdate",e.debugName,a.debugName),o.splice(l,1),s.apply(e,[a])}}}}handleOnListenerCountChanged(t,e){}handleObservableUpdated(t,e){if(this._isIncluded(t)){if(t instanceof Xn){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Yp("observable value changed"),ni(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return ni(" (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([Yp("derived recomputed"),ni(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([Yp("derived cleared"),ni(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Yp("observable from event triggered"),ni(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([Yp("autorun"),ni(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([Yp("transaction"),ni(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function e6(i){let t=new Array,e=[],n="";function o(s){if("length"in s)for(let a of s)a&&o(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)}o(i);let r=[n,...t];return r.push(...e),r}function Jp(i){return ni(i,{color:"black"})}function Yp(i){return ni(r6(`${i}: `,10),{color:"black",bold:!0})}function ni(i,t={color:"black"}){function e(o){return Object.entries(o).reduce((r,[s,a])=>`${r}${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 Nr(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)?t6(i,t):n6(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function t6(i,t){let e="[ ",n=!0;for(let o of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${Nr(o,t-e.length)}`}return e+=" ]",e}function n6(i,t){if(typeof i.toString=="function"&&i.toString!==Object.prototype.toString){let r=i.toString();return r.length<=t?r:r.substring(0,t-3)+"..."}let e=mA(i),n=e?e+"(":"{ ",o=!0;for(let[r,s]of Object.entries(i)){if(o||(n+=", "),n.length-5>t){n+="...";break}o=!1,n+=`${r}: ${Nr(s,t-n.length)}`}return n+=e?")":" }",n}function o6(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function r6(i,t){for(;i.length<t;)i+=" ";return i}var oS=class i{constructor(t,e){this._channelFactory=t;this._getHandler=e;this._channel=this._channelFactory({handleNotification:r=>{let s=r,a=this._getHandler().notifications[s[0]];if(!a)throw new Error(`Unknown notification "${s[0]}"!`);a(...s[1])},handleRequest:r=>{let s=r;try{return{type:"result",value:this._getHandler().requests[s[0]](...s[1])}}catch(a){return{type:"error",value:a}}}});let n=new Proxy({},{get:(r,s)=>async(...a)=>{let l=await this._channel.sendRequest([s,a]);if(l.type==="error")throw l.value;return l.value}}),o=new Proxy({},{get:(r,s)=>(...a)=>{this._channel.sendNotification([s,a])}});this.api={notifications:o,requests:n}}static createHost(t,e){return new i(t,e)}static createClient(t,e){return new i(t,e)}};function yV(i,t){let e=globalThis,n=[],o,{channel:r,handler:s}=i6({sendNotification:l=>{o?o.sendNotification(l):n.push(l)}}),a;return(e.$$debugValueEditor_debugChannels??(e.$$debugValueEditor_debugChannels={}))[i]=l=>{a=t(),o=l;for(let d of n)l.sendNotification(d);return n=[],s},oS.createClient(r,()=>{if(!a)throw new Error("Not supported");return a})}function i6(i){let t;return{channel:n=>(t=n,{sendNotification:o=>{i.sendNotification(o)},sendRequest:o=>{throw new Error("not supported")}}),handler:{handleRequest:n=>n.type==="notification"?t?.handleNotification(n.data):t?.handleRequest(n.data)}}}var rS=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 wA(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?wA(i[e],t[e]):i[e]=t[e]}function kA(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"?kA(i[e],t[e]):i[e]=t[e]}var iS=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=yV("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(xo)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(xo),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(xo)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(xo)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof Xn)n.debugSetValue(e);else if(n instanceof bs)n.debugSetValue(e);else if(n instanceof ti)n.debugSetValue(e);else throw new Rt("Observable is not supported");let o=[...n.debugGetObservers()];for(let r of o)r.beginUpdate(n);for(let r of o)r.handleChange(n,void 0);for(let r of o)r.endUpdate(n)},getValue:t=>{let e=this._aliveInstances.get(t);if(e instanceof Xn)return Nr(e.debugGetState().value,200);if(e instanceof bs)return Nr(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 Rt("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof Xn)e.debugRecompute();else if(e instanceof xa)e.debugRerun();else throw new Rt("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new rS;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};Cn.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(r=>r.debugGetUpdatingObservers()??[]).map(r=>r.observer),o=new Set;for(;n.length>0;){let r=n.shift();if(o.has(r))continue;o.add(r);let s=this._getInfo(r,a=>{o.has(a)||n.push(a)});s&&t.push(s)}return{names:e.map(r=>r.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){let e=this._instanceInfos.get(t);if(!e){Qe(new Rt("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){Qe(new Rt("No info found"));return}return e}_getInfo(t,e){if(t instanceof Xn){let n=[...t.debugGetObservers()];for(let l of n)e(l);let o=this._getObservableInfo(t);if(!o)return;let r=t.debugGetState(),s={name:t.debugName,instanceId:o.instanceId,updateCount:r.updateCount},a=[...o.changedObservables].map(l=>this._instanceInfos.get(l)?.instanceId).filter(xo);if(r.isComputing)return{...s,type:"observable/derived",state:"updating",changedDependencies:a,initialComputation:!1};switch(r.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 xa){let n=this._getAutorunInfo(t);if(!n)return;let o={name:t.debugName,instanceId:n.instanceId,updateCount:n.updateCount},r=[...n.changedObservables].map(s=>this._instanceInfos.get(s).instanceId);if(t.debugGetState().isRunning)return{...o,type:"autorun",state:"updating",changedDependencies:r};switch(t.debugGetState().state){case 3:return{...o,type:"autorun",state:"upToDate"};case 2:return{...o,type:"autorun",state:"stale",changedDependencies:r};case 1:return{...o,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 Xn)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){kA(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:wA(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 o={declarationId:this._getDeclarationId("observable/value",e),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o)}handleOnListenerCountChanged(t,e){let n=this._getObservableInfo(t);if(n){if(n.listenerCount===0&&e>0){let o=t instanceof Xn?"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:o,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 Xn){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=Nr(e.newValue,30),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:n.lastValue}}}))}handleAutorunCreated(t,e){let o={declarationId:this._getDeclarationId("autorun",e),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,o),this._aliveInstances.set(o.instanceId,t),o&&this._handleChange({instances:{[o.instanceId]:{instanceId:o.instanceId,declarationId:o.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 o=this._getAutorunInfo(t);o&&o.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 o=this._getObservableInfo(t);o&&o.changedObservables.add(e)}_handleDerivedRecomputed(t,e){let n=this._getObservableInfo(t);if(!n)return;let o=Nr(e.newValue,30);n.updateCount++,n.changedObservables.clear(),n.lastValue=o,n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:o,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 IV(i,t){let e=t?.debugNamePostProcessor??(r=>r),n=Vc.from(i,e);if(!n)return"";let o=new Set;return t.type==="observers"?SV(n,0,o,t).trim():xV(n,0,o,t).trim()}function xV(i,t,e,n){let o="		".repeat(t),r=[];if(e.has(i.sourceObj))return r.push(`${o}* ${i.type} ${i.name} (already listed)`),r.join(`
`);if(e.add(i.sourceObj),r.push(`${o}* ${i.type} ${i.name}:`),r.push(`${o}  value: ${Nr(i.value,50)}`),r.push(`${o}  state: ${i.state}`),i.dependencies.length>0){r.push(`${o}  dependencies:`);for(let a of i.dependencies){let l=Vc.from(a,n.debugNamePostProcessor??(d=>d))??Vc.unknown(a);r.push(xV(l,t+1,e,n))}}return r.join(`
`)}function SV(i,t,e,n){let o="		".repeat(t),r=[];if(e.has(i.sourceObj))return r.push(`${o}* ${i.type} ${i.name} (already listed)`),r.join(`
`);if(e.add(i.sourceObj),r.push(`${o}* ${i.type} ${i.name}:`),r.push(`${o}  value: ${Nr(i.value,50)}`),r.push(`${o}  state: ${i.state}`),i.observers.length>0){r.push(`${o}  observers:`);for(let a of i.observers){let l=Vc.from(a,n.debugNamePostProcessor??(d=>d))??Vc.unknown(a);r.push(SV(l,t+1,e,n))}}return r.join(`
`)}var Vc=class i{constructor(t,e,n,o,r,s,a){this.sourceObj=t;this.name=e;this.type=n;this.value=o;this.state=r;this.dependencies=s;this.observers=a}static from(t,e){if(t instanceof xa){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof Xn){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 bs){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof ti){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",[],[])}};fV(IV);lV(bV);var l6=!1;l6&&Av(new Nv);oo&&oo.VSCODE_DEV_DEBUG_OBSERVABLES&&Av(iS.getInstance());var sS=R("defaultAccountService");var Ie;(a=>(a.Setup={hidden:new k("chatSetupHidden",!1,!0),installed:new k("chatSetupInstalled",!1,!0),disabled:new k("chatSetupDisabled",!1,!0),disabledInWorkspace:new k("chatSetupDisabledInWorkspace",!1,!0),untrusted:new k("chatSetupUntrusted",!1,!0),later:new k("chatSetupLater",!1,!0),registered:new k("chatSetupRegistered",!1,!0),completed:new k("chatSetupCompleted",!1,!0)},a.Entitlement={signedOut:new k("chatEntitlementSignedOut",!1,!0),canSignUp:new k("chatPlanCanSignUp",!1,!0),planFree:new k("chatPlanFree",!1,!0),planPro:new k("chatPlanPro",!1,!0),planEdu:new k("chatPlanEdu",!1,!0),planProPlus:new k("chatPlanProPlus",!1,!0),planMax:new k("chatPlanMax",!1,!0),planBusiness:new k("chatPlanBusiness",!1,!0),planEnterprise:new k("chatPlanEnterprise",!1,!0),organisations:new k("chatEntitlementOrganisations",void 0,!0),internal:new k("chatEntitlementInternal",!1,!0),sku:new k("chatEntitlementSku",void 0,!0)},a.chatQuotaExceeded=new k("chatQuotaExceeded",!1,!0),a.completionsQuotaExceeded=new k("completionsQuotaExceeded",!1,!0),a.chatAnonymous=new k("chatAnonymous",!1,!0),a.clientByokEnabled=new k("github.copilot.clientByokEnabled",!0,!0),a.hasByokModels=new k("github.copilot.hasByokModels",!1,!0)))(Ie||={});var d6=R("chatEntitlementService");function c6(i){return i===10||i===6||i===7||i===11||i===8||i===9}var aS={upgradePlanUrl:Xo.defaultChatAgent?.upgradePlanUrl??"",providerUriSetting:Xo.defaultChatAgent?.providerUriSetting??"",entitlementSignupLimitedUrl:Xo.defaultChatAgent?.entitlementSignupLimitedUrl??"",chatQuotaExceededContext:Xo.defaultChatAgent?.chatQuotaExceededContext??"",completionsQuotaExceededContext:Xo.defaultChatAgent?.completionsQuotaExceededContext??""},EV="chat.allowAnonymousAccess";function _A(i,t,e){return!(i.getValue(EV)!==!0||t!==1||e.hidden||e.disabledInWorkspace)}function wV(i,t,e){e.publicLog2("chatEntitlements",{chatHidden:!!i.hidden,chatDisabled:!!i.disabled,chatEntitlement:i.entitlement,chatRegistered:!!i.registered,chatAnonymous:_A(t,i.entitlement,i)})}var Ca=class extends U{constructor(e,n,o,r,s,a,l,d){super();this.contextKeyService=r;this.configurationService=s;this.telemetryService=a;this.logService=l;this.storageService=d;this._onDidChangeQuotaExceeded=this._register(new E);this.onDidChangeQuotaExceeded=this._onDidChangeQuotaExceeded.event;this._onDidChangeQuotaRemaining=this._register(new E);this.onDidChangeQuotaRemaining=this._onDidChangeQuotaRemaining.event;this._onDidChangeUsageBasedBilling=this._register(new E);this.onDidChangeUsageBasedBilling=this._onDidChangeUsageBasedBilling.event;this.ExtensionQuotaContextKeys={chatQuotaExceeded:aS.chatQuotaExceededContext,completionsQuotaExceeded:aS.completionsQuotaExceededContext};this._onDidChangeAnonymous=this._register(new E);this.onDidChangeAnonymous=this._onDidChangeAnonymous.event;this.anonymousObs=wo(this.onDidChangeAnonymous,()=>this.anonymous);let c=this.storageService.getBoolean(Ca.CACHED_UBB_STORAGE_KEY,0);if(this._quotas=c!==void 0?{usageBasedBilling:c}:{},this.chatQuotaExceededContextKey=Ie.chatQuotaExceeded.bindTo(this.contextKeyService),this.completionsQuotaExceededContextKey=Ie.completionsQuotaExceeded.bindTo(this.contextKeyService),this.anonymousContextKey=Ie.chatAnonymous.bindTo(this.contextKeyService),this.anonymousContextKey.set(this.anonymous),this.contextKeyService.getContextKeyValue(Ie.clientByokEnabled.key)===void 0&&Ie.clientByokEnabled.bindTo(this.contextKeyService),this.onDidChangeEntitlement=ye.map(ye.filter(this.contextKeyService.onDidChangeContext,m=>m.affectsSome(new Set([Ie.Entitlement.planEdu.key,Ie.Entitlement.planPro.key,Ie.Entitlement.planBusiness.key,Ie.Entitlement.planEnterprise.key,Ie.Entitlement.planProPlus.key,Ie.Entitlement.planMax.key,Ie.Entitlement.planFree.key,Ie.Entitlement.canSignUp.key,Ie.Entitlement.signedOut.key,Ie.Entitlement.organisations.key,Ie.Entitlement.internal.key,Ie.Entitlement.sku.key])),this._store),()=>{},this._store),this.entitlementObs=wo(this.onDidChangeEntitlement,()=>this.entitlement),this.onDidChangeSentiment=ye.map(ye.filter(this.contextKeyService.onDidChangeContext,m=>m.affectsSome(new Set([Ie.Setup.completed.key,Ie.Setup.hidden.key,Ie.Setup.disabled.key,Ie.Setup.untrusted.key,Ie.Setup.installed.key,Ie.Setup.later.key,Ie.Setup.registered.key])),this._store),()=>{},this._store),this.sentimentObs=wo(this.onDidChangeSentiment,()=>this.sentiment),pr&&!o.remoteAuthority&&!o.isSessionsWindow){Ie.Setup.hidden.bindTo(this.contextKeyService).set(!0);return}if(!n.defaultChatAgent)return;let u=this.context=new pt(()=>this._register(e.createInstance(Ur)));this.requests=new pt(()=>this._register(e.createInstance(Uv,u.value,{clearQuotas:()=>this.clearQuotas(),acceptQuotas:m=>this.acceptQuotas(m)}))),this.registerListeners()}static{this.CACHED_UBB_STORAGE_KEY="chat.usageBasedBilling"}get entitlement(){return this.contextKeyService.getContextKeyValue(Ie.Entitlement.planEdu.key)===!0?10:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planPro.key)===!0?6:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planBusiness.key)===!0?8:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planEnterprise.key)===!0?9:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planProPlus.key)===!0?7:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planMax.key)===!0?11:this.contextKeyService.getContextKeyValue(Ie.Entitlement.planFree.key)===!0?5:this.contextKeyService.getContextKeyValue(Ie.Entitlement.canSignUp.key)===!0?3:this.contextKeyService.getContextKeyValue(Ie.Entitlement.signedOut.key)===!0?1:2}get isInternal(){return this.contextKeyService.getContextKeyValue(Ie.Entitlement.internal.key)===!0}get organisations(){return this.contextKeyService.getContextKeyValue(Ie.Entitlement.organisations.key)}get sku(){return this.contextKeyService.getContextKeyValue(Ie.Entitlement.sku.key)}get copilotTrackingId(){return this.context?.value.state.copilotTrackingId}get previewFeaturesDisabled(){return this.contextKeyService.getContextKeyValue("github.copilot.previewFeaturesDisabled")===!0}get clientByokEnabled(){return this.contextKeyService.getContextKeyValue("github.copilot.clientByokEnabled")===!0}get hasByokModels(){return this.contextKeyService.getContextKeyValue("github.copilot.hasByokModels")===!0}get quotas(){return this._quotas}registerListeners(){let e=new Set([this.ExtensionQuotaContextKeys.chatQuotaExceeded,this.ExtensionQuotaContextKeys.completionsQuotaExceeded]),n=this._register(new cn);this._register(this.contextKeyService.onDidChangeContext(s=>{s.affectsSome(e)&&(n.value&&n.value.cancel(),n.value=new ke,this.update(n.value.token))}));let o=this.anonymous,r=()=>{let s=this.anonymous;s!==o&&(o=s,this.anonymousContextKey.set(s),this.context?.hasValue&&wV(this.context.value.state,this.configurationService,this.telemetryService),this._onDidChangeAnonymous.fire())};this._register(this.configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration(EV)&&r()})),this._register(this.onDidChangeEntitlement(()=>r())),this._register(this.onDidChangeSentiment(()=>r()))}acceptQuotas(e){let n=this._quotas;this._quotas=e,this.updateContextKeys(),n.usageBasedBilling!==e.usageBasedBilling&&(e.usageBasedBilling!==void 0?this.storageService.store(Ca.CACHED_UBB_STORAGE_KEY,e.usageBasedBilling,0,1):this.storageService.remove(Ca.CACHED_UBB_STORAGE_KEY,0)),this.logService.getLevel()===1&&this.logService.trace(`[chat entitlement]: acceptQuotas: ${JSON.stringify(e)}`);let{changed:o}=this.compareQuotas(n.chat,e.chat),{changed:r}=this.compareQuotas(n.completions,e.completions),{changed:s}=this.compareQuotas(n.premiumChat,e.premiumChat);(o.exceeded||r.exceeded||s.exceeded)&&this._onDidChangeQuotaExceeded.fire();let a=n.sessionRateLimit?.percentRemaining!==e.sessionRateLimit?.percentRemaining,l=n.weeklyRateLimit?.percentRemaining!==e.weeklyRateLimit?.percentRemaining;(o.remaining||r.remaining||s.remaining||a||l||n.usageBasedBilling!==e.usageBasedBilling)&&this._onDidChangeQuotaRemaining.fire(),n.usageBasedBilling!==e.usageBasedBilling&&this._onDidChangeUsageBasedBilling.fire(),n.additionalUsageEnabled!==void 0&&e.additionalUsageEnabled!==void 0&&n.additionalUsageEnabled!==e.additionalUsageEnabled&&this.telemetryService.publicLog2("chatAdditionalSpendConfiguration",{enabled:e.additionalUsageEnabled??!1,entitlement:this.entitlement}),e.additionalUsageEnabled&&e.premiumChat?.percentRemaining===0&&n.premiumChat?.percentRemaining!==void 0&&n.premiumChat.percentRemaining>0&&this.telemetryService.publicLog2("chatAdditionalSpendActive",{entitlement:this.entitlement,additionalUsageCount:e.additionalUsageCount??0})}compareQuotas(e,n){return{changed:{exceeded:e?.percentRemaining===0!=(n?.percentRemaining===0),remaining:e?.percentRemaining!==n?.percentRemaining||e?.usageBasedBilling!==n?.usageBasedBilling}}}clearQuotas(){this.acceptQuotas({})}updateContextKeys(){let e=this._quotas.chat?.percentRemaining===0,n=this._quotas.premiumChat?.unlimited?this._quotas.premiumChat.hasQuota===!1:this._quotas.premiumChat?.percentRemaining===0,o=this._quotas.additionalUsageEnabled??!1,r=this.entitlement===8||this.entitlement===9;this.chatQuotaExceededContextKey.set(e||n&&(r||!o)),this.completionsQuotaExceededContextKey.set(this._quotas.completions?.percentRemaining===0)}get sentiment(){return{completed:this.contextKeyService.getContextKeyValue(Ie.Setup.completed.key)===!0,installed:this.contextKeyService.getContextKeyValue(Ie.Setup.installed.key)===!0,hidden:this.contextKeyService.getContextKeyValue(Ie.Setup.hidden.key)===!0,disabledInWorkspace:this.contextKeyService.getContextKeyValue(Ie.Setup.disabledInWorkspace.key)===!0,disabled:this.contextKeyService.getContextKeyValue(Ie.Setup.disabled.key)===!0,untrusted:this.contextKeyService.getContextKeyValue(Ie.Setup.untrusted.key)===!0,later:this.contextKeyService.getContextKeyValue(Ie.Setup.later.key)===!0,registered:this.contextKeyService.getContextKeyValue(Ie.Setup.registered.key)===!0}}get anonymous(){return _A(this.configurationService,this.entitlement,this.sentiment)}markAnonymousRateLimited(){this.anonymous&&(this.chatQuotaExceededContextKey.set(!0),this._onDidChangeQuotaExceeded.fire())}markSetupCompleted(){this.context?.value.update({completed:!0})}setForceHidden(e){this.context?this.context.value.setForceHidden(e):Ie.Setup.hidden.bindTo(this.contextKeyService).set(e)}async update(e){await this.requests?.value.forceResolveEntitlement(e)}};Ca=D([C(0,Yo),C(1,hs),C(2,Gp),C(3,Ir),C(4,Gt),C(5,vs),C(6,ne),C(7,nr)],Ca);function u6(i){let t={resetDate:i.quota_reset_date_utc??i.quota_reset_date??i.limited_user_reset_date,resetDateHasTime:typeof i.quota_reset_date_utc=="string",usageBasedBilling:i.token_based_billing,canUpgradePlan:i.can_upgrade_plan};if(i.monthly_quotas?.chat&&typeof i.limited_user_quotas?.chat=="number"&&(t.chat={percentRemaining:Math.min(100,Math.max(0,i.limited_user_quotas.chat/i.monthly_quotas.chat*100)),unlimited:!1}),i.monthly_quotas?.completions&&typeof i.limited_user_quotas?.completions=="number"&&(t.completions={percentRemaining:Math.min(100,Math.max(0,i.limited_user_quotas.completions/i.monthly_quotas.completions*100)),unlimited:!1}),i.quota_snapshots){for(let n of["chat","completions","premium_interactions"]){let o=i.quota_snapshots[n];if(!o)continue;let r=o.entitlement!==void 0?Number(o.entitlement):void 0;if(!o.unlimited&&r===0)continue;let s=o.quota_remaining!==void 0?Number(o.quota_remaining):void 0,a={percentRemaining:Math.min(100,Math.max(0,o.percent_remaining)),unlimited:o.unlimited,hasQuota:o.has_quota,usageBasedBilling:i.token_based_billing,resetAt:o.quota_reset_at||void 0,entitlement:r!==void 0&&Number.isFinite(r)&&r>=0?r:void 0,quotaRemaining:s!==void 0&&Number.isFinite(s)&&s>=0?s:void 0};switch(n){case"chat":t.chat=a;break;case"completions":t.completions=a;break;case"premium_interactions":t.premiumChat=a;break}}let e=i.quota_snapshots.premium_interactions;t.additionalUsageEnabled=e?.overage_permitted??!1,t.additionalUsageCount=e?.overage_count??0,t.additionalUsageEntitlement=e?.overage_entitlement??0}return t}var Uv=class extends U{constructor(e,n,o,r,s,a,l,d,c,u){super();this.context=e;this.chatQuotasAccessor=n;this.telemetryService=o;this.logService=r;this.requestService=s;this.dialogService=a;this.openerService=l;this.lifecycleService=d;this.defaultAccountService=c;this.authenticationService=u;this.pendingResolveCts=new ke;this.state={entitlement:this.context.state.entitlement},this.registerListeners(),this.resolve()}registerListeners(){this._register(this.defaultAccountService.onDidChangeDefaultAccount(()=>this.resolve())),this._register(this.context.onDidChange(()=>{(this.context.state.disabled||this.context.state.entitlement===1)&&(this.state={entitlement:this.state.entitlement,quotas:void 0},this.chatQuotasAccessor.clearQuotas())}))}async resolve(){this.pendingResolveCts.dispose(!0);let e=this.pendingResolveCts=new ke,n=await this.defaultAccountService.getDefaultAccount();if(e.token.isCancellationRequested)return;let o;n?this.state.entitlement===1&&(o={entitlement:2}):o={entitlement:1},o&&this.update(o),n&&await this.resolveEntitlement(n,e.token)}async resolveEntitlement(e,n){let o=await this.doResolveEntitlement(e,n);return typeof o?.entitlement=="number"&&!n.isCancellationRequested&&this.update(o),o}async doResolveEntitlement(e,n){if(n.isCancellationRequested)return;let o=e.entitlementsData;if(!o)return this.logService.trace("[chat entitlement]: no entitlements data available on default account"),{entitlement:o===null?1:2};let r;o.access_type_sku==="free_limited_copilot"?r=5:o.access_type_sku==="free_educational_quota"?r=10:o.can_signup_for_limited?r=3:o.copilot_plan==="individual_edu"?r=10:o.copilot_plan==="individual"?r=6:o.copilot_plan==="individual_pro"?r=7:o.copilot_plan==="individual_max"?r=11:o.copilot_plan==="business"?r=8:o.copilot_plan==="enterprise"?r=9:r=4;let s={entitlement:r,organisations:o.organization_login_list,quotas:this.toQuotas(o),sku:o.access_type_sku,copilotTrackingId:o.analytics_tracking_id};return this.logService.trace(`[chat entitlement]: resolved to ${s.entitlement}, quotas: ${JSON.stringify(s.quotas)}`),this.telemetryService.publicLog2("chatInstallEntitlement",{entitlement:s.entitlement,tid:o.analytics_tracking_id,sku:s.sku,quotaChatUnlimited:s.quotas?.chat?.unlimited,quotaChatHasQuota:s.quotas?.chat?.hasQuota,quotaChatEntitlement:s.quotas?.chat?.entitlement,quotaPremiumChat:s.quotas?.premiumChat?.percentRemaining,quotaPremiumChatUnlimited:s.quotas?.premiumChat?.unlimited,quotaPremiumChatHasQuota:s.quotas?.premiumChat?.hasQuota,quotaPremiumChatEntitlement:s.quotas?.premiumChat?.entitlement,quotaCompletions:s.quotas?.completions?.percentRemaining,quotaCompletionsUnlimited:s.quotas?.completions?.unlimited,quotaCompletionsHasQuota:s.quotas?.completions?.hasQuota,quotaCompletionsEntitlement:s.quotas?.completions?.entitlement,quotaResetDate:s.quotas?.resetDate,usageBasedBilling:s.quotas?.usageBasedBilling,additionalUsageEnabled:s.quotas?.additionalUsageEnabled,additionalUsageCount:s.quotas?.additionalUsageCount,canUpgradePlan:s.quotas?.canUpgradePlan}),s}toQuotas(e){return u6(e)}async request(e,n,o,r,s,a){let l;for(let d of r){if(s.isCancellationRequested)return l;try{let c=await this.requestService.request({type:n,url:e,data:n==="POST"?JSON.stringify(o):void 0,disableCache:!0,headers:{Authorization:`Bearer ${d.accessToken}`},callSite:a},s),u=c.res.statusCode;if(u&&u!==200){l=c;continue}return c}catch(c){s.isCancellationRequested||this.logService.error(`[chat entitlement] request: error ${c}`)}}return l}update(e){this.state=e,this.context.update({entitlement:this.state.entitlement,organisations:this.state.organisations,sku:this.state.sku,copilotTrackingId:this.state.copilotTrackingId}),e.quotas&&this.chatQuotasAccessor.acceptQuotas(e.quotas)}async forceResolveEntitlement(e=me.None){let n=await this.defaultAccountService.refresh({forceRefresh:!0});if(n)return this.resolveEntitlement(n,e)}async signUpFree(){let e=await this.getSessions();if(e.length!==0)return this.doSignUpFree(e)}async doSignUpFree(e){let n={restricted_telemetry:this.telemetryService.telemetryLevel===0?"disabled":"enabled",public_code_suggestions:"enabled"},o=await this.request(aS.entitlementSignupLimitedUrl,"POST",n,e,me.None,"chatEntitlementService.signUpFree");if(!o)return await this.onUnknownSignUpError(p(17754,null),"[chat entitlement] sign-up: no response")?this.doSignUpFree(e):{errorCode:1};if(o.res.statusCode&&o.res.statusCode!==200){if(o.res.statusCode===422)try{let l=await dA(o);if(l){let d=JSON.parse(l);if(typeof d.message=="string"&&d.message)return this.onUnprocessableSignUpError(`[chat entitlement] sign-up: unprocessable entity (${d.message})`,d.message),{errorCode:o.res.statusCode}}}catch{}return await this.onUnknownSignUpError(p(17755,null,o.res.statusCode),`[chat entitlement] sign-up: unexpected status code ${o.res.statusCode}`)?this.doSignUpFree(e):{errorCode:o.res.statusCode}}let r=null;try{r=await dA(o)}catch{}if(!r)return await this.onUnknownSignUpError(p(17753,null),"[chat entitlement] sign-up: response has no content")?this.doSignUpFree(e):{errorCode:2};let s;try{s=JSON.parse(r),this.logService.trace(`[chat entitlement] sign-up: response is ${r}`)}catch(a){return await this.onUnknownSignUpError(p(17752,null),`[chat entitlement] sign-up: error parsing response (${a})`)?this.doSignUpFree(e):{errorCode:3}}return this.update({entitlement:5}),!!s?.subscribed}async getSessions(){let e=await this.defaultAccountService.getDefaultAccount();if(e){let o=(await this.authenticationService.getSessions(e.authenticationProvider.id)).filter(r=>r.id===e.sessionId);if(o.length)return o}return[...await this.authenticationService.getSessions(this.defaultAccountService.getDefaultAccountAuthenticationProvider().id)]}async onUnknownSignUpError(e,n){if(this.logService.error(n),!this.lifecycleService.willShutdown){let{confirmed:o}=await this.dialogService.confirm({type:it.Error,message:p(17756,null),detail:e,primaryButton:p(17751,null)});return o}return!1}onUnprocessableSignUpError(e,n){this.logService.error(e),this.lifecycleService.willShutdown||this.dialogService.prompt({type:it.Error,message:p(17757,null),detail:n,buttons:[{label:p(17743,null),run:()=>{}},{label:p(17742,null),run:()=>this.openerService.open(b.parse(aS.upgradePlanUrl))}]})}async signIn(e){let n=await this.defaultAccountService.signIn({additionalScopes:e?.additionalScopes,extraAuthorizeParameters:{get_started_with:"copilot-vscode"},provider:e?.useSocialProvider});if(!n)return{};let o=await this.doResolveEntitlement(n,me.None);return{defaultAccount:n,entitlements:o}}dispose(){this.pendingResolveCts.dispose(!0),super.dispose()}};Uv=D([C(2,vs),C(3,ne),C(4,Kx),C(5,Ox),C(6,nV),C(7,oV),C(8,sS),C(9,tV)],Uv);var Ur=class extends U{constructor(e,n,o,r,s){super();this.storageService=n;this.logService=o;this.configurationService=r;this.telemetryService=s;this.suspendedState=void 0;this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event;this.updateBarrier=void 0;this._forceHidden=!1;this.canSignUpContextKey=Ie.Entitlement.canSignUp.bindTo(e),this.signedOutContextKey=Ie.Entitlement.signedOut.bindTo(e),this.freeContextKey=Ie.Entitlement.planFree.bindTo(e),this.eduContextKey=Ie.Entitlement.planEdu.bindTo(e),this.proContextKey=Ie.Entitlement.planPro.bindTo(e),this.proPlusContextKey=Ie.Entitlement.planProPlus.bindTo(e),this.maxContextKey=Ie.Entitlement.planMax.bindTo(e),this.businessContextKey=Ie.Entitlement.planBusiness.bindTo(e),this.enterpriseContextKey=Ie.Entitlement.planEnterprise.bindTo(e),this.organisationsContextKey=Ie.Entitlement.organisations.bindTo(e),this.isInternalContextKey=Ie.Entitlement.internal.bindTo(e),this.skuContextKey=Ie.Entitlement.sku.bindTo(e),this.completedContext=Ie.Setup.completed.bindTo(e),this.hiddenContext=Ie.Setup.hidden.bindTo(e),this.disabledInWorkspaceContext=Ie.Setup.disabledInWorkspace.bindTo(e),this.laterContext=Ie.Setup.later.bindTo(e),this.installedContext=Ie.Setup.installed.bindTo(e),this.disabledContext=Ie.Setup.disabled.bindTo(e),this.untrustedContext=Ie.Setup.untrusted.bindTo(e),this.registeredContext=Ie.Setup.registered.bindTo(e),this._state=this.storageService.getObject(Ur.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,0)??{entitlement:1,organisations:void 0,sku:void 0,copilotTrackingId:void 0},this.storageService.getBoolean(Ur.CHAT_ENTITLEMENT_CONTEXT_MIGRATED_STORAGE_KEY,0)===!0||(this.storageService.store(Ur.CHAT_ENTITLEMENT_CONTEXT_MIGRATED_STORAGE_KEY,!0,0,1),this._state.installed&&!this._state.completed&&(this._state.completed=!0,this.storageService.store(Ur.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,this._state,0,1))),this.updateContextSync(),this.registerListeners()}static{this.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY="chat.setupContext"}static{this.CHAT_ENTITLEMENT_CONTEXT_MIGRATED_STORAGE_KEY="chat.setupContext.migrated.v1"}static{this.CHAT_DISABLED_CONFIGURATION_KEY="chat.disableAIFeatures"}get state(){return this.withConfiguration(this.suspendedState??this._state)}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(Ur.CHAT_DISABLED_CONFIGURATION_KEY)&&this.updateContext()}))}withConfiguration(e){return this._forceHidden||this.configurationService.getValue(Ur.CHAT_DISABLED_CONFIGURATION_KEY)===!0?{...e,hidden:!0}:e}setForceHidden(e){this._forceHidden!==e&&(this._forceHidden=e,this.updateContext())}async update(e){this.logService.trace(`[chat entitlement context] update(): ${JSON.stringify(e)}`);let n=JSON.stringify(this._state);if(typeof e.installed=="boolean"&&typeof e.disabled=="boolean"&&typeof e.untrusted=="boolean"&&(this._state.installed=e.installed,this._state.disabled=e.disabled,this._state.untrusted=e.untrusted,this._state.disabledInWorkspace=e.disabledInWorkspace,e.installed&&!e.disabled&&(e.hidden=!1)),typeof e.hidden=="boolean"&&(this._state.hidden=e.hidden),typeof e.later=="boolean"&&(this._state.later=e.later),typeof e.completed=="boolean"&&(this._state.completed=e.completed),typeof e.entitlement=="number"&&(this._state.entitlement=e.entitlement,this._state.organisations=e.organisations,this._state.sku=e.sku,this._state.copilotTrackingId=e.copilotTrackingId,this._state.entitlement===5||c6(this._state.entitlement)?this._state.registered=!0:this._state.entitlement===3&&(this._state.registered=!1)),_A(this.configurationService,this._state.entitlement,this._state)&&(this._state.sku="no_auth_limited_copilot"),n!==JSON.stringify(this._state))return this.storageService.store(Ur.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,{...this._state,later:void 0},0,1),this.updateContext()}async updateContext(){await this.updateBarrier?.wait(),this.updateContextSync()}updateContextSync(){let e=this.withConfiguration(this._state);this.signedOutContextKey.set(e.entitlement===1),this.canSignUpContextKey.set(e.entitlement===3),this.freeContextKey.set(e.entitlement===5),this.eduContextKey.set(e.entitlement===10),this.proContextKey.set(e.entitlement===6),this.proPlusContextKey.set(e.entitlement===7),this.maxContextKey.set(e.entitlement===11),this.businessContextKey.set(e.entitlement===8),this.enterpriseContextKey.set(e.entitlement===9),this.organisationsContextKey.set(e.organisations),this.isInternalContextKey.set(!!e.organisations?.some(n=>n==="github"||n==="microsoft"||n==="ms-copilot"||n==="MicrosoftCopilot")),this.skuContextKey.set(e.sku),this.completedContext.set(!!e.completed),this.hiddenContext.set(!!e.hidden),this.disabledInWorkspaceContext.set(!!e.disabledInWorkspace),this.laterContext.set(!!e.later),this.installedContext.set(!!e.installed),this.disabledContext.set(!!e.disabled),this.untrustedContext.set(!!e.untrusted),this.registeredContext.set(!!e.registered),this.logService.trace(`[chat entitlement context] updateContext(): ${JSON.stringify(e)}`),wV(e,this.configurationService,this.telemetryService),this._onDidChange.fire()}suspend(){this.suspendedState={...this._state},this.updateBarrier=new Sn}resume(){this.suspendedState=void 0,this.updateBarrier?.open(),this.updateBarrier=void 0}};Ur=D([C(0,Ir),C(1,nr),C(2,ne),C(3,Gt),C(4,vs)],Ur);Ke(d6,Ca,0);var DA=R("languageService");var RA=R("modelService");var Bfe=new k("workbenchState",void 0,{type:"string",description:p(4801,null)}),$fe=new k("workspaceFolderCount",0,p(4802,null)),zfe=new k("openFolderWorkspaceSupport",!0,!0),qfe=new k("enterMultiRootWorkspaceSupport",!0,!0),Kfe=new k("emptyWorkspaceSupport",!0,!0),jfe=new k("dirtyWorkingCopies",!1,p(4743,null)),kV=new k("remoteName","",p(4779,null)),Gfe=new k("virtualWorkspace","",p(4800,null)),Qfe=new k("temporaryWorkspace",!1,p(4794,null)),PV=new k("isSessionsWindow",!1,p(4765,null)),Jfe=new k("hasWebFileSystemAccess",!1,!0),Yfe=new k("embedderIdentifier",void 0,p(4754,null)),Xfe=new k("inAutomation",!1,p(4757,null)),Zfe=new k("isEnabledFileDownloads",!0,!0),ehe=new k("isEnabledFileUploads",!0,!0),the=new k("isEnabledCoderGettingStarted",!0,!0),nhe=new k("isFullscreen",!1,p(4763,null)),ohe=new k("isAuxiliaryWindowFocusedContext",!1,p(4760,null)),rhe=new k("isWindowAlwaysOnTop",!1,p(4767,null)),_V=new k("isAuxiliaryWindow",!1,p(4759,null)),ihe=new k("activeEditorIsDirty",!1,p(4731,null)),she=new k("activeEditorIsNotPreview",!1,p(4734,null)),ahe=new k("activeEditorIsFirstInGroup",!1,p(4732,null)),lhe=new k("activeEditorIsLastInGroup",!1,p(4733,null)),dhe=new k("activeEditorIsPinned",!1,p(4735,null)),che=new k("activeEditorIsReadonly",!1,p(4736,null)),uhe=new k("activeCompareEditorCanSwap",!1,p(4720,null)),phe=new k("activeEditorCanToggleReadonly",!0,p(4726,null)),mhe=new k("activeEditorCanRevert",!1,p(4725,null)),ghe=new k("activeEditorCanSplitInGroup",!0),fhe=new k("activeEditor",null,{type:"string",description:p(4723,null)}),hhe=new k("activeEditorAvailableEditorIds","",p(4724,null)),vhe=new k("textCompareEditorVisible",!1,p(4796,null)),bhe=new k("textCompareEditorActive",!1,p(4795,null)),yhe=new k("sideBySideEditorActive",!1,p(4791,null)),Ihe=new k("activeCustomEditorDiffCanToggleLayout",!1,p(4721,null)),xhe=new k("activeCustomEditorTextDiff",!1,p(4722,null)),She=new k("groupEditorsCount",0,p(4756,null)),Che=new k("isTopRightEditorGroup",!1,p(4766,null)),The=new k("activeEditorGroupEmpty",!1,p(4727,null)),Ehe=new k("activeEditorGroupIndex",0,p(4728,null)),whe=new k("activeEditorGroupLast",!1,p(4729,null)),khe=new k("activeEditorGroupLocked",!1,p(4730,null)),p6=new k("multipleEditorGroups",!1,p(4769,null)),Phe=p6.toNegated(),_he=new k("multipleEditorsSelectedInGroup",!1,p(4770,null)),Dhe=new k("twoEditorsSelectedInGroup",!1,p(4799,null)),Rhe=new k("SelectedEditorsInGroupFileOrUntitledResourceContextKey",!0,p(4788,null)),m6=new k("editorPartMultipleEditorGroups",!1,p(4752,null)),Ahe=m6.toNegated(),Mhe=new k("editorPartMaximizedEditorGroup",!1,p(4746,null)),Lhe=new k("editorPartModal",!1,p(4747,null)),Ohe=new k("editorPartModalMaximized",!1,p(4748,null)),Nhe=new k("editorPartModalNavigation",!1,p(4749,null)),Uhe=new k("editorPartModalSidebar",!1,p(4750,null)),Fhe=new k("editorPartModalSidebarVisible",!1,p(4751,null)),Hhe=new k("editorIsOpen",!1,p(4745,null)),Vhe=new k("editorAreaFocus",!1,p(4744,null)),Whe=new k("inZenMode",!1,p(4758,null)),Bhe=new k("isCenteredLayout",!1,p(4764,null)),$he=new k("splitEditorsVertically",!1,p(4792,null)),zhe=new k("mainEditorAreaVisible",!0,p(4768,null)),qhe=new k("editorTabsVisible",!0,p(4753,null)),Khe=new k("sideBarVisible",!1,p(4790,null)),jhe=new k("sideBarFocus",!1,p(4789,null)),Ghe=new k("activeViewlet","",p(4738,null)),Qhe=new k("statusBarFocused",!1,p(4793,null)),Jhe=new k("titleBarStyle","custom",p(4797,null)),Yhe=new k("titleBarVisible",!1,p(4798,null)),Xhe=new k("isCompactTitleBar",!1,p(4761,null)),Zhe=new k("bannerFocused",!1,p(4742,null)),eve=new k("notificationFocus",!0,p(4772,null)),tve=new k("notificationCenterVisible",!1,p(4771,null)),nve=new k("notificationToastsVisible",!1,p(4773,null)),ove=new k("activeAuxiliary","",p(4719,null)),rve=new k("auxiliaryBarFocus",!1,p(4739,null)),ive=new k("auxiliaryBarVisible",!1,p(4741,null)),sve=new k("auxiliaryBarMaximized",!1,p(4740,null)),ave=new k("activePanel","",p(4737,null)),lve=new k("panelFocus",!1,p(4775,null)),dve=new k("panelPosition","bottom",p(4777,null)),cve=new k("panelAlignment","center",p(4774,null)),uve=new k("panelVisible",!1,p(4778,null)),pve=new k("panelMaximized",!1,p(4776,null)),mve=new k("focusedView","",p(4755,null));var or=class{constructor(t,e,n,o){this._contextKeyService=t;this._fileService=e;this._languageService=n;this._modelService=o;this._schemeKey=or.Scheme.bindTo(this._contextKeyService),this._filenameKey=or.Filename.bindTo(this._contextKeyService),this._dirnameKey=or.Dirname.bindTo(this._contextKeyService),this._pathKey=or.Path.bindTo(this._contextKeyService),this._langIdKey=or.LangId.bindTo(this._contextKeyService),this._resourceKey=or.Resource.bindTo(this._contextKeyService),this._extensionKey=or.Extension.bindTo(this._contextKeyService),this._hasResource=or.HasResource.bindTo(this._contextKeyService),this._isFileSystemResource=or.IsFileSystemResource.bindTo(this._contextKeyService)}static{this.Scheme=new k("resourceScheme",void 0,{type:"string",description:p(4786,null)})}static{this.Filename=new k("resourceFilename",void 0,{type:"string",description:p(4783,null)})}static{this.Dirname=new k("resourceDirname",void 0,{type:"string",description:p(4781,null)})}static{this.Path=new k("resourcePath",void 0,{type:"string",description:p(4785,null)})}static{this.LangId=new k("resourceLangId",void 0,{type:"string",description:p(4784,null)})}static{this.Resource=new k("resource",void 0,{type:"URI",description:p(4780,null)})}static{this.Extension=new k("resourceExtname",void 0,{type:"string",description:p(4782,null)})}static{this.HasResource=new k("resourceSet",void 0,{type:"boolean",description:p(4787,null)})}static{this.IsFileSystemResource=new k("isFileSystemResource",void 0,{type:"boolean",description:p(4762,null)})}_setLangId(){let t=this.get();if(!t){this._langIdKey.set(null);return}let e=this._modelService.getModel(t)?.getLanguageId()??this._languageService.guessLanguageIdByFilepathOrFirstLine(t);this._langIdKey.set(e)}set(t){t=t??void 0,!Vn(this._value,t)&&(this._value=t,this._contextKeyService.bufferChangeEvents(()=>{this._resourceKey.set(t?t.toString():null),this._schemeKey.set(t?t.scheme:null),this._filenameKey.set(t?rt(t):null),this._dirnameKey.set(t?this.uriToPath(Oo(t)):null),this._pathKey.set(t?this.uriToPath(t):null),this._setLangId(),this._extensionKey.set(t?Uh(t):null),this._hasResource.set(!!t),this._isFileSystemResource.set(t?this._fileService.hasProvider(t):!1)}))}uriToPath(t){return t.scheme===B.file?t.fsPath:t.path}reset(){this._value=void 0,this._contextKeyService.bufferChangeEvents(()=>{this._resourceKey.reset(),this._schemeKey.reset(),this._filenameKey.reset(),this._dirnameKey.reset(),this._pathKey.reset(),this._langIdKey.reset(),this._extensionKey.reset(),this._hasResource.reset(),this._isFileSystemResource.reset()})}get(){return this._value}};or=D([C(0,Ir),C(1,ga),C(2,DA),C(3,RA)],or);var lS=class extends or{constructor(e,n,o,r){super(e,n,o,r);this._disposables=new z;this._disposables.add(n.onDidChangeFileSystemProviderRegistrations(()=>{let s=this.get();this._isFileSystemResource.set(!!(s&&n.hasProvider(s)))})),this._disposables.add(r.onModelAdded(s=>{Vn(s.uri,this.get())&&this._setLangId()})),this._disposables.add(r.onModelLanguageChanged(s=>{Vn(s.model.uri,this.get())&&this._setLangId()}))}dispose(){this._disposables.dispose()}};lS=D([C(0,Ir),C(1,ga),C(2,DA),C(3,RA)],lS);var dS=(n=>(n.Default="default",n.AutoApprove="autoApprove",n.Autopilot="autopilot",n))(dS||{}),xve=new Set(Object.values(dS));var ki=(o=>(o.Chat="panel",o.Terminal="terminal",o.Notebook="notebook",o.EditorInline="editor",o))(ki||{});(t=>{function i(e){switch(e){case"panel":return"panel";case"terminal":return"terminal";case"notebook":return"notebook";case"editor":return"editor"}return"panel"}t.fromRaw=i})(ki||={});var Sve=new Set([B.vscodeChatEditor,B.walkThrough,B.vscodeLocalChatSession,B.vscodeSettings,B.webviewPanel,B.vscodeUserData,B.extension,"ccreq","openai-codex"]);var Cve=bt.and(Ie.Setup.hidden.negate(),Ie.Setup.disabledInWorkspace.negate(),PV.negate(),bt.has("config.chat.agent.enabled"),_V.negate());var Tve=new k("inModelsEditor",!1),Eve=new k("inModelsSearch",!1),zl="General Purpose";var DV;(t=>t.DEFAULT={allowTrailingComma:!0})(DV||={});function g6(i,t=!1){let e=0,n=i.length,o="",r=0,s=16,a=0;function l(f){let I=0,x=0;for(;I<f;){let T=i.charCodeAt(e);if(T>=48&&T<=57)x=x*16+T-48;else if(T>=65&&T<=70)x=x*16+T-65+10;else if(T>=97&&T<=102)x=x*16+T-97+10;else break;e++,I++}return I<f&&(x=-1),x}function d(f){e=f,o="",r=0,s=16,a=0}function c(){let f=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&Xp(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&Xp(i.charCodeAt(e)))for(e++;e<i.length&&Xp(i.charCodeAt(e));)e++;else return a=3,i.substring(f,e);let I=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&&Xp(i.charCodeAt(e))){for(e++;e<i.length&&Xp(i.charCodeAt(e));)e++;I=e}else a=3;return i.substring(f,I)}function u(){let f="",I=e;for(;;){if(e>=n){f+=i.substring(I,e),a=2;break}let x=i.charCodeAt(e);if(x===34){f+=i.substring(I,e),e++;break}if(x===92){if(f+=i.substring(I,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:f+='"';break;case 92:f+="\\";break;case 47:f+="/";break;case 98:f+="\b";break;case 102:f+="\f";break;case 110:f+=`
`;break;case 114:f+="\r";break;case 116:f+="	";break;case 117:{let w=l(4);w>=0?f+=String.fromCharCode(w):a=4;break}default:a=5}I=e;continue}if(x>=0&&x<=31)if(cS(x)){f+=i.substring(I,e),a=2;break}else a=6;e++}return f}function m(){if(o="",a=0,r=e,e>=n)return r=n,s=17;let f=i.charCodeAt(e);if(AA(f)){do e++,o+=String.fromCharCode(f),f=i.charCodeAt(e);while(AA(f));return s=15}if(cS(f))return e++,o+=String.fromCharCode(f),f===13&&i.charCodeAt(e)===10&&(e++,o+=`
`),s=14;switch(f){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++,o=u(),s=10;case 47:{let I=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!cS(i.charCodeAt(e));)e++;return o=i.substring(I,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let x=n-1,T=!1;for(;e<x;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,T=!0;break}e++}return T||(e++,a=1),o=i.substring(I,e),s=13}return o+=String.fromCharCode(f),e++,s=16}case 45:if(o+=String.fromCharCode(f),e++,e===n||!Xp(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 o+=c(),s=11;default:for(;e<n&&g(f);)e++,f=i.charCodeAt(e);if(r!==e){switch(o=i.substring(r,e),o){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return o+=String.fromCharCode(f),e++,s=16}}function g(f){if(AA(f)||cS(f))return!1;switch(f){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function h(){let f;do f=m();while(f>=12&&f<=15);return f}return{setPosition:d,getPosition:()=>e,scan:t?h:m,getToken:()=>s,getTokenValue:()=>o,getTokenOffset:()=>r,getTokenLength:()=>e-r,getTokenError:()=>a}}function AA(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 cS(i){return i===10||i===13||i===8232||i===8233}function Xp(i){return i>=48&&i<=57}function RV(i,t,e=DV.DEFAULT){let n=g6(i,!1);function o(j){return j?()=>j(n.getTokenOffset(),n.getTokenLength()):()=>!0}function r(j){return j?q=>j(q,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=o(t.onObjectBegin),a=r(t.onObjectProperty),l=o(t.onObjectEnd),d=o(t.onArrayBegin),c=o(t.onArrayEnd),u=r(t.onLiteralValue),m=r(t.onSeparator),g=o(t.onComment),h=r(t.onError),f=e&&e.disallowComments,I=e&&e.allowTrailingComma;function x(){for(;;){let j=n.scan();switch(n.getTokenError()){case 4:T(14);break;case 5:T(15);break;case 3:T(13);break;case 1:f||T(11);break;case 2:T(12);break;case 6:T(16);break}switch(j){case 12:case 13:f?T(10):g();break;case 16:T(1);break;case 15:case 14:break;default:return j}}}function T(j,q=[],oe=[]){if(h(j),q.length+oe.length>0){let ve=n.getToken();for(;ve!==17;){if(q.indexOf(ve)!==-1){x();break}else if(oe.indexOf(ve)!==-1)break;ve=x()}}}function w(j){let q=n.getTokenValue();return j?u(q):a(q),x(),!0}function M(){switch(n.getToken()){case 11:{let j=0;try{j=JSON.parse(n.getTokenValue()),typeof j!="number"&&(T(2),j=0)}catch{T(2)}u(j);break}case 7:u(null);break;case 8:u(!0);break;case 9:u(!1);break;default:return!1}return x(),!0}function O(){return n.getToken()!==10?(T(3,[],[2,5]),!1):(w(!1),n.getToken()===6?(m(":"),x(),X()||T(4,[],[2,5])):T(5,[],[2,5]),!0)}function N(){s(),x();let j=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(j||T(4,[],[]),m(","),x(),n.getToken()===2&&I)break}else j&&T(6,[],[]);O()||T(4,[],[2,5]),j=!0}return l(),n.getToken()!==2?T(7,[2],[]):x(),!0}function $(){d(),x();let j=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(j||T(4,[],[]),m(","),x(),n.getToken()===4&&I)break}else j&&T(6,[],[]);X()||T(4,[],[4,5]),j=!0}return c(),n.getToken()!==4?T(8,[4],[]):x(),!0}function X(){switch(n.getToken()){case 3:return $();case 1:return N();case 10:return w(!0);default:return M()}}return x(),n.getToken()===17?e.allowEmptyContent?!0:(T(4,[],[]),!1):X()?(n.getToken()!==17&&T(9,[],[]),!0):(T(4,[],[]),!1)}var y6="subagent",kbe=`/${y6}/`;var MA;(t=>{function i(e,n){return e===n?!0:!e||!n?!1:e.command===n.command&&e.windows===n.windows&&e.linux===n.linux&&e.osx===n.osx&&Vn(e.cwd,n.cwd)&&Bt(e.env,n.env)&&e.timeout===n.timeout&&Vn(e.sourceUri,n.sourceUri)}t.isEquals=i})(MA||={});var AV="github.copilot.chat.agentDebugLog.fileLogging.enabled";var MV="troubleshoot/SKILL.md";var Zp=(c=>(c.SessionStart="SessionStart",c.SessionEnd="SessionEnd",c.UserPromptSubmit="UserPromptSubmit",c.PreToolUse="PreToolUse",c.PostToolUse="PostToolUse",c.PreCompact="PreCompact",c.SubagentStart="SubagentStart",c.SubagentStop="SubagentStop",c.Stop="Stop",c.ErrorOccurred="ErrorOccurred",c))(Zp||{}),LV={vscode:{SessionStart:"SessionStart",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop"},"github-copilot":{sessionStart:"SessionStart",sessionEnd:"SessionEnd",userPromptSubmitted:"UserPromptSubmit",preToolUse:"PreToolUse",postToolUse:"PostToolUse",agentStop:"Stop",subagentStop:"SubagentStop",errorOccurred:"ErrorOccurred"},claude:{SessionStart:"SessionStart",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop"},undefined:Object.fromEntries(Object.values(Zp).map(i=>[i,i]))},OV={SessionStart:{label:p(8808,null),description:p(8807,null)},UserPromptSubmit:{label:p(8816,null),description:p(8815,null)},PreToolUse:{label:p(8804,null),description:p(8803,null)},PostToolUse:{label:p(8800,null),description:p(8799,null)},PreCompact:{label:p(8802,null),description:p(8801,null)},SubagentStart:{label:p(8812,null),description:p(8811,null)},SubagentStop:{label:p(8814,null),description:p(8813,null)},Stop:{label:p(8810,null),description:p(8809,null)},SessionEnd:{label:p(8806,null),description:p(8805,null)},ErrorOccurred:{label:p(8798,null),description:p(8797,null)}};var x6;(t=>{function i(e,n){if(e===n)return!0;if(!e||!n)return!1;for(let o of Object.values(Zp)){let r=e[o],s=n[o];if(r?.length!==s?.length)return!1;if(r&&s){for(let a=0;a<r.length;a++)if(!MA.isEquals(r[a],s[a]))return!1}}return!0}t.isEquals=i})(x6||={});function NV(i,t){if(!i)return t;let e={...i};for(let n of Object.values(Zp)){let o=i[n],r=t[n];r&&r.length>0&&(e[n]=o?[...o,...r]:r)}return e}var Tr={type:p(8790,null),command:p(8781,null),windows:p(8791,null),linux:p(8785,null),osx:p(8786,null),bash:p(8779,null),powershell:p(8787,null),cwd:p(8783,null),env:p(8784,null),timeout:p(8788,null),timeoutSec:p(8789,null)},S6={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["command"]},{required:["windows"]},{required:["linux"]},{required:["osx"]},{required:["bash"]},{required:["powershell"]}],errorMessage:p(8782,null),properties:{type:{type:"string",enum:["command"],description:Tr.type},command:{type:"string",description:Tr.command},windows:{type:"string",description:Tr.windows},linux:{type:"string",description:Tr.linux},osx:{type:"string",description:Tr.osx},cwd:{type:"string",description:Tr.cwd},env:{type:"object",additionalProperties:{type:"string"},description:Tr.env},timeout:{type:"number",default:30,description:Tr.timeout}}},C6={type:"array",items:S6};function UV(i,t){return Object.fromEntries(Object.entries(LV[i]).map(([e,n])=>[e,{...t,description:OV[n]?.description}]))}var T6=UV("vscode",C6),E6={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["bash"]},{required:["powershell"]}],errorMessage:p(8780,null),properties:{type:{type:"string",enum:["command"],description:Tr.type},bash:{type:"string",description:Tr.bash},powershell:{type:"string",description:Tr.powershell},cwd:{type:"string",description:Tr.cwd},env:{type:"object",additionalProperties:{type:"string"},description:Tr.env},timeoutSec:{type:"number",default:10,description:Tr.timeoutSec}}},w6={type:"array",items:E6},k6=UV("github-copilot",w6),mye={$schema:"http://json-schema.org/draft-07/schema#",type:"object",description:p(8792,null),additionalProperties:!0,required:["hooks"],properties:{hooks:{type:"object",description:p(8793,null),additionalProperties:!0}},if:{required:["version"],properties:{version:{type:"number"}}},then:{properties:{version:{type:"number",description:p(8796,null)},hooks:{properties:k6}}},else:{properties:{hooks:{properties:T6}}},defaultSnippets:[{label:p(8794,null),description:p(8795,null),body:{hooks:{SessionStart:[{type:"command",command:'${1:echo "Session started" >> session.log}'}],PreToolUse:[{type:"command",command:"${2:./scripts/validate.sh}",timeout:15}]}}}]};function FV(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}var dn;(r=>{r.Internal={type:"internal",label:"Built-In"},r.External={type:"external",label:"External"};function e(s){switch(s.type){case"extension":return`extension:${s.extensionId.value}`;case"mcp":return`mcp:${s.collectionId}:${s.definitionId}`;case"user":return`user:${s.file.toString()}`;case"internal":return"internal";case"external":return"external"}}r.toKey=e;function n(s,a){return e(s)===e(a)}r.equals=n;function o(s){return s.type==="internal"?{ordinal:1,label:p(9173,null)}:s.type==="mcp"?{ordinal:2,label:s.serverLabel||s.label}:s.type==="user"?{ordinal:0,label:p(9175,null)}:{ordinal:3,label:s.label}}r.classify=o})(dn||={});function HV(i){return i!==null&&typeof i=="object"&&b.isUri(i.sessionResource)}function VV(i){return typeof i=="object"&&typeof i?.input=="string"&&(typeof i?.output=="string"||Array.isArray(i?.output))}function WV(i){return typeof i=="object"&&typeof i?.output=="object"&&typeof i?.output?.mimeType=="string"&&i?.output?.type==="data"}function BV(i){return!!i&&i.getTools!==void 0}var em=R("ILanguageModelToolsService");var P6;(a=>(a.execute="execute",a.edit="edit",a.search="search",a.agent="agent",a.read="read",a.web="web",a.todo="todo"))(P6||={});var Hv;(e=>(e.runSubagent="runSubagent",e.vscode="vscode"))(Hv||={});var LA=class{constructor(t){this.options=t}getItemLabel(t){return t.label}getItemDescription(t){if(!this.options?.skipDescription)return t.description}getItemPath(t){if(!this.options?.skipPath)return t.resource?.scheme===B.file?t.resource.fsPath:t.resource?.path}},Lye=new LA,$V=R("quickInputService");var zV=R("encryptionService"),Uye=R("encryptionMainService");var Vv="secret://";function OA(i){return`${Vv}${i}`}async function _6(i,t,e,n){let o=OA(i);n?.trace("[secrets] getting secret for key:",o);let r=t(o);if(!r){n?.trace("[secrets] no secret found for key:",o);return}n?.trace("[secrets] decrypting secret for key:",o);let s=await e(r);return n?.trace("[secrets] decrypted secret for key:",o),s}async function D6(i,t,e,n,o){o?.trace("[secrets] encrypting secret for key:",i);let r=await n(t),s=OA(i);o?.trace("[secrets] storing encrypted secret for key:",s),e(s,r),o?.trace("[secrets] stored encrypted secret for key:",s)}var R6=['{"extensionId":"vscode.github-authentication","key":"github.auth"}'],qV=R("secretStorageService"),uS=class extends U{constructor(e,n,o,r){super();this._useInMemoryStorage=e;this._storageService=n;this._encryptionService=o;this._logService=r;this.onDidChangeSecretEmitter=this._register(new E);this.onDidChangeSecret=this.onDidChangeSecretEmitter.event;this._sequencer=new Tl;this._type="unknown";this._onDidChangeValueDisposable=this._register(new z);this._lazyStorageService=new pt(()=>this.initialize())}useSharedStorage(e){return Ce&&R6.includes(e)}get type(){return this._type}get resolvedStorageService(){return this._lazyStorageService.value}get(e){return this._sequencer.queue(e,async()=>{let n=await this.resolvedStorageService;try{return await _6(e,o=>this.getValueFromStorage(e,o,n),this._type==="in-memory"?o=>Promise.resolve(o):o=>this._encryptionService.decrypt(o),this._logService)}catch(o){this._logService.error(o),this.delete(e);return}})}set(e,n){return this._sequencer.queue(e,async()=>{let o=await this.resolvedStorageService;try{await D6(e,n,(r,s)=>this.setValueInStorage(e,r,s,o),this._type==="in-memory"?r=>Promise.resolve(r):r=>this._encryptionService.encrypt(r),this._logService)}catch(r){throw this._logService.error(r),r}})}delete(e){return this._sequencer.queue(e,async()=>{let n=await this.resolvedStorageService,o=OA(e);this._logService.trace("[secrets] deleting secret for key:",o);let r=this.useSharedStorage(e)?-2:-1;n.remove(o,r),this._logService.trace("[secrets] deleted secret for key:",o)})}keys(){return this._sequencer.queue("__keys__",async()=>{let e=await this.resolvedStorageService;this._logService.trace("[secrets] fetching keys of all secrets");let n=e.keys(-1,1);return this._logService.trace("[secrets] fetched keys of all secrets"),n.filter(o=>o.startsWith(Vv)).map(o=>o.slice(Vv.length))})}getValueFromStorage(e,n,o){return this.useSharedStorage(e)?(this._logService.trace(`[SecretStorageService] Fetching value for cross-app shared secret: ${n}`),o.get(n,-2)):o.get(n,-1)}setValueInStorage(e,n,o,r){if(this.useSharedStorage(e)){this._logService.trace(`[SecretStorageService] Setting value for cross-app shared secret: ${n}`),r.store(n,o,-2,1);return}r.store(n,o,-1,1)}async initialize(){let e;if(!this._useInMemoryStorage&&await this._encryptionService.isEncryptionAvailable())this._logService.trace("[SecretStorageService] Encryption is available, using persisted storage"),this._type="persisted",e=this._storageService;else{if(this._type==="in-memory")return this._storageService;this._logService.trace("[SecretStorageService] Encryption is not available, falling back to in-memory storage"),this._type="in-memory",e=this._register(new Yx)}return this._onDidChangeValueDisposable.clear(),this._onDidChangeValueDisposable.add(ye.any(e.onDidChangeValue(-1,void 0,this._onDidChangeValueDisposable),e.onDidChangeValue(-2,void 0,this._onDidChangeValueDisposable))(n=>{this.onDidChangeValue(n.key)})),e}reinitialize(){this._lazyStorageService=new pt(()=>this.initialize())}onDidChangeValue(e){if(!e.startsWith(Vv))return;let n=e.slice(Vv.length);this._logService.trace(`[SecretStorageService] Notifying change in value for secret: ${n}`),this.onDidChangeSecretEmitter.fire(n)}};uS=D([C(1,nr),C(2,zV),C(3,ne)],uS);var Xye={Extensions:{name:{key:"extensionsConfigurationTitle",value:p(138,null)}},IntegratedTerminal:{name:{key:"terminalIntegratedConfigurationTitle",value:p(141,null)}},InteractiveSession:{name:{key:"interactiveSessionConfigurationTitle",value:p(139,null)}},Telemetry:{name:{key:"telemetryConfigurationTitle",value:p(140,null)}},Update:{name:{key:"updateConfigurationTitle",value:p(142,null)}}};var Wv="^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$",hIe=new RegExp(Wv);var vIe=R("extensionGalleryService");var bIe=R("extensionManagementService");var yIe=R("IGlobalExtensionEnablementService"),IIe=R("IExtensionTipsService"),xIe=R("IAllowedExtensionsService");var SIe=ac(2350,"Extensions"),CIe=ac(2367,"Preferences"),A6="extensions.allowed";_t.as(ei.Configuration).registerConfiguration({id:"extensions",order:30,title:p(2366,null),type:"object",properties:{[A6]:{type:"object",markdownDescription:p(2356,null),default:"*",defaultSnippets:[{body:{},description:p(2361,null)},{body:{"*":!0},description:p(2357,null)}],scope:1,policy:{name:"AllowedExtensions",category:"Extensions",minimumVersion:"1.96",localization:{description:{key:"extensions.allowed.policy",value:p(2362,null)}}},additionalProperties:!1,patternProperties:{"([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$":{anyOf:[{type:["boolean","string"],enum:[!0,!1,"stable"],description:p(2354,null),enumDescriptions:[p(2360,null),p(2358,null),p(2359,null)]},{type:"array",items:{type:"string"},description:p(2355,null)}]},"([a-z0-9A-Z][a-z0-9-A-Z]*)$":{type:["boolean","string"],enum:[!0,!1,"stable"],description:p(2349,null),enumDescriptions:[p(2365,null),p(2363,null),p(2364,null)]},"\\*":{type:"boolean",enum:[!0,!1],description:p(2351,null),enumDescriptions:[p(2353,null),p(2352,null)]}}}}});var ql=class{constructor(t){this.value=t;this.isTrustedTelemetryValue=!0}},NA=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(){}},qIe=new NA;var M6="telemetry",GV={id:M6,name:p(2639,null)};function QV(i,t){if(!i)return"none";let e=cv(i),n=t?.remoteExtensionTips;if(n&&Object.prototype.hasOwnProperty.call(n,e))return e;let o=t?.virtualWorkspaceExtensionTips;return o&&Object.prototype.hasOwnProperty.call(o,e)?e:"other"}function L6(i,t){if(!i||!i.includes("/")&&!i.includes("\\"))return i;let e=i,n=[];for(let l of t)for(;;){let d=l.exec(i);if(!d)break;n.push([d.index,l.lastIndex])}let o=/(?:^|[\\\/])((node_modules|node_modules\.asar)[\\\/].*)$/,r=/^(.*?)((?:\.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(([c,u])=>l.index<u&&c<s.lastIndex)){let c=r.exec(l[0]);if(c)e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+c[2];else{let u=o.exec(l[0]);u?e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+u[1]:e+=i.substring(a,l.index)+"<REDACTED: user-file-path>"}a=s.lastIndex}}return a<i.length&&(e+=i.substr(a)),e}var JV=[{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,}/}];function jV(i,t=i){for(let e of JV)if(e.regex.test(t))return`<REDACTED: ${e.label}>`;return i}function O6(i){if(!i)return i;let t=!1;for(let n of JV)if(n.regex.test(i)){t=!0;break}if(!t)return i;if(!i.includes(`
`))return jV(i);let e=i.split(`
`);for(let n=0;n<e.length;n++){let o=n<e.length-1?e[n]+`
`:e[n];e[n]=jV(e[n],o)}return e.join(`
`)}function UA(i,t){return i?ds(i,e=>{if(e instanceof ql||Object.hasOwnProperty.call(e,"isTrustedTelemetryValue"))return e.value;if(typeof e=="string"){let n=e.replaceAll("%20"," ");n=L6(n,t);for(let o of t)n=n.replace(o,"");return n=O6(n),n}}):{}}function YV(i,t){return i.uuid&&t.uuid?i.uuid===t.uuid:i.id===t.id?!0:uc(i.id,t.id)===0}var dxe=new Ee("pprice.better-merge");var FA=class{constructor(){this._generators=new Map;this._cache=new WeakMap}register(t,e){this._generators.set(t,e)}readActivationEvents(t){return this._cache.has(t)||this._cache.set(t,this._readActivationEvents(t)),this._cache.get(t)}createActivationEventsMap(t){let e=Object.create(null);for(let n of t){let o=this.readActivationEvents(n);o.length>0&&(e[Ee.toKey(n.identifier)]=o)}return e}_readActivationEvents(t){if(typeof t.main>"u"&&typeof t.browser>"u")return[];let e=Array.isArray(t.activationEvents)?t.activationEvents.slice(0):[];for(let n=0;n<e.length;n++)e[n]==="onUri"&&(e[n]=`onUri:${Ee.toKey(t.identifier)}`);if(!t.contributes)return e;for(let n in t.contributes){let o=this._generators.get(n);if(!o)continue;let r=t.contributes[n],s=Array.isArray(r)?r:[r];try{e.push(...o(s))}catch(a){Qe(a)}}return e}},HA=new FA;var XV=Object.freeze({identifier:new Ee("nullExtensionDescription"),name:"Null Extension Description",version:"0.0.0",publisher:"vscode",engines:{vscode:""},extensionLocation:b.parse("void:location"),isBuiltin:!1,targetPlatform:"undefined",isUserBuiltin:!1,isUnderDevelopment:!1,preRelease:!1});var pS=R("extensionService"),Bv=class{constructor(t){this.dependency=t}};function Oe(i,t){return!0}function A(i,t){if(!Oe(i,t))throw new Error(`Extension '${i.identifier.value}' CANNOT use API proposal: ${t}.
Its package.json#enabledApiProposals-property declares: ${i.enabledApiProposals?.join(", ")??"[]"} but NOT ${t}.
 The missing proposal MUST be added and you must start in extension development mode or use the following command line switch: --enable-proposed-api ${i.identifier.value}`)}var N6={activeComment:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.activeComment.d.ts"},agentSessionsWorkspace:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentSessionsWorkspace.d.ts"},agentsWindowConfiguration:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentsWindowConfiguration.d.ts"},aiRelatedInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiRelatedInformation.d.ts"},aiSettingsSearch:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiSettingsSearch.d.ts"},aiTextSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.aiTextSearchProvider.d.ts",version:2},authIssuers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authIssuers.d.ts"},authLearnMore:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authLearnMore.d.ts"},authProviderSpecific:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authProviderSpecific.d.ts"},authSession:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSession.d.ts"},authSessionAudience:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSessionAudience.d.ts"},authenticationChallenges:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authenticationChallenges.d.ts"},browser:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.browser.d.ts"},canonicalUriProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.canonicalUriProvider.d.ts"},chatContextProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatContextProvider.d.ts"},chatDebug:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatDebug.d.ts",version:4},chatHooks:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatHooks.d.ts",version:6},chatInputNotification:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatInputNotification.d.ts"},chatOutputRenderer:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatOutputRenderer.d.ts"},chatParticipantAdditions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts",version:3},chatParticipantPrivate:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts",version:15},chatPromptFiles:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatPromptFiles.d.ts",version:2},chatProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatProvider.d.ts",version:5},chatReferenceBinaryData:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceBinaryData.d.ts"},chatReferenceDiagnostic:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatReferenceDiagnostic.d.ts"},chatSessionCustomizationProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts"},chatSessionsProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatSessionsProvider.d.ts",version:3},chatStatusItem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatStatusItem.d.ts"},chatTab:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatTab.d.ts"},codeActionAI:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionAI.d.ts"},codeActionRanges:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codeActionRanges.d.ts"},codiconDecoration:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.codiconDecoration.d.ts"},commentReactor:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReactor.d.ts"},commentReveal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentReveal.d.ts"},commentThreadApplicability:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentThreadApplicability.d.ts"},commentingRangeHint:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentingRangeHint.d.ts"},commentsDraftState:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.commentsDraftState.d.ts"},contribAccessibilityHelpContent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribAccessibilityHelpContent.d.ts"},contribChatEditorInlineGutterMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribChatEditorInlineGutterMenu.d.ts"},contribCommentEditorActionsMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentEditorActionsMenu.d.ts"},contribCommentPeekContext:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentPeekContext.d.ts"},contribCommentThreadAdditionalMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts"},contribCommentsViewThreadMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribCommentsViewThreadMenus.d.ts"},contribDebugCreateConfiguration:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDebugCreateConfiguration.d.ts"},contribDiffEditorGutterToolBarMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribDiffEditorGutterToolBarMenus.d.ts"},contribEditSessions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditSessions.d.ts"},contribEditorContentMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribEditorContentMenu.d.ts"},contribLabelFormatterWorkspaceTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLabelFormatterWorkspaceTooltip.d.ts"},contribLanguageModelToolSets:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribLanguageModelToolSets.d.ts"},contribMenuBarHome:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMenuBarHome.d.ts"},contribMergeEditorMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMergeEditorMenus.d.ts"},contribMultiDiffEditorMenus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribMultiDiffEditorMenus.d.ts"},contribNotebookStaticPreloads:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribNotebookStaticPreloads.d.ts"},contribRemoteHelp:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribRemoteHelp.d.ts"},contribShareMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribShareMenu.d.ts"},contribSourceControlArtifactGroupMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactGroupMenu.d.ts"},contribSourceControlArtifactMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlArtifactMenu.d.ts"},contribSourceControlHistoryItemMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryItemMenu.d.ts"},contribSourceControlHistoryTitleMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlHistoryTitleMenu.d.ts"},contribSourceControlInputBoxMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlInputBoxMenu.d.ts"},contribSourceControlTitleMenu:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribSourceControlTitleMenu.d.ts"},contribStatusBarItems:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribStatusBarItems.d.ts"},contribViewContainerTitle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewContainerTitle.d.ts"},contribViewsRemote:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsRemote.d.ts"},contribViewsWelcome:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.contribViewsWelcome.d.ts"},css:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.css.d.ts"},customEditorDiffs:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorDiffs.d.ts"},customEditorMove:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorMove.d.ts"},customEditorPriority:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.customEditorPriority.d.ts"},dataChannels:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.dataChannels.d.ts"},debugVisualization:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.debugVisualization.d.ts"},defaultChatParticipant:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.defaultChatParticipant.d.ts",version:4},devDeviceId:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.devDeviceId.d.ts"},diffCommand:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffCommand.d.ts"},diffContentOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.diffContentOptions.d.ts"},documentDiff:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentDiff.d.ts"},documentFiltersExclusive:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentFiltersExclusive.d.ts"},editSessionIdentityProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editSessionIdentityProvider.d.ts"},editorHoverVerbosityLevel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorHoverVerbosityLevel.d.ts"},editorInsets:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.editorInsets.d.ts"},embeddings:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.embeddings.d.ts"},envIsConnectionMetered:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.envIsConnectionMetered.d.ts"},environmentPower:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.environmentPower.d.ts"},extensionAffinity:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionAffinity.d.ts"},extensionRuntime:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionRuntime.d.ts"},extensionsAny:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.extensionsAny.d.ts"},externalUriOpener:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.externalUriOpener.d.ts"},fileSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider.d.ts"},fileSearchProvider2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fileSearchProvider2.d.ts"},findFiles2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findFiles2.d.ts",version:2},findTextInFiles:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles.d.ts"},findTextInFiles2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.findTextInFiles2.d.ts"},fsChunks:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.fsChunks.d.ts"},inlineCompletionsAdditions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.inlineCompletionsAdditions.d.ts"},interactive:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactive.d.ts"},interactiveWindow:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.interactiveWindow.d.ts"},ipc:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.ipc.d.ts"},languageModelCapabilities:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelCapabilities.d.ts"},languageModelPricing:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelPricing.d.ts"},languageModelProxy:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelProxy.d.ts"},languageModelSystem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelSystem.d.ts"},languageModelThinkingPart:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelThinkingPart.d.ts",version:1},languageModelToolResultAudience:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolResultAudience.d.ts"},languageModelToolSupportsModel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageModelToolSupportsModel.d.ts",version:1},languageStatusText:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatusText.d.ts"},mappedEditsProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mappedEditsProvider.d.ts"},markdownAlertSyntax:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.markdownAlertSyntax.d.ts"},mcpServerDefinitions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpServerDefinitions.d.ts",version:1},mcpToolDefinitions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.mcpToolDefinitions.d.ts"},multiDocumentHighlightProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.multiDocumentHighlightProvider.d.ts"},nativeWindowHandle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.nativeWindowHandle.d.ts"},newSymbolNamesProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.newSymbolNamesProvider.d.ts"},notebookCellExecution:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookCellExecution.d.ts"},notebookControllerAffinityHidden:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookControllerAffinityHidden.d.ts"},notebookDeprecated:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookDeprecated.d.ts"},notebookExecution:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookExecution.d.ts"},notebookKernelSource:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookKernelSource.d.ts"},notebookLiveShare:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookLiveShare.d.ts"},notebookMessaging:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMessaging.d.ts"},notebookMime:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookMime.d.ts"},notebookReplDocument:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookReplDocument.d.ts"},notebookVariableProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts"},portsAttributes:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.portsAttributes.d.ts"},profileContentHandlers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.profileContentHandlers.d.ts"},quickDiffProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickDiffProvider.d.ts"},quickPickItemTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickItemTooltip.d.ts"},quickPickSortByLabel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.quickPickSortByLabel.d.ts"},remoteCodingAgents:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.remoteCodingAgents.d.ts"},resolvers:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.resolvers.d.ts"},scmActionButton:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmActionButton.d.ts"},scmArtifactProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmArtifactProvider.d.ts"},scmHistoryProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts"},scmMultiDiffEditor:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmMultiDiffEditor.d.ts"},scmProviderOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmProviderOptions.d.ts"},scmSelectedProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmSelectedProvider.d.ts"},scmTextDocument:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmTextDocument.d.ts"},scmValidation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmValidation.d.ts"},shareProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.shareProvider.d.ts"},speech:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.speech.d.ts"},statusBarItemTooltip:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.statusBarItemTooltip.d.ts"},tabInputMultiDiff:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputMultiDiff.d.ts"},tabInputTextMerge:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabInputTextMerge.d.ts"},taskExecutionTerminal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskExecutionTerminal.d.ts"},taskPresentationGroup:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskPresentationGroup.d.ts"},taskProblemMatcherStatus:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskProblemMatcherStatus.d.ts"},taskRunOptions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskRunOptions.d.ts"},telemetry:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.telemetry.d.ts"},terminalCompletionProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalCompletionProvider.d.ts"},terminalDataWriteEvent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDataWriteEvent.d.ts"},terminalDimensions:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDimensions.d.ts"},terminalExecuteCommandEvent:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalExecuteCommandEvent.d.ts"},terminalQuickFixProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts"},terminalSelection:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalSelection.d.ts"},terminalShellEnv:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalShellEnv.d.ts"},terminalTitle:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalTitle.d.ts"},testObserver:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testObserver.d.ts"},testRelatedCode:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testRelatedCode.d.ts"},textDocumentChangeReason:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textDocumentChangeReason.d.ts"},textEditorDiffInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textEditorDiffInformation.d.ts"},textSearchComplete2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchComplete2.d.ts"},textSearchProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider.d.ts"},textSearchProvider2:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider2.d.ts"},timeline:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.timeline.d.ts"},tokenInformation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tokenInformation.d.ts"},toolInvocationApproveCombination:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.toolInvocationApproveCombination.d.ts"},toolProgress:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.toolProgress.d.ts"},treeItemMarkdownLabel:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeItemMarkdownLabel.d.ts"},treeViewActiveItem:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewActiveItem.d.ts"},treeViewMarkdownMessage:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewMarkdownMessage.d.ts"},treeViewReveal:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.treeViewReveal.d.ts"},tunnelFactory:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnelFactory.d.ts"},tunnels:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tunnels.d.ts"},valueSelectionInQuickPick:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.valueSelectionInQuickPick.d.ts"},workspaceTrust:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.workspaceTrust.d.ts"}},tm=Object.freeze(N6);var zA=_t.as(Nc.JSONContribution);var VA=class i{constructor(t,e){this.added=t;this.removed=e}static _toSet(t){let e=new Ho;for(let n=0,o=t.length;n<o;n++)e.add(t[n].description.identifier);return e}static compute(t,e){if(!t||!t.length)return new i(e,[]);if(!e||!e.length)return new i([],t);let n=this._toSet(t),o=this._toSet(e),r=e.filter(a=>!n.has(a.description.identifier)),s=t.filter(a=>!o.has(a.description.identifier));return new i(r,s)}},WA=class{constructor(t,e,n){this.name=t,this.defaultExtensionKind=e,this.canHandleResolver=n,this._handler=null,this._users=null,this._delta=null}setHandler(t){if(this._handler!==null)throw new Error("Handler already set!");return this._handler=t,this._handle(),{dispose:()=>{this._handler=null}}}acceptUsers(t){this._delta=VA.compute(this._users,t),this._users=t,this._handle()}_handle(){if(!(this._handler===null||this._users===null||this._delta===null))try{this._handler(this._users,this._delta)}catch(t){Qe(t)}}},U6={type:"string",enum:["ui","workspace"],enumDescriptions:[p(18024,null),p(18104,null)]},ZV="vscode://schemas/vscode-extensions",BA={properties:{engines:{type:"object",description:p(18088,null),properties:{vscode:{type:"string",description:p(18089,null),default:"^1.105.0"}}},publisher:{description:p(18100,null),type:"string"},displayName:{description:p(18085,null),type:"string"},categories:{description:p(18079,null),type:"array",uniqueItems:!0,items:{oneOf:[{type:"string",enum:rx},{type:"string",const:"Languages",deprecationMessage:p(18080,null)}]}},galleryBanner:{type:"object",description:p(18092,null),properties:{color:{description:p(18093,null),type:"string"},theme:{description:p(18094,null),type:"string",enum:["dark","light"]}}},contributes:{description:p(18081,null),type:"object",properties:{},default:{}},preview:{type:"boolean",description:p(18098,null)},enableProposedApi:{type:"boolean",deprecationMessage:p(18087,null)},enabledApiProposals:{markdownDescription:p(18086,null),type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(tm).map(i=>i),markdownEnumDescriptions:Object.values(tm).map(i=>i.proposal)}},api:{markdownDescription:p(18059,null),type:"string",enum:["none"],enumDescriptions:[p(18060,null)]},activationEvents:{description:p(18025,null),type:"array",items:{type:"string",defaultSnippets:[{label:"onWebviewPanel",description:p(18056,null),body:"onWebviewPanel:viewType"},{label:"onLanguage",description:p(18039,null),body:"onLanguage:${1:languageId}"},{label:"onCommand",description:p(18029,null),body:"onCommand:${2:commandId}"},{label:"onDebug",description:p(18031,null),body:"onDebug"},{label:"onDebugInitialConfigurations",description:p(18034,null),body:"onDebugInitialConfigurations"},{label:"onDebugDynamicConfigurations",description:p(18033,null),body:"onDebugDynamicConfigurations"},{label:"onDebugResolve",description:p(18035,null),body:"onDebugResolve:${6:type}"},{label:"onDebugAdapterProtocolTracker",description:p(18032,null),body:"onDebugAdapterProtocolTracker:${6:type}"},{label:"workspaceContains",description:p(18058,null),body:"workspaceContains:${4:filePattern}"},{label:"onStartupFinished",description:p(18047,null),body:"onStartupFinished"},{label:"onTaskType",description:p(18048,null),body:"onTaskType:${1:taskType}"},{label:"onFileSystem",description:p(18037,null),body:"onFileSystem:${1:scheme}"},{label:"onEditSession",description:p(18036,null),body:"onEditSession:${1:scheme}"},{label:"onSearch",description:p(18046,null),body:"onSearch:${7:scheme}"},{label:"onView",body:"onView:${5:viewId}",description:p(18054,null)},{label:"onUri",body:"onUri",description:p(18053,null)},{label:"onOpenExternalUri",body:"onOpenExternalUri",description:p(18044,null)},{label:"onCustomEditor",body:"onCustomEditor:${9:viewType}",description:p(18030,null)},{label:"onNotebook",body:"onNotebook:${1:type}",description:p(18043,null)},{label:"onAuthenticationRequest",body:"onAuthenticationRequest:${11:authenticationProviderId}",description:p(18026,null)},{label:"onRenderer",description:p(18045,null),body:"onRenderer:${11:rendererId}"},{label:"onTerminalProfile",body:"onTerminalProfile:${1:terminalId}",description:p(18050,null)},{label:"onTerminalQuickFixRequest",body:"onTerminalQuickFixRequest:${1:quickFixId}",description:p(18051,null)},{label:"onWalkthrough",body:"onWalkthrough:${1:walkthroughID}",description:p(18055,null)},{label:"onIssueReporterOpened",body:"onIssueReporterOpened",description:p(18038,null)},{label:"onChatParticipant",body:"onChatParticipant:${1:participantId}",description:p(18028,null)},{label:"onChatContextProvider",body:"onChatContextProvider:${1:contextProviderId}",description:p(18027,null)},{label:"onLanguageModelChatProvider",body:"onLanguageModelChatProvider:${1:vendor}",description:p(18040,null)},{label:"onLanguageModelTool",body:"onLanguageModelTool:${1:toolId}",description:p(18041,null)},{label:"onTerminal",body:"onTerminal:{1:shellType}",description:p(18049,null)},{label:"onTerminalShellIntegration",body:"onTerminalShellIntegration:${1:shellType}",description:p(18052,null)},{label:"onMcpCollection",description:p(18042,null),body:"onMcpCollection:${2:collectionId}"},{label:"*",description:p(18057,null),body:"*"}]}},badges:{type:"array",description:p(18061,null),items:{type:"object",required:["url","href","description"],properties:{url:{type:"string",description:p(18064,null)},href:{type:"string",description:p(18063,null)},description:{type:"string",description:p(18062,null)}}}},markdown:{type:"string",description:p(18097,null),enum:["github","standard"],default:"github"},qna:{default:"marketplace",description:p(18101,null),anyOf:[{type:["string","boolean"],enum:["marketplace",!1]},{type:"string"}]},extensionDependencies:{description:p(18091,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:Wv}},extensionAffinity:{description:p(18090,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:Wv}},extensionPack:{description:p(18082,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:Wv}},extensionKind:{description:p(18017,null),type:"array",items:U6,default:["workspace"],defaultSnippets:[{body:["ui"],description:p(18019,null)},{body:["workspace"],description:p(18021,null)},{body:["ui","workspace"],description:p(18020,null)},{body:["workspace","ui"],description:p(18022,null)},{body:[],description:p(18018,null)}]},capabilities:{description:p(18065,null),type:"object",properties:{virtualWorkspaces:{description:p(18073,null),type:["boolean","object"],defaultSnippets:[{label:"limited",body:{supported:"${1:limited}",description:"${2}"}},{label:"false",body:{supported:!1,description:"${2}"}}],default:(!0).valueOf,properties:{supported:{markdownDescription:p(18075,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(18077,null),p(18078,null),p(18076,null)]},description:{type:"string",markdownDescription:p(18074,null)}}},untrustedWorkspaces:{description:p(18066,null),type:"object",required:["supported"],defaultSnippets:[{body:{supported:"${1:limited}",description:"${2}"}}],properties:{supported:{markdownDescription:p(18069,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(18071,null),p(18072,null),p(18070,null)]},restrictedConfigurations:{description:p(18068,null),type:"array",items:{type:"string"}},description:{type:"string",markdownDescription:p(18067,null)}}}}},sponsor:{description:p(18083,null),type:"object",defaultSnippets:[{body:{url:"${1:https:}"}}],properties:{url:{description:p(18084,null),type:"string"}}},scripts:{type:"object",properties:{"vscode:prepublish":{description:p(18102,null),type:"string"},"vscode:uninstall":{description:p(18103,null),type:"string"}}},icon:{type:"string",description:p(18095,null)},l10n:{type:"string",description:p(18096,null)},pricing:{type:"string",markdownDescription:p(18099,null),enum:["Free","Trial"],default:"Free"}}},$A=class{constructor(){this._extensionPoints=new Map}registerExtensionPoint(t){if(this._extensionPoints.has(t.extensionPoint))throw new Error("Duplicate extension point: "+t.extensionPoint);let e=new WA(t.extensionPoint,t.defaultExtensionKind,t.canHandleResolver);return this._extensionPoints.set(t.extensionPoint,e),t.activationEventsGenerator&&HA.register(t.extensionPoint,t.activationEventsGenerator),BA.properties.contributes.properties[t.extensionPoint]=t.jsonSchema,zA.registerSchema(ZV,BA),e}getExtensionPoints(){return Array.from(this._extensionPoints.values())}},eW={ExtensionsRegistry:"ExtensionsRegistry"};_t.add(eW.ExtensionsRegistry,new $A);var mS=_t.as(eW.ExtensionsRegistry);zA.registerSchema(ZV,BA);zA.registerSchema(FH,{properties:{extensionEnabledApiProposals:{description:p(18023,null),type:"object",properties:{},additionalProperties:{anyOf:[{type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(tm),markdownEnumDescriptions:Object.values(tm).map(i=>i.proposal)}}]}}}});var qxe=new k("isMac",ht,p(2246,null)),Kxe=new k("isLinux",Je,p(2245,null)),jxe=new k("isWindows",Ce,p(2250,null)),tW=new k("isWeb",pr,p(2249,null)),Gxe=new k("isMacNative",ht&&!pr,p(2247,null)),Qxe=new k("isIOS",FU,p(2244,null)),Jxe=new k("isMobile",HU,p(2248,null)),Yxe=new k("isDevelopment",!1,!0),Xxe=new k("productQualityType","",p(2251,null)),F6="inputFocus",Zxe=new k(F6,!1,p(2243,null));var oSe=R("copilotManagedSettingsService");function nW(i){let t={};for(let e in i){let n=i[e].managedSettings;if(n)for(let o in n)t[o]=n[o]}return t}function oW(i,t,e){let n={};for(let o in t){let r=i[o];r!==void 0&&(typeof r===t[o].type?n[o]=r:e?.(`Ignoring managed setting "${o}": expected ${t[o].type}, got ${typeof r}`))}return n}function rW(i){if(i.restrictedValue!==void 0)return i.restrictedValue;switch(i.type){case"boolean":return!1;case"number":return 0;case"string":return""}}var dSe=R("policy"),gS=class extends U{constructor(){super(...arguments);this.policyDefinitions={};this.policies=new Map;this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event}async updatePolicyDefinitions(e){let n=Object.keys(this.policyDefinitions).length;return this.policyDefinitions={...e,...this.policyDefinitions},n!==Object.keys(this.policyDefinitions).length&&await this._updatePolicyDefinitions(this.policyDefinitions),At.reduce(this.policies.entries(),(o,[r,s])=>({...o,[r]:s}),{})}getPolicyValue(e){return this.policies.get(e)}serialize(){return At.reduce(Object.entries(this.policyDefinitions),(e,[n,o])=>({...e,[n]:{definition:o,value:this.policies.get(n)}}),{})}};var iW="ChatApprovedAccountOrganizations";var sW=new k("chatAccountPolicyGateActive",!1,{type:"boolean",description:p(18208,null)}),TSe=R("accountPolicyGateService"),fS=class extends gS{constructor(e,n,o,r){super();this.logService=e;this.defaultAccountService=n;this._gateInfo={state:"inactive"};this._onDidChangeGateInfo=this._register(new E);this.onDidChangeGateInfo=this._onDidChangeGateInfo.event;this.managedPolicyReader=o,this.copilotManagedSettingsService=r,this._updatePolicyDefinitions(this.policyDefinitions),this._register(this.defaultAccountService.onDidChangePolicyData(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})),this._register(this.defaultAccountService.onDidChangeDefaultAccount(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})),this.managedPolicyReader&&this._register(this.managedPolicyReader.onDidChange(s=>{s.includes(iW)&&this._updatePolicyDefinitions(this.policyDefinitions)})),this.copilotManagedSettingsService&&this._register(this.copilotManagedSettingsService.onDidChangeManagedSettings(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})),this.defaultAccountService.getDefaultAccount().then(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})}get gateInfo(){return this._gateInfo}async _updatePolicyDefinitions(e){this.logService.trace(`AccountPolicyService#_updatePolicyDefinitions: Got ${Object.keys(e).length} policy definitions`);let n=await this.updateCopilotManagedSettingDefinitions(e),o=[],r=this.getPolicyData(n),s=this._gateInfo;this._gateInfo=this.computeGateInfo();let a=s.approvedOrganizations?.join(`
`)??"",l=this._gateInfo.approvedOrganizations?.join(`
`)??"",d=s.state!==this._gateInfo.state||s.reason!==this._gateInfo.reason||a!==l,c=this._gateInfo.state==="restricted"&&this._gateInfo.reason!=="policyNotResolved";for(let u in e){let m=e[u],g;c&&(m.value!==void 0||m.restrictedValue!==void 0)?g=rW(m):r&&m.value&&(g=m.value(r)),g!==void 0?this.policies.get(u)!==g&&(this.policies.set(u,g),o.push(u)):this.policies.delete(u)&&o.push(u)}o.length&&this._onDidChange.fire(o),d&&this._onDidChangeGateInfo.fire(this._gateInfo)}async updateCopilotManagedSettingDefinitions(e){return!this.copilotManagedSettingsService||!H6(e)?this.copilotManagedSettingsService?.managedSettings:this.copilotManagedSettingsService.updatePolicyDefinitions(e)}getPolicyData(e){let n=this.defaultAccountService.policyData??void 0,o=e??this.copilotManagedSettingsService?.managedSettings,r=o&&Object.keys(o).length>0;if(!n&&!r)return;let s=nW(this.policyDefinitions),a=oW({...n?.managedSettings,...o},s,l=>this.logService.warn(`[AccountPolicy] ${l}`));return{...n,managedSettings:a}}computeGateInfo(){if(!this.managedPolicyReader)return{state:"inactive"};let e=this.managedPolicyReader.getPolicyValue(iW),n=V6(e);if(n.length===0)return{state:"inactive"};let o=this.defaultAccountService.currentDefaultAccount;if(!o)return{state:"restricted",reason:"noAccount",approvedOrganizations:n};let r=this.defaultAccountService.getDefaultAccountAuthenticationProvider();return o.authenticationProvider.id!==r.id?{state:"restricted",reason:"wrongProvider",approvedOrganizations:n}:!n.includes("*")&&!(o.entitlementsData?.organization_login_list??[]).map(l=>l.toLowerCase()).some(l=>n.includes(l))?{state:"restricted",reason:"orgNotApproved",approvedOrganizations:n}:this.defaultAccountService.policyData===null?{state:"restricted",reason:"policyNotResolved",approvedOrganizations:n}:{state:"satisfied",approvedOrganizations:n}}};fS=D([C(0,ne),C(1,sS)],fS);function H6(i){for(let t in i){let e=i[t].managedSettings;if(e&&Object.keys(e).length>0)return!0}return!1}function V6(i){let t=i;if(typeof t=="string")try{t=JSON.parse(t)}catch{}return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim().toLowerCase()).filter(e=>e.length>0):[]}var rr;(se=>{se.responseVote=new k("chatSessionResponseVote","",{type:"string",description:p(8659,null)}),se.responseDetectedAgentCommand=new k("chatSessionResponseDetectedAgentOrCommand",!1,{type:"boolean",description:p(8636,null)}),se.responseSupportsIssueReporting=new k("chatResponseSupportsIssueReporting",!1,{type:"boolean",description:p(8627,null)}),se.responseIsFiltered=new k("chatSessionResponseFiltered",!1,{type:"boolean",description:p(8626,null)}),se.responseHasError=new k("chatSessionResponseError",!1,{type:"boolean",description:p(8625,null)}),se.requestInProgress=new k("chatSessionRequestInProgress",!1,{type:"boolean",description:p(8658,null)}),se.hasActiveRequest=new k("chatSessionHasActiveRequest",!1,{type:"boolean",description:p(8628,null)}),se.currentlyEditing=new k("chatSessionCurrentlyEditing",!1,{type:"boolean",description:p(8656,null)}),se.currentlyEditingInput=new k("chatSessionCurrentlyEditingInput",!1,{type:"boolean",description:p(8657,null)});let d;(Sh=>(Sh.Sent="s",Sh.Queue="q",Sh.Steer="st"))(d=se.EditingRequestType||={}),se.editingRequestType=new k("chatEditingSentRequest",void 0,{type:"string",description:p(8598,null)}),se.isResponse=new k("chatResponse",!1,{type:"boolean",description:p(8624,null)}),se.isRequest=new k("chatRequest",!1,{type:"boolean",description:p(8622,null)}),se.isFirstRequest=new k("chatFirstRequest",!1,{type:"boolean",description:p(8600,null)}),se.isPendingRequest=new k("chatRequestIsPending",!1,{type:"boolean",description:p(8623,null)}),se.itemId=new k("chatItemId","",{type:"string",description:p(8609,null)}),se.lastItemId=new k("chatLastItemId",[],{type:"string",description:p(8610,null)}),se.editApplied=new k("chatEditApplied",!1,{type:"boolean",description:p(8592,null)}),se.inputHasText=new k("chatInputHasText",!1,{type:"boolean",description:p(8655,null)}),se.inputHasSendableContent=new k("chatInputHasSendableContent",!1,{type:"boolean",description:p(8654,null)}),se.inputHasFocus=new k("chatInputHasFocus",!1,{type:"boolean",description:p(8653,null)}),se.inChatInput=new k("inChatInput",!1,{type:"boolean",description:p(8651,null)}),se.inChatSession=new k("inChat",!1,{type:"boolean",description:p(8645,null)}),se.inChatQuestionCarousel=new k("inChatQuestionCarousel",!1,{type:"boolean",description:p(8647,null)}),se.chatQuestionCarouselHasTerminal=new k("chatQuestionCarouselHasTerminal",!1,{type:"boolean",description:p(8620,null)}),se.inChatEditor=new k("inChatEditor",!1,{type:"boolean",description:p(8646,null)}),se.inChatTodoList=new k("inChatTodoList",!1,{type:"boolean",description:p(8650,null)}),se.inChatTip=new k("inChatTip",!1,{type:"boolean",description:p(8649,null)}),se.multipleChatTips=new k("multipleChatTips",!1,{type:"boolean",description:p(8662,null)}),se.inChatTerminalToolOutput=new k("inChatTerminalToolOutput",!1,{type:"boolean",description:p(8648,null)}),se.chatModeKind=new k("chatAgentKind","ask",{type:"string",description:p(8577,null)}),se.chatPermissionLevel=new k("chatPermissionLevel","default",{type:"string",description:p(8619,null)}),se.chatModeName=new k("chatModeName","",{type:"string",description:p(8613,null)}),se.chatModelId=new k("chatModelId","",{type:"string",description:p(8611,null)}),se.supported=bt.or(tW.negate(),kV.notEqualsTo(""),bt.has("config.chat.experimental.serverlessWebEnabled")),se.enabled=new k("chatIsEnabled",!1,{type:"boolean",description:p(8607,null)}),se.accountPolicyGateActive=sW,se.lockedToCodingAgent=new k("lockedToCodingAgent",!1,{type:"boolean",description:p(8661,null)}),se.lockedCodingAgentId=new k("lockedCodingAgentId","",{type:"string",description:p(8660,null)}),se.chatSessionHasCustomAgentTarget=new k("chatSessionHasCustomAgentTarget",!1,{type:"boolean",description:p(8629,null)}),se.chatSessionHasTargetedModels=new k("chatSessionHasTargetedModels",!1,{type:"boolean",description:p(8633,null)}),se.agentSupportsAttachments=new k("agentSupportsAttachments",!1,{type:"boolean",description:p(8589,null)}),se.withinEditSessionDiff=new k("withinEditSessionDiff",!1,{type:"boolean",description:p(8664,null)}),se.filePartOfEditSession=new k("filePartOfEditSession",!1,{type:"boolean",description:p(8642,null)}),se.extensionParticipantRegistered=new k("chatPanelExtensionParticipantRegistered",!1,{type:"boolean",description:p(8616,null)}),se.panelParticipantRegistered=new k("chatPanelParticipantRegistered",!1,{type:"boolean",description:p(8618,null)}),se.chatEditingCanUndo=new k("chatEditingCanUndo",!1,{type:"boolean",description:p(8594,null)}),se.chatEditingCanRedo=new k("chatEditingCanRedo",!1,{type:"boolean",description:p(8593,null)}),se.languageModelsAreUserSelectable=new k("chatModelsAreUserSelectable",!1,{type:"boolean",description:p(8612,null)}),se.nonCopilotLanguageModelsAreUserSelectable=new k("chatNonCopilotModelsAreUserSelectable",!1,{type:"boolean",description:p(8615,null)}),se.chatSessionHasModels=new k("chatSessionHasModels",!1,{type:"boolean",description:p(8632,null)}),se.chatSessionOptionsValid=new k("chatSessionOptionsValid",!0,{type:"boolean",description:p(8635,null)}),se.extensionInvalid=new k("chatExtensionInvalid",!1,{type:"boolean",description:p(8599,null)}),se.inputCursorAtTop=new k("chatCursorAtTop",!1),se.inputHasAgent=new k("chatInputHasAgent",!1),se.location=new k("chatLocation",void 0),se.inQuickChat=new k("quickChatHasFocus",!1,{type:"boolean",description:p(8652,null)}),se.inAgentSessionsWelcome=new k("inAgentSessionsWelcome",!1,{type:"boolean",description:p(8644,null)}),se.chatSessionType=new k("chatSessionType","",{type:"string",description:p(8639,null)}),se.hasFileAttachments=new k("chatHasFileAttachments",!1,{type:"boolean",description:p(8604,null)}),se.chatSessionIsEmpty=new k("chatSessionIsEmpty",!0,{type:"boolean",description:p(8634,null)}),se.hasPendingRequests=new k("chatHasPendingRequests",!1,{type:"boolean",description:p(8605,null)}),se.chatSessionHasDebugData=new k("chatSessionHasDebugData",!1,{type:"boolean",description:p(8630,null)}),se.chatSessionHasDebugTools=new k("chatSessionHasDebugTools",!1,{type:"boolean",description:p(8631,null)}),se.remoteJobCreating=new k("chatRemoteJobCreating",!1,{type:"boolean",description:p(8621,null)}),se.hasRemoteCodingAgent=new k("hasRemoteCodingAgent",!1,p(8643,null)),se.hasCanDelegateProviders=new k("chatHasCanDelegateProviders",!1,{type:"boolean",description:p(8603,null)}),se.enableRemoteCodingAgentPromptFileOverlay=new k("enableRemoteCodingAgentPromptFileOverlay",!1,p(8641,null)),se.skipChatRequestInProgressMessage=new k("chatSkipRequestInProgressMessage",!1,{type:"boolean",description:p(8640,null)}),se.Setup=Ie.Setup,se.Entitlement=Ie.Entitlement,se.chatQuotaExceeded=Ie.chatQuotaExceeded,se.completionsQuotaExceeded=Ie.completionsQuotaExceeded,se.Editing={hasToolConfirmation:new k("chatHasToolConfirmation",!1,{type:"boolean",description:p(8597,null)}),hasElicitationRequest:new k("chatHasElicitationRequest",!1,{type:"boolean",description:p(8595,null)}),hasQuestionCarousel:new k("chatHasQuestionCarousel",!1,{type:"boolean",description:p(8596,null)})},se.Tools={toolsCount:new k("toolsCount",0,{type:"number",description:p(8663,null)})},se.foregroundSessionCount=new k("chatForegroundSessionCount",0,{type:"number",description:p(8601,null)}),se.Modes={hasCustomChatModes:new k("chatHasCustomAgents",!1,{type:"boolean",description:p(8602,null)}),agentModeDisabledByPolicy:new k("chatAgentModeDisabledByPolicy",!1,{type:"boolean",description:p(8590,null)})},se.panelLocation=new k("chatPanelLocation",void 0,{type:"number",description:p(8617,null)}),se.agentSessionsViewerFocused=new k("agentSessionsViewerFocused",!0,{type:"boolean",description:p(8584,null)}),se.agentSessionsViewerOrientation=new k("agentSessionsViewerOrientation",void 0,{type:"number",description:p(8585,null)}),se.agentSessionsViewerPosition=new k("agentSessionsViewerPosition",void 0,{type:"number",description:p(8586,null)}),se.agentSessionsViewerVisible=new k("agentSessionsViewerVisible",void 0,{type:"boolean",description:p(8587,null)}),se.agentSessionType=new k("chatSessionType","",{type:"string",description:p(8588,null)}),se.chatSessionSupportsDelegation=new k("chatSessionSupportsDelegation",!0,{type:"boolean",description:p(8637,null)}),se.chatSessionSupportsFork=new k("chatSessionSupportsFork",!1,{type:"boolean",description:p(8638,null)}),se.agentSessionSection=new k("agentSessionSection","",{type:"string",description:p(8583,null)}),se.isArchivedAgentSession=new k("agentSessionIsArchived",!1,{type:"boolean",description:p(8580,null)}),se.isPinnedAgentSession=new k("agentSessionIsPinned",!1,{type:"boolean",description:p(8581,null)}),se.isReadAgentSession=new k("agentSessionIsRead",!1,{type:"boolean",description:p(8582,null)}),se.hasMultipleAgentSessionsSelected=new k("agentSessionHasMultipleSelected",!1,{type:"boolean",description:p(8579,null)}),se.hasAgentSessionChanges=new k("agentSessionHasChanges",!1,{type:"boolean",description:p(8578,null)}),se.isKatexMathElement=new k("chatIsKatexMathElement",!1,{type:"boolean",description:p(8608,null)}),se.hasUsedCreateSlashCommands=new k("chatHasUsedCreateSlashCommands",!1,{type:"boolean",description:p(8606,null)}),se.contextUsageHasBeenOpened=new k("chatContextUsageHasBeenOpened",!1,{type:"boolean",description:p(8591,null)}),se.newChatButtonExperimentIcon=new k("chatNewChatButtonExperimentIcon","",{type:"string",description:p(8614,null)})})(rr||={});var W6;(n=>(n.inEditingMode=bt.or(rr.chatModeKind.isEqualTo("edit"),rr.chatModeKind.isEqualTo("agent")),n.isAgentHostSession=bt.or(bt.regex(rr.lockedCodingAgentId.key,/^agent-host-/),bt.regex(rr.lockedCodingAgentId.key,/^remote-/)),n.isAgentHostSessionItem=bt.or(bt.regex(rr.agentSessionType.key,/^agent-host-/),bt.regex(rr.agentSessionType.key,/^remote-/))))(W6||={});var aW=R("ILanguageModelsConfigurationService");var Kl="copilot";var zv;(n=>{function i(o){return(typeof o.capabilities?.agentMode>"u"||o.capabilities.agentMode)&&!!o.capabilities?.toolCalling}n.suitableForAgentMode=i;function t(o){return`${o.name} (${o.vendor})`}n.asQualifiedName=t;function e(o,r){return r.vendor===Kl&&o===r.name?!0:o===t(r)}n.matchesQualifiedName=e})(zv||={});var vS=R("ILanguageModelsService"),lW={type:"object",required:["vendor","displayName"],properties:{vendor:{type:"string",description:p(8711,null)},displayName:{type:"string",description:p(8707,null)},configuration:{type:"object",description:p(8705,null),anyOf:[{$ref:"http://json-schema.org/draft-07/schema#"},{properties:{properties:{type:"object",additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#",properties:{secret:{type:"boolean",description:p(8706,null)}}}},additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#",properties:{secret:{type:"boolean",description:p(8706,null)}}}}}]},managementCommand:{type:"string",description:p(8709,null),deprecated:!0,deprecationMessage:p(8710,null)},when:{type:"string",description:p(8713,null)}}},B6=mS.registerExtensionPoint({extensionPoint:"languageModelChatProviders",jsonSchema:{description:p(8704,null),oneOf:[lW,{type:"array",items:lW}]},activationEventsGenerator:function*(i){for(let t of i)yield`onLanguageModelChatProvider:${t.vendor}`}}),dW="chatModelRecentlyUsed",cW="chatModelPinned",uW="chatModelVisibility",$v="copilot/auto",qA="chat.participantNameRegistry",KA="chat.modelsControl";function $6(i,t,e){if(!i?.properties)return[];let n=[];for(let[o,r]of Object.entries(i.properties)){if(!r.enum||!Array.isArray(r.enum)||r.enum.length<2)continue;let s=t[o]??r.default,a=(typeof r.title=="string"?r.title:void 0)??o.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/^./,m=>m.toUpperCase()),l=r.default,d=r.enumItemLabels,c=r.enumDescriptions,u=r.enum.map((m,g)=>{let h=d?.[g]??String(m),f=m===l?p(8700,null,h):h,I=c?.[g]??"";return{id:`configureModel.${o}.${m}`,label:f,class:void 0,enabled:!0,tooltip:I,checked:s===m,run:()=>e(o,m)}});n.push(new Tv(`configureModel.${o}`,a,u))}return n}var Wc=class{constructor(t,e,n,o,r,s,a,l,d){this._extensionService=t;this._logService=e;this._storageService=n;this._contextKeyService=o;this._languageModelsConfigurationService=r;this._quickInputService=s;this._secretStorageService=a;this._productService=l;this._requestService=d;this._store=new z;this._providers=new Map;this._vendors=new Map;this._onDidChangeLanguageModelVendors=this._store.add(new E);this.onDidChangeLanguageModelVendors=this._onDidChangeLanguageModelVendors.event;this._modelsGroups=new Map;this._modelCache=new Map;this._resolveLMSequencer=new Tl;this._modelConfigurations=new Map;this._onLanguageModelChange=this._store.add(new E);this.onDidChangeLanguageModels=this._onLanguageModelChange.event;this._recentlyUsedModelIds=[];this._pinnedModelIds=[];this._hiddenModelIds=new Set;this._onDidChangeModelsControlManifest=this._store.add(new E);this.onDidChangeModelsControlManifest=this._onDidChangeModelsControlManifest.event;this._onDidChangePinnedModels=this._store.add(new E);this.onDidChangePinnedModels=this._onDidChangePinnedModels.event;this._onDidChangeModelVisibility=this._store.add(new E);this.onDidChangeModelVisibility=this._onDidChangeModelVisibility.event;this._modelsControlManifest={free:{},paid:{}};this._chatControlDisposed=!1;this._restrictedChatParticipants=_n(this,Object.create(null));this.restrictedChatParticipants=this._restrictedChatParticipants;this._hasUserSelectableModels=rr.languageModelsAreUserSelectable.bindTo(o),this._hasNonCopilotUserSelectableModels=rr.nonCopilotLanguageModelsAreUserSelectable.bindTo(o),this._recentlyUsedModelIds=this._readRecentlyUsedModels(),this._pinnedModelIds=this._readPinnedModels(),this._readVisibility(),this._initChatControlData(),this._store.add(this.onDidChangeLanguageModels(()=>{let c=!1,u=!1;for(let m of this._modelCache.values())if(m.isUserSelectable!==!1&&(c=!0,m.vendor!==Kl)){u=!0;break}this._hasUserSelectableModels.set(c),this._hasNonCopilotUserSelectableModels.set(u),this._refreshModelsControlManifest()})),this._store.add(this._languageModelsConfigurationService.onDidChangeLanguageModelGroups(c=>this._onDidChangeLanguageModelGroups(c))),this._store.add(B6.setHandler((c,{added:u,removed:m})=>{let g=[],h=[];for(let f of u)for(let I of At.wrap(f.value)){if(this._vendors.has(I.vendor)){f.collector.error(p(8712,null,I.vendor));continue}if(is(I.vendor)){f.collector.error(p(8708,null));continue}if(I.vendor.trim()!==I.vendor){f.collector.error(p(8714,null));continue}g.push(I)}for(let f of m)for(let I of At.wrap(f.value))h.push(I);this.deltaLanguageModelChatProviderDescriptors(g,h)}))}static{this.SECRET_KEY_PREFIX="chat.lm.secret."}static{this.SECRET_INPUT="${input:{0}}"}deltaLanguageModelChatProviderDescriptors(t,e){let n=[],o=[];for(let r of t){if(this._vendors.has(r.vendor)){this._logService.error(`The vendor '${r.vendor}' is already registered and cannot be registered twice`);continue}if(is(r.vendor)){this._logService.error("The vendor field cannot be empty.");continue}if(r.vendor.trim()!==r.vendor){this._logService.error("The vendor field cannot start or end with whitespace.");continue}let s={vendor:r.vendor,displayName:r.displayName,configuration:r.configuration,managementCommand:r.managementCommand,when:r.when,isDefault:r.vendor===Kl};this._vendors.set(r.vendor,s),n.push(r.vendor)}for(let r of e)this._vendors.delete(r.vendor),this._providers.delete(r.vendor),this._clearModelCache(r.vendor),this._modelsGroups.delete(r.vendor),o.push(r.vendor);for(let[r,s]of this._providers)this._vendors.has(r)||this._providers.delete(r);if((n.length>0||o.length>0)&&(this._onDidChangeLanguageModelVendors.fire([...n,...o]),o.length>0))for(let r of o)this._onLanguageModelChange.fire(r)}async _onDidChangeLanguageModelGroups(t){let e=new Set(t.map(n=>n.vendor));await Promise.all(Array.from(e).map(n=>this._resolveAllLanguageModels(n,!0)))}getVendors(){return Array.from(this._vendors.values()).filter(t=>{if(!t.when)return!0;let e=bt.deserialize(t.when);return e?this._contextKeyService.contextMatchesRules(e):!1})}getLanguageModelIds(){return Array.from(this._modelCache.keys())}lookupLanguageModel(t){return this._modelCache.get(t)}lookupLanguageModelByQualifiedName(t){for(let[e,n]of this._modelCache.entries())if(zv.matchesQualifiedName(t,n))return{metadata:n,identifier:e}}async _resolveAllLanguageModels(t,e){let n=this._vendors.get(t);if(!n)return;let o=this._providers.get(t);if(o||(await this._extensionService.activateByEvent(`onLanguageModelChatProvider:${t}`),o=this._providers.get(t)),!o){this._logService.warn(`[LM] No provider registered for vendor ${t}`);return}return this._resolveLMSequencer.queue(t,async()=>{let r=[],s=[];try{let m=await o.provideLanguageModelChatInfo({silent:e},me.None);if(m.length){r.push(...m);let g=[];for(let h of m)n.isDefault?h.metadata.isUserSelectable!==!1?g.push(h.identifier):this._logService.trace(`[LM] Skipping model ${h.identifier} from model picker as it is not user selectable.`):g.push(h.identifier);s.push({modelIdentifiers:g})}}catch(m){s.push({modelIdentifiers:[],status:{message:Zi(m),severity:it.Error}})}let a=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),l=new Map;for(let m of a){if(m.vendor!==t)continue;if(!n.configuration&&r.length>0){if(m.settings)for(let h of r){let f=m.settings[h.metadata.id];f&&l.set(h.identifier,{...f})}s.push({group:m,modelIdentifiers:[]});continue}let g=await this._resolveConfiguration(m,n.configuration);try{let h=await o.provideLanguageModelChatInfo({group:m.name,silent:e,configuration:g},me.None);if(h.length){for(let f=0;f<h.length;f++)h[f].metadata.detail||(h[f]={...h[f],metadata:{...h[f].metadata,detail:m.name}});r.push(...h),s.push({group:m,modelIdentifiers:h.map(f=>f.identifier)})}if(m.settings)for(let f of h){let I=m.settings[f.metadata.id];I&&l.set(f.identifier,{...I})}}catch(h){s.push({group:m,modelIdentifiers:[],status:{message:Zi(h),severity:it.Error}})}}let d=this._modelsGroups.get(t)??[];this._modelsGroups.set(t,s);let c=this._clearModelCache(t),u=!1;for(let m of r){if(this._modelCache.has(m.identifier)){this._logService.warn(`[LM] Model ${m.identifier} is already registered. Skipping.`);continue}this._modelCache.set(m.identifier,m.metadata),u=u||!Bt(c.get(m.identifier),m.metadata),c.delete(m.identifier)}this._logService.trace(`[LM] Resolved language models for vendor ${t}`,r),u=u||c.size>0,u||(u=this._hasGroupStructureChanged(d,s)),this._clearModelConfigurations(t);for(let[m,g]of l)this._modelCache.has(m)&&this._modelConfigurations.set(m,g);u?this._onLanguageModelChange.fire(t):this._logService.trace(`[LM] No changes in language models for vendor ${t}`)})}_hasGroupStructureChanged(t,e){if(t.length!==e.length)return!0;for(let n=0;n<t.length;n++){let o=t[n],r=e[n];if(o.group?.name!==r.group?.name||o.group?.vendor!==r.group?.vendor||o.status?.message!==r.status?.message||o.status?.severity!==r.status?.severity||o.modelIdentifiers.length!==r.modelIdentifiers.length)return!0}return!1}getLanguageModelGroups(t){return this._modelsGroups.get(t)??[]}hasResolvedVendor(t){return this._modelsGroups.has(t)}async selectLanguageModels(t){if(t.vendor)await this._resolveAllLanguageModels(t.vendor,!0);else{let n=Array.from(this._vendors.keys());await Promise.all(n.map(o=>this._resolveAllLanguageModels(o,!0)))}let e=[];for(let[n,o]of this._modelCache)(t.vendor===void 0||o.vendor===t.vendor)&&(t.family===void 0||o.family===t.family)&&(t.version===void 0||o.version===t.version)&&(t.id===void 0||o.id===t.id)&&e.push(n);return this._logService.trace("[LM] selected language models",t,e),e}registerLanguageModelProvider(t,e){if(this._logService.trace("[LM] registering language model provider",t,e),!this._vendors.has(t))throw new Error(`Chat model provider uses UNKNOWN vendor ${t}.`);if(this._providers.has(t))throw new Error(`Chat model provider for vendor ${t} is already registered.`);this._providers.set(t,e);let n=e.onDidChange(()=>{this._resolveAllLanguageModels(t,!0)});return Q(()=>{this._logService.trace("[LM] UNregistered language model provider",t),this._clearModelCache(t),this._modelsGroups.delete(t),this._providers.delete(t),n.dispose()})}async sendChatRequest(t,e,n,o,r){let s=this._modelCache.get(t),a=this._providers.get(s?.vendor||"");if(!a)throw new Error(`Chat provider for model ${t} is not registered.`);let l=this.getModelConfiguration(t),d=l?{...o,configuration:{...l,...o.configuration}}:o;return a.sendChatRequest(t,n,e,d,r)}_resolveModelConfigurationWithDefaults(t,e){let n=this._modelConfigurations.get(t),o=e?.configurationSchema;if(!o?.properties&&!n)return;let r={};if(o?.properties)for(let[s,a]of Object.entries(o.properties))a.default!==void 0&&(r[s]=a.default);if(!(!n&&Object.keys(r).length===0))return{...r,...n}}computeTokenLength(t,e,n){let o=this._modelCache.get(t);if(!o)throw new Error(`Chat model ${t} could not be found.`);let r=this._providers.get(o.vendor);if(!r)throw new Error(`Chat provider for model ${t} is not registered.`);return r.provideTokenCount(t,e,n)}getModelConfiguration(t){let e=this._modelCache.get(t);return this._resolveModelConfigurationWithDefaults(t,e)}async setModelConfiguration(t,e){let n=this._modelCache.get(t);if(!n)return;let o=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),r;r=o.find(d=>d.vendor===n.vendor&&d.settings?.[n.id]!==void 0),r||(r=o.find(d=>d.vendor===n.vendor));let a={...this._modelConfigurations.get(t)??{},...e},l=n.configurationSchema;if(l?.properties)for(let[d,c]of Object.entries(a)){let u=l.properties[d];u?.default!==void 0&&u.default===c&&delete a[d]}if(r){let d=r.settings??{},c;Object.keys(a).length===0?(c={...d},delete c[n.id]):c={...d,[n.id]:a};let u={...r,settings:Object.keys(c).length>0?c:void 0};!u.settings&&Object.keys(u).filter(m=>m!=="name"&&m!=="vendor"&&m!=="range"&&m!=="modelsRange"&&m!=="settings").length===0?await this._languageModelsConfigurationService.removeLanguageModelsProviderGroup(r):await this._languageModelsConfigurationService.updateLanguageModelsProviderGroup(r,u)}else if(Object.keys(a).length>0){let d=this._vendors.get(n.vendor);if(!d)return;let c={name:d.displayName,vendor:n.vendor,settings:{[n.id]:a}};await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(c)}Object.keys(a).length>0?this._modelConfigurations.set(t,a):this._modelConfigurations.delete(t),this._onLanguageModelChange.fire(n.vendor)}getModelConfigurationActions(t){let e=this._modelCache.get(t),n=this._modelConfigurations.get(t)??{};return $6(e?.configurationSchema,n,(o,r)=>this.setModelConfiguration(t,{[o]:r}))}async configureLanguageModelsProviderGroup(t,e){let n=this.getVendors().find(({vendor:l})=>l===t);if(!n)throw new Error(`Vendor ${t} not found.`);if(n.managementCommand){await this._resolveAllLanguageModels(n.vendor,!1);return}let o=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),r=o.find(l=>l.vendor===t&&l.name===e),s=await this.promptForName(o,n,r);if(!s)return;let a=r?await this._resolveConfiguration(r,n.configuration):void 0;try{let l=n.configuration?await this.promptForConfiguration(s,n.configuration,a):void 0;if(n.configuration&&!l)return;let d=await this._resolveLanguageModelProviderGroup(s,t,l,n.configuration),c=r?await this._languageModelsConfigurationService.updateLanguageModelsProviderGroup(r,d):await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(d);if(n.configuration&&this.requireConfiguring(n.configuration)){let u=this.getSnippetForFirstUnconfiguredProperty(l??{},n.configuration);await this._languageModelsConfigurationService.configureLanguageModels({group:c,snippet:u})}}catch(l){if(Kt(l))return;throw l}}async renameLanguageModelsProviderGroup(t,e){let n=this.getVendors().find(({vendor:a})=>a===t);if(!n)throw new Error(`Vendor ${t} not found.`);let o=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),r=o.find(a=>a.vendor===t&&a.name===e);if(!r)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);let s=await this.promptForName(o,n,r);!s||s===r.name||await this._languageModelsConfigurationService.updateLanguageModelsProviderGroup(r,{...r,name:s})}async updateLanguageModelsProviderGroupApiKey(t,e){let n=this.getVendors().find(({vendor:a})=>a===t),o=n?.configuration,r=o?.properties?.apiKey;if(!n||!o||!r)return;let s=this._languageModelsConfigurationService.getLanguageModelsProviderGroups().find(a=>a.vendor===t&&a.name===e);if(!s)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);try{let a=await this._resolveConfiguration(s,o),l=await this.promptForValue(s.name,"apiKey",r,!!o.required?.includes("apiKey"),a);if(l===void 0||l===a.apiKey)return;let d={...a,apiKey:l},c={...await this._resolveLanguageModelProviderGroup(s.name,t,d,o),settings:s.settings};await this._languageModelsConfigurationService.updateLanguageModelsProviderGroup(s,c),await this._deleteSecretsInConfiguration(s,o)}catch(a){if(Kt(a))return;throw a}}async addLanguageModelsProviderGroupModel(t,e){let n=this.getVendors().find(({vendor:d})=>d===t),r=n?.configuration?.properties?.models;if(!n||!r)return;let s=this._languageModelsConfigurationService.getLanguageModelsProviderGroups().find(d=>d.vendor===t&&d.name===e);if(!s)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);let a=Array.isArray(s.models),l=a?this.getSnippetForArrayItem(r):this.getSnippetForProperty("models",r);l&&await this._languageModelsConfigurationService.configureLanguageModels({group:s,snippet:l,snippetTarget:a?"models":"group"})}async openLanguageModelsProviderGroupSettings(t,e){let n=this._languageModelsConfigurationService.getLanguageModelsProviderGroups().find(o=>o.vendor===t&&o.name===e);if(!n)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);await this._languageModelsConfigurationService.configureLanguageModels({group:n})}async configureModel(t){let e=this._modelCache.get(t);if(!e||!e.configurationSchema)return;let n=this._modelsGroups.get(e.vendor),o;if(n){for(let s of n)if(s.modelIdentifiers.includes(t)&&s.group){o=s.group;break}}if(!o){let s=this.getVendors().find(d=>d.vendor===e.vendor);if(!s)return;let l={name:s.displayName,vendor:e.vendor,settings:{[e.id]:{}}};o=await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(l),await this._resolveAllLanguageModels(e.vendor,!0)}let r=this._getModelConfigurationSnippet(e.id,e.configurationSchema);await this._languageModelsConfigurationService.configureLanguageModels({group:o,snippet:r})}_getModelConfigurationSnippet(t,e){let n=[];if(e.properties)for(let[r,s]of Object.entries(e.properties))if(s.defaultSnippets?.[0]){let a=s.defaultSnippets[0],l=a.bodyText??JSON.stringify(a.body,null,"			");l=l.replace(/"(\^[^"]*)"/g,(d,c)=>c.substring(1)),n.push(`			"${r}": ${l}`)}else s.default!==void 0?n.push(`			"${r}": ${JSON.stringify(s.default)}`):n.push(`			"${r}": \${${r}}`);let o=n.length>0?`{
${n.join(`,
`)}
		}`:`{
			$0
		}`;return`"settings": {
		"${t}": ${o}
	}`}async addLanguageModelsProviderGroup(t,e,n){let o=this.getVendors().find(({vendor:s})=>s===e);if(!o)throw new Error(`Vendor ${e} not found.`);let r=await this._resolveLanguageModelProviderGroup(t,e,n,o.configuration);await this._languageModelsConfigurationService.addLanguageModelsProviderGroup(r)}async removeLanguageModelsProviderGroup(t,e){let n=this.getVendors().find(({vendor:s})=>s===t);if(!n)throw new Error(`Vendor ${t} not found.`);let r=this._languageModelsConfigurationService.getLanguageModelsProviderGroups().find(s=>s.vendor===t&&s.name===e);if(!r)throw new Error(`Language model provider group ${e} for vendor ${t} not found.`);await this._deleteSecretsInConfiguration(r,n.configuration),await this._languageModelsConfigurationService.removeLanguageModelsProviderGroup(r)}requireConfiguring(t){if(t.additionalProperties)return!0;if(!t.properties)return!1;for(let e of Object.keys(t.properties))if(!this.canPromptForProperty(t.properties[e]))return!0;return!1}getSnippetForFirstUnconfiguredProperty(t,e){if(e.properties){for(let n of Object.keys(e.properties))if(t[n]===void 0){let o=e.properties[n],r=this.getSnippetForProperty(n,o);if(r)return r}}}getSnippetForProperty(t,e){let n=this.getDefaultSnippetBodyText(e);return n?`"${t}": ${n}`:void 0}getSnippetForArrayItem(t){return this.getDefaultSnippetBodyText(t,!0)}getDefaultSnippetBodyText(t,e=!1){let n=t.defaultSnippets?.[0];if(!n)return;let o=e?Array.isArray(n.body)&&n.body.length>0?JSON.stringify(n.body[0],null,"	"):void 0:n.bodyText??JSON.stringify(n.body,null,"	");if(o)return o.replace(/"(\^[^"]*)"/g,(r,s)=>s.substring(1))}async promptForName(t,e,n){let o=n?.name;if(!o){o=e.displayName;let a=1;for(;t.some(l=>l.vendor===e.vendor&&l.name===o);)a++,o=`${e.displayName} ${a}`}let r,s=new z;try{await new Promise(a=>{let l=s.add(this._quickInputService.createInputBox());l.title=p(8696,null),l.placeholder=p(8699,null),l.value=o,l.ignoreFocusOut=!0,s.add(l.onDidChangeValue(d=>{if(!d){l.validationMessage=p(8697,null),l.severity=it.Error;return}if(t.some(c=>c!==n&&c.vendor===e.vendor&&c.name===d)){l.validationMessage=p(8701,null),l.severity=it.Error;return}l.validationMessage=void 0,l.severity=it.Ignore})),s.add(l.onDidAccept(async()=>{r=l.value,l.hide()})),s.add(l.onDidHide(()=>a())),l.show()})}finally{s.dispose()}return r}async promptForConfiguration(t,e,n){if(!e.properties)return;let o=n?{...n}:{};for(let r of Object.keys(e.properties)){let s=e.properties[r],a=!!e.required?.includes(r),l=await this.promptForValue(t,r,s,a,n);l!==void 0&&(o[r]=l)}return o}async promptForValue(t,e,n,o,r){if(!n||!this.canPromptForProperty(n))return;if(n.type==="array"&&n.items&&!Array.isArray(n.items)&&n.items.enum){let a=await this.promptForArray(t,e,n);return a===void 0?void 0:a}if(n.type==="string"&&Array.isArray(n.enum)&&n.enum.length>0)return this.promptForEnum(t,e,n,r);let s=await this.promptForInput(t,e,n,o,r);if(s!==void 0)return s}canPromptForProperty(t){return!t||typeof t=="boolean"?!1:!!(t.type==="array"&&t.items&&!Array.isArray(t.items)&&t.items.enum||t.type==="string"||t.type==="number"||t.type==="integer"||t.type==="boolean")}getDescriptionPlaintext(t){if(t.description)return t.description;let e=t.markdownDescription;if(e)return e.replace(/`([^`]+)`/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1")}async promptForArray(t,e,n){if(!n.items||Array.isArray(n.items)||!n.items.enum)return;let o=n.items.enum,r=new z;try{return await new Promise(s=>{let a=r.add(this._quickInputService.createQuickPick());a.title=`${t}: ${n.title??e}`,a.items=o.map(l=>({label:l})),a.placeholder=this.getDescriptionPlaintext(n)??p(8702,null,e),a.canSelectMany=!0,a.ignoreFocusOut=!0,r.add(a.onDidAccept(()=>{s(a.selectedItems.map(l=>l.label)),a.hide()})),r.add(a.onDidHide(()=>{s(void 0)})),a.show()})}finally{r.dispose()}}async promptForEnum(t,e,n,o){let r=n.enum;if(!Array.isArray(r)||r.length===0)return;let s=n.enumDescriptions,a=Array.isArray(n.enumItemLabels)?n.enumItemLabels:void 0,l=o?.[e]!==void 0?String(o[e]):n.default!==void 0?String(n.default):void 0,d=r.map((u,m)=>({label:a?.[m]??String(u),description:s?.[m],id:String(u)})),c=new z;try{return await new Promise(u=>{let m=c.add(this._quickInputService.createQuickPick());if(m.title=`${t}: ${n.title??e}`,m.items=d,m.placeholder=this.getDescriptionPlaintext(n)??p(8702,null,e),m.ignoreFocusOut=!0,l!==void 0){let g=d.find(h=>h.id===l);g&&(m.activeItems=[g])}c.add(m.onDidAccept(()=>{let g=m.selectedItems[0];u(g?.id),m.hide()})),c.add(m.onDidHide(()=>{u(void 0)})),m.show()})}finally{c.dispose()}}async promptForInput(t,e,n,o,r){let s=new z;try{let a=d=>{if(!d&&o)return p(8703,null)},l=await new Promise((d,c)=>{let u=s.add(this._quickInputService.createInputBox());u.title=`${t}: ${n.title??e}`,u.placeholder=p(8698,null,e),u.password=!!n.secret,u.ignoreFocusOut=!0,r?.[e]?u.value=String(r?.[e]):n.default&&(u.value=String(n.default));let m=this.getDescriptionPlaintext(n);m&&(u.prompt=m),s.add(u.onDidChangeValue(g=>{let h=a(g);h?(u.validationMessage=h,u.severity=it.Error):(u.validationMessage=void 0,u.severity=it.Ignore)})),s.add(u.onDidAccept(()=>{let g=a(u.value);if(g){u.validationMessage=g,u.severity=it.Error;return}d(u.value),u.hide()})),s.add(u.onDidHide(g=>{g.reason===2?c(new Ue):d(void 0)})),u.show()});return l?n.type==="number"||n.type==="integer"?Number(l):n.type==="boolean"?l==="true":l:void 0}finally{s.dispose()}}encodeSecretKey(t){return eF(Wc.SECRET_INPUT,t)}decodeSecretKey(t){if(Me(t))return t.substring(t.indexOf(":")+1,t.length-1)}_clearModelCache(t){let e=new Map;for(let[n,o]of this._modelCache.entries())o.vendor===t&&(e.set(n,o),this._modelCache.delete(n));return e}_clearModelConfigurations(t){for(let[e]of this._modelConfigurations)(this._modelCache.get(e)?.vendor===t||e.startsWith(`${t}/`))&&this._modelConfigurations.delete(e)}async _resolveConfiguration(t,e){if(!e)return{};let n={};for(let o in t){if(o==="vendor"||o==="name"||o==="range"||o==="modelsRange"||o==="settings")continue;let r=t[o];if(e.properties?.[o]?.secret){let s=this.decodeSecretKey(r);r=s?await this._secretStorageService.get(s):void 0}n[o]=r}return n}async _resolveLanguageModelProviderGroup(t,e,n,o){if(!o)return{name:t,vendor:e};let r={};for(let s in n){let a=n[s];if(o.properties?.[s]?.secret&&Me(a)){let l=`${Wc.SECRET_KEY_PREFIX}${Yn(Pe()).toString(16)}`;await this._secretStorageService.set(l,a),a=this.encodeSecretKey(l)}r[s]=a}return{name:t,vendor:e,...r}}async _deleteSecretsInConfiguration(t,e){if(!e)return;let{vendor:n,name:o,range:r,modelsRange:s,...a}=t;for(let l in a){let d=t[l];if(e.properties?.[l]?.secret){let c=this.decodeSecretKey(d);c&&await this._secretStorageService.delete(c)}}}async migrateLanguageModelsProviderGroup(t){let{vendor:e,name:n,...o}=t;if(!this._vendors.get(e))throw new Error(`Vendor ${e} not found.`);await this._extensionService.activateByEvent(`onLanguageModelChatProvider:${e}`);let r=this._providers.get(e);if(!r)throw new Error(`Chat model provider for vendor ${e} is not registered.`);await r.provideLanguageModelChatInfo({group:n,silent:!1,configuration:o},me.None),await this.addLanguageModelsProviderGroup(n,e,o)}_readRecentlyUsedModels(){return this._storageService.getObject(dW,0,[])}_saveRecentlyUsedModels(){this._storageService.store(dW,this._recentlyUsedModelIds,0,0)}getRecentlyUsedModelIds(){return this._recentlyUsedModelIds.filter(t=>this._modelCache.has(t)&&t!==$v).slice(0,4)}addToRecentlyUsedList(t){if(t===$v)return;let e=this._recentlyUsedModelIds.indexOf(t);e!==-1&&this._recentlyUsedModelIds.splice(e,1),this._recentlyUsedModelIds.unshift(t),this._recentlyUsedModelIds.length>20&&(this._recentlyUsedModelIds.length=20),this._saveRecentlyUsedModels()}clearRecentlyUsedList(){this._recentlyUsedModelIds=[],this._saveRecentlyUsedModels()}_readPinnedModels(){return this._storageService.getObject(cW,0,[])}_savePinnedModels(){this._storageService.store(cW,this._pinnedModelIds,0,0)}getPinnedModelIds(){return this._pinnedModelIds.filter(t=>t!==$v&&this._modelCache.has(t))}pinModel(t){t===$v||this._pinnedModelIds.includes(t)||(this._pinnedModelIds.push(t),this._savePinnedModels(),this._onDidChangePinnedModels.fire())}unpinModel(t){let e=this._pinnedModelIds.indexOf(t);e!==-1&&(this._pinnedModelIds.splice(e,1),this._savePinnedModels(),this._onDidChangePinnedModels.fire())}isModelPinned(t){return t!==$v&&this._pinnedModelIds.includes(t)}_getGroupNameForVendor(t){return this._vendors.get(t)?.displayName??t}_getModelIdsInGroup(t,e){let n=this._modelsGroups.get(t);if(!n)return[];let o=[],r=this._getGroupNameForVendor(t);for(let s of n)(s.group?.name??r)===e&&o.push(...s.modelIdentifiers);return o}_readVisibility(){let t=this._storageService.getObject(uW,0,{});this._hiddenModelIds=new Set(Array.isArray(t?.hiddenModels)?t.hiddenModels:[])}_saveVisibility(){this._storageService.store(uW,{hiddenModels:Array.from(this._hiddenModelIds)},0,0)}isGroupHidden(t,e){let n=this._getModelIdsInGroup(t,e);return n.length>0&&n.every(o=>this._hiddenModelIds.has(o))}isModelHidden(t){return this._hiddenModelIds.has(t)}setGroupHidden(t,e,n){let o=!1,r=this._getModelIdsInGroup(t,e);for(let s of r)n?this._hiddenModelIds.has(s)||(this._hiddenModelIds.add(s),o=!0):this._hiddenModelIds.delete(s)&&(o=!0);o&&(this._saveVisibility(),this._onDidChangeModelVisibility.fire())}setModelHidden(t,e){let n=!1;e?this._hiddenModelIds.has(t)||(this._hiddenModelIds.add(t),n=!0):this._hiddenModelIds.delete(t)&&(n=!0),n&&(this._saveVisibility(),this._onDidChangeModelVisibility.fire())}getHiddenModelIds(){return Array.from(this._hiddenModelIds)}getModelsControlManifest(){return this._modelsControlManifest}_setModelsControlManifest(t){this._modelsControlRawResponse=t,this._refreshModelsControlManifest()}_refreshModelsControlManifest(){let t=this._modelsControlRawResponse,e={},n={};if(t?.free){let o=Array.isArray(t.free)?t.free:Object.values(t.free);for(let r of o)!r||!st(r)||(e[r.id]={label:r.label,featured:r.featured,exists:this._modelCache.has(`copilot/${r.id}`)})}if(t?.paid){let o=Array.isArray(t.paid)?t.paid:Object.values(t.paid);for(let r of o)!r||!st(r)||(n[r.id]={label:r.label,featured:r.featured,minVSCodeVersion:r.minVSCodeVersion,exists:this._modelCache.has(`copilot/${r.id}`)})}this._modelsControlManifest={free:e,paid:n},this._onDidChangeModelsControlManifest.fire(this._modelsControlManifest)}_initChatControlData(){if(this._chatControlUrl=this._productService.chatParticipantRegistry,!this._chatControlUrl)return;let t=this._storageService.get(qA,-1);try{this._restrictedChatParticipants.set(JSON.parse(t??"{}"),void 0)}catch{this._storageService.remove(qA,-1)}let e=this._storageService.get(KA,-1);try{let n=JSON.parse(e??"{}");st(n)&&this._setModelsControlManifest(n)}catch{this._storageService.remove(KA,-1)}this._refreshChatControlData()}_refreshChatControlData(){this._chatControlDisposed||this._fetchChatControlData().catch(t=>this._logService.warn("Failed to fetch chat control data",t)).then(()=>Vt(300*1e3)).then(()=>this._refreshChatControlData())}async _fetchChatControlData(){this._logService.trace("[LM] Fetching chat control data from",this._chatControlUrl);let t;try{t=await this._requestService.request({type:"GET",url:this._chatControlUrl,callSite:"languageModels.fetchChatControlData"},me.None)}catch(o){this._logService.warn("[LM] Failed to request chat control data",Zi(o));return}if(t.res.statusCode!==200){this._logService.warn(`[LM] Chat control data request failed with status ${t.res.statusCode}`);return}let e;try{e=await KH(t)}catch(o){this._logService.warn("[LM] Failed to parse chat control response",Zi(o));return}if(this._logService.trace("[LM] Received chat control response",e?Object.keys(e):"null"),!e||e.version!==1){this._logService.warn("[LM] Unexpected chat control response version",e?.version);return}let n=e.restrictedChatParticipants;this._restrictedChatParticipants.set(n,void 0),this._storageService.store(qA,JSON.stringify(n),-1,1),e.models&&(this._logService.trace("[LM] Updating models control manifest",{freeCount:Object.keys(e.models.free??{}).length,paidCount:Object.keys(e.models.paid??{}).length}),this._setModelsControlManifest(e.models),this._storageService.store(KA,JSON.stringify(e.models),-1,1))}dispose(){this._chatControlDisposed=!0,this._store.dispose(),this._providers.clear()}};Wc=D([C(0,pS),C(1,ne),C(2,nr),C(3,Ir),C(4,aW),C(5,$V),C(6,qV),C(7,hs),C(8,Kx)],Wc);var ECe=new k("debugType",void 0,{type:"string",description:p(10310,null)}),wCe=new k("debugConfigurationType",void 0,{type:"string",description:p(10301,null)}),kCe=new k("debugState","inactive",{type:"string",description:p(10309,null)}),q6="debugUx",PCe=new k(q6,"default",{type:"string",description:p(10311,null)}),_Ce=new k("hasDebugged",!1,{type:"boolean",description:p(10319,null)}),DCe=new k("inDebugMode",!1,{type:"boolean",description:p(10321,null)}),RCe=new k("inDebugRepl",!1,{type:"boolean",description:p(10322,null)}),ACe=new k("breakpointWidgetVisible",!1,{type:"boolean",description:p(10291,null)}),MCe=new k("inBreakpointWidget",!1,{type:"boolean",description:p(10320,null)}),LCe=new k("breakpointsFocused",!0,{type:"boolean",description:p(10289,null)}),OCe=new k("watchExpressionsFocused",!0,{type:"boolean",description:p(10347,null)}),NCe=new k("watchExpressionsExist",!1,{type:"boolean",description:p(10346,null)}),UCe=new k("variablesFocused",!0,{type:"boolean",description:p(10343,null)}),FCe=new k("expressionSelected",!1,{type:"boolean",description:p(10315,null)}),HCe=new k("breakpointInputFocused",!1,{type:"boolean",description:p(10285,null)}),VCe=new k("callStackItemType",void 0,{type:"string",description:p(10297,null)}),WCe=new k("callStackSessionIsAttach",!1,{type:"boolean",description:p(10299,null)}),BCe=new k("callStackItemStopped",!1,{type:"boolean",description:p(10296,null)}),$Ce=new k("callStackSessionHasOneThread",!1,{type:"boolean",description:p(10298,null)}),zCe=new k("callStackFocused",!0,{type:"boolean",description:p(10295,null)}),qCe=new k("watchItemType",void 0,{type:"string",description:p(10348,null)}),KCe=new k("canViewMemory",void 0,{type:"boolean",description:p(10300,null)}),jCe=new k("breakpointItemType",void 0,{type:"string",description:p(10287,null)}),GCe=new k("breakpointItemBytes",void 0,{type:"boolean",description:p(10286,null)}),QCe=new k("breakpointHasModes",!1,{type:"boolean",description:p(10284,null)}),JCe=new k("breakpointSupportsCondition",!1,{type:"boolean",description:p(10290,null)}),YCe=new k("loadedScriptsSupported",!1,{type:"boolean",description:p(10327,null)}),XCe=new k("loadedScriptsItemType",void 0,{type:"string",description:p(10326,null)}),ZCe=new k("focusedSessionIsAttach",!1,{type:"boolean",description:p(10316,null)}),eTe=new k("focusedSessionIsNoDebug",!1,{type:"boolean",description:p(10317,null)}),tTe=new k("stepBackSupported",!1,{type:"boolean",description:p(10332,null)}),nTe=new k("restartFrameSupported",!1,{type:"boolean",description:p(10330,null)}),oTe=new k("stackFrameSupportsRestart",!1,{type:"boolean",description:p(10331,null)}),rTe=new k("jumpToCursorSupported",!1,{type:"boolean",description:p(10324,null)}),iTe=new k("stepIntoTargetsSupported",!1,{type:"boolean",description:p(10333,null)}),sTe=new k("breakpointsExist",!1,{type:"boolean",description:p(10288,null)}),aTe=new k("debuggersAvailable",!1,{type:"boolean",description:p(10304,null)}),lTe=new k("debugExtensionAvailable",!0,{type:"boolean",description:p(10302,null)}),dTe=new k("debugProtocolVariableMenuContext",void 0,{type:"string",description:p(10305,null)}),cTe=new k("debugSetVariableSupported",!1,{type:"boolean",description:p(10308,null)}),uTe=new k("debugSetDataBreakpointAddressSupported",!1,{type:"boolean",description:p(10306,null)}),pTe=new k("debugSetExpressionSupported",!1,{type:"boolean",description:p(10307,null)}),mTe=new k("breakWhenValueChangesSupported",!1,{type:"boolean",description:p(10292,null)}),gTe=new k("breakWhenValueIsAccessedSupported",!1,{type:"boolean",description:p(10293,null)}),fTe=new k("breakWhenValueIsReadSupported",!1,{type:"boolean",description:p(10294,null)}),hTe=new k("terminateDebuggeeSupported",!1,{type:"boolean",description:p(10335,null)}),vTe=new k("suspendDebuggeeSupported",!1,{type:"boolean",description:p(10334,null)}),bTe=new k("terminateThreadsSupported",!1,{type:"boolean",description:p(10336,null)}),yTe=new k("variableEvaluateNamePresent",!1,{type:"boolean",description:p(10337,null)}),ITe=new k("variableIsReadonly",!1,{type:"boolean",description:p(10340,null)}),xTe=new k("variableValue",!1,{type:"string",description:p(10345,null)}),STe=new k("variableType",!1,{type:"string",description:p(10344,null)}),CTe=new k("variableInterfaces",!1,{type:"array",description:p(10339,null)}),TTe=new k("variableName",!1,{type:"string",description:p(10342,null)}),ETe=new k("variableLanguage",!1,{type:"string",description:p(10341,null)}),wTe=new k("variableExtensionId",!1,{type:"string",description:p(10338,null)}),kTe=new k("exceptionWidgetVisible",!1,{type:"boolean",description:p(10314,null)}),PTe=new k("multiSessionRepl",!1,{type:"boolean",description:p(10329,null)}),_Te=new k("multiSessionDebug",!1,{type:"boolean",description:p(10328,null)}),DTe=new k("disassembleRequestSupported",!1,{type:"boolean",description:p(10312,null)}),RTe=new k("disassemblyViewFocus",!1,{type:"boolean",description:p(10313,null)}),ATe=new k("languageSupportsDisassembleRequest",!1,{type:"boolean",description:p(10325,null)}),MTe=new k("focusedStackFrameHasInstructionReference",!1,{type:"boolean",description:p(10318,null)});var LTe={enum:["neverOpen","openOnSessionStart","openOnFirstSessionStart"],default:"openOnFirstSessionStart",description:p(10323,null)};var jA=(e=>(e[e.Initial=1]="Initial",e[e.Dynamic=2]="Dynamic",e))(jA||{});var OTe=R("debugService");var K6;(e=>(e.deserialize=n=>n,e.serialize=n=>n))(K6||={});var j6;(e=>(e.deserialize=n=>({id:n.id,name:n.name,iconPath:n.iconPath&&{light:b.revive(n.iconPath.light),dark:b.revive(n.iconPath.dark)},iconClass:n.iconClass,visualization:n.visualization}),e.serialize=n=>n))(j6||={});var FTe=R("IMcpGalleryManifestService");var qv;(l=>(l.LATEST_PROTOCOL_VERSION="2025-11-25",l.JSONRPC_VERSION="2.0",l.PARSE_ERROR=-32700,l.INVALID_REQUEST=-32600,l.METHOD_NOT_FOUND=-32601,l.INVALID_PARAMS=-32602,l.INTERNAL_ERROR=-32603,l.URL_ELICITATION_REQUIRED=-32042))(qv||={});function pW(i,t){return Ee.toKey(i)+"/"+t}var G6;(t=>{function i(e,n){return e.id===n.id&&e.remoteAuthority===n.remoteAuthority&&e.label===n.label&&e.trustBehavior===n.trustBehavior&&Bt(e.sandbox,n.sandbox)}t.equals=i})(G6||={});var Q6;(n=>{function i(o){return o}n.toSerialized=i;function t(o){return{id:o.id,label:o.label,cacheNonce:o.cacheNonce,staticMetadata:o.staticMetadata,launch:Bc.fromSerialized(o.launch),sandboxEnabled:o.sandboxEnabled,variableReplacement:o.variableReplacement?mW.fromSerialized(o.variableReplacement):void 0}}n.fromSerialized=t;function e(o,r){return o.id===r.id&&o.label===r.label&&o.cacheNonce===r.cacheNonce&&an(o.roots,r.roots,(s,a)=>s.toString()===a.toString())&&Bt(o.launch,r.launch)&&Bt(o.presentation,r.presentation)&&Bt(o.variableReplacement,r.variableReplacement)&&Bt(o.devMode,r.devMode)&&o.sandboxEnabled===r.sandboxEnabled}n.equals=e})(Q6||={});var mW;(e=>{function i(n){return n}e.toSerialized=i;function t(n){return{section:n.section,folder:n.folder?{...n.folder,uri:b.revive(n.folder.uri)}:void 0,target:n.target}}e.fromSerialized=t})(mW||={});var J6;(t=>t.Empty={working:!1,starting:[],serversRequiringInteraction:[]})(J6||={});var sEe=R("IMcpService");var Y6;(t=>{let i;(s=>(s[s.Trusted=0]="Trusted",s[s.TrustedOnNonce=1]="TrustedOnNonce",s[s.Untrusted=2]="Untrusted",s[s.Unknown=3]="Unknown"))(i=t.Kind||={})})(Y6||={});var Bc;(n=>{function i(o){return o}n.toSerialized=i;function t(o){switch(o.type){case 2:return{type:o.type,uri:b.revive(o.uri),headers:o.headers,oauth:o.oauth,authentication:o.authentication};case 1:return{type:o.type,cwd:o.cwd,command:o.command,args:o.args,env:o.env,envFile:o.envFile,sandbox:o.sandbox}}}n.fromSerialized=t;async function e(o){let r=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(JSON.stringify(o)));return wl(W.wrap(new Uint8Array(r)))}n.hash=e})(Bc||={});var ko;(r=>{let i;(c=>(c[c.Stopped=0]="Stopped",c[c.Starting=1]="Starting",c[c.Running=2]="Running",c[c.Error=3]="Error"))(i=r.Kind||={}),r.toString=s=>{switch(s.state){case 0:return p(12502,null);case 1:return p(12501,null);case 2:return p(12500,null);case 3:return p(12499,null,s.message);default:ap(s)}},r.toKindString=s=>{switch(s){case 0:return"stopped";case 1:return"starting";case 2:return"running";case 3:return"error";default:ap(s)}},r.canBeStarted=s=>s===3||s===0,r.isRunning=s=>!(0,r.canBeStarted)(s.state)})(ko||={});var Kv=class i extends Error{constructor(e){super(`${i.prefix}${e}`);this.reason=e}static{this.prefix="User interaction required: "}static is(e){return e.message.startsWith(this.prefix)}};var X6=R("IMcpWorkbenchService"),bS=class extends U{constructor(e,n){super();this.containers=e;this._register(n.onChange(this.update,this))}set mcpServer(e){this.containers.forEach(n=>n.mcpServer=e)}update(e){for(let n of this.containers)e&&n.mcpServer?e.id===n.mcpServer.id&&(n.mcpServer=e):n.update()}};bS=D([C(1,X6)],bS);var aEe=new k("mcpServersGalleryStatus","unavailable"),lEe=new k("hasInstalledMcpServers",!0);var Z6;(o=>{o.scheme="mcp-resource";let t="dylo78gyp";function e(r,s){return typeof s=="string"&&(s=b.parse(s)),s.with({scheme:o.scheme,authority:wl(W.fromString(r.id)),path:["",s.scheme,s.authority||t].join("/")+s.path})}o.fromServer=e;function n(r){if(typeof r=="string"&&(r=b.parse(r)),r.scheme!==o.scheme)throw new Error(`Invalid MCP resource URI: ${r.toString()}`);let s=r.path.split("/");if(s.length<3)throw new Error(`Invalid MCP resource URI: ${r.toString()}`);let[,a,l,...d]=s,c=new URL(`${a}://${l.toLowerCase()===t?"":l}`);return c.pathname=d.length?"/"+d.join("/"):"",c.search=r.query,c.hash=r.fragment,{definitionId:jh(r.authority).toString(),resourceURL:c}}o.toServer=n})(Z6||={});var dEe=R("IMcpServerSampling");var cEe=R("IMcpElicitationService");function QA(){return Object.create(null)}var Ta="**",xS="/",yS="[/\\\\]",IS="[^/\\\\]",eq=/\//g;function gW(i,t){switch(i){case 0:return"";case 1:return`${IS}*?`;default:return`(?:${yS}|${IS}+${yS}${t?`|${yS}${IS}+`:""})*?`}}function Ea(i,t){if(!i)return[];let e=[],n=!1,o=!1,r="";for(let s of i){switch(s){case t:if(!n&&!o){e.push(r),r="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":o=!0;break;case"]":o=!1;break}r+=s}return r&&e.push(r),e}function yW(i){if(!i)return"";let t="",e=Ea(i,xS);if(e.every(n=>n===Ta))t=".*";else{let n=!1;e.forEach((o,r)=>{if(o===Ta){if(n)return;t+=gW(2,r===e.length-1)}else{let s=!1,a="",l=!1,d="";for(let c of o){if(c!=="}"&&s){a+=c;continue}if(l&&(c!=="]"||!d)){let u;c==="-"?u=c:(c==="^"||c==="!")&&!d?u="^":c===xS?u="":u=Qo(c),d+=u;continue}switch(c){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let m=`(?:${Ea(a,",").map(g=>yW(g)).join("|")})`;t+=m,s=!1,a="";break}case"]":{t+="["+d+"]",l=!1,d="";break}case"?":t+=IS;continue;case"*":t+=gW(1);continue;default:t+=Qo(c)}}r<e.length-1&&(e[r+1]!==Ta||r+2<e.length)&&(t+=yS)}n=o===Ta})}return t}var tq=/^\*\*\/\*\.[\w\.-]+$/,nq=/^\*\*\/([\w\.-]+)\/?$/,oq=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,rq=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,iq=/^\*\*((\/[\w\.-]+)+)\/?$/,sq=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,fW=new Kr(1e4),hW=function(){return!1},ys=function(){return null};function JA(i,t){if(!i)return ys;let e;typeof i!="string"?e=i.pattern:e=i,e=e.trim();let n=t.ignoreCase??!1,o={...t,equals:n?Pn:(l,d)=>l===d,endsWith:n?oF:(l,d)=>l.endsWith(d),isEqualOrParent:(l,d)=>Rr(l,d,t.ignoreCase??!Je)},r=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=fW.get(r);if(s)return vW(s,i,o);let a;return tq.test(e)?s=aq(e.substring(4),e,o):(a=nq.exec(GA(e,o)))?s=lq(a[1],e,o):(t.trimForExclusions?rq:oq).test(e)?s=dq(e,o):(a=iq.exec(GA(e,o)))?s=bW(a[1].substring(1),e,!0,o):(a=sq.exec(GA(e,o)))?s=bW(a[1],e,!1,o):s=cq(e,o),fW.set(r,s),vW(s,i,o)}function vW(i,t,e){if(typeof t=="string")return i;let n=function(o,r){return e.isEqualOrParent(o,t.base)?i(b_(o.substring(t.base.length),Pt),r):null};return n.allBasenames=i.allBasenames,n.allPaths=i.allPaths,n.basenames=i.basenames,n.patterns=i.patterns,n}function GA(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function aq(i,t,e){return function(n,o){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function lq(i,t,e){let n=`/${i}`,o=`\\${i}`,r=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,o)?t:null},s=[i];return r.basenames=s,r.patterns=[t],r.allBasenames=s,r}function dq(i,t){let e=xW(i.slice(1,-1).split(",").map(a=>JA(a,t)).filter(a=>a!==ys),i),n=e.length;if(!n)return ys;if(n===1)return e[0];let o=function(a,l){for(let d=0,c=e.length;d<c;d++)if(e[d](a,l))return i;return null},r=e.find(a=>!!a.allBasenames);r&&(o.allBasenames=r.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(o.allPaths=s),o}function bW(i,t,e,n){let o=Pt===$e.sep,r=o?i:i.replace(eq,Pt),s=Pt+r,a=$e.sep+i,l;return e?l=function(d,c){return typeof d=="string"&&(n.equals(d,r)||n.endsWith(d,s)||!o&&(n.equals(d,i)||n.endsWith(d,a)))?t:null}:l=function(d,c){return typeof d=="string"&&(n.equals(d,r)||!o&&n.equals(d,i))?t:null},l.allPaths=[(e?"*/":"./")+i],l}function cq(i,t){try{let e=new RegExp(`^${yW(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return ys}}function ir(i,t,e){return!i||typeof t!="string"?!1:Po(i,e)(t)}function Po(i,t={}){if(!i)return hW;if(typeof i=="string"||IW(i)){let e=JA(i,t);if(e===ys)return hW;let n=function(o,r){return!!e(o,r)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return uq(i,t)}function IW(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function YA(i){return i.allBasenames||[]}function XA(i){return i.allPaths||[]}function uq(i,t){let e=xW(Object.getOwnPropertyNames(i).map(a=>pq(a,i[a],t)).filter(a=>a!==ys)),n=e.length;if(!n)return ys;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(c,u){let m;for(let g=0,h=e.length;g<h;g++){let f=e[g](c,u);if(typeof f=="string")return f;Gr(f)&&(m||(m=[]),m.push(f))}return m?(async()=>{for(let g of m){let h=await g;if(typeof h=="string")return h}return null})():null},l=e.find(c=>!!c.allBasenames);l&&(a.allBasenames=l.allBasenames);let d=e.reduce((c,u)=>u.allPaths?c.concat(u.allPaths):c,[]);return d.length&&(a.allPaths=d),a}let o=function(a,l,d){let c,u;for(let m=0,g=e.length;m<g;m++){let h=e[m];h.requiresSiblings&&d&&(l||(l=ot(a)),c||(c=l.substring(0,l.length-yl(a).length)));let f=h(a,l,c,d);if(typeof f=="string")return f;Gr(f)&&(u||(u=[]),u.push(f))}return u?(async()=>{for(let m of u){let g=await m;if(typeof g=="string")return g}return null})():null},r=e.find(a=>!!a.allBasenames);r&&(o.allBasenames=r.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(o.allPaths=s),o}function pq(i,t,e){if(t===!1)return ys;let n=JA(i,e);if(n===ys)return ys;if(typeof t=="boolean")return n;if(t){let o=t.when;if(typeof o=="string"){let r=(s,a,l,d)=>{if(!d||!n(s,a))return null;let c=o.replace("$(basename)",()=>l),u=d(c);return Gr(u)?u.then(m=>m?i:null):u?i:null};return r.requiresSiblings=!0,r}}return n}function xW(i,t){let e=i.filter(a=>!!a.basenames);if(e.length<2)return i;let n=e.reduce((a,l)=>{let d=l.basenames;return d?a.concat(d):a},[]),o;if(t){o=[];for(let a=0,l=n.length;a<l;a++)o.push(t)}else o=e.reduce((a,l)=>{let d=l.patterns;return d?a.concat(d):a},[]);let r=function(a,l){if(typeof a!="string")return null;if(!l){let c;for(c=a.length;c>0;c--){let u=a.charCodeAt(c-1);if(u===47||u===92)break}l=a.substring(c)}let d=n.indexOf(l);return d!==-1?o[d]:null};r.basenames=n,r.patterns=o,r.allBasenames=n;let s=i.filter(a=>!a.basenames);return s.push(r),s}function ZA(i,t){return an(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)}var mq=R("notebookDocumentService"),e1=["W","X","Y","Z","a","b","c","d","e","f"],gq=new RegExp(`^[${e1.join("")}]+`),SW=7;function SS(i){if(i.scheme!==B.vscodeNotebookCell)return;let t=i.fragment.indexOf("s");if(t<0)return;let e=parseInt(i.fragment.substring(0,t).replace(gq,""),SW),n=No(i.fragment.substring(t+1)).toString();if(!isNaN(e))return{handle:e,notebook:i.with({scheme:n,fragment:null})}}function CW(i,t){let e=t.toString(SW),o=`${e.length<e1.length?e1[e.length-1]:"z"}${e}s${so(W.fromString(i.scheme),!0,!0)}`;return i.with({scheme:B.vscodeNotebookCell,fragment:o})}function TW(i){if(i.scheme!==B.vscodeNotebookMetadata)return;let t=No(i.fragment).toString();return i.with({scheme:t,fragment:null})}function EW(i){let t=`${so(W.fromString(i.scheme),!0,!0)}`;return i.with({scheme:B.vscodeNotebookMetadata,fragment:t})}function n1(i){if(i.scheme!==B.vscodeNotebookCellOutput)return;let t=new URLSearchParams(i.query),e=t.get("openIn");if(!e)return;let n=t.get("outputId")??void 0,o=SS(i.with({scheme:B.vscodeNotebookCell,query:null})),r=t.get("outputIndex")?parseInt(t.get("outputIndex")||"",10):void 0,s=o?o.notebook:i.with({scheme:t.get("notebookScheme")||B.file,fragment:null,query:null}),a=t.get("cellIndex")?parseInt(t.get("cellIndex")||"",10):void 0;return{notebook:s,openIn:e,outputId:n,outputIndex:r,cellHandle:o?.handle,cellFragment:i.fragment,cellIndex:a}}var t1=class{constructor(){this._documents=new je}getNotebook(t){if(t.scheme===B.vscodeNotebookCell){let e=SS(t);if(e){let n=this._documents.get(e.notebook);if(n)return n}}if(t.scheme===B.vscodeNotebookCellOutput){let e=n1(t);if(e){let n=this._documents.get(e.notebook);if(n)return n}}return this._documents.get(t)}addNotebookDocument(t){this._documents.set(t.uri,t)}removeNotebookDocument(t){this._documents.delete(t.uri)}};Ke(mq,t1,1);var OEe=["application/json","application/javascript","text/html","image/svg+xml",Cr.latex,Cr.markdown,"image/png","image/jpeg",Cr.text],NEe=[Cr.latex,Cr.markdown,"application/json","text/html","image/svg+xml","image/png","image/jpeg",Cr.text];var fq;(n=>{n.scheme=B.vscodeNotebookMetadata;function t(o){return EW(o)}n.generate=t;function e(o){return TW(o)}n.parse=e})(fq||={});var jv;(d=>{d.scheme=B.vscodeNotebookCell;function t(c,u){return CW(c,u)}d.generate=t;function e(c){return SS(c)}d.parse=e;function n(c,u){return c.with({scheme:B.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"editor",outputId:u??"",notebookScheme:c.scheme!==B.file?c.scheme:""}).toString()})}d.generateCellOutputUriWithId=n;function o(c,u,m){return c.with({scheme:B.vscodeNotebookCellOutput,fragment:u.fragment,query:new URLSearchParams({openIn:"notebook",outputIndex:String(m)}).toString()})}d.generateCellOutputUriWithIndex=o;function r(c,u,m,g,h){return c.with({scheme:B.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"notebookOutputEditor",notebook:c.toString(),cellIndex:String(m),outputId:g,outputIndex:String(h)}).toString()})}d.generateOutputEditorUri=r;function s(c){return n1(c)}d.parseCellOutputUri=s;function a(c,u,m){return d.generate(c,u).with({scheme:m})}d.generateCellPropertyUri=a;function l(c,u){if(c.scheme===u)return d.parse(c.with({scheme:d.scheme}))}d.parseCellPropertyUri=l})(jv||={});var UEe=new k("notebookEditorCursorAtBoundary","none"),FEe=new k("notebookEditorCursorAtLineBoundary","none");var wW=class i{static{this._prefix="notebook/"}static create(t,e){return`${i._prefix}${t}/${e??t}`}static parse(t){if(t.startsWith(i._prefix)){let e=t.substring(i._prefix.length).split("/");if(e.length===2)return{notebookType:e[0],viewType:e[1]}}}},hq=new TextDecoder;function kW(i){let t=[],e=!1;for(let s of i)(t.length===0||e)&&(t.push(s),e=!0);let n=bq(t),o=W.concat(t.map(s=>W.wrap(s))),r=Cq(o);return n=n||r.byteLength!==o.byteLength,{data:r,didCompression:n}}var CS="\x1B[A",o1=CS.split("").map(i=>i.charCodeAt(0)),vq=10;function bq(i){let t=!1;return i.forEach((e,n)=>{if(n===0||e.length<CS.length)return;let o=i[n-1],r=e.subarray(0,CS.length);if(r[0]===o1[0]&&r[1]===o1[1]&&r[2]===o1[2]){let s=o.lastIndexOf(vq);if(s===-1)return;t=!0,i[n-1]=o.subarray(0,s),i[n]=e.subarray(CS.length)}}),t}function yq(i){let t=i;do i=t,t=i.replace(/[^\n]\x08/gm,"");while(t.length<i.length);return i}function Iq(i){for(i=i.replace(/\r+\n/gm,`
`);i.search(/\r[^$]/g)>-1;){let t=i.match(/^(.*)\r+/m)[1],e=i.match(/\r+(.*)$/m)[1];e=e+t.slice(e.length,t.length),i=i.replace(/\r+.*$/m,"\r").replace(/^.*\r/m,e)}return i}var xq=8,Sq=13;function Cq(i){return!i.buffer.includes(xq)&&!i.buffer.includes(Sq)?i:W.fromString(Iq(yq(hq.decode(i.buffer))))}var VEe=R("scm");var WEe=R("scmView");var Ze=class i{constructor(t,e=t.length){this.path=t;this.viewEnd=e;if(t.length===0||e<1)throw new Error("cannot create test with empty path")}static fromExtHostTestItem(t,e,n=t.parent){if(t._isRoot)return new i([e]);let o=[t.id];for(let r=n;r&&r.id!==e;r=r.parent)o.push(r.id);return o.push(e),new i(o.reverse())}static isRoot(t){return!t.includes("\0")}static root(t){let e=t.indexOf("\0");return e===-1?t:t.slice(0,e)}static fromString(t){return new i(t.split("\0"))}static join(t,e){return new i([...t.path,e])}static split(t){return t.split("\0")}static joinToString(t,e){return t.toString()+"\0"+e}static parentId(t){let e=t.lastIndexOf("\0");return e===-1?void 0:t.slice(0,e)}static localId(t){let e=t.lastIndexOf("\0");return e===-1?t:t.slice(e+1)}static isChild(t,e){return e[t.length]==="\0"&&e.startsWith(t)}static compare(t,e){return t===e?0:i.isChild(t,e)?2:i.isChild(e,t)?3:1}static getLengthOfCommonPrefix(t,e){if(t===0)return 0;let n=0;for(;n<t-1;){for(let o=1;o<t;o++){let r=e(o-1),s=e(o);if(r.path[n]!==s.path[n])return n}n++}return n}get rootId(){return new i(this.path,1)}get parentId(){return this.viewEnd>1?new i(this.path,this.viewEnd-1):void 0}get localId(){return this.path[this.viewEnd-1]}get controllerId(){return this.path[0]}get isRoot(){return this.viewEnd===1}*idsFromRoot(){for(let t=1;t<=this.viewEnd;t++)yield new i(this.path,t)}*idsToRoot(){for(let t=this.viewEnd;t>0;t--)yield new i(this.path,t)}compare(t){if(typeof t=="string")return i.compare(this.toString(),t);for(let e=0;e<t.viewEnd&&e<this.viewEnd;e++)if(t.path[e]!==this.path[e])return 1;return t.viewEnd>this.viewEnd?2:t.viewEnd<this.viewEnd?3:0}toJSON(){return this.toString()}toString(){if(!this.stringifed){this.stringifed=this.path[0];for(let t=1;t<this.viewEnd;t++)this.stringifed+="\0",this.stringifed+=this.path[t]}return this.stringifed}};var XEe={2:p(16554,null),4:p(16553,null),8:p(16552,null)};var _W=i=>"runId"in i,Gv;(e=>(e.serialize=n=>({range:n.range.toJSON(),uri:n.uri.toJSON()}),e.deserialize=(n,o)=>({range:We.lift(o.range),uri:n.asCanonicalUri(b.revive(o.uri))})))(Gv||={});var r1;(e=>(e.serialize=n=>({label:n.label,uri:n.uri?.toJSON(),position:n.position?.toJSON()}),e.deserialize=(n,o)=>({label:o.label,uri:o.uri?n.asCanonicalUri(b.revive(o.uri)):void 0,position:o.position?On.lift(o.position):void 0})))(r1||={});var i1;(e=>(e.serialize=n=>({message:n.message,type:0,expected:n.expected,actual:n.actual,contextValue:n.contextValue,location:n.location&&Gv.serialize(n.location),stackTrace:n.stackTrace?.map(r1.serialize)}),e.deserialize=(n,o)=>({message:o.message,type:0,expected:o.expected,actual:o.actual,contextValue:o.contextValue,location:o.location&&Gv.deserialize(n,o.location),stackTrace:o.stackTrace&&o.stackTrace.map(r=>r1.deserialize(n,r))})))(i1||={});var s1;(e=>(e.serialize=n=>({message:n.message,type:1,offset:n.offset,length:n.length,location:n.location&&Gv.serialize(n.location)}),e.deserialize=(n,o)=>({message:o.message,type:1,offset:o.offset,length:o.length,location:o.location&&Gv.deserialize(n,o.location)})))(s1||={});var a1;(n=>(n.serialize=o=>o.type===0?i1.serialize(o):s1.serialize(o),n.deserialize=(o,r)=>r.type===0?i1.deserialize(o,r):s1.deserialize(o,r),n.isDiffable=o=>o.type===0&&o.actual!==void 0&&o.expected!==void 0))(a1||={});var TS;(n=>(n.serializeWithoutMessages=o=>({state:o.state,duration:o.duration,messages:[]}),n.serialize=o=>({state:o.state,duration:o.duration,messages:o.messages.map(a1.serialize)}),n.deserialize=(o,r)=>({state:r.state,duration:r.duration,messages:r.messages.map(s=>a1.deserialize(o,s))})))(TS||={});var DW="\0",om=(i,t)=>i+DW+t,kS=i=>{let t=i.indexOf(DW);return{ctrlId:i.slice(0,t),tagId:i.slice(t+1)}},l1;(e=>(e.serialize=n=>({extId:n.extId,label:n.label,tags:n.tags,busy:n.busy,children:void 0,uri:n.uri?.toJSON(),range:n.range?.toJSON()||null,description:n.description,error:n.error,sortText:n.sortText}),e.deserialize=(n,o)=>({extId:o.extId,label:o.label,tags:o.tags,busy:o.busy,children:void 0,uri:o.uri?n.asCanonicalUri(b.revive(o.uri)):void 0,range:o.range?We.lift(o.range):null,description:o.description,error:o.error,sortText:o.sortText})))(l1||={});var $c;(e=>(e.serialize=n=>({expand:n.expand,item:l1.serialize(n.item)}),e.deserialize=(n,o)=>({controllerId:Ze.root(o.item.extId),expand:o.expand,item:l1.deserialize(n,o.item)})))($c||={});var ES;(e=>(e.serialize=n=>{let o;return n.item&&(o={},n.item.label!==void 0&&(o.label=n.item.label),n.item.tags!==void 0&&(o.tags=n.item.tags),n.item.busy!==void 0&&(o.busy=n.item.busy),n.item.uri!==void 0&&(o.uri=n.item.uri?.toJSON()),n.item.range!==void 0&&(o.range=n.item.range?.toJSON()),n.item.description!==void 0&&(o.description=n.item.description),n.item.error!==void 0&&(o.error=n.item.error),n.item.sortText!==void 0&&(o.sortText=n.item.sortText)),{extId:n.extId,expand:n.expand,item:o}},e.deserialize=n=>{let o;return n.item&&(o={},n.item.label!==void 0&&(o.label=n.item.label),n.item.tags!==void 0&&(o.tags=n.item.tags),n.item.busy!==void 0&&(o.busy=n.item.busy),n.item.range!==void 0&&(o.range=n.item.range?We.lift(n.item.range):null),n.item.description!==void 0&&(o.description=n.item.description),n.item.error!==void 0&&(o.error=n.item.error),n.item.sortText!==void 0&&(o.sortText=n.item.sortText)),{extId:n.extId,expand:n.expand,item:o}}))(ES||={});var PS=(i,t)=>{t.expand!==void 0&&(i.expand=t.expand),t.item!==void 0&&(i.item=i.item?Object.assign(i.item,t.item):t.item)},Tq;(n=>(n.serializeWithoutMessages=o=>({...$c.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(TS.serializeWithoutMessages)}),n.serialize=o=>({...$c.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(TS.serialize)}),n.deserialize=(o,r)=>({...$c.deserialize(o,r),ownComputedState:r.ownComputedState,computedState:r.computedState,tasks:r.tasks.map(s=>TS.deserialize(o,s)),retired:!0})))(Tq||={});var RW;(e=>(e.empty=()=>({covered:0,total:0}),e.sum=(n,o)=>{n.covered+=o.covered,n.total+=o.total}))(RW||={});var Eq;(n=>(n.serialize=o=>({id:o.id,statement:o.statement,branch:o.branch,declaration:o.declaration,testIds:o.testIds,uri:o.uri.toJSON()}),n.deserialize=(o,r)=>({id:r.id,statement:r.statement,branch:r.branch,declaration:r.declaration,testIds:r.testIds,uri:o.asCanonicalUri(b.revive(r.uri))}),n.empty=(o,r)=>({id:o,uri:r,statement:RW.empty()})))(Eq||={});function p1(i){return{...i,location:i.location?.toJSON()}}function m1(i){return i.location=i.location?On.isIPosition(i.location)?On.lift(i.location):We.lift(i.location):void 0,i}var wq;(e=>(e.serialize=n=>n.type===0?c1.serialize(n):u1.serialize(n),e.deserialize=n=>n.type===0?c1.deserialize(n):u1.deserialize(n)))(wq||={});var d1;(e=>(e.serialize=p1,e.deserialize=m1))(d1||={});var c1;(e=>(e.serialize=p1,e.deserialize=m1))(c1||={});var u1;(e=>(e.serialize=n=>({...p1(n),branches:n.branches?.map(d1.serialize)}),e.deserialize=n=>({...m1(n),branches:n.branches?.map(d1.deserialize)})))(u1||={});var _S;(e=>(e.deserialize=(n,o)=>o.op===0?{op:o.op,item:$c.deserialize(n,o.item)}:o.op===1?{op:o.op,item:ES.deserialize(o.item)}:o.op===2?{op:o.op,uri:n.asCanonicalUri(b.revive(o.uri)),docv:o.docv}:o,e.serialize=n=>n.op===0?{op:n.op,item:$c.serialize(n.item)}:n.op===1?{op:n.op,item:ES.serialize(n.item)}:n))(_S||={});var wS=class{constructor(t){this.uriIdentity=t;this._tags=new Map;this.items=new Map;this.roots=new Set;this.busyControllerCount=0;this.pendingRootCount=0;this.tags=this._tags}apply(t){let e=this.createChangeCollector();for(let n of t)switch(n.op){case 0:this.add($c.deserialize(this.uriIdentity,n.item),e);break;case 1:this.update(ES.deserialize(n.item),e);break;case 3:this.remove(n.itemId,e);break;case 5:this.retireTest(n.itemId);break;case 4:this.updatePendingRoots(n.amount);break;case 6:this._tags.set(n.tag.id,n.tag);break;case 7:this._tags.delete(n.id);break}e.complete?.()}add(t,e){let n=Ze.parentId(t.item.extId)?.toString(),o;if(!n)o=this.createItem(t),this.roots.add(o),this.items.set(t.item.extId,o);else if(this.items.has(n)){let r=this.items.get(n);r.children.add(t.item.extId),o=this.createItem(t,r),this.items.set(t.item.extId,o)}else{console.error(`Test with unknown parent ID: ${JSON.stringify(t)}`);return}return e.add?.(o),t.expand===2&&this.busyControllerCount++,o}update(t,e){let n=this.items.get(t.extId);if(n)return t.expand!==void 0&&(n.expand===2&&this.busyControllerCount--,t.expand===2&&this.busyControllerCount++),PS(n,t),e.update?.(n),n}remove(t,e){let n=this.items.get(t);if(!n)return;let o=Ze.parentId(n.item.extId)?.toString();o?this.items.get(o).children.delete(n.item.extId):this.roots.delete(n);let r=[[t]];for(;r.length;)for(let s of r.pop()){let a=this.items.get(s);a&&(r.push(a.children),this.items.delete(s),e.remove?.(a,a!==n),a.expand===2&&this.busyControllerCount--)}}retireTest(t){}updatePendingRoots(t){this.pendingRootCount+=t}createChangeCollector(){return{}}};var twe=R("IAiSettingsSearchService");var AW=R("editorGroupsService");var Pwe=R("editorService"),MW=-1,LW=-2;var Qv=(i,t)=>i===t,kq={range:(i,t)=>i===t?!0:!i||!t?!1:i.equalsRange(t),busy:Qv,label:Qv,description:Qv,error:Qv,sortText:Qv,tags:(i,t)=>!(i.length!==t.length||i.some(e=>!t.includes(e)))},Pq=Object.entries(kq),_q=(i,t)=>{let e;for(let[n,o]of Pq)o(i[n],t[n])||(e?e[n]=t[n]:e={[n]:t[n]});return e},DS=class extends U{constructor(e){super();this.options=e;this.debounceSendDiff=this._register(new Jn(()=>this.flushDiff(),200));this.diffOpEmitter=this._register(new E);this.tree=new Map;this.tags=new Map;this.diff=[];this.onDidGenerateDiff=this.diffOpEmitter.event;this.root.canResolveChildren=!0,this.upsertItem(this.root,void 0)}get root(){return this.options.root}set resolveHandler(e){this._resolveHandler=e;for(let n of this.tree.values())this.updateExpandability(n)}get resolveHandler(){return this._resolveHandler}collectDiff(){let e=this.diff;return this.diff=[],e}pushDiff(e){switch(e.op){case 2:{for(let n of this.diff)if(n.op===2&&n.uri===e.uri){n.docv=e.docv;return}break}case 1:{let n=this.diff[this.diff.length-1];if(n){if(n.op===1&&n.item.extId===e.item.extId){PS(n.item,e.item);return}if(n.op===0&&n.item.item.extId===e.item.extId){PS(n.item,e.item);return}}break}}this.diff.push(e),this.debounceSendDiff.isScheduled()||this.debounceSendDiff.schedule()}expand(e,n){let o=this.tree.get(e);if(o){if((o.expandLevels===void 0||n>o.expandLevels)&&(o.expandLevels=n),o.expand===1){let r=this.resolveChildren(o);return r.isOpen()?this.expandChildren(o,n-1):r.wait().then(()=>this.expandChildren(o,n-1))}else if(o.expand===3)return o.resolveBarrier?.isOpen()===!1?o.resolveBarrier.wait().then(()=>this.expandChildren(o,n-1)):this.expandChildren(o,n-1)}}dispose(){for(let e of this.tree.values())this.options.getApiFor(e.actual).listener=void 0;this.tree.clear(),this.diff=[],super.dispose()}onTestItemEvent(e,n){switch(n.op){case 3:this.removeItem(Ze.joinToString(e.fullId,n.id));break;case 0:this.upsertItem(n.item,e);break;case 5:for(let o of n.ops)this.onTestItemEvent(e,o);break;case 1:this.diffTagRefs(n.new,n.old,e.fullId.toString());break;case 2:this.updateExpandability(e);break;case 4:this.pushDiff({op:1,item:{extId:e.fullId.toString(),item:n.update}});break;case 6:this.documentSynced(e.actual.uri);break;default:ap(n)}}documentSynced(e){e&&this.pushDiff({op:2,uri:e,docv:this.options.getDocumentVersion(e)})}upsertItem(e,n){let o=Ze.fromExtHostTestItem(e,this.root.id,n?.actual),r=this.options.getApiFor(e);r.parent&&r.parent!==n?.actual&&this.options.getChildren(r.parent).delete(e.id);let s=this.tree.get(o.toString());if(!s){s={fullId:o,actual:e,expandLevels:n?.expandLevels?n.expandLevels-1:void 0,expand:0},e.tags.forEach(this.incrementTagRefs,this),this.tree.set(s.fullId.toString(),s),this.setItemParent(e,n),this.pushDiff({op:0,item:{controllerId:this.options.controllerId,expand:s.expand,item:this.options.toITestItem(e)}}),this.connectItemAndChildren(e,s,n);return}if(s.actual===e){this.connectItem(e,s,n);return}if(s.actual.uri?.toString()!==e.uri?.toString())return this.removeItem(o.toString()),this.upsertItem(e,n);let a=this.options.getChildren(s.actual),l=s.actual,d=_q(this.options.toITestItem(l),this.options.toITestItem(e));this.options.getApiFor(l).listener=void 0,s.actual=e,s.resolveBarrier=void 0,s.expand=0,d&&(d.hasOwnProperty("tags")&&(this.diffTagRefs(e.tags,l.tags,o.toString()),delete d.tags),this.onTestItemEvent(s,{op:4,update:d})),this.connectItemAndChildren(e,s,n);for(let[u,m]of a)this.options.getChildren(e).get(m.id)||this.removeItem(Ze.joinToString(o,m.id));let c=s.expandLevels;c!==void 0&&queueMicrotask(()=>{s.expand===1&&(s.expandLevels=void 0,this.expand(o.toString(),c))}),this.documentSynced(s.actual.uri)}diffTagRefs(e,n,o){let r=new Set(n.map(s=>s.id));for(let s of e)r.delete(s.id)||this.incrementTagRefs(s);this.pushDiff({op:1,item:{extId:o,item:{tags:e.map(s=>om(this.options.controllerId,s.id))}}}),r.forEach(this.decrementTagRefs,this)}incrementTagRefs(e){let n=this.tags.get(e.id);n?n.refCount++:(this.tags.set(e.id,{refCount:1}),this.pushDiff({op:6,tag:{id:om(this.options.controllerId,e.id)}}))}decrementTagRefs(e){let n=this.tags.get(e);n&&!--n.refCount&&(this.tags.delete(e),this.pushDiff({op:7,id:om(this.options.controllerId,e)}))}setItemParent(e,n){this.options.getApiFor(e).parent=n&&n.actual!==this.root?n.actual:void 0}connectItem(e,n,o){this.setItemParent(e,o);let r=this.options.getApiFor(e);r.parent=o?.actual,r.listener=s=>this.onTestItemEvent(n,s),this.updateExpandability(n)}connectItemAndChildren(e,n,o){this.connectItem(e,n,o);for(let[r,s]of this.options.getChildren(e))this.upsertItem(s,n)}updateExpandability(e){let n;this._resolveHandler?e.resolveBarrier?n=e.resolveBarrier.isOpen()?3:2:n=e.actual.canResolveChildren?1:0:n=0,n!==e.expand&&(e.expand=n,this.pushDiff({op:1,item:{extId:e.fullId.toString(),expand:n}}),n===1&&e.expandLevels!==void 0&&this.resolveChildren(e))}expandChildren(e,n){if(n<0)return;let o=[];for(let[r,s]of this.options.getChildren(e.actual)){let a=this.expand(Ze.joinToString(e.fullId,s.id),n);Gr(a)&&o.push(a)}if(o.length)return Promise.all(o).then(()=>{})}resolveChildren(e){if(e.resolveBarrier)return e.resolveBarrier;if(!this._resolveHandler){let s=new Sn;return s.open(),s}e.expand=2,this.pushExpandStateUpdate(e);let n=e.resolveBarrier=new Sn,o=s=>{console.error(`Unhandled error in resolveHandler of test controller "${this.options.controllerId}"`,s)},r;try{r=this._resolveHandler(e.actual===this.root?void 0:e.actual)}catch(s){o(s)}return Gr(r)?r.catch(o).then(()=>{n.open(),this.updateExpandability(e)}):(n.open(),this.updateExpandability(e)),e.resolveBarrier}pushExpandStateUpdate(e){this.pushDiff({op:1,item:{extId:e.fullId.toString(),expand:e.expand}})}removeItem(e){let n=this.tree.get(e);if(!n)throw new Error("attempting to remove non-existent child");this.pushDiff({op:3,itemId:e});let o=[n];for(;o.length;){let r=o.pop();if(r){this.options.getApiFor(r.actual).listener=void 0;for(let s of r.actual.tags)this.decrementTagRefs(s.id);this.tree.delete(r.fullId.toString());for(let[s,a]of this.options.getChildren(r.actual))o.push(this.tree.get(Ze.joinToString(r.fullId,a.id)))}}}flushDiff(){let e=this.collectDiff();e.length&&this.diffOpEmitter.fire(e)}},g1=class extends Error{constructor(t){super(`Attempted to insert a duplicate test item ID ${t}`)}},jl=class extends Error{constructor(t){super(`TestItem with ID "${t}" is invalid. Make sure to create it from the createTestItem method.`)}},f1=class extends Error{constructor(t,e,n){super(`TestItem with ID "${t}" is from controller "${e}" and cannot be added as a child of an item from controller "${n}".`)}},OW=(i,t,e)=>{let n=new Map;return{get size(){return n.size},forEach(o,r){for(let s of n.values())o.call(r,s,this)},[Symbol.iterator](){return n.entries()},replace(o){let r=new Map,s=new Set(n.keys()),a={op:5,ops:[]};for(let l of o){if(!(l instanceof e))throw new jl(l.id);let d=t(l).controllerId;if(d!==i.controllerId)throw new f1(l.id,d,i.controllerId);if(r.has(l.id))throw new g1(l.id);r.set(l.id,l),s.delete(l.id),a.ops.push({op:0,item:l})}for(let l of s.keys())a.ops.push({op:3,id:l});i.listener?.(a),n=r},add(o){if(!(o instanceof e))throw new jl(o.id);n.set(o.id,o),i.listener?.({op:0,item:o})},delete(o){n.delete(o)&&i.listener?.({op:3,id:o})},get(o){return n.get(o)},toJSON(){return Array.from(n.values())}}};var NW=new WeakMap,UW=(i,t)=>{let e={controllerId:t};return NW.set(i,e),e},rm=i=>{let t=NW.get(i);if(!t)throw new jl(i?.id||"<unknown>");return t};var FW=R("remoteAuthorityResolverService");var im=class{constructor(t){this.id=t;this.type=1}toString(){return`Managed(${this.id})`}},RS=class{constructor(t,e){this.host=t;this.port=e;this.type=0}toString(){return`WebSocket(${this.host}:${this.port})`}};var sm=class i extends no{static isNotAvailable(t){return t instanceof i&&t._code==="NotAvailable"}static isTemporarilyNotAvailable(t){return t instanceof i&&t._code==="TemporarilyNotAvailable"}static isNoResolverFound(t){return t instanceof i&&t._code==="NoResolverFound"}static isInvalidAuthority(t){return t instanceof i&&t._code==="InvalidAuthority"}static isHandled(t){return t instanceof i&&t.isHandled}constructor(t,e="Unknown",n){super(t),this._message=t,this._code=e,this._detail=n,this.isHandled=e==="NotAvailable"&&n===!0,Object.setPrototypeOf(this,i.prototype)}};function h1(i){let t=i.indexOf("+");return t===-1?i:i.substring(0,t)}function he(i){return Object.assign(i,{apply:function(...e){if(e.length===0)return Reflect.construct(i,[]);{let n=e.length===1?[]:e[1];return Reflect.construct(i,n,e[0].constructor)}},call:function(...e){if(e.length===0)return Reflect.construct(i,[]);{let[n,...o]=e;return Reflect.construct(i,o,n.constructor)}}})}var lo,Xt=class{constructor(t,e=!1){op(this,lo);Ch(this,lo,new Mt(t,{supportThemeIcons:e}))}static isMarkdownString(t){return t instanceof Xt?!0:!t||typeof t!="object"?!1:t.appendCodeblock&&t.appendMarkdown&&t.appendText&&t.value!==void 0}get value(){return hn(this,lo).value}set value(t){hn(this,lo).value=t}get isTrusted(){return hn(this,lo).isTrusted}set isTrusted(t){hn(this,lo).isTrusted=t}get supportThemeIcons(){return hn(this,lo).supportThemeIcons}set supportThemeIcons(t){hn(this,lo).supportThemeIcons=t}get supportHtml(){return hn(this,lo).supportHtml}set supportHtml(t){hn(this,lo).supportHtml=t}get supportAlertSyntax(){return hn(this,lo).supportAlertSyntax}set supportAlertSyntax(t){hn(this,lo).supportAlertSyntax=t}get baseUri(){return hn(this,lo).baseUri}set baseUri(t){hn(this,lo).baseUri=t}appendText(t){return hn(this,lo).appendText(t),this}appendMarkdown(t){return hn(this,lo).appendMarkdown(t),this}appendCodeblock(t,e){return hn(this,lo).appendCodeblock(e??"",t),this}};lo=new WeakMap,Xt=D([he],Xt);var De=class{static Min(...t){if(t.length===0)throw new TypeError;let e=t[0];for(let n=1;n<t.length;n++){let o=t[n];o.isBefore(e)&&(e=o)}return e}static Max(...t){if(t.length===0)throw new TypeError;let e=t[0];for(let n=1;n<t.length;n++){let o=t[n];o.isAfter(e)&&(e=o)}return e}static isPosition(t){if(!t)return!1;if(t instanceof De)return!0;let{line:e,character:n}=t;return typeof e=="number"&&typeof n=="number"}static of(t){if(t instanceof De)return t;if(this.isPosition(t))return new De(t.line,t.character);throw new Error("Invalid argument, is NOT a position-like object")}get line(){return this._line}get character(){return this._character}constructor(t,e){if(t<0)throw Ve("line must be non-negative");if(e<0)throw Ve("character must be non-negative");this._line=t,this._character=e}isBefore(t){return this._line<t._line?!0:t._line<this._line?!1:this._character<t._character}isBeforeOrEqual(t){return this._line<t._line?!0:t._line<this._line?!1:this._character<=t._character}isAfter(t){return!this.isBeforeOrEqual(t)}isAfterOrEqual(t){return!this.isBefore(t)}isEqual(t){return this._line===t._line&&this._character===t._character}compareTo(t){return this._line<t._line?-1:this._line>t.line?1:this._character<t._character?-1:this._character>t._character?1:0}translate(t,e=0){if(t===null||e===null)throw Ve();let n;return typeof t>"u"?n=0:typeof t=="number"?n=t:(n=typeof t.lineDelta=="number"?t.lineDelta:0,e=typeof t.characterDelta=="number"?t.characterDelta:0),n===0&&e===0?this:new De(this.line+n,this.character+e)}with(t,e=this.character){if(t===null||e===null)throw Ve();let n;return typeof t>"u"?n=this.line:typeof t=="number"?n=t:(n=typeof t.line=="number"?t.line:this.line,e=typeof t.character=="number"?t.character:this.character),n===this.line&&e===this.character?this:new De(n,e)}toJSON(){return{line:this.line,character:this.character}}[Symbol.for("debug.description")](){return`(${this.line}:${this.character})`}};De=D([he],De);var be=class{static isRange(t){return t instanceof be?!0:!t||typeof t!="object"?!1:De.isPosition(t.start)&&De.isPosition(t.end)}static of(t){if(t instanceof be)return t;if(this.isRange(t))return new be(t.start,t.end);throw new Error("Invalid argument, is NOT a range-like object")}get start(){return this._start}get end(){return this._end}constructor(t,e,n,o){let r,s;if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"?(r=new De(t,e),s=new De(n,o)):De.isPosition(t)&&De.isPosition(e)&&(r=De.of(t),s=De.of(e)),!r||!s)throw new Error("Invalid arguments");r.isBefore(s)?(this._start=r,this._end=s):(this._start=s,this._end=r)}contains(t){return be.isRange(t)?this.contains(t.start)&&this.contains(t.end):De.isPosition(t)?!(De.of(t).isBefore(this._start)||this._end.isBefore(t)):!1}isEqual(t){return this._start.isEqual(t._start)&&this._end.isEqual(t._end)}intersection(t){let e=De.Max(t.start,this._start),n=De.Min(t.end,this._end);if(!e.isAfter(n))return new be(e,n)}union(t){if(this.contains(t))return this;if(t.contains(this))return t;let e=De.Min(t.start,this._start),n=De.Max(t.end,this.end);return new be(e,n)}get isEmpty(){return this._start.isEqual(this._end)}get isSingleLine(){return this._start.line===this._end.line}with(t,e=this.end){if(t===null||e===null)throw Ve();let n;return t?De.isPosition(t)?n=t:(n=t.start||this.start,e=t.end||this.end):n=this.start,n.isEqual(this._start)&&e.isEqual(this.end)?this:new be(n,e)}toJSON(){return[this.start,this.end]}[Symbol.for("debug.description")](){return v1(this)}};be=D([he],be);function v1(i){return i.isEmpty?`[${i.start.line}:${i.start.character})`:`[${i.start.line}:${i.start.character} -> ${i.end.line}:${i.end.character})`}var kt=class{constructor(t){this.value=t}append(t){return new kt(this.value?this.value+kt.sep+t:t)}intersects(t){return this.contains(t)||t.contains(this)}contains(t){return this.value===t.value||t.value.startsWith(this.value+kt.sep)}};kt.sep=".",kt=D([he],kt);kt.Empty=new kt("");kt.QuickFix=kt.Empty.append("quickfix");kt.Refactor=kt.Empty.append("refactor");kt.RefactorExtract=kt.Refactor.append("extract");kt.RefactorInline=kt.Refactor.append("inline");kt.RefactorMove=kt.Refactor.append("move");kt.RefactorRewrite=kt.Refactor.append("rewrite");kt.Source=kt.Empty.append("source");kt.SourceOrganizeImports=kt.Source.append("organizeImports");kt.SourceFixAll=kt.Source.append("fixAll");kt.Notebook=kt.Empty.append("notebook");var Jv=(e=>(e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated",e))(Jv||{}),zc=(o=>(o[o.Hint=3]="Hint",o[o.Information=2]="Information",o[o.Warning=1]="Warning",o[o.Error=0]="Error",o))(zc||{}),Is=class{static is(t){return t?typeof t.message=="string"&&t.location&&be.isRange(t.location.range)&&b.isUri(t.location.uri):!1}constructor(t,e){this.location=t,this.message=e}static isEqual(t,e){return t===e?!0:!t||!e?!1:t.message===e.message&&t.location.range.isEqual(e.location.range)&&t.location.uri.toString()===e.location.uri.toString()}};Is=D([he],Is);var wa=class{constructor(t,e,n=0){if(!be.isRange(t))throw new TypeError("range must be set");if(!e)throw new TypeError("message must be set");this.range=t,this.message=e,this.severity=n}toJSON(){return{severity:zc[this.severity],message:this.message,range:this.range,source:this.source,code:this.code}}static isEqual(t,e){return t===e?!0:!t||!e?!1:t.message===e.message&&t.severity===e.severity&&t.code===e.code&&t.severity===e.severity&&t.source===e.source&&t.range.isEqual(e.range)&&an(t.tags,e.tags)&&an(t.relatedInformation,e.relatedInformation,Is.isEqual)}};wa=D([he],wa);var tn=class{static isLocation(t){return t instanceof tn?!0:t?be.isRange(t.range)&&b.isUri(t.uri):!1}constructor(t,e){if(this.uri=t,e)if(be.isRange(e))this.range=be.of(e);else if(De.isPosition(e))this.range=new be(e,e);else throw new Error("Illegal argument")}toJSON(){return{uri:this.uri,range:this.range}}};tn=D([he],tn);var Yv=(e=>(e[e.Markup=1]="Markup",e[e.Code=2]="Code",e))(Yv||{}),co=class i{static isNotebookRange(t){return t instanceof i?!0:t?typeof t.start=="number"&&typeof t.end=="number":!1}get start(){return this._start}get end(){return this._end}get isEmpty(){return this._start===this._end}constructor(t,e){if(t<0)throw Ve("start must be positive");if(e<0)throw Ve("end must be positive");t<=e?(this._start=t,this._end=e):(this._start=e,this._end=t)}with(t){let e=this._start,n=this._end;return t.start!==void 0&&(e=t.start),t.end!==void 0&&(n=t.end),e===this._start&&n===this._end?this:new i(e,n)}},xs=class i{static validate(t){if(typeof t.kind!="number")throw new Error("NotebookCellData MUST have 'kind' property");if(typeof t.value!="string")throw new Error("NotebookCellData MUST have 'value' property");if(typeof t.languageId!="string")throw new Error("NotebookCellData MUST have 'languageId' property")}static isNotebookCellDataArray(t){return Array.isArray(t)&&t.every(e=>i.isNotebookCellData(e))}static isNotebookCellData(t){return!0}constructor(t,e,n,o,r,s,a){this.kind=t,this.value=e,this.languageId=n,this.mime=o,this.outputs=r??[],this.metadata=s,this.executionSummary=a,i.validate(this)}},qc=class{constructor(t){this.cells=t}},$o=class{static isNotebookCellEdit(t){return t instanceof $o?!0:t?co.isNotebookRange(t)&&Array.isArray(t.newCells):!1}static replaceCells(t,e){return new $o(t,e)}static insertCells(t,e){return new $o(new co(t,t),e)}static deleteCells(t){return new $o(t,[])}static updateCellMetadata(t,e){let n=new $o(new co(t,t),[]);return n.newCellMetadata=e,n}static updateNotebookMetadata(t){let e=new $o(new co(0,0),[]);return e.newNotebookMetadata=t,e}constructor(t,e){this.range=t,this.newCells=e}};$o=D([he],$o);var Kc=class i{constructor(t,e){this.data=t;this.mime=e;let n=$R(e,!0);if(!n)throw new Error(`INVALID mime type: ${e}. Must be in the format "type/subtype[;optionalparameter]"`);this.mime=n}static isNotebookCellOutputItem(t){return t instanceof i?!0:t?typeof t.mime=="string"&&t.data instanceof Uint8Array:!1}static error(t){let e={name:t.name,message:t.message,stack:t.stack};return i.json(e,"application/vnd.code.notebook.error")}static stdout(t){return i.text(t,"application/vnd.code.notebook.stdout")}static stderr(t){return i.text(t,"application/vnd.code.notebook.stderr")}static bytes(t,e="application/octet-stream"){return new i(t,e)}static#e=new TextEncoder;static text(t,e=Cr.text){let n=i.#e.encode(String(t));return new i(n,e)}static json(t,e="text/x-json"){let n=JSON.stringify(t,void 0,"	");return i.text(n,e)}},Ss=class i{static isNotebookCellOutput(t){return t instanceof i?!0:!t||typeof t!="object"?!1:typeof t.id=="string"&&Array.isArray(t.items)}static ensureUniqueMimeTypes(t,e=!1){let n=new Set,o=new Set;for(let r=0;r<t.length;r++){let s=t[r],a=$R(s.mime);if(!n.has(a)||Ex(a)){n.add(a);continue}o.add(r),e&&console.warn(`DUPLICATED mime type '${s.mime}' will be dropped`)}return o.size===0?t:t.filter((r,s)=>!o.has(s))}constructor(t,e,n){this.items=i.ensureUniqueMimeTypes(t,!0),typeof e=="string"?(this.id=e,this.metadata=n):(this.id=Pe(),this.metadata=e??n)}};var Zn=class extends be{static isSelection(t){return t instanceof Zn?!0:!t||typeof t!="object"?!1:be.isRange(t)&&De.isPosition(t.anchor)&&De.isPosition(t.active)&&typeof t.isReversed=="boolean"}get anchor(){return this._anchor}get active(){return this._active}constructor(t,e,n,o){let r,s;if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"?(r=new De(t,e),s=new De(n,o)):De.isPosition(t)&&De.isPosition(e)&&(r=De.of(t),s=De.of(e)),!r||!s)throw new Error("Invalid arguments");super(r,s),this._anchor=r,this._active=s}get isReversed(){return this._anchor===this._end}toJSON(){return{start:this.start,end:this.end,active:this.active,anchor:this.anchor}}[Symbol.for("debug.description")](){return Dq(this)}};Zn=D([he],Zn);function Dq(i){let t=v1(i);return i.isEmpty||(i.active.isEqual(i.start)?t=`|${t}`:t=`${t}|`),t}var eo=class{constructor(t){this._tabstop=1;this.value=t||""}static isSnippetString(t){return t instanceof eo?!0:!t||typeof t!="object"?!1:typeof t.value=="string"}static _escape(t){return t.replace(/\$|}|\\/g,"\\$&")}appendText(t){return this.value+=eo._escape(t),this}appendTabstop(t=this._tabstop++){return this.value+="$",this.value+=t,this}appendPlaceholder(t,e=this._tabstop++){if(typeof t=="function"){let n=new eo;n._tabstop=this._tabstop,t(n),this._tabstop=n._tabstop,t=n.value}else t=eo._escape(t);return this.value+="${",this.value+=e,this.value+=":",this.value+=t,this.value+="}",this}appendChoice(t,e=this._tabstop++){let n=t.map(o=>o.replaceAll(/[|\\,]/g,"\\$&")).join(",");return this.value+="${",this.value+=e,this.value+="|",this.value+=n,this.value+="|}",this}appendVariable(t,e){if(typeof e=="function"){let n=new eo;n._tabstop=this._tabstop,e(n),this._tabstop=n._tabstop,e=n.value}else typeof e=="string"&&(e=e.replace(/\$|}/g,"\\$&"));return this.value+="${",this.value+=t,e&&(this.value+=":",this.value+=e),this.value+="}",this}};eo=D([he],eo);var ka=class i{static isSnippetTextEdit(t){return t instanceof i?!0:t?be.isRange(t.range)&&eo.isSnippetString(t.snippet):!1}static replace(t,e){return new i(t,e)}static insert(t,e){return i.replace(new be(t,t),e)}constructor(t,e){this.range=t,this.snippet=e}};var am=(q=>(q[q.File=0]="File",q[q.Module=1]="Module",q[q.Namespace=2]="Namespace",q[q.Package=3]="Package",q[q.Class=4]="Class",q[q.Method=5]="Method",q[q.Property=6]="Property",q[q.Field=7]="Field",q[q.Constructor=8]="Constructor",q[q.Enum=9]="Enum",q[q.Interface=10]="Interface",q[q.Function=11]="Function",q[q.Variable=12]="Variable",q[q.Constant=13]="Constant",q[q.String=14]="String",q[q.Number=15]="Number",q[q.Boolean=16]="Boolean",q[q.Array=17]="Array",q[q.Object=18]="Object",q[q.Key=19]="Key",q[q.Null=20]="Null",q[q.EnumMember=21]="EnumMember",q[q.Struct=22]="Struct",q[q.Event=23]="Event",q[q.Operator=24]="Operator",q[q.TypeParameter=25]="TypeParameter",q))(am||{}),Xv=(t=>(t[t.Deprecated=1]="Deprecated",t))(Xv||{}),Fr=class{static validate(t){if(!t.name)throw new Error("name must not be falsy")}constructor(t,e,n,o,r){this.name=t,this.kind=e,this.containerName=r,typeof n=="string"&&(this.containerName=n),o instanceof tn?this.location=o:n instanceof be&&(this.location=new tn(o,n)),Fr.validate(this)}toJSON(){return{name:this.name,kind:am[this.kind],location:this.location,containerName:this.containerName}}};Fr=D([he],Fr);var jc=(e=>(e[e.LF=1]="LF",e[e.CRLF=2]="CRLF",e))(jc||{}),Bn=class{static isTextEdit(t){return t instanceof Bn?!0:!t||typeof t!="object"?!1:be.isRange(t)&&typeof t.newText=="string"}static replace(t,e){return new Bn(t,e)}static insert(t,e){return Bn.replace(new be(t,t),e)}static delete(t){return Bn.replace(t,"")}static setEndOfLine(t){let e=new Bn(new be(new De(0,0),new De(0,0)),"");return e.newEol=t,e}get range(){return this._range}set range(t){if(t&&!be.isRange(t))throw Ve("range");this._range=t}get newText(){return this._newText||""}set newText(t){if(t&&typeof t!="string")throw Ve("newText");this._newText=t}get newEol(){return this._newEol}set newEol(t){if(t&&typeof t!="number")throw Ve("newEol");this._newEol=t}constructor(t,e){this._range=t,this._newText=e}toJSON(){return{range:this.range,newText:this.newText,newEol:this._newEol}}};Bn=D([he],Bn);var Er=class{constructor(){this._edits=[]}_allEntries(){return this._edits}renameFile(t,e,n,o){this._edits.push({_type:1,from:t,to:e,options:n,metadata:o})}createFile(t,e,n){this._edits.push({_type:1,from:void 0,to:t,options:e,metadata:n})}deleteFile(t,e,n){this._edits.push({_type:1,from:t,to:void 0,options:e,metadata:n})}replaceNotebookMetadata(t,e,n){this._edits.push({_type:3,metadata:n,uri:t,edit:{editType:5,metadata:e}})}replaceNotebookCells(t,e,n,o){let r=e.start,s=e.end;(r!==s||n.length>0)&&this._edits.push({_type:5,uri:t,index:r,count:s-r,cells:n,metadata:o})}replaceNotebookCellMetadata(t,e,n,o){this._edits.push({_type:3,metadata:o,uri:t,edit:{editType:3,index:e,metadata:n}})}replace(t,e,n,o){this._edits.push({_type:2,uri:t,edit:new Bn(e,n),metadata:o})}insert(t,e,n,o){this.replace(t,new be(e,e),n,o)}delete(t,e,n){this.replace(t,e,"",n)}has(t){return this._edits.some(e=>e._type===2&&e.uri.toString()===t.toString())}set(t,e){if(e)for(let n of e){if(!n)continue;let o,r;Array.isArray(n)?(o=n[0],r=n[1]):o=n,$o.isNotebookCellEdit(o)?o.newCellMetadata?this.replaceNotebookCellMetadata(t,o.range.start,o.newCellMetadata,r):o.newNotebookMetadata?this.replaceNotebookMetadata(t,o.newNotebookMetadata,r):this.replaceNotebookCells(t,o.range,o.newCells,r):ka.isSnippetTextEdit(o)?this._edits.push({_type:6,uri:t,range:o.range,edit:o.snippet,metadata:r,keepWhitespace:o.keepWhitespace}):this._edits.push({_type:2,uri:t,edit:o,metadata:r})}else{for(let n=0;n<this._edits.length;n++){let o=this._edits[n];switch(o._type){case 2:case 6:case 3:case 5:o.uri.toString()===t.toString()&&(this._edits[n]=void 0);break}}hU(this._edits)}}get(t){let e=[];for(let n of this._edits)n._type===2&&n.uri.toString()===t.toString()&&e.push(n.edit);return e}entries(){let t=new je;for(let e of this._edits)if(e._type===2){let n=t.get(e.uri);n||(n=[e.uri,[]],t.set(e.uri,n)),n[1].push(e.edit)}return[...t.values()]}get size(){return this.entries().length}toJSON(){return this.entries()}};Er=D([he],Er);var b1=(e=>(e[e.Top=0]="Top",e[e.Bottom=1]="Bottom",e))(b1||{});var Xc,xe=class{constructor(t){op(this,Xc);Ch(this,Xc,t)}static from(...t){let e=t;return new xe(function(){if(e){for(let n of e)n&&typeof n.dispose=="function"&&n.dispose();e=void 0}})}dispose(){typeof hn(this,Xc)=="function"&&(hn(this,Xc).call(this),Ch(this,Xc,void 0))}};Xc=new WeakMap,xe=D([he],xe);var VW=i=>{if(typeof i!="string"||i.length===0||!/^[0-9A-Za-z_\-]+$/.test(i))throw Ve("connectionToken")},AS=class{static isResolvedAuthority(t){return t&&typeof t=="object"&&typeof t.host=="string"&&typeof t.port=="number"&&(t.connectionToken===void 0||typeof t.connectionToken=="string")}constructor(t,e,n){if(typeof t!="string"||t.length===0)throw Ve("host");if(typeof e!="number"||e===0||Math.round(e)!==e)throw Ve("port");typeof n<"u"&&VW(n),this.host=t,this.port=Math.round(e),this.connectionToken=n}},dd=class{constructor(t,e){this.makeConnection=t;this.connectionToken=e;typeof e<"u"&&VW(e)}static isManagedResolvedAuthority(t){return t&&typeof t=="object"&&typeof t.makeConnection=="function"&&(t.connectionToken===void 0||typeof t.connectionToken=="string")}},Rs=class i extends Error{static NotAvailable(t,e){return new i(t,"NotAvailable",e)}static TemporarilyNotAvailable(t){return new i(t,"TemporarilyNotAvailable")}constructor(t,e="Unknown",n){super(t),this._message=t,this._code=e,this._detail=n,Object.setPrototypeOf(this,i.prototype)}},cC=(n=>(n[n.Replace=1]="Replace",n[n.Append=2]="Append",n[n.Prepend=3]="Prepend",n))(cC||{}),Gc=class{constructor(t,e){if(!t)throw new Error("Illegal argument, contents must be defined");Array.isArray(t)?this.contents=t:this.contents=[t],this.range=e}};Gc=D([he],Gc);var Gl=class extends Gc{constructor(t,e,n,o){super(t,e),this.canIncreaseVerbosity=n,this.canDecreaseVerbosity=o}};Gl=D([he],Gl);var y1=(e=>(e[e.Increase=0]="Increase",e[e.Decrease=1]="Decrease",e))(y1||{}),uC=(n=>(n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write",n))(uC||{}),Ql=class{constructor(t,e=0){this.range=t,this.kind=e}toJSON(){return{range:this.range,kind:uC[this.kind]}}};Ql=D([he],Ql);var Jl=class{constructor(t,e){this.uri=t,this.highlights=e}toJSON(){return{uri:this.uri,highlights:this.highlights.map(t=>t.toJSON())}}};Jl=D([he],Jl);var Hr=class{static validate(t){if(!t.name)throw new Error("name must not be falsy");if(!t.range.contains(t.selectionRange))throw new Error("selectionRange must be contained in fullRange");t.children?.forEach(Hr.validate)}constructor(t,e,n,o,r){this.name=t,this.detail=e,this.kind=n,this.range=o,this.selectionRange=r,this.children=[],Hr.validate(this)}};Hr=D([he],Hr);var pC=(e=>(e[e.Invoke=1]="Invoke",e[e.Automatic=2]="Automatic",e))(pC||{}),Ts=class{constructor(t,e){this.title=t,this.kind=e}};Ts=D([he],Ts);var Es=class{constructor(t,e){if(this.range=t,this.parent=e,e&&!e.range.contains(this.range))throw new Error("Invalid argument: parent must contain this range")}};Es=D([he],Es);var cd=class{constructor(t,e,n,o,r,s){this.kind=t,this.name=e,this.detail=n,this.uri=o,this.range=r,this.selectionRange=s}},vm=class{constructor(t,e){this.fromRanges=e,this.from=t}},bm=class{constructor(t,e){this.fromRanges=e,this.to=t}},mC=(n=>(n[n.Information=0]="Information",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(mC||{}),Yl=class{constructor(t,e){this.range=t,this.command=e}get isResolved(){return!!this.command}};Yl=D([he],Yl);var lm=class{constructor(t,e){this.label=t,this.documentation=e}};lm=D([he],lm);var dm=class{constructor(t,e){this.label=t,this.documentation=e,this.parameters=[]}};dm=D([he],dm);var cm=class{constructor(){this.activeSignature=0;this.activeParameter=0;this.signatures=[]}};cm=D([he],cm);var I1=(n=>(n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n))(I1||{}),x1=(e=>(e[e.Type=1]="Type",e[e.Parameter=2]="Parameter",e))(x1||{}),Xl=class{constructor(t){this.value=t}};Xl=D([he],Xl);var Zl=class{constructor(t,e,n){this.position=t,this.label=e,this.kind=n}};Zl=D([he],Zl);var gC=(n=>(n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions",n))(gC||{}),eb=(oe=>(oe[oe.Text=0]="Text",oe[oe.Method=1]="Method",oe[oe.Function=2]="Function",oe[oe.Constructor=3]="Constructor",oe[oe.Field=4]="Field",oe[oe.Variable=5]="Variable",oe[oe.Class=6]="Class",oe[oe.Interface=7]="Interface",oe[oe.Module=8]="Module",oe[oe.Property=9]="Property",oe[oe.Unit=10]="Unit",oe[oe.Value=11]="Value",oe[oe.Enum=12]="Enum",oe[oe.Keyword=13]="Keyword",oe[oe.Snippet=14]="Snippet",oe[oe.Color=15]="Color",oe[oe.File=16]="File",oe[oe.Reference=17]="Reference",oe[oe.Folder=18]="Folder",oe[oe.EnumMember=19]="EnumMember",oe[oe.Constant=20]="Constant",oe[oe.Struct=21]="Struct",oe[oe.Event=22]="Event",oe[oe.Operator=23]="Operator",oe[oe.TypeParameter=24]="TypeParameter",oe[oe.User=25]="User",oe[oe.Issue=26]="Issue",oe))(eb||{}),fC=(t=>(t[t.Deprecated=1]="Deprecated",t))(fC||{}),ed=class{constructor(t,e){this.label=t,this.kind=e}toJSON(){return{label:this.label,kind:this.kind&&eb[this.kind],detail:this.detail,documentation:this.documentation,sortText:this.sortText,filterText:this.filterText,preselect:this.preselect,insertText:this.insertText,textEdit:this.textEdit}}};ed=D([he],ed);var Pi=class{constructor(t=[],e=!1){this.items=t,this.isIncomplete=e}};Pi=D([he],Pi);var um=class{constructor(t,e,n){this.insertText=t,this.range=e,this.command=n}};um=D([he],um);var pm=class{constructor(t){this.commands=void 0;this.suppressSuggestions=void 0;this.items=t}};pm=D([he],pm);var hC=(o=>(o[o.Unknown=0]="Unknown",o[o.Word=1]="Word",o[o.Line=2]="Line",o[o.Suggest=3]="Suggest",o))(hC||{}),vC=(n=>(n[n.Accepted=0]="Accepted",n[n.Rejected=1]="Rejected",n[n.Ignored=2]="Ignored",n))(vC||{}),bC=(e=>(e[e.Code=1]="Code",e[e.Label=2]="Label",e))(bC||{}),yC=(u=>(u[u.Active=-1]="Active",u[u.Beside=-2]="Beside",u[u.One=1]="One",u[u.Two=2]="Two",u[u.Three=3]="Three",u[u.Four=4]="Four",u[u.Five=5]="Five",u[u.Six=6]="Six",u[u.Seven=7]="Seven",u[u.Eight=8]="Eight",u[u.Nine=9]="Nine",u))(yC||{}),IC=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(IC||{});function WW(i,t){return`${Ee.toKey(i)}.${t}`}var xC=(o=>(o[o.Off=0]="Off",o[o.On=1]="On",o[o.Relative=2]="Relative",o[o.Interval=3]="Interval",o))(xC||{}),SC=(n=>(n[n.Manual=1]="Manual",n[n.AfterDelay=2]="AfterDelay",n[n.FocusOut=3]="FocusOut",n))(SC||{}),CC=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(CC||{}),uu=(n=>(n[n.Keyboard=1]="Keyboard",n[n.Mouse=2]="Mouse",n[n.Command=3]="Command",n))(uu||{}),TC=(n=>(n[n.Addition=1]="Addition",n[n.Deletion=2]="Deletion",n[n.Modification=3]="Modification",n))(TC||{}),EC=(e=>(e[e.Undo=1]="Undo",e[e.Redo=2]="Redo",e))(EC||{}),wC=(o=>(o[o.OpenOpen=0]="OpenOpen",o[o.ClosedClosed=1]="ClosedClosed",o[o.OpenClosed=2]="OpenClosed",o[o.ClosedOpen=3]="ClosedOpen",o))(wC||{});(t=>{function i(e){switch(e){case"keyboard":return 1;case"mouse":return 2;case"api":case"code.jump":case"code.navigation":return 3}}t.fromValue=i})(uu||={});var pu=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))(pu||{});(t=>{function i(e){switch(e){case 0:return"other";case 1:return"comment";case 2:return"string";case 3:return"regex"}return"other"}t.toString=i})(pu||={});var td=class{constructor(t,e){if(e&&!b.isUri(e))throw Ve("target");if(!be.isRange(t)||t.isEmpty)throw Ve("range");this.range=t,this.target=e}};td=D([he],td);var _i=class{constructor(t,e,n,o){this.red=t,this.green=e,this.blue=n,this.alpha=o}};_i=D([he],_i);var nd=class{constructor(t,e){if(e&&!(e instanceof _i))throw Ve("color");if(!be.isRange(t)||t.isEmpty)throw Ve("range");this.range=t,this.color=e}};nd=D([he],nd);var od=class{constructor(t){if(!t||typeof t!="string")throw Ve("label");this.label=t}};od=D([he],od);var kC=(n=>(n[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Information=2]="Information",n))(kC||{}),S1=(r=>(r[r.Unknown=0]="Unknown",r[r.Shutdown=1]="Shutdown",r[r.Process=2]="Process",r[r.User=3]="User",r[r.Extension=4]="Extension",r))(S1||{}),PC=(n=>(n[n.Low=0]="Low",n[n.Medium=1]="Medium",n[n.High=2]="High",n))(PC||{}),C1=(h=>(h[h.Sh=1]="Sh",h[h.Bash=2]="Bash",h[h.Fish=3]="Fish",h[h.Csh=4]="Csh",h[h.Ksh=5]="Ksh",h[h.Zsh=6]="Zsh",h[h.CommandPrompt=7]="CommandPrompt",h[h.GitBash=8]="GitBash",h[h.PowerShell=9]="PowerShell",h[h.Python=10]="Python",h[h.Julia=11]="Julia",h[h.NuShell=12]="NuShell",h[h.Node=13]="Node",h[h.Xonsh=14]="Xonsh",h))(C1||{}),MS=class{constructor(t,e,n){this.startIndex=t;this.length=e;this.tooltip=n;if(typeof t!="number"||t<0)throw Ve("startIndex");if(typeof e!="number"||e<1)throw Ve("length");if(n!==void 0&&typeof n!="string")throw Ve("tooltip")}},LS=class{constructor(t){this.uri=t}},OS=class{constructor(t){this.terminalCommand=t}},T1=(e=>(e[e.Panel=1]="Panel",e[e.Editor=2]="Editor",e))(T1||{}),NS=class{constructor(t){this.options=t;if(typeof t!="object")throw Ve("options")}},E1=(x=>(x[x.File=0]="File",x[x.Folder=1]="Folder",x[x.Method=2]="Method",x[x.Alias=3]="Alias",x[x.Argument=4]="Argument",x[x.Option=5]="Option",x[x.OptionValue=6]="OptionValue",x[x.Flag=7]="Flag",x[x.SymbolicLinkFile=8]="SymbolicLinkFile",x[x.SymbolicLinkFolder=9]="SymbolicLinkFolder",x[x.ScmCommit=10]="ScmCommit",x[x.ScmBranch=11]="ScmBranch",x[x.ScmTag=12]="ScmTag",x[x.ScmStash=13]="ScmStash",x[x.ScmRemote=14]="ScmRemote",x[x.PullRequest=15]="PullRequest",x[x.PullRequestDone=16]="PullRequestDone",x))(E1||{}),US=class{constructor(t,e,n,o,r,s,a,l){this.label=t,this.replacementRange=e,this.kind=n,this.detail=o,this.documentation=r,this.isFile=s,this.isDirectory=a,this.isKeyword=l}},FS=class{constructor(t,e){this.items=t??[],this.resourceOptions=e}},w1=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(w1||{}),k1=(g=>(g.Changed="changed",g.ProcessStarted="processStarted",g.ProcessEnded="processEnded",g.Terminated="terminated",g.Start="start",g.AcquiredInput="acquiredInput",g.DependsOnStarted="dependsOnStarted",g.Active="active",g.Inactive="inactive",g.End="end",g.ProblemMatcherStarted="problemMatcherStarted",g.ProblemMatcherEnded="problemMatcherEnded",g.ProblemMatcherFoundErrors="problemMatcherFoundErrors",g))(k1||{}),P1=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))(P1||{}),Nn=class{constructor(t,e){this.label=e;if(typeof t!="string")throw Ve("name");if(typeof e!="string")throw Ve("name");this._id=t}static from(t){switch(t){case"clean":return Nn.Clean;case"build":return Nn.Build;case"rebuild":return Nn.Rebuild;case"test":return Nn.Test;default:return}}get id(){return this._id}};Nn.Clean=new Nn("clean","Clean"),Nn.Build=new Nn("build","Build"),Nn.Rebuild=new Nn("rebuild","Rebuild"),Nn.Test=new Nn("test","Test"),Nn=D([he],Nn);function BW(i){let t="";for(let e=0;e<i.length;e++)t+=i[e].replace(/,/g,",,")+",";return t}var ws=class{constructor(t,e,n){if(typeof t!="string")throw Ve("process");this._args=[],this._process=t,e!==void 0&&(Array.isArray(e)?(this._args=e,this._options=n):this._options=e)}get process(){return this._process}set process(t){if(typeof t!="string")throw Ve("process");this._process=t}get args(){return this._args}set args(t){Array.isArray(t)||(t=[]),this._args=t}get options(){return this._options}set options(t){this._options=t}computeId(){let t=[];if(t.push("process"),this._process!==void 0&&t.push(this._process),this._args&&this._args.length>0)for(let e of this._args)t.push(e);return BW(t)}};ws=D([he],ws);var Di=class{constructor(t,e,n){this._args=[];if(Array.isArray(e)){if(!t)throw Ve("command can't be undefined or null");if(typeof t!="string"&&typeof t.value!="string")throw Ve("command");this._command=t,e&&(this._args=e),this._options=n}else{if(typeof t!="string")throw Ve("commandLine");this._commandLine=t,this._options=e}}get commandLine(){return this._commandLine}set commandLine(t){if(typeof t!="string")throw Ve("commandLine");this._commandLine=t}get command(){return this._command?this._command:""}set command(t){if(typeof t!="string"&&typeof t.value!="string")throw Ve("command");this._command=t}get args(){return this._args}set args(t){this._args=t||[]}get options(){return this._options}set options(t){this._options=t}computeId(){let t=[];if(t.push("shell"),this._commandLine!==void 0&&t.push(this._commandLine),this._command!==void 0&&t.push(typeof this._command=="string"?this._command:this._command.value),this._args&&this._args.length>0)for(let e of this._args)t.push(typeof e=="string"?e:e.value);return BW(t)}};Di=D([he],Di);var _1=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(_1||{}),_C=(e=>(e[e.Global=1]="Global",e[e.Workspace=2]="Workspace",e))(_C||{}),D1=(n=>(n[n.Default=1]="Default",n[n.FolderOpen=2]="FolderOpen",n[n.WorktreeCreated=3]="WorktreeCreated",n))(D1||{}),tu=class{constructor(t){this._callback=t}computeId(){return"customExecution"+Pe()}set callback(t){this._callback=t}get callback(){return this._callback}},$n=class{constructor(t,e,n,o,r,s){this.__deprecated=!1;this._definition=this.definition=t;let a;typeof e=="string"?(this._name=this.name=e,this._source=this.source=n,this.execution=o,a=r,this.__deprecated=!0):e===1||e===2?(this.target=e,this._name=this.name=n,this._source=this.source=o,this.execution=r,a=s):(this.target=e,this._name=this.name=n,this._source=this.source=o,this.execution=r,a=s),typeof a=="string"?(this._problemMatchers=[a],this._hasDefinedMatchers=!0):Array.isArray(a)?(this._problemMatchers=a,this._hasDefinedMatchers=!0):(this._problemMatchers=[],this._hasDefinedMatchers=!1),this._isBackground=!1,this._presentationOptions=Object.create(null),this._runOptions=Object.create(null)}get _id(){return this.__id}set _id(t){this.__id=t}get _deprecated(){return this.__deprecated}clear(){this.__id!==void 0&&(this.__id=void 0,this._scope=void 0,this.computeDefinitionBasedOnExecution())}computeDefinitionBasedOnExecution(){this._execution instanceof ws?this._definition={type:$n.ProcessType,id:this._execution.computeId()}:this._execution instanceof Di?this._definition={type:$n.ShellType,id:this._execution.computeId()}:this._execution instanceof tu?this._definition={type:$n.ExtensionCallbackType,id:this._execution.computeId()}:this._definition={type:$n.EmptyType,id:Pe()}}get definition(){return this._definition}set definition(t){if(t==null)throw Ve("Kind can't be undefined or null");this.clear(),this._definition=t}get scope(){return this._scope}set target(t){this.clear(),this._scope=t}get name(){return this._name}set name(t){if(typeof t!="string")throw Ve("name");this.clear(),this._name=t}get execution(){return this._execution}set execution(t){t===null&&(t=void 0),this.clear(),this._execution=t;let e=this._definition.type;($n.EmptyType===e||$n.ProcessType===e||$n.ShellType===e||$n.ExtensionCallbackType===e)&&this.computeDefinitionBasedOnExecution()}get problemMatchers(){return this._problemMatchers}set problemMatchers(t){if(Array.isArray(t))this.clear(),this._problemMatchers=t,this._hasDefinedMatchers=!0;else{this.clear(),this._problemMatchers=[],this._hasDefinedMatchers=!1;return}}get hasDefinedMatchers(){return this._hasDefinedMatchers}get isBackground(){return this._isBackground}set isBackground(t){t!==!0&&t!==!1&&(t=!1),this.clear(),this._isBackground=t}get source(){return this._source}set source(t){if(typeof t!="string"||t.length===0)throw Ve("source must be a string of length > 0");this.clear(),this._source=t}get group(){return this._group}set group(t){t===null&&(t=void 0),this.clear(),this._group=t}get detail(){return this._detail}set detail(t){t===null&&(t=void 0),this._detail=t}get presentationOptions(){return this._presentationOptions}set presentationOptions(t){t==null&&(t=Object.create(null)),this.clear(),this._presentationOptions=t}get runOptions(){return this._runOptions}set runOptions(t){t==null&&(t=Object.create(null)),this.clear(),this._runOptions=t}};$n.ExtensionCallbackType="customExecution",$n.ProcessType="process",$n.ShellType="shell",$n.EmptyType="$empty",$n=D([he],$n);var tb=(n=>(n[n.SourceControl=1]="SourceControl",n[n.Window=10]="Window",n[n.Notification=15]="Notification",n))(tb||{}),R1;(t=>{function i(e){let n=e;return Hn(n.value)?n.tooltip&&!Me(n.tooltip)?(console.log("INVALID view badge, invalid tooltip",n.tooltip),!1):!0:(console.log("INVALID view badge, invalid value",n.value),!1)}t.isViewBadge=i})(R1||={});var ks=class{constructor(t,e=0){this.collapsibleState=e;b.isUri(t)?this.resourceUri=t:this.label=t}static isTreeItem(t,e){let n=t;if(n.checkboxState!==void 0){let o=Hn(n.checkboxState)?n.checkboxState:st(n.checkboxState)&&Hn(n.checkboxState.state)?n.checkboxState.state:void 0,r=!Hn(n.checkboxState)&&st(n.checkboxState)?n.checkboxState.tooltip:void 0;if(o===void 0||o!==1&&o!==0||r!==void 0&&!Me(r))return console.log("INVALID tree item, invalid checkboxState",n.checkboxState),!1}if(t instanceof ks)return!0;if(n.label!==void 0&&!Me(n.label)&&!n.label?.label)return console.log("INVALID tree item, invalid label",n.label),!1;if(n.id!==void 0&&!Me(n.id))return console.log("INVALID tree item, invalid id",n.id),!1;if(n.iconPath!==void 0&&!Me(n.iconPath)&&!b.isUri(n.iconPath)&&(!n.iconPath||!Me(n.iconPath.id))){let o=n.iconPath;if(!o||!Me(o.light)&&!b.isUri(o.light)&&!Me(o.dark)&&!b.isUri(o.dark))return console.log("INVALID tree item, invalid iconPath",n.iconPath),!1}return n.description!==void 0&&!Me(n.description)&&typeof n.description!="boolean"?(console.log("INVALID tree item, invalid description",n.description),!1):n.resourceUri!==void 0&&!b.isUri(n.resourceUri)?(console.log("INVALID tree item, invalid resourceUri",n.resourceUri),!1):n.tooltip!==void 0&&!Me(n.tooltip)&&!(n.tooltip instanceof Xt)?(console.log("INVALID tree item, invalid tooltip",n.tooltip),!1):n.command!==void 0&&!n.command.command?(console.log("INVALID tree item, invalid command",n.command),!1):n.collapsibleState!==void 0&&n.collapsibleState<0&&n.collapsibleState>2?(console.log("INVALID tree item, invalid collapsibleState",n.collapsibleState),!1):n.contextValue!==void 0&&!Me(n.contextValue)?(console.log("INVALID tree item, invalid contextValue",n.contextValue),!1):n.accessibilityInformation!==void 0&&!n.accessibilityInformation?.label?(console.log("INVALID tree item, invalid accessibilityInformation",n.accessibilityInformation),!1):!0}};ks=D([he],ks);var DC=(n=>(n[n.None=0]="None",n[n.Collapsed=1]="Collapsed",n[n.Expanded=2]="Expanded",n))(DC||{}),RC=(e=>(e[e.Unchecked=0]="Unchecked",e[e.Checked=1]="Checked",e))(RC||{}),Qc=class{constructor(t){this.value=t}async asString(){return typeof this.value=="string"?this.value:JSON.stringify(this.value)}asFile(){}};Qc=D([he],Qc);var ud=class extends Qc{},HS=class extends ud{#e;constructor(t){super(""),this.#e=t}asFile(){return this.#e}},VS=class{constructor(t,e,n,o){this.name=t,this.uri=e,this._itemId=n,this._getData=o}data(){return this._getData()}},Pa,Zc,Zv,oi=class{constructor(t){op(this,Zc);op(this,Pa,new Map);for(let[e,n]of t??[]){let o=hn(this,Pa).get(Th(this,Zc,Zv).call(this,e));o?o.push(n):hn(this,Pa).set(Th(this,Zc,Zv).call(this,e),[n])}}get(t){return hn(this,Pa).get(Th(this,Zc,Zv).call(this,t))?.[0]}set(t,e){hn(this,Pa).set(Th(this,Zc,Zv).call(this,t),[e])}forEach(t,e){for(let[n,o]of hn(this,Pa))for(let r of o)t.call(e,r,n,this)}*[Symbol.iterator](){for(let[t,e]of hn(this,Pa))for(let n of e)yield[t,n]}};Pa=new WeakMap,Zc=new WeakSet,Zv=function(t){return t.toLowerCase()},oi=D([he],oi);var mm=class{constructor(t,e,n){this.insertText=t,this.title=e,this.kind=n}};mm=D([he],mm);var A1=(e=>(e[e.Automatic=0]="Automatic",e[e.PasteAs=1]="PasteAs",e))(A1||{}),ri=class i{constructor(t){this.value=t}static{this.sep="."}append(...t){return new i((this.value?[this.value,...t]:t).join(i.sep))}intersects(t){return this.contains(t)||t.contains(this)}contains(t){return this.value===t.value||t.value.startsWith(this.value+i.sep)}};ri.Empty=new ri("");ri.Text=new ri("text");ri.TextUpdateImports=ri.Text.append("updateImports");var WS=class{constructor(t,e,n){this.title=e,this.insertText=t,this.kind=n}},mn=class{constructor(t,e){this.id=t,this.color=e}static isThemeIcon(t){return typeof t.id!="string"?(console.log("INVALID ThemeIcon, invalid id",t.id),!1):!0}};mn=D([he],mn);mn.File=new mn("file");mn.Folder=new mn("folder");var _a=class{constructor(t){this.id=t}};_a=D([he],_a);var AC=(n=>(n[n.Global=1]="Global",n[n.Workspace=2]="Workspace",n[n.WorkspaceFolder=3]="WorkspaceFolder",n))(AC||{}),Ps=class{get base(){return this._base}set base(t){this._base=t,this._baseUri=b.file(t)}get baseUri(){return this._baseUri}set baseUri(t){this._baseUri=t,this._base=t.fsPath}constructor(t,e){if(typeof t!="string"&&(!t||!b.isUri(t)&&!b.isUri(t.uri)))throw Ve("base");if(typeof e!="string")throw Ve("pattern");typeof t=="string"?this.baseUri=b.file(t):b.isUri(t)?this.baseUri=t:this.baseUri=t.uri,this.pattern=e}toJSON(){return{pattern:this.pattern,base:this.base,baseUri:this.baseUri.toJSON()}}};Ps=D([he],Ps);var $W=new WeakMap;function zW(i,t){$W.set(i,t)}var Da=class{constructor(t,e,n,o,r){this.enabled=typeof t=="boolean"?t:!0,typeof e=="string"&&(this.condition=e),typeof n=="string"&&(this.hitCondition=n),typeof o=="string"&&(this.logMessage=o),typeof r=="string"&&(this.mode=r)}get id(){return this._id||(this._id=$W.get(this)??Pe()),this._id}};Da=D([he],Da);var Ri=class extends Da{constructor(t,e,n,o,r,s){if(super(e,n,o,r,s),t===null)throw Ve("location");this.location=t}};Ri=D([he],Ri);var Ai=class extends Da{constructor(t,e,n,o,r,s){super(e,n,o,r,s),this.functionName=t}};Ai=D([he],Ai);var Jc=class extends Da{constructor(t,e,n,o,r,s,a,l){if(super(o,r,s,a,l),!e)throw Ve("dataId");this.label=t,this.dataId=e,this.canPersist=n}};Jc=D([he],Jc);var Mi=class{constructor(t,e,n){this.command=t,this.args=e||[],this.options=n}};Mi=D([he],Mi);var Li=class{constructor(t,e){this.port=t,this.host=e}};Li=D([he],Li);var _s=class{constructor(t){this.path=t}};_s=D([he],_s);var Ra=class{constructor(t){this.implementation=t}};Ra=D([he],Ra);var ym=class{constructor(t,e,n){this.session=t;this.threadId=e;this.frameId=n}},Im=class{constructor(t,e){this.session=t;this.threadId=e}},rd=class{constructor(t,e){this.range=t,this.expression=e}};rd=D([he],rd);var MC=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(MC||{}),LC=(r=>(r[r.Other=0]="Other",r[r.Empty=1]="Empty",r[r.TokenCancellation=2]="TokenCancellation",r[r.LostRace=3]="LostRace",r[r.NotTaken=4]="NotTaken",r))(LC||{}),id=class{constructor(t,e){this.range=t,this.text=e}};id=D([he],id);var sd=class{constructor(t,e,n=!0){this.range=t,this.variableName=e,this.caseSensitiveLookup=n}};sd=D([he],sd);var ad=class{constructor(t,e){this.range=t,this.expression=e}};ad=D([he],ad);var gm=class{constructor(t,e){this.frameId=t,this.stoppedLocation=e}};gm=D([he],gm);var M1=(t=>(t[t.AIGenerated=1]="AIGenerated",t))(M1||{}),OC=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(OC||{}),BS=class{constructor(t,e){this.newSymbolName=t,this.tags=e}},NC=(n=>(n[n.Changed=1]="Changed",n[n.Created=2]="Created",n[n.Deleted=3]="Deleted",n))(NC||{}),Ct=class extends Error{static FileExists(t){return new Ct(t,"EntryExists",Ct.FileExists)}static FileNotFound(t){return new Ct(t,"EntryNotFound",Ct.FileNotFound)}static FileNotADirectory(t){return new Ct(t,"EntryNotADirectory",Ct.FileNotADirectory)}static FileIsADirectory(t){return new Ct(t,"EntryIsADirectory",Ct.FileIsADirectory)}static NoPermissions(t){return new Ct(t,"NoPermissions",Ct.NoPermissions)}static Unavailable(t){return new Ct(t,"Unavailable",Ct.Unavailable)}constructor(t,e="Unknown",n){super(b.isUri(t)?t.toString(!0):t),this.code=n?.name??"Unknown",ER(this,e),Object.setPrototypeOf(this,Ct.prototype),typeof Error.captureStackTrace=="function"&&typeof n=="function"&&Error.captureStackTrace(this,n)}};Ct=D([he],Ct);var fm=class{constructor(t,e,n){this.start=t,this.end=e,this.kind=n}};fm=D([he],fm);var UC=(n=>(n[n.Comment=1]="Comment",n[n.Imports=2]="Imports",n[n.Region=3]="Region",n))(UC||{}),FC=(e=>(e[e.Collapsed=0]="Collapsed",e[e.Expanded=1]="Expanded",e))(FC||{}),L1=(e=>(e[e.Editing=0]="Editing",e[e.Preview=1]="Preview",e))(L1||{}),O1=(e=>(e[e.Published=0]="Published",e[e.Draft=1]="Draft",e))(O1||{}),HC=(e=>(e[e.Unresolved=0]="Unresolved",e[e.Resolved=1]="Resolved",e))(HC||{}),VC=(e=>(e[e.Current=0]="Current",e[e.Outdated=1]="Outdated",e))(VC||{}),WC=(e=>(e[e.Reply=1]="Reply",e[e.Comment=2]="Comment",e))(WC||{}),nu=class{constructor(t,e=[]){this.tokenTypes=t,this.tokenModifiers=e}};function Mq(i){return typeof i>"u"||TU(i)}var $S=class i{constructor(t){if(this._prevLine=0,this._prevChar=0,this._dataIsSortedAndDeltaEncoded=!0,this._data=[],this._dataLen=0,this._tokenTypeStrToInt=new Map,this._tokenModifierStrToInt=new Map,this._hasLegend=!1,t){this._hasLegend=!0;for(let e=0,n=t.tokenTypes.length;e<n;e++)this._tokenTypeStrToInt.set(t.tokenTypes[e],e);for(let e=0,n=t.tokenModifiers.length;e<n;e++)this._tokenModifierStrToInt.set(t.tokenModifiers[e],e)}}push(t,e,n,o,r){if(typeof t=="number"&&typeof e=="number"&&typeof n=="number"&&typeof o=="number"&&(typeof r=="number"||typeof r>"u"))return typeof r>"u"&&(r=0),this._pushEncoded(t,e,n,o,r);if(be.isRange(t)&&typeof e=="string"&&Mq(n))return this._push(t,e,n);throw Ve()}_push(t,e,n){if(!this._hasLegend)throw new Error("Legend must be provided in constructor");if(t.start.line!==t.end.line)throw new Error("`range` cannot span multiple lines");if(!this._tokenTypeStrToInt.has(e))throw new Error("`tokenType` is not in the provided legend");let o=t.start.line,r=t.start.character,s=t.end.character-t.start.character,a=this._tokenTypeStrToInt.get(e),l=0;if(n)for(let d of n){if(!this._tokenModifierStrToInt.has(d))throw new Error("`tokenModifier` is not in the provided legend");let c=this._tokenModifierStrToInt.get(d);l|=1<<c>>>0}this._pushEncoded(o,r,s,a,l)}_pushEncoded(t,e,n,o,r){if(this._dataIsSortedAndDeltaEncoded&&(t<this._prevLine||t===this._prevLine&&e<this._prevChar)){this._dataIsSortedAndDeltaEncoded=!1;let l=this._data.length/5|0,d=0,c=0;for(let u=0;u<l;u++){let m=this._data[5*u],g=this._data[5*u+1];m===0?(m=d,g+=c):m+=d,this._data[5*u]=m,this._data[5*u+1]=g,d=m,c=g}}let s=t,a=e;this._dataIsSortedAndDeltaEncoded&&this._dataLen>0&&(s-=this._prevLine,s===0&&(a-=this._prevChar)),this._data[this._dataLen++]=s,this._data[this._dataLen++]=a,this._data[this._dataLen++]=n,this._data[this._dataLen++]=o,this._data[this._dataLen++]=r,this._prevLine=t,this._prevChar=e}static _sortAndDeltaEncode(t){let e=[],n=t.length/5|0;for(let a=0;a<n;a++)e[a]=a;e.sort((a,l)=>{let d=t[5*a],c=t[5*l];if(d===c){let u=t[5*a+1],m=t[5*l+1];return u-m}return d-c});let o=new Uint32Array(t.length),r=0,s=0;for(let a=0;a<n;a++){let l=5*e[a],d=t[l+0],c=t[l+1],u=t[l+2],m=t[l+3],g=t[l+4],h=d-r,f=h===0?c-s:c,I=5*a;o[I+0]=h,o[I+1]=f,o[I+2]=u,o[I+3]=m,o[I+4]=g,r=d,s=c}return o}build(t){return this._dataIsSortedAndDeltaEncoded?new Oi(new Uint32Array(this._data),t):new Oi(i._sortAndDeltaEncode(this._data),t)}},Oi=class{constructor(t,e){this.resultId=e,this.data=t}},xm=class{constructor(t,e,n){this.start=t,this.deleteCount=e,this.data=n}},pd=class{constructor(t,e){this.resultId=e,this.edits=t}},BC=(e=>(e[e.Separate=0]="Separate",e[e.MergeWithParent=1]="MergeWithParent",e))(BC||{}),zS=class{constructor(t){this.name=t}},N1=(n=>(n[n.Title=1]="Title",n[n.Inline=2]="Inline",n[n.Input=3]="Input",n))(N1||{}),Cs=class{constructor(){}};Cs.Back={iconPath:new mn("arrow-left")},Cs=D([he],Cs);var $C=(e=>(e[e.Separator=-1]="Separator",e[e.Default=0]="Default",e))($C||{}),zC=(n=>(n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(zC||{}),qC=(e=>(e[e.UI=1]="UI",e[e.Workspace=2]="Workspace",e))(qC||{}),ou=class{static validate(t){if(typeof t.badge=="string"){let e=x_(t.badge,0);if(e<t.badge.length&&(e+=x_(t.badge,e)),t.badge.length>e)throw new Error("The 'badge'-property must be undefined or a short character")}else if(t.badge&&!mn.isThemeIcon(t.badge))throw new Error("The 'badge'-property is not a valid ThemeIcon");if(!t.color&&!t.badge&&!t.tooltip)throw new Error("The decoration is empty");return!0}constructor(t,e,n){this.badge=t,this.tooltip=e,this.color=n}},Yc=class{constructor(t){this.kind=t}};Yc=D([he],Yc);var KC=(o=>(o[o.Light=1]="Light",o[o.Dark=2]="Dark",o[o.HighContrast=3]="HighContrast",o[o.HighContrastLight=4]="HighContrastLight",o))(KC||{}),qS=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},U1=(n=>(n[n.Idle=1]="Idle",n[n.Pending=2]="Pending",n[n.Executing=3]="Executing",n))(U1||{}),jC=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(jC||{}),GC=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(GC||{}),KS=class{constructor(t,e){this.text=t;this.alignment=e}},F1=(e=>(e[e.Default=1]="Default",e[e.Preferred=2]="Preferred",e))(F1||{}),QC=(n=>(n[n.Default=1]="Default",n[n.Preferred=2]="Preferred",n[n.Hidden=-1]="Hidden",n))(QC||{}),Sm=class{constructor(t,e=[]){this.uri=t;this.provides=An(e)}},jS=class{constructor(t){this.label=t}},JC=(e=>(e[e.Named=1]="Named",e[e.Indexed=2]="Indexed",e))(JC||{}),hm=class{constructor(t,e){this.label=t;this.timestamp=e}};hm=D([he],hm);var YC=(n=>(n[n.Production=1]="Production",n[n.Development=2]="Development",n[n.Test=3]="Test",n))(YC||{}),XC=(e=>(e[e.Node=1]="Node",e[e.Webworker=2]="Webworker",e))(XC||{}),nb=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))(nb||{}),GS=class{constructor(t,e){this.ranges=t;this.wordPattern=e}},QS=class{constructor(t){this._autoForwardAction=t}get autoForwardAction(){return this._autoForwardAction}},H1=(s=>(s[s.Queued=1]="Queued",s[s.Running=2]="Running",s[s.Passed=3]="Passed",s[s.Failed=4]="Failed",s[s.Skipped=5]="Skipped",s[s.Errored=6]="Errored",s))(H1||{}),ZC=(n=>(n[n.Run=1]="Run",n[n.Debug=2]="Debug",n[n.Coverage=3]="Coverage",n))(ZC||{}),Cm=class{constructor(t,e,n){this.controllerId=t;this.profileId=e;this.kind=n}},ld=class{constructor(t=void 0,e=void 0,n=void 0,o=!1,r=!0){this.include=t;this.exclude=e;this.profile=n;this.continuous=o;this.preserveFocus=r}};ld=D([he],ld);var Ds=class{constructor(t){this.message=t}static diff(t,e,n){let o=new Ds(t);return o.expectedOutput=e,o.actualOutput=n,o}};Ds=D([he],Ds);var Aa=class{constructor(t){this.id=t}};Aa=D([he],Aa);var JS=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},eu=class{constructor(t,e){this.covered=t;this.total=e;ob(this)}};function ob(i){if(i){if(i.covered>i.total)throw new Error(`The total number of covered items (${i.covered}) cannot be greater than the total (${i.total})`);if(i.total<0)throw new Error(`The number of covered items (${i.total}) cannot be negative`)}}var Ma=class i{constructor(t,e,n,o,r=[]){this.uri=t;this.statementCoverage=e;this.branchCoverage=n;this.declarationCoverage=o;this.includesTests=r}static fromDetails(t,e){let n=new eu(0,0),o=new eu(0,0),r=new eu(0,0);for(let a of e)if("branches"in a){n.total+=1,n.covered+=a.executed?1:0;for(let l of a.branches)o.total+=1,o.covered+=l.executed?1:0}else r.total+=1,r.covered+=a.executed?1:0;let s=new i(t,n,o.total>0?o:void 0,r.total>0?r:void 0);return s.detailedCoverage=e,s}},Tm=class{constructor(t,e,n=[]){this.executed=t;this.location=e;this.branches=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},Em=class{constructor(t,e,n){this.executed=t;this.location=e;this.label=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},wm=class{constructor(t,e,n){this.name=t;this.executed=e;this.location=n}get executionCount(){return+this.executed}set executionCount(t){this.executed=t}},V1=(o=>(o[o.None=0]="None",o[o.Option=1]="Option",o[o.Default=2]="Default",o[o.Preferred=3]="Preferred",o))(V1||{}),W1=(n=>(n[n.Untrusted=0]="Untrusted",n[n.Trusted=1]="Trusted",n[n.Unspecified=2]="Unspecified",n))(W1||{}),B1=(s=>(s[s.Notify=1]="Notify",s[s.OpenBrowser=2]="OpenBrowser",s[s.OpenPreview=3]="OpenPreview",s[s.Silent=4]="Silent",s[s.Ignore=5]="Ignore",s[s.OpenBrowserOnce=6]="OpenBrowserOnce",s))(B1||{}),md=class{constructor(t,e,n,o,r,s){this.kind=t,this.name=e,this.detail=n,this.uri=o,this.range=r,this.selectionRange=s}},gd=class{constructor(t){this.uri=t}},La=class{constructor(t,e){this.original=t;this.modified=e}},km=class{constructor(t,e,n,o){this.base=t;this.input1=e;this.input2=n;this.result=o}},fd=class{constructor(t,e){this.uri=t;this.viewType=e}},Pm=class{constructor(t){this.viewType=t}},hd=class{constructor(t,e){this.uri=t;this.notebookType=e}},vd=class{constructor(t,e,n){this.original=t;this.modified=e;this.notebookType=n}},_m=class{constructor(){}},Dm=class{constructor(t,e){this.uri=t;this.inputBoxUri=e}},Rm=class{constructor(){}},Am=class{constructor(t){this.textDiffs=t}},$1=(e=>(e[e.Down=0]="Down",e[e.Up=1]="Up",e))($1||{}),z1=(e=>(e[e.Action=1]="Action",e[e.Toolbar=2]="Toolbar",e))(z1||{}),q1=(n=>(n[n.Short=1]="Short",n[n.Medium=2]="Medium",n[n.Full=3]="Full",n))(q1||{}),YS=class{constructor(t,e,n){this.id=t,this.label=e,this.values=n}},eT=(n=>(n[n.Accepted=1]="Accepted",n[n.Rejected=2]="Rejected",n[n.Saved=3]="Saved",n))(eT||{}),K1=(n=>(n[n.Keep=1]="Keep",n[n.Undo=2]="Undo",n[n.UserModification=3]="UserModification",n))(K1||{}),j1=(r=>(r[r.Unhelpful=0]="Unhelpful",r[r.Helpful=1]="Helpful",r[r.Undone=2]="Undone",r[r.Accepted=3]="Accepted",r[r.Bug=4]="Bug",r))(j1||{}),tT=(e=>(e[e.Unhelpful=0]="Unhelpful",e[e.Helpful=1]="Helpful",e))(tT||{}),Oa=class{constructor(t){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Xt(t):t}},As=class{constructor(t,e){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Xt(t):t,this.vulnerabilities=e}},Na=class{constructor(t,e,n,o){this.title=t,this.message=e,this.data=n,this.buttons=o}},Ua=class{constructor(t,e){this.value=t,this.baseUri=e}},ru=class{constructor(t,e,n){this.value=t,this.title=e,this.readOnly=n}},XS=class{constructor(t,e){this.data=t,this.mimeType=e}},Mm=class{constructor(t,e,n,o){this.description=t,this.agentName=e,this.prompt=n,this.result=o}},iu=class{constructor(t,e){this.uris=t;this.callback=e;this.applied=new Promise(n=>{this.didGetApplied=n})}},Ms=class{constructor(t,e){this.value=t,this.value2=t,this.title=e}},su=class{constructor(t){this.value=t}},bd=class{constructor(t,e){this.value=t,this.task=e}},Ni=class{constructor(t,e,n){this.value=t,this.id=e,this.metadata=n}},Fa=class{constructor(t,e,n,o){this.hookType=t,this.stopReason=e,this.systemMessage=n,this.metadata=o}},Ls=class{constructor(t){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Xt(t):t}},Ha=class{constructor(t){if(typeof t!="string"&&t.isTrusted===!0)throw new Error("The boolean form of MarkdownString.isTrusted is NOT supported for chat participants.");this.value=typeof t=="string"?new Xt(t):t}},Va=class{constructor(t){this.value=t}},ii=class{constructor(t,e,n){this.value=t,this.iconPath=e,this.options=n}},Wa=class{constructor(t,e,n){this.value=t,this.isEdit=e,this.undoStopId=n}},Ba=class{constructor(t,e,n){this.value=t,this.license=e,this.snippet=n}},$a=class{constructor(t,e){this.uri=t;this.range=e}},yd=class{constructor(t){this.extensions=t}},Id=class{constructor(t,e,n,o,r){this.title=e;this.description=n;this.author=o;this.linkTag=r;Sl(t)?(this.uri=t,this.command={title:"Open Pull Request",command:"vscode.open",arguments:[t]}):this.command=t}toJSON(){return{$mid:26,uri:this.uri,title:this.title,description:this.description,author:this.author}}},nT=(n=>(n[n.Text=1]="Text",n[n.SingleSelect=2]="SingleSelect",n[n.MultiSelect=3]="MultiSelect",n))(nT||{}),Lm=class{constructor(t,e,n,o){this.id=t,this.type=e,this.title=n,this.message=o?.message,this.options=o?.options,this.defaultValue=o?.defaultValue,this.allowFreeformInput=o?.allowFreeformInput}},Os=class{constructor(t,e=!0){this.questions=t,this.allowSkip=e}},Ns=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},za=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},xd=class{constructor(t){this.edits=t}},oT=(n=>(n[n.NotStarted=1]="NotStarted",n[n.InProgress=2]="InProgress",n[n.Completed=3]="Completed",n))(oT||{}),rT=(n=>(n[n.Running=0]="Running",n[n.Completed=1]="Completed",n[n.Failed=2]="Failed",n))(rT||{}),au=class{constructor(t,e,n){this.toolName=t,this.toolCallId=e,this.errorMessage=n}},Us=class{constructor(t,e,n,o,r,s,a,l,d){this.prompt=t;this.command=e;this.references=n;this.participant=o;this.toolReferences=r;this.editedFileEvents=s;this.id=a;this.modelId=l;this.modeInstructions2=d}},Om=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},ZS=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},iT=(o=>(o[o.Panel=1]="Panel",o[o.Terminal=2]="Terminal",o[o.Notebook=3]="Notebook",o[o.Editor=4]="Editor",o))(iT||{}),G1=(o=>(o[o.Failed=0]="Failed",o[o.Completed=1]="Completed",o[o.InProgress=2]="InProgress",o[o.NeedsInput=3]="NeedsInput",o))(G1||{}),eC=class i{constructor(t){this.id=t}static{this.Agent=new i("agent")}static{this.Skill=new i("skill")}static{this.Instructions=new i("instructions")}static{this.Prompt=new i("prompt")}static{this.Hook=new i("hook")}static{this.Plugins=new i("plugins")}},Q1=(o=>(o[o.Trace=0]="Trace",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(Q1||{}),sT=(e=>(e[e.Success=0]="Success",e[e.Error=1]="Error",e))(sT||{}),aT=(n=>(n[n.Success=0]="Success",n[n.Error=1]="Error",n[n.NonBlockingError=2]="NonBlockingError",n))(aT||{}),Nm=class{constructor(t,e){this._kind="toolCall";this.toolName=t,this.created=e}},Um=class{constructor(t){this._kind="modelTurn";this.created=t}},Fm=class{constructor(t,e,n){this._kind="generic";this.name=t,this.level=e,this.created=n}},Hm=class{constructor(t,e){this._kind="subagentInvocation";this.agentName=t,this.created=e}},lu=class{constructor(t,e){this.name=t,this.content=e}},Vm=class{constructor(t,e){this._kind="userMessage";this.message=t,this.created=e,this.sections=[]}},Wm=class{constructor(t,e){this._kind="agentResponse";this.message=t,this.created=e,this.sections=[]}},tC=class{constructor(t){this._kind="text";this.value=t}},lT=(e=>(e[e.User=0]="User",e[e.Agent=1]="Agent",e))(lT||{}),nC=class{constructor(t,e,n){this._kind="messageContent";this.type=t,this.message=e,this.sections=n}},oC=class{constructor(t){this._kind="toolCallContent";this.toolName=t}},rC=class{constructor(t){this._kind="modelTurnContent";this.requestName=t}},iC=class{constructor(t){this._kind="hookContent";this.hookType=t}},sC=class{constructor(t,e,n,o,r){this.uri=t;this.originalUri=e;this.modifiedUri=n;this.insertions=o;this.deletions=r}},J1=(n=>(n[n.Complete=1]="Complete",n[n.Partial=2]="Partial",n[n.Omitted=3]="Omitted",n))(J1||{}),Y1=(n=>(n[n.NoReason=0]="NoReason",n[n.FilteredContentRetry=1]="FilteredContentRetry",n[n.CopyrightContentRetry=2]="CopyrightContentRetry",n))(Y1||{}),Bm=class{constructor(t,e,n,o){this.editor=t;this.document=e;this.selection=n;this.wholeRange=o}},$m=class{constructor(t){this.cell=t}},zm=class{constructor(t,e,n,o,r){this.mimeType=t,this.data=e,this.reference=n,this.isPasted=o,this.isURL=r}},Sd=class{constructor(t){this.diagnostics=t}},rb=(n=>(n[n.User=1]="User",n[n.Assistant=2]="Assistant",n[n.System=3]="System",n))(rb||{}),Fs=class{constructor(t,e,n){this.callId=t,this.content=e,this.isError=n??!1}},X1=(n=>(n[n.Info=0]="Info",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(X1||{}),Z1=(n=>(n[n.Info=0]="Info",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(Z1||{}),qm=class i{constructor(t,e,n){this._content=[];this.role=t,this.content=e,this.name=n}static User(t,e){return new i(1,t,e)}static Assistant(t,e){return new i(2,t,e)}set content(t){typeof t=="string"?this._content=[new nn(t)]:this._content=t}get content(){return this._content}},Km=class i{constructor(t,e,n){this._content=[];this.role=t,this.content=e,this.name=n}static User(t,e){return new i(1,t,e)}static Assistant(t,e){return new i(2,t,e)}set content(t){typeof t=="string"?this._content=[new nn(t)]:this._content=t}get content(){return this._content}set content2(t){t&&(this.content=t.map(e=>typeof e=="string"?new nn(e):e))}get content2(){return this.content.map(t=>t instanceof nn?t.value:t)}},si=class{constructor(t,e,n){this.callId=t,this.name=e,this.input=n}},dT=(n=>(n[n.Assistant=0]="Assistant",n[n.User=1]="User",n[n.Extension=2]="Extension",n))(dT||{}),nn=class{constructor(t,e){this.value=t,e=e}toJSON(){return{$mid:21,value:this.value,audience:this.audience}}},Un=class i{constructor(t,e,n){this.mimeType=e,this.data=t,this.audience=n}static image(t,e){return new i(t,e)}static json(t,e="text/x-json"){let n=JSON.stringify(t,void 0,"	");return new i(W.fromString(n).buffer,e)}static text(t,e=Cr.text){return new i(W.fromString(t).buffer,e)}toJSON(){return{$mid:24,mimeType:this.mimeType,data:so(W.wrap(this.data)),audience:this.audience}}},eM=(r=>(r.PNG="image/png",r.JPEG="image/jpeg",r.GIF="image/gif",r.WEBP="image/webp",r.BMP="image/bmp",r))(eM||{}),Ui=class{constructor(t,e,n){this.value=t,this.id=e,this.metadata=n}toJSON(){return{$mid:22,value:this.value,id:this.id,metadata:this.metadata}}},ai=class{constructor(t){this.value=t}toJSON(){return{$mid:23,value:this.value}}};var wr=class i extends Error{static#e="LanguageModelError";static NotFound(t){return new i(t,i.NotFound.name)}static NoPermissions(t){return new i(t,i.NoPermissions.name)}static Blocked(t){return new i(t,i.Blocked.name)}static tryDeserialize(t){if(t.name===i.#e)return new i(t.message,t.code,t.cause)}constructor(t,e,n){super(t,{cause:n}),this.name=i.#e,this.code=e??""}},Cd=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},aC=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},lC=class extends Cd{},cT=(e=>(e[e.Auto=1]="Auto",e[e.Required=2]="Required",e))(cT||{}),jm=class{constructor(t,e){this.id=t;this.label=e}},Gm=class{constructor(t,e,n){this.label=t;this.name=e;this.instructions=n}},tM=(o=>(o[o.SymbolInformation=1]="SymbolInformation",o[o.CommandInformation=2]="CommandInformation",o[o.SearchInformation=3]="SearchInformation",o[o.SettingInformation=4]="SettingInformation",o))(tM||{}),nM=(n=>(n[n.EMBEDDED=1]="EMBEDDED",n[n.LLM_RANKED=2]="LLM_RANKED",n[n.CANCELED=3]="CANCELED",n))(nM||{}),oM=(r=>(r[r.Started=1]="Started",r[r.Recognizing=2]="Recognizing",r[r.Recognized=3]="Recognized",r[r.Stopped=4]="Stopped",r[r.Error=5]="Error",r))(oM||{}),rM=(n=>(n[n.Started=1]="Started",n[n.Stopped=2]="Stopped",n[n.Error=3]="Error",n))(rM||{}),iM=(e=>(e[e.Recognized=1]="Recognized",e[e.Stopped=2]="Stopped",e))(iM||{}),uT=(e=>(e[e.Initial=0]="Initial",e[e.Dynamic=1]="Dynamic",e))(uT||{}),du=class{constructor(t,e,n,o={},r,s){this.label=t;this.command=e;this.args=n;this.env=o;this.version=r;this.metadata=s}},cu=class{constructor(t,e,n={},o,r,s){this.label=t;this.uri=e;this.headers=n;this.version=o;this.metadata=r;this.authentication=s}};var Do;(e=>{function i(n){let{selectionStartLineNumber:o,selectionStartColumn:r,positionLineNumber:s,positionColumn:a}=n,l=new De(o-1,r-1),d=new De(s-1,a-1);return new Zn(l,d)}e.to=i;function t(n){let{anchor:o,active:r}=n;return{selectionStartLineNumber:o.line+1,selectionStartColumn:o.character+1,positionLineNumber:r.line+1,positionColumn:r.character+1}}e.from=t})(Do||={});var G;(e=>{function i(n){if(!n)return;let{start:o,end:r}=n;return{startLineNumber:o.line+1,startColumn:o.character+1,endLineNumber:r.line+1,endColumn:r.character+1}}e.from=i;function t(n){if(!n)return;let{startLineNumber:o,startColumn:r,endLineNumber:s,endColumn:a}=n;return new be(o-1,r-1,s-1,a-1)}e.to=t})(G||={});var li;(e=>{function i(n){return{uri:n.uri,range:G.from(n.range)}}e.from=i;function t(n){return new tn(b.revive(n.uri),G.to(n.range))}e.to=t})(li||={});var mM;(t=>{function i(e){switch(e){case 1:return 1;case 0:return 0;case 3:return 3;case 2:return 2}}t.to=i})(mM||={});var gt;(e=>{function i(n){return new De(n.lineNumber-1,n.column-1)}e.to=i;function t(n){return{lineNumber:n.line+1,column:n.character+1}}e.from=t})(gt||={});var Fi;(n=>{function i(o,r,s){return nt(An(o).map(a=>t(a,r,s)))}n.from=i;function t(o,r,s){if(typeof o=="string")return{$serialized:!0,language:o,isBuiltin:s?.isBuiltin};if(o)return{$serialized:!0,language:o.language,scheme:e(o.scheme,r),pattern:zo.from(o.pattern)??void 0,exclusive:o.exclusive,notebookType:o.notebookType,isBuiltin:s?.isBuiltin}}function e(o,r){return r&&typeof o=="string"?r.transformOutgoingScheme(o):o}})(Fi||={});var sM;(e=>{function i(n){switch(n){case 1:return 1;case 2:return 2}}e.from=i;function t(n){switch(n){case 1:return 1;case 2:return 2;default:return}}e.to=t})(sM||={});var ja;(e=>{function i(n){let o;return n.code&&(Me(n.code)||Hn(n.code)?o=String(n.code):o={value:String(n.code.value),target:n.code.target}),{...G.from(n.range),message:n.message,source:n.source,code:o,severity:pT.from(n.severity),relatedInformation:n.relatedInformation&&n.relatedInformation.map(aM.from),tags:Array.isArray(n.tags)?nt(n.tags.map(sM.from)):void 0}}e.from=i;function t(n){let o=new wa(G.to(n),n.message,pT.to(n.severity));return o.source=n.source,o.code=Me(n.code)?n.code:n.code?.value,o.relatedInformation=n.relatedInformation&&n.relatedInformation.map(aM.to),o.tags=n.tags&&nt(n.tags.map(sM.to)),o}e.to=t})(ja||={});var aM;(e=>{function i(n){return{...G.from(n.location.range),message:n.message,resource:n.location.uri}}e.from=i;function t(n){return new Is(new tn(n.resource,G.to(n)),n.message)}e.to=t})(aM||={});var pT;(e=>{function i(n){switch(n){case 0:return 8;case 1:return 4;case 2:return 2;case 3:return 1}return 8}e.from=i;function t(n){switch(n){case 2:return 2;case 4:return 1;case 8:return 0;case 1:return 3;default:return 0}}e.to=t})(pT||={});var $t;(e=>{function i(n){return typeof n=="number"&&n>=1?n-1:n===-2?LW:MW}e.from=i;function t(n){if(typeof n=="number"&&n>=0)return n+1;throw new Error("invalid 'EditorGroupColumn'")}e.to=t})($t||={});function Hq(i){return typeof i.range<"u"}function gM(i){return i.length===0?!0:!!Hq(i[0])}var ge;(s=>{function i(a){return a.map(s.from)}s.fromMany=i;function t(a){return a&&typeof a=="object"&&typeof a.language=="string"&&typeof a.value=="string"}function e(a){let l;if(t(a)){let{language:u,value:m}=a;l={value:"```"+u+`
`+m+"\n```\n"}}else Xt.isMarkdownString(a)?l={value:a.value,isTrusted:a.isTrusted,supportThemeIcons:a.supportThemeIcons,supportHtml:a.supportHtml,supportAlertSyntax:a.supportAlertSyntax,baseUri:a.baseUri}:typeof a=="string"?l={value:a}:l={value:""};let d=Object.create(null);l.uris=d;let c=({href:u})=>{try{let m=b.parse(u,!0);m=m.with({query:n(m.query,d)}),d[u]=m}catch{}return""};return zt.walkTokens(zt.lexer(l.value),u=>{u.type==="link"?c({href:u.href}):u.type==="image"&&typeof u.href=="string"&&c(tH(u.href))}),l}s.from=e;function n(a,l){if(!a)return a;let d;try{d=zI(a)}catch{}if(!d)return a;let c=!1;return d=ds(d,u=>{if(b.isUri(u)){let m=`__uri_${Math.random().toString(16).slice(2,8)}`;return l[m]=u,c=!0,m}else return}),c?JSON.stringify(d):a}function o(a){let l=new Xt(a.value,a.supportThemeIcons);return l.isTrusted=a.isTrusted,l.supportHtml=a.supportHtml,l.supportAlertSyntax=a.supportAlertSyntax,l.baseUri=a.baseUri?b.from(a.baseUri):void 0,l}s.to=o;function r(a){if(a)return typeof a=="string"?a:s.from(a)}s.fromStrict=r})(ge||={});function KW(i){return gM(i)?i.map(t=>({range:G.from(t.range),hoverMessage:Array.isArray(t.hoverMessage)?ge.fromMany(t.hoverMessage):t.hoverMessage?ge.from(t.hoverMessage):void 0,renderOptions:t.renderOptions})):i.map(t=>({range:G.from(t)}))}function pb(i){return typeof i>"u"?i:typeof i=="string"?b.file(i):i}var ib;(t=>{function i(e){return typeof e>"u"?e:{contentText:e.contentText,contentIconPath:e.contentIconPath?pb(e.contentIconPath):void 0,border:e.border,borderColor:e.borderColor,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,color:e.color,backgroundColor:e.backgroundColor,margin:e.margin,width:e.width,height:e.height}}t.from=i})(ib||={});var lM;(t=>{function i(e){return typeof e>"u"?e:{backgroundColor:e.backgroundColor,outline:e.outline,outlineColor:e.outlineColor,outlineStyle:e.outlineStyle,outlineWidth:e.outlineWidth,border:e.border,borderColor:e.borderColor,borderRadius:e.borderRadius,borderSpacing:e.borderSpacing,borderStyle:e.borderStyle,borderWidth:e.borderWidth,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,cursor:e.cursor,color:e.color,opacity:e.opacity,letterSpacing:e.letterSpacing,gutterIconPath:e.gutterIconPath?pb(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?ib.from(e.before):void 0,after:e.after?ib.from(e.after):void 0}}t.from=i})(lM||={});var jW;(t=>{function i(e){if(typeof e>"u")return e;switch(e){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3}}t.from=i})(jW||={});var fM;(t=>{function i(e){return{isWholeLine:e.isWholeLine,rangeBehavior:e.rangeBehavior?jW.from(e.rangeBehavior):void 0,overviewRulerLane:e.overviewRulerLane,light:e.light?lM.from(e.light):void 0,dark:e.dark?lM.from(e.dark):void 0,backgroundColor:e.backgroundColor,outline:e.outline,outlineColor:e.outlineColor,outlineStyle:e.outlineStyle,outlineWidth:e.outlineWidth,border:e.border,borderColor:e.borderColor,borderRadius:e.borderRadius,borderSpacing:e.borderSpacing,borderStyle:e.borderStyle,borderWidth:e.borderWidth,fontStyle:e.fontStyle,fontWeight:e.fontWeight,textDecoration:e.textDecoration,cursor:e.cursor,color:e.color,opacity:e.opacity,letterSpacing:e.letterSpacing,gutterIconPath:e.gutterIconPath?pb(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?ib.from(e.before):void 0,after:e.after?ib.from(e.after):void 0}}t.from=i})(fM||={});var Dn;(e=>{function i(n){return{text:n.newText,eol:n.newEol&&fu.from(n.newEol),range:G.from(n.range)}}e.from=i;function t(n){let o=new Bn(G.to(n.range),n.text);return o.newEol=typeof n.eol>"u"?void 0:fu.to(n.eol),o}e.to=t})(Dn||={});var bo;(e=>{function i(n,o){let r={edits:[]};if(n instanceof Er){let s=new Dr;for(let a of n._allEntries())a._type===1&&b.isUri(a.to)&&a.from===void 0&&s.add(a.to);for(let a of n._allEntries())if(a._type===1){let l;a.options?.contents&&(ArrayBuffer.isView(a.options.contents)?l={type:"base64",value:so(W.wrap(a.options.contents))}:l={type:"dataTransferItem",id:a.options.contents._itemId}),r.edits.push({oldResource:a.from,newResource:a.to,options:{...a.options,contents:l},metadata:a.metadata})}else a._type===2?r.edits.push({resource:a.uri,textEdit:Dn.from(a.edit),versionId:s.has(a.uri)?void 0:o?.getTextDocumentVersion(a.uri),metadata:a.metadata}):a._type===6?r.edits.push({resource:a.uri,textEdit:{range:G.from(a.range),text:a.edit.value,insertAsSnippet:!0,keepWhitespace:a.keepWhitespace},versionId:s.has(a.uri)?void 0:o?.getTextDocumentVersion(a.uri),metadata:a.metadata}):a._type===3?r.edits.push({metadata:a.metadata,resource:a.uri,cellEdit:a.edit,notebookVersionId:o?.getNotebookDocumentVersion(a.uri)}):a._type===5&&r.edits.push({metadata:a.metadata,resource:a.uri,notebookVersionId:o?.getNotebookDocumentVersion(a.uri),cellEdit:{editType:1,index:a.index,count:a.count,cells:a.cells.map(ab.from)}})}return r}e.from=i;function t(n){let o=new Er,r=new je;for(let s of n.edits)if(s.textEdit){let a=s,l=b.revive(a.resource),d=G.to(a.textEdit.range),c=a.textEdit.text,u=a.textEdit.insertAsSnippet,m;u?m=ka.replace(d,new eo(c)):m=Bn.replace(d,c);let g=r.get(l);g?g.push(m):r.set(l,[m])}else o.renameFile(b.revive(s.oldResource),b.revive(s.newResource),s.options);for(let[s,a]of r)o.set(s,a);return o}e.to=t})(bo||={});var Vr;(n=>{let i=Object.create(null);i[0]=0,i[1]=1,i[2]=2,i[3]=3,i[4]=4,i[5]=5,i[6]=6,i[7]=7,i[8]=8,i[9]=9,i[10]=10,i[11]=11,i[12]=12,i[13]=13,i[14]=14,i[15]=15,i[16]=16,i[17]=17,i[18]=18,i[19]=19,i[20]=20,i[21]=21,i[22]=22,i[23]=23,i[24]=24,i[25]=25;function t(o){return typeof i[o]=="number"?i[o]:6}n.from=t;function e(o){for(let r in i)if(i[r]===o)return Number(r);return 6}n.to=e})(Vr||={});var qa;(e=>{function i(n){if(n===1)return 1}e.from=i;function t(n){if(n===1)return 1}e.to=t})(qa||={});var Td;(e=>{function i(n){return{name:n.name,kind:Vr.from(n.kind),tags:n.tags&&n.tags.map(qa.from),containerName:n.containerName,location:vo.from(n.location)}}e.from=i;function t(n){let o=new Fr(n.name,Vr.to(n.kind),n.containerName,vo.to(n.location));return o.tags=n.tags&&n.tags.map(qa.to),o}e.to=t})(Td||={});var hM;(e=>{function i(n){let o={name:n.name||"!!MISSING: name!!",detail:n.detail,range:G.from(n.range),selectionRange:G.from(n.selectionRange),kind:Vr.from(n.kind),tags:n.tags?.map(qa.from)??[]};return n.children&&(o.children=n.children.map(i)),o}e.from=i;function t(n){let o=new Hr(n.name,n.detail,Vr.to(n.kind),G.to(n.range),G.to(n.selectionRange));return ml(n.tags)&&(o.tags=n.tags.map(qa.to)),n.children&&(o.children=n.children.map(t)),o}e.to=t})(hM||={});var Ga;(e=>{function i(n){let o=new cd(Vr.to(n.kind),n.name,n.detail||"",b.revive(n.uri),G.to(n.range),G.to(n.selectionRange));return o._sessionId=n._sessionId,o._itemId=n._itemId,o}e.to=i;function t(n,o,r){if(o=o??n._sessionId,r=r??n._itemId,o===void 0||r===void 0)throw new Error("invalid item");return{_sessionId:o,_itemId:r,name:n.name,detail:n.detail,kind:Vr.from(n.kind),uri:n.uri,range:G.from(n.range),selectionRange:G.from(n.selectionRange),tags:n.tags?.map(qa.from)}}e.from=t})(Ga||={});var vM;(t=>{function i(e){return new vm(Ga.to(e.from),e.fromRanges.map(n=>G.to(n)))}t.to=i})(vM||={});var bM;(t=>{function i(e){return new bm(Ga.to(e.to),e.fromRanges.map(n=>G.to(n)))}t.to=i})(bM||={});var vo;(e=>{function i(n){return{range:n.range&&G.from(n.range),uri:n.uri}}e.from=i;function t(n){return new tn(b.revive(n.uri),G.to(n.range))}e.to=t})(vo||={});var Xm;(e=>{function i(n){let o=n,r=n;return{originSelectionRange:o.originSelectionRange?G.from(o.originSelectionRange):void 0,uri:o.targetUri?o.targetUri:r.uri,range:G.from(o.targetRange?o.targetRange:r.range),targetSelectionRange:o.targetSelectionRange?G.from(o.targetSelectionRange):void 0}}e.from=i;function t(n){return{targetUri:b.revive(n.uri),targetRange:G.to(n.range),targetSelectionRange:n.targetSelectionRange?G.to(n.targetSelectionRange):void 0,originSelectionRange:n.originSelectionRange?G.to(n.originSelectionRange):void 0}}e.to=t})(Xm||={});var Zm;(e=>{function i(n){return{range:G.from(n.range),contents:ge.fromMany(n.contents),canIncreaseVerbosity:n.canIncreaseVerbosity,canDecreaseVerbosity:n.canDecreaseVerbosity}}e.from=i;function t(n){let o=n.contents.map(ge.to),r=G.to(n.range),s=n.canIncreaseVerbosity,a=n.canDecreaseVerbosity;return new Gl(o,r,s,a)}e.to=t})(Zm||={});var yM;(e=>{function i(n){return{range:G.from(n.range),expression:n.expression}}e.from=i;function t(n){return new rd(G.to(n.range),n.expression)}e.to=t})(yM||={});var mb;(e=>{function i(n){if(n instanceof id)return{type:"text",range:G.from(n.range),text:n.text};if(n instanceof sd)return{type:"variable",range:G.from(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};if(n instanceof ad)return{type:"expression",range:G.from(n.range),expression:n.expression};throw new Error("Unknown 'InlineValue' type")}e.from=i;function t(n){switch(n.type){case"text":return{range:G.to(n.range),text:n.text};case"variable":return{range:G.to(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};case"expression":return{range:G.to(n.range),expression:n.expression}}}e.to=t})(mb||={});var gb;(e=>{function i(n){return{frameId:n.frameId,stoppedLocation:G.from(n.stoppedLocation)}}e.from=i;function t(n){return new gm(n.frameId,G.to(n.stoppedLocation))}e.to=t})(gb||={});var gu;(e=>{function i(n){return{range:G.from(n.range),kind:n.kind}}e.from=i;function t(n){return new Ql(G.to(n.range),n.kind)}e.to=t})(gu||={});var IM;(e=>{function i(n){return{uri:n.uri,highlights:n.highlights.map(gu.from)}}e.from=i;function t(n){return new Jl(b.revive(n.uri),n.highlights.map(gu.to))}e.to=t})(IM||={});var GW;(t=>{function i(e){switch(e){case 1:return 1;case 2:return 2;case 0:default:return 0}}t.to=i})(GW||={});var xM;(t=>{function i(e){return{triggerKind:GW.to(e.triggerKind),triggerCharacter:e.triggerCharacter}}t.to=i})(xM||={});var mT;(e=>{function i(n){if(n===1)return 1}e.from=i;function t(n){if(n===1)return 1}e.to=t})(mT||={});var SM;(t=>{function i(e,n,o){return"icon"in e&&"command"in e?{command:n.toInternal(e.command,o),icon:Hi.fromThemeIcon(e.icon)}:{command:n.toInternal(e,o)}}t.from=i})(SM||={});var gT;(o=>{let i=new Map([[1,0],[2,1],[3,2],[4,3],[5,4],[6,5],[7,7],[21,6],[8,8],[9,9],[10,12],[11,13],[20,14],[12,15],[19,16],[13,17],[14,28],[0,18],[15,19],[16,20],[17,21],[18,23],[22,10],[23,11],[24,24],[26,26],[25,25]]);function t(r){return i.get(r)??9}o.from=t;let e=new Map([[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[7,7],[6,21],[8,8],[9,9],[12,10],[13,11],[14,20],[15,12],[16,19],[17,13],[28,14],[18,0],[19,15],[20,16],[21,17],[23,18],[10,22],[11,23],[24,24],[25,25],[26,26]]);function n(r){return e.get(r)??9}o.to=n})(gT||={});var CM;(t=>{function i(e,n){let o=new ed(e.label);return o.insertText=e.insertText,o.kind=gT.to(e.kind),o.tags=e.tags?.map(mT.to),o.detail=e.detail,o.documentation=Vo(e.documentation)?ge.to(e.documentation):e.documentation,o.sortText=e.sortText,o.filterText=e.filterText,o.preselect=e.preselect,o.commitCharacters=e.commitCharacters,We.isIRange(e.range)?o.range=G.to(e.range):typeof e.range=="object"&&(o.range={inserting:G.to(e.range.insert),replacing:G.to(e.range.replace)}),o.keepWhitespace=typeof e.insertTextRules>"u"?!1:!!(e.insertTextRules&1),typeof e.insertTextRules<"u"&&e.insertTextRules&4?o.insertText=new eo(e.insertText):(o.insertText=e.insertText,o.textEdit=o.range instanceof be?new Bn(o.range,o.insertText):void 0),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(o.additionalTextEdits=e.additionalTextEdits.map(r=>Dn.to(r))),o.command=n&&e.command?n.fromInternal(e.command):void 0,o}t.to=i})(CM||={});var dM;(e=>{function i(n){if(typeof n.label!="string"&&!Array.isArray(n.label))throw new TypeError("Invalid label");return{label:n.label,documentation:ge.fromStrict(n.documentation)}}e.from=i;function t(n){return{label:n.label,documentation:Vo(n.documentation)?ge.to(n.documentation):n.documentation}}e.to=t})(dM||={});var cM;(e=>{function i(n){return{label:n.label,documentation:ge.fromStrict(n.documentation),parameters:Array.isArray(n.parameters)?n.parameters.map(dM.from):[],activeParameter:n.activeParameter}}e.from=i;function t(n){return{label:n.label,documentation:Vo(n.documentation)?ge.to(n.documentation):n.documentation,parameters:Array.isArray(n.parameters)?n.parameters.map(dM.to):[],activeParameter:n.activeParameter}}e.to=t})(cM||={});var eg;(e=>{function i(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(cM.from):[]}}e.from=i;function t(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(cM.to):[]}}e.to=t})(eg||={});var TM;(t=>{function i(e,n){let o=new Zl(gt.to(n.position),typeof n.label=="string"?n.label:n.label.map(QW.to.bind(void 0,e)),n.kind&&fT.to(n.kind));return o.textEdits=n.textEdits&&n.textEdits.map(Dn.to),o.tooltip=Vo(n.tooltip)?ge.to(n.tooltip):n.tooltip,o.paddingLeft=n.paddingLeft,o.paddingRight=n.paddingRight,o}t.to=i})(TM||={});var QW;(t=>{function i(e,n){let o=new Xl(n.label);return o.tooltip=Vo(n.tooltip)?ge.to(n.tooltip):n.tooltip,KR.is(n.command)&&(o.command=e.fromInternal(n.command)),n.location&&(o.location=vo.to(n.location)),o}t.to=i})(QW||={});var fT;(e=>{function i(n){return n}e.from=i;function t(n){return n}e.to=t})(fT||={});var Qa;(e=>{function i(n){return{range:G.from(n.range),url:n.target,tooltip:n.tooltip}}e.from=i;function t(n){let o;if(n.url)try{o=typeof n.url=="string"?b.parse(n.url,!0):b.revive(n.url)}catch{}let r=new td(G.to(n.range),o);return r.tooltip=n.tooltip,r}e.to=t})(Qa||={});var fb;(e=>{function i(n){let o=new od(n.label);return n.textEdit&&(o.textEdit=Dn.to(n.textEdit)),n.additionalTextEdits&&(o.additionalTextEdits=n.additionalTextEdits.map(r=>Dn.to(r))),o}e.to=i;function t(n){return{label:n.label,textEdit:n.textEdit?Dn.from(n.textEdit):void 0,additionalTextEdits:n.additionalTextEdits?n.additionalTextEdits.map(o=>Dn.from(o)):void 0}}e.from=t})(fb||={});var yu;(e=>{function i(n){return new _i(n[0],n[1],n[2],n[3])}e.to=i;function t(n){return[n.red,n.green,n.blue,n.alpha]}e.from=t})(yu||={});var EM;(e=>{function i(n){return{range:G.from(n.range)}}e.from=i;function t(n){return new Es(G.to(n.range))}e.to=t})(EM||={});var hb;(t=>{function i(e){switch(e){case 2:return 2;case 1:return 1;case 3:case 4:return 3}}t.to=i})(hb||={});var Iu;(e=>{function i(n){switch(n){case 0:return 0;case 2:return 2;case 3:return 3;case 1:default:return 1}}e.from=i;function t(n){switch(n){case 0:return 0;case 2:return 2;case 3:return 3;case 1:default:return 1}}e.to=t})(Iu||={});var fu;(e=>{function i(n){if(n===2)return 1;if(n===1)return 0}e.from=i;function t(n){if(n===1)return 2;if(n===0)return 1}e.to=t})(fu||={});var hT;(t=>{function i(e){if(typeof e=="object")return e.viewId;switch(e){case 1:return 3;case 10:return 10;case 15:return 15}throw new Error("Unknown 'ProgressLocation'")}t.from=i})(hT||={});var vb;(e=>{function i(n){let o={start:n.start+1,end:n.end+1};return n.kind&&(o.kind=uM.from(n.kind)),o}e.from=i;function t(n){let o={start:n.start-1,end:n.end-1};return n.kind&&(o.kind=uM.to(n.kind)),o}e.to=t})(vb||={});var uM;(e=>{function i(n){if(n)switch(n){case 1:return va.Comment;case 2:return va.Imports;case 3:return va.Region}}e.from=i;function t(n){if(n)switch(n.value){case va.Comment.value:return 1;case va.Imports.value:return 2;case va.Region.value:return 3}}e.to=t})(uM||={});var bb;(t=>{function i(e){if(e)return{pinned:typeof e.preview=="boolean"?!e.preview:void 0,inactive:e.background,preserveFocus:e.preserveFocus,selection:typeof e.selection=="object"?G.from(e.selection):void 0,override:typeof e.override=="boolean"?tA.id:void 0}}t.from=i})(bb||={});var zo;(o=>{function i(r){return r instanceof Ps?r.toJSON():typeof r=="string"?r:t(r)||e(r)?new Ps(r.baseUri??r.base,r.pattern).toJSON():r}o.from=i;function t(r){let s=r;return s?b.isUri(s.baseUri)&&typeof s.pattern=="string":!1}function e(r){let s=r;return s?typeof s.base=="string"&&typeof s.pattern=="string":!1}function n(r){return typeof r=="string"?r:new Ps(b.revive(r.baseUri),r.pattern)}o.to=n})(zo||={});var wM;(t=>{function i(e){if(e){if(Array.isArray(e))return e.map(i);if(typeof e=="string")return e;{let n=e;return{language:n.language,scheme:n.scheme,pattern:zo.from(n.pattern)??void 0,exclusive:n.exclusive,notebookType:n.notebookType}}}else return}t.from=i})(wM||={});var Wr;(e=>{function i(n){return{start:n.start,end:n.end}}e.from=i;function t(n){return new co(n.start,n.end)}e.to=t})(Wr||={});var Qm;(e=>{function i(n){return{timing:typeof n.runStartTime=="number"&&typeof n.runEndTime=="number"?{startTime:n.runStartTime,endTime:n.runEndTime}:void 0,executionOrder:n.executionOrder,success:n.lastRunSuccess}}e.to=i;function t(n){return{lastRunSuccess:n.success,runStartTime:n.timing?.startTime,runEndTime:n.timing?.endTime,executionOrder:n.executionOrder}}e.from=t})(Qm||={});var sb;(e=>{function i(n){switch(n){case 1:return 1;case 2:default:return 2}}e.from=i;function t(n){switch(n){case 1:return 1;case 2:default:return 2}}e.to=t})(sb||={});var Ed;(e=>{function i(n){let o={metadata:n.metadata??Object.create(null),cells:[]};for(let r of n.cells)xs.validate(r),o.cells.push(ab.from(r));return o}e.from=i;function t(n){let o=new qc(n.cells.map(ab.to));return cp(n.metadata)||(o.metadata=n.metadata),o}e.to=t})(Ed||={});var ab;(e=>{function i(n){return{cellKind:sb.from(n.kind),language:n.languageId,mime:n.mime,source:n.value,metadata:n.metadata,internalMetadata:Qm.from(n.executionSummary??{}),outputs:n.outputs?n.outputs.map(Ka.from):[]}}e.from=i;function t(n){return new xs(sb.to(n.cellKind),n.source,n.language,n.mime,n.outputs?n.outputs.map(Ka.to):void 0,n.metadata,n.internalMetadata?Qm.to(n.internalMetadata):void 0)}e.to=t})(ab||={});var hu;(e=>{function i(n){return{mime:n.mime,valueBytes:W.wrap(n.data)}}e.from=i;function t(n){return new Kc(n.valueBytes.buffer,n.mime)}e.to=t})(hu||={});var Ka;(e=>{function i(n){return{outputId:n.id,items:n.items.map(hu.from),metadata:n.metadata}}e.from=i;function t(n){let o=n.items.map(hu.to);return new Ss(o,n.outputId,n.metadata)}e.to=t})(Ka||={});var yb;(n=>{function i(o){return e(o)?{include:zo.from(o.include)??void 0,exclude:zo.from(o.exclude)??void 0}:zo.from(o)??void 0}n.from=i;function t(o){return e(o)?{include:zo.to(o.include),exclude:zo.to(o.exclude)}:zo.to(o)}n.to=t;function e(o){let r=o;return r?!Ht(r.include)&&!Ht(r.exclude):!1}})(yb||={});var kM;(t=>{function i(e,n,o){let r=typeof e.command=="string"?{title:"",command:e.command}:e.command;return{alignment:e.alignment===1?1:2,command:n.toInternal(r,o),text:e.text,tooltip:e.tooltip,accessibilityInformation:e.accessibilityInformation,priority:e.priority}}t.from=i})(kM||={});var PM;(t=>{function i(e,n,o){let r=typeof e.command=="string"?{title:"",command:e.command}:e.command;return{command:n.toInternal(r,o),label:e.label,description:e.description,detail:e.detail,documentation:e.documentation}}t.from=i})(PM||={});var _M;(t=>{function i(e){return{transientOutputs:e?.transientOutputs??!1,transientCellMetadata:e?.transientCellMetadata??{},transientDocumentMetadata:e?.transientDocumentMetadata??{},cellContentMetadata:e?.cellContentMetadata??{}}}t.from=i})(_M||={});var vT;(e=>{function i(n){return{uri:n.uri,provides:n.provides}}e.from=i;function t(n){return new Sm(b.revive(n.uri),n.provides)}e.to=t})(vT||={});var tg;(e=>{function i(n){return{message:ge.fromStrict(n.message)||"",type:0,expected:n.expectedOutput,actual:n.actualOutput,contextValue:n.contextValue,location:n.location&&{range:G.from(n.location.range),uri:n.location.uri},stackTrace:n.stackTrace?.map(o=>({label:o.label,position:o.position&&gt.from(o.position),uri:o.uri&&b.revive(o.uri).toJSON()}))}}e.from=i;function t(n){let o=new Ds(typeof n.message=="string"?n.message:ge.to(n.message));return o.actualOutput=n.actual,o.expectedOutput=n.expected,o.contextValue=n.contextValue,o.location=n.location?vo.to(n.location):void 0,o}e.to=t})(tg||={});var di;(e=>(e.namespace=om,e.denamespace=kS))(di||={});var DM;(t=>{function i(e){return{controllerId:e.controllerId,profileId:e.profileId,group:ng.from(e.kind)}}t.from=i})(DM||={});var ng;(e=>{let i={3:8,2:4,1:2};function t(n){return i.hasOwnProperty(n)?i[n]:2}e.from=t})(ng||={});var Hs;(e=>{function i(n){let o=rm(n).controllerId;return{extId:Ze.fromExtHostTestItem(n,o).toString(),label:n.label,uri:b.revive(n.uri),busy:n.busy,tags:n.tags.map(r=>di.namespace(o,r.id)),range:We.lift(G.from(n.range)),description:n.description||null,sortText:n.sortText||null,error:n.error&&ge.fromStrict(n.error)||null}}e.from=i;function t(n){return{parent:void 0,error:void 0,id:Ze.fromString(n.extId).localId,label:n.label,uri:b.revive(n.uri),tags:(n.tags||[]).map(o=>{let{tagId:r}=di.denamespace(o);return new Aa(r)}),children:{add:()=>{},delete:()=>{},forEach:()=>{},*[Symbol.iterator](){},get:()=>{},replace:()=>{},size:0},range:G.to(n.range||void 0),canResolveChildren:!1,busy:n.busy,description:n.description||void 0,sortText:n.sortText||void 0}}e.toPlain=t})(Hs||={});(e=>{function i(n){return{id:n.id}}e.from=i;function t(n){return new Aa(n.id)}e.to=t})(di||={});var RM;(e=>{let i=(n,o)=>{let r=n.value;if(!r)return;let s={...Hs.toPlain(r.item),parent:o,taskStates:r.tasks.map(a=>({state:a.state,duration:a.duration,messages:a.messages.filter(l=>l.type===0).map(tg.to)})),children:[]};if(n.children)for(let a of n.children.values()){let l=i(a,s);l&&s.children.push(l)}return s};function t(n){let o=new wx;for(let a of n.items)o.insert(Ze.fromString(a.item.extId).path,a);let r=[o.nodes],s=[];for(;r.length;)for(let a of r.pop())a.value?s.push(a):a.children&&r.push(a.children.values());return{completedAt:n.completedAt,results:s.map(a=>i(a)).filter(xo)}}e.to=t})(RM||={});var Ib;(s=>{function i(a){return{covered:a.covered,total:a.total}}function t(a){return"line"in a?gt.from(a):G.from(a)}function e(a){if(a)return"endLineNumber"in a?G.to(a):gt.to(a)}function n(a){if(a.type===1){let l=[];if(a.branches)for(let d of a.branches)l.push({executed:d.count,location:e(d.location),label:d.label});return new Tm(a.count,e(a.location),a.branches?.map(d=>new Em(d.count,e(d.location),d.label)))}else return new wm(a.name,a.count,e(a.location))}s.to=n;function o(a){if(typeof a.executed=="number"&&a.executed<0)throw new Error(`Invalid coverage count ${a.executed}`);return"branches"in a?{count:a.executed,location:t(a.location),type:1,branches:a.branches.length?a.branches.map(l=>({count:l.executed,location:l.location&&t(l.location),label:l.label})):void 0}:{type:0,name:a.name,count:a.executed,location:t(a.location)}}s.fromDetails=o;function r(a,l,d){return ob(d.statementCoverage),ob(d.branchCoverage),ob(d.declarationCoverage),{id:l,uri:d.uri,statement:i(d.statementCoverage),branch:d.branchCoverage&&i(d.branchCoverage),declaration:d.declarationCoverage&&i(d.declarationCoverage),testIds:d instanceof Ma&&d.includesTests.length?d.includesTests.map(c=>Ze.fromExtHostTestItem(c,a).toString()):void 0}}s.fromFile=r})(Ib||={});var AM;(t=>{function i(e){switch(e){case 1:return 1;case 2:return 2}}t.to=i})(AM||={});var Ja;(e=>{function i(n){let o=new md(Vr.to(n.kind),n.name,n.detail||"",b.revive(n.uri),G.to(n.range),G.to(n.selectionRange));return o._sessionId=n._sessionId,o._itemId=n._itemId,o}e.to=i;function t(n,o,r){if(o=o??n._sessionId,r=r??n._itemId,o===void 0||r===void 0)throw new Error("invalid item");return{_sessionId:o,_itemId:r,kind:Vr.from(n.kind),name:n.name,detail:n.detail??"",uri:n.uri,range:G.from(n.range),selectionRange:G.from(n.selectionRange),tags:n.tags?.map(qa.from)}}e.from=t})(Ja||={});var xb;(t=>{function i(e){if(e)return{value:e.value,tooltip:e.tooltip}}t.from=i})(xb||={});var mu;(o=>{function i(r,s,a){let l=s.fileData;return l?new HS(new VS(l.name,b.revive(l.uri),l.id,pl(()=>a(l.id)))):r===Cr.uriList&&s.uriListData?new ud(n(s.uriListData)):new ud(s.asString)}o.to=i;async function t(r,s,a=Pe()){let l=await s.asString();if(r===Cr.uriList)return{id:a,asString:l,fileData:void 0,uriListData:e(l)};let d=s.asFile();return{id:a,asString:l,fileData:d?{name:d.name,uri:d.uri,id:d._itemId??d.id}:void 0}}o.from=t;function e(r){return yx.split(r).map(s=>{if(s.startsWith("#"))return s;try{return b.parse(s)}catch{}return s})}function n(r){return yx.create(r.map(s=>typeof s=="string"?s:b.revive(s)))}})(mu||={});var xu;(n=>{function i(o,r){let s=o.items.map(([a,l])=>[a,mu.to(a,l,r)]);return new oi(s)}n.toDataTransfer=i;async function t(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await mu.from(s,a)]))}}n.from=t;async function e(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await mu.from(s,a,a.id)]))}}n.fromList=e})(xu||={});var bT;(e=>{function i(n,o){return{kind:"reply",agentId:n.participant??o?.agentId??"",subCommand:n.command??o?.command,message:n.prompt,title:n.label}}e.from=i;function t(n){return{prompt:n.message,label:n.title,participant:n.agentId,command:n.subCommand}}e.to=t})(bT||={});var lb;(e=>{function i(n){switch(n){case 0:return 3;case 1:return 1;case 2:return 2}}e.to=i;function t(n){switch(n){case 3:return 0;case 1:return 1;case 2:return 2}return 1}e.from=t})(lb||={});var Vq;(e=>{function i(n){let o=n.content.map(a=>{if(a.type==="text")return new nn(a.value,a.audience);if(a.type==="tool_result"){let l=nt(a.value.map(d=>d.type==="text"?new nn(d.value,d.audience):d.type==="data"?new Un(d.data.buffer,d.mimeType):d.type==="prompt_tsx"?new ai(d.value):void 0));return new Fs(a.toolCallId,l,a.isError)}else{if(a.type==="image_url")return new Un(a.value.data.buffer,a.value.mimeType);if(a.type==="data")return new Un(a.data.buffer,a.mimeType);if(a.type==="tool_use")return new si(a.toolCallId,a.name,a.parameters)}}).filter(a=>a!==void 0),r=lb.to(n.role);return new qm(r,o,n.name)}e.to=i;function t(n){let o=lb.from(n.role),r=n.name,s=n.content;typeof s=="string"&&(s=[new nn(s)]);let a=s.map(l=>{if(l instanceof Fs)return{type:"tool_result",toolCallId:l.callId,value:nt(l.content.map(d=>d instanceof nn?{type:"text",value:d.value,audience:d.audience}:d instanceof ai?{type:"prompt_tsx",value:d.value}:d instanceof Un?{type:"data",mimeType:d.mimeType,data:W.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof Un)return JW(l)?{type:"image_url",value:{mimeType:l.mimeType,data:W.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:W.wrap(l.data),audience:l.audience};if(l instanceof si)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof nn)return{type:"text",value:l.value};if(typeof l!="string")throw new Error("Unexpected chat message content type");return{type:"text",value:l}});return{role:o,name:r,content:a}}e.from=t})(Vq||={});var yT;(e=>{function i(n){let o=n.content.map(a=>{if(a.type==="text")return new nn(a.value,a.audience);if(a.type==="tool_result"){let l=a.value.map(d=>d.type==="text"?new nn(d.value,d.audience):d.type==="data"?new Un(d.data.buffer,d.mimeType):new ai(d.value));return new Fs(a.toolCallId,l,a.isError)}else return a.type==="image_url"?new Un(a.value.data.buffer,a.value.mimeType):a.type==="data"?new Un(a.data.buffer,a.mimeType):a.type==="thinking"?new Ui(a.value,a.id,a.metadata):new si(a.toolCallId,a.name,a.parameters)}),r=lb.to(n.role);return new Km(r,o,n.name)}e.to=i;function t(n){let o=lb.from(n.role),r=n.name,s=n.content;typeof s=="string"&&(s=[new nn(s)]);let a=s.map(l=>{if(l instanceof Fs)return{type:"tool_result",toolCallId:l.callId,value:nt(l.content.map(d=>d instanceof nn?{type:"text",value:d.value,audience:d.audience}:d instanceof ai?{type:"prompt_tsx",value:d.value}:d instanceof Un?{type:"data",mimeType:d.mimeType,data:W.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof Un)return JW(l)?{type:"image_url",value:{mimeType:l.mimeType,data:W.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:W.wrap(l.data),audience:l.audience};if(l instanceof si)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof nn)return{type:"text",value:l.value};if(l instanceof Ui)return{type:"thinking",value:l.value,id:l.id,metadata:l.metadata};if(typeof l!="string")throw new Error("Unexpected chat message content type llm 2");return{type:"text",value:l}});return{role:o,name:r,content:a}}e.from=t})(yT||={});function JW(i){switch(typeof i.mimeType=="string"?i.mimeType.toLowerCase():""){case"image/png":case"image/jpeg":case"image/jpg":case"image/gif":case"image/webp":case"image/bmp":return!0;default:return!1}}var db;(e=>{function i(n){return{kind:"markdownContent",content:ge.from(n.value)}}e.from=i;function t(n){return new Oa(ge.to(n.content))}e.to=t})(db||={});var IT;(e=>{function i(n){return{kind:"codeblockUri",uri:n.value,isEdit:n.isEdit,undoStopId:n.undoStopId}}e.from=i;function t(n){return new Wa(b.revive(n.uri),n.isEdit,n.undoStopId)}e.to=t})(IT||={});var xT;(e=>{function i(n){return{kind:"markdownVuln",content:ge.from(n.value),vulnerabilities:n.vulnerabilities}}e.from=i;function t(n){return new As(ge.to(n.content),n.vulnerabilities)}e.to=t})(xT||={});var ST;(t=>{function i(e){return{kind:"confirmation",title:e.title,message:ge.from(e.message),data:e.data,buttons:e.buttons}}t.from=i})(ST||={});var CT;(o=>{function i(r){switch(r){case 1:return"text";case 2:return"singleSelect";case 3:return"multiSelect";default:return"text"}}function t(r){switch(r){case"text":return 1;case"singleSelect":return 2;case"multiSelect":return 3;default:return 1}}function e(r){return{kind:"questionCarousel",questions:r.questions.map(s=>({id:s.id,type:i(s.type),title:s.title,message:s.message?ge.from(s.message):void 0,options:s.options?.map(a=>({id:a.id,label:a.label,value:String(a.value)})),defaultValue:s.defaultValue,allowFreeformInput:s.allowFreeformInput})),allowSkip:r.allowSkip}}o.from=e;function n(r){let s=r.questions.map(a=>new Lm(a.id,t(a.type),a.title,{message:a.message?typeof a.message=="string"?new Xt(a.message):ge.to(a.message):void 0,options:a.options?.map(l=>({id:l.id,label:l.label,value:l.value})),defaultValue:a.defaultValue,allowFreeformInput:a.allowFreeformInput}));return new Os(s,r.allowSkip)}o.to=n})(CT||={});var cb;(e=>{function i(n){let{value:o,baseUri:r}=n;function s(a,l){return a.map(d=>{let c=b.joinPath(l,d.name);return{label:d.name,uri:c,children:d.children&&s(d.children,c)}})}return{kind:"treeData",treeData:{label:rt(r),uri:r,children:s(o,r)}}}e.from=i;function t(n){let o=St(n.treeData);function r(l){return l.map(d=>({name:d.label,children:d.children&&r(d.children)}))}let s=o.uri,a=o.children?r(o.children):[];return new Ua(a,s)}e.to=t})(cb||={});var YW;(e=>{function i(n){return{kind:"multiDiffData",multiDiffData:{title:n.title,resources:n.value.map(o=>({originalUri:o.originalUri,modifiedUri:o.modifiedUri,goToFileUri:o.goToFileUri,added:o.added,removed:o.removed}))},readOnly:n.readOnly}}e.from=i;function t(n){let o=n.multiDiffData.resources.map(r=>({originalUri:r.originalUri?b.revive(r.originalUri):void 0,modifiedUri:r.modifiedUri?b.revive(r.modifiedUri):void 0,goToFileUri:r.goToFileUri?b.revive(r.goToFileUri):void 0,added:r.added,removed:r.removed}));return new ru(o,n.multiDiffData.title,n.readOnly)}e.to=t})(YW||={});var Jm;(e=>{function i(n){let o=s=>b.isUri(s),r=s=>"name"in s;return{kind:"inlineReference",name:n.title,inlineReference:o(n.value)?n.value:r(n.value)?Td.from(n.value):li.from(n.value)}}e.from=i;function t(n){let o=St(n);return new Ms(b.isUri(o.inlineReference)?o.inlineReference:"location"in o.inlineReference?Td.to(o.inlineReference):li.to(o.inlineReference),n.name)}e.to=t})(Jm||={});var Sb;(e=>{function i(n){return{kind:"progressMessage",content:ge.from(n.value)}}e.from=i;function t(n){return new su(n.content.value)}e.to=t})(Sb||={});var Cb;(e=>{function i(n){return{kind:"thinking",value:n.value,id:n.id,metadata:n.metadata}}e.from=i;function t(n){return new Ni(n.value??"",n.id,n.metadata)}e.to=t})(Cb||={});var TT;(e=>{function i(n){return{kind:"hook",hookType:n.hookType,stopReason:n.stopReason,systemMessage:n.systemMessage,metadata:n.metadata}}e.from=i;function t(n){return new Fa(n.hookType,n.stopReason,n.systemMessage,n.metadata)}e.to=t})(TT||={});var Tb;(e=>{function i(n){return{kind:"warning",content:ge.from(n.value)}}e.from=i;function t(n){return new Ls(n.content.value)}e.to=t})(Tb||={});var ET;(e=>{function i(n){return{kind:"info",content:ge.from(n.value)}}e.from=i;function t(n){return new Ha(n.content.value)}e.to=t})(ET||={});var XW;(t=>{function i(e){return{kind:"extensions",extensions:e.extensions}}t.from=i})(XW||={});var ZW;(t=>{function i(e,n,o){let r;if(e.command)r=n.toInternal(e.command,o);else{if(!e.uri)throw new Error("Pull request part must have a command if URI is provided");r={title:"Open Pull Request",id:"vscode.open",arguments:[e.uri]}}return{kind:"pullRequest",author:e.author,title:e.title,description:e.description,uri:e.uri,linkTag:e.linkTag,command:r}}t.from=i})(ZW||={});var eB;(e=>{function i(n){return{kind:"move",uri:n.uri,range:G.from(n.range)}}e.from=i;function t(n){return new $a(b.revive(n.uri),G.to(n.range))}e.to=t})(eB||={});var tB;(l=>{function i(d){let c,u;d.toolSpecificData&&t(d.toolSpecificData)?(c=e(d.toolSpecificData,d.isError),u=void 0):u=d.toolSpecificData?n(d.toolSpecificData):void 0;let m=d.presentation==="hidden"?"hidden":d.presentation==="hiddenAfterComplete"?"hiddenAfterComplete":void 0;return d.enablePartialUpdate?{kind:"externalToolInvocationUpdate",toolCallId:d.toolCallId,toolName:d.toolName,isComplete:!!d.isComplete,invocationMessage:d.invocationMessage?ge.from(d.invocationMessage):void 0,pastTenseMessage:d.pastTenseMessage?ge.from(d.pastTenseMessage):void 0,toolSpecificData:u,subagentInvocationId:d.subAgentInvocationId,resultDetails:c}:{kind:"toolInvocationSerialized",toolCallId:d.toolCallId,toolId:d.toolName,invocationMessage:d.invocationMessage?ge.from(d.invocationMessage):d.toolName,originMessage:d.originMessage?ge.from(d.originMessage):void 0,pastTenseMessage:d.pastTenseMessage?ge.from(d.pastTenseMessage):void 0,isConfirmed:d.isConfirmed,isComplete:!0,source:dn.External,toolSpecificData:u,resultDetails:c,presentation:m,subAgentInvocationId:d.subAgentInvocationId}}l.from=i;function t(d){return d!==null&&typeof d=="object"&&"input"in d&&typeof d.input=="string"&&"output"in d&&Array.isArray(d.output)}function e(d,c){return{input:d.input,output:d.output.map(u=>{let m=u.mimeType.startsWith("text/");return{type:"embed",mimeType:u.mimeType,value:m?W.wrap(u.data).toString():so(W.wrap(u.data)),isText:m}}),isError:c??!1}}function n(d){return"command"in d&&"language"in d?{kind:"terminal",command:d.command,language:d.language}:"commandLine"in d&&"language"in d?{kind:"terminal",presentationOverrides:d.presentationOverrides&&typeof d.presentationOverrides.commandLine=="string"?{commandLine:d.presentationOverrides.commandLine,language:d.presentationOverrides.language}:void 0,commandLine:d.commandLine,language:d.language,terminalCommandOutput:typeof d.output?.text=="string"?{text:d.output.text}:void 0,terminalCommandState:d.state?{exitCode:d.state.exitCode,duration:d.state.duration}:void 0}:"todoList"in d&&Array.isArray(d.todoList)?{kind:"todoList",todoList:d.todoList.map(c=>({id:String(c.id),title:c.title,status:o(c.status)}))}:"input"in d&&"output"in d&&!Array.isArray(d.output)?{kind:"simpleToolInvocation",input:typeof d.input=="string"?d.input:"",output:typeof d.output=="string"?d.output:""}:d&&"values"in d&&Array.isArray(d.values)?{kind:"resources",values:d.values.map(c=>c instanceof tn?li.from(c):b.revive(c))}:d instanceof Mm?{kind:"subagent",description:d.description,agentName:d.agentName,prompt:d.prompt,result:d.result}:d}function o(d){switch(d){case 1:return"not-started";case 2:return"in-progress";case 3:return"completed";default:return"not-started"}}function r(d){switch(d){case"not-started":return 1;case"in-progress":return 2;case"completed":return 3;default:return 1}}function s(d){let c=new au(d.toolId||d.toolName,d.toolCallId,d.errorMessage);return d.invocationMessage&&(c.invocationMessage=d.invocationMessage),d.originMessage&&(c.originMessage=d.originMessage),d.pastTenseMessage&&(c.pastTenseMessage=d.pastTenseMessage),d.isConfirmed!==void 0&&(c.isConfirmed=d.isConfirmed),d.isComplete!==void 0&&(c.isComplete=d.isComplete),d.toolSpecificData&&(c.toolSpecificData=a(d.toolSpecificData)),c.subAgentInvocationId=d.subAgentInvocationId,c.subAgentName=d.subAgentName,c}l.to=s;function a(d){if(d.kind==="terminal")if(d.commandLine){let c={commandLine:d.commandLine,language:d.language};return d.terminalCommandOutput&&(c.output={text:d.terminalCommandOutput.text,truncated:d.terminalCommandOutput.truncated,lineCount:d.terminalCommandOutput.lineCount}),d.terminalCommandState&&(c.state={exitCode:d.terminalCommandState.exitCode,duration:d.terminalCommandState.duration}),c}else return{command:d.command,language:d.language};else{if(d.kind==="terminal2")return{commandLine:d.commandLine,language:d.language};if(d.kind==="todoList")return{todoList:d.todoList.map((c,u)=>{let m=Number(c.id);return{id:Number.isFinite(m)?m:u,title:c.title,status:r(c.status)}})}}return d}})(tB||={});var wT;(t=>{function i(e){return{kind:"progressTask",content:ge.from(e.value)}}t.from=i})(wT||={});var MM;(t=>{function i(e){return{kind:"progressTaskResult",content:typeof e=="string"?ge.from(e):void 0}}t.from=i})(MM||={});var ub;(e=>{function i(n,o,r){return{kind:"command",command:o.toInternal(n.value,r)??{command:n.value.command,title:n.value.title}}}e.from=i;function t(n,o){return new Va(o.fromInternal(n.command)??{command:n.command.id,title:n.command.title})}e.to=t})(ub||={});var kT;(e=>{function i(n){return{kind:"textEdit",uri:n.uri,edits:n.edits.map(o=>Dn.from(o)),done:n.isDone}}e.from=i;function t(n){let o=new Ns(b.revive(n.uri),n.edits.map(r=>Dn.to(r)));return o.isDone=n.done,o}e.to=t})(kT||={});var PT;(t=>{function i(e){return e.newCellMetadata?{editType:3,index:e.range.start,metadata:e.newCellMetadata}:e.newNotebookMetadata?{editType:5,metadata:e.newNotebookMetadata}:{editType:1,index:e.range.start,count:e.range.end-e.range.start,cells:e.newCells.map(ab.from)}}t.from=i})(PT||={});var _T;(t=>{function i(e){return{kind:"notebookEdit",uri:e.uri,edits:e.edits.map(PT.from),done:e.isDone}}t.from=i})(_T||={});var DT;(t=>{function i(e){return{kind:"workspaceEdit",edits:e.edits.map(n=>({oldResource:n.oldResource,newResource:n.newResource}))}}t.from=i})(DT||={});var vu;(e=>{function i(n){let o=dt.isThemeIcon(n.iconPath)?n.iconPath:b.isUri(n.iconPath)?{light:b.revive(n.iconPath)}:n.iconPath&&"light"in n.iconPath&&"dark"in n.iconPath&&b.isUri(n.iconPath.light)&&b.isUri(n.iconPath.dark)?{light:b.revive(n.iconPath.light),dark:b.revive(n.iconPath.dark)}:void 0;return typeof n.value=="object"&&"variableName"in n.value?{kind:"reference",reference:{variableName:n.value.variableName,value:b.isUri(n.value.value)||!n.value.value?n.value.value:li.from(n.value.value)},iconPath:o,options:n.options}:{kind:"reference",reference:b.isUri(n.value)||typeof n.value=="string"?n.value:li.from(n.value),iconPath:o,options:n.options}}e.from=i;function t(n){let o=St(n),r=s=>b.isUri(s)?s:li.to(s);return new ii(typeof o.reference=="string"?o.reference:"variableName"in o.reference?{variableName:o.reference.variableName,value:o.reference.value&&r(o.reference.value)}:r(o.reference))}e.to=t})(vu||={});var RT;(t=>{function i(e){return{kind:"codeCitation",value:e.value,license:e.license,snippet:e.snippet}}t.from=i})(RT||={});var og;(n=>{function i(o,r,s){return o instanceof Oa?db.from(o):o instanceof Ms?Jm.from(o):o instanceof ii?vu.from(o):o instanceof su?Sb.from(o):o instanceof Ni?Cb.from(o):o instanceof Fa?TT.from(o):o instanceof Ua?cb.from(o):o instanceof ru?YW.from(o):o instanceof Va?ub.from(o,r,s):o instanceof Ns?kT.from(o):o instanceof za?_T.from(o):o instanceof As?xT.from(o):o instanceof Wa?IT.from(o):o instanceof Ls?Tb.from(o):o instanceof Ha?ET.from(o):o instanceof Na?ST.from(o):o instanceof Os?CT.from(o):o instanceof Ba?RT.from(o):o instanceof $a?eB.from(o):o instanceof yd?XW.from(o):o instanceof Id?ZW.from(o,r,s):o instanceof au?tB.from(o):o instanceof xd?DT.from(o):{kind:"markdownContent",content:ge.from("")}}n.from=i;function t(o,r){switch(o.kind){case"reference":return vu.to(o);case"markdownContent":case"inlineReference":case"progressMessage":case"treeData":case"command":return e(o,r)}}n.to=t;function e(o,r){switch(o.kind){case"markdownContent":return db.to(o);case"inlineReference":return Jm.to(o);case"progressMessage":return;case"treeData":return cb.to(o);case"command":return ub.to(o,r)}}n.toContent=e})(og||={});var rg;(t=>{function i(e,n,o,r,s,a,l,d){let c=[],u=[];for(let h of e.variables.variables)h.kind==="tool"?c.push(h):h.kind==="toolset"?c.push(...h.value):u.push(h);let m=Lr.parseLocalSessionId(e.sessionResource)??e.sessionResource.toString(),g={id:e.requestId,prompt:e.message,command:e.command,attempt:e.attempt??0,enableCommandDetection:e.enableCommandDetection??!0,isParticipantDetected:e.isParticipantDetected??!1,sessionId:m,sessionResource:e.sessionResource,references:u.map(h=>MT.to(h,s,d)).filter(xo),toolReferences:c.map(bu.to),location:ig.to(e.location),acceptedConfirmationData:e.acceptedConfirmationData,rejectedConfirmationData:e.rejectedConfirmationData,location2:n,toolInvocationToken:Object.freeze({sessionResource:e.sessionResource,workingDirectory:b.revive(e.workingDirectory)}),tools:a,model:o,modelConfiguration:r,editedFileEvents:e.editedFileEvents,modeInstructions:e.modeInstructions?.content,modeInstructions2:Su.to(e.modeInstructions),permissionLevel:e.permissionLevel,subAgentInvocationId:e.subAgentInvocationId,subAgentName:e.subAgentName,parentRequestId:e.parentRequestId,hasHooksEnabled:e.hasHooksEnabled??!1,hooks:e.hooks?rB.to(e.hooks):void 0,isSystemInitiated:e.isSystemInitiated};return Oe(l,"chatParticipantPrivate")||(delete g.id,delete g.attempt,delete g.enableCommandDetection,delete g.isParticipantDetected,delete g.location,delete g.location2,delete g.editedFileEvents,delete g.sessionId,delete g.subAgentInvocationId,delete g.subAgentName,delete g.parentRequestId,delete g.hasHooksEnabled,delete g.hooks),Oe(l,"chatParticipantAdditions")||(delete g.acceptedConfirmationData,delete g.rejectedConfirmationData,delete g.tools),g}t.to=i})(rg||={});var ig;(e=>{function i(n){switch(n){case"notebook":return 3;case"terminal":return 2;case"panel":return 1;case"editor":return 4}}e.to=i;function t(n){switch(n){case 3:return"notebook";case 2:return"terminal";case 1:return"panel";case 4:return"editor"}}e.from=t})(ig||={});var AT;(t=>{function i(e){return e.id}t.from=i})(AT||={});var MT;(t=>{function i(e,n,o){let r=e.value;if(!r){let a;try{a=JSON.stringify(e)}catch{a=`kind=${e.kind}, id=${e.id}, name=${e.name}`}o.error(`[ChatPromptReference] Ignoring invalid reference in variable: ${a}`);return}if(Sl(r))r=b.revive(r);else if(r&&typeof r=="object"&&"uri"in r&&"range"in r&&Sl(r.uri))r=li.to(St(r));else if(DH(e)){let a=e.references?.[0]?.reference;r=new zm(e.mimeType??"image/png",()=>Promise.resolve(new Uint8Array(Object.values(e.value))),a&&b.isUri(a)?a:void 0,e.isPasted,e.isURL)}else if(e.kind==="diagnostic"){let a=e.filterSeverity&&pT.to(e.filterSeverity),l=e.filterUri&&b.revive(e.filterUri).toString();r=new Sd(n.map(([d,c])=>e.filterUri&&d.toString()!==l?[d,[]]:[d,c.filter(u=>!(a&&u.severity>a||e.filterRange&&!We.areIntersectingOrTouching(e.filterRange,G.from(u.range))))]).filter(([,d])=>d.length>0))}let s;return(wv(e)||RH(e))&&e.toolReferences&&(s=LM.to(e.toolReferences)),{id:e.id,name:e.name,range:e.range&&[e.range.start,e.range.endExclusive],toolReferences:s,value:r,modelDescription:e.modelDescription}}t.to=i})(MT||={});var bu;(t=>{function i(e){if(e.value)throw new Error("Invalid tool reference");return{name:e.id,range:e.range&&[e.range.start,e.range.endExclusive]}}t.to=i})(bu||={});var LM;(t=>{function i(e){let n=[];for(let o of e)if(o.kind==="tool")n.push(bu.to(o));else if(o.kind==="toolset")n.push(...o.value.map(bu.to));else throw new Error("Invalid tool reference in prompt variables");return n}t.to=i})(LM||={});var Su;(e=>{function i(n){if(n)return{uri:b.revive(n.uri),name:n.name,content:n.content,toolReferences:LM.to(St(n.toolReferences)),metadata:n.metadata,isBuiltin:n.isBuiltin}}e.to=i;function t(n){if(n)return{uri:n.uri,name:n.name,content:n.content,toolReferences:n.toolReferences?.map(o=>({kind:"tool",id:o.name,name:o.name,value:void 0,range:o.range?{start:o.range[0],endExclusive:o.range[1]}:void 0}))??[],metadata:n.metadata,isBuiltin:n.isBuiltin}}e.from=t})(Su||={});var OM;(t=>{function i(e,n,o){return{id:e.id,label:e.label,fullName:e.fullName,icon:e.icon?.id,value:e.values[0].value,insertText:e.insertText,detail:e.detail,documentation:e.documentation,command:n.toInternal(e.command,o)}}t.from=i})(OM||={});var sg;(n=>{function i(o){return{errorDetails:o.errorDetails,metadata:e(o.metadata),nextQuestion:o.nextQuestion,details:o.details}}n.to=i;function t(o){return{errorDetails:o.errorDetails,metadata:o.metadata,nextQuestion:o.nextQuestion,details:o.details}}n.from=t;function e(o){return ds(o,r=>{if(r.$mid===20)return new Cd(ds(r.content,e));if(r.$mid===21)return new nn(r.value);if(r.$mid===22)return new Ui(r.value,r.id,r.metadata);if(r.$mid===23)return new ai(r.value);if(r.$mid===24){let s;if(r.data&&typeof r.data=="object"&&r.data.type==="Buffer"&&Array.isArray(r.data.data))s=new Uint8Array(r.data.data);else if(typeof r.data=="string")try{s=No(r.data).buffer}catch{s=new Uint8Array(0)}else s=new Uint8Array(0);return new Un(s,r.mimeType,r.audience)}})}})(sg||={});var NM;(t=>{function i(e,n,o){if(n.action.kind==="vote")return;let r=sg.to(e);if(n.action.kind==="command"){let s=n.action.commandButton.command;return{action:{kind:"command",commandButton:{command:o.fromInternal(s)??{command:s.id,title:s.title}}},result:r}}else return n.action.kind==="followUp"?{action:{kind:"followUp",followup:bT.to(n.action.followup)},result:r}:n.action.kind==="inlineChat"?{action:{kind:"editor",accepted:n.action.action==="accepted"},result:r}:n.action.kind==="chatEditingSessionAction"?{action:{kind:"chatEditingSessionAction",outcome:new Map([["accepted",1],["rejected",2],["saved",3]]).get(n.action.outcome)??2,uri:b.revive(n.action.uri),hasRemainingEdits:n.action.hasRemainingEdits},result:r}:n.action.kind==="chatEditingHunkAction"?{action:{kind:"chatEditingHunkAction",outcome:new Map([["accepted",1],["rejected",2]]).get(n.action.outcome)??2,uri:b.revive(n.action.uri),hasRemainingEdits:n.action.hasRemainingEdits,lineCount:n.action.lineCount,linesAdded:n.action.linesAdded,linesRemoved:n.action.linesRemoved},result:r}:{action:n.action,result:r}}t.to=i})(NM||={});var LT;(t=>{function i(e,n,o){return"terminalCommand"in e?{terminalCommand:e.terminalCommand,shouldExecute:e.shouldExecute}:"uri"in e?{uri:e.uri}:n.toInternal(e,o)}t.from=i})(LT||={});var pM;(t=>{function i(e){return{...e,documentation:ge.fromStrict(e.documentation)}}t.from=i})(pM||={});var UM;(t=>{function i(e,n){return Array.isArray(e)?{items:e.map(o=>pM.from(o))}:{items:e.items.map(o=>pM.from(o)),resourceOptions:e.resourceOptions?nB.from(e.resourceOptions,n):void 0}}t.from=i})(UM||={});var nB;(t=>{function i(e,n){return{...e,pathSeparator:n,cwd:e.cwd,globPattern:zo.from(e.globPattern)??void 0}}t.from=i})(nB||={});var FM;(t=>{function i(e){return{kind:oB.to(e.kind),acceptedLength:e.acceptedLength}}t.to=i})(FM||={});var oB;(t=>{function i(e){switch(e){case 0:return 1;case 1:return 2;case 2:return 3;default:return 0}}t.to=i})(oB||={});var HM;(t=>{function i(e,n){if(e.kind===2){let o=e.supersededBy?n(e.supersededBy):void 0;return{kind:2,supersededBy:o,userTypingDisagreed:e.userTypingDisagreed}}else if(e.kind===0)return{kind:0};return{kind:1}}t.to=i})(HM||={});var VM;(e=>{function i(n){return n===2?2:1}e.from=i;function t(n){return n===2?2:1}e.to=t})(VM||={});var WM;(t=>{function i(e,n){return{id:n,label:e.label,description:e.description,canEdit:e.canEdit,collapsibleState:e.collapsibleState||0,contextValue:e.contextValue}}t.from=i})(WM||={});var BM;(t=>{function i(e){return e.type==="mcp"?new Gm(e.label,e.serverLabel||e.label,e.instructions):e.type==="extension"?new jm(e.extensionId.value,e.label):void 0}t.to=i})(BM||={});var OT;(e=>{function i(n){let o=new Cd(n.content.map(r=>r.kind==="text"?new nn(r.value,r.audience):r.kind==="data"?new Un(r.value.data.buffer,r.value.mimeType,r.audience):new ai(r.value)));return n.toolMetadata!==void 0&&(o.toolMetadata=n.toolMetadata),n.toolResultError&&(o.hasError=!!n.toolResultError),o}e.to=i;function t(n,o){n.toolResultMessage&&A(o,"chatParticipantPrivate");let r=d=>{d.audience&&A(o,"languageModelToolResultAudience")},s=!1,a;Array.isArray(n.toolResultDetails)?a=n.toolResultDetails?.map(d=>b.isUri(d)?d:li.from(d)):n.toolResultDetails2&&(a={output:{type:"data",mimeType:n.toolResultDetails2.mime,value:W.wrap(n.toolResultDetails2.value)}},s=!0);let l={content:n.content.map(d=>{if(d instanceof nn)return r(d),{kind:"text",value:d.value,audience:d.audience};if(d instanceof ai)return{kind:"promptTsx",value:d.value};if(d instanceof Un)return r(d),s=!0,{kind:"data",value:{mimeType:d.mimeType,data:W.wrap(d.data)},audience:d.audience};throw new Error("Unknown LanguageModelToolResult part type")}),toolResultMessage:ge.fromStrict(n.toolResultMessage),toolResultDetails:a,toolMetadata:n.toolMetadata,toolResultError:n.hasError};return s?new Yt(l):l}e.from=t})(OT||={});var Hi;(n=>{function i(o){return o}n.fromThemeIcon=i;function t(o){if(o){if(dt.isThemeIcon(o))return o;if(b.isUri(o))return o;if(typeof o=="string")return b.file(o);if(typeof o=="object"&&o!==null&&"dark"in o){let r=typeof o.dark=="string"?b.file(o.dark):o.dark,s=typeof o.light=="string"?b.file(o.light):o.light;return r?{dark:r,light:s??r}:void 0}else return}else return}n.from=t;function e(o){if(o){if(dt.isThemeIcon(o))return o;if(Sl(o))return b.revive(o);{let r=o;return{light:b.revive(r.light),dark:b.revive(r.dark)}}}else return}n.to=e})(Hi||={});var $M;(e=>{function i(n){return{query:n.query,kind:t(n.kind),settings:n.settings}}e.fromSettingsSearchResult=i;function t(n){switch(n){case 1:return 1;case 2:return 2;case 3:return 3;default:throw new Error("Unknown AiSettingsSearchResultKind")}}})($M||={});var ag;(n=>{function i(o){return!!o.uri}function t(o){return Bc.toSerialized(i(o)?{type:2,uri:o.uri,headers:Object.entries(o.headers),authentication:o.authentication?{providerId:o.authentication.providerId,scopes:o.authentication.scopes}:void 0}:{type:1,cwd:o.cwd?.fsPath,args:o.args,command:o.command,env:o.env,envFile:void 0,sandbox:void 0})}n.from=t;function e(o){let r=Bc.fromSerialized(o.launch);if(r.type===2)return new cu(o.label,r.uri,Object.fromEntries(r.headers),o.cacheNonce==="$$NONE"?void 0:o.cacheNonce);{let s=new du(o.label,r.command,[...r.args],Object.fromEntries(Object.entries(r.env).map(([a,l])=>[a,l===null?null:String(l)])),o.cacheNonce==="$$NONE"?void 0:o.cacheNonce);return r.cwd&&(s.cwd=b.file(r.cwd)),s}}n.to=e})(ag||={});var zM;(t=>{function i(e){switch(e){case 0:return 0;case 1:return 1;case 2:return 2;default:throw new Error("Unknown SourceControlInputBoxValidationType")}}t.from=i})(zM||={});var rB;(t=>{function i(e){let n={};for(let[o,r]of Object.entries(e)){if(!r||r.length===0)continue;let s=[];for(let a of r){let l=iB.to(a);l&&s.push(l)}s.length>0&&(n[o]=s)}return n}t.to=i})(rB||={});var iB;(t=>{function i(e){let n=FV(e,mr);if(n)return{command:n,cwd:e.cwd,env:e.env,timeout:e.timeout}}t.to=i})(iB||={});var Ya;(e=>{function i(n){if(n!==void 0)switch(n){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;default:return}}function t(n){let o=n.timing,r=o?.created??o?.startTime??0,s=o?.lastRequestStarted??o?.startTime,a=o?.lastRequestEnded??o?.endTime;return{resource:n.resource,label:n.label,description:n.description?ge.from(n.description):void 0,badge:n.badge?ge.from(n.badge):void 0,status:i(n.status),archived:n.archived,tooltip:ge.fromStrict(n.tooltip),timing:{created:r,lastRequestStarted:s,lastRequestEnded:a},changes:n.changes instanceof Array?n.changes:void 0,metadata:n.metadata,legacyResource:n.legacyResource}}e.from=t})(Ya||={});var NT=class i{constructor(t,e){this.line=t;this.character=e}isBefore(t){return!1}isBeforeOrEqual(t){return!1}isAfter(t){return!1}isAfterOrEqual(t){return!1}isEqual(t){return!1}compareTo(t){return 0}translate(t,e){return new i(0,0)}with(t){return new i(0,0)}},lg=class i{constructor(t,e,n,o){this.isEmpty=!1;this.isSingleLine=!1;this.start=new NT(t,e),this.end=new NT(n,o)}contains(t){return!1}isEqual(t){return!1}intersection(t){}union(t){return new i(0,0,0,0)}with(t){return new i(0,0,0,0)}},qo=class{constructor(t,e,n){this.uri=t;this.ranges=e;this.previewText=n}},Vs=class{constructor(t,e,n){this.uri=t;this.text=e;this.lineNumber=n}},Cu=class{constructor(t){this.keyword=t}},UT=(n=>(n[n.None=1]="None",n[n.FilesExclude=2]="FilesExclude",n[n.SearchAndFilesExclude=3]="SearchAndFilesExclude",n))(UT||{}),Eb=(e=>(e[e.Information=1]="Information",e[e.Warning=2]="Warning",e))(Eb||{});var wd=2e4,sB="\u27EA ",aB=" characters skipped \u27EB",Bq=(sB.length+aB.length+5)*2,$q=R("searchService");function wb(i){return!!i.rangeLocations&&!!i.previewText}var dg=class{constructor(t,e,n,o){this.rangeLocations=[];this.webviewIndex=o;let r=Array.isArray(e)?e:[e];if(n&&n.matchLines===1&&zq(r)){t=cF(t,n.matchLines);let s="",a=0,l=0,d=Math.floor(n.charsPerLine/5);for(let c of r){let u=Math.max(c.startColumn-d,0),m=c.startColumn+n.charsPerLine;if(u>l+d+Bq){let g=sB+(u-l)+aB;s+=g+t.slice(u,m),a+=u-(l+g.length)}else s+=t.slice(l,m);l=m,this.rangeLocations.push({source:c,preview:new qM(0,c.startColumn-a,c.endColumn-a)})}this.previewText=s}else{let s=Array.isArray(e)?e[0].startLineNumber:e.startLineNumber,a=rc(e,l=>({preview:new cg(l.startLineNumber-s,l.startColumn,l.endLineNumber-s,l.endColumn),source:l}));this.rangeLocations=Array.isArray(a)?a:[a],this.previewText=t}}};function zq(i){let t=i[0].startLineNumber;for(let e of i)if(e.startLineNumber!==t||e.endLineNumber!==t)return!1;return!0}var cg=class{constructor(t,e,n,o){this.startLineNumber=t,this.startColumn=e,this.endLineNumber=n,this.endColumn=o}},qM=class extends cg{constructor(t,e,n){super(t,e,t,n)}};function lB(i,t=!0){let e=i&&i.files&&i.files.exclude,n=t&&i&&i.search&&i.search.exclude;if(!e&&!n)return;if(!e||!n)return e||n||void 0;let o=Object.create(null);return o=Jo(o,lt(e)),o=Jo(o,lt(n),!0),o}function FT(i,t){let e=i.ignoreGlobCase?{ignoreCase:!0}:void 0;return i.excludePattern&&ir(i.excludePattern,t,e)?!1:i.includePattern||i.usingSearchPaths?i.includePattern&&ir(i.includePattern,t,e)?!0:i.usingSearchPaths?!!i.folderQueries&&i.folderQueries.some(n=>{let o=n.folder.fsPath;if(Rr(t,o,i.ignoreGlobCase)){let r=bi(o,t);return!n.includePattern||!!ir(n.includePattern,r,e)}else return!1}):!1:!0}var Ws=class extends Error{constructor(e,n){super(e);this.code=n}};function KM(i){let t={message:i.message,code:i.code};return new Error(JSON.stringify(t))}function dB(i){return!!i.path}var qq={ignoreCase:!0};function kb(i,t,e=!0,n){let o=i.searchPath?i.searchPath:i.relativePath;return e?lF(o,t):ir(t,o,n?qq:void 0)}function kd(i,t){let e={...i||{},...t||{}};return Object.keys(e).filter(n=>{let o=e[n];return typeof o=="boolean"&&o})}var ug=class{constructor(t,e){this._parsedIncludeExpression=null;let n=t.ignoreGlobCase||e.ignoreGlobCase?{ignoreCase:!0}:void 0;this._excludeExpression=e.excludePattern?.map(r=>({...t.excludePattern||{},...r.pattern||{}}))??[],this._excludeExpression.length===0&&(this._excludeExpression=[t.excludePattern||{}]),this._parsedExcludeExpression=this._excludeExpression.map(r=>Po(r,n));let o=t.includePattern;e.includePattern&&(o?o={...o,...e.includePattern}:o=e.includePattern),o&&(this._parsedIncludeExpression=Po(o,n))}_evalParsedExcludeExpression(t,e,n){let o=null;for(let r of this._parsedExcludeExpression){let s=r(t,e,n);if(typeof s=="string"){o=s;break}}return o}matchesExcludesSync(t,e,n){return!!(this._parsedExcludeExpression&&this._evalParsedExcludeExpression(t,e,n))}includedInQuerySync(t,e,n){return!(this._parsedExcludeExpression&&this._evalParsedExcludeExpression(t,e,n)||this._parsedIncludeExpression&&!this._parsedIncludeExpression(t,e,n))}includedInQuery(t,e,n){let o=()=>this._parsedIncludeExpression?!!this._parsedIncludeExpression(t,e,n):!0;return Promise.all(this._parsedExcludeExpression.map(r=>{let s=r(t,e,n);return Gr(s)?s.then(a=>a?!1:o()):o()})).then(r=>r.some(s=>!!s))}hasSiblingExcludeClauses(){return this._excludeExpression.reduce((t,e)=>Kq(e)||t,!1)}};function Kq(i){for(let t in i)if(typeof i[t]!="boolean")return!0;return!1}function cB(i){if(!i)return;let t;return e=>(t||(t=(i()||Promise.resolve([])).then(n=>n?uB(n):{})),t.then(n=>!!n[e]))}function Pb(i){if(!i)return;let t;return e=>{if(!t){let n=i();t=n?uB(n):{}}return!!t[e]}}function uB(i){let t={};for(let e of i)t[e]=!0;return t}function HT(i){return i.flatMap(t=>t.patterns.map(e=>t.baseUri?{baseUri:t.baseUri,pattern:e}:e))}var _b={matchLines:100,charsPerLine:1e4};var jq=!1,GM=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var QM=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 GM(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(`${B.vscodeFileResource}://${D_}`))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=Pe();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={},o=[],r=[];if(Array.isArray(e.dependencies))for(let s of e.dependencies)s==="exports"?o.push(n):r.push(s);if(r.length>0)throw new Error(`Cannot resolve dependencies for script ${t}. The dependencies are: ${r.join(", ")}`);return typeof e.callback=="function"?e.callback(...o)??n:e.callback}_rendererLoadScript(t){return new Promise((e,n)=>{let o=document.createElement("script");o.setAttribute("async","async"),o.setAttribute("type","text/javascript");let r=()=>{o.removeEventListener("load",s),o.removeEventListener("error",a)},s=l=>{r(),e(this._defineCalls.pop())},a=l=>{r(),n(l)};o.addEventListener("load",s),o.addEventListener("error",a),this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),o.setAttribute("src",t),window.document.getElementsByTagName("head")[0].appendChild(o)})}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,o=(await import("module")).default,r=b.parse(t).fsPath,s=e.readFileSync(r).toString(),a=o.wrap(s.replace(/^#!.*/,""));return new n.Script(a).runInThisContext().apply(),this._defineCalls.pop()}catch(e){throw e}}},jM=new Map;async function VT(i,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${i}/${t}`:i;if(jM.has(n))return jM.get(n);let o;if(/^\w[\w\d+.-]*:\/\//.test(n))o=n;else{let l=`${jq&&e&&!pr?CF:SF}/${n}`;o=Cl.asBrowserUri(l).toString(!0)}let r=QM.INSTANCE.load(o);return jM.set(n,r),r}var Rb="utf8",e0="utf8bom",BT="utf16be",$T="utf16le";var WT=[254,255],YM=[255,254],Db=[239,187,191],Gq=512,Qq=512,Jq=512*8,Yq=512*128;var XM=class extends Error{constructor(e,n){super(e);this.decodeStreamErrorKind=n}},ZM=class i{constructor(t){this.iconvLiteDecoder=t}static async create(t){let e;if(t!==Rb)e=(await VT("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getDecoder(gB(t));else{let n=new TextDecoder;e={write(o){return n.decode(o,{stream:!0})},end(){return n.decode()}}}return new i(e)}write(t){return this.iconvLiteDecoder.write(t)}end(){return this.iconvLiteDecoder.end()}};function pB(i,t){let e=t.minBytesRequiredForDetection??(t.guessEncoding?Jq:Qq);return new Promise((n,o)=>{let r=fc(u=>u.join("")),s=[],a=0,l,d=new ke,c=async()=>{try{let u=await iK({buffer:W.concat(s),bytesRead:a},t.guessEncoding,t.candidateGuessEncodings);if(u.seemsBinary&&t.acceptTextOnly)throw new XM("Stream is binary but only text is accepted for decoding",1);u.encoding=await t.overwriteEncoding(u.encoding),l=await ZM.create(u.encoding);let m=l.write(W.concat(s).buffer);r.write(m),s.length=0,a=0,n({stream:r,detected:u})}catch(u){d.cancel(),r.destroy(),o(u)}};VI(i,{onData:async u=>{l?r.write(l.write(u.buffer)):(s.push(u),a+=u.byteLength,a>=e&&(i.pause(),await c(),setTimeout(()=>i.resume())))},onError:u=>r.error(u),onEnd:async()=>{l||await c(),r.end(l?.end())}},d.token)})}async function mB(i,t,e){let o=(await VT("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getEncoder(gB(t),e),r=!1,s=!1;return{read(){if(s)return null;let a=i.read();if(typeof a!="string"){if(s=!0,!r&&e?.addBOM)switch(t){case Rb:case e0:return W.wrap(Uint8Array.from(Db));case BT:return W.wrap(Uint8Array.from(WT));case $T:return W.wrap(Uint8Array.from(YM))}let l=o.end();return l&&l.length>0?(r=!0,W.wrap(l)):null}return r=!0,W.wrap(o.write(a))}}}function gB(i){return i===e0||i===null?Rb:i}function Xq(i,t){if(!i||t<WT.length)return null;let e=i.readUInt8(0),n=i.readUInt8(1);if(e===WT[0]&&n===WT[1])return BT;if(e===YM[0]&&n===YM[1])return $T;if(t<Db.length)return null;let o=i.readUInt8(2);return e===Db[0]&&n===Db[1]&&o===Db[2]?e0:null}var Zq=["ascii","utf-16","utf-32"];async function eK(i,t){let e=await VT("jschardet","dist/jschardet.min.js"),n=i.slice(0,Yq),o=rK(n.buffer);t&&(t=nt(t.map(a=>oK(a))),t.length===0&&(t=void 0));let r;try{r=e.detect(o,t?{detectEncodings:t}:void 0)}catch{return null}if(!r?.encoding)return null;let s=r.encoding.toLowerCase();return 0<=Zq.indexOf(s)?null:nK(r.encoding)}var tK={ibm866:"cp866",big5:"cp950"};function fB(i){return i.replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}function nK(i){let t=fB(i);return tK[t]||t}function oK(i){let t=fB(i),e=sK[t];return e?e.guessableName:void 0}function rK(i){let t="";for(let e=0;e<i.length;e++)t+=String.fromCharCode(i[e]);return t}function hB(i){switch(i){case"shiftjis":return"shift-jis";case"utf16le":return"utf-16le";case"utf16be":return"utf-16be";case"big5hkscs":return"big5-hkscs";case"eucjp":return"euc-jp";case"euckr":return"euc-kr";case"koi8r":return"koi8-r";case"koi8u":return"koi8-u";case"macroman":return"x-mac-roman";case"utf8bom":return"utf8";default:{let t=i.match(/windows(\d+)/);return t?"windows-"+t[1]:i}}}function iK({buffer:i,bytesRead:t},e,n){let o=Xq(i,t),r=!1;if(o!==BT&&o!==$T&&i){let s=!0,a=!0,l=!1;for(let d=0;d<t&&d<Gq;d++){let c=d%2===1,u=i.readUInt8(d)===0;if(u&&(l=!0),s&&(c&&!u||!c&&u)&&(s=!1),a&&(c&&u||!c&&!u)&&(a=!1),u&&!s&&!a)break}l&&(s?o=$T:a?o=BT:r=!0)}return e&&!r&&!o&&i?eK(i.slice(0,t),n).then(s=>({seemsBinary:!1,encoding:s})):{seemsBinary:r,encoding:o}}var JM={utf8:{labelLong:"UTF-8",labelShort:"UTF-8",order:1,alias:"utf8bom",guessableName:"UTF-8"},utf8bom:{labelLong:"UTF-8 with BOM",labelShort:"UTF-8 with BOM",encodeOnly:!0,order:2,alias:"utf8"},utf16le:{labelLong:"UTF-16 LE",labelShort:"UTF-16 LE",order:3,guessableName:"UTF-16LE"},utf16be:{labelLong:"UTF-16 BE",labelShort:"UTF-16 BE",order:4,guessableName:"UTF-16BE"},windows1252:{labelLong:"Western (Windows 1252)",labelShort:"Windows 1252",order:5,guessableName:"windows-1252"},iso88591:{labelLong:"Western (ISO 8859-1)",labelShort:"ISO 8859-1",order:6},iso88593:{labelLong:"Western (ISO 8859-3)",labelShort:"ISO 8859-3",order:7},iso885915:{labelLong:"Western (ISO 8859-15)",labelShort:"ISO 8859-15",order:8},macroman:{labelLong:"Western (Mac Roman)",labelShort:"Mac Roman",order:9},cp437:{labelLong:"DOS (CP 437)",labelShort:"CP437",order:10},windows1256:{labelLong:"Arabic (Windows 1256)",labelShort:"Windows 1256",order:11},iso88596:{labelLong:"Arabic (ISO 8859-6)",labelShort:"ISO 8859-6",order:12},windows1257:{labelLong:"Baltic (Windows 1257)",labelShort:"Windows 1257",order:13},iso88594:{labelLong:"Baltic (ISO 8859-4)",labelShort:"ISO 8859-4",order:14},iso885914:{labelLong:"Celtic (ISO 8859-14)",labelShort:"ISO 8859-14",order:15},windows1250:{labelLong:"Central European (Windows 1250)",labelShort:"Windows 1250",order:16,guessableName:"windows-1250"},iso88592:{labelLong:"Central European (ISO 8859-2)",labelShort:"ISO 8859-2",order:17,guessableName:"ISO-8859-2"},cp852:{labelLong:"Central European (CP 852)",labelShort:"CP 852",order:18},windows1251:{labelLong:"Cyrillic (Windows 1251)",labelShort:"Windows 1251",order:19,guessableName:"windows-1251"},cp866:{labelLong:"Cyrillic (CP 866)",labelShort:"CP 866",order:20,guessableName:"IBM866"},cp1125:{labelLong:"Cyrillic (CP 1125)",labelShort:"CP 1125",order:21,guessableName:"IBM1125"},iso88595:{labelLong:"Cyrillic (ISO 8859-5)",labelShort:"ISO 8859-5",order:22,guessableName:"ISO-8859-5"},koi8r:{labelLong:"Cyrillic (KOI8-R)",labelShort:"KOI8-R",order:23,guessableName:"KOI8-R"},koi8u:{labelLong:"Cyrillic (KOI8-U)",labelShort:"KOI8-U",order:24},iso885913:{labelLong:"Estonian (ISO 8859-13)",labelShort:"ISO 8859-13",order:25},windows1253:{labelLong:"Greek (Windows 1253)",labelShort:"Windows 1253",order:26,guessableName:"windows-1253"},iso88597:{labelLong:"Greek (ISO 8859-7)",labelShort:"ISO 8859-7",order:27,guessableName:"ISO-8859-7"},windows1255:{labelLong:"Hebrew (Windows 1255)",labelShort:"Windows 1255",order:28,guessableName:"windows-1255"},iso88598:{labelLong:"Hebrew (ISO 8859-8)",labelShort:"ISO 8859-8",order:29,guessableName:"ISO-8859-8"},iso885910:{labelLong:"Nordic (ISO 8859-10)",labelShort:"ISO 8859-10",order:30},iso885916:{labelLong:"Romanian (ISO 8859-16)",labelShort:"ISO 8859-16",order:31},windows1254:{labelLong:"Turkish (Windows 1254)",labelShort:"Windows 1254",order:32},iso88599:{labelLong:"Turkish (ISO 8859-9)",labelShort:"ISO 8859-9",order:33},cp857:{labelLong:"Turkish (CP 857)",labelShort:"CP 857",order:34},windows1258:{labelLong:"Vietnamese (Windows 1258)",labelShort:"Windows 1258",order:35},gbk:{labelLong:"Simplified Chinese (GBK)",labelShort:"GBK",order:36},gb18030:{labelLong:"Simplified Chinese (GB18030)",labelShort:"GB18030",order:37},cp950:{labelLong:"Traditional Chinese (Big5)",labelShort:"Big5",order:38,guessableName:"Big5"},big5hkscs:{labelLong:"Traditional Chinese (Big5-HKSCS)",labelShort:"Big5-HKSCS",order:39},shiftjis:{labelLong:"Japanese (Shift JIS)",labelShort:"Shift JIS",order:40,guessableName:"SHIFT_JIS"},eucjp:{labelLong:"Japanese (EUC-JP)",labelShort:"EUC-JP",order:41,guessableName:"EUC-JP"},euckr:{labelLong:"Korean (EUC-KR)",labelShort:"EUC-KR",order:42,guessableName:"EUC-KR"},windows874:{labelLong:"Thai (Windows 874)",labelShort:"Windows 874",order:43},iso885911:{labelLong:"Latin/Thai (ISO 8859-11)",labelShort:"ISO 8859-11",order:44},koi8ru:{labelLong:"Cyrillic (KOI8-RU)",labelShort:"KOI8-RU",order:45},koi8t:{labelLong:"Tajik (KOI8-T)",labelShort:"KOI8-T",order:46},gb2312:{labelLong:"Simplified Chinese (GB 2312)",labelShort:"GB 2312",order:47,guessableName:"GB2312"},cp865:{labelLong:"Nordic DOS (CP 865)",labelShort:"CP 865",order:48},cp850:{labelLong:"Western European DOS (CP 850)",labelShort:"CP 850",order:49}},sK=(()=>{let i={};for(let t in JM)JM[t].guessableName&&(i[t]=JM[t]);return i})();var cRe=R("textFileService");function vB(i){let t=!1;return{read(){return t?null:(t=!0,i)}}}function Mb(i,t,e){return new as(n=>qT(n,e)).isEqual(i,t)}function aK(i,t,e){return Mb(i.uri,t.uri,e)?0:yi(i.uri.toString(),t.uri.toString())}function lK(i,t,e){return i.index!==t.index?i.index<t.index?-1:1:Mb(i.uri,t.uri,e)?yi(i.name,t.name):yi(i.uri.toString(),t.uri.toString())}function yB(i,t,e,n){let o=i.slice(0).sort((s,a)=>e(s,a,n)),r=t.slice(0).sort((s,a)=>e(s,a,n));return gU(o,r,(s,a)=>e(s,a,n))}function qT(i,t){let e=t.getCapabilities(i.scheme);return!(e&&e&1024)}var Ab=class i extends vx{constructor(e,n,o,r,s,a,l){super(e,o.map(d=>new _c(d)),r,s,l);this._name=n;this._isUntitled=a;this._workspaceFolders=[];this._structure=tr.forUris(l,()=>!0),o.forEach(d=>{this._workspaceFolders.push(d),this._structure.set(d.uri,d)})}static toExtHostWorkspace(e,n,o,r){if(!e)return{workspace:null,added:[],removed:[]};let{id:s,name:a,folders:l,configuration:d,transient:c,isUntitled:u}=e,m=[],g=n;n?l.forEach((x,T)=>{let w=b.revive(x.uri),M=i._findFolder(o||n,w,r);M?(M.name=x.name,M.index=x.index,m.push(M)):m.push({uri:w,name:x.name,index:T})}):m.push(...l.map(({uri:x,name:T,index:w})=>({uri:b.revive(x),name:T,index:w}))),m.sort((x,T)=>x.index<T.index?-1:1);let h=new i(s,a,m,!!c,d?b.revive(d):null,!!u,x=>qT(x,r)),{added:f,removed:I}=yB(g?g.workspaceFolders:[],h.workspaceFolders,aK,r);return{workspace:h,added:f,removed:I}}static _findFolder(e,n,o){for(let r=0;r<e.folders.length;r++){let s=e.workspaceFolders[r];if(Mb(s.uri,n,o))return s}}get name(){return this._name}get isUntitled(){return this._isUntitled}get workspaceFolders(){return this._workspaceFolders.slice(0)}getWorkspaceFolder(e,n){return n&&this._structure.get(e)&&(e=Oo(e)),this._structure.findSubstr(e)}resolveWorkspaceFolder(e){return this._structure.get(e)}},pg=class{constructor(t,e,n,o,r){this._onDidChangeWorkspace=new E;this.onDidChangeWorkspace=this._onDidChangeWorkspace.event;this._onDidGrantWorkspaceTrust=new E;this.onDidGrantWorkspaceTrust=this._onDidGrantWorkspaceTrust.event;this._onDidChangeWorkspaceTrustedFolders=new E;this.onDidChangeWorkspaceTrustedFolders=this._onDidChangeWorkspaceTrustedFolders.event;this._activeSearchCallbacks=[];this._trusted=!1;this._editSessionIdentityProviders=new Map;this._providerHandlePool=0;this._onWillCreateEditSessionIdentityEvent=new os;this._canonicalUriProviders=new Map;this._logService=o,this._extHostFileSystemInfo=n,this._uriTransformerService=r,this._requestIdProvider=new mx,this._barrier=new Sn,this._proxy=t.getProxy(F.MainThreadWorkspace),this._messageService=t.getProxy(F.MainThreadMessageService),this._telemetryProxy=t.getProxy(F.MainThreadTelemetry);let s=e.workspace;this._confirmedWorkspace=s?new Ab(s.id,s.name,[],!!s.transient,s.configuration?b.revive(s.configuration):null,!!s.isUntitled,a=>qT(a,n)):void 0}$setConfigProvider(t){this._configProvider=t}_useIgnoreFilesInFindFiles(){return this._configProvider?.getConfiguration("search").get("experimental.useIgnoreFilesInFindFiles")??!1}_userIgnoreFilesSetting(){return this._configProvider?.getConfiguration("search").get("useIgnoreFiles")??!0}$initializeWorkspace(t,e){this._trusted=e,this.$acceptWorkspaceData(t),this._barrier.open()}waitForInitializeCall(){return this._barrier.wait()}get workspace(){return this._actualWorkspace}get name(){return this._actualWorkspace?this._actualWorkspace.name:void 0}get workspaceFile(){if(this._actualWorkspace&&this._actualWorkspace.configuration)return this._actualWorkspace.isUntitled?b.from({scheme:B.untitled,path:rt(Oo(this._actualWorkspace.configuration))}):this._actualWorkspace.configuration}get _actualWorkspace(){return this._unconfirmedWorkspace||this._confirmedWorkspace}getWorkspaceFolders(){if(this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}async getWorkspaceFolders2(){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}updateWorkspaceFolders(t,e,n,...o){let r=[];if(Array.isArray(o)&&o.forEach(c=>{b.isUri(c.uri)&&!r.some(u=>Mb(u.uri,c.uri,this._extHostFileSystemInfo))&&r.push({uri:c.uri,name:c.name||Nh(c.uri)})}),this._unconfirmedWorkspace||[e,n].some(c=>typeof c!="number"||c<0)||n===0&&r.length===0)return!1;let s=this._actualWorkspace?this._actualWorkspace.workspaceFolders:[];if(e+n>s.length)return!1;let a=s.slice(0);a.splice(e,n,...r.map(c=>({uri:c.uri,name:c.name||Nh(c.uri),index:void 0})));for(let c=0;c<a.length;c++){let u=a[c];if(a.some((m,g)=>g!==c&&Mb(u.uri,m.uri,this._extHostFileSystemInfo)))return!1}a.forEach((c,u)=>c.index=u);let{added:l,removed:d}=yB(s,a,lK,this._extHostFileSystemInfo);if(l.length===0&&d.length===0)return!1;if(this._proxy){let c=t.displayName||t.name;this._proxy.$updateWorkspaceFolders(c,e,n,r).then(void 0,u=>{this._unconfirmedWorkspace=void 0;let m={source:{identifier:t.identifier,label:t.displayName||t.name}};this._messageService.$showMessage(H2.Error,p(3363,null,c,u.toString()),m,[])})}return this.trySetWorkspaceFolders(a),!0}getWorkspaceFolder(t,e){if(this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(t,e)}async getWorkspaceFolder2(t,e){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(t,e)}async resolveWorkspaceFolder(t){if(await this._barrier.wait(),!!this._actualWorkspace)return this._actualWorkspace.resolveWorkspaceFolder(t)}getPath(){if(!this._actualWorkspace)return;let{folders:t}=this._actualWorkspace;if(t.length!==0)return t[0].uri.fsPath}getRelativePath(t,e){let n,o="";if(typeof t=="string"?(n=b.file(t),o=t):typeof t<"u"&&(n=t,o=t.fsPath),!n)return o;let r=this.getWorkspaceFolder(n,!0);if(!r)return o;typeof e>"u"&&this._actualWorkspace&&(e=this._actualWorkspace.folders.length>1);let s=Fh(r.uri,n);return e&&r.name&&(s=`${r.name}/${s}`),s}trySetWorkspaceFolders(t){this._actualWorkspace&&(this._unconfirmedWorkspace=Ab.toExtHostWorkspace({id:this._actualWorkspace.id,name:this._actualWorkspace.name,configuration:this._actualWorkspace.configuration,folders:t,isUntitled:this._actualWorkspace.isUntitled},this._actualWorkspace,void 0,this._extHostFileSystemInfo).workspace||void 0)}$acceptWorkspaceData(t){let{workspace:e,added:n,removed:o}=Ab.toExtHostWorkspace(t,this._confirmedWorkspace,this._unconfirmedWorkspace,this._extHostFileSystemInfo);this._confirmedWorkspace=e||void 0,this._unconfirmedWorkspace=void 0,this._onDidChangeWorkspace.fire(Object.freeze({added:n,removed:o}))}findFiles(t,e,n,o,r=me.None){this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${o.value}, entryPoint: findFiles`);let s="",a=!0;e===null?a=!1:e!==void 0&&(typeof e=="string"?s=e:s=e.pattern);let d=this._useIgnoreFilesInFindFiles()&&e!==null?void 0:!1;return this._findFilesImpl({type:"include",value:t},{exclude:[s],maxResults:n,useExcludeSettings:a?2:1,useIgnoreFiles:{local:d}},o,"findFiles",{useIgnoreFilesLocal:void 0,excludeWasNull:e===null},r)}findFiles2(t,e={},n,o=me.None){return this._logService.trace(`extHostWorkspace#findFiles2New: fileSearch, extension: ${n.value}, entryPoint: findFiles2New`),this._findFilesImpl({type:"filePatterns",value:t},e,n,"findFiles2",{useIgnoreFilesLocal:e.useIgnoreFiles?.local,excludeWasNull:!1},o)}async _findFilesImpl(t,e,n,o,r,s){let a=r.useIgnoreFilesLocal===!0?"true":r.useIgnoreFilesLocal===!1?"false":"unspecified",l=new Jt(!0),d=0,c=this._userIgnoreFilesSetting(),u=0,m=!1,g=!1;try{if(s.isCancellationRequested)return m=!0,[];let h=t.type==="include"?[t.value]:t.value??[];if(!Array.isArray(h))throw console.error("Invalid file pattern provided",h),new Error(`Invalid file pattern provided ${JSON.stringify(h)}`);let f=h.map(T=>{let w=bB(e.exclude),M={ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles?.local=="boolean"?!e.useIgnoreFiles.local:void 0,disregardGlobalIgnoreFiles:typeof e.useIgnoreFiles?.global=="boolean"?!e.useIgnoreFiles.global:void 0,disregardParentIgnoreFiles:typeof e.useIgnoreFiles?.parent=="boolean"?!e.useIgnoreFiles.parent:void 0,disregardExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings===1,disregardSearchExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings!==3,maxResults:e.maxResults,excludePattern:w.length>0?w:void 0,ignoreGlobCase:e.caseInsensitive,_reason:"startFileSearch",shouldGlobSearch:t.type==="include"?void 0:!0},O=zT(zo.from(T)),N=O?.folder;return t.type==="include"?M.includePattern=O?.pattern:M.filePattern=O?.pattern,{folder:N,options:M}});d=f.length;let I=this._userIgnoreFilesSetting();c=f.every(T=>T.options.disregardIgnoreFiles===!0?!1:T.options.disregardIgnoreFiles===!1?!0:I);let x=await this._findFilesBase(f,s);return u=x.length,m=s.isCancellationRequested,x}catch(h){throw g=!0,m=s.isCancellationRequested,h}finally{this._reportFindFilesTelemetry({extensionId:n.value,apiKind:o,respectedIgnoreFiles:c,useIgnoreFilesLocalRequested:a,excludeWasNull:r.excludeWasNull,resultCount:u,durationMs:l.elapsed(),queryCount:d,cancelled:m,errored:g})}}async _findFilesBase(t,e){let n=e,o;if(!me.isCancellationToken(e)){o=new ke;let d=e;typeof d.onCancellationRequested=="function"&&d.onCancellationRequested(()=>o.cancel()),n=o.token}let s=(await Promise.all(t?.map(d=>this._proxy.$startFileSearch(d.folder??null,d.options,n).then(c=>Array.isArray(c)?c.map(u=>b.revive(u)):[]))??[])).flat();o?.dispose();let a=new as(d=>qT(d,this._extHostFileSystemInfo)),l=new Map;for(let d of s){let c=a.getComparisonKey(d);l.has(c)||l.set(c,d)}return Array.from(l.values())}_reportFindFilesTelemetry(t){this._telemetryProxy.$publicLog2("extHostFindFiles",t)}findTextInFiles2(t,e,n,o=me.None){this._logService.trace(`extHostWorkspace#findTextInFiles2: textSearch, extension: ${n.value}, entryPoint: findTextInFiles2`);let r=m=>{if(!e)return{folder:void 0,options:{}};let g=m?zT(zo.from(m)):void 0,h=e.exclude?bB(e.exclude):void 0;return{options:{ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles?.local=="boolean"?!e.useIgnoreFiles?.local:void 0,disregardGlobalIgnoreFiles:typeof e.useIgnoreFiles?.global=="boolean"?!e.useIgnoreFiles?.global:void 0,disregardParentIgnoreFiles:typeof e.useIgnoreFiles?.parent=="boolean"?!e.useIgnoreFiles?.parent:void 0,disregardExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings===1,disregardSearchExcludeSettings:e.useExcludeSettings!==void 0&&e.useExcludeSettings!==3,fileEncoding:e.encoding,maxResults:e.maxResults,ignoreGlobCase:e.caseInsensitive,previewOptions:e.previewOptions?{matchLines:e.previewOptions?.numMatchLines??100,charsPerLine:e.previewOptions?.charsPerLine??1e4}:void 0,surroundingContext:e.surroundingContext,includePattern:g?.pattern,excludePattern:h},folder:g?.folder}},a=(e?.include?.map(m=>r(m))??[r(void 0)]).filter(m=>!!m),l=new z,d=l.add(new E),c=this.findTextInFilesBase(t,a,(m,g)=>d.fire({result:m,uri:g}),o);return{results:new Sp(async m=>{l.add(d.event(g=>{let h=g.result,f=g.uri;wb(h)?m.emitOne(new qo(f,h.rangeLocations.map(I=>({previewRange:new be(I.preview.startLineNumber,I.preview.startColumn,I.preview.endLineNumber,I.preview.endColumn),sourceRange:new be(I.source.startLineNumber,I.source.startColumn,I.source.endLineNumber,I.source.endColumn)})),h.previewText)):m.emitOne(new Vs(f,h.text,h.lineNumber))})),await c}),complete:c.then(m=>(l.dispose(),{limitHit:m?.limitHit??!1}))}}async findTextInFilesBase(t,e,n,o=me.None){let r=this._requestIdProvider.getNext(),s=!1;if(o.onCancellationRequested(a=>{s=!0}),this._activeSearchCallbacks[r]=a=>{if(s)return;let l=b.revive(a.resource);a.results.forEach(d=>{let c=St(d);n(c,l)})},o.isCancellationRequested)return{};try{let a=await Promise.all(e?.map(l=>this._proxy.$startTextSearch(t,l.folder??null,l.options,r,o)||{})??[]);return delete this._activeSearchCallbacks[r],a.reduce((l,d)=>({limitHit:l?.limitHit||(d?.limitHit??!1),message:[l?.message??[],d?.message??[]].flat()}),{})??{limitHit:!1}}catch(a){throw delete this._activeSearchCallbacks[r],a}}async findTextInFiles(t,e,n,o,r=me.None){this._logService.trace(`extHostWorkspace#findTextInFiles: textSearch, extension: ${o.value}, entryPoint: findTextInFiles`);let s=typeof e.previewOptions>"u"?{matchLines:100,charsPerLine:1e4}:e.previewOptions,a=zT(zo.from(e.include)),l=typeof e.exclude=="string"?e.exclude:e.exclude?e.exclude.pattern:void 0,d={ignoreSymlinks:typeof e.followSymlinks=="boolean"?!e.followSymlinks:void 0,disregardIgnoreFiles:typeof e.useIgnoreFiles=="boolean"?!e.useIgnoreFiles:void 0,disregardGlobalIgnoreFiles:typeof e.useGlobalIgnoreFiles=="boolean"?!e.useGlobalIgnoreFiles:void 0,disregardParentIgnoreFiles:typeof e.useParentIgnoreFiles=="boolean"?!e.useParentIgnoreFiles:void 0,disregardExcludeSettings:typeof e.useDefaultExcludes=="boolean"?!e.useDefaultExcludes:!0,disregardSearchExcludeSettings:typeof e.useSearchExclude=="boolean"?!e.useSearchExclude:!0,fileEncoding:e.encoding,maxResults:e.maxResults,previewOptions:s,surroundingContext:e.afterContext,includePattern:a?.pattern,excludePattern:l?[{pattern:l}]:void 0},c=(u,m)=>{wb(u)?n({uri:m,preview:{text:u.previewText,matches:rc(u.rangeLocations,g=>new be(g.preview.startLineNumber,g.preview.startColumn,g.preview.endLineNumber,g.preview.endColumn))},ranges:rc(u.rangeLocations,g=>new be(g.source.startLineNumber,g.source.startColumn,g.source.endLineNumber,g.source.endColumn))}):n({uri:m,text:u.text,lineNumber:u.lineNumber})};return this.findTextInFilesBase(t,[{options:d,folder:a?.folder}],c,r)}$handleTextSearchResult(t,e){this._activeSearchCallbacks[e]?.(t)}async save(t){let e=await this._proxy.$save(t,{saveAs:!1});return b.revive(e)}async saveAs(t){let e=await this._proxy.$save(t,{saveAs:!0});return b.revive(e)}saveAll(t){return this._proxy.$saveAll(t)}resolveProxy(t){return this._proxy.$resolveProxy(t)}lookupAuthorization(t){return this._proxy.$lookupAuthorization(t)}lookupKerberosAuthorization(t){return this._proxy.$lookupKerberosAuthorization(t)}loadCertificates(){return this._proxy.$loadCertificates()}get trusted(){return this._trusted}requestResourceTrust(t){return this._proxy.$requestResourceTrust(t)}requestWorkspaceTrust(t){return this._proxy.$requestWorkspaceTrust(t)}$onDidGrantWorkspaceTrust(){this._trusted||(this._trusted=!0,this._onDidGrantWorkspaceTrust.fire())}$onDidChangeWorkspaceTrustedFolders(){this._onDidChangeWorkspaceTrustedFolders.fire()}isResourceTrusted(t){return this._proxy.$isResourceTrusted(t)}registerEditSessionIdentityProvider(t,e){if(this._editSessionIdentityProviders.has(t))throw new Error(`A provider has already been registered for scheme ${t}`);this._editSessionIdentityProviders.set(t,e);let n=this._uriTransformerService.transformOutgoingScheme(t),o=this._providerHandlePool++;return this._proxy.$registerEditSessionIdentityProvider(o,n),Q(()=>{this._editSessionIdentityProviders.delete(t),this._proxy.$unregisterEditSessionIdentityProvider(o)})}async $getEditSessionIdentifier(t,e){this._logService.info("Getting edit session identifier for workspaceFolder",t);let n=await this.resolveWorkspaceFolder(b.revive(t));if(!n){this._logService.warn("Unable to resolve workspace folder");return}this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",n);let o=this._editSessionIdentityProviders.get(n.uri.scheme);if(this._logService.info(`Provider for scheme ${n.uri.scheme} is defined: `,!!o),!o)return;let r=await o.provideEditSessionIdentity(n,e);if(this._logService.info("Provider returned edit session identifier: ",r),!!r)return r}async $provideEditSessionIdentityMatch(t,e,n,o){this._logService.info("Getting edit session identifier for workspaceFolder",t);let r=await this.resolveWorkspaceFolder(b.revive(t));if(!r){this._logService.warn("Unable to resolve workspace folder");return}this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",r);let s=this._editSessionIdentityProviders.get(r.uri.scheme);if(this._logService.info(`Provider for scheme ${r.uri.scheme} is defined: `,!!s),!s)return;let a=await s.provideEditSessionIdentityMatch?.(e,n,o);if(this._logService.info("Provider returned edit session identifier match result: ",a),!!a)return a}getOnWillCreateEditSessionIdentityEvent(t){return(e,n,o)=>{let r=function(a){e.call(n,a)};return r.extension=t,this._onWillCreateEditSessionIdentityEvent.event(r,void 0,o)}}async $onWillCreateEditSessionIdentity(t,e,n){let o=await this.resolveWorkspaceFolder(b.revive(t));if(o===void 0)throw new Error("Unable to resolve workspace folder");await this._onWillCreateEditSessionIdentityEvent.fireAsync({workspaceFolder:o},e,async(r,s)=>{let a=Date.now();await Promise.resolve(r),Date.now()-a>n&&this._logService.warn("SLOW edit session create-participant",s.extension.identifier)}),e.isCancellationRequested}registerCanonicalUriProvider(t,e){if(this._canonicalUriProviders.has(t))throw new Error(`A provider has already been registered for scheme ${t}`);this._canonicalUriProviders.set(t,e);let n=this._uriTransformerService.transformOutgoingScheme(t),o=this._providerHandlePool++;return this._proxy.$registerCanonicalUriProvider(o,n),Q(()=>{this._canonicalUriProviders.delete(t),this._proxy.$unregisterCanonicalUriProvider(o)})}async provideCanonicalUri(t,e,n){let o=this._canonicalUriProviders.get(t.scheme);if(!o)return;let r=await o.provideCanonicalUri?.(b.revive(t),e,n);if(r)return r}async $provideCanonicalUri(t,e,n){return this.provideCanonicalUri(b.revive(t),{targetScheme:e},n)}async decode(t,e){let[n,o]=this.toEncodeDecodeParameters(e),r=await this._proxy.$resolveDecoding(n,o),s=(await pB(HF(W.wrap(t)),{...r,acceptTextOnly:!0,overwriteEncoding:a=>a===null||a===r.preferredEncoding?Promise.resolve(r.preferredEncoding):this._proxy.$validateDetectedEncoding(n,a,o)})).stream;return HI(s,a=>a.join(""))}async encode(t,e){let[n,o]=this.toEncodeDecodeParameters(e),{encoding:r,addBOM:s}=await this._proxy.$resolveEncoding(n,o);if(r===Rb&&!s)return W.fromString(t).buffer;let a=await mB(vB(t),r,{addBOM:s});return FF(a).buffer}toEncodeDecodeParameters(t){let e=Sl(t?.uri)?t.uri:void 0,n=typeof t?.encoding=="string"?t.encoding:void 0;return[e,n?{encoding:n}:void 0]}};pg=D([C(0,ae),C(1,Xe),C(2,Xr),C(3,ne),C(4,ps)],pg);var Tn=R("IExtHostWorkspace");function zT(i){let t,e;if(i)return typeof i=="string"?t=i:(t=i.pattern,e=b.revive(i.baseUri)),{pattern:t,folder:e}}function bB(i){return(i?.map(t=>{if(typeof t=="string")return t===""?void 0:{pattern:t,uri:void 0};{let e=zT(t);return e?{pattern:e.pattern,uri:e.folder}:void 0}})??[]).filter(t=>!!t)}function Lb(i){return Object.isFrozen(i)?i:Xh(i)}var _d=class i{constructor(t,e,n,o,r){this._contents=t;this._keys=e;this._overrides=n;this._raw=o;this.logService=r;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 t0("",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?kv(this.contents,t):this.contents}inspect(t,e){let n=this;return{get value(){return Lb(n.rawConfiguration.getValue(t))},get override(){return e?Lb(n.rawConfiguration.getOverrideValue(t,e)):void 0},get merged(){return Lb(e?n.rawConfiguration.override(e).getValue(t):n.rawConfiguration.getValue(t))},get overrides(){let o=[];for(let{contents:r,identifiers:s,keys:a}of n.rawConfiguration.overrides){let l=new i(r,a,[],void 0,n.logService).getValue(t);l!==void 0&&o.push({identifiers:s,value:l})}return o.length?Lb(o):void 0}}}getOverrideValue(t,e){let n=this.getContentsForOverrideIdentifer(e);return n?t?kv(n,t):n:void 0}getKeysForOverrideIdentifier(t){let e=[];for(let n of this.overrides)n.identifiers.includes(t)&&e.push(...n.keys);return qr(e)}getAllOverrideIdentifiers(){let t=[];for(let e of this.overrides)t.push(...e.identifiers);return qr(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),o=[...this.keys],r=this._raw?Array.isArray(this._raw)?[...this._raw]:[this._raw]:[this];for(let s of t)if(r.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(d=>an(d.identifiers,a.identifiers));l?(this.mergeContents(l.contents,a.contents),l.keys.push(...a.keys),l.keys=qr(l.keys)):n.push(lt(a))}for(let a of s.keys)o.indexOf(a)===-1&&o.push(a)}return new i(e,o,n,!r.length||r.every(s=>s instanceof i)?void 0:r,this.logService)}createOverrideConfigurationModel(t){let e=this.getContentsForOverrideIdentifer(t);if(!e||typeof e!="object"||!Object.keys(e).length)return this;let n={};for(let o of qr([...Object.keys(this.contents),...Object.keys(e)])){let r=this.contents[o],s=e[o];s&&(typeof r=="object"&&typeof s=="object"?(r=lt(r),this.mergeContents(r,s)):r=s),n[o]=r}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&&st(t[n])&&st(e[n])){this.mergeContents(t[n],e[n]);continue}t[n]=lt(e[n])}}getContentsForOverrideIdentifer(t){let e=null,n=null,o=r=>{r&&(n?this.mergeContents(n,r):n=lt(r))};for(let r of this.overrides)r.identifiers.length===1&&r.identifiers[0]===t?e=r.contents:r.identifiers.includes(t)&&o(r.contents);return o(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),OH(this.contents,t),Zr.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>an(n.identifiers,Kp(t))),1))}updateValue(t,e,n){if(rA(this.contents,t,e,o=>this.logService.error(o)),n=n||this.keys.indexOf(t)===-1,n&&this.keys.push(t),Zr.test(t)){let o=this.contents[t],r=Kp(t),s={identifiers:r,keys:Object.keys(o),contents:Lx(o,l=>this.logService.error(l))},a=this.overrides.findIndex(l=>an(l.identifiers,r));a!==-1?this.overrides[a]=s:this.overrides.push(s)}}},t0=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||_d.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:o,overrides:r,restricted:s,hasExcludedProperties:a}=this.doParseRaw(t,e);this._configurationModel=new _d(n,o,r,a?[t]:void 0,this.logService),this._restrictedConfigurations=s||[]}doParseContent(t){let e={},n=null,o=[],r=[],s=[];function a(d){Array.isArray(o)?o.push(d):n!==null&&(o[n]=d)}let l={onObjectBegin:()=>{let d={};a(d),r.push(o),o=d,n=null},onObjectProperty:d=>{n=d},onObjectEnd:()=>{o=r.pop()},onArrayBegin:()=>{let d=[];a(d),r.push(o),o=d,n=null},onArrayEnd:()=>{o=r.pop()},onLiteralValue:a,onError:(d,c,u)=>{s.push({error:d,offset:c,length:u})}};if(t)try{RV(t,l),e=o[0]||{}}catch(d){this.logService.error(`Error while parsing settings file ${this._name}: ${d}`),this._parseErrors=[d]}return e}doParseRaw(t,e){let n=_t.as(ei.Configuration),o=n.getConfigurationProperties(),r=n.getExcludedConfigurationProperties(),s=this.filter(t,o,r,!0,e);t=s.raw;let a=Lx(t,c=>this.logService.error(`Conflict in settings file ${this._name}: ${c}`)),l=Object.keys(t),d=this.toOverrides(t,c=>this.logService.error(`Conflict in settings file ${this._name}: ${c}`));return{contents:a,keys:l,overrides:d,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(t,e,n,o,r){let s=!1;if(!r?.scopes&&!r?.skipRestricted&&!r?.skipUnregistered&&!r?.exclude?.length)return{raw:t,restricted:[],hasExcludedProperties:s};let a={},l=[];for(let d in t)if(Zr.test(d)&&o){let c=this.filter(t[d],e,n,!1,r);a[d]=c.raw,s=s||c.hasExcludedProperties,l.push(...c.restricted)}else{let c=e[d];c?.restricted&&l.push(d),this.shouldInclude(d,c,n,r)?a[d]=t[d]:s=!0}return{raw:a,restricted:l,hasExcludedProperties:s}}shouldInclude(t,e,n,o){if(o.exclude?.includes(t))return!1;if(o.include?.includes(t))return!0;if(o.skipRestricted&&e?.restricted||o.skipUnregistered&&!e)return!1;let r=e??n[t],s=r?typeof r.scope<"u"?r.scope:4:void 0;return s===void 0||o.scopes===void 0?!0:o.scopes.includes(s)}toOverrides(t,e){let n=[];for(let o of Object.keys(t))if(Zr.test(o)){let r={},s=t[o];for(let a in s)r[a]=s[a];n.push({identifiers:Kp(o),keys:Object.keys(r),contents:Lx(r,e)})}return n}};var n0=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g){this.key=t;this.overrides=e;this._value=n;this.overrideIdentifiers=o;this.defaultConfiguration=r;this.policyConfiguration=s;this.applicationConfiguration=a;this.userConfiguration=l;this.localUserConfiguration=d;this.remoteUserConfiguration=c;this.workspaceConfiguration=u;this.folderConfigurationModel=m;this.memoryConfigurationModel=g}get value(){return Lb(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)}},mg=class i{constructor(t,e,n,o,r,s,a,l,d,c){this._defaultConfiguration=t;this._policyConfiguration=e;this._applicationConfiguration=n;this._localUserConfiguration=o;this._remoteUserConfiguration=r;this._workspaceConfiguration=s;this._folderConfigurations=a;this._memoryConfiguration=l;this._memoryConfigurationByResource=d;this.logService=c;this._workspaceConsolidatedConfiguration=null;this._foldersConsolidatedConfigurations=new je;this._userConfiguration=null}getValue(t,e,n){return this.getConsolidatedConfigurationModel(t,e,n).getValue(t)}updateValue(t,e,n={}){let o;n.resource?(o=this._memoryConfigurationByResource.get(n.resource),o||(o=_d.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(n.resource,o))):o=this._memoryConfiguration,e===void 0?o.removeValue(t):o.setValue(t,e),n.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(t,e,n){let o=this.getConsolidatedConfigurationModel(t,e,n),r=this.getFolderConfigurationModelForResource(e.resource,n),s=e.resource?this._memoryConfigurationByResource.get(e.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(let l of o.overrides)for(let d of l.identifiers)o.getOverrideValue(t,d)!==void 0&&a.add(d);return new n0(t,e,o.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,r||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:o,updated:r,removed:s}=Pd(this._defaultConfiguration,t);e=[...o,...r,...s]}for(let o of e)for(let r of Kp(o)){let s=this._defaultConfiguration.getKeysForOverrideIdentifier(r),a=t.getKeysForOverrideIdentifier(r),l=[...a.filter(d=>s.indexOf(d)===-1),...s.filter(d=>a.indexOf(d)===-1),...s.filter(d=>!Bt(this._defaultConfiguration.override(r).getValue(d),t.override(r).getValue(d)))];n.push([r,l])}return this.updateDefaultConfiguration(t),{keys:e,overrides:n}}compareAndUpdatePolicyConfiguration(t){let{added:e,updated:n,removed:o}=Pd(this._policyConfiguration,t),r=[...e,...n,...o];return r.length&&this.updatePolicyConfiguration(t),{keys:r,overrides:[]}}compareAndUpdateApplicationConfiguration(t){let{added:e,updated:n,removed:o,overrides:r}=Pd(this.applicationConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateApplicationConfiguration(t),{keys:s,overrides:r}}compareAndUpdateLocalUserConfiguration(t){let{added:e,updated:n,removed:o,overrides:r}=Pd(this.localUserConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateLocalUserConfiguration(t),{keys:s,overrides:r}}compareAndUpdateRemoteUserConfiguration(t){let{added:e,updated:n,removed:o,overrides:r}=Pd(this.remoteUserConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateRemoteUserConfiguration(t),{keys:s,overrides:r}}compareAndUpdateWorkspaceConfiguration(t){let{added:e,updated:n,removed:o,overrides:r}=Pd(this.workspaceConfiguration,t),s=[...e,...n,...o];return s.length&&this.updateWorkspaceConfiguration(t),{keys:s,overrides:r}}compareAndUpdateFolderConfiguration(t,e){let n=this.folderConfigurations.get(t),{added:o,updated:r,removed:s,overrides:a}=Pd(n,e),l=[...o,...r,...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:o,removed:r,overrides:s}=Pd(e,void 0);return{keys:[...n,...o,...r],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 _d(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 o=this.getConsolidatedConfigurationModelForResource(e,n);if(e.overrideIdentifier&&(o=o.override(e.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(t)!==void 0){o=o.merge();for(let r of this._policyConfiguration.keys)o.setValue(r,this._policyConfiguration.getValue(r))}return o}getConsolidatedConfigurationModelForResource({resource:t},e){let n=this.getWorkspaceConsolidatedConfiguration();if(e&&t){let o=e.getFolder(t);o&&(n=this.getFolderConsolidatedConfiguration(o.uri)||n);let r=this._memoryConfigurationByResource.get(t);r&&(n=n.merge(r))}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(),o=this._folderConfigurations.get(t);o?(e=n.merge(o),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:o,keys:r}=this._folderConfigurations.get(e);return t.push([e,{contents:n,overrides:o,keys:r}]),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(o=>e.add(o))),[...e.values()]}static parse(t,e){let n=this.parseConfigurationModel(t.defaults,e),o=this.parseConfigurationModel(t.policy,e),r=this.parseConfigurationModel(t.application,e),s=this.parseConfigurationModel(t.userLocal,e),a=this.parseConfigurationModel(t.userRemote,e),l=this.parseConfigurationModel(t.workspace,e),d=t.folders.reduce((c,u)=>(c.set(b.revive(u[0]),this.parseConfigurationModel(u[1],e)),c),new je);return new i(n,o,r,s,a,l,d,_d.createEmptyModel(e),new je,e)}static parseConfigurationModel(t,e){return new _d(t.contents,t.keys,t.overrides,t.raw,e)}};var KT=class{constructor(t,e,n,o,r){this.change=t;this.previous=e;this.currentConfiguraiton=n;this.currentWorkspace=o;this.logService=r;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=mg.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(t,e){let n=this._marker+t,o=this._affectsConfigStr.indexOf(n);if(o<0)return!1;let r=o+n.length;if(r>=this._affectsConfigStr.length)return!1;let s=this._affectsConfigStr.charCodeAt(r);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!Bt(a,l)}return!0}};function Pd(i,t){let{added:e,removed:n,updated:o}=IB(t?.rawConfiguration,i?.rawConfiguration),r=[],s=i?.getAllOverrideIdentifiers()||[],a=t?.getAllOverrideIdentifiers()||[];if(t){let l=a.filter(d=>!s.includes(d));for(let d of l)r.push([d,t.getKeysForOverrideIdentifier(d)])}if(i){let l=s.filter(d=>!a.includes(d));for(let d of l)r.push([d,i.getKeysForOverrideIdentifier(d)])}if(t&&i){for(let l of s)if(a.includes(l)){let d=IB({contents:i.getOverrideValue(void 0,l)||{},keys:i.getKeysForOverrideIdentifier(l)},{contents:t.getOverrideValue(void 0,l)||{},keys:t.getKeysForOverrideIdentifier(l)});r.push([l,[...d.added,...d.removed,...d.updated]])}}return{added:e,removed:n,updated:o,overrides:r}}function IB(i,t){let e=i?t?i.keys.filter(r=>t.keys.indexOf(r)===-1):[...i.keys]:[],n=t?i?t.keys.filter(r=>i.keys.indexOf(r)===-1):[...t.keys]:[],o=[];if(i&&t){for(let r of t.keys)if(i.keys.indexOf(r)!==-1){let s=kv(t.contents,r),a=kv(i.contents,r);Bt(s,a)||o.push(r)}}return{added:e,removed:n,updated:o}}function jT(i,t){if(t){let e=t.split("."),n=i;for(let o=0;n&&o<e.length;o++)n=n[e[o]];return n}}function cK(i){return i instanceof b}function uK(i){return st(i)&&i.uri instanceof b&&!!i.languageId&&typeof i.languageId=="string"}function pK(i){return st(i)&&!i.uri&&!!i.languageId&&typeof i.languageId=="string"}function mK(i){return st(i)&&i.uri instanceof b&&(!i.name||typeof i.name=="string")&&(!i.index||typeof i.index=="number")}function xB(i){if(cK(i))return{resource:i};if(uK(i))return{resource:i.uri,overrideIdentifier:i.languageId};if(pK(i))return{overrideIdentifier:i.languageId};if(mK(i))return{resource:i.uri};if(i===null)return{resource:null}}var gg=class{constructor(t,e,n){this._proxy=t.getProxy(F.MainThreadConfiguration),this._extHostWorkspace=e,this._logService=n,this._barrier=new Sn,this._actual=null}getConfigProvider(){return this._barrier.wait().then(t=>this._actual)}$initializeConfiguration(t){this._actual=new o0(this._proxy,this._extHostWorkspace,t,this._logService),this._extHostWorkspace.$setConfigProvider(this._actual),this._barrier.open()}$acceptConfigurationChanged(t,e){this.getConfigProvider().then(n=>n.$acceptConfigurationChanged(t,e))}};gg=D([C(0,ae),C(1,Tn),C(2,ne)],gg);var o0=class{constructor(t,e,n,o){this._onDidChangeConfiguration=new E;this._proxy=t,this._logService=o,this._extHostWorkspace=e,this._configuration=mg.parse(n,o),this._configurationScopes=this._toMap(n.configurationScopes)}get onDidChangeConfiguration(){return this._onDidChangeConfiguration&&this._onDidChangeConfiguration.event}$acceptConfigurationChanged(t,e){let n={data:this._configuration.toData(),workspace:this._extHostWorkspace.workspace};this._configuration=mg.parse(t,this._logService),this._configurationScopes=this._toMap(t.configurationScopes),this._onDidChangeConfiguration.fire(this._toConfigurationChangeEvent(e,n))}getConfiguration(t,e,n){let o=xB(e)||{},r=this._toReadonlyValue(this._configuration.getValue(t,o,this._extHostWorkspace.workspace));t&&this._validateConfigurationAccess(t,o,n?.identifier);function s(l){if(l==null)return null;if(typeof l=="boolean")return l?2:5;switch(l){case 1:return 2;case 2:return 5;case 3:return 6}}let a={has(l){return typeof jT(r,l)<"u"},get:(l,d)=>{this._validateConfigurationAccess(t?`${t}.${l}`:l,o,n?.identifier);let c=jT(r,l);if(typeof c>"u")c=d;else{let u,m=(g,h)=>{if(st(g)){let f,I=()=>{u=u||lt(r),f=f||jT(u,h)};return new Proxy(g,{get:(x,T)=>{if(typeof T=="string"&&T.toLowerCase()==="tojson")return I(),()=>f;if(u)return f=f||jT(u,h),f[T];let w=x[T];return typeof T=="string"?m(w,`${h}.${T}`):w},set:(x,T,w)=>(I(),f&&(f[T]=w),!0),deleteProperty:(x,T)=>(I(),f&&delete f[T],!0),defineProperty:(x,T,w)=>(I(),f&&Object.defineProperty(f,T,w),!0)})}return Array.isArray(g)?lt(g):g};c=m(c,l)}return c},update:(l,d,c,u)=>{l=t?`${t}.${l}`:l;let m=s(c);return d!==void 0?this._proxy.$updateConfigurationOption(m,l,d,o,u):this._proxy.$removeConfigurationOption(m,l,o,u)},inspect:l=>{l=t?`${t}.${l}`:l;let d=this._configuration.inspect(l,o,this._extHostWorkspace.workspace);if(d)return{key:l,defaultValue:lt(d.policy?.value??d.default?.value),globalLocalValue:lt(d.userLocal?.value),globalRemoteValue:lt(d.userRemote?.value),globalValue:lt(d.user?.value??d.application?.value),workspaceValue:lt(d.workspace?.value),workspaceFolderValue:lt(d.workspaceFolder?.value),defaultLanguageValue:lt(d.default?.override),globalLocalLanguageValue:lt(d.userLocal?.override),globalRemoteLanguageValue:lt(d.userRemote?.override),globalLanguageValue:lt(d.user?.override??d.application?.override),workspaceLanguageValue:lt(d.workspace?.override),workspaceFolderLanguageValue:lt(d.workspaceFolder?.override),languageIds:lt(d.overrideIdentifiers)}}};return typeof r=="object"&&Jo(a,r,!1),Object.freeze(a)}_toReadonlyValue(t){let e=n=>st(n)?new Proxy(n,{get:(o,r)=>e(o[r]),set:(o,r,s)=>{throw new Error(`TypeError: Cannot assign to read only property '${String(r)}' of object`)},deleteProperty:(o,r)=>{throw new Error(`TypeError: Cannot delete read only property '${String(r)}' of object`)},defineProperty:(o,r)=>{throw new Error(`TypeError: Cannot define property '${String(r)}' for a readonly object`)},setPrototypeOf:o=>{throw new Error("TypeError: Cannot set prototype for a readonly object")},isExtensible:()=>!1,preventExtensions:()=>!0}):n;return e(t)}_validateConfigurationAccess(t,e,n){let o=Zr.test(t)?5:this._configurationScopes.get(t),r=n?`[${n.value}] `:"";if(5===o){typeof e?.resource>"u"&&this._logService.warn(`${r}Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '${t}', provide the URI of a resource or 'null' for any resource.`);return}if(4===o){e?.resource&&this._logService.warn(`${r}Accessing a window scoped configuration for a resource is not expected. To associate '${t}' to a resource, define its scope to 'resource' in configuration contributions in 'package.json'.`);return}}_toConfigurationChangeEvent(t,e){let n=new KT(t,e,this._configuration,this._extHostWorkspace.workspace,this._logService);return Object.freeze({affectsConfiguration:(o,r)=>n.affectsConfiguration(o,xB(r))})}_toMap(t){return t.reduce((e,n)=>(e.set(n[0],n[1]),e),new Map)}},En=R("IExtHostConfiguration");var i0=class{constructor(t,e){this.versionId=t;this.removedDueToLooping=e}},Xa=class i extends U{constructor(e,n){super();this._activationEventsReader=e;this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event;this._versionId=0;this._extensionDescriptions=n,this._initialize()}static isHostExtension(e,n,o){if(n.getExtensionDescription(e))return!1;let r=o.getExtensionDescription(e);return r?!!((r.main||r.browser)&&r.api==="none"):!1}_initialize(){this._extensionDescriptions.sort(gK),this._extensionsMap=new ho,this._extensionsArr=[],this._activationMap=new Map;for(let e of this._extensionDescriptions){if(this._extensionsMap.has(e.identifier)){console.error("Extension `"+e.identifier.value+"` is already registered");continue}this._extensionsMap.set(e.identifier,e),this._extensionsArr.push(e);let n=this._activationEventsReader.readActivationEvents(e);for(let o of n)this._activationMap.has(o)||this._activationMap.set(o,[]),this._activationMap.get(o).push(e)}}set(e){return this._extensionDescriptions=e,this._initialize(),this._versionId++,this._onDidChange.fire(void 0),{versionId:this._versionId}}deltaExtensions(e,n){this._extensionDescriptions=SB(this._extensionDescriptions,n),this._extensionDescriptions=this._extensionDescriptions.concat(e);let o=i._findLoopingExtensions(this._extensionDescriptions);return this._extensionDescriptions=SB(this._extensionDescriptions,o.map(r=>r.identifier)),this._initialize(),this._versionId++,this._onDidChange.fire(void 0),new i0(this._versionId,o)}static _findLoopingExtensions(e){let n=new class{constructor(){this._arcs=new Map;this._nodesSet=new Set;this._nodesArr=[]}addNode(l){this._nodesSet.has(l)||(this._nodesSet.add(l),this._nodesArr.push(l))}addArc(l,d){this.addNode(l),this.addNode(d),this._arcs.has(l)?this._arcs.get(l).push(d):this._arcs.set(l,[d])}getArcs(l){return this._arcs.has(l)?this._arcs.get(l):[]}hasOnlyGoodArcs(l,d){let c=n.getArcs(l);for(let u=0;u<c.length;u++)if(!d.has(c[u]))return!1;return!0}getNodes(){return this._nodesArr}},o=new ho;for(let l of e)if(o.set(l.identifier,l),l.extensionDependencies)for(let d of l.extensionDependencies)n.addArc(Ee.toKey(l.identifier),Ee.toKey(d));let r=new Set;n.getNodes().filter(l=>n.getArcs(l).length===0).forEach(l=>r.add(l));let s=n.getNodes().filter(l=>!r.has(l)),a;do{a=!1;for(let l=0;l<s.length;l++){let d=s[l];n.hasOnlyGoodArcs(d,r)&&(s.splice(l,1),l--,r.add(d),a=!0)}}while(a);return s.map(l=>o.get(l))}containsActivationEvent(e){return this._activationMap.has(e)}containsExtension(e){return this._extensionsMap.has(e)}getExtensionDescriptionsForActivationEvent(e){let n=this._activationMap.get(e);return n?n.slice(0):[]}getAllExtensionDescriptions(){return this._extensionsArr.slice(0)}getSnapshot(){return new s0(this._versionId,this.getAllExtensionDescriptions())}getExtensionDescription(e){let n=this._extensionsMap.get(e);return n||void 0}getExtensionDescriptionByUUID(e){for(let n of this._extensionsArr)if(n.uuid===e)return n}getExtensionDescriptionByIdOrUUID(e,n){return this.getExtensionDescription(e)??(n?this.getExtensionDescriptionByUUID(n):void 0)}},s0=class{constructor(t,e){this.versionId=t;this.extensions=e}};function gK(i,t){let e=i.isBuiltin?0:i.isUnderDevelopment?2:1,n=t.isBuiltin?0:t.isUnderDevelopment?2:1;if(e!==n)return e-n;let o=$e.basename(i.extensionLocation.path),r=$e.basename(t.extensionLocation.path);return o<r?-1:o>r?1:0}function SB(i,t){let e=new Ho(t);return i.filter(n=>!e.has(n.identifier))}var Tu=class i{static{this.NONE=new i(!1,-1,-1,-1)}constructor(t,e,n,o){this.startup=t,this.codeLoadingTime=e,this.activateCallTime=n,this.activateResolvedTime=o}},hg=class{constructor(t){this._startup=t,this._codeLoadingStart=-1,this._codeLoadingStop=-1,this._activateCallStart=-1,this._activateCallStop=-1,this._activateResolveStart=-1,this._activateResolveStop=-1}_delta(t,e){return t===-1||e===-1?-1:e-t}build(){return new Tu(this._startup,this._delta(this._codeLoadingStart,this._codeLoadingStop),this._delta(this._activateCallStart,this._activateCallStop),this._delta(this._activateResolveStart,this._activateResolveStop))}codeLoadingStart(){this._codeLoadingStart=Date.now()}codeLoadingStop(){this._codeLoadingStop=Date.now()}activateCallStart(){this._activateCallStart=Date.now()}activateCallStop(){this._activateCallStop=Date.now()}activateResolveStart(){this._activateResolveStart=Date.now()}activateResolveStop(){this._activateResolveStop=Date.now()}},Eu=class{constructor(t,e,n,o,r,s){this.activationFailed=t,this.activationFailedError=e,this.activationTimes=n,this.module=o,this.exports=r,this.disposable=s}},GT=class extends Eu{constructor(t){super(!1,null,t,{activate:void 0,deactivate:void 0},void 0,U.None)}},QT=class extends Eu{constructor(){super(!1,null,Tu.NONE,{activate:void 0,deactivate:void 0},void 0,U.None)}},vg=class extends Eu{constructor(t){super(!0,t,Tu.NONE,{activate:void 0,deactivate:void 0},void 0,U.None)}},fg=class{constructor(t,e,n,o){this._logService=o;this._registry=t,this._globalRegistry=e,this._host=n,this._operations=new ho,this._alreadyActivatedEvents=Object.create(null)}dispose(){for(let[t,e]of this._operations)e.dispose()}async waitForActivatingExtensions(){let t=[];for(let[e,n]of this._operations)t.push(n.wait());await Promise.all(t)}isActivated(t){let e=this._operations.get(t);return!!(e&&e.value)}getActivatedExtension(t){let e=this._operations.get(t);if(!e||!e.value)throw new Error(`Extension '${t.value}' is not known or not activated`);return e.value}async activateByEvent(t,e){if(this._alreadyActivatedEvents[t])return;let n=this._registry.getExtensionDescriptionsForActivationEvent(t);await this._activateExtensions(n.map(o=>({id:o.identifier,reason:{startup:e,extensionId:o.identifier,activationEvent:t}}))),this._alreadyActivatedEvents[t]=!0}activateById(t,e){let n=this._registry.getExtensionDescription(t);if(!n)throw new Error(`Extension '${t.value}' is not known`);return this._activateExtensions([{id:n.identifier,reason:e}])}async _activateExtensions(t){let e=t.filter(n=>!this.isActivated(n.id)).map(n=>this._handleActivationRequest(n));await Promise.all(e.map(n=>n.wait()))}_handleActivationRequest(t){if(this._operations.has(t.id))return this._operations.get(t.id);if(this._isHostExtension(t.id))return this._createAndSaveOperation(t,null,[],null);let e=this._registry.getExtensionDescription(t.id);if(!e){let r=new Error(`Cannot activate unknown extension '${t.id.value}'`),s=this._createAndSaveOperation(t,null,[],new vg(r));return this._host.onExtensionActivationError(t.id,r,new Bv(t.id.value)),s}let n=[],o=typeof e.extensionDependencies>"u"?[]:e.extensionDependencies;for(let r of o){if(this._isResolvedExtension(r))continue;let s=this._operations.get(r);if(s){n.push(s);continue}if(this._isHostExtension(r)){n.push(this._handleActivationRequest({id:this._globalRegistry.getExtensionDescription(r).identifier,reason:t.reason}));continue}let a=this._registry.getExtensionDescription(r);if(a){if(!a.main&&!a.browser)continue;n.push(this._handleActivationRequest({id:a.identifier,reason:t.reason}));continue}let l=e.displayName||e.identifier.value,d=new Error(`Cannot activate the '${l}' extension because it depends on unknown extension '${r}'`),c=this._createAndSaveOperation(t,e.displayName,[],new vg(d));return this._host.onExtensionActivationError(e.identifier,d,new Bv(r)),c}return this._createAndSaveOperation(t,e.displayName,n,null)}_createAndSaveOperation(t,e,n,o){let r=new Ob(t.id,e,t.reason,n,o,this._host,this._logService);return this._operations.set(t.id,r),r}_isHostExtension(t){return Xa.isHostExtension(t,this._registry,this._globalRegistry)}_isResolvedExtension(t){let e=this._globalRegistry.getExtensionDescription(t);return e?!e.main&&!e.browser:!1}};fg=D([C(3,ne)],fg);var Ob=class{constructor(t,e,n,o,r,s,a){this._id=t;this._displayName=e;this._reason=n;this._deps=o;this._value=r;this._host=s;this._logService=a;this._barrier=new Sn;this._isDisposed=!1;this._initialize()}get value(){return this._value}get friendlyName(){return this._displayName||this._id.value}dispose(){this._isDisposed=!0}wait(){return this._barrier.wait()}async _initialize(){await this._waitForDepsThenActivate(),this._barrier.open()}async _waitForDepsThenActivate(){if(!this._value){for(;this._deps.length>0;){for(let t=0;t<this._deps.length;t++){let e=this._deps[t];if(e.value&&!e.value.activationFailed){this._deps.splice(t,1),t--;continue}if(e.value&&e.value.activationFailed){let n=new Error(`Cannot activate the '${this.friendlyName}' extension because its dependency '${e.friendlyName}' failed to activate`);n.detail=e.value.activationFailedError,this._value=new vg(n),this._host.onExtensionActivationError(this._id,n,null);return}}this._deps.length>0&&await Promise.race(this._deps.map(t=>t.wait()))}await this._activate()}}async _activate(){try{this._value=await this._host.actualActivateExtension(this._id,this._reason)}catch(t){let e=new Error;if(t&&t.name&&(e.name=t.name),t&&t.message?e.message=`Activating extension '${this._id.value}' failed: ${t.message}.`:e.message=`Activating extension '${this._id.value}' failed: ${t}.`,t&&t.stack&&(e.stack=t.stack),this._value=new vg(e),this._isDisposed&&Kt(t))return;this._host.onExtensionActivationError(this._id,e,null),this._logService.error(`Activating extension ${this._id.value} failed due to an error:`),this._logService.error(t)}}};Ob=D([C(6,ne)],Ob);var bg=class{constructor(t,e){this._logService=e;this._onDidChangeStorage=new E;this.onDidChangeStorage=this._onDidChangeStorage.event;this._proxy=t.getProxy(F.MainThreadStorage)}registerExtensionStorageKeysToSync(t,e){this._proxy.$registerExtensionStorageKeysToSync(t,e)}async initializeExtensionStorage(t,e,n){let o=await this._proxy.$initializeExtensionStorage(t,e),r;return o&&(r=this.safeParseValue(t,e,o)),r||n}setValue(t,e,n){return this._proxy.$setValue(t,e,n)}$acceptValue(t,e,n){let o=this.safeParseValue(t,e,n);o&&this._onDidChangeStorage.fire({shared:t,key:e,value:o})}safeParseValue(t,e,n){try{return JSON.parse(n)}catch(o){this._logService.error(`[extHostStorage] unexpected error parsing storage contents (extensionId: ${e}, global: ${t}): ${o}`)}}},yg=R("IExtHostStorage");var Nb=class{constructor(t,e,n){this._deferredPromises=new Map;this._id=t,this._shared=e,this._storage=n,this._init=this._storage.initializeExtensionStorage(this._shared,this._id,Object.create(null)).then(o=>(this._value=o,this)),this._storageListener=this._storage.onDidChangeStorage(o=>{o.shared===this._shared&&o.key===this._id&&(this._value=o.value)}),this._scheduler=new Jn(()=>{let o=this._deferredPromises;this._deferredPromises=new Map,(async()=>{try{await this._storage.setValue(this._shared,this._id,this._value);for(let r of o.values())r.complete()}catch(r){for(let s of o.values())s.error(r)}})()},0)}keys(){return Object.entries(this._value??{}).filter(([,t])=>t!==void 0).map(([t])=>t)}get whenReady(){return this._init}get(t,e){let n=this._value[t];return typeof n>"u"&&(n=e),n}update(t,e){e!==null&&typeof e=="object"?this._value[t]=JSON.parse(JSON.stringify(e)):this._value[t]=e;let n=this._deferredPromises.get(t);if(n!==void 0)return n.p;let o=new jt;return this._deferredPromises.set(t,o),this._scheduler.isScheduled()||this._scheduler.schedule(),o.p}dispose(){this._storageListener.dispose()}},JT=class extends Nb{setKeysForSync(t){this._storage.registerExtensionStorageKeysToSync({id:this._id,version:this._extension.version},t)}constructor(t,e){super(t.identifier.value,!0,e),this._extension=t}};var sr=class{constructor(t,e){this._fileSystemProvider=new Map;this._writeQueue=new yp;this._proxy=t.getProxy(F.MainThreadFileSystem);let n=this;this.value=Object.freeze({async stat(o){try{let r,s=n._fileSystemProvider.get(o.scheme);return s?(await n._proxy.$ensureActivation(o.scheme),r=await s.impl.stat(o)):r=await n._proxy.$stat(o),{type:r.type,ctime:r.ctime,mtime:r.mtime,size:r.size,permissions:r.permissions===1?1:void 0}}catch(r){sr._handleError(r)}},async readDirectory(o){try{let r=n._fileSystemProvider.get(o.scheme);return r?(await n._proxy.$ensureActivation(o.scheme),(await r.impl.readDirectory(o)).slice()):await n._proxy.$readdir(o)}catch(r){return sr._handleError(r)}},async createDirectory(o){try{let r=n._fileSystemProvider.get(o.scheme);return r&&!r.isReadonly?(await n._proxy.$ensureActivation(o.scheme),await n.mkdirp(r.impl,r.extUri,o)):await n._proxy.$mkdir(o)}catch(r){return sr._handleError(r)}},async readFile(o){try{let r=n._fileSystemProvider.get(o.scheme);return r?(await n._proxy.$ensureActivation(o.scheme),(await r.impl.readFile(o)).slice()):(await n._proxy.$readFile(o)).buffer}catch(r){return sr._handleError(r)}},async writeFile(o,r){try{let s=n._fileSystemProvider.get(o.scheme);return s&&!s.isReadonly?(await n._proxy.$ensureActivation(o.scheme),await n.mkdirp(s.impl,s.extUri,s.extUri.dirname(o)),await n._writeQueue.queueFor(o,()=>Promise.resolve(s.impl.writeFile(o,r,{create:!0,overwrite:!0})))):await n._proxy.$writeFile(o,W.wrap(r))}catch(s){return sr._handleError(s)}},async delete(o,r){try{let s=n._fileSystemProvider.get(o.scheme);return s&&!s.isReadonly&&!r?.useTrash?(await n._proxy.$ensureActivation(o.scheme),await s.impl.delete(o,{recursive:!1,...r})):await n._proxy.$delete(o,{recursive:!1,useTrash:!1,atomic:!1,...r})}catch(s){return sr._handleError(s)}},async rename(o,r,s){try{return await n._proxy.$rename(o,r,{overwrite:!1,...s})}catch(a){return sr._handleError(a)}},async copy(o,r,s){try{return await n._proxy.$copy(o,r,{overwrite:!1,...s})}catch(a){return sr._handleError(a)}},isWritableFileSystem(o){let r=e.getCapabilities(o);if(typeof r=="number")return!(r&2048)}})}async mkdirp(t,e,n){let o=[];for(;!e.isEqual(n,e.dirname(n));)try{if(((await t.stat(n)).type&2)===0)throw Ct.FileExists(`Unable to create folder '${n.scheme===B.file?n.fsPath:n.toString(!0)}' that already exists but is not a directory`);break}catch(r){if(Np(r)!=="EntryNotFound")throw r;o.push(e.basename(n)),n=e.dirname(n)}for(let r=o.length-1;r>=0;r--){n=e.joinPath(n,o[r]);try{await t.createDirectory(n)}catch(s){if(Np(s)!=="EntryExists")throw s}}}static _handleError(t){if(t instanceof Ct)throw t;if(t instanceof Ll)switch(t.code){case"EntryExists":throw Ct.FileExists(t.message);case"EntryNotFound":throw Ct.FileNotFound(t.message);case"EntryNotADirectory":throw Ct.FileNotADirectory(t.message);case"EntryIsADirectory":throw Ct.FileIsADirectory(t.message);case"NoPermissions":throw Ct.NoPermissions(t.message);case"Unavailable":throw Ct.Unavailable(t.message);default:throw new Ct(t.message,t.name)}if(!(t instanceof Error))throw new Ct(String(t));if(t.name==="ENOPRO"||t.message.includes("ENOPRO"))throw Ct.Unavailable(t.message);switch(t.name){case"EntryExists":throw Ct.FileExists(t.message);case"EntryNotFound":throw Ct.FileNotFound(t.message);case"EntryNotADirectory":throw Ct.FileNotADirectory(t.message);case"EntryIsADirectory":throw Ct.FileIsADirectory(t.message);case"NoPermissions":throw Ct.NoPermissions(t.message);case"Unavailable":throw Ct.Unavailable(t.message);default:throw new Ct(t.message,t.name)}}addFileSystemProvider(t,e,n){return this._fileSystemProvider.set(t,{impl:e,extUri:n?.isCaseSensitive?xt:R_,isReadonly:!!n?.isReadonly}),Q(()=>this._fileSystemProvider.delete(t))}getFileSystemProviderExtUri(t){return this._fileSystemProvider.get(t)?.extUri??xt}};sr=D([C(0,ae),C(1,Xr)],sr);var Bs=R("IExtHostConsumerFileSystem");var xg=R("IExtensionStoragePaths"),Ig=class{constructor(t,e,n){this._logService=e;this._extHostFileSystem=n;this._workspace=t.workspace??void 0,this._environment=t.environment,this.whenReady=this._getOrCreateWorkspaceStoragePath().then(o=>this._value=o)}async _getWorkspaceStorageURI(t){return b.joinPath(this._environment.workspaceStorageHome,t)}async _getOrCreateWorkspaceStoragePath(){if(!this._workspace)return Promise.resolve(void 0);let t=this._workspace.id,e=await this._getWorkspaceStorageURI(t);try{return await this._extHostFileSystem.value.stat(e),this._logService.trace("[ExtHostStorage] storage dir already exists",e),e}catch{}try{return this._logService.trace("[ExtHostStorage] creating dir and metadata-file",e),await this._extHostFileSystem.value.createDirectory(e),await this._extHostFileSystem.value.writeFile(b.joinPath(e,"meta.json"),new TextEncoder().encode(JSON.stringify({id:this._workspace.id,configuration:b.revive(this._workspace.configuration)?.toString(),name:this._workspace.name},void 0,2))),e}catch(n){this._logService.error("[ExtHostStorage]",n);return}}workspaceValue(t){if(this._value)return b.joinPath(this._value,t.identifier.value)}globalValue(t){return b.joinPath(this._environment.globalStorageHome,t.identifier.value.toLowerCase())}onWillDeactivateAll(){}};Ig=D([C(0,Xe),C(1,ne),C(2,Bs)],Ig);var CB=R("tunnelService"),nMe=R("sharedTunnelsService");function TB(i){return!!i.forwardPort}function fK(i){if(i.scheme!=="http"&&i.scheme!=="https")return;let t=/^(localhost|127\.0\.0\.1|0\.0\.0\.0):(\d+)$/.exec(i.authority);if(t)return{address:t[1],port:+t[2]}}var Cg=["localhost","127.0.0.1","0:0:0:0:0:0:0:1","::1"];function $s(i){return Cg.indexOf(i)>=0}var Ub=["0.0.0.0","0:0:0:0:0:0:0:0","::"];function ci(i){return Ub.indexOf(i)>=0}function EB(i,t,e,n){if(e===1)return!1;if(e===2&&ci(t)){let o=/(\d+)\.(\d+)\.(\d+)/g.exec(n);if(o?.length===4&&parseInt(o[1])>=18)return!1}return i<1024}var YT=class{constructor(t,e,n){this.remoteAddress=t;this.localAddress=e;this._dispose=n;this._onDispose=new E;this.onDidDispose=this._onDispose.event}dispose(){return this._onDispose.fire(),this._onDispose.dispose(),this._dispose()}},Sg=class extends U{constructor(e,n){super();this.logService=e;this.configurationService=n;this._onTunnelOpened=this._register(new E);this.onTunnelOpened=this._onTunnelOpened.event;this._onTunnelClosed=this._register(new E);this.onTunnelClosed=this._onTunnelClosed.event;this._onAddedTunnelProvider=this._register(new E);this.onAddedTunnelProvider=this._onAddedTunnelProvider.event;this._tunnels=new Map;this._canElevate=!1;this._canChangeProtocol=!0;this._privacyOptions=[];this._factoryInProgress=new Set}get hasTunnelProvider(){return!!this._tunnelProvider}get defaultTunnelHost(){let e=this.configurationService.getValue("remote.localPortHost");return!e||e==="localhost"?"127.0.0.1":"0.0.0.0"}setTunnelProvider(e){return this._tunnelProvider=e,e?(this._onAddedTunnelProvider.fire(),{dispose:()=>{this._tunnelProvider=void 0,this._canElevate=!1,this._privacyOptions=[]}}):(this._canElevate=!1,this._privacyOptions=[],this._onAddedTunnelProvider.fire(),{dispose:()=>{}})}setTunnelFeatures(e){this._canElevate=e.elevation,this._privacyOptions=e.privacyOptions,this._canChangeProtocol=e.protocol}get canChangeProtocol(){return this._canChangeProtocol}get canElevate(){return this._canElevate}get canChangePrivacy(){return this._privacyOptions.length>0}get privacyOptions(){return this._privacyOptions}get tunnels(){return this.getTunnels()}async getTunnels(){let e=[],n=Array.from(this._tunnels.values());for(let o of n){let r=Array.from(o.values());for(let s of r){let a=await s.value;a&&typeof a!="string"&&e.push(a)}}return e}async dispose(){super.dispose();for(let e of this._tunnels.values()){for(let{value:n}of e.values())await n.then(o=>typeof o!="string"?o?.dispose():void 0);e.clear()}this._tunnels.clear()}setEnvironmentTunnel(e,n,o,r,s){this.addTunnelToMap(e,n,Promise.resolve({tunnelRemoteHost:e,tunnelRemotePort:n,localAddress:o,privacy:r,protocol:s,dispose:()=>Promise.resolve()}))}async getExistingTunnel(e,n){(ci(e)||$s(e))&&(e=Cg[0]);let o=this.getTunnelFromMap(e,n);if(o)return++o.refcount,o.value}openTunnel(e,n,o,r,s,a=!1,l,d){this.logService.trace(`ForwardedPorts: (TunnelService) openTunnel request for ${n}:${o} on local port ${s}.`);let c=this._tunnelProvider??e;if(!c)return;if(n||(n="localhost"),r||(r=this.defaultTunnelHost),this._tunnelProvider&&this._factoryInProgress.has(o)){this.logService.debug("ForwardedPorts: (TunnelService) Another call to create a tunnel with the same address has occurred before the last one completed. This call will be ignored.");return}let u=this.retainOrCreateTunnel(c,n,o,r,s,a,l,d);return u?u.then(m=>{if(m){if(typeof m=="string")return this.logService.trace("ForwardedPorts: (TunnelService) The tunnel provider returned an error when creating the tunnel."),this.removeEmptyOrErrorTunnelFromMap(n,o),m}else{this.logService.trace("ForwardedPorts: (TunnelService) New tunnel is undefined."),this.removeEmptyOrErrorTunnelFromMap(n,o);return}this.logService.trace("ForwardedPorts: (TunnelService) New tunnel established.");let g=this.makeTunnel(m);return(m.tunnelRemoteHost!==n||m.tunnelRemotePort!==o)&&this.logService.warn("ForwardedPorts: (TunnelService) Created tunnel does not match requirements of requested tunnel. Host or port mismatch."),l&&m.privacy!==l&&this.logService.warn("ForwardedPorts: (TunnelService) Created tunnel does not match requirements of requested tunnel. Privacy mismatch."),this._onTunnelOpened.fire(g),g}):(this.logService.trace("ForwardedPorts: (TunnelService) Tunnel was not created."),u)}makeTunnel(e){return{tunnelRemotePort:e.tunnelRemotePort,tunnelRemoteHost:e.tunnelRemoteHost,tunnelLocalPort:e.tunnelLocalPort,localAddress:e.localAddress,privacy:e.privacy,protocol:e.protocol,dispose:async()=>{this.logService.trace(`ForwardedPorts: (TunnelService) dispose request for ${e.tunnelRemoteHost}:${e.tunnelRemotePort} `);let n=this._tunnels.get(e.tunnelRemoteHost);if(n){let o=n.get(e.tunnelRemotePort);o&&(o.refcount--,await this.tryDisposeTunnel(e.tunnelRemoteHost,e.tunnelRemotePort,o))}}}}async tryDisposeTunnel(e,n,o){if(o.refcount<=0){this.logService.trace(`ForwardedPorts: (TunnelService) Tunnel is being disposed ${e}:${n}.`);let r=o.value.then(async s=>{s&&typeof s!="string"&&(await s.dispose(!0),this._onTunnelClosed.fire({host:s.tunnelRemoteHost,port:s.tunnelRemotePort}))});return this._tunnels.has(e)&&this._tunnels.get(e).delete(n),r}}async closeTunnel(e,n){this.logService.trace(`ForwardedPorts: (TunnelService) close request for ${e}:${n} `);let o=this._tunnels.get(e);if(o&&o.has(n)){let r=o.get(n);r.refcount=0,await this.tryDisposeTunnel(e,n,r)}}addTunnelToMap(e,n,o){this._tunnels.has(e)||this._tunnels.set(e,new Map),this._tunnels.get(e).set(n,{refcount:1,value:o})}async removeEmptyOrErrorTunnelFromMap(e,n){let o=this._tunnels.get(e);if(o){let r=o.get(n),s=r?await r.value:void 0;(!s||typeof s=="string")&&o.delete(n),o.size===0&&this._tunnels.delete(e)}}getTunnelFromMap(e,n){let o=[e];$s(e)?(o.push(...Cg),o.push(...Ub)):ci(e)&&o.push(...Ub);let r=o.map(s=>this._tunnels.get(s));for(let s of r){let a=s?.get(n);if(a)return a}}canTunnel(e){return!!fK(e)}createWithProvider(e,n,o,r,s,a,l){this.logService.trace(`ForwardedPorts: (TunnelService) Creating tunnel with provider ${n}:${o} on local port ${r}.`);let d=o;this._factoryInProgress.add(d);let c=r===void 0?o:r,u={elevationRequired:s?this.isPortPrivileged(c):!1},m={remoteAddress:{host:n,port:o},localAddressPort:r,privacy:a,public:a?a!=="private":void 0,protocol:l},g=e.forwardPort(m,u);return g?(this.addTunnelToMap(n,o,g),g.finally(()=>{this.logService.trace("ForwardedPorts: (TunnelService) Tunnel created by provider."),this._factoryInProgress.delete(d)})):this._factoryInProgress.delete(d),g}};Sg=D([C(0,ne),C(1,Gt)],Sg);var a0=class extends YT{},kB;(e=>{function i(n){return{remoteAddress:n.remoteAddress,localAddress:n.localAddress,public:!!n.public,privacy:n.privacy??(n.public?"public":"private"),protocol:n.protocol}}e.fromApiTunnel=i;function t(n){return{remoteAddress:{host:n.tunnelRemoteHost,port:n.tunnelRemotePort},localAddress:n.localAddress,public:n.privacy!=="constantPrivate"&&n.privacy!=="constantPrivate",privacy:n.privacy,protocol:n.protocol}}e.fromServiceTunnel=t})(kB||={});var Rd=R("IExtHostTunnelService"),Dd=class extends U{constructor(e,n,o){super();this.logService=o;this._showCandidatePort=()=>Promise.resolve(!0);this._extensionTunnels=new Map;this._onDidChangeTunnels=this._register(new E);this.onDidChangeTunnels=this._onDidChangeTunnels.event;this._providerHandleCounter=0;this._portAttributesProviders=new Map;this._proxy=e.getProxy(F.MainThreadTunnelService)}async openTunnel(e,n){this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) ${e.identifier.value} called openTunnel API for ${n.remoteAddress.host}:${n.remoteAddress.port}.`);let o=await this._proxy.$openTunnel(n,e.displayName);if(o){let r=new a0(o.remoteAddress,o.localAddress,()=>this._proxy.$closeTunnel(o.remoteAddress));return this._register(r),r}}async getTunnels(){return this._proxy.$getTunnels()}nextPortAttributesProviderHandle(){return this._providerHandleCounter++}registerPortsAttributesProvider(e,n){e.portRange===void 0&&e.commandPattern===void 0&&this.logService.error("PortAttributesProvider must specify either a portRange or a commandPattern");let o=this.nextPortAttributesProviderHandle();return this._portAttributesProviders.set(o,{selector:e,provider:n}),this._proxy.$registerPortsAttributesProvider(e,o),new xe(()=>{this._portAttributesProviders.delete(o),this._proxy.$unregisterPortsAttributesProvider(o)})}async $providePortAttributes(e,n,o,r,s){let a=[];for(let d of e){let c=this._portAttributesProviders.get(d);if(!c)return[];a.push(...await Promise.all(n.map(async u=>{let m;try{m=await c.provider.providePortAttributes({port:u,pid:o,commandLine:r},s)}catch{m=await c.provider.providePortAttributes(u,o,r,s)}return{providedAttributes:m,port:u}})))}let l=a.filter(d=>!!d.providedAttributes);return l.length>0?l.map(d=>({autoForwardAction:d.providedAttributes.autoForwardAction,port:d.port})):[]}async $registerCandidateFinder(e){}registerTunnelProvider(e,n){if(this._forwardPortProvider)throw new Error("A tunnel provider has already been registered. Only the first tunnel provider to be registered will be used.");this._forwardPortProvider=async(r,s)=>await e.provideTunnel(r,s,me.None)??void 0;let o=n.tunnelFeatures?{elevation:!!n.tunnelFeatures?.elevation,privacyOptions:n.tunnelFeatures?.privacyOptions,protocol:n.tunnelFeatures.protocol===void 0?!0:n.tunnelFeatures.protocol}:void 0;return this._proxy.$setTunnelProvider(o,!0),Promise.resolve(Q(()=>{this._forwardPortProvider=void 0,this._proxy.$setTunnelProvider(void 0,!1)}))}hasTunnelProvider(){return this._proxy.$hasTunnelProvider()}async setTunnelFactory(e,n){if(e){e.candidatePortSource!==void 0&&this._proxy.$setCandidatePortSource(e.candidatePortSource),e.showCandidatePort&&(this._showCandidatePort=e.showCandidatePort,this._proxy.$setCandidateFilter());let o=e.tunnelFactory??(n?this.makeManagedTunnelFactory(n):void 0);if(o){this._forwardPortProvider=o;let r=e.tunnelFeatures?.privacyOptions??[];e.tunnelFeatures?.public&&r.length===0&&(r=[{id:"private",label:p(3361,null),themeIcon:"lock"},{id:"public",label:p(3362,null),themeIcon:"eye"}]);let s=e.tunnelFeatures?{elevation:!!e.tunnelFeatures?.elevation,public:!!e.tunnelFeatures?.public,privacyOptions:r,protocol:!0}:void 0;this._proxy.$setTunnelProvider(s,!!e.tunnelFactory)}}else this._forwardPortProvider=void 0;return Q(()=>{this._forwardPortProvider=void 0})}makeManagedTunnelFactory(e){}async $closeTunnel(e,n){if(this._extensionTunnels.has(e.host)){let o=this._extensionTunnels.get(e.host);o.has(e.port)&&(n&&o.get(e.port).disposeListener.dispose(),await o.get(e.port).tunnel.dispose(),o.delete(e.port))}}async $onDidTunnelsChange(){this._onDidChangeTunnels.fire()}async $forwardPort(e,n){if(this._forwardPortProvider)try{this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Getting tunnel from provider.");let o=this._forwardPortProvider(e,n);if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Got tunnel promise from provider."),o!==void 0){let r=await o;if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Successfully awaited tunnel from provider."),r===void 0){this.logService.error("ForwardedPorts: (ExtHostTunnelService) Resolved tunnel is undefined");return}this._extensionTunnels.has(e.remoteAddress.host)||this._extensionTunnels.set(e.remoteAddress.host,new Map);let s=this._register(r.onDidDispose(()=>(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Extension fired tunnel's onDidDispose."),this._proxy.$closeTunnel(r.remoteAddress))));return this._extensionTunnels.get(e.remoteAddress.host).set(e.remoteAddress.port,{tunnel:r,disposeListener:s}),kB.fromApiTunnel(r)}else this.logService.trace("ForwardedPorts: (ExtHostTunnelService) Tunnel is undefined")}catch(o){if(this.logService.trace("ForwardedPorts: (ExtHostTunnelService) tunnel provider error"),o instanceof Error)return o.message}}async $applyCandidateFilter(e){let n=await Promise.all(e.map(r=>this._showCandidatePort(r.host,r.port,r.detail??""))),o=e.filter((r,s)=>n[s]);return this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) filtered from ${e.map(r=>r.port).join(", ")} to ${o.map(r=>r.port).join(", ")}`),o}};Dd=D([C(0,ae),C(1,Xe),C(2,ne)],Dd);function PB(i){return[...i.entries()]}function _B(i){return i?[...i.entries()]:[]}var _Me=R("ptyService");var hK={Backend:"workbench.contributions.terminal.processBackend"},l0=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()??""}};_t.add(hK.Backend,new l0);var DMe=R("localPtyService"),RMe=R("terminalLogService");var XT=class{constructor(t){this._callback=t;this._terminalBufferMap=new Map}dispose(){for(let t of this._terminalBufferMap.values())t.dispose()}startBuffering(t,e,n=5){let o=e(r=>{let s=Me(r)?r:r.data,a=this._terminalBufferMap.get(t);if(a){a.data.push(s);return}let l=setTimeout(()=>this.flushBuffer(t),n);a={data:[s],timeoutId:l,dispose:()=>{clearTimeout(l),this.flushBuffer(t),o.dispose()}},this._terminalBufferMap.set(t,a)});return o}stopBuffering(t){this._terminalBufferMap.get(t)?.dispose()}flushBuffer(t){let e=this._terminalBufferMap.get(t);e&&(this._terminalBufferMap.delete(t),this._callback(t,e.data.join("")))}};var wu=(i,t,e,n)=>{let o=t;return{enumerable:!0,configurable:!1,get(){return o},set(r){if(!e(o,r)){let s=o;o=r,i.listener?.(n(r,s))}}}},Tg=(i,t)=>i===t,Ad={range:(i,t)=>i===t?!0:!i||!t?!1:i.isEqual(t),label:Tg,description:Tg,sortText:Tg,busy:Tg,error:Tg,canResolveChildren:Tg,tags:(i,t)=>!(i.length!==t.length||i.some(e=>!t.find(n=>e.id===n.id)))},Eg=i=>t=>({op:4,update:i(t)}),vK=(i,t)=>({range:(()=>{let e,n=Eg(o=>({range:We.lift(G.from(o))}));return{enumerable:!0,configurable:!1,get(){return e},set(o){i.listener?.({op:6}),Ad.range(e,o)||(e=o,i.listener?.(n(o)))}}})(),label:wu(i,t,Ad.label,Eg(e=>({label:e}))),description:wu(i,void 0,Ad.description,Eg(e=>({description:e}))),sortText:wu(i,void 0,Ad.sortText,Eg(e=>({sortText:e}))),canResolveChildren:wu(i,!1,Ad.canResolveChildren,e=>({op:2,state:e})),busy:wu(i,!1,Ad.busy,Eg(e=>({busy:e}))),error:wu(i,void 0,Ad.error,Eg(e=>({error:ge.fromStrict(e)||null}))),tags:wu(i,[],Ad.tags,(e,n)=>({op:1,new:e.map(di.from),old:n.map(di.from)}))}),bK=i=>{let t=Ze.fromString(i.extId),e=new Za(t.controllerId,t.localId,i.label,b.revive(i.uri)||void 0);return e.range=G.to(i.range||void 0),e.description=i.description||void 0,e.sortText=i.sortText||void 0,e.tags=i.tags.map(n=>di.to({id:kS(n).tagId})),e},d0=i=>{let t;for(let e of i.tests){let n=bK(e.item);rm(n).parent=t,t=n}return t},Za=class i{constructor(t,e,n,o){if(e.includes("\0"))throw new Error(`Test IDs may not include the ${JSON.stringify(e)} symbol`);let r=UW(this,t);Object.defineProperties(this,{id:{value:e,enumerable:!0,writable:!1},uri:{value:o,enumerable:!0,writable:!1},parent:{enumerable:!1,get(){return r.parent instanceof wg?void 0:r.parent}},children:{value:OW(r,rm,i),enumerable:!0,writable:!1},...vK(r,n)})}},wg=class extends Za{constructor(e,n){super(e,e,n,void 0);this._isRoot=!0}},ZT=class extends DS{constructor(t,e,n){super({controllerId:t,getDocumentVersion:o=>o&&n.getDocument(o)?.version,getApiFor:rm,getChildren:o=>o.children,root:new wg(t,e),toITestItem:Hs.from})}};var eE=(e=>(e[e.Desktop=1]="Desktop",e[e.Web=2]="Web",e))(eE||{});function c0(i){let t=W.alloc(1);switch(i){case 0:t.writeUInt8(1,0);break;case 1:t.writeUInt8(2,0);break;case 2:t.writeUInt8(3,0);break}return t}function DB(i,t){if(i.byteLength!==1)return!1;switch(i.readUInt8(0)){case 1:return t===0;case 2:return t===1;case 3:return t===2;default:return!1}}var kg=class extends U{constructor(e,n,o){super();this.initData=n;this._onDidChangeTelemetryEnabled=this._register(new E);this.onDidChangeTelemetryEnabled=this._onDidChangeTelemetryEnabled.event;this._onDidChangeTelemetryConfiguration=this._register(new E);this.onDidChangeTelemetryConfiguration=this._onDidChangeTelemetryConfiguration.event;this._productConfig={usage:!0,error:!0};this._level=0;this._inLoggingOnlyMode=!1;this._telemetryLoggers=new Map;this._inLoggingOnlyMode=this.initData.environment.isExtensionTelemetryLoggingOnly;let r=n.remote.isRemote?"remoteExtHostTelemetry":e?"workerExtHostTelemetry":"extHostTelemetry";this._outputLogger=this._register(o.createLogger(r,{name:p(3359,null,this._inLoggingOnlyMode?" (Not Sent)":""),hidden:!0,group:GV}))}getTelemetryConfiguration(){return this._level===3}getTelemetryDetails(){return{isCrashEnabled:this._level>=1,isErrorsEnabled:this._productConfig.error?this._level>=2:!1,isUsageEnabled:this._productConfig.usage?this._level>=3:!1}}instantiateLogger(e,n,o){let r=this.getTelemetryDetails(),s=new Fb(n,o,e,this._outputLogger,this._inLoggingOnlyMode,this.getBuiltInCommonProperties(e),{isUsageEnabled:r.isUsageEnabled,isErrorsEnabled:r.isErrorsEnabled}),a=this._telemetryLoggers.get(e.identifier.value)??[];return this._telemetryLoggers.set(e.identifier.value,[...a,s]),s.apiTelemetryLogger}$initializeTelemetryLevel(e,n,o){this._level=e,this._productConfig=o??{usage:!0,error:!0}}getBuiltInCommonProperties(e){let n=Object.create(null);switch(n["common.extname"]=`${e.publisher}.${e.name}`,n["common.extversion"]=e.version,n["common.vscodemachineid"]=this.initData.telemetryInfo.machineId,n["common.vscodesessionid"]=this.initData.telemetryInfo.sessionId,n["common.vscodecommithash"]=this.initData.commit,n["common.sqmid"]=this.initData.telemetryInfo.sqmId,n["common.devDeviceId"]=this.initData.telemetryInfo.devDeviceId??this.initData.telemetryInfo.machineId,n["common.vscodeversion"]=this.initData.version,n["common.vscodereleasedate"]=this.initData.date,n["common.isnewappinstall"]=u0(this.initData.telemetryInfo.firstSessionDate),n["common.product"]=this.initData.environment.appHost,this.initData.uiKind){case 2:n["common.uikind"]="web";break;case 1:n["common.uikind"]="desktop";break;default:n["common.uikind"]="unknown"}return n["common.remotename"]=QV(this.initData.remote.authority,this.initData),this.initData.environment.isSessionsWindow&&(n["common.isAgentsWindow"]=!0),n}$onDidChangeTelemetryLevel(e){this._oldTelemetryEnablement=this.getTelemetryConfiguration(),this._level=e;let n=this.getTelemetryDetails();this._telemetryLoggers.forEach((o,r)=>{let s=o.filter(a=>!a.isDisposed);s.length===0?this._telemetryLoggers.delete(r):this._telemetryLoggers.set(r,s)}),this._telemetryLoggers.forEach(o=>{for(let r of o)r.updateTelemetryEnablements(n.isUsageEnabled,n.isErrorsEnabled)}),this._oldTelemetryEnablement!==this.getTelemetryConfiguration()&&this._onDidChangeTelemetryEnabled.fire(this.getTelemetryConfiguration()),this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails())}onExtensionError(e,n){let r=this._telemetryLoggers.get(e.value)?.filter(a=>!a.isDisposed);if(!r)return this._telemetryLoggers.delete(e.value),!1;let s=!1;for(let a of r)a.ignoreUnhandledExtHostErrors||(a.logError(n),s=!0);return s}};kg=D([C(1,Xe),C(2,Zo)],kg);var Fb=class{constructor(t,e,n,o,r,s,a){this._extension=n;this._logger=o;this._inLoggingOnlyMode=r;this._commonProperties=s;this._onDidChangeEnableStates=new E;this.ignoreUnhandledExtHostErrors=e?.ignoreUnhandledErrors??!1,this._ignoreBuiltinCommonProperties=e?.ignoreBuiltInCommonProperties??!1,this._additionalCommonProperties=e?.additionalCommonProperties,this._sender=t,this._telemetryEnablements={isUsageEnabled:a.isUsageEnabled,isErrorsEnabled:a.isErrorsEnabled}}static validateSender(t){if(typeof t!="object")throw new TypeError("TelemetrySender argument is invalid");if(typeof t.sendEventData!="function")throw new TypeError("TelemetrySender.sendEventData must be a function");if(typeof t.sendErrorData!="function")throw new TypeError("TelemetrySender.sendErrorData must be a function");if(typeof t.flush<"u"&&typeof t.flush!="function")throw new TypeError("TelemetrySender.flush must be a function or undefined")}updateTelemetryEnablements(t,e){this._apiObject&&(this._telemetryEnablements={isUsageEnabled:t,isErrorsEnabled:e},this._onDidChangeEnableStates.fire(this._apiObject))}mixInCommonPropsAndCleanData(t){let e=t.properties?t.properties??{}:t;return e=UA(e,[]),this._additionalCommonProperties&&(e=Jo(e,this._additionalCommonProperties)),this._ignoreBuiltinCommonProperties||(e=Jo(e,this._commonProperties)),t.properties?t.properties=e:t=e,t}logEvent(t,e){this._sender&&(this._extension.publisher==="vscode"?t=this._extension.name+"/"+t:t=this._extension.identifier.value+"/"+t,e=this.mixInCommonPropsAndCleanData(e||{}),this._inLoggingOnlyMode||this._sender?.sendEventData(t,e),this._logger.trace(t,e))}logUsage(t,e){this._telemetryEnablements.isUsageEnabled&&this.logEvent(t,e)}logError(t,e){if(!(!this._telemetryEnablements.isErrorsEnabled||!this._sender))if(typeof t=="string")this.logEvent(t,e);else{let n={name:t.name,message:t.message,stack:t.stack,cause:t.cause},o=UA(n,[]),r=new Error(typeof o.message=="string"?o.message:void 0,{cause:o.cause});r.stack=typeof o.stack=="string"?o.stack:void 0,r.name=typeof o.name=="string"?o.name:"unknown",e=this.mixInCommonPropsAndCleanData(e||{}),this._inLoggingOnlyMode||this._sender.sendErrorData(r,e),this._logger.trace("exception",e)}}get apiTelemetryLogger(){if(!this._apiObject){let t=this,e={logUsage:t.logUsage.bind(t),get isUsageEnabled(){return t._telemetryEnablements.isUsageEnabled},get isErrorsEnabled(){return t._telemetryEnablements.isErrorsEnabled},logError:t.logError.bind(t),dispose:t.dispose.bind(t),onDidChangeEnableStates:t._onDidChangeEnableStates.event.bind(t)};this._apiObject=Object.freeze(e)}return this._apiObject}get isDisposed(){return!this._sender}dispose(){if(this._sender?.flush){let t=this._sender;this._sender=void 0,Promise.resolve(t.flush()).then(t=void 0),this._apiObject=void 0}else this._sender=void 0;this._onDidChangeEnableStates.dispose()}};function u0(i){let t=Date.now()-new Date(i).getTime();return isNaN(t)?!1:t<1e3*60*60*24}var Md=R("IExtHostTelemetry");var Pg=class{constructor(t,e,n){this._commands=new Map;this._apiCommands=new Map;this.#e=t.getProxy(F.MainThreadCommands),this._logService=e,this.#n=n,this.#t=t.getProxy(F.MainThreadTelemetry),this.converter=new p0(this,o=>{let r=this._apiCommands.get(o);return r?.result===Re.Void?r:void 0},e),this._argumentProcessors=[{processArgument(o){return St(o)}},{processArgument(o){return ds(o,function(r){if(We.isIRange(r))return G.to(r);if(On.isIPosition(r))return gt.to(r);if(We.isIRange(r.range)&&b.isUri(r.uri))return vo.to(r);if(r instanceof W)return r.buffer.buffer;if(!Array.isArray(r))return r})}}]}#e;#t;#n;registerArgumentProcessor(t){this._argumentProcessors.push(t)}registerApiCommand(t){let e=this.registerCommand(!1,t.id,async(...n)=>{let o=t.args.map((s,a)=>{if(!s.validate(n[a]))throw new Error(`Invalid argument '${s.name}' when running '${t.id}', received: ${typeof n[a]=="object"?JSON.stringify(n[a],null,"	"):n[a]} `);return s.convert(n[a])}),r=await this.executeCommand(t.internalId,...o);return t.result.convert(r,n,this.converter)},void 0,{description:t.description,args:t.args,returns:t.result.description});return this._apiCommands.set(t.id,t),new xe(()=>{e.dispose(),this._apiCommands.delete(t.id)})}registerCommand(t,e,n,o,r,s){if(this._logService.trace("ExtHostCommands#registerCommand",e),!e.trim().length)throw new Error("invalid id");if(this._commands.has(e))throw new Error(`command '${e}' already exists`);return this._commands.set(e,{callback:n,thisArg:o,metadata:r,extension:s}),t&&this.#e.$registerCommand(e),new xe(()=>{this._commands.delete(e)&&t&&this.#e.$unregisterCommand(e)})}executeCommand(t,...e){return this._logService.trace("ExtHostCommands#executeCommand",t),this._doExecuteCommand(t,e,!0)}async _doExecuteCommand(t,e,n){if(this._commands.has(t))return this.#e.$fireCommandActivationEvent(t),this._executeContributedCommand(t,e,!1);{let o=!1,r=ds(e,function(s){if(s instanceof De)return gt.from(s);if(s instanceof be)return G.from(s);if(s instanceof tn)return vo.from(s);if(co.isNotebookRange(s))return Wr.from(s);if(s instanceof ArrayBuffer)return o=!0,W.wrap(new Uint8Array(s));if(s instanceof Uint8Array)return o=!0,W.wrap(s);if(s instanceof W)return o=!0,s;if(!Array.isArray(s))return s});try{let s=await this.#e.$executeCommand(t,o?new Yt(r):r,n);return St(s)}catch(s){if(s instanceof Error&&s.message==="$executeCommand:retry")return this._doExecuteCommand(t,e,!1);throw s}}}async _executeContributedCommand(t,e,n){let o=this._commands.get(t);if(!o)throw new Error("Unknown command");let{callback:r,thisArg:s,metadata:a}=o;if(a?.args)for(let d=0;d<a.args.length;d++)try{YP(e[d],a.args[d].constraint)}catch{throw new Error(`Running the contributed command: '${t}' failed. Illegal argument '${a.args[d].name}' - ${a.args[d].description}`)}let l=Jt.create();try{return await r.apply(s,e)}catch(d){if(t===this.converter.delegatingCommandId){let c=this.converter.getActualCommand(...e);c&&(t=c.command)}if(Kt(d)||this._logService.error(d,t,o.extension?.identifier),!n)throw d;if(o.extension?.identifier){let c=this.#n.onExtensionError(o.extension.identifier,d);this._logService.trace("forwarded error to extension?",c,o.extension?.identifier)}throw new class extends Error{constructor(){super(To(d));this.id=t;this.source=o.extension?.displayName??o.extension?.name}}}finally{this._reportTelemetry(o,t,l.elapsed())}}_reportTelemetry(t,e,n){t.extension&&(e.startsWith("code.copilot.logStructured")||this.#t.$publicLog2("Extension:ActionExecuted",{extensionId:t.extension.identifier.value,id:new ql(e),duration:n}))}$executeContributedCommand(t,...e){this._logService.trace("ExtHostCommands#$executeContributedCommand",t);let n=this._commands.get(t);return n?(e=e.map(o=>this._argumentProcessors.reduce((r,s)=>s.processArgument(r,n.extension),o)),this._executeContributedCommand(t,e,!0)):Promise.reject(new Error(`Contributed command '${t}' does not exist.`))}getCommands(t=!1){return this._logService.trace("ExtHostCommands#getCommands",t),this.#e.$getCommands().then(e=>(t&&(e=e.filter(n=>n[0]!=="_")),e))}$getContributedCommandMetadata(){let t=Object.create(null);for(let[e,n]of this._commands){let{metadata:o}=n;o&&(t[e]=o)}return Promise.resolve(t)}};Pg=D([C(0,ae),C(1,ne),C(2,Md)],Pg);var Fn=R("IExtHostCommands"),p0=class{constructor(t,e,n){this._commands=t;this._lookupApiCommand=e;this._logService=n;this.delegatingCommandId=`__vsc${Pe()}`;this._cache=new Map;this._cachIdPool=0;this._commands.registerCommand(!0,this.delegatingCommandId,this._executeConvertedCommand,this)}toInternal(t,e){if(!t)return;let n={$ident:void 0,id:t.command,title:t.title,tooltip:t.tooltip};if(!t.command)return n;let o=this._lookupApiCommand(t.command);if(o)n.id=o.internalId,n.arguments=o.args.map((r,s)=>r.convert(t.arguments&&t.arguments[s]));else if(ml(t.arguments)){let r=`${t.command} /${++this._cachIdPool}`;this._cache.set(r,t),e.add(Q(()=>{this._cache.delete(r),this._logService.trace("CommandsConverter#DISPOSE",r)})),n.$ident=r,n.id=this.delegatingCommandId,n.arguments=[r],this._logService.trace("CommandsConverter#CREATE",t.command,r)}return n}fromInternal(t){return typeof t.$ident=="string"?this._cache.get(t.$ident):{command:t.id,title:t.title,arguments:t.arguments}}getActualCommand(...t){return this._cache.get(t[0])}_executeConvertedCommand(...t){let e=this.getActualCommand(...t);return this._logService.trace("CommandsConverter#EXECUTE",t[0],e?e.command:"MISSING"),e?this._commands.executeCommand(e.command,...e.arguments||[]):Promise.reject(`Actual command not found, wanted to execute ${t[0]}`)}},Z=class i{constructor(t,e,n,o){this.name=t;this.description=e;this.validate=n;this.convert=o}static{this.Uri=new i("uri","Uri of a text document",t=>b.isUri(t),t=>t)}static{this.Position=new i("position","A position in a text document",t=>De.isPosition(t),gt.from)}static{this.Range=new i("range","A range in a text document",t=>be.isRange(t),G.from)}static{this.Selection=new i("selection","A selection in a text document",t=>Zn.isSelection(t),Do.from)}static{this.Number=new i("number","",t=>typeof t=="number",t=>t)}static{this.String=new i("string","",t=>typeof t=="string",t=>t)}static Arr(t){return new i(`${t.name}_array`,`Array of ${t.name}, ${t.description}`,e=>Array.isArray(e)&&e.every(n=>t.validate(n)),e=>e.map(n=>t.convert(n)))}static{this.CallHierarchyItem=new i("item","A call hierarchy item",t=>t instanceof cd,Ga.from)}static{this.TypeHierarchyItem=new i("item","A type hierarchy item",t=>t instanceof md,Ja.from)}static{this.TestItem=new i("testItem","A VS Code TestItem",t=>t instanceof Za,Hs.from)}static{this.TestProfile=new i("testProfile","A VS Code test profile",t=>t instanceof Cm,DM.from)}optional(){return new i(this.name,`(optional) ${this.description}`,t=>t==null||this.validate(t),t=>t===void 0?void 0:t===null?null:this.convert(t))}with(t,e){return new i(t??this.name,e??this.description,this.validate,this.convert)}},Re=class i{constructor(t,e){this.description=t;this.convert=e}static{this.Void=new i("no result",t=>t)}},Le=class{constructor(t,e,n,o,r){this.id=t;this.internalId=e;this.description=n;this.args=o;this.result=r}};var Ro=R("IExtHostTerminalService"),Pu=class extends U{constructor(e,n,o,r){super();this._proxy=e;this._id=n;this._creationOptions=o;this._name=r;this._disposed=!1;this._state={isInteractedWith:!1,shell:void 0};this.isOpen=!1;this._onWillDispose=this._register(new E);this.onWillDispose=this._onWillDispose.event;this._creationOptions=Object.freeze(this._creationOptions),this._pidPromise=new Promise(a=>this._pidPromiseComplete=a);let s=this;this.value={get name(){return s._name||""},get processId(){return s._pidPromise},get creationOptions(){return s._creationOptions},get exitStatus(){return s._exitStatus},get state(){return s._state},get selection(){return s._selection},get shellIntegration(){return s.shellIntegration},sendText(a,l=!0){s._checkDisposed(),s._proxy.$sendText(s._id,a,l)},show(a){s._checkDisposed(),s._proxy.$show(s._id,a)},hide(){s._checkDisposed(),s._proxy.$hide(s._id)},dispose(){s._disposed||(s._disposed=!0,s._proxy.$dispose(s._id))},get dimensions(){if(!(s._cols===void 0||s._rows===void 0))return{columns:s._cols,rows:s._rows}}}}dispose(){this._onWillDispose.fire(),super.dispose()}async create(e,n){if(typeof this._id!="string")throw new Error("Terminal has already been created");await this._proxy.$createTerminal(this._id,{name:e.name,shellPath:e.shellPath??void 0,shellArgs:e.shellArgs??void 0,cwd:e.cwd??n?.cwd??void 0,env:e.env??void 0,icon:AB(e.iconPath)??void 0,color:Fp.isThemeColor(e.color)?e.color.id:void 0,initialText:e.message??void 0,strictEnv:e.strictEnv??void 0,hideFromUser:e.hideFromUser??void 0,forceShellIntegration:n?.forceShellIntegration??void 0,isFeatureTerminal:n?.isFeatureTerminal??void 0,isExtensionOwnedTerminal:!0,useShellEnvironment:n?.useShellEnvironment??void 0,location:n?.location||this._serializeParentTerminal(e.location,n?.resolvedExtHostIdentifier),isTransient:e.isTransient??void 0,shellIntegrationNonce:e.shellIntegrationNonce??void 0,titleTemplate:e.titleTemplate??void 0})}async createExtensionTerminal(e,n,o,r,s,a,l){if(typeof this._id!="string")throw new Error("Terminal has already been created");if(await this._proxy.$createTerminal(this._id,{name:this._name,isExtensionCustomPtyTerminal:!0,icon:r,color:Fp.isThemeColor(s)?s.id:void 0,location:n?.location||this._serializeParentTerminal(e,o),isTransient:!0,shellIntegrationNonce:a??void 0,titleTemplate:l??void 0}),typeof this._id=="string")throw new Error("Terminal creation failed");return this._id}_serializeParentTerminal(e,n){return typeof e=="object"?Gn(e,{parentTerminal:!0})&&e.parentTerminal&&n?{parentTerminal:n}:Gn(e,{viewColumn:!0})?{viewColumn:$t.from(e.viewColumn),preserveFocus:e.preserveFocus}:void 0:e}_checkDisposed(){if(this._disposed)throw new Error("Terminal has already been disposed")}set name(e){this._name=e}setExitStatus(e,n){this._exitStatus=Object.freeze({code:e,reason:n})}setDimensions(e,n){return e===this._cols&&n===this._rows||e===0||n===0?!1:(this._cols=e,this._rows=n,!0)}setInteractedWith(){return this._state.isInteractedWith?!1:(this._state={...this._state,isInteractedWith:!0},!0)}setShellType(e){return this._state.shell!==e?(this._state={...this._state,shell:e},!0):!1}setSelection(e){this._selection=e}_setProcessId(e){this._pidPromiseComplete?(this._pidPromiseComplete(e),this._pidPromiseComplete=void 0):this._pidPromise.then(n=>{n!==e&&(this._pidPromise=Promise.resolve(e))})}},Hb=class{constructor(t){this._pty=t;this.id=0;this.shouldPersist=!1;this._onProcessData=new E;this.onProcessData=this._onProcessData.event;this._onProcessReady=new E;this._onDidChangeProperty=new E;this.onDidChangeProperty=this._onDidChangeProperty.event;this._onProcessExit=new E;this.onProcessExit=this._onProcessExit.event}get onProcessReady(){return this._onProcessReady.event}refreshProperty(t){throw new Error(`refreshProperty is not suppported in extension owned terminals. property: ${t}`)}updateProperty(t,e){throw new Error(`updateProperty is not suppported in extension owned terminals. property: ${t}, value: ${e}`)}async start(){}shutdown(){this._pty.close()}input(t){this._pty.handleInput?.(t)}sendSignal(t){}resize(t,e){this._pty.setDimensions?.({columns:t,rows:e})}clearBuffer(){}async processBinary(t){}acknowledgeDataEvent(t){}async setUnicodeVersion(t){}getInitialCwd(){return Promise.resolve("")}getCwd(){return Promise.resolve("")}startSendingEvents(t){this._pty.onDidWrite(e=>this._onProcessData.fire(e)),this._pty.onDidClose?.((e=void 0)=>{this._onProcessExit.fire(e===void 0?void 0:e)}),this._pty.onDidOverrideDimensions?.(e=>{e&&this._onDidChangeProperty.fire({type:"overrideDimensions",value:{cols:e.columns,rows:e.rows}})}),this._pty.onDidChangeName?.(e=>{this._onDidChangeProperty.fire({type:"title",value:e})}),this._pty.open(t||void 0),t&&this._pty.setDimensions?.(t),this._onProcessReady.fire({pid:-1,cwd:"",windowsPty:void 0})}},yK=1,ku=class extends U{constructor(e,n,o){super();this._extHostCommands=n;this._terminals=[];this._terminalProcesses=new Map;this._terminalProcessDisposables={};this._extensionTerminalAwaitingStart={};this._getTerminalPromises={};this._environmentVariableCollections=new Map;this._lastQuickFixCommands=this._register(new cn);this._linkProviders=new Set;this._completionProviders=new Map;this._profileProviders=new Map;this._quickFixProviders=new Map;this._terminalLinkCache=new Map;this._terminalLinkCancellationSource=new Map;this._onDidCloseTerminal=new E;this.onDidCloseTerminal=this._onDidCloseTerminal.event;this._onDidOpenTerminal=new E;this.onDidOpenTerminal=this._onDidOpenTerminal.event;this._onDidChangeActiveTerminal=new E;this.onDidChangeActiveTerminal=this._onDidChangeActiveTerminal.event;this._onDidChangeTerminalDimensions=new E;this.onDidChangeTerminalDimensions=this._onDidChangeTerminalDimensions.event;this._onDidChangeTerminalState=new E;this.onDidChangeTerminalState=this._onDidChangeTerminalState.event;this._onDidChangeShell=new E;this.onDidChangeShell=this._onDidChangeShell.event;this._onDidWriteTerminalData=new E({onWillAddFirstListener:()=>this._proxy.$startSendingDataEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingDataEvents()});this.onDidWriteTerminalData=this._onDidWriteTerminalData.event;this._onDidExecuteCommand=new E({onWillAddFirstListener:()=>this._proxy.$startSendingCommandEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingCommandEvents()});this.onDidExecuteTerminalCommand=this._onDidExecuteCommand.event;this._proxy=o.getProxy(F.MainThreadTerminalService),this._bufferer=new XT(this._proxy.$sendProcessData),this._proxy.$registerProcessSupport(e),this._extHostCommands.registerArgumentProcessor({processArgument:r=>{let s=a=>this.getTerminalById(a.instanceId)?.value;switch(r?.$mid){case 15:return s(r);default:{if(Array.isArray(r))for(let a=0;a<r.length&&r[a].$mid===15;a++)r[a]=s(r[a]);return r}}}}),this._register({dispose:()=>{for(let[r,s]of this._terminalProcesses)s.shutdown(!0)}})}get activeTerminal(){return this._activeTerminal?.value}get terminals(){return this._terminals.map(e=>e.value)}getDefaultShell(e){return(e?this._defaultAutomationProfile:this._defaultProfile)?.path||""}getDefaultShellArgs(e){return(e?this._defaultAutomationProfile:this._defaultProfile)?.args||[]}createExtensionTerminal(e,n){let o=new Pu(this._proxy,Pe(),e,e.name),r=new Hb(e.pty);return o.createExtensionTerminal(e.location,n,this._serializeParentTerminal(e,n).resolvedExtHostIdentifier,AB(e.iconPath),IK(e.color),e.shellIntegrationNonce,e.titleTemplate).then(s=>{let a=this._setupExtHostProcessListeners(s,r);this._terminalProcessDisposables[s]=a}),this._terminals.push(o),o.value}_serializeParentTerminal(e,n){if(n=n||{},e.location&&typeof e.location=="object"&&Gn(e.location,{parentTerminal:!0})){let o=e.location.parentTerminal;if(o){let r=this._terminals.find(s=>s.value===o);r&&(n.resolvedExtHostIdentifier=r._id)}}else e.location&&typeof e.location!="object"?n.location=e.location:n.location&&typeof n.location=="object"&&Gn(n.location,{splitActiveTerminal:!0})&&(n.location={splitActiveTerminal:!0});return n}attachPtyToTerminal(e,n){if(!this.getTerminalById(e))throw new Error(`Cannot resolve terminal with id ${e} for virtual process`);let r=new Hb(n),s=this._setupExtHostProcessListeners(e,r);this._terminalProcessDisposables[e]=s}async $acceptActiveTerminalChanged(e){let n=this._activeTerminal;if(e===null){this._activeTerminal=void 0,n!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal);return}let o=this.getTerminalById(e);o&&(this._activeTerminal=o,n!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal.value))}async $acceptTerminalProcessData(e,n){let o=this.getTerminalById(e);o&&this._onDidWriteTerminalData.fire({terminal:o.value,data:n})}async $acceptTerminalDimensions(e,n,o){let r=this.getTerminalById(e);r&&r.setDimensions(n,o)&&this._onDidChangeTerminalDimensions.fire({terminal:r.value,dimensions:r.value.dimensions})}async $acceptDidExecuteCommand(e,n){let o=this.getTerminalById(e);o&&this._onDidExecuteCommand.fire({terminal:o.value,...n})}async $acceptTerminalMaximumDimensions(e,n,o){this._terminalProcesses.get(e)?.resize(n,o)}async $acceptTerminalTitleChange(e,n){let o=this.getTerminalById(e);o&&(o.name=n)}async $acceptTerminalClosed(e,n,o){this._terminalLinkCache.delete(e);let r=this._terminalLinkCancellationSource.get(e);r&&(this._terminalLinkCancellationSource.delete(e),r.dispose(!0));let s=this._getTerminalObjectIndexById(this._terminals,e);if(s!==null){let a=this._terminals.splice(s,1)[0];a.setExitStatus(n,o),this._onDidCloseTerminal.fire(a.value)}}$acceptTerminalOpened(e,n,o,r){if(n){let l=this._getTerminalObjectIndexById(this._terminals,n);if(l!==null){this._terminals[l]._id=e,this._onDidOpenTerminal.fire(this.terminals[l]),this._terminals[l].isOpen=!0;return}}let s={name:r.name,shellPath:r.executable,shellArgs:r.args,cwd:typeof r.cwd=="string"?r.cwd:b.revive(r.cwd),env:r.env,hideFromUser:r.hideFromUser,titleTemplate:r.titleTemplate},a=new Pu(this._proxy,e,s,o);this._terminals.push(a),this._onDidOpenTerminal.fire(a.value),a.isOpen=!0}async $acceptTerminalProcessId(e,n){this.getTerminalById(e)?._setProcessId(n)}async $startExtensionTerminal(e,n){let o=this.getTerminalById(e);if(!o)return{message:p(3360,null,e)};o.isOpen||await new Promise(s=>{let a=this.onDidOpenTerminal(async l=>{l===o.value&&(a.dispose(),s())})});let r=this._terminalProcesses.get(e);r?r.startSendingEvents(n):this._extensionTerminalAwaitingStart[e]={initialDimensions:n}}_setupExtHostProcessListeners(e,n){let o=new z;o.add(n.onProcessReady(s=>this._proxy.$sendProcessReady(e,s.pid,s.cwd,s.windowsPty))),o.add(n.onDidChangeProperty(s=>this._proxy.$sendProcessProperty(e,s))),this._bufferer.startBuffering(e,n.onProcessData),o.add(n.onProcessExit(s=>this._onProcessExit(e,s))),this._terminalProcesses.set(e,n);let r=this._extensionTerminalAwaitingStart[e];return r&&n instanceof Hb&&(n.startSendingEvents(r.initialDimensions),delete this._extensionTerminalAwaitingStart[e]),o}$acceptProcessAckDataEvent(e,n){this._terminalProcesses.get(e)?.acknowledgeDataEvent(n)}$acceptProcessInput(e,n){this._terminalProcesses.get(e)?.input(n)}$acceptTerminalInteraction(e){let n=this.getTerminalById(e);n?.setInteractedWith()&&this._onDidChangeTerminalState.fire(n.value)}$acceptTerminalSelection(e,n){this.getTerminalById(e)?.setSelection(n)}$acceptProcessResize(e,n,o){try{this._terminalProcesses.get(e)?.resize(n,o)}catch(r){if(r.code!=="EPIPE"&&r.code!=="ERR_IPC_CHANNEL_CLOSED")throw r}}$acceptProcessShutdown(e,n){this._terminalProcesses.get(e)?.shutdown(n)}$acceptProcessRequestInitialCwd(e){this._terminalProcesses.get(e)?.getInitialCwd().then(n=>this._proxy.$sendProcessProperty(e,{type:"initialCwd",value:n}))}$acceptProcessRequestCwd(e){this._terminalProcesses.get(e)?.getCwd().then(n=>this._proxy.$sendProcessProperty(e,{type:"cwd",value:n}))}$acceptProcessRequestLatency(e){return Promise.resolve(e)}registerProfileProvider(e,n,o){if(this._profileProviders.has(n))throw new Error(`Terminal profile provider "${n}" already registered`);return this._profileProviders.set(n,{provider:o,extension:e}),this._proxy.$registerProfileProvider(n,e.identifier.value),new xe(()=>{this._profileProviders.delete(n),this._proxy.$unregisterProfileProvider(n)})}registerTerminalCompletionProvider(e,n,...o){if(this._completionProviders.has(e.identifier.value))throw new Error(`Terminal completion provider "${e.identifier.value}" already registered`);return this._completionProviders.set(e.identifier.value,n),this._proxy.$registerCompletionProvider(e.identifier.value,e.identifier.value,...o),new xe(()=>{this._completionProviders.delete(e.identifier.value),this._proxy.$unregisterCompletionProvider(e.identifier.value)})}async $provideTerminalCompletions(e,n){let o=new ke().token;if(o.isCancellationRequested||!this.activeTerminal)return;let r=this._completionProviders.get(e);if(!r)return;let s=await r.provideTerminalCompletions(this.activeTerminal,n,o);if(s==null)return;let a=!Ce||this.activeTerminal.state?.shell==="gitbash"?"/":"\\";return UM.from(s,a)}$acceptTerminalShellType(e,n){let o=this.getTerminalById(e);o?.setShellType(n)&&this._onDidChangeTerminalState.fire(o.value)}registerTerminalQuickFixProvider(e,n,o){if(this._quickFixProviders.has(e))throw new Error(`Terminal quick fix provider "${e}" is already registered`);return this._quickFixProviders.set(e,o),this._proxy.$registerQuickFixProvider(e,n),new xe(()=>{this._quickFixProviders.delete(e),this._proxy.$unregisterQuickFixProvider(e)})}async $provideTerminalQuickFixes(e,n){let o=new ke().token;if(o.isCancellationRequested)return;let r=this._quickFixProviders.get(e);if(!r)return;let s=await r.provideTerminalQuickFixes(n,o);if(s===null||Array.isArray(s)&&s.length===0)return;let a=new z;if(this._lastQuickFixCommands.value=a,!Array.isArray(s))return s?LT.from(s,this._extHostCommands.converter,a):void 0;let l=[];for(let d of s){let c=LT.from(d,this._extHostCommands.converter,a);c&&l.push(c)}return l}async $createContributedProfileTerminal(e,n){let o=new ke().token,r=this._profileProviders.get(e);if(!r)throw new Error(`No terminal profile provider registered for id "${e}"`);let s=await r.provider.provideTerminalProfile(o);if(o.isCancellationRequested)return;if(s&&!Gn(s,{options:!0})&&(s={options:s}),!s||!Gn(s,{options:!0}))throw new Error(`No terminal profile options provided for id "${e}"`);let a=Oe(r.extension,"terminalTitle");!a&&s.options.titleTemplate!==void 0&&(console.error(`[${r.extension.identifier.value}] \`titleTemplate\` returned from TerminalProfileProvider is ignored because the \`terminalTitle\` proposed API is not enabled.`),s={options:{...s.options,titleTemplate:void 0}}),!a&&n.titleTemplate!==void 0&&console.error(`[${r.extension.identifier.value}] \`titleTemplate\` passed to createContributedTerminalProfile is ignored because the \`terminalTitle\` proposed API is not enabled.`);let l=a&&n.titleTemplate&&!s.options.titleTemplate?{...s.options,titleTemplate:n.titleTemplate}:s.options;if(Gn(l,{pty:!0})){this.createExtensionTerminal(l,n);return}this.createTerminalFromOptions(l,n)}registerLinkProvider(e){return this._linkProviders.add(e),this._linkProviders.size===1&&this._proxy.$startLinkProvider(),new xe(()=>{this._linkProviders.delete(e),this._linkProviders.size===0&&this._proxy.$stopLinkProvider()})}async $provideLinks(e,n){let o=this.getTerminalById(e);if(!o)return[];this._terminalLinkCache.delete(e),this._terminalLinkCancellationSource.get(e)?.dispose(!0);let s=new ke;this._terminalLinkCancellationSource.set(e,s);let a=[],l={terminal:o.value,line:n},d=[];for(let m of this._linkProviders)d.push(Jr.withAsyncBody(async g=>{let h=s.token.onCancellationRequested(()=>g({provider:m,links:[]}));try{let f=await m.provideTerminalLinks(l,s.token)||[];s.token.isCancellationRequested||g({provider:m,links:f})}finally{h.dispose()}}));let c=await Promise.all(d);if(s.token.isCancellationRequested)return[];let u=new Map;for(let m of c)m&&m.links.length>0&&a.push(...m.links.map(g=>{let h={id:yK++,startIndex:g.startIndex,length:g.length,label:g.tooltip};return u.set(h.id,{provider:m.provider,link:g}),h}));return this._terminalLinkCache.set(e,u),a}$activateLink(e,n){let o=this._terminalLinkCache.get(e)?.get(n);o&&o.provider.handleTerminalLink(o.link)}_onProcessExit(e,n){this._bufferer.stopBuffering(e),this._terminalProcesses.delete(e),delete this._extensionTerminalAwaitingStart[e];let o=this._terminalProcessDisposables[e];o&&(o.dispose(),delete this._terminalProcessDisposables[e]),this._proxy.$sendProcessExit(e,n)}getTerminalById(e){return this._getTerminalObjectById(this._terminals,e)}getTerminalIdByApiObject(e){let n=this._terminals.findIndex(o=>o.value===e);return n>=0?n:null}_getTerminalObjectById(e,n){let o=this._getTerminalObjectIndexById(e,n);return o!==null?e[o]:null}_getTerminalObjectIndexById(e,n){let o=e.findIndex(r=>r._id===n);return o>=0?o:null}getEnvironmentVariableCollection(e){let n=this._environmentVariableCollections.get(e.identifier.value);return n||(n=this._register(new tE),this._setEnvironmentVariableCollection(e.identifier.value,n)),n.getScopedEnvironmentVariableCollection(void 0)}_syncEnvironmentVariableCollection(e,n){let o=PB(n.map),r=_B(n.descriptionMap);this._proxy.$setEnvironmentVariableCollection(e,n.persistent,o.length===0?void 0:o,r)}$initEnvironmentVariableCollections(e){e.forEach(n=>{let o=n[0],r=this._register(new tE(n[1]));this._setEnvironmentVariableCollection(o,r)})}$acceptDefaultProfile(e,n){let o=this._defaultProfile;this._defaultProfile=e,this._defaultAutomationProfile=n,o?.path!==e.path&&this._onDidChangeShell.fire(e.path)}_setEnvironmentVariableCollection(e,n){this._environmentVariableCollections.set(e,n),this._register(n.onDidChangeCollection(()=>{this._syncEnvironmentVariableCollection(e,n)}))}};ku=D([C(1,Fn),C(2,ae)],ku);var tE=class extends U{constructor(e){super();this.map=new Map;this.scopedCollections=new Map;this.descriptionMap=new Map;this._persistent=!0;this._onDidChangeCollection=this._register(new E);this.map=new Map(e)}get persistent(){return this._persistent}set persistent(e){this._persistent=e,this._onDidChangeCollection.fire()}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}getScopedEnvironmentVariableCollection(e){let n=this.getScopeKey(e),o=this.scopedCollections.get(n);return o||(o=new m0(this,e),this.scopedCollections.set(n,o),this._register(o.onDidChangeCollection(()=>this._onDidChangeCollection.fire()))),o}replace(e,n,o,r){this._setIfDiffers(e,{value:n,type:1,options:o??{applyAtProcessCreation:!0},scope:r})}append(e,n,o,r){this._setIfDiffers(e,{value:n,type:2,options:o??{applyAtProcessCreation:!0},scope:r})}prepend(e,n,o,r){this._setIfDiffers(e,{value:n,type:3,options:o??{applyAtProcessCreation:!0},scope:r})}_setIfDiffers(e,n){if(n.options&&n.options.applyAtProcessCreation===!1&&!n.options.applyAtShellIntegration)throw new Error("EnvironmentVariableMutatorOptions must apply at either process creation or shell integration");let o=this.getKey(e,n.scope),r=this.map.get(o),s=n.options?{applyAtProcessCreation:n.options.applyAtProcessCreation??!1,applyAtShellIntegration:n.options.applyAtShellIntegration??!1}:{applyAtProcessCreation:!0};if(!r||r.value!==n.value||r.type!==n.type||r.options?.applyAtProcessCreation!==s.applyAtProcessCreation||r.options?.applyAtShellIntegration!==s.applyAtShellIntegration||r.scope?.workspaceFolder?.index!==n.scope?.workspaceFolder?.index){let a=this.getKey(e,n.scope),l={variable:e,...n,options:s};this.map.set(a,l),this._onDidChangeCollection.fire()}}get(e,n){let o=this.getKey(e,n),r=this.map.get(o);return r?RB(r):void 0}getKey(e,n){let o=this.getScopeKey(n);return o.length?`${e}:::${o}`:e}getScopeKey(e){return this.getWorkspaceKey(e?.workspaceFolder)??""}getWorkspaceKey(e){return e?e.uri.toString():void 0}getVariableMap(e){let n=new Map;for(let[o,r]of this.map)this.getScopeKey(r.scope)===this.getScopeKey(e)&&n.set(r.variable,RB(r));return n}delete(e,n){let o=this.getKey(e,n);this.map.delete(o),this._onDidChangeCollection.fire()}clear(e){if(e?.workspaceFolder){for(let[n,o]of this.map)o.scope?.workspaceFolder?.index===e.workspaceFolder.index&&this.map.delete(n);this.clearDescription(e)}else this.map.clear(),this.descriptionMap.clear();this._onDidChangeCollection.fire()}setDescription(e,n){let o=this.getScopeKey(n),r=this.descriptionMap.get(o);if(!r||r.description!==e){let s;typeof e=="string"?s=e:s=e?.value.split(`

`)[0];let a={description:s,scope:n};this.descriptionMap.set(o,a),this._onDidChangeCollection.fire()}}getDescription(e){let n=this.getScopeKey(e);return this.descriptionMap.get(n)?.description}clearDescription(e){let n=this.getScopeKey(e);this.descriptionMap.delete(n)}},m0=class{constructor(t,e){this.collection=t;this.scope=e;this._onDidChangeCollection=new E}get persistent(){return this.collection.persistent}set persistent(t){this.collection.persistent=t}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}getScoped(t){return this.collection.getScopedEnvironmentVariableCollection(t)}replace(t,e,n){this.collection.replace(t,e,n,this.scope)}append(t,e,n){this.collection.append(t,e,n,this.scope)}prepend(t,e,n){this.collection.prepend(t,e,n,this.scope)}get(t){return this.collection.get(t,this.scope)}forEach(t,e){this.collection.getVariableMap(this.scope).forEach((n,o)=>t.call(e,o,n,this),this.scope)}[Symbol.iterator](){return this.collection.getVariableMap(this.scope).entries()}delete(t){this.collection.delete(t,this.scope),this._onDidChangeCollection.fire(void 0)}clear(){this.collection.clear(this.scope)}set description(t){this.collection.setDescription(t,this.scope)}get description(){return this.collection.getDescription(this.scope)}},_g=class extends ku{constructor(t,e,n){super(!1,t,e),this._hasRemoteAuthority=!!n.remote.authority}createTerminal(t,e,n){if(!this._hasRemoteAuthority)throw new oc;return this.createTerminalFromOptions({name:t,shellPath:e,shellArgs:n})}createTerminalFromOptions(t,e){if(!this._hasRemoteAuthority)throw new oc;let n=new Pu(this._proxy,Pe(),t,t.name);return this._terminals.push(n),n.create(t,this._serializeParentTerminal(t,e)),n.value}};_g=D([C(0,Fn),C(1,ae),C(2,Xe)],_g);function AB(i){if(!(!i||typeof i=="string"))return Gn(i,{id:!0})?{id:i.id,color:i.color}:i}function IK(i){return Fp.isThemeColor(i)?i:void 0}function RB(i){let t={...i};return delete t.scope,t.options=t.options??void 0,t}var f0="/.well-known",xK=`${f0}/oauth-protected-resource`,SK=`${f0}/oauth-authorization-server`,g0=`${f0}/openid-configuration`,Dg=" ",CK="urn:ietf:params:oauth:grant-type:token-exchange";var TK="urn:ietf:params:oauth:token-type:id_token",EK="urn:ietf:params:oauth:token-type:id-jag",wK="urn:ietf:params:oauth:grant-type:jwt-bearer";function LB(i,t,e,n,o,r){let s=new URLSearchParams;return s.append("client_id",i),t&&s.append("client_secret",t),s.append("grant_type",CK),s.append("subject_token",e),s.append("subject_token_type",TK),s.append("requested_token_type",EK),s.append("audience",n),o&&s.append("resource",o),r.length&&s.append("scope",r.join(Dg)),s}function OB(i,t,e,n,o){let r=new URLSearchParams;return r.append("client_id",i),t&&r.append("client_secret",t),r.append("grant_type",wK),r.append("assertion",e),n&&r.append("resource",n),o.length&&r.append("scope",o.join(Dg)),r}function kK(i){if(typeof i!="object"||i===null)return!1;let t=i;return!(!t.resource||t.scopes_supported!==void 0&&!Array.isArray(t.scopes_supported))}var PK=["issuer","authorization_endpoint","token_endpoint","registration_endpoint","jwks_uri"];function _K(i){if(typeof i!="object"||i===null)return!1;let t=i;if(!t.issuer)throw new Error("Authorization server metadata must have an issuer");for(let e of PK)if(t[e]){if(typeof t[e]!="string")throw new Error(`Authorization server metadata '${e}' must be a string`);if(!t[e].startsWith("https://")&&!t[e].startsWith("http://"))throw new Error(`Authorization server metadata '${e}' must start with http:// or https://`)}return!0}function DK(i){return typeof i!="object"||i===null?!1:i.client_id!==void 0}function _u(i){if(typeof i!="object"||i===null)return!1;let t=i;return t.access_token!==void 0&&t.token_type!==void 0}function NB(i){if(typeof i!="object"||i===null)return!1;let t=i;return t.device_code!==void 0&&t.user_code!==void 0&&t.verification_uri!==void 0&&t.expires_in!==void 0}function h0(i){return typeof i!="object"||i===null?!1:i.error!==void 0}function RK(i){return typeof i!="object"||i===null?!1:i.error!==void 0}function UB(i){return{issuer:i.toString(),authorization_endpoint:new URL("/authorize",i).toString(),token_endpoint:new URL("/token",i).toString(),registration_endpoint:new URL("/register",i).toString(),response_types_supported:["code","id_token","id_token token"]}}var MB=["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],v0=33418;async function b0(i,t,e){if(!i.registration_endpoint)throw new Error("Server does not support dynamic registration");let n={client_name:t,client_uri:"https://code.visualstudio.com",grant_types:i.grant_types_supported?i.grant_types_supported.filter(s=>MB.includes(s)):MB,response_types:["code"],redirect_uris:["https://insiders.vscode.dev/redirect","https://vscode.dev/redirect","http://127.0.0.1/",`http://127.0.0.1:${v0}/`],scope:e?.join(Dg),token_endpoint_auth_method:"none",application_type:"native"},o=await fetch(i.registration_endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!o.ok){let s=await o.text(),a=s;try{let l=JSON.parse(s);RK(l)&&(a=`${l.error}${l.error_description?`: ${l.error_description}`:""}`)}catch{}throw new Error(`Registration to ${i.registration_endpoint} failed: ${a}`)}let r=await o.json();if(DK(r))return r;throw new Error(`Invalid authorization dynamic client registration response: ${JSON.stringify(r)}`)}function y0(i){let t=[],e=[],n="",o=!1;for(let s=0;s<i.length;s++){let a=i[s];a==='"'?(o=!o,n+=a):a===","&&!o?(n.trim()&&e.push(n.trim()),n=""):n+=a}n.trim()&&e.push(n.trim());let r;for(let s of e)if(!s.includes("="))r&&t.push(r),r={scheme:s.trim(),params:{}};else{let l=s.indexOf(" ");if(l>0){let d=s.substring(0,l),c=s.substring(l+1);if(!d.includes("=")&&c.includes("=")){r&&t.push(r),r={scheme:d.trim(),params:{}};let u=c.indexOf("=");if(u>0){let m=c.substring(0,u).trim(),g=c.substring(u+1).trim().replace(/^"|"$/g,"");m&&g!==void 0&&(r.params[m]=g)}continue}}if(r){let d=s.indexOf("=");if(d>0){let c=s.substring(0,d).trim(),u=s.substring(d+1).trim().replace(/^"|"$/g,"");c&&u!==void 0&&(r.params[c]=u)}}}return r&&t.push(r),t}function Du(i){let t=i.split(".");if(t.length!==3)throw new Error("Invalid JWT token format: token must have three parts separated by dots");let[e,n,o]=t;try{if(typeof JSON.parse(No(e).toString())!="object")throw new Error("Invalid JWT token format: header is not a JSON object");let s=JSON.parse(No(n).toString());if(typeof s!="object")throw new Error("Invalid JWT token format: payload is not a JSON object");return s}catch(r){throw r instanceof Error?new Error(`Failed to parse JWT token: ${r.message}`):new Error("Failed to parse JWT token")}}function FB(i,t){if(i===t)return!0;if(!i||!t||i.length!==t.length)return!1;let e=[...i].sort(),n=[...t].sort();return e.every((o,r)=>o===n[r])}async function HB(i,t,e={}){let{sameOriginHeaders:n={},fetch:o=fetch}=e,r=new URL(i),s=async(c,u)=>{let m={Accept:"application/json"};new URL(c).origin===r.origin&&(m={...m,...n});let h=await o(c,{method:"GET",headers:m});if(h.status!==200){let I;try{I=await h.text()}catch{I=h.statusText}throw new Error(`Failed to fetch resource metadata from ${c}: ${h.status} ${I}`)}let f=await h.json();if(kK(f)){let I=new URL(f.resource).toString(),x=new URL(u).toString();if(I!==x)throw new Error(`Protected Resource Metadata 'resource' property value "${I}" does not match expected value "${x}" for URL ${c}. Per RFC 9728, these MUST match. See https://datatracker.ietf.org/doc/html/rfc9728#PRConfigurationValidation`);return f}else throw new Error(`Invalid resource metadata from ${c}. Expected to follow shape of https://datatracker.ietf.org/doc/html/rfc9728#name-protected-resource-metadata (Hints: is scopes_supported an array? Is resource a string?). Current payload: ${JSON.stringify(f)}`)},a=[];if(t)try{return{metadata:await s(t,i),discoveryUrl:t,errors:a}}catch(c){a.push(c instanceof Error?c:new Error(String(c)))}let l=r.pathname!=="/",d=`${r.origin}${xK}`;if(l){let c=`${d}${r.pathname}`;try{return{metadata:await s(c,i),discoveryUrl:c,errors:a}}catch(u){a.push(u instanceof Error?u:new Error(String(u)))}}try{return{metadata:await s(d,r.origin),discoveryUrl:d,errors:a}}catch(c){a.push(c instanceof Error?c:new Error(String(c)))}throw a.length===1?a[0]:new AggregateError(a,"Failed to fetch resource metadata from all attempted URLs")}async function AK(i){if(i.status===200)try{let t=await i.json();if(_K(t))return t}catch{}}async function MK(i){try{return await i.text()}catch{return i.statusText}}async function nE(i,t={}){let{additionalHeaders:e={},fetch:n=fetch}=t,o=new URL(i),r=o.pathname==="/"?"":o.pathname,s=[],a=async m=>{try{let g=await n(m,{method:"GET",headers:{...e,Accept:"application/json"}}),h=await AK(g);if(h)return h;s.push(new Error(`Failed to fetch authorization server metadata from ${m}: ${g.status} ${await MK(g)}`));return}catch(g){s.push(g instanceof Error?g:new Error(String(g)));return}},l=new URL(SK,i).toString()+r,d=await a(l);if(d)return{metadata:d,discoveryUrl:l,errors:s};let c=new URL(g0,i).toString()+r;if(d=await a(c),d)return{metadata:d,discoveryUrl:c,errors:s};let u=i.endsWith("/")?i+g0.substring(1):i+g0;if(d=await a(u),d)return{metadata:d,discoveryUrl:u,errors:s};throw s.length===1?s[0]:new AggregateError(s,"Failed to fetch authorization server metadata from all attempted URLs")}var Ld=class{constructor(t,e){this._onDidChangeWindowState=new E;this.onDidChangeWindowState=this._onDidChangeWindowState.event;this._state=Ld.InitialState;t.handle&&(this._nativeHandle=No(t.handle).buffer),this._proxy=e.getProxy(F.MainThreadWindow),this._proxy.$getInitialState().then(({isFocused:n,isActive:o})=>{this.onDidChangeWindowProperty("focused",n),this.onDidChangeWindowProperty("active",o)})}static{this.InitialState={focused:!0,active:!0}}getState(){let t=this._state;return{get focused(){return t.focused},get active(){return t.active}}}get nativeHandle(){return this._nativeHandle}$onDidChangeActiveNativeWindowHandle(t){this._nativeHandle=t?No(t).buffer:void 0}$onDidChangeWindowFocus(t){this.onDidChangeWindowProperty("focused",t)}$onDidChangeWindowActive(t){this.onDidChangeWindowProperty("active",t)}onDidChangeWindowProperty(t,e){e!==this._state[t]&&(this._state={...this._state,[t]:e},this._onDidChangeWindowState.fire(this._state))}openUri(t,e){let n;if(typeof t=="string"){n=t;try{t=b.parse(t)}catch{return Promise.reject(`Invalid uri - '${t}'`)}}return is(t.scheme)?Promise.reject("Invalid scheme - cannot be empty"):t.scheme===B.command?Promise.reject(`Invalid scheme '${t.scheme}'`):this._proxy.$openUri(t,n,e)}async asExternalUri(t,e){if(is(t.scheme))return Promise.reject("Invalid scheme - cannot be empty");let n=await this._proxy.$asExternalUri(t,e);return b.from(n)}};Ld=D([C(0,Xe),C(1,ae)],Ld);var Ru=R("IExtHostWindow");var Od=class{constructor(t){this.handles=new Ho;this.handlers=new Map;this._proxy=t.getProxy(F.MainThreadUrls)}static{this.HandlePool=0}registerUriHandler(t,e){let n=t.identifier;if(this.handles.has(n))throw new Error(`Protocol handler already registered for extension ${n}`);let o=Od.HandlePool++;return this.handles.add(n),this.handlers.set(o,e),this._proxy.$registerUriHandler(o,n,t.displayName||t.name),Q(()=>{this.handles.delete(n),this.handlers.delete(o),this._proxy.$unregisterUriHandler(o)})}$handleExternalUri(t,e){let n=this.handlers.get(t);if(!n)return Promise.resolve(void 0);try{n.handleUri(b.revive(e))}catch(o){Qe(o)}return Promise.resolve(void 0)}async createAppUri(t){return b.revive(await this._proxy.$createAppUri(t))}};Od=D([C(0,ae)],Od);var Au=R("IExtHostUrlsService");var Mu=R("IExtHostProgress"),Rg=class{constructor(t){this._handles=0;this._mapHandleToCancellationSource=new Map;this._proxy=t.getProxy(F.MainThreadProgress)}async withProgress(t,e,n){let o=this._handles++,{title:r,location:s,cancellable:a}=e,l={label:t.displayName||t.name,id:t.identifier.value};return this._proxy.$startProgress(o,{location:hT.from(s),title:r,source:l,cancellable:a},t.isUnderDevelopment?void 0:t.identifier.value).catch(ta),this._withProgress(o,n,!!a)}async withProgressFromSource(t,e,n){let o=this._handles++,{title:r,location:s,cancellable:a}=e;return this._proxy.$startProgress(o,{location:hT.from(s),title:r,source:t,cancellable:a},void 0).catch(ta),this._withProgress(o,n,!!a)}_withProgress(t,e,n){let o;n&&(o=new ke,this._mapHandleToCancellationSource.set(t,o));let r=a=>{this._proxy.$progressEnd(a),this._mapHandleToCancellationSource.delete(a),o?.dispose()},s;try{s=e(new oE(this._proxy,t),n&&o?o.token:me.None)}catch(a){throw r(t),a}return s.then(a=>r(t),a=>r(t)),s}$acceptProgressCanceled(t){let e=this._mapHandleToCancellationSource.get(t);e&&(e.cancel(),this._mapHandleToCancellationSource.delete(t))}};Rg=D([C(0,ae)],Rg);function LK(i,t){return i.message=t.message,typeof t.increment=="number"&&(typeof i.increment=="number"?i.increment+=t.increment:i.increment=t.increment),i}var oE=class extends fs{constructor(e,n){super(o=>this.throttledReport(o));this._proxy=e;this._handle=n}throttledReport(e){this._proxy.$progressReport(this._handle,e)}};D([ZF(100,(e,n)=>LK(e,n),()=>Object.create(null))],oE.prototype,"throttledReport",1);var I0=["openid","offline_access"];function VB(i,t){return i+"|"+[...t].sort().join(" ")}function OK(i,t=Date.now()){return i.token.expires_in===void 0?!1:t>i.created_at+i.token.expires_in*1e3-6e4}function rE(i){return class extends i{constructor(...n){super(...n);this._resourceTokens=new Map;this._resourceClientSecrets=new Map;let o=this.authorizationServer;this.id=`xaa:${o.toString(!0)}`,this._logger.trace(`[XAA] Provider constructed for issuer ${o.toString(!0)}. authorization_endpoint=${this._serverMetadata.authorization_endpoint}, token_endpoint=${this._serverMetadata.token_endpoint}`)}_resourceClientSecretKey(n,o){return`${n}|${o}`}async getSessions(n,o){let r=o.resource,s=o.audience;if(!r||!n||!s)return[];let a=VB(r,n),l=this._resourceTokens.get(a);if(l&&!OK(l))return[x0(l.token,l.scopes)];l&&this._resourceTokens.delete(a);let d=await this._tryGetSilentIdpSession();if(!d?.idToken)return[];try{let c=await this._mintResourceToken(d,[...n],s,r,o,!0);return c?[x0(c.token,c.scopes)]:[]}catch(c){return this._logger.warn(`[XAA] Silent token mint failed for resource=${r}; falling back to interactive. Error: ${c.message}`),[]}}async createSession(n,o){let r=o.audience,s=o.resource;if(this._logger.trace(`[XAA] createSession scopes=[${n.join(" ")}] audience=${r} resource=${s}`),!r)throw new Error("Enterprise-managed authentication requires `options.audience` (the resource's authorization server URL) but none was provided.");if(!s)throw new Error("Enterprise-managed authentication requires `options.resource` (the resource indicator / MCP server URL) but none was provided.");let a=await this._ensureIdpSession();if(!a.idToken)throw new Error("IdP session is missing an id_token; the issuer must support OpenID Connect and the `openid` scope.");let l=await this._mintResourceToken(a,n,r,s,o,!1);if(!l)throw new Error("Failed to mint a resource access token for the enterprise-managed MCP server.");return x0(l.token,l.scopes)}async _mintResourceToken(n,o,r,s,a,l){let d=await this._exchangeForIdJag(n.idToken,r,s,o),c=await this._discoverResourceTokenEndpoint(r),u=this._clientId,m=!1,g=typeof a.clientId=="string"&&a.clientId.length>0?a.clientId:void 0;if(g)u=g,m=u!==this._clientId;else try{let w=Du(d);typeof w.client_id=="string"&&w.client_id.length>0&&(u=w.client_id,m=u!==this._clientId)}catch(w){this._logger.warn(`[XAA] Could not decode ID-JAG to read resource client_id; falling back to IdP client_id. Error: ${w.message}`)}let h=this._clientSecret,f=typeof a.clientSecret=="string"&&a.clientSecret.length>0?a.clientSecret:void 0,I=this._resourceClientSecretKey(s,u);if(f)h=f,this._resourceClientSecrets.set(I,f);else if(m)if(this._resourceClientSecrets.has(I))h=this._resourceClientSecrets.get(I);else if(l){this._logger.info(`[XAA] Silent mint requires resource client_secret for '${u}' but none is cached or configured; deferring to interactive flow.`);return}else{this._logger.info(`[XAA] Resource AS requires a distinct client_id '${u}' \u2014 prompting for matching client_secret.`);let w=await this._proxy.$promptForResourceClientSecret(u,s);if(w===void 0)return;this._resourceClientSecrets.set(I,w),h=w.length>0?w:void 0}let x=await this._redeemAtResource(c,d,s,o,u,h),T={resource:s,scopes:o,token:x,created_at:Date.now()};return this._resourceTokens.set(VB(s,o),T),T}async _tryGetSilentIdpSession(){let n={},o=await super.getSessions(I0,n);return o.length?o[0]:void 0}async _ensureIdpSession(){this._logger.trace(`[XAA] _ensureIdpSession: scopes=[${I0.join(" ")}] authorization_endpoint=${this._serverMetadata.authorization_endpoint}`);let n=await this._tryGetSilentIdpSession();return n?.idToken?(this._logger.trace("[XAA] _ensureIdpSession: reusing existing IdP session"),n):(this._logger.trace("[XAA] _ensureIdpSession: creating new IdP session via super.createSession"),super.createSession([...I0],{}))}async _exchangeForIdJag(n,o,r,s){let a=this._serverMetadata.token_endpoint;if(!a)throw new Error("Issuer metadata is missing token_endpoint; cannot perform XAA token exchange.");let l=LB(this._clientId,this._clientSecret,n,o,r,s);this._logger.trace(`[XAA] POST ${a} (ID-JAG exchange) audience=${o} resource=${r} scope=${s.join(" ")}`);let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:l.toString()});if(!d.ok)throw new Error(`XAA token exchange (IdP) failed: ${d.status} ${await WB(d)}`);let c=await d.json(),u=c&&typeof c=="object"&&typeof c.access_token=="string"?c.access_token:void 0;if(!u)throw new Error(`XAA token exchange (IdP) returned no access_token. Response: ${JSON.stringify(c)}`);return u}async _discoverResourceTokenEndpoint(n){let{metadata:o,errors:r}=await nE(n);if(!o?.token_endpoint)throw new Error(`Failed to discover resource authorization server metadata for '${n}': ${r.map(s=>s.message).join("; ")||"no token_endpoint in metadata"}`);return o.token_endpoint}async _redeemAtResource(n,o,r,s,a,l){let d=OB(a,l,o,r,s);this._logger.trace(`[XAA] POST ${n} (ID-JAG redemption) client_id=${a} resource=${r} scope=${s.join(" ")}`);let c=await fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:d.toString()});if(!c.ok)throw new Error(`XAA token exchange (resource) failed: ${c.status} ${await WB(c)}`);let u=await c.json();if(!_u(u))throw new Error(`XAA token exchange (resource) returned an invalid token response: ${JSON.stringify(u)}`);return u}}}function x0(i,t){let e;if(i.id_token)try{e=Du(i.id_token)}catch{}if(!e)try{e=Du(i.access_token)}catch{}return{id:Ap(i.access_token,0).toString(),accessToken:i.access_token,account:{id:e?.sub||"unknown",label:e?.preferred_username||e?.name||e?.email||"XAA"},scopes:[...t],idToken:i.id_token}}async function WB(i){try{return await i.text()}catch{return i.statusText}}var Mg=R("IExtHostAuthentication"),Ag=class{constructor(t,e,n,o,r,s,a){this._initData=e;this._extHostWindow=n;this._extHostUrls=o;this._extHostProgress=r;this._extHostLoggerService=s;this._logService=a;this._dynamicAuthProviderCtor=Nd;this._xaaAuthProviderCtor=rE(Nd);this._authenticationProviders=new Map;this._providerOperations=new Tl;this._onDidChangeSessions=new E;this._getSessionTaskSingler=new S0;this._onDidDynamicAuthProviderTokensChange=new E;this._proxy=t.getProxy(F.MainThreadAuthentication)}getExtensionScopedSessionsEvent(t){let e=t.toLowerCase();return ye.chain(this._onDidChangeSessions.event,n=>n.filter(o=>!o.extensionIdFilter||o.extensionIdFilter.includes(e)).map(o=>({provider:o.provider})))}async getSession(t,e,n,o={}){let r=Ee.toKey(t.identifier),a=Object.keys(o).map(d=>{switch(d){case"account":return`${d}:${o.account?.id}`;case"createIfNone":case"forceNewSession":{let c=typeof o[d]=="boolean"?`${o[d]}`:`'${o[d]?.detail}/${o[d]?.learnMore?.toString()}'`;return`${d}:${c}`}case"authorizationServer":return`${d}:${o.authorizationServer?.toString(!0)}`;default:return`${d}:${!!o[d]}`}}).sort().join(", "),l;if(eV(n)){let d=n,c=d.wwwAuthenticate,u=d.fallbackScopes?[...d.fallbackScopes].sort().join(" "):"";l=`${r} ${e} challenge:${c} ${u} ${a}`}else{let d=[...n].sort().join(" ");l=`${r} ${e} ${d} ${a}`}return await this._getSessionTaskSingler.getOrCreate(l,async()=>{await this._proxy.$ensureProvider(e);let d=t.displayName||t.name;return this._proxy.$getSession(e,n,r,d,o)})}async getAccounts(t){return await this._proxy.$ensureProvider(t),await this._proxy.$getAccounts(t)}registerAuthenticationProvider(t,e,n,o){return this._providerOperations.queue(t,async()=>{if(this._authenticationProviders.get(t)){this._logService.error(`An authentication provider with id '${t}' is already registered. The existing provider will not be replaced.`);return}let r=n.onDidChangeSessions(s=>this._proxy.$sendDidChangeSessions(t,s));this._authenticationProviders.set(t,{label:e,provider:n,disposable:r,options:o??{supportsMultipleAccounts:!1}}),await this._proxy.$registerAuthenticationProvider({id:t,label:e,supportsMultipleAccounts:o?.supportsMultipleAccounts??!1,supportedAuthorizationServers:o?.supportedAuthorizationServers,supportsChallenges:o?.supportsChallenges})}),new xe(()=>{this._providerOperations.queue(t,async()=>{let r=this._authenticationProviders.get(t);r&&(r.disposable?.dispose(),this._authenticationProviders.delete(t),await this._proxy.$unregisterAuthenticationProvider(t))})})}$createSession(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o)return n.authorizationServer=b.revive(n.authorizationServer),await o.provider.createSession(e,n);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$removeSession(t,e){return this._providerOperations.queue(t,async()=>{let n=this._authenticationProviders.get(t);if(n)return await n.provider.removeSession(e);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$getSessions(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o)return n.authorizationServer=b.revive(n.authorizationServer),await o.provider.getSessions(e,n);throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$getSessionsFromChallenges(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o){let r=o.provider;if(typeof r.getSessionsFromChallenges=="function")return n.authorizationServer=b.revive(n.authorizationServer),await r.getSessionsFromChallenges(e,n);throw new Error(`Authentication provider with handle: ${t} does not support getSessionsFromChallenges`)}throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$createSessionFromChallenges(t,e,n){return this._providerOperations.queue(t,async()=>{let o=this._authenticationProviders.get(t);if(o){let r=o.provider;if(typeof r.createSessionFromChallenges=="function")return n.authorizationServer=b.revive(n.authorizationServer),await r.createSessionFromChallenges(e,n);throw new Error(`Authentication provider with handle: ${t} does not support createSessionFromChallenges`)}throw new Error(`Unable to find authentication provider with handle: ${t}`)})}$onDidChangeAuthenticationSessions(t,e,n){return t.startsWith(Xx)||this._onDidChangeSessions.fire({provider:{id:t,label:e},extensionIdFilter:n}),Promise.resolve()}$onDidUnregisterAuthenticationProvider(t){return this._providerOperations.queue(t,async()=>{let e=this._authenticationProviders.get(t);e&&(e.disposable?.dispose(),this._authenticationProviders.delete(t))})}async $registerDynamicAuthProvider(t,e,n,o,r,s){if(!o){let l=b.revive(t);if(e.registration_endpoint)try{let d=await b0(e,this._initData.environment.appName,n?.scopes_supported);o=d.client_id,r=d.client_secret}catch(d){this._logService.warn(`Dynamic registration failed for ${l.toString()}: ${d.message}. Prompting user for client ID and client secret...`)}if(!o){this._logService.info(`Prompting user for client registration details for ${l.toString()}`);let d=await this._proxy.$promptForClientRegistration(l.toString());if(!d)throw new Error("User did not provide client details");o=d.clientId,r=d.clientSecret,this._logService.info(`User provided client registration for ${l.toString()}`),r?this._logService.trace(`User provided client secret for ${l.toString()}`):this._logService.trace(`User did not provide client secret for ${l.toString()}`)}}let a=new this._dynamicAuthProviderCtor(this._extHostWindow,this._extHostUrls,this._initData,this._extHostProgress,this._extHostLoggerService,this._proxy,b.revive(t),e,n,o,r,this._onDidDynamicAuthProviderTokensChange,s||[]);return await this._providerOperations.queue(a.id,async()=>{this._authenticationProviders.set(a.id,{label:a.label,provider:a,disposable:xe.from(a,a.onDidChangeSessions(l=>this._proxy.$sendDidChangeSessions(a.id,l)),a.onDidChangeClientId(()=>this._proxy.$sendDidChangeDynamicProviderInfo({providerId:a.id,clientId:a.clientId,clientSecret:a.clientSecret}))),options:{supportsMultipleAccounts:!0}}),await this._proxy.$registerDynamicAuthenticationProvider({id:a.id,label:a.label,supportsMultipleAccounts:!0,authorizationServer:t,resourceServer:n?b.parse(n.resource):void 0,clientId:a.clientId,clientSecret:a.clientSecret})}),a.id}async $registerXaaAuthProvider(t,e,n,o,r){let s=b.revive(t);if(!n){this._logService.info(`Prompting user for client registration details for XAA issuer ${s.toString()}`);let l=await this._proxy.$promptForClientRegistration(s.toString());if(!l)throw new Error("User did not provide client details");n=l.clientId,o=l.clientSecret}let a=new this._xaaAuthProviderCtor(this._extHostWindow,this._extHostUrls,this._initData,this._extHostProgress,this._extHostLoggerService,this._proxy,s,e,void 0,n,o,this._onDidDynamicAuthProviderTokensChange,r||[]);return await this._providerOperations.queue(a.id,async()=>{this._authenticationProviders.set(a.id,{label:a.label,provider:a,disposable:xe.from(a,a.onDidChangeSessions(l=>this._proxy.$sendDidChangeSessions(a.id,l)),a.onDidChangeClientId(()=>this._proxy.$sendDidChangeDynamicProviderInfo({providerId:a.id,clientId:a.clientId,clientSecret:a.clientSecret}))),options:{supportsMultipleAccounts:!0}}),await this._proxy.$registerDynamicAuthenticationProvider({id:a.id,label:a.label,supportsMultipleAccounts:!0,authorizationServer:t,resourceServer:void 0,clientId:a.clientId,clientSecret:a.clientSecret})}),a.id}async $onDidChangeDynamicAuthProviderTokens(t,e,n){this._onDidDynamicAuthProviderTokensChange.fire({authProviderId:t,clientId:e,tokens:n})}};Ag=D([C(0,ae),C(1,Xe),C(2,Ru),C(3,Au),C(4,Mu),C(5,Zo),C(6,ne)],Ag);var S0=class{constructor(){this._inFlightPromises=new Map}getOrCreate(t,e){let n=this._inFlightPromises.get(t);if(n)return n;let o=e().finally(()=>this._inFlightPromises.delete(t));return this._inFlightPromises.set(t,o),o}},Nd=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g){this._extHostWindow=t;this._extHostUrls=e;this._initData=n;this._extHostProgress=o;this._proxy=s;this.authorizationServer=a;this._serverMetadata=l;this._resourceMetadata=d;this._clientId=c;this._clientSecret=u;this._onDidChangeSessions=new E;this.onDidChangeSessions=this._onDidChangeSessions.event;this._onDidChangeClientId=new E;this.onDidChangeClientId=this._onDidChangeClientId.event;let h=a.toString(!0);this.id=d?.resource?h+" "+d?.resource:h,this.label=d?.resource_name??this.authorizationServer.authority,this._logger=r.createLogger(this.id,{name:`Auth: ${this.label}`}),this._disposable=new z,this._disposable.add(this._onDidChangeSessions),this._disposable.add(this._onDidChangeClientId);let f=ye.chain(m.event,I=>I.filter(x=>x.authProviderId===this.id&&x.clientId===c).map(x=>x.tokens));this._tokenStore=this._disposable.add(new C0({onDidChange:f,set:I=>s.$setSessionsForDynamicAuthProvider(this.id,this.clientId,I)},g,this._logger)),this._disposable.add(this._tokenStore.onDidChangeSessions(I=>this._onDidChangeSessions.fire(I))),this._createFlows=[],l.authorization_endpoint&&this._createFlows.push({label:p(3344,null),handler:(I,x,T)=>this._createWithUrlHandler(I,x,T)})}get clientId(){return this._clientId}get clientSecret(){return this._clientSecret}async getSessions(t,e){if(this._logger.info(`Getting sessions for scopes: ${t?.join(" ")??"all"}`),!t)return this._tokenStore.sessions;let n=[...t].sort(),o=t.join(" "),r=this._tokenStore.sessions.filter(s=>an([...s.scopes].sort(),n));if(this._logger.info(`Found ${r.length} sessions for scopes: ${o}`),r.length){let s=[],a=[],l=new Map(this._tokenStore.tokens.map(d=>[d.access_token,d]));for(let d of r){let c=l.get(d.accessToken);if(c&&c.expires_in){let u=Date.now(),m=c.expires_in*1e3;if(u>c.created_at+m-300*1e3){if(this._logger.info(`Token for session ${d.id} is about to expire, refreshing...`),a.push(c),!c.refresh_token){this._logger.warn(`No refresh token available for scopes ${d.scopes.join(" ")}. Throwing away token.`);continue}try{let g=await this.exchangeRefreshTokenForToken(c.refresh_token);g.scope!==o&&(this._logger.warn(`Token scopes '${g.scope}' do not match requested scopes '${o}'. Overwriting token with what was requested...`),g.scope=o),this._logger.info(`Successfully created a new token for scopes ${d.scopes.join(" ")}.`),s.push(g)}catch(g){this._logger.error(`Failed to refresh token: ${g}`)}}}}return(s.length||a.length)&&(this._tokenStore.update({added:s,removed:a}),r=this._tokenStore.sessions.filter(d=>an([...d.scopes].sort(),n))),this._logger.info(`Found ${r.length} sessions for scopes: ${o}`),r}return[]}async createSession(t,e){this._logger.info(`Creating session for scopes: ${t.join(" ")}`);let n;for(let r=0;r<this._createFlows.length;r++){let{handler:s}=this._createFlows[r];try{if(n=await this._extHostProgress.withProgressFromSource({label:this.label,id:this.id},{location:15,title:p(3341,null,this.label),cancellable:!0},(a,l)=>s(t,a,l)),n)break}catch(a){let l=this._createFlows[r+1]?.label;if(!l)break;let d=Kt(a)?p(3345,null,this.label,l):p(3343,null,this.label,l);if(!await this._proxy.$showContinueNotification(d))throw new Ue;this._logger.error(`Failed to create token via flow '${l}': ${a}`)}}if(!n)throw new Error("Failed to create authentication token");n.scope!==t.join(" ")&&(this._logger.warn(`Token scopes '${n.scope}' do not match requested scopes '${t.join(" ")}'. Overwriting token with what was requested...`),n.scope=t.join(" ")),this._tokenStore.update({added:[{...n,created_at:Date.now()}],removed:[]});let o=this._tokenStore.sessions.find(r=>r.accessToken===n.access_token);return this._logger.info(`Created ${n.refresh_token?"refreshable":"non-refreshable"} session for scopes: ${n.scope}${n.expires_in?` that expires in ${n.expires_in} seconds`:""}`),o}async removeSession(t){this._logger.info(`Removing session with id: ${t}`);let e=this._tokenStore.sessions.find(o=>o.id===t);if(!e){this._logger.error(`Session with id ${t} not found`);return}let n=this._tokenStore.tokens.find(o=>o.access_token===e.accessToken);if(!n){this._logger.error(`Failed to retrieve token for removed session: ${e.id}`);return}this._tokenStore.update({added:[],removed:[n]}),this._logger.info(`Removed token for session: ${e.id} with scopes: ${e.scopes.join(" ")}`)}dispose(){this._disposable.dispose()}async _createWithUrlHandler(t,e,n){if(!this._serverMetadata.authorization_endpoint)throw new Error("Authorization Endpoint required");if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=this.generateRandomString(64),r=await this.generateCodeChallenge(o),s=this.generateRandomString(32),a=b.parse(`${this._initData.environment.appUriScheme}://dynamicauthprovider/${this.authorizationServer.authority}/authorize?nonce=${s}`),l;try{l=await this._extHostUrls.createAppUri(a)}catch(I){throw new Error(`Failed to create external URI: ${I}`)}let d=new URL(this._serverMetadata.authorization_endpoint);d.searchParams.append("client_id",this._clientId),d.searchParams.append("response_type","code"),d.searchParams.append("state",l.toString()),d.searchParams.append("code_challenge",r),d.searchParams.append("code_challenge_method","S256");let c=t.join(" ");c&&d.searchParams.append("scope",c),this._resourceMetadata?.resource&&d.searchParams.append("resource",this._resourceMetadata.resource);let u="https://vscode.dev/redirect";d.searchParams.append("redirect_uri",u);let m=this.waitForAuthorizationCode(a);if(this._logger.info(`Opening authorization URL for scopes: ${c}`),this._logger.trace(`Authorization URL: ${d.toString()}`),!await this._extHostWindow.openUri(d.toString(),{}))throw new Ue;e.report({message:p(3342,null)});let h;try{h=(await Qr(m,n)).code}catch(I){throw Kt(I)?(this._logger.info("Authorization code request was cancelled by the user."),I):(this._logger.error(`Failed to receive authorization code: ${I}`),new Error(`Failed to receive authorization code: ${I}`))}return this._logger.info(`Authorization code received for scopes: ${c}`),await this.exchangeCodeForToken(h,o,u)}generateRandomString(t){let e=new Uint8Array(t);return crypto.getRandomValues(e),Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("").substring(0,t)}async generateCodeChallenge(t){let n=new TextEncoder().encode(t),o=await crypto.subtle.digest("SHA-256",n);return so(W.wrap(new Uint8Array(o)),!1,!1).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async waitForAuthorizationCode(t){let e=await this._proxy.$waitForUriHandler(t),n=/[?&]code=([^&]+)/.exec(e.query||"");if(!n||n.length<2)throw new Error("Authentication failed: No authorization code received");return{code:n[1]}}async exchangeCodeForToken(t,e,n){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=new URLSearchParams;o.append("client_id",this._clientId),o.append("grant_type","authorization_code"),o.append("code",t),o.append("redirect_uri",n),o.append("code_verifier",e),this._resourceMetadata?.resource&&o.append("resource",this._resourceMetadata.resource),this._clientSecret&&o.append("client_secret",this._clientSecret),this._logger.info("Exchanging authorization code for token..."),this._logger.trace(`Url: ${this._serverMetadata.token_endpoint}`),this._logger.trace(`Token request body: ${o.toString()}`);let r;try{r=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:o.toString()})}catch(a){throw this._logger.error(`Failed to exchange authorization code for token: ${a}`),new Error(`Failed to exchange authorization code for token: ${a}`)}if(!r.ok){let a=await r.text();throw new Error(`Token exchange failed: ${r.status} ${r.statusText} - ${a}`)}let s=await r.json();if(_u(s))return this._logger.info("Successfully exchanged authorization code for token."),s;throw h0(s)&&s.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Invalid authorization token response: ${JSON.stringify(s)}`)}async exchangeRefreshTokenForToken(t){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let e=new URLSearchParams;e.append("client_id",this._clientId),e.append("grant_type","refresh_token"),e.append("refresh_token",t),this._resourceMetadata?.resource&&e.append("resource",this._resourceMetadata.resource),this._clientSecret&&e.append("client_secret",this._clientSecret);let o=await(await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()})).json();if(_u(o))return{...o,created_at:Date.now()};throw h0(o)&&o.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Invalid authorization token response: ${JSON.stringify(o)}`)}async _generateNewClientId(){try{let t=await b0(this._serverMetadata,this._initData.environment.appName,this._resourceMetadata?.scopes_supported);this._clientId=t.client_id,this._clientSecret=t.client_secret,this._onDidChangeClientId.fire()}catch(t){this._logger.info(`Dynamic registration failed for ${this.authorizationServer.toString()}: ${t}. Prompting user for client ID and client secret.`);try{let e=await this._proxy.$promptForClientRegistration(this.authorizationServer.toString());if(!e)throw new Error("User did not provide client details");this._clientId=e.clientId,this._clientSecret=e.clientSecret,this._logger.info(`User provided client ID for ${this.authorizationServer.toString()}`),e.clientSecret?this._logger.info(`User provided client secret for ${this.authorizationServer.toString()}`):this._logger.info(`User did not provide client secret for ${this.authorizationServer.toString()} (optional)`),this._onDidChangeClientId.fire()}catch{throw this._logger.error(`Failed to fetch new client ID and user did not provide one: ${t}`),new Error(`Failed to fetch new client ID and user did not provide one: ${t}`)}}}};Nd=D([C(0,Ru),C(1,Au),C(2,Xe),C(3,Mu),C(4,Zo)],Nd);var C0=class{constructor(t,e,n){this._persistence=t;this._logger=n;this._onDidChangeSessions=new E;this.onDidChangeSessions=this._onDidChangeSessions.event;this._disposable=new z,this._tokensObservable=_n("tokens",e),this._sessionsObservable=Lv({equalsFn:(o,r)=>an(o,r,(s,a)=>s.accessToken===a.accessToken)},o=>this._tokensObservable.read(o).map(r=>this._getSessionFromToken(r))),this._disposable.add(this._registerChangeEventAutorun()),this._disposable.add(this._persistence.onDidChange(o=>this._tokensObservable.set(o,void 0)))}get tokens(){return this._tokensObservable.get()}get sessions(){return this._sessionsObservable.get()}dispose(){this._disposable.dispose()}update({added:t,removed:e}){this._logger.trace(`Updating tokens: added ${t.length}, removed ${e.length}`);let n=[...this._tokensObservable.get()];for(let o of e){let r=n.findIndex(s=>s.access_token===o.access_token);r!==-1&&n.splice(r,1)}for(let o of t){let r=n.findIndex(s=>s.access_token===o.access_token);r===-1?n.push(o):n[r]=o}(t.length||e.length)&&(this._tokensObservable.set(n,void 0),this._persistence.set(n)),this._logger.trace(`Tokens updated: ${n.length} tokens stored.`)}_registerChangeEventAutorun(){let t=[];return Eo(e=>{this._logger.trace("Checking for session changes...");let n=this._sessionsObservable.read(e);if(t===n){this._logger.trace("No session changes detected.");return}if(!n||n.length===0){this._logger.trace("All sessions removed."),t.length>0&&(this._onDidChangeSessions.fire({added:[],removed:t,changed:[]}),t=[]);return}let o=[],r=[];for(let s of n)t.some(l=>l.accessToken===s.accessToken)||o.push(s);for(let s of t)n.some(l=>l.accessToken===s.accessToken)||r.push(s);(o.length>0||r.length>0)&&(this._logger.trace(`Sessions changed: added ${o.length}, removed ${r.length}`),this._onDidChangeSessions.fire({added:o,removed:r,changed:[]})),t=n})}_getSessionFromToken(t){let e;if(t.id_token)try{e=Du(t.id_token)}catch{}if(!e)try{e=Du(t.access_token)}catch{}let n=t.scope?t.scope.split(" "):e?.scope?e.scope.split(" "):[];return{id:Ap(t.access_token,0).toString(),accessToken:t.access_token,account:{id:e?.sub||"unknown",label:e?.preferred_username||e?.name||e?.email||"MCP"},scopes:n,idToken:t.id_token}}};var Lg=R("IExtHostLanguageModels"),T0=class{constructor(){this._defaultStream=new FI;this._isDone=!1;let t=this,[e,n]=Sp.tee(t._defaultStream.asyncIterable);this.apiObject={get stream(){return e},get text(){return n.map(o=>{if(o instanceof nn)return o.value}).coalesce()}}}handleResponsePart(t){if(this._isDone)return;let e=[];for(let n of At.wrap(t)){let o;n.type==="text"?o=new nn(n.value,n.audience):n.type==="thinking"?o=new Ui(n.value,n.id,n.metadata):n.type==="data"?o=new Un(n.data.buffer,n.mimeType,n.audience):o=new si(n.toolCallId,n.name,n.parameters),e.push(o)}this._defaultStream.emitMany(e)}reject(t){this._isDone=!0,this._defaultStream.reject(t)}resolve(){this._isDone=!0,this._defaultStream.resolve()}},Ud=class{constructor(t,e,n){this._logService=e;this._extHostAuthentication=n;this._onDidChangeModelAccess=new E;this._onDidChangeProviders=new E;this.onDidChangeProviders=this._onDidChangeProviders.event;this._onDidChangeModelProxyAvailability=new E;this.onDidChangeModelProxyAvailability=this._onDidChangeModelProxyAvailability.event;this._languageModelProviders=new Map;this._localModels=new Map;this._modelAccessList=new ho;this._pendingRequest=new Map;this._ignoredFileProviders=new Map;this._languageAccessInformationExtensions=new Set;this._proxy=t.getProxy(F.MainThreadLanguageModels)}static{this._idPool=1}dispose(){this._onDidChangeModelAccess.dispose(),this._onDidChangeProviders.dispose(),this._onDidChangeModelProxyAvailability.dispose()}registerLanguageModelChatProvider(t,e,n){this._languageModelProviders.set(e,{extension:t,provider:n}),this._proxy.$registerLanguageModelProvider(e);let o;return n.onDidChangeLanguageModelChatInformation&&(o=n.onDidChangeLanguageModelChatInformation(()=>{this._proxy.$onLMProviderChange(e)})),Q(()=>{this._languageModelProviders.delete(e),this._localModels.forEach((r,s)=>{r.metadata.vendor===e&&this._localModels.delete(s)}),o?.dispose(),this._proxy.$unregisterProvider(e)})}toModelIdentifier(t,e,n){return e?`${t}/${e}/${n}`:`${t}/${n}`}getVendorFromModelIdentifier(t){let e=t.indexOf("/");return e===-1?void 0:t.substring(0,e)}async $provideLanguageModelChatInfo(t,e,n){let o=this._languageModelProviders.get(t);if(!o)return[];let r=await o.provider.provideLanguageModelChatInformation({silent:e.silent,configuration:e.configuration},n)??[],s=r.map(a=>{let l;a.requiresAuthorization&&Oe(o.extension,"chatProvider")&&(l={providerLabel:o.extension.displayName||o.extension.name,accountLabel:typeof a.requiresAuthorization=="object"?a.requiresAuthorization.label:void 0}),a.capabilities.editTools&&A(o.extension,"chatProvider");let d={};if(Oe(o.extension,"chatProvider")){if(a.isDefault===!0)for(let c of Object.values(ki))typeof c=="string"&&(d[c]=!0);else if(typeof a.isDefault=="object")for(let c of Object.keys(a.isDefault)){let u=parseInt(c);d[ig.from(u)]=a.isDefault[u]}}return{metadata:{extension:o.extension.identifier,id:a.id,vendor:t,name:a.name??"",family:a.family??"",detail:a.detail,tooltip:a.tooltip,version:a.version,multiplierNumeric:a.multiplierNumeric,isBYOK:a.isBYOK,pricing:a.pricing,inputCost:a.inputCost,outputCost:a.outputCost,cacheCost:a.cacheCost,longContextInputCost:a.longContextInputCost,longContextOutputCost:a.longContextOutputCost,longContextCacheCost:a.longContextCacheCost,priceCategory:a.priceCategory,maxInputTokens:a.maxInputTokens,maxOutputTokens:a.maxOutputTokens,auth:l,isDefaultForLocation:d,isUserSelectable:a.isUserSelectable,statusIcon:a.statusIcon,targetChatSessionType:a.targetChatSessionType,configurationSchema:a.configurationSchema,capabilities:a.capabilities?{vision:a.capabilities.imageInput,editTools:a.capabilities.editTools,toolCalling:!!a.capabilities.toolCalling,agentMode:!!a.capabilities.toolCalling}:void 0},identifier:this.toModelIdentifier(t,e.group,a.id)}});this._localModels.forEach((a,l)=>{a.metadata.vendor===t&&a.group===e.group&&this._localModels.delete(l)});for(let a=0;a<s.length;a++)this._localModels.set(s[a].identifier,{group:e.group,metadata:s[a].metadata,info:r[a]});return s}async $startChatRequest(t,e,n,o,r,s){let a=this._localModels.get(t);if(!a)throw new Error("Model not found");let l=this._languageModelProviders.get(a.metadata.vendor);if(!l)throw new Error(`Language model provider for '${a.metadata.id}' not found.`);let d=[],c=()=>{d.length>0&&(this._proxy.$reportResponsePart(e,new Yt(d)),d.length=0)},u=new Jn(c,30),m=f=>{d.push(f)>30?(c(),u.cancel()):u.schedule()},g=new fs(async f=>{if(s.isCancellationRequested){this._logService.warn(`[CHAT](${l.extension.identifier.value}) CANNOT send progress because the REQUEST IS CANCELLED`);return}let I;if(f instanceof si?I={type:"tool_use",name:f.name,parameters:f.input,toolCallId:f.callId}:f instanceof nn?I={type:"text",value:f.value,audience:f.audience}:f instanceof Un?I={type:"data",mimeType:f.mimeType,data:W.wrap(f.data),audience:f.audience}:f instanceof Ui&&(I={type:"thinking",value:f.value,id:f.id,metadata:f.metadata}),!I){this._logService.warn(`[CHAT](${l.extension.identifier.value}) UNKNOWN part ${JSON.stringify(f)}`);return}m(I)}),h;try{h=l.provider.provideLanguageModelChatResponse(a.info,o.value.map(yT.to),{...r,modelOptions:r.modelOptions??{},modelConfiguration:r.configuration,requestInitiator:n?Ee.toKey(n):"core",toolMode:r.toolMode??1},g,s)}catch(f){throw f}Promise.resolve(h).then(()=>{c(),this._proxy.$reportResponseDone(e,void 0)},f=>{c(),this._proxy.$reportResponseDone(e,Xi(f))})}$provideTokenLength(t,e,n){let o=this._localModels.get(t);if(!o)return Promise.resolve(0);let r=this._languageModelProviders.get(o.metadata.vendor);return r?Promise.resolve(r.provider.provideTokenCount(o.info,e,n)):Promise.resolve(0)}async getDefaultLanguageModel(t,e){let n;e&&await this.selectLanguageModels(t,{});for(let[o,r]of this._localModels)if(r.metadata.isDefaultForLocation.panel&&r.metadata.vendor===Kl){n=o;break}return!n&&!e?this.getDefaultLanguageModel(t,!0):this.getLanguageModelByIdentifier(t,n)}async getLanguageModelByIdentifier(t,e){if(e){if(!this._localModels.has(e)){let n=this.getVendorFromModelIdentifier(e);if(!n){this._logService.warn(`[LanguageModelProxy](${t.identifier.value}) Could not extract vendor from model identifier '${e}'.`);return}if(this._logService.trace(`[LanguageModelProxy](${t.identifier.value}) Could not find model '${e}' in local cache. Trying to resolve model again.`),await this._proxy.$selectChatModels({vendor:n,extension:t.identifier}),!this._localModels.has(e)){this._logService.warn(`[LanguageModelProxy](${t.identifier.value}) Could not find model '${e}' in local cache after re-resolving models.`);return}}return this._createLanguageModelChatApi(t,e)}}async _createLanguageModelChatApi(t,e){let n=this._localModels.get(e);if(!n)return;this._isUsingAuth(t.identifier,n.metadata)&&await this._fakeAuthPopulate(n.metadata);let o=this,r={id:n.info.id,vendor:n.metadata.vendor,family:n.info.family,version:n.info.version,name:n.info.name,pricing:n.metadata.pricing,inputCost:n.metadata.inputCost,outputCost:n.metadata.outputCost,cacheCost:n.metadata.cacheCost,longContextInputCost:n.metadata.longContextInputCost,longContextOutputCost:n.metadata.longContextOutputCost,longContextCacheCost:n.metadata.longContextCacheCost,priceCategory:n.metadata.priceCategory,capabilities:{supportsImageToText:n.metadata.capabilities?.vision??!1,supportsToolCalling:!!n.metadata.capabilities?.toolCalling,editToolsHint:n.metadata.capabilities?.editTools},maxInputTokens:n.metadata.maxInputTokens,countTokens(s,a){if(!o._localModels.has(e))throw wr.NotFound(e);return o._computeTokenLength(e,s,a??me.None)},sendRequest(s,a,l){if(!o._localModels.has(e))throw wr.NotFound(e);return o._sendChatRequest(t,e,s,a??{},l??me.None)}};return Object.freeze(r),r}async selectLanguageModels(t,e){let n=await this._proxy.$selectChatModels({...e,extension:t.identifier});return(await Promise.all(n.map(r=>this._createLanguageModelChatApi(t,r)))).filter(r=>!!r)}async _sendChatRequest(t,e,n,o,r){let s=this._convertMessages(t,n),a=t.identifier,l=this._localModels.get(e)?.metadata;if(!l||!this._localModels.has(e))throw wr.NotFound(`Language model '${e}' is unknown.`);if(this._isUsingAuth(a,l)&&(!await this._getAuthAccess(t,{identifier:l.extension,displayName:l.auth.providerLabel},o.justification,!1)||!this._modelAccessList.get(a)?.has(l.extension)))throw wr.NoPermissions(`Language model '${e}' cannot be used by '${a.value}'.`);let d=Math.random()*1e6|0,c=new T0;this._pendingRequest.set(d,{languageModelId:e,res:c});try{await this._proxy.$tryStartChatRequest(a,e,d,new Yt(s),o,r)}catch(u){throw this._pendingRequest.delete(d),wr.tryDeserialize(u)??u}return c.apiObject}_convertMessages(t,e){let n=[];for(let o of e)o.role===3&&A(t,"languageModelSystem"),n.push(yT.from(o));return n}async $acceptResponsePart(t,e){let n=this._pendingRequest.get(t);n&&n.res.handleResponsePart(e.value)}$onChatModelsChange(){this._onDidChangeProviders.fire()}async $acceptResponseDone(t,e){let n=this._pendingRequest.get(t);n&&(this._pendingRequest.delete(t),e?n.res.reject(wr.tryDeserialize(e)??$P(e)):n.res.resolve())}async _getAuthAccess(t,e,n,o){let r=Xx+e.identifier.value;if(await this._extHostAuthentication.getSession(t,r,[],{silent:!0}))return this.$updateModelAccesslist([{from:t.identifier,to:e.identifier,enabled:!0}]),!0;if(o)return!1;try{let a=n?p(3351,null,e.displayName,n):void 0;return await this._extHostAuthentication.getSession(t,r,[],{forceNewSession:{detail:a}}),this.$updateModelAccesslist([{from:t.identifier,to:e.identifier,enabled:!0}]),!0}catch{return!1}}_isUsingAuth(t,e){return!!e.auth&&!Ee.equals(e.extension,t)}async _fakeAuthPopulate(t){if(t.auth)for(let e of this._languageAccessInformationExtensions)try{await this._getAuthAccess(e,{identifier:t.extension,displayName:""},void 0,!0)}catch(n){this._logService.error("Fake Auth request failed"),this._logService.error(n)}}async _computeTokenLength(t,e,n){let o=this._localModels.get(t);if(!o)throw wr.NotFound(`Language model '${t}' is unknown.`);return this._languageModelProviders.get(o.metadata.vendor)?.provider.provideTokenCount(o.info,e,n)??0}$updateModelAccesslist(t){let e=new Array;for(let{from:n,to:o,enabled:r}of t){let s=this._modelAccessList.get(n)??new Ho;if(s.has(o)!==r){r?s.add(o):s.delete(o),this._modelAccessList.set(n,s);let l={from:n,to:o};e.push(l),this._onDidChangeModelAccess.fire(l)}}}createLanguageModelAccessInformation(t){this._languageAccessInformationExtensions.add(t);let e=ye.signal(ye.filter(this._onDidChangeModelAccess.event,o=>Ee.equals(o.from,t.identifier))),n=ye.signal(this._onDidChangeProviders.event);return{get onDidChange(){return ye.any(e,n)},canSendRequest(o){return!0}}}fileIsIgnored(t,e,n=me.None){return A(t,"chatParticipantAdditions"),this._proxy.$fileIsIgnored(e,n)}get isModelProxyAvailable(){return!!this._languageModelProxyProvider}async getModelProxy(t){if(A(t,"languageModelProxy"),!this._languageModelProxyProvider)throw this._logService.trace("[LanguageModelProxy] No LanguageModelProxyProvider registered"),new Error("No language model proxy provider is registered.");let e=Ee.toKey(t.identifier);try{let n=await Promise.resolve(this._languageModelProxyProvider.provideModelProxy(e,me.None));if(!n)throw this._logService.warn(`[LanguageModelProxy] Provider returned no proxy for ${e}`),new Error("Language model proxy is not available.");return n}catch(n){throw this._logService.error(`[LanguageModelProxy] Provider failed to return proxy for ${e}`,n),n}}async $isFileIgnored(t,e,n){let o=this._ignoredFileProviders.get(t);if(!o)throw new Error("Unknown LanguageModelIgnoredFileProvider");return await o.provideFileIgnored(b.revive(e),n)??!1}registerIgnoredFileProvider(t,e){A(t,"chatParticipantPrivate");let n=Ud._idPool++;return this._proxy.$registerFileIgnoreProvider(n),this._ignoredFileProviders.set(n,e),Q(()=>{this._proxy.$unregisterFileIgnoreProvider(n),this._ignoredFileProviders.delete(n)})}registerLanguageModelProxyProvider(t,e){return A(t,"chatParticipantPrivate"),this._languageModelProxyProvider=e,this._onDidChangeModelProxyAvailability.fire(),Q(()=>{this._languageModelProxyProvider===e&&(this._languageModelProxyProvider=void 0,this._onDidChangeModelProxyAvailability.fire())})}};Ud=D([C(0,ae),C(1,ne),C(2,Mg)],Ud);var UK=60,FK=UK*60,E0=FK*24,sUe=E0*7,aUe=E0*30,lUe=E0*365;function BB(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 Og={DateTimeFormat(i,t){return new pt(()=>{try{return new Intl.DateTimeFormat(i,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(i,t){return new pt(()=>{try{return new Intl.Collator(i,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(i,t){return new pt(()=>{try{return new Intl.Segmenter(i,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(i,t){return new pt(()=>{try{return new Intl.Locale(i,t)}catch{return new Intl.Locale(ts,t)}})},NumberFormat(i,t){return new pt(()=>{try{return new Intl.NumberFormat(i,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};var Ng=class i{constructor(t){let e=m_(t);this._defaultValue=e,this._asciiMap=i._createAsciiMap(e),this._map=new Map}static _createAsciiMap(t){let e=new Uint8Array(256);return e.fill(t),e}set(t,e){let n=m_(e);t>=0&&t<256?this._asciiMap[t]=n:this._map.set(t,n)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}};var w0=class extends Ng{constructor(e,n){super(0);this._segmenter=null;this._cachedLine=null;this._cachedSegments=[];this.intlSegmenterLocales=n,this.intlSegmenterLocales.length>0?this._segmenter=Og.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let o=0,r=e.length;o<r;o++)this.set(e.charCodeAt(o),2);this.set(32,1),this.set(9,1)}findPrevIntlWordBeforeOrAtOffset(e,n){let o=null;for(let r of this._getIntlSegmenterWordsOnLine(e)){if(r.index>n)break;o=r}return o}findNextIntlWordAtOrAfterOffset(e,n){for(let o of this._getIntlSegmenterWordsOnLine(e))if(!(o.index<n))return o;return null}_getIntlSegmenterWordsOnLine(e){return this._segmenter?this._cachedLine===e?this._cachedSegments:(this._cachedLine=e,this._cachedSegments=this._filterWordSegments(this._segmenter.value.segment(e)),this._cachedSegments):[]}_filterWordSegments(e){let n=[];for(let o of e)this._isWordLike(o)&&n.push(o);return n}_isWordLike(e){return!!e.isWordLike}},$B=new Kr(10);function zB(i,t){let e=`${i}/${t.join(",")}`,n=$B.get(e);return n||(n=new w0(i,t),$B.set(e,n)),n}var Vb=class{constructor(t,e,n,o){this.searchString=t,this.isRegex=e,this.matchCase=n,this.wordSeparators=o}parseSearchRequest(){if(this.searchString==="")return null;let t;this.isRegex?t=k0(this.searchString):t=this.searchString.indexOf(`
`)>=0;let e=null;try{e=SI(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:t,global:!0,unicode:!0})}catch{return null}if(!e)return null;let n=!this.isRegex&&!t;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new _x(e,this.wordSeparators?zB(this.wordSeparators,[]):null,n?this.searchString:null)}};function k0(i){if(!i||i.length===0)return!1;for(let t=0,e=i.length;t<e;t++){let n=i.charCodeAt(t);if(n===10)return!0;if(n===92){if(t++,t>=e)break;let o=i.charCodeAt(t);if(o===110||o===114||o===87)return!0}}return!1}function P0(i,t,e){if(!e)return new Ac(i,null);let n=[];for(let o=0,r=t.length;o<r;o++)n[o]=t[o];return new Ac(i,n)}function VK(i,t,e,n,o){if(n===0)return!0;let r=t.charCodeAt(n-1);if(i.get(r)!==0||r===13||r===10)return!0;if(o>0){let s=t.charCodeAt(n);if(i.get(s)!==0)return!0}return!1}function WK(i,t,e,n,o){if(n+o===e)return!0;let r=t.charCodeAt(n+o);if(i.get(r)!==0||r===13||r===10)return!0;if(o>0){let s=t.charCodeAt(n+o-1);if(i.get(s)!==0)return!0}return!1}function _0(i,t,e,n,o){return VK(i,t,e,n,o)&&WK(i,t,e,n,o)}var iE=class{constructor(t,e){this._wordSeparators=t,this._searchRegex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(t){this._searchRegex.lastIndex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(t){let e=t.length,n;do{if(this._prevMatchStartIndex+this._prevMatchLength===e||(n=this._searchRegex.exec(t),!n))return null;let o=n.index,r=n[0].length;if(o===this._prevMatchStartIndex&&r===this._prevMatchLength){if(r===0){I_(t,e,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=o,this._prevMatchLength=r,!this._wordSeparators||_0(this._wordSeparators,t,e,o,r))return n}while(n);return null}};function qB(i){return i.scheme!==B.file&&i.scheme!==B.vscodeRemote}function BK(i){if(i.folders.length)return i.folders.every(t=>qB(t.uri))?i.folders[0].uri:void 0;if(i.configuration&&qB(i.configuration))return i.configuration}function KB(i){return BK(i)?.scheme}var Ug=R("remoteAgentService"),_Ue=new class{constructor(){this.maxSampleCount=5;this.sampleDelay=2e3;this.initial=[];this.maxInitialCount=3;this.average=[];this.maxAverageCount=100;this.highLatencyMultiple=2;this.highLatencyMinThreshold=500;this.highLatencyMaxThreshold=1500;this.lastMeasurement=void 0}get latency(){return this.lastMeasurement}async measure(i){let t=1/0;for(let n=0;n<this.maxSampleCount;n++){let o=await i.getRoundTripTime();if(o===void 0)return;t=Math.min(t,o/2),await Vt(this.sampleDelay)}this.average.push(t),this.average.length>this.maxAverageCount&&this.average.shift();let e;return this.initial.length<this.maxInitialCount?this.initial.push(t):e=this.initial.reduce((n,o)=>n+o,0)/this.initial.length,this.lastMeasurement={initial:e,current:t,average:this.average.reduce((n,o)=>n+o,0)/this.average.length,high:typeof e>"u"?!1:t>this.highLatencyMaxThreshold||t>this.highLatencyMinThreshold&&t>e*this.highLatencyMultiple},this.lastMeasurement}};var jB=R("pathService"),Fg=class{constructor(t,e,n,o){this.localUserHome=t;this.remoteAgentService=e;this.environmentService=n;this.contextService=o;this.resolveOS=(async()=>(await this.remoteAgentService.getEnvironment())?.os||mr)(),this.resolveUserHome=(async()=>{let r=await this.remoteAgentService.getEnvironment();return this.maybeUnresolvedUserHome=r?.userHome??t})()}hasValidBasename(t,e,n){return typeof e=="string"||typeof e>"u"?this.resolveOS.then(o=>this.doHasValidBasename(t,o,e)):this.doHasValidBasename(t,e,n)}doHasValidBasename(t,e,n){return t.scheme===B.file||t.scheme===B.vscodeRemote?pF(n??rt(t),e===1):!0}get defaultUriScheme(){return Fg.findDefaultUriScheme(this.environmentService,this.contextService)}static findDefaultUriScheme(t,e){if(t.remoteAuthority)return B.vscodeRemote;let n=KB(e.getWorkspace());if(n)return n;let o=e.getWorkspace().folders[0];if(o)return o.uri.scheme;let r=e.getWorkspace().configuration;return r?r.scheme:B.file}userHome(t){return t?.preferLocal?this.localUserHome:this.resolveUserHome}get resolvedUserHome(){return this.maybeUnresolvedUserHome}get path(){return this.resolveOS.then(t=>t===1?vn:$e)}async fileURI(t){let e="";if(await this.resolveOS===1&&(t=t.replace(/\\/g,"/")),t[0]==="/"&&t[1]==="/"){let o=t.indexOf("/",2);o===-1?(e=t.substring(2),t="/"):(e=t.substring(2,o),t=t.substring(o)||"/")}return b.from({scheme:B.file,authority:e,path:t,query:"",fragment:""})}};Fg=D([C(1,Ug),C(2,Gp),C(3,gs)],Fg);function zK(i){return typeof i=="object"&&"uri"in i&&"pattern"in i}var Wb=class{constructor(t,e,n,o,r,s){this.configurationService=t;this.workspaceContextService=e;this.editorGroupsService=n;this.logService=o;this.pathService=r;this.uriIdentityService=s}aiText(t,e,n={}){return{...this.commonQuery(e?.map(fv),n),type:3,contentPattern:t}}text(t,e,n={}){t=this.getContentPattern(t,n);let o=this.configurationService.getValue(),r=e&&e.some(a=>!this.configurationService.getValue({resource:a}).search?.useRipgrep);return{...this.commonQuery(e?.map(fv),n),type:2,contentPattern:t,previewOptions:n.previewOptions,maxFileSize:n.maxFileSize,usePCRE2:o.search?.usePCRE2||r||!1,surroundingContext:n.surroundingContext,userDisabledExcludesAndIgnoreFiles:n.disregardExcludeSettings&&n.disregardIgnoreFiles}}getContentPattern(t,e){let n=this.configurationService.getValue();t.isRegExp&&(t.pattern=t.pattern.replace(/\r?\n/g,"\\n"));let o={...t,wordSeparators:n.editor.wordSeparators};return this.isCaseSensitive(t,e)&&(o.isCaseSensitive=!0),this.isMultiline(t)&&(o.isMultiline=!0),e.notebookSearchConfig?.includeMarkupInput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookMarkdownInput=e.notebookSearchConfig.includeMarkupInput),e.notebookSearchConfig?.includeMarkupPreview&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookMarkdownPreview=e.notebookSearchConfig.includeMarkupPreview),e.notebookSearchConfig?.includeCodeInput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookCellInput=e.notebookSearchConfig.includeCodeInput),e.notebookSearchConfig?.includeOutput&&(o.notebookInfo||(o.notebookInfo={}),o.notebookInfo.isInNotebookCellOutput=e.notebookSearchConfig.includeOutput),o}file(t,e={}){return{...this.commonQuery(t,e),type:1,filePattern:e.filePattern?e.filePattern.trim():e.filePattern,exists:e.exists,sortByScore:e.sortByScore,cacheKey:e.cacheKey,shouldGlobMatchFilePattern:e.shouldGlobSearch}}handleIncludeExclude(t,e){if(!t)return{};if(Array.isArray(t)){if(t=t.filter(n=>n.length>0).map(sE),!t.length)return{}}else t=sE(t);return e?this.parseSearchPaths(t):{pattern:D0(...Array.isArray(t)?t:[t])}}commonQuery(t=[],e={}){let n=Array.isArray(e.excludePattern)?e.excludePattern.map(c=>c.pattern).flat():e.excludePattern;n=n?.length===1?n[0]:n;let o=this.handleIncludeExclude(e.includePattern,e.expandPatterns),r=this.handleIncludeExclude(n,e.expandPatterns),s=t.length>1,a=(o.searchPaths&&o.searchPaths.length?o.searchPaths.map(c=>this.getFolderQueryForSearchPath(c,e,r)):t.map(c=>this.getFolderQueryForRoot(c,e,r,s))).filter(c=>!!c),l={_reason:e._reason,folderQueries:a,usingSearchPaths:!!(o.searchPaths&&o.searchPaths.length),extraFileResources:e.extraFileResources,excludePattern:r.pattern,includePattern:o.pattern,ignoreGlobCase:e.ignoreGlobCase,onlyOpenEditors:e.onlyOpenEditors,maxResults:e.maxResults,onlyFileScheme:e.onlyFileScheme};if(e.onlyOpenEditors){let c=nt(this.editorGroupsService.groups.flatMap(g=>g.editors.map(h=>h.resource)));this.logService.trace("QueryBuilder#commonQuery - openEditor URIs",JSON.stringify(c));let u=c.filter(g=>FT(l,g.fsPath)),m=this.commonQueryFromFileList(u);return this.logService.trace("QueryBuilder#commonQuery - openEditor Query",JSON.stringify(m)),{...l,...m}}if(e.changedFileUris!==void 0){let c=e.changedFileUris.filter(m=>FT(l,m.fsPath)),u=this.commonQueryFromFileList(c);return this.logService.trace("QueryBuilder#commonQuery - changedFile Query",JSON.stringify(u)),{...l,...u}}let d=e.extraFileResources&&e.extraFileResources.filter(c=>FT(l,c.fsPath));return l.extraFileResources=d&&d.length?d:void 0,l}commonQueryFromFileList(t){let e=[],n=new je,o={},r=!1;return t.forEach(s=>{if(s.scheme===B.walkThrough)return;if(kF(s)){let l=this.workspaceContextService.getWorkspaceFolder(s)?.uri??this.uriIdentityService.extUri.dirname(s),d=n.get(l);d||(r=!0,d={folder:l,includePattern:{}},e.push(d),n.set(l,d));let c=bi(l.fsPath,s.fsPath);hi(d.includePattern)[GB(c.replace(/\\/g,"/"))]=!0}else s.fsPath&&(r=!0,o[GB(s.fsPath)]=!0)}),{folderQueries:e,includePattern:o,usingSearchPaths:!0,excludePattern:r?void 0:{"**/*":!0}}}isCaseSensitive(t,e){if(e.isSmartCase){if(t.isRegExp){if(S_(t.pattern,!0))return!0}else if(S_(t.pattern))return!0}return!!t.isCaseSensitive}isMultiline(t){return t.isMultiline||t.isRegExp&&k0(t.pattern)||t.pattern.indexOf(`
`)>=0?!0:!!t.isMultiline}parseSearchPaths(t){let e=u=>xn(u)||/^\.\.?([\/\\]|$)/.test(u),o=(Array.isArray(t)?t:KK(t)).map(u=>{let m=this.pathService.resolvedUserHome;return m?Fl(u,m.scheme===B.file?m.fsPath:m.path):u}),r=rp(o,u=>e(u)?"searchPaths":"exprSegments"),s=(r.exprSegments||[]).map(u=>vr(u,"/")).map(u=>vr(u,"\\")).map(u=>(u[0]==="."&&(u="*"+u),jK(u))),a={},l=this.expandSearchPathPatterns(r.searchPaths||[]);l&&l.length&&(a.searchPaths=l);let d=s.flat(),c=D0(...d);return c&&(a.pattern=c),a}getExcludesForFolder(t,e){return e.disregardExcludeSettings?void 0:lB(t,!e.disregardSearchExcludeSettings)}expandSearchPathPatterns(t){if(!t||!t.length)return[];let e=t.flatMap(o=>{let{pathPortion:r,globPortion:s}=qK(o);return s&&(s=R0(s)),this.expandOneSearchPath(r).flatMap(l=>this.resolveOneSearchPathPattern(l,s))}),n=new Map;return e.forEach(o=>{let r=o.searchPath.toString(),s=n.get(r);s?o.pattern&&(s.pattern=s.pattern||{},s.pattern[o.pattern]=!0):n.set(r,{searchPath:o.searchPath,pattern:o.pattern?D0(o.pattern):void 0})}),Array.from(n.values())}expandOneSearchPath(t){if(xn(t)){let e=this.workspaceContextService.getWorkspace().folders;return e[0]&&e[0].uri.scheme!==B.file?[{searchPath:e[0].uri.with({path:t})}]:[{searchPath:b.file(ro(t))}]}if(this.workspaceContextService.getWorkbenchState()===2){let e=this.workspaceContextService.getWorkspace().folders[0].uri;if(t=sE(t),t.startsWith("../")||t===".."){let o=$e.resolve(e.path,t);return[{searchPath:e.with({path:o})}]}let n=R0(t);return[{searchPath:e,pattern:n}]}else{if(t==="./"||t===".\\")return[];{let e=t.replace(/^\.[\/\\]/,""),o=this.workspaceContextService.getWorkspace().folders.map(r=>{let s=e.match(new RegExp(`^${Qo(r.name)}(?:/(.*)|$)`));return s?{match:s,folder:r}:null}).filter(xo);if(o.length)return o.map(r=>{let s=r.match[1];return{searchPath:r.folder.uri,pattern:s&&R0(s)}});{let r=t.match(/\.[\/\\](.+)[\/\\]?/),s=r?r[1]:t,a=p(18282,null,s);throw new Error(a)}}}}resolveOneSearchPathPattern(t,e){let n=t.pattern&&e?`${t.pattern}/${e}`:t.pattern||e,o=[{searchPath:t.searchPath,pattern:n}];return n&&!n.endsWith("**")&&o.push({searchPath:t.searchPath,pattern:n+"/**"}),o}getFolderQueryForSearchPath(t,e,n){let o=this.getFolderQueryForRoot(fv(t.searchPath),e,n,!1);return o?{...o,includePattern:t.pattern}:null}getFolderQueryForRoot(t,e,n,o){let r,s=b.isUri(t)?t:t.uri,a=e.excludePattern?.map(g=>{let h=e.excludePattern&&zK(g)?g.uri:void 0;return!h||!(b.isUri(t)&&this.uriIdentityService.extUri.isEqual(t,h))?h:void 0});if(a?.length||(a=[void 0]),n.searchPaths){let g=n.searchPaths.filter(h=>Vn(h.searchPath,s))[0];if(g&&!g.pattern)return null;g&&(r=g.pattern)}let l=this.configurationService.getValue({resource:s}),c={...this.getExcludesForFolder(l,e)||{},...r||{}},u=b.isUri(t)?rt(t):t.name,m=a.map(g=>Object.keys(c).length>0?{folder:g,pattern:c}:void 0).filter(g=>g);return{folder:s,folderName:o?u:void 0,excludePattern:m,fileEncoding:l.files&&l.files.encoding,disregardIgnoreFiles:typeof e.disregardIgnoreFiles=="boolean"?e.disregardIgnoreFiles:!l.search?.useIgnoreFiles,disregardGlobalIgnoreFiles:typeof e.disregardGlobalIgnoreFiles=="boolean"?e.disregardGlobalIgnoreFiles:!l.search?.useGlobalIgnoreFiles,disregardParentIgnoreFiles:typeof e.disregardParentIgnoreFiles=="boolean"?e.disregardParentIgnoreFiles:!l.search?.useParentIgnoreFiles,ignoreSymlinks:typeof e.ignoreSymlinks=="boolean"?e.ignoreSymlinks:!l.search?.followSymlinks,ignoreGlobCase:e.ignoreGlobCase}}};Wb=D([C(0,Gt),C(1,gs),C(2,AW),C(3,ne),C(4,jB),C(5,jx)],Wb);function qK(i){let t=i.match(/[\*\{\}\(\)\[\]\?]/);if(t){let e=t.index,n=i.substr(0,e).match(/[/|\\][^/\\]*$/);if(n){let o=i.substr(0,n.index);return o.match(/[/\\]/)||(o+="/"),{pathPortion:o,globPortion:i.substr((n.index||0)+1)}}}return{pathPortion:i}}function D0(...i){return i.length?i.reduce((t,e)=>(t[e]=!0,t),Object.create(null)):void 0}function KK(i){return Ea(i,",").map(t=>t.trim()).filter(t=>!!t.length)}function jK(i){return[`**/${i}/**`,`**/${i}`].map(e=>e.replace(/\*\*\/\*\*/g,"**"))}function sE(i){return i.replace(/\\/g,"/")}function R0(i){return sE(i).replace(/^\.\//,"").replace(/\/+$/g,"")}function GB(i){return i.replace(/([?*[\]])/g,"[$1]")}var GK=7e3;function JB(i,t){let e=t.activationEvents;if(!e)return Promise.resolve(void 0);let n=[],o=[];for(let c of e)if(/^workspaceContains:/.test(c)){let u=c.substr(18);u.indexOf("*")>=0||u.indexOf("?")>=0||i.forceUsingSearch?o.push(u):n.push(u)}if(n.length===0&&o.length===0)return Promise.resolve(void 0);let{promise:r,resolve:s}=Bh(),a=c=>s({activationEvent:c}),l=Promise.all(n.map(c=>QK(i,c,a))).then(()=>{}),d=JK(i,t.identifier,o,a);return Promise.all([l,d]).then(()=>{s(void 0)}),r}async function QK(i,t,e){for(let n of i.folders)if(await i.exists(vt(b.revive(n),t))){e(`workspaceContains:${t}`);return}}async function JK(i,t,e,n){if(e.length===0)return Promise.resolve(void 0);let o=new ke,r=i.checkExists(i.folders,e,o.token),s=setTimeout(async()=>{o.cancel(),i.logService.info(`Not activating extension '${t.value}': Timed out while searching for 'workspaceContains' pattern ${e.join(",")}`)},GK),a=!1;try{a=await r}catch(l){Kt(l)||Qe(l)}o.dispose(),clearTimeout(s),a&&n(`workspaceContains:${e.join(",")}`)}var Hg=class{constructor(t){this._onDidChangePassword=new E;this.onDidChangePassword=this._onDidChangePassword.event;this._proxy=t.getProxy(F.MainThreadSecretState)}async $onDidChangePassword(t){this._onDidChangePassword.fire(t)}get(t,e){return this._proxy.$getPassword(t,e)}store(t,e,n){return this._proxy.$setPassword(t,e,n)}delete(t,e){return this._proxy.$deletePassword(t,e)}keys(t){return this._proxy.$getKeys(t)}},Vg=R("IExtHostSecretState");var aE=class{constructor(t,e){this.disposables=new z;this._id=Ee.toKey(t.identifier),this.#e=e,this.onDidChange=ye.map(ye.filter(this.#e.onDidChangePassword,n=>n.extensionId===this._id),n=>({key:n.key}),this.disposables)}#e;dispose(){this.disposables.dispose()}get(t){return this.#e.get(this._id,t)}store(t,e){return this.#e.store(this._id,t,e)}delete(t){return this.#e.delete(this._id,t)}keys(){return this.#e.keys(this._id)||[]}};var Wg=class{constructor(t,e,n){this.logService=n;this.bundleCache=new Map;this._proxy=e.getProxy(F.MainThreadLocalization),this.currentLanguage=t.environment.appLanguage,this.isDefaultLanguage=this.currentLanguage===ts}getMessage(t,e){let{message:n,args:o,comment:r}=e;if(this.isDefaultLanguage)return v_(n,o??{});let s=n;r&&r.length>0&&(s+=`/${Array.isArray(r)?r.join(""):r}`);let a=this.bundleCache.get(t)?.contents[s];return a||this.logService.warn(`Using default string since no string found in i18n bundle that has the key: ${s}`),v_(a??n,o??{})}getBundle(t){return this.bundleCache.get(t)?.contents}getBundleUri(t){return this.bundleCache.get(t)?.uri}async initializeLocalizedMessages(t){if(this.isDefaultLanguage||!t.l10n&&!t.isBuiltin||this.bundleCache.has(t.identifier.value))return;let e,n=await this.getBundleLocation(t);if(!n){this.logService.error(`No bundle location found for extension ${t.identifier.value}`);return}try{let o=await this._proxy.$fetchBundleContents(n),r=JSON.parse(o);e=t.isBuiltin?r.contents?.bundle:r}catch(o){this.logService.error(`Failed to load translations for ${t.identifier.value} from ${n}: ${o.message}`);return}e&&this.bundleCache.set(t.identifier.value,{contents:e,uri:n})}async getBundleLocation(t){if(t.isBuiltin){let e=await this._proxy.$fetchBuiltInBundleUri(t.identifier.value,this.currentLanguage);return b.revive(e)}return t.l10n?b.joinPath(t.extensionLocation,t.l10n,`bundle.l10n.${this.currentLanguage}.json`):void 0}};Wg=D([C(0,Xe),C(1,ae),C(2,ne)],Wg);var Bg=R("IExtHostLocalizationService");var zg=R("IExtHostManagedSockets"),$g=class{constructor(t){this._remoteSocketIdCounter=0;this._factory=null;this._managedRemoteSockets=new Map;this._proxy=t.getProxy(F.MainThreadManagedSockets)}setFactory(t,e){for(let n of this._managedRemoteSockets.values())n.dispose();this._factory&&this._proxy.$unregisterSocketFactory(this._factory.socketFactoryId),this._factory=new A0(t,e),this._proxy.$registerSocketFactory(this._factory.socketFactoryId)}async $openRemoteSocket(t){if(!this._factory||this._factory.socketFactoryId!==t)throw new Error(`No socket factory with id ${t}`);let e=++this._remoteSocketIdCounter,n=await this._factory.makeConnection(),o=new z;return this._managedRemoteSockets.set(e,new M0(e,n,o)),o.add(Q(()=>this._managedRemoteSockets.delete(e))),o.add(n.onDidEnd(()=>{this._proxy.$onDidManagedSocketEnd(e),o.dispose()})),o.add(n.onDidClose(r=>{this._proxy.$onDidManagedSocketClose(e,r?.stack??r?.message),o.dispose()})),o.add(n.onDidReceiveMessage(r=>this._proxy.$onDidManagedSocketHaveData(e,W.wrap(r)))),e}$remoteSocketWrite(t,e){this._managedRemoteSockets.get(t)?.actual.send(e.buffer)}$remoteSocketEnd(t){let e=this._managedRemoteSockets.get(t);e&&(e.actual.end(),e.dispose())}async $remoteSocketDrain(t){await this._managedRemoteSockets.get(t)?.actual.drain?.()}};$g=D([C(0,ae)],$g);var A0=class{constructor(t,e){this.socketFactoryId=t;this.makeConnection=e}},M0=class extends U{constructor(e,n,o){super();this.socketId=e;this.actual=n;this._register(o)}};var N0=R("IHostUtils"),Fd=class extends U{constructor(e,n,o,r,s,a,l,d,c,u,m,g,h){super();this._extHostManagedSockets=g;this._extHostLanguageModels=h;this._onDidChangeRemoteConnectionData=this._register(new E);this.onDidChangeRemoteConnectionData=this._onDidChangeRemoteConnectionData.event;this._realPathCache=new Map;this._isTerminating=!1;this._hostUtils=n,this._extHostContext=o,this._initData=l,this._extHostWorkspace=r,this._extHostConfiguration=s,this._logService=a,this._extHostTunnelService=c,this._extHostTerminalService=u,this._extHostLocalizationService=m,this._mainThreadWorkspaceProxy=this._extHostContext.getProxy(F.MainThreadWorkspace),this._mainThreadTelemetryProxy=this._extHostContext.getProxy(F.MainThreadTelemetry),this._mainThreadExtensionsProxy=this._extHostContext.getProxy(F.MainThreadExtensionService),this._almostReadyToRunExtensions=new Sn,this._readyToStartExtensionHost=new Sn,this._readyToRunExtensions=new Sn,this._eagerExtensionsActivated=new Sn,this._activationEventsReader=new O0(this._initData.extensions.activationEvents),this._globalRegistry=new Xa(this._activationEventsReader,this._initData.extensions.allExtensions);let f=new Ho(this._initData.extensions.myExtensions);this._myRegistry=new Xa(this._activationEventsReader,ZB(this._globalRegistry,f)),bl&&(this._logService.info(`Creating extension host with the following global extensions: ${qg(this._globalRegistry)}`),this._logService.info(`Creating extension host with the following local extensions: ${qg(this._myRegistry)}`)),this._storage=new bg(this._extHostContext,this._logService),this._secretState=new Hg(this._extHostContext),this._storagePath=d,this._instaService=this._store.add(e.createChild(new Ml([yg,this._storage],[Vg,this._secretState]))),this._activator=this._register(new fg(this._myRegistry,this._globalRegistry,{onExtensionActivationError:(I,x,T)=>{this._mainThreadExtensionsProxy.$onExtensionActivationError(I,Xi(x),T)},actualActivateExtension:async(I,x)=>{if(Xa.isHostExtension(I,this._myRegistry,this._globalRegistry))return await this._mainThreadExtensionsProxy.$activateExtension(I,x),new QT;let T=this._myRegistry.getExtensionDescription(I);return this._activateExtension(T,x)}},this._logService)),this._extensionPathIndex=null,this._resolvers=Object.create(null),this._started=!1,this._remoteConnectionData=this._initData.remote.connectionData}getRemoteConnectionData(){return this._remoteConnectionData}async initialize(){try{await this._beforeAlmostReadyToRunExtensions(),this._almostReadyToRunExtensions.open(),await this._extHostWorkspace.waitForInitializeCall(),Wt("code/extHost/ready"),this._readyToStartExtensionHost.open(),this._initData.autoStart&&this._startExtensionHost()}catch(e){Qe(e)}}async _deactivateAll(){this._storagePath.onWillDeactivateAll();let e=[];try{e=this._myRegistry.getAllExtensionDescriptions().map(s=>s.identifier).filter(s=>this.isActivated(s)).map(s=>this._deactivate(s))}catch{}await Promise.all(e)}terminate(e,n=0){if(this._isTerminating)return;this._isTerminating=!0,this._logService.info(`Extension host terminating: ${e}`),this._logService.flush(),this._extHostTerminalService.dispose(),this._activator.dispose(),Eh(r=>{this._logService.error(r)}),this._extHostContext.dispose();let o=this._deactivateAll();Promise.race([Vt(5e3),o]).finally(()=>{this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} exiting with code ${n}`):this._logService.info(`Extension host exiting with code ${n}`),this._logService.flush(),this._logService.dispose(),this._hostUtils.exit(n)})}isActivated(e){return this._readyToRunExtensions.isOpen()?this._activator.isActivated(e):!1}async getExtension(e){let n=await this._mainThreadExtensionsProxy.$getExtension(e);return n&&{...n,identifier:new Ee(n.identifier.value),extensionLocation:b.revive(n.extensionLocation)}}_activateByEvent(e,n){return this._activator.activateByEvent(e,n)}_activateById(e,n){return this._activator.activateById(e,n)}activateByIdWithErrors(e,n){return this._activateById(e,n).then(()=>{let o=this._activator.getActivatedExtension(e);if(o.activationFailed)return Promise.reject(o.activationFailedError)})}getExtensionRegistry(){return this._readyToRunExtensions.wait().then(e=>this._myRegistry)}getExtensionExports(e){if(this._readyToRunExtensions.isOpen())return this._activator.getActivatedExtension(e).exports;try{return this._activator.getActivatedExtension(e).exports}catch{return null}}async _realPathExtensionUri(e){if(e.scheme===B.file&&this._hostUtils.fsRealpath){let n=e.fsPath;this._realPathCache.has(n)||this._realPathCache.set(n,this._hostUtils.fsRealpath(n));let o=await this._realPathCache.get(n);return b.file(o)}return e}async getExtensionPathIndex(){return this._extensionPathIndex||(this._extensionPathIndex=this._createExtensionPathIndex(this._myRegistry.getAllExtensionDescriptions()).then(e=>new L0(e))),this._extensionPathIndex}async _createExtensionPathIndex(e){let n=tr.forUris(o=>gc.ignorePathCasing(o));return await Promise.all(e.map(async o=>{if(this._getEntryPoint(o)){let r=await this._realPathExtensionUri(o.extensionLocation);n.set(r,o)}})),n}_deactivate(e){let n=Promise.resolve(void 0);if(!this._readyToRunExtensions.isOpen()||!this._activator.isActivated(e))return n;let o=this._activator.getActivatedExtension(e);if(!o)return n;try{typeof o.module.deactivate=="function"&&(n=Promise.resolve(o.module.deactivate()).then(void 0,r=>(this._logService.error(r),Promise.resolve(void 0))))}catch(r){this._logService.error(`An error occurred when deactivating the extension '${e.value}':`),this._logService.error(r)}try{o.disposable.dispose()}catch(r){this._logService.error(`An error occurred when disposing the subscriptions for extension '${e.value}':`),this._logService.error(r)}return n}async _activateExtension(e,n){return this._initData.remote.isRemote?this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier):await this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier),this._doActivateExtension(e,n).then(o=>{let r=o.activationTimes;return this._mainThreadExtensionsProxy.$onDidActivateExtension(e.identifier,r.codeLoadingTime,r.activateCallTime,r.activateResolvedTime,n),this._logExtensionActivationTimes(e,n,"success",r),o},o=>{throw this._logExtensionActivationTimes(e,n,"failure"),o})}_logExtensionActivationTimes(e,n,o,r){let s=XB(e,n);this._mainThreadTelemetryProxy.$publicLog2("extensionActivationTimes",{...s,...r||{},outcome:o})}_doActivateExtension(e,n){let o=XB(e,n);this._mainThreadTelemetryProxy.$publicLog2("activatePlugin",o);let r=this._getEntryPoint(e);if(!r)return Promise.resolve(new GT(Tu.NONE));this._logService.info(`ExtensionService#_doActivateExtension ${e.identifier.value}, startup: ${n.startup}, activationEvent: '${n.activationEvent}'${e.identifier.value!==n.extensionId.value?`, root cause: ${n.extensionId.value}`:""}`),this._logService.flush();let s=this._isESM(e),a=new z,l=new hg(n.startup);return Promise.all([s?this._loadESMModule(e,vt(e.extensionLocation,r),l):this._loadCommonJSModule(e,vt(e.extensionLocation,r),l),this._loadExtensionContext(e,a)]).then(d=>(Wt(`code/extHost/willActivateExtension/${e.identifier.value}`),Fd._callActivate(this._logService,e.identifier,d[0],d[1],a,l))).then(d=>(Wt(`code/extHost/didActivateExtension/${e.identifier.value}`),d))}_loadExtensionContext(e,n){let o=this._extHostLanguageModels.createLanguageModelAccessInformation(e),r=n.add(new JT(e,this._storage)),s=n.add(new Nb(e.identifier.value,!1,this._storage)),a=n.add(new aE(e,this._secretState)),l=e.isUnderDevelopment?this._initData.environment.extensionTestsLocationURI?3:2:1,d=this._initData.remote.isRemote?2:1;return this._logService.trace(`ExtensionService#loadExtensionContext ${e.identifier.value}`),Promise.all([r.whenReady,s.whenReady,this._storagePath.whenReady]).then(()=>{let c=this,u,m,g=Oe(e,"ipc")?this._initData.messagePorts?.get(Ee.toKey(e.identifier)):void 0;return Object.freeze({globalState:r,workspaceState:s,secrets:a,subscriptions:[],get languageModelAccessInformation(){return o},get extensionUri(){return e.extensionLocation},get extensionPath(){return e.extensionLocation.fsPath},asAbsolutePath(h){return He(e.extensionLocation.fsPath,h)},get storagePath(){return c._storagePath.workspaceValue(e)?.fsPath},get globalStoragePath(){return c._storagePath.globalValue(e).fsPath},get logPath(){return He(c._initData.logsLocation.fsPath,e.identifier.value)},get logUri(){return b.joinPath(c._initData.logsLocation,e.identifier.value)},get storageUri(){return c._storagePath.workspaceValue(e)},get globalStorageUri(){return c._storagePath.globalValue(e)},get extensionMode(){return l},get extension(){return u===void 0&&(u=new Hd(c,e.identifier,e,d,!1)),u},get extensionRuntime(){return A(e,"extensionRuntime"),c.extensionRuntime},get environmentVariableCollection(){return c._extHostTerminalService.getEnvironmentVariableCollection(e)},get messagePassingProtocol(){if(!m){if(!g)return;let h=ye.buffer(ye.fromDOMEventEmitter(g,"message",f=>f.data),"onDidReceiveMessage");g.start(),m={onDidReceiveMessage:h,postMessage:g.postMessage.bind(g)}}return m}})})}static _callActivate(e,n,o,r,s,a){return o=o||{activate:void 0,deactivate:void 0},this._callActivateOptional(e,n,o,r,a).then(l=>new Eu(!1,null,a.build(),o,l,Q(()=>{s.dispose(),kn(r.subscriptions)})))}static _callActivateOptional(e,n,o,r,s){if(typeof o.activate=="function")try{s.activateCallStart(),e.trace(`ExtensionService#_callActivateOptional ${n.value}`);let a=o.activate.apply(globalThis,[r]);return s.activateCallStop(),s.activateResolveStart(),Promise.resolve(a).then(l=>(s.activateResolveStop(),l))}catch(a){return Promise.reject(a)}else return Promise.resolve(o)}_activateOneStartupFinished(e,n){this._activateById(e.identifier,{startup:!1,extensionId:e.identifier,activationEvent:n}).then(void 0,o=>{this._logService.error(o)})}_activateAllStartupFinishedDeferred(e,n=0){let r=Date.now();uI(()=>{for(let s=n;s<e.length;s+=1){let a=e[s];for(let l of a.activationEvents??[])if(l==="onStartupFinished")if(Date.now()-r>50){this._activateAllStartupFinishedDeferred(e,s);break}else this._activateOneStartupFinished(a,l)}})}_activateAllStartupFinished(){this._mainThreadExtensionsProxy.$setPerformanceMarks(BF()),this._extHostConfiguration.getConfigProvider().then(e=>{let n=e.getConfiguration("extensions.experimental").get("deferredStartupFinishedActivation"),o=this._myRegistry.getAllExtensionDescriptions();if(n)this._activateAllStartupFinishedDeferred(o);else for(let r of o)if(r.activationEvents)for(let s of r.activationEvents)s==="onStartupFinished"&&this._activateOneStartupFinished(r,s)})}_handleEagerExtensions(){let e=this._activateByEvent("*",!0).then(void 0,a=>{this._logService.error(a)});this._register(this._extHostWorkspace.onDidChangeWorkspace(a=>this._handleWorkspaceContainsEagerExtensions(a.added)));let n=this._extHostWorkspace.workspace?this._extHostWorkspace.workspace.folders:[],o=this._handleWorkspaceContainsEagerExtensions(n),r=this._handleRemoteResolverEagerExtensions(),s=Promise.all([r,e,o]).then(()=>{});return Promise.race([s,Vt(1e4)]).then(()=>{this._activateAllStartupFinished()}),s}_handleWorkspaceContainsEagerExtensions(e){return e.length===0?Promise.resolve(void 0):Promise.all(this._myRegistry.getAllExtensionDescriptions().map(n=>this._handleWorkspaceContainsEagerExtension(e,n))).then(()=>{})}async _handleWorkspaceContainsEagerExtension(e,n){if(this.isActivated(n.identifier))return;let o=!this._initData.remote.isRemote&&!!this._initData.remote.authority,r={logService:this._logService,folders:e.map(a=>a.uri),forceUsingSearch:o||!this._hostUtils.fsExists,exists:a=>this._hostUtils.fsExists(a.fsPath),checkExists:(a,l,d)=>this._mainThreadWorkspaceProxy.$checkExists(a,l,d)},s=await JB(r,n);if(s)return this._activateById(n.identifier,{startup:!0,extensionId:n.identifier,activationEvent:s.activationEvent}).then(void 0,a=>this._logService.error(a))}async _handleRemoteResolverEagerExtensions(){if(this._initData.remote.authority)return this._activateByEvent(`onResolveRemoteAuthority:${this._initData.remote.authority}`,!1)}async $extensionTestsExecute(){await this._eagerExtensionsActivated.wait();try{return await this._doHandleExtensionTests()}catch(e){throw console.error(e),e}}async _doHandleExtensionTests(){let{extensionDevelopmentLocationURI:e,extensionTestsLocationURI:n}=this._initData.environment;if(!e||!n)throw new Error(p(3348,null));let o=(await this.getExtensionPathIndex()).findSubstr(n),s=await(this._isESM(o,n.path)?this._loadESMModule(null,n,new hg(!1)):this._loadCommonJSModule(null,n,new hg(!1)));if(!s||typeof s.run!="function")throw new Error(p(3347,null,n.toString()));return new Promise((a,l)=>{let d=(m,g)=>{m?(bl&&this._logService.error("Test runner called back with error",m),l(m)):(bl&&(g?this._logService.info(`Test runner called back with ${g} failures.`):this._logService.info("Test runner called back with successful outcome.")),a(typeof g=="number"&&g>0?1:0))},c=jr(n),u=s.run(c,d);u&&u.then&&u.then(()=>{bl&&this._logService.info("Test runner finished successfully."),a(0)}).catch(m=>{bl&&this._logService.error("Test runner finished with error",m),l(m instanceof Error&&m.stack?m.stack:String(m))})})}_startExtensionHost(){if(this._started)throw new Error("Extension host is already started!");return this._started=!0,this._readyToStartExtensionHost.wait().then(()=>this._readyToRunExtensions.open()).then(()=>Promise.race([this._activator.waitForActivatingExtensions(),Vt(1e3)])).then(()=>this._handleEagerExtensions()).then(()=>{this._eagerExtensionsActivated.open(),this._logService.info("Eager extensions activated")})}registerRemoteAuthorityResolver(e,n){return this._resolvers[e]=n,Q(()=>{delete this._resolvers[e]})}async getRemoteExecServer(e){let{resolver:n}=await this._activateAndGetResolver(e);return n?.resolveExecServer?.(e,{resolveAttempt:0})}async _activateAndGetResolver(e){let n=e.indexOf("+");if(n===-1)throw new Rs("Not an authority that can be resolved!","InvalidAuthority");let o=e.substr(0,n);return await this._almostReadyToRunExtensions.wait(),await this._activateByEvent(`onResolveRemoteAuthority:${o}`,!1),{authorityPrefix:o,resolver:this._resolvers[o]}}async $resolveAuthority(e,n){let o=Jt.create(!1),r=()=>`[resolveAuthority(${h1(e)},${n})][${o.elapsed()}ms] `,s=w=>this._logService.info(`${r()}${w}`),a=w=>this._logService.warn(`${r()}${w}`),l=(w,M=void 0)=>this._logService.error(`${r()}${w}`,M),d=w=>{if(w instanceof Rs)return{type:"error",error:{code:w._code,message:w._message,detail:w._detail}};throw w},c=async w=>{s(`activating resolver for ${w}...`);let{resolver:M,authorityPrefix:O}=await this._activateAndGetResolver(w);if(!M)throw l(`no resolver for ${O}`),new Rs(`No remote extension installed to resolve ${O}.`,"NoResolverFound");return{resolver:M,authorityPrefix:O,remoteAuthority:w}},u=e.split(/@|%40/g).reverse();s(`activating remote resolvers ${u.join(" -> ")}`);let m;try{m=await Promise.all(u.map(c)).catch(async w=>{if(!(w instanceof Rs)||w._code!=="InvalidAuthority")throw w;return a(`resolving nested authorities failed: ${w.message}`),[await c(e)]})}catch(w){return d(w)}let g=new Ip;g.cancelAndSet(()=>s("waiting..."),1e3);let h,f;for(let[w,{authorityPrefix:M,resolver:O,remoteAuthority:N}]of m.entries())try{if(w===m.length-1)s("invoking final resolve()..."),Wt(`code/extHost/willResolveAuthority/${M}`),h=await O.resolve(N,{resolveAttempt:n,execServer:f}),Wt(`code/extHost/didResolveAuthorityOK/${M}`),s("setting tunnel factory..."),this._register(await this._extHostTunnelService.setTunnelFactory(O,dd.isManagedResolvedAuthority(h)?h:void 0));else{if(s(`invoking resolveExecServer() for ${N}`),Wt(`code/extHost/willResolveExecServer/${M}`),f=await O.resolveExecServer?.(N,{resolveAttempt:n,execServer:f}),!f)throw new Rs(`Exec server was not available for ${N}`,"NoResolverFound");Wt(`code/extHost/didResolveExecServerOK/${M}`)}}catch($){return Wt(`code/extHost/didResolveAuthorityError/${M}`),l("returned an error",$),g.dispose(),d($)}g.dispose();let I={environmentTunnels:h.environmentTunnels,features:h.tunnelFeatures?{elevation:h.tunnelFeatures.elevation,privacyOptions:h.tunnelFeatures.privacyOptions,protocol:h.tunnelFeatures.protocol===void 0?!0:h.tunnelFeatures.protocol}:void 0},x={extensionHostEnv:h.extensionHostEnv,isTrusted:h.isTrusted,authenticationSession:h.authenticationSessionForInitializingExtensions?{id:h.authenticationSessionForInitializingExtensions.id,providerId:h.authenticationSessionForInitializingExtensions.providerId}:void 0};s(`returned ${dd.isManagedResolvedAuthority(h)?"managed authority":`${h.host}:${h.port}`}`);let T;if(dd.isManagedResolvedAuthority(h)){let w=n;this._extHostManagedSockets.setFactory(w,h.makeConnection),T={authority:e,connectTo:new im(w),connectionToken:h.connectionToken}}else T={authority:e,connectTo:new RS(h.host,h.port),connectionToken:h.connectionToken};return{type:"ok",value:{authority:T,options:x,tunnelInformation:I}}}async $getCanonicalURI(e,n){this._logService.info(`$getCanonicalURI invoked for authority (${h1(e)})`);let{resolver:o}=await this._activateAndGetResolver(e);if(!o)return null;let r=b.revive(n);if(typeof o.getCanonicalURI>"u")return r;let s=await bn(()=>o.getCanonicalURI(r));return s||r}async $startExtensionHost(e){e.toAdd.forEach(a=>a.extensionLocation=b.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=YB(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),r=await this._createExtensionPathIndex(o);return(await this.getExtensionPathIndex()).setSearchTree(r),this._globalRegistry.set(n.getAllExtensionDescriptions()),this._myRegistry.set(o),bl&&(this._logService.info(`$startExtensionHost: global extensions: ${qg(this._globalRegistry)}`),this._logService.info(`$startExtensionHost: local extensions: ${qg(this._myRegistry)}`)),this._startExtensionHost()}$activateByEvent(e,n){return n===1?this._almostReadyToRunExtensions.wait().then(o=>this._activateByEvent(e,!1)):this._readyToRunExtensions.wait().then(o=>this._activateByEvent(e,!1))}async $activate(e,n){return await this._readyToRunExtensions.wait(),this._myRegistry.getExtensionDescription(e)?(await this._activateById(e,n),!0):!1}async $deltaExtensions(e){e.toAdd.forEach(a=>a.extensionLocation=b.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=YB(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),r=await this._createExtensionPathIndex(o);return(await this.getExtensionPathIndex()).setSearchTree(r),this._globalRegistry.set(n.getAllExtensionDescriptions()),this._myRegistry.set(o),bl&&(this._logService.info(`$deltaExtensions: global extensions: ${qg(this._globalRegistry)}`),this._logService.info(`$deltaExtensions: local extensions: ${qg(this._myRegistry)}`)),Promise.resolve(void 0)}async $test_latency(e){return e}async $test_up(e){return e.byteLength}async $test_down(e){let n=W.alloc(e),o=Math.random()%256;for(let r=0;r<e;r++)n.writeUInt8(o,r);return n}async $updateRemoteConnectionData(e){this._remoteConnectionData=e,this._onDidChangeRemoteConnectionData.fire()}_isESM(e,n){return n??=e?this._getEntryPoint(e):n,n?.endsWith(".mjs")||e?.type==="module"&&!n?.endsWith(".cjs")}};Fd=D([C(0,Yo),C(1,N0),C(2,ae),C(3,Tn),C(4,En),C(5,ne),C(6,Xe),C(7,xg),C(8,Rd),C(9,Ro),C(10,Bg),C(11,zg),C(12,Lg)],Fd);function YB(i,t,e,n){i.addActivationEvents(n.addActivationEvents);let o=new Xa(i,t.getAllExtensionDescriptions());o.deltaExtensions(n.toAdd,n.toRemove);let r=new Ho(e.getAllExtensionDescriptions().map(a=>a.identifier));for(let a of n.myToRemove)r.delete(a);for(let a of n.myToAdd)r.add(a);let s=ZB(o,r);return{globalRegistry:o,myExtensions:s}}function XB(i,t){return{id:i.identifier.value,name:i.name,extensionVersion:i.version,publisherDisplayName:i.publisher,activationEvents:i.activationEvents?i.activationEvents.join(","):null,isBuiltin:i.isBuiltin,reason:t.activationEvent,reasonId:t.extensionId.value}}function qg(i){return i.getAllExtensionDescriptions().map(t=>t.identifier.value).join(",")}var yo=R("IExtHostExtensionService"),Hd=class{#e;#t;#n;constructor(t,e,n,o,r){this.#e=t,this.#t=e,this.#n=n.identifier,this.id=n.identifier.value,this.extensionUri=n.extensionLocation,this.extensionPath=ro(jr(n.extensionLocation)),this.packageJSON=n,this.extensionKind=o,this.isFromDifferentExtensionHost=r}get isActive(){return this.#e.isActivated(this.#n)}get exports(){if(!(this.packageJSON.api==="none"||this.isFromDifferentExtensionHost))return this.#e.getExtensionExports(this.#n)}async activate(){if(this.isFromDifferentExtensionHost)throw new Error("Cannot activate foreign extension");return await this.#e.activateByIdWithErrors(this.#n,{startup:!1,extensionId:this.#t,activationEvent:"api"}),this.exports}};function ZB(i,t){return i.getAllExtensionDescriptions().filter(e=>t.has(e.identifier))}var L0=class{constructor(t){this._searchTree=t}setSearchTree(t){this._searchTree=t}findSubstr(t){return this._searchTree.findSubstr(t)}forEach(t){return this._searchTree.forEach(t)}},O0=class{constructor(t){this._map=new ho;this.addActivationEvents(t)}readActivationEvents(t){return this._map.get(t.identifier)??[]}addActivationEvents(t){for(let e of Object.keys(t))this._map.set(e,t[e])}};var Vi=R("IExtHostApiDeprecationService"),Kg=class{constructor(t,e){this._extHostLogService=e;this._reportedUsages=new Set;this._telemetryShape=t.getProxy(F.MainThreadTelemetry)}report(t,e,n,o){let r=this.getUsageKey(t,e,o?.usageId);this._reportedUsages.has(r)||(this._reportedUsages.add(r),e.isUnderDevelopment&&this._extHostLogService.warn(`[Deprecation Warning] '${t}' is deprecated. ${n}`),this._telemetryShape.$publicLog2("extHostDeprecatedApiUsage",{extensionId:e.identifier.value,apiId:t,usageId:o?.usageId??""}))}getUsageKey(t,e,n){let o=`${t}-${e.identifier.value}`;return n?`${o}-${n}`:o}};Kg=D([C(0,ae),C(1,ne)],Kg);var vHe=Object.freeze(new class{report(i,t,e){}});var lE=class{static async installEarlyHandler(t){Error.stackTraceLimit=100;let e=t.get(ne),o=t.get(ae).getProxy(F.MainThreadErrors);Eh(r=>{e.error(r);let s=Xi(r);o.$onUnexpectedError(s)})}static async installFullHandler(t){let e=t.get(ne),n=t.get(ae),o=t.get(yo),r=t.get(Md),s=t.get(Vi),a=n.getProxy(F.MainThreadExtensionService),l=n.getProxy(F.MainThreadErrors),d=await o.getExtensionRegistry(),c=await o.getExtensionPathIndex(),u=new WeakMap;function m(f,I){if(u.has(f))return u.get(f).stack;let x="",T,w;for(let O of I)x+=`
	at ${O.toString()}`,w=O.getFileName(),!T&&w&&(T=c.findSubstr(b.file(w)));let M=`${f.name||"Error"}: ${f.message||""}${x}`;return u.set(f,{extensionIdentifier:T?.identifier,stack:M}),M}let g=Symbol("prepareStackTrace wrapped"),h=m;Object.defineProperty(Error,"prepareStackTrace",{configurable:!1,get(){return h},set(f){if(f===m||!f||f[g]){h=f||m;return}h=function(I,x){return m(I,x),f.call(Error,I,x)},Object.assign(h,{[g]:!0})}}),Eh(f=>{ea.is(f)||e.error(f);let I=Xi(f),x;if(f instanceof Rp?x=f.extension:x=u.get(f)?.extensionIdentifier,!!x)if(ea.is(f)){let T=d.getExtensionDescription(x);T&&s.report(f.name,T,`${f.message}
 FROM: ${f.stack}`)}else{a.$onExtensionRuntimeError(x,I);let T=r.onExtensionError(x,f);e.trace("forwarded error to extension?",T,x)}}),dl.addListener(f=>{l.$onUnexpectedError(f)})}},dE=class i{constructor(t,e,n,o,r){this._hostUtils=n,this._rpcProtocol=new ox(t,null,o),e=i._transform(e,this._rpcProtocol);let s=new Ml(...A2());s.set(Xe,{_serviceBrand:void 0,...e,messagePorts:r}),s.set(ae,new cx(this._rpcProtocol)),s.set(ps,new ux(o)),s.set(N0,n);let a=new dx(s,!0);a.invokeFunction(lE.installEarlyHandler),this._logService=a.invokeFunction(l=>l.get(ne)),Wt("code/extHost/didCreateServices"),this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} started`):this._logService.info("Extension host started"),this._logService.trace("initData",e),this._extensionService=a.invokeFunction(l=>l.get(yo)),this._extensionService.initialize(),a.invokeFunction(lE.installFullHandler)}async asBrowserUri(t){let e=this._rpcProtocol.getProxy(F.MainThreadExtensionService);return b.revive(await e.$asBrowserUri(t))}terminate(t){this._extensionService.terminate(t)}static _transform(t,e){t.extensions.allExtensions.forEach(o=>{o.extensionLocation=b.revive(e.transformIncomingURIs(o.extensionLocation))}),t.environment.appRoot=b.revive(e.transformIncomingURIs(t.environment.appRoot));let n=t.environment.extensionDevelopmentLocationURI;return n&&(t.environment.extensionDevelopmentLocationURI=n.map(o=>b.revive(e.transformIncomingURIs(o)))),t.environment.extensionTestsLocationURI=b.revive(e.transformIncomingURIs(t.environment.extensionTestsLocationURI)),t.environment.globalStorageHome=b.revive(e.transformIncomingURIs(t.environment.globalStorageHome)),t.environment.workspaceStorageHome=b.revive(e.transformIncomingURIs(t.environment.workspaceStorageHome)),t.nlsBaseUrl=b.revive(e.transformIncomingURIs(t.nlsBaseUrl)),t.logsLocation=b.revive(e.transformIncomingURIs(t.logsLocation)),t.workspace=e.transformIncomingURIs(t.workspace),t}};function YK(i){return{transformIncoming:t=>t.scheme==="vscode-remote"?{scheme:"file",path:t.path,query:t.query,fragment:t.fragment}:t.scheme==="file"?{scheme:"vscode-local",path:t.path,query:t.query,fragment:t.fragment}:t,transformOutgoing:t=>t.scheme==="file"?{scheme:"vscode-remote",authority:i,path:t.path,query:t.query,fragment:t.fragment}:t.scheme==="vscode-local"?{scheme:"file",path:t.path,query:t.query,fragment:t.fragment}:t,transformOutgoingScheme:t=>t==="file"?"vscode-remote":t==="vscode-local"?"file":t}}function e4(i){return new tx(YK(i))}var jg=class i{constructor(t){this.pipeName=t;this.type=1}static{this.ENV_KEY="VSCODE_EXTHOST_IPC_HOOK"}serialize(t){t[i.ENV_KEY]=this.pipeName}},Bb=class i{constructor(){this.type=2}static{this.ENV_KEY="VSCODE_EXTHOST_WILL_SEND_SOCKET"}serialize(t){t[i.ENV_KEY]="1"}},$b=class i{constructor(){this.type=3}static{this.ENV_KEY="VSCODE_WILL_SEND_MESSAGE_PORT"}serialize(t){t[i.ENV_KEY]="1"}};function XK(i){delete i[jg.ENV_KEY],delete i[Bb.ENV_KEY],delete i[$b.ENV_KEY]}function t4(i){if(i[jg.ENV_KEY])return U0(i,new jg(i[jg.ENV_KEY]));if(i[Bb.ENV_KEY])return U0(i,new Bb);if(i[$b.ENV_KEY])return U0(i,new $b);throw new Error("No connection information defined in environment!")}function U0(i,t){return XK(i),t}var YHe=new k("inOutput",!1),XHe=new k("activeLogOutput",!1),ZHe=new k("activeLogOutput.isLog",!1),eVe=new k("activeLogOutput.levelSettable",!1),tVe=new k("activeLogOutput.level",""),nVe=new k("activeLogOutput.levelIsDefault",!1),oVe=new k("outputView.scrollLock",!1),rVe=new k("activeOutputChannel",""),iVe=new k("output.filter.trace",!0),sVe=new k("output.filter.debug",!0),aVe=new k("output.filter.info",!0),lVe=new k("output.filter.warning",!0),dVe=new k("output.filter.error",!0),cVe=new k("outputFilterFocus",!1),uVe=new k("output.filter.categories",""),pVe=R("outputService");var ZK={OutputChannels:"workbench.contributions.outputChannels"};function ej(i){return Array.isArray(i.source)}var F0=class extends U{constructor(){super(...arguments);this.channels=new Map;this._onDidRegisterChannel=this._register(new E);this.onDidRegisterChannel=this._onDidRegisterChannel.event;this._onDidRemoveChannel=this._register(new E);this.onDidRemoveChannel=this._onDidRemoveChannel.event;this._onDidUpdateChannelFiles=this._register(new E);this.onDidUpdateChannelSources=this._onDidUpdateChannelFiles.event}registerChannel(e){this.channels.has(e.id)||(this.channels.set(e.id,e),this._onDidRegisterChannel.fire(e.id))}getChannels(){let e=[];return this.channels.forEach(n=>e.push(n)),e}getChannel(e){return this.channels.get(e)}updateChannelSources(e,n){let o=this.channels.get(e);o&&ej(o)&&(o.source=n,this._onDidUpdateChannelFiles.fire(o))}removeChannel(e){let n=this.channels.get(e);n&&(this.channels.delete(e),this._onDidRemoveChannel.fire(n))}};_t.add(ZK.OutputChannels,new F0);var cE=class extends Al{constructor(e,n,o,r,s){super();this.id=e;this.name=n;this.logger=o;this.proxy=r;this.extension=s;this.offset=0;this.visible=!1;this.setLevel(o.getLevel()),this._register(o.onDidChangeLogLevel(a=>this.setLevel(a))),this._register(Q(()=>this.proxy.$dispose(this.id)))}get logLevel(){return this.getLevel()}appendLine(e){this.append(e+`
`)}append(e){this.info(e)}clear(){let e=this.offset;this.logger.flush(),this.proxy.$update(this.id,3,e)}replace(e){let n=this.offset;this.info(e),this.proxy.$update(this.id,2,n),this.visible&&this.logger.flush()}show(e,n){this.logger.flush(),this.proxy.$reveal(this.id,!!(typeof e=="boolean"?e:n))}hide(){this.proxy.$close(this.id)}log(e,n){this.offset+=W.fromString(n).byteLength,D2(this.logger,e,n),this.visible&&(this.logger.flush(),this.proxy.$update(this.id,1))}},H0=class extends cE{appendLine(t){this.append(t)}},Gg=class{constructor(t,e,n,o,r,s){this.initData=e;this.extHostFileSystem=n;this.extHostFileSystemInfo=o;this.loggerService=r;this.logService=s;this.extensionLogDirectoryCreationPromise=new je;this.logOutputChannels=new je;this.namePool=1;this.channels=new Map;this.visibleChannelId=null;this.proxy=t.getProxy(F.MainThreadOutputService),this.outputsLocation=this.extHostFileSystemInfo.extUri.joinPath(e.logsLocation,`output_logging_${BB(new Date).replace(/-|:|\.\d+Z$/g,"")}`)}$setVisibleChannel(t){this.visibleChannelId=t;for(let[e,n]of this.channels)n.visible=e===this.visibleChannelId}createOutputChannel(t,e,n){if(t=t.trim(),!t)throw new Error("illegal argument `name`. must not be falsy");let o=typeof e=="object"&&e.log,r=Me(e)?e:void 0;if(Me(r)&&!r.trim())throw new Error("illegal argument `languageId`. must not be empty");let s=new z,a,l=this.initData.environment.extensionLogLevel?.find(([c])=>Ee.equals(n.identifier,c))?.[1],d;if(o){let c=this.extHostFileSystemInfo.extUri.joinPath(this.initData.logsLocation,n.identifier.value);d=this.extHostFileSystemInfo.extUri.joinPath(c,`${t.replace(/[\\/:\*\?"<>\|]/g,"")}.log`);let u=this.logOutputChannels.get(d);if(u)return u;let m=this.loggerService.getRegisteredLogger(d);m?.logLevel!==void 0&&(l=m.logLevel),a=this.doCreateLogOutputChannel(t,d,l,n,s)}else a=this.doCreateOutputChannel(t,r,n,s);if(a.then(c=>{this.channels.set(c.id,c),c.visible=c.id===this.visibleChannelId,s.add(Q(()=>{this.channels.delete(c.id),d&&this.logOutputChannels.delete(d)}))}),d){let c=this.createExtHostLogOutputChannel(t,l??this.logService.getLevel(),a,s);return this.logOutputChannels.set(d,c),c}return this.createExtHostOutputChannel(t,a,s)}async doCreateOutputChannel(t,e,n,o){this.outputDirectoryPromise||(this.outputDirectoryPromise=this.extHostFileSystem.value.createDirectory(this.outputsLocation).then(()=>this.outputsLocation));let r=await this.outputDirectoryPromise,s=this.extHostFileSystemInfo.extUri.joinPath(r,`${this.namePool++}-${t.replace(/[\\/:\*\?"<>\|]/g,"")}.log`),a=o.add(this.loggerService.createLogger(s,{logLevel:"always",donotRotate:!0,donotUseFormatters:!0,hidden:!0})),l=await this.proxy.$register(t,s,e,n.identifier.value);return o.add(Q(()=>this.loggerService.deregisterLogger(s))),new cE(l,t,a,this.proxy,n)}async doCreateLogOutputChannel(t,e,n,o,r){await this.createExtensionLogDirectory(e);let s=`${o.identifier.value}.${this.extHostFileSystemInfo.extUri.basename(e)}`,a=r.add(this.loggerService.createLogger(e,{id:s,name:t,logLevel:n,extensionId:o.identifier.value}));return r.add(Q(()=>this.loggerService.deregisterLogger(e))),new H0(s,t,a,this.proxy,o)}createExtensionLogDirectory(t){let e=this.extHostFileSystemInfo.extUri.dirname(t),n=this.extensionLogDirectoryCreationPromise.get(e);return n||this.extensionLogDirectoryCreationPromise.set(e,n=(async()=>{try{await this.extHostFileSystem.value.createDirectory(e)}catch(o){if(Np(o)!=="EntryExists")throw o}})()),n}createExtHostOutputChannel(t,e,n){let o=()=>{if(n.isDisposed)throw new Error("Channel has been closed")};return e.then(r=>n.add(r)),{get name(){return t},append(r){o(),e.then(s=>s.append(r))},appendLine(r){o(),e.then(s=>s.appendLine(r))},clear(){o(),e.then(r=>r.clear())},replace(r){o(),e.then(s=>s.replace(r))},show(r,s){o(),e.then(a=>a.show(r,s))},hide(){o(),e.then(r=>r.hide())},dispose(){n.dispose()}}}createExtHostLogOutputChannel(t,e,n,o){let r=()=>{if(o.isDisposed)throw new Error("Channel has been closed")},s=o.add(new E);function a(l){e=l,s.fire(l)}return n.then(l=>{l.logLevel!==e&&a(l.logLevel),o.add(l.onDidChangeLogLevel(d=>a(d)))}),{...this.createExtHostOutputChannel(t,n,o),get logLevel(){return e},onDidChangeLogLevel:s.event,trace(l,...d){r(),n.then(c=>c.trace(l,...d))},debug(l,...d){r(),n.then(c=>c.debug(l,...d))},info(l,...d){r(),n.then(c=>c.info(l,...d))},warn(l,...d){r(),n.then(c=>c.warn(l,...d))},error(l,...d){r(),n.then(c=>c.error(l,...d))}}}};Gg=D([C(0,ae),C(1,Xe),C(2,Bs),C(3,Xr),C(4,Zo),C(5,ne)],Gg);var uE=R("IExtHostOutputService");var zs=class{constructor(t,e){this._logService=e;this._provider=new Map;this._proxy=t.getProxy(F.MainThreadDecorations)}static{this._handlePool=0}static{this._maxEventSize=250}registerFileDecorationProvider(t,e){let n=zs._handlePool++;this._provider.set(n,{provider:t,extensionDescription:e}),this._proxy.$registerDecorationProvider(n,e.identifier.value);let o=t.onDidChangeFileDecorations&&t.onDidChangeFileDecorations(r=>{if(!r){this._proxy.$onDidChange(n,null);return}let s=An(r);if(s.length<=zs._maxEventSize){this._proxy.$onDidChange(n,s);return}this._logService.warn("[Decorations] CAPPING events from decorations provider",e.identifier.value,s.length);let a=s.map(c=>({uri:c,rank:tF(c.path,"/")})),l=mU(a,(c,u)=>c.rank-u.rank||yi(c.uri.path,u.uri.path)),d=[];e:for(let c of l){let u;for(let m of c){let g=pn(m.uri.path);if(u!==g&&(u=g,d.push(m.uri)>=zs._maxEventSize))break e}}this._proxy.$onDidChange(n,d)});return new xe(()=>{o?.dispose(),this._proxy.$unregisterDecorationProvider(n),this._provider.delete(n)})}async $provideDecorations(t,e,n){if(!this._provider.has(t))return Object.create(null);let o=Object.create(null),{provider:r,extensionDescription:s}=this._provider.get(t);return await Promise.all(e.map(async a=>{try{let{uri:l,id:d}=a,c=await Promise.resolve(r.provideFileDecoration(b.revive(l),n));if(!c)return;try{ou.validate(c),c.badge&&typeof c.badge!="string"&&A(s,"codiconDecoration"),o[d]=[c.propagate,c.tooltip,c.badge,c.color]}catch(u){this._logService.warn(`INVALID decoration from extension '${s.identifier.value}': ${u}`)}}catch(l){this._logService.error(l)}})),o}};zs=D([C(0,ae),C(1,ne)],zs);var pE=R("IExtHostDecorations");var mE=class{constructor(t){this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}getCount(){return this.values.length}insertValues(t,e){t=cc(t);let n=this.values,o=this.prefixSum,r=e.length;return r===0?!1:(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,t),0),this.values.set(n.subarray(t),t+r),this.values.set(e,t),t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(t,e){return t=cc(t),e=cc(e),this.values[t]===e?!1:(this.values[t]=e,t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),!0)}removeValues(t,e){t=cc(t),e=cc(e);let n=this.values,o=this.prefixSum;if(t>=n.length)return!1;let r=n.length-t;return e>=r&&(e=r),e===0?!1:(this.values=new Uint32Array(n.length-e),this.values.set(n.subarray(0,t),0),this.values.set(n.subarray(t+e),t),this.prefixSum=new Uint32Array(this.values.length),t-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=t-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(o.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(t){return t<0?0:(t=cc(t),this._getPrefixSum(t))}_getPrefixSum(t){if(t<=this.prefixSumValidIndex[0])return this.prefixSum[t];let e=this.prefixSumValidIndex[0]+1;e===0&&(this.prefixSum[0]=this.values[0],e++),t>=this.values.length&&(t=this.values.length-1);for(let n=e;n<=t;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],t),this.prefixSum[t]}getIndexOf(t){t=Math.floor(t),this.getTotalSum();let e=0,n=this.values.length-1,o=0,r=0,s=0;for(;e<=n;)if(o=e+(n-e)/2|0,r=this.prefixSum[o],s=r-this.values[o],t<s)n=o-1;else if(t>=r)e=o+1;else break;return new V0(o,t-s)}};var V0=class{constructor(t,e){this.index=t;this.remainder=e;this._prefixSumIndexOfResultBrand=void 0;this.index=t,this.remainder=e}};var gE=class{constructor(t,e,n,o){this._uri=t,this._lines=e,this._eol=n,this._versionId=o,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(t){t.eol&&t.eol!==this._eol&&(this._eol=t.eol,this._lineStarts=null);let e=t.changes;for(let n of e)this._acceptDeleteRange(n.range),this._acceptInsertText(new On(n.range.startLineNumber,n.range.startColumn),n.text);this._versionId=t.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let t=this._eol.length,e=this._lines.length,n=new Uint32Array(e);for(let o=0;o<e;o++)n[o]=this._lines[o].length+t;this._lineStarts=new mE(n)}}_setLineText(t,e){this._lines[t]=e,this._lineStarts&&this._lineStarts.setValue(t,this._lines[t].length+this._eol.length)}_acceptDeleteRange(t){if(t.startLineNumber===t.endLineNumber){if(t.startColumn===t.endColumn)return;this._setLineText(t.startLineNumber-1,this._lines[t.startLineNumber-1].substring(0,t.startColumn-1)+this._lines[t.startLineNumber-1].substring(t.endColumn-1));return}this._setLineText(t.startLineNumber-1,this._lines[t.startLineNumber-1].substring(0,t.startColumn-1)+this._lines[t.endLineNumber-1].substring(t.endColumn-1)),this._lines.splice(t.startLineNumber,t.endLineNumber-t.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(t.startLineNumber,t.endLineNumber-t.startLineNumber)}_acceptInsertText(t,e){if(e.length===0)return;let n=TI(e);if(n.length===1){this._setLineText(t.lineNumber-1,this._lines[t.lineNumber-1].substring(0,t.column-1)+n[0]+this._lines[t.lineNumber-1].substring(t.column-1));return}n[n.length-1]+=this._lines[t.lineNumber-1].substring(t.column-1),this._setLineText(t.lineNumber-1,this._lines[t.lineNumber-1].substring(0,t.column-1)+n[0]);let o=new Uint32Array(n.length-1);for(let r=1;r<n.length;r++)this._lines.splice(t.lineNumber+r-1,0,n[r]),o[r-1]=n[r].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(t.lineNumber,o)}};var W0=new Map;function n4(i,t){t?W0.set(i,t):W0.delete(i)}function tj(i){return W0.get(i)}var fE=class extends gE{constructor(e,n,o,r,s,a,l,d,c=!0){super(n,o,r,s);this._proxy=e;this._languageId=a;this._isDirty=l;this._encoding=d;this._strictInstanceofChecks=c;this._isDisposed=!1}dispose(){jn(!this._isDisposed),this._isDisposed=!0,this._isDirty=!1}equalLines(e){return an(this._lines,e)}get document(){if(!this._document){let e=this;this._document={get uri(){return e._uri},get fileName(){return e._uri.fsPath},get isUntitled(){return e._uri.scheme===B.untitled},get languageId(){return e._languageId},get version(){return e._versionId},get isClosed(){return e._isDisposed},get isDirty(){return e._isDirty},get encoding(){return e._encoding},save(){return e._save()},getText(n){return n?e._getTextInRange(n):e.getText()},get eol(){return e._eol===`
`?1:2},get lineCount(){return e._lines.length},lineAt(n){return e._lineAt(n)},offsetAt(n){return e._offsetAt(n)},positionAt(n){return e._positionAt(n)},validateRange(n){return e._validateRange(n)},validatePosition(n){return e._validatePosition(n)},getWordRangeAtPosition(n,o){return e._getWordRangeAtPosition(n,o)},[Symbol.for("debug.description")](){return`TextDocument(${e._uri.toString()})`}}}return Object.freeze(this._document)}_acceptLanguageId(e){jn(!this._isDisposed),this._languageId=e}_acceptIsDirty(e){jn(!this._isDisposed),this._isDirty=e}_acceptEncoding(e){jn(!this._isDisposed),this._encoding=e}_save(){return this._isDisposed?Promise.reject(new Error("Document has been closed")):this._proxy.$trySaveDocument(this._uri)}_getTextInRange(e){let n=this._validateRange(e);if(n.isEmpty)return"";if(n.isSingleLine)return this._lines[n.start.line].substring(n.start.character,n.end.character);let o=this._eol,r=n.start.line,s=n.end.line,a=[];a.push(this._lines[r].substring(n.start.character));for(let l=r+1;l<s;l++)a.push(this._lines[l]);return a.push(this._lines[s].substring(0,n.end.character)),a.join(o)}_lineAt(e){let n;if(e instanceof De?n=e.line:typeof e=="number"?n=e:!this._strictInstanceofChecks&&De.isPosition(e)&&(n=e.line),typeof n!="number"||n<0||n>=this._lines.length||Math.floor(n)!==n)throw new Error("Illegal value for `line`");return new B0(n,this._lines[n],n===this._lines.length-1)}_offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.line-1)+e.character}_positionAt(e){e=Math.floor(e),e=Math.max(0,e),this._ensureLineStarts();let n=this._lineStarts.getIndexOf(e),o=this._lines[n.index].length;return new De(n.index,Math.min(n.remainder,o))}_validateRange(e){if(this._strictInstanceofChecks){if(!(e instanceof be))throw new Error("Invalid argument")}else if(!be.isRange(e))throw new Error("Invalid argument");let n=this._validatePosition(e.start),o=this._validatePosition(e.end);return n===e.start&&o===e.end?e:new be(n.line,n.character,o.line,o.character)}_validatePosition(e){if(this._strictInstanceofChecks){if(!(e instanceof De))throw new Error("Invalid argument")}else if(!De.isPosition(e))throw new Error("Invalid argument");if(this._lines.length===0)return e.with(0,0);let{line:n,character:o}=e,r=!1;if(n<0)n=0,o=0,r=!0;else if(n>=this._lines.length)n=this._lines.length-1,o=this._lines[n].length,r=!0;else{let s=this._lines[n].length;o<0?(o=0,r=!0):o>s&&(o=s,r=!0)}return r?new De(n,o):e}_getWordRangeAtPosition(e,n){let o=this._validatePosition(e);if(!n)n=tj(this._languageId);else if(CI(n))throw new Error(`[getWordRangeAtPosition]: ignoring custom regexp '${n.source}' because it matches the empty string.`);let r=ID(o.character+1,yD(n),this._lines[o.line],0);if(r)return new be(o.line,r.startColumn-1,o.line,r.endColumn-1)}},B0=class{constructor(t,e,n){this._line=t,this._text=e,this._isLastLine=n}get lineNumber(){return this._line}get text(){return this._text}get range(){return new be(this._line,0,this._line,this._text.length)}get rangeIncludingLineBreak(){return this._isLastLine?this.range:new be(this._line,0,this._line+1,0)}get firstNonWhitespaceCharacterIndex(){return/^(\s*)/.exec(this._text)[1].length}get isEmptyOrWhitespace(){return this.firstNonWhitespaceCharacterIndex===this._text.length}};var Vd=class{constructor(t){this._prefix=t,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}},yWe=new Vd("id#");var hE=class i{static{this._Keys=new Vd("TextEditorDecorationType")}constructor(t,e,n){let o=i._Keys.nextId();t.$registerTextEditorDecorationType(e.identifier,o,fM.from(n)),this.value=Object.freeze({key:o,dispose(){t.$removeTextEditorDecorationType(o)}})}},$0=class{constructor(t,e){this._collectedEdits=[];this._setEndOfLine=void 0;this._finalized=!1;this._document=t,this._documentVersionId=t.version,this._undoStopBefore=e.undoStopBefore,this._undoStopAfter=e.undoStopAfter}finalize(){return this._finalized=!0,{documentVersionId:this._documentVersionId,edits:this._collectedEdits,setEndOfLine:this._setEndOfLine,undoStopBefore:this._undoStopBefore,undoStopAfter:this._undoStopAfter}}_throwIfFinalized(){if(this._finalized)throw new Error("Edit is only valid while callback runs")}replace(t,e){this._throwIfFinalized();let n=null;if(t instanceof De)n=new be(t,t);else if(t instanceof be)n=t;else throw new Error("Unrecognized location");this._pushEdit(n,e,!1)}insert(t,e){this._throwIfFinalized(),this._pushEdit(new be(t,t),e,!0)}delete(t){this._throwIfFinalized();let e=null;if(t instanceof be)e=t;else throw new Error("Unrecognized location");this._pushEdit(e,null,!0)}_pushEdit(t,e,n){let o=this._document.validateRange(t);this._collectedEdits.push({range:o,text:e,forceMoveMarkers:n})}setEndOfLine(t){if(this._throwIfFinalized(),t!==1&&t!==2)throw Ve("endOfLine");this._setEndOfLine=t}},z0=class{constructor(t,e,n,o){this._proxy=t,this._id=e,this._accept(n),this._logService=o;let r=this;this.value={get tabSize(){return r._tabSize},set tabSize(s){r._setTabSize(s)},get indentSize(){return r._indentSize},set indentSize(s){r._setIndentSize(s)},get insertSpaces(){return r._insertSpaces},set insertSpaces(s){r._setInsertSpaces(s)},get cursorStyle(){return r._cursorStyle},set cursorStyle(s){r._setCursorStyle(s)},get lineNumbers(){return r._lineNumbers},set lineNumbers(s){r._setLineNumbers(s)}}}_accept(t){this._tabSize=t.tabSize,this._indentSize=t.indentSize,this._originalIndentSize=t.originalIndentSize,this._insertSpaces=t.insertSpaces,this._cursorStyle=t.cursorStyle,this._lineNumbers=Iu.to(t.lineNumbers)}_validateTabSize(t){if(t==="auto")return"auto";if(typeof t=="number"){let e=Math.floor(t);return e>0?e:null}if(typeof t=="string"){let e=parseInt(t,10);return isNaN(e)?null:e>0?e:null}return null}_setTabSize(t){let e=this._validateTabSize(t);if(e!==null){if(typeof e=="number"){if(this._tabSize===e)return;this._tabSize=e}this._warnOnError("setTabSize",this._proxy.$trySetOptions(this._id,{tabSize:e}))}}_validateIndentSize(t){if(t==="tabSize")return"tabSize";if(typeof t=="number"){let e=Math.floor(t);return e>0?e:null}if(typeof t=="string"){let e=parseInt(t,10);return isNaN(e)?null:e>0?e:null}return null}_setIndentSize(t){let e=this._validateIndentSize(t);if(e!==null){if(typeof e=="number"){if(this._originalIndentSize===e)return;this._indentSize=e,this._originalIndentSize=e}this._warnOnError("setIndentSize",this._proxy.$trySetOptions(this._id,{indentSize:e}))}}_validateInsertSpaces(t){return t==="auto"?"auto":t==="false"?!1:!!t}_setInsertSpaces(t){let e=this._validateInsertSpaces(t);if(typeof e=="boolean"){if(this._insertSpaces===e)return;this._insertSpaces=e}this._warnOnError("setInsertSpaces",this._proxy.$trySetOptions(this._id,{insertSpaces:e}))}_setCursorStyle(t){this._cursorStyle!==t&&(this._cursorStyle=t,this._warnOnError("setCursorStyle",this._proxy.$trySetOptions(this._id,{cursorStyle:t})))}_setLineNumbers(t){this._lineNumbers!==t&&(this._lineNumbers=t,this._warnOnError("setLineNumbers",this._proxy.$trySetOptions(this._id,{lineNumbers:Iu.from(t)})))}assign(t){let e={},n=!1;if(typeof t.tabSize<"u"){let o=this._validateTabSize(t.tabSize);o==="auto"?(n=!0,e.tabSize=o):typeof o=="number"&&this._tabSize!==o&&(this._tabSize=o,n=!0,e.tabSize=o)}if(typeof t.indentSize<"u"){let o=this._validateIndentSize(t.indentSize);o==="tabSize"?(n=!0,e.indentSize=o):typeof o=="number"&&this._originalIndentSize!==o&&(this._indentSize=o,this._originalIndentSize=o,n=!0,e.indentSize=o)}if(typeof t.insertSpaces<"u"){let o=this._validateInsertSpaces(t.insertSpaces);o==="auto"?(n=!0,e.insertSpaces=o):this._insertSpaces!==o&&(this._insertSpaces=o,n=!0,e.insertSpaces=o)}typeof t.cursorStyle<"u"&&this._cursorStyle!==t.cursorStyle&&(this._cursorStyle=t.cursorStyle,n=!0,e.cursorStyle=t.cursorStyle),typeof t.lineNumbers<"u"&&this._lineNumbers!==t.lineNumbers&&(this._lineNumbers=t.lineNumbers,n=!0,e.lineNumbers=Iu.from(t.lineNumbers)),n&&this._warnOnError("setOptions",this._proxy.$trySetOptions(this._id,e))}_warnOnError(t,e){e.catch(n=>{this._logService.warn(`ExtHostTextEditorOptions '${t}' failed:'`),this._logService.warn(n)})}},vE=class{constructor(t,e,n,o,r,s,a,l){this.id=t;this._proxy=e;this._logService=n;this._disposed=!1;this._hasDecorationsForKey=new Set;this._selections=r,this._options=new z0(this._proxy,this.id,s,n),this._visibleRanges=a,this._viewColumn=l;let d=this;this.value=Object.freeze({get document(){return o.value},set document(c){throw new fi("document")},get selection(){return d._selections&&d._selections[0]},set selection(c){if(!(c instanceof Zn))throw Ve("selection");d._selections=[c],d._trySetSelection()},get selections(){return d._selections},set selections(c){if(!Array.isArray(c)||c.some(u=>!(u instanceof Zn)))throw Ve("selections");c.length===0&&(c=[new Zn(0,0,0,0)]),d._selections=c,d._trySetSelection()},get visibleRanges(){return d._visibleRanges},set visibleRanges(c){throw new fi("visibleRanges")},get diffInformation(){return d._diffInformation},get options(){return d._options.value},set options(c){d._disposed||d._options.assign(c)},get viewColumn(){return d._viewColumn},set viewColumn(c){throw new fi("viewColumn")},edit(c,u={undoStopBefore:!0,undoStopAfter:!0}){if(d._disposed)return Promise.reject(new Error("TextEditor#edit not possible on closed editors"));let m=new $0(o.value,u);return c(m),d._applyEdit(m)},insertSnippet(c,u,m={undoStopBefore:!0,undoStopAfter:!0}){if(d._disposed)return Promise.reject(new Error("TextEditor#insertSnippet not possible on closed editors"));let g;if(!u||Array.isArray(u)&&u.length===0)g=d._selections.map(h=>G.from(h));else if(u instanceof De){let{lineNumber:h,column:f}=gt.from(u);g=[{startLineNumber:h,startColumn:f,endLineNumber:h,endColumn:f}]}else if(u instanceof be)g=[G.from(u)];else{g=[];for(let h of u)if(h instanceof be)g.push(G.from(h));else{let{lineNumber:f,column:I}=gt.from(h);g.push({startLineNumber:f,startColumn:I,endLineNumber:f,endColumn:I})}}return m.keepWhitespace===void 0&&(m.keepWhitespace=!1),e.$tryInsertSnippet(t,o.value.version,c.value,g,m)},setDecorations(c,u){let m=u.length===0;m&&!d._hasDecorationsForKey.has(c.key)||(m?d._hasDecorationsForKey.delete(c.key):d._hasDecorationsForKey.add(c.key),d._runOnProxy(()=>{if(gM(u))return e.$trySetDecorations(t,c.key,KW(u));{let g=new Array(4*u.length);for(let h=0,f=u.length;h<f;h++){let I=u[h];g[4*h]=I.start.line+1,g[4*h+1]=I.start.character+1,g[4*h+2]=I.end.line+1,g[4*h+3]=I.end.character+1}return e.$trySetDecorationsFast(t,c.key,g)}}))},revealRange(c,u){d._runOnProxy(()=>e.$tryRevealRange(t,G.from(c),u||0))},show(c){e.$tryShowEditor(t,$t.from(c))},hide(){e.$tryHideEditor(t)},[Symbol.for("debug.description")](){return`TextEditor(${this.document.uri.toString()})`}})}dispose(){jn(!this._disposed),this._disposed=!0}_acceptOptions(t){jn(!this._disposed),this._options._accept(t)}_acceptVisibleRanges(t){jn(!this._disposed),this._visibleRanges=t}_acceptViewColumn(t){jn(!this._disposed),this._viewColumn=t}_acceptSelections(t){jn(!this._disposed),this._selections=t}_acceptDiffInformation(t){jn(!this._disposed),this._diffInformation=t}async _trySetSelection(){let t=this._selections.map(Do.from);return await this._runOnProxy(()=>this._proxy.$trySetSelections(this.id,t)),this.value}_applyEdit(t){let e=t.finalize();if(e.edits.length===0&&!e.setEndOfLine)return Promise.resolve(!0);let n=e.edits.map(r=>r.range);n.sort((r,s)=>r.end.line===s.end.line?r.end.character===s.end.character?r.start.line===s.start.line?r.start.character-s.start.character:r.start.line-s.start.line:r.end.character-s.end.character:r.end.line-s.end.line);for(let r=0,s=n.length-1;r<s;r++){let a=n[r].end;if(n[r+1].start.isBefore(a))return Promise.reject(new Error("Overlapping ranges are not allowed!"))}let o=e.edits.map(r=>({range:G.from(r.range),text:r.text,forceMoveMarkers:r.forceMoveMarkers}));return this._proxy.$tryApplyEdits(this.id,e.documentVersionId,o,{setEndOfLine:typeof e.setEndOfLine=="number"?fu.from(e.setEndOfLine):void 0,undoStopBefore:e.undoStopBefore,undoStopAfter:e.undoStopAfter})}_runOnProxy(t){return this._disposed?(this._logService.warn("TextEditor is closed/disposed"),Promise.resolve(void 0)):t().then(()=>this,e=>(e instanceof Error&&e.name==="DISPOSED"||this._logService.warn(e),null))}};var q0=class{constructor(t){this.value=t;this._count=0}ref(){this._count++}unref(){return--this._count===0}},Qg=class{constructor(t,e){this._extHostRpc=t;this._logService=e;this._activeEditorId=null;this._editors=new Map;this._documents=new je;this._onDidAddDocuments=new E;this._onDidRemoveDocuments=new E;this._onDidChangeVisibleTextEditors=new E;this._onDidChangeActiveTextEditor=new E;this.onDidAddDocuments=this._onDidAddDocuments.event;this.onDidRemoveDocuments=this._onDidRemoveDocuments.event;this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event;this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event}$acceptDocumentsAndEditorsDelta(t){this.acceptDocumentsAndEditorsDelta(t)}acceptDocumentsAndEditorsDelta(t){let e=[],n=[],o=[];if(t.removedDocuments)for(let r of t.removedDocuments){let s=b.revive(r),a=this._documents.get(s);a?.unref()&&(this._documents.delete(s),e.push(a.value))}if(t.addedDocuments)for(let r of t.addedDocuments){let s=b.revive(r.uri),a=this._documents.get(s);if(a&&s.scheme!==B.vscodeNotebookCell&&s.scheme!==B.vscodeInteractiveInput)throw new Error(`document '${s} already exists!'`);a||(a=new q0(new fE(this._extHostRpc.getProxy(F.MainThreadDocuments),s,r.lines,r.EOL,r.versionId,r.languageId,r.isDirty,r.encoding)),this._documents.set(s,a),n.push(a.value)),a.ref()}if(t.removedEditors)for(let r of t.removedEditors){let s=this._editors.get(r);this._editors.delete(r),s&&o.push(s)}if(t.addedEditors)for(let r of t.addedEditors){let s=b.revive(r.documentUri);jn(this._documents.has(s),`document '${s}' does not exist`),jn(!this._editors.has(r.id),`editor '${r.id}' already exists!`);let a=this._documents.get(s).value,l=new vE(r.id,this._extHostRpc.getProxy(F.MainThreadTextEditors),this._logService,new pt(()=>a.document),r.selections.map(Do.to),r.options,r.visibleRanges.map(d=>G.to(d)),typeof r.editorPosition=="number"?$t.to(r.editorPosition):void 0);this._editors.set(r.id,l)}t.newActiveEditor!==void 0&&(jn(t.newActiveEditor===null||this._editors.has(t.newActiveEditor),`active editor '${t.newActiveEditor}' does not exist`),this._activeEditorId=t.newActiveEditor),kn(e),kn(o),t.removedDocuments&&this._onDidRemoveDocuments.fire(e),t.addedDocuments&&this._onDidAddDocuments.fire(n),(t.removedEditors||t.addedEditors)&&this._onDidChangeVisibleTextEditors.fire(this.allEditors().map(r=>r.value)),t.newActiveEditor!==void 0&&this._onDidChangeActiveTextEditor.fire(this.activeEditor())}getDocument(t){return this._documents.get(t)?.value}allDocuments(){return At.map(this._documents.values(),t=>t.value)}getEditor(t){return this._editors.get(t)}activeEditor(t){if(!this._activeEditorId)return;let e=this._editors.get(this._activeEditorId);return t?e:e?.value}allEditors(){return[...this._editors.values()]}};Qg=D([C(0,ae),C(1,ne)],Qg);var Br=R("IExtHostDocumentsAndEditors");var nj={type:"object",additionalProperties:!1,properties:{type:{type:"string",description:p(15072,null)},required:{type:"array",markdownDescription:p(15074,null),items:{type:"string"}},properties:{type:"object",description:p(15073,null),additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#"}},when:{type:"string",markdownDescription:p(15075,null),default:""}}},o4;(t=>{function i(e,n,o){if(!e)return;let r=Me(e.type)?e.type:void 0;if(!r||r.length===0){o.error(p(15077,null));return}let s=[];if(Array.isArray(e.required))for(let a of e.required)Me(a)&&s.push(a);return{extensionId:n.value,taskType:r,required:s,properties:e.properties?lt(e.properties):{},when:e.when?bt.deserialize(e.when):void 0}}t.from=i})(o4||={});var oj=mS.registerExtensionPoint({extensionPoint:"taskDefinitions",activationEventsGenerator:function*(i){for(let t of i)t.type&&(yield`onTaskType:${t.type}`)},jsonSchema:{description:p(15076,null),type:"array",items:nj}}),K0=class{constructor(){this._onDefinitionsChanged=new E;this.onDefinitionsChanged=this._onDefinitionsChanged.event;this.taskTypes=Object.create(null),this.readyPromise=new Promise((t,e)=>{oj.setHandler((n,o)=>{this._schema=void 0;try{for(let r of o.removed){let s=r.value;for(let a of s)this.taskTypes&&a.type&&this.taskTypes[a.type]&&delete this.taskTypes[a.type]}for(let r of o.added){let s=r.value;for(let a of s){let l=o4.from(a,r.description.identifier,r.collector);l&&(this.taskTypes[l.taskType]=l)}}(o.removed.length>0||o.added.length>0)&&this._onDefinitionsChanged.fire()}catch{}t(void 0)})})}onReady(){return this.readyPromise}get(t){return this.taskTypes[t]}all(){return Object.keys(this.taskTypes).map(t=>this.taskTypes[t])}getJsonSchema(){if(this._schema===void 0){let t=[];for(let e of this.all()){let n={type:"object",additionalProperties:!1};e.required.length>0&&(n.required=e.required.slice(0)),e.properties!==void 0?n.properties=lt(e.properties):n.properties=Object.create(null),n.properties.type={type:"string",enum:[e.taskType]},t.push(n)}this._schema={oneOf:t}}return this._schema}},r4=new K0;var rj={IconContribution:"base.contributions.icons"},ij;(t=>{function i(e,n){let o=e.defaults;for(;dt.isThemeIcon(o);){let r=Jg.getIcon(o.id);if(!r)return;o=r.defaults}return o}t.getDefinition=i})(ij||={});var sj;(e=>{function i(n){return{weight:n.weight,style:n.style,src:n.src.map(o=>({format:o.format,location:o.location.toString()}))}}e.toJSONObject=i;function t(n){let o=r=>Me(r)?r:void 0;if(n&&Array.isArray(n.src)&&n.src.every(r=>Me(r.format)&&Me(r.location)))return{weight:o(n.weight),style:o(n.style),src:n.src.map(r=>({format:r.format,location:b.parse(r.location)}))}}e.fromJSONObject=t})(sj||={});var aj=/^([\w_-]+)$/;var lj=p(2940,null),j0=class extends U{constructor(){super();this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event;this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:p(2937,null),pattern:aj.source,patternErrorMessage:lj},fontCharacter:{type:"string",description:p(2936,null)}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}};this.iconReferenceSchema={type:"string",pattern:`^${dt.iconNameExpression}$`,enum:[],enumDescriptions:[]};this.iconsById={},this.iconFontsById={}}registerIcon(e,n,o,r){let s=this.iconsById[e];if(s){if(o&&!s.description){s.description=o,this.iconSchema.properties[e].markdownDescription=`${o} $(${e})`;let d=this.iconReferenceSchema.enum.indexOf(e);d!==-1&&(this.iconReferenceSchema.enumDescriptions[d]=o),this._onDidChange.fire()}return s}let a={id:e,description:o,defaults:n,deprecationMessage:r};this.iconsById[e]=a;let l={$ref:"#/definitions/icons"};return r&&(l.deprecationMessage=r),o&&(l.markdownDescription=`${o}: $(${e})`),this.iconSchema.properties[e]=l,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(o||""),this._onDidChange.fire(),{id:e}}deregisterIcon(e){delete this.iconsById[e],delete this.iconSchema.properties[e];let n=this.iconReferenceSchema.enum.indexOf(e);n!==-1&&(this.iconReferenceSchema.enum.splice(n,1),this.iconReferenceSchema.enumDescriptions.splice(n,1)),this._onDidChange.fire()}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}getIconReferenceSchema(){return this.iconReferenceSchema}registerIconFont(e,n){let o=this.iconFontsById[e];return o||(this.iconFontsById[e]=n,this._onDidChange.fire(),n)}deregisterIconFont(e){delete this.iconFontsById[e]}getIconFont(e){return this.iconFontsById[e]}toString(){let e=(s,a)=>s.id.localeCompare(a.id),n=s=>{for(;dt.isThemeIcon(s.defaults);)s=this.iconsById[s.defaults.id];return`codicon codicon-${s?s.id:""}`},o=[];o.push("| preview     | identifier                        | default codicon ID                | description"),o.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");let r=Object.keys(this.iconsById).map(s=>this.iconsById[s]);for(let s of r.filter(a=>!!a.description).sort(e))o.push(`|<i class="${n(s)}"></i>|${s.id}|${dt.isThemeIcon(s.defaults)?s.defaults.id:s.id}|${s.description||""}|`);o.push("| preview     | identifier                        "),o.push("| ----------- | --------------------------------- |");for(let s of r.filter(a=>!dt.isThemeIcon(a.defaults)).sort(e))o.push(`|<i class="${n(s)}"></i>|${s.id}|`);return o.join(`
`)}},Jg=new j0;_t.add(rj.IconContribution,Jg);function Lu(i,t,e,n){return Jg.registerIcon(i,t,e,n)}function dj(){let i=X2();for(let t in i){let e="\\"+i[t].toString(16);Jg.registerIcon(t,{fontCharacter:e})}}dj();var s4="vscode://schemas/icons",a4=_t.as(Nc.JSONContribution);a4.registerSchema(s4,Jg.getIconSchema());var i4=new Jn(()=>a4.notifySchemaChanged(s4),200);Jg.onDidChange(()=>{i4.isScheduled()||i4.schedule()});var uBe=Lu("widget-close",ce.close,p(2941,null)),pBe=Lu("goto-previous-location",ce.arrowUp,p(2939,null)),mBe=Lu("goto-next-location",ce.arrowDown,p(2938,null)),gBe=dt.modify(ce.sync,"spin"),fBe=dt.modify(ce.loading,"spin");var l4="settings",CBe=new k("taskRunning",!1,p(15080,null)),TBe=new k("taskTerminalActive",!1,p(15082,null)),EBe=ac(15081,"Tasks"),Q0=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(Q0||{});(t=>{function i(e){if(!e)return 2;switch(e.toLowerCase()){case"escape":return 1;case"strong":return 2;case"weak":return 3;default:return 2}}t.from=i})(Q0||={});var cj;(t=>t.defaults={cwd:"${workspaceFolder}"})(cj||={});var J0=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(J0||{});(t=>{function i(e){switch(e.toLowerCase()){case"always":return 1;case"silent":return 2;case"never":return 3;default:return 1}}t.fromString=i})(J0||={});var Y0=(n=>(n[n.Never=1]="Never",n[n.OnProblem=2]="OnProblem",n[n.Always=3]="Always",n))(Y0||{});(t=>{function i(e){switch(e.toLowerCase()){case"always":return 3;case"never":return 1;case"onproblem":return 2;default:return 2}}t.fromString=i})(Y0||={});var X0=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))(X0||{});(t=>{function i(e){switch(e.toLowerCase()){case"shared":return 1;case"dedicated":return 2;case"new":return 3;default:return 1}}t.fromString=i})(X0||={});var uj;(t=>t.defaults={echo:!0,reveal:1,revealProblems:1,focus:!1,panel:1,showReuseMessage:!0,clear:!1,preserveTerminalName:!1})(uj||={});var Z0=(n=>(n[n.Shell=1]="Shell",n[n.Process=2]="Process",n[n.CustomExecution=3]="CustomExecution",n))(Z0||{});(e=>{function i(n){switch(n.toLowerCase()){case"shell":return 1;case"process":return 2;case"customExecution":return 3;default:return 2}}e.fromString=i;function t(n){switch(n){case 1:return"shell";case 2:return"process";case 3:return"customExecution";default:return"process"}}e.toString=t})(Z0||={});var pj;(t=>{function i(e){return Me(e)?e:e.value}t.value=i})(pj||={});var mj;(s=>{s.Clean={_id:"clean",isDefault:!1},s.Build={_id:"build",isDefault:!1},s.Rebuild={_id:"rebuild",isDefault:!1},s.Test={_id:"test",isDefault:!1};function o(a){return a===s.Clean._id||a===s.Build._id||a===s.Rebuild._id||a===s.Test._id}s.is=o;function r(a){if(a!==void 0)return Me(a)?o(a)?{_id:a,isDefault:!1}:void 0:a}s.from=r})(mj||={});var gj;(s=>{s.Workspace="workspace",s.Extension="extension",s.InMemory="inMemory",s.WorkspaceFile="workspaceFile",s.User="user";function r(a){switch(a){case s.User:return 2;case s.WorkspaceFile:return 5;default:return 6}}s.toConfigurationTarget=r})(gj||={});var fj;(t=>t.defaults={reevaluateOnRerun:!0,runOn:1,instanceLimit:1,instancePolicy:"prompt"})(fj||={});var eL=(e=>(e[e.Process=1]="Process",e[e.Terminal=2]="Terminal",e))(eL||{});(t=>t._default=2)(eL||={});var hj;(d=>{function i(c){return{taskId:c._id,taskName:c.configurationProperties.name,runType:c.configurationProperties.isBackground?"background":"singleRun",group:c.configurationProperties.group,__task:c}}function t(c,u,m){return{...i(c),kind:"start",terminalId:u,resolvedVariables:m}}d.start=t;function e(c,u,m){return{...i(c),kind:"processStarted",terminalId:u,processId:m}}d.processStarted=e;function n(c,u,m,g){return{...i(c),kind:"processEnded",terminalId:u,exitCode:m,durationMs:g}}d.processEnded=n;function o(c,u,m){return{...i(c),kind:"inactive",terminalId:u,durationMs:m}}d.inactive=o;function r(c,u,m){return{...i(c),kind:"terminated",exitReason:m,terminalId:u}}d.terminated=r;function s(c,u,m){return{...i(u),kind:c,terminalId:m}}d.general=s;function a(c,u,m){return{...i(c),kind:"problemMatcherEnded",hasErrors:u}}d.problemMatcherEnded=a;function l(){return{kind:"changed"}}d.changed=l})(hj||={});var G0;(e=>{function i(n){let o=Object.keys(n).sort(),r="";for(let s of o){let a=n[s];a instanceof Object?a=i(a):typeof a=="string"&&(a=a.replace(/,/g,",,")),r+=s+","+a+","}return r}function t(n){let r={_key:i(n),type:n.taskType};return Object.assign(r,n),r}e.create=t})(G0||={});var vj;(t=>{function i(e,n){let o=r4.get(e.type);if(o===void 0){let l=lt(e);return delete l._key,G0.create(l)}let r=Object.create(null);r.type=o.taskType;let s=new Set;o.required.forEach(l=>s.add(l));let a=o.properties;for(let l of Object.keys(a)){let d=e[l];if(d!=null)r[l]=d;else if(s.has(l)){let c=a[l];if(c.default!==void 0)r[l]=lt(c.default);else switch(c.type){case"boolean":r[l]=!1;break;case"number":case"integer":r[l]=0;break;case"string":r[l]="";break;default:n.error(p(15079,null,JSON.stringify(e,void 0,0),l));return}}}return G0.create(r)}t.createTaskIdentifier=i})(vj||={});var wBe=Lu("rerun-task",ce.refresh,p(15078,null));var tL;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(tL||={});var nL;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(nL||={});var d4;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(d4||={});var bE;(n=>{function i(o){if(o){let r=o;return r&&!!r.process}else return!1}n.is=i;function t(o){if(o==null)return;let r={process:o.process,args:o.args};return o.options&&(r.options=d4.from(o.options)),r}n.from=t;function e(o){if(o!=null)return new ws(o.process,o.args,o.options)}n.to=e})(bE||={});var c4;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(c4||={});var yE;(n=>{function i(o){if(o){let r=o;return r&&(!!r.commandLine||!!r.command)}else return!1}n.is=i;function t(o){if(o==null)return;let r={};return o.commandLine!==void 0?r.commandLine=o.commandLine:(r.command=o.command,r.args=o.args),o.options&&(r.options=c4.from(o.options)),r}n.from=t;function e(o){if(!(o==null||o.command===void 0&&o.commandLine===void 0))return o.commandLine?new Di(o.commandLine,o.options):new Di(o.command,o.args?o.args:[],o.options)}n.to=e})(yE||={});var Wi;(n=>{function i(o){if(o){let r=o;return r&&r.customExecution==="customExecution"}else return!1}n.is=i;function t(o){return{customExecution:"customExecution"}}n.from=t;function e(o,r){return r.get(o)}n.to=e})(Wi||={});var oL;(t=>{function i(e,n){let o;return e.scope!==void 0&&typeof e.scope!="number"?o=e.scope.uri:e.scope!==void 0&&typeof e.scope=="number"&&(e.scope===2&&n&&n.workspaceFile?o=n.workspaceFile:o=l4),{id:e._id,workspaceFolder:o}}t.from=i})(oL||={});var u4;(t=>{function i(e){if(e!=null)return{_id:e.id,isDefault:e.isDefault}}t.from=i})(u4||={});var qs;(n=>{function i(o,r){if(o==null)return[];let s=[];for(let a of o){let l=t(a,r);l&&s.push(l)}return s}n.fromMany=i;function t(o,r){if(o==null)return;let s;o.execution instanceof ws?s=bE.from(o.execution):o.execution instanceof Di?s=yE.from(o.execution):o.execution&&o.execution instanceof tu&&(s=Wi.from(o.execution));let a=tL.from(o.definition),l;return o.scope?typeof o.scope=="number"?l=o.scope:l=o.scope.uri:l=2,!a||!l?void 0:{_id:o._id,definition:a,name:o.name,source:{extensionId:r.identifier.value,label:o.source,scope:l},execution:s,isBackground:o.isBackground,group:u4.from(o.group),presentationOptions:nL.from(o.presentationOptions),problemMatchers:An(o.problemMatchers),hasDefinedMatchers:o.hasDefinedMatchers,runOptions:o.runOptions?o.runOptions:{reevaluateOnRerun:!0},detail:o.detail}}n.from=t;async function e(o,r,s){if(o==null)return;let a;bE.is(o.execution)?a=bE.to(o.execution):yE.is(o.execution)?a=yE.to(o.execution):Wi.is(o.execution)&&(a=Wi.to(o._id,s));let l=tL.to(o.definition),d;if(o.source&&(o.source.scope!==void 0?typeof o.source.scope=="number"?d=o.source.scope:d=await r.resolveWorkspaceFolder(b.revive(o.source.scope)):d=2),!l||!d)return;let c=new $n(l,d,o.name,o.source.label,a,o.problemMatchers);return o.isBackground!==void 0&&(c.isBackground=o.isBackground),o.group!==void 0&&(c.group=Nn.from(o.group._id),c.group&&o.group.isDefault&&(c.group=new Nn(c.group.id,c.group.label),o.group.isDefault===!0&&(c.group.isDefault=o.group.isDefault))),o.presentationOptions&&(c.presentationOptions=nL.to(o.presentationOptions)),o.runOptions&&(c.runOptions=o.runOptions),o._id&&(c._id=o._id),o.detail&&(c.detail=o.detail),c}n.to=e})(qs||={});var p4;(e=>{function i(n){return n}e.from=i;function t(n){if(n)return Object.assign(Object.create(null),n)}e.to=t})(p4||={});var zb=class{constructor(t,e,n){this._id=e;this._task=n;this.#e=t}#e;get task(){return this._task}terminate(){this.#e.terminateTask(this)}fireDidStartProcess(t){}fireDidEndProcess(t){}get terminal(){return this._terminal}set terminal(t){this._terminal=t}},Ou=class{constructor(t,e,n,o,r,s,a,l){this._onDidExecuteTask=new E;this._onDidTerminateTask=new E;this._onDidTaskProcessStarted=new E;this._onDidTaskProcessEnded=new E;this._onDidStartTaskProblemMatchers=new E;this._onDidEndTaskProblemMatchers=new E;this._proxy=t.getProxy(F.MainThreadTask),this._workspaceProvider=n,this._editorService=o,this._configurationService=r,this._terminalService=s,this._handleCounter=0,this._handlers=new Map,this._taskExecutions=new Map,this._taskExecutionPromises=new Map,this._providedCustomExecutions2=new Map,this._notProvidedCustomExecutions=new Set,this._activeCustomExecutions2=new Map,this._logService=a,this._deprecationService=l,this._proxy.$registerSupportedExecutions(!0)}registerTaskProvider(t,e,n){if(!n)return new xe(()=>{});let o=this.nextHandle();return this._handlers.set(o,{type:e,provider:n,extension:t}),this._proxy.$registerTaskProvider(o,e),new xe(()=>{this._handlers.delete(o),this._proxy.$unregisterTaskProvider(o)})}registerTaskSystem(t,e){this._proxy.$registerTaskSystem(t,e)}fetchTasks(t){return this._proxy.$fetchTasks(p4.from(t)).then(async e=>{let n=[];for(let o of e){let r=await qs.to(o,this._workspaceProvider,this._providedCustomExecutions2);r&&n.push(r)}return n})}get taskExecutions(){let t=[];return this._taskExecutions.forEach(e=>t.push(e)),t}terminateTask(t){if(!(t instanceof zb))throw new Error("No valid task execution provided");return this._proxy.$terminateTask(t._id)}get onDidStartTask(){return this._onDidExecuteTask.event}async $onDidStartTask(t,e,n){let o=this._providedCustomExecutions2.get(t.id);o&&(this._activeCustomExecutions2.set(t.id,o),this._terminalService.attachPtyToTerminal(e,await o.callback(n))),this._lastStartedTask=t.id;let r=await this.getTaskExecution(t),s=this._terminalService.getTerminalById(e)?.value;r&&(r.terminal=s),this._onDidExecuteTask.fire({execution:r})}get onDidEndTask(){return this._onDidTerminateTask.event}async $OnDidEndTask(t){if(!this._taskExecutionPromises.has(t.id))return;let e=await this.getTaskExecution(t);this._taskExecutionPromises.delete(t.id),this._taskExecutions.delete(t.id),this.customExecutionComplete(t),this._onDidTerminateTask.fire({execution:e})}get onDidStartTaskProcess(){return this._onDidTaskProcessStarted.event}async $onDidStartTaskProcess(t){let e=await this.getTaskExecution(t.id);this._onDidTaskProcessStarted.fire({execution:e,processId:t.processId})}get onDidEndTaskProcess(){return this._onDidTaskProcessEnded.event}async $onDidEndTaskProcess(t){let e=await this.getTaskExecution(t.id);this._onDidTaskProcessEnded.fire({execution:e,exitCode:t.exitCode})}get onDidStartTaskProblemMatchers(){return this._onDidStartTaskProblemMatchers.event}async $onDidStartTaskProblemMatchers(t){let e;try{e=await this.getTaskExecution(t.execution.id)}catch{return}this._onDidStartTaskProblemMatchers.fire({execution:e})}get onDidEndTaskProblemMatchers(){return this._onDidEndTaskProblemMatchers.event}async $onDidEndTaskProblemMatchers(t){let e;try{e=await this.getTaskExecution(t.execution.id)}catch{return}this._onDidEndTaskProblemMatchers.fire({execution:e,hasErrors:t.hasErrors})}$provideTasks(t,e){let n=this._handlers.get(t);if(!n)return Promise.reject(new Error("no handler found"));let o=[],r=bn(()=>n.provider.provideTasks(me.None)).then(s=>this.provideTasksInternal(e,o,n,s));return new Promise(s=>{r.then(a=>{Promise.all(o).then(()=>{s(a)})})})}async $resolveTask(t,e){let n=this._handlers.get(t);if(!n)return Promise.reject(new Error("no handler found"));if(e.definition.type!==n.type)throw new Error(`Unexpected: Task of type [${e.definition.type}] cannot be resolved by provider of type [${n.type}].`);let o=await qs.to(e,this._workspaceProvider,this._providedCustomExecutions2);if(!o)throw new Error("Unexpected: Task cannot be resolved.");let r=await n.provider.resolveTask(o,me.None);if(!r)return;this.checkDeprecation(r,n);let s=qs.from(r,n.extension);if(!s)throw new Error("Unexpected: Task cannot be resolved.");if(r.definition!==o.definition)throw new Error("Unexpected: The resolved task definition must be the same object as the original task definition. The task definition cannot be changed.");return Wi.is(s.execution)&&await this.addCustomExecution(s,r,!0),await this.resolveTaskInternal(s)}nextHandle(){return this._handleCounter++}async addCustomExecution(t,e,n){let o=await this._proxy.$createTaskId(t);!n&&!this._providedCustomExecutions2.has(o)&&(this._notProvidedCustomExecutions.add(o),this._activeCustomExecutions2.set(o,e.execution)),this._providedCustomExecutions2.set(o,e.execution)}async getTaskExecution(t,e){if(typeof t=="string"){let r=this._taskExecutionPromises.get(t);if(!r)throw new no("Unexpected: The specified task is missing an execution");return r}let n=this._taskExecutionPromises.get(t.id);if(n)return n;let o;return e?o=Promise.resolve(new zb(this,t.id,e)):o=qs.to(t.task,this._workspaceProvider,this._providedCustomExecutions2).then(r=>{if(!r)throw new no("Unexpected: Task does not exist.");return new zb(this,t.id,r)}),this._taskExecutionPromises.set(t.id,o),o.then(r=>(this._taskExecutions.set(t.id,r),r))}checkDeprecation(t,e){t._deprecated&&this._deprecationService.report("Task.constructor",e.extension,"Use the Task constructor that takes a `scope` instead.")}customExecutionComplete(t){this._activeCustomExecutions2.get(t.id)&&this._activeCustomExecutions2.delete(t.id),this._notProvidedCustomExecutions.has(t.id)&&this._lastStartedTask!==t.id&&(this._providedCustomExecutions2.delete(t.id),this._notProvidedCustomExecutions.delete(t.id));let n=this._notProvidedCustomExecutions.values(),o=n.next();for(;!o.done;)!this._activeCustomExecutions2.has(o.value)&&this._lastStartedTask!==o.value&&(this._providedCustomExecutions2.delete(o.value),this._notProvidedCustomExecutions.delete(o.value)),o=n.next()}};Ou=D([C(0,ae),C(1,Xe),C(2,Tn),C(3,Br),C(4,En),C(5,Ro),C(6,ne),C(7,Vi)],Ou);var Yg=class extends Ou{constructor(t,e,n,o,r,s,a,l){super(t,e,n,o,r,s,a,l),this.registerTaskSystem(B.vscodeRemote,{scheme:B.vscodeRemote,authority:"",platform:o_(0)})}async executeTask(t,e){if(!e.execution)throw new Error("Tasks to execute must include an execution");let n=qs.from(e,t);if(n===void 0)throw new Error("Task is not valid");if(Wi.is(n.execution))await this.addCustomExecution(n,e,!1);else throw new oc;let o=await this.getTaskExecution(await this._proxy.$getTaskExecution(n),e);return this._proxy.$executeTask(n).catch(r=>{throw new Error(r)}),o}provideTasksInternal(t,e,n,o){let r=[];if(o)for(let s of o){if(this.checkDeprecation(s,n),!s.definition||!t[s.definition.type]){let l=s.source?s.source:"No task source";this._logService.warn(`The task [${l}, ${s.name}] uses an undefined task type. The task will be ignored in the future.`)}let a=qs.from(s,n.extension);a&&Wi.is(a.execution)?(r.push(a),e.push(this.addCustomExecution(a,s,!0))):this._logService.warn("Only custom execution tasks supported.")}return{tasks:r,extension:n.extension}}async resolveTaskInternal(t){if(Wi.is(t.execution))return t;this._logService.warn("Only custom execution tasks supported.")}async $resolveVariables(t,e){return{process:void 0,variables:Object.create(null)}}async $jsonTasksSupported(){return!1}async $findExecutable(t,e,n){}};Yg=D([C(0,ae),C(1,Xe),C(2,Tn),C(3,Br),C(4,En),C(5,Ro),C(6,ne),C(7,Vi)],Yg);var Xg=R("IExtHostTask");var Zg=class{constructor(){this.pendingRequests=new Map;this.pendingRequestTimers=new Map;this.queue=[];this._onError=new E;this._onExit=new E;this.sequence=1}get onError(){return this._onError.event}get onExit(){return this._onExit.event}onMessage(t){this.messageCallback&&this._onError.fire(new Error("attempt to set more than one 'Message' callback")),this.messageCallback=t}onEvent(t){this.eventCallback&&this._onError.fire(new Error("attempt to set more than one 'Event' callback")),this.eventCallback=t}onRequest(t){this.requestCallback&&this._onError.fire(new Error("attempt to set more than one 'Request' callback")),this.requestCallback=t}sendResponse(t){t.seq>0?this._onError.fire(new Error(`attempt to send more than one response for command ${t.command}`)):this.internalSend("response",t)}sendRequest(t,e,n,o){let r={command:t};if(e&&Object.keys(e).length>0&&(r.arguments=e),this.internalSend("request",r),typeof o=="number"){let s=setTimeout(()=>{this.pendingRequestTimers.delete(r.seq);let a=this.pendingRequests.get(r.seq);if(a){this.pendingRequests.delete(r.seq);let l={type:"response",seq:0,request_seq:r.seq,success:!1,command:t,message:p(10283,null,o,t)};a(l)}},o);this.pendingRequestTimers.set(r.seq,s)}return n&&this.pendingRequests.set(r.seq,n),r.seq}acceptMessage(t){this.messageCallback?this.messageCallback(t):(this.queue.push(t),this.queue.length===1&&this.processQueue())}needsTaskBoundaryBetween(t,e){return t.type!=="event"||e.type!=="event"}async processQueue(){let t;for(;this.queue.length;){if((!t||this.needsTaskBoundaryBetween(this.queue[0],t))&&await Vt(0),t=this.queue.shift(),!t)return;switch(t.type){case"event":this.eventCallback?.(t);break;case"request":this.requestCallback?.(t);break;case"response":{let e=t,n=this.pendingRequests.get(e.request_seq);n&&(this.pendingRequests.delete(e.request_seq),this.clearPendingRequestTimer(e.request_seq),n(e));break}}}}internalSend(t,e){e.type=t,e.seq=this.sequence++,this.sendMessage(e)}async cancelPendingRequests(){if(this.pendingRequests.size===0)return Promise.resolve();let t=new Map;this.pendingRequests.forEach((e,n)=>t.set(n,e)),await Vt(500),t.forEach((e,n)=>{e({type:"response",seq:0,request_seq:n,success:!1,command:"canceled",message:"canceled"}),this.pendingRequests.delete(n),this.clearPendingRequestTimer(n)})}clearPendingRequestTimer(t){clearTimeout(this.pendingRequestTimers.get(t)),this.pendingRequestTimers.delete(t)}getPendingRequestIds(){return Array.from(this.pendingRequests.keys())}dispose(){for(let t of this.pendingRequestTimers.values())clearTimeout(t);this.pendingRequestTimers.clear(),this._onError.dispose(),this._onExit.dispose(),this.queue=[]}};function m4(i){return i.type&&(i.label||i.program||i.runtime)}var bj=/^[a-zA-Z][a-zA-Z0-9\+\-\.]+:/;function yj(i){return!!(i&&i.match(bj))}function g4(i){if(typeof i.path=="string"&&!(typeof i.sourceReference=="number"&&i.sourceReference>0)){if(yj(i.path))return b.parse(i.path);if(xn(i.path))return b.file(i.path)}return i.path}function f4(i){if(typeof i.path=="object"){let t=b.revive(i.path);if(t)return t.scheme===B.file?t.fsPath:t.toString()}return i.path}function h4(i,t){let e=t?g4:f4,n=lt(i);return b4(n,(o,r)=>{o&&r&&(r.path=e(r))}),n}function v4(i,t){let e=t?g4:f4,n=lt(i);return b4(n,(o,r)=>{!o&&r&&(r.path=e(r))}),n}function b4(i,t){switch(i.type){case"event":{let e=i;switch(e.event){case"output":t(!1,e.body.source);break;case"loadedSource":t(!1,e.body.source);break;case"breakpoint":t(!1,e.body.breakpoint.source);break;default:break}break}case"request":{let e=i;switch(e.command){case"setBreakpoints":t(!0,e.arguments.source);break;case"breakpointLocations":t(!0,e.arguments.source);break;case"source":t(!0,e.arguments.source);break;case"gotoTargets":t(!0,e.arguments.source);break;case"launchVSCode":e.arguments.args.forEach(n=>t(!1,n));break;default:break}break}case"response":{let e=i;if(e.success&&e.body)switch(e.command){case"stackTrace":e.body.stackFrames.forEach(n=>t(!1,n.source));break;case"loadedSources":e.body.sources.forEach(n=>t(!1,n));break;case"scopes":e.body.scopes.forEach(n=>t(!1,n.source));break;case"setFunctionBreakpoints":e.body.breakpoints.forEach(n=>t(!1,n.source));break;case"setBreakpoints":e.body.breakpoints.forEach(n=>t(!1,n.source));break;case"disassemble":e.body?.instructions.forEach(o=>t(!1,o.location));break;case"locations":t(!1,e.body?.source);break;default:break}break}}}var Bi=R("IExtHostEditorTabs"),IE=class{constructor(t,e,n){this._activeTabIdGetter=n,this._parentGroup=e,this.acceptDtoUpdate(t)}get apiObject(){if(!this._apiObject){let t=this,e={get isActive(){return t._dto.id===t._activeTabIdGetter()},get label(){return t._dto.label},get input(){return t._input},get isDirty(){return t._dto.isDirty},get isPinned(){return t._dto.isPinned},get isPreview(){return t._dto.isPreview},get group(){return t._parentGroup.apiObject}};this._apiObject=Object.freeze(e)}return this._apiObject}get tabId(){return this._dto.id}acceptDtoUpdate(t){this._dto=t,this._input=this._initInput()}_initInput(){switch(this._dto.input.kind){case 1:return new gd(b.revive(this._dto.input.uri));case 2:return new La(b.revive(this._dto.input.original),b.revive(this._dto.input.modified));case 3:return new km(b.revive(this._dto.input.base),b.revive(this._dto.input.input1),b.revive(this._dto.input.input2),b.revive(this._dto.input.result));case 6:return new fd(b.revive(this._dto.input.uri),this._dto.input.viewType);case 7:return new Pm(this._dto.input.viewType);case 4:return new hd(b.revive(this._dto.input.uri),this._dto.input.notebookType);case 5:return new vd(b.revive(this._dto.input.original),b.revive(this._dto.input.modified),this._dto.input.notebookType);case 8:return new _m;case 9:return new Dm(b.revive(this._dto.input.uri),b.revive(this._dto.input.inputBoxUri));case 10:return new Rm;case 11:return new Am(this._dto.input.diffEditors.map(t=>new La(b.revive(t.original),b.revive(t.modified))));default:return}}},rL=class{constructor(t,e){this._tabs=[];this._activeTabId="";this._dto=t,this._activeGroupIdGetter=e;for(let n of t.tabs)n.isActive&&(this._activeTabId=n.id),this._tabs.push(new IE(n,this,()=>this.activeTabId()))}get apiObject(){if(!this._apiObject){let t=this,e={get isActive(){return t._dto.groupId===t._activeGroupIdGetter()},get viewColumn(){return $t.to(t._dto.viewColumn)},get activeTab(){return t._tabs.find(n=>n.tabId===t._activeTabId)?.apiObject},get tabs(){return Object.freeze(t._tabs.map(n=>n.apiObject))}};this._apiObject=Object.freeze(e)}return this._apiObject}get groupId(){return this._dto.groupId}get tabs(){return this._tabs}acceptGroupDtoUpdate(t){this._dto=t}acceptTabOperation(t){if(t.kind===0){let n=new IE(t.tabDto,this,()=>this.activeTabId());return this._tabs.splice(t.index,0,n),t.tabDto.isActive&&(this._activeTabId=n.tabId),n}else if(t.kind===1){let n=this._tabs.splice(t.index,1)[0];if(!n)throw new Error(`Tab close updated received for index ${t.index} which does not exist`);return n.tabId===this._activeTabId&&(this._activeTabId=""),n}else if(t.kind===3){if(t.oldIndex===void 0)throw new Error("Invalid old index on move IPC");let n=this._tabs.splice(t.oldIndex,1)[0];if(!n)throw new Error(`Tab move updated received for index ${t.oldIndex} which does not exist`);return this._tabs.splice(t.index,0,n),n}let e=this._tabs.find(n=>n.tabId===t.tabDto.id);if(!e)throw new Error("INVALID tab");return t.tabDto.isActive?this._activeTabId=t.tabDto.id:this._activeTabId===t.tabDto.id&&!t.tabDto.isActive&&(this._activeTabId=""),e.acceptDtoUpdate(t.tabDto),e}activeTabId(){return this._activeTabId}},ef=class{constructor(t){this._onDidChangeTabs=new E;this._onDidChangeTabGroups=new E;this._extHostTabGroups=[];this._proxy=t.getProxy(F.MainThreadEditorTabs)}get tabGroups(){if(!this._apiObject){let t=this,e={onDidChangeTabGroups:t._onDidChangeTabGroups.event,onDidChangeTabs:t._onDidChangeTabs.event,get all(){return Object.freeze(t._extHostTabGroups.map(n=>n.apiObject))},get activeTabGroup(){let n=t._activeGroupId;return hi(t._extHostTabGroups.find(r=>r.groupId===n)?.apiObject)},close:async(n,o)=>{let r=Array.isArray(n)?n:[n];return r.length?Ij(r[0])?this._closeGroups(r,o):this._closeTabs(r,o):!0}};this._apiObject=Object.freeze(e)}return this._apiObject}$acceptEditorTabModel(t){let e=new Set(this._extHostTabGroups.map(d=>d.groupId)),n=new Set(t.map(d=>d.groupId)),o=WP(e,n),r=this._extHostTabGroups.filter(d=>o.removed.includes(d.groupId)).map(d=>d.apiObject),s=[],a=[];this._extHostTabGroups=t.map(d=>{let c=new rL(d,()=>this._activeGroupId);return o.added.includes(c.groupId)?s.push(c.apiObject):a.push(c.apiObject),c});let l=hi(t.find(d=>d.isActive===!0)?.groupId);l!==void 0&&this._activeGroupId!==l&&(this._activeGroupId=l),this._onDidChangeTabGroups.fire(Object.freeze({opened:s,closed:r,changed:a}))}$acceptTabGroupUpdate(t){let e=this._extHostTabGroups.find(n=>n.groupId===t.groupId);if(!e)throw new Error("Update Group IPC call received before group creation.");e.acceptGroupDtoUpdate(t),t.isActive&&(this._activeGroupId=t.groupId),this._onDidChangeTabGroups.fire(Object.freeze({changed:[e.apiObject],opened:[],closed:[]}))}$acceptTabOperation(t){let e=this._extHostTabGroups.find(o=>o.groupId===t.groupId);if(!e)throw new Error("Update Tabs IPC call received before group creation.");let n=e.acceptTabOperation(t);switch(t.kind){case 0:this._onDidChangeTabs.fire(Object.freeze({opened:[n.apiObject],closed:[],changed:[]}));return;case 1:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[n.apiObject],changed:[]}));return;case 3:case 2:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[],changed:[n.apiObject]}));return}}_findExtHostTabFromApi(t){for(let e of this._extHostTabGroups)for(let n of e.tabs)if(n.apiObject===t)return n}_findExtHostTabGroupFromApi(t){return this._extHostTabGroups.find(e=>e.apiObject===t)}async _closeTabs(t,e){let n=[];for(let o of t){let r=this._findExtHostTabFromApi(o);if(!r)throw new Error("Tab close: Invalid tab not found!");n.push(r.tabId)}return this._proxy.$closeTab(n,e)}async _closeGroups(t,e){let n=[];for(let o of t){let r=this._findExtHostTabGroupFromApi(o);if(!r)throw new Error("Group close: Invalid group not found!");n.push(r.groupId)}return this._proxy.$closeGroup(n,e)}};ef=D([C(0,ae)],ef);function Ij(i){return i.tabs!==void 0}var B4e={6:p(16489,null),4:p(16490,null),3:p(16491,null),1:p(16492,null),2:p(16493,null),5:p(16494,null),0:p(16495,null)};var $4e={4:p(16486,null),2:p(16487,null),8:p(16485,null)};var Sj=0,y4=new WeakMap,el=R("IExtHostTesting"),tf=class extends U{constructor(e,n,o,r){super();this.logService=n;this.commands=o;this.editors=r;this.resultsChangedEmitter=this._register(new E);this.controllers=new Map;this.defaultProfilesChangedEmitter=this._register(new E);this.followupProviders=new Set;this.testFollowups=new Map;this.onResultsChanged=this.resultsChangedEmitter.event;this.results=[];this.proxy=e.getProxy(F.MainThreadTesting),this.observer=new dL(this.proxy),this.runTracker=new sL(this.proxy,n),o.registerArgumentProcessor({processArgument:s=>{switch(s?.$mid){case 16:{let a=s,l=a.tests[a.tests.length-1].item.extId;return this.controllers.get(Ze.root(l))?.collection.tree.get(l)?.actual??d0(s)}case 18:{let{test:a,message:l}=s,d=a.item.extId;return{test:this.controllers.get(Ze.root(d))?.collection.tree.get(d)?.actual??d0({$mid:16,tests:[a]}),message:tg.to(l)}}default:return s}}}),o.registerCommand(!1,"testing.getExplorerSelection",async()=>{let s=await o.executeCommand("_testing.getExplorerSelection"),a=l=>{let d=this.controllers.get(Ze.root(l));if(d)return Ze.isRoot(l)?d.controller:d.collection.tree.get(l)?.actual};return{include:s?.include.map(a).filter(xo)||[],exclude:s?.exclude.map(a).filter(xo)||[]}})}createTestController(e,n,o,r){if(this.controllers.has(n))throw new Error(`Attempt to insert a duplicate controller with ID "${n}"`);let s=new z,a=s.add(new ZT(n,o,this.editors));a.root.label=o;let l=new Map,d=new Set,c=this.proxy,u=()=>{let h=0;r&&(h|=2);let f=g.relatedCodeProvider;return f&&(f?.provideRelatedTests&&(h|=8),f?.provideRelatedCode&&(h|=4)),h},m={items:a.root.children,get label(){return o},set label(h){o=h,a.root.label=h,c.$updateController(n,{label:o})},get refreshHandler(){return r},set refreshHandler(h){r=h,c.$updateController(n,{capabilities:u()})},get id(){return n},get relatedCodeProvider(){return g.relatedCodeProvider},set relatedCodeProvider(h){A(e,"testRelatedCode"),g.relatedCodeProvider=h,c.$updateController(n,{capabilities:u()})},createRunProfile:(h,f,I,x,T,w)=>{let M=Yn(h);for(;l.has(M);)M++;return new SE(this.proxy,l,d,this.defaultProfilesChangedEmitter.event,n,M,h,f,I,x,T,w)},createTestItem(h,f,I){return new Za(n,h,f,I)},createTestRun:(h,f,I=!0)=>this.runTracker.createTestRun(e,n,a,h,f,I),invalidateTestResults:h=>{if(h===void 0)this.proxy.$markTestRetired(void 0);else{let f=h instanceof Array?h:[h];this.proxy.$markTestRetired(f.map(I=>Ze.fromExtHostTestItem(I,n).toString()))}},set resolveHandler(h){a.resolveHandler=h},get resolveHandler(){return a.resolveHandler},dispose:()=>{s.dispose()}},g={controller:m,collection:a,profiles:l,extension:e,activeProfiles:d};return c.$registerTestController(n,o,u()),s.add(Q(()=>c.$unregisterTestController(n))),this.controllers.set(n,g),s.add(Q(()=>this.controllers.delete(n))),s.add(a.onDidGenerateDiff(h=>c.$publishDiff(n,h.map(_S.serialize)))),m}createTestObserver(){return this.observer.checkout()}async runTests(e,n=me.None){let o=I4(e);if(!o)throw new Error("The request passed to `vscode.test.runTests` must include a profile");let r=this.controllers.get(o.controllerId);if(!r)throw new Error("Controller not found");await this.proxy.$runTests({preserveFocus:e.preserveFocus??!0,group:ng.from(o.kind),targets:[{testIds:e.include?.map(s=>Ze.fromExtHostTestItem(s,r.collection.root.id).toString())??[r.collection.root.id],profileId:o.profileId,controllerId:o.controllerId}],exclude:e.exclude?.map(s=>s.id)},n)}registerTestFollowupProvider(e){return this.followupProviders.add(e),{dispose:()=>{this.followupProviders.delete(e)}}}async $getTestsRelatedToCode(e,n,o){let r=this.editors.getDocument(b.revive(e));if(!r)return[];let s=gt.to(n),a=[];return await Promise.all([...this.controllers.values()].map(async l=>{let d;try{d=await l.relatedCodeProvider?.provideRelatedTests?.(r.document,s,o)}catch(c){o.isCancellationRequested||this.logService.warn(`Error thrown while providing related tests for ${l.controller.label}`,c)}if(d){for(let c of d)a.push(Ze.fromExtHostTestItem(c,l.controller.id).toString());l.collection.flushDiff()}})),a}async $getCodeRelatedToTest(e,n){let o=this.controllers.get(Ze.root(e));if(!o)return[];let r=o.collection.tree.get(e);return r?(await o.relatedCodeProvider?.provideRelatedCode?.(r.actual,n))?.map(vo.from)??[]:[]}$syncTests(){for(let{collection:e}of this.controllers.values())e.flushDiff();return Promise.resolve()}async $getCoverageDetails(e,n,o){return(await this.runTracker.getCoverageDetails(e,n,o))?.map(Ib.fromDetails)}async $disposeRun(e){this.runTracker.disposeTestRun(e)}$configureRunProfile(e,n){this.controllers.get(e)?.profiles.get(n)?.configureHandler?.()}$setDefaultRunProfiles(e){let n=new Map;for(let[o,r]of Object.entries(e)){let s=this.controllers.get(o);if(!s)continue;let a=new Map,l=r.filter(c=>!s.activeProfiles.has(c)),d=[...s.activeProfiles].filter(c=>!r.includes(c));for(let c of l)a.set(c,!0),s.activeProfiles.add(c);for(let c of d)a.set(c,!1),s.activeProfiles.delete(c);a.size&&n.set(o,a)}this.defaultProfilesChangedEmitter.fire(n)}async $refreshTests(e,n){await this.controllers.get(e)?.controller.refreshHandler?.(n)}$publishTestResults(e){this.results=Object.freeze(e.map(n=>{let o=RM.to(n),r=n.tasks.findIndex(s=>s.hasCoverage);return r!==-1&&(o.getDetailedCoverage=(s,a=me.None)=>this.proxy.$getCoverageDetails(n.id,r,s,a).then(l=>l.map(Ib.to))),y4.set(o,n.id),o}).concat(this.results).sort((n,o)=>o.completedAt-n.completedAt).slice(0,32)),this.resultsChangedEmitter.fire()}async $expandTest(e,n){let o=this.controllers.get(Ze.fromString(e).controllerId)?.collection;o&&(await o.expand(e,n<0?1/0:n),o.flushDiff())}$acceptDiff(e){this.observer.applyDiff(e.map(n=>_S.deserialize({asCanonicalUri:o=>o},n)))}async $runControllerTests(e,n){return Promise.all(e.map(o=>this.runControllerTestRequest(o,!1,n)))}async $startContinuousRun(e,n){let o=new ke(n),r=await Promise.all(e.map(s=>this.runControllerTestRequest(s,!0,o.token)));return!n.isCancellationRequested&&!r.some(s=>s.error)&&await new Promise(s=>n.onCancellationRequested(s)),o.dispose(!0),r}async $provideTestFollowups(e,n){let o=this.results.find(a=>y4.get(a)===e.resultId),r=o&&Tj(Ze.fromString(e.extId),o?.results);if(!r)return[];let s=[];return await Promise.all([...this.followupProviders].map(async a=>{try{let l=await a.provideFollowup(o,r,e.taskIndex,e.messageIndex,n);l&&(s=s.concat(l))}catch(l){this.logService.error("Error thrown while providing followup for test message",l)}})),n.isCancellationRequested?[]:s.map(a=>{let l=Sj++;return this.testFollowups.set(l,a),{title:a.title,id:l}})}$disposeTestFollowups(e){for(let n of e)this.testFollowups.delete(n)}$executeTestFollowup(e){let n=this.testFollowups.get(e);return n?this.commands.executeCommand(n.command,...n.arguments||[]):Promise.resolve()}$cancelExtensionTestRun(e,n){e===void 0?this.runTracker.cancelAllRuns():this.runTracker.cancelRunById(e,n)}getMetadataForRun(e){for(let n of this.runTracker.trackers){let o=n.getTaskIdForRun(e);if(o)return{taskId:o,runId:n.id}}}async runControllerTestRequest(e,n,o){let r=this.controllers.get(e.controllerId);if(!r)return{};let{collection:s,profiles:a,extension:l}=r,d=a.get(e.profileId);if(!d)return{};let c=e.testIds.map(h=>s.tree.get(h)).filter(xo),u=e.excludeExtIds.map(h=>r.collection.tree.get(h)).filter(xo).filter(h=>c.some(f=>f.fullId.compare(h.fullId)===2));if(!c.length)return{};let m=new ld(c.some(h=>h.actual instanceof wg)?void 0:c.map(h=>h.actual),u.map(h=>h.actual),d,n),g=_W(e)&&this.runTracker.prepareForMainThreadTestRun(l,m,xE.fromInternal(e,r.collection),d,o);try{return await d.runHandler(m,o),{}}catch(h){return{error:String(h)}}finally{g&&g.hasRunningTasks&&!o.isCancellationRequested&&await ye.toPromise(g.onEnd)}}};tf=D([C(0,ae),C(1,ne),C(2,Fn),C(3,Br)],tf);var Cj=1e4;var iL=class extends U{constructor(e,n,o,r,s,a){super();this.dto=e;this.proxy=n;this.logService=o;this.profile=r;this.extension=s;this.state=0;this.running=0;this.tasks=new Map;this.sharedTestIds=new Set;this.endEmitter=this._register(new E);this.publishedCoverage=new Map;this.onEnd=this.endEmitter.event;this.cts=this._register(new ke(a));let l=this._register(new Jn(()=>this.forciblyEndTasks(),Cj));this._register(this.cts.token.onCancellationRequested(()=>l.schedule()));let d=new E;this.onDidDispose=d.event,this._register(Q(()=>{d.fire(),d.dispose()}))}get hasRunningTasks(){return this.running>0}get id(){return this.dto.id}getTaskIdForRun(e){for(let[n,{run:o}]of this.tasks)if(o===e)return n}cancel(e){e?this.tasks.get(e)?.cts.cancel():this.state===0?(this.cts.cancel(),this.state=1):this.state===1&&this.forciblyEndTasks()}async getCoverageDetails(e,n,o){let[,r]=Ze.fromString(e).path,s=this.publishedCoverage.get(e);if(!s)return[];let{report:a,extIds:l}=s,d=this.tasks.get(r);if(!d)throw new Error("unreachable: run task was not found");let c;if(n&&a instanceof Ma){let m=l.indexOf(n);if(m===-1)return[];c=a.includesTests[m]}return await(c?this.profile?.loadDetailedCoverageForTest?.(d.run,a,c,o):this.profile?.loadDetailedCoverage?.(d.run,a,o))??[]}createRun(e){let n=this.dto.id,o=this.dto.controllerId,r=Pe(),s=u=>(m,...g)=>{if(l){this.logService.warn(`Setting the state of test "${m.id}" is a no-op after the run ends.`);return}this.ensureTestIsKnown(m),u(m,...g)},a=(u,m)=>{let g=m instanceof Array?m.map(tg.from):[tg.from(m)];if(u.uri&&u.range){let h={range:G.from(u.range),uri:u.uri};for(let f of g)f.location=f.location||h}this.proxy.$appendTestMessagesInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),g)},l=!1,d=this._register(new ke(this.cts.token)),c={isPersisted:this.dto.isPersisted,token:d.token,name:e,onDidDispose:this.onDidDispose,addCoverage:u=>{if(l)return;let m=u instanceof Ma?u.includesTests:[];if(m.length)for(let f of m)this.ensureTestIsKnown(f);let g=u.uri.toString(),h=new Ze([n,r,g]).toString();this.publishedCoverage.set(h,{report:u,extIds:m.map(f=>Ze.fromExtHostTestItem(f,o).toString())}),this.proxy.$appendCoverage(n,r,Ib.fromFile(o,h,u))},enqueued:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),1)}),skipped:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),5)}),started:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),2)}),errored:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),6,g)}),failed:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,o).toString(),4,g)}),passed:s((u,m)=>{this.proxy.$updateTestStateInRun(n,r,Ze.fromExtHostTestItem(u,this.dto.controllerId).toString(),3,m)}),appendOutput:(u,m,g)=>{l||(g&&this.ensureTestIsKnown(g),this.proxy.$appendOutputToRun(n,r,W.fromString(u),m&&vo.from(m),g&&Ze.fromExtHostTestItem(g,o).toString()))},end:()=>{l||(l=!0,this.proxy.$finishedTestRunTask(n,r),--this.running||this.markEnded())}};return this.running++,this.tasks.set(r,{run:c,cts:d}),this.proxy.$startedTestRunTask(n,{id:r,ctrlId:this.dto.controllerId,name:e||this.extension.displayName||this.extension.identifier.value,running:!0}),c}forciblyEndTasks(){for(let{run:e}of this.tasks.values())e.end()}markEnded(){this.state!==2&&(this.state=2,this.endEmitter.fire())}ensureTestIsKnown(e){if(!(e instanceof Za))throw new jl(e.id);if(this.sharedTestIds.has(Ze.fromExtHostTestItem(e,this.dto.controllerId).toString()))return;let n=[],o=this.dto.colllection.root;for(;;){let r=Hs.from(e);if(n.unshift(r),this.sharedTestIds.has(r.extId)||(this.sharedTestIds.add(r.extId),e===o))break;e=e.parent||o}this.proxy.$addTestsToRun(this.dto.controllerId,this.dto.id,n)}dispose(){this.markEnded(),super.dispose()}},sL=class{constructor(t,e){this.proxy=t;this.logService=e;this.tracked=new Map;this.trackedById=new Map}get trackers(){return this.tracked.values()}getCoverageDetails(t,e,n){let o=Ze.root(t);return this.trackedById.get(o)?.getCoverageDetails(t,e,n)||[]}disposeTestRun(t){this.trackedById.get(t)?.dispose(),this.trackedById.delete(t);for(let[e,{id:n}]of this.tracked)n===t&&this.tracked.delete(e)}prepareForMainThreadTestRun(t,e,n,o,r){return this.getTracker(e,n,o,t,r)}cancelRunById(t,e){this.trackedById.get(t)?.cancel(e)}cancelAllRuns(){for(let t of this.tracked.values())t.cancel()}createTestRun(t,e,n,o,r,s){let a=this.tracked.get(o);if(a)return a.createRun(r);let l=xE.fromPublic(e,n,o,s),d=I4(o);this.proxy.$startedExtensionTestRun({controllerId:e,continuous:!!o.continuous,profile:d&&{group:ng.from(d.kind),id:d.profileId},exclude:o.exclude?.map(u=>Ze.fromExtHostTestItem(u,n.root.id).toString())??[],id:l.id,include:o.include?.map(u=>Ze.fromExtHostTestItem(u,n.root.id).toString())??[n.root.id],preserveFocus:o.preserveFocus??!0,persist:s});let c=this.getTracker(o,l,o.profile,t);return ye.once(c.onEnd)(()=>{this.proxy.$finishedExtensionTestRun(l.id)}),c.createRun(r)}getTracker(t,e,n,o,r){let s=new iL(e,this.proxy,this.logService,n,o,r);return this.tracked.set(t,s),this.trackedById.set(s.id,s),s}},I4=i=>{if(i.profile){if(!(i.profile instanceof SE))throw new Error("TestRunRequest.profile is not an instance created from TestController.createRunProfile");return i.profile}},xE=class i{constructor(t,e,n,o){this.controllerId=t;this.id=e;this.isPersisted=n;this.colllection=o}static fromPublic(t,e,n,o){return new i(t,Pe(),o,e)}static fromInternal(t,e){return new i(t.controllerId,t.runId,!0,e)}},aL=class{constructor(t){this.emitter=t;this.added=new Set;this.updated=new Set;this.removed=new Set;this.alreadyRemoved=new Set}get isEmpty(){return this.added.size===0&&this.removed.size===0&&this.updated.size===0}add(t){this.added.add(t)}update(t){Object.assign(t.revived,Hs.toPlain(t.item)),this.added.has(t)||this.updated.add(t)}remove(t){if(this.added.delete(t))return;this.updated.delete(t);let e=Ze.parentId(t.item.extId);if(e&&this.alreadyRemoved.has(e.toString())){this.alreadyRemoved.add(t.item.extId);return}this.removed.add(t)}getChangeEvent(){let{added:t,updated:e,removed:n}=this;return{get added(){return[...t].map(o=>o.revived)},get updated(){return[...e].map(o=>o.revived)},get removed(){return[...n].map(o=>o.revived)}}}complete(){this.isEmpty||this.emitter.fire(this.getChangeEvent())}},lL=class extends wS{constructor(){super(...arguments);this.changeEmitter=new E;this.onDidChangeTests=this.changeEmitter.event}get rootTests(){return this.roots}getMirroredTestDataById(e){return this.items.get(e)}getMirroredTestDataByReference(e){return this.items.get(e.id)}createItem(e,n){return{...e,revived:Hs.toPlain(e.item),depth:n?n.depth+1:0,children:new Set}}createChangeCollector(){return new aL(this.changeEmitter)}},dL=class{constructor(t){this.proxy=t}checkout(){this.current||(this.current=this.createObserverData());let t=this.current;return t.observers++,{onDidChangeTest:t.tests.onDidChangeTests,get tests(){return[...t.tests.rootTests].map(e=>e.revived)},dispose:pl(()=>{--t.observers===0&&(this.proxy.$unsubscribeFromDiffs(),this.current=void 0)})}}getMirroredTestDataByReference(t){return this.current?.tests.getMirroredTestDataByReference(t)}applyDiff(t){this.current?.tests.apply(t)}createObserverData(){let t=new lL({asCanonicalUri:e=>e});return this.proxy.$subscribeToDiffs(),{observers:0,tests:t}}},qb=(i,t,e,n)=>{e?Object.assign(e,n):t.$updateTestRunConfig(i.controllerId,i.profileId,n)},SE=class extends Cm{constructor(e,n,o,r,s,a,l,d,c,u=!1,m=void 0,g=!1){super(s,a,d);this._label=l;this.runHandler=c;this._tag=m;this._supportsContinuousRun=g;this.#e=e,this.#s=n,this.#t=o,this.#n=r,n.set(a,this);let h=ng.from(d);u&&o.add(a),this.#o={profileId:a,controllerId:s,tag:m?di.namespace(this.controllerId,m.id):null,label:l,group:h,isDefault:u,hasConfigurationHandler:!1,supportsContinuousRun:g},queueMicrotask(()=>{this.#o&&(this.#e.$publishTestRunProfile(this.#o),this.#o=void 0)})}#e;#t;#n;#o;#s;get label(){return this._label}set label(e){e!==this._label&&(this._label=e,qb(this,this.#e,this.#o,{label:e}))}get supportsContinuousRun(){return this._supportsContinuousRun}set supportsContinuousRun(e){e!==this._supportsContinuousRun&&(this._supportsContinuousRun=e,qb(this,this.#e,this.#o,{supportsContinuousRun:e}))}get isDefault(){return this.#t.has(this.profileId)}set isDefault(e){e!==this.isDefault&&(e?this.#t.add(this.profileId):this.#t.delete(this.profileId),qb(this,this.#e,this.#o,{isDefault:e}))}get tag(){return this._tag}set tag(e){e?.id!==this._tag?.id&&(this._tag=e,qb(this,this.#e,this.#o,{tag:e?di.namespace(this.controllerId,e.id):null}))}get configureHandler(){return this._configureHandler}set configureHandler(e){e!==this._configureHandler&&(this._configureHandler=e,qb(this,this.#e,this.#o,{hasConfigurationHandler:!!e}))}get onDidChangeDefault(){return ye.chain(this.#n,e=>e.map(n=>n.get(this.controllerId)?.get(this.profileId)).filter(xo))}dispose(){this.#s?.delete(this.profileId)&&(this.#s=void 0,this.#e.$removeTestProfile(this.controllerId,this.profileId)),this.#o=void 0}};function Tj(i,t){for(let e=0;e<i.path.length;e++){let n=t.find(o=>o.id===i.path[e]);if(!n)return;if(e===i.path.length-1)return n;t=n.children}}var B5e=R("configurationResolverService"),cL=(ve=>(ve.Unknown="unknown",ve.Env="env",ve.Config="config",ve.Command="command",ve.Input="input",ve.ExtensionInstallFolder="extensionInstallFolder",ve.TaskVar="taskVar",ve.WorkspaceFolder="workspaceFolder",ve.Cwd="cwd",ve.WorkspaceFolderBasename="workspaceFolderBasename",ve.UserHome="userHome",ve.LineNumber="lineNumber",ve.ColumnNumber="columnNumber",ve.SelectedText="selectedText",ve.File="file",ve.FileWorkspaceFolder="fileWorkspaceFolder",ve.FileWorkspaceFolderBasename="fileWorkspaceFolderBasename",ve.RelativeFile="relativeFile",ve.RelativeFileDirname="relativeFileDirname",ve.FileDirname="fileDirname",ve.FileExtname="fileExtname",ve.FileBasename="fileBasename",ve.FileBasenameNoExtension="fileBasenameNoExtension",ve.FileDirnameBasename="fileDirnameBasename",ve.ExecPath="execPath",ve.ExecInstallFolder="execInstallFolder",ve.PathSeparator="pathSeparator",ve.PathSeparatorAlias="/",ve))(cL||{}),x4=Object.values(cL).filter(i=>typeof i=="string"),Io=class extends no{constructor(e,n){super(n);this.variable=e}};var Kb=class i{constructor(t){this.locations=new Map;this.newReplacementNotifiers=new Set;typeof t=="string"?(this.stringRoot=!0,this.root={value:t}):(this.stringRoot=!1,this.root=structuredClone(t))}static{this.VARIABLE_LHS="${"}static parse(t){if(t instanceof i)return t;let e=new i(t);return e.applyPlatformSpecificKeys(),e.parseObject(e.root),e}applyPlatformSpecificKeys(){let t=this.root,e=Ce?"windows":ht?"osx":Je?"linux":void 0;e&&t&&typeof t=="object"&&t.hasOwnProperty(e)&&Object.keys(t[e]).forEach(n=>t[n]=t[e][n]),delete t.windows,delete t.osx,delete t.linux}parseVariable(t,e){if(t[e]!=="$"||t[e+1]!=="{")return;let n=e+2,o=1;for(;n<t.length;){if(t[n]==="{")o++;else if(t[n]==="}"&&(o--,o===0))break;n++}if(o!==0)return;let r=t.slice(e,n+1),s=t.substring(e+2,n),a=s.indexOf(":");return a===-1?{replacement:{id:r,name:s,inner:s},end:n}:{replacement:{id:r,inner:s,name:s.slice(0,a),arg:s.slice(a+1)},end:n}}parseObject(t){if(!(typeof t!="object"||t===null)){if(Array.isArray(t)){for(let e=0;e<t.length;e++){let n=t[e];typeof n=="string"?this.parseString(t,e,n):this.parseObject(n)}return}for(let[e,n]of Object.entries(t))this.parseString(t,e,e,!0),typeof n=="string"?this.parseString(t,e,n):this.parseObject(n)}}parseString(t,e,n,o,r){let s=0;for(;s<n.length;){let a=n.indexOf("${",s);if(a===-1)break;let l=this.parseVariable(n,a);if(l){if(s=l.end+1,r?.includes(l.replacement.id))continue;let d=this.locations.get(l.replacement.id)||{locations:[],replacement:l.replacement},c={object:t,propertyName:e,replaceKeyName:o};d.locations.push(c),this.locations.set(l.replacement.id,d),d.resolved?this._resolveAtLocation(l.replacement,c,d.resolved,r):this.newReplacementNotifiers.forEach(u=>u(l.replacement))}else s=a+2}}*unresolved(){let t=new Map,e=n=>{t.set(n.id,n)};for(let n of this.locations.values())n.resolved===void 0&&t.set(n.replacement.id,n.replacement);for(this.newReplacementNotifiers.add(e);;){let n=At.first(t);if(!n)break;let[o,r]=n;yield r,t.delete(o)}this.newReplacementNotifiers.delete(e)}resolved(){return At.map(At.filter(this.locations.values(),t=>!!t.resolved),t=>[t.replacement,t.resolved])}resolve(t,e){typeof e!="object"&&(e={value:String(e)});let n=this.locations.get(t.id);if(n&&(n.resolved=e,e.value!==void 0))for(let o of n.locations||At.empty())this._resolveAtLocation(t,o,e)}_resolveAtLocation(t,{replaceKeyName:e,propertyName:n,object:o},r,s=[]){if(r.value!==void 0){if(s.push(t.id),e&&typeof n=="string"){let a=o[n],l=n.replaceAll(t.id,r.value);delete o[n],o[l]=a,this._renameKeyInLocations(o,n,l),this.parseString(o,l,r.value,!0,s)}else o[n]=o[n].replaceAll(t.id,r.value),this.parseString(o,n,r.value,!1,s);s.pop()}}_renameKeyInLocations(t,e,n){for(let o of this.locations.values())for(let r of o.locations)r.object===t&&r.propertyName===e&&(r.propertyName=n)}toObject(){return this.stringRoot?this.root.value:this.root}};var CE=class{constructor(t,e,n,o){this._contributedVariables=new Map;this.resolvableVariables=new Set(x4);this._context=t,this._labelService=e,this._userHomePromise=n,o&&(this._envVariablesPromise=o.then(r=>this.prepareEnv(r)))}prepareEnv(t){if(Ce){let e=Object.create(null);return Object.keys(t).forEach(n=>{e[n.toLowerCase()]=t[n]}),e}return t}async resolveWithEnvironment(t,e,n){let o=Kb.parse(n);for(let r of o.unresolved()){let s=await this.evaluateSingleVariable(r,e?.uri,t);s!==void 0&&o.resolve(r,String(s))}return o.toObject()}async resolveAsync(t,e){let n=Kb.parse(e);for(let o of n.unresolved()){let r=await this.evaluateSingleVariable(o,t?.uri);r!==void 0&&n.resolve(o,String(r))}return n.toObject()}resolveWithInteractionReplace(t,e){throw new Error("resolveWithInteractionReplace not implemented.")}resolveWithInteraction(t,e){throw new Error("resolveWithInteraction not implemented.")}contributeVariable(t,e){if(this._contributedVariables.has(t))throw new Error("Variable "+t+" is contributed twice.");this.resolvableVariables.add(t),this._contributedVariables.set(t,e)}fsPath(t){return this._labelService?this._labelService.getUriLabel(t,{noPrefix:!0}):t.fsPath}async evaluateSingleVariable(t,e,n,o){let r={env:n!==void 0?this.prepareEnv(n):await this._envVariablesPromise,userHome:n!==void 0?void 0:await this._userHomePromise},{name:s,arg:a}=t,l=u=>{let m=this._context.getFilePath();if(m)return zp(m);throw new Io(u,p(17830,null,t.id))},d=u=>{let m=l(u);if(this._context.getWorkspaceFolderPathForFile){let g=this._context.getWorkspaceFolderPathForFile();if(g)return zp(g)}throw new Io(u,p(17831,null,t.id,ot(m)))},c=u=>{if(a){let m=this._context.getFolderUri(a);if(m)return m;throw new Io(u,p(17828,null,u,a))}if(e)return e;throw this._context.getWorkspaceFolderCount()>1?new Io(u,p(17836,null,u)):new Io(u,p(17835,null,u))};switch(s){case"env":if(a){if(r.env){let u=r.env[Ce?a.toLowerCase():a];if(Me(u))return u}return""}throw new Io("env",p(17841,null,t.id));case"config":if(a){let u=this._context.getConfigurationValue(e,a);if(Ht(u))throw new Io("config",p(17838,null,t.id,a));if(st(u))throw new Io("config",p(17837,null,t.id,a));return u}throw new Io("config",p(17840,null,t.id));case"command":return this.resolveFromMap("command",t.id,a,o,"command");case"input":return this.resolveFromMap("input",t.id,a,o,"input");case"extensionInstallFolder":if(a){let u=await this._context.getExtension(a);if(!u)throw new Io("extensionInstallFolder",p(17839,null,t.id,a));return this.fsPath(u.extensionLocation)}throw new Io("extensionInstallFolder",p(17842,null,t.id));default:switch(s){case"workspaceRoot":case"workspaceFolder":{let u=c("workspaceFolder");return u?zp(this.fsPath(u)):void 0}case"cwd":{if(!e&&!a)return vi();let u=c("cwd");return u?zp(this.fsPath(u)):void 0}case"workspaceRootFolderName":case"workspaceFolderBasename":{let u=c("workspaceFolderBasename");return u?zp(ot(this.fsPath(u))):void 0}case"userHome":if(r.userHome)return r.userHome;throw new Io("userHome",p(17834,null,t.id));case"lineNumber":{let u=this._context.getLineNumber();if(u)return u;throw new Io("lineNumber",p(17832,null,t.id))}case"columnNumber":{let u=this._context.getColumnNumber();if(u)return u;throw new Error(p(17829,null,t.id))}case"selectedText":{let u=this._context.getSelectedText();if(u)return u;throw new Io("selectedText",p(17833,null,t.id))}case"file":return l("file");case"fileWorkspaceFolder":return d("fileWorkspaceFolder");case"fileWorkspaceFolderBasename":return ot(d("fileWorkspaceFolderBasename"));case"relativeFile":return e||a?bi(this.fsPath(c("relativeFile")),l("relativeFile")):l("relativeFile");case"relativeFileDirname":{let u=pn(l("relativeFileDirname"));if(e||a){let m=bi(this.fsPath(c("relativeFileDirname")),u);return m.length===0?".":m}return u}case"fileDirname":return pn(l("fileDirname"));case"fileExtname":return yl(l("fileExtname"));case"fileBasename":return ot(l("fileBasename"));case"fileBasenameNoExtension":{let u=ot(l("fileBasenameNoExtension"));return u.slice(0,u.length-yl(u).length)}case"fileDirnameBasename":return ot(pn(l("fileDirnameBasename")));case"execPath":{let u=this._context.getExecPath();return u||t.id}case"execInstallFolder":{let u=this._context.getAppRoot();return u||t.id}case"pathSeparator":case"/":return Pt;default:try{return this.resolveFromMap("unknown",t.id,a,o,void 0)}catch{return t.id}}}}resolveFromMap(t,e,n,o,r){if(n&&o){let s=r===void 0?o[n]:o[r+":"+n];if(typeof s=="string")return s;throw new Io(t,p(17843,null,e))}return e}};var $r=R("IExtHostVariableResolverProvider"),uL=class extends CE{constructor(t,e,n,o,r,s,a){function l(){if(n){let d=n.activeEditor();if(d)return d.document.uri;let c=o.tabGroups.all.find(u=>u.isActive)?.activeTab;if(c!==void 0){if(c.input instanceof La||c.input instanceof vd)return c.input.modified;if(c.input instanceof gd||c.input instanceof hd||c.input instanceof fd)return c.input.uri}}}super({getFolderUri:d=>{let c=s.folders.filter(u=>u.name===d);if(c&&c.length>0)return c[0].uri},getWorkspaceFolderCount:()=>s.folders.length,getConfigurationValue:(d,c)=>r.getConfiguration(void 0,d).get(c),getAppRoot:()=>vi(),getExecPath:()=>oo.VSCODE_EXEC_PATH,getFilePath:()=>{let d=l();if(d)return ro(d.fsPath)},getWorkspaceFolderPathForFile:()=>{if(e){let d=l();if(d){let c=e.getWorkspaceFolder(d);if(c)return ro(c.uri.fsPath)}}},getSelectedText:()=>{if(n){let d=n.activeEditor();if(d&&!d.selection.isEmpty)return d.document.getText(d.selection)}},getLineNumber:()=>{if(n){let d=n.activeEditor();if(d)return String(d.selection.end.line+1)}},getColumnNumber:()=>{if(n){let d=n.activeEditor();if(d)return String(d.selection.end.character+1)}},getExtension:d=>t.getExtension(d)},void 0,a?Promise.resolve(a):void 0,Promise.resolve(oo))}},Wd=class extends U{constructor(e,n,o,r,s){super();this.extensionService=e;this.workspaceService=n;this.editorService=o;this.configurationService=r;this.editorTabs=s;this._resolver=new pt(async()=>{let e=await this.configurationService.getConfigProvider(),o={folders:await this.workspaceService.getWorkspaceFolders2()||[]};return this._register(this.workspaceService.onDidChangeWorkspace(async r=>{o.folders=await this.workspaceService.getWorkspaceFolders2()||[]})),new uL(this.extensionService,this.workspaceService,this.editorService,this.editorTabs,e,o,this.homeDir())})}getResolver(){return this._resolver.value}homeDir(){}};Wd=D([C(0,yo),C(1,Tn),C(2,Br),C(3,En),C(4,Bi)],Wd);var of=R("IExtHostDebugService"),Nu=class extends U{constructor(e,n,o,r,s,a,l,d){super();this._workspaceService=n;this._extensionService=o;this._configurationService=r;this._editorTabs=s;this._variableResolver=a;this._commands=l;this._testing=d;this._debugSessions=new Map;this._debugVisualizationTreeItemIdsCounter=0;this._debugVisualizationProviders=new Map;this._debugVisualizationTrees=new Map;this._debugVisualizationTreeItemIds=new WeakMap;this._debugVisualizationElements=new Map;this._visualizers=new Map;this._visualizerIdCounter=0;this._configProviderHandleCounter=0,this._configProviders=[],this._adapterFactoryHandleCounter=0,this._adapterFactories=[],this._trackerFactoryHandleCounter=0,this._trackerFactories=[],this._debugAdapters=new Map,this._debugAdaptersTrackers=new Map,this._onDidStartDebugSession=this._register(new E),this._onDidTerminateDebugSession=this._register(new E),this._onDidChangeActiveDebugSession=this._register(new E),this._onDidReceiveDebugSessionCustomEvent=this._register(new E),this._debugServiceProxy=e.getProxy(F.MainThreadDebugService),this._onDidChangeBreakpoints=this._register(new E),this._onDidChangeActiveStackItem=this._register(new E),this._activeDebugConsole=new mL(this._debugServiceProxy),this._breakpoints=new Map,this._extensionService.getExtensionRegistry().then(c=>{this._register(c.onDidChange(u=>{this.registerAllDebugTypes(c)})),this.registerAllDebugTypes(c)}),this._telemetryProxy=e.getProxy(F.MainThreadTelemetry)}get onDidStartDebugSession(){return this._onDidStartDebugSession.event}get onDidTerminateDebugSession(){return this._onDidTerminateDebugSession.event}get onDidChangeActiveDebugSession(){return this._onDidChangeActiveDebugSession.event}get activeDebugSession(){return this._activeDebugSession?.api}get onDidReceiveDebugSessionCustomEvent(){return this._onDidReceiveDebugSessionCustomEvent.event}get activeDebugConsole(){return this._activeDebugConsole.value}async $getVisualizerTreeItem(e,n){let o=this.hydrateVisualizationContext(n);if(!o)return;let r=await this._debugVisualizationTrees.get(e)?.getTreeItem?.(o);return r?this.convertVisualizerTreeItem(e,r):void 0}registerDebugVisualizationTree(e,n,o){let r=Ee.toKey(e.identifier),s=this.extensionVisKey(r,n);if(this._debugVisualizationProviders.has(s))throw new Error(`A debug visualization provider with id '${n}' is already registered`);return this._debugVisualizationTrees.set(s,o),this._debugServiceProxy.$registerDebugVisualizerTree(s,!!o.editItem),Q(()=>{this._debugServiceProxy.$unregisterDebugVisualizerTree(s),this._debugVisualizationTrees.delete(n)})}async $getVisualizerTreeItemChildren(e,n){let o=this._debugVisualizationElements.get(n)?.item;return o?(await this._debugVisualizationTrees.get(e)?.getChildren?.(o))?.map(s=>this.convertVisualizerTreeItem(e,s))||[]:[]}async $editVisualizerTreeItem(e,n){let o=this._debugVisualizationElements.get(e);if(!o)return;let r=await this._debugVisualizationTrees.get(o.provider)?.editItem?.(o.item,n);return this.convertVisualizerTreeItem(o.provider,r||o.item)}$disposeVisualizedTree(e){let n=this._debugVisualizationElements.get(e);if(!n)return;let o=[n.children];for(let r of o)if(r)for(let s of r)o.push(this._debugVisualizationElements.get(s)?.children),this._debugVisualizationElements.delete(s)}convertVisualizerTreeItem(e,n){let o=this._debugVisualizationTreeItemIds.get(n);return o||(o=this._debugVisualizationTreeItemIdsCounter++,this._debugVisualizationTreeItemIds.set(n,o),this._debugVisualizationElements.set(o,{provider:e,item:n})),WM.from(n,o)}asDebugSourceUri(e,n){let o=e;if(typeof o.sourceReference=="number"&&o.sourceReference>0){let r=`debug:${encodeURIComponent(o.path||"")}`,s="?";return n&&(r+=`${s}session=${encodeURIComponent(n.id)}`,s="&"),r+=`${s}ref=${o.sourceReference}`,b.parse(r)}else{if(o.path)return b.file(o.path);throw new Error("cannot create uri from DAP 'source' object; properties 'path' and 'sourceReference' are both missing.")}}registerAllDebugTypes(e){let n=[];for(let o of e.getAllExtensionDescriptions())if(o.contributes){let r=o.contributes.debuggers;if(r&&r.length>0)for(let s of r)m4(s)&&n.push(s.type)}this._debugServiceProxy.$registerDebugTypes(n)}get activeStackItem(){return this._activeStackItem}get onDidChangeActiveStackItem(){return this._onDidChangeActiveStackItem.event}get onDidChangeBreakpoints(){return this._onDidChangeBreakpoints.event}get breakpoints(){let e=[];return this._breakpoints.forEach(n=>e.push(n)),e}async $resolveDebugVisualizer(e,n){let o=this._visualizers.get(e);if(!o)throw new Error(`No debug visualizer found with id '${e}'`);let{v:r,provider:s,extensionId:a}=o;if(r.visualization||(r=await s.resolveDebugVisualization?.(r,n)||r,o.v=r),!r.visualization)throw new Error(`No visualization returned from resolveDebugVisualization in '${s}'`);return this.serializeVisualization(a,r.visualization)}async $executeDebugVisualizerCommand(e){let n=this._visualizers.get(e);if(!n)throw new Error(`No debug visualizer found with id '${e}'`);let o=n.v.visualization;o&&"command"in o&&this._commands.executeCommand(o.command,...o.arguments||[])}hydrateVisualizationContext(e){let n=this._debugSessions.get(e.sessionId);return n&&{session:n.api,variable:e.variable,containerId:e.containerId,frameId:e.frameId,threadId:e.threadId}}async $provideDebugVisualizers(e,n,o,r){let s=this.hydrateVisualizationContext(o),a=this.extensionVisKey(e,n),l=this._debugVisualizationProviders.get(a);if(!s||!l)return[];let d=await l.provideDebugVisualization(s,r);return d?d.map(c=>{let u=++this._visualizerIdCounter;this._visualizers.set(u,{v:c,provider:l,extensionId:e});let m=c.iconPath?this.getIconPathOrClass(c.iconPath):void 0;return{id:u,name:c.name,iconClass:m?.iconClass,iconPath:m?.iconPath,visualization:this.serializeVisualization(e,c.visualization)}}):[]}$disposeDebugVisualizers(e){for(let n of e)this._visualizers.delete(n)}registerDebugVisualizationProvider(e,n,o){if(!e.contributes?.debugVisualizers?.some(a=>a.id===n))throw new Error(`Extensions may only call registerDebugVisualizationProvider() for renderers they contribute (got ${n})`);let r=Ee.toKey(e.identifier),s=this.extensionVisKey(r,n);if(this._debugVisualizationProviders.has(s))throw new Error(`A debug visualization provider with id '${n}' is already registered`);return this._debugVisualizationProviders.set(s,o),this._debugServiceProxy.$registerDebugVisualizer(r,n),Q(()=>{this._debugServiceProxy.$unregisterDebugVisualizer(r,n),this._debugVisualizationProviders.delete(n)})}addBreakpoints(e){let n=e.filter(s=>{let a=s.id;return this._breakpoints.has(a)?!1:(this._breakpoints.set(a,s),!0)});this.fireBreakpointChanges(n,[],[]);let o=[],r=new Map;for(let s of n)if(s instanceof Ri){let a=r.get(s.location.uri.toString());a||(a={type:"sourceMulti",uri:s.location.uri,lines:[]},r.set(s.location.uri.toString(),a),o.push(a)),a.lines.push({id:s.id,enabled:s.enabled,condition:s.condition,hitCondition:s.hitCondition,logMessage:s.logMessage,line:s.location.range.start.line,character:s.location.range.start.character,mode:s.mode})}else s instanceof Ai&&o.push({type:"function",id:s.id,enabled:s.enabled,hitCondition:s.hitCondition,logMessage:s.logMessage,condition:s.condition,functionName:s.functionName,mode:s.mode});return this._debugServiceProxy.$registerBreakpoints(o)}removeBreakpoints(e){let n=e.filter(a=>this._breakpoints.delete(a.id));this.fireBreakpointChanges([],n,[]);let o=n.filter(a=>a instanceof Ri).map(a=>a.id),r=n.filter(a=>a instanceof Ai).map(a=>a.id),s=n.filter(a=>a instanceof Jc).map(a=>a.id);return this._debugServiceProxy.$unregisterBreakpoints(o,r,s)}startDebugging(e,n,o){let r=o.testRun&&this._testing.getMetadataForRun(o.testRun);return this._debugServiceProxy.$startDebugging(e?e.uri:void 0,n,{parentSessionID:o.parentSession?o.parentSession.id:void 0,lifecycleManagedByParent:o.lifecycleManagedByParent,repl:o.consoleMode===1?"mergeWithParent":"separate",noDebug:o.noDebug,compact:o.compact,suppressSaveBeforeStart:o.suppressSaveBeforeStart,testRun:r&&{runId:r.runId,taskId:r.taskId},suppressDebugStatusbar:o.suppressDebugStatusbar??o.debugUI?.simple,suppressDebugToolbar:o.suppressDebugToolbar??o.debugUI?.simple,suppressDebugView:o.suppressDebugView??o.debugUI?.simple})}stopDebugging(e){return this._debugServiceProxy.$stopDebugging(e?e.id:void 0)}registerDebugConfigurationProvider(e,n,o){if(!n)return new xe(()=>{});let r=this._configProviderHandleCounter++;return this._configProviders.push({type:e,handle:r,provider:n}),this._debugServiceProxy.$registerDebugConfigurationProvider(e,o,!!n.provideDebugConfigurations,!!n.resolveDebugConfiguration,!!n.resolveDebugConfigurationWithSubstitutedVariables,r),new xe(()=>{this._configProviders=this._configProviders.filter(s=>s.provider!==n),this._debugServiceProxy.$unregisterDebugConfigurationProvider(r)})}registerDebugAdapterDescriptorFactory(e,n,o){if(!o)return new xe(()=>{});if(!this.definesDebugType(e,n))throw new Error(`a DebugAdapterDescriptorFactory can only be registered from the extension that defines the '${n}' debugger.`);if(this.getAdapterDescriptorFactoryByType(n))throw new Error("a DebugAdapterDescriptorFactory can only be registered once per a type.");let r=this._adapterFactoryHandleCounter++;return this._adapterFactories.push({type:n,handle:r,factory:o}),this._debugServiceProxy.$registerDebugAdapterDescriptorFactory(n,r),new xe(()=>{this._adapterFactories=this._adapterFactories.filter(s=>s.factory!==o),this._debugServiceProxy.$unregisterDebugAdapterDescriptorFactory(r)})}registerDebugAdapterTrackerFactory(e,n){if(!n)return new xe(()=>{});let o=this._trackerFactoryHandleCounter++;return this._trackerFactories.push({type:e,handle:o,factory:n}),new xe(()=>{this._trackerFactories=this._trackerFactories.filter(r=>r.factory!==n)})}async $runInTerminal(e,n){return Promise.resolve(void 0)}async $substituteVariables(e,n){let o,r=await this.getFolder(e);return r&&(o={uri:r.uri,name:r.name,index:r.index}),(await this._variableResolver.getResolver()).resolveAsync(o,n)}createDebugAdapter(e,n){if(e instanceof Ra)return new fL(e.implementation)}createSignService(){}async $startDASession(e,n){let o=this,r=await this.getSession(n);return this.getAdapterDescriptor(this.getAdapterDescriptorFactoryByType(r.type),r).then(s=>{if(!s)throw new Error(`Couldn't find a debug adapter descriptor for debug type '${r.type}' (extension might have failed to activate)`);let a=this.createDebugAdapter(s,r);if(!a)throw new Error(`Couldn't create a debug adapter for type '${r.type}'.`);let l=a;return this._debugAdapters.set(e,l),this.getDebugAdapterTrackers(r).then(d=>(d&&this._debugAdaptersTrackers.set(e,d),l.onMessage(async c=>{if(c.type==="request"&&c.command==="handshake"){let u=c,m={type:"response",seq:0,command:u.command,request_seq:u.seq,success:!0};this._signService||(this._signService=this.createSignService());try{if(this._signService){let g=await this._signService.sign(u.arguments.value);m.body={signature:g},l.sendResponse(m)}else throw new Error("no signer")}catch(g){m.success=!1,m.message=g.message,l.sendResponse(m)}}else{d&&d.onDidSendMessage&&d.onDidSendMessage(c);try{c=v4(c,!0)}catch(u){let m=c.type+"_"+(c.command??c.event??"");throw this._telemetryProxy.$publicLog2("debugProtocolMessageError",{type:m,from:r.type}),u}o._debugServiceProxy.$acceptDAMessage(e,c)}}),l.onError(c=>{d&&d.onError&&d.onError(c),this._debugServiceProxy.$acceptDAError(e,c.name,c.message,c.stack)}),l.onExit(c=>{d&&d.onExit&&d.onExit(c??void 0,void 0),this._debugServiceProxy.$acceptDAExit(e,c??void 0,void 0)}),d&&d.onWillStartSession&&d.onWillStartSession(),l.startSession()))})}$sendDAMessage(e,n){n=h4(n,!1);let o=this._debugAdaptersTrackers.get(e);o&&o.onWillReceiveMessage&&o.onWillReceiveMessage(n),this._debugAdapters.get(e)?.sendMessage(n)}$stopDASession(e){let n=this._debugAdaptersTrackers.get(e);this._debugAdaptersTrackers.delete(e),n&&n.onWillStopSession&&n.onWillStopSession();let o=this._debugAdapters.get(e);return this._debugAdapters.delete(e),o?o.stopSession():Promise.resolve(void 0)}$acceptBreakpointsDelta(e){let n=[],o=[],r=[];if(e.added)for(let s of e.added){let a=s.id;if(a&&!this._breakpoints.has(a)){let l;if(s.type==="function")l=new Ai(s.functionName,s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode);else if(s.type==="data")l=new Jc(s.label,s.dataId,s.canPersist,s.enabled,s.hitCondition,s.condition,s.logMessage,s.mode);else{let d=b.revive(s.uri);l=new Ri(new tn(d,new De(s.line,s.character)),s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode)}zW(l,a),this._breakpoints.set(a,l),n.push(l)}}if(e.removed)for(let s of e.removed){let a=this._breakpoints.get(s);a&&(this._breakpoints.delete(s),o.push(a))}if(e.changed){for(let s of e.changed)if(s.id){let a=this._breakpoints.get(s.id);if(a){if(a instanceof Ai&&s.type==="function"){let l=a;l.enabled=s.enabled,l.condition=s.condition,l.hitCondition=s.hitCondition,l.logMessage=s.logMessage,l.functionName=s.functionName}else if(a instanceof Ri&&s.type==="source"){let l=a;l.enabled=s.enabled,l.condition=s.condition,l.hitCondition=s.hitCondition,l.logMessage=s.logMessage,l.location=new tn(b.revive(s.uri),new De(s.line,s.character))}r.push(a)}}}this.fireBreakpointChanges(n,o,r)}async $acceptStackFrameFocus(e){let n;if(e){let o=await this.getSession(e.sessionId);e.kind==="thread"?n=new Im(o.api,e.threadId):n=new ym(o.api,e.threadId,e.frameId)}this._activeStackItem=n,this._onDidChangeActiveStackItem.fire(this._activeStackItem)}$provideDebugConfigurations(e,n,o){return bn(async()=>{let r=this.getConfigProviderByHandle(e);if(!r)throw new Error("no DebugConfigurationProvider found");if(!r.provideDebugConfigurations)throw new Error("DebugConfigurationProvider has no method provideDebugConfigurations");let s=await this.getFolder(n);return r.provideDebugConfigurations(s,o)}).then(r=>{if(!r)throw new Error("nothing returned from DebugConfigurationProvider.provideDebugConfigurations");return r})}$resolveDebugConfiguration(e,n,o,r){return bn(async()=>{let s=this.getConfigProviderByHandle(e);if(!s)throw new Error("no DebugConfigurationProvider found");if(!s.resolveDebugConfiguration)throw new Error("DebugConfigurationProvider has no method resolveDebugConfiguration");let a=await this.getFolder(n);return s.resolveDebugConfiguration(a,o,r)})}$resolveDebugConfigurationWithSubstitutedVariables(e,n,o,r){return bn(async()=>{let s=this.getConfigProviderByHandle(e);if(!s)throw new Error("no DebugConfigurationProvider found");if(!s.resolveDebugConfigurationWithSubstitutedVariables)throw new Error("DebugConfigurationProvider has no method resolveDebugConfigurationWithSubstitutedVariables");let a=await this.getFolder(n);return s.resolveDebugConfigurationWithSubstitutedVariables(a,o,r)})}async $provideDebugAdapter(e,n){let o=this.getAdapterDescriptorFactoryByHandle(e);if(!o)return Promise.reject(new Error("no adapter descriptor factory found for handle"));let r=await this.getSession(n);return this.getAdapterDescriptor(o,r).then(s=>{if(!s)throw new Error(`Couldn't find a debug adapter descriptor for debug type '${r.type}'`);return this.convertToDto(s)})}async $acceptDebugSessionStarted(e){let n=await this.getSession(e);this._onDidStartDebugSession.fire(n.api)}async $acceptDebugSessionTerminated(e){let n=await this.getSession(e);n&&(this._onDidTerminateDebugSession.fire(n.api),this._debugSessions.delete(n.id))}async $acceptDebugSessionActiveChanged(e){this._activeDebugSession=e?await this.getSession(e):void 0,this._onDidChangeActiveDebugSession.fire(this._activeDebugSession?.api)}async $acceptDebugSessionNameChanged(e,n){(await this.getSession(e))?._acceptNameChanged(n)}async $acceptDebugSessionCustomEvent(e,n){let r={session:(await this.getSession(e)).api,event:n.event,body:n.body};this._onDidReceiveDebugSessionCustomEvent.fire(r)}convertToDto(e){if(e instanceof Mi)return this.convertExecutableToDto(e);if(e instanceof Li)return this.convertServerToDto(e);if(e instanceof _s)return this.convertPipeServerToDto(e);if(e instanceof Ra)return this.convertImplementationToDto(e);throw new Error("convertToDto unexpected type")}convertExecutableToDto(e){return{type:"executable",command:e.command,args:e.args,options:e.options}}convertServerToDto(e){return{type:"server",port:e.port,host:e.host}}convertPipeServerToDto(e){return{type:"pipeServer",path:e.path}}convertImplementationToDto(e){return{type:"implementation"}}getAdapterDescriptorFactoryByType(e){let n=this._adapterFactories.filter(o=>o.type===e);if(n.length>0)return n[0].factory}getAdapterDescriptorFactoryByHandle(e){let n=this._adapterFactories.filter(o=>o.handle===e);if(n.length>0)return n[0].factory}getConfigProviderByHandle(e){let n=this._configProviders.filter(o=>o.handle===e);if(n.length>0)return n[0].provider}definesDebugType(e,n){if(e.contributes){let o=e.contributes.debuggers;if(o&&o.length>0){for(let r of o)if(r.label&&r.type&&r.type===n)return!0}}return!1}getDebugAdapterTrackers(e){let o=e.configuration.type,r=this._trackerFactories.filter(s=>s.type===o||s.type==="*").map(s=>bn(()=>s.factory.createDebugAdapterTracker(e.api)).then(a=>a,a=>null));return Promise.race([Promise.all(r).then(s=>{let a=nt(s);if(a.length>0)return new gL(a)}),new Promise(s=>setTimeout(()=>s(void 0),1e3))]).catch(s=>{})}async getAdapterDescriptor(e,n){let o=n.configuration.debugServer;if(typeof o=="number")return Promise.resolve(new Li(o));if(e){let s=await this._extensionService.getExtensionRegistry();return bn(()=>e.createDebugAdapterDescriptor(n.api,this.daExecutableFromPackage(n,s))).then(a=>{if(a)return a})}let r=await this._extensionService.getExtensionRegistry();return Promise.resolve(this.daExecutableFromPackage(n,r))}daExecutableFromPackage(e,n){}fireBreakpointChanges(e,n,o){(e.length>0||n.length>0||o.length>0)&&this._onDidChangeBreakpoints.fire(Object.freeze({added:e,removed:n,changed:o}))}async getSession(e){if(e)if(typeof e=="string"){let n=this._debugSessions.get(e);if(n)return n}else{let n=this._debugSessions.get(e.id);if(!n){let o=await this.getFolder(e.folderUri),r=e.parent?this._debugSessions.get(e.parent):void 0;n=new pL(this._debugServiceProxy,e.id,e.type,e.name,o,e.configuration,r?.api),this._debugSessions.set(n.id,n),this._debugServiceProxy.$sessionCached(n.id)}return n}throw new Error("cannot find session")}getFolder(e){if(e){let n=b.revive(e);return this._workspaceService.resolveWorkspaceFolder(n)}return Promise.resolve(void 0)}extensionVisKey(e,n){return`${e}\0${n}`}serializeVisualization(e,n){if(n){if("title"in n&&"command"in n)return{type:0};if("treeId"in n)return{type:1,id:`${e}\0${n.treeId}`};throw new Error("Unsupported debug visualization type")}}getIconPathOrClass(e){let n=this.getIconUris(e),o,r;return"id"in n?r=dt.asClassName(n):o=n,{iconPath:o,iconClass:r}}getIconUris(e){if(e instanceof mn)return{id:e.id};let n=typeof e=="object"&&"dark"in e?e.dark:e,o=typeof e=="object"&&"light"in e?e.light:e;return{dark:typeof n=="string"?b.file(n):n,light:typeof o=="string"?b.file(o):o}}};Nu=D([C(0,ae),C(1,Tn),C(2,yo),C(3,En),C(4,Bi),C(5,$r),C(6,Fn),C(7,el)],Nu);var pL=class{constructor(t,e,n,o,r,s,a){this._debugServiceProxy=t;this._id=e;this._type=n;this._name=o;this._workspaceFolder=r;this._configuration=s;this._parentSession=a}get api(){let t=this;return this.apiSession??=Object.freeze({id:t._id,type:t._type,get name(){return t._name},set name(e){t._name=e,t._debugServiceProxy.$setDebugSessionName(t._id,e)},parentSession:t._parentSession,workspaceFolder:t._workspaceFolder,configuration:t._configuration,customRequest(e,n){return t._debugServiceProxy.$customDebugAdapterRequest(t._id,e,n)},getDebugProtocolBreakpoint(e){return t._debugServiceProxy.$getDebugProtocolBreakpoint(t._id,e.id)}})}get id(){return this._id}get type(){return this._type}_acceptNameChanged(t){this._name=t}get configuration(){return this._configuration}},mL=class{constructor(t){this.value=Object.freeze({append(e){t.$appendDebugConsole(e)},appendLine(e){this.append(e+`
`)}})}},gL=class{constructor(t){this.trackers=t}onWillStartSession(){this.trackers.forEach(t=>t.onWillStartSession?t.onWillStartSession():void 0)}onWillReceiveMessage(t){this.trackers.forEach(e=>e.onWillReceiveMessage?e.onWillReceiveMessage(t):void 0)}onDidSendMessage(t){this.trackers.forEach(e=>e.onDidSendMessage?e.onDidSendMessage(t):void 0)}onWillStopSession(){this.trackers.forEach(t=>t.onWillStopSession?t.onWillStopSession():void 0)}onError(t){this.trackers.forEach(e=>e.onError?e.onError(t):void 0)}onExit(t,e){this.trackers.forEach(n=>n.onExit?n.onExit(t,e):void 0)}},fL=class extends Zg{constructor(e){super();this.implementation=e;e.onDidSendMessage(n=>{this.acceptMessage(n)})}startSession(){return Promise.resolve(void 0)}sendMessage(e){this.implementation.handleMessage(e)}stopSession(){return this.implementation.dispose(),Promise.resolve(void 0)}},nf=class extends Nu{constructor(t,e,n,o,r,s,a,l){super(t,e,n,o,r,s,a,l)}};nf=D([C(0,ae),C(1,Tn),C(2,yo),C(3,En),C(4,Bi),C(5,$r),C(6,Fn),C(7,el)],nf);function Ej(i){return"uri"in i&&"ranges"in i&&"preview"in i}function wj(i){return i.folderOptions.map(t=>({folder:t.folder,excludes:t.excludes.map(e=>typeof e=="string"?e:e.pattern),includes:t.includes,useGlobalIgnoreFiles:t.useIgnoreFiles.global,useIgnoreFiles:t.useIgnoreFiles.local,useParentIgnoreFiles:t.useIgnoreFiles.parent,followSymlinks:t.followSymlinks,maxResults:i.maxResults,session:i.session}))}var rf=class{constructor(t){this.provider=t}provideFileSearchResults(t,e,n){return(async()=>{let r=wj(e);return Promise.all(r.map(s=>this.provider.provideFileSearchResults({pattern:t},s,n)))})().then(r=>nt(r).flat())}};function kj(i){return i.folderOptions.map(t=>({folder:t.folder,excludes:t.excludes.map(e=>typeof e=="string"?e:e.pattern),includes:t.includes,useGlobalIgnoreFiles:t.useIgnoreFiles.global,useIgnoreFiles:t.useIgnoreFiles.local,useParentIgnoreFiles:t.useIgnoreFiles.parent,followSymlinks:t.followSymlinks,maxResults:i.maxResults,previewOptions:hL(i.previewOptions),maxFileSize:i.maxFileSize,encoding:t.encoding,afterContext:i.surroundingContext,beforeContext:i.surroundingContext}))}function hL(i){return{matchLines:i?.matchLines??_b.matchLines,charsPerLine:i?.charsPerLine??_b.charsPerLine}}function Pj(i){if(Ej(i)){let t=An(i.ranges).map((e,n)=>{let r=An(i.preview.matches)[n];return{sourceRange:e,previewRange:r}});return new qo(i.uri,t,i.preview.text)}else return new Vs(i.uri,i.text,i.lineNumber)}var TE=class{constructor(t){this.provider=t}provideTextSearchResults(t,e,n,o){let r=l=>{_j(l)&&n.report(Pj(l))};return(async()=>nt(await Promise.all(kj(e).map(l=>this.provider.provideTextSearchResults(t,l,{report:d=>r(d)},o)))).reduce((l,d)=>({limitHit:l.limitHit||d.limitHit}),{limitHit:!1}))().then(l=>({limitHit:l.limitHit,message:nt(An(l.message))}))}};function _j(i){if(Dj(i)){if(Array.isArray(i.ranges)){if(!Array.isArray(i.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same type."),!1;if(i.preview.matches.length!==i.ranges.length)return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}else if(Array.isArray(i.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}return!0}function Dj(i){return!!i.preview}var sf=class extends tr{constructor(t,e,n=()=>!1){let o=new gv(n,()=>!1);super(o);let r=new je;t.forEach((s,a)=>{let l=s.folder.with({query:"",fragment:""});r.has(l)?r.get(l).push({fq:s,i:a}):r.set(l,[{fq:s,i:a}])}),r.forEach((s,a)=>{let l=new Map;for(let d of s){let c=e(d.fq,d.i);l.set(this.encodeKey(d.fq.folder),c)}super.set(a,l)})}findQueryFragmentAwareSubstr(t){let e=super.findSubstr(t.with({query:"",fragment:""}));if(!e)return;let n=this.encodeKey(t);return e.get(n)}forEachFolderQueryInfo(t){return this.forEach(e=>e.forEach(n=>t(n)))}encodeKey(t){let e="";return t.query&&(e+=t.query),t.fragment&&(e+="#"+t.fragment),e}};var vL=class{constructor(t,e,n){this.config=t;this.provider=e;this.sessionLifecycle=n;this.isLimitHit=!1;this.resultCount=0;this.isCanceled=!1;this.filePattern=t.filePattern;let o=t.ignoreGlobCase?{ignoreCase:!0}:void 0;this.includePattern=t.includePattern&&Po(t.includePattern,o),this.maxResults=t.maxResults||void 0,this.exists=t.exists,this.activeCancellationTokens=new Set,this.globalExcludePattern=t.excludePattern&&Po(t.excludePattern,o)}cancel(){this.isCanceled=!0,this.activeCancellationTokens.forEach(t=>t.cancel()),this.activeCancellationTokens=new Set}search(t){let e=this.config.folderQueries||[];return new Promise((n,o)=>{let r=s=>{this.resultCount++,t(s)};if(this.isCanceled)return n({limitHit:this.isLimitHit});this.config.extraFileResources&&this.config.extraFileResources.forEach(s=>{let a=s.toString(),l=ot(a);this.globalExcludePattern&&this.globalExcludePattern(a,l)||this.matchFile(r,{base:s,basename:l})}),this.doSearch(e,r).then(s=>{n({limitHit:this.isLimitHit,stats:s||void 0})},s=>{o(new Error(To(s)))})})}async doSearch(t,e){let n=new ke,o=t.map(c=>this.getSearchOptionsForFolder(c)),r=this.provider instanceof rf?this.sessionLifecycle?.tokenSource.token:this.sessionLifecycle?.obj,s={folderOptions:o,maxResults:this.config.maxResults??wd,session:r},a=c=>{let u=new ug(this.config,c),m=!u.hasSiblingExcludeClauses();return{queryTester:u,noSiblingsClauses:m,folder:c.folder,tree:this.initDirectoryTree()}},l=new sf(t,a),d;try{this.activeCancellationTokens.add(n),d=Jt.create();let c=await this.provider.provideFileSearchResults(this.config.filePattern||"",s,n.token),u=d.elapsed(),m=Jt.create();return this.isCanceled&&!this.isLimitHit||(c&&c.forEach(g=>{let h=l.findQueryFragmentAwareSubstr(g),f=$e.relative(h.folder.path,g.path);if(h.noSiblingsClauses){let I=ot(g.path);this.matchFile(e,{base:h.folder,relativePath:f,basename:I});return}this.addDirectoryEntries(h.tree,h.folder,f,e)}),this.isCanceled&&!this.isLimitHit)?null:(l.forEachFolderQueryInfo(g=>{this.matchDirectoryTree(g.tree,g.queryTester,e)}),{providerTime:u,postProcessTime:m.elapsed()})}finally{n.dispose(),this.activeCancellationTokens.delete(n)}}getSearchOptionsForFolder(t){let e=kd(this.config.includePattern,t.includePattern),n=t.excludePattern?.map(r=>({folder:r.folder,patterns:kd(this.config.excludePattern,r.pattern)}));n?.length||(n=[{folder:void 0,patterns:kd(this.config.excludePattern,void 0)}]);let o=HT(n);return{folder:t.folder,excludes:o,includes:e,useIgnoreFiles:{local:!t.disregardIgnoreFiles,parent:!t.disregardParentIgnoreFiles,global:!t.disregardGlobalIgnoreFiles},followSymlinks:!t.ignoreSymlinks}}initDirectoryTree(){let t={rootEntries:[],pathToEntries:Object.create(null)};return t.pathToEntries["."]=t.rootEntries,t}addDirectoryEntries({pathToEntries:t},e,n,o){if(this.filePattern&&ss(n,this.filePattern,this.config.ignoreGlobCase)){let s=ot(this.filePattern);this.matchFile(o,{base:e,relativePath:this.filePattern,basename:s})}function r(s){let a=ot(s),l=pn(s),d=t[l];d||(d=t[l]=[],r(l)),d.push({base:e,relativePath:s,basename:a})}r(n)}matchDirectoryTree({rootEntries:t,pathToEntries:e},n,o){let r=this,s=this.filePattern,a=this.config.ignoreGlobCase;function l(d){let c=Pb(()=>d.map(u=>u.basename));for(let u=0,m=d.length;u<m;u++){let g=d[u],{relativePath:h,basename:f}=g;if(n.matchesExcludesSync(h,f,ss(s,f,a)?void 0:c))continue;let I=e[h];if(I)l(I);else{if(ss(h,s,a))continue;r.matchFile(o,g)}if(r.isLimitHit)break}}l(t)}matchFile(t,e){(!this.includePattern||e.relativePath&&this.includePattern(e.relativePath,e.basename))&&((this.exists||this.maxResults&&this.resultCount>=this.maxResults)&&(this.isLimitHit=!0,this.cancel()),this.isLimitHit||t(e))}},bL=class{constructor(){this._obj=new Object,this.tokenSource=new ke}get obj(){if(this._obj)return this._obj;throw new Error("Session object has been dereferenced.")}cancel(){this.tokenSource.cancel(),this._obj=void 0}},EE=class i{constructor(){this.sessions=new Map}static{this.BATCH_SIZE=512}fileSearch(t,e,n,o){let r=this.getSessionTokenSource(t.cacheKey),s=new vL(t,e,r),a=0,l=d=>{a+=d.length,n(d.map(c=>this.rawMatchToSearchItem(c)))};return this.doSearch(s,i.BATCH_SIZE,l,o).then(d=>({limitHit:d.limitHit,stats:d.stats?{fromCache:!1,type:"fileSearchProvider",resultCount:a,detailStats:d.stats}:void 0,messages:[]}))}clearCache(t){this.sessions.get(t)?.cancel(),this.sessions.delete(t)}getSessionTokenSource(t){if(t)return this.sessions.has(t)||this.sessions.set(t,new bL),this.sessions.get(t)}rawMatchToSearchItem(t){return t.relativePath?{resource:vt(t.base,t.relativePath)}:{resource:t.base}}doSearch(t,e,n,o){let r=o.onCancellationRequested(()=>{t.cancel()}),s=l=>{l&&(a.push(l),e>0&&a.length>=e&&(n(a),a=[]))},a=[];return t.search(s).then(l=>(a.length&&n(a),r.dispose(),l),l=>(a.length&&n(a),r.dispose(),Promise.reject(l)))}};var Uu=class{constructor(t,e,n){this.queryProviderPair=t;this.fileUtils=e;this.processType=n;this.collector=null;this.isLimitHit=!1;this.resultCount=0}get query(){return this.queryProviderPair.query}search(t,e,n){let o=this.query.folderQueries||[],r=new ke(e);return new Promise((s,a)=>{this.collector=new yL(t);let l=!1,d=(c,u)=>{if(!(c instanceof Cu)&&!l&&!this.isLimitHit){let m=this.resultSize(c);c instanceof qo&&typeof this.query.maxResults=="number"&&this.resultCount+m>this.query.maxResults&&(this.isLimitHit=!0,l=!0,r.cancel(),c=this.trimResultToSize(c,this.query.maxResults-this.resultCount));let g=this.resultSize(c);this.resultCount+=g;let h=c instanceof qo;(g>0||!h)&&this.collector.add(c,u)}};this.doSearch(o,d,r.token,n).then(c=>{r.dispose(),this.collector.flush(),s({limitHit:this.isLimitHit||c?.limitHit,messages:this.getMessagesFromResults(c),stats:{type:this.processType}})},c=>{r.dispose();let u=To(c);a(new Error(u))})})}getMessagesFromResults(t){return t?.message?Array.isArray(t.message)?t.message:[t.message]:[]}resultSize(t){return t instanceof qo?Array.isArray(t.ranges)?t.ranges.length:1:0}trimResultToSize(t,e){return new qo(t.uri,t.ranges.slice(0,e),t.previewText)}async doSearch(t,e,n,o){let r=new sf(t,(u,m)=>({queryTester:new ug(this.query,u),folder:u.folder,folderIdx:m}),()=>!0),s=[],a={report:u=>{if(u instanceof Cu)o?.(u);else{if(u.uri===void 0)throw Error("Text search result URI is undefined. Please check provider implementation.");let m=r.findQueryFragmentAwareSubstr(u.uri);if(m?.folder?.scheme){let g=m.folder.scheme===B.file?cB(()=>this.fileUtils.readdir(Oo(u.uri))):void 0,h=Fh(m.folder,u.uri);if(h){let f=m.queryTester.includedInQuery(h,ot(h),g);Gr(f)?s.push(f.then(I=>{I&&e(u,m.folderIdx)})):f&&e(u,m.folderIdx)}}}}},d={folderOptions:t.map(u=>this.getSearchOptionsForFolder(u)),maxFileSize:this.query.maxFileSize,maxResults:this.query.maxResults??wd,previewOptions:this.query.previewOptions??_b,surroundingContext:this.query.surroundingContext??0};"usePCRE2"in this.query&&(d.usePCRE2=this.query.usePCRE2);let c;return this.queryProviderPair.query.type===3?c=await this.queryProviderPair.provider.provideAITextSearchResults(this.queryProviderPair.query.contentPattern,d,a,n):c=await this.queryProviderPair.provider.provideTextSearchResults(Rj(this.queryProviderPair.query.contentPattern),d,a,n),s.length&&await Promise.all(s),c}getSearchOptionsForFolder(t){let e=kd(this.query.includePattern,t.includePattern),n=t.excludePattern?.map(s=>({folder:s.folder,patterns:kd(this.query.excludePattern,s.pattern)}));(!n||n.length===0)&&(n=[{folder:void 0,patterns:kd(this.query.excludePattern,void 0)}]);let o=HT(n);return{folder:b.from(t.folder),excludes:o,includes:e,useIgnoreFiles:{local:!t.disregardIgnoreFiles,parent:!t.disregardParentIgnoreFiles,global:!t.disregardGlobalIgnoreFiles},followSymlinks:!t.ignoreSymlinks,encoding:(t.fileEncoding&&this.fileUtils.toCanonicalName(t.fileEncoding))??"",ignoreGlobCase:this.query.ignoreGlobCase||t.ignoreGlobCase}}};function Rj(i){return{isCaseSensitive:i.isCaseSensitive||!1,isRegExp:i.isRegExp||!1,isWordMatch:i.isWordMatch||!1,isMultiline:i.isMultiline||!1,pattern:i.pattern}}var yL=class{constructor(t){this._onResult=t;this._currentFolderIdx=-1;this._currentFileMatch=null;this._batchedCollector=new IL(512,e=>this.sendItems(e))}add(t,e){this._currentFileMatch&&(this._currentFolderIdx!==e||!Vn(this._currentUri,t.uri))&&(this.pushToCollector(),this._currentFileMatch=null),this._currentFileMatch||(this._currentFolderIdx=e,this._currentUri=t.uri,this._currentFileMatch={resource:t.uri,results:[]}),this._currentFileMatch.results.push(Aj(t))}pushToCollector(){let t=this._currentFileMatch&&this._currentFileMatch.results?this._currentFileMatch.results.length:0;this._batchedCollector.addItem(this._currentFileMatch,t)}flush(){this.pushToCollector(),this._batchedCollector.flush()}sendItems(t){this._onResult(t)}};function Aj(i){return i instanceof qo?{previewText:i.previewText,rangeLocations:i.ranges.map(t=>({preview:{startLineNumber:t.previewRange.start.line,startColumn:t.previewRange.start.character,endLineNumber:t.previewRange.end.line,endColumn:t.previewRange.end.character},source:{startLineNumber:t.sourceRange.start.line,startColumn:t.sourceRange.start.character,endLineNumber:t.sourceRange.end.line,endColumn:t.sourceRange.end.character}}))}:{text:i.text,lineNumber:i.lineNumber}}var IL=class i{constructor(t,e){this.maxBatchSize=t;this.cb=e;this.totalNumberCompleted=0;this.batch=[];this.batchSize=0}static{this.TIMEOUT=4e3}static{this.START_BATCH_AFTER_COUNT=50}addItem(t,e){t&&this.addItemToBatch(t,e)}addItems(t,e){t&&this.addItemsToBatch(t,e)}addItemToBatch(t,e){this.batch.push(t),this.batchSize+=e,this.onUpdate()}addItemsToBatch(t,e){this.batch=this.batch.concat(t),this.batchSize+=e,this.onUpdate()}onUpdate(){this.totalNumberCompleted<i.START_BATCH_AFTER_COUNT?this.flush():this.batchSize>=this.maxBatchSize?this.flush():this.timeoutHandle||(this.timeoutHandle=setTimeout(()=>{this.flush()},i.TIMEOUT))}flush(){this.batchSize&&(this.totalNumberCompleted+=this.batchSize,this.cb(this.batch),this.batch=[],this.batchSize=0,this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0))}};var af=R("IExtHostSearch"),Bd=class{constructor(t,e,n){this.extHostRpc=t;this._uriTransformer=e;this._logService=n;this._proxy=this.extHostRpc.getProxy(F.MainThreadSearch),this._handlePool=0,this._textSearchProvider=new Map,this._textSearchUsedSchemes=new Set,this._aiTextSearchProvider=new Map,this._aiTextSearchUsedSchemes=new Set,this._fileSearchProvider=new Map,this._fileSearchUsedSchemes=new Set,this._fileSearchManager=new EE}_transformScheme(t){return this._uriTransformer.transformOutgoingScheme(t)}registerTextSearchProviderOld(t,e){if(this._textSearchUsedSchemes.has(t))throw new Error(`a text search provider for the scheme '${t}' is already registered`);this._textSearchUsedSchemes.add(t);let n=this._handlePool++;return this._textSearchProvider.set(n,new TE(e)),this._proxy.$registerTextSearchProvider(n,this._transformScheme(t)),Q(()=>{this._textSearchUsedSchemes.delete(t),this._textSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerTextSearchProvider(t,e){if(this._textSearchUsedSchemes.has(t))throw new Error(`a text search provider for the scheme '${t}' is already registered`);this._textSearchUsedSchemes.add(t);let n=this._handlePool++;return this._textSearchProvider.set(n,e),this._proxy.$registerTextSearchProvider(n,this._transformScheme(t)),Q(()=>{this._textSearchUsedSchemes.delete(t),this._textSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerAITextSearchProvider(t,e){if(this._aiTextSearchUsedSchemes.has(t))throw new Error(`an AI text search provider for the scheme '${t}'is already registered`);this._aiTextSearchUsedSchemes.add(t);let n=this._handlePool++;return this._aiTextSearchProvider.set(n,e),this._proxy.$registerAITextSearchProvider(n,this._transformScheme(t)),Q(()=>{this._aiTextSearchUsedSchemes.delete(t),this._aiTextSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerFileSearchProviderOld(t,e){if(this._fileSearchUsedSchemes.has(t))throw new Error(`a file search provider for the scheme '${t}' is already registered`);this._fileSearchUsedSchemes.add(t);let n=this._handlePool++;return this._fileSearchProvider.set(n,new rf(e)),this._proxy.$registerFileSearchProvider(n,this._transformScheme(t)),Q(()=>{this._fileSearchUsedSchemes.delete(t),this._fileSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}registerFileSearchProvider(t,e){if(this._fileSearchUsedSchemes.has(t))throw new Error(`a file search provider for the scheme '${t}' is already registered`);this._fileSearchUsedSchemes.add(t);let n=this._handlePool++;return this._fileSearchProvider.set(n,e),this._proxy.$registerFileSearchProvider(n,this._transformScheme(t)),Q(()=>{this._fileSearchUsedSchemes.delete(t),this._fileSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}$provideFileSearchResults(t,e,n,o){let r=jb(n),s=this._fileSearchProvider.get(t);if(s)return this._fileSearchManager.fileSearch(r,s,a=>{this._proxy.$handleFileMatch(t,e,a.map(l=>l.resource))},o);throw new Error("unknown provider: "+t)}async doInternalFileSearchWithCustomCallback(t,e,n){return{messages:[]}}$clearCache(t){return this._fileSearchManager.clearCache(t),Promise.resolve(void 0)}$provideTextSearchResults(t,e,n,o){let r=this._textSearchProvider.get(t);if(!r||!r.provideTextSearchResults)throw new Error(`Unknown Text Search Provider ${t}`);let s=jb(n);return this.createTextSearchManager(s,r).search(l=>this._proxy.$handleTextMatch(t,e,l),o)}$provideAITextSearchResults(t,e,n,o){let r=this._aiTextSearchProvider.get(t);if(!r||!r.provideAITextSearchResults)throw new Error(`Unknown AI Text Search Provider ${t}`);let s=jb(n);return this.createAITextSearchManager(s,r).search(l=>this._proxy.$handleTextMatch(t,e,l),o,l=>this._proxy.$handleKeywordResult(t,e,l))}$enableExtensionHostSearch(){}async $getAIName(t){let e=this._aiTextSearchProvider.get(t);if(!(!e||!e.provideAITextSearchResults))return e.name??"AI"}createTextSearchManager(t,e){return new Uu({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"textSearchProvider")}createAITextSearchManager(t,e){return new Uu({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"aiTextSearchProvider")}};Bd=D([C(0,ae),C(1,ps),C(2,ne)],Bd);function jb(i){return{...i,folderQueries:i.folderQueries&&i.folderQueries.map(Mj),extraFileResources:i.extraFileResources&&i.extraFileResources.map(t=>b.revive(t))}}function Mj(i){return St(i)}var lf=class extends U{constructor(e){super();this._onDidSuspend=this._register(new E);this.onDidSuspend=this._onDidSuspend.event;this._onDidResume=this._register(new E);this.onDidResume=this._onDidResume.event;this._onDidChangeOnBatteryPower=this._register(new E);this.onDidChangeOnBatteryPower=this._onDidChangeOnBatteryPower.event;this._onDidChangeThermalState=this._register(new E);this.onDidChangeThermalState=this._onDidChangeThermalState.event;this._onDidChangeSpeedLimit=this._register(new E);this.onDidChangeSpeedLimit=this._onDidChangeSpeedLimit.event;this._onWillShutdown=this._register(new E);this.onWillShutdown=this._onWillShutdown.event;this._onDidLockScreen=this._register(new E);this.onDidLockScreen=this._onDidLockScreen.event;this._onDidUnlockScreen=this._register(new E);this.onDidUnlockScreen=this._onDidUnlockScreen.event;this._proxy=e.getProxy(F.MainThreadPower)}$onDidSuspend(){this._onDidSuspend.fire()}$onDidResume(){this._onDidResume.fire()}$onDidChangeOnBatteryPower(e){this._onDidChangeOnBatteryPower.fire(e)}$onDidChangeThermalState(e){this._onDidChangeThermalState.fire(e)}$onDidChangeSpeedLimit(e){this._onDidChangeSpeedLimit.fire(e)}$onWillShutdown(){this._onWillShutdown.fire()}$onDidLockScreen(){this._onDidLockScreen.fire()}$onDidUnlockScreen(){this._onDidUnlockScreen.fire()}getSystemIdleState(e){return this._proxy.$getSystemIdleState(e)}getSystemIdleTime(){return this._proxy.$getSystemIdleTime()}getCurrentThermalState(){return this._proxy.$getCurrentThermalState()}isOnBatteryPower(){return this._proxy.$isOnBatteryPower()}async startPowerSaveBlocker(e){let n=await this._proxy.$startPowerSaveBlocker(e),o=this._proxy,r=n>=0,s=!1;return{id:n,get isStarted(){return r&&!s},dispose:()=>{r&&!s&&(s=!0,o.$stopPowerSaveBlocker(n))}}}};lf=D([C(0,ae)],lf);var wE=R("IExtHostPower");var $d=class extends ax{constructor(t,e){super(e.logLevel,e.logsLocation,e.loggers.map(n=>St(n))),this._proxy=t.getProxy(F.MainThreadLogger)}$setLogLevel(t,e){e?this.setLogLevel(b.revive(e),t):this.setLogLevel(t)}setVisibility(t,e){super.setVisibility(t,e),this._proxy.$setVisibility(t,e)}doCreateLogger(t,e,n){return new xL(this._proxy,t,e,n)}};$d=D([C(0,ae),C(1,Xe)],$d);var xL=class extends Al{constructor(e,n,o,r){super(r?.logLevel==="always");this.proxy=e;this.file=n;this.isLoggerCreated=!1;this.buffer=[];this.setLevel(o),this.proxy.$createLogger(n,r).then(()=>{this.doLog(this.buffer),this.isLoggerCreated=!0})}log(e,n){let o=[[e,n]];this.isLoggerCreated?this.doLog(o):this.buffer.push(...o)}doLog(e){this.proxy.$log(this.file,e)}flush(){this.proxy.$flush(this.file)}};var cf=R("IExtHostTerminalShellIntegration"),df=class extends U{constructor(e,n){super();this._extHostTerminalService=n;this._activeShellIntegrations=new Map;this._onDidChangeTerminalShellIntegration=this._register(new E);this.onDidChangeTerminalShellIntegration=this._onDidChangeTerminalShellIntegration.event;this._onDidStartTerminalShellExecution=this._register(new E);this.onDidStartTerminalShellExecution=this._onDidStartTerminalShellExecution.event;this._onDidEndTerminalShellExecution=this._register(new E);this.onDidEndTerminalShellExecution=this._onDidEndTerminalShellExecution.event;this._proxy=e.getProxy(F.MainThreadTerminalShellIntegration),this._register(Q(()=>{for(let[o,r]of this._activeShellIntegrations)r.dispose();this._activeShellIntegrations.clear()}))}$shellIntegrationChange(e,n){let o=this._extHostTerminalService.getTerminalById(e);if(!o)return;let r=o.value,s=this._activeShellIntegrations.get(e);s||(s=new SL(o.value,n,this._onDidStartTerminalShellExecution),this._activeShellIntegrations.set(e,s),s.store.add(o.onWillDispose(()=>this._activeShellIntegrations.get(e)?.dispose())),s.store.add(s.onDidRequestShellExecution(a=>this._proxy.$executeCommand(e,a))),s.store.add(s.onDidRequestEndExecution(a=>this._onDidEndTerminalShellExecution.fire(a))),s.store.add(s.onDidRequestChangeShellIntegration(a=>this._onDidChangeTerminalShellIntegration.fire(a))),o.shellIntegration=s.value),this._onDidChangeTerminalShellIntegration.fire({terminal:r,shellIntegration:s.value})}$shellExecutionStart(e,n,o,r,s,a){this._activeShellIntegrations.has(e)||this.$shellIntegrationChange(e,n);let l={value:o,confidence:r,isTrusted:s};this._activeShellIntegrations.get(e)?.startShellExecution(l,this._convertCwdToUri(a))}$shellExecutionEnd(e,n,o,r,s){let a={value:n,confidence:o,isTrusted:r};this._activeShellIntegrations.get(e)?.endShellExecution(a,s)}$shellExecutionData(e,n){this._activeShellIntegrations.get(e)?.emitData(n)}$shellEnvChange(e,n,o,r){this._activeShellIntegrations.get(e)?.setEnv(n,o,r)}$cwdChange(e,n){this._activeShellIntegrations.get(e)?.setCwd(this._convertCwdToUri(n))}$closeTerminal(e){this._activeShellIntegrations.get(e)?.dispose(),this._activeShellIntegrations.delete(e)}_convertCwdToUri(e){return e?b.file(e):void 0}};df=D([C(0,ae),C(1,Ro)],df);var SL=class extends U{constructor(e,n,o){super();this._terminal=e;this._onDidStartTerminalShellExecution=o;this._pendingExecutions=[];this.store=this._register(new z);this._onDidRequestChangeShellIntegration=this._register(new E);this.onDidRequestChangeShellIntegration=this._onDidRequestChangeShellIntegration.event;this._onDidRequestShellExecution=this._register(new E);this.onDidRequestShellExecution=this._onDidRequestShellExecution.event;this._onDidRequestEndExecution=this._register(new E);this.onDidRequestEndExecution=this._onDidRequestEndExecution.event;this._onDidRequestNewExecution=this._register(new E);this.onDidRequestNewExecution=this._onDidRequestNewExecution.event;let r=this;this.value={get cwd(){return r._cwd},get env(){if(r._env)return Object.freeze({isTrusted:r._env.isTrusted,value:Object.freeze({...r._env.value})})},executeCommand(s,a){if(!n)throw new Error("This terminal does not support the executeCommand API.");let l=s;if(a)for(let u of a)!u.match(/["'`]/)&&u.match(/\s/)?l+=` "${u}"`:l+=` ${u}`;r._onDidRequestShellExecution.fire(l);let d={value:l,confidence:2,isTrusted:!0};return r.requestNewShellExecution(d,r._cwd).value}}}get currentExecution(){return this._currentExecution}requestNewShellExecution(e,n){let o=new PE(e,n??this._cwd);return kE(e.value).length>1&&(this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:kE(e.value)}),this._pendingExecutions.push(o),this._onDidRequestNewExecution.fire(e.value),o}startShellExecution(e,n){if(this._pendingEndingExecution&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._pendingEndingExecution.value,exitCode:void 0}),this._pendingEndingExecution=void 0),this._currentExecution){if(this._currentExecutionProperties?.isMultiLine&&this._currentExecutionProperties.unresolvedCommandLines){let r=S4(this._currentExecutionProperties.unresolvedCommandLines,e);if(r){this._currentExecutionProperties.unresolvedCommandLines=r.unresolvedCommandLines;return}}this._currentExecution.endExecution(void 0),this._currentExecution.flush(),this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value,exitCode:void 0})}let o;if(e.confidence===2)for(let[r,s]of this._pendingExecutions.entries())if(s.value.commandLine.value===e.value){o=s,this._currentExecutionProperties={isMultiLine:!1,unresolvedCommandLines:void 0},o=s,this._pendingExecutions.splice(r,1);break}else{let a=S4(kE(s.value.commandLine.value),e);if(a){this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:a.unresolvedCommandLines},o=s,this._pendingExecutions.splice(r,1);break}}else o=this._pendingExecutions.shift();o||(o=new PE(e,n??this._cwd)),this._currentExecution=o,this._onDidStartTerminalShellExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value})}emitData(e){this.currentExecution?.emitData(e)}endShellExecution(e,n){if(!(this._currentExecutionProperties?.isMultiLine&&this._currentExecutionProperties.unresolvedCommandLines&&this._currentExecutionProperties.unresolvedCommandLines.length>0)&&this._currentExecution){let o=this._currentExecutionProperties?.isMultiLine?this._currentExecution.value.commandLine:e;this._currentExecution.endExecution(o);let r=this._currentExecution;this._pendingEndingExecution=r,this._currentExecution=void 0,r.flush().then(()=>{this._pendingEndingExecution===r&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:r.value,exitCode:n}),this._pendingEndingExecution=void 0)})}}setEnv(e,n,o){let r={};for(let s=0;s<e.length;s++)r[e[s]]=n[s];this._env={value:r,isTrusted:o},this._fireChangeEvent()}setCwd(e){let n=!1;b.isUri(this._cwd)?n=!b.isUri(e)||this._cwd.toString()!==e.toString():this._cwd!==e&&(n=!0),n&&(this._cwd=e,this._fireChangeEvent())}_fireChangeEvent(){this._onDidRequestChangeShellIntegration.fire({terminal:this._terminal,shellIntegration:this.value})}},PE=class{constructor(t,e){this._commandLine=t;this.cwd=e;this._isEnded=!1;let n=this;this.value={get commandLine(){return n._commandLine},get cwd(){return n.cwd},read(){return n._createDataStream()}}}_createDataStream(){if(!this._dataStream){if(this._isEnded)return ca.EMPTY;this._dataStream=new CL}return this._dataStream.createIterable()}emitData(t){this._isEnded||this._dataStream?.emitData(t)}endExecution(t){t&&(this._commandLine=t),this._dataStream?.endExecution(),this._isEnded=!0}async flush(){this._dataStream&&(await this._dataStream.flush(),this._dataStream.dispose(),this._dataStream=void 0)}},CL=class extends U{constructor(){super(...arguments);this._iterables=[];this._emitters=[]}createIterable(){this._barrier||(this._barrier=new Sn);let e=this._barrier,n=new ca(async o=>{this._emitters.push(o),await e.wait()});return this._iterables.push(n),n}emitData(e){for(let n of this._emitters)n.emitOne(e)}endExecution(){this._barrier?.open()}async flush(){await Promise.all(this._iterables.map(e=>e.toPromise()))}};function kE(i){return i.split(`
`).map(t=>t.trim()).filter(t=>t.length>0)}function S4(i,t){if(i.length===0)return!1;let e=[...i],n=kE(t.value);if(e&&e.length>0){for(;e.length>0&&e[0]===n[0];)e.shift(),n.shift();if(n.length===0)return{unresolvedCommandLines:e}}return!1}var uf=class{constructor(t){this.dataBuffer="";this.eventTypeBuffer="";this.buffer=[];this.endedOnCR=!1;this.onEventHandler=t,this.decoder=new TextDecoder("utf-8")}getLastEventId(){return this.lastEventIdBuffer}getReconnectionTime(){return this.reconnectionTime}feed(t){if(t.length===0)return;let e=0;for(this.endedOnCR&&t[0]===10&&e++,this.endedOnCR=!1;e<t.length;){let n=t.indexOf(13,e),o=t.indexOf(10,e),r=n===-1?o:o===-1?n:Math.min(n,o);if(r===-1)break;let s="";for(let a of this.buffer)s+=this.decoder.decode(a,{stream:!0});s+=this.decoder.decode(t.subarray(e,r)),this.processLine(s),this.buffer.length=0,e=r+(t[r]===13&&t[r+1]===10?2:1)}e<t.length?this.buffer.push(t.subarray(e)):this.endedOnCR=t[t.length-1]===13}processLine(t){if(!t.length){this.dispatchEvent();return}if(t.startsWith(":"))return;let e,n,o=t.indexOf(":");o===-1?(e=t,n=""):(e=t.substring(0,o),n=t.substring(o+1),n.startsWith(" ")&&(n=n.substring(1))),this.processField(e,n)}processField(t,e){switch(t){case"event":this.eventTypeBuffer=e;break;case"data":this.dataBuffer+=e,this.dataBuffer+=`
`;break;case"id":e.includes("\0")?this.currentEventId=void 0:this.currentEventId=this.lastEventIdBuffer=e;break;case"retry":/^\d+$/.test(e)&&(this.reconnectionTime=parseInt(e,10));break}}dispatchEvent(){if(this.dataBuffer===""){this.dataBuffer="",this.eventTypeBuffer="";return}this.dataBuffer.endsWith(`
`)&&(this.dataBuffer=this.dataBuffer.substring(0,this.dataBuffer.length-1));let t={type:this.eventTypeBuffer||"message",data:this.dataBuffer};this.currentEventId!==void 0&&(t.id=this.currentEventId),this.reconnectionTime!==void 0&&(t.retry=this.reconnectionTime),this.onEventHandler(t),this.reset()}reset(){this.dataBuffer="",this.eventTypeBuffer="",this.currentEventId=void 0}};var Gb=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},pf=class extends Gb{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}}},Lj=new pf("string");function Jb(){return Lj}var Oj=new pf("number");function C4(){return Oj}var S9e=new pf("boolean");var Nj=new pf("object");function _E(){return Nj}var Qb=class{constructor(t){this.validator=t}};function Fu(i){return new Qb(i)}var TL=class extends Gb{constructor(e){super();this.properties=e}validate(e){if(typeof e!="object"||e===null)return{content:void 0,error:{message:"Expected object"}};let n={};for(let o in this.properties){let r=this.properties[o],s=e[o],a=r instanceof Qb,l=a?r.validator:r;if(a&&s===void 0)continue;let{content:d,error:c}=l.validate(s);if(c)return{content:void 0,error:{message:`Error in property '${o}': ${c.message}`}};n[o]=d}return{content:n,error:void 0}}getJSONSchema(){let e=[],n={};for(let[r,s]of Object.entries(this.properties)){let a=s instanceof Qb,l=a?s.validator:s;n[r]=l.getJSONSchema(),a||e.push(r)}return{type:"object",properties:n,...e.length>0?{required:e}:{}}}};function Yb(i){return new TL(i)}var EL=class extends Gb{constructor(e){super();this.validator=e}validate(e){if(!Array.isArray(e))return{content:void 0,error:{message:"Expected array"}};let n=[];for(let o=0;o<e.length;o++){let{content:r,error:s}=this.validator.validate(e[o]);if(s)return{content:void 0,error:{message:`Error in element ${o}: ${s.message}`}};n.push(r)}return{content:n,error:void 0}}getJSONSchema(){return{type:"array",items:this.validator.getJSONSchema()}}};function wL(i){return new EL(i)}var Hu=R("IExtHostMpcService"),Uj=Yb({label:Jb(),version:Fu(Jb()),metadata:Fu(Yb({capabilities:Fu(_E()),serverInfo:Fu(_E()),tools:Fu(wL(Yb({availability:C4(),definition:_E()})))})),authentication:Fu(Yb({providerId:Jb(),scopes:wL(Jb())}))}),zd=class extends U{constructor(e,n,o,r,s){super();this._logService=n;this._extHostInitData=o;this._workspaceService=r;this._variableResolver=s;this._initialProviderPromises=new Set;this._sseEventSources=this._register(new wn);this._unresolvedMcpServers=new Map;this._onDidChangeMcpServerDefinitions=this._register(new E);this.onDidChangeMcpServerDefinitions=this._onDidChangeMcpServerDefinitions.event;this._mcpServerDefinitions=[];this._activeGateways=new Map;this._proxy=e.getProxy(F.MainThreadMcp)}get mcpServerDefinitions(){return this._mcpServerDefinitions}$onDidChangeMcpServerDefinitions(e){this._mcpServerDefinitions=e.map(n=>ag.to(n)),this._onDidChangeMcpServerDefinitions.fire()}$startMcp(e,n){this._startMcp(e,Bc.fromSerialized(n.launch),n.defaultCwd&&b.revive(n.defaultCwd),n.errorOnUserInteraction)}_startMcp(e,n,o,r){if(n.type===2){this._sseEventSources.set(e,new Xb(e,n,this._proxy,this._logService,r));return}throw new Error("not implemented")}async $substituteVariables(e,n){let o=b.revive(e),r=o&&await this._workspaceService.resolveWorkspaceFolder(o);return(await this._variableResolver.getResolver()).resolveAsync(r&&{uri:r.uri,name:r.name,index:r.index},n)}$stopMcp(e){this._sseEventSources.get(e)?.close().then(()=>this._didClose(e))}_didClose(e){this._sseEventSources.deleteAndDispose(e)}$sendMessage(e,n){this._sseEventSources.get(e)?.send(n)}async $waitForInitialCollectionProviders(){await Promise.all(this._initialProviderPromises)}async $resolveMcpLaunch(e,n){let o=this._unresolvedMcpServers.get(e);if(!o)return;let r=o.servers.find(a=>a.label===n);if(!r)return;if(!o.provider.resolveMcpServerDefinition)return ag.from(r);let s=await o.provider.resolveMcpServerDefinition(r,me.None);return s?ag.from(s):void 0}registerMcpConfigurationProvider(e,n,o){let r=new z,s=e.contributes?.mcpServerDefinitionProviders?.find(c=>c.id===n);if(!s)throw new Error(`MCP configuration providers must be registered in the contributes.mcpServerDefinitionProviders array within your package.json, but "${n}" was not`);let a={id:pW(e.identifier,n),isTrustedByDefault:!0,label:s?.label??e.displayName??e.name,scope:1,canResolveLaunch:typeof o.resolveMcpServerDefinition=="function",extensionId:e.identifier.value,configTarget:this._extHostInitData.remote.isRemote?4:2},l=async()=>{let c=await o.provideMcpServerDefinitions(me.None);this._unresolvedMcpServers.set(a.id,{servers:c??[],provider:o});let u=[];for(let m of c??[]){let g=Ee.toKey(e.identifier)+"/"+m.label;if(u.some(I=>I.id===g)){let I=2;for(;u.some(x=>x.id===g+I);)I++;g=g+I}Uj.validateOrThrow(m),m.authentication&&A(e,"mcpToolDefinitions");let h,f=m;Oe(e,"mcpToolDefinitions")&&f.metadata&&(h={capabilities:f.metadata.capabilities,instructions:f.metadata.instructions,serverInfo:f.metadata.serverInfo,tools:f.metadata.tools?.map(I=>({availability:I.availability===1?1:0,definition:I.definition}))}),u.push({id:g,label:m.label,cacheNonce:m.version||"$$NONE",staticMetadata:h,launch:ag.from(m)})}this._proxy.$upsertMcpCollection(a,u)};r.add(Q(()=>{this._unresolvedMcpServers.delete(a.id),this._proxy.$deleteMcpCollection(a.id)})),o.onDidChangeMcpServerDefinitions&&r.add(o.onDidChangeMcpServerDefinitions(l)),o.onDidChangeServerDefinitions&&r.add(o.onDidChangeServerDefinitions(l)),o.onDidChange&&r.add(o.onDidChange(l));let d=new Promise(c=>{setTimeout(()=>l().finally(()=>{this._initialProviderPromises.delete(d),c()}),0)});return this._initialProviderPromises.add(d),r}async startMcpGateway(e){let n=await this._proxy.$startMcpGateway(e?.toJSON());if(!n)return;let o=n.gatewayId,r=n.servers.map(a=>({label:a.label,address:b.revive(a.address)})),s=new E;return this._activeGateways.set(o,{servers:r,onDidChangeServers:s}),{get servers(){return r},onDidChangeServers:s.event,dispose:()=>{this._activeGateways.delete(o),s.dispose(),this._proxy.$disposeMcpGateway(o)}}}$onDidChangeGatewayServers(e,n){let o=this._activeGateways.get(e);if(!o)return;let r=n.map(s=>({label:s.label,address:b.revive(s.address)}));o.servers.length=0,o.servers.push(...r),o.onDidChangeServers.fire(r)}};zd=D([C(0,ae),C(1,ne),C(2,Xe),C(3,Tn),C(4,$r)],zd);function kL(i){if(!(i instanceof Error))return String(i);let t=String(i),e=i.cause;for(let n=0;e!==void 0&&n<5;n++)t+=`: ${e instanceof Error&&e.message||String(e)}`,e=e instanceof Error?e.cause:void 0;return t}var Fj=5,Hj=[301,302,303,307,308],Vj=new Set(["http:","https:"]),Wj=new Set(["authorization","cookie","proxy-authorization","mcp-session-id"]),Xb=class extends U{constructor(e,n,o,r,s){super();this._id=e;this._launch=n;this._proxy=o;this._logService=r;this._errorOnUserInteraction=s;this._requestSequencer=new OI;this._postEndpoint=new jt;this._mode={value:0};this._cts=new ke;this._abortCtrl=new AbortController;this._didSendClose=!1;this._register(Q(()=>{this._abortCtrl.abort(),this._cts.dispose(!0)})),this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Running})}async send(e){try{this._mode.value===0?await this._requestSequencer.queue(()=>this._send(e)):await this._send(e)}catch(n){let o=`Error sending message to ${this._launch.uri}: ${kL(n)}`;this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Error,message:o})}}async close(){if(this._mode.value===1&&this._mode.sessionId&&!this._didSendClose){this._didSendClose=!0;try{await this._closeSession(this._mode.sessionId)}catch{}}this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Stopped})}async _closeSession(e){let n={...Object.fromEntries(this._launch.headers),"Mcp-Session-Id":e};try{await this._addAuthHeader(n,{errorOnUserInteraction:!0})}catch{this._log(2,"Skipping session close: authentication no longer available");return}await this._fetch(this._launch.uri.toString(!0),{method:"DELETE",headers:n})}_send(e){return this._mode.value===2?this._sendLegacySSE(this._mode.endpoint,e):this._sendStreamableHttp(e,this._mode.value===1?this._mode.sessionId:void 0)}async _sendStreamableHttp(e,n){let o=new TextEncoder().encode(e),r={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json",Accept:"text/event-stream, application/json"};n&&(r["Mcp-Session-Id"]=n),await this._addAuthHeader(r);let s=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"POST",headers:r,body:o},r),a=this._mode.value===0,l=s.headers.get("Mcp-Session-Id");if(l&&(this._mode={value:1,sessionId:l}),this._mode.value===0&&s.status>=400&&s.status<500&&!PL(s.status)){this._log(3,`${s.status} status sending message to ${this._launch.uri}, will attempt to fall back to legacy SSE`),this._sseFallbackWithMessage(e);return}if(s.status>=300){let d=this._mode.value===1&&!!this._mode.sessionId&&(s.status===400||s.status===404);this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Error,message:`${s.status} status sending message to ${this._launch.uri}: ${await this._getErrText(s)}`+(d?"; will retry with new session ID":""),shouldRetry:d});return}this._mode.value===0&&(this._mode={value:1,sessionId:void 0}),a&&this._attachStreamableBackchannel(),await this._handleSuccessfulStreamableHttp(s,e)}async _sseFallbackWithMessage(e){let n=await this._attachSSE();n&&(this._mode={value:2,endpoint:n},await this._sendLegacySSE(n,e))}async _handleSuccessfulStreamableHttp(e,n){if(e.status===202)return;let o=e.headers.get("Content-Type")?.toLowerCase()||"";if(o.startsWith("text/event-stream")){let r=new uf(s=>{if(s.type==="message")this._proxy.$onDidReceiveMessage(this._id,s.data);else if(s.type==="endpoint")throw this._log(4,`Received SSE endpoint from a POST to ${this._launch.uri}, will fall back to legacy SSE`),this._sseFallbackWithMessage(n),new Ue});try{await this._doSSE(r,e)}catch(s){this._log(4,`Error reading SSE stream: ${kL(s)}`)}}else if(o.startsWith("application/json"))this._proxy.$onDidReceiveMessage(this._id,await e.text());else{let r=await e.text();Bj(r)?this._proxy.$onDidReceiveMessage(this._id,r):this._log(4,`Unexpected ${e.status} response for request: ${r}`)}}async _attachStreamableBackchannel(){let e,n;for(let o=0;!this._store.isDisposed;o++){n!==void 0?(await Vt(Math.max(0,n-Date.now()),this._cts.token),n=void 0):await Vt(Math.min(o*1e3,3e4),this._cts.token);let r;try{let a={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(a),this._mode.value===1&&this._mode.sessionId!==void 0&&(a["Mcp-Session-Id"]=this._mode.sessionId),e&&(a["Last-Event-ID"]=e),r=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:a},a)}catch{this._log(3,`Error connecting to ${this._launch.uri} for async notifications, will retry`);continue}if(r.status>=400){this._log(2,`${r.status} status connecting to ${this._launch.uri} for async notifications; they will be disabled: ${await this._getErrText(r)}`);return}r.headers.get("content-type")?.toLowerCase().includes("text/event-stream")&&(o=0);let s=new uf(a=>{a.retry&&(n=Date.now()+a.retry),a.type==="message"&&a.data&&this._proxy.$onDidReceiveMessage(this._id,a.data),a.id&&(e=a.id)});try{await this._doSSE(s,r)}catch(a){this._log(3,`Error reading from async stream, we will reconnect: ${a}`)}}}async _attachSSE(){let e=new jt,n={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(n);let o;try{if(o=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:n},n),o.status>=300){this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Error,message:`${o.status} status connecting to ${this._launch.uri} as SSE: ${await this._getErrText(o)}`});return}}catch(s){this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Error,message:`Error connecting to ${this._launch.uri} as SSE: ${s}`});return}let r=new uf(s=>{s.type==="message"?this._proxy.$onDidReceiveMessage(this._id,s.data):s.type==="endpoint"&&e.complete(new URL(s.data,this._launch.uri.toString(!0)).toString())});return this._register(Q(()=>e.cancel())),this._doSSE(r,o).catch(s=>{this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Error,message:`Error reading SSE stream: ${kL(s)}`})}),e.p}async _sendLegacySSE(e,n){let o=new TextEncoder().encode(n),r={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json"};await this._addAuthHeader(r);let s=await this._fetch(e,{method:"POST",headers:r,body:o});s.status>=300&&this._log(4,`${s.status} status sending message to ${this._postEndpoint}: ${await this._getErrText(s)}`)}async _doSSE(e,n){if(!n.body)return;let o=n.body.getReader(),r;do{try{r=await Qr(o.read(),this._cts.token)}catch(s){if(o.cancel(),this._store.isDisposed)return;throw s}r.value&&e.feed(r.value)}while(!r.done)}async _addAuthHeader(e,n){let o=n?.errorOnUserInteraction??this._errorOnUserInteraction;if(this._authMetadata)try{let r={authorizationServer:this._authMetadata.authorizationServer.toJSON(),authorizationServerMetadata:this._authMetadata.serverMetadata,resourceMetadata:this._authMetadata.resourceMetadata,scopes:this._authMetadata.scopes,clientId:this._launch.oauth?.clientId,enterpriseManaged:this._launch.oauth?.enterpriseManaged},s=await this._proxy.$getTokenFromServerMetadata(this._id,r,{errorOnUserInteraction:o,forceNewRegistration:n?.forceNewRegistration});s&&(e.Authorization=`Bearer ${s}`)}catch(r){if(Kv.is(r))throw this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Stopped,reason:"needs-user-interaction"}),new Ue;this._log(4,`Error getting token from server metadata: ${String(r)}`)}if(this._launch.authentication)try{this._log(2,`Using provided authentication config: providerId=${this._launch.authentication.providerId}, scopes=${this._launch.authentication.scopes.join(", ")}`);let r=await this._proxy.$getTokenForProviderId(this._id,this._launch.authentication.providerId,this._launch.authentication.scopes,{errorOnUserInteraction:o,forceNewRegistration:n?.forceNewRegistration,clientId:this._launch.oauth?.clientId});r&&(e.Authorization=`Bearer ${r}`,this._log(3,"Successfully obtained token from provided authentication config"))}catch(r){if(Kv.is(r))throw this._proxy.$onDidChangeState(this._id,{state:ko.Kind.Stopped,reason:"needs-user-interaction"}),new Ue;this._log(4,`Error getting token from provided authentication config: ${String(r)}`)}return e}_log(e,n){this._store.isDisposed||this._proxy.$onDidPublishLog(this._id,e,n)}async _getErrText(e){try{return await e.text()}catch{return e.statusText}}async _fetchWithAuthRetry(e,n,o){let r=()=>this._fetch(e,n),s=await r();if(PL(s.status)&&(this._authMetadata?this._authMetadata.update(s.headers)&&(await this._addAuthHeader(o),o.Authorization&&(n.headers=o,s=await r())):(this._authMetadata=await $j(e,s.headers,{sameOriginHeaders:{...Object.fromEntries(this._launch.headers),"MCP-Protocol-Version":qv.LATEST_PROTOCOL_VERSION},fetch:(a,l)=>this._fetch(a,l),log:(a,l)=>this._log(a,l)}),this._proxy.$logMcpAuthSetup(this._authMetadata.telemetry),await this._addAuthHeader(o),o.Authorization&&(n.headers=o,s=await r()))),o.Authorization&&PL(s.status)){let a=await this._getErrText(s);this._log(3,`Received ${s.status} status with Authorization header, retrying with new auth registration. Error details: ${a||"no additional details"}`),await this._addAuthHeader(o,{forceNewRegistration:!0}),s=await r()}return s}async _fetch(e,n){if(n.headers["user-agent"]=`${Xo.nameLong}/${Xo.version}`,Lp(this._logService.getLevel(),1)){let s={...n,headers:{...n.headers}};s.body&&(s.body=new TextDecoder().decode(s.body)),s.headers?.Authorization&&(s.headers.Authorization="***"),this._log(1,`Fetching ${e} with options: ${JSON.stringify(s)}`)}let o=e,r;for(let s=0;s<Fj&&(r=await this._fetchInternal(o,{...n,signal:this._abortCtrl.signal,redirect:"manual"}),!!Hj.includes(r.status));s++){let a=r.headers.get("location");if(!a)break;let l=new URL(o),d=new URL(a,o);if(!Vj.has(d.protocol))throw new Error(`MCP server redirected to a non-http(s) target (${d.protocol}), which is not allowed`);if(l.origin!==d.origin)for(let u of Object.keys(n.headers))Wj.has(u.toLowerCase())&&delete n.headers[u];let c=d.toString();this._log(1,`Redirect (${r.status}) from ${o} to ${c}`),o=c,(r.status===303||(r.status===301||r.status===302)&&n.method==="POST")&&(n.method="GET",delete n.body)}if(Lp(this._logService.getLevel(),1)){let s={};r.headers.forEach((a,l)=>{s[l]=a}),this._log(1,`Fetched ${o}: ${JSON.stringify({status:r.status,headers:s})}`)}return r}_fetchInternal(e,n){return fetch(e,n)}};function Bj(i){try{return JSON.parse(i),!0}catch{return!1}}function PL(i){return i===401||i===403}var DE=class{constructor(t,e,n,o,r,s){this.authorizationServer=t;this.serverMetadata=e;this.resourceMetadata=n;this.telemetry=r;this._log=s;this._scopes=o}get scopes(){return this._scopes}update(t){let e=this._parseScopesFromResponse(t);return FB(e,this._scopes)?!1:(this._log(3,`Scopes changed from ${JSON.stringify(this._scopes)} to ${JSON.stringify(e)}, updating`),this._scopes=e,!0)}_parseScopesFromResponse(t){let e=t.get("WWW-Authenticate");if(!e)return;let n=y0(e);for(let o of n)if(o.scheme==="Bearer"&&o.params.scope){let r=o.params.scope.split(Dg).filter(s=>s.trim().length);if(r.length)return this._log(3,`Found scope challenge in WWW-Authenticate header: ${o.params.scope}`),r}}};async function $j(i,t,e){let{sameOriginHeaders:n,fetch:o,log:r}=e,s="none",a,{resourceMetadataChallenge:l,scopesChallenge:d}=zj(t.get("WWW-Authenticate")??void 0,r),c,u,m=d;try{let{metadata:I,discoveryUrl:x,errors:T}=await HB(i,l,{sameOriginHeaders:n,fetch:(w,M)=>o(w,M)});for(let w of T)r(4,`Error fetching resource metadata: ${w}`);r(3,`Discovered resource metadata at ${x}`),s=l?"header":"wellKnown",c=I.authorization_servers?.[0],c?(r(3,`Using auth server metadata url: ${c}`),a="resourceMetadata"):r(4,`No authorization_servers found in resource metadata ${x} - Is this resource metadata configured correctly?`),m??=I.scopes_supported,u=I}catch(I){r(4,`Could not fetch resource metadata: ${String(I)}`)}let g=new URL(i).origin,h={};c||(c=g,n&&(h=n));try{r(2,`Fetching auth server metadata for: ${c} ...`);let{metadata:I,discoveryUrl:x,errors:T}=await nE(c,{additionalHeaders:h,fetch:(w,M)=>o(w,M)});for(let w of T)r(4,`Error fetching authorization server metadata: ${w}`);return r(3,`Discovered authorization server metadata at ${x}`),a??="wellKnown",new DE(b.parse(c),I,u,m,{resourceMetadataSource:s,serverMetadataSource:a},r)}catch(I){r(4,`Error populating auth server metadata for ${c}: ${String(I)}`)}let f=UB(new URL(g));return r(3,"Using default auth metadata"),new DE(b.parse(g),f,u,m,{resourceMetadataSource:s,serverMetadataSource:"default"},r)}function zj(i,t){if(!i)return{};let e,n,o=y0(i);for(let r of o)if(r.scheme==="Bearer"){if(!e&&r.params.resource_metadata&&(e=r.params.resource_metadata,t(2,`Found resource_metadata challenge in WWW-Authenticate header: ${e}`)),!n&&r.params.scope){let s=r.params.scope.split(Dg).filter(a=>a.trim().length);s.length&&(t(2,`Found scope challenge in WWW-Authenticate header: ${r.params.scope}`),n=s)}if(e&&n)break}return{resourceMetadataChallenge:e,scopesChallenge:n}}var AE=R("IExtHostDataChannels"),RE=class{constructor(){this._channels=new Map}createDataChannel(t,e){A(t,"dataChannels");let n=this._channels.get(e);return n||(n=new _L(e),this._channels.set(e,n)),n}$onDidReceiveData(t,e){let n=this._channels.get(t);n&&n._fireDidReceiveData(e)}},_L=class extends U{constructor(e){super();this.channelId=e;this._onDidReceiveData=new E;this.onDidReceiveData=this._onDidReceiveData.event;this._register(this._onDidReceiveData)}_fireDidReceiveData(e){this._onDidReceiveData.fire({data:e})}toString(){return`DataChannel(${this.channelId})`}};var LE=R("IExtHostMeteredConnection"),ME=class extends U{constructor(){super();this._isConnectionMetered=!1;this._onDidChangeIsConnectionMetered=this._register(new E);this.onDidChangeIsConnectionMetered=this._onDidChangeIsConnectionMetered.event}get isConnectionMetered(){return this._isConnectionMetered}$initializeIsConnectionMetered(e){this._isConnectionMetered=e}$onDidChangeIsConnectionMetered(e){this._isConnectionMetered!==e&&(this._isConnectionMetered=e,this._onDidChangeIsConnectionMetered.fire(e))}};var OE="vscode.git";function T4(i){switch(i){case 0:return 0;case 1:return 1;case 2:return 2;default:throw new Error(`Unknown GitRefType: ${i}`)}}function qj(i){return{name:i.name,commit:i.commit,type:T4(i.type),remote:i.remote,upstream:i.upstream?Kj(i.upstream):void 0,ahead:i.ahead,behind:i.behind}}function Kj(i){return{remote:i.remote,name:i.name,commit:i.commit}}function mf(i){switch(i.status){case 1:case 7:case 9:return{uri:i.uri,originalUri:void 0,modifiedUri:i.uri};case 2:case 6:return{uri:i.uri,originalUri:i.uri,modifiedUri:void 0};case 3:case 10:return{uri:i.uri,originalUri:i.originalUri,modifiedUri:i.renameUri};default:return{uri:i.uri,originalUri:i.originalUri,modifiedUri:i.uri}}}var NE=R("IExtHostGitExtensionService"),qd=class extends U{constructor(e,n){super();this._extHostExtensionService=n;this._repositories=new Map;this._repositoryByUri=new je;this._repositoryStateChangeListeners=new wn;this._proxy=e.getProxy(F.MainThreadGitExtension)}static{this._handlePool=0}async $isGitExtensionAvailable(){return!!(await this._extHostExtensionService.getExtensionRegistry()).getExtensionDescription(OE)}async $openRepository(e){let n=await this._ensureGitApi();if(!n)return;let o=await n.openRepository(b.revive(e));if(!o)return;let r=this._repositoryByUri.get(o.rootUri);if(r!==void 0){this._repositories.get(r)!==o&&(this._repositories.set(r,o),this._repositoryByUri.set(o.rootUri,r),this._setRepositoryStateChangeListener(r,o));let l=this._getRepositoryState(o);return{handle:r,rootUri:o.rootUri,state:l}}let s=qd._handlePool++;this._repositories.set(s,o),this._repositoryByUri.set(o.rootUri,s),this._setRepositoryStateChangeListener(s,o);let a=this._getRepositoryState(o);return{handle:s,rootUri:o.rootUri,state:a}}async $getRefs(e,n,o){let r=this._repositories.get(e);if(!r)return[];try{return(await r.getRefs(n,o)).map(l=>!l.name||!l.commit?void 0:{id:l.type===0?`refs/heads/${l.name}`:l.type===1?`refs/remotes/${l.remote}/${l.name}`:`refs/tags/${l.name}`,name:l.name,type:T4(l.type),revision:l.commit}).filter(l=>!!l)}catch{return[]}}async $getRepositoryState(e){let n=this._repositories.get(e);if(n)return this._getRepositoryState(n)}_getRepositoryState(e){let n=e.state;return{HEAD:n.HEAD?qj(n.HEAD):void 0,remotes:n.remotes,mergeChanges:n.mergeChanges.map(mf),indexChanges:n.indexChanges.map(mf),workingTreeChanges:n.workingTreeChanges.map(mf),untrackedChanges:n.untrackedChanges.map(mf)}}_setRepositoryStateChangeListener(e,n){this._repositoryStateChangeListeners.set(e,n.state.onDidChange(()=>{this._proxy.$onDidChangeRepository(e)}))}async $diffBetweenWithStats(e,n,o,r){let s=this._repositories.get(e);if(!s)return[];try{return(await s.diffBetweenWithStats(n,o,r)).map(l=>({...mf(l),insertions:l.insertions,deletions:l.deletions}))}catch{return[]}}async $diffBetweenWithStats2(e,n,o){let r=this._repositories.get(e);if(!r)return[];try{return(await r.diffBetweenWithStats2(n,o)).map(a=>({...mf(a),insertions:a.insertions,deletions:a.deletions}))}catch{return[]}}async _ensureGitApi(){if(this._gitApi)return this._gitApi;try{await this._extHostExtensionService.activateByIdWithErrors(new Ee(OE),{startup:!1,extensionId:new Ee(OE),activationEvent:"api"});let e=this._extHostExtensionService.getExtensionExports(new Ee(OE));e&&typeof e.getAPI=="function"&&(this._gitApi=e.getAPI(1))}catch{}return this._gitApi}dispose(){this._repositoryStateChangeListeners.dispose(),super.dispose()}};qd=D([C(0,ae),C(1,yo)],qd);Ke(Bg,Wg,1);Ke(Zo,$d,1);Ke(Vi,Kg,1);Ke(Fn,Pg,0);Ke(Mu,Rg,0);Ke(Lg,Ud,0);Ke(En,gg,0);Ke(Bs,sr,0);Ke(el,tf,0);Ke(of,nf,0);Ke(pE,zs,0);Ke(Br,Qg,0);Ke(zg,$g,0);Ke(Xr,bx,0);Ke(uE,Gg,1);Ke(af,Bd,0);Ke(yg,bg,0);Ke(Xg,Yg,0);Ke(Ro,_g,0);Ke(cf,df,0);Ke(Rd,Dd,0);Ke(Ru,Ld,0);Ke(wE,lf,0);Ke(Au,Od,0);Ke(Tn,pg,0);Ke(Vg,Hg,0);Ke(Bi,ef,0);Ke($r,Wd,0);Ke(Hu,zd,0);Ke(AE,RE,0);Ke(LE,ME,0);Ke(NE,qd,1);var gf=class extends ku{constructor(t,e){super(!0,t,e)}createTerminal(t,e,n){return this.createTerminalFromOptions({name:t,shellPath:e,shellArgs:n})}createTerminalFromOptions(t,e){let n=new Pu(this._proxy,Pe(),t,t.name);return this._terminals.push(n),n.create(t,this._serializeParentTerminal(t,e)),n.value}};gf=D([C(0,Fn),C(1,ae)],gf);import*as DL from"child_process";import{promises as k4}from"fs";function E4(i,...t){let e=t.reduce((r,s)=>(r[s]=!0,r),{}),n=[/^ELECTRON_.+$/,/^VSCODE_(?!(PORTABLE|SHELL_LOGIN|ENV_REPLACE|ENV_APPEND|ENV_PREPEND)).+$/,/^SNAP(|_.*)$/,/^GDK_PIXBUF_.+$/,/^CODE_SERVER_.+$/,/^CS_.+$/];Object.keys(i).filter(r=>!e[r]).forEach(r=>{for(let s=0;s<n.length;s++)if(r.search(n[s])!==-1){delete i[r];break}})}function w4(i){i&&(delete i.DEBUG,delete i.NODE_OPTIONS,Je&&delete i.LD_PRELOAD)}function UE(i=oo){return i.comspec||"cmd.exe"}function P4(i){let t=[],e=!1,n=function(o){if(e){t.push(o);return}(!i.send(o,s=>{if(s&&console.error(s),e=!1,t.length>0){let a=t.slice(0);t=[],a.forEach(l=>n(l))}})||Ce)&&(e=!0)};return{send:n}}async function jj(i){if(await at.exists(i)){let t;try{t=await k4.stat(i)}catch(e){e.message.startsWith("EACCES")&&(t=await k4.lstat(i))}return t?!t.isDirectory():!1}return!1}async function Vu(i,t,e,n=oo,o=jj){if(xn(i))return await o(i)?i:void 0;if(t===void 0&&(t=vi()),pn(i)!=="."){let l=He(t,i);return await o(l)?l:void 0}let s=uD(n,"PATH");if(e===void 0&&Me(s)&&(e=s.split(hp)),e===void 0||e.length===0){let l=He(t,i);return await o(l)?l:void 0}for(let l of e){let d;if(xn(l)?d=He(l,i):d=He(t,l,i),Ce){let u=(uD(n,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(async m=>{let g=d+m;return await o(g)?g:void 0});for(let m of u){let g=await m;if(g)return g}}if(await o(d))return d}let a=He(t,i);return await o(a)?a:void 0}async function Zb(i,t=!1){let e;if(Ce){let n=process.env.WINDIR||"C:\\Windows",o=He(n,"System32","taskkill.exe"),r=["/T"];t&&r.push("/F"),r.push("/PID",String(i)),e=DL.spawn(o,r,{stdio:["ignore","pipe","pipe"]})}else{let n=Cl.asFileUri("vs/base/node/terminateProcess.sh").fsPath;e=DL.spawn("/bin/sh",[n,String(i),t?"9":"15"],{stdio:["ignore","pipe","pipe"]})}return new Promise((n,o)=>{let r=[];e.stdout.on("data",s=>r.push(s)),e.stderr.on("data",s=>r.push(s)),e.on("error",o),e.on("exit",s=>{s===0?n():o(new Error(`taskkill exited with code ${s}: ${Buffer.concat(r).toString()}`))})})}import{homedir as Gj}from"os";var ff=class extends Ou{constructor(e,n,o,r,s,a,l,d,c){super(e,n,o,r,s,a,l,d);this.workspaceService=o;this.variableResolver=c;n.remote.isRemote&&n.remote.authority?this.registerTaskSystem(B.vscodeRemote,{scheme:B.vscodeRemote,authority:n.remote.authority,platform:process.platform}):this.registerTaskSystem(B.file,{scheme:B.file,authority:"",platform:process.platform}),this._proxy.$registerSupportedExecutions(!0,!0,!0)}async executeTask(e,n){let o=n;if(!n.execution&&o._id===void 0)throw new Error("Tasks to execute must include an execution");if(o._id!==void 0){let r=oL.from(o,this.workspaceService),s=await this._proxy.$getTaskExecution(r);if(s.task===void 0)throw new Error("Task from execution DTO is undefined");let a=await this.getTaskExecution(s,n);return this._proxy.$executeTask(r).catch(()=>{}),a}else{let r=qs.from(n,e);if(r===void 0)return Promise.reject(new Error("Task is not valid"));Wi.is(r.execution)&&await this.addCustomExecution(r,n,!1);let s=await this.getTaskExecution(await this._proxy.$getTaskExecution(r),n);return this._proxy.$executeTask(r).catch(()=>{}),s}}provideTasksInternal(e,n,o,r){let s=[];if(r)for(let a of r){this.checkDeprecation(a,o),(!a.definition||!e[a.definition.type])&&this._logService.warn(`The task [${a.source}, ${a.name}] uses an undefined task type. The task will be ignored in the future.`);let l=qs.from(a,o.extension);l&&(s.push(l),Wi.is(l.execution)&&n.push(this.addCustomExecution(l,a,!0)))}return{tasks:s,extension:o.extension}}async resolveTaskInternal(e){return e}async getAFolder(e){let n=e&&e.length>0?e[0]:void 0;if(!n){let o=b.file(Gj());n=new _c({uri:o,name:rt(o),index:0})}return{uri:n.uri,name:n.name,index:n.index,toResource:()=>{throw new Error("Not implemented")}}}async $resolveVariables(e,n){let o=b.revive(e),r={process:void 0,variables:Object.create(null)},s=await this._workspaceProvider.resolveWorkspaceFolder(o),a=await this._workspaceProvider.getWorkspaceFolders2()??[],l=await this.variableResolver.getResolver(),d=s?{uri:s.uri,name:s.name,index:s.index,toResource:()=>{throw new Error("Not implemented")}}:await this.getAFolder(a);for(let c of n.variables)r.variables[c]=await l.resolveAsync(d,c);if(n.process!==void 0){let c;if(n.process.path!==void 0){c=n.process.path.split(hp);for(let h=0;h<c.length;h++)c[h]=await l.resolveAsync(d,c[h])}let u=await l.resolveAsync(d,n.process.name),m=n.process.cwd!==void 0?await l.resolveAsync(d,n.process.cwd):void 0,g=await Vu(u,m,c);g?r.process=g:xn(u)?r.process=u:r.process=He(m??"",u)}return r}async $jsonTasksSupported(){return!0}async $findExecutable(e,n,o){return Vu(e,n,o)}};ff=D([C(0,ae),C(1,Xe),C(2,Tn),C(3,Br),C(4,En),C(5,Ro),C(6,ne),C(7,Vi),C(8,$r)],ff);import*as Kd from"child_process";var h6e=R("externalTerminal"),hf="Terminal.app";var D4=p(2438,null),ey=class{async getDefaultTerminalForPlatforms(){return{windows:ty.getDefaultTerminalWindows(),linux:await ny.getDefaultTerminalLinuxReady(),osx:hf}}},$i=class $i extends ey{static{this.CMD="cmd.exe"}openTerminal(t,e){return this.spawnTerminal(Kd,t,UE(),e)}spawnTerminal(t,e,n,o){let r=e.windowsExec||$i.getDefaultTerminalWindows();o&&o[1]===":"&&(o=o[0].toUpperCase()+o.substr(1));let s=ot(r,".exe").toLowerCase();if(s==="cmder")return t.spawn(r,o?[o]:void 0),Promise.resolve(void 0);let a=["/c","start","/wait"];return r.indexOf(" ")>=0&&a.push(r),a.push(r),s==="wt"&&a.push("-d ."),new Promise((l,d)=>{let c=Wu(process),u=t.spawn(n,a,{cwd:o,env:c,detached:!0});u.on("error",d),u.on("exit",()=>l())})}async runInTerminal(t,e,n,o,r){let s=r.windowsExec||$i.getDefaultTerminalWindows(),a=await $i.getWtExePath();return new Promise((l,d)=>{let c=`"${e} - ${D4}"`,u=`"${n.join('" "')}" & pause`,m=Object.assign({},Wu(process),o);Object.keys(m).filter(x=>m[x]===null).forEach(x=>delete m[x]);let g={cwd:e,env:m,windowsVerbatimArguments:!0},h,f;ot(s,".exe")==="wt"?(h=s,f=["-d",".",$i.CMD,"/c",u]):a?(h=a,f=["-d",".",s,"/c",u]):(h=$i.CMD,f=["/c","start",c,"/wait",s,"/c",`"${u}"`]),Kd.spawn(h,f,g).on("error",x=>{d(R4(x))}),l(void 0)})}static getDefaultTerminalWindows(){if(!$i._DEFAULT_TERMINAL_WINDOWS){let t=!!process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432");$i._DEFAULT_TERMINAL_WINDOWS=`${process.env.windir?process.env.windir:"C:\\Windows"}\\${t?"Sysnative":"System32"}\\cmd.exe`}return $i._DEFAULT_TERMINAL_WINDOWS}static async getWtExePath(){try{return await Vu("wt")}catch{return}}};D([$I],$i,"getWtExePath",1);var ty=$i,FE=class i extends ey{static{this.OSASCRIPT="/usr/bin/osascript"}openTerminal(t,e){return this.spawnTerminal(Kd,t,e)}runInTerminal(t,e,n,o,r){let s=r.osxExec||hf;return new Promise((a,l)=>{if(s===hf||s==="iTerm.app"){let d=s===hf?"TerminalHelper":"iTermHelper",u=[Cl.asFileUri(`vs/workbench/contrib/externalTerminal/node/${d}.scpt`).fsPath,"-t",t||D4,"-w",e];for(let g of n)u.push("-a"),u.push(g);if(o){let g=Object.assign({},Wu(process),o);for(let h in g){let f=g[h];f===null?(u.push("-u"),u.push(h)):(u.push("-e"),u.push(`${h}=${f}`))}}let m=Kd.spawn(i.OSASCRIPT,u);RL(m,a,l,s)}else if(s==="Ghostty.app"){let d=Object.assign({},Wu(process),o),c=["-na","Ghostty.app","--args"];c.push("--working-directory="+e),c.push("--wait-after-command=true"),c.push("-e",...n);let u=Kd.spawn("/usr/bin/open",c,{env:d});RL(u,a,l,s)}else l(new Error(p(2440,null,s)))})}spawnTerminal(t,e,n){let o=e.osxExec||hf;return new Promise((r,s)=>{let a=["-a",o];n&&a.push(n);let l=Wu(process),d=t.spawn("/usr/bin/open",a,{cwd:n,env:l});d.on("error",s),d.on("exit",()=>r())})}},ny=class i extends ey{static{this.WAIT_MESSAGE=p(2441,null)}openTerminal(t,e){return this.spawnTerminal(Kd,t,e)}runInTerminal(t,e,n,o,r){let s=r.linuxExec?Promise.resolve(r.linuxExec):i.getDefaultTerminalLinuxReady();return new Promise((a,l)=>{s.then(d=>{if(ot(d).toLowerCase()==="ghostty"){let g=[];e&&g.push(`--working-directory=${e}`),g.push("--wait-after-command=true"),n.length&&g.push("-e",...n),i.spawnTerminalWithEnv(d,g,e,o,a,l);return}let u=[];d.indexOf("gnome-terminal")>=0?u.push("-x"):u.push("-e"),u.push("bash"),u.push("-c");let m=`${Qj(n)}; echo; read -p "${i.WAIT_MESSAGE}" -n1;`;u.push(`''${m}''`),i.spawnTerminalWithEnv(d,u,e,o,a,l)})})}static spawnTerminalWithEnv(t,e,n,o,r,s){let a=Object.assign({},Wu(process),o);Object.keys(a).filter(d=>a[d]===null).forEach(d=>delete a[d]);let l=Kd.spawn(t,e,{cwd:n,env:a});RL(l,r,s,t)}static async getDefaultTerminalLinuxReady(){if(!i._DEFAULT_TERMINAL_LINUX_READY)if(!Je)i._DEFAULT_TERMINAL_LINUX_READY=Promise.resolve("xterm");else{let t=await at.exists("/etc/debian_version");i._DEFAULT_TERMINAL_LINUX_READY=new Promise(e=>{t?e("x-terminal-emulator"):process.env.DESKTOP_SESSION==="gnome"||process.env.DESKTOP_SESSION==="gnome-classic"?e("gnome-terminal"):process.env.DESKTOP_SESSION==="kde-plasma"?e("konsole"):process.env.COLORTERM?e(process.env.COLORTERM):process.env.TERM?e(process.env.TERM):e("xterm")})}return i._DEFAULT_TERMINAL_LINUX_READY}spawnTerminal(t,e,n){let o=e.linuxExec?Promise.resolve(e.linuxExec):i.getDefaultTerminalLinuxReady();return new Promise((r,s)=>{o.then(a=>{let l=Wu(process),c=ot(a).toLowerCase()==="ghostty"&&n?[`--working-directory=${n}`]:[],u=t.spawn(a,c,{cwd:n,env:l});u.on("error",s),u.on("exit",()=>r())})})}};function Wu(i){let t={...i.env};return E4(t),t}function R4(i){return i.errno==="ENOENT"&&i.path?new Error(p(2439,null,i.path)):i}function RL(i,t,e,n){let o="";i.on("error",r=>{e(R4(r))}),i.stderr?.on("data",r=>{o+=r.toString()}),i.on("exit",r=>{if(r===0)t(void 0);else if(o){let s=o.split(`
`,1);e(new Error(s[0]))}else e(new Error(p(2442,null,n,r)))})}function Qj(i){let t="";for(let e of i)e.indexOf(" ")>=0?t+='"'+e+'"':t+=e,t+=" ";return t}var HE=class i{constructor(){this.validators=new Map}static{this._nextId=1}async createNewMessage(t){try{let e=await this.getValidator();if(e){let n=String(i._nextId++);return this.validators.set(n,e),{id:n,data:e.createNewMessage(t)}}}catch{}return{id:"",data:t}}async validate(t,e){if(!t.id)return!0;let n=this.validators.get(t.id);if(!n)return!1;this.validators.delete(t.id);try{return n.validate(e)==="ok"}catch{return!1}finally{n.dispose?.()}}async sign(t){try{return await this.signValue(t)}catch{}return t}};var vf=class extends HE{getValidator(){return this.vsda().then(t=>new t.validator)}signValue(t){return this.vsda().then(e=>new e.signer().sign(t))}async vsda(){let t="vsda",{default:e}=await import(t);return e}};import*as zE from"child_process";import*as AL from"net";var VE=class i extends Zg{constructor(){super();this.rawData=Buffer.allocUnsafe(0);this.contentLength=-1}static{this.TWO_CRLF=`\r
\r
`}static{this.HEADER_LINESEPARATOR=/\r?\n/}static{this.HEADER_FIELDSEPARATOR=/: */}connect(e,n){this.outputStream=n,this.rawData=Buffer.allocUnsafe(0),this.contentLength=-1,e.on("data",o=>this.handleData(o))}sendMessage(e){if(this.outputStream){let n=JSON.stringify(e);this.outputStream.write(`Content-Length: ${Buffer.byteLength(n,"utf8")}${i.TWO_CRLF}${n}`,"utf8")}}handleData(e){for(this.rawData=Buffer.concat([this.rawData,e]);;){if(this.contentLength>=0){if(this.rawData.length>=this.contentLength){let n=this.rawData.toString("utf8",0,this.contentLength);if(this.rawData=this.rawData.slice(this.contentLength),this.contentLength=-1,n.length>0)try{this.acceptMessage(JSON.parse(n))}catch(o){this._onError.fire(new Error((o.message||o)+`
`+n))}continue}}else{let n=this.rawData.indexOf(i.TWO_CRLF);if(n!==-1){let r=this.rawData.toString("utf8",0,n).split(i.HEADER_LINESEPARATOR);for(let s of r){let a=s.split(i.HEADER_FIELDSEPARATOR);a[0]==="Content-Length"&&(this.contentLength=Number(a[1]))}this.rawData=this.rawData.slice(n+i.TWO_CRLF.length);continue}}break}}},WE=class extends VE{startSession(){return new Promise((t,e)=>{let n=!1;this.socket=this.createConnection(()=>{this.connect(this.socket,this.socket),t(),n=!0}),this.socket.on("close",()=>{n?this._onError.fire(new Error("connection closed")):e(new Error("connection closed"))}),this.socket.on("error",o=>{o instanceof AggregateError&&(o=o.errors[0]),n?this._onError.fire(o):e(o)})})}async stopSession(){await this.cancelPendingRequests(),this.socket&&(this.socket.end(),this.socket=void 0)}},BE=class extends WE{constructor(e){super();this.adapterServer=e}createConnection(e){return AL.createConnection(this.adapterServer.port,this.adapterServer.host||"127.0.0.1",e)}},$E=class extends WE{constructor(e){super();this.adapterServer=e}createConnection(e){return AL.createConnection(this.adapterServer.path,e)}},oy=class i extends VE{constructor(e,n){super();this.adapterExecutable=e;this.debugType=n}async startSession(){let e=this.adapterExecutable.command,n=this.adapterExecutable.args,o=this.adapterExecutable.options||{};try{if(e)if(xn(e)){if(!await at.exists(e))throw new Error(p(10421,null,e))}else e.indexOf("/")<0&&e.indexOf("\\")<0;else throw new Error(p(10422,null,this.debugType));let r=process.env;if(o.env&&Object.keys(o.env).length>0&&(r=Jo(lt(process.env),o.env)),e==="node")if(Array.isArray(n)&&n.length>0){let s=!!process.env.ELECTRON_RUN_AS_NODE||!!process.versions.electron,a={env:r,execArgv:s?["-e","delete process.env.ELECTRON_RUN_AS_NODE;require(process.argv[1])"]:[],silent:!0};o.cwd&&(a.cwd=o.cwd);let l=zE.fork(n[0],n.slice(1),a);if(!l.pid)throw new Error(p(10423,null,n[0]));this.serverProcess=l}else throw new Error(p(10424,null));else{let s=e,a=n,l={env:r};o.cwd&&(l.cwd=o.cwd),Ce&&(e.endsWith(".bat")||e.endsWith(".cmd"))&&(l.shell=!0,s=`"${e}"`,a=n.map(d=>(d=d.replace(/"/g,'\\"'),`"${d}"`))),this.serverProcess=zE.spawn(s,a,l)}this.serverProcess.on("error",s=>{this._onError.fire(s)}),this.serverProcess.on("exit",(s,a)=>{this._onExit.fire(s)}),this.serverProcess.stdout.on("close",()=>{this._onError.fire(new Error("read error"))}),this.serverProcess.stdout.on("error",s=>{this._onError.fire(s)}),this.serverProcess.stdin.on("error",s=>{this._onError.fire(s)}),this.serverProcess.stderr.resume(),this.connect(this.serverProcess.stdout,this.serverProcess.stdin)}catch(r){this._onError.fire(r)}}async stopSession(){return this.serverProcess?(await this.cancelPendingRequests(),Ce?Zb(this.serverProcess.pid,!0).catch(()=>{this.serverProcess?.kill()}):(this.serverProcess.kill("SIGTERM"),Promise.resolve(void 0))):Promise.resolve(void 0)}static extract(e,n){if(!e)return;let o=Object.create(null);e.runtime&&(e.runtime.indexOf("./")===0?o.runtime=He(n,e.runtime):o.runtime=e.runtime),e.runtimeArgs&&(o.runtimeArgs=e.runtimeArgs),e.program&&(xn(e.program)?o.program=e.program:o.program=He(n,e.program)),e.args&&(o.args=e.args);let r=e;return r.win&&(o.win=i.extract(r.win,n)),r.winx86&&(o.winx86=i.extract(r.winx86,n)),r.windows&&(o.windows=i.extract(r.windows,n)),r.osx&&(o.osx=i.extract(r.osx,n)),r.linux&&(o.linux=i.extract(r.linux,n)),o}static platformAdapterExecutable(e,n){let o=Object.create(null);n=n.toLowerCase();for(let c of e)if(c.contributes){let u=c.contributes.debuggers;u&&u.length>0&&u.filter(m=>typeof m.type=="string"&&Pn(m.type,n)).forEach(m=>{let g=i.extract(m,c.extensionLocation.fsPath);o=Jo(o,g,c.isBuiltin)})}let r;Ce&&!process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?r=o.winx86||o.win||o.windows:Ce?r=o.win||o.windows:ht?r=o.osx:Je&&(r=o.linux),r=r||o;let s=r.program||o.program,a=r.args||o.args,l=r.runtime||o.runtime,d=r.runtimeArgs||o.runtimeArgs;if(l)return{type:"executable",command:l,args:(d||[]).concat(typeof s=="string"?[s]:[]).concat(a||[])};if(s)return{type:"executable",command:s,args:a||[]}}};import*as A4 from"child_process";function Jj(i,t){return new Promise((e,n)=>{let o="",r=A4.spawn(i,t);r.pid&&r.stdout.on("data",s=>{o+=s.toString()}),r.on("error",s=>{n(s)}),r.on("close",s=>{e(o)})})}async function M4(i){if(i)if(Ce){let t=await import("@vscode/windows-process-tree");return new Promise(e=>{t.getProcessTree(i,n=>{e(!!n&&n.children.length>0)})})}else return Jj("/usr/bin/pgrep",["-lP",String(i)]).then(t=>{let e=t.trim();return!(e.length===0||e.indexOf(" tmux")>=0)},t=>!0);return Promise.resolve(!0)}function L4(i,t,e,n,o){i=i.trim().toLowerCase();let r;i.indexOf("powershell")>=0||i.indexOf("pwsh")>=0?r=1:i.indexOf("cmd.exe")>=0?r=0:i.indexOf("bash")>=0?r=2:Ce?r=0:r=2;let s,a=" ";switch(r){case 1:if(s=l=>(l=l.replace(/\'/g,"''"),l.length>0&&l.charAt(l.length-1)==="\\"?`'${l}\\'`:`'${l}'`),n){let l=T_(n);l&&(a+=`${l}:; `),a+=`cd ${s(n)}; `}if(o)for(let l in o){let d=o[l];d===null?a+=`Remove-Item env:${l}; `:a+=`\${env:${l}}='${d}'; `}if(t.length>0){let l=t.shift(),d=e?l:s(l);a+=d[0]==="'"?`& ${d} `:`${d} `;for(let c of t)a+=c==="<"||c===">"||e?c:s(c),a+=" "}break;case 0:if(s=l=>(l=l.replace(/\"/g,'""'),l=l.replace(/([><!^&|])/g,"^$1"),' "'.split("").some(d=>l.includes(d))||l.length===0?`"${l}"`:l),n){let l=T_(n);l&&(a+=`${l}: && `),a+=`cd ${s(n)} && `}if(o){a+='cmd /C "';for(let l in o){let d=o[l];d===null?a+=`set "${l}=" && `:(d=d.replace(/[&^|<>]/g,c=>`^${c}`),a+=`set "${l}=${d}" && `)}}for(let l of t)a+=l==="<"||l===">"||e?l:s(l),a+=" ";o&&(a+='"');break;case 2:{s=d=>(d=d.replace(/(["'\\\$!><#()\[\]*&^| ;{}?`])/g,"\\$1"),d.length===0?'""':d);let l=d=>/[^\w@%\/+=,.:^-]/.test(d)?`'${d.replace(/'/g,"'\\''")}'`:d;if(n&&(a+=`cd ${s(n)} ; `),o){a+="/usr/bin/env";for(let d in o){let c=o[d];c===null?a+=` -u ${l(d)}`:a+=` ${l(`${d}=${c}`)}`}a+=" "}for(let d of t)a+=d==="<"||d===">"||e?d:s(d),a+=" ";break}}return a}var bf=class extends Nu{constructor(e,n,o,r,s,a,l,d,c,u){super(e,n,o,r,l,d,c,u);this._terminalService=s;this._terminalShellIntegrationService=a;this._integratedTerminalInstances=new ML}createDebugAdapter(e,n){return e instanceof Mi?new oy(this.convertExecutableToDto(e),n.type):e instanceof Li?new BE(this.convertServerToDto(e)):e instanceof _s?new $E(this.convertPipeServerToDto(e)):super.createDebugAdapter(e,n)}daExecutableFromPackage(e,n){let o=oy.platformAdapterExecutable(n.getAllExtensionDescriptions(),e.type);if(o)return new Mi(o.command,o.args,o.options)}createSignService(){return new vf}async $runInTerminal(e,n){if(e.kind==="integrated"){this._terminalDisposedListener||(this._terminalDisposedListener=this._register(this._terminalService.onDidCloseTerminal(f=>{this._integratedTerminalInstances.onTerminalClosed(f)})));let o=await this._configurationService.getConfigProvider(),r=this._terminalService.getDefaultShell(!0),s=this._terminalService.getDefaultShellArgs(!0),a=e.title||p(3380,null),l=JSON.stringify({shell:r,shellArgs:s,cwd:e.cwd}),d=await this._integratedTerminalInstances.checkout(l,a),c,u=!1;if(d)c=e.cwd;else{let f={shellPath:r,shellArgs:s,cwd:e.cwd,name:a,iconPath:new mn("debug")};u=!0,d=this._terminalService.createTerminalFromOptions(f,{isFeatureTerminal:!0,forceShellIntegration:!0,useShellEnvironment:!0}),this._integratedTerminalInstances.insert(d,l)}d.show(!0);let m=await d.processId;if(u){let f;(w=>(w[w.DataDebounce=500]="DataDebounce",w[w.MaxDelay=5e3]="MaxDelay"))(f||={});let I=new z;await new Promise(x=>{let T=I.add(new Jn(x,500));I.add(this._terminalService.onDidWriteTerminalData(w=>{w.terminal===d&&T.schedule()})),I.add(this._terminalShellIntegrationService.onDidChangeTerminalShellIntegration(w=>{w.terminal===d&&x()})),I.add($h(x,5e3))}),I.dispose()}else if(d.state.isInteractedWith&&!d.shellIntegration&&(d.sendText(""),await Vt(200)),o.getConfiguration("debug.terminal").get("clearBeforeReusing")){let f;if(r.indexOf("powershell")>=0||r.indexOf("pwsh")>=0||r.indexOf("cmd.exe")>=0?f="cls":r.indexOf("bash")>=0?f="clear":Ce?f="cls":f="clear",d.shellIntegration){let I=new z,x=d.shellIntegration.executeCommand(f);await new Promise(T=>{I.add(this._terminalShellIntegrationService.onDidEndTerminalShellExecution(w=>{w.execution===x&&T()})),I.add($h(T,500))}),I.dispose()}else d.sendText(f),await Vt(200)}let g=L4(r,e.args,!!e.argsCanBeInterpretedByShell,c,e.env);d.shellIntegration?d.shellIntegration.executeCommand(g):d.sendText(g);let h=this.onDidTerminateDebugSession(f=>{f.id===n&&(this._integratedTerminalInstances.free(d),h.dispose())});return m}else if(e.kind==="external")return Yj(e,await this._configurationService.getConfigProvider());return super.$runInTerminal(e,n)}};bf=D([C(0,ae),C(1,Tn),C(2,yo),C(3,En),C(4,Ro),C(5,cf),C(6,Bi),C(7,$r),C(8,Fn),C(9,el)],bf);var ry;function Yj(i,t){if(!ry)if(Ce)ry=new ty;else if(ht)ry=new FE;else if(Je)ry=new ny;else throw new Error("external terminals not supported on this platform");let e=t.getConfiguration("terminal");return ry.runInTerminal(i.title,i.cwd,i.args,i.env||{},e.external||{})}var ML=class i{constructor(){this._terminalInstances=new Map}static{this.minUseDelay=1e3}async checkout(t,e,n=!1){let r=[...this._terminalInstances.entries()].map(([s,a])=>yr(async l=>{if(s.name!==e||a.lastUsedAt!==-1&&await M4(await s.processId))return null;let d=Date.now();return a.lastUsedAt+i.minUseDelay>d||l.isCancellationRequested?null:a.config!==t?(n&&s.dispose(),null):(a.lastUsedAt=d,s)}));return await _F(r,s=>!!s)}insert(t,e){this._terminalInstances.set(t,{lastUsedAt:Date.now(),config:e})}free(t){let e=this._terminalInstances.get(t);e&&(e.lastUsedAt=-1)}onTerminalClosed(t){this._terminalInstances.delete(t)}};var O4=new pt(()=>{let i=Og.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:i,collatorIsNumeric:i.resolvedOptions().numeric}}),dqe=new pt(()=>({collator:Og.Collator(void 0,{numeric:!0}).value})),cqe=new pt(()=>({collator:Og.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function N4(i,t,e=!1){let n=i||"",o=t||"",r=O4.value.collator.compare(n,o);return O4.value.collatorIsNumeric&&r===0&&n!==o?n<o?-1:1:r}function Xj(i,t,e=!1){return e||(i=i&&i.toLowerCase(),t=t&&t.toLowerCase()),i===t?0:i<t?-1:1}function iy(i,t,e=!1){let n=i.split(Pt),o=t.split(Pt),r=n.length-1,s=o.length-1,a,l;for(let d=0;;d++){if(a=r===d,l=s===d,a&&l)return N4(n[d],o[d],e);if(a)return-1;if(l)return 1;let c=Xj(n[d],o[d],e);if(c!==0)return c}}function qE(i,t,e){let n=i.toLowerCase(),o=t.toLowerCase(),r=Zj(i,t,e);if(r)return r;let s=n.endsWith(e),a=o.endsWith(e);if(s!==a)return s?-1:1;let l=N4(n,o);return l!==0?l:n.localeCompare(o)}function Zj(i,t,e){let n=i.toLowerCase(),o=t.toLowerCase(),r=n.startsWith(e),s=o.startsWith(e);if(r!==s)return r?-1:1;if(r&&s){if(n.length<o.length)return-1;if(n.length>o.length)return 1}return 0}var jE=0,U4=[jE,[]];function F4(i,t,e,n){if(!i||!t)return U4;let o=i.length,r=t.length;if(o<r)return U4;let s=i.toLowerCase();return eG(t,e,r,i,s,o,n)}function eG(i,t,e,n,o,r,s){let a=[],l=[];for(let m=0;m<e;m++){let g=m*r,h=g-r,f=m>0,I=i[m],x=t[m];for(let T=0;T<r;T++){let w=T>0,M=g+T,O=M-1,N=h+T-1,$=w?a[O]:0,X=f&&w?a[N]:0,j=f&&w?l[N]:0,q;!X&&f?q=0:q=tG(I,x,n,o,T,j),q&&X+q>=$&&(s||f||o.startsWith(t,T))?(l[M]=j+1,a[M]=X+q):(l[M]=jE,a[M]=$)}}let d=[],c=e-1,u=r-1;for(;c>=0&&u>=0;){let m=c*r+u;l[m]===jE||(d.push(u),c--),u--}return[a[e*r-1],d.reverse()]}function tG(i,t,e,n,o,r){let s=0;if(!nG(t,n[o]))return s;if(s+=1,r>0&&(s+=Math.min(r,3)*6+Math.max(0,r-3)*3),i===e[o]&&(s+=1),o===0)s+=8;else{let a=oG(e.charCodeAt(o-1));a?s+=a:Up(e.charCodeAt(o))&&r===0&&(s+=2)}return s}function nG(i,t){return i===t?!0:i==="/"||i==="\\"?t==="/"||t==="\\":!1}function oG(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 GE=Object.freeze({score:0}),KE=1<<18,LL=1<<17,OL=65536;function rG(i,t,e,n){let o=n.values?n.values:[n];return Yn({[n.normalized]:{values:o.map(s=>({value:s.normalized,expectContiguousMatch:s.expectContiguousMatch})),label:i,description:t,allowNonContiguousMatches:e}})}function H4(i,t,e,n,o){if(!i||!t.normalized)return GE;let r=n.getItemLabel(i);if(!r)return GE;let s=n.getItemDescription(i),a=rG(r,s,e,t),l=o[a];if(l)return l;let d=iG(r,s,n.getItemPath(i),t,e);return o[a]=d,d}function iG(i,t,e,n,o){let r=!e||!n.containsPathSeparator;return e&&(Je?n.pathNormalized===e:Pn(n.pathNormalized,e))?{score:KE,labelMatch:[{start:0,end:i.length}],descriptionMatch:t?[{start:0,end:t.length}]:void 0}:n.values&&n.values.length>1?sG(i,t,e,n.values,r,o):q4(i,t,e,n,r,o)}function sG(i,t,e,n,o,r){let s=0,a=[],l=[];for(let d of n){let{score:c,labelMatch:u,descriptionMatch:m}=q4(i,t,e,d,o,r);if(c===jE)return GE;s+=c,u&&a.push(...u),m&&l.push(...m)}return{score:s,labelMatch:W4(a),descriptionMatch:W4(l)}}function q4(i,t,e,n,o,r){if(o||!t){let[s,a]=F4(i,n.normalized,n.normalizedLowercase,r&&!n.expectContiguousMatch);if(s){let l=xx(n.normalized,i),d;if(l){d=LL;let c=Math.round(n.normalized.length/i.length*100);d+=c}else d=OL;return{score:d+s,labelMatch:l||V4(a)}}}if(t){let s=t;e&&(s=`${t}${Pt}`);let a=s.length,l=`${s}${i}`,[d,c]=F4(l,n.normalized,n.normalizedLowercase,r&&!n.expectContiguousMatch);if(d){let u=V4(c),m=[],g=[];return u.forEach(h=>{h.start<a&&h.end>a?(m.push({start:0,end:h.end-a}),g.push({start:h.start,end:a})):h.start>=a?m.push({start:h.start-a,end:h.end-a}):g.push(h)}),{score:d,labelMatch:m,descriptionMatch:g}}}return GE}function V4(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 W4(i){let t=i.sort((o,r)=>o.start-r.start),e=[],n;for(let o of t)!n||!aG(n,o)?(n=o,e.push(o)):(n.start=Math.min(n.start,o.start),n.end=Math.max(n.end,o.end));return e}function aG(i,t){return!(i.end<t.start||t.end<i.start)}function K4(i,t,e,n,o,r){let s=H4(i,e,n,o,r),a=H4(t,e,n,o,r),l=s.score,d=a.score;if((l===KE||d===KE)&&l!==d)return l===KE?-1:1;if(l>OL||d>OL){if(l!==d)return l>d?-1:1;if(l<LL&&d<LL){let I=lG(s.labelMatch,a.labelMatch);if(I!==0)return I}let h=o.getItemLabel(i)||"",f=o.getItemLabel(t)||"";if(h.length!==f.length)return h.length-f.length}if(l!==d)return l>d?-1:1;let c=Array.isArray(s.labelMatch)&&s.labelMatch.length>0,u=Array.isArray(a.labelMatch)&&a.labelMatch.length>0;if(c&&!u)return-1;if(u&&!c)return 1;let m=B4(i,s,o),g=B4(t,a,o);return m&&g&&m!==g?g>m?-1:1:dG(i,t,e,o)}function B4(i,t,e){let n=-1,o=-1;if(t.descriptionMatch?.length?n=t.descriptionMatch[0].start:t.labelMatch?.length&&(n=t.labelMatch[0].start),t.labelMatch?.length){if(o=t.labelMatch[t.labelMatch.length-1].end,t.descriptionMatch?.length){let r=e.getItemDescription(i);r&&(o+=r.length)}}else t.descriptionMatch?.length&&(o=t.descriptionMatch[t.descriptionMatch.length-1].end);return o-n}function lG(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,o=i[i.length-1].end-e,r=t[0].start,a=t[t.length-1].end-r;return o===a?0:a<o?1:-1}function dG(i,t,e,n){let o=n.getItemLabel(i)||"",r=n.getItemLabel(t)||"",s=n.getItemDescription(i),a=n.getItemDescription(t),l=o.length+(s?s.length:0),d=r.length+(a?a.length:0);if(l!==d)return l-d;let c=n.getItemPath(i),u=n.getItemPath(t);return c&&u&&c.length!==u.length?c.length-u.length:o!==r?qE(o,r,e.normalized):s&&a&&s!==a?qE(s,a,e.normalized):c&&u&&c!==u?qE(c,u,e.normalized):0}function $4(i){return i.startsWith('"')&&i.endsWith('"')}var cG=" ";function sy(i){typeof i!="string"&&(i="");let t=i.toLowerCase(),{pathNormalized:e,normalized:n,normalizedLowercase:o}=z4(i),r=e.indexOf(Pt)>=0,s=$4(i),a,l=i.split(cG);if(l.length>1)for(let d of l){let c=$4(d),{pathNormalized:u,normalized:m,normalizedLowercase:g}=z4(d);m&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:u,normalized:m,normalizedLowercase:g,expectContiguousMatch:c}))}return{original:i,originalLowercase:t,pathNormalized:e,normalized:n,normalizedLowercase:o,values:a,containsPathSeparator:r,expectContiguousMatch:s}}function z4(i){let t;Ce?t=i.replace(/\//g,Pt):t=i.replace(/\\/g,Pt);let e=t.replace(/[\*\u2026\s"]/g,"").replace(/(?<=.)#$/,"");return{pathNormalized:t,normalized:e,normalizedLowercase:e.toLowerCase()}}import*as X4 from"child_process";import*as If from"fs";import{StringDecoder as Y4}from"string_decoder";import*as G4 from"child_process";function yf(i){return i.startsWith("**")||i.startsWith("/")?i:`/${i}`}function j4(i){return new cg(i.start.line,i.start.character,i.end.line,i.end.character)}function NL(i){return new lg(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)}var Bu=class{constructor(t,e){this.prefix=t;this.logService=e}appendLine(t){this.logService.debug(`${this.prefix}#search`,t)}};Bu=D([C(1,ne)],Bu);var uG=new pt(async()=>(await import("@vscode/ripgrep-universal")).rgPath.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"));function QE(){return uG.value}async function Q4(i,t,e,n,o){let r=pG(i,t,e,n,o),s=t.folder.fsPath,a=await QE();return{cmd:G4.spawn(a,r.args,{cwd:s}),rgDiskPath:a,siblingClauses:r.siblingClauses,rgArgs:r,cwd:s}}function pG(i,t,e,n,o){let r=["--files","--hidden","--case-sensitive","--no-require-git"];(i.ignoreGlobCase||t.ignoreGlobCase)&&(r.push("--glob-case-insensitive"),r.push("--ignore-file-case-insensitive")),gG([t],e,!1).forEach(a=>{let l=yf(a);if(r.push("-g",l),ht){let d=WI(l);d!==l&&r.push("-g",d)}});let s=mG([t],n,void 0,!1);return s.globArgs.forEach(a=>{let l=`!${yf(a)}`;if(r.push("-g",l),ht){let d=WI(l);d!==l&&r.push("-g",d)}}),t.disregardIgnoreFiles!==!1?r.push("--no-ignore"):t.disregardParentIgnoreFiles!==!1&&r.push("--no-ignore-parent"),t.ignoreSymlinks||r.push("--follow"),i.exists&&r.push("--quiet"),o&&r.push("--threads",`${o}`),r.push("--no-config"),t.disregardGlobalIgnoreFiles&&r.push("--no-ignore-global"),{args:r,siblingClauses:s.siblingClauses}}function mG(i,t,e,n=!0){let o=[],r={};return i.forEach(s=>{let a=Object.assign({},s.excludePattern||{},t||{}),l=J4(a,n?s.folder.fsPath:void 0,e);o.push(...l.globArgs),l.siblingClauses&&(r=Object.assign(r,l.siblingClauses))}),{globArgs:o,siblingClauses:r}}function gG(i,t,e=!0){let n=[];return i.forEach(o=>{let r=Object.assign({},t||{},o.includePattern||{}),s=J4(r,e?o.folder.fsPath:void 0);n.push(...s.globArgs)}),n}function J4(i,t,e){let n=[],o={};return Object.keys(i).forEach(r=>{if(e&&e.has(r)||!r)return;let s=i[r];r=hG(t?fG(t,r):r),r.startsWith("\\\\")?r="\\\\"+r.substr(2).replace(/\\/g,"/"):r=r.replace(/\\/g,"/"),typeof s=="boolean"&&s?(r.startsWith("\\\\")&&(r+="**"),n.push(vG(r))):s&&s.when&&(o[r]=s)}),{globArgs:n,siblingClauses:o}}function fG(i,t){return xn(t)?t:He(i,t)}function hG(i){return i=vr(i,"\\"),vr(i,"/")}function vG(i){return Lh(i).toLowerCase()==="c:/"?i.replace(/^c:[/\\]/i,"/"):i}var JE=new Set;process.on("exit",()=>{JE.forEach(i=>i())});var UL=class{constructor(t){this.normalizedFilePatternLowercase=null;this.maxFilesize=null;this.isCanceled=!1;this.fileWalkSW=null;this.cmdSW=null;this.cmdResultCount=0;this.config=t,this.filePattern=t.filePattern||"";let e=t.ignoreGlobCase?{ignoreCase:!0}:void 0;this.includePattern=t.includePattern&&Po(t.includePattern,e),this.maxResults=t.maxResults||null,this.exists=!!t.exists,this.walkedPaths=Object.create(null),this.resultCount=0,this.isLimitHit=!1,this.directoriesWalked=0,this.filesWalked=0,this.errors=[],this.filePattern&&(this.normalizedFilePatternLowercase=t.shouldGlobMatchFilePattern?null:sy(this.filePattern).normalizedLowercase),this.globalExcludePattern=t.excludePattern&&Po(t.excludePattern,e),this.folderExcludePatterns=new Map,t.folderQueries.forEach(n=>{let o={};n.excludePattern?.forEach(s=>{Object.assign(o,s.pattern||{},this.config.excludePattern||{})}),n.excludePattern?.length||Object.assign(o,this.config.excludePattern||{});let r=n.folder.fsPath;t.folderQueries.map(s=>s.folder.fsPath).filter(s=>s!==r).forEach(s=>{Rr(s,r,t.ignoreGlobCase)&&(o[bi(r,s)]=!0)}),this.folderExcludePatterns.set(r,new FL(o,r,t.ignoreGlobCase))})}cancel(){this.isCanceled=!0,JE.forEach(t=>t())}walk(t,e,n,o,r,s){if(this.fileWalkSW=Jt.create(!1),this.isCanceled)return s(null,this.isLimitHit);e.forEach(a=>{let l=ot(a.fsPath);this.globalExcludePattern&&this.globalExcludePattern(a.fsPath,l)||this.matchFile(o,{relativePath:a.fsPath,searchPath:void 0})}),this.cmdSW=Jt.create(!1),this.parallel(t,(a,l)=>{this.call(this.cmdTraversal,this,a,n,o,r,d=>{if(d){let c=To(d);console.error(c),this.errors.push(c),l(d,void 0)}else l(null,void 0)})},(a,l)=>{this.fileWalkSW.stop();let d=a?nt(a)[0]:null;s(d,this.isLimitHit)})}parallel(t,e,n){let o=new Array(t.length),r=new Array(t.length),s=!1,a=0;if(t.length===0)return n(null,[]);t.forEach((l,d)=>{e(l,(c,u)=>{if(c?(s=!0,o[d]=null,r[d]=c):(o[d]=u,r[d]=null),++a===t.length)return n(s?r:null,o)})})}call(t,e,...n){try{t.apply(e,n)}catch(o){n[n.length-1](o)}}async cmdTraversal(t,e,n,o,r){let s=t.folder.fsPath,a=ht,l=()=>g&&g.kill();JE.add(l);let d=x=>{JE.delete(l),d=()=>{},r(x)},c="",u=this.initDirectoryTree(),m;try{m=await Q4(this.config,t,this.config.includePattern,this.folderExcludePatterns.get(t.folder.fsPath).expression,e)}catch(x){d(x instanceof Error?x:new Error(String(x)));return}let g=m.cmd,h=!Object.keys(m.siblingClauses).length,f=m.rgArgs.args.map(x=>x.match(/^-/)?x:`'${x}'`).join(" "),I=`${m.rgDiskPath} ${f}
 - cwd: ${m.cwd}`;m.rgArgs.siblingClauses&&(I+=`
 - Sibling clauses: ${JSON.stringify(m.rgArgs.siblingClauses)}`),o({message:I}),this.cmdResultCount=0,this.collectStdout(g,"utf8",o,(x,T,w)=>{if(x){d(x);return}if(this.isLimitHit){d();return}let O=(c+(a?hc(T||""):T)).split(`
`);if(w){let N=O.length;O[N-1]=O[N-1].trim(),O[N-1]||O.pop()}else c=O.pop()||"";if(O.length&&O[0].indexOf(`
`)!==-1){d(new Error("Splitting up files failed"));return}if(this.cmdResultCount+=O.length,h){for(let N of O)if(this.matchFile(n,{base:s,relativePath:N,searchPath:this.getSearchPath(t,N)}),this.isLimitHit){l();break}(w||this.isLimitHit)&&d();return}this.addDirectoryEntries(t,u,s,O,n),w&&(this.matchDirectoryTree(u,s,n),d())})}spawnFindCmd(t){let e=this.folderExcludePatterns.get(t.folder.fsPath),n=e.getBasenameTerms(),o=e.getPathTerms(),r=["-L","."];if(n.length||o.length){r.push("-not","(","(");for(let s of n)r.push("-name",s),r.push("-o");for(let s of o)r.push("-path",s),r.push("-o");r.pop(),r.push(")","-prune",")")}return r.push("-type","f"),X4.spawn("find",r,{cwd:t.folder.fsPath})}readStdout(t,e,n){let o="";this.collectStdout(t,e,()=>{},(r,s,a)=>{if(r){n(r);return}o+=s,a&&n(null,o)})}collectStdout(t,e,n,o){let r=(l,d,c)=>{(l||c)&&(r=()=>{},this.cmdSW?.stop()),o(l,d,c)},s=!1;t.stdout?(this.forwardData(t.stdout,e,r),t.stdout.once("data",()=>s=!0)):n({message:"stdout is null"});let a;t.stderr?a=this.collectData(t.stderr):n({message:"stderr is null"}),t.on("error",l=>{r(l)}),t.on("close",l=>{let d;!s&&(d=this.decodeData(a,e))&&bG(d)?r(new Error(`command failed with error code ${l}: ${this.decodeData(a,e)}`)):(this.exists&&l===0&&(this.isLimitHit=!0),r(null,"",!0))})}forwardData(t,e,n){let o=new Y4(e);return t.on("data",r=>{n(null,o.write(r))}),o}collectData(t){let e=[];return t.on("data",n=>{e.push(n)}),e}decodeData(t,e){let n=new Y4(e);return t.map(o=>n.write(o)).join("")}initDirectoryTree(){let t={rootEntries:[],pathToEntries:Object.create(null)};return t.pathToEntries["."]=t.rootEntries,t}addDirectoryEntries(t,{pathToEntries:e},n,o,r){let s=this.filePattern&&o.find(l=>ss(l,this.filePattern,this.config.ignoreGlobCase));s&&this.matchFile(r,{base:n,relativePath:s,searchPath:this.getSearchPath(t,s)});let a=l=>{let d=ot(l),c=pn(l),u=e[c];u||(u=e[c]=[],a(c)),u.push({base:n,relativePath:l,basename:d,searchPath:this.getSearchPath(t,l)})};o.forEach(a)}matchDirectoryTree({rootEntries:t,pathToEntries:e},n,o){let r=this,s=this.folderExcludePatterns.get(n),a=this.filePattern,l=this.config.ignoreGlobCase;function d(c){r.directoriesWalked++;let u=Pb(()=>c.map(m=>m.basename));for(let m=0,g=c.length;m<g;m++){let h=c[m],{relativePath:f,basename:I}=h;if(s.test(f,I,ss(a,I,l)?void 0:u))continue;let x=e[f];if(x)d(x);else{if(r.filesWalked++,ss(f,a,l))continue;r.matchFile(o,h)}if(r.isLimitHit)break}}d(t)}getStats(){return{cmdTime:this.cmdSW.elapsed(),fileWalkTime:this.fileWalkSW.elapsed(),directoriesWalked:this.directoriesWalked,filesWalked:this.filesWalked,cmdResultCount:this.cmdResultCount}}doWalk(t,e,n,o,r){let s=t.folder,a=Pb(()=>n);this.parallel(n,(l,d)=>{if(this.isCanceled||this.isLimitHit)return d(null);let c=e?[e,l].join(Pt):l;if(this.folderExcludePatterns.get(t.folder.fsPath).test(c,l,ss(this.config.filePattern,l,this.config.ignoreGlobCase)?void 0:a))return d(null);let u=[s.fsPath,c].join(Pt);If.lstat(u,(m,g)=>{if(m||this.isCanceled||this.isLimitHit)return d(null);this.statLinkIfNeeded(u,g,(h,f)=>h||this.isCanceled||this.isLimitHit?d(null):f.isDirectory()?(this.directoriesWalked++,this.realPathIfNeeded(u,g,(I,x)=>I||this.isCanceled||this.isLimitHit||(x=x||"",this.walkedPaths[x])?d(null):(this.walkedPaths[x]=!0,at.readdir(u).then(T=>{if(this.isCanceled||this.isLimitHit)return d(null);this.doWalk(t,c,T,o,w=>d(w||null))},T=>{d(null)})))):(this.filesWalked++,ss(c,this.filePattern,this.config.ignoreGlobCase)||this.maxFilesize&&Hn(f.size)&&f.size>this.maxFilesize||this.matchFile(o,{base:s.fsPath,relativePath:c,searchPath:this.getSearchPath(t,c)}),d(null,void 0)))})},l=>{let d=l&&nt(l);return r(d&&d.length>0?d[0]:void 0)})}matchFile(t,e){this.isFileMatch(e)&&(!this.includePattern||this.includePattern(e.relativePath,ot(e.relativePath)))&&(this.resultCount++,(this.exists||this.maxResults&&this.resultCount>this.maxResults)&&(this.isLimitHit=!0),this.isLimitHit||t(e))}isFileMatch(t){if(this.filePattern){if(this.filePattern==="*")return!0;if(this.normalizedFilePatternLowercase)return kb(t,this.normalizedFilePatternLowercase);if(this.filePattern)return kb(t,this.filePattern,!1,this.config.ignoreGlobCase)}return!0}statLinkIfNeeded(t,e,n){return e.isSymbolicLink()?If.stat(t,n):n(null,e)}realPathIfNeeded(t,e,n){return e.isSymbolicLink()?If.realpath(t,(o,r)=>o?n(o):n(null,r)):n(null,t)}getSearchPath(t,e){return t.folderName?He(t.folderName,e):e}},ay=class{constructor(t,e){this.folderQueries=t.folderQueries,this.extraFiles=t.extraFileResources||[],this.numThreads=e,this.walker=new UL(t)}search(t,e,n){this.walker.walk(this.folderQueries,this.extraFiles,this.numThreads,t,e,(o,r)=>{n(o,{limitHit:r,stats:this.walker.getStats(),messages:[]})})}cancel(){this.walker.cancel()}},FL=class{constructor(t,e,n){this.expression=t;this.root=e;this.ignoreCase=n;this.init(t)}init(t){let e,n;Object.keys(t).filter(r=>t[r]).forEach(r=>{xn(r)?(e=e||QA(),e[r]=t[r]):(n=n||QA(),n[r]=t[r])});let o={trimForExclusions:!0,ignoreCase:this.ignoreCase};this.absoluteParsedExpr=e&&Po(e,o),this.relativeParsedExpr=n&&Po(n,o)}test(t,e,n){return this.relativeParsedExpr&&this.relativeParsedExpr(t,e,n)||this.absoluteParsedExpr&&this.absoluteParsedExpr(He(this.root,t),e,n)}getBasenameTerms(){let t=[];return this.absoluteParsedExpr&&t.push(...YA(this.absoluteParsedExpr)),this.relativeParsedExpr&&t.push(...YA(this.relativeParsedExpr)),t}getPathTerms(){let t=[];return this.absoluteParsedExpr&&t.push(...XA(this.absoluteParsedExpr)),this.relativeParsedExpr&&t.push(...XA(this.relativeParsedExpr)),t}};function bG(i){let t=i.trim().split(`
`),e=t[0].trim();if(e.startsWith("Error parsing regex"))return e;if(e.startsWith("regex parse error"))return dF(t[t.length-1].trim());if(e.startsWith("error parsing glob")||e.startsWith("unsupported encoding"))return e.charAt(0).toUpperCase()+e.substr(1);if(e==="Literal '\\n' not allowed.")return"Literal '\\n' currently not supported";if(e.startsWith("Literal "))return e}import*as t5 from"child_process";import{EventEmitter as yG}from"events";import{StringDecoder as IG}from"string_decoder";import{RegExpParser as xG,RegExpVisitor as SG}from"vscode-regexpp";var xf=class{constructor(t,e){this.outputChannel=t;this._numThreads=e}provideTextSearchResults(t,e,n,o){return Promise.all(e.folderOptions.map(r=>{let s={folderOptions:r,numThreads:this._numThreads,maxResults:e.maxResults,previewOptions:e.previewOptions,maxFileSize:e.maxFileSize,surroundingContext:e.surroundingContext};return this.provideTextSearchResultsWithRgOptions(t,s,n,o)})).then((r=>({limitHit:r.some(a=>!!a&&a.limitHit)})))}async provideTextSearchResultsWithRgOptions(t,e,n,o){if(this.outputChannel.appendLine(`provideTextSearchResults ${t.pattern}, ${JSON.stringify({...e,folder:e.folderOptions.folder.toString()})}`),!t.pattern)return{limitHit:!1};let r=await QE();return new Promise((s,a)=>{o.onCancellationRequested(()=>I());let l={...e,numThreads:this._numThreads},d=EG(t,l),c=e.folderOptions.folder.fsPath,u=d.map(O=>O.match(/^-/)?O:`'${O}'`).join(" ");this.outputChannel.appendLine(`${r} ${u}
 - cwd: ${c}`);let m=t5.spawn(r,d,{cwd:c});m.on("error",O=>{console.error(O),this.outputChannel.appendLine("Error: "+(O&&O.message)),a(KM(new Ws(O&&O.message,5)))});let g=!1,h=new HL(e.maxResults??wd,e.folderOptions.folder,hL(e.previewOptions));h.on("result",O=>{g=!0,T="",n.report(O)});let f=!1,I=()=>{f=!0,m?.kill(),h?.cancel()},x=!1;h.on("hitLimit",()=>{x=!0,I()});let T="";m.stdout.on("data",O=>{h.handleData(O),g||(T+=O)});let w=!1;m.stdout.once("data",()=>w=!0);let M="";m.stderr.on("data",O=>{let N=O.toString();this.outputChannel.appendLine(N),M.length+N.length<1e6&&(M+=N)}),m.on("close",()=>{if(this.outputChannel.appendLine(w?"Got data from stdout":"No data from stdout"),this.outputChannel.appendLine(g?"Got result from parser":"No result from parser"),T&&this.outputChannel.appendLine(`Got data without result: ${T}`),this.outputChannel.appendLine(""),f)s({limitHit:x});else{h.flush(),m=null;let O;M&&!w&&(O=CG(M))?a(KM(new Ws(O.message,O.code))):s({limitHit:x})}})})}};function CG(i){let t=i.split(`
`),e=t[0].trim();if(t.some(o=>o.startsWith("regex parse error")))return new Ws(TG(t),2);let n=e.match(/grep config error: unknown encoding: (.*)/);if(n)return new Ws(`Unknown encoding: ${n[1]}`,1);if(e.startsWith("error parsing glob"))return new Ws(e.charAt(0).toUpperCase()+e.substr(1),3);if(e.startsWith("the literal"))return new Ws(e.charAt(0).toUpperCase()+e.substr(1),4);if(e.startsWith("PCRE2: error compiling pattern"))return new Ws(e,2)}function TG(i){let t=["Regex parse error"],e=i.filter(n=>n.startsWith("PCRE2:"));if(e.length>=1){let n=e[0].replace("PCRE2:","");if(n.indexOf(":")!==-1&&n.split(":").length>=2){let o=n.split(":")[1];t.push(":"+o)}}return t.join("")}var HL=class extends yG{constructor(e,n,o){super();this.maxResults=e;this.root=n;this.previewOptions=o;this.remainder="";this.isDone=!1;this.hitLimit=!1;this.numResults=0;this.stringDecoder=new IG}cancel(){this.isDone=!0}flush(){this.handleDecodedData(this.stringDecoder.end())}on(e,n){return super.on(e,n),this}handleData(e){if(this.isDone)return;let n=typeof e=="string"?e:this.stringDecoder.write(e);this.handleDecodedData(n)}handleDecodedData(e){let n=e.indexOf(`
`),o=this.remainder+e;if(n>=0)n+=this.remainder.length;else{this.remainder=o;return}let r=0;for(;n>=0;)this.handleLine(o.substring(r,n).trim()),r=n+1,n=o.indexOf(`
`,r);this.remainder=o.substring(r)}handleLine(e){if(this.isDone||!e)return;let n;try{n=JSON.parse(e)}catch{throw new Error(`malformed line from rg: ${e}`)}if(n.type==="match"){let o=ly(n.data.path),r=b.joinPath(this.root,o),s=this.createTextSearchMatch(n.data,r);this.onResult(s),this.hitLimit&&(this.cancel(),this.emit("hitLimit"))}else if(n.type==="context"){let o=ly(n.data.path),r=b.joinPath(this.root,o);this.createTextSearchContexts(n.data,r).forEach(a=>this.onResult(a))}}createTextSearchMatch(e,n){let o=e.line_number-1,r=ly(e.lines),s=Buffer.from(r),a=0,l=0,d=o;e.submatches.length===0&&e.submatches.push(r.length?{start:0,end:1,match:{text:r[0]}}:{start:0,end:0,match:{text:""}});let c=nt(e.submatches.map((g,h)=>{if(this.hitLimit)return null;this.numResults++,this.numResults>=this.maxResults&&(this.hitLimit=!0);let f=ly(g.match),I=s.slice(a,g.start).toString(),x=Z4(I),T=x.numLines>0?x.lastLineLength:x.lastLineLength+l,w=Z4(f),M=x.numLines+d,O=w.numLines+M,N=w.numLines>0?w.lastLineLength:w.lastLineLength+T;return a=g.end,l=N,d=O,new lg(M,T,O,N)})),u=rc(c,j4),m=new dg(r,u,this.previewOptions);return new qo(n,m.rangeLocations.map(g=>({sourceRange:NL(g.source),previewRange:NL(g.preview)})),m.previewText)}createTextSearchContexts(e,n){let o=ly(e.lines),r=e.line_number;return o.replace(/\r?\n$/,"").split(`
`).map((s,a)=>new Vs(n,s,r+a))}onResult(e){this.emit("result",e)}};function ly(i){return i.bytes?Buffer.from(i.bytes,"base64").toString():i.text}function Z4(i){let t=/\n/g,e=0,n=-1,o;for(;o=t.exec(i);)e++,n=o.index;let r=n>=0?i.length-n-1:i.length;return{numLines:e,lastLineLength:r}}function EG(i,t){let e=["--hidden","--no-require-git"];e.push(i.isCaseSensitive?"--case-sensitive":"--ignore-case"),t.folderOptions.ignoreGlobCase&&(e.push("--glob-case-insensitive"),e.push("--ignore-file-case-insensitive"));let{doubleStarIncludes:n,otherIncludes:o}=rp(t.folderOptions.includes,s=>s.startsWith("**")?"doubleStarIncludes":"otherIncludes");if(o&&o.length){let s=new Set;o.forEach(a=>{s.add(a)}),e.push("-g","!*"),s.forEach(a=>{wG(a).map(yf).forEach(l=>{e.push("-g",l)})})}n&&n.length&&n.forEach(s=>{e.push("-g",s)}),t.folderOptions.excludes.map(s=>typeof s=="string"?s:s.pattern).map(yf).forEach(s=>e.push("-g",`!${s}`)),t.maxFileSize&&e.push("--max-filesize",t.maxFileSize+""),t.folderOptions.useIgnoreFiles.local?t.folderOptions.useIgnoreFiles.parent||e.push("--no-ignore-parent"):e.push("--no-ignore"),t.folderOptions.followSymlinks&&e.push("--follow"),t.folderOptions.encoding&&t.folderOptions.encoding!=="utf8"&&e.push("--encoding",t.folderOptions.encoding),t.numThreads&&e.push("--threads",`${t.numThreads}`),i.pattern==="--"&&(i.isRegExp=!0,i.pattern="\\-\\-"),i.isMultiline&&!i.isRegExp&&(i.pattern=Qo(i.pattern),i.isRegExp=!0),t.usePCRE2&&e.push("--pcre2"),e.push("--crlf"),i.isRegExp&&(i.pattern=kG(i.pattern),e.push("--engine","auto"));let r;if(i.isWordMatch){let a=SI(i.pattern,!!i.isRegExp,{wholeWord:i.isWordMatch}).source.replace(/\\\//g,"/");e.push("--regexp",a)}else if(i.isRegExp){let s=PG(i.pattern);s=_G(s),e.push("--regexp",s)}else r=i.pattern,e.push("--fixed-strings");return e.push("--no-config"),t.folderOptions.useIgnoreFiles.global||e.push("--no-ignore-global"),e.push("--json"),i.isMultiline&&e.push("--multiline"),t.surroundingContext&&(e.push("--before-context",t.surroundingContext+""),e.push("--after-context",t.surroundingContext+"")),e.push("--"),r&&e.push(r),e.push("."),e}function wG(i){return n5(i).flatMap(e=>{let n=Ea(e,"/");return n.map((o,r)=>n.slice(0,r+1).join("/"))})}function kG(i){let t=/((?:[^\\]|^)(?:\\\\)*)\\u([a-z0-9]{4})/gi;for(;i.match(t);)i=i.replace(t,"$1\\x{$2}");let e=/((?:[^\\]|^)(?:\\\\)*)\\u\{([a-z0-9]{4})\}/gi;for(;i.match(e);)i=i.replace(e,"$1\\x{$2}");return i}var e5=i=>i.type==="Assertion"&&i.kind==="lookbehind";function PG(i){let t;try{t=new xG().parsePattern(i)}catch{return i}let e="",n=0,o=(a,l,d)=>{e+=i.slice(n,a)+d,n=l},r=[];return new SG({onCharacterEnter(a){if(a.raw!=="\\n")return;let l=r[0];if(!l)o(a.start,a.end,"\\r?\\n");else if(!r.some(e5))if(l.type==="CharacterClass")if(l.negate){let d=i.slice(l.start+2,a.start)+i.slice(a.end,l.end-1);l.parent?.type==="Quantifier"?o(l.start,l.end,d?`[^${d}]`:"."):o(l.start,l.end,"(?!\\r?\\n"+(d?`|[${d}]`:"")+")")}else{let d=i.slice(l.start+1,a.start)+i.slice(a.end,l.end-1);o(l.start,l.end,d===""?"\\r?\\n":`(?:[${d}]|\\r?\\n)`)}else l.type==="Quantifier"&&o(a.start,a.end,"(?:\\r?\\n)")},onQuantifierEnter(a){r.unshift(a)},onQuantifierLeave(){r.shift()},onCharacterClassRangeEnter(a){r.unshift(a)},onCharacterClassRangeLeave(){r.shift()},onCharacterClassEnter(a){r.unshift(a)},onCharacterClassLeave(){r.shift()},onAssertionEnter(a){e5(a)&&r.push(a)},onAssertionLeave(a){r[0]===a&&r.shift()}}).visit(t),e+=i.slice(n),e}function _G(i){return i.replace(/\n/g,"\\r?\\n")}function DG(i){let t=!1,e=!1,n="",o="";for(let r=0;r<i.length;r++){let s=i[r];switch(s){case"\\":e?(t?o+="\\"+s:n+="\\"+s,e=!1):e=!0;break;case"{":if(e)t?o+=s:n+=s,e=!1;else{if(t)return{strInBraces:n+"{"+o+"{"+i.substring(r+1)};t=!0}break;case"}":if(e)t?o+=s:n+=s,e=!1;else{if(t)return{fixedStart:n,strInBraces:o,fixedEnd:i.substring(r+1)};n+=s}break;default:t?o+=(e?"\\":"")+s:n+=(e?"\\":"")+s,e=!1;break}}return{strInBraces:n+(t?"{"+o:"")}}function n5(i){let{fixedStart:t,strInBraces:e,fixedEnd:n}=DG(i);if(t===void 0||n===void 0)return[e];let o=Ea(e,",");o.length||(o=[""]);let r=n5(n);return o.flatMap(s=>{let a=t+s;return r.map(l=>a+l)})}var Sf=class extends Uu{constructor(t,e,n=xi,o="searchProcess"){super({query:t,provider:e},{readdir:r=>n.Promises.readdir(r.fsPath),toCanonicalName:r=>hB(r)},o)}};var YE=class{constructor(t,e){this.query=t;this.numThreads=e}search(t,e,n){if((!this.query.folderQueries||!this.query.folderQueries.length)&&(!this.query.extraFileResources||!this.query.extraFileResources.length))return Promise.resolve({type:"success",limitHit:!1,stats:{type:"searchProcess"},messages:[]});let o={appendLine(s){n({message:s})}},r=new Sf(this.query,new xf(o,this.numThreads),xi);return new Promise((s,a)=>r.search(l=>{e(l.map(RG))},t).then(l=>s({limitHit:l.limitHit??!1,type:"success",stats:l.stats,messages:[]}),a))}};function RG(i){return{path:i.resource&&i.resource.fsPath,results:i.results,numMatches:(i.results||[]).reduce((t,e)=>wb(e)?t+e.rangeLocations.length:t+1,0)}}var XE=class i{constructor(t="searchProcess",e){this.processType=t;this.getNumThreads=e;this.caches=Object.create(null)}static{this.BATCH_SIZE=512}fileSearch(t){let e,n=o5(t),o=new E({onDidAddFirstListener:()=>{e=yr(async r=>{let s=await this.getNumThreads?.();return this.doFileSearchWithEngine(ay,n,a=>o.fire(a),r,i.BATCH_SIZE,s)}),e.then(r=>o.fire(r),r=>o.fire({type:"error",error:{message:r.message,stack:r.stack}}))},onDidRemoveLastListener:()=>{e.cancel()}});return o.event}textSearch(t){let e,n=o5(t),o=new E({onDidAddFirstListener:()=>{e=yr(r=>this.ripgrepTextSearch(n,s=>o.fire(s),r)),e.then(r=>o.fire(r),r=>o.fire({type:"error",error:{message:r.message,stack:r.stack}}))},onDidRemoveLastListener:()=>{e.cancel()}});return o.event}async ripgrepTextSearch(t,e,n){t.maxFileSize=this.getPlatformFileLimits().maxFileSize;let o=await this.getNumThreads?.();return new YE(t,o).search(n,e,e)}getPlatformFileLimits(){return{maxFileSize:16*Ec.GB}}doFileSearch(t,e,n,o){return this.doFileSearchWithEngine(ay,t,n,o,i.BATCH_SIZE,e)}doFileSearchWithEngine(t,e,n,o,r=i.BATCH_SIZE,s){let a=0,l=c=>{Array.isArray(c)?(a+=c.length,n(c.map(u=>this.rawMatchToSearchItem(u)))):c.relativePath?(a++,n(this.rawMatchToSearchItem(c))):n(c)};if(e.sortByScore){let c=this.trySortedSearchFromCache(e,l,o);if(!c){let u=e.maxResults?Object.assign({},e,{maxResults:null}):e,m=new t(u,s);c=this.doSortedSearch(m,e,n,l,o)}return new Promise((u,m)=>{c.then(([g,h])=>{let f=h.map(I=>this.rawMatchToSearchItem(I));this.sendProgress(f,n,r),u(g)},m)})}let d=new t(e,s);return this.doSearch(d,l,r,o).then(c=>({limitHit:c.limitHit,type:"success",stats:{detailStats:c.stats,type:this.processType,fromCache:!1,resultCount:a,sortingTime:void 0},messages:[]}))}rawMatchToSearchItem(t){return{path:t.base?He(t.base,t.relativePath):t.relativePath}}doSortedSearch(t,e,n,o,r){let s=new E,a=yr(d=>{let c=[],u=m=>{Array.isArray(m)?c=m:(o(m),s.fire(m))};return this.doSearch(t,u,-1,d).then(m=>[m,c])}),l;if(e.cacheKey){l=this.getOrCreateCache(e.cacheKey);let d={promise:a,event:s.event,resolved:!1};l.resultsToSearchCache[e.filePattern||""]=d,a.then(()=>{d.resolved=!0},c=>{delete l.resultsToSearchCache[e.filePattern||""]}),a=this.preventCancellation(a)}return a.then(([d,c])=>{let u=l?l.scorerCache:Object.create(null),m=(typeof e.maxResults!="number"||e.maxResults>0)&&Jt.create(!1);return this.sortResults(e,c,u,r).then(g=>{let h=m?m.elapsed():-1;return[{type:"success",stats:{detailStats:d.stats,sortingTime:h,fromCache:!1,type:this.processType,resultCount:g.length},messages:d.messages,limitHit:d.limitHit||typeof e.maxResults=="number"&&c.length>e.maxResults},g]})})}getOrCreateCache(t){let e=this.caches[t];return e||(this.caches[t]=new VL)}trySortedSearchFromCache(t,e,n){let o=t.cacheKey&&this.caches[t.cacheKey];if(!o)return;let r=this.getResultsFromCache(o,t.filePattern||"",e,n);if(r)return r.then(([s,a,l])=>{let d=Jt.create(!1);return this.sortResults(t,a,o.scorerCache,n).then(c=>{let u=d.elapsed(),m={fromCache:!0,detailStats:l,type:this.processType,resultCount:a.length,sortingTime:u};return[{type:"success",limitHit:s.limitHit||typeof t.maxResults=="number"&&a.length>t.maxResults,stats:m,messages:[]},c]})})}sortResults(t,e,n,o){let r=sy(t.filePattern||""),s=(l,d)=>K4(l,d,r,!0,AG,n),a=typeof t.maxResults=="number"?t.maxResults:wd;return fU(e,s,a,1e4,o)}sendProgress(t,e,n){if(n&&n>0)for(let o=0;o<t.length;o+=n)e(t.slice(o,o+n));else e(t)}getResultsFromCache(t,e,n,o){let r=Jt.create(!1),s=e.indexOf(Pt)>=0,a;for(let u in t.resultsToSearchCache)if(e.startsWith(u)){if(s&&u.indexOf(Pt)<0&&u!=="")continue;let m=t.resultsToSearchCache[u];a={promise:this.preventCancellation(m.promise),event:m.event,resolved:m.resolved};break}if(!a)return null;let l=r.elapsed(),d=Jt.create(!1),c=a.event(n);return o&&o.onCancellationRequested(()=>{c.dispose()}),a.promise.then(([u,m])=>{if(o&&o.isCancellationRequested)throw na();let g=[],h=sy(e).normalizedLowercase;for(let f of m)kb(f,h)&&g.push(f);return[u,g,{cacheWasResolved:a.resolved,cacheLookupTime:l,cacheFilterTime:d.elapsed(),cacheEntryCount:m.length}]})}doSearch(t,e,n,o){return new Promise((r,s)=>{let a=[];o?.onCancellationRequested(()=>t.cancel()),t.search(l=>{l&&(n?(a.push(l),n>0&&a.length>=n&&(e(a),a=[])):e(l))},l=>{e(l)},(l,d)=>{a.length&&e(a),l?(e({message:"Search finished. Error: "+l.message}),s(l)):(e({message:"Search finished. Stats: "+JSON.stringify(d.stats)}),r(d))})})}clearCache(t){return delete this.caches[t],Promise.resolve(void 0)}preventCancellation(t){return new class{get[Symbol.toStringTag](){return this.toString()}cancel(){}then(e,n){return t.then(e,n)}catch(e){return this.then(void 0,e)}finally(e){return t.finally(e)}}}},VL=class{constructor(){this.resultsToSearchCache=Object.create(null);this.scorerCache=Object.create(null)}},AG=new class{getItemLabel(i){return ot(i.relativePath)}getItemDescription(i){return pn(i.relativePath)}getItemPath(i){return i.relativePath}};function o5(i){return{...i,folderQueries:i.folderQueries&&i.folderQueries.map(MG),extraFileResources:i.extraFileResources&&i.extraFileResources.map(t=>b.revive(t))}}function MG(i){return St(i)}var dy=class{constructor(t,e){this.outputChannel=t;this.getNumThreads=e;this.inProgress=new Set;process.once("exit",()=>this.dispose())}async provideTextSearchResults(t,e,n,o){let r=await this.getNumThreads(),s=new xf(this.outputChannel,r);return Promise.all(e.folderOptions.map(a=>{let l={folderOptions:a,numThreads:r,maxResults:e.maxResults,previewOptions:e.previewOptions,maxFileSize:e.maxFileSize,surroundingContext:e.surroundingContext};if(a.folder.scheme===B.vscodeUserData){let d={...l,folder:a.folder.with({scheme:B.file})},c=new fs(u=>n.report({...u,uri:u.uri.with({scheme:a.folder.scheme})}));return this.withToken(o,u=>s.provideTextSearchResultsWithRgOptions(t,d,c,u))}else return this.withToken(o,d=>s.provideTextSearchResultsWithRgOptions(t,l,n,d))})).then((a=>({limitHit:a.some(d=>!!d&&d.limitHit)})))}async withToken(t,e){let n=LG(t);this.inProgress.add(n);let o=await e(n.token);return this.inProgress.delete(n),o}dispose(){this.inProgress.forEach(t=>t.cancel())}};function LG(i){let t=new ke;return i.onCancellationRequested(()=>t.cancel()),t}var Cf=class extends Bd{constructor(e,n,o,r,s){super(e,o,s);this.configurationService=r;this._pfs=xi;this._internalFileSearchHandle=-1;this._internalFileSearchProvider=null;this._registeredEHSearchProvider=!1;this._disposables=new z;this.isDisposed=!1;this.getNumThreads=this.getNumThreads.bind(this),this.getNumThreadsCached=this.getNumThreadsCached.bind(this),this.handleConfigurationChanged=this.handleConfigurationChanged.bind(this);let a=new Bu("RipgrepSearchUD",this._logService);this._disposables.add(this.registerTextSearchProvider(B.vscodeUserData,new dy(a,this.getNumThreadsCached))),n.remote.isRemote&&n.remote.authority&&this._registerEHSearchProviders(),r.getConfigProvider().then(l=>{this.isDisposed||this._disposables.add(l.onDidChangeConfiguration(this.handleConfigurationChanged))})}handleConfigurationChanged(e){e.affectsConfiguration("search")&&(this._numThreadsPromise=void 0)}async getNumThreads(){return(await this.configurationService.getConfigProvider()).getConfiguration("search").get("ripgrep.maxThreads")}async getNumThreadsCached(){return this._numThreadsPromise||(this._numThreadsPromise=this.getNumThreads()),this._numThreadsPromise}dispose(){this.isDisposed=!0,this._disposables.dispose()}$enableExtensionHostSearch(){this._registerEHSearchProviders()}_registerEHSearchProviders(){if(this._registeredEHSearchProvider)return;this._registeredEHSearchProvider=!0;let e=new Bu("RipgrepSearchEH",this._logService);this._disposables.add(this.registerTextSearchProvider(B.file,new dy(e,this.getNumThreadsCached))),this._disposables.add(this.registerInternalFileSearchProvider(B.file,new XE("fileSearchProvider",this.getNumThreadsCached)))}registerInternalFileSearchProvider(e,n){let o=this._handlePool++;return this._internalFileSearchProvider=n,this._internalFileSearchHandle=o,this._proxy.$registerFileSearchProvider(o,this._transformScheme(e)),Q(()=>{this._internalFileSearchProvider=null,this._proxy.$unregisterProvider(o)})}$provideFileSearchResults(e,n,o,r){let s=jb(o);if(e===this._internalFileSearchHandle){let a=Date.now();return this.doInternalFileSearch(e,n,s,r).then(l=>{let d=Date.now()-a;return this._logService.debug(`Ext host file search time: ${d}ms`),l})}return super.$provideFileSearchResults(e,n,o,r)}async doInternalFileSearchWithCustomCallback(e,n,o){let r=a=>{if(dB(a)&&(a=[a]),Array.isArray(a)){o(a.map(l=>b.file(l.path)));return}a.message&&this._logService.debug("ExtHostSearch",a.message)};if(!this._internalFileSearchProvider)throw new Error("No internal file search handler");let s=await this.getNumThreadsCached();return this._internalFileSearchProvider.doFileSearch(e,s,r,n)}async doInternalFileSearch(e,n,o,r){return this.doInternalFileSearchWithCustomCallback(o,r,s=>{this._proxy.$handleFileMatch(e,n,s)})}$clearCache(e){return this._internalFileSearchProvider?.clearCache(e),super.$clearCache(e)}createTextSearchManager(e,n){return new Sf(e,n,void 0,"textSearchProvider")}};Cf=D([C(0,ae),C(1,Xe),C(2,ps),C(3,En),C(4,ne)],Cf);import*as q$ from"http";function WL(i,t,e,n,o,r){if(Array.isArray(i)){let s=0;for(let a of i){let l=WL(a,t,e,n,o,r);if(l===10)return l;l>s&&(s=l)}return s}else{if(typeof i=="string")return n?i==="*"?5:i===e?10:0:0;if(i){let{language:s,pattern:a,scheme:l,hasAccessToAllModels:d,notebookType:c}=i;if(!n&&!d)return 0;c&&o&&(t=o);let u=0;if(l)if(l===t.scheme)u=10;else if(l==="*")u=5;else return 0;if(s)if(s===e)u=10;else if(s==="*")u=Math.max(u,5);else return 0;if(c)if(c===r)u=10;else if(c==="*"&&r!==void 0)u=Math.max(u,5);else return 0;if(a){let m;if(typeof a=="string"?m=a:m={...a,base:ro(a.base)},m===t.fsPath||ir(m,t.fsPath))u=10;else return 0}return u}else return 0}}function BL(i){return typeof i=="string"?!1:Array.isArray(i)?i.some(BL):!!i.notebookType}var $L=(o=>(o[o.None=0]="None",o[o.Indent=1]="Indent",o[o.IndentOutdent=2]="IndentOutdent",o[o.Outdent=3]="Outdent",o))($L||{});var Xje=R("editSessionIdentityService"),zL=(n=>(n[n.Complete=100]="Complete",n[n.Partial=50]="Partial",n[n.None=0]="None",n))(zL||{});var ZE=class{constructor(t){this._relatedInformationProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(F.MainThreadAiRelatedInformation)}async $provideAiRelatedInformation(t,e,n){if(this._relatedInformationProviders.size===0)throw new Error("No related information providers registered");let o=this._relatedInformationProviders.get(t);if(!o)throw new Error("related information provider not found");return await o.provideRelatedInformation(e,n)??[]}getRelatedInformation(t,e,n){return this._proxy.$getAiRelatedInformation(e,n)}registerRelatedInformationProvider(t,e,n){let o=this._nextHandle;return this._nextHandle++,this._relatedInformationProviders.set(o,n),this._proxy.$registerAiRelatedInformationProvider(o,e),new xe(()=>{this._proxy.$unregisterAiRelatedInformationProvider(o),this._relatedInformationProviders.delete(o)})}};var ew=class{constructor(t){this._settingsSearchProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(F.MainThreadAiSettingsSearch)}async $startSearch(t,e,n,o){if(this._settingsSearchProviders.size===0)throw new Error("No related information providers registered");let r=this._settingsSearchProviders.get(t);if(!r)throw new Error("Settings search provider not found");let s=new fs(a=>{this._proxy.$handleSearchResult(t,$M.fromSettingsSearchResult(a))});return r.provideSettingsSearchResults(e,n,s,o)}registerSettingsSearchProvider(t,e){let n=this._nextHandle;return this._nextHandle++,this._settingsSearchProviders.set(n,e),this._proxy.$registerAiSettingsSearchProvider(n),new xe(()=>{this._proxy.$unregisterAiSettingsSearchProvider(n),this._settingsSearchProviders.delete(n)})}};function r5(i){for(let t=0,e=i.length;t<e;t+=4){let n=i[t+0],o=i[t+1],r=i[t+2],s=i[t+3];i[t+0]=s,i[t+1]=r,i[t+2]=o,i[t+3]=n}}function NG(i){let t=new Uint8Array(i.buffer,i.byteOffset,i.length*4);return pI()||r5(t),W.wrap(t)}function UG(i){let t=i.buffer;if(pI()||r5(t),t.byteOffset%4===0)return new Uint32Array(t.buffer,t.byteOffset,t.length/4);{let e=new Uint8Array(t.byteLength);return e.set(t),new Uint32Array(e.buffer,e.byteOffset,e.length/4)}}function tw(i){let t=new Uint32Array(FG(i)),e=0;if(t[e++]=i.id,i.type==="full")t[e++]=1,t[e++]=i.data.length,t.set(i.data,e),e+=i.data.length;else{t[e++]=2,t[e++]=i.deltas.length;for(let n of i.deltas)t[e++]=n.start,t[e++]=n.deleteCount,n.data?(t[e++]=n.data.length,t.set(n.data,e),e+=n.data.length):t[e++]=0}return NG(t)}function FG(i){let t=0;if(t+=2,i.type==="full")t+=1+i.data.length;else{t+=1,t+=3*i.deltas.length;for(let e of i.deltas)e.data&&(t+=e.data.length)}return t}function qL(i){let t=UG(i),e=0,n=t[e++];if(t[e++]===1){let a=t[e++],l=t.subarray(e,e+a);return e+=a,{id:n,type:"full",data:l}}let r=t[e++],s=[];for(let a=0;a<r;a++){let l=t[e++],d=t[e++],c=t[e++],u;c>0&&(u=t.subarray(e,e+c),e+=c),s[a]={start:l,deleteCount:d,data:u}}return{id:n,type:"delta",deltas:s}}var HG=[new Le("vscode.executeDocumentHighlights","_executeDocumentHighlights","Execute document highlight provider.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of DocumentHighlight-instances.",zi(gu.to))),new Le("vscode.executeDocumentSymbolProvider","_executeDocumentSymbolProvider","Execute document symbol provider.",[Z.Uri],new Re("A promise that resolves to an array of SymbolInformation and DocumentSymbol instances.",(i,t)=>{if(wh(i))return;class e extends Fr{constructor(){super(...arguments);this.containerName=""}static to(r){let s=new e(r.name,Vr.to(r.kind),r.containerName||"",new tn(t[0],G.to(r.range)));return s.detail=r.detail,s.range=s.location.range,s.selectionRange=G.to(r.selectionRange),s.children=r.children?r.children.map(e.to):[],s}}return i.map(e.to)})),new Le("vscode.executeFormatDocumentProvider","_executeFormatDocumentProvider","Execute document format provider.",[Z.Uri,new Z("options","Formatting options",i=>!0,i=>i)],new Re("A promise that resolves to an array of TextEdits.",zi(Dn.to))),new Le("vscode.executeFormatRangeProvider","_executeFormatRangeProvider","Execute range format provider.",[Z.Uri,Z.Range,new Z("options","Formatting options",i=>!0,i=>i)],new Re("A promise that resolves to an array of TextEdits.",zi(Dn.to))),new Le("vscode.executeFormatOnTypeProvider","_executeFormatOnTypeProvider","Execute format on type provider.",[Z.Uri,Z.Position,new Z("ch","Trigger character",i=>typeof i=="string",i=>i),new Z("options","Formatting options",i=>!0,i=>i)],new Re("A promise that resolves to an array of TextEdits.",zi(Dn.to))),new Le("vscode.executeDefinitionProvider","_executeDefinitionProvider","Execute all definition providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.experimental.executeDefinitionProvider_recursive","_executeDefinitionProvider_recursive","Execute all definition providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.executeTypeDefinitionProvider","_executeTypeDefinitionProvider","Execute all type definition providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.experimental.executeTypeDefinitionProvider_recursive","_executeTypeDefinitionProvider_recursive","Execute all type definition providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.executeDeclarationProvider","_executeDeclarationProvider","Execute all declaration providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.experimental.executeDeclarationProvider_recursive","_executeDeclarationProvider_recursive","Execute all declaration providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.executeImplementationProvider","_executeImplementationProvider","Execute all implementation providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.experimental.executeImplementationProvider_recursive","_executeImplementationProvider_recursive","Execute all implementation providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location or LocationLink instances.",jd)),new Le("vscode.executeReferenceProvider","_executeReferenceProvider","Execute all reference providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location-instances.",zi(vo.to))),new Le("vscode.experimental.executeReferenceProvider","_executeReferenceProvider_recursive","Execute all reference providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Location-instances.",zi(vo.to))),new Le("vscode.executeHoverProvider","_executeHoverProvider","Execute all hover providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Hover-instances.",zi(Zm.to))),new Le("vscode.experimental.executeHoverProvider_recursive","_executeHoverProvider_recursive","Execute all hover providers.",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of Hover-instances.",zi(Zm.to))),new Le("vscode.executeSelectionRangeProvider","_executeSelectionRangeProvider","Execute selection range provider.",[Z.Uri,new Z("position","A position in a text document",i=>Array.isArray(i)&&i.every(t=>De.isPosition(t)),i=>i.map(gt.from))],new Re("A promise that resolves to an array of ranges.",i=>i.map(t=>{let e;for(let n of t.reverse())e=new Es(G.to(n),e);return e}))),new Le("vscode.executeWorkspaceSymbolProvider","_executeWorkspaceSymbolProvider","Execute all workspace symbol providers.",[Z.String.with("query","Search string")],new Re("A promise that resolves to an array of SymbolInformation-instances.",i=>i.map(Td.to))),new Le("vscode.prepareCallHierarchy","_executePrepareCallHierarchy","Prepare call hierarchy at a position inside a document",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of CallHierarchyItem-instances",i=>i.map(Ga.to))),new Le("vscode.provideIncomingCalls","_executeProvideIncomingCalls","Compute incoming calls for an item",[Z.CallHierarchyItem],new Re("A promise that resolves to an array of CallHierarchyIncomingCall-instances",i=>i.map(vM.to))),new Le("vscode.provideOutgoingCalls","_executeProvideOutgoingCalls","Compute outgoing calls for an item",[Z.CallHierarchyItem],new Re("A promise that resolves to an array of CallHierarchyOutgoingCall-instances",i=>i.map(bM.to))),new Le("vscode.prepareRename","_executePrepareRename","Execute the prepareRename of rename provider.",[Z.Uri,Z.Position],new Re("A promise that resolves to a range and placeholder text.",i=>{if(i)return{range:G.to(i.range),placeholder:i.text}})),new Le("vscode.executeDocumentRenameProvider","_executeDocumentRenameProvider","Execute rename provider.",[Z.Uri,Z.Position,Z.String.with("newName","The new symbol name")],new Re("A promise that resolves to a WorkspaceEdit.",i=>{if(i){if(i.rejectReason)throw new Error(i.rejectReason);return bo.to(i)}})),new Le("vscode.executeLinkProvider","_executeLinkProvider","Execute document link provider.",[Z.Uri,Z.Number.with("linkResolveCount","Number of links that should be resolved, only when links are unresolved.").optional()],new Re("A promise that resolves to an array of DocumentLink-instances.",i=>i.map(Qa.to))),new Le("vscode.provideDocumentSemanticTokensLegend","_provideDocumentSemanticTokensLegend","Provide semantic tokens legend for a document",[Z.Uri],new Re("A promise that resolves to SemanticTokensLegend.",i=>{if(i)return new nu(i.tokenTypes,i.tokenModifiers)})),new Le("vscode.provideDocumentSemanticTokens","_provideDocumentSemanticTokens","Provide semantic tokens for a document",[Z.Uri],new Re("A promise that resolves to SemanticTokens.",i=>{if(!i)return;let t=qL(i);if(t.type==="full")return new Oi(t.data,void 0)})),new Le("vscode.provideDocumentRangeSemanticTokensLegend","_provideDocumentRangeSemanticTokensLegend","Provide semantic tokens legend for a document range",[Z.Uri,Z.Range.optional()],new Re("A promise that resolves to SemanticTokensLegend.",i=>{if(i)return new nu(i.tokenTypes,i.tokenModifiers)})),new Le("vscode.provideDocumentRangeSemanticTokens","_provideDocumentRangeSemanticTokens","Provide semantic tokens for a document range",[Z.Uri,Z.Range],new Re("A promise that resolves to SemanticTokens.",i=>{if(!i)return;let t=qL(i);if(t.type==="full")return new Oi(t.data,void 0)})),new Le("vscode.executeCompletionItemProvider","_executeCompletionItemProvider","Execute completion item provider.",[Z.Uri,Z.Position,Z.String.with("triggerCharacter","Trigger completion when the user types the character, like `,` or `(`").optional(),Z.Number.with("itemResolveCount","Number of completions to resolve (too large numbers slow down completions)").optional()],new Re("A promise that resolves to a CompletionList-instance.",(i,t,e)=>{if(!i)return new Pi([]);let n=i.suggestions.map(o=>CM.to(o,e));return new Pi(n,i.incomplete)})),new Le("vscode.executeSignatureHelpProvider","_executeSignatureHelpProvider","Execute signature help provider.",[Z.Uri,Z.Position,Z.String.with("triggerCharacter","Trigger signature help when the user types the character, like `,` or `(`").optional()],new Re("A promise that resolves to SignatureHelp.",i=>{if(i)return eg.to(i)})),new Le("vscode.executeCodeLensProvider","_executeCodeLensProvider","Execute code lens provider.",[Z.Uri,Z.Number.with("itemResolveCount","Number of lenses that should be resolved and returned. Will only return resolved lenses, will impact performance)").optional()],new Re("A promise that resolves to an array of CodeLens-instances.",(i,t,e)=>zi(n=>new Yl(G.to(n.range),n.command&&e.fromInternal(n.command)))(i))),new Le("vscode.executeCodeActionProvider","_executeCodeActionProvider","Execute code action provider.",[Z.Uri,new Z("rangeOrSelection","Range in a text document. Some refactoring provider requires Selection object.",i=>be.isRange(i),i=>Zn.isSelection(i)?Do.from(i):G.from(i)),Z.String.with("kind","Code action kind to return code actions for").optional(),Z.Number.with("itemResolveCount","Number of code actions to resolve (too large numbers slow down code actions)").optional()],new Re("A promise that resolves to an array of Command-instances.",(i,t,e)=>zi(n=>{if(n._isSynthetic){if(!n.command)throw new Error("Synthetic code actions must have a command");return e.fromInternal(n.command)}else{let o=new Ts(n.title,n.kind?new kt(n.kind):void 0);return n.edit&&(o.edit=bo.to(n.edit)),n.command&&(o.command=e.fromInternal(n.command)),o.isPreferred=n.isPreferred,o}})(i))),new Le("vscode.executeDocumentColorProvider","_executeDocumentColorProvider","Execute document color provider.",[Z.Uri],new Re("A promise that resolves to an array of ColorInformation objects.",i=>i?i.map(t=>new nd(G.to(t.range),yu.to(t.color))):[])),new Le("vscode.executeColorPresentationProvider","_executeColorPresentationProvider","Execute color presentation provider.",[new Z("color","The color to show and insert",i=>i instanceof _i,yu.from),new Z("context","Context object with uri and range",i=>!0,i=>({uri:i.uri,range:G.from(i.range)}))],new Re("A promise that resolves to an array of ColorPresentation objects.",i=>i?i.map(fb.to):[])),new Le("vscode.executeInlayHintProvider","_executeInlayHintProvider","Execute inlay hints provider",[Z.Uri,Z.Range],new Re("A promise that resolves to an array of Inlay objects",(i,t,e)=>i.map(TM.to.bind(void 0,e)))),new Le("vscode.executeFoldingRangeProvider","_executeFoldingRangeProvider","Execute folding range provider",[Z.Uri],new Re("A promise that resolves to an array of FoldingRange objects",(i,t)=>{if(i)return i.map(vb.to)})),new Le("vscode.resolveNotebookContentProviders","_resolveNotebookContentProvider","Resolve Notebook Content Providers",[],new Re("A promise that resolves to an array of NotebookContentProvider static info objects.",zi(i=>({viewType:i.viewType,displayName:i.displayName,options:{transientOutputs:i.options.transientOutputs,transientCellMetadata:i.options.transientCellMetadata,transientDocumentMetadata:i.options.transientDocumentMetadata},filenamePattern:i.filenamePattern.map(t=>yb.to(t))})))),new Le("vscode.executeInlineValueProvider","_executeInlineValueProvider","Execute inline value provider",[Z.Uri,Z.Range,new Z("context","An InlineValueContext",i=>i&&typeof i.frameId=="number"&&i.stoppedLocation instanceof be,i=>gb.from(i))],new Re("A promise that resolves to an array of InlineValue objects",i=>i.map(mb.to))),new Le("vscode.open","_workbench.open","Opens the provided resource in the editor. Can be a text or binary file, or an http(s) URL. If you need more control over the options for opening a text file, use vscode.window.showTextDocument instead.",[new Z("uriOrString","Uri-instance or string (only http/https)",i=>b.isUri(i)||typeof i=="string"&&xF(i,B.http,B.https),i=>i),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",i=>i===void 0||typeof i=="number"||typeof i=="object",i=>i&&(typeof i=="number"?[$t.from(i),void 0]:[$t.from(i.viewColumn),bb.from(i)])).optional(),Z.String.with("label","").optional()],Re.Void),new Le("vscode.openWith","_workbench.openWith","Opens the provided resource with a specific editor.",[Z.Uri.with("resource","Resource to open"),Z.String.with("viewId","Custom editor view id. This should be the viewType string for custom editors or the notebookType string for notebooks. Use 'default' to use VS Code's default text editor"),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",i=>i===void 0||typeof i=="number"||typeof i=="object",i=>i&&(typeof i=="number"?[$t.from(i),void 0]:[$t.from(i.viewColumn),bb.from(i)])).optional()],Re.Void),new Le("vscode.diff","_workbench.diff","Opens the provided resources in the diff editor to compare their contents.",[Z.Uri.with("left","Left-hand side resource of the diff editor"),Z.Uri.with("right","Right-hand side resource of the diff editor"),Z.String.with("title","Human readable title for the diff editor").optional(),new Z("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",i=>i===void 0||typeof i=="object",i=>i&&[$t.from(i.viewColumn),bb.from(i)]).optional()],Re.Void),new Le("vscode.changes","_workbench.changes","Opens a list of resources in the changes editor to compare their contents.",[Z.String.with("title","Human readable title for the changes editor"),new Z("resourceList","List of resources to compare",i=>{for(let t of i){if(t.length!==3)return!1;let[e,n,o]=t;if(!b.isUri(e)||!b.isUri(n)&&n!==void 0&&n!==null||!b.isUri(o)&&o!==void 0&&o!==null)return!1}return!0},i=>i)],Re.Void),new Le("vscode.prepareTypeHierarchy","_executePrepareTypeHierarchy","Prepare type hierarchy at a position inside a document",[Z.Uri,Z.Position],new Re("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(Ja.to))),new Le("vscode.provideSupertypes","_executeProvideSupertypes","Compute supertypes for an item",[Z.TypeHierarchyItem],new Re("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(Ja.to))),new Le("vscode.provideSubtypes","_executeProvideSubtypes","Compute subtypes for an item",[Z.TypeHierarchyItem],new Re("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(Ja.to))),new Le("vscode.revealTestInExplorer","_revealTestInExplorer","Reveals a test instance in the explorer",[Z.TestItem],Re.Void),new Le("vscode.startContinuousTestRun","testing.startContinuousRunFromExtension","Starts running the given tests with continuous run mode.",[Z.TestProfile,Z.Arr(Z.TestItem)],Re.Void),new Le("vscode.stopContinuousTestRun","testing.stopContinuousRunFromExtension","Stops running the given tests with continuous run mode.",[Z.Arr(Z.TestItem)],Re.Void),new Le("vscode.experimental.editSession.continue","_workbench.editSessions.actions.continueEditSession","Continue the current edit session in a different workspace",[Z.Uri.with("workspaceUri","The target workspace to continue the current edit session in")],Re.Void),new Le("setContext","_setContext","Set a custom context key value that can be used in when clauses.",[Z.String.with("name","The context key name"),new Z("value","The context key value",()=>!0,i=>i)],Re.Void),new Le("vscode.editorChat.start","inlineChat.start","Invoke a new editor chat session",[new Z("Run arguments","",i=>!0,i=>{if(i)return{initialRange:i.initialRange?G.from(i.initialRange):void 0,initialSelection:Zn.isSelection(i.initialSelection)?Do.from(i.initialSelection):void 0,message:i.message,attachments:i.attachments,autoSend:i.autoSend,position:i.position?gt.from(i.position):void 0,resolveOnResponse:i.resolveOnResponse}})],Re.Void),new Le("vscode.extensionPromptFileProvider","_listExtensionPromptFiles","Get all extension-contributed prompt files (custom agents, instructions, and prompt files).",[],new Re("A promise that resolves to an array of objects containing uri, type, and extensionId.",i=>i?i.map(t=>({uri:b.revive(t.uri),type:t.type,extensionId:t.extensionId})):[]))],nw=class{static register(t){HG.forEach(t.registerApiCommand,t),this._registerValidateWhenClausesCommand(t)}static _registerValidateWhenClausesCommand(t){t.registerCommand(!1,"_validateWhenClauses",m2)}};function zi(i){return t=>{if(Array.isArray(t))return t.map(i)}}function jd(i){if(!Array.isArray(i))return;let t=[];for(let e of i)IH(e)?t.push(Xm.to(e)):t.push(vo.to(e));return t}var Tf=class{constructor(t,e){this._proxy=t.getProxy(F.MainThreadBulkEdits),this._versionInformationProvider={getTextDocumentVersion:n=>e.getDocument(n)?.version,getNotebookDocumentVersion:()=>{}}}applyWorkspaceEdit(t,e,n){let o=new Yt(bo.from(t,this._versionInformationProvider));return this._proxy.$tryApplyWorkspaceEdit(o,void 0,n?.isRefactoring??!1)}};Tf=D([C(0,ae)],Tf);var i5;(t=>{function i(e,n){return e.callstack<n.callstack?-1:e.callstack>n.callstack?1:0}t.compare=i})(i5||={});function jL(i){if(!i||typeof i!="object")return{callstack:void 0,msg:wp(i)};let t=Array.isArray(i.stack)?i.stack.join(`
`):i.stack,e=i.message?i.message:wp(i);return{callstack:t,msg:e}}var KL=class i{constructor(t,e=i.ERROR_FLUSH_TIMEOUT){this._flushHandle=void 0;this._buffer=[];this._disposables=new z;this._telemetryService=t,this._flushDelay=e;let n=dl.addListener(o=>this._onErrorEvent(o));this._disposables.add(Q(n)),this.installErrorListeners()}static{this.ERROR_FLUSH_TIMEOUT=5*1e3}dispose(){clearTimeout(this._flushHandle),this._flushBuffer(),this._disposables.dispose()}installErrorListeners(){}_onErrorEvent(t){if(!t||t.code||(t.detail&&t.detail.stack&&(t=t.detail),no.isErrorNoTelemetry(t)||t instanceof ms||ea.is(t)||typeof t?.message=="string"&&t.message.includes("Unable to read file")))return;let{callstack:e,msg:n}=jL(t);if(!e)return;let o={msg:n,callstack:e};gp.is(t)&&(o.kind=t.kind,o.listenerCount=t.listenerCount),this._enqueue(o)}_enqueue(t){let e=pU(this._buffer,t,i5.compare);e<0?(t.count=1,this._buffer.splice(~e,0,t)):(this._buffer[e].count||(this._buffer[e].count=0),this._buffer[e].count+=1),this._flushHandle===void 0&&(this._flushHandle=setTimeout(()=>{this._flushBuffer(),this._flushHandle=void 0},this._flushDelay))}_flushBuffer(){for(let t of this._buffer)this._telemetryService.publicLogError2("UnhandledError",t);this._buffer.length=0}};function s5(i){return!!i&&b.isUri(i.sessionResource)&&i.$mid===19}function VG(i){return!!i&&typeof i=="object"&&"uri"in i&&i.uri instanceof b&&"version"in i&&typeof i.version=="number"&&"ranges"in i&&Array.isArray(i.ranges)&&i.ranges.every(We.isIRange)}function a5(i){return!!i&&typeof i=="object"&&"documents"in i&&Array.isArray(i.documents)&&i.documents.every(VG)}function l5(i){return!!i&&typeof i=="object"&&"command"in i&&"language"in i}var Tt;(m=>{let i;(w=>(w[w.Streaming=0]="Streaming",w[w.WaitingForConfirmation=1]="WaitingForConfirmation",w[w.Executing=2]="Executing",w[w.WaitingForPostApproval=3]="WaitingForPostApproval",w[w.Completed=4]="Completed",w[w.Cancelled=5]="Cancelled"))(i=m.StateKind||={});function t(g,h){if(g.kind==="toolInvocationSerialized")return g.isConfirmed===void 0||typeof g.isConfirmed=="boolean"?{type:g.isConfirmed?4:0}:g.isConfirmed;let f=g.state.read(h);if(!(f.type===0||f.type===1))return f.type===5?{type:f.reason}:f.confirmed}m.executionConfirmedOrDenied=t;function e(g,h){let f=t(g);if(f)return Promise.resolve(f);let I=new z;return new Promise(x=>{h&&I.add(h.onCancellationRequested(()=>{x({type:0})})),I.add(Eo(T=>{let w=t(g,T);w&&(I.dispose(),x(w))}))}).finally(()=>{I.dispose()})}m.awaitConfirmation=e;function n(g,h){let f=g.state.read(h);if(f.type===4)return f.postConfirmed||{type:1};if(f.type===5)return{type:f.reason}}function o(g,h){let f=g?.state.get();return f?.type===1||f?.type===3?(f.confirm(h),!0):!1}m.confirmWith=o;function r(g,h){let f=n(g);if(f)return Promise.resolve(f);let I=new z;return new Promise(x=>{h&&I.add(h.onCancellationRequested(()=>{x({type:0})})),I.add(Eo(T=>{let w=n(g,T);w&&(I.dispose(),x(w))}))}).finally(()=>{I.dispose()})}m.awaitPostConfirmation=r;function s(g,h){if(g.kind==="toolInvocationSerialized")return g.resultDetails;let f=g.state.read(h);if(f.type===4||f.type===3)return f.resultDetails}m.resultDetails=s;function a(g,h){if(g.kind==="toolInvocationSerialized")return!0;let f=g.state.read(h);return f.type===4||f.type===5}m.isComplete=a;function l(g,h){return!!(g.presentation==="hidden"||g.presentation==="hiddenAfterComplete"&&a(g,h))}m.isEffectivelyHidden=l;function d(g,h){return g.kind==="toolInvocationSerialized"?!1:g.state.read(h).type===0}m.isStreaming=d;function c(g,h){if(g.kind==="toolInvocationSerialized")return;let f=g.state.read(h);if(f.type!==0)return f.parameters}m.getParameters=c;function u(g,h){if(g.kind==="toolInvocationSerialized")return;let f=g.state.read(h);if(f.type!==0)return f.confirmationMessages}m.getConfirmationMessages=u})(Tt||={});var WG;(o=>{function i(r){return r.kind==="sent"}o.isSent=i;function t(r){return r.kind==="rejected"}o.isRejected=t;function e(r){return r.kind==="queued"}o.isQueued=e;function n(r){if(r.kind!=="sent")throw new Error(`Expected ChatSendResult to be 'sent', but was '${r.kind}'`)}o.assertSent=n})(WG||={});var kr=R("IChatService");var Ef=class{constructor(t,e,n,o,r,s,a){this._extension=t;this._request=e;this._proxy=n;this._commandsConverter=o;this._sessionDisposables=r;this._pendingCarouselResolvers=s;this._token=a;this._stopWatch=Jt.create(!1);this._isClosed=!1}close(){this._isClosed=!0}get timings(){return{firstProgress:this._firstProgress,totalElapsed:this._stopWatch.elapsed()}}get apiObject(){if(!this._apiObject){let n=function(l){if(t._isClosed){let d=new Error("Response stream has been closed");throw Error.captureStackTrace(d,l),d}},s=function(l,d){if(o.push(d!==void 0?[l,d]:l)===1&&queueMicrotask(()=>{let u=r;r=[],t._proxy.$handleProgressChunk(t._request.requestId,o).finally(()=>{u.forEach(m=>m())}),o.length=0}),d!==void 0)return new Promise(u=>{r.push(u)})},t=this;this._stopWatch.reset();let e=0,o=[],r=[],a=(l,d)=>{if(typeof this._firstProgress>"u"&&(l.kind==="markdownContent"||l.kind==="markdownVuln"||l.kind==="beginToolInvocation")&&(this._firstProgress=this._stopWatch.elapsed()),d){let c=e++,u=s(l,c),m={report:g=>{u.then(()=>{Xt.isMarkdownString(g.value)?s(Tb.from(g),c):s(vu.from(g),c)})}};Promise.all([u,d(m)]).then(([g,h])=>{s(MM.from(h),c)})}else s(l)};this._apiObject=Object.freeze({clearToPreviousToolInvocation(l){return n(this.markdown),s({kind:"clearToPreviousToolInvocation",reason:l}),this},markdown(l){n(this.markdown);let d=new Oa(l),c=db.from(d);return a(c),this},markdownWithVulnerabilities(l,d){n(this.markdown),d&&A(t._extension,"chatParticipantAdditions");let c=new As(l,d),u=xT.from(c);return a(u),this},codeblockUri(l,d){n(this.codeblockUri),A(t._extension,"chatParticipantAdditions");let c=new Wa(l,d),u=IT.from(c);return a(u),this},filetree(l,d){n(this.filetree);let c=new Ua(l,d),u=cb.from(c);return a(u),this},anchor(l,d){let c=new Ms(l,d);return this.push(c)},button(l){n(this.anchor);let d=new Va(l),c=ub.from(d,t._commandsConverter,t._sessionDisposables);return a(c),this},progress(l,d){n(this.progress);let c=new bd(l,d),u=d?wT.from(c):Sb.from(c);return a(u,d),this},thinkingProgress(l){n(this.thinkingProgress),A(t._extension,"chatParticipantAdditions");let d=new Ni(l.text??"",l.id,l.metadata),c=Cb.from(d);return a(c),this},hookProgress(l,d,c){n(this.hookProgress),A(t._extension,"chatParticipantAdditions");let u=new Fa(l,d,c),m=TT.from(u);return a(m),this},warning(l){n(this.progress),A(t._extension,"chatParticipantAdditions");let d=new Ls(l),c=Tb.from(d);return a(c),this},info(l){n(this.progress),A(t._extension,"chatParticipantAdditions");let d=new Ha(l),c=ET.from(d);return a(c),this},reference(l,d){return this.reference2(l,d)},reference2(l,d,c){if(n(this.reference),typeof l=="object"&&"variableName"in l&&A(t._extension,"chatParticipantAdditions"),typeof l=="object"&&"variableName"in l&&!l.value){let u=t._request.variables.variables.find(m=>m.name===l.variableName);if(u){let m;if(u.references?.length)m=u.references.map(g=>({kind:"reference",reference:{variableName:l.variableName,value:g.reference}}));else{let g=new ii(l,d,c);m=[vu.from(g)]}return m.forEach(g=>a(g)),this}}else{let u=new ii(l,d,c),m=vu.from(u);a(m)}return this},codeCitation(l,d,c){n(this.codeCitation),A(t._extension,"chatParticipantAdditions");let u=new Ba(l,d,c),m=RT.from(u);a(m)},textEdit(l,d){n(this.textEdit),A(t._extension,"chatParticipantAdditions");let c=new Ns(l,d);c.isDone=d===!0?!0:void 0;let u=kT.from(c);return a(u),this},notebookEdit(l,d){n(this.notebookEdit),A(t._extension,"chatParticipantAdditions");let c=new za(l,d),u=_T.from(c);return a(u),this},workspaceEdit(l){n(this.workspaceEdit),A(t._extension,"chatParticipantAdditions");let d=new xd(l),c=DT.from(d);return a(c),this},async externalEdit(l,d){n(this.externalEdit);let c=Array.isArray(l)?l:[l],u=e++,m=Pe();await s({kind:"externalEdits",start:!0,resources:c,undoStopId:m},u);try{return await d(),m}finally{await s({kind:"externalEdits",start:!1,resources:c,undoStopId:m},u)}},confirmation(l,d,c,u){n(this.confirmation),A(t._extension,"chatParticipantAdditions");let m=new Na(l,d,c,u),g=ST.from(m);return a(g),this},async questionCarousel(l,d=!0){n(this.questionCarousel),A(t._extension,"chatParticipantAdditions");let c=Pe(),u=new Os(l,d),m=CT.from(u);m.resolveId=c;let g=new jt;return t._pendingCarouselResolvers.has(t._request.requestId)||t._pendingCarouselResolvers.set(t._request.requestId,new Map),t._pendingCarouselResolvers.get(t._request.requestId).set(c,g),a(m),El(g.p,t._token)},beginToolInvocation(l,d,c){n(this.beginToolInvocation),A(t._extension,"chatParticipantAdditions");let u={kind:"beginToolInvocation",toolCallId:l,toolName:d,streamData:c?{partialInput:c.partialInput}:void 0,subagentInvocationId:c?.subagentInvocationId};return a(u),this},updateToolInvocation(l,d){n(this.updateToolInvocation),A(t._extension,"chatParticipantAdditions");let c={kind:"updateToolInvocation",toolCallId:l,streamData:{partialInput:d.partialInput}};return a(c),this},push(l){if(n(this.push),(l instanceof Ns||l instanceof za||l instanceof As||l instanceof Ls||l instanceof Na||l instanceof Os||l instanceof Ba||l instanceof $a||l instanceof yd||l instanceof iu||l instanceof Ni||l instanceof Id||l instanceof bd)&&A(t._extension,"chatParticipantAdditions"),l instanceof ii)this.reference2(l.value,l.iconPath,l.options);else if(l instanceof bd){let d=l.task?wT.from(l):Sb.from(l);a(d,l.task)}else if(l instanceof Ni){let d=Cb.from(l);a(d)}else if(l instanceof Ms){let d=Jm.from(l);if(l.resolve&&(A(t._extension,"chatParticipantAdditions"),d.resolveId=Pe()),a(d),l.resolve){let c=new ke;l.resolve(c.token).then(()=>{let u=Jm.from(l);t._proxy.$handleAnchorResolve(t._request.requestId,d.resolveId,u)}).then(()=>c.dispose(),()=>c.dispose()),t._sessionDisposables.add(Q(()=>c.dispose(!0)))}}else{if(l instanceof iu)return this.externalEdit(l.uris,l.callback).then(c=>l.didGetApplied(c)),this;{let d=og.from(l,t._commandsConverter,t._sessionDisposables);a(d)}}return this},usage(l){n(this.usage),A(t._extension,"chatParticipantAdditions");let d={kind:"usage",promptTokens:l.promptTokens,completionTokens:l.completionTokens,outputBuffer:l.outputBuffer,promptTokenDetails:l.promptTokenDetails};return a(d),this}})}return this._apiObject}},ow=class i extends U{constructor(e,n,o,r,s,a,l,d,c){super();this._logService=n;this._commands=o;this._documents=r;this._editorsAndDocuments=s;this._languageModels=a;this._diagnostics=l;this._tools=d;this._chatSessions=c;this._agents=new Map;this._participantDetectionProviders=new Map;this._promptFileProviders=new Map;this._customizationProviders=new Map;this._sessionDisposables=this._register(new oI);this._completionDisposables=this._register(new wn);this._inFlightRequests=new Set;this._pendingCarouselResolvers=new Map;this._onDidChangeChatRequestTools=this._register(new E);this.onDidChangeChatRequestTools=this._onDidChangeChatRequestTools.event;this._onDidDisposeChatSession=this._register(new E);this.onDidDisposeChatSession=this._onDidDisposeChatSession.event;this._onDidChangeCustomAgents=this._register(new E);this.onDidChangeCustomAgents=this._onDidChangeCustomAgents.event;this._onDidChangeInstructions=this._register(new E);this.onDidChangeInstructions=this._onDidChangeInstructions.event;this._onDidChangeSkills=this._register(new E);this.onDidChangeSkills=this._onDidChangeSkills.event;this._onDidChangeSlashCommands=this._register(new E);this.onDidChangeSlashCommands=this._onDidChangeSlashCommands.event;this._onDidChangeHooks=this._register(new E);this.onDidChangeHooks=this._onDidChangeHooks.event;this._onDidChangePlugins=this._register(new E);this.onDidChangePlugins=this._onDidChangePlugins.event;this._customAgents=new Gd(()=>this._proxy.$provideCustomAgents(me.None).then(e=>e.map(n=>this.toCustomAgent(n))));this._instructions=new Gd(()=>this._proxy.$provideInstructions(me.None).then(e=>e.map(n=>this.toInstruction(n))));this._skills=new Gd(()=>this._proxy.$provideSkills(me.None).then(e=>e.map(n=>this.toSkill(n))));this._slashCommands=new Gd(()=>this._proxy.$provideSlashCommands(me.None).then(e=>e.map(n=>this.toSlashCommand(n))));this._hooks=new Gd(()=>this._proxy.$provideHooks(me.None).then(e=>e.map(n=>this.toHook(n))));this._plugins=new Gd(()=>this._proxy.$providePlugins(me.None).then(e=>e.map(n=>this.toPlugin(n))));this._onDidChangeActiveChatPanelSessionResource=this._register(new E);this.onDidChangeActiveChatPanelSessionResource=this._onDidChangeActiveChatPanelSessionResource.event;this._proxy=e.getProxy(F.MainThreadChatAgents2),o.registerArgumentProcessor({processArgument:u=>s5(u)?null:u})}static{this._idPool=0}static{this._participantDetectionProviderIdPool=0}static{this._contributionsProviderIdPool=0}static{this._customizationProviderIdPool=0}get activeChatPanelSessionResource(){return this._activeChatPanelSessionResource}toCustomAgent(e){return Object.freeze({uri:b.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?b.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,argumentHint:e.argumentHint,tools:e.tools,model:e.model,userInvocable:e.userInvocable,disableModelInvocation:e.disableModelInvocation,enabled:e.enabled})}toInstruction(e){return Object.freeze({uri:b.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?b.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,pattern:e.pattern})}toSkill(e){return Object.freeze({uri:b.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?b.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,userInvocable:e.userInvocable,disableModelInvocation:e.disableModelInvocation})}toSlashCommand(e){return Object.freeze({uri:b.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?b.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,argumentHint:e.argumentHint,userInvocable:e.userInvocable})}toHook(e){return Object.freeze({uri:b.revive(e.uri),sessionTypes:e.sessionTypes,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?b.revive(e.pluginUri):void 0})}toPlugin(e){return Object.freeze({uri:b.revive(e.uri)})}provideCustomAgents(e){return this._customAgents.get(e)}provideInstructions(e){return this._instructions.get(e)}provideSkills(e){return this._skills.get(e)}provideSlashCommands(e){return this._slashCommands.get(e)}provideHooks(e){return this._hooks.get(e)}providePlugins(e){return this._plugins.get(e)}$onDidChangeCustomAgents(){this._customAgents.clear(),this._onDidChangeCustomAgents.fire()}$onDidChangeInstructions(){this._instructions.clear(),this._onDidChangeInstructions.fire()}$onDidChangeSkills(){this._skills.clear(),this._onDidChangeSkills.fire()}$onDidChangeSlashCommands(){this._slashCommands.clear(),this._onDidChangeSlashCommands.fire()}$onDidChangeHooks(){this._hooks.clear(),this._onDidChangeHooks.fire()}$onDidChangePlugins(){this._plugins.clear(),this._onDidChangePlugins.fire()}async transferActiveChat(e){await this._proxy.$transferActiveChatSession(e)}createChatAgent(e,n,o){let r=i._idPool++,s=new rw(e,n,this._proxy,r,o);return this._agents.set(r,s),this._proxy.$registerAgent(r,e.identifier,n,{},void 0),s.apiAgent}createDynamicChatAgent(e,n,o,r){let s=i._idPool++,a=new rw(e,n,this._proxy,s,r);return this._agents.set(s,a),this._proxy.$registerAgent(s,e.identifier,n,{isSticky:!0},o),a.apiAgent}registerChatParticipantDetectionProvider(e,n){let o=i._participantDetectionProviderIdPool++;return this._participantDetectionProviders.set(o,new GL(e,n)),this._proxy.$registerChatParticipantDetectionProvider(o),Q(()=>{this._participantDetectionProviders.delete(o),this._proxy.$unregisterChatParticipantDetectionProvider(o)})}registerPromptFileProvider(e,n,o){let r=i._contributionsProviderIdPool++;this._promptFileProviders.set(r,{extension:e,provider:o}),this._proxy.$registerPromptFileProvider(r,n,e.identifier);let s=new z,a;switch(n){case"agent":a=o.onDidChangeCustomAgents;break;case"instructions":a=o.onDidChangeInstructions;break;case"prompt":a=o.onDidChangePromptFiles;break;case"skill":a=o.onDidChangeSkills;break;case"hook":a=o.onDidChangeHooks;break}return a&&s.add(a(()=>{this._proxy.$onDidChangePromptFiles(r)})),s.add(Q(()=>{this._promptFileProviders.delete(r),this._proxy.$unregisterPromptFileProvider(r)})),s}async $providePromptFiles(e,n,o,r){let s=this._promptFileProviders.get(e);if(!s)return;let a=s.provider,l;switch(n){case"agent":l=await a.provideCustomAgents(o,r)??void 0;break;case"instructions":l=await a.provideInstructions(o,r)??void 0;break;case"prompt":l=await a.providePromptFiles(o,r)??void 0;break;case"skill":l=await a.provideSkills(o,r)??void 0;break;case"hook":l=await a.provideHooks(o,r)??void 0;break}return l}registerChatSessionCustomizationProvider(e,n,o,r){let s=i._customizationProviderIdPool++;this._customizationProviders.set(s,{extension:e,provider:r});let a={label:o.label,iconId:o.iconId,supportedTypes:o.supportedTypes?.map(d=>AT.from(d))};this._proxy.$registerChatSessionCustomizationProvider(s,n,a,e.identifier);let l=new z;return r.onDidChange&&l.add(r.onDidChange(()=>{this._proxy.$onDidChangeCustomizations(s)})),l.add(Q(()=>{this._customizationProviders.delete(s),this._proxy.$unregisterChatSessionCustomizationProvider(s)})),l}async $provideChatSessionCustomizations(e,n,o){let r=this._customizationProviders.get(e);if(r&&n)try{let s=await r.provider.provideChatSessionCustomizations(b.revive(n),o);return s?s.map(a=>({uri:a.uri,type:AT.from(a.type),name:a.name,description:a.description,source:a.source,groupKey:a.groupKey,badge:a.badge,badgeTooltip:a.badgeTooltip,extensionId:a.extensionId,pluginUri:a.pluginUri,userInvocable:a.userInvocable})):void 0}catch{return}}async $detectChatParticipant(e,n,o,r,s){let a=this._participantDetectionProviders.get(e);if(!a)return;let{request:l,location:d,history:c}=await this._createRequest(n,o,a.extension),u=await this.getModelForRequest(l,a.extension),m=await this.getToolsForRequest(a.extension,l.userSelectedTools,u.id,s),g=rg.to(l,d,u,l.modelConfiguration,this.getDiagnosticsWhenEnabled(a.extension),m,a.extension,this._logService);return a.provider.provideParticipantDetection(g,{history:c,yieldRequested:!1},{participants:r.participants,location:ig.to(r.location)},s)}async _createRequest(e,n,o){let r=St(e),s=await this.prepareHistoryTurns(o,r.agentId,n),a;if(r.locationData?.type==="editor"){let l=this._documents.getDocument(r.locationData.document),d=this._editorsAndDocuments.getEditor(r.locationData.id);a=new Bm(d.value,l,Do.to(r.locationData.selection),G.to(r.locationData.wholeRange))}else if(r.locationData?.type==="notebook"){let l=this._documents.getDocument(r.locationData.sessionInputUri);a=new $m(l)}else r.locationData?.type,"terminal";return{request:r,location:a,history:s}}async getModelForRequest(e,n){let o;if(e.userSelectedModelId&&(o=await this._languageModels.getLanguageModelByIdentifier(n,e.userSelectedModelId)),!o&&(o=await this._languageModels.getDefaultLanguageModel(n),!o))throw new Error("Language model unavailable");return o}async $setRequestTools(e,n){let o=[...this._inFlightRequests].find(s=>s.requestId===e);if(!o)return;o.extRequest.tools.clear();let r=await this.getToolsForRequest(o.extension,n,o.extRequest.model.id,me.None);for(let[s,a]of r)o.extRequest.tools.set(s,a);this._onDidChangeChatRequestTools.fire(o.extRequest)}$setYieldRequested(e,n){let o=[...this._inFlightRequests].find(r=>r.requestId===e);o&&(o.yieldRequested=n)}async $invokeAgent(e,n,o,r){let s=this._agents.get(e);if(!s)throw new Error(`[CHAT](${e}) CANNOT invoke agent because the agent is not registered`);let a,l;try{let{request:d,location:c,history:u}=await this._createRequest(n,o,s.extension),m=this._sessionDisposables.get(d.sessionResource);m||(m=new z,this._sessionDisposables.set(d.sessionResource,m)),a=new Ef(s.extension,d,this._proxy,this._commands.converter,m,this._pendingCarouselResolvers,r);let g=await this.getModelForRequest(d,s.extension),h=await this.getToolsForRequest(s.extension,d.userSelectedTools,g.id,r),f=rg.to(d,c,g,d.modelConfiguration,this.getDiagnosticsWhenEnabled(s.extension),h,s.extension,this._logService);l={requestId:n.requestId,extRequest:f,extension:s.extension,hooks:d.hooks,yieldRequested:!1},this._inFlightRequests.add(l);let I;if(o.chatSessionContext){let w=b.revive(o.chatSessionContext.chatSessionResource),M=await this._chatSessions.getInputStateForSession(w,o.chatSessionContext.initialSessionOptions,r);I={chatSessionItem:{resource:w,label:o.chatSessionContext.isUntitled?"Untitled Session":"Session"},isUntitled:o.chatSessionContext.isUntitled,initialSessionOptions:o.chatSessionContext.initialSessionOptions,inputState:M}}let x={history:u,chatSessionContext:I,get yieldRequested(){return l?.yieldRequested??!1}},T=s.invoke(f,x,a.apiObject,r);return await BG(1e3,Promise.resolve(T).then(w=>{if(w?.metadata)try{JSON.stringify(w.metadata)}catch(O){let N=`result.metadata MUST be JSON.stringify-able. Got error: ${O.message}`;return this._logService.error(`[${s.extension.identifier.value}] [@${s.id}] ${N}`,s.extension),{errorDetails:{message:N},timings:a?.timings,nextQuestion:w.nextQuestion}}let M;return w?.errorDetails&&(M={...w.errorDetails,responseIsIncomplete:!0}),(M?.responseIsRedacted||M?.isQuotaExceeded||M?.isRateLimited||M?.isExpectedError||M?.confirmationButtons||M?.code)&&A(s.extension,"chatParticipantPrivate"),{errorDetails:M,timings:a?.timings,metadata:w?.metadata,nextQuestion:w?.nextQuestion,details:w?.details}}),r)}catch(d){this._logService.error(d,s.extension),d instanceof wr&&d.cause&&(d=d.cause);let c=d instanceof Error&&d.name==="ChatQuotaExceeded",u=d instanceof Error&&d.name==="ChatRateLimited",m=d instanceof Error&&d.name==="ChatExpectedError",{callstack:g}=jL(d),h=d instanceof Error?d.name:void 0;return{errorDetails:{message:To(d),responseIsIncomplete:!0,isQuotaExceeded:c,isRateLimited:u,isExpectedError:m},errorCallstack:g,errorName:h}}finally{l&&this._inFlightRequests.delete(l);let d=this._pendingCarouselResolvers.get(n.requestId);if(d){for(let c of d.values())c.complete(void 0);this._pendingCarouselResolvers.delete(n.requestId)}a?.close()}}getDiagnosticsWhenEnabled(e){return Oe(e,"chatReferenceDiagnostic")?this._diagnostics.getDiagnostics():[]}async getToolsForRequest(e,n,o,r){if(!n)return new Map;let s=new Map;for(let a of this._tools.getTools(e))typeof n[a.name]=="boolean"&&s.set(a,n[a.name]);return s}async prepareHistoryTurns(e,n,o){let r=[];for(let s of o.history){let a=sg.to(s.result),l=n===s.request.agentId||d5(s.request.agentId)&&d5(n)?a:{...a,metadata:void 0},d=[],c=[];for(let f of s.request.variables.variables)if(f.kind==="tool")c.push(bu.to(f));else if(f.kind==="toolset")c.push(...f.value.map(bu.to));else{let I=MT.to(f,this.getDiagnosticsWhenEnabled(e),this._logService);I&&d.push(I)}let u=Oe(e,"chatParticipantPrivate")?s.request.editedFileEvents:void 0,m=Oe(e,"chatParticipantPrivate")&&s.request.modeInstructions?Su.to(s.request.modeInstructions):void 0,g=new Us(s.request.message,s.request.command,d,s.request.agentId,c,u,s.request.requestId,void 0,m);r.push(g);let h=nt(s.response.map(f=>og.toContent(f,this._commands.converter)));r.push(new Om(h,l,s.request.agentId,s.request.command))}return r}$releaseSession(e){let n=b.revive(e);this._sessionDisposables.deleteAndDispose(n);let o=Lr.parseLocalSessionId(n);o&&this._onDidDisposeChatSession.fire(o)}$acceptActiveChatSession(e){let n=e?b.revive(e):void 0;this._activeChatPanelSessionResource?.toString()!==n?.toString()&&(this._activeChatPanelSessionResource=n,this._onDidChangeActiveChatPanelSessionResource.fire(n))}async $provideFollowups(e,n,o,r,s){let a=this._agents.get(n);if(!a)return Promise.resolve([]);let l=St(e),d=await this.prepareHistoryTurns(a.extension,a.id,r),c=sg.to(o);return(await a.provideFollowups(c,{history:d,yieldRequested:!1},s)).filter(u=>{let m=!u.participant||At.some(this._agents.values(),g=>g.id===u.participant&&Ee.equals(g.extension.identifier,a.extension.identifier));return m||this._logService.warn(`[@${a.id}] ChatFollowup refers to an unknown participant: ${u.participant}`),m}).map(u=>bT.from(u,l))}$acceptFeedback(e,n,o){let r=this._agents.get(e);if(!r)return;let s=sg.to(n),a;switch(o.direction){case 0:a=0;break;case 1:a=1;break}let l={result:s,kind:a};r.acceptFeedback(Object.freeze(l))}$handleQuestionCarouselAnswer(e,n,o){let r=this._pendingCarouselResolvers.get(e);if(!r)return;let s=r.get(n);s&&(s.complete(o),r.delete(n)),r.size===0&&this._pendingCarouselResolvers.delete(e)}$acceptAction(e,n,o){let r=this._agents.get(e);if(!r||o.action.kind==="vote")return;let s=NM.to(n,o,this._commands.converter);s&&r.acceptAction(Object.freeze(s))}async $invokeCompletionProvider(e,n,o){let r=this._agents.get(e);if(!r)return[];let s=this._completionDisposables.get(e);return s?s.clear():(s=new z,this._completionDisposables.set(e,s)),(await r.invokeCompletionProvider(n,o)).map(l=>OM.from(l,this._commands.converter,s))}async $provideChatTitle(e,n,o){let r=this._agents.get(e);if(!r)return;let s=await this.prepareHistoryTurns(r.extension,r.id,{history:n}),a=n[0]?.request.sessionResource?b.revive(n[0].request.sessionResource):void 0;return await r.provideTitle({history:s,sessionResource:a,yieldRequested:!1},o)}async $provideChatSummary(e,n,o){let r=this._agents.get(e);if(!r)return;let s=await this.prepareHistoryTurns(r.extension,r.id,{history:n}),a=n[0]?.request.sessionResource?b.revive(n[0].request.sessionResource):void 0;return await r.provideSummary({history:s,sessionResource:a,yieldRequested:!1},o)}},GL=class{constructor(t,e){this.extension=t;this.provider=e}},rw=class{constructor(t,e,n,o,r){this.extension=t;this.id=e;this._proxy=n;this._handle=o;this._requestHandler=r;this._onDidReceiveFeedback=new E;this._onDidPerformAction=new E;this._pauseStateEmitter=new E}acceptFeedback(t){this._onDidReceiveFeedback.fire(t)}acceptAction(t){this._onDidPerformAction.fire(t)}setChatRequestPauseState(t){this._pauseStateEmitter.fire(t)}async invokeCompletionProvider(t,e){return this._agentVariableProvider?await this._agentVariableProvider.provider.provideCompletionItems(t,e)??[]:[]}async provideFollowups(t,e,n){if(!this._followupProvider)return[];let o=await this._followupProvider.provideFollowups(t,e,n);return o?o.filter(r=>!(r&&"commandId"in r)).filter(r=>!(r&&"message"in r)):[]}async provideTitle(t,e){if(this._titleProvider)return await this._titleProvider.provideChatTitle(t,e)??void 0}async provideSummary(t,e){if(this._summarizer)return await this._summarizer.provideChatSummary(t,e)??void 0}get apiAgent(){let t=!1,e=!1,n=()=>{t||e||(e=!0,queueMicrotask(()=>{this._proxy.$updateAgent(this._handle,{icon:this._iconPath?this._iconPath instanceof b?this._iconPath:"light"in this._iconPath?this._iconPath.light:void 0:void 0,iconDark:this._iconPath&&"dark"in this._iconPath?this._iconPath.dark:void 0,themeIcon:this._iconPath instanceof mn?this._iconPath:void 0,hasFollowups:this._followupProvider!==void 0,helpTextPrefix:!this._helpTextPrefix||typeof this._helpTextPrefix=="string"?this._helpTextPrefix:ge.from(this._helpTextPrefix),helpTextPostfix:!this._helpTextPostfix||typeof this._helpTextPostfix=="string"?this._helpTextPostfix:ge.from(this._helpTextPostfix),supportIssueReporting:this._supportIssueReporting,additionalWelcomeMessage:!this._additionalWelcomeMessage||typeof this._additionalWelcomeMessage=="string"?this._additionalWelcomeMessage:ge.from(this._additionalWelcomeMessage)}),e=!1}))},o=this;return{get id(){return o.id},get iconPath(){return o._iconPath},set iconPath(r){o._iconPath=r,n()},get requestHandler(){return o._requestHandler},set requestHandler(r){dp(typeof r=="function","Invalid request handler"),o._requestHandler=r},get followupProvider(){return o._followupProvider},set followupProvider(r){o._followupProvider=r,n()},get helpTextPrefix(){return A(o.extension,"defaultChatParticipant"),o._helpTextPrefix},set helpTextPrefix(r){A(o.extension,"defaultChatParticipant"),o._helpTextPrefix=r,n()},get helpTextPostfix(){return A(o.extension,"defaultChatParticipant"),o._helpTextPostfix},set helpTextPostfix(r){A(o.extension,"defaultChatParticipant"),o._helpTextPostfix=r,n()},get supportIssueReporting(){return A(o.extension,"chatParticipantPrivate"),o._supportIssueReporting},set supportIssueReporting(r){A(o.extension,"chatParticipantPrivate"),o._supportIssueReporting=r,n()},get onDidReceiveFeedback(){return o._onDidReceiveFeedback.event},set participantVariableProvider(r){if(A(o.extension,"chatParticipantAdditions"),o._agentVariableProvider=r,r){if(!r.triggerCharacters.length)throw new Error("triggerCharacters are required");o._proxy.$registerAgentCompletionsProvider(o._handle,o.id,r.triggerCharacters)}else o._proxy.$unregisterAgentCompletionsProvider(o._handle,o.id)},get participantVariableProvider(){return A(o.extension,"chatParticipantAdditions"),o._agentVariableProvider},set additionalWelcomeMessage(r){A(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage=r,n()},get additionalWelcomeMessage(){return A(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage},set titleProvider(r){A(o.extension,"defaultChatParticipant"),o._titleProvider=r,n()},get titleProvider(){return A(o.extension,"defaultChatParticipant"),o._titleProvider},set summarizer(r){A(o.extension,"defaultChatParticipant"),o._summarizer=r},get summarizer(){return A(o.extension,"defaultChatParticipant"),o._summarizer},get onDidChangePauseState(){return A(o.extension,"chatParticipantAdditions"),o._pauseStateEmitter.event},onDidPerformAction:Oe(this.extension,"chatParticipantAdditions")?this._onDidPerformAction.event:void 0,dispose(){t=!0,o._followupProvider=void 0,o._onDidReceiveFeedback.dispose(),o._onDidPerformAction.dispose(),o._pauseStateEmitter.dispose(),o._proxy.$unregisterAgent(o._handle)}}}invoke(t,e,n,o){return this._requestHandler(t,e,n,o)}};function BG(i,t,e){return new Promise((n,o)=>{let r=e.onCancellationRequested(async()=>{r.dispose(),await Vt(i),n(void 0)});t.then(n,o).finally(()=>r.dispose())})}var Gd=class{constructor(t){this.computeFn=t}get(t){if(!this.cachedPromise){let e=this.computeFn().catch(n=>{throw this.cachedPromise===e&&(this.cachedPromise=void 0),n});this.cachedPromise=e}return Qr(this.cachedPromise,t)}clear(){this.cachedPromise=void 0}};function d5(i){return i.startsWith("github.copilot")}var iw=class{constructor(t,e){this.webviews=e;this._renderers=new Map;this._proxy=t.getProxy(F.MainThreadChatOutputRenderer)}registerChatOutputRenderer(t,e,n){if(this._renderers.has(e))throw new Error(`Chat output renderer already registered for: ${e}`);return this._renderers.set(e,{extension:t,renderer:n}),this._proxy.$registerChatOutputRenderer(e,t.identifier,t.extensionLocation),new xe(()=>{this._renderers.delete(e),this._proxy.$unregisterChatOutputRenderer(e)})}async $renderChatOutput(t,e,n,o,r,s){let a=this._renderers.get(t);if(!a)throw new Error(`No chat output renderer registered for: ${t}`);let l=this.webviews.createNewWebview(o,{},a.extension),d=Object.freeze({webview:l,onDidDispose:l._onDidDispose});return a.renderer.renderChatOutput(Object.freeze({mime:e,value:n.buffer}),d,Object.freeze(r),s)}};var tl=class{constructor(t,e){this.#n=new E;this.onDidChange=this.#n.event;this.#o=new E;this.onDidDispose=this.#o.event;this.#e=t,this.#t=e}#e;#t;#n;#o;#s;get sessionResource(){return this.#s}set sessionResource(t){this.#s=t}#r;get untitledSessionResource(){return this.#r}set untitledSessionResource(t){this.#r=t}get groups(){return this.#e}set groups(t){this.#e=t,this.#t?.()}_fireDidChange(){this.#n.fire()}_setGroups(t){this.#e=t}_dispose(){this.#o.fire(),this.#o.dispose(),this.#n.dispose()}},JL=class{#e;#t;#n;#o;#s;#r;#l;#a;#d;#c;#i;constructor(t,e,n){this.resource=t,this.#e=e,this.#i=n}get label(){return this.#e}set label(t){this.#e!==t&&(this.#e=t,this.#i())}get iconPath(){return this.#t}set iconPath(t){this.#t!==t&&(this.#t=t,this.#i())}get description(){return this.#n}set description(t){this.#n!==t&&(this.#n=t,this.#i())}get badge(){return this.#o}set badge(t){this.#o!==t&&(this.#o=t,this.#i())}get status(){return this.#s}set status(t){this.#s!==t&&(this.#s=t,this.#i())}get archived(){return this.#r}set archived(t){this.#r!==t&&(this.#r=t,this.#i())}get tooltip(){return this.#l}set tooltip(t){this.#l!==t&&(this.#l=t,this.#i())}get timing(){return this.#a}set timing(t){this.#a!==t&&(this.#a=t,this.#i())}get changes(){return this.#d}set changes(t){this.#d!==t&&(this.#d=t,this.#i())}get metadata(){return this.#c}set metadata(t){if(t!==void 0)try{JSON.stringify(t)}catch{throw new Error("metadata must be JSON-serializable")}Bt(this.#c,t)||(this.#c=t,this.#i())}};function zG(i,t){let e={addedOrUpdated:new je,removed:new Dr};for(let[n,o]of t)i.get(n)!==o&&e.addedOrUpdated.set(n,o);for(let n of i.keys())t.has(n)||e.removed.add(n);return e}function qG(i){return{addedOrUpdated:i.addedOrUpdated?Array.from(i.addedOrUpdated.values(),Ya.from):[],removed:i.removed?Array.from(i.removed.keys()):[]}}var sw=class{#e=new je;#t;#n;constructor(t,e){this.#t=e,this.#n=t}get size(){return this.#e.size}replace(t){if(!t.length&&!this.#e.size)return;let e=new je(t.map(o=>[o.resource,o])),n=zG(this.#e,e);!n.addedOrUpdated?.size&&!n.removed?.size||(this.#e=e,this.#t.$updateChatSessionItems(this.#n,qG(n)))}forEach(t,e){for(let[n,o]of this.#e)t.call(e,o,this)}add(t){let e=this.#e.get(t.resource);e&&e===t||(this.#e.set(t.resource,t),this.#t.$addOrUpdateChatSessionItem(this.#n,Ya.from(t)))}delete(t){this.#e.delete(t)&&this.#t.$updateChatSessionItems(this.#n,{addedOrUpdated:[],removed:[t]})}get(t){return this.#e.get(t)}[Symbol.iterator](){return this.#e.entries()}},YL=class{constructor(t,e,n,o,r,s){this.session=t;this.extension=e;this.proxy=o;this.commandsConverter=r;this.sessionDisposables=s;this._pendingCarouselResolvers=new Map;this._stream=new Ef(e,n,o,r,s,this._pendingCarouselResolvers,me.None)}get activeResponseStream(){return this._stream}getActiveRequestStream(t){return new Ef(this.extension,t,this.proxy,this.commandsConverter,this.sessionDisposables,this._pendingCarouselResolvers,me.None)}},wf=class extends U{constructor(e,n,o,r){super();this.commands=e;this._languageModels=n;this._extHostRpc=o;this._logService=r;this._itemControllerHandlePool=0;this._chatSessionItemControllers=new Map;this._contentProviderHandlePool=0;this._chatSessionContentProviders=new Map;this._extHostChatSessions=new je;this._proxyCommands=new Map;this._proxy=this._extHostRpc.getProxy(F.MainThreadChatSessions),e.registerArgumentProcessor({processArgument:s=>{if(s&&s.$mid===25){let a=s.session.resource;for(let{controller:l}of this._chatSessionItemControllers.values()){let d=l.items.get(a);if(d)return d}return this._logService.warn(`No chat session found with uri: ${a}`),s}return s}})}registerChatSessionItemProvider(e,n,o){let r=this._itemControllerHandlePool++,s=new z,a=s.add(new E),l=new sw(r,this._proxy),d={id:n,items:l,createChatSessionItem:(u,m)=>{throw new Error("Not implemented for providers")},createChatSessionInputState:u=>new tl([]),onDidChangeChatSessionItemState:a.event,newChatSessionItemHandler:void 0,resolveChatSessionItem:o.resolveChatSessionItem?async(u,m)=>{let g=await o.resolveChatSessionItem(u,m);g&&l.add(g)}:void 0,dispose:()=>{s.dispose()},refreshHandler:async u=>{let m=await o.provideChatSessionItems(u)??[];l.replace(m)}};return this._chatSessionItemControllers.set(r,{chatSessionType:n,controller:d,extension:e,disposable:s,onDidChangeChatSessionItemStateEmitter:a,inputStates:new Set}),this._proxy.$registerChatSessionItemController(r,n,!!o.resolveChatSessionItem),o.onDidChangeChatSessionItems&&s.add(o.onDidChangeChatSessionItems(()=>{this._logService.trace(`ExtHostChatSessions. Provider items changed for ${n}`),d.refreshHandler(me.None)})),o.onDidCommitChatSessionItem&&s.add(o.onDidCommitChatSessionItem(u=>{let{original:m,modified:g}=u;this._proxy.$onDidCommitChatSessionItem(r,m.resource,g.resource)})),Object.assign({dispose:()=>{this._chatSessionItemControllers.delete(r),s.dispose(),this._proxy.$unregisterChatSessionItemController(r)}},{onDidChangeChatSessionItemState:a.event})}createChatSessionItemController(e,n,o){let r=this._itemControllerHandlePool++,s=new z,a=!1,l,d,c,u,m=s.add(new E),g=new Set,h=new sw(r,this._proxy),f=this._proxy,I=Object.freeze({id:n,refreshHandler:async x=>{if(a)throw new Error("ChatSessionItemController has been disposed");this._logService.trace(`ExtHostChatSessions. Controller(${n}).refresh()`),await o(x)},items:h,onDidChangeChatSessionItemState:m.event,createChatSessionItem:(x,T)=>{if(a)throw new Error("ChatSessionItemController has been disposed");let w=new JL(x,T,()=>{h.get(x)===w&&this._proxy.$addOrUpdateChatSessionItem(r,Ya.from(w))});return w},get newChatSessionItemHandler(){return l},set newChatSessionItemHandler(x){l=x},get forkHandler(){return d},set forkHandler(x){d=x},get resolveChatSessionItem(){return c},set resolveChatSessionItem(x){let T=!!c;c=x;let w=!!x;T!==w&&!a&&f.$updateChatSessionItemControllerCapabilities(r,w)},get getChatSessionInputState(){return u},set getChatSessionInputState(x){u=x},createChatSessionInputState:x=>{if(a)throw new Error("ChatSessionItemController has been disposed");let T=new tl(x,()=>{let w=this._chatSessionItemControllers.get(r);w&&(w.optionGroups=T.groups);let O=this._wrapOptionGroupCommands(r,T.groups).map($=>({id:$.id,name:$.name,description:$.description,items:$.items,selected:$.selected,when:$.when,icon:$.icon,commands:$.commands,kind:$.kind})),N=T.sessionResource??T.untitledSessionResource;N&&this._proxy.$updateChatSessionInputState(r,N,O)});return g.add(T),T},dispose:()=>{a=!0;for(let x of g)x._dispose();g.clear(),s.dispose()}});return this._chatSessionItemControllers.set(r,{controller:I,extension:e,disposable:s,chatSessionType:n,onDidChangeChatSessionItemStateEmitter:m,inputStates:g}),this._proxy.$registerChatSessionItemController(r,n,!!c),s.add(Q(()=>{this._chatSessionItemControllers.delete(r),this._proxy.$unregisterChatSessionItemController(r)})),I}registerChatSessionContentProvider(e,n,o,r,s){let a=this._contentProviderHandlePool++,l=new z;return this._chatSessionContentProviders.set(a,{chatSessionScheme:n,provider:r,extension:e,capabilities:s,disposable:l}),this._proxy.$registerChatSessionContentProvider(a,n),r.onDidChangeChatSessionOptions&&l.add(r.onDidChangeChatSessionOptions(d=>{let c=Object.create(null);for(let u of d.updates)c[u.optionId]=u.value;this._proxy.$onDidChangeChatSessionOptions(a,d.resource,c)})),r.onDidChangeChatSessionProviderOptions&&l.add(r.onDidChangeChatSessionProviderOptions(()=>{this._proxy.$onDidChangeChatSessionProviderOptions(a)})),new xe(()=>{this._chatSessionContentProviders.delete(a),l.dispose(),this._proxy.$unregisterChatSessionContentProvider(a)})}async $provideChatSessionContent(e,n,o,r){let s=this._chatSessionContentProviders.get(e);if(!s)throw new Error(`No provider for handle ${e}`);let a=b.revive(n),l=this.getChatSessionItemController(Mc(a)),d;if(l?.controller.getChatSessionInputState){let I=await l.controller.getChatSessionInputState(Lc(a)?void 0:a,{previousInputState:this._createInputStateFromOptions(l.optionGroups??[],o.initialSessionOptions)},r);I&&(d=I)}d??=this._createInputStateFromOptions(l?.optionGroups??[],o.initialSessionOptions),d instanceof tl&&(l&&this._disposeInputStatesForResource(l.inputStates,a),Lc(a)?d.untitledSessionResource=a:d.sessionResource=a);let c=await s.provider.provideChatSessionContent(a,r,{inputState:d});if(r.isCancellationRequested)throw new Ue;let u=new z,m=a.toString(),g=new YL(c,s.extension,{sessionResource:a,requestId:"ongoing",agentId:m,message:"",variables:{variables:[]},location:"panel"},{$handleProgressChunk:(I,x)=>this._proxy.$handleProgressChunk(e,a,I,x),$handleAnchorResolve:(I,x,T)=>{this._proxy.$handleAnchorResolve(e,a,I,x,T)}},this.commands.converter,u),h=u.add(new ke);this._extHostChatSessions.set(a,{sessionObj:g,disposeCts:h}),c.activeResponseCallback&&Promise.resolve(c.activeResponseCallback(g.activeResponseStream.apiObject,h.token)).finally(()=>{this._proxy.$handleProgressComplete(e,a,"ongoing")});let{capabilities:f}=s;return{resource:b.revive(a),title:c.title,hasActiveResponseCallback:!!c.activeResponseCallback,hasRequestHandler:!!c.requestHandler,hasForkHandler:!!l?.controller.forkHandler||!!c.forkHandler,supportsInterruption:!!f?.supportsInterruptions,options:c.options,history:c.history.map(I=>I instanceof Us?this.convertRequestTurn(I):this.convertResponseTurn(I,u))}}async $provideHandleOptionsChange(e,n,o,r){let s=b.revive(n),a=this._chatSessionContentProviders.get(e);if(!a){this._logService.warn(`No provider for handle ${e}`);return}if(a.provider.provideHandleOptionsChange){try{let c=Object.entries(o).map(([u,m])=>({optionId:u,value:m===void 0?void 0:typeof m=="string"?m:m.id}));a.provider.provideHandleOptionsChange(s,c,r)}catch(c){this._logService.error(`Error calling provideHandleOptionsChange for handle ${e}, sessionResource ${s}:`,c)}return}let l=Mc(s),d=this.getChatSessionItemController(l);if(!d||!d.controller.getChatSessionInputState){this._logService.warn(`No valid controller found for session type ${l}`);return}for(let c of d?.inputStates??[]){let u=c.groups.map(m=>{let g=o[m.id];if(!g)return m;let h=typeof g=="string"?g:g.id,f=m.items.find(I=>I.id===h);return f?{...m,selected:f}:m});c._setGroups(u),c._fireDidChange()}}async $provideChatSessionProviderOptions(e,n){let o=this._chatSessionContentProviders.get(e);if(!o){this._logService.warn(`No provider for handle ${e} when requesting chat session options`);return}let r=o.provider;if(r.provideChatSessionProviderOptions)try{let s=await r.provideChatSessionProviderOptions(n);if(!s)return;let{optionGroups:a,newSessionOptions:l}=s;if(a){let d=this.getChatSessionItemController(o.chatSessionScheme);d&&(d.optionGroups=a)}return{optionGroups:a,newSessionOptions:l}}catch(s){this._logService.error(`Error calling provideChatSessionProviderOptions for handle ${e}:`,s);return}}async $interruptChatSessionActiveResponse(e,n,o){this._extHostChatSessions.get(b.revive(n))?.disposeCts.cancel()}async $disposeChatSessionContent(e,n){let o=b.revive(n),r=this._extHostChatSessions.get(o);if(!r){this._logService.warn(`No chat session found for resource: ${n}`);return}let s=this.getChatSessionItemController(o.scheme);s&&this._disposeInputStatesForResource(s.inputStates,o),r.disposeCts.cancel(),r.sessionObj.sessionDisposables.dispose(),this._extHostChatSessions.delete(o)}async $invokeChatSessionRequestHandler(e,n,o,r,s){let a=this._extHostChatSessions.get(b.revive(n));if(!a||!a.sessionObj.session.requestHandler)return{};let l=rg.to(o,void 0,await this.getModelForRequest(o,a.sessionObj.extension),o.modelConfiguration,[],new Map,a.sessionObj.extension,this._logService),d=a.sessionObj.getActiveRequestStream(o);return await a.sessionObj.session.requestHandler(l,{history:r,yieldRequested:!1},d.apiObject,s),{}}async $forkChatSession(e,n,o,r){let s=b.revive(n),a=this._extHostChatSessions.get(s);if(!a)throw new Error(`No chat session found for resource ${s.toString()}`);let l=this.convertRequestDtoToRequestTurn(o),d=this.getChatSessionItemController(Mc(s));if(d?.controller.forkHandler){let u=await d.controller.forkHandler(s,l,r);return Ya.from(u)}if(!a.sessionObj.session.forkHandler)throw new Error(`No fork handler for session ${s.toString()}`);let c=await a.sessionObj.session.forkHandler(s,l,r);return Ya.from(c)}convertRequestDtoToRequestTurn(e){if(e)return new Us(e.prompt,e.command,[],e.participant,[],void 0,e.id,e.modelId,Su.to(e.modeInstructions))}getChatSessionItemController(e){for(let n of this._chatSessionItemControllers.values())if(n.chatSessionType===e)return n}_disposeInputStatesForResource(e,n){for(let o of e){let r=o.sessionResource??o.untitledSessionResource;r&&Vn(n,r)&&(o._dispose(),e.delete(o))}}_createInputStateFromOptions(e,n){if(!n?.length)return new tl(e);let o=e.map(r=>{let s=n.find(l=>l.optionId===r.id);if(!s)return r;let a=r.items.find(l=>l.id===s.value);return a?{...r,selected:a}:r});return new tl(o)}async getInputStateForSession(e,n,o){let r=e?Mc(e):void 0,s=r?this.getChatSessionItemController(r):void 0,a=e&&!Lc(e)?e:void 0;if(s?.controller.getChatSessionInputState){let d=await s.controller.getChatSessionInputState(a,{previousInputState:this._createInputStateFromOptions(s.optionGroups??[],n)},o);if(d)return d instanceof tl&&(e&&s&&this._disposeInputStatesForResource(s.inputStates,e),e&&Lc(e)?d.untitledSessionResource=e:e&&(d.sessionResource=a)),d}let l=this._createInputStateFromOptions(s?.optionGroups??[],n);return l.sessionResource=a,l}_wrapOptionGroupCommands(e,n){return this._chatSessionItemControllers.get(e)?.controller.getChatSessionInputState?n.map(r=>r.commands?.length?{...r,commands:r.commands.map(s=>{let a=`_chatSession.proxyCommand.${Pe()}`;return this._proxyCommands.set(a,{originalCommandId:s.command,controllerHandle:e}),this.commands.registerCommand(!0,a,async(...l)=>{let d=l[0]instanceof b?l[0]:void 0,c=await this.getInputStateForSession(d,void 0,me.None);return this.commands.executeCommand(s.command,{inputState:c,sessionResource:d},...s.arguments??[])}),{...s,command:a}})}:r):n}async getModelForRequest(e,n){let o;if(e.userSelectedModelId&&(o=await this._languageModels.getLanguageModelByIdentifier(n,e.userSelectedModelId)),!o&&(o=await this._languageModels.getDefaultLanguageModel(n),!o))throw new Error("Language model unavailable");return o}convertRequestTurn(e){let n=e.references.map(o=>this.convertReferenceToVariable(o));return{type:"request",id:e.id,prompt:e.prompt,participant:e.participant,command:e.command,variableData:n.length>0?{variables:n}:void 0,modelId:e.modelId,modeInstructions:Su.from(e.modeInstructions2)}}convertReferenceToVariable(e){let n=e.value&&typeof e.value=="object"&&"uri"in e.value&&"range"in e.value?li.from(e.value):e.value,o=e.range?{start:e.range[0],endExclusive:e.range[1]}:void 0;if(n&&n instanceof Sd&&Array.isArray(n.diagnostics)&&n.diagnostics.length&&n.diagnostics[0][1].length){let a=ja.from(n.diagnostics[0][1][0]),l={filterRange:{startLineNumber:a.startLineNumber,startColumn:a.startColumn,endLineNumber:a.endLineNumber,endColumn:a.endColumn},filterSeverity:a.severity,filterUri:n.diagnostics[0][0],problemMessage:n.diagnostics[0][1][0].message};return Ev.toEntry(l)}if(tn.isLocation(e.value)&&e.name.startsWith("sym:")){let a=li.from(e.value);return{id:e.id,name:e.name,fullName:e.name.substring(4),value:{uri:e.value.uri,range:a.range},symbolKind:6,icon:qR.toIcon(6),kind:"symbol",range:o}}if(b.isUri(n)&&e.name.startsWith("prompt:")){if(e.id.startsWith("vscode.instructions.file.root"))return Ul(n,"vscode.instructions.file.root");if(e.id.startsWith("vscode.instructions.file.reference"))return Ul(n,"vscode.instructions.file.reference");if(e.id.startsWith("vscode.prompt.file"))return Ul(n,"vscode.prompt.file")}let r=b.isUri(n)||n&&typeof n=="object"&&"uri"in n,s=r&&b.isUri(n)&&n.path.endsWith("/");return{id:e.id,name:e.name,value:n,modelDescription:e.modelDescription,range:o,kind:s?"directory":r?"file":"generic"}}convertResponseTurn(e,n){return{type:"response",parts:nt(e.response.map(r=>og.from(r,this.commands.converter,n))),participant:e.participant,details:e.result?.details}}async $refreshChatSessionItems(e,n){let o=this._chatSessionItemControllers.get(e);if(!o){this._logService.warn(`No controller found for handle ${e}`);return}await o.controller.refreshHandler(n)}async $newChatSessionItem(e,n,o){let r=this._chatSessionItemControllers.get(e);if(!r){this._logService.warn(`No controller found for handle ${e}`);return}let s=r.controller.newChatSessionItemHandler;if(!s)return;let a=this._createInputStateFromOptions(r.optionGroups??[],n.initialSessionOptions),l;r.controller.getChatSessionInputState?l=await r.controller.getChatSessionInputState(void 0,{previousInputState:a},o):l=a;let d=await s({request:{prompt:n.prompt,command:n.command},inputState:l},o);if(d)return r.controller.items.add(d),Ya.from(d)}$onDidChangeChatSessionItemState(e,n,o){let r=this._chatSessionItemControllers.get(e);if(!r){this._logService.warn(`No controller found for handle ${e}`);return}let s=b.revive(n),a=r.controller.items.get(s);if(!a){this._logService.warn(`No item found for session resource ${s.toString()}`);return}a.archived=o,r.onDidChangeChatSessionItemStateEmitter.fire(a)}async $resolveChatSessionItem(e,n,o){let r=b.revive(n),s=this._chatSessionItemControllers.get(e);if(!s?.controller.resolveChatSessionItem)return;let a=s.controller.items.get(r);if(!a){this._logService.warn(`No item found for session resource ${r.toString()}`);return}await s.controller.resolveChatSessionItem(a,o);let l=s.controller.items.get(r);if(l)return Ya.from(l)}async $provideChatSessionInputState(e,n,o){let r=this._chatSessionItemControllers.get(e);if(!r){this._logService.warn(`No controller found for handle ${e}`);return}let s=r.controller.getChatSessionInputState;if(!s)return;let a=n?b.revive(n):void 0,l=await s(!a||Lc(a)?void 0:a,{previousInputState:void 0},o);return l?(l instanceof tl&&a&&(this._disposeInputStatesForResource(r.inputStates,a),Lc(a)?l.untitledSessionResource=a:l.sessionResource=a),r.optionGroups=l.groups,this._wrapOptionGroupCommands(e,l.groups).map(c=>({id:c.id,name:c.name,description:c.description,items:c.items,selected:c.selected,when:c.when,icon:c.icon,commands:c.commands,kind:c.kind}))):void 0}};wf=D([C(2,ae),C(3,ne)],wf);var aw=class{constructor(t){this._items=new Map;this._proxy=t.getProxy(F.MainThreadChatStatus)}createChatStatusItem(t,e){let n=KG(t.identifier,e);if(this._items.has(n))throw new Error(`Chat status item '${e}' already exists`);let o={id:n,title:"",description:"",detail:"",tooltip:void 0},r=!1,s=!1,a=()=>{if(r)throw new Error("Chat status item is disposed");s&&this._proxy.$setEntry(e,o)},l=Object.freeze({id:e,get title(){return o.title},set title(d){o.title=d,a()},get description(){return o.description},set description(d){o.description=d,a()},get detail(){return o.detail},set detail(d){o.detail=d,a()},get tooltip(){return o.tooltip},set tooltip(d){o.tooltip=d,a()},show:()=>{s=!0,a()},hide:()=>{s=!1,this._proxy.$disposeEntry(e)},dispose:()=>{r=!0,this._proxy.$disposeEntry(e),this._items.delete(n)}});return this._items.set(n,l),l}};function KG(i,t){return`${Ee.toKey(i)}.${t}`}var lw=class extends U{constructor(t){super(),this._proxy=t.getProxy(F.MainThreadChatQuota)}updateQuotas(t){this._proxy.$updateQuotas(t)}};var dw=class{constructor(t){this._items=new Map;this._proxy=t.getProxy(F.MainThreadChatInputNotification)}createInputNotification(t,e){let n=jG(t.identifier,e);if(this._items.has(n))throw new Error(`Chat input notification '${e}' already exists`);let o={id:n,severity:0,message:"",description:void 0,actions:[],dismissible:!0,autoDismissOnMessage:!1},r=!1,s=!1,a=()=>{if(r)throw new Error("Chat input notification is disposed");s&&this._proxy.$setNotification({...o})},l=Object.freeze({id:e,get severity(){return o.severity},set severity(d){o.severity=d,a()},get message(){return o.message},set message(d){o.message=d,a()},get description(){return o.description},set description(d){o.description=d,a()},get actions(){return o.actions},set actions(d){o.actions=d.map(c=>({label:c.label,commandId:c.commandId,commandArgs:c.commandArgs})),a()},get dismissible(){return o.dismissible},set dismissible(d){o.dismissible=d,a()},get autoDismissOnMessage(){return o.autoDismissOnMessage},set autoDismissOnMessage(d){o.autoDismissOnMessage=d,a()},show:()=>{s=!0,a()},hide:()=>{r||(s=!1,this._proxy.$disposeNotification(n))},dispose:()=>{r||(r=!0,s=!1,this._proxy.$disposeNotification(n),this._items.delete(n))}});return this._items.set(n,l),l}};function jG(i,t){return`${Ee.toKey(i)}.${t}`}var cw=class{constructor(t){let e=t.getProxy(F.MainThreadClipboard);this.value=Object.freeze({readText(){return e.$readText()},writeText(n){return e.$writeText(n)}})}};var c5="vscode-cdn.net",GG=`vscode-resource.${c5}`,cy=`'self' https://*.${c5}`;function Qd(i,t){return i.scheme===B.http||i.scheme===B.https?i:(t&&t.authority&&t.isRemote&&i.scheme===B.file&&(i=b.from({scheme:B.vscodeRemote,authority:t.authority,path:i.path})),b.from({scheme:B.https,authority:`${i.scheme}+${QG(i.authority)}.${GG}`,path:i.path,fragment:i.fragment,query:i.query}))}function QG(i){return i.replace(/./g,t=>{let e=t.charCodeAt(0);return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57?t:"-"+e.toString(16).padStart(4,"0")})}var uw=class{constructor(t,e,n){this._proxy=t;this._editors=e;this._remoteInfo=n;this._handlePool=0;this._disposables=new z;this._insets=new Map;this._disposables.add(e.onDidChangeVisibleTextEditors(()=>{let o=e.getVisibleTextEditors();for(let r of this._insets.values())o.indexOf(r.editor)<0&&r.inset.dispose()}))}dispose(){this._insets.forEach(t=>t.inset.dispose()),this._disposables.dispose()}createWebviewEditorInset(t,e,n,o,r){let s;for(let g of this._editors.getVisibleTextEditors(!0))if(g.value===t){s=g;break}if(!s)throw new Error("not a visible editor");let a=this,l=this._handlePool++,d=new E,c=new E,u=new class{constructor(){this._html="";this._options=Object.create(null)}asWebviewUri(g){return Qd(g,a._remoteInfo)}get cspSource(){return cy}set options(g){this._options=g,a._proxy.$setOptions(l,g)}get options(){return this._options}set html(g){this._html=g,a._proxy.$setHtml(l,g)}get html(){return this._html}get onDidReceiveMessage(){return d.event}postMessage(g){return a._proxy.$postMessage(l,g)}},m=new class{constructor(){this.editor=t;this.line=e;this.height=n;this.webview=u;this.onDidDispose=c.event}dispose(){a._insets.delete(l)&&(a._proxy.$disposeEditorInset(l),c.fire(),c.dispose(),d.dispose())}};return this._proxy.$createEditorInset(l,s.id,s.value.document.uri,e+1,n,o||{},r.identifier,r.extensionLocation),this._insets.set(l,{editor:t,inset:m,onDidReceiveMessage:d}),m}$onDidDispose(t){let e=this._insets.get(t);e&&e.inset.dispose()}$onDidReceiveMessage(t,e){this._insets.get(t)?.onDidReceiveMessage.fire(e)}};var pw=class i{constructor(t){this.providers=new Map;this._proxy=t.getProxy(F.MainThreadCodeMapper)}static{this._providerHandlePool=0}async $mapCode(t,e,n){let o=this.providers.get(t);if(!o)throw new Error(`Received request to map code for unknown provider handle ${t}`);let r={textEdit:(l,d)=>{d=An(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(Dn.from)})},notebookEdit:(l,d)=>{d=An(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(PT.from)})}},s={location:e.location,chatRequestId:e.chatRequestId,chatRequestModel:e.chatRequestModel,chatSessionId:e.chatSessionResource?Lr.parseLocalSessionId(b.revive(e.chatSessionResource)):void 0,codeBlocks:e.codeBlocks.map(l=>({code:l.code,resource:b.revive(l.resource),markdownBeforeBlock:l.markdownBeforeBlock}))};return await o.provideMappedEdits(s,r,n)??null}registerMappedEditsProvider(t,e){let n=i._providerHandlePool++;return this._proxy.$registerCodeMapperProvider(n,t.displayName??t.name),this.providers.set(n,e),{dispose:()=>this._proxy.$unregisterCodeMapperProvider(n)}}};function u5(i,t,e){let n=i.getProxy(F.MainThreadComments);class o{constructor(){this._commentControllers=new Map;this._commentControllersByExtension=new ho;t.registerArgumentProcessor({processArgument:f=>{if(f&&f.$mid===6){let I=this._commentControllers.get(f.handle);return I?I.value:f}else if(f&&f.$mid===7){let I=f,x=this._commentControllers.get(I.commentControlHandle);if(!x)return I;let T=x.getCommentThread(I.commentThreadHandle);return T?T.value:I}else if(f&&(f.$mid===9||f.$mid===8)){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let x=I.getCommentThread(f.thread.commentThreadHandle);return x?f.$mid===8?x.value:{thread:x.value,text:f.text}:f}else if(f&&f.$mid===10){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let x=I.getCommentThread(f.thread.commentThreadHandle);if(!x)return f;let T=f.commentUniqueId,w=x.getCommentByUniqueId(T);return w||f}else if(f&&f.$mid===11){let I=this._commentControllers.get(f.thread.commentControlHandle);if(!I)return f;let x=I.getCommentThread(f.thread.commentThreadHandle);if(!x)return f;let T=f.text,w=f.commentUniqueId,M=x.getCommentByUniqueId(w);return M?(typeof M.body=="string"?M.body=T:M.body=new Xt(T),M):f}return f}})}static{this.handlePool=0}createCommentController(f,I,x){let T=o.handlePool++,w=new s(f,T,I,x);this._commentControllers.set(w.handle,w);let M=this._commentControllersByExtension.get(f.identifier)||[];return M.push(w),this._commentControllersByExtension.set(f.identifier,M),w.value}async $createCommentThreadTemplate(f,I,x,T){let w=this._commentControllers.get(f);w&&w.$createCommentThreadTemplate(I,x,T)}async $setActiveComment(f,I){let x=this._commentControllers.get(f);x&&x.$setActiveComment(I??void 0)}async $updateCommentThreadTemplate(f,I,x){let T=this._commentControllers.get(f);T&&T.$updateCommentThreadTemplate(I,x)}$deleteCommentThread(f,I){this._commentControllers.get(f)?.$deleteCommentThread(I)}async $updateCommentThread(f,I,x){this._commentControllers.get(f)?.$updateCommentThread(I,x)}async $provideCommentingRanges(f,I,x){let T=this._commentControllers.get(f);if(!T||!T.commentingRangeProvider)return Promise.resolve(void 0);let w=await e.ensureDocumentData(b.revive(I));return bn(async()=>{let M=await T.commentingRangeProvider?.provideCommentingRanges(w.document,x),O;return Array.isArray(M)?O={ranges:M,fileComments:!1}:M?O={ranges:M.ranges||[],fileComments:M.enableFileComments||!1}:O=M??void 0,O}).then(M=>{let O;return M&&(O={ranges:M.ranges.map(N=>G.from(N)),fileComments:M.fileComments}),O})}$toggleReaction(f,I,x,T,w){let M=this._commentControllers.get(f);return!M||!M.reactionHandler?Promise.resolve(void 0):bn(()=>{let O=M.getCommentThread(I);if(O){let N=O.getCommentByUniqueId(T.uniqueIdInThread);if(M!==void 0&&N&&M.reactionHandler)return M.reactionHandler(N,d(w))}return Promise.resolve(void 0)})}}let g=class g{constructor(f,I,x,T,w,M,O,N,$){this._commentControllerHandle=I;this._id=x;this._uri=T;this._range=w;this._comments=M;this.extensionDescription=O;this._isTemplate=N;this.handle=g._handlePool++;this.commentHandle=0;this.modifications=Object.create(null);this._onDidUpdateCommentThread=new E;this.onDidUpdateCommentThread=this._onDidUpdateCommentThread.event;this._canReply=!0;this._commentsMap=new Map;this._acceptInputDisposables=new cn;this._acceptInputDisposables.value=new z,this._id===void 0&&(this._id=`${f}.${this.handle}`),n.$createCommentThread(I,this.handle,this._id,this._uri,G.from(this._range),this._comments.map(j=>a(this,j,this._commentsMap,this.extensionDescription)),O.identifier,this._isTemplate,$),this._localDisposables=[],this._isDiposed=!1,this._localDisposables.push(this.onDidUpdateCommentThread(()=>{this.eventuallyUpdateCommentThread()})),this._localDisposables.push({dispose:()=>{n.$deleteCommentThread(I,this.handle)}});let X=this;this.value={get uri(){return X.uri},get range(){return X.range},set range(j){X.range=j},get comments(){return X.comments},set comments(j){X.comments=j},get collapsibleState(){return X.collapsibleState},set collapsibleState(j){X.collapsibleState=j},get canReply(){return X.canReply},set canReply(j){X.canReply=j},get contextValue(){return X.contextValue},set contextValue(j){X.contextValue=j},get label(){return X.label},set label(j){X.label=j},get state(){return X.state},set state(j){X.state=j},reveal:(j,q)=>X.reveal(j,q),hide:()=>X.hide(),dispose:()=>{X.dispose()}}}static{this._handlePool=0}set threadId(f){this._id=f}get threadId(){return this._id}get id(){return this._id}get resource(){return this._uri}get uri(){return this._uri}set range(f){(f===void 0!=(this._range===void 0)||!f||!this._range||!f.isEqual(this._range))&&(this._range=f,this.modifications.range=f,this._onDidUpdateCommentThread.fire())}get range(){return this._range}set canReply(f){this._canReply!==f&&(this._canReply=f,this.modifications.canReply=f,this._onDidUpdateCommentThread.fire())}get canReply(){return this._canReply}get label(){return this._label}set label(f){this._label=f,this.modifications.label=f,this._onDidUpdateCommentThread.fire()}get contextValue(){return this._contextValue}set contextValue(f){this._contextValue=f,this.modifications.contextValue=f,this._onDidUpdateCommentThread.fire()}get comments(){return this._comments}set comments(f){this._comments=f,this.modifications.comments=f,this._onDidUpdateCommentThread.fire()}get collapsibleState(){return this._collapseState}set collapsibleState(f){this._collapseState!==f&&(this._collapseState=f,this.modifications.collapsibleState=f,this._onDidUpdateCommentThread.fire())}get state(){return this._state}set state(f){this._state=f,typeof f=="object"?(A(this.extensionDescription,"commentThreadApplicability"),this.modifications.state=f.resolved,this.modifications.applicability=f.applicability):this.modifications.state=f,this._onDidUpdateCommentThread.fire()}get isDisposed(){return this._isDiposed}updateIsTemplate(){this._isTemplate&&(this._isTemplate=!1,this.modifications.isTemplate=!1)}eventuallyUpdateCommentThread(){if(this._isDiposed)return;this.updateIsTemplate(),this._acceptInputDisposables.value||(this._acceptInputDisposables.value=new z);let f=x=>Object.prototype.hasOwnProperty.call(this.modifications,x),I={};f("range")&&(I.range=G.from(this._range)),f("label")&&(I.label=this.label),f("contextValue")&&(I.contextValue=this.contextValue??null),f("comments")&&(I.comments=this._comments.map(x=>a(this,x,this._commentsMap,this.extensionDescription))),f("collapsibleState")&&(I.collapseState=c(this._collapseState)),f("canReply")&&(I.canReply=this.canReply),f("state")&&(I.state=u(this._state)),f("applicability")&&(I.applicability=m(this._state)),f("isTemplate")&&(I.isTemplate=this._isTemplate),this.modifications={},n.$updateCommentThread(this._commentControllerHandle,this.handle,this._id,this._uri,I)}getCommentByUniqueId(f){for(let I of this._commentsMap){let x=I[0],T=I[1];if(f===T)return x}}async reveal(f,I){A(this.extensionDescription,"commentReveal");let x;f&&f.body!==void 0?x=f:I=I??f;let T=x?this._commentsMap.get(x):void 0;T??=this._commentsMap.get(this._comments[0]);let w=!0,M=!1;return I?.focus===1?(M=!0,w=!1):I?.focus===2&&(w=!1),n.$revealCommentThread(this._commentControllerHandle,this.handle,T,{preserveFocus:w,focusReply:M})}async hide(){return n.$hideCommentThread(this._commentControllerHandle,this.handle)}dispose(){this._isDiposed=!0,this._acceptInputDisposables.dispose(),this._onDidUpdateCommentThread.dispose(),this._localDisposables.forEach(f=>f.dispose())}};D([vc(100)],g.prototype,"eventuallyUpdateCommentThread",1);let r=g;class s{constructor(f,I,x,T){this._extension=f;this._handle=I;this._id=x;this._label=T;this._threads=new Map;n.$registerCommentController(this.handle,x,T,this._extension.identifier.value);let w=this;this.value=Object.freeze({id:w.id,label:w.label,get options(){return w.options},set options(M){w.options=M},get commentingRangeProvider(){return w.commentingRangeProvider},set commentingRangeProvider(M){w.commentingRangeProvider=M},get reactionHandler(){return w.reactionHandler},set reactionHandler(M){w.reactionHandler=M},get activeCommentThread(){return w.activeCommentThread},createCommentThread(M,O,N){return w.createCommentThread(M,O,N).value},dispose:()=>{w.dispose()}}),this._localDisposables=[],this._localDisposables.push({dispose:()=>{n.$unregisterCommentController(this.handle)}})}get id(){return this._id}get label(){return this._label}get handle(){return this._handle}get commentingRangeProvider(){return this._commentingRangeProvider}set commentingRangeProvider(f){this._commentingRangeProvider=f,f?.resourceHints&&A(this._extension,"commentingRangeHint"),n.$updateCommentingRanges(this.handle,f?.resourceHints)}get reactionHandler(){return this._reactionHandler}set reactionHandler(f){this._reactionHandler=f,n.$updateCommentControllerFeatures(this.handle,{reactionHandler:!!f})}get options(){return this._options}set options(f){this._options=f,n.$updateCommentControllerFeatures(this.handle,{options:this._options})}get activeComment(){return A(this._extension,"activeComment"),this._activeComment}get activeCommentThread(){return A(this._extension,"activeComment"),this._activeThread?.value}createCommentThread(f,I,x){let T=new r(this.id,this.handle,void 0,f,I,x,this._extension,!1);return this._threads.set(T.handle,T),T}$setActiveComment(f){if(!f){this._activeComment=void 0,this._activeThread=void 0;return}let I=this._threads.get(f.commentThreadHandle);I&&(this._activeComment=f.uniqueIdInThread?I.getCommentByUniqueId(f.uniqueIdInThread):void 0,this._activeThread=I)}$createCommentThreadTemplate(f,I,x){let T=new r(this.id,this.handle,void 0,b.revive(f),G.to(I),[],this._extension,!0,x);return T.collapsibleState=1,this._threads.set(T.handle,T),T}$updateCommentThreadTemplate(f,I){let x=this._threads.get(f);x&&(x.range=G.to(I))}$updateCommentThread(f,I){let x=this._threads.get(f);if(!x)return;(w=>Object.prototype.hasOwnProperty.call(I,w))("collapseState")&&(x.collapsibleState=c(I.collapseState))}$deleteCommentThread(f){this._threads.get(f)?.dispose(),this._threads.delete(f)}getCommentThread(f){return this._threads.get(f)}dispose(){this._threads.forEach(f=>{f.dispose()}),this._localDisposables.forEach(f=>f.dispose())}}function a(h,f,I,x){let T=I.get(f);return T||(T=++h.commentHandle,I.set(f,T)),f.state!==void 0&&A(x,"commentsDraftState"),f.reactions?.some(w=>w.reactors!==void 0)&&A(x,"commentReactor"),{mode:f.mode,contextValue:f.contextValue,uniqueIdInThread:T,body:typeof f.body=="string"?f.body:ge.from(f.body),userName:f.author.name,userIconPath:f.author.iconPath,label:f.label,commentReactions:f.reactions?f.reactions.map(w=>l(w)):void 0,state:f.state,timestamp:f.timestamp?.toJSON()}}function l(h){return{label:h.label,iconPath:h.iconPath?pb(h.iconPath):void 0,count:h.count,hasReacted:h.authorHasReacted,reactors:h.reactors&&h.reactors.length>0&&typeof h.reactors[0]!="string"?h.reactors.map(f=>f.name):h.reactors}}function d(h){return{label:h.label||"",count:h.count||0,iconPath:h.iconPath?b.revive(h.iconPath):"",authorHasReacted:h.hasReacted||!1,reactors:h.reactors?.map(f=>({name:f}))}}function c(h){if(h!==void 0)switch(h){case 1:return 1;case 0:return 0}return 0}function u(h){let f;if(typeof h=="object"?f=h.resolved:f=h,f!==void 0)switch(f){case 0:return 0;case 1:return 1}return 0}function m(h){let f;if(typeof h=="object"&&(f=h.applicability),f!==void 0)switch(f){case 0:return 0;case 1:return 1}return 0}return new o}var mw={},Et={exports:mw};(function(i,t){if(typeof mw=="object"&&typeof Et=="object")Et.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var e=t();for(var n in e)(typeof mw=="object"?mw:i)[n]=e[n]}})(typeof self<"u"?self:void 0,(function(){return(function(i){var t={};function e(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return i[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=i,e.c=t,e.d=function(n,o,r){e.o(n,o)||Object.defineProperty(n,o,{enumerable:!0,get:r})},e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,o){if(1&o&&(n=e(n)),8&o||4&o&&typeof n=="object"&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&o&&typeof n!="string")for(var s in n)e.d(r,s,function(a){return n[a]}.bind(null,s));return r},e.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(o,"a",o),o},e.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)},e.p="",e(e.s=0)})([function(i,t,e){(function(n){var o;t=i.exports=Dt,o=typeof n=="object"&&n.env&&n.env.NODE_DEBUG&&/\bsemver\b/i.test(n.env.NODE_DEBUG)?function(){var L=Array.prototype.slice.call(arguments,0);L.unshift("SEMVER"),console.log.apply(console,L)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var r=256,s=Number.MAX_SAFE_INTEGER||9007199254740991,a=t.re=[],l=t.src=[],d=0,c=d++;l[c]="0|[1-9]\\d*";var u=d++;l[u]="[0-9]+";var m=d++;l[m]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var g=d++;l[g]="("+l[c]+")\\.("+l[c]+")\\.("+l[c]+")";var h=d++;l[h]="("+l[u]+")\\.("+l[u]+")\\.("+l[u]+")";var f=d++;l[f]="(?:"+l[c]+"|"+l[m]+")";var I=d++;l[I]="(?:"+l[u]+"|"+l[m]+")";var x=d++;l[x]="(?:-("+l[f]+"(?:\\."+l[f]+")*))";var T=d++;l[T]="(?:-?("+l[I]+"(?:\\."+l[I]+")*))";var w=d++;l[w]="[0-9A-Za-z-]+";var M=d++;l[M]="(?:\\+("+l[w]+"(?:\\."+l[w]+")*))";var O=d++,N="v?"+l[g]+l[x]+"?"+l[M]+"?";l[O]="^"+N+"$";var $="[v=\\s]*"+l[h]+l[T]+"?"+l[M]+"?",X=d++;l[X]="^"+$+"$";var j=d++;l[j]="((?:<|>)?=?)";var q=d++;l[q]=l[u]+"|x|X|\\*";var oe=d++;l[oe]=l[c]+"|x|X|\\*";var ve=d++;l[ve]="[v=\\s]*("+l[oe]+")(?:\\.("+l[oe]+")(?:\\.("+l[oe]+")(?:"+l[x]+")?"+l[M]+"?)?)?";var yt=d++;l[yt]="[v=\\s]*("+l[q]+")(?:\\.("+l[q]+")(?:\\.("+l[q]+")(?:"+l[T]+")?"+l[M]+"?)?)?";var ze=d++;l[ze]="^"+l[j]+"\\s*"+l[ve]+"$";var te=d++;l[te]="^"+l[j]+"\\s*"+l[yt]+"$";var Y=d++;l[Y]="(?:^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])";var ie=d++;l[ie]="(?:~>?)";var ee=d++;l[ee]="(\\s*)"+l[ie]+"\\s+",a[ee]=new RegExp(l[ee],"g");var le=d++;l[le]="^"+l[ie]+l[ve]+"$";var re=d++;l[re]="^"+l[ie]+l[yt]+"$";var pe=d++;l[pe]="(?:\\^)";var et=d++;l[et]="(\\s*)"+l[pe]+"\\s+",a[et]=new RegExp(l[et],"g");var Ne=d++;l[Ne]="^"+l[pe]+l[ve]+"$";var It=d++;l[It]="^"+l[pe]+l[yt]+"$";var Ut=d++;l[Ut]="^"+l[j]+"\\s*("+$+")$|^$";var Ge=d++;l[Ge]="^"+l[j]+"\\s*("+N+")$|^$";var Rn=d++;l[Rn]="(\\s*)"+l[j]+"\\s*("+$+"|"+l[ve]+")",a[Rn]=new RegExp(l[Rn],"g");var Lo=d++;l[Lo]="^\\s*("+l[ve]+")\\s+-\\s+("+l[ve]+")\\s*$";var Qi=d++;l[Qi]="^\\s*("+l[yt]+")\\s+-\\s+("+l[yt]+")\\s*$";var sl=d++;l[sl]="(<|>)?=?\\s*\\*";for(var mi=0;mi<35;mi++)o(mi,l[mi]),a[mi]||(a[mi]=new RegExp(l[mi]));function Se(L,K){if(L instanceof Dt)return L;if(typeof L!="string"||L.length>r||!(K?a[X]:a[O]).test(L))return null;try{return new Dt(L,K)}catch{return null}}function Dt(L,K){if(L instanceof Dt){if(L.loose===K)return L;L=L.version}else if(typeof L!="string")throw new TypeError("Invalid Version: "+L);if(L.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof Dt))return new Dt(L,K);o("SemVer",L,K),this.loose=K;var J=L.trim().match(K?a[X]:a[O]);if(!J)throw new TypeError("Invalid Version: "+L);if(this.raw=L,this.major=+J[1],this.minor=+J[2],this.patch=+J[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");J[4]?this.prerelease=J[4].split(".").map((function(Ae){if(/^[0-9]+$/.test(Ae)){var qe=+Ae;if(qe>=0&&qe<s)return qe}return Ae})):this.prerelease=[],this.build=J[5]?J[5].split("."):[],this.format()}t.parse=Se,t.valid=function(L,K){var J=Se(L,K);return J?J.version:null},t.clean=function(L,K){var J=Se(L.trim().replace(/^[=v]+/,""),K);return J?J.version:null},t.SemVer=Dt,Dt.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},Dt.prototype.toString=function(){return this.version},Dt.prototype.compare=function(L){return o("SemVer.compare",this.version,this.loose,L),L instanceof Dt||(L=new Dt(L,this.loose)),this.compareMain(L)||this.comparePre(L)},Dt.prototype.compareMain=function(L){return L instanceof Dt||(L=new Dt(L,this.loose)),_r(this.major,L.major)||_r(this.minor,L.minor)||_r(this.patch,L.patch)},Dt.prototype.comparePre=function(L){if(L instanceof Dt||(L=new Dt(L,this.loose)),this.prerelease.length&&!L.prerelease.length)return-1;if(!this.prerelease.length&&L.prerelease.length)return 1;if(!this.prerelease.length&&!L.prerelease.length)return 0;var K=0;do{var J=this.prerelease[K],Ae=L.prerelease[K];if(o("prerelease compare",K,J,Ae),J===void 0&&Ae===void 0)return 0;if(Ae===void 0)return 1;if(J===void 0)return-1;if(J!==Ae)return _r(J,Ae)}while(++K)},Dt.prototype.inc=function(L,K){switch(L){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",K);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",K);break;case"prepatch":this.prerelease.length=0,this.inc("patch",K),this.inc("pre",K);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",K),this.inc("pre",K);break;case"major":this.minor===0&&this.patch===0&&this.prerelease.length!==0||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":this.patch===0&&this.prerelease.length!==0||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{for(var J=this.prerelease.length;--J>=0;)typeof this.prerelease[J]=="number"&&(this.prerelease[J]++,J=-2);J===-1&&this.prerelease.push(0)}K&&(this.prerelease[0]===K?isNaN(this.prerelease[1])&&(this.prerelease=[K,0]):this.prerelease=[K,0]);break;default:throw new Error("invalid increment argument: "+L)}return this.format(),this.raw=this.version,this},t.inc=function(L,K,J,Ae){typeof J=="string"&&(Ae=J,J=void 0);try{return new Dt(L,J).inc(K,Ae).version}catch{return null}},t.diff=function(L,K){if(tp(L,K))return null;var J=Se(L),Ae=Se(K);if(J.prerelease.length||Ae.prerelease.length){for(var qe in J)if((qe==="major"||qe==="minor"||qe==="patch")&&J[qe]!==Ae[qe])return"pre"+qe;return"prerelease"}for(var qe in J)if((qe==="major"||qe==="minor"||qe==="patch")&&J[qe]!==Ae[qe])return qe},t.compareIdentifiers=_r;var Ih=/^[0-9]+$/;function _r(L,K){var J=Ih.test(L),Ae=Ih.test(K);return J&&Ae&&(L=+L,K=+K),J&&!Ae?-1:Ae&&!J?1:L<K?-1:L>K?1:0}function jo(L,K,J){return new Dt(L,J).compare(new Dt(K,J))}function tt(L,K,J){return jo(L,K,J)>0}function Zd(L,K,J){return jo(L,K,J)<0}function tp(L,K,J){return jo(L,K,J)===0}function gi(L,K,J){return jo(L,K,J)!==0}function Ji(L,K,J){return jo(L,K,J)>=0}function ec(L,K,J){return jo(L,K,J)<=0}function tc(L,K,J,Ae){var qe;switch(K){case"===":typeof L=="object"&&(L=L.version),typeof J=="object"&&(J=J.version),qe=L===J;break;case"!==":typeof L=="object"&&(L=L.version),typeof J=="object"&&(J=J.version),qe=L!==J;break;case"":case"=":case"==":qe=tp(L,J,Ae);break;case"!=":qe=gi(L,J,Ae);break;case">":qe=tt(L,J,Ae);break;case">=":qe=Ji(L,J,Ae);break;case"<":qe=Zd(L,J,Ae);break;case"<=":qe=ec(L,J,Ae);break;default:throw new TypeError("Invalid operator: "+K)}return qe}function Go(L,K){if(L instanceof Go){if(L.loose===K)return L;L=L.value}if(!(this instanceof Go))return new Go(L,K);o("comparator",L,K),this.loose=K,this.parse(L),this.semver===al?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}t.rcompareIdentifiers=function(L,K){return _r(K,L)},t.major=function(L,K){return new Dt(L,K).major},t.minor=function(L,K){return new Dt(L,K).minor},t.patch=function(L,K){return new Dt(L,K).patch},t.compare=jo,t.compareLoose=function(L,K){return jo(L,K,!0)},t.rcompare=function(L,K,J){return jo(K,L,J)},t.sort=function(L,K){return L.sort((function(J,Ae){return t.compare(J,Ae,K)}))},t.rsort=function(L,K){return L.sort((function(J,Ae){return t.rcompare(J,Ae,K)}))},t.gt=tt,t.lt=Zd,t.eq=tp,t.neq=gi,t.gte=Ji,t.lte=ec,t.cmp=tc,t.Comparator=Go;var al={};function gn(L,K){if(L instanceof gn)return L.loose===K?L:new gn(L.raw,K);if(L instanceof Go)return new gn(L.value,K);if(!(this instanceof gn))return new gn(L,K);if(this.loose=K,this.raw=L,this.set=L.split(/\s*\|\|\s*/).map((function(J){return this.parseRange(J.trim())}),this).filter((function(J){return J.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+L);this.format()}function to(L){return!L||L.toLowerCase()==="x"||L==="*"}function Jy(L,K,J,Ae,qe,fn,wt,ct,on,zn,lr,In,qn){return((K=to(J)?"":to(Ae)?">="+J+".0.0":to(qe)?">="+J+"."+Ae+".0":">="+K)+" "+(ct=to(on)?"":to(zn)?"<"+(+on+1)+".0.0":to(lr)?"<"+on+"."+(+zn+1)+".0":In?"<="+on+"."+zn+"."+lr+"-"+In:"<="+ct)).trim()}function nc(L,K){for(var J=0;J<L.length;J++)if(!L[J].test(K))return!1;if(K.prerelease.length){for(J=0;J<L.length;J++)if(o(L[J].semver),L[J].semver!==al&&L[J].semver.prerelease.length>0){var Ae=L[J].semver;if(Ae.major===K.major&&Ae.minor===K.minor&&Ae.patch===K.patch)return!0}return!1}return!0}function Ys(L,K,J){try{K=new gn(K,J)}catch{return!1}return K.test(L)}function np(L,K,J,Ae){var qe,fn,wt,ct,on;switch(L=new Dt(L,Ae),K=new gn(K,Ae),J){case">":qe=tt,fn=ec,wt=Zd,ct=">",on=">=";break;case"<":qe=Zd,fn=Ji,wt=tt,ct="<",on="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ys(L,K,Ae))return!1;for(var zn=0;zn<K.set.length;++zn){var lr=K.set[zn],In=null,qn=null;if(lr.forEach((function(po){po.semver===al&&(po=new Go(">=0.0.0")),In=In||po,qn=qn||po,qe(po.semver,In.semver,Ae)?In=po:wt(po.semver,qn.semver,Ae)&&(qn=po)})),In.operator===ct||In.operator===on||(!qn.operator||qn.operator===ct)&&fn(L,qn.semver)||qn.operator===on&&wt(L,qn.semver))return!1}return!0}Go.prototype.parse=function(L){var K=this.loose?a[Ut]:a[Ge],J=L.match(K);if(!J)throw new TypeError("Invalid comparator: "+L);this.operator=J[1],this.operator==="="&&(this.operator=""),J[2]?this.semver=new Dt(J[2],this.loose):this.semver=al},Go.prototype.toString=function(){return this.value},Go.prototype.test=function(L){return o("Comparator.test",L,this.loose),this.semver===al||(typeof L=="string"&&(L=new Dt(L,this.loose)),tc(L,this.operator,this.semver,this.loose))},Go.prototype.intersects=function(L,K){if(!(L instanceof Go))throw new TypeError("a Comparator is required");var J;if(this.operator==="")return J=new gn(L.value,K),Ys(this.value,J,K);if(L.operator==="")return J=new gn(this.value,K),Ys(L.semver,J,K);var Ae=!(this.operator!==">="&&this.operator!==">"||L.operator!==">="&&L.operator!==">"),qe=!(this.operator!=="<="&&this.operator!=="<"||L.operator!=="<="&&L.operator!=="<"),fn=this.semver.version===L.semver.version,wt=!(this.operator!==">="&&this.operator!=="<="||L.operator!==">="&&L.operator!=="<="),ct=tc(this.semver,"<",L.semver,K)&&(this.operator===">="||this.operator===">")&&(L.operator==="<="||L.operator==="<"),on=tc(this.semver,">",L.semver,K)&&(this.operator==="<="||this.operator==="<")&&(L.operator===">="||L.operator===">");return Ae||qe||fn&&wt||ct||on},t.Range=gn,gn.prototype.format=function(){return this.range=this.set.map((function(L){return L.join(" ").trim()})).join("||").trim(),this.range},gn.prototype.toString=function(){return this.range},gn.prototype.parseRange=function(L){var K=this.loose;L=L.trim(),o("range",L,K);var J=K?a[Qi]:a[Lo];L=L.replace(J,Jy),o("hyphen replace",L),L=L.replace(a[Rn],"$1$2$3"),o("comparator trim",L,a[Rn]),L=(L=(L=L.replace(a[ee],"$1~")).replace(a[et],"$1^")).split(/\s+/).join(" ");var Ae=K?a[Ut]:a[Ge],qe=L.split(" ").map((function(fn){return(function(wt,ct){return o("comp",wt),wt=(function(on,zn){return on.trim().split(/\s+/).map((function(lr){return(function(In,qn){o("caret",In,qn);var po=qn?a[It]:a[Ne];return In.replace(po,(function(dr,Be,Ye,qt,rn){var Kn;return o("caret",In,dr,Be,Ye,qt,rn),to(Be)?Kn="":to(Ye)?Kn=">="+Be+".0.0 <"+(+Be+1)+".0.0":to(qt)?Kn=Be==="0"?">="+Be+"."+Ye+".0 <"+Be+"."+(+Ye+1)+".0":">="+Be+"."+Ye+".0 <"+(+Be+1)+".0.0":rn?(o("replaceCaret pr",rn),rn.charAt(0)!=="-"&&(rn="-"+rn),Kn=Be==="0"?Ye==="0"?">="+Be+"."+Ye+"."+qt+rn+" <"+Be+"."+Ye+"."+(+qt+1):">="+Be+"."+Ye+"."+qt+rn+" <"+Be+"."+(+Ye+1)+".0":">="+Be+"."+Ye+"."+qt+rn+" <"+(+Be+1)+".0.0"):(o("no pr"),Kn=Be==="0"?Ye==="0"?">="+Be+"."+Ye+"."+qt+" <"+Be+"."+Ye+"."+(+qt+1):">="+Be+"."+Ye+"."+qt+" <"+Be+"."+(+Ye+1)+".0":">="+Be+"."+Ye+"."+qt+" <"+(+Be+1)+".0.0"),o("caret return",Kn),Kn}))})(lr,zn)})).join(" ")})(wt,ct),o("caret",wt),wt=(function(on,zn){return on.trim().split(/\s+/).map((function(lr){return(function(In,qn){var po=qn?a[re]:a[le];return In.replace(po,(function(dr,Be,Ye,qt,rn){var Kn;return o("tilde",In,dr,Be,Ye,qt,rn),to(Be)?Kn="":to(Ye)?Kn=">="+Be+".0.0 <"+(+Be+1)+".0.0":to(qt)?Kn=">="+Be+"."+Ye+".0 <"+Be+"."+(+Ye+1)+".0":rn?(o("replaceTilde pr",rn),rn.charAt(0)!=="-"&&(rn="-"+rn),Kn=">="+Be+"."+Ye+"."+qt+rn+" <"+Be+"."+(+Ye+1)+".0"):Kn=">="+Be+"."+Ye+"."+qt+" <"+Be+"."+(+Ye+1)+".0",o("tilde return",Kn),Kn}))})(lr,zn)})).join(" ")})(wt,ct),o("tildes",wt),wt=(function(on,zn){return o("replaceXRanges",on,zn),on.split(/\s+/).map((function(lr){return(function(In,qn){In=In.trim();var po=qn?a[te]:a[ze];return In.replace(po,(function(dr,Be,Ye,qt,rn,Kn){o("xRange",In,dr,Be,Ye,qt,rn,Kn);var xh=to(Ye),Yi=xh||to(qt),Xs=Yi||to(rn);return Be==="="&&Xs&&(Be=""),xh?dr=Be===">"||Be==="<"?"<0.0.0":"*":Be&&Xs?(Yi&&(qt=0),Xs&&(rn=0),Be===">"?(Be=">=",Yi?(Ye=+Ye+1,qt=0,rn=0):Xs&&(qt=+qt+1,rn=0)):Be==="<="&&(Be="<",Yi?Ye=+Ye+1:qt=+qt+1),dr=Be+Ye+"."+qt+"."+rn):Yi?dr=">="+Ye+".0.0 <"+(+Ye+1)+".0.0":Xs&&(dr=">="+Ye+"."+qt+".0 <"+Ye+"."+(+qt+1)+".0"),o("xRange return",dr),dr}))})(lr,zn)})).join(" ")})(wt,ct),o("xrange",wt),wt=(function(on,zn){return o("replaceStars",on,zn),on.trim().replace(a[sl],"")})(wt,ct),o("stars",wt),wt})(fn,K)})).join(" ").split(/\s+/);return this.loose&&(qe=qe.filter((function(fn){return!!fn.match(Ae)}))),qe=qe.map((function(fn){return new Go(fn,K)}))},gn.prototype.intersects=function(L,K){if(!(L instanceof gn))throw new TypeError("a Range is required");return this.set.some((function(J){return J.every((function(Ae){return L.set.some((function(qe){return qe.every((function(fn){return Ae.intersects(fn,K)}))}))}))}))},t.toComparators=function(L,K){return new gn(L,K).set.map((function(J){return J.map((function(Ae){return Ae.value})).join(" ").trim().split(" ")}))},gn.prototype.test=function(L){if(!L)return!1;typeof L=="string"&&(L=new Dt(L,this.loose));for(var K=0;K<this.set.length;K++)if(nc(this.set[K],L))return!0;return!1},t.satisfies=Ys,t.maxSatisfying=function(L,K,J){var Ae=null,qe=null;try{var fn=new gn(K,J)}catch{return null}return L.forEach((function(wt){fn.test(wt)&&(Ae&&qe.compare(wt)!==-1||(qe=new Dt(Ae=wt,J)))})),Ae},t.minSatisfying=function(L,K,J){var Ae=null,qe=null;try{var fn=new gn(K,J)}catch{return null}return L.forEach((function(wt){fn.test(wt)&&(Ae&&qe.compare(wt)!==1||(qe=new Dt(Ae=wt,J)))})),Ae},t.validRange=function(L,K){try{return new gn(L,K).range||"*"}catch{return null}},t.ltr=function(L,K,J){return np(L,K,"<",J)},t.gtr=function(L,K,J){return np(L,K,">",J)},t.outside=np,t.prerelease=function(L,K){var J=Se(L,K);return J&&J.prerelease.length?J.prerelease:null},t.intersects=function(L,K,J){return L=new gn(L,J),K=new gn(K,J),L.intersects(K)},t.coerce=function(L){if(L instanceof Dt)return L;if(typeof L!="string")return null;var K=L.match(a[Y]);return K==null?null:Se((K[1]||"0")+"."+(K[2]||"0")+"."+(K[3]||"0"))}}).call(this,e(1))},function(i,t){var e,n,o=i.exports={};function r(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(I){if(e===setTimeout)return setTimeout(I,0);if((e===r||!e)&&setTimeout)return e=setTimeout,setTimeout(I,0);try{return e(I,0)}catch{try{return e.call(null,I,0)}catch{return e.call(this,I,0)}}}(function(){try{e=typeof setTimeout=="function"?setTimeout:r}catch{e=r}try{n=typeof clearTimeout=="function"?clearTimeout:s}catch{n=s}})();var l,d=[],c=!1,u=-1;function m(){c&&l&&(c=!1,l.length?d=l.concat(d):u=-1,d.length&&g())}function g(){if(!c){var I=a(m);c=!0;for(var x=d.length;x;){for(l=d,d=[];++u<x;)l&&l[u].run();u=-1,x=d.length}l=null,c=!1,(function(T){if(n===clearTimeout)return clearTimeout(T);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(T);try{n(T)}catch{try{return n.call(null,T)}catch{return n.call(this,T)}}})(I)}}function h(I,x){this.fun=I,this.array=x}function f(){}o.nextTick=function(I){var x=new Array(arguments.length-1);if(arguments.length>1)for(var T=1;T<arguments.length;T++)x[T-1]=arguments[T];d.push(new h(I,x)),d.length!==1||c||a(g)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=f,o.addListener=f,o.once=f,o.off=f,o.removeListener=f,o.removeAllListeners=f,o.emit=f,o.prependListener=f,o.prependOnceListener=f,o.listeners=function(I){return[]},o.binding=function(I){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(I){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}}])}));var RYe=Et.exports.SEMVER_SPEC_VERSION,AYe=Et.exports.parse,JG=Et.exports.valid,MYe=Et.exports.coerce,LYe=Et.exports.clean,OYe=Et.exports.inc,NYe=Et.exports.major,UYe=Et.exports.minor,FYe=Et.exports.patch,HYe=Et.exports.prerelease,VYe=Et.exports.gt,WYe=Et.exports.gte,BYe=Et.exports.lt,$Ye=Et.exports.lte,zYe=Et.exports.eq,qYe=Et.exports.neq,KYe=Et.exports.cmp,jYe=Et.exports.compare,GYe=Et.exports.rcompare,QYe=Et.exports.compareIdentifiers,JYe=Et.exports.rcompareIdentifiers,YYe=Et.exports.compareBuild,XYe=Et.exports.sort,ZYe=Et.exports.rsort,eXe=Et.exports.diff,tXe=Et.exports.validRange,nXe=Et.exports.satisfies,oXe=Et.exports.maxSatisfying,rXe=Et.exports.minSatisfying,iXe=Et.exports.minVersion,sXe=Et.exports.gtr,aXe=Et.exports.ltr,lXe=Et.exports.outside,dXe=Et.exports.intersects,cXe=Et.exports.SemVer,uXe=Et.exports.Comparator,pXe=Et.exports.Range;var p5=/^(\^|>=)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/,XG=/^-(\d{4})(\d{2})(\d{2})(\d{2})?(\d{2})?$/;function ZG(i){return i=i.trim(),i==="*"||p5.test(i)}function XL(i){if(!ZG(i))return null;if(i=i.trim(),i==="*")return{hasCaret:!1,hasGreaterEquals:!1,majorBase:0,majorMustEqual:!1,minorBase:0,minorMustEqual:!1,patchBase:0,patchMustEqual:!1,preRelease:null};let t=i.match(p5);return t?{hasCaret:t[1]==="^",hasGreaterEquals:t[1]===">=",majorBase:t[2]==="x"?0:parseInt(t[2],10),majorMustEqual:t[2]!=="x",minorBase:t[4]==="x"?0:parseInt(t[4],10),minorMustEqual:t[4]!=="x",patchBase:t[6]==="x"?0:parseInt(t[6],10),patchMustEqual:t[6]!=="x",preRelease:t[8]||null}:null}function ZL(i){if(!i)return null;let t=i.majorBase,e=i.majorMustEqual,n=i.minorBase,o=i.minorMustEqual,r=i.patchBase,s=i.patchMustEqual;i.hasCaret&&(t===0||(o=!1),s=!1);let a=0;if(i.preRelease){let l=XG.exec(i.preRelease);if(l){let[,d,c,u,m,g]=l;a=Date.UTC(Number(d),Number(c)-1,Number(u),Number(m)||0,Number(g)||0)}}return{majorBase:t,majorMustEqual:e,minorBase:n,minorMustEqual:o,patchBase:r,patchMustEqual:s,isMinimum:i.hasGreaterEquals,notBefore:a}}var eO=class{constructor(){this.buffers=[]}add(t){let e=this.buffers.indexOf(t);return e<0&&(e=this.buffers.length,this.buffers.push(t)),e}};function m5(i,t){if(t.serializeBuffersForPostMessage){let e=new eO,o=JSON.stringify(i,(s,a)=>{if(a instanceof ArrayBuffer)return{$$vscode_array_buffer_reference$$:!0,index:e.add(a)};if(ArrayBuffer.isView(a)){let l=eQ(a);if(l)return{$$vscode_array_buffer_reference$$:!0,index:e.add(a.buffer),view:{type:l,byteLength:a.byteLength,byteOffset:a.byteOffset}}}return a}),r=e.buffers.map(s=>{let a=new Uint8Array(s);return W.wrap(a)});return{message:o,buffers:r}}else return{message:JSON.stringify(i),buffers:[]}}function eQ(i){switch(i.constructor.name){case"Int8Array":return 1;case"Uint8Array":return 2;case"Uint8ClampedArray":return 3;case"Int16Array":return 4;case"Uint16Array":return 5;case"Int32Array":return 6;case"Uint32Array":return 7;case"Float32Array":return 8;case"Float64Array":return 9;case"BigInt64Array":return 10;case"BigUint64Array":return 11}}function g5(i,t){let e=t.map(r=>{let s=new ArrayBuffer(r.byteLength);return new Uint8Array(s).set(r.buffer),s}),n=t.length?(r,s)=>{if(s&&typeof s=="object"&&s.$$vscode_array_buffer_reference$$){let a=s,{index:l}=a,d=e[l];if(a.view)switch(a.view.type){case 1:return new Int8Array(d,a.view.byteOffset,a.view.byteLength/Int8Array.BYTES_PER_ELEMENT);case 2:return new Uint8Array(d,a.view.byteOffset,a.view.byteLength/Uint8Array.BYTES_PER_ELEMENT);case 3:return new Uint8ClampedArray(d,a.view.byteOffset,a.view.byteLength/Uint8ClampedArray.BYTES_PER_ELEMENT);case 4:return new Int16Array(d,a.view.byteOffset,a.view.byteLength/Int16Array.BYTES_PER_ELEMENT);case 5:return new Uint16Array(d,a.view.byteOffset,a.view.byteLength/Uint16Array.BYTES_PER_ELEMENT);case 6:return new Int32Array(d,a.view.byteOffset,a.view.byteLength/Int32Array.BYTES_PER_ELEMENT);case 7:return new Uint32Array(d,a.view.byteOffset,a.view.byteLength/Uint32Array.BYTES_PER_ELEMENT);case 8:return new Float32Array(d,a.view.byteOffset,a.view.byteLength/Float32Array.BYTES_PER_ELEMENT);case 9:return new Float64Array(d,a.view.byteOffset,a.view.byteLength/Float64Array.BYTES_PER_ELEMENT);case 10:return new BigInt64Array(d,a.view.byteOffset,a.view.byteLength/BigInt64Array.BYTES_PER_ELEMENT);case 11:return new BigUint64Array(d,a.view.byteOffset,a.view.byteLength/BigUint64Array.BYTES_PER_ELEMENT);default:throw new Error("Unknown array buffer view type")}return d}return s}:void 0;return{message:JSON.parse(i,n),arrayBuffers:e}}var tO=class{constructor(t,e,n,o,r,s,a){this.#l="";this.#d=!1;this.#c=!1;this._onMessageEmitter=new E;this.onDidReceiveMessage=this._onMessageEmitter.event;this.#p=new E;this._onDidDispose=this.#p.event;this.#e=t,this.#t=e,this.#a=n,this.#o=o,this.#s=r,this.#r=s,this.#i=nl(s),this.#u=tQ(s),this.#n=a}#e;#t;#n;#o;#s;#r;#l;#a;#d;#c;#i;#u;#p;dispose(){this.#d=!0,this.#p.fire(),this.#p.dispose(),this._onMessageEmitter.dispose()}asWebviewUri(t){return this.#c=!0,Qd(t,this.#o)}get cspSource(){let t=this.#r.extensionLocation;if(t.scheme===B.https||t.scheme===B.http){let e=t.toString();return e.endsWith("/")||(e+="/"),e+" "+cy}return cy}get html(){return this.assertNotDisposed(),this.#l}set html(t){this.assertNotDisposed(),this.#l!==t&&(this.#l=t,this.#u&&!this.#c&&/(["'])vscode-resource:([^\s'"]+?)(["'])/i.test(t)&&(this.#c=!0,this.#n.report("Webview vscode-resource: uris",this.#r,"Please migrate to use the 'webview.asWebviewUri' api instead: https://aka.ms/vscode-webview-use-aswebviewuri")),this.#t.$setHtml(this.#e,this.rewriteOldResourceUrlsIfNeeded(t)))}get options(){return this.assertNotDisposed(),this.#a}set options(t){this.assertNotDisposed(),Bt(this.#a,t)||this.#t.$setOptions(this.#e,nO(this.#r,this.#s,t)),this.#a=t}async postMessage(t){if(this.#d)return!1;let e=m5(t,{serializeBuffersForPostMessage:this.#i});return this.#t.$postMessage(this.#e,e.message,...e.buffers)}assertNotDisposed(){if(this.#d)throw new Error("Webview is disposed")}rewriteOldResourceUrlsIfNeeded(t){if(!this.#u)return t;let e=this.#r.extensionLocation?.scheme===B.vscodeRemote,n=this.#r.extensionLocation.scheme===B.vscodeRemote?this.#r.extensionLocation.authority:void 0;return t.replace(/(["'])(?:vscode-resource):(\/\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(o,r,s,a,l,d)=>{let c=b.from({scheme:a||"file",path:decodeURIComponent(l)}),u=Qd(c,{isRemote:e,authority:n}).toString();return`${r}${u}${d}`}).replace(/(["'])(?:vscode-webview-resource):(\/\/[^\s\/'"]+\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(o,r,s,a,l,d)=>{let c=b.from({scheme:a||"file",path:decodeURIComponent(l)}),u=Qd(c,{isRemote:e,authority:n}).toString();return`${r}${u}${d}`})}};function nl(i){try{let t=ZL(XL(i.engines.vscode));return!!t&&t.majorBase>=1&&t.minorBase>=57}catch{return!1}}function tQ(i){try{let t=ZL(XL(i.engines.vscode));return t?t.majorBase<1||t.majorBase===1&&t.minorBase<60:!1}catch{return!1}}var gw=class extends U{constructor(e,n,o,r,s){super();this.remoteInfo=n;this.workspace=o;this._logService=r;this._deprecationService=s;this._webviews=new Map;this._webviewProxy=e.getProxy(F.MainThreadWebviews)}dispose(){super.dispose();for(let e of this._webviews.values())e.dispose();this._webviews.clear()}$onMessage(e,n,o){let r=this.getWebview(e);if(r){let{message:s}=g5(n,o.value);r._onMessageEmitter.fire(s)}}$onMissingCsp(e,n){this._logService.warn(`${n} created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp`)}createNewWebview(e,n,o){let r=new tO(e,this._webviewProxy,nQ(n),this.remoteInfo,this.workspace,o,this._deprecationService);this._webviews.set(e,r);let s=r._onDidDispose(()=>{s.dispose(),this.deleteWebview(e)});return r}ensureDefaultContentOptions(e,n,o){n.localResourceRoots||this._webviewProxy.$setOptions(e,{...n,localResourceRoots:f5(o,this.workspace)})}deleteWebview(e){this._webviews.delete(e)}getWebview(e){return this._webviews.get(e)}};function $u(i){return{id:i.identifier,location:i.extensionLocation}}function nO(i,t,e){return{enableCommandUris:e.enableCommandUris,enableScripts:e.enableScripts,enableForms:e.enableForms,portMapping:e.portMapping,localResourceRoots:e.localResourceRoots||f5(i,t)}}function nQ(i){return{enableCommandUris:i.enableCommandUris,enableScripts:i.enableScripts,enableForms:i.enableForms,portMapping:i.portMapping,localResourceRoots:i.localResourceRoots?.map(t=>b.from(t))}}function f5(i,t){return[...(t?.getWorkspaceFolders()||[]).map(e=>e.uri),i.extensionLocation]}var Ko=class i{constructor(t){this.id=t;this._data=new Map;this._idPool=1}static{this.enableDebugLogging=!1}add(t){let e=this._idPool++;return this._data.set(e,t),this.logDebugInfo(),e}get(t,e){return this._data.has(t)?this._data.get(t)[e]:void 0}delete(t){this._data.delete(t),this.logDebugInfo()}logDebugInfo(){i.enableDebugLogging&&console.log(`${this.id} cache size - ${this._data.size}`)}};var oO=class{constructor(t,e){this.document=t;this._storagePath=e;this._backupCounter=1;this._edits=new Ko("custom documents")}addEdit(t){return this._edits.add([t])}async undo(t,e){await this.getEdit(t).undo(),e||this.disposeBackup()}async redo(t,e){await this.getEdit(t).redo(),e||this.disposeBackup()}disposeEdits(t){for(let e of t)this._edits.delete(e)}getNewBackupUri(){if(!this._storagePath)throw new Error("Backup requires a valid storage path");let t=iQ(this.document.uri)+this._backupCounter++;return vt(this._storagePath,t)}updateBackup(t){this._backup?.delete(),this._backup=t}disposeBackup(){this._backup?.delete(),this._backup=void 0}getEdit(t){let e=this._edits.get(t,0);if(!e)throw new Error("No edit found");return e}},rO=class{constructor(){this._documents=new Map}get(t,e){return this._documents.get(this.key(t,e))}add(t,e,n){let o=this.key(t,e.uri);if(this._documents.has(o))throw new Error(`Document already exists for viewType:${t} resource:${e.uri}`);let r=new oO(e,n);return this._documents.set(o,r),r}delete(t,e){let n=this.key(t,e);this._documents.delete(n)}key(t,e){return`${t}@@@${e}`}};var iO=class{constructor(){this._providers=new Map}addTextProvider(t,e,n){return this.add(t,{type:0,extension:e,provider:n})}addCustomProvider(t,e,n){return this.add(t,{type:1,extension:e,provider:n})}get(t){return this._providers.get(t)}add(t,e){if(this._providers.has(t))throw new Error(`Provider for viewType:${t} already registered`);return this._providers.set(t,e),new xe(()=>this._providers.delete(t))}},hw=class{constructor(t,e,n,o,r){this._extHostDocuments=e;this._extensionStoragePaths=n;this._extHostWebview=o;this._extHostWebviewPanels=r;this._editorProviders=new iO;this._documents=new rO;this._proxy=t.getProxy(F.MainThreadCustomEditors)}registerCustomEditorProvider(t,e,n,o){let r=new z;if(oQ(n))r.add(this._editorProviders.addTextProvider(e,t,n)),this._proxy.$registerTextEditorProvider($u(t),e,o.webviewOptions||{},{supportsMove:!!n.moveCustomTextEditor,supportsInlineDiff:Oe(t,"customEditorDiffs")&&h5(n),supportsSideBySideDiff:Oe(t,"customEditorDiffs")&&v5(n)},nl(t));else{r.add(this._editorProviders.addCustomProvider(e,t,n));let s=Oe(t,"customEditorDiffs");fw(n)&&r.add(n.onDidChangeCustomDocument(a=>{let l=this.getCustomDocumentEntry(e,a.document.uri);if(rQ(a)){let d=l.addEdit(a);this._proxy.$onDidEdit(a.document.uri,e,d,a.label)}else this._proxy.$onContentChange(a.document.uri,e)})),this._proxy.$registerCustomEditorProvider($u(t),e,o.webviewOptions||{},{supportsInlineDiff:s&&b5(n),supportsSideBySideDiff:s&&y5(n)},!!o.supportsMultipleEditorsPerDocument,nl(t))}return xe.from(r,new xe(()=>{this._proxy.$unregisterEditorProvider(e)}))}async $createCustomDocument(t,e,n,o,r){let s=this._editorProviders.get(e);if(!s)throw new Error(`No provider found for '${e}'`);if(s.type!==1)throw new Error(`Invalid provide type for '${e}'`);let a=b.revive(t),l=await s.provider.openCustomDocument(a,{backupId:n,untitledDocumentData:o?.buffer},r),d;return fw(s.provider)&&this._extensionStoragePaths&&(d=this._extensionStoragePaths.workspaceValue(s.extension)??this._extensionStoragePaths.globalValue(s.extension)),this._documents.add(e,l,d),{editable:fw(s.provider)}}async $disposeCustomDocument(t,e){let n=this._editorProviders.get(e);if(!n)throw new Error(`No provider found for '${e}'`);if(n.type!==1)throw new Error(`Invalid provider type for '${e}'`);let o=b.revive(t),{document:r}=this.getCustomDocumentEntry(e,o);this._documents.delete(e,o),r.dispose()}async $resolveCustomEditor(t,e,n,o,r,s){let a=this._editorProviders.get(n);if(!a)throw new Error(`No provider found for '${n}'`);let l=$t.to(r),d=this._extHostWebview.createNewWebview(e,o.contentOptions,a.extension);this._extHostWebview.ensureDefaultContentOptions(e,o.contentOptions,a.extension);let c=this._extHostWebviewPanels.createNewWebviewPanel(e,n,o.title,l,o.options,d,o.active),u=b.revive(t);switch(a.type){case 1:{let{document:m}=this.getCustomDocumentEntry(n,u);return a.provider.resolveCustomEditor(m,c,s)}case 0:{let m=this._extHostDocuments.getDocument(u);return a.provider.resolveCustomTextEditor(m,c,s)}default:throw new Error("Unknown webview provider type")}}async $resolveCustomEditorInlineDiff(t,e,n,o,r,s,a){let{entry:l,panel:d}=this.createCustomEditorDiffPanel(n,o,r,s),c=b.revive(t),u=b.revive(e);if(l.type===0){if(!h5(l.provider))throw new Error(`Provider for '${o}' does not support inline custom text editor diffs`);let h=this._extHostDocuments.getDocument(c),f=this._extHostDocuments.getDocument(u);return l.provider.resolveCustomTextEditorInlineDiff({original:h,modified:f},d,a)}if(!b5(l.provider))throw new Error(`Provider for '${o}' does not support inline custom editor diffs`);let{document:m}=this.getCustomDocumentEntry(o,c),{document:g}=this.getCustomDocumentEntry(o,u);return l.provider.resolveCustomEditorInlineDiff({original:m,modified:g},d,a)}async $resolveCustomEditorSideBySideDiff(t,e,n,o,r,s,a){let{entry:l,panel:d}=this.createCustomEditorDiffPanel(n.original,o,r.original,s),{panel:c}=this.createCustomEditorDiffPanel(n.modified,o,r.modified,s),u=b.revive(t),m=b.revive(e);if(l.type===0){if(!v5(l.provider))throw new Error(`Provider for '${o}' does not support side by side custom text editor diffs`);let f=this._extHostDocuments.getDocument(u),I=this._extHostDocuments.getDocument(m);return l.provider.resolveCustomTextEditorSideBySideDiff({original:f,modified:I},{original:d,modified:c},a)}if(!y5(l.provider))throw new Error(`Provider for '${o}' does not support side by side custom editor diffs`);let{document:g}=this.getCustomDocumentEntry(o,u),{document:h}=this.getCustomDocumentEntry(o,m);return l.provider.resolveCustomEditorSideBySideDiff({original:g,modified:h},{original:d,modified:c},a)}createCustomEditorDiffPanel(t,e,n,o){let r=this._editorProviders.get(e);if(!r)throw new Error(`No provider found for '${e}'`);let s=$t.to(o),a=this._extHostWebview.createNewWebview(t,n.contentOptions,r.extension);this._extHostWebview.ensureDefaultContentOptions(t,n.contentOptions,r.extension);let l=this._extHostWebviewPanels.createNewWebviewPanel(t,e,n.title,s,n.options,a,n.active);return{entry:r,panel:l}}$disposeEdits(t,e,n){this.getCustomDocumentEntry(e,t).disposeEdits(n)}async $onMoveCustomEditor(t,e,n){let o=this._editorProviders.get(n);if(!o)throw new Error(`No provider found for '${n}'`);if(!o.provider.moveCustomTextEditor)throw new Error(`Provider does not implement move '${n}'`);let r=this._extHostWebviewPanels.getWebviewPanel(t);if(!r)throw new Error("No webview found");let s=b.revive(e),a=this._extHostDocuments.getDocument(s);await o.provider.moveCustomTextEditor(a,r,me.None)}async $undo(t,e,n,o){return this.getCustomDocumentEntry(e,t).undo(n,o)}async $redo(t,e,n,o){return this.getCustomDocumentEntry(e,t).redo(n,o)}async $revert(t,e,n){let o=this.getCustomDocumentEntry(e,t);await this.getCustomEditorProvider(e).revertCustomDocument(o.document,n),o.disposeBackup()}async $onSave(t,e,n){let o=this.getCustomDocumentEntry(e,t);await this.getCustomEditorProvider(e).saveCustomDocument(o.document,n),o.disposeBackup()}async $onSaveAs(t,e,n,o){let r=this.getCustomDocumentEntry(e,t);return this.getCustomEditorProvider(e).saveCustomDocumentAs(r.document,b.revive(n),o)}async $backup(t,e,n){let o=this.getCustomDocumentEntry(e,t),s=await this.getCustomEditorProvider(e).backupCustomDocument(o.document,{destination:o.getNewBackupUri()},n);return o.updateBackup(s),s.id}getCustomDocumentEntry(t,e){let n=this._documents.get(t,b.revive(e));if(!n)throw new Error("No custom document found");return n}getCustomEditorProvider(t){let n=this._editorProviders.get(t)?.provider;if(!n||!fw(n))throw new Error("Custom document is not editable");return n}};function fw(i){return!!i.onDidChangeCustomDocument}function oQ(i){return typeof i.resolveCustomTextEditor=="function"}function h5(i){return typeof i.resolveCustomTextEditorInlineDiff=="function"}function v5(i){return typeof i.resolveCustomTextEditorSideBySideDiff=="function"}function b5(i){return typeof i.resolveCustomEditorInlineDiff=="function"}function y5(i){return typeof i.resolveCustomEditorSideBySideDiff=="function"}function rQ(i){return typeof i.undo=="function"&&typeof i.redo=="function"}function iQ(i){let t=i.scheme===B.file||i.scheme===B.untitled?i.fsPath:i.toString();return Yn(t)+""}var vw=class i{constructor(t,e,n,o,r,s,a,l){this._name=t;this._owner=e;this._maxDiagnosticsTotal=n;this._maxDiagnosticsPerFile=o;this._modelVersionIdProvider=r;this._isDisposed=!1;this._maxDiagnosticsTotal=Math.max(o,n),this.#n=new je(d=>s.getComparisonKey(d)),this.#e=a,this.#t=l}#e;#t;#n;dispose(){this._isDisposed||(this.#t.fire([...this.#n.keys()]),this.#e?.$clear(this._owner),this.#n.clear(),this._isDisposed=!0)}get name(){return this._checkDisposed(),this._name}set(t,e){if(!t){this.clear();return}this._checkDisposed();let n=[];if(b.isUri(t)){if(!e){this.delete(t);return}this.#n.set(t,nt(e)),n=[t]}else if(Array.isArray(t)){n=[];let s;t=[...t].sort(i._compareIndexedTuplesByUri);for(let a of t){let[l,d]=a;if((!s||l.toString()!==s.toString())&&(s&&this.#n.get(s).length===0&&this.#n.delete(s),s=l,n.push(l),this.#n.set(l,[])),d)this.#n.get(l)?.push(...nt(d));else{let c=this.#n.get(l);c&&(c.length=0)}}}if(this.#t.fire(n),!this.#e)return;let o=[],r=0;for(let s of n){let a=[],l=this.#n.get(s);if(l)if(l.length>this._maxDiagnosticsPerFile){a=[];let d=[0,1,2,3];e:for(let c=0;c<4;c++)for(let u of l)if(u.severity===d[c]&&a.push({...ja.from(u),modelVersionId:this._modelVersionIdProvider(s)})===this._maxDiagnosticsPerFile)break e;a.push({severity:2,message:p(3346,null,l.length-this._maxDiagnosticsPerFile),startLineNumber:a[a.length-1].startLineNumber,startColumn:a[a.length-1].startColumn,endLineNumber:a[a.length-1].endLineNumber,endColumn:a[a.length-1].endColumn})}else a=l.map(d=>({...ja.from(d),modelVersionId:this._modelVersionIdProvider(s)}));if(o.push([s,a]),r+=a.length,r>this._maxDiagnosticsTotal)break}this.#e.$changeMany(this._owner,o)}delete(t){this._checkDisposed(),this.#t.fire([t]),this.#n.delete(t),this.#e?.$changeMany(this._owner,[[t,void 0]])}clear(){this._checkDisposed(),this.#t.fire([...this.#n.keys()]),this.#n.clear(),this.#e?.$clear(this._owner)}forEach(t,e){this._checkDisposed();for(let[n,o]of this)t.call(e,n,o,this)}*[Symbol.iterator](){this._checkDisposed();for(let t of this.#n.keys())yield[t,this.get(t)]}get(t){this._checkDisposed();let e=this.#n.get(t);return Array.isArray(e)?Object.freeze(e.slice(0)):[]}has(t){return this._checkDisposed(),Array.isArray(this.#n.get(t))}_checkDisposed(){if(this._isDisposed)throw new Error("illegal state - object is disposed")}static _compareIndexedTuplesByUri(t,e){return t[0].toString()<e[0].toString()?-1:t[0].toString()>e[0].toString()?1:0}},ui=class{constructor(t,e,n,o){this._logService=e;this._fileSystemInfoService=n;this._extHostDocumentsAndEditors=o;this._collections=new Map;this._onDidChangeDiagnostics=new fI({merge:t=>t.flat(),delay:50});this.onDidChangeDiagnostics=ye.map(this._onDidChangeDiagnostics.event,ui._mapper);this._proxy=t.getProxy(F.MainThreadDiagnostics)}static{this._idPool=0}static{this._maxDiagnosticsPerFile=1e3}static{this._maxDiagnosticsTotal=1.1*this._maxDiagnosticsPerFile}static _mapper(t){let e=new je;for(let n of t)e.set(n,n);return{uris:Object.freeze(Array.from(e.values()))}}createDiagnosticCollection(t,e){let{_collections:n,_proxy:o,_onDidChangeDiagnostics:r,_logService:s,_fileSystemInfoService:a,_extHostDocumentsAndEditors:l}=this,d=new class{$changeMany(m,g){o.$changeMany(m,g),s.trace("[DiagnosticCollection] change many (extension, owner, uris)",t.value,m,g.length===0?"CLEARING":g)}$clear(m){o.$clear(m),s.trace("[DiagnosticCollection] remove all (extension, owner)",t.value,m)}dispose(){o.dispose()}},c;if(!e)e="_generated_diagnostic_collection_name_#"+ui._idPool++,c=e;else if(!n.has(e))c=e;else{this._logService.warn(`DiagnosticCollection with name '${e}' does already exist.`);do c=e+ui._idPool++;while(n.has(c))}return new class extends vw{constructor(){super(e,c,ui._maxDiagnosticsTotal,ui._maxDiagnosticsPerFile,m=>l.getDocument(m)?.version,a.extUri,d,r),n.set(c,this)}dispose(){super.dispose(),n.delete(c)}}}getDiagnostics(t){if(t)return this._getDiagnostics(t);{let e=new Map,n=[];for(let o of this._collections.values())o.forEach((r,s)=>{let a=e.get(r.toString());typeof a>"u"&&(a=n.length,e.set(r.toString(),a),n.push([r,[]])),n[a][1]=n[a][1].concat(...s)});return n}}_getDiagnostics(t){let e=[];for(let n of this._collections.values())n.has(t)&&(e=e.concat(n.get(t)));return e}$acceptMarkersChange(t){if(!this._mirrorCollection){let e="_generated_mirror",n=new vw(e,e,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,o=>{},this._fileSystemInfoService.extUri,void 0,this._onDidChangeDiagnostics);this._collections.set(e,n),this._mirrorCollection=n}for(let[e,n]of t)this._mirrorCollection.set(b.revive(e),n.map(ja.to))}};ui=D([C(1,ne),C(2,Xr)],ui);var bw=class{constructor(t){this._proxy=t.getProxy(F.MainThreadDialogs)}showOpenDialog(t){return this._proxy.$showOpenDialog(t).then(e=>e?e.map(n=>b.revive(n)):void 0)}showSaveDialog(t){return this._proxy.$showSaveDialog(t).then(e=>e?b.revive(e):void 0)}};var yw=class i{constructor(t,e,n){this._documentsAndEditors=e;this._logService=n;this._documentContentProviders=new Map;this._proxy=t.getProxy(F.MainThreadDocumentContentProviders)}static{this._handlePool=0}registerTextDocumentContentProvider(t,e){if(Object.keys(B).indexOf(t)>=0)throw new Error(`scheme '${t}' already registered`);let n=i._handlePool++;this._documentContentProviders.set(n,e),this._proxy.$registerTextContentProvider(n,t);let o;if(typeof e.onDidChange=="function"){let r;o=e.onDidChange(async s=>{if(s.scheme!==t){this._logService.warn(`Provider for scheme '${t}' is firing event for schema '${s.scheme}' which will be IGNORED`);return}if(!this._documentsAndEditors.getDocument(s))return;r&&await r;let a=this.$provideTextDocumentContent(n,s).then(async l=>{if(!l&&typeof l!="string")return;let d=this._documentsAndEditors.getDocument(s);if(!d)return;let c=TI(l);if(!d.equalLines(c))return this._proxy.$onVirtualDocumentChange(s,l)}).catch(Qe).finally(()=>{r===a&&(r=void 0)});r=a})}return new xe(()=>{this._documentContentProviders.delete(n)&&this._proxy.$unregisterTextContentProvider(n),o&&(o.dispose(),o=void 0)})}$provideTextDocumentContent(t,e){let n=this._documentContentProviders.get(t);return n?Promise.resolve(n.provideTextDocumentContent(b.revive(e),me.None)):Promise.reject(new Error(`unsupported uri-scheme: ${e.scheme}`))}};var Iw=class{constructor(t,e,n,o={timeout:1500,errors:3}){this._logService=t;this._documents=e;this._mainThreadBulkEdits=n;this._thresholds=o;this._callbacks=new mo;this._badListeners=new WeakMap}dispose(){this._callbacks.clear()}getOnWillSaveTextDocumentEvent(t){return(e,n,o)=>{let s={dispose:this._callbacks.push([e,n,t])};return Array.isArray(o)&&o.push(s),s}}async $participateInSave(t,e){let n=b.revive(t),o=!1,r=setTimeout(()=>o=!0,this._thresholds.timeout),s=[];try{for(let a of[...this._callbacks]){if(o)break;let l=this._documents.getDocument(n),d=await this._deliverEventAsyncAndBlameBadListeners(a,{document:l,reason:hb.to(e)});s.push(d)}}finally{clearTimeout(r)}return s}_deliverEventAsyncAndBlameBadListeners([t,e,n],o){let r=this._badListeners.get(t);return typeof r=="number"&&r>this._thresholds.errors?Promise.resolve(!1):this._deliverEventAsync(n,t,e,o).then(()=>!0,s=>{if(this._logService.error(`onWillSaveTextDocument-listener from extension '${n.identifier.value}' threw ERROR`),this._logService.error(s),!(s instanceof Error)||s.message!=="concurrent_edits"){let a=this._badListeners.get(t);this._badListeners.set(t,a?a+1:1),typeof a=="number"&&a>this._thresholds.errors&&this._logService.info(`onWillSaveTextDocument-listener from extension '${n.identifier.value}' will now be IGNORED because of timeouts and/or errors`)}return!1})}_deliverEventAsync(t,e,n,o){let r=[],s=Date.now(),{document:a,reason:l}=o,{version:d}=a,c=Object.freeze({document:a,reason:l,waitUntil(u){if(Object.isFrozen(r))throw ip("waitUntil can not be called async");r.push(Promise.resolve(u))}});try{e.apply(n,[c])}catch(u){return Promise.reject(u)}return Object.freeze(r),new Promise((u,m)=>{let g=setTimeout(()=>m(new Error("timeout")),this._thresholds.timeout);return Promise.all(r).then(h=>{this._logService.debug(`onWillSaveTextDocument-listener from extension '${t.identifier.value}' finished after ${Date.now()-s}ms`),clearTimeout(g),u(h)}).catch(h=>{clearTimeout(g),m(h)})}).then(u=>{let m={edits:[]};for(let g of u)if(Array.isArray(g)&&g.every(h=>h instanceof Bn))for(let{newText:h,newEol:f,range:I}of g)m.edits.push({resource:a.uri,versionId:void 0,textEdit:{range:I&&G.from(I),text:h,eol:f&&fu.from(f)}});if(m.edits.length!==0)return d===a.version?this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new Yt(m)):Promise.reject(new Error("concurrent_edits"))})}};var xw=class{constructor(t,e){this._toDispose=new z;this._onDidAddDocument=this._toDispose.add(new E);this._onDidRemoveDocument=this._toDispose.add(new E);this._onDidChangeDocument=this._toDispose.add(new E);this._onDidChangeDocumentWithReason=this._toDispose.add(new E);this._onDidSaveDocument=this._toDispose.add(new E);this.onDidAddDocument=this._onDidAddDocument.event;this.onDidRemoveDocument=this._onDidRemoveDocument.event;this.onDidChangeDocument=this._onDidChangeDocument.event;this.onDidChangeDocumentWithReason=this._onDidChangeDocumentWithReason.event;this.onDidSaveDocument=this._onDidSaveDocument.event;this._documentLoader=new Map;this._proxy=t.getProxy(F.MainThreadDocuments),this._documentsAndEditors=e,this._documentsAndEditors.onDidRemoveDocuments(n=>{for(let o of n)this._onDidRemoveDocument.fire(o.document)},void 0,this._toDispose),this._documentsAndEditors.onDidAddDocuments(n=>{for(let o of n)this._onDidAddDocument.fire(o.document)},void 0,this._toDispose)}dispose(){this._toDispose.dispose()}getAllDocumentData(){return[...this._documentsAndEditors.allDocuments()]}getDocumentData(t){if(!t)return;let e=this._documentsAndEditors.getDocument(t);if(e)return e}getDocument(t){let e=this.getDocumentData(t);if(!e?.document)throw new Error(`Unable to retrieve document from URI '${t}'`);return e.document}ensureDocumentData(t,e){let n=this._documentsAndEditors.getDocument(t);if(n&&(!e?.encoding||n.document.encoding===e.encoding))return Promise.resolve(n);let o=this._documentLoader.get(t.toString());return o?e?.encoding&&(o=o.then(r=>r.document.encoding!==e.encoding?this.ensureDocumentData(t,e):r)):(o=this._proxy.$tryOpenDocument(t,e).then(r=>{this._documentLoader.delete(t.toString());let s=b.revive(r);return hi(this._documentsAndEditors.getDocument(s))},r=>(this._documentLoader.delete(t.toString()),Promise.reject(r))),this._documentLoader.set(t.toString(),o)),o}createDocumentData(t){return this._proxy.$tryCreateDocument(t).then(e=>b.revive(e))}$acceptModelLanguageChanged(t,e){let n=b.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");this._onDidRemoveDocument.fire(o.document),o._acceptLanguageId(e),this._onDidAddDocument.fire(o.document)}$acceptModelSaved(t){let e=b.revive(t),n=this._documentsAndEditors.getDocument(e);if(!n)throw new Error("unknown document");this.$acceptDirtyStateChanged(t,!1),this._onDidSaveDocument.fire(n.document)}$acceptDirtyStateChanged(t,e){let n=b.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");o._acceptIsDirty(e),this._onDidChangeDocument.fire({document:o.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:o.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptEncodingChanged(t,e){let n=b.revive(t),o=this._documentsAndEditors.getDocument(n);if(!o)throw new Error("unknown document");o._acceptEncoding(e),this._onDidChangeDocument.fire({document:o.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:o.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptModelChanged(t,e,n){let o=b.revive(t),r=this._documentsAndEditors.getDocument(o);if(!r)throw new Error("unknown document");r._acceptIsDirty(n),r.onEvents(e);let s;e.isUndoing?s=1:e.isRedoing&&(s=2),this._onDidChangeDocument.fire(Xh({document:r.document,contentChanges:e.changes.map(a=>({range:G.to(a.range),rangeOffset:a.rangeOffset,rangeLength:a.rangeLength,text:a.text})),reason:s})),this._onDidChangeDocumentWithReason.fire(Xh({document:r.document,contentChanges:e.changes.map(a=>({range:G.to(a.range),rangeOffset:a.rangeOffset,rangeLength:a.rangeLength,text:a.text})),reason:s,detailedReason:e.detailedReason?{source:e.detailedReason.source,metadata:e.detailedReason}:void 0}))}setWordDefinitionFor(t,e){n4(t,e)}};var Sw=class{constructor(t){this._provider=new Map;this._onDidChange=new E;this.onDidChange=this._onDidChange.event;this._allKnownModels=new Set;this._handlePool=0;this._proxy=t.getProxy(F.MainThreadEmbeddings)}registerEmbeddingsProvider(t,e,n){if(this._allKnownModels.has(e))throw new Error("An embeddings provider for this model is already registered");let o=this._handlePool++;return this._proxy.$registerEmbeddingProvider(o,e),this._provider.set(o,{id:e,provider:n}),Q(()=>{this._allKnownModels.delete(e),this._proxy.$unregisterEmbeddingProvider(o),this._provider.delete(o)})}async computeEmbeddings(t,e,n){n??=me.None;let o=!1;typeof e=="string"&&(e=[e],o=!0);let r=await this._proxy.$computeEmbeddings(t,e,n);if(r.length!==e.length)throw new Error;if(o){if(r.length!==1)throw new Error;return r[0]}return r}async $provideEmbeddings(t,e,n){let o=this._provider.get(t);if(!o)return[];let r=await o.provider.provideEmbeddings(e,n);return r||[]}get embeddingsModels(){return Array.from(this._allKnownModels)}$acceptEmbeddingModels(t){this._allKnownModels=new Set(t),this._onDidChange.fire()}};var Cw=class{constructor(t){this._AiEmbeddingVectorProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(F.MainThreadAiEmbeddingVector)}async $provideAiEmbeddingVector(t,e,n){if(this._AiEmbeddingVectorProviders.size===0)throw new Error("No embedding vector providers registered");let o=this._AiEmbeddingVectorProviders.get(t);if(!o)throw new Error("Embedding vector provider not found");let r=await o.provideEmbeddingVector(e,n);if(!r)throw new Error("Embedding vector provider returned undefined");return r}registerEmbeddingVectorProvider(t,e,n){let o=this._nextHandle;return this._nextHandle++,this._AiEmbeddingVectorProviders.set(o,n),this._proxy.$registerAiEmbeddingVectorProvider(e,o),new xe(()=>{this._proxy.$unregisterAiEmbeddingVectorProvider(o),this._AiEmbeddingVectorProviders.delete(o)})}};var aO=class{constructor(t,e,n){let o=new Uint8Array(t*e);for(let r=0,s=t*e;r<s;r++)o[r]=n;this._data=o,this.rows=t,this.cols=e}get(t,e){return this._data[t*this.cols+e]}set(t,e,n){this._data[t*this.cols+e]=n}},py=class{constructor(t){let e=0,n=0;for(let r=0,s=t.length;r<s;r++){let[a,l,d]=t[r];l>e&&(e=l),a>n&&(n=a),d>n&&(n=d)}e++,n++;let o=new aO(n,e,0);for(let r=0,s=t.length;r<s;r++){let[a,l,d]=t[r];o.set(a,l,d)}this._states=o,this._maxCharCode=e}nextState(t,e){return e<0||e>=this._maxCharCode?0:this._states.get(t,e)}},sO=null;function sQ(){return sO===null&&(sO=new py([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),sO}var uy=null;function aQ(){if(uy===null){uy=new Ng(0);let i=` 	<>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026|`;for(let e=0;e<i.length;e++)uy.set(i.charCodeAt(e),1);let t=".,;:";for(let e=0;e<t.length;e++)uy.set(t.charCodeAt(e),2)}return uy}var Tw=class i{static _createLink(t,e,n,o,r){let s=r-1;do{let a=e.charCodeAt(s);if(t.get(a)!==2)break;s--}while(s>o);if(o>0){let a=e.charCodeAt(o-1),l=e.charCodeAt(s);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&s--}return{range:{startLineNumber:n,startColumn:o+1,endLineNumber:n,endColumn:s+2},url:e.substring(o,s+1)}}static computeLinks(t,e=sQ()){let n=aQ(),o=[];for(let r=1,s=t.getLineCount();r<=s;r++){let a=t.getLineContent(r),l=a.length,d=0,c=0,u=0,m=1,g=!1,h=!1,f=!1,I=!1;for(;d<l;){let x=!1,T=a.charCodeAt(d);if(m===13){let w;switch(T){case 40:g=!0,w=0;break;case 41:w=g?0:1;break;case 91:f=!0,h=!0,w=0;break;case 93:f=!1,w=h?0:1;break;case 123:I=!0,w=0;break;case 125:w=I?0:1;break;case 39:case 34:case 96:u===T?w=1:u===39||u===34||u===96?w=0:w=1;break;case 42:w=u===42?1:0;break;case 32:w=f?0:1;break;default:w=n.get(T)}w===1&&(o.push(i._createLink(n,a,r,c,d)),x=!0)}else if(m===12){let w;T===91?(h=!0,w=0):w=n.get(T),w===1?x=!0:m=13}else m=e.nextState(m,T),m===0&&(x=!0);x&&(m=1,g=!1,h=!1,I=!1,c=d+1,u=T),d++}m===13&&o.push(i._createLink(n,a,r,c,l))}return o}};var lO=class{constructor(){this._schemes=[]}add(t){this._stateMachine=void 0,this._schemes.push(t)}delete(t){let e=this._schemes.indexOf(t);e>=0&&(this._schemes.splice(e,1),this._stateMachine=void 0)}_initStateMachine(){if(!this._stateMachine){let t=this._schemes.sort(),e=[],n,o,r=14,s=14;for(let a of t){let l=n?rF(n,a):0;for(l===0?o=1:o=s;l<a.length;l++)l+1===a.length?(r=s,s=9):s+=1,e.push([o,a.toUpperCase().charCodeAt(l),s]),e.push([o,a.toLowerCase().charCodeAt(l),s]),o=s;n=a,s=r}e.push([9,58,10]),e.push([10,47,12]),this._stateMachine=new py(e)}}provideDocumentLinks(t){this._initStateMachine();let e=[],n=Tw.computeLinks({getLineContent(o){return t.lineAt(o-1).text},getLineCount(){return t.lineCount}},this._stateMachine);for(let o of n){let r=Qa.to(o);r.target&&e.push(r)}return e}},Ew=class i{constructor(t,e){this._extHostLanguageFeatures=e;this._linkProvider=new lO;this._fsProvider=new Map;this._registeredSchemes=new Set;this._watches=new Map;this._handlePool=0;this._proxy=t.getProxy(F.MainThreadFileSystem)}dispose(){this._linkProviderRegistration?.dispose()}registerFileSystemProvider(t,e,n,o={}){if(i._validateFileSystemProvider(n),this._registeredSchemes.has(e))throw new Error(`a provider for the scheme '${e}' is already registered`);this._linkProviderRegistration||(this._linkProviderRegistration=this._extHostLanguageFeatures.registerDocumentLinkProvider(t,"*",this._linkProvider));let r=this._handlePool++;this._linkProvider.add(e),this._registeredSchemes.add(e),this._fsProvider.set(r,n);let s=2;o.isCaseSensitive&&(s+=1024),o.isReadonly&&(s+=2048),typeof n.copy=="function"&&(s+=8),typeof n.open=="function"&&typeof n.close=="function"&&typeof n.read=="function"&&typeof n.write=="function"&&(A(t,"fsChunks"),s+=4);let a;o.isReadonly&&Vo(o.isReadonly)&&o.isReadonly.value!==""&&(a={value:o.isReadonly.value,isTrusted:o.isReadonly.isTrusted,supportThemeIcons:o.isReadonly.supportThemeIcons,supportHtml:o.isReadonly.supportHtml,baseUri:o.isReadonly.baseUri,uris:o.isReadonly.uris}),this._proxy.$registerFileSystemProvider(r,e,s,a).catch(d=>{console.error(`FAILED to register filesystem provider of ${t.identifier.value}-extension for the scheme ${e}`),console.error(d)});let l=n.onDidChangeFile(d=>{let c=[];for(let u of d){let{uri:m,type:g}=u;if(m.scheme!==e)continue;let h;switch(g){case 1:h=0;break;case 2:h=1;break;case 3:h=2;break;default:throw new Error("Unknown FileChangeType")}c.push({resource:m,type:h})}this._proxy.$onFileSystemChange(r,c)});return Q(()=>{l.dispose(),this._linkProvider.delete(e),this._registeredSchemes.delete(e),this._fsProvider.delete(r),this._proxy.$unregisterProvider(r)})}static _validateFileSystemProvider(t){if(!t)throw new Error("MISSING provider");if(typeof t.watch!="function")throw new Error("Provider does NOT implement watch");if(typeof t.stat!="function")throw new Error("Provider does NOT implement stat");if(typeof t.readDirectory!="function")throw new Error("Provider does NOT implement readDirectory");if(typeof t.createDirectory!="function")throw new Error("Provider does NOT implement createDirectory");if(typeof t.readFile!="function")throw new Error("Provider does NOT implement readFile");if(typeof t.writeFile!="function")throw new Error("Provider does NOT implement writeFile");if(typeof t.delete!="function")throw new Error("Provider does NOT implement delete");if(typeof t.rename!="function")throw new Error("Provider does NOT implement rename")}static _asIStat(t){let{type:e,ctime:n,mtime:o,size:r,permissions:s}=t;return{type:e,ctime:n,mtime:o,size:r,permissions:s}}$stat(t,e){return Promise.resolve(this._getFsProvider(t).stat(b.revive(e))).then(n=>i._asIStat(n))}$readdir(t,e){return Promise.resolve(this._getFsProvider(t).readDirectory(b.revive(e)))}$readFile(t,e){return Promise.resolve(this._getFsProvider(t).readFile(b.revive(e))).then(n=>W.wrap(n))}$writeFile(t,e,n,o){return Promise.resolve(this._getFsProvider(t).writeFile(b.revive(e),n.buffer,o))}$delete(t,e,n){return Promise.resolve(this._getFsProvider(t).delete(b.revive(e),n))}$rename(t,e,n,o){return Promise.resolve(this._getFsProvider(t).rename(b.revive(e),b.revive(n),o))}$copy(t,e,n,o){let r=this._getFsProvider(t);if(!r.copy)throw new Error('FileSystemProvider does not implement "copy"');return Promise.resolve(r.copy(b.revive(e),b.revive(n),o))}$mkdir(t,e){return Promise.resolve(this._getFsProvider(t).createDirectory(b.revive(e)))}$watch(t,e,n,o){let r=this._getFsProvider(t).watch(b.revive(n),o);this._watches.set(e,r)}$unwatch(t,e){let n=this._watches.get(e);n&&(n.dispose(),this._watches.delete(e))}$open(t,e,n){let o=this._getFsProvider(t);if(!o.open)throw new Error('FileSystemProvider does not implement "open"');return Promise.resolve(o.open(b.revive(e),n))}$close(t,e){let n=this._getFsProvider(t);if(!n.close)throw new Error('FileSystemProvider does not implement "close"');return Promise.resolve(n.close(e))}$read(t,e,n,o){let r=this._getFsProvider(t);if(!r.read)throw new Error('FileSystemProvider does not implement "read"');let s=W.alloc(o);return Promise.resolve(r.read(e,n,s.buffer,0,o)).then(a=>s.slice(0,a))}$write(t,e,n,o){let r=this._getFsProvider(t);if(!r.write)throw new Error('FileSystemProvider does not implement "write"');return Promise.resolve(r.write(e,n,o.buffer,0,o.byteLength))}_getFsProvider(t){let e=this._fsProvider.get(t);if(!e){let n=new Error;throw n.name="ENOPRO",n.message="no provider",n}return e}};function _w(i){return typeof i.correlationId=="number"}function I5(i){return i.recursive===!0}var ww=class i extends U{constructor(e,n,o,r){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=o;this.options=r;this.watcherDisposables=this._register(new cn);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new z;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()}},kw=class extends ww{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},Pw=class extends ww{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function uO(i){return i.map(t=>({type:t.type,resource:b.revive(t.resource),cId:t.cId}))}function x5(i){let t=new cO;for(let e of i)t.processEvent(e);return t.coalesce()}function pO(i,t){return typeof t=="string"&&!t.startsWith(Ta)&&!xn(t)?{base:i,pattern:t}:t}function mO(i,t,e){let n=[];for(let o of t)n.push(Po(pO(i,o),{ignoreCase:e}));return n}var cO=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return Je?t.resource.fsPath:t.resource.fsPath.toLowerCase()}processEvent(t){let e=this.mapPathToChange.get(this.toKey(t)),n=!1;if(e){let o=e.type,r=t.type;e.resource.fsPath!==t.resource.fsPath&&(t.type===2||t.type===1)?n=!0:o===1&&r===2?(this.mapPathToChange.delete(this.toKey(t)),this.coalesced.delete(e)):o===2&&r===1?e.type=0:o===1&&r===0||(e.type=r)}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,o)=>n.resource.fsPath.length-o.resource.fsPath.length).filter(n=>e.some(o=>U2(n.resource.fsPath,o,!Je))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function S5(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 C5(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 gO=class{constructor(t,e,n,o,r,s,a,l){this.session=Math.random();this._onDidCreate=new E;this._onDidChange=new E;this._onDidDelete=new E;this._config=0,l.ignoreCreateEvents&&(this._config+=1),l.ignoreChangeEvents&&(this._config+=2),l.ignoreDeleteEvents&&(this._config+=4);let d=typeof a=="string"?!((n.getCapabilities(B.file)??0)&1024):n.extUri.ignorePathCasing(b.revive(a.baseUri)),c=a;d&&(c=typeof a=="string"?a.toLowerCase():{base:a.base.toLowerCase(),pattern:a.pattern.toLowerCase()});let u=Po(c,{ignoreCase:!1}),m=typeof a=="string",g=!1,h=s(f=>{if(!(typeof f.session=="number"&&f.session!==this.session)&&!(g&&typeof f.session>"u")){if(!l.ignoreCreateEvents)for(let{uri:I,lowerCaseFsPath:x}of f.created)u(d?x:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidCreate.fire(I);if(!l.ignoreChangeEvents)for(let{uri:I,lowerCaseFsPath:x}of f.changed)u(d?x:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidChange.fire(I);if(!l.ignoreDeleteEvents)for(let{uri:I,lowerCaseFsPath:x}of f.deleted)u(d?x:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidDelete.fire(I)}});this._disposable=xe.from(this.ensureWatching(t,o,e,r,a,l,!1),this._onDidCreate,this._onDidChange,this._onDidDelete,h)}get ignoreCreateEvents(){return!!(this._config&1)}get ignoreChangeEvents(){return!!(this._config&2)}get ignoreDeleteEvents(){return!!(this._config&4)}ensureWatching(t,e,n,o,r,s,a){let l=xe.from();if(typeof r=="string"||s.ignoreChangeEvents&&s.ignoreCreateEvents&&s.ignoreDeleteEvents)return l;let d=t.getProxy(F.MainThreadFileSystemEventService),c=!1;(r.pattern.includes(Ta)||r.pattern.includes(xS))&&(c=!0);let u=[],m,g;if(a)(s.ignoreChangeEvents||s.ignoreCreateEvents||s.ignoreDeleteEvents)&&(g=14,s.ignoreChangeEvents&&(g&=-3),s.ignoreCreateEvents&&(g&=-5),s.ignoreDeleteEvents&&(g&=-9));else if(c&&u.length===0){let h=e.getWorkspaceFolder(b.revive(r.baseUri)),f=n.getConfiguration("files",h).get("watcherExclude");if(f)for(let I in f)I&&f[I]===!0&&u.push(I)}else if(!c){let h=e.getWorkspaceFolder(b.revive(r.baseUri));if(h){let f=n.getConfiguration("files",h).get("watcherExclude");if(f){for(let I in f)if(I&&f[I]===!0){let x=`${vr(I,"/")}/${Ta}`;m||(m=[]),m.push(pO(h.uri.fsPath,x))}}if(!m||m.length===0)return l}}return d.$watch(o.identifier.value,this.session,r.baseUri,{recursive:c,excludes:u,includes:m,filter:g},!!a),xe.from({dispose:()=>d.$unwatch(this.session)})}dispose(){this._disposable.dispose()}get onDidCreate(){return this._onDidCreate.event}get onDidChange(){return this._onDidChange.event}get onDidDelete(){return this._onDidDelete.event}},fO=class i{constructor(t){this._events=t;this._created=new pt(()=>this._events.created.map(i._revive));this._changed=new pt(()=>this._events.changed.map(i._revive));this._deleted=new pt(()=>this._events.deleted.map(i._revive));this.session=this._events.session}get created(){return this._created.value}get changed(){return this._changed.value}get deleted(){return this._deleted.value}static _revive(t){let e=b.revive(t);return{uri:e,lowerCaseFsPath:e.fsPath.toLowerCase()}}},Dw=class{constructor(t,e,n){this._mainContext=t;this._logService=e;this._extHostDocumentsAndEditors=n;this._onFileSystemEvent=new E;this._onDidRenameFile=new E;this._onDidCreateFile=new E;this._onDidDeleteFile=new E;this._onWillRenameFile=new os;this._onWillCreateFile=new os;this._onWillDeleteFile=new os;this.onDidRenameFile=this._onDidRenameFile.event;this.onDidCreateFile=this._onDidCreateFile.event;this.onDidDeleteFile=this._onDidDeleteFile.event}createFileSystemWatcher(t,e,n,o,r,s){return new gO(this._mainContext,e,n,t,o,this._onFileSystemEvent.event,zo.from(r),s)}$onFileEvent(t){this._onFileSystemEvent.fire(new fO(t))}$onDidRunFileOperation(t,e){switch(t){case 2:this._onDidRenameFile.fire(Object.freeze({files:e.map(n=>({oldUri:b.revive(n.source),newUri:b.revive(n.target)}))}));break;case 1:this._onDidDeleteFile.fire(Object.freeze({files:e.map(n=>b.revive(n.target))}));break;case 0:case 3:this._onDidCreateFile.fire(Object.freeze({files:e.map(n=>b.revive(n.target))}));break;default:}}getOnWillRenameFileEvent(t){return this._createWillExecuteEvent(t,this._onWillRenameFile)}getOnWillCreateFileEvent(t){return this._createWillExecuteEvent(t,this._onWillCreateFile)}getOnWillDeleteFileEvent(t){return this._createWillExecuteEvent(t,this._onWillDeleteFile)}_createWillExecuteEvent(t,e){return(n,o,r)=>{let s=function(l){n.call(o,l)};return s.extension=t,e.event(s,void 0,r)}}async $onWillRunFileOperation(t,e,n,o){switch(t){case 2:return await this._fireWillEvent(this._onWillRenameFile,{files:e.map(r=>({oldUri:b.revive(r.source),newUri:b.revive(r.target)}))},n,o);case 1:return await this._fireWillEvent(this._onWillDeleteFile,{files:e.map(r=>b.revive(r.target))},n,o);case 0:case 3:return await this._fireWillEvent(this._onWillCreateFile,{files:e.map(r=>b.revive(r.target))},n,o)}}async _fireWillEvent(t,e,n,o){let r=new Set,s=[];if(await t.fireAsync(e,o,async(l,d)=>{let c=Date.now(),u=await Promise.resolve(l);u instanceof Er&&(s.push([d.extension,u]),r.add(d.extension.displayName??d.extension.identifier.value)),Date.now()-c>n&&this._logService.warn("SLOW file-participant",d.extension.identifier)}),o.isCancellationRequested||s.length===0)return;let a={edits:[]};for(let[,l]of s){let{edits:d}=bo.from(l,{getTextDocumentVersion:c=>this._extHostDocumentsAndEditors.getDocument(c)?.version,getNotebookDocumentVersion:()=>{}});a.edits=a.edits.concat(d)}return{edit:a,extensionNames:Array.from(r)}}};var Rw=class{constructor(t,e,n,o,r){this._extHostNotebooks=e;this._textDocumentsAndEditors=n;this._commands=o;let s=new Le("interactive.open","_interactive.open","Open interactive window and return notebook editor and input URI",[new Z("showOptions","Show Options",a=>!0,a=>a),new Z("resource","Interactive resource Uri",a=>!0,a=>a),new Z("controllerId","Notebook controller Id",a=>!0,a=>a),new Z("title","Interactive editor title",a=>!0,a=>a)],new Re("Notebook and input URI",a=>{if(r.debug("[ExtHostInteractive] open iw with notebook editor id",a.notebookEditorId),a.notebookEditorId!==void 0){let l=this._extHostNotebooks.getEditorById(a.notebookEditorId);return r.debug("[ExtHostInteractive] notebook editor found",l.id),{notebookUri:b.revive(a.notebookUri),inputUri:b.revive(a.inputUri),notebookEditor:l.apiEditor}}return r.debug("[ExtHostInteractive] notebook editor not found, uris for the interactive document",a.notebookUri,a.inputUri),{notebookUri:b.revive(a.notebookUri),inputUri:b.revive(a.inputUri)}}));this._commands.registerApiCommand(s)}$willAddInteractiveDocument(t,e,n,o){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:[{EOL:e,lines:[""],languageId:n,uri:t,isDirty:!1,versionId:1,encoding:"utf8"}]})}$willRemoveInteractiveDocument(t,e){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({removedDocuments:[t]})}};var Aw=class{constructor(t){this._handlePool=0;this._proxy=t.getProxy(F.MainThreadLabelService)}$registerResourceLabelFormatter(t){let e=this._handlePool++;return this._proxy.$registerResourceLabelFormatter(e,t),Q(()=>{this._proxy.$unregisterResourceLabelFormatter(e)})}};var Mw=class i extends We{constructor(t,e,n,o){super(t,e,n,o),this.selectionStartLineNumber=t,this.selectionStartColumn=e,this.positionLineNumber=n,this.positionColumn=o}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return i.selectionsEqual(this,t)}static selectionsEqual(t,e){return t.selectionStartLineNumber===e.selectionStartLineNumber&&t.selectionStartColumn===e.selectionStartColumn&&t.positionLineNumber===e.positionLineNumber&&t.positionColumn===e.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,e){return this.getDirection()===0?new i(this.startLineNumber,this.startColumn,t,e):new i(t,e,this.startLineNumber,this.startColumn)}getPosition(){return new On(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new On(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(t,e){return this.getDirection()===0?new i(t,e,this.endLineNumber,this.endColumn):new i(this.endLineNumber,this.endColumn,t,e)}static fromPositions(t,e=t){return new i(t.lineNumber,t.column,e.lineNumber,e.column)}static fromRange(t,e){return e===0?new i(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new i(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)}static liftSelection(t){return new i(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,e){if(t&&!e||!t&&e)return!1;if(!t&&!e)return!0;if(t.length!==e.length)return!1;for(let n=0,o=t.length;n<o;n++)if(!this.selectionsEqual(t[n],e[n]))return!1;return!0}static isISelection(t){return!!t&&typeof t.selectionStartLineNumber=="number"&&typeof t.selectionStartColumn=="number"&&typeof t.positionLineNumber=="number"&&typeof t.positionColumn=="number"}static createWithDirection(t,e,n,o,r){return r===0?new i(t,e,n,o):new i(n,o,t,e)}};var Lw=class i{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentSymbols(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentSymbols(n,e);if(!wh(o))return o[0]instanceof Hr?o.map(hM.from):i._asDocumentSymbolTree(o)}static _asDocumentSymbolTree(t){t=t.slice(0).sort((o,r)=>{let s=o.location.range.start.compareTo(r.location.range.start);return s===0&&(s=r.location.range.end.compareTo(o.location.range.end)),s});let e=[],n=[];for(let o of t){let r={name:o.name||"!!MISSING: name!!",kind:Vr.from(o.kind),tags:o.tags?.map(qa.from)||[],detail:"",containerName:o.containerName,range:G.from(o.location.range),selectionRange:G.from(o.location.range),children:[]};for(;;){if(n.length===0){n.push(r),e.push(r);break}let s=n[n.length-1];if(We.containsRange(s.range,r.range)&&!We.equalsRange(s.range,r.range)){s.children?.push(r),n.push(r);break}n.pop()}}return e}},kf=class{constructor(t,e,n,o,r,s){this._documents=t;this._commands=e;this._provider=n;this._extension=o;this._extTelemetry=r;this._logService=s;this._cache=new Ko("CodeLens");this._disposables=new Map}async provideCodeLenses(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideCodeLenses(n,e);if(!o||e.isCancellationRequested)return;let r=this._cache.add(o),s=new z;this._disposables.set(r,s);let a={cacheId:r,lenses:[]};for(let l=0;l<o.length;l++){if(!be.isRange(o[l].range)){console.warn("INVALID code lens, range is not defined",this._extension.identifier.value);continue}a.lenses.push({cacheId:[r,l],range:G.from(o[l].range),command:this._commands.toInternal(o[l].command,s)})}return a}async resolveCodeLens(t,e){let n=t.cacheId&&this._cache.get(...t.cacheId);if(!n)return;let o;if(typeof this._provider.resolveCodeLens!="function"||n.isResolved?o=n:o=await this._provider.resolveCodeLens(n,e),o||(o=n),e.isCancellationRequested)return;let r=t.cacheId&&this._disposables.get(t.cacheId[0]);if(r){if(!o.command){let s=new Error("INVALID code lens resolved, lacks command: "+this._extension.identifier.value);this._extTelemetry.onExtensionError(this._extension.identifier,s),this._logService.error(s);return}return t.command=this._commands.toInternal(o.command,r),t}}releaseCodeLenses(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}};function Yw(i){return Array.isArray(i)?i.map(Xm.from):i?[Xm.from(i)]:[]}var Ow=class{constructor(t,e){this._documents=t;this._provider=e}async provideDefinition(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideDefinition(o,r,n);return Yw(s)}},Nw=class{constructor(t,e){this._documents=t;this._provider=e}async provideDeclaration(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideDeclaration(o,r,n);return Yw(s)}},Uw=class{constructor(t,e){this._documents=t;this._provider=e}async provideImplementation(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideImplementation(o,r,n);return Yw(s)}},Fw=class{constructor(t,e){this._documents=t;this._provider=e}async provideTypeDefinition(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideTypeDefinition(o,r,n);return Yw(s)}},my=class i{constructor(t,e){this._documents=t;this._provider=e;this._hoverCounter=0;this._hoverMap=new Map}static{this.HOVER_MAP_MAX_SIZE=10}async provideHover(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e),a;if(n&&n.verbosityRequest){let u=n.verbosityRequest.previousHover.id,m=this._hoverMap.get(u);if(!m)throw new Error(`Hover with id ${u} not found`);let g={verbosityDelta:n.verbosityRequest.verbosityDelta,previousHover:m};a=await this._provider.provideHover(r,s,o,g)}else a=await this._provider.provideHover(r,s,o);if(!a||wh(a.contents))return;a.range||(a.range=r.getWordRangeAtPosition(s)),a.range||(a.range=new be(s,s));let l=Zm.from(a),d=this._hoverCounter;if(this._hoverMap.size===i.HOVER_MAP_MAX_SIZE){let u=Math.min(...this._hoverMap.keys());this._hoverMap.delete(u)}return this._hoverMap.set(d,a),this._hoverCounter+=1,{...l,id:d}}releaseHover(t){this._hoverMap.delete(t)}},Hw=class{constructor(t,e){this._documents=t;this._provider=e}async provideEvaluatableExpression(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideEvaluatableExpression(o,r,n);if(s)return yM.from(s)}},Vw=class{constructor(t,e){this._documents=t;this._provider=e}async provideInlineValues(t,e,n,o){let r=this._documents.getDocument(t),s=await this._provider.provideInlineValues(r,G.to(e),gb.to(n),o);if(Array.isArray(s))return s.map(a=>mb.from(a))}},Ww=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentHighlights(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideDocumentHighlights(o,r,n);if(Array.isArray(s))return s.map(gu.from)}},Bw=class{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}async provideMultiDocumentHighlights(t,e,n,o){let r=this._documents.getDocument(t),s=n.map(d=>{try{return this._documents.getDocument(d)}catch(c){this._logService.error("Error: Unable to retrieve document from URI: "+d+". Error message: "+c);return}}).filter(d=>d!==void 0),a=gt.to(e),l=await this._provider.provideMultiDocumentHighlights(r,a,s,o);if(Array.isArray(l))return l.map(IM.from)}},$w=class{constructor(t,e){this._documents=t;this._provider=e}async provideLinkedEditingRanges(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.provideLinkedEditingRanges(o,r,n);if(s&&Array.isArray(s.ranges))return{ranges:nt(s.ranges.map(G.from)),wordPattern:s.wordPattern}}},zw=class{constructor(t,e){this._documents=t;this._provider=e}async provideReferences(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e),a=await this._provider.provideReferences(r,s,n,o);if(Array.isArray(a))return a.map(vo.from)}},Pf=class i{constructor(t,e,n,o,r,s,a){this._documents=t;this._commands=e;this._diagnostics=n;this._provider=o;this._logService=r;this._extension=s;this._apiDeprecation=a;this._cache=new Ko("CodeAction");this._disposables=new Map}static{this._maxCodeActionsPerFile=1e3}async provideCodeActions(t,e,n,o){let r=this._documents.getDocument(t),s=Mw.isISelection(e)?Do.to(e):G.to(e),a=[];for(let g of this._diagnostics.getDiagnostics(t))if(s.intersection(g.range)&&a.push(g)>i._maxCodeActionsPerFile)break;let l={diagnostics:a,only:n.only?new kt(n.only):void 0,triggerKind:AM.to(n.trigger)},d=await this._provider.provideCodeActions(r,s,l,o);if(!ml(d)||o.isCancellationRequested)return;let c=this._cache.add(d),u=new z;this._disposables.set(c,u);let m=[];for(let g=0;g<d.length;g++){let h=d[g];if(h)if(i._isCommand(h)&&!(h instanceof Ts))this._apiDeprecation.report("CodeActionProvider.provideCodeActions - return commands",this._extension,"Return 'CodeAction' instances instead."),m.push({_isSynthetic:!0,title:h.title,command:this._commands.toInternal(h,u)});else{let f=h;l.only&&(f.kind?l.only.contains(f.kind)||this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${l.only.value}' requested but returned code action is of kind '${f.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`):this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${l.only.value}' requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`));let I=f.ranges??[];m.push({cacheId:[c,g],title:f.title,command:f.command&&this._commands.toInternal(f.command,u),diagnostics:f.diagnostics&&f.diagnostics.map(ja.from),edit:f.edit&&bo.from(f.edit,void 0),kind:f.kind&&f.kind.value,isPreferred:f.isPreferred,isAI:Oe(this._extension,"codeActionAI")?f.isAI:!1,ranges:Oe(this._extension,"codeActionRanges")?nt(I.map(G.from)):void 0,disabled:f.disabled?.reason})}}return{cacheId:c,actions:m}}async resolveCodeAction(t,e){let[n,o]=t,r=this._cache.get(n,o);if(!r||i._isCommand(r))return{};if(!this._provider.resolveCodeAction)return{};let s=await this._provider.resolveCodeAction(r,e)??r,a;s.edit&&(a=bo.from(s.edit,void 0));let l;if(s.command){let d=this._disposables.get(n);d&&(l=this._commands.toInternal(s.command,d))}return{edit:a,command:l}}releaseCodeActions(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}static _isCommand(t){return typeof t.command=="string"&&typeof t.title=="string"}},zu=class{constructor(t,e,n,o,r){this._proxy=t;this._documents=e;this._provider=n;this._handle=o;this._extension=r;this._editsCache=new Ko("DocumentPasteEdit.edits")}async prepareDocumentPaste(t,e,n,o){if(!this._provider.prepareDocumentPaste)return;this._cachedPrepare=void 0;let r=this._documents.getDocument(t),s=e.map(u=>G.to(u)),a=xu.toDataTransfer(n,()=>{throw new Zy});if(await this._provider.prepareDocumentPaste(r,s,a,o),o.isCancellationRequested)return;let l=Array.from(a).filter(([,u])=>!(u instanceof ud)),d=new Map,c=await Promise.all(Array.from(l,async([u,m])=>{let g=Pe();return d.set(g,m),[u,await mu.from(u,m,g)]}));return this._cachedPrepare=d,{items:c}}async providePasteEdits(t,e,n,o,r,s){if(!this._provider.provideDocumentPasteEdits)return[];let a=this._documents.getDocument(e),l=n.map(g=>G.to(g)),d=o.items.map(([g,h])=>{let f=this._cachedPrepare?.get(h.id);return f?[g,f]:[g,mu.to(g,h,async I=>(await this._proxy.$resolvePasteFileData(this._handle,t,I)).buffer)]}),c=new oi(d),u=await this._provider.provideDocumentPasteEdits(a,l,c,{only:r.only?new ri(r.only):void 0,triggerKind:r.triggerKind},s);if(!u||s.isCancellationRequested)return[];let m=this._editsCache.add(u);return u.map((g,h)=>({_cacheId:[m,h],title:g.title??p(3350,null,this._extension.displayName||this._extension.name),kind:g.kind,yieldTo:g.yieldTo?.map(f=>f.value),insertText:typeof g.insertText=="string"?g.insertText:{snippet:g.insertText.value},additionalEdit:g.additionalEdit?bo.from(g.additionalEdit,void 0):void 0}))}async resolvePasteEdit(t,e){let[n,o]=t,r=this._editsCache.get(n,o);if(!r||!this._provider.resolveDocumentPasteEdit)return{};let s=await this._provider.resolveDocumentPasteEdit(r,e)??r;return{insertText:s.insertText,additionalEdit:s.additionalEdit?bo.from(s.additionalEdit,void 0):void 0}}releasePasteEdits(t){this._editsCache.delete(t)}},qw=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentFormattingEdits(t,e,n){let o=this._documents.getDocument(t),r=await this._provider.provideDocumentFormattingEdits(o,e,n);if(Array.isArray(r))return r.map(Dn.from)}},gy=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentRangeFormattingEdits(t,e,n,o){let r=this._documents.getDocument(t),s=G.to(e),a=await this._provider.provideDocumentRangeFormattingEdits(r,s,n,o);if(Array.isArray(a))return a.map(Dn.from)}async provideDocumentRangesFormattingEdits(t,e,n,o){dp(typeof this._provider.provideDocumentRangesFormattingEdits=="function","INVALID invocation of `provideDocumentRangesFormattingEdits`");let r=this._documents.getDocument(t),s=e.map(G.to),a=await this._provider.provideDocumentRangesFormattingEdits(r,s,n,o);if(Array.isArray(a))return a.map(Dn.from)}},Kw=class{constructor(t,e){this._documents=t;this._provider=e;this.autoFormatTriggerCharacters=[]}async provideOnTypeFormattingEdits(t,e,n,o,r){let s=this._documents.getDocument(t),a=gt.to(e),l=await this._provider.provideOnTypeFormattingEdits(s,a,n,o,r);if(Array.isArray(l))return l.map(Dn.from)}},_f=class{constructor(t,e){this._provider=t;this._logService=e;this._cache=new Ko("WorkspaceSymbols")}async provideWorkspaceSymbols(t,e){let n=await this._provider.provideWorkspaceSymbols(t,e);if(!ml(n))return{symbols:[]};let o=this._cache.add(n),r={cacheId:o,symbols:[]};for(let s=0;s<n.length;s++){let a=n[s];if(!a||!a.name){this._logService.warn("INVALID SymbolInformation",a);continue}r.symbols.push({...Td.from(a),cacheId:[o,s]})}return r}async resolveWorkspaceSymbol(t,e){if(typeof this._provider.resolveWorkspaceSymbol!="function"||!t.cacheId)return t;let n=this._cache.get(...t.cacheId);if(n){let o=await this._provider.resolveWorkspaceSymbol(n,e);return o&&Jo(t,Td.from(o),!0)}}releaseWorkspaceSymbols(t){this._cache.delete(t)}},Df=class i{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}static supportsResolving(t){return typeof t.prepareRename=="function"}async provideRenameEdits(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e);try{let a=await this._provider.provideRenameEdits(r,s,n,o);return a?bo.from(a):void 0}catch(a){let l=i._asMessage(a);return l?{rejectReason:l,edits:void 0}:Promise.reject(a)}}async resolveRenameLocation(t,e,n){if(typeof this._provider.prepareRename!="function")return Promise.resolve(void 0);let o=this._documents.getDocument(t),r=gt.to(e);try{let s=await this._provider.prepareRename(o,r,n),a,l;if(be.isRange(s)?(a=s,l=o.getText(s)):st(s)&&(a=s.range,l=s.placeholder),!a||!l)return;if(a.start.line>r.line||a.end.line<r.line){this._logService.warn("INVALID rename location: position line must be within range start/end lines");return}return{range:G.from(a),text:l}}catch(s){let a=i._asMessage(s);return a?{rejectReason:a,range:void 0,text:void 0}:Promise.reject(s)}}static _asMessage(t){return typeof t=="string"?t:t instanceof Error&&typeof t.message=="string"?t.message:void 0}},fy=class i{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}static{this.languageTriggerKindToVSCodeTriggerKind={0:0,1:1}}async supportsAutomaticNewSymbolNamesTriggerKind(){return this._provider.supportsAutomaticTriggerKind}async provideNewSymbolNames(t,e,n,o){let r=this._documents.getDocument(t),s=G.to(e);try{let a=i.languageTriggerKindToVSCodeTriggerKind[n],l=await this._provider.provideNewSymbolNames(r,s,a,o);return l?l.map(d=>typeof d=="string"?{newSymbolName:d}:{newSymbolName:d.newSymbolName,tags:d.tags}):void 0}catch(a){this._logService.error(i._asMessage(a)??JSON.stringify(a,null,"	"));return}}static _asMessage(t){return typeof t=="string"?t:t instanceof Error&&typeof t.message=="string"?t.message:void 0}},hy=class{constructor(t,e){this.resultId=t;this.tokens=e}},vy=class i{constructor(t,e){this._documents=t;this._provider=e;this._nextResultId=1;this._previousResults=new Map}async provideDocumentSemanticTokens(t,e,n){let o=this._documents.getDocument(t),r=e!==0?this._previousResults.get(e):null,s=typeof r?.resultId=="string"&&typeof this._provider.provideDocumentSemanticTokensEdits=="function"?await this._provider.provideDocumentSemanticTokensEdits(o,r.resultId,n):await this._provider.provideDocumentSemanticTokens(o,n);return r&&this._previousResults.delete(e),s?(s=i._fixProvidedSemanticTokens(s),this._send(i._convertToEdits(r,s),s)):null}async releaseDocumentSemanticColoring(t){this._previousResults.delete(t)}static _fixProvidedSemanticTokens(t){return i._isSemanticTokens(t)?i._isCorrectSemanticTokens(t)?t:new Oi(new Uint32Array(t.data),t.resultId):i._isSemanticTokensEdits(t)?i._isCorrectSemanticTokensEdits(t)?t:new pd(t.edits.map(e=>new xm(e.start,e.deleteCount,e.data?new Uint32Array(e.data):e.data)),t.resultId):t}static _isSemanticTokens(t){return t&&!!t.data}static _isCorrectSemanticTokens(t){return t.data instanceof Uint32Array}static _isSemanticTokensEdits(t){return t&&Array.isArray(t.edits)}static _isCorrectSemanticTokensEdits(t){for(let e of t.edits)if(!(e.data instanceof Uint32Array))return!1;return!0}static _convertToEdits(t,e){if(!i._isSemanticTokens(e)||!t||!t.tokens)return e;let n=t.tokens,o=n.length,r=e.data,s=r.length,a=0,l=Math.min(o,s);for(;a<l&&n[a]===r[a];)a++;if(a===o&&a===s)return new pd([],e.resultId);let d=0,c=l-a;for(;d<c&&n[o-d-1]===r[s-d-1];)d++;return new pd([{start:a,deleteCount:o-a-d,data:r.subarray(a,s-d)}],e.resultId)}_send(t,e){if(i._isSemanticTokens(t)){let n=this._nextResultId++;return this._previousResults.set(n,new hy(t.resultId,t.data)),tw({id:n,type:"full",data:t.data})}if(i._isSemanticTokensEdits(t)){let n=this._nextResultId++;return i._isSemanticTokens(e)?this._previousResults.set(n,new hy(e.resultId,e.data)):this._previousResults.set(n,new hy(t.resultId)),tw({id:n,type:"delta",deltas:(t.edits||[]).map(o=>({start:o.start,deleteCount:o.deleteCount,data:o.data}))})}return null}},jw=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentRangeSemanticTokens(t,e,n){let o=this._documents.getDocument(t),r=await this._provider.provideDocumentRangeSemanticTokens(o,G.to(e),n);return r?this._send(r):null}_send(t){return tw({id:0,type:"full",data:t.data})}},qu=class i{constructor(t,e,n,o,r){this._documents=t;this._commands=e;this._provider=n;this._apiDeprecation=o;this._extension=r;this._cache=new Ko("CompletionItem");this._disposables=new Map}static supportsResolving(t){return typeof t.resolveCompletionItem=="function"}async provideCompletionItems(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e),a=r.getWordRangeAtPosition(s)||new be(s,s),l=a.with({end:s}),d=new Jt,c=await this._provider.provideCompletionItems(r,s,o,xM.to(n));if(!c||o.isCancellationRequested)return;let u=Array.isArray(c)?new Pi(c):c,m=i.supportsResolving(this._provider)?this._cache.add(u.items):this._cache.add([]),g=new z;this._disposables.set(m,g);let h=[],f={x:m,b:h,a:{replace:G.from(a),insert:G.from(l)},c:u.isIncomplete||void 0,d:d.elapsed()};for(let I=0;I<u.items.length;I++){let x=u.items[I],T=this._convertCompletionItem(x,[m,I],l,a);h.push(T)}return f}async resolveCompletionItem(t,e){if(typeof this._provider.resolveCompletionItem!="function")return;let n=this._cache.get(...t);if(!n)return;let o=this._convertCompletionItem(n,t),r=await this._provider.resolveCompletionItem(n,e);if(!r)return;let s=this._convertCompletionItem(r,t);return(o.h!==s.h||o.i!==s.i)&&this._apiDeprecation.report("CompletionItem.insertText",this._extension,"extension MAY NOT change 'insertText' of a CompletionItem during resolve"),(o.n!==s.n||o.o!==s.o||!Bt(o.p,s.p))&&this._apiDeprecation.report("CompletionItem.command",this._extension,"extension MAY NOT change 'command' of a CompletionItem during resolve"),{...o,d:s.d,c:s.c,l:s.l,h:s.h,i:s.i,n:s.n,o:s.o,p:s.p}}releaseCompletionItems(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}_convertCompletionItem(t,e,n,o){let r=this._disposables.get(e[0]);if(!r)throw Error("DisposableStore is missing...");let s=this._commands.toInternal(t.command,r),a={x:e,a:t.label,b:t.kind!==void 0?gT.from(t.kind):void 0,m:t.tags&&t.tags.map(mT.from),c:t.detail,d:typeof t.documentation>"u"?void 0:ge.fromStrict(t.documentation),e:t.sortText!==t.label?t.sortText:void 0,f:t.filterText!==t.label?t.filterText:void 0,g:t.preselect||void 0,i:t.keepWhitespace?1:0,k:t.commitCharacters?.join(""),l:t.additionalTextEdits&&t.additionalTextEdits.map(Dn.from),n:s?.$ident,o:s?.id,p:s?.$ident?void 0:s?.arguments};t.textEdit?(this._apiDeprecation.report("CompletionItem.textEdit",this._extension,"Use 'CompletionItem.insertText' and 'CompletionItem.range' instead."),a.h=t.textEdit.newText):typeof t.insertText=="string"?a.h=t.insertText:t.insertText instanceof eo&&(a.h=t.insertText.value,a.i|=4);let l;return t.textEdit?l=t.textEdit.range:t.range&&(l=t.range),be.isRange(l)?a.j=G.from(l):l&&(!n?.isEqual(l.inserting)||!o?.isEqual(l.replacing))&&(a.j={insert:G.from(l.inserting),replace:G.from(l.replacing)}),a}},qi=class{constructor(t,e,n,o){this._extension=t;this._documents=e;this._provider=n;this._commands=o;this._references=new hO;this.languageTriggerKindToVSCodeTriggerKind={0:1,1:0};this._isAdditionsProposedApiEnabled=Oe(this._extension,"inlineCompletionsAdditions")}get supportsHandleEvents(){return Oe(this._extension,"inlineCompletionsAdditions")&&(typeof this._provider.handleDidShowCompletionItem=="function"||typeof this._provider.handleDidPartiallyAcceptCompletionItem=="function"||typeof this._provider.handleDidRejectCompletionItem=="function"||typeof this._provider.handleEndOfLifetime=="function")}get supportsSetModelId(){return Oe(this._extension,"inlineCompletionsAdditions")&&typeof this._provider.setCurrentModelId=="function"}get supportsSetProviderOption(){return Oe(this._extension,"inlineCompletionsAdditions")&&typeof this._provider.setProviderOptionValue=="function"}get modelInfo(){if(this._isAdditionsProposedApiEnabled)return this._provider.modelInfo?{models:this._provider.modelInfo.models,currentModelId:this._provider.modelInfo.currentModelId}:void 0}setCurrentModelId(t){this._isAdditionsProposedApiEnabled&&this._provider.setCurrentModelId?.(t)}get providerOptions(){if(this._isAdditionsProposedApiEnabled)return this._provider.providerOptions?.map(t=>({id:t.id,label:t.label,values:t.values.map(e=>({id:e.id,label:e.label})),currentValueId:t.currentValueId}))}setProviderOption(t,e){this._isAdditionsProposedApiEnabled&&this._provider.setProviderOptionValue?.(t,e)}async provideInlineCompletions(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e),a=await this._provider.provideInlineCompletionItems(r,s,{selectedCompletionInfo:n.selectedSuggestionInfo?{range:G.to(n.selectedSuggestionInfo.range),text:n.selectedSuggestionInfo.text}:void 0,triggerKind:this.languageTriggerKindToVSCodeTriggerKind[n.triggerKind],requestUuid:n.requestUuid,requestIssuedDateTime:n.requestIssuedDateTime,earliestShownDateTime:n.earliestShownDateTime,changeHint:n.changeHint},o);if(!a)return;let{resultItems:l,list:d}=Array.isArray(a)?{resultItems:a,list:void 0}:{resultItems:a.items,list:a},c=this._isAdditionsProposedApiEnabled?Array.isArray(a)?[]:a.commands||[]:[],u=this._isAdditionsProposedApiEnabled&&!Array.isArray(a)?a.enableForwardStability:void 0,m;return{pid:this._references.createReferenceId({dispose(){m?.dispose()},items:l,list:d}),languageId:r.languageId,items:l.map((f,I)=>{let x;f.command&&(m||(m=new z),x=this._commands.toInternal(f.command,m));let T;f.action&&(m||(m=new z),T=this._commands.toInternal(f.action,m));let w=f.insertText;return{insertText:w===void 0?void 0:typeof w=="string"?w:{snippet:w.value},range:f.range?G.from(f.range):void 0,showRange:this._isAdditionsProposedApiEnabled&&f.showRange?G.from(f.showRange):void 0,command:x,gutterMenuLinkAction:T,idx:I,completeBracketPairs:this._isAdditionsProposedApiEnabled?f.completeBracketPairs:!1,isInlineEdit:this._isAdditionsProposedApiEnabled?f.isInlineEdit:!1,showInlineEditMenu:this._isAdditionsProposedApiEnabled?f.showInlineEditMenu:!1,hint:f.displayLocation&&this._isAdditionsProposedApiEnabled?{range:G.from(f.displayLocation.range),content:f.displayLocation.label,style:f.displayLocation.kind?VM.from(f.displayLocation.kind):1}:void 0,warning:f.warning&&this._isAdditionsProposedApiEnabled?{message:ge.from(f.warning.message),icon:f.warning.icon?Hi.fromThemeIcon(f.warning.icon):void 0}:void 0,correlationId:this._isAdditionsProposedApiEnabled?f.correlationId:void 0,suggestionId:void 0,uri:this._isAdditionsProposedApiEnabled&&f.uri?f.uri:void 0,supportsRename:this._isAdditionsProposedApiEnabled?f.supportsRename:!1,jumpToPosition:this._isAdditionsProposedApiEnabled&&f.jumpToPosition?gt.from(f.jumpToPosition):void 0}}),commands:c.map(f=>(m||(m=new z),SM.from(f,this._commands,m))),suppressSuggestions:!1,enableForwardStability:u}}disposeCompletions(t,e){let n=this._references.get(t);if(this._provider.handleListEndOfLifetime&&this._isAdditionsProposedApiEnabled&&n?.list){let r=function(s){switch(s.kind){case"lostRace":return{kind:3};case"tokenCancellation":return{kind:2};case"other":return{kind:0};case"empty":return{kind:1};case"notTaken":return{kind:4};default:return{kind:0}}};this._provider.handleListEndOfLifetime(n.list,r(e))}this._references.disposeReferenceId(t)?.dispose()}handleDidShowCompletionItem(t,e,n){let o=this._references.get(t)?.items[e];o&&this._provider.handleDidShowCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidShowCompletionItem(o,n)}handlePartialAccept(t,e,n,o){let r=this._references.get(t)?.items[e];r&&this._provider.handleDidPartiallyAcceptCompletionItem&&this._isAdditionsProposedApiEnabled&&(this._provider.handleDidPartiallyAcceptCompletionItem(r,n),this._provider.handleDidPartiallyAcceptCompletionItem(r,FM.to(o)))}handleEndOfLifetime(t,e,n){let o=this._references.get(t)?.items[e];if(o&&this._provider.handleEndOfLifetime&&this._isAdditionsProposedApiEnabled){let r=HM.to(n,s=>this._references.get(s.pid)?.items[s.idx]);this._provider.handleEndOfLifetime(o,r)}}handleRejection(t,e){let n=this._references.get(t)?.items[e];n&&this._provider.handleDidRejectCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidRejectCompletionItem(n)}},hO=class{constructor(){this._references=new Map;this._idPool=1}createReferenceId(t){let e=this._idPool++;return this._references.set(e,t),e}disposeReferenceId(t){let e=this._references.get(t);return this._references.delete(t),e}get(t){return this._references.get(t)}},by=class{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Ko("SignatureHelp")}async provideSignatureHelp(t,e,n,o){let r=this._documents.getDocument(t),s=gt.to(e),a=this.reviveContext(n),l=await this._provider.provideSignatureHelp(r,s,o,a);if(l){let d=this._cache.add([l]);return{...eg.from(l),id:d}}}reviveContext(t){let e;if(t.activeSignatureHelp){let n=eg.to(t.activeSignatureHelp),o=this._cache.get(t.activeSignatureHelp.id,0);o?(e=o,e.activeSignature=n.activeSignature,e.activeParameter=n.activeParameter):e=n}return{...t,activeSignatureHelp:e}}releaseSignatureHelp(t){this._cache.delete(t)}},Rf=class{constructor(t,e,n,o,r){this._documents=t;this._commands=e;this._provider=n;this._logService=o;this._extension=r;this._cache=new Ko("InlayHints");this._disposables=new Map}async provideInlayHints(t,e,n){let o=this._documents.getDocument(t),r=G.to(e),s=await this._provider.provideInlayHints(o,r,n);if(!Array.isArray(s)||s.length===0){this._logService.trace(`[InlayHints] NO inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(e)}`);return}if(n.isCancellationRequested)return;let a=this._cache.add(s);this._disposables.set(a,new z);let l={hints:[],cacheId:a};for(let d=0;d<s.length;d++)this._isValidInlayHint(s[d],r)&&l.hints.push(this._convertInlayHint(s[d],[a,d]));return this._logService.trace(`[InlayHints] ${l.hints.length} inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(e)}`),l}async resolveInlayHint(t,e){if(typeof this._provider.resolveInlayHint!="function")return;let n=this._cache.get(...t);if(!n)return;let o=await this._provider.resolveInlayHint(n,e);if(o&&this._isValidInlayHint(o))return this._convertInlayHint(o,t)}releaseHints(t){this._disposables.get(t)?.dispose(),this._disposables.delete(t),this._cache.delete(t)}_isValidInlayHint(t,e){return t.label.length===0||Array.isArray(t.label)&&t.label.every(n=>n.value.length===0)?(console.log("INVALID inlay hint, empty label",t),!1):!(e&&!e.contains(t.position))}_convertInlayHint(t,e){let n=this._disposables.get(e[0]);if(!n)throw Error("DisposableStore is missing...");let o={label:"",cacheId:e,tooltip:ge.fromStrict(t.tooltip),position:gt.from(t.position),textEdits:t.textEdits&&t.textEdits.map(Dn.from),kind:t.kind&&fT.from(t.kind),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight};if(typeof t.label=="string")o.label=t.label;else{let r=[];o.label=r;for(let s of t.label){if(!s.value){console.warn("INVALID inlay hint, empty label part",this._extension.identifier.value);continue}let a={label:s.value,tooltip:ge.fromStrict(s.tooltip)};tn.isLocation(s.location)&&(a.location=vo.from(s.location)),s.command&&(a.command=this._commands.toInternal(s.command,n)),r.push(a)}}return o}},Af=class i{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Ko("DocumentLink")}async provideLinks(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentLinks(n,e);if(!(!Array.isArray(o)||o.length===0)&&!e.isCancellationRequested){if(typeof this._provider.resolveDocumentLink!="function")return{links:o.filter(i._validateLink).map(Qa.from)};{let r=this._cache.add(o),s={links:[],cacheId:r};for(let a=0;a<o.length;a++){if(!i._validateLink(o[a]))continue;let l=Qa.from(o[a]);l.cacheId=[r,a],s.links.push(l)}return s}}}static _validateLink(t){return t.target&&t.target.path.length>5e4?(console.warn("DROPPING link because it is too long"),!1):!0}async resolveLink(t,e){if(typeof this._provider.resolveDocumentLink!="function")return;let n=this._cache.get(...t);if(!n)return;let o=await this._provider.resolveDocumentLink(n,e);if(!(!o||!i._validateLink(o)))return Qa.from(o)}releaseLinks(t){this._cache.delete(t)}},yy=class{constructor(t,e){this._documents=t;this._provider=e}async provideColors(t,e){let n=this._documents.getDocument(t),o=await this._provider.provideDocumentColors(n,e);return Array.isArray(o)?o.map(s=>({color:yu.from(s.color),range:G.from(s.range)})):[]}async provideColorPresentations(t,e,n){let o=this._documents.getDocument(t),r=G.to(e.range),s=yu.to(e.color),a=await this._provider.provideColorPresentations(s,{document:o,range:r},n);if(Array.isArray(a))return a.map(fb.from)}},Gw=class{constructor(t,e){this._documents=t;this._provider=e}async provideFoldingRanges(t,e,n){let o=this._documents.getDocument(t),r=await this._provider.provideFoldingRanges(o,e,n);if(Array.isArray(r))return r.map(vb.from)}},Qw=class{constructor(t,e,n){this._documents=t;this._provider=e;this._logService=n}async provideSelectionRanges(t,e,n){let o=this._documents.getDocument(t),r=e.map(gt.to),s=await this._provider.provideSelectionRanges(o,r,n);if(!ml(s))return[];if(s.length!==r.length)return this._logService.warn("BAD selection ranges, provider must return ranges for each position"),[];let a=[];for(let l=0;l<r.length;l++){let d=[];a.push(d);let c=r[l],u=s[l];for(;;){if(!u.range.contains(c))throw new Error("INVALID selection range, must contain the previous range");if(d.push(EM.from(u)),!u.parent)break;c=u.range,u=u.parent}}return a}},Ku=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new Vd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.prepareCallHierarchy(o,r,n);if(!s)return;let a=this._idPool.nextId();return this._cache.set(a,new Map),Array.isArray(s)?s.map(l=>this._cacheAndConvertItem(a,l)):[this._cacheAndConvertItem(a,s)]}async provideCallsTo(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing call hierarchy item");let r=await this._provider.provideCallHierarchyIncomingCalls(o,n);if(r)return r.map(s=>({from:this._cacheAndConvertItem(t,s.from),fromRanges:s.fromRanges.map(a=>G.from(a))}))}async provideCallsFrom(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing call hierarchy item");let r=await this._provider.provideCallHierarchyOutgoingCalls(o,n);if(r)return r.map(s=>({to:this._cacheAndConvertItem(t,s.to),fromRanges:s.fromRanges.map(a=>G.from(a))}))}releaseSession(t){this._cache.delete(t)}_cacheAndConvertItem(t,e){let n=this._cache.get(t),o=Ga.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},ju=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new Vd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),r=gt.to(e),s=await this._provider.prepareTypeHierarchy(o,r,n);if(!s)return;let a=this._idPool.nextId();return this._cache.set(a,new Map),Array.isArray(s)?s.map(l=>this._cacheAndConvertItem(a,l)):[this._cacheAndConvertItem(a,s)]}async provideSupertypes(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing type hierarchy item");let r=await this._provider.provideTypeHierarchySupertypes(o,n);if(r)return r.map(s=>this._cacheAndConvertItem(t,s))}async provideSubtypes(t,e,n){let o=this._itemFromCache(t,e);if(!o)throw new Error("missing type hierarchy item");let r=await this._provider.provideTypeHierarchySubtypes(o,n);if(r)return r.map(s=>this._cacheAndConvertItem(t,s))}releaseSession(t){this._cache.delete(t)}_cacheAndConvertItem(t,e){let n=this._cache.get(t),o=Ja.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},Mf=class{constructor(t,e,n,o,r){this._proxy=t;this._documents=e;this._provider=n;this._handle=o;this._extension=r;this._cache=new Ko("DocumentDropEdit")}async provideDocumentOnDropEdits(t,e,n,o,r){let s=this._documents.getDocument(e),a=gt.to(n),l=xu.toDataTransfer(o,async m=>(await this._proxy.$resolveDocumentOnDropFileData(this._handle,t,m)).buffer),d=await this._provider.provideDocumentDropEdits(s,a,l,r);if(!d)return;let c=An(d),u=this._cache.add(c);return c.map((m,g)=>({_cacheId:[u,g],title:m.title??p(3349,null,this._extension.displayName||this._extension.name),kind:m.kind?.value,yieldTo:m.yieldTo?.map(h=>h.value),insertText:typeof m.insertText=="string"?m.insertText:{snippet:m.insertText.value},additionalEdit:m.additionalEdit?bo.from(m.additionalEdit,void 0):void 0}))}async resolveDropEdit(t,e){let[n,o]=t,r=this._cache.get(n,o);if(!r||!this._provider.resolveDocumentDropEdit)return{};let s=await this._provider.resolveDocumentDropEdit(r,e)??r;return{additionalEdit:s.additionalEdit?bo.from(s.additionalEdit,void 0):void 0}}releaseDropEdits(t){this._cache.delete(t)}},Gu=class{constructor(t,e){this.adapter=t;this.extension=e}},Jw=class i extends U{constructor(e,n,o,r,s,a,l,d){super();this._uriTransformer=n;this._documents=o;this._commands=r;this._diagnostics=s;this._logService=a;this._apiDeprecation=l;this._extensionTelemetry=d;this._adapter=new Map;this._onDidChangeInlineCompletionsUnificationState=this._register(new E);this.onDidChangeInlineCompletionsUnificationState=this._onDidChangeInlineCompletionsUnificationState.event;this._proxy=e.getProxy(F.MainThreadLanguageFeatures),this._inlineCompletionsUnificationState={codeUnification:!1,modelUnification:!1,extensionUnification:!1,expAssignments:[]}}static{this._handlePool=0}get inlineCompletionsUnificationState(){return this._inlineCompletionsUnificationState}_transformDocumentSelector(e,n){return Fi.from(e,this._uriTransformer,n)}_createDisposable(e){return new xe(()=>{this._adapter.delete(e),this._proxy.$unregister(e)})}_nextHandle(){return i._handlePool++}async _withAdapter(e,n,o,r,s,a=!1){let l=this._adapter.get(e);if(!l||!(l.adapter instanceof n))return r;let d=Date.now();a||this._logService.trace(`[${l.extension.identifier.value}] INVOKE provider '${o.toString().replace(/[\r\n]/g,"")}'`);let c=o(l.adapter,l.extension);return Promise.resolve(c).catch(u=>{Kt(u)||(this._logService.error(`[${l.extension.identifier.value}] provider FAILED`),this._logService.error(u),this._extensionTelemetry.onExtensionError(l.extension.identifier,u))}).finally(()=>{a||this._logService.trace(`[${l.extension.identifier.value}] provider DONE after ${Date.now()-d}ms`)}),me.isCancellationToken(s)?Qr(c,s):c}_addNewAdapter(e,n){let o=this._nextHandle();return this._adapter.set(o,new Gu(e,n)),o}static _extLabel(e){return e.displayName||e.name}static _extId(e){return e.identifier.value}registerDocumentSymbolProvider(e,n,o,r){let s=this._addNewAdapter(new Lw(this._documents,o),e),a=r&&r.label||i._extLabel(e);return this._proxy.$registerDocumentSymbolProvider(s,this._transformDocumentSelector(n,e),a),this._createDisposable(s)}$provideDocumentSymbols(e,n,o){return this._withAdapter(e,Lw,r=>r.provideDocumentSymbols(b.revive(n),o),void 0,o)}registerCodeLensProvider(e,n,o){let r=this._nextHandle(),s=typeof o.onDidChangeCodeLenses=="function"?this._nextHandle():void 0;this._adapter.set(r,new Gu(new kf(this._documents,this._commands.converter,o,e,this._extensionTelemetry,this._logService),e)),this._proxy.$registerCodeLensSupport(r,this._transformDocumentSelector(n,e),s);let a=this._createDisposable(r);if(s!==void 0){let l=o.onDidChangeCodeLenses(d=>this._proxy.$emitCodeLensEvent(s));a=xe.from(a,l)}return a}$provideCodeLenses(e,n,o){return this._withAdapter(e,kf,r=>r.provideCodeLenses(b.revive(n),o),void 0,o,n.scheme==="output")}$resolveCodeLens(e,n,o){return this._withAdapter(e,kf,r=>r.resolveCodeLens(n,o),void 0,void 0,!0)}$releaseCodeLenses(e,n){this._withAdapter(e,kf,o=>Promise.resolve(o.releaseCodeLenses(n)),void 0,void 0,!0)}registerDefinitionProvider(e,n,o){let r=this._addNewAdapter(new Ow(this._documents,o),e);return this._proxy.$registerDefinitionSupport(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideDefinition(e,n,o,r){return this._withAdapter(e,Ow,s=>s.provideDefinition(b.revive(n),o,r),[],r)}registerDeclarationProvider(e,n,o){let r=this._addNewAdapter(new Nw(this._documents,o),e);return this._proxy.$registerDeclarationSupport(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideDeclaration(e,n,o,r){return this._withAdapter(e,Nw,s=>s.provideDeclaration(b.revive(n),o,r),[],r)}registerImplementationProvider(e,n,o){let r=this._addNewAdapter(new Uw(this._documents,o),e);return this._proxy.$registerImplementationSupport(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideImplementation(e,n,o,r){return this._withAdapter(e,Uw,s=>s.provideImplementation(b.revive(n),o,r),[],r)}registerTypeDefinitionProvider(e,n,o){let r=this._addNewAdapter(new Fw(this._documents,o),e);return this._proxy.$registerTypeDefinitionSupport(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideTypeDefinition(e,n,o,r){return this._withAdapter(e,Fw,s=>s.provideTypeDefinition(b.revive(n),o,r),[],r)}registerHoverProvider(e,n,o,r){let s=this._addNewAdapter(new my(this._documents,o),e);return this._proxy.$registerHoverProvider(s,this._transformDocumentSelector(n,e)),this._createDisposable(s)}$provideHover(e,n,o,r,s){return this._withAdapter(e,my,a=>a.provideHover(b.revive(n),o,r,s),void 0,s)}$releaseHover(e,n){this._withAdapter(e,my,o=>Promise.resolve(o.releaseHover(n)),void 0,void 0)}registerEvaluatableExpressionProvider(e,n,o,r){let s=this._addNewAdapter(new Hw(this._documents,o),e);return this._proxy.$registerEvaluatableExpressionProvider(s,this._transformDocumentSelector(n,e)),this._createDisposable(s)}$provideEvaluatableExpression(e,n,o,r){return this._withAdapter(e,Hw,s=>s.provideEvaluatableExpression(b.revive(n),o,r),void 0,r)}registerInlineValuesProvider(e,n,o,r){let s=typeof o.onDidChangeInlineValues=="function"?this._nextHandle():void 0,a=this._addNewAdapter(new Vw(this._documents,o),e);this._proxy.$registerInlineValuesProvider(a,this._transformDocumentSelector(n,e),s);let l=this._createDisposable(a);if(s!==void 0){let d=o.onDidChangeInlineValues(c=>this._proxy.$emitInlineValuesEvent(s));l=xe.from(l,d)}return l}$provideInlineValues(e,n,o,r,s){return this._withAdapter(e,Vw,a=>a.provideInlineValues(b.revive(n),o,r,s),void 0,s)}registerDocumentHighlightProvider(e,n,o){let r=this._addNewAdapter(new Ww(this._documents,o),e);return this._proxy.$registerDocumentHighlightProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}registerMultiDocumentHighlightProvider(e,n,o){let r=this._addNewAdapter(new Bw(this._documents,o,this._logService),e);return this._proxy.$registerMultiDocumentHighlightProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideDocumentHighlights(e,n,o,r){return this._withAdapter(e,Ww,s=>s.provideDocumentHighlights(b.revive(n),o,r),void 0,r)}$provideMultiDocumentHighlights(e,n,o,r,s){return this._withAdapter(e,Bw,a=>a.provideMultiDocumentHighlights(b.revive(n),o,r.map(l=>b.revive(l)),s),void 0,s)}registerLinkedEditingRangeProvider(e,n,o){let r=this._addNewAdapter(new $w(this._documents,o),e);return this._proxy.$registerLinkedEditingRangeProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideLinkedEditingRanges(e,n,o,r){return this._withAdapter(e,$w,async s=>{let a=await s.provideLinkedEditingRanges(b.revive(n),o,r);if(a)return{ranges:a.ranges,wordPattern:a.wordPattern?i._serializeRegExp(a.wordPattern):void 0}},void 0,r)}registerReferenceProvider(e,n,o){let r=this._addNewAdapter(new zw(this._documents,o),e);return this._proxy.$registerReferenceSupport(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideReferences(e,n,o,r,s){return this._withAdapter(e,zw,a=>a.provideReferences(b.revive(n),o,r,s),void 0,s)}registerCodeActionProvider(e,n,o,r){let s=new z,a=this._addNewAdapter(new Pf(this._documents,this._commands.converter,this._diagnostics,o,this._logService,e,this._apiDeprecation),e);return this._proxy.$registerCodeActionSupport(a,this._transformDocumentSelector(n,e),{providedKinds:r?.providedCodeActionKinds?.map(l=>l.value),documentation:r?.documentation?.map(l=>({kind:l.kind.value,command:this._commands.converter.toInternal(l.command,s)}))},i._extLabel(e),i._extId(e),!!o.resolveCodeAction),s.add(this._createDisposable(a)),s}$provideCodeActions(e,n,o,r,s){return this._withAdapter(e,Pf,a=>a.provideCodeActions(b.revive(n),o,r,s),void 0,s)}$resolveCodeAction(e,n,o){return this._withAdapter(e,Pf,r=>r.resolveCodeAction(n,o),{},void 0)}$releaseCodeActions(e,n){this._withAdapter(e,Pf,o=>Promise.resolve(o.releaseCodeActions(n)),void 0,void 0)}registerDocumentFormattingEditProvider(e,n,o){let r=this._addNewAdapter(new qw(this._documents,o),e);return this._proxy.$registerDocumentFormattingSupport(r,this._transformDocumentSelector(n,e),e.identifier,e.displayName||e.name),this._createDisposable(r)}$provideDocumentFormattingEdits(e,n,o,r){return this._withAdapter(e,qw,s=>s.provideDocumentFormattingEdits(b.revive(n),o,r),void 0,r)}registerDocumentRangeFormattingEditProvider(e,n,o){let r=typeof o.provideDocumentRangesFormattingEdits=="function",s=this._addNewAdapter(new gy(this._documents,o),e);return this._proxy.$registerRangeFormattingSupport(s,this._transformDocumentSelector(n,e),e.identifier,e.displayName||e.name,r),this._createDisposable(s)}$provideDocumentRangeFormattingEdits(e,n,o,r,s){return this._withAdapter(e,gy,a=>a.provideDocumentRangeFormattingEdits(b.revive(n),o,r,s),void 0,s)}$provideDocumentRangesFormattingEdits(e,n,o,r,s){return this._withAdapter(e,gy,a=>a.provideDocumentRangesFormattingEdits(b.revive(n),o,r,s),void 0,s)}registerOnTypeFormattingEditProvider(e,n,o,r){let s=this._addNewAdapter(new Kw(this._documents,o),e);return this._proxy.$registerOnTypeFormattingSupport(s,this._transformDocumentSelector(n,e),r,e.identifier),this._createDisposable(s)}$provideOnTypeFormattingEdits(e,n,o,r,s,a){return this._withAdapter(e,Kw,l=>l.provideOnTypeFormattingEdits(b.revive(n),o,r,s,a),void 0,a)}registerWorkspaceSymbolProvider(e,n){let o=this._addNewAdapter(new _f(n,this._logService),e);return this._proxy.$registerNavigateTypeSupport(o,typeof n.resolveWorkspaceSymbol=="function"),this._createDisposable(o)}$provideWorkspaceSymbols(e,n,o){return this._withAdapter(e,_f,r=>r.provideWorkspaceSymbols(n,o),{symbols:[]},o)}$resolveWorkspaceSymbol(e,n,o){return this._withAdapter(e,_f,r=>r.resolveWorkspaceSymbol(n,o),void 0,void 0)}$releaseWorkspaceSymbols(e,n){this._withAdapter(e,_f,o=>o.releaseWorkspaceSymbols(n),void 0,void 0)}registerRenameProvider(e,n,o){let r=this._addNewAdapter(new Df(this._documents,o,this._logService),e);return this._proxy.$registerRenameSupport(r,this._transformDocumentSelector(n,e),Df.supportsResolving(o)),this._createDisposable(r)}$provideRenameEdits(e,n,o,r,s){return this._withAdapter(e,Df,a=>a.provideRenameEdits(b.revive(n),o,r,s),void 0,s)}$resolveRenameLocation(e,n,o,r){return this._withAdapter(e,Df,s=>s.resolveRenameLocation(b.revive(n),o,r),void 0,r)}registerNewSymbolNamesProvider(e,n,o){let r=this._addNewAdapter(new fy(this._documents,o,this._logService),e);return this._proxy.$registerNewSymbolNamesProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$supportsAutomaticNewSymbolNamesTriggerKind(e){return this._withAdapter(e,fy,n=>n.supportsAutomaticNewSymbolNamesTriggerKind(),!1,void 0)}$provideNewSymbolNames(e,n,o,r,s){return this._withAdapter(e,fy,a=>a.provideNewSymbolNames(b.revive(n),o,r,s),void 0,s)}registerDocumentSemanticTokensProvider(e,n,o,r){let s=this._addNewAdapter(new vy(this._documents,o),e),a=typeof o.onDidChangeSemanticTokens=="function"?this._nextHandle():void 0;this._proxy.$registerDocumentSemanticTokensProvider(s,this._transformDocumentSelector(n,e),r,a);let l=this._createDisposable(s);if(a){let d=o.onDidChangeSemanticTokens(c=>this._proxy.$emitDocumentSemanticTokensEvent(a));l=xe.from(l,d)}return l}$provideDocumentSemanticTokens(e,n,o,r){return this._withAdapter(e,vy,s=>s.provideDocumentSemanticTokens(b.revive(n),o,r),null,r)}$releaseDocumentSemanticTokens(e,n){this._withAdapter(e,vy,o=>o.releaseDocumentSemanticColoring(n),void 0,void 0)}registerDocumentRangeSemanticTokensProvider(e,n,o,r){let s=this._addNewAdapter(new jw(this._documents,o),e),a=typeof o.onDidChangeSemanticTokens=="function"?this._nextHandle():void 0;this._proxy.$registerDocumentRangeSemanticTokensProvider(s,this._transformDocumentSelector(n,e),r,a);let l=this._createDisposable(s);if(a){let d=o.onDidChangeSemanticTokens(c=>this._proxy.$emitDocumentRangeSemanticTokensEvent(a));l=xe.from(l,d)}return l}$provideDocumentRangeSemanticTokens(e,n,o,r){return this._withAdapter(e,jw,s=>s.provideDocumentRangeSemanticTokens(b.revive(n),o,r),null,r)}registerCompletionItemProvider(e,n,o,r){let s=this._addNewAdapter(new qu(this._documents,this._commands.converter,o,this._apiDeprecation,e),e);return this._proxy.$registerCompletionsProvider(s,this._transformDocumentSelector(n,e),r,qu.supportsResolving(o),e.identifier),this._createDisposable(s)}$provideCompletionItems(e,n,o,r,s){return this._withAdapter(e,qu,a=>a.provideCompletionItems(b.revive(n),o,r,s),void 0,s)}$resolveCompletionItem(e,n,o){return this._withAdapter(e,qu,r=>r.resolveCompletionItem(n,o),void 0,o)}$releaseCompletionItems(e,n){this._withAdapter(e,qu,o=>o.releaseCompletionItems(n),void 0,void 0)}registerInlineCompletionsProvider(e,n,o,r){let s=new qi(e,this._documents,o,this._commands.converter),a=this._addNewAdapter(s,e),l=this._createDisposable(a),d=Oe(e,"inlineCompletionsAdditions")&&typeof o.onDidChange=="function";if(d){let m=o.onDidChange(g=>this._proxy.$emitInlineCompletionsChange(a,g?{data:g.data}:void 0));l=xe.from(l,m)}let c=Oe(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeModelInfo=="function";if(c){let m=o.onDidChangeModelInfo(g=>this._proxy.$emitInlineCompletionModelInfoChange(a,s.modelInfo));l=xe.from(l,m)}let u=Oe(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeProviderOptions=="function";if(u){let m=o.onDidChangeProviderOptions(g=>this._proxy.$emitInlineCompletionProviderOptionsChange(a,s.providerOptions));l=xe.from(l,m)}return this._proxy.$registerInlineCompletionsSupport(a,this._transformDocumentSelector(n,e),s.supportsHandleEvents,Ee.toKey(e.identifier.value),e.version,r?.groupId?Ee.toKey(r.groupId):void 0,r?.yieldTo?.map(m=>Ee.toKey(m))||[],r?.displayName,r?.debounceDelayMs,r?.excludes?.map(m=>Ee.toKey(m))||[],d,s.supportsSetModelId,s.modelInfo,c,s.supportsSetProviderOption,s.providerOptions,u),l}$provideInlineCompletions(e,n,o,r,s){return this._withAdapter(e,qi,a=>a.provideInlineCompletions(b.revive(n),o,r,s),void 0,void 0)}$handleInlineCompletionDidShow(e,n,o,r){this._withAdapter(e,qi,async s=>{s.handleDidShowCompletionItem(n,o,r)},void 0,void 0)}$handleInlineCompletionPartialAccept(e,n,o,r,s){this._withAdapter(e,qi,async a=>{a.handlePartialAccept(n,o,r,s)},void 0,void 0)}$handleInlineCompletionEndOfLifetime(e,n,o,r){this._withAdapter(e,qi,async s=>{s.handleEndOfLifetime(n,o,r)},void 0,void 0)}$handleInlineCompletionRejection(e,n,o){this._withAdapter(e,qi,async r=>{r.handleRejection(n,o)},void 0,void 0)}$freeInlineCompletionsList(e,n,o){this._withAdapter(e,qi,async r=>{r.disposeCompletions(n,o)},void 0,void 0)}$acceptInlineCompletionsUnificationState(e){this._inlineCompletionsUnificationState=e,this._onDidChangeInlineCompletionsUnificationState.fire()}$handleInlineCompletionSetCurrentModelId(e,n){this._withAdapter(e,qi,async o=>{o.setCurrentModelId(n)},void 0,void 0)}$handleInlineCompletionSetProviderOption(e,n,o){this._withAdapter(e,qi,async r=>{r.setProviderOption(n,o)},void 0,void 0)}registerSignatureHelpProvider(e,n,o,r){let s=Array.isArray(r)?{triggerCharacters:r,retriggerCharacters:[]}:r,a=this._addNewAdapter(new by(this._documents,o),e);return this._proxy.$registerSignatureHelpProvider(a,this._transformDocumentSelector(n,e),s),this._createDisposable(a)}$provideSignatureHelp(e,n,o,r,s){return this._withAdapter(e,by,a=>a.provideSignatureHelp(b.revive(n),o,r,s),void 0,s)}$releaseSignatureHelp(e,n){this._withAdapter(e,by,o=>o.releaseSignatureHelp(n),void 0,void 0)}registerInlayHintsProvider(e,n,o){let r=typeof o.onDidChangeInlayHints=="function"?this._nextHandle():void 0,s=this._addNewAdapter(new Rf(this._documents,this._commands.converter,o,this._logService,e),e);this._proxy.$registerInlayHintsProvider(s,this._transformDocumentSelector(n,e),typeof o.resolveInlayHint=="function",r,i._extLabel(e));let a=this._createDisposable(s);if(r!==void 0){let l=o.onDidChangeInlayHints(d=>this._proxy.$emitInlayHintsEvent(r));a=xe.from(a,l)}return a}$provideInlayHints(e,n,o,r){return this._withAdapter(e,Rf,s=>s.provideInlayHints(b.revive(n),o,r),void 0,r)}$resolveInlayHint(e,n,o){return this._withAdapter(e,Rf,r=>r.resolveInlayHint(n,o),void 0,o)}$releaseInlayHints(e,n){this._withAdapter(e,Rf,o=>o.releaseHints(n),void 0,void 0)}registerDocumentLinkProvider(e,n,o){let r=this._addNewAdapter(new Af(this._documents,o),e);return this._proxy.$registerDocumentLinkProvider(r,this._transformDocumentSelector(n,e),typeof o.resolveDocumentLink=="function"),this._createDisposable(r)}$provideDocumentLinks(e,n,o){return this._withAdapter(e,Af,r=>r.provideLinks(b.revive(n),o),void 0,o,n.scheme==="output")}$resolveDocumentLink(e,n,o){return this._withAdapter(e,Af,r=>r.resolveLink(n,o),void 0,void 0,!0)}$releaseDocumentLinks(e,n){this._withAdapter(e,Af,o=>o.releaseLinks(n),void 0,void 0,!0)}registerColorProvider(e,n,o){let r=this._addNewAdapter(new yy(this._documents,o),e);return this._proxy.$registerDocumentColorProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideDocumentColors(e,n,o){return this._withAdapter(e,yy,r=>r.provideColors(b.revive(n),o),[],o)}$provideColorPresentations(e,n,o,r){return this._withAdapter(e,yy,s=>s.provideColorPresentations(b.revive(n),o,r),void 0,r)}registerFoldingRangeProvider(e,n,o){let r=this._nextHandle(),s=typeof o.onDidChangeFoldingRanges=="function"?this._nextHandle():void 0;this._adapter.set(r,new Gu(new Gw(this._documents,o),e)),this._proxy.$registerFoldingRangeProvider(r,this._transformDocumentSelector(n,e),e.identifier,s);let a=this._createDisposable(r);if(s!==void 0){let l=o.onDidChangeFoldingRanges(()=>this._proxy.$emitFoldingRangeEvent(s));a=xe.from(a,l)}return a}$provideFoldingRanges(e,n,o,r){return this._withAdapter(e,Gw,s=>s.provideFoldingRanges(b.revive(n),o,r),void 0,r)}registerSelectionRangeProvider(e,n,o){let r=this._addNewAdapter(new Qw(this._documents,o,this._logService),e);return this._proxy.$registerSelectionRangeProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideSelectionRanges(e,n,o,r){return this._withAdapter(e,Qw,s=>s.provideSelectionRanges(b.revive(n),o,r),[],r)}registerCallHierarchyProvider(e,n,o){let r=this._addNewAdapter(new Ku(this._documents,o),e);return this._proxy.$registerCallHierarchyProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$prepareCallHierarchy(e,n,o,r){return this._withAdapter(e,Ku,s=>Promise.resolve(s.prepareSession(b.revive(n),o,r)),void 0,r)}$provideCallHierarchyIncomingCalls(e,n,o,r){return this._withAdapter(e,Ku,s=>s.provideCallsTo(n,o,r),void 0,r)}$provideCallHierarchyOutgoingCalls(e,n,o,r){return this._withAdapter(e,Ku,s=>s.provideCallsFrom(n,o,r),void 0,r)}$releaseCallHierarchy(e,n){this._withAdapter(e,Ku,o=>Promise.resolve(o.releaseSession(n)),void 0,void 0)}registerTypeHierarchyProvider(e,n,o){let r=this._addNewAdapter(new ju(this._documents,o),e);return this._proxy.$registerTypeHierarchyProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$prepareTypeHierarchy(e,n,o,r){return this._withAdapter(e,ju,s=>Promise.resolve(s.prepareSession(b.revive(n),o,r)),void 0,r)}$provideTypeHierarchySupertypes(e,n,o,r){return this._withAdapter(e,ju,s=>s.provideSupertypes(n,o,r),void 0,r)}$provideTypeHierarchySubtypes(e,n,o,r){return this._withAdapter(e,ju,s=>s.provideSubtypes(n,o,r),void 0,r)}$releaseTypeHierarchy(e,n){this._withAdapter(e,ju,o=>Promise.resolve(o.releaseSession(n)),void 0,void 0)}registerDocumentOnDropEditProvider(e,n,o,r){let s=this._nextHandle();return this._adapter.set(s,new Gu(new Mf(this._proxy,this._documents,o,s,e),e)),this._proxy.$registerDocumentOnDropEditProvider(s,this._transformDocumentSelector(n,e),r?{supportsResolve:!!o.resolveDocumentDropEdit,dropMimeTypes:r.dropMimeTypes,providedDropKinds:r.providedDropEditKinds?.map(a=>a.value)}:void 0),this._createDisposable(s)}$provideDocumentOnDropEdits(e,n,o,r,s,a){return this._withAdapter(e,Mf,l=>Promise.resolve(l.provideDocumentOnDropEdits(n,b.revive(o),r,s,a)),void 0,void 0)}$resolveDropEdit(e,n,o){return this._withAdapter(e,Mf,r=>r.resolveDropEdit(n,o),{},void 0)}$releaseDocumentOnDropEdits(e,n){this._withAdapter(e,Mf,o=>Promise.resolve(o.releaseDropEdits(n)),void 0,void 0)}registerDocumentPasteEditProvider(e,n,o,r){let s=this._nextHandle();return this._adapter.set(s,new Gu(new zu(this._proxy,this._documents,o,s,e),e)),this._proxy.$registerPasteEditProvider(s,this._transformDocumentSelector(n,e),{supportsCopy:!!o.prepareDocumentPaste,supportsPaste:!!o.provideDocumentPasteEdits,supportsResolve:!!o.resolveDocumentPasteEdit,providedPasteEditKinds:r.providedPasteEditKinds?.map(a=>a.value),copyMimeTypes:r.copyMimeTypes,pasteMimeTypes:r.pasteMimeTypes}),this._createDisposable(s)}$prepareDocumentPaste(e,n,o,r,s){return this._withAdapter(e,zu,a=>a.prepareDocumentPaste(b.revive(n),o,r,s),void 0,s)}$providePasteEdits(e,n,o,r,s,a,l){return this._withAdapter(e,zu,d=>d.providePasteEdits(n,b.revive(o),r,s,a,l),void 0,l)}$resolvePasteEdit(e,n,o){return this._withAdapter(e,zu,r=>r.resolvePasteEdit(n,o),{},void 0)}$releasePasteEdits(e,n){this._withAdapter(e,zu,o=>Promise.resolve(o.releasePasteEdits(n)),void 0,void 0)}static _serializeRegExp(e){return{pattern:e.source,flags:e.flags}}static _serializeIndentationRule(e){return{decreaseIndentPattern:i._serializeRegExp(e.decreaseIndentPattern),increaseIndentPattern:i._serializeRegExp(e.increaseIndentPattern),indentNextLinePattern:e.indentNextLinePattern?i._serializeRegExp(e.indentNextLinePattern):void 0,unIndentedLinePattern:e.unIndentedLinePattern?i._serializeRegExp(e.unIndentedLinePattern):void 0}}static _serializeOnEnterRule(e){return{beforeText:i._serializeRegExp(e.beforeText),afterText:e.afterText?i._serializeRegExp(e.afterText):void 0,previousLineText:e.previousLineText?i._serializeRegExp(e.previousLineText):void 0,action:e.action}}static _serializeOnEnterRules(e){return e.map(i._serializeOnEnterRule)}static _serializeAutoClosingPair(e){return{open:e.open,close:e.close,notIn:e.notIn?e.notIn.map(n=>pu.toString(n)):void 0}}static _serializeAutoClosingPairs(e){return e.map(i._serializeAutoClosingPair)}setLanguageConfiguration(e,n,o){let{wordPattern:r}=o;if(r&&CI(r))throw new Error(`Invalid language configuration: wordPattern '${r}' is not allowed to match the empty string.`);r?this._documents.setWordDefinitionFor(n,r):this._documents.setWordDefinitionFor(n,void 0),o.__electricCharacterSupport&&this._apiDeprecation.report("LanguageConfiguration.__electricCharacterSupport",e,"Do not use."),o.__characterPairSupport&&this._apiDeprecation.report("LanguageConfiguration.__characterPairSupport",e,"Do not use.");let s=this._nextHandle(),a={comments:o.comments,brackets:o.brackets,wordPattern:o.wordPattern?i._serializeRegExp(o.wordPattern):void 0,indentationRules:o.indentationRules?i._serializeIndentationRule(o.indentationRules):void 0,onEnterRules:o.onEnterRules?i._serializeOnEnterRules(o.onEnterRules):void 0,__electricCharacterSupport:o.__electricCharacterSupport,__characterPairSupport:o.__characterPairSupport,autoClosingPairs:o.autoClosingPairs?i._serializeAutoClosingPairs(o.autoClosingPairs):void 0};return this._proxy.$setLanguageConfiguration(s,n,a),this._createDisposable(s)}$setWordDefinitions(e){for(let n of e)this._documents.setWordDefinitionFor(n.languageId,new RegExp(n.regexSource,n.regexFlags))}};async function T5(i,t){let e=i+":"+JSON.stringify(t),n=new TextEncoder().encode(e),o=await crypto.subtle.digest("SHA-256",n),r=Array.from(new Uint8Array(o)).map(s=>s.toString(16).padStart(2,"0")).join("");return i+":combination:"+r}var gnt=R("ILanguageModelToolsConfirmationService");var E5=R("notebookService");var w5=R("codeMapperService");var vO="vscode_editFile",Xw="vscode_editFile_internal",k5={id:Xw,displayName:"",modelDescription:"",source:dn.Internal},Lf=class{constructor(t,e,n){this.chatService=t;this.codeMapperService=e;this.notebookService=n}async invoke(t,e,n,o){if(!t.context)throw new Error("toolInvocationToken is required for this tool");let r=t.parameters,s=b.revive(r.uri),a=jv.parse(s)?.notebook||s,l=this.chatService.getSession(t.context.sessionResource),d=l.getRequests().at(-1);l.acceptResponseProgress(d,{kind:"markdownContent",content:new Mt("\n````\n")}),l.acceptResponseProgress(d,{kind:"codeblockUri",uri:a,isEdit:!0}),l.acceptResponseProgress(d,{kind:"markdownContent",content:new Mt("\n````\n")}),this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(d,{kind:"notebookEdit",edits:[],uri:a}):l.acceptResponseProgress(d,{kind:"textEdit",edits:[],uri:a});let c=l.editingSession;if(!c)throw new Error("This tool must be called from within an editing session");let u=await this.codeMapperService.mapCode({codeBlocks:[{code:r.code,resource:a,markdownBeforeBlock:r.explanation}],location:"tool",chatRequestId:t.chatRequestId,chatRequestModel:t.modelId,chatSessionResource:t.context.sessionResource},{textEdit:(g,h)=>{l.acceptResponseProgress(d,{kind:"textEdit",uri:g,edits:h})},notebookEdit(g,h){l.acceptResponseProgress(d,{kind:"notebookEdit",uri:g,edits:h})}},o);if(this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(d,{kind:"notebookEdit",uri:a,edits:[],done:!0}):l.acceptResponseProgress(d,{kind:"textEdit",uri:a,edits:[],done:!0}),u?.errorMessage)throw new Error(u.errorMessage);let m;return await new Promise(g=>{let h=!1;m=Eo(f=>{let x=c.entries.read(f)?.find(T=>Vn(T.modifiedURI,a));x&&(x.isCurrentlyBeingModifiedBy.read(f)?h=!0:h&&g(!0))})}).finally(()=>{m.dispose()}),{content:[{kind:"text",value:"The file was edited successfully"}]}}async prepareToolInvocation(t,e){return{presentation:"hidden"}}};Lf=D([C(0,kr),C(1,w5),C(2,E5)],Lf);var Of=class{constructor(t,e,n,o,r,s,a,l){this.questions=t;this.allowSkip=e;this.resolveId=n;this.data=o;this.isUsed=r;this.message=s;this.source=a;this.terminalId=l;this.kind="questionCarousel";this.completion=new jt}dismiss(t){this.isUsed||(this.data=t??{},this.isUsed=!0,this.draftAnswers=void 0,this.draftCurrentIndex=void 0,this.draftCollapsed=void 0,this.completion.complete({answers:t}))}toJSON(){return{kind:this.kind,questions:this.questions,allowSkip:this.allowSkip,resolveId:this.resolveId,data:this.data,isUsed:this.isUsed,message:this.message,source:this.source,terminalId:this.terminalId}}};var Zw="The user is not available to respond and will review your work later. Work autonomously and make good decisions.",P5="vscode_askQuestions",ek={header:50,question:200},dQ={header:75};function cQ(i,t){if(i!==void 0)return i.length>t?i.slice(0,t-3)+"...":i}function uQ(){let t={type:"object",properties:{questions:{type:"array",description:"List of questions to ask the user. Order is preserved.",items:{type:"object",properties:{header:{type:"string",description:`Short identifier for the question. Must be unique so answers can be mapped back to the question. Maximum ${ek.header} characters.`,maxLength:ek.header},question:{type:"string",description:`The question text to display to the user. Keep it concise, ideally one sentence. Maximum ${ek.question} characters.`,maxLength:ek.question},multiSelect:{type:"boolean",description:"Allow selecting multiple options when options are provided."},allowFreeformInput:{type:"boolean",description:"Allow freeform text answers in addition to option selection. Defaults to true; set to false to restrict to predefined options only."},message:{type:"string",description:"Optional markdown message to display below the question text, providing additional context or details."},options:{type:"array",description:"Optional list of selectable answers. If omitted, the question is free text.",items:{type:"object",properties:{label:{type:"string",description:"Display label and value for the option."},description:{type:"string",description:"Optional secondary text shown with the option."},recommended:{type:"boolean",description:"Mark this option as the recommended default."}},required:["label"]}}},required:["header","question"]},minItems:1}},required:["questions"]};return{id:P5,toolReferenceName:"askQuestions",legacyToolReferenceFullNames:[P5,"vscode/askQuestions"],canBeReferencedInPrompt:!1,icon:dt.fromId(ce.question.id),displayName:p(9117,null),userDescription:p(9118,null),modelDescription:"Use this tool to ask the user a small number of clarifying questions before proceeding. Provide the questions array with concise headers and prompts. Use options for fixed choices, set multiSelect when multiple selections are allowed. Users can always provide a freeform text answer alongside options unless you set allowFreeformInput to false.",source:dn.Internal,inputSchema:t}}var bO=uQ(),Nf=class extends U{constructor(e,n,o,r){super();this.chatService=e;this.telemetryService=n;this.logService=o;this.configService=r}async invoke(e,n,o,r){let s=Jt.create(!0),a=e.parameters,{questions:l}=a;if(this.logService.trace(`[AskQuestionsTool] Invoking with ${l?.length??0} question(s)`),!l||l.length===0)throw new Error(p(9115,null));let d=e.context?.sessionResource,c=e.chatRequestId,{request:u,sessionResource:m}=this.getRequest(d,c);if(!m||!u)return this.logService.warn("[AskQuestionsTool] Missing chat context; marking all questions as skipped."),this.createSkippedResult(l);let g=e.chatStreamToolCallId??e.callId;if(u.modeInfo?.permissionLevel==="autopilot"||this.configService.getValue("chat.autoReply")){let j=u.modeInfo?.permissionLevel==="autopilot"?"Autopilot mode":"Auto-reply enabled";this.logService.info(`[AskQuestionsTool] ${j}: auto-responding to questions`);let{carousel:q,idToHeaderMap:oe}=this.toQuestionCarousel(l,g);return q.terminalId=this.extractTerminalId(u),q.data=this.buildAutopilotCarouselAnswers(l,q,oe),q.isUsed=!0,this.chatService.appendProgress(u,q),this.createAutopilotResult(l)}let{carousel:h,idToHeaderMap:f}=this.toQuestionCarousel(l,g);h.terminalId=this.extractTerminalId(u),this.logService.trace(`[AskQuestionsTool] request=${u.id} terminalExecutionId=${u.terminalExecutionId??"undefined"} carousel.terminalId=${h.terminalId??"undefined"}`),this.chatService.appendProgress(u,h);let I=this.chatService.onDidReceiveQuestionCarouselAnswer(j=>{j.resolveId!==h.resolveId||h.isUsed||h.dismiss(j.answers)}),x;try{x=await El(h.completion.p,r)}catch(j){throw j instanceof Ue&&h.dismiss(void 0),j}finally{I.dispose()}if(!x)throw h.dismiss(void 0),new Ue;if(r.isCancellationRequested)throw new Ue;if(h.dismissedByTerminalInput&&h.terminalId)return this.logService.info(`[AskQuestionsTool] Carousel dismissed because user typed directly in terminal ${h.terminalId}`),{content:[{kind:"text",value:`The user is replying to the terminal prompts directly. Do not ask more questions or send input to the terminal. You will be automatically notified when the command in terminal ${h.terminalId} completes.`}]};o.report({message:p(9116,null)});let T=this.convertCarouselAnswers(l,x?.answers,f),{answeredCount:w,skippedCount:M,freeTextCount:O,recommendedAvailableCount:N,recommendedSelectedCount:$}=this.collectMetrics(l,T);this.sendTelemetry(e.chatRequestId,l.length,w,M,O,N,$,s.elapsed());let X=JSON.stringify(T);return this.logService.trace(`[AskQuestionsTool] Returning tool result with metrics: questions=${l.length}, answered=${w}, skipped=${M}, freeText=${O}, recommendedAvailable=${N}, recommendedSelected=${$}`),{content:[{kind:"text",value:X}]}}async prepareToolInvocation(e,n){let o=e.parameters,{questions:r}=o;if(!r||r.length===0)throw new Error(p(9115,null));for(let c of r)if(c.options&&c.options.length===1)throw new Error(p(9110,null,c.header));let s=r.length,a=r.map(c=>c.header).join(", "),l=s===1?p(9113,null,a):p(9111,null,s,a),d=s===1?p(9114,null,a):p(9112,null,s,a);return{invocationMessage:new Mt(l),pastTenseMessage:new Mt(d)}}getRequest(e,n){if(!e)return{request:void 0,sessionResource:void 0};let o=this.chatService.getSession(e),r;return o&&(n&&(r=o.getRequests().find(s=>s.id===n)),r||(r=o.getRequests().at(-1))),r?{request:r,sessionResource:e}:{request:void 0,sessionResource:e}}extractTerminalId(e){if(e.terminalExecutionId)return e.terminalExecutionId;let n=e.message.text.match(/\[Terminal (?<termId>\S+) notification:/);if(n?.groups?.termId)return n.groups.termId;let o=e.response;if(o){let r=o.response.value;for(let s=r.length-1;s>=0;s--){let a=r[s];if(a.kind==="toolInvocation"&&a.toolId==="run_in_terminal"){let l=a.state.get();if(l.type===Tt.StateKind.Completed&&l.contentForModel){for(let d of l.contentForModel)if(d.kind==="text"){let c=d.value.match(/(?:running in terminal ID|may still be running in terminal ID) ([0-9a-fA-F-]+)/);if(c)return c[1]}}}}}}toQuestionCarousel(e,n){let o=new Map,r=n??Pe(),s=e.map((a,l)=>this.toChatQuestion(a,o,r,l));return{carousel:new Of(s,!0,r),idToHeaderMap:o}}toChatQuestion(e,n,o,r){let s;!e.options||e.options.length===0?s="text":e.multiSelect?s="multiSelect":s="singleSelect";let a;if(e.options){let c=e.options.filter(u=>u.recommended);c.length>0&&(a=e.multiSelect?c.map(u=>u.label):c[0].label)}let l=`${o}:${r}`;n.set(l,e.header);let d=cQ(e.header,dQ.header)??e.header;return{id:l,type:s,title:d,message:e.question,detailedMessage:e.message,options:e.options?.map(c=>({id:c.label,label:c.description?`${c.label} - ${c.description}`:c.label,value:c.label})),defaultValue:a,allowFreeformInput:e.allowFreeformInput??!0}}convertCarouselAnswers(e,n,o){let r={answers:{}};n&&(this.logService.trace(`[AskQuestionsTool] Carousel answer keys: ${Object.keys(n).join(", ")}`),this.logService.trace(`[AskQuestionsTool] Question headers: ${e.map(a=>a.header).join(", ")}`));let s=new Map;for(let[a,l]of o)s.set(l,a);for(let a of e){if(!n){r.answers[a.header]={selected:[],freeText:null,skipped:!0};continue}let l=s.get(a.header),d=l?n[l]:void 0;if(this.logService.trace(`[AskQuestionsTool] Processing question "${a.header}" (internal ID: ${l}), raw answer: ${JSON.stringify(d)}, type: ${typeof d}`),d===void 0)r.answers[a.header]={selected:[],freeText:null,skipped:!0};else if(typeof d=="string")a.options?.some(c=>c.label===d)?r.answers[a.header]={selected:[d],freeText:null,skipped:!1}:r.answers[a.header]={selected:[],freeText:d,skipped:!1};else if(Array.isArray(d))r.answers[a.header]={selected:d.map(c=>String(c)),freeText:null,skipped:!1};else if(typeof d=="object"&&Gn(d,{selectedValues:!0})){let{selectedValues:c,freeformValue:u}=d;r.answers[a.header]={selected:c,freeText:u??null,skipped:!1}}else if(typeof d=="object"&&(Gn(d,{selectedValue:!0})||Gn(d,{freeformValue:!0}))){let{selectedValue:c,freeformValue:u}=d;u?r.answers[a.header]={selected:[],freeText:u,skipped:!1}:c!==void 0?a.options?.some(m=>m.label===c)?r.answers[a.header]={selected:[c],freeText:null,skipped:!1}:r.answers[a.header]={selected:[],freeText:c,skipped:!1}:r.answers[a.header]={selected:[],freeText:null,skipped:!0}}else this.logService.warn(`[AskQuestionsTool] Unknown answer format for "${a.header}": ${JSON.stringify(d)}`),r.answers[a.header]={selected:[],freeText:null,skipped:!0}}return r}collectMetrics(e,n){let o=Object.values(n.answers),r=o.filter(c=>!c.skipped).length,s=o.filter(c=>c.skipped).length,a=o.filter(c=>c.freeText!==null).length,l=e.filter(c=>c.options?.some(u=>u.recommended)).length,d=e.filter(c=>{let u=n.answers[c.header],m=c.options?.find(g=>g.recommended);return u&&!u.skipped&&m&&u.selected.includes(m.label)}).length;return{answeredCount:r,skippedCount:s,freeTextCount:a,recommendedAvailableCount:l,recommendedSelectedCount:d}}createSkippedResult(e){let n={};for(let o of e)n[o.header]={selected:[],freeText:null,skipped:!0};return{content:[{kind:"text",value:JSON.stringify({answers:n})}]}}createAutopilotResult(e){let n={};for(let o of e)n[o.header]={selected:[],freeText:Zw,skipped:!1};return{content:[{kind:"text",value:JSON.stringify({answers:n})}]}}buildAutopilotCarouselAnswers(e,n,o){let r={},s=new Map;for(let[a,l]of o)s.set(l,a);for(let a of e){let l=s.get(a.header);if(!l)continue;let d=n.questions.find(c=>c.id===l);d&&(d.type==="multiSelect"?r[l]={selectedValues:[],freeformValue:Zw}:d.type==="singleSelect"?r[l]={freeformValue:Zw}:r[l]=Zw)}return r}sendTelemetry(e,n,o,r,s,a,l,d){this.telemetryService.publicLog2("askQuestionsToolInvoked",{requestId:e,questionCount:n,answeredCount:o,skippedCount:r,freeTextCount:s,recommendedAvailableCount:a,recommendedSelectedCount:l,duration:d})}};Nf=D([C(0,kr),C(1,vs),C(2,ne),C(3,Gt)],Nf);var pQ="vscode_get_confirmation",mQ="vscode_get_confirmation_with_options",gQ="vscode_get_modified_files_confirmation",_5={id:pQ,displayName:"Confirmation Tool",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and confirmation type (basic or terminal).",source:dn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},confirmationType:{type:"string",enum:["basic","terminal"],description:"Type of confirmation to show - basic for simple confirmation, terminal for terminal command confirmation"},terminalCommand:{type:"string",description:'Terminal command to show (only used when confirmationType is "terminal")'}},required:["title","message","confirmationType"],additionalProperties:!1}},D5={id:mQ,displayName:"Confirmation Tool with Options",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and buttons.",source:dn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},buttons:{type:"array",items:{type:"string"},description:"Custom button labels to display."}},required:["title","message","buttons"],additionalProperties:!1}},R5={id:gQ,displayName:"Modified Files Confirmation Tool",modelDescription:"A tool that shows a modified-files confirmation UI with a split primary button and a hardcoded cancel action.",source:dn.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},options:{type:"array",items:{type:"string"},minItems:1,description:"Selectable option labels. The first option is used for the primary split button and the remaining options are placed in the dropdown menu."},modifiedFiles:{type:"array",items:{type:"object",properties:{uri:{type:"string",description:"URI of the modified file."},originalUri:{type:"string",description:"Optional original URI used when opening a diff."},insertions:{type:"number",description:"Optional number of lines added."},deletions:{type:"number",description:"Optional number of lines removed."},title:{type:"string",description:"Optional title shown in the file tooltip."},description:{type:"string",description:"Optional secondary label shown for the file entry."}},required:["uri"],additionalProperties:!1},description:"Modified files to show in the confirmation UI."}},required:["title","message","options","modifiedFiles"],additionalProperties:!1}},tk=class{async prepareToolInvocation(t,e){let n=t.parameters;if(!n.title||!n.message)throw new Error("Missing required parameters for ConfirmationTool");let o=n.confirmationType??"basic",r;return o==="terminal"?r={kind:"terminal",commandLine:{original:n.terminalCommand??""},language:"bash"}:r=void 0,{confirmationMessages:{title:n.title,message:new Mt(n.message),allowAutoConfirm:!(n.buttons||[]).length,customOptions:n.buttons?.map((s,a)=>({id:s,label:s,kind:a===0?"approve":"deny"}))},toolSpecificData:r,presentation:"hiddenAfterComplete"}}async invoke(t,e,n,o){return t.selectedCustomButton?{content:[{kind:"text",value:t.selectedCustomButton}]}:{content:[{kind:"text",value:"yes"}]}}},nk=class{async prepareToolInvocation(t,e){let n=t.parameters;if(!n.title||!n.message)throw new Error("Missing required parameters for ModifiedFilesConfirmationTool");if(!n.options?.length)throw new Error("ModifiedFilesConfirmationTool requires at least one option");let o={kind:"modifiedFilesConfirmation",options:n.options,modifiedFiles:n.modifiedFiles.map(r=>({uri:b.parse(r.uri).toJSON(),originalUri:r.originalUri?b.parse(r.originalUri).toJSON():void 0,insertions:r.insertions,deletions:r.deletions,title:r.title,description:r.description}))};return{confirmationMessages:{title:n.title,message:new Mt(n.message),allowAutoConfirm:!1},toolSpecificData:o,presentation:"hiddenAfterComplete"}}async invoke(t,e,n,o){return t.selectedCustomButton?{content:[{kind:"text",value:t.selectedCustomButton}]}:{content:[{kind:"text",value:"yes"}]}}};var Ff=class i{constructor(t,e){this.storageService=e;this.id=i.COMMON_PREFIX+t}static{this.applicationMementos=new Map}static{this.applicationSharedMementos=new Map}static{this.profileMementos=new Map}static{this.workspaceMementos=new Map}static{this.COMMON_PREFIX="memento/"}getMemento(t,e){switch(t){case 1:{let n=i.workspaceMementos.get(this.id);return n||(n=new Uf(this.id,t,e,this.storageService),i.workspaceMementos.set(this.id,n)),n.getMemento()}case 0:{let n=i.profileMementos.get(this.id);return n||(n=new Uf(this.id,t,e,this.storageService),i.profileMementos.set(this.id,n)),n.getMemento()}case-1:{let n=i.applicationMementos.get(this.id);return n||(n=new Uf(this.id,t,e,this.storageService),i.applicationMementos.set(this.id,n)),n.getMemento()}case-2:{let n=i.applicationSharedMementos.get(this.id);return n||(n=new Uf(this.id,t,e,this.storageService),i.applicationSharedMementos.set(this.id,n)),n.getMemento()}}}onDidChangeValue(t,e){return this.storageService.onDidChangeValue(t,this.id,e)}saveMemento(){i.workspaceMementos.get(this.id)?.save(),i.profileMementos.get(this.id)?.save(),i.applicationMementos.get(this.id)?.save(),i.applicationSharedMementos.get(this.id)?.save()}reloadMemento(t){let e;switch(t){case-2:e=i.applicationSharedMementos.get(this.id);break;case-1:e=i.applicationMementos.get(this.id);break;case 0:e=i.profileMementos.get(this.id);break;case 1:e=i.workspaceMementos.get(this.id);break}e?.reload()}static clear(t){switch(t){case 1:i.workspaceMementos.clear();break;case 0:i.profileMementos.clear();break;case-1:i.applicationMementos.clear();break;case-2:i.applicationSharedMementos.clear();break}}},Uf=class{constructor(t,e,n,o){this.id=t;this.scope=e;this.target=n;this.storageService=o;this.mementoObj=this.doLoad()}doLoad(){try{return this.storageService.getObject(this.id,this.scope,{})}catch(t){Qe(`[memento]: failed to parse contents: ${t} (id: ${this.id}, scope: ${this.scope}, contents: ${this.storageService.get(this.id,this.scope)})`)}return{}}getMemento(){return this.mementoObj}reload(){for(let t of Object.getOwnPropertyNames(this.mementoObj))delete this.mementoObj[t];Object.assign(this.mementoObj,this.doLoad())}save(){cp(this.mementoObj)?this.storageService.remove(this.id,this.scope):this.storageService.store(this.id,this.mementoObj,this.scope,this.target)}};var A5=R("chatTodoListService"),xy=class{constructor(t){this.memento=new Ff("chat-todo-list",t)}getSessionData(t){return this.memento.getMemento(1,1)[this.toKey(t)]||[]}setSessionData(t,e){let n=this.memento.getMemento(1,1);n[this.toKey(t)]=e,this.memento.saveMemento()}getTodoList(t){return this.getSessionData(t)}setTodoList(t,e){this.setSessionData(t,e)}migrateTodoList(t,e){let n=this.getSessionData(t);if(n.length>0){this.setSessionData(e,n);let o=this.memento.getMemento(1,1);delete o[this.toKey(t)],this.memento.saveMemento()}}toKey(t){return Ol(t)}};xy=D([C(0,nr)],xy);var ok=class extends U{constructor(e){super();this._onDidUpdateTodos=this._register(new E);this.onDidUpdateTodos=this._onDidUpdateTodos.event;this.todoListStorage=new xy(e)}getTodos(e){return this.todoListStorage.getTodoList(e)}setTodos(e,n){this.todoListStorage.setTodoList(e,n),this._onDidUpdateTodos.fire(e)}migrateTodos(e,n){this.todoListStorage.migrateTodoList(e,n),this._onDidUpdateTodos.fire(n)}};ok=D([C(0,nr)],ok);var yO="manage_todo_list";function IO(){let i={type:"object",properties:{todoList:{type:"array",description:"Complete array of all todo items. Must include ALL items - both existing and new.",items:{type:"object",properties:{id:{type:"number",description:"Unique identifier for the todo. Use sequential numbers starting from 1."},title:{type:"string",description:"Concise action-oriented todo label (3-7 words). Displayed in UI."},status:{type:"string",enum:["not-started","in-progress","completed"],description:"not-started: Not begun | in-progress: Currently working (max 1) | completed: Fully finished with no blockers"}},required:["id","title","status"]}}},required:["todoList"]};return{id:yO,toolReferenceName:"todo",legacyToolReferenceFullNames:["todos"],canBeReferencedInPrompt:!0,icon:dt.fromId(ce.checklist.id),displayName:p(9129,null),userDescription:p(9130,null),modelDescription:`Manage a structured todo list to track progress and plan tasks throughout your coding session. Use this tool VERY frequently to ensure task visibility and proper planning.

When to use this tool:
- Complex multi-step work requiring planning and tracking
- When user provides multiple tasks or requests (numbered/comma-separated)
- After receiving new instructions that require multiple steps
- BEFORE starting work on any todo (mark as in-progress)
- IMMEDIATELY after completing each todo (mark completed individually)
- When breaking down larger tasks into smaller actionable steps
- To give users visibility into your progress and planning

When NOT to use:
- Single, trivial tasks that can be completed in one step
- Purely conversational/informational requests
- When just reading files or performing simple searches

CRITICAL workflow:
1. Plan tasks by writing todo list with specific, actionable items
2. Mark ONE todo as in-progress before starting work
3. Complete the work for that specific todo
4. Mark that todo as completed IMMEDIATELY
5. Move to next todo and repeat

Todo states:
- not-started: Todo not yet begun
- in-progress: Currently working (limit ONE at a time)
- completed: Finished successfully

IMPORTANT: Mark todos completed as soon as they are done. Do not batch completions.`,source:dn.Internal,inputSchema:i}}var hrt=IO(),Hf=class extends U{constructor(e,n,o){super();this.chatTodoListService=e;this.logService=n;this.telemetryService=o}async invoke(e,n,o,r){let s=e.parameters,a=e.context?.sessionResource;if(!a&&s.operation==="read"&&s.chatSessionResource)try{a=b.parse(s.chatSessionResource)}catch(l){this.logService.error("ManageTodoListTool: Invalid chatSessionResource URI",l)}if(!a)return{content:[{kind:"text",value:"Error: No session resource available"}]};this.logService.debug(`ManageTodoListTool: Invoking with options ${JSON.stringify(s)}`);try{return s.operation==="read"?this.handleReadOperation(a):this.handleWriteOperation(s,a)}catch(l){return{content:[{kind:"text",value:`Error: ${l instanceof Error?l.message:"Unknown error"}`}]}}}async prepareToolInvocation(e,n){let o=e.parameters,r=e.chatSessionResource;if(!r)return;let s=this.chatTodoListService.getTodos(r),a;o.operation==="read"?a=p(9124,null):o.todoList&&(a=this.generatePastTenseMessage(s,o.todoList));let l=o.todoList??s,d=l.map(m=>({id:m.id.toString(),title:m.title,status:m.status})),c=a?.replace(/^(Starting|Completed): /i,"")??p(9128,null);return{invocationMessage:new Mt(c),presentation:l.length?void 0:"hidden",pastTenseMessage:new Mt(a??p(9127,null)),toolSpecificData:{kind:"todoList",todoList:d}}}generatePastTenseMessage(e,n){if(e.length===0&&n.length>0)return n.length===1?p(9123,null):p(9122,null,n.length);let o=new Map(e.map(l=>[l.id,l])),r=n.filter(l=>{let d=o.get(l.id);return d&&d.status!=="in-progress"&&l.status==="in-progress"});if(r.length>0){let l=r[0],d=n.length,c=n.findIndex(u=>u.id===l.id)+1;return p(9125,null,l.title,c,d)}let s=n.filter(l=>{let d=o.get(l.id);return d&&d.status!=="completed"&&l.status==="completed"});if(s.length>0){let l=s[0],d=n.length,c=n.findIndex(u=>u.id===l.id)+1;return p(9121,null,l.title,c,d)}let a=n.filter(l=>!o.has(l.id));return a.length>0?a.length===1?p(9120,null):p(9119,null,a.length):p(9126,null)}handleRead(e,n){return e.length===0?"No todo list found.":`# Todo List

${this.formatTodoListAsMarkdownTaskList(e)}`}handleReadOperation(e){let n=this.chatTodoListService.getTodos(e),o=this.handleRead(n,e),r=this.calculateStatusCounts(n);return this.telemetryService.publicLog2("todoListToolInvoked",{operation:"read",notStartedCount:r.notStartedCount,inProgressCount:r.inProgressCount,completedCount:r.completedCount}),{content:[{kind:"text",value:o}]}}handleWriteOperation(e,n){if(!e.todoList)return{content:[{kind:"text",value:"Error: todoList is required for write operation"}]};let o=e.todoList.map(d=>({id:d.id,title:d.title,status:d.status})),r=this.chatTodoListService.getTodos(n),s=this.calculateTodoChanges(r,o);this.chatTodoListService.setTodos(n,o);let a=this.calculateStatusCounts(o),l=[];return o.length<3?l.push("Warning: Small todo list (<3 items). This task might not need a todo list."):o.length>10&&l.push("Warning: Large todo list (>10 items). Consider keeping the list focused and actionable."),s>3&&l.push("Warning: Did you mean to update so many todos at the same time? Consider working on them one by one."),this.telemetryService.publicLog2("todoListToolInvoked",{operation:"write",notStartedCount:a.notStartedCount,inProgressCount:a.inProgressCount,completedCount:a.completedCount}),{content:[{kind:"text",value:`Successfully wrote todo list${l.length?`

`+l.join(`
`):""}`}],toolMetadata:{warnings:l}}}calculateStatusCounts(e){let n=e.filter(s=>s.status==="not-started").length,o=e.filter(s=>s.status==="in-progress").length,r=e.filter(s=>s.status==="completed").length;return{notStartedCount:n,inProgressCount:o,completedCount:r}}formatTodoListAsMarkdownTaskList(e){return e.length===0?"":e.map(n=>{let o;switch(n.status){case"completed":o="[x]";break;case"in-progress":o="[-]";break;default:o="[ ]";break}return[`- ${o} ${n.title}`].join(`
`)}).join(`
`)}calculateTodoChanges(e,n){let o=0,r=Math.min(e.length,n.length);for(let d=0;d<r;d++){let c=e[d],u=n[d];(c.title!==u.title||c.status!==u.status)&&o++}let s=Math.max(0,n.length-e.length),a=Math.max(0,e.length-n.length);return s+a+o}};Hf=D([C(0,A5),C(1,ne),C(2,vs)],Hf);var Vf=class{constructor(t,e,n,o,r,s,a,l,d){this.title=t;this.content=e;this.actions=n;this.canProvideFeedback=o;this.planUri=r;this.resolveId=s;this.data=a;this.isUsed=l;this.source=d;this.kind="planReview";this.completion=new jt}dismiss(){this.isUsed||(this.isUsed=!0,this.draftFeedback=void 0,this.draftCollapsed=void 0,this.completion.complete(void 0))}toJSON(){return{kind:this.kind,title:this.title,content:this.content,actions:this.actions,canProvideFeedback:this.canProvideFeedback,planUri:this.planUri,resolveId:this.resolveId,data:this.data,isUsed:this.isUsed,source:this.source}}};var fQ="vscode_reviewPlan";function hQ(){let t={type:"object",properties:{title:{type:"string",description:'Title displayed in the widget header. Defaults to "Review plan" if omitted.'},plan:{type:"string",description:"Optional URI of an editable plan file. An Edit button in the widget header opens it in the editor."},content:{type:"string",description:"Markdown content rendered in the body of the widget. May be the plan summary or full plan text."},actions:{type:"array",description:"List of approval actions offered in the primary dropdown button. Order is preserved.",items:{type:"object",properties:{label:{type:"string",description:"Short action label shown in the dropdown button."},description:{type:"string",description:"Optional detail shown below the label in the dropdown list."},default:{type:"boolean",description:"Whether this action should be selected by default."},permissionLevel:{type:"string",enum:["autopilot"],description:'When set to "autopilot", a confirmation dialog is shown before proceeding.'}},required:["label"]},minItems:1},canProvideFeedback:{type:"boolean",description:"When true, an additional feedback textarea is shown below the plan content."}},required:["content","actions","canProvideFeedback"]};return{id:fQ,toolReferenceName:"reviewPlan",canBeReferencedInPrompt:!1,icon:dt.fromId(ce.checklist.id),displayName:p(9135,null),userDescription:p(9136,null),modelDescription:"Use this tool to present a plan to the user for review. Provide the plan content as markdown, a list of approval actions (with optional default), and whether the user can provide freeform feedback. Optionally provide a URI to the backing plan file so the user can edit it. The tool returns the chosen action, whether the plan was rejected, and any feedback.",source:dn.Internal,inputSchema:t}}var M5=hQ(),Wf=class extends U{constructor(e,n){super();this.chatService=e;this.logService=n}async invoke(e,n,o,r){let s=e.parameters,{title:a,plan:l,content:d,actions:c,canProvideFeedback:u}=s;if(!c||c.length===0)throw new Error(p(9134,null));let{request:m}=this.getRequest(e.context?.sessionResource,e.chatRequestId);if(!m)return this.logService.warn("[ReviewPlanTool] Missing chat context; returning rejected result."),this.toResult({rejected:!0});let g;if(l)try{g=b.parse(l)}catch{try{g=b.file(l)}catch{g=void 0}}let h=new Vf(a??p(9131,null),d,c,u,g?.toJSON(),Pe());this.chatService.appendProgress(m,h);let f=await El(h.completion.p,r);if(r.isCancellationRequested)throw new Ue;return this.toResult(f??{rejected:!0})}async prepareToolInvocation(e,n){let o=e.parameters;if(!o.actions||o.actions.length===0)throw new Error(p(9134,null));return{invocationMessage:new Mt(p(9132,null)),pastTenseMessage:new Mt(p(9133,null))}}toResult(e){return{content:[{kind:"text",value:JSON.stringify(e)}]}}getRequest(e,n){if(!e)return{request:void 0};let o=this.chatService.getSession(e);if(!o)return{request:void 0};let r;return n&&(r=o.getRequests().find(s=>s.id===n)),r||(r=o.getRequests().at(-1)),{request:r}}};Wf=D([C(0,kr),C(1,ne)],Wf);function L5(i){return i.isBYOK===!0}var vQ="code/chat/",O5=new Map,Sy={RequestStart:"request/start",RequestUiUpdated:"request/uiUpdated",WillCollectInstructions:"request/willCollectInstructions",DidCollectInstructions:"request/didCollectInstructions",FirstToken:"request/firstToken",RequestComplete:"request/complete",AgentWillInvoke:"agent/willInvoke",AgentDidInvoke:"agent/didInvoke"};function Cy(i,t){let e=Ol(i),n=`${vQ}${e}/${t}`,o=O5.get(e);o||(o=new Set,O5.set(e,o)),o.add(n),Wt(n)}var sk=R("chatAgentService"),rk=class extends U{constructor(e,n){super();this.contextKeyService=e;this.configurationService=n;this._agents=new Map;this._onDidChangeAgents=this._register(new E);this.onDidChangeAgents=this._onDidChangeAgents.event;this._onWillInvokeAgent=this._register(new E);this.onWillInvokeAgent=this._onWillInvokeAgent.event;this._agentsContextKeys=new Set;this._hasToolsAgent=!1;this._chatParticipantDetectionProviders=new Map;this._agentCompletionProviders=new Map;this._hasDefaultAgent=rr.enabled.bindTo(this.contextKeyService),this._extensionAgentRegistered=rr.extensionParticipantRegistered.bindTo(this.contextKeyService),this._defaultAgentRegistered=rr.panelParticipantRegistered.bindTo(this.contextKeyService),this._register(e.onDidChangeContext(o=>{o.affectsSome(this._agentsContextKeys)&&this._updateContextKeys()}))}static{this.AGENT_LEADER="@"}registerAgent(e,n){if(this.getAgent(e))throw new Error(`Agent already registered: ${JSON.stringify(e)}`);let r=this,s=n.slashCommands;n={...n,get slashCommands(){return s.filter(l=>!l.when||r.contextKeyService.contextMatchesRules(bt.deserialize(l.when)))}};let a={data:n};return this._agents.set(e,a),this._updateAgentsContextKeys(),this._updateContextKeys(),this._onDidChangeAgents.fire(void 0),Q(()=>{this._agents.delete(e),this._updateAgentsContextKeys(),this._updateContextKeys(),this._onDidChangeAgents.fire(void 0)})}_updateAgentsContextKeys(){this._agentsContextKeys.clear();for(let e of this._agents.values())if(e.data.when){let n=bt.deserialize(e.data.when);for(let o of n?.keys()||[])this._agentsContextKeys.add(o)}}_updateContextKeys(){let e=!1,n=!1,o=!1;for(let r of this.getAgents())r.isDefault&&(r.isCore||(e=!0),r.id==="chat.setup"||r.id==="github.copilot.editsAgent"?o=!0:n=!0);this._defaultAgentRegistered.set(n),this._extensionAgentRegistered.set(e),o!==this._hasToolsAgent&&(this._hasToolsAgent=o,this._onDidChangeAgents.fire(this.getDefaultAgent("panel","agent")))}registerAgentImplementation(e,n){let o=this._agents.get(e);if(!o)throw new Error(`Unknown agent: ${JSON.stringify(e)}`);if(o.impl)throw new Error(`Agent already has implementation: ${JSON.stringify(e)}`);return o.data.isDefault&&this._hasDefaultAgent.set(!0),o.impl=n,this._onDidChangeAgents.fire(new Bf(o.data,n)),Q(()=>{o.impl=void 0,this._onDidChangeAgents.fire(void 0),o.data.isDefault&&this._hasDefaultAgent.set(At.some(this._agents.values(),r=>r.data.isDefault&&!!r.impl))})}registerDynamicAgent(e,n){e.isDynamic=!0;let o={data:e,impl:n};return this._agents.set(e.id,o),this._onDidChangeAgents.fire(new Bf(e,n)),Q(()=>{this._agents.delete(e.id),this._onDidChangeAgents.fire(void 0)})}registerAgentCompletionProvider(e,n){return this._agentCompletionProviders.set(e,n),{dispose:()=>{this._agentCompletionProviders.delete(e)}}}async getAgentCompletionItems(e,n,o){return await this._agentCompletionProviders.get(e)?.(n,o)??[]}updateAgent(e,n){let o=this._agents.get(e);if(!o?.impl)throw new Error(`No activated agent with id ${JSON.stringify(e)} registered`);o.data.metadata={...o.data.metadata,...n},this._onDidChangeAgents.fire(new Bf(o.data,o.impl))}getDefaultAgent(e,n="ask"){return this._preferExtensionAgent(this.getActivatedAgents().filter(o=>n&&!o.modes.includes(n)?!1:!!o.isDefault&&o.locations.includes(e)))}get hasToolsAgent(){return!!this.configurationService.getValue("chat.agent.enabled")}getContributedDefaultAgent(e){return this._preferExtensionAgent(this.getAgents().filter(n=>!!n.isDefault&&n.locations.includes(e)))}_preferExtensionAgent(e){return dU(e,n=>!n.isCore)??e.at(-1)}getAgent(e,n=!1){if(!(!this._agentIsEnabled(e)&&!n))return this._agents.get(e)?.data}_agentIsEnabled(e){let n=typeof e=="string"?this._agents.get(e):e;return!n?.data.when||this.contextKeyService.contextMatchesRules(bt.deserialize(n.data.when))}getAgentByFullyQualifiedId(e){let n=At.find(this._agents.values(),o=>bQ(o.data)===e)?.data;if(!(n&&!this._agentIsEnabled(n.id)))return n}getAgents(){return Array.from(this._agents.values()).map(e=>e.data).filter(e=>this._agentIsEnabled(e.id))}getActivatedAgents(){return Array.from(this._agents.values()).filter(e=>!!e.impl).filter(e=>this._agentIsEnabled(e.data.id)).map(e=>new Bf(e.data,e.impl))}getAgentsByName(e){return this._preferExtensionAgents(this.getAgents().filter(n=>n.name===e))}_preferExtensionAgents(e){let n=e.filter(o=>!o.isCore);return n.length>0?n:e}agentHasDupeName(e){let n=this.getAgent(e);return n?this.getAgentsByName(n.name).filter(o=>o.extensionId.value!==n.extensionId.value).length>0:!1}async invokeAgent(e,n,o,r,s){Cy(n.sessionResource,Sy.AgentWillInvoke);let a=this._agents.get(e);if(!a?.impl)throw new Error(`No activated agent with id "${e}"`);this._onWillInvokeAgent.fire({agentId:e,request:n});let l=await a.impl.invoke(n,o,r,s);return Cy(n.sessionResource,Sy.AgentDidInvoke),l}setRequestTools(e,n,o){let r=this._agents.get(e);r?.impl&&r.impl.setRequestTools?.(n,o)}setYieldRequested(e,n,o){let r=this._agents.get(e);r?.impl&&r.impl.setYieldRequested?.(n,o)}async getFollowups(e,n,o,r,s){let a=this._agents.get(e);return a?.impl?.provideFollowups?a.impl.provideFollowups(n,o,r,s):[]}async getChatTitle(e,n,o){let r=this._agents.get(e);if(r?.impl?.provideChatTitle)return r.impl.provideChatTitle(n,o)}async getChatSummary(e,n,o){let r=this._agents.get(e);if(r?.impl?.provideChatSummary)return r.impl.provideChatSummary(n,o)}registerChatParticipantDetectionProvider(e,n){return this._chatParticipantDetectionProviders.set(e,n),Q(()=>{this._chatParticipantDetectionProviders.delete(e)})}hasChatParticipantDetectionProviders(){return this._chatParticipantDetectionProviders.size>0}async detectAgentOrCommand(e,n,o,r){let s=At.first(this._chatParticipantDetectionProviders.values());if(!s)return;let a=this.getAgents().reduce((u,m)=>{if(m.locations.includes(o.location)){u.push({participant:m.id,disambiguation:m.disambiguation??[]});for(let g of m.slashCommands)u.push({participant:m.id,command:g.name,disambiguation:g.disambiguation??[]})}return u},[]),l=await s.provideParticipantDetection(e,n,{...o,participants:a},r);if(!l)return;let d=this.getAgent(l.participant);if(!d)return;if(!l.command)return{agent:d};let c=d?.slashCommands.find(u=>u.name===l.command);if(c)return{agent:d,command:c}}};rk=D([C(0,Ir),C(1,Gt)],rk);var Bf=class{constructor(t,e){this.data=t;this.impl=e}get id(){return this.data.id}get name(){return this.data.name??""}get fullName(){return this.data.fullName??""}get description(){return this.data.description??""}get extensionId(){return this.data.extensionId}get extensionVersion(){return this.data.extensionVersion}get extensionPublisherId(){return this.data.extensionPublisherId}get extensionPublisherDisplayName(){return this.data.publisherDisplayName}get extensionDisplayName(){return this.data.extensionDisplayName}get isDefault(){return this.data.isDefault}get isCore(){return this.data.isCore}get metadata(){return this.data.metadata}get slashCommands(){return this.data.slashCommands}get locations(){return this.data.locations}get modes(){return this.data.modes}get disambiguation(){return this.data.disambiguation}async invoke(t,e,n,o){return this.impl.invoke(t,e,n,o)}setRequestTools(t,e){this.impl.setRequestTools?.(t,e)}setYieldRequested(t,e){this.impl.setYieldRequested?.(t,e)}async provideFollowups(t,e,n,o){return this.impl.provideFollowups?this.impl.provideFollowups(t,e,n,o):[]}toJSON(){return this.data}},xit=R("chatAgentNameService"),ik=class{constructor(t){this.languageModelsService=t}getAgentNameRestriction(t){if(t.isCore)return!0;let e=this.checkAgentNameRestriction(t.name,t).get(),n=!t.fullName||this.checkAgentNameRestriction(t.fullName.replace(/\s/g,""),t).get();return e&&n}checkAgentNameRestriction(t,e){return this.languageModelsService.restrictedChatParticipants.map(o=>o[t.toLowerCase()]).map(o=>o?o.some(r=>Pn(r,r.includes(".")?e.extensionId.value:e.extensionPublisherId)):!0)}};ik=D([C(0,vS)],ik);function bQ(i){return`${i.extensionId.value}.${i.id}`}function yQ(i){return i.name!==void 0}function ak(i){let t=yQ(i)?i:{...i,name:i.id};return t.extensionPublisherId||(t.extensionPublisherId=i.extensionPublisher??""),t.extensionDisplayName||(t.extensionDisplayName=""),t.extensionId||(t.extensionId=new Ee("")),St(t)}var N5=R("labelService");function xO(){return{applyingInstructionsCount:0,referencedInstructionsCount:0,agentInstructionsCount:0,listedInstructionsCount:0,totalInstructionsCount:0,claudeRulesCount:0,claudeMdCount:0,claudeAgentsCount:0}}function SO(){return{debugDetails:[],durationInMillis:0}}function $f(i,t){return i===void 0||t===void 0||i.includes(t)}var lk=R("IPromptsService");var IQ;(e=>{function i(n){return n.storage==="extension"?{storage:"extension",extensionId:n.extension.identifier}:n.storage==="plugin"?{storage:"plugin",pluginUri:n.pluginUri}:{storage:n.storage}}e.fromPromptPath=i;function t(n,o){return n===o?!0:!n||!o||n.storage!==o.storage?!1:n.storage==="extension"&&o.storage==="extension"?Ee.equals(n.extensionId,o.extensionId):n.storage==="plugin"&&o.storage==="plugin"?Vn(n.pluginUri,o.pluginUri):!0}e.isEquals=t})(IQ||={});var SQ=".prompt.md",CQ=".instructions.md",TQ=".chatmode.md",EQ=".agent.md",wQ="SKILL.md";function kQ(i){return uc(i,wQ)===0}var PQ="copilot-instructions.md";var _Q=".github/prompts",DQ=".github/instructions";var F5=".github/agents",dk=".claude/agents",H5="~/.copilot/agents",CO=".claude/rules";var RQ=[{path:".agents/skills",source:"agents-workspace",storage:"local"},{path:".github/skills",source:"github-workspace",storage:"local"},{path:".claude/skills",source:"claude-workspace",storage:"local"},{path:"~/.agents/skills",source:"agents-personal",storage:"user"},{path:"~/.copilot/skills",source:"copilot-personal",storage:"user"},{path:"~/.claude/skills",source:"claude-personal",storage:"user"}],AQ=[{path:DQ,source:"github-workspace",storage:"local"},{path:CO,source:"claude-workspace",storage:"local"},{path:"~/.copilot/instructions",source:"copilot-personal",storage:"user"},{path:"~/"+CO,source:"claude-personal",storage:"user"}],MQ=[{path:_Q,source:"github-workspace",storage:"local"}],LQ=[{path:F5,source:"github-workspace",storage:"local"},{path:dk,source:"claude-workspace",storage:"local"},{path:H5,source:"copilot-personal",storage:"user"},{path:"~/"+dk,source:"claude-personal",storage:"user"}],OQ=[{path:".github/hooks",source:"github-workspace",storage:"local"},{path:".claude/settings.local.json",source:"claude-workspace-local",storage:"local"},{path:".claude/settings.json",source:"claude-workspace",storage:"local"},{path:"~/.copilot/hooks",source:"copilot-personal",storage:"user"},{path:"~/.claude/settings.json",source:"claude-personal",storage:"user"}];function NQ(i){let t=Oo(i).path;return t.endsWith("/"+F5)||t.endsWith("/"+dk)||UQ(i)}function V5(i){return Oo(i).path.endsWith("/"+dk)}function UQ(i){return Oo(i).path.endsWith(H5.substring(1))}function TO(i){return i.path.includes("/"+CO+"/")}function FQ(i){let t=rt(i);if(t.endsWith(SQ))return"prompt";if(t.endsWith(CQ)||t===PQ)return"instructions";if(t.endsWith(TQ)||t.endsWith(EQ))return"agent";if(kQ(t))return"skill";if(t.endsWith(".md")&&t!=="README.md"&&NQ(i))return"agent";if(t.endsWith(".md")&&t!=="README.md"&&TO(i))return"instructions";if(t.toLowerCase().endsWith(".json"))return"hook"}function EO(i){return FQ(i)!==void 0}function W5(i){switch(i){case"instructions":return AQ;case"prompt":return MQ;case"agent":return LQ;case"skill":return RQ;case"hook":return OQ;default:throw new Error("Unknown prompt type")}}var Ki;(O=>{O.PROMPT_LOCATIONS_KEY="chat.promptFilesLocations",O.INSTRUCTIONS_LOCATION_KEY="chat.instructionsFilesLocations",O.MODE_LOCATION_KEY="chat.modeFilesLocations",O.AGENTS_LOCATION_KEY="chat.agentFilesLocations",O.SKILLS_LOCATION_KEY="chat.agentSkillsLocations",O.HOOKS_LOCATION_KEY="chat.hookFilesLocations",O.PROMPT_FILES_SUGGEST_KEY="chat.promptFilesRecommendations",O.USE_COPILOT_INSTRUCTION_FILES="github.copilot.chat.codeGeneration.useInstructionFiles",O.USE_AGENT_MD="chat.useAgentsMdFile",O.USE_NESTED_AGENT_MD="chat.useNestedAgentsMdFiles",O.USE_CLAUDE_MD="chat.useClaudeMdFile",O.USE_AGENT_SKILLS="chat.useAgentSkills",O.USE_CHAT_HOOKS="chat.useHooks",O.USE_CLAUDE_HOOKS="chat.useClaudeHooks",O.USE_SKILL_ADHERENCE_PROMPT="chat.experimental.useSkillAdherencePrompt",O.INCLUDE_APPLYING_INSTRUCTIONS="chat.includeApplyingInstructions",O.INCLUDE_REFERENCED_INSTRUCTIONS="chat.includeReferencedInstructions",O.USE_CUSTOMIZATIONS_IN_PARENT_REPOS="chat.useCustomizationsInParentRepositories";function T(N,$){let X=HQ($),j=N.getValue(X);if(!(j==null||Array.isArray(j))&&typeof j=="object"){let q={};for(let[oe,ve]of Object.entries(j)){let yt=oe.trim(),ze=B5(ve);ze!==void 0&&yt&&(q[yt]=ze)}return q}}O.getLocationsValue=T;function w(N,$){let X=T(N,$),j=W5($);if(X&&typeof X=="object"){let q=[],oe=new Set(j.map(ve=>ve.path));for(let ve of j)X[ve.path]!==!1&&q.push(ve);for(let[ve,yt]of Object.entries(X)){if(yt===!1||oe.has(ve))continue;let ze=VQ(ve)?"user":"local";q.push({path:ve,source:ze==="local"?"config-workspace":"config-personal",storage:ze})}return q}return[]}O.promptSourceFolders=w;function M(N,$){let X=N.getValue(O.PROMPT_FILES_SUGGEST_KEY,{resource:$});if(!X||typeof X!="object"||Array.isArray(X))return;let j={};for(let[q,oe]of Object.entries(X)){let ve=q.trim();if(!ve)continue;if(typeof oe=="boolean"){j[ve]=oe;continue}if(typeof oe=="string"){let ze=oe.trim();ze&&(j[ve]=ze);continue}let yt=B5(oe);yt!==void 0&&(j[ve]=yt)}return Object.keys(j).length>0?j:void 0}O.getPromptFilesRecommendationsValue=M})(Ki||={});function HQ(i){switch(i){case"instructions":return Ki.INSTRUCTIONS_LOCATION_KEY;case"prompt":return Ki.PROMPT_LOCATIONS_KEY;case"agent":return Ki.AGENTS_LOCATION_KEY;case"skill":return Ki.SKILLS_LOCATION_KEY;case"hook":return Ki.HOOKS_LOCATION_KEY;default:throw new Error("Unknown prompt type")}}function B5(i){if(typeof i=="boolean")return i;if(typeof i=="string"){let t=i.trim().toLowerCase();return t==="true"?!0:t==="false"?!1:void 0}}function VQ(i){return i.startsWith("~/")}var Ao=class i{constructor(t,e){this.start=t;this.endExclusive=e;if(t>e)throw new Rt(`Invalid range: ${this.toString()}`)}static fromTo(t,e){return new i(t,e)}static equals(t,e){return t.start===e.start&&t.endExclusive===e.endExclusive}static addRange(t,e){let n=0;for(;n<e.length&&e[n].endExclusive<t.start;)n++;let o=n;for(;o<e.length&&e[o].start<=t.endExclusive;)o++;if(n===o)e.splice(n,0,t);else{let r=Math.min(t.start,e[n].start),s=Math.max(t.endExclusive,e[o-1].endExclusive);e.splice(n,o-n,new i(r,s))}}static tryCreate(t,e){if(!(t>e))return new i(t,e)}static ofLength(t){return new i(0,t)}static ofStartAndLength(t,e){return new i(t,t+e)}static emptyAt(t){return new i(t,t)}get isEmpty(){return this.start===this.endExclusive}delta(t){return new i(this.start+t,this.endExclusive+t)}deltaStart(t){return new i(this.start+t,this.endExclusive)}deltaEnd(t){return new i(this.start,this.endExclusive+t)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(t){return this.start===t.start&&this.endExclusive===t.endExclusive}containsRange(t){return this.start<=t.start&&t.endExclusive<=this.endExclusive}contains(t){return this.start<=t&&t<this.endExclusive}join(t){return new i(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);if(e<=n)return new i(e,n)}intersectionLength(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return Math.max(0,n-e)}intersects(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return e<n}intersectsOrTouches(t){let e=Math.max(this.start,t.start),n=Math.min(this.endExclusive,t.endExclusive);return e<=n}isBefore(t){return this.endExclusive<=t.start}isAfter(t){return this.start>=t.endExclusive}slice(t){return t.slice(this.start,this.endExclusive)}substring(t){return t.substring(this.start,this.endExclusive)}clip(t){if(this.isEmpty)throw new Rt(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,t))}clipCyclic(t){if(this.isEmpty)throw new Rt(`Invalid clipping range: ${this.toString()}`);return t<this.start?this.endExclusive-(this.start-t)%this.length:t>=this.endExclusive?this.start+(t-this.start)%this.length:t}map(t){let e=[];for(let n=this.start;n<this.endExclusive;n++)e.push(t(n));return e}forEach(t){for(let e=this.start;e<this.endExclusive;e++)t(e)}joinRightTouching(t){if(this.endExclusive!==t.start)throw new Rt(`Invalid join: ${this.toString()} and ${t.toString()}`);return new i(this.start,t.endExclusive)}withMargin(t,e){return e===void 0&&(e=t),new i(this.start-t,this.endExclusive+e)}};var $5=R("agentPluginService");var wO=class{constructor(){this._discovery=[]}register(t){this._discovery.push(t)}getAll(){return this._discovery}},qit=new wO;var WQ,zf=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g,h){this._modeKind=t;this._enabledTools=e;this._enabledSubagents=n;this._currentSessionType=o;this._promptsService=r;this._logService=s;this._labelService=a;this._configurationService=l;this._workspaceService=d;this._fileService=c;this._remoteAgentService=u;this._telemetryService=m;this._languageModelToolsService=g;this._agentPluginService=h;this._parseResults=new je}async _parseInstructionsFile(t,e){if(this._parseResults.has(t))return this._parseResults.get(t);try{let n=await this._promptsService.parseNew(t,e);return this._parseResults.set(t,n),n}catch(n){this._logService.error(`[InstructionsContextComputer] Failed to parse instruction file: ${t}`,n);return}}async collect(t,e){let n=performance.now(),o=await this._promptsService.getInstructionFiles(e);this._logService.trace(`[InstructionsContextComputer] ${o.length} instruction files available.`);let r=xO(),s=SO(),a=this._getContext(t);await this.addApplyingInstructions(o,a,t,r,s,e),await this._addReferencedInstructions(t,r,s,e),await this._addAgentInstructions(t,r,s,e);let l=await this._getCustomizationsIndex(o,t,r,s,e);l&&(t.add(l),r.listedInstructionsCount++),s.durationInMillis=performance.now()-n,this.sendTelemetry(r),WQ={telemetryEvent:r,debugInfo:s}}sendTelemetry(t){t.totalInstructionsCount=t.agentInstructionsCount+t.referencedInstructionsCount+t.applyingInstructionsCount+t.listedInstructionsCount,this._telemetryService.publicLog2("instructionsCollected",t)}async _logSkillLoadedTelemetry(t){try{let e=new je,n=this._agentPluginService.plugins.get();for(let r of n)e.set(r.uri,r);let o=r=>r!==void 0?String(Yn(r)):"";for(let r of t){let s=r.pluginUri?e.get(r.pluginUri):void 0;this._telemetryService.publicLog2("skillLoadedIntoContext",{skillNameHash:o(r.name),skillStorage:r.storage,extensionIdHash:o(r.extension?.identifier.value),extensionVersion:r.extension?.version??"",pluginNameHash:o(s?.label),pluginVersion:s?.fromMarketplace?.version??""})}}catch(e){this._logService.error("[InstructionsContextComputer] Failed to log skill telemetry",e)}}async addApplyingInstructions(t,e,n,o,r,s){if(!this._configurationService.getValue(Ki.INCLUDE_APPLYING_INSTRUCTIONS)&&this._modeKind!=="edit"){this._logService.trace("[InstructionsContextComputer] includeApplyingInstructions is disabled and agent kind is not Edit. No applying instructions will be added.");return}let l=this._currentSessionType;for(let d of t){if(s.isCancellationRequested)return;let{uri:c,pattern:u}=d;if(!$f(d.sessionTypes,l))continue;if(!u){this._logService.trace(`[InstructionsContextComputer] No pattern (applyTo / paths) found: ${c}`),r.debugDetails.push({category:"skipped",name:rt(c).toString(),uri:c,reason:p(8769,null)});continue}let m=TO(c);if(e.instructions.has(c)){this._logService.trace(`[InstructionsContextComputer] Skipping already processed instruction file: ${c}`),r.debugDetails.push({category:"skipped",name:rt(c).toString(),uri:c,reason:p(8767,null)});continue}let g=this._matches(e.files,u);if(g){this._logService.trace(`[InstructionsContextComputer] Match for ${c} with ${g.pattern}${g.file?` for file ${g.file}`:""}`);let h=g.file?p(8778,null,u,this._labelService.getUriLabel(g.file,{relative:!0})):p(8776,null);n.add(Ul(c,"vscode.instructions.file.root",h,!0)),o.applyingInstructionsCount++,r.debugDetails.push({category:"applying",name:rt(c).toString(),uri:c,reason:h}),m&&o.claudeRulesCount++}else this._logService.trace(`[InstructionsContextComputer] No match for ${c} with ${u}`),r.debugDetails.push({category:"skipped",name:rt(c).toString(),uri:c,reason:p(8768,null,u)})}}_getContext(t){let e=new Dr,n=new Dr;for(let o of t.asArray())if(wv(o))n.add(o.value);else{let r=Nl.toUri(o);r&&e.add(r)}return{files:e,instructions:n}}async _addAgentInstructions(t,e,n,o){let r={logInfo:d=>this._logService.trace(`[InstructionsContextComputer] ${d}`)},s=await this._promptsService.listAgentInstructions(o,r),a=new Oc,l=new Oc;for(let{uri:d,type:c}of s){let u=Ul(d,"vscode.instructions.file.root",void 0,!0);a.add(u),c==="copilotInstructionsMd"&&l.add(u),e.agentInstructionsCount++,c==="claudeMd"&&e.claudeMdCount++,n.debugDetails.push({category:"applying",name:rt(d).toString(),uri:d,reason:p(8765,null)}),r.logInfo(`Agent instruction file added: ${d.toString()}`)}if(l.length>0){await this._addReferencedInstructions(l,e,n,o);for(let d of l.asArray())t.add(d)}for(let d of a.asArray())t.add(d)}_matches(t,e){let n=Ea(e,","),o=r=>{if(r=r.trim(),r.length!==0){if(r==="**"||r==="**/*"||r==="*")return{pattern:r};!r.startsWith("/")&&!r.startsWith("**/")&&(r="**/"+r);for(let s of t)if(ir(r,s.path,{ignoreCase:!0}))return{pattern:r,file:s}}};for(let r of n){let s=o(r);if(s)return s}}_getTool(t){if(!this._enabledTools)return;let e=this._languageModelToolsService.getToolByName(t);if(e&&this._enabledTools[e.id])return{tool:e,variable:`#tool:${this._languageModelToolsService.getFullReferenceName(e)}`}}async _getCustomizationsIndex(t,e,n,o,r){let s=this._getTool("readFile"),a=this._getTool("runInTerminal"),l=s??a,d=this._getTool(Hv.runSubagent),c=this._getTool("skill"),u=this._currentSessionType,g=(await this._remoteAgentService.getEnvironment())?.os,h=w=>BQ(w,g),f=[];if(l){let M=this._configurationService.getValue(Ki.USE_NESTED_AGENT_MD)?this._promptsService.listNestedAgentMDs(r):Promise.resolve([]);f.push("<instructions>"),f.push("Here is a list of instruction files that contain rules for working with this codebase."),f.push("These files are important for understanding the codebase structure, conventions, and best practices."),f.push("When an instruction file applies to your task (based on its description or applyTo pattern), follow the rules specified in it."),f.push(`If the file content is not already included in the context, use the ${l.variable} tool to read it before proceeding. Use the exact value from the <file> element as-is with the tool; do not add or remove prefixes or otherwise modify it.`),f.push("Only load instruction files when they are relevant to the current task. Do not eagerly load all instructions upfront."),f.push("When modifying or creating files, check for instructions whose applyTo pattern matches the file path and follow them.");let O=!1;for(let q of t)$f(q.sessionTypes,u)&&(f.push("<instruction>"),f.push(`<file>${h(q.uri)}</file>`),q.description&&f.push(`<description>${q.description}</description>`),q.pattern&&f.push(`<applyTo>${q.pattern}</applyTo>`),f.push("</instruction>"),O=!0);let N=await M;for(let{uri:q}of N){let oe=this._labelService.getUriLabel(Oo(q),{relative:!0}),ve=oe.trim().length===0?p(8775,null):p(8774,null,oe);f.push("<instruction>"),f.push(`<file>${h(q)}</file>`),f.push(`<description>${ve}</description>`),f.push("</instruction>"),O=!0}O?f.push("</instructions>","",""):f.length=0;let $=await this._promptsService.findAgentSkills(r),X=this._configurationService.getValue(AV),j=$?.filter(q=>q.description?q.disableModelInvocation?(o.debugDetails.push({category:"skipped",name:q.name,uri:q.uri,reason:p(8772,null)}),!1):$f(q.sessionTypes,u)?!X&&q.uri.path.includes(MV)?(o.debugDetails.push({category:"skipped",name:q.name,uri:q.uri,reason:p(8770,null)}),!1):!0:(o.debugDetails.push({category:"skipped",name:q.name,uri:q.uri,reason:p(8773,null)}),!1):(o.debugDetails.push({category:"skipped",name:q.name,uri:q.uri,reason:p(8771,null)}),!1));if(j&&j.length>0){this._logSkillLoadedTelemetry(j);for(let Y of j)o.debugDetails.push({category:"skill",name:Y.name,uri:Y.uri,reason:Y.storage});let q=this._configurationService.getValue(Ki.USE_SKILL_ADHERENCE_PROMPT),oe=c??l;f.push("<skills>"),q?(f.push("Skills provide specialized capabilities, domain knowledge, and refined workflows for producing high-quality outputs. Each skill folder contains tested instructions for specific domains like testing strategies, API design, or performance optimization. Multiple skills can be combined when a task spans different domains."),c?f.push(`BLOCKING REQUIREMENT: When a skill applies to the user's request, you MUST invoke it IMMEDIATELY as your first action, BEFORE generating any other response or taking action on the task. Use ${c.variable} with the skill name to load the relevant skill(s).`):f.push(`BLOCKING REQUIREMENT: When a skill applies to the user's request, you MUST load and read the SKILL.md file IMMEDIATELY as your first action, BEFORE generating any other response or taking action on the task. Use ${l.variable} to load the relevant skill(s).`),f.push("NEVER just mention or reference a skill in your response without actually loading it first. If a skill is relevant, load it before proceeding."),f.push("How to determine if a skill applies:"),f.push("1. Review the available skills below and match their descriptions against the user's request"),f.push("2. If any skill's domain overlaps with the task, load that skill immediately"),f.push("3. When multiple skills apply (e.g., a flowchart in documentation), load all relevant skills"),f.push("Examples:"),f.push(`- "Help me write unit tests for this module" -> Load the testing skill via ${oe.variable} FIRST, then proceed`),f.push(`- "Optimize this slow function" -> Load the performance-profiling skill via ${oe.variable} FIRST, then proceed`),f.push('- "Add a discount code field to checkout" -> Load both the checkout-flow and form-validation skills FIRST'),f.push("Available skills:")):c?(f.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),f.push(`When a user asks you to perform a task that falls within the domain of a skill, use the ${c.variable} tool with the skill name to load it.`)):(f.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),f.push("Each skill comes with a description of the topic and a file path that contains the detailed instructions."),f.push(`When a user asks you to perform a task that falls within the domain of a skill, use the ${l.variable} tool to acquire the full instructions from the file URI.`));let ve=15e3,yt=5e3,ze=0,te=j.length;for(let Y=0;Y<j.length;Y++){let ie=j[Y],ee=["<skill>",`<name>${ie.name}</name>`];ie.description&&ee.push(`<description>${ie.description}</description>`),ee.push(`<file>${h(ie.uri)}</file>`),ee.push("</skill>");let le=ee.join(`
`).length+1;if(c&&ze+le>ve){te=Y;break}ze+=le,f.push(...ee)}if(te<j.length){let Y=j.slice(te),ie=[],ee=0;for(let pe of Y){let et=(ie.length>0?2:0)+pe.name.length;if(ee+et>yt)break;ee+=et,ie.push(pe.name)}let le=Y.length-ie.length,re=ie.join(", ");f.push(le>0?`Additional skills available (invoke by name): ${re}... and ${le} more`:`Additional skills available (invoke by name): ${re}`)}f.push("</skills>","","")}}if(d){let w=!!this._configurationService.getValue("chat.generalPurposeAgent.enabled"),M=(()=>{if(!this._enabledSubagents||this._enabledSubagents.includes("*"))return N=>N.visibility.agentInvocable&&$f(N.sessionTypes,u);{let N=this._enabledSubagents;return $=>N.includes($.name)&&$f($.sessionTypes,u)}})(),O=(await this._promptsService.getCustomAgents(r)).filter(N=>N.enabled);if(w||O.length>0){f.push("<agents>"),f.push("Here is a list of agents that can be used when running a subagent."),f.push("Each agent has optionally a description with the agent's purpose and expertise. When asked to run a subagent, choose the most appropriate agent from this list."),f.push(`Use the ${d.variable} tool with the agent name to run the subagent.`),w&&(f.push("<agent>"),f.push(`<name>${zl}</name>`),f.push("<description>Full-capability agent for complex multi-step tasks requiring high-quality reasoning. Has access to the same tools and capabilities as the current agent and inherits the parent agent's model and system prompt. Use for tasks that don't fit a more specialized agent.</description>"),f.push("</agent>"));for(let N of O)M(N)?(f.push("<agent>"),f.push(`<name>${N.name}</name>`),N.description&&f.push(`<description>${N.description}</description>`),N.argumentHint&&f.push(`<argumentHint>${N.argumentHint}</argumentHint>`),f.push("</agent>"),o.debugDetails.push({category:"custom-agent",name:N.name,uri:N.uri}),V5(N.uri)&&n.claudeAgentsCount++):o.debugDetails.push({category:"skipped",name:N.name,uri:N.uri,reason:p(8766,null)});f.push("</agents>","","")}}if(f.length===0)return;let I=f.join(`
`),x=[],T=w=>{if(w){let M=I.indexOf(w.variable);for(;M>=0;)x.push(LH(w.tool,new Ao(M,M+w.variable.length))),M=I.indexOf(w.variable,M+1)}};return T(l),T(d),T(c),MH(I,!0,x)}async _addReferencedInstructions(t,e,n,o){if(!this._configurationService.getValue(Ki.INCLUDE_REFERENCED_INSTRUCTIONS)&&this._modeKind!=="edit"){this._logService.trace("[InstructionsContextComputer] includeReferencedInstructions is disabled and agent kind is not Edit. No referenced instructions will be added.");return}let s=new Dr,a=[];for(let d of t.asArray())wv(d)&&(s.has(d.value)||(a.push(d.value),s.add(d.value)));let l=a.pop();for(;l;){let d=await this._parseInstructionsFile(l,o);if(d&&d.body){let c=[];for(let u of d.body.fileReferences){let m=d.body.resolveFilePath(u.content);m&&!s.has(m)&&(EO(m)||this._workspaceService.getWorkspaceFolder(m)!==void 0)&&(c.push({resource:m}),s.add(m))}if(c.length>0){let u=await this._fileService.resolveAll(c);for(let m=0;m<u.length;m++){let g=u[m],h=c[m].resource;if(g.success&&g.stat?.isFile){EO(h)&&a.push(h);let f=p(8777,null,rt(l));t.add(Ul(h,"vscode.instructions.file.reference",f,!0)),e.referencedInstructionsCount++,n.debugDetails.push({category:"referenced",name:rt(h).toString(),uri:h,reason:f}),this._logService.trace(`[InstructionsContextComputer] ${h.toString()} added, referenced by ${l.toString()}`)}}}}l=a.pop()}}};zf=D([C(4,lk),C(5,ne),C(6,N5),C(7,Gt),C(8,gs),C(9,ga),C(10,Ug),C(11,vs),C(12,em),C(13,$5)],zf);function BQ(i,t){if(i.scheme===B.file||i.scheme===B.vscodeRemote){let e=i.fsPath;return t!==void 0?t===1?e.replace(/\//g,"\\"):e.replace(/\\/g,"/"):e}return i.toString()}function $Q(i,t,e){let n=e.defaultChatAgent?.chatExtensionId;if(!n)return!1;let o=Ee.equals(t,n),r=i.path.includes("/github/");return o&&r}function kO(i,t,e){if(i.storage!=="extension")return!1;let n=e.defaultChatAgent?.chatExtensionId;return!n||!Ee.equals(i.extensionId,n)?!1:!$Q(t,i.extensionId,e)}function ck(i){return{content:[{kind:"text",value:i}]}}var zQ=`Launch a new agent to handle complex, multi-step tasks autonomously. This tool is good at researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries, use this agent to perform the search for you.

- Agents do not run async or in the background, you will wait for the agent's result.
- When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
- Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
- The agent's outputs should generally be trusted
- Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent
- If the user asks for a certain agent, you MUST provide that EXACT agent name (case-sensitive) to invoke that specific agent.`,qQ=5,ji=class extends U{constructor(e,n,o,r,s,a,l,d,c){super();this.chatAgentService=e;this.chatService=n;this.languageModelToolsService=o;this.languageModelsService=r;this.logService=s;this.configurationService=a;this.promptsService=l;this.instantiationService=d;this.productService=c;this._onDidUpdateToolData=this._register(new E);this.onDidUpdateToolData=this._onDidUpdateToolData.event;this._resolvedModels=new Map;this._sessionDepth=new Map;this._register(ye.filter(this.configurationService.onDidChangeConfiguration,u=>u.affectsConfiguration("chat.generalPurposeAgent.enabled"))(()=>this._onDidUpdateToolData.fire()))}static{this.Id="runSubagent"}getToolData(){let e=zQ,n=this.configurationService.getValue("chat.generalPurposeAgent.enabled"),o={prompt:{type:"string",description:"A detailed description of the task for the agent to perform"},description:{type:"string",description:"A short (3-5 word) description of the task"}};o.agentName={type:"string",description:n?"Name of the agent to invoke.":"Optional name of a specific agent to invoke. If not provided, uses the current agent."},o.model={type:"string",description:'Optional model for the subagent. Format: "Model Name (Vendor)", vendor is usually "copilot". Only use to enforce a specific model.'};let r=["prompt","description"];n&&r.push("agentName");let s={type:"object",properties:o,required:r};return{id:ji.Id,toolReferenceName:Hv.runSubagent,icon:dt.fromId(ce.organization.id),displayName:p(9137,null),userDescription:p(9138,null),modelDescription:e,source:dn.Internal,inputSchema:s}}async invoke(e,n,o,r){let s=e.parameters;if(this.logService.debug(`RunSubagentTool: Invoking with prompt: ${s.prompt.substring(0,100)}...`),!e.context)throw new Error("toolInvocationToken is required for this tool");let a=this.chatService.getSession(e.context.sessionResource);if(!a)throw new Error("Chat model not found for session");let l=a.getRequests().at(-1),d=new z;try{let c=this.chatAgentService.getDefaultAgent("panel","agent");if(!c)return ck("Error: No default agent available");let u=e.modelId,m=e.userSelectedTools,g,h,f,I=s.agentName,x=this.configurationService.getValue("chat.generalPurposeAgent.enabled"),T=x&&(!I||I===zl),w=T?zl:I;if(I&&!T)if(h=await this.getSubAgentByName(I),h){let re=this._resolvedModels.get(e.callId);if(re)this._resolvedModels.delete(e.callId),u=re.modeModelId,f=re.resolvedModelName;else{let Ne=this.resolveSubagentModel(h,e.modelId,s.model);u=Ne.modeModelId,f=Ne.resolvedModelName}let pe=h.tools;if(pe){let Ne=this.languageModelToolsService.toToolAndToolSetEnablementMap(pe,void 0);m={};for(let[It,Ut]of Ne)BV(It)||(m[It.id]=Ut)}let et=h.agentInstructions;g=et&&{name:I,content:et.content,toolReferences:this.languageModelToolsService.toToolReferences(et.toolReferences),metadata:et.metadata,isBuiltin:kO(h.source,h.uri,this.productService)}}else{this._resolvedModels.delete(e.callId);let re=" Try again with the correct agent name, or omit agentName to use the current agent.",pe=x?` Additionally, you can use '${zl}' for a full-capability agent.`:"";throw new Error(`Requested agent '${I}' not found.${re}${pe}`)}else{let re=this._resolvedModels.get(e.callId);if(re)this._resolvedModels.delete(e.callId),u=re.modeModelId,f=re.resolvedModelName;else{let pe=this.resolveSubagentModel(void 0,e.modelId,s.model);u=pe.modeModelId,f=pe.resolvedModelName}}let M=[],O=e.chatStreamToolCallId??e.callId??`subagent-${Pe()}`,N=!1,$=re=>{for(let pe of re)pe.kind==="textEdit"||pe.kind==="notebookEdit"||pe.kind==="codeblockUri"?(pe.kind==="codeblockUri"&&!N&&(N=!0,a.acceptResponseProgress(l,{kind:"markdownContent",content:new Mt("```\n")})),pe.kind==="codeblockUri"?a.acceptResponseProgress(l,{...pe,subAgentInvocationId:O}):a.acceptResponseProgress(l,pe)):pe.kind==="hook"?a.acceptResponseProgress(l,{...pe,subAgentInvocationId:O}):pe.kind==="markdownContent"&&(N&&(a.acceptResponseProgress(l,{kind:"markdownContent",content:new Mt("\n```\n\n")}),N=!1),M.push(pe.content.value))},X=this.configurationService.getValue("chat.subagents.allowInvocationsFromSubagents")??!1,j=X?qQ:0,q=e.context.sessionResource.toString(),oe=this._sessionDepth.get(q)??0,ve=oe+1<=j;m||(m={}),m[ji.Id]!==!1&&(m[ji.Id]=ve),m[yO]=!1,m.copilot_askQuestions=!1,j>0&&this.logService.debug(`RunSubagentTool: Nested subagents enabling ${m[ji.Id]}: session ${q}, currentDepth: ${oe}, maxDepth: ${j}, allowInvocationsFromSubagents: ${X}`);let ze=new Oc;await this.instantiationService.createInstance(zf,"agent",m,void 0,Mc(e.context.sessionResource)).collect(ze,r);let Y;try{Y=(await this.promptsService.getHooks(r))?.hooks}catch(re){this.logService.warn("[ChatService] Failed to collect hooks:",re)}if(h?.hooks){let re={...h.hooks};if(re.Stop){let pe=re.Stop;re.SubagentStop=re.SubagentStop?[...re.SubagentStop,...pe]:pe,re.Stop=void 0}Y=NV(Y,re)}let ie={sessionResource:e.context.sessionResource,requestId:e.callId??`subagent-${Date.now()}`,agentId:c.id,message:s.prompt,variables:{variables:ze.asArray()},location:"panel",subAgentInvocationId:O,subAgentName:w,userSelectedModelId:u,modelConfiguration:u?this.languageModelsService.getModelConfiguration(u):void 0,userSelectedTools:m,modeInstructions:g,parentRequestId:e.chatRequestId,hooks:Y,hasHooksEnabled:!!Y&&Object.values(Y).some(re=>re&&re.length>0)};d.add(this.languageModelToolsService.onDidInvokeTool(re=>{re.subagentInvocationId===O&&(M.length=0)})),this._sessionDepth.set(q,oe+1);let ee;try{ee=await this.chatAgentService.invokeAgent(c.id,ie,$,[],r)}finally{let re=(this._sessionDepth.get(q)??1)-1;re<=0?this._sessionDepth.delete(q):this._sessionDepth.set(q,re)}if(ee?.errorDetails)return ck(`Agent error: ${ee.errorDetails.message}`);let le=M.join("").replace(/^\n*```\n+```\n*/g,"").trim()||"Agent completed with no output";return e.toolSpecificData?.kind==="subagent"&&(e.toolSpecificData.result=le,e.toolSpecificData.modelName=f),{content:[{kind:"text",value:le}],toolMetadata:{subAgentInvocationId:O,description:s.description,agentName:ie.subAgentName,modelName:f}}}catch(c){let u=`Error invoking subagent: ${c instanceof Error?c.message:"Unknown error"}`;return this.logService.error(u,c),ck(u)}finally{d.dispose()}}async getSubAgentByName(e){return(await this.promptsService.getCustomAgents(me.None)).find(o=>o.name===e&&o.enabled)}checkMultiplierConstraint(e,n){if(!n||e===n)return{exceeds:!1};let o=this.languageModelsService.lookupLanguageModel(n),r=this.languageModelsService.lookupLanguageModel(e),s=o?.multiplierNumeric,a=r?.multiplierNumeric;return s!==void 0&&a!==void 0&&a>s?{exceeds:!0,reason:`exceeds the current model's cost tier (${a}x vs ${s}x)`}:{exceeds:!1}}getAvailableModelsInfo(e){let n=this.languageModelsService.getLanguageModelIds().map(a=>({id:a,metadata:this.languageModelsService.lookupLanguageModel(a)})).filter(a=>!!a.metadata&&zv.suitableForAgentMode(a.metadata)&&a.metadata.isUserSelectable!==!1&&!a.metadata.targetChatSessionType);if(n.length===0)return"No models available.";let o=[],r=[];for(let{id:a,metadata:l}of n){let d=zv.asQualifiedName(l);this.checkMultiplierConstraint(a,e).exceeds?r.push(d):o.push(d)}let s=[];return o.length>0&&s.push(`Available models: ${o.join(", ")}`),r.length>0&&s.push(`Unavailable (exceeds current model's cost tier): ${r.join(", ")}`),s.join(". ")||"No models available."}resolveSubagentModel(e,n,o){let r=n,s=!1;if(o){let l=this.languageModelsService.lookupLanguageModelByQualifiedName(o);if(l?.identifier)r=l.identifier,s=!0;else throw new Error(`Requested model '${o}' not found. ${this.getAvailableModelsInfo(n)}`)}if(e&&!s){let l=e.model;if(l){let d=n?this.languageModelsService.lookupLanguageModel(n):void 0,u=!!d&&L5(d)&&kO(e.source,e.uri,this.productService);for(let m of l){let g=this.languageModelsService.lookupLanguageModelByQualifiedName(m);if(g?.identifier){if(u&&g.metadata.vendor===Kl)continue;r=g.identifier;break}}}}if(r){let l=this.checkMultiplierConstraint(r,n);if(l.exceeds){let d=this.languageModelsService.lookupLanguageModel(r);throw new Error(`Requested model '${d?.name}' ${l.reason}. ${this.getAvailableModelsInfo(n)}`)}}let a=r?this.languageModelsService.lookupLanguageModel(r):void 0;return{modeModelId:r,resolvedModelName:a?.name}}async prepareToolInvocation(e,n){let o=e.parameters,s=this.configurationService.getValue("chat.generalPurposeAgent.enabled")&&(!o.agentName||o.agentName===zl),a=o.agentName&&!s?await this.getSubAgentByName(o.agentName):void 0,l=this.resolveSubagentModel(a,e.modelId,o.model);return this._resolvedModels.set(e.toolCallId,l),{invocationMessage:o.description,toolSpecificData:{kind:"subagent",description:o.description,agentName:s?zl:a?.name??o.agentName,prompt:o.prompt,modelName:l.resolvedModelName}}}};ji=D([C(0,sk),C(1,kr),C(2,em),C(3,vS),C(4,ne),C(5,Gt),C(6,lk),C(7,Yo),C(8,hs)],ji);var z5=R("chatEditingService");var Dat=new k("chatEditingWidgetFileState",void 0,p(8694,null)),Rat=new k("chatEditingAgentSupportsReadonlyReferences",void 0,p(8693,null)),Aat=new k("decidedChatEditingResource",[]),Mat=new k("chatEditingResource",void 0),Lat=new k("inChatEditingSession",void 0),Oat=new k("hasUndecidedChatEditingResource",!1),Nat=new k("hasAppliedChatEdits",!1),Uat=new k("applyingChatEditsFailed",!1);function PO(i){return l5(i)&&(i={kind:"terminal",commandLine:{original:i.command,toolEdited:void 0,userEdited:void 0},language:i.language}),i}var Ty=class i{constructor(t,e,n,o,r,s={},a){this.toolCallId=n;this.kind="toolInvocation";this.isAttachedToThinking=!1;this._toolSpecificDataKind=_n(this,void 0);this.toolSpecificDataKind=this._toolSpecificDataKind;this._progress=_n(this,{progress:0});this._partialInput=_n(this,void 0);this._streamingMessage=_n(this,void 0);let l="";s.startInStreaming?l=e.displayName:s.startInCancelled&&(l=s.cancelReasonMessage??p(8726,null,e.displayName)),this.invocationMessage=t?.invocationMessage??l,this.pastTenseMessage=t?.pastTenseMessage,this.originMessage=t?.originMessage,this.confirmationMessages=t?.confirmationMessages,this.presentation=t?.presentation,this.toolSpecificData=t?.toolSpecificData,this.toolId=e.id,this.icon=t?.icon??(e.icon&&dt.isThemeIcon(e.icon)?e.icon:void 0),this.source=e.source,this.subAgentInvocationId=o,this.parameters=r,this.chatRequestId=a,s.startInCancelled?this._state=_n(this,{type:Tt.StateKind.Cancelled,reason:s.cancelReason??0,reasonMessage:s.cancelReasonMessage,parameters:this.parameters,confirmationMessages:this.confirmationMessages}):s.startInStreaming?this._state=_n(this,{type:Tt.StateKind.Streaming,partialInput:this._partialInput,streamingMessage:this._streamingMessage}):this.confirmationMessages?.title?this._state=_n(this,{type:Tt.StateKind.WaitingForConfirmation,parameters:this.parameters,confirmationMessages:this.confirmationMessages,confirm:d=>{d.type===0||d.type===5?this._state.set({type:Tt.StateKind.Cancelled,reason:d.type,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0):this._state.set({type:Tt.StateKind.Executing,confirmed:d,progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}}):this._state=_n(this,{type:Tt.StateKind.Executing,confirmed:{type:1,reason:this.confirmationMessages?.confirmationNotNeededReason},progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages})}get toolSpecificData(){return this._toolSpecificData}set toolSpecificData(t){this._toolSpecificData=t,this._toolSpecificDataKind.set(t?.kind,void 0)}get state(){return this._state}static createStreaming(t){return new i(void 0,t.toolData,t.toolCallId,t.subagentInvocationId,void 0,{startInStreaming:!0},t.chatRequestId)}static createCancelled(t,e,n,o){return new i(void 0,t.toolData,t.toolCallId,t.subagentInvocationId,e,{startInCancelled:!0,cancelReason:n,cancelReasonMessage:o},t.chatRequestId)}updatePartialInput(t){this._state.get().type===Tt.StateKind.Streaming&&this._partialInput.set(t,void 0)}updateStreamingMessage(t){this._state.get().type===Tt.StateKind.Streaming&&this._streamingMessage.set(t,void 0)}notifyToolSpecificDataChanged(){let t=this._state.get();this._state.set({...t},void 0)}cancelFromStreaming(t,e){return this._state.get().type!==Tt.StateKind.Streaming?!1:(this._state.set({type:Tt.StateKind.Cancelled,reason:t,reasonMessage:e,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0),!0)}transitionFromStreaming(t,e,n){if(this._state.get().type!==Tt.StateKind.Streaming)return;let r=this._streamingMessage.get();r&&!t?.invocationMessage&&(this.invocationMessage=r),this.parameters=e,t&&(t.invocationMessage&&(this.invocationMessage=t.invocationMessage),this.pastTenseMessage=t.pastTenseMessage,this.confirmationMessages=t.confirmationMessages,this.presentation=t.presentation,this.toolSpecificData=t.toolSpecificData);let s=a=>{a.type===0||a.type===5?this._state.set({type:Tt.StateKind.Cancelled,reason:a.type,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0):this._state.set({type:Tt.StateKind.Executing,confirmed:a,progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)};n?s(n):this.confirmationMessages?.title?this._state.set({type:Tt.StateKind.WaitingForConfirmation,parameters:this.parameters,confirmationMessages:this.confirmationMessages,confirm:s},void 0):this._state.set({type:Tt.StateKind.Executing,confirmed:{type:1,reason:this.confirmationMessages?.confirmationNotNeededReason},progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}_setCompleted(t,e){if(e&&(e.type===0||e.type===5)){this._state.set({type:Tt.StateKind.Cancelled,reason:e.type,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0);return}this._state.set({type:Tt.StateKind.Completed,confirmed:Tt.executionConfirmedOrDenied(this)||{type:1},resultDetails:t?.toolResultDetails,postConfirmed:e,contentForModel:t?.content||[],parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}async didExecuteTool(t,e,n){if(t?.toolResultMessage?this.pastTenseMessage=t.toolResultMessage:this._progress.get().message&&(this.pastTenseMessage=this._progress.get().message),this.confirmationMessages?.confirmResults&&!t?.toolResultError&&t?.confirmResults!==!1&&!e){let o=await n?.();o?this._setCompleted(t,o):this._state.set({type:Tt.StateKind.WaitingForPostApproval,confirmed:Tt.executionConfirmedOrDenied(this)||{type:1},resultDetails:t?.toolResultDetails,contentForModel:t?.content||[],confirm:r=>this._setCompleted(t,r),parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}else this._setCompleted(t);return this._state.get()}acceptProgress(t){let e=this._progress.get();this._progress.set({progress:t.progress||e.progress||0,message:t.message},void 0)}toJSON(){let t=this.state.get().type===Tt.StateKind.WaitingForPostApproval,e=t?void 0:Tt.resultDetails(this);return{kind:"toolInvocationSerialized",presentation:this.presentation,invocationMessage:this.invocationMessage,pastTenseMessage:this.pastTenseMessage,originMessage:this.originMessage,isConfirmed:t?{type:5}:Tt.executionConfirmedOrDenied(this),isComplete:!0,source:this.source,resultDetails:WV(e)?{output:{type:"data",mimeType:e.output.mimeType,base64Data:so(e.output.value)}}:e,toolSpecificData:this.toolSpecificData,toolCallId:this.toolCallId,toolId:this.toolId,subAgentInvocationId:this.subAgentInvocationId,generatedTitle:this.generatedTitle}}};var jQ;(t=>{function i(e,n){return e.text===n.text&&gA(e.parts,n.parts,(o,r)=>o.kind===r.kind&&Ao.equals(o.range,r.range)&&We.equalsRange(o.editorRange,r.editorRange)&&o.text===r.text)}t.equals=i})(jQ||={});var qf=class i{constructor(t,e,n){this.range=t;this.editorRange=e;this.text=n;this.kind=i.Kind}static{this.Kind="text"}get promptText(){return this.text}},yk="#",GQ="@",Ey="/",uk=class i{constructor(t,e,n,o,r){this.range=t;this.editorRange=e;this.variableName=n;this.variableArg=o;this.variableId=r;this.kind=i.Kind}static{this.Kind="var"}get text(){let t=this.variableArg?`:${this.variableArg}`:"";return`${yk}${this.variableName}${t}`}get promptText(){return this.text}},pk=class i{constructor(t,e,n,o,r,s){this.range=t;this.editorRange=e;this.toolName=n;this.toolId=o;this.displayName=r;this.icon=s;this.kind=i.Kind}static{this.Kind="tool"}get text(){return`${yk}${this.toolName}`}get promptText(){return this.text}toVariableEntry(){return{kind:"tool",id:this.toolId,name:this.toolName,range:this.range,value:void 0,icon:dt.isThemeIcon(this.icon)?this.icon:void 0,fullName:this.displayName}}},mk=class i{constructor(t,e,n,o,r,s){this.range=t;this.editorRange=e;this.id=n;this.name=o;this.icon=r;this.tools=s;this.kind=i.Kind}static{this.Kind="toolset"}get text(){return`${yk}${this.name}`}get promptText(){return this.text}toVariableEntry(){return{kind:"toolset",id:this.id,name:this.name,range:this.range,icon:this.icon,value:this.tools}}},gk=class i{constructor(t,e,n){this.range=t;this.editorRange=e;this.agent=n;this.kind=i.Kind}static{this.Kind="agent"}get text(){return`${GQ}${this.agent.name}`}get promptText(){return""}},fk=class i{constructor(t,e,n){this.range=t;this.editorRange=e;this.command=n;this.kind=i.Kind}static{this.Kind="subcommand"}get text(){return`${Ey}${this.command.name}`}get promptText(){return""}},hk=class i{constructor(t,e,n){this.range=t;this.editorRange=e;this.slashCommand=n;this.kind=i.Kind}static{this.Kind="slash"}get text(){return`${Ey}${this.slashCommand.command}`}get promptText(){return`${Ey}${this.slashCommand.command}`}},vk=class i{constructor(t,e,n,o){this.range=t;this.editorRange=e;this.name=n;this.kind=i.Kind;o!==void 0&&(this.displayText=o)}static{this.Kind="prompt"}get text(){return this.displayText??`${Ey}${this.name}`}get promptText(){return this.displayText??`${Ey}${this.name}`}},bk=class i{constructor(t,e,n,o,r,s,a,l,d,c,u){this.range=t;this.editorRange=e;this.text=n;this.id=o;this.modelDescription=r;this.data=s;this.fullName=a;this.icon=l;this.isFile=d;this.isDirectory=c;this._meta=u;this.kind=i.Kind}static{this.Kind="dynamic"}get referenceText(){return this.text.replace(yk,"")}get promptText(){return this.text}toVariableEntry(){return this.id==="vscode.problems"?Ev.toEntry(this.data.filter):{kind:this.isDirectory?"directory":this.isFile?"file":"generic",id:this.id,name:this.referenceText,range:this.range,value:this.data,fullName:this.fullName,icon:this.icon,_meta:this._meta}}};function q5(i){return{text:i.text,parts:i.parts.map(t=>{if(t.kind===qf.Kind)return new qf(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.text);if(t.kind===uk.Kind)return new uk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.variableName,t.variableArg,t.variableId||"");if(t.kind===pk.Kind)return new pk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.toolName,t.toolId,t.displayName,t.icon);if(t.kind===mk.Kind)return new mk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.id,t.name,t.icon,t.tools??[]);if(t.kind===gk.Kind){let e=t.agent;return e=ak(e),new gk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,e)}else{if(t.kind===fk.Kind)return new fk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.command);if(t.kind===hk.Kind)return new hk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.slashCommand);if(t.kind===vk.Kind)return new vk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.name,t.displayText);if(t.kind===bk.Kind)return new bk(new Ao(t.range.start,t.range.endExclusive),t.editorRange,t.text,t.id,t.modelDescription,St(t.data),t.fullName,t.icon,t.isFile,t.isDirectory,t._meta);throw new Error(`Unknown chat request part: ${t.kind}`)}})}}var G5;(t=>{function i(e){return{variables:e.variables.map(Nl.toExport)}}t.toExport=i})(G5||={});var Gi={reason:"other"},Ik=class{constructor(t){this._shouldBeBlocked=_n(this,!1);this._version=0;this._session=t.session,this.message=t.message,this._variableData=t.variableData,this.timestamp=t.timestamp,this._attempt=t.attempt??0,this.modeInfo=t.modeInfo,this._confirmation=t.confirmation,this._locationData=t.locationData,this._attachedContext=t.attachedContext,this.isCompleteAddedRequest=t.isCompleteAddedRequest??!1,this.modelId=t.modelId,this.id=t.restoredId??"request_"+Pe(),this._editedFileEvents=t.editedFileEvents,this.userSelectedTools=t.userSelectedTools,this.isSystemInitiated=t.isSystemInitiated,this.systemInitiatedLabel=t.systemInitiatedLabel,this.terminalExecutionId=t.terminalExecutionId}get shouldBeBlocked(){return this._shouldBeBlocked}setShouldBeBlocked(t){this._shouldBeBlocked.set(t,void 0)}get session(){return this._session}get attempt(){return this._attempt}get variableData(){return this._variableData}set variableData(t){this._version++,this._variableData=t}get confirmation(){return this._confirmation}get locationData(){return this._locationData}get attachedContext(){return this._attachedContext}get editedFileEvents(){return this._editedFileEvents}get version(){return this._version}adoptTo(t){this._session=t}},xk=class{get value(){return this._responseParts}constructor(t){this._responseParts=t}toString(){return this._responseRepr===void 0&&(this._responseRepr=this.computeRepr()),this._responseRepr}getMarkdown(){return this._markdownContent===void 0&&(this._markdownContent=this.computeMarkdownContent()),this._markdownContent}getFinalResponse(){let t=this._responseParts,e=t.length-1;for(;e>=0;){let s=t[e];if(s.kind==="markdownContent"||s.kind==="markdownVuln"){if(s.content.value.length>0)break}else if(s.kind==="inlineReference")break;e--}if(e<0)return"";let n=e;for(;e>=0;){let s=t[e];if(s.kind==="markdownContent"||s.kind==="markdownVuln"||s.kind==="inlineReference")e--;else break}let o=e+1,r=[];for(let s=o;s<=n;s++){let a=t[s];a.kind==="inlineReference"?r.push(this.inlineRefToRepr(a)):(a.kind==="markdownContent"||a.kind==="markdownVuln")&&a.content.value.length>0&&r.push(a.content.value)}return r.join("")}_invalidateRepr(){this._responseRepr=void 0,this._markdownContent=void 0}computeMarkdownContent(){let t=[];for(let e of this._responseParts)e.kind==="inlineReference"?t.push(this.inlineRefToRepr(e)):(e.kind==="markdownContent"||e.kind==="markdownVuln")&&e.content.value.length>0&&t.push(e.content.value);return t.join("")}computeRepr(){return this.partsToRepr(this._responseParts)}partsToRepr(t){let e=[],n=[],o=!1;for(let r of t){let s;switch(r.kind){case"clearToPreviousToolInvocation":n=[],e.length=0,o=!1;continue;case"treeData":case"progressMessage":case"codeblockUri":case"extensions":case"pullRequest":case"undoStop":case"workspaceEdit":case"externalEdit":case"elicitation2":case"elicitationSerialized":case"thinking":case"hook":case"multiDiffData":case"mcpServersStarting":case"questionCarousel":case"planReview":case"disabledClaudeHooks":continue;case"toolInvocation":case"toolInvocationSerialized":s=this.getToolInvocationText(r);break;case"inlineReference":s={text:this.inlineRefToRepr(r)};break;case"command":s={text:r.command.title,isBlock:!0};break;case"textEditGroup":case"notebookEditGroup":o=!0;continue;case"confirmation":if(r.message instanceof Mt){s={text:`${r.title}
${r.message.value}`,isBlock:!0};break}s={text:`${r.title}
${r.message}`,isBlock:!0};break;case"markdownContent":case"markdownVuln":case"progressTask":case"progressTaskSerialized":case"warning":case"info":s={text:r.content.value};break;default:continue}s.isBlock?(n.length&&(e.push(n.join("")),n=[]),e.push(s.text)):n.push(s.text)}return n.length&&e.push(n.join("")),o&&e.push(p(8721,null)),e.join(`

`)}inlineRefToRepr(t){return"uri"in t.inlineReference?this.uriToRepr(t.inlineReference.uri):"name"in t.inlineReference?"`"+t.inlineReference.name+"`":this.uriToRepr(t.inlineReference)}getToolInvocationText(t){let e=s=>s.presentationOverrides?.commandLine??s.commandLine.forDisplay??s.commandLine.userEdited??s.commandLine.toolEdited??s.commandLine.original,n="",o="";if(t.pastTenseMessage?n=typeof t.pastTenseMessage=="string"?t.pastTenseMessage:t.pastTenseMessage.value:n=typeof t.invocationMessage=="string"?t.invocationMessage:t.invocationMessage.value,t.toolSpecificData&&t.toolSpecificData.kind==="terminal"){n="Ran terminal command";let s=PO(t.toolSpecificData);o=e(s)}let r=n;if(o&&(r+=`: ${o}`),t.kind==="toolInvocationSerialized"||t.kind==="toolInvocation"&&Tt.isComplete(t)){let s=Tt.resultDetails(t);if(s&&"input"in s){let a=t.kind==="toolInvocationSerialized"||Tt.isComplete(t)?"Completed":"Errored",l=t.toolSpecificData?.kind==="terminal"?e(PO(t.toolSpecificData)):s.input;r+=`
${a} with input: ${l}`}}return{text:r,isBlock:!0}}uriToRepr(t){return t.scheme===B.http||t.scheme===B.https?t.toString(!1):rt(t)}},_O=class extends xk{constructor(e,n){let o=e.value.findIndex(r=>r.kind==="undoStop"&&r.id===n);e.value[o+1]?.kind==="codeblockUri"&&e.value[o-1]?.kind==="markdownContent"&&o--;super(o===-1?e.value.slice():e.value.slice(0,o));this.undoStop=n}},DO=class extends xk{constructor(e){super(An(e).map(n=>"kind"in n?n:Vo(n)?{content:n,kind:"markdownContent"}:{kind:"treeData",treeData:n}));this._store=new z;this._onDidChangeValue=this._store.add(new E);this._citations=[]}get onDidChangeValue(){return this._onDidChangeValue.event}dispose(){this._store.dispose()}clear(){this._responseParts=[],this._contentChanged(!0)}clearToPreviousToolInvocation(e){let n=-1;for(let o=this._responseParts.length-1;o>=0;o--){let r=this._responseParts[o];if(r.kind==="toolInvocation"||r.kind==="toolInvocationSerialized"){n=o;break}}n!==-1?this._responseParts=this._responseParts.slice(0,n+1):this._responseParts=[],e&&this._responseParts.push({kind:"warning",content:new Mt(e)}),this._contentChanged(!0)}updateContent(e,n){if(e.kind==="clearToPreviousToolInvocation"){e.reason===2?this.clearToPreviousToolInvocation(p(8720,null)):e.reason===1?this.clearToPreviousToolInvocation(p(8722,null)):this.clearToPreviousToolInvocation();return}else if(e.kind==="markdownContent"){let o=this._responseParts.filter(r=>r.kind!=="textEditGroup").at(-1);if(!o||o.kind!=="markdownContent"||!K5(o.content,e.content))this._responseParts.push(e);else{let r=this._responseParts.indexOf(o);this._responseParts[r]={...o,content:j5(o.content,e.content)}}this._contentChanged(n)}else if(e.kind==="thinking"){let o=this._responseParts.filter(l=>l.kind!=="textEditGroup").at(-1),r=o&&o.kind==="thinking"?Array.isArray(o.value)?o.value.join(""):o.value||"":"",s=Array.isArray(e.value)?e.value.join(""):e.value||"",a=l=>l.length===0;if(!o||o.kind!=="thinking"||a(s)||a(r)||!K5(new Mt(r),new Mt(s)))this._responseParts.push(e);else{let l=this._responseParts.indexOf(o);this._responseParts[l]={...o,value:j5(new Mt(r),new Mt(s)).value}}this._contentChanged(n)}else if(e.kind==="textEdit"||e.kind==="notebookEdit"){let o=jv.parse(e.uri)?.notebook,r=o??e.uri,s=e.isExternalEdit;if(e.kind==="textEdit"&&!o)this._mergeOrPushTextEditGroup(r,e.edits,e.done,s);else if(e.kind==="textEdit"){let a=e.edits.map(l=>({uri:e.uri,edit:l}));this._mergeOrPushNotebookEditGroup(r,a,e.done,s)}else this._mergeOrPushNotebookEditGroup(r,e.edits,e.done,s);this._contentChanged(n)}else if(e.kind==="progressTask"){let o=this._responseParts.push(e)-1;this._contentChanged(n);let r=e.onDidAddProgress(()=>{this._contentChanged(!1)});e.task?.().then(s=>{r.dispose(),typeof s=="string"&&(this._responseParts[o].content=new Mt(s)),this._contentChanged(!1)})}else e.kind==="toolInvocation"?(SA(this._store,o=>{e.state.read(o),this._contentChanged(!1),Tt.isComplete(e,o)&&o.dispose()}),this._responseParts.push(e),this._contentChanged(n)):e.kind==="externalToolInvocationUpdate"?(this._handleExternalToolInvocationUpdate(e),this._contentChanged(n)):(this._responseParts.push(e),this._contentChanged(n))}addCitation(e){this._citations.push(e),this._contentChanged()}resolveInlineReference(e,n){for(let o=0;o<this._responseParts.length;o++){let r=this._responseParts[o];if(!(r.kind!=="inlineReference"||r.resolveId!==e))return this._responseParts[o]={...r,inlineReference:n.inlineReference,name:n.name??r.name},this._contentChanged(),!0}return!1}_mergeOrPushTextEditGroup(e,n,o,r){for(let s of this._responseParts)if(s.kind==="textEditGroup"&&!s.done&&Vn(s.uri,e)){s.edits.push(n),s.done=o;return}this._responseParts.push({kind:"textEditGroup",uri:e,edits:[n],done:o,isExternalEdit:r})}_mergeOrPushNotebookEditGroup(e,n,o,r){for(let s of this._responseParts)if(s.kind==="notebookEditGroup"&&!s.done&&Vn(s.uri,e)){s.edits.push(n),s.done=o;return}this._responseParts.push({kind:"notebookEditGroup",uri:e,edits:[n],done:o,isExternalEdit:r})}_handleExternalToolInvocationUpdate(e){let n=this._responseParts.findLast(s=>s.kind==="toolInvocation"&&s.toolCallId===e.toolCallId);if(n){e.toolSpecificData!==void 0&&(n.toolSpecificData=e.toolSpecificData),e.isComplete&&n.didExecuteTool({content:[],toolResultMessage:e.pastTenseMessage,toolResultError:e.errorMessage,toolResultDetails:e.resultDetails});return}let o={id:e.toolName,source:dn.External,displayName:e.toolName,modelDescription:e.toolName},r=new Ty({invocationMessage:e.invocationMessage,pastTenseMessage:e.pastTenseMessage,toolSpecificData:e.toolSpecificData},o,e.toolCallId,e.subagentInvocationId,void 0,{},void 0);e.isComplete&&(e.toolSpecificData!==void 0&&(r.toolSpecificData=e.toolSpecificData),r.didExecuteTool({content:[],toolResultMessage:e.pastTenseMessage,toolResultError:e.errorMessage,toolResultDetails:e.resultDetails})),this._responseParts.push(r)}computeRepr(){let e=super.computeRepr();return this._citations.length&&(e+=`

`+JQ(this._citations)),e}_contentChanged(e){this._invalidateRepr(),e||this._onDidChangeValue.fire()}},Kf=class extends U{constructor(e){super();this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event;this._modelState=_n(this,{value:0});this._usageObs=_n(this,void 0);this._completionTokenCountObs=_n(this,void 0);this._shouldBeBlocked=_n(this,!1);this._contentReferences=[];this._codeCitations=[];this._progressMessages=[];this._isStale=!1;this._session=e.session,this._agent=e.agent,this._slashCommand=e.slashCommand,this.requestId=e.requestId,this._timestamp=e.timestamp||Date.now(),e.modelState&&this._modelState.set(e.modelState,void 0),this._timeSpentWaitingAccumulator=e.timeSpentWaiting||0,this._elapsedMs=e.elapsedMs,this._vote=e.vote,this._result=e.result,this._followups=e.followups?[...e.followups]:void 0,this.isCompleteAddedRequest=e.isCompleteAddedRequest??!1,this._shouldBeRemovedOnSend=e.shouldBeRemovedOnSend,this._shouldBeBlocked.set(e.shouldBeBlocked??!1,void 0),this._isStale=Array.isArray(e.responseContent)&&(e.responseContent.length!==0||Vo(e.responseContent)&&e.responseContent.value.length!==0),this._response=this._register(new DO(e.responseContent)),this._codeBlockInfos=e.codeBlockInfos?[...e.codeBlockInfos]:void 0;let n=Ov(this,this.onDidChange),o=n.map((a,l)=>{n.read(l);for(let d of this._response.value){if(d.kind==="toolInvocation"){let c=d.state.read(l);if(c.type===Tt.StateKind.WaitingForConfirmation){let u=c.confirmationMessages?.title;return u?Vo(u)?u.value:u:void 0}if(c.type===Tt.StateKind.WaitingForPostApproval)return p(8724,null)}if(d.kind==="confirmation"&&!d.isUsed)return d.title;if(d.kind==="questionCarousel"&&!d.isUsed)return p(8723,null);if(d.kind==="planReview"&&!d.isUsed)return p(8725,null);if(d.kind==="elicitation2"&&d.state.read(l)==="pending"){let c=d.title;return Vo(c)?c.value:c}}}),r=o.map(a=>!!a).map(a=>a?Date.now():void 0);this.isPendingConfirmation=r.map((a,l)=>a?{startedWaitingAt:a,detail:o.read(l)}:void 0),this.isInProgress=n.map((a,l)=>(n.read(l),!o.read(l)&&!this.shouldBeRemovedOnSend&&(this._modelState.read(l).value===0||this._modelState.read(l).value===4))),this.isIncomplete=this._modelState.map(a=>a.value===0||a.value===4),this._register(this._response.onDidChangeValue(()=>this._onDidChange.fire(Gi))),this.id=e.restoredId??"response_"+Pe();let s;this.confirmationAdjustedTimestamp=Sa(a=>{let l=this.isPendingConfirmation.read(a);return l?(this._modelState.set({value:4},void 0),s||(s=l.startedWaitingAt)):s&&(this._modelState.read(a).value===4&&this._modelState.set({value:0},void 0),this._timeSpentWaitingAccumulator+=Date.now()-s,s=void 0),this._timestamp+this._timeSpentWaitingAccumulator}).recomputeInitiallyAndOnChange(this._store)}get shouldBeBlocked(){return this._shouldBeBlocked}get request(){return this.session.getRequests().find(e=>e.id===this.requestId)}get session(){return this._session}get shouldBeRemovedOnSend(){return this._shouldBeRemovedOnSend}get isComplete(){return this._modelState.get().value!==0&&this._modelState.get().value!==4}get timestamp(){return this._timestamp}set shouldBeRemovedOnSend(e){this._shouldBeRemovedOnSend!==e&&(this._shouldBeRemovedOnSend=e,this._onDidChange.fire(Gi))}get isCanceled(){return this._modelState.get().value===2}get completedAt(){let e=this._modelState.get();if(e.value===1||e.value===2||e.value===3)return e.completedAt}get state(){let e=this._modelState.get().value;return e===1&&this._result?.errorDetails&&this.result?.errorDetails?.code!=="canceled"?3:e}get stateT(){return this._modelState.get()}get vote(){return this._vote}get followups(){return this._followups}get entireResponse(){return this._finalizedResponse||this._response}get result(){return this._result}get usage(){return this._usageObs.get()}get usageObs(){return this._usageObs}get completionTokenCount(){return this._completionTokenCountObs.get()}get completionTokenCountObs(){return this._completionTokenCountObs}get elapsedMs(){return this._elapsedMs}get username(){return this.session.responderUsername}get agent(){return this._agent}get slashCommand(){return this._slashCommand}get agentOrSlashCommandDetected(){return this._agentOrSlashCommandDetected??!1}get usedContext(){return this._usedContext}get contentReferences(){return Array.from(this._contentReferences)}get codeCitations(){return this._codeCitations}get progressMessages(){return this._progressMessages}get isStale(){return this._isStale}get response(){let e=this._shouldBeRemovedOnSend?.afterUndoStop;return e?(this._responseView?.undoStop!==e&&(this._responseView=new _O(this._response,e)),this._responseView):this._finalizedResponse||this._response}get codeBlockInfos(){return this._codeBlockInfos}initializeCodeBlockInfos(e){if(this._codeBlockInfos)throw new Rt("Code block infos have already been initialized");this._codeBlockInfos=[...e]}setBlockedState(e){this._shouldBeBlocked.set(e,void 0)}updateContent(e,n){this._response.updateContent(e,n)}resolveInlineReference(e,n){return this._response.resolveInlineReference(e,n)}addUndoStop(e){this._onDidChange.fire({reason:"undoStop",id:e.id}),this._response.updateContent(e,!0)}applyReference(e){e.kind==="usedContext"?this._usedContext=e:e.kind==="reference"&&(this._contentReferences.push(e),this._onDidChange.fire(Gi))}applyCodeCitation(e){this._codeCitations.push(e),this._response.addCitation(e),this._onDidChange.fire(Gi)}setAgent(e,n){this._agent=e,this._slashCommand=n,this._agentOrSlashCommandDetected=!e.isDefault||!!n,this._onDidChange.fire(Gi)}setResult(e){this._result=e,this._onDidChange.fire(Gi)}setUsage(e){if(this.isSameUsage(e))return;this._usageObs.set(e,void 0);let n=this._completionTokenCountObs.get()??0;this._completionTokenCountObs.set(n+e.completionTokens,void 0),this._onDidChange.fire(Gi)}isSameUsage(e){let n=this._usageObs.get();return!!n&&n.promptTokens===e.promptTokens&&n.completionTokens===e.completionTokens&&n.outputBuffer===e.outputBuffer&&Bt(n.promptTokenDetails,e.promptTokenDetails)}complete(){if(this.isComplete)return;this._result?.errorDetails?.responseIsRedacted&&this._response.clear(),this._elapsedMs=Math.max(0,Date.now()-this.confirmationAdjustedTimestamp.get());let e=this._result?.errorDetails&&this._result.errorDetails.code!=="canceled"?3:1;this._modelState.set({value:e,completedAt:Date.now()},void 0),this._onDidChange.fire({reason:"completedRequest"})}cancel(){for(let e of this._response.value)e.kind==="toolInvocation"&&e instanceof Ty?e.cancelFromStreaming(5):e instanceof Vf?e.dismiss():e instanceof Of&&e.dismiss(void 0);this._modelState.set({value:2,completedAt:Date.now()},void 0),this._onDidChange.fire({reason:"completedRequest"})}setFollowups(e){this._followups=e,this._onDidChange.fire(Gi)}setVote(e){this._vote=e,this._onDidChange.fire(Gi)}setEditApplied(e,n){return!this.response.value.includes(e)||!e.state?!1:(e.state.applied=n,this._onDidChange.fire(Gi),!0)}adoptTo(e){this._session=e,this._onDidChange.fire(Gi)}finalizeUndoState(){this._finalizedResponse=this.response,this._responseView=void 0,this._shouldBeRemovedOnSend=void 0}dispose(){super.dispose(),this._response.clear(),this._codeBlockInfos&&(this._codeBlockInfos.length=0)}toJSON(){let e=this._modelState.get(),n=this.isPendingConfirmation.get();return{responseId:this.id,result:this.result,responseMarkdownInfo:this.codeBlockInfos?.map(o=>({suggestionId:o.suggestionId})),followups:this.followups,modelState:e.value===0||e.value===4?{value:2,completedAt:Date.now()}:e,vote:this.vote,slashCommand:this.slashCommand,usedContext:this.usedContext,contentReferences:this.contentReferences,codeCitations:this.codeCitations,timestamp:this._timestamp,timeSpentWaiting:(n?Date.now()-n.startedWaitingAt:0)+this._timeSpentWaitingAccumulator,completionTokens:this.completionTokenCount,elapsedMs:this.elapsedMs??(this.completedAt?Math.max(0,this.completedAt-this.confirmationAdjustedTimestamp.get()):void 0)}}};function Q5(i){return!!i&&Array.isArray(i.requests)&&typeof i.responderUsername=="string"}function QQ(i){let t=i;return Q5(i)&&typeof t.creationDate=="number"&&typeof t.sessionId=="string"&&i.requests.every(e=>!e.usedContext||a5(e.usedContext))}var RO=class{constructor(t,e,n){this.logger=e;this.sessionId=n;this._state=Ia({debugName:"inputModelState",equalsFn:Bt},t),this.state=this._state}setState(t){let e=this._state.get();YQ(t,e,this.logger,this.sessionId),this._state.set({attachments:[],mode:{id:"agent",kind:"agent"},selectedModel:void 0,inputText:"",selections:[],contrib:{},...e,...t},void 0)}clearState(){this._state.set(void 0,void 0)}toJSON(){let t=this.state.get();if(!t)return;let e=t.attachments.filter(n=>!(_H(n)||PH(n)&&AH(n.value)));return{contrib:t.contrib,attachments:e.map(Nl.toExport),mode:t.mode,selectedModel:t.selectedModel?{identifier:t.selectedModel.identifier,metadata:t.selectedModel.metadata}:void 0,inputText:t.inputText,selections:t.selections,permissionLevel:t.permissionLevel}}},jf=class extends U{constructor(e,n,o,r,s,a){super();this.logService=o;this.chatAgentService=r;this.chatEditingService=s;this.chatService=a;this._onDidDispose=this._register(new E);this.onDidDispose=this._onDidDispose.event;this._onDidChange=this._register(new E);this.onDidChange=this._onDidChange.event;this._pendingRequests=[];this._onDidChangePendingRequests=this._register(new E);this.onDidChangePendingRequests=this._onDidChangePendingRequests.event;this._isImported=!1;this._isDeleted=!1;this._canUseTools=!0;this.currentEditedFileEvents=new je;this._checkpoint=void 0;let l=e?.value,d=Q5(l),c=d&&QQ(l);l&&!d&&this.logService.warn(`ChatModel#constructor: Loaded malformed session data: ${JSON.stringify(l)}`),this._isImported=!!l&&d&&!c,n.resource?(this._sessionId=Ol(n.resource),this._sessionResource=n.resource):c?(this._sessionId=l.sessionId,this._sessionResource=Lr.forSession(l.sessionId)):(this._sessionId=Pe(),this._sessionResource=Lr.forSession(this._sessionId)),this._disableBackgroundKeepAlive=n.disableBackgroundKeepAlive??!1,this._requests=l?this._deserialize(l):[],this._timestamp=c&&l.creationDate||Date.now(),this._customTitle=c?l.customTitle:void 0;let u=n.inputState||(c&&l.inputState?l.inputState:void 0);if(this.inputModel=new RO(u&&{attachments:(u.attachments??[]).map(Nl.fromExport),mode:u.mode,selectedModel:u.selectedModel&&{identifier:u.selectedModel.identifier,metadata:u.selectedModel.metadata},contrib:u.contrib,inputText:u.inputText,selections:u.selections,permissionLevel:u.permissionLevel},this.logService,this._sessionId),this.dataSerializer=e?.serializer,this._initialResponderUsername=l?.responderUsername,this._repoData=c&&l.repoData?l.repoData:void 0,this._workingDirectory=c&&l.workingDirectory?b.parse(l.workingDirectory):void 0,c&&l.pendingRequests&&(this._pendingRequests=this._deserializePendingRequests(l.pendingRequests)),this._initialLocation=l?.initialLocation??n.initialLocation,this._canUseTools=n.canUseTools,this.lastRequestObs=wo(this,this.onDidChange,()=>this._requests.at(-1)),this._register(Eo(m=>{let g=this.lastRequestObs.read(m);g?.response&&m.store.add(g.response.onDidChange(async h=>{!this._editingSession||h.reason!=="completedRequest"||this._onDidChange.fire({kind:"completedRequest",request:g})}))})),this.requestInProgress=this.lastRequestObs.map((m,g)=>m?.response?.isInProgress.read(g)??!1),this.hasActiveRequest=this.lastRequestObs.map((m,g)=>m?.response?.isIncomplete.read(g)??!1),this.requestNeedsInput=this.lastRequestObs.map((m,g)=>{let h=m?.response?.isPendingConfirmation.read(g);if(h)return{title:this.title,detail:h.detail}}),this.initialLocation==="panel"&&!n.disableBackgroundKeepAlive){let m=this._register(new cn);this._register(Eo(g=>{let h=this.requestInProgress.read(g),f=this.requestNeedsInput.read(g),I=h||!!f;I&&!m.value?m.value=a.acquireExistingSession(this._sessionResource,"ChatModel#requestInProgressKeepAlive"):!I&&m.value&&m.clear()}))}}static getDefaultTitle(e){let n=e.at(0)?.message??"";return(typeof n=="string"?n:n.text).split(`
`)[0].substring(0,200)}get repoData(){return this._repoData}setRepoData(e){this._repoData=e}get workingDirectory(){return this._workingDirectory}setWorkingDirectory(e){this._workingDirectory=e}getPendingRequests(){return this._pendingRequests}setPendingRequests(e){let n=new Map(this._pendingRequests.map(r=>[r.request.id,r])),o=[];for(let{requestId:r,kind:s}of e){let a=n.get(r);a&&o.push(a.kind===s?a:{request:a.request,kind:s,sendOptions:a.sendOptions})}this._pendingRequests.length=0,this._pendingRequests.push(...o),this._onDidChangePendingRequests.fire()}addPendingRequest(e,n,o){let r={request:e,kind:n,sendOptions:o};if(n==="steering"){let s=0;for(let a=0;a<this._pendingRequests.length&&this._pendingRequests[a].kind==="steering";a++)s=a+1;this._pendingRequests.splice(s,0,r)}else this._pendingRequests.push(r);return this._onDidChangePendingRequests.fire(),r}removePendingRequest(e){let n=this._pendingRequests.findIndex(o=>o.request.id===e);n!==-1&&(this._pendingRequests.splice(n,1),this._onDidChangePendingRequests.fire())}dequeuePendingRequest(){let e=this._pendingRequests.shift();return e&&this._onDidChangePendingRequests.fire(),e}dequeueAllSteeringRequests(){let e=[];for(;this._pendingRequests.at(0)?.kind==="steering";)e.push(this._pendingRequests.shift());return e.length>0&&this._onDidChangePendingRequests.fire(),e}clearPendingRequests(){this._pendingRequests.length>0&&(this._pendingRequests.length=0,this._onDidChangePendingRequests.fire())}get sessionId(){return this._sessionId}get sessionResource(){return this._sessionResource}get hasRequests(){return this._requests.length>0}get lastRequest(){return this._requests.at(-1)}get timestamp(){return this._timestamp}get timing(){let e=this._requests.at(-1),n=e?.response,o=e?.timestamp,r=n?.completedAt??n?.timestamp;return{created:this._timestamp,lastRequestStarted:o,lastRequestEnded:r}}get lastMessageDate(){return this._requests.at(-1)?.timestamp??this._timestamp}get _defaultAgent(){return this.chatAgentService.getDefaultAgent("panel","ask")}get responderUsername(){return this._defaultAgent?.fullName??this._initialResponderUsername??""}get isImported(){return this._isImported}get isDeleted(){return this._isDeleted}markDeleted(){this._isDeleted=!0}get customTitle(){return this._customTitle}get title(){return this._customTitle||jf.getDefaultTitle(this._requests)}get hasCustomTitle(){return this._customTitle!==void 0}get editingSession(){return this._editingSession}get initialLocation(){return this._initialLocation}get canUseTools(){return this._canUseTools}get willKeepAlive(){return!this._disableBackgroundKeepAlive}startEditingSession(e,n){let o=this._editingSession??=this._register(n?this.chatEditingService.transferEditingSession(this,n):e?this.chatEditingService.startOrContinueGlobalEditingSession(this):this.chatEditingService.createEditingSession(this));if(!this._disableBackgroundKeepAlive){let r=this._register(new cn);this._register(Eo(s=>{let a=o.entries.read(s).some(l=>l.state.read(s)===0);a&&!r.value?r.value=this.chatService.acquireExistingSession(this._sessionResource,"ChatModel#modifiedEditsKeepAlive"):!a&&r.value&&r.clear()}))}this._register(Eo(r=>{this._setDisabledRequests(o.requestDisablement.read(r))}))}notifyEditingAction(e){let n=e.outcome==="accepted"?1:e.outcome==="rejected"?2:e.outcome==="userModified"?3:null;n!==null&&(!this.currentEditedFileEvents.has(e.uri)||this.currentEditedFileEvents.get(e.uri)?.eventKind===1)&&this.currentEditedFileEvents.set(e.uri,{eventKind:n,uri:e.uri})}_deserialize(e){let n=Gn(e,{serializer:!0})?e.value.requests:e.requests;if(!Array.isArray(n))return this.logService.error(`Ignoring malformed session data: ${JSON.stringify(e)}`),[];try{return n.map(o=>this._deserializeRequest(o))}catch(o){return this.logService.error("Failed to parse chat data",o),[]}}_deserializeRequest(e){let n=typeof e.message=="string"?this.getParsedRequestFromString(e.message):q5(e.message),o=this.reviveVariableData(e.variableData),r=new Ik({session:this,message:n,variableData:o,timestamp:e.timestamp??-1,restoredId:e.requestId,confirmation:e.confirmation,editedFileEvents:e.editedFileEvents,modelId:e.modelId,modeInfo:e.modeInfo,isSystemInitiated:e.isSystemInitiated,systemInitiatedLabel:e.systemInitiatedLabel,terminalExecutionId:e.terminalExecutionId});if(r.shouldBeRemovedOnSend=e.isHidden?{requestId:e.requestId}:e.shouldBeRemovedOnSend,e.response||e.result||e.responseErrorDetails){let s=e.agent&&"metadata"in e.agent?ak(e.agent):void 0,a="responseErrorDetails"in e?{errorDetails:e.responseErrorDetails}:e.result,l=e.modelState||{value:e.isCanceled?2:1,completedAt:Date.now()};if((l.value===0||l.value===4)&&(l={value:2,completedAt:Date.now()}),e.response)for(let d of e.response)Gn(d,{kind:!0})&&(d.kind==="questionCarousel"||d.kind==="planReview")&&(d.isUsed=!0);r.response=new Kf({responseContent:e.response??[new Mt(e.response)],session:this,agent:s,slashCommand:e.slashCommand,requestId:r.id,modelState:l,vote:e.vote,timestamp:e.timestamp,result:a,followups:e.followups,restoredId:e.responseId,timeSpentWaiting:e.timeSpentWaiting,elapsedMs:e.elapsedMs,shouldBeBlocked:r.shouldBeBlocked.get(),codeBlockInfos:e.responseMarkdownInfo?.map(d=>({suggestionId:d.suggestionId}))}),r.response.shouldBeRemovedOnSend=e.isHidden?{requestId:e.requestId}:e.shouldBeRemovedOnSend,typeof e.completionTokens=="number"&&r.response.setUsage({kind:"usage",promptTokens:0,completionTokens:e.completionTokens}),e.usedContext&&r.response.applyReference(St(e.usedContext)),e.contentReferences?.forEach(d=>r.response.applyReference(St(d))),e.codeCitations?.forEach(d=>r.response.applyCodeCitation(St(d)))}return r}reviveVariableData(e){let n=e&&Array.isArray(e.variables)?e:{variables:[]};return n.variables=n.variables.map(Nl.fromExport),n}getParsedRequestFromString(e){let n=[new qf(new Ao(0,e.length),{startColumn:1,startLineNumber:1,endColumn:1,endLineNumber:1},e)];return{text:e,parts:n}}_deserializePendingRequests(e){try{return e.map(n=>({id:n.id,request:this._deserializeRequest(n.request),kind:n.kind,sendOptions:{...n.sendOptions,userSelectedTools:n.sendOptions.userSelectedTools?TA(n.sendOptions.userSelectedTools):void 0}}))}catch(n){return this.logService.error("Failed to parse pending chat requests",n),[]}}getRequests(){return this._requests}resetCheckpoint(){for(let e of this._requests)e.setShouldBeBlocked(!1),e.response&&e.response.setBlockedState(!1)}setCheckpoint(e){let n,o=-1;if(!(e!==void 0&&(this._requests.forEach((r,s)=>{r.id===e&&(o=s,n=r,r.setShouldBeBlocked(!0))}),!n))){for(let r=this._requests.length-1;r>=0;r-=1){let s=this._requests[r];this._checkpoint&&!n?(s.setShouldBeBlocked(!1),s.response&&s.response.setBlockedState(!1)):n&&r>=o?(s.setShouldBeBlocked(!0),s.response&&s.response.setBlockedState(!0)):n&&r<o&&(s.setShouldBeBlocked(!1),s.response&&s.response.setBlockedState(!1))}this._checkpoint=n}}get checkpoint(){return this._checkpoint}_setDisabledRequests(e){this._requests.forEach(n=>{let o=e.find(r=>r.requestId===n.id);n.shouldBeRemovedOnSend=o,n.response&&(n.response.shouldBeRemovedOnSend=o)}),this._onDidChange.fire({kind:"setHidden"})}addRequest(e,n,o,r,s,a,l,d,c,u,m,g,h,f,I,x){let T=[...this.currentEditedFileEvents.values()];this.currentEditedFileEvents.clear();let w=new Ik({restoredId:h,session:this,message:e,variableData:n,timestamp:Date.now(),attempt:o,modeInfo:r,confirmation:l,locationData:d,attachedContext:c,isCompleteAddedRequest:u,modelId:m,editedFileEvents:T.length?T:void 0,userSelectedTools:g,isSystemInitiated:f,systemInitiatedLabel:I,terminalExecutionId:x});return w.response=new Kf({responseContent:[],session:this,agent:s,slashCommand:a,requestId:w.id,isCompleteAddedRequest:u,codeBlockInfos:void 0}),this._requests.push(w),Cy(this.sessionResource,Sy.RequestUiUpdated),this._onDidChange.fire({kind:"addRequest",request:w}),w}setCustomTitle(e){this._customTitle=e,this._onDidChange.fire({kind:"setCustomTitle",title:e})}updateRequest(e,n){e.variableData=n,this._onDidChange.fire({kind:"changedRequest",request:e})}adoptRequest(e){let n=e.session,o=n._requests.findIndex(r=>r.id===e.id);o!==-1&&(n._requests.splice(o,1),e.adoptTo(this),e.response?.adoptTo(this),this._requests.push(e),n._onDidChange.fire({kind:"removeRequest",requestId:e.id,responseId:e.response?.id,reason:2}),this._onDidChange.fire({kind:"addRequest",request:e}))}acceptResponseProgress(e,n,o){if(e.response||(e.response=new Kf({responseContent:[],session:this,requestId:e.id,codeBlockInfos:void 0})),e.response.isComplete)throw new Error("acceptResponseProgress: Adding progress to a completed response");n.kind==="usage"?e.response.setUsage(n):n.kind==="usedContext"||n.kind==="reference"?e.response.applyReference(n):n.kind==="codeCitation"?e.response.applyCodeCitation(n):n.kind==="move"?this._onDidChange.fire({kind:"move",target:n.uri,range:n.range}):n.kind==="codeblockUri"&&n.isEdit?(e.response.addUndoStop({id:n.undoStopId??Pe(),kind:"undoStop"}),e.response.updateContent(n,o)):n.kind==="progressTaskResult"?this.logService.error(`Couldn't handle progress: ${JSON.stringify(n)}`):e.response.updateContent(n,o)}removeRequest(e,n=0){let o=this._requests.findIndex(s=>s.id===e),r=this._requests[o];o!==-1&&(this._onDidChange.fire({kind:"removeRequest",requestId:r.id,responseId:r.response?.id,reason:n}),this._requests.splice(o,1),r.response?.dispose())}cancelRequest(e){e.response&&e.response.cancel()}setResponse(e,n){e.response||(e.response=new Kf({responseContent:[],session:this,requestId:e.id,codeBlockInfos:void 0})),e.response.setResult(n)}setFollowups(e,n){e.response&&e.response.setFollowups(n)}setResponseModel(e,n){e.response=n,this._onDidChange.fire({kind:"addResponse",response:n})}toExport(){return{responderUsername:this.responderUsername,initialLocation:this.initialLocation,requests:this._requests.map(e=>{let n={...e.message,parts:e.message.parts.map(s=>s&&"toJSON"in s?s.toJSON():s)},o=e.response?.agent,r=o&&"toJSON"in o?o.toJSON():o?{...o}:void 0;return{requestId:e.id,message:n,variableData:G5.toExport(e.variableData),response:e.response?e.response.entireResponse.value.map(s=>s.kind==="treeData"?s.treeData:s.kind==="markdownContent"?s.content:s):void 0,shouldBeRemovedOnSend:e.shouldBeRemovedOnSend,agent:r,timestamp:e.timestamp,confirmation:e.confirmation,editedFileEvents:e.editedFileEvents,modelId:e.modelId,modeInfo:e.modeInfo,isSystemInitiated:e.isSystemInitiated||void 0,systemInitiatedLabel:e.systemInitiatedLabel,terminalExecutionId:e.terminalExecutionId,...e.response?.toJSON()}})}}toJSON(){return{version:3,...this.toExport(),sessionId:this.sessionId,creationDate:this._timestamp,customTitle:this._customTitle,inputState:this.inputModel.toJSON(),workingDirectory:this._workingDirectory?.toString()}}dispose(){this._requests.forEach(e=>e.response?.dispose()),this._onDidDispose.fire(),super.dispose(),this._requests.length=0,this.dataSerializer=void 0,this._editingSession=void 0}};jf=D([C(2,ne),C(3,sk),C(4,z5),C(5,kr)],jf);function K5(i,t){if(i.baseUri&&t.baseUri){if(!(i.baseUri.scheme===t.baseUri.scheme&&i.baseUri.authority===t.baseUri.authority&&i.baseUri.path===t.baseUri.path&&i.baseUri.query===t.baseUri.query&&i.baseUri.fragment===t.baseUri.fragment))return!1}else if(i.baseUri||t.baseUri)return!1;return Bt(i.isTrusted,t.isTrusted)&&i.supportHtml===t.supportHtml&&i.supportThemeIcons===t.supportThemeIcons}function j5(i,t){let e=typeof t=="string"?t:t.value;return{value:i.value+e,isTrusted:i.isTrusted,supportThemeIcons:i.supportThemeIcons,supportHtml:i.supportHtml,baseUri:i.baseUri}}function JQ(i){if(i.length===0)return"";let t=i.reduce((n,o)=>n.add(o.license),new Set);return t.size===1?p(8718,null,t.size):p(8719,null,t.size)}var Sk;(n=>{n.scheme="vscode-chat-response-resource";function t(o,r,s,a){return b.from({scheme:n.scheme,authority:wl(W.fromString(o.toString())),path:`/tool/${r}/${s}`+(a?`/${a}`:"")})}n.createUri=t;function e(o){if(o.scheme!==n.scheme)return;let r=o.path.split("/");if(r.length<4)return;let[,s,a,l]=r;if(s!=="tool")return;let d;try{d=b.parse(jh(o.authority).toString())}catch(c){if(c instanceof SyntaxError)d=Lr.forSession(o.authority);else throw c}return{sessionResource:d,toolCallId:a,index:Number(l)}}n.parseUri=e})(Sk||={});function YQ(i,t,e,n){if(!Lp(e.getLevel(),2)||i?.selectedModel?.identifier===t?.selectedModel?.identifier)return;let o=new Error().stack,r=`[ChatModelChanged] ChatModel Input State model changed: ${i?.selectedModel?.identifier} (was: ${t?.selectedModel?.identifier}) in session ${n} ${o}`;e.debug(r)}var J5="chat-memory-file",XQ="copilot_memory",X5;(n=>{function i(o,r){return b.from({scheme:J5,path:o,query:r.toString()})}n.createUri=i;function t(o){return o.scheme===J5}n.isChatMemoryFileUri=t;function e(o){return{memoryPath:o.path,sessionResource:o.query}}n.parse=e})(X5||={});function ZQ(i,t){if(i===t)return!0;let[e,n]=i.split("/"),[o]=t.split("/");return n==="*"&&e===o}function wy(i,t){let e=ot(i);for(let[n,o]of Object.entries(t))if(ir(n,i)||ir(n,e))return o}function Y5(i,t){for(let[e,n]of Object.entries(t))if(ZQ(e,i))return n}function eJ(i){return typeof i=="object"&&i!==null&&"output"in i&&typeof i.output=="object"&&i.output?.type==="data"&&typeof i.output?.mimeType=="string"}function tJ(i){if(typeof i!="object"||i===null)return;let t=i.path;return typeof t=="string"?t:void 0}var nJ=new Set(["create","str_replace","insert"]);function oJ(i){if(typeof i!="object"||i===null)return!1;let t=i.command;return typeof t=="string"&&nJ.has(t)}function Z5(i,t,e,n,o={}){let r=[],s=new Set;for(let a of i.value){if(a.kind==="codeblockUri"){let l=a.uri,d=l.toString();if(s.has(d))continue;let c=wy(l.path,n);c&&(s.add(d),r.push({label:rt(l),uri:d,type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}if(a.kind==="textEditGroup"){let l=a.uri,d=l.toString();if(s.has(d))continue;let c=wy(l.path,n);c&&(s.add(d),r.push({label:rt(l),uri:d,type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}if(a.kind==="workspaceEdit")for(let l of a.edits){let d=l.newResource??l.oldResource;if(!d)continue;let c=d.toString();if(s.has(c))continue;let u=wy(d.path,n);u&&(s.add(c),r.push({label:rt(d),uri:c,type:"plan",groupName:u.groupName,onlyShowGroup:u.onlyShowGroup}))}if(a.kind==="externalEdit"){let l=a.uri,d=l.toString();if(s.has(d))continue;let c=wy(l.path,n);c&&(s.add(d),r.push({label:rt(l),uri:d,type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}if((a.kind==="toolInvocation"||a.kind==="toolInvocationSerialized")&&a.toolId===XQ){let l=Tt.getParameters(a),d=tJ(l);if(d&&oJ(l)){let c=wy(d,o);if(c){let u=`memory:${a.toolCallId}:${d}`;s.has(u)||(s.add(u),r.push({label:ot(d),uri:X5.createUri(d,t).toString(),type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}}}if(a.kind==="toolInvocation"||a.kind==="toolInvocationSerialized"){let l=Tt.resultDetails(a);if(!l)continue;if(VV(l))for(let d=0;d<l.output.length;d++){let c=l.output[d];if(c.type==="embed"&&!c.isText&&c.mimeType){let u=Y5(c.mimeType,e);if(u){let m=`${a.toolCallId}:${d}`;if(!s.has(m)){s.add(m);let g=BR(c.mimeType),h=g?`file${g}`:"file.bin",f=Sk.createUri(t,a.toolCallId,d,h);r.push({label:c.uri?.path.split("/").pop()??`${u.groupName} ${d+1}`,uri:f.toString(),toolCallId:a.toolCallId,dataPartIndex:d,type:"screenshot",groupName:u.groupName,onlyShowGroup:u.onlyShowGroup})}}}}if(eJ(l)){let d=Y5(l.output.mimeType,e);if(d){let c=`${a.toolCallId}:0`;if(!s.has(c)){s.add(c);let u=BR(l.output.mimeType),m=u?`file${u}`:"file.bin",g=Sk.createUri(t,a.toolCallId,0,m);r.push({label:`${d.groupName}`,uri:g.toString(),toolCallId:a.toolCallId,dataPartIndex:0,type:"screenshot",groupName:d.groupName,onlyShowGroup:d.onlyShowGroup})}}}}}return r}var Tk=R("chatArtifactsService"),ky=class{constructor(t){this._memento=new Ff("chat-artifacts",t)}get(t){return this._memento.getMemento(1,1)[t]||[]}set(t,e){let n=this._memento.getMemento(1,1);n[t]=e,this._memento.saveMemento()}delete(t){let e=this._memento.getMemento(1,1);delete e[t],this._memento.saveMemento()}};ky=D([C(0,nr)],ky);var AO=class extends U{constructor(e,n,o,r,s){super();this._storageKey=n;this._storage=o;this._responseCache=new Map;this._ruleOverrides=Ia({owner:this,equalsFn:()=>!1},void 0);this._agentArtifacts=Ia({owner:this,equalsFn:()=>!1},[]);this._subagentArtifacts=Ia({owner:this,equalsFn:()=>!1},new Map);this._nextSequence=1;this._sourceSequences=new Map;let a=this._storage.get(this._storageKey);this._agentArtifacts.set(a,void 0),this._sourceSequences.set("rules",0),a.length>0&&this._sourceSequences.set("agent",this._nextSequence++);let l=wo(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byMimeType")??{}),d=wo(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byFilePath")??{}),c=wo(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byMemoryFilePath")??{}),u=wo(this,r.onDidCreateModel,()=>r.getSession(e)),m=Sa(g=>{let h=this._ruleOverrides.read(g),f=h?.byMimeType??l.read(g),I=h?.byFilePath??d.read(g),x=h?.byMemoryFilePath??c.read(g),T=u.read(g);if(!T)return[];Ov(this,T.onDidChange).read(g);let M=T.getRequests(),O=[],N=new Set,$=new Set;for(let X of M){let j=X.response;if(!j)continue;N.add(j.id);let q=j.response,oe=q.value.length,ve=0;for(let te of q.value)(te.kind==="toolInvocation"||te.kind==="toolInvocationSerialized")&&Tt.resultDetails(te)!==void 0&&ve++;let yt=this._responseCache.get(j.id),ze;yt&&yt.partsLength===oe&&yt.completedToolCount===ve&&yt.byMimeType===f&&yt.byFilePath===I&&yt.byMemoryFilePath===x?ze=yt.artifacts:(ze=Z5(q,e,f,I,x),this._responseCache.set(j.id,{partsLength:oe,completedToolCount:ve,byMimeType:f,byFilePath:I,byMemoryFilePath:x,artifacts:ze}));for(let te of ze){let Y=te.toolCallId?`${te.toolCallId}:${te.dataPartIndex}`:te.uri;if($.has(Y)){let ie=O.findIndex(ee=>ee.toolCallId?`${ee.toolCallId}:${ee.dataPartIndex}`===Y:ee.uri===Y);ie!==-1&&O.splice(ie,1)}$.add(Y),O.push(te)}}for(let X of this._responseCache.keys())N.has(X)||this._responseCache.delete(X);return O});this.artifactGroups=Sa(g=>{let h=[],f=m.read(g);f.length>0&&h.push({key:"rules",seq:this._sourceSequences.get("rules")??0,group:{source:{kind:"rules"},artifacts:f}});let I=this._agentArtifacts.read(g);I.length>0&&h.push({key:"agent",seq:this._sourceSequences.get("agent")??1/0,group:{source:{kind:"agent"},artifacts:I}});let x=this._subagentArtifacts.read(g);for(let[M,O]of x)if(O.artifacts.length>0){let N=`subagent:${M}`;h.push({key:N,seq:this._sourceSequences.get(N)??1/0,group:{source:{kind:"subagent",invocationId:M,name:O.name},artifacts:O.artifacts}})}h.sort((M,O)=>M.seq-O.seq);let T=new Set,w=[];for(let M of h){let O=M.group.artifacts.filter(N=>{let $=N.toolCallId?`${N.toolCallId}:${N.dataPartIndex}`:N.uri;if(!$)return!1;let X=$.toLowerCase();return T.has(X)?!1:(T.add(X),!0)});O.length>0&&w.push({source:M.group.source,artifacts:O})}return w})}setAgentArtifacts(e){this._sourceSequences.has("agent")||this._sourceSequences.set("agent",this._nextSequence++),this._agentArtifacts.set(e,void 0),this._storage.set(this._storageKey,e)}setSubagentArtifacts(e,n,o){let r=`subagent:${e}`;this._sourceSequences.has(r)||this._sourceSequences.set(r,this._nextSequence++);let s=new Map(this._subagentArtifacts.get());o.length===0?s.delete(e):s.set(e,{name:n,artifacts:o}),this._subagentArtifacts.set(s,void 0)}setRuleOverrides(e){this._ruleOverrides.set(e,void 0)}clearAgentArtifacts(){this._agentArtifacts.set([],void 0),this._storage.set(this._storageKey,[])}clearSubagentArtifacts(e){let n=new Map(this._subagentArtifacts.get());n.delete(e),this._subagentArtifacts.set(n,void 0)}migrate(e){let n=this._agentArtifacts.get();n.length>0&&e.setAgentArtifacts([...n]),this._agentArtifacts.set([],void 0),this._storage.delete(this._storageKey)}},Ck=class extends U{constructor(e,n,o){super();this._chatService=n;this._configurationService=o;this._instances=this._register(new wn);this._storage=new ky(e)}getArtifacts(e){let n=Ol(e),o=this._instances.get(n);return o||(o=new AO(e,n,this._storage,this._chatService,this._configurationService),this._instances.set(n,o)),o}};Ck=D([C(0,nr),C(1,kr),C(2,Gt)],Ck);var rJ="setArtifacts",iJ={type:"object",properties:{artifacts:{type:"array",description:"The complete list of artifacts for this session. Overwrites any existing artifacts.",items:{type:"object",properties:{label:{type:"string",description:"Display label for the artifact."},uri:{type:"string",description:"Fully qualified URI of the artifact (e.g. https://localhost:3000 or file:///path/to/file). Must include the scheme."},type:{type:"string",enum:["devServer","screenshot","plan"],description:"The type of artifact."}},required:["label"]}}},required:["artifacts"]},e$={id:rJ,toolReferenceName:"artifacts",legacyToolReferenceFullNames:["Set Session Artifacts"],displayName:p(9142,null),modelDescription:`Set the list of artifacts for the current session. Each artifact has a label and either a uri or a toolCallId+dataPartIndex reference, plus an optional type (devServer, screenshot, plan). This overwrites the entire artifact list. URIs must be fully qualified with a scheme (e.g. https://localhost:3000, file:///tmp/plan.md). To reference a screenshot or image from a previous tool result, use toolCallId and dataPartIndex instead of uri.

When to use this tool:
- When creating or updating a plan saved to session memory \u2014 set a plan artifact so the user can view it in the artifact panel
- When taking screenshots or producing visual output \u2014 set a screenshot artifact to surface the image
- When starting a dev server \u2014 set a devServer artifact with the URL so the user can access it
- When producing important documents, drafts, or temporary markdown files \u2014 set an artifact to make them easily accessible
- After verification steps that produce visual results \u2014 update artifacts with screenshots showing the outcome

Workflow:
- Prefer artifacts over printing long content inline in chat. Save content to a file or memory, then set an artifact pointing to it.
- When updating plans or documents, update both the underlying file AND the artifact list.
- Keep artifact labels concise and descriptive.`,canBeReferencedInPrompt:!0,source:dn.Internal,inputSchema:iJ},Gf=class{constructor(t,e,n){this._chatArtifactsService=t;this._fileService=e;this._chatService=n}async prepareToolInvocation(t,e){return{pastTenseMessage:new Mt(p(9143,null)),presentation:"hidden"}}async invoke(t,e,n,o){let r=t.parameters,s=t.context?.sessionResource;if(!s)return{content:[{kind:"text",value:"Error: No session resource available"}]};let a=[];for(let c of r.artifacts??[]){let u=c.uri;if(u||(u=""),u){let m=b.parse(u);if(m.scheme!=="http"&&m.scheme!=="https"&&!await this._fileService.exists(m))throw new Error(p(9145,null,u))}a.push({label:c.label,uri:u,type:c.type})}let l=this._chatArtifactsService.getArtifacts(s),d=t.subAgentInvocationId;if(d){let c=this._resolveSubagentName(s,d);l.setSubagentArtifacts(d,c,a)}else l.setAgentArtifacts(a);return{content:[{kind:"text",value:p(9144,null,a.length)}]}}_resolveSubagentName(t,e){let n=this._chatService.getSession(t);if(n)for(let o of n.getRequests()){let r=o.response;if(r){for(let s of r.response.value)if((s.kind==="toolInvocation"||s.kind==="toolInvocationSerialized")&&s.toolCallId===e&&s.toolSpecificData?.kind==="subagent")return s.toolSpecificData.agentName}}}};Gf=D([C(0,Tk),C(1,ga),C(2,kr)],Gf);var sJ="setArtifactRules",MO={type:"object",properties:{groupName:{type:"string",description:"Display name for the artifact group."},onlyShowGroup:{type:"boolean",description:"When true, show only the group header instead of individual items."}},required:["groupName"]},aJ={type:"object",properties:{byMimeType:{type:"object",description:"Rules for extracting artifacts from tool results by MIME type. Maps MIME type patterns (e.g. 'image/*') to group configuration.",additionalProperties:MO},byFilePath:{type:"object",description:"Rules for extracting artifacts from written files by file path glob pattern. Maps glob patterns (e.g. '**/*plan*.md') to group configuration.",additionalProperties:MO},byMemoryFilePath:{type:"object",description:"Rules for extracting artifacts from memory tool writes by memory file path glob pattern. Maps glob patterns to group configuration.",additionalProperties:MO}}},t$={id:sJ,toolReferenceName:"artifactRules",legacyToolReferenceFullNames:[],displayName:p(9139,null),modelDescription:`Override the artifact extraction rules for this session. Rules control which tool results, files, and memory writes are automatically surfaced as artifacts.

Provide rules as MIME type patterns, file path globs, or memory file path globs, each mapped to a group configuration with a groupName and optional onlyShowGroup flag.

Examples:
- byMimeType: { "image/*": { "groupName": "Screenshots", "onlyShowGroup": true } }
- byFilePath: { "**/*plan*.md": { "groupName": "Plans" } }
- byMemoryFilePath: { "**/*plan*.md": { "groupName": "Plans" } }

This fully replaces any settings-based rules for the duration of this session.`,canBeReferencedInPrompt:!0,source:dn.Internal,inputSchema:aJ},Qf=class{constructor(t){this._chatArtifactsService=t}async prepareToolInvocation(t,e){return{pastTenseMessage:new Mt(p(9140,null)),presentation:"hidden"}}async invoke(t,e,n,o){let r=t.parameters,s=t.context?.sessionResource;if(!s)return{content:[{kind:"text",value:"Error: No session resource available"}]};let a={byMimeType:r.byMimeType,byFilePath:r.byFilePath,byMemoryFilePath:r.byMemoryFilePath};return this._chatArtifactsService.getArtifacts(s).setRuleOverrides(a),{content:[{kind:"text",value:p(9141,null)}]}}};Qf=D([C(0,Tk)],Qf);var lJ="task_complete";var n$={id:lJ,displayName:"Task Complete",modelDescription:`Signal that the user's task is fully done. You MUST call this tool when your work is complete \u2014 whether you made code changes, answered a question, or completed any other kind of task. Provide a brief summary of what was accomplished. Do not restate the summary in your message text \u2014 it is shown to the user directly.

IMPORTANT: Before calling this tool, you MUST output a brief text message summarizing what was done. The task is not complete until both your summary message AND this tool call are present.

When to call:
- After answering the user's question or completing a conversational request
- After you have completed ALL requested changes
- After verifying results: tests pass, terminal commands succeeded, tool calls returned expected output

When NOT to call:
- If a terminal command failed or produced unexpected output
- If an MCP or external tool call returned an error
- If you encountered errors you have not resolved
- If there are remaining steps to complete
- If you have not verified your changes work`,source:dn.Internal,inputSchema:{type:"object",properties:{summary:{type:"string",description:"Brief summary of what was accomplished. Omit for trivial interactions."}}}},Ek=class{async prepareToolInvocation(t,e){return{presentation:"hidden"}}async invoke(t,e,n,o){return{content:[{kind:"text",value:t.parameters?.summary??"All done!"}]}}};var wk=class extends U{static{this.ID="chat.builtinTools"}constructor(t,e,n){super();let o=e.createInstance(Lf);this._register(t.registerTool(k5,o));let r=this._register(e.createInstance(Nf));this._register(t.registerTool(bO,r)),this._register(t.vscodeToolSet.addTool(bO));let s=this._register(e.createInstance(Wf));this._register(t.registerTool(M5,s));let a=IO(),l=this._register(e.createInstance(Hf));this._register(t.registerTool(a,l));let d=e.createInstance(tk);this._register(t.registerTool(_5,d)),this._register(t.registerTool(D5,d));let c=e.createInstance(nk);this._register(t.registerTool(R5,c));let u=e.createInstance(Ek);this._register(t.registerTool(n$,u));let m=e.createInstance(Gf),g=e.createInstance(Qf),h=this._register(new cn),f=this._register(new cn),I=()=>{n.getValue("chat.artifacts.enabled")?(h.value||(h.value=t.registerTool(e$,m)),f.value||(f.value=t.registerTool(t$,g))):(h.clear(),f.clear())};I(),this._register(n.onDidChangeConfiguration(O=>{O.affectsConfiguration("chat.artifacts.enabled")&&I()}));let x=this._register(e.createInstance(ji)),T,w,M=()=>{T?.dispose(),w?.dispose(),t.flushToolUpdates();let O=x.getToolData();T=t.registerTool(O,x),w=t.agentToolSet.addTool(O)};M(),this._register(x.onDidUpdateToolData(M)),this._register({dispose:()=>{T?.dispose(),w?.dispose()}})}};wk=D([C(0,em),C(1,Yo),C(2,Gt)],wk);var o$="vscode_fetchWebPage_internal";var LO=R("commandService"),Py=new class{constructor(){this._commands=new Map;this._onDidRegisterCommand=new E;this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(i,t){if(!i)throw new Error("invalid command");if(typeof i=="string"){if(!t)throw new Error("invalid command");return this.registerCommand({id:i,handler:t})}if(i.metadata&&Array.isArray(i.metadata.args)){let s=[];for(let l of i.metadata.args)s.push(l.constraint);let a=i.handler;i.handler=function(l,...d){return kU(d,s),a(l,...d)}}let{id:e}=i,n=this._commands.get(e);n||(n=new mo,this._commands.set(e,n));let o=n.unshift(i),r=Q(()=>{o(),this._commands.get(e)?.isEmpty()&&this._commands.delete(e)});return this._onDidRegisterCommand.fire(e),Ph(r)}registerCommandAlias(i,t){return Py.registerCommand(i,(e,...n)=>e.get(LO).executeCommand(t,...n))}getCommand(i){let t=this._commands.get(i);if(!(!t||t.isEmpty()))return At.first(t)}getCommands(){let i=new Map;for(let t of this._commands.keys()){let e=this.getCommand(t);e&&i.set(t,e)}return i}};Py.registerCommand("noop",()=>{});var _y=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,e){this._keyCodeToStr[t]=e,this._strToKeyCode[e.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}},kk=new _y,OO=new _y,NO=new _y,dJ=new Array(230),cJ={},uJ={},pJ=[],mJ=Object.create(null),gJ=Object.create(null);var r$=[],UO=[];for(let i=0;i<=193;i++)r$[i]=-1;for(let i=0;i<=132;i++)UO[i]=-1;(function(){let t=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN","",""],[1,1,"Hyper",0,"",0,"","",""],[1,2,"Super",0,"",0,"","",""],[1,3,"Fn",0,"",0,"","",""],[1,4,"FnLock",0,"",0,"","",""],[1,5,"Suspend",0,"",0,"","",""],[1,6,"Resume",0,"",0,"","",""],[1,7,"Turbo",0,"",0,"","",""],[1,8,"Sleep",0,"",0,"VK_SLEEP","",""],[1,9,"WakeUp",0,"",0,"","",""],[0,10,"KeyA",31,"A",65,"VK_A","",""],[0,11,"KeyB",32,"B",66,"VK_B","",""],[0,12,"KeyC",33,"C",67,"VK_C","",""],[0,13,"KeyD",34,"D",68,"VK_D","",""],[0,14,"KeyE",35,"E",69,"VK_E","",""],[0,15,"KeyF",36,"F",70,"VK_F","",""],[0,16,"KeyG",37,"G",71,"VK_G","",""],[0,17,"KeyH",38,"H",72,"VK_H","",""],[0,18,"KeyI",39,"I",73,"VK_I","",""],[0,19,"KeyJ",40,"J",74,"VK_J","",""],[0,20,"KeyK",41,"K",75,"VK_K","",""],[0,21,"KeyL",42,"L",76,"VK_L","",""],[0,22,"KeyM",43,"M",77,"VK_M","",""],[0,23,"KeyN",44,"N",78,"VK_N","",""],[0,24,"KeyO",45,"O",79,"VK_O","",""],[0,25,"KeyP",46,"P",80,"VK_P","",""],[0,26,"KeyQ",47,"Q",81,"VK_Q","",""],[0,27,"KeyR",48,"R",82,"VK_R","",""],[0,28,"KeyS",49,"S",83,"VK_S","",""],[0,29,"KeyT",50,"T",84,"VK_T","",""],[0,30,"KeyU",51,"U",85,"VK_U","",""],[0,31,"KeyV",52,"V",86,"VK_V","",""],[0,32,"KeyW",53,"W",87,"VK_W","",""],[0,33,"KeyX",54,"X",88,"VK_X","",""],[0,34,"KeyY",55,"Y",89,"VK_Y","",""],[0,35,"KeyZ",56,"Z",90,"VK_Z","",""],[0,36,"Digit1",22,"1",49,"VK_1","",""],[0,37,"Digit2",23,"2",50,"VK_2","",""],[0,38,"Digit3",24,"3",51,"VK_3","",""],[0,39,"Digit4",25,"4",52,"VK_4","",""],[0,40,"Digit5",26,"5",53,"VK_5","",""],[0,41,"Digit6",27,"6",54,"VK_6","",""],[0,42,"Digit7",28,"7",55,"VK_7","",""],[0,43,"Digit8",29,"8",56,"VK_8","",""],[0,44,"Digit9",30,"9",57,"VK_9","",""],[0,45,"Digit0",21,"0",48,"VK_0","",""],[1,46,"Enter",3,"Enter",13,"VK_RETURN","",""],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE","",""],[1,48,"Backspace",1,"Backspace",8,"VK_BACK","",""],[1,49,"Tab",2,"Tab",9,"VK_TAB","",""],[1,50,"Space",10,"Space",32,"VK_SPACE","",""],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,"",0,"","",""],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL","",""],[1,64,"F1",59,"F1",112,"VK_F1","",""],[1,65,"F2",60,"F2",113,"VK_F2","",""],[1,66,"F3",61,"F3",114,"VK_F3","",""],[1,67,"F4",62,"F4",115,"VK_F4","",""],[1,68,"F5",63,"F5",116,"VK_F5","",""],[1,69,"F6",64,"F6",117,"VK_F6","",""],[1,70,"F7",65,"F7",118,"VK_F7","",""],[1,71,"F8",66,"F8",119,"VK_F8","",""],[1,72,"F9",67,"F9",120,"VK_F9","",""],[1,73,"F10",68,"F10",121,"VK_F10","",""],[1,74,"F11",69,"F11",122,"VK_F11","",""],[1,75,"F12",70,"F12",123,"VK_F12","",""],[1,76,"PrintScreen",0,"",0,"","",""],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL","",""],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE","",""],[1,79,"Insert",19,"Insert",45,"VK_INSERT","",""],[1,80,"Home",14,"Home",36,"VK_HOME","",""],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR","",""],[1,82,"Delete",20,"Del",46,"VK_DELETE","Delete",""],[1,83,"End",13,"End",35,"VK_END","",""],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT","",""],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",""],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",""],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",""],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",""],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK","",""],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE","",""],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY","",""],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT","",""],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD","",""],[1,94,"NumpadEnter",3,"",0,"","",""],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1","",""],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2","",""],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3","",""],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4","",""],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5","",""],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6","",""],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7","",""],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8","",""],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9","",""],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0","",""],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL","",""],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102","",""],[1,107,"ContextMenu",58,"ContextMenu",93,"","",""],[1,108,"Power",0,"",0,"","",""],[1,109,"NumpadEqual",0,"",0,"","",""],[1,110,"F13",71,"F13",124,"VK_F13","",""],[1,111,"F14",72,"F14",125,"VK_F14","",""],[1,112,"F15",73,"F15",126,"VK_F15","",""],[1,113,"F16",74,"F16",127,"VK_F16","",""],[1,114,"F17",75,"F17",128,"VK_F17","",""],[1,115,"F18",76,"F18",129,"VK_F18","",""],[1,116,"F19",77,"F19",130,"VK_F19","",""],[1,117,"F20",78,"F20",131,"VK_F20","",""],[1,118,"F21",79,"F21",132,"VK_F21","",""],[1,119,"F22",80,"F22",133,"VK_F22","",""],[1,120,"F23",81,"F23",134,"VK_F23","",""],[1,121,"F24",82,"F24",135,"VK_F24","",""],[1,122,"Open",0,"",0,"","",""],[1,123,"Help",0,"",0,"","",""],[1,124,"Select",0,"",0,"","",""],[1,125,"Again",0,"",0,"","",""],[1,126,"Undo",0,"",0,"","",""],[1,127,"Cut",0,"",0,"","",""],[1,128,"Copy",0,"",0,"","",""],[1,129,"Paste",0,"",0,"","",""],[1,130,"Find",0,"",0,"","",""],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE","",""],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP","",""],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN","",""],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR","",""],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1","",""],[1,136,"KanaMode",0,"",0,"","",""],[0,137,"IntlYen",0,"",0,"","",""],[1,138,"Convert",0,"",0,"","",""],[1,139,"NonConvert",0,"",0,"","",""],[1,140,"Lang1",0,"",0,"","",""],[1,141,"Lang2",0,"",0,"","",""],[1,142,"Lang3",0,"",0,"","",""],[1,143,"Lang4",0,"",0,"","",""],[1,144,"Lang5",0,"",0,"","",""],[1,145,"Abort",0,"",0,"","",""],[1,146,"Props",0,"",0,"","",""],[1,147,"NumpadParenLeft",0,"",0,"","",""],[1,148,"NumpadParenRight",0,"",0,"","",""],[1,149,"NumpadBackspace",0,"",0,"","",""],[1,150,"NumpadMemoryStore",0,"",0,"","",""],[1,151,"NumpadMemoryRecall",0,"",0,"","",""],[1,152,"NumpadMemoryClear",0,"",0,"","",""],[1,153,"NumpadMemoryAdd",0,"",0,"","",""],[1,154,"NumpadMemorySubtract",0,"",0,"","",""],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR","",""],[1,156,"NumpadClearEntry",0,"",0,"","",""],[1,0,"",5,"Ctrl",17,"VK_CONTROL","",""],[1,0,"",4,"Shift",16,"VK_SHIFT","",""],[1,0,"",6,"Alt",18,"VK_MENU","",""],[1,0,"",57,"Meta",91,"VK_COMMAND","",""],[1,157,"ControlLeft",5,"",0,"VK_LCONTROL","",""],[1,158,"ShiftLeft",4,"",0,"VK_LSHIFT","",""],[1,159,"AltLeft",6,"",0,"VK_LMENU","",""],[1,160,"MetaLeft",57,"",0,"VK_LWIN","",""],[1,161,"ControlRight",5,"",0,"VK_RCONTROL","",""],[1,162,"ShiftRight",4,"",0,"VK_RSHIFT","",""],[1,163,"AltRight",6,"",0,"VK_RMENU","",""],[1,164,"MetaRight",57,"",0,"VK_RWIN","",""],[1,165,"BrightnessUp",0,"",0,"","",""],[1,166,"BrightnessDown",0,"",0,"","",""],[1,167,"MediaPlay",0,"",0,"","",""],[1,168,"MediaRecord",0,"",0,"","",""],[1,169,"MediaFastForward",0,"",0,"","",""],[1,170,"MediaRewind",0,"",0,"","",""],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK","",""],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK","",""],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP","",""],[1,174,"Eject",0,"",0,"","",""],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE","",""],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT","",""],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL","",""],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2","",""],[1,179,"LaunchApp1",0,"",0,"VK_MEDIA_LAUNCH_APP1","",""],[1,180,"SelectTask",0,"",0,"","",""],[1,181,"LaunchScreenSaver",0,"",0,"","",""],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH","",""],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME","",""],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK","",""],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD","",""],[1,186,"BrowserStop",0,"",0,"VK_BROWSER_STOP","",""],[1,187,"BrowserRefresh",0,"",0,"VK_BROWSER_REFRESH","",""],[1,188,"BrowserFavorites",0,"",0,"VK_BROWSER_FAVORITES","",""],[1,189,"ZoomToggle",0,"",0,"","",""],[1,190,"MailReply",0,"",0,"","",""],[1,191,"MailForward",0,"",0,"","",""],[1,192,"MailSend",0,"",0,"","",""],[1,0,"",114,"KeyInComposition",229,"","",""],[1,0,"",116,"ABNT_C2",194,"VK_ABNT_C2","",""],[1,0,"",96,"OEM_8",223,"VK_OEM_8","",""],[1,0,"",0,"",0,"VK_KANA","",""],[1,0,"",0,"",0,"VK_HANGUL","",""],[1,0,"",0,"",0,"VK_JUNJA","",""],[1,0,"",0,"",0,"VK_FINAL","",""],[1,0,"",0,"",0,"VK_HANJA","",""],[1,0,"",0,"",0,"VK_KANJI","",""],[1,0,"",0,"",0,"VK_CONVERT","",""],[1,0,"",0,"",0,"VK_NONCONVERT","",""],[1,0,"",0,"",0,"VK_ACCEPT","",""],[1,0,"",0,"",0,"VK_MODECHANGE","",""],[1,0,"",0,"",0,"VK_SELECT","",""],[1,0,"",0,"",0,"VK_PRINT","",""],[1,0,"",0,"",0,"VK_EXECUTE","",""],[1,0,"",0,"",0,"VK_SNAPSHOT","",""],[1,0,"",0,"",0,"VK_HELP","",""],[1,0,"",0,"",0,"VK_APPS","",""],[1,0,"",0,"",0,"VK_PROCESSKEY","",""],[1,0,"",0,"",0,"VK_PACKET","",""],[1,0,"",0,"",0,"VK_DBE_SBCSCHAR","",""],[1,0,"",0,"",0,"VK_DBE_DBCSCHAR","",""],[1,0,"",0,"",0,"VK_ATTN","",""],[1,0,"",0,"",0,"VK_CRSEL","",""],[1,0,"",0,"",0,"VK_EXSEL","",""],[1,0,"",0,"",0,"VK_EREOF","",""],[1,0,"",0,"",0,"VK_PLAY","",""],[1,0,"",0,"",0,"VK_ZOOM","",""],[1,0,"",0,"",0,"VK_NONAME","",""],[1,0,"",0,"",0,"VK_PA1","",""],[1,0,"",0,"",0,"VK_OEM_CLEAR","",""]],e=[],n=[];for(let o of t){let[r,s,a,l,d,c,u,m,g]=o;if(n[s]||(n[s]=!0,pJ[s]=a,mJ[a]=s,gJ[a.toLowerCase()]=s,r&&(r$[s]=l,l!==0&&l!==3&&!hJ(l)&&(UO[l]=s))),!e[l]){if(e[l]=!0,!d)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);kk.define(l,d),OO.define(l,m||d),NO.define(l,g||m||d)}c&&(dJ[c]=l),a&&(uJ[a]=c),u&&(cJ[u]=l)}UO[3]=46})();var fJ;(s=>{function i(a){return kk.keyCodeToStr(a)}s.toString=i;function t(a){return kk.strToKeyCode(a)}s.fromString=t;function e(a){return OO.keyCodeToStr(a)}s.toUserSettingsUS=e;function n(a){return NO.keyCodeToStr(a)}s.toUserSettingsGeneral=n;function o(a){return OO.strToKeyCode(a)||NO.strToKeyCode(a)}s.fromUserSettings=o;function r(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right";case 20:return"Delete"}return kk.keyCodeToStr(a)}s.toElectronAccelerator=r})(fJ||={});function hJ(i){return i===5||i===4||i===6||i===57}function Dy(i,t){if(typeof i=="number"){if(i===0)return null;let e=(i&65535)>>>0,n=(i&4294901760)>>>16;return n!==0?new Jf([Pk(e,t),Pk(n,t)]):new Jf([Pk(e,t)])}else{let e=[];for(let n=0;n<i.length;n++)e.push(Pk(i[n],t));return new Jf(e)}}function Pk(i,t){let e=!!(i&2048),n=!!(i&256),o=t===2?n:e,r=!!(i&1024),s=!!(i&512),a=t===2?e:n,l=i&255;return new FO(o,r,s,a,l)}var FO=class i{constructor(t,e,n,o,r){this.ctrlKey=t;this.shiftKey=e;this.altKey=n;this.metaKey=o;this.keyCode=r}equals(t){return t instanceof i&&this.ctrlKey===t.ctrlKey&&this.shiftKey===t.shiftKey&&this.altKey===t.altKey&&this.metaKey===t.metaKey&&this.keyCode===t.keyCode}getHashCode(){let t=this.ctrlKey?"1":"0",e=this.shiftKey?"1":"0",n=this.altKey?"1":"0",o=this.metaKey?"1":"0";return`K${t}${e}${n}${o}${this.keyCode}`}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toKeybinding(){return new Jf([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}};var Jf=class{constructor(t){if(t.length===0)throw Ve("chords");this.chords=t}getHashCode(){let t="";for(let e=0,n=this.chords.length;e<n;e++)e!==0&&(t+=";"),t+=this.chords[e].getHashCode();return t}equals(t){if(t===null||this.chords.length!==t.chords.length)return!1;for(let e=0;e<this.chords.length;e++)if(!this.chords[e].equals(t.chords[e]))return!1;return!0}};var HO=class i{constructor(){this._coreKeybindings=new mo,this._coreKeybindingRules=new mo,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToPlatform(t,e){if(e===1){if(t&&t.win)return t.win}else if(e===2){if(t&&t.mac)return t.mac}else if(t&&t.linux)return t.linux;return t}static bindToCurrentPlatform(t){return i.bindToPlatform(t,mr)}registerKeybindingRule(t){let e=i.bindToCurrentPlatform(t),n=new z;if(e&&e.primary){let r=Dy(e.primary,mr);r&&n.add(this._registerDefaultKeybinding(r,t.id,t.args,t.weight,0,t.when))}if(e&&Array.isArray(e.secondary))for(let r=0,s=e.secondary.length;r<s;r++){let a=e.secondary[r],l=Dy(a,mr);l&&n.add(this._registerDefaultKeybinding(l,t.id,t.args,t.weight,-r-1,t.when))}let o=this._coreKeybindingRules.push(t);return n.add(Q(()=>{o()})),n}setExtensionKeybindings(t){let e=[],n=0;for(let o of t)o.keybinding&&(e[n++]={keybinding:o.keybinding,command:o.id,commandArgs:o.args,when:o.when,weight1:o.weight,weight2:0,extensionId:o.extensionId||null,isBuiltinExtension:o.isBuiltinExtension||!1});this._extensionKeybindings=e,this._cachedMergedKeybindings=null}registerCommandAndKeybindingRule(t){return up(this.registerKeybindingRule(t),Py.registerCommand(t))}_registerDefaultKeybinding(t,e,n,o,r,s){let a=this._coreKeybindings.push({keybinding:t,command:e,commandArgs:n,when:s,weight1:o,weight2:r,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,Q(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(i$)),this._cachedMergedKeybindings.slice(0)}getDefaultKeybindingsForOS(t){let e=[];for(let n of this._coreKeybindingRules){let o=i.bindToPlatform(n,t);if(o&&o.primary){let r=Dy(o.primary,t);r&&e.push({keybinding:r,command:n.id,commandArgs:n.args,when:n.when,weight1:n.weight,weight2:0,extensionId:null,isBuiltinExtension:!1})}if(o&&Array.isArray(o.secondary))for(let r=0,s=o.secondary.length;r<s;r++){let a=o.secondary[r],l=Dy(a,t);l&&e.push({keybinding:l,command:n.id,commandArgs:n.args,when:n.when,weight1:n.weight,weight2:-r-1,extensionId:null,isBuiltinExtension:!1})}}return e.sort(i$),e}},s$=new HO,vJ={EditorModes:"platform.keybindingsRegistry"};_t.add(vJ.EditorModes,s$);function i$(i,t){if(i.weight1!==t.weight1)return i.weight1-t.weight1;if(i.command&&t.command){if(i.command<t.command)return-1;if(i.command>t.command)return 1}return i.weight2-t.weight2}function bJ(i){return i.command!==void 0}var Jd=class i{static{this._instances=new Map}static{this.CommandPalette=new i("CommandPalette")}static{this.DebugBreakpointsContext=new i("DebugBreakpointsContext")}static{this.DebugCallStackContext=new i("DebugCallStackContext")}static{this.DebugConsoleContext=new i("DebugConsoleContext")}static{this.DebugVariablesContext=new i("DebugVariablesContext")}static{this.NotebookVariablesContext=new i("NotebookVariablesContext")}static{this.DebugHoverContext=new i("DebugHoverContext")}static{this.DebugWatchContext=new i("DebugWatchContext")}static{this.DebugToolBar=new i("DebugToolBar")}static{this.DebugToolBarStop=new i("DebugToolBarStop")}static{this.DebugDisassemblyContext=new i("DebugDisassemblyContext")}static{this.DebugCallStackToolbar=new i("DebugCallStackToolbar")}static{this.DebugCreateConfiguration=new i("DebugCreateConfiguration")}static{this.DebugScopesContext=new i("DebugScopesContext")}static{this.EditorContext=new i("EditorContext")}static{this.SimpleEditorContext=new i("SimpleEditorContext")}static{this.EditorContent=new i("EditorContent")}static{this.EditorLineNumberContext=new i("EditorLineNumberContext")}static{this.EditorContextCopy=new i("EditorContextCopy")}static{this.EditorContextPeek=new i("EditorContextPeek")}static{this.EditorContextShare=new i("EditorContextShare")}static{this.EditorTitle=new i("EditorTitle")}static{this.EditorTitleLayout=new i("EditorTitleLayout")}static{this.ModalEditorTitle=new i("ModalEditorTitle")}static{this.ModalEditorTitleContext=new i("ModalEditorTitleContext")}static{this.ModalEditorEditorTitle=new i("ModalEditorEditorTitle")}static{this.CompactWindowEditorTitle=new i("CompactWindowEditorTitle")}static{this.EditorTitleRun=new i("EditorTitleRun")}static{this.EditorTitleContext=new i("EditorTitleContext")}static{this.EditorTitleContextShare=new i("EditorTitleContextShare")}static{this.EmptyEditorGroup=new i("EmptyEditorGroup")}static{this.EmptyEditorGroupContext=new i("EmptyEditorGroupContext")}static{this.EditorGroupWatermarkToolbar=new i("EditorGroupWatermarkToolbar")}static{this.EditorTabsBarContext=new i("EditorTabsBarContext")}static{this.EditorTabsBarShowTabsSubmenu=new i("EditorTabsBarShowTabsSubmenu")}static{this.EditorTabsBarShowTabsZenModeSubmenu=new i("EditorTabsBarShowTabsZenModeSubmenu")}static{this.EditorActionsPositionSubmenu=new i("EditorActionsPositionSubmenu")}static{this.EditorRenderWhitespaceSubmenu=new i("EditorRenderWhitespaceSubmenu")}static{this.EditorSplitMoveSubmenu=new i("EditorSplitMoveSubmenu")}static{this.ExplorerContext=new i("ExplorerContext")}static{this.ExplorerContextShare=new i("ExplorerContextShare")}static{this.ExtensionContext=new i("ExtensionContext")}static{this.ExtensionEditorContextMenu=new i("ExtensionEditorContextMenu")}static{this.GlobalActivity=new i("GlobalActivity")}static{this.CommandCenter=new i("CommandCenter")}static{this.CommandCenterCenter=new i("CommandCenterCenter")}static{this.LayoutControlMenuSubmenu=new i("LayoutControlMenuSubmenu")}static{this.LayoutControlMenu=new i("LayoutControlMenu")}static{this.MenubarMainMenu=new i("MenubarMainMenu")}static{this.MenubarAppearanceMenu=new i("MenubarAppearanceMenu")}static{this.MenubarDebugMenu=new i("MenubarDebugMenu")}static{this.MenubarEditMenu=new i("MenubarEditMenu")}static{this.MenubarCopy=new i("MenubarCopy")}static{this.MenubarFileMenu=new i("MenubarFileMenu")}static{this.MenubarGoMenu=new i("MenubarGoMenu")}static{this.MenubarHelpMenu=new i("MenubarHelpMenu")}static{this.MenubarLayoutMenu=new i("MenubarLayoutMenu")}static{this.MenubarNewBreakpointMenu=new i("MenubarNewBreakpointMenu")}static{this.PanelAlignmentMenu=new i("PanelAlignmentMenu")}static{this.PanelPositionMenu=new i("PanelPositionMenu")}static{this.ActivityBarPositionMenu=new i("ActivityBarPositionMenu")}static{this.NotificationsCenterPositionMenu=new i("NotificationsCenterPositionMenu")}static{this.MenubarPreferencesMenu=new i("MenubarPreferencesMenu")}static{this.MenubarRecentMenu=new i("MenubarRecentMenu")}static{this.MenubarSelectionMenu=new i("MenubarSelectionMenu")}static{this.MenubarShare=new i("MenubarShare")}static{this.MenubarSwitchEditorMenu=new i("MenubarSwitchEditorMenu")}static{this.MenubarSwitchGroupMenu=new i("MenubarSwitchGroupMenu")}static{this.MenubarTerminalMenu=new i("MenubarTerminalMenu")}static{this.MenubarTerminalSuggestStatusMenu=new i("MenubarTerminalSuggestStatusMenu")}static{this.MenubarViewMenu=new i("MenubarViewMenu")}static{this.MenubarHomeMenu=new i("MenubarHomeMenu")}static{this.OpenEditorsContext=new i("OpenEditorsContext")}static{this.OpenEditorsContextShare=new i("OpenEditorsContextShare")}static{this.ProblemsPanelContext=new i("ProblemsPanelContext")}static{this.SCMInputBox=new i("SCMInputBox")}static{this.SCMChangeContext=new i("SCMChangeContext")}static{this.SCMResourceContext=new i("SCMResourceContext")}static{this.SCMResourceContextShare=new i("SCMResourceContextShare")}static{this.SCMResourceFolderContext=new i("SCMResourceFolderContext")}static{this.SCMResourceGroupContext=new i("SCMResourceGroupContext")}static{this.SCMSourceControl=new i("SCMSourceControl")}static{this.SCMSourceControlInline=new i("SCMSourceControlInline")}static{this.SCMSourceControlTitle=new i("SCMSourceControlTitle")}static{this.SCMHistoryTitle=new i("SCMHistoryTitle")}static{this.SCMHistoryItemContext=new i("SCMHistoryItemContext")}static{this.SCMHistoryItemChangeContext=new i("SCMHistoryItemChangeContext")}static{this.SCMHistoryItemRefContext=new i("SCMHistoryItemRefContext")}static{this.SCMArtifactGroupContext=new i("SCMArtifactGroupContext")}static{this.SCMArtifactContext=new i("SCMArtifactContext")}static{this.SCMQuickDiffDecorations=new i("SCMQuickDiffDecorations")}static{this.SCMTitle=new i("SCMTitle")}static{this.SearchContext=new i("SearchContext")}static{this.SearchActionMenu=new i("SearchActionContext")}static{this.StatusBarWindowIndicatorMenu=new i("StatusBarWindowIndicatorMenu")}static{this.StatusBarRemoteIndicatorMenu=new i("StatusBarRemoteIndicatorMenu")}static{this.StickyScrollContext=new i("StickyScrollContext")}static{this.TestItem=new i("TestItem")}static{this.TestItemGutter=new i("TestItemGutter")}static{this.TestProfilesContext=new i("TestProfilesContext")}static{this.TestMessageContext=new i("TestMessageContext")}static{this.TestMessageContent=new i("TestMessageContent")}static{this.TestPeekElement=new i("TestPeekElement")}static{this.TestPeekTitle=new i("TestPeekTitle")}static{this.TestCallStack=new i("TestCallStack")}static{this.TestCoverageFilterItem=new i("TestCoverageFilterItem")}static{this.TouchBarContext=new i("TouchBarContext")}static{this.TitleBar=new i("TitleBar")}static{this.TitleBarAdjacentCenter=new i("TitleBarAdjacentCenter")}static{this.TitleBarContext=new i("TitleBarContext")}static{this.TitleBarTitleContext=new i("TitleBarTitleContext")}static{this.TunnelContext=new i("TunnelContext")}static{this.TunnelPrivacy=new i("TunnelPrivacy")}static{this.TunnelProtocol=new i("TunnelProtocol")}static{this.TunnelPortInline=new i("TunnelInline")}static{this.TunnelTitle=new i("TunnelTitle")}static{this.TunnelLocalAddressInline=new i("TunnelLocalAddressInline")}static{this.TunnelOriginInline=new i("TunnelOriginInline")}static{this.ViewItemContext=new i("ViewItemContext")}static{this.ViewContainerTitle=new i("ViewContainerTitle")}static{this.ViewContainerTitleContext=new i("ViewContainerTitleContext")}static{this.ViewTitle=new i("ViewTitle")}static{this.ViewTitleContext=new i("ViewTitleContext")}static{this.CommentEditorActions=new i("CommentEditorActions")}static{this.CommentThreadTitle=new i("CommentThreadTitle")}static{this.CommentThreadActions=new i("CommentThreadActions")}static{this.CommentThreadAdditionalActions=new i("CommentThreadAdditionalActions")}static{this.CommentThreadTitleContext=new i("CommentThreadTitleContext")}static{this.CommentThreadCommentContext=new i("CommentThreadCommentContext")}static{this.CommentTitle=new i("CommentTitle")}static{this.CommentActions=new i("CommentActions")}static{this.CommentsViewThreadActions=new i("CommentsViewThreadActions")}static{this.InteractiveToolbar=new i("InteractiveToolbar")}static{this.InteractiveCellTitle=new i("InteractiveCellTitle")}static{this.InteractiveCellDelete=new i("InteractiveCellDelete")}static{this.InteractiveCellExecute=new i("InteractiveCellExecute")}static{this.InteractiveInputExecute=new i("InteractiveInputExecute")}static{this.InteractiveInputConfig=new i("InteractiveInputConfig")}static{this.ReplInputExecute=new i("ReplInputExecute")}static{this.IssueReporter=new i("IssueReporter")}static{this.NotebookToolbar=new i("NotebookToolbar")}static{this.NotebookToolbarContext=new i("NotebookToolbarContext")}static{this.NotebookStickyScrollContext=new i("NotebookStickyScrollContext")}static{this.NotebookCellTitle=new i("NotebookCellTitle")}static{this.NotebookCellDelete=new i("NotebookCellDelete")}static{this.NotebookCellInsert=new i("NotebookCellInsert")}static{this.NotebookCellBetween=new i("NotebookCellBetween")}static{this.NotebookCellListTop=new i("NotebookCellTop")}static{this.NotebookCellExecute=new i("NotebookCellExecute")}static{this.NotebookCellExecuteGoTo=new i("NotebookCellExecuteGoTo")}static{this.NotebookCellExecutePrimary=new i("NotebookCellExecutePrimary")}static{this.NotebookDiffCellInputTitle=new i("NotebookDiffCellInputTitle")}static{this.NotebookDiffDocumentMetadata=new i("NotebookDiffDocumentMetadata")}static{this.NotebookDiffCellMetadataTitle=new i("NotebookDiffCellMetadataTitle")}static{this.NotebookDiffCellOutputsTitle=new i("NotebookDiffCellOutputsTitle")}static{this.NotebookOutputToolbar=new i("NotebookOutputToolbar")}static{this.NotebookOutlineFilter=new i("NotebookOutlineFilter")}static{this.NotebookOutlineActionMenu=new i("NotebookOutlineActionMenu")}static{this.NotebookEditorLayoutConfigure=new i("NotebookEditorLayoutConfigure")}static{this.NotebookKernelSource=new i("NotebookKernelSource")}static{this.BulkEditTitle=new i("BulkEditTitle")}static{this.BulkEditContext=new i("BulkEditContext")}static{this.TimelineItemContext=new i("TimelineItemContext")}static{this.TimelineTitle=new i("TimelineTitle")}static{this.TimelineTitleContext=new i("TimelineTitleContext")}static{this.TimelineFilterSubMenu=new i("TimelineFilterSubMenu")}static{this.AccountsContext=new i("AccountsContext")}static{this.SidebarTitle=new i("SidebarTitle")}static{this.PanelTitle=new i("PanelTitle")}static{this.AuxiliaryBarTitle=new i("AuxiliaryBarTitle")}static{this.TerminalInstanceContext=new i("TerminalInstanceContext")}static{this.TerminalEditorInstanceContext=new i("TerminalEditorInstanceContext")}static{this.TerminalNewDropdownContext=new i("TerminalNewDropdownContext")}static{this.TerminalTabContext=new i("TerminalTabContext")}static{this.TerminalTabEmptyAreaContext=new i("TerminalTabEmptyAreaContext")}static{this.TerminalStickyScrollContext=new i("TerminalStickyScrollContext")}static{this.WebviewContext=new i("WebviewContext")}static{this.InlineCompletionsActions=new i("InlineCompletionsActions")}static{this.InlineEditsActions=new i("InlineEditsActions")}static{this.NewFile=new i("NewFile")}static{this.MergeInput1Toolbar=new i("MergeToolbar1Toolbar")}static{this.MergeInput2Toolbar=new i("MergeToolbar2Toolbar")}static{this.MergeBaseToolbar=new i("MergeBaseToolbar")}static{this.MergeInputResultToolbar=new i("MergeToolbarResultToolbar")}static{this.InlineSuggestionToolbar=new i("InlineSuggestionToolbar")}static{this.InlineEditToolbar=new i("InlineEditToolbar")}static{this.ChatContext=new i("ChatContext")}static{this.ChatCodeBlock=new i("ChatCodeblock")}static{this.ChatCompareBlock=new i("ChatCompareBlock")}static{this.ChatMessageTitle=new i("ChatMessageTitle")}static{this.ChatWelcomeContext=new i("ChatWelcomeContext")}static{this.ChatMessageFooter=new i("ChatMessageFooter")}static{this.ChatExecute=new i("ChatExecute")}static{this.ChatExecuteQueue=new i("ChatExecuteQueue")}static{this.ChatInput=new i("ChatInput")}static{this.ChatInputSecondary=new i("ChatInputSecondary")}static{this.ChatInputStatus=new i("ChatInputStatus")}static{this.ChatInputSide=new i("ChatInputSide")}static{this.ChatModePicker=new i("ChatModePicker")}static{this.ChatEditingWidgetToolbar=new i("ChatEditingWidgetToolbar")}static{this.ChatEditingSessionChangesToolbar=new i("ChatEditingSessionChangesToolbar")}static{this.ChatEditingSessionTitleToolbar=new i("ChatEditingSessionTitleToolbar")}static{this.ChatEditingSessionChangesVersionsSubmenu=new i("ChatEditingSessionChangesVersionsSubmenu")}static{this.ChatEditingSessionChangesFileHeaderToolbar=new i("ChatEditingSessionChangesFileHeaderToolbar")}static{this.ChatEditingSessionChangesFileHeaderRightToolbar=new i("ChatEditingSessionChangesFileHeaderRightToolbar")}static{this.ChatEditingEditorContent=new i("ChatEditingEditorContent")}static{this.ChatEditingEditorHunk=new i("ChatEditingEditorHunk")}static{this.ChatEditingDeletedNotebookCell=new i("ChatEditingDeletedNotebookCell")}static{this.ChatInputAttachmentToolbar=new i("ChatInputAttachmentToolbar")}static{this.ChatEditingWidgetModifiedFilesToolbar=new i("ChatEditingWidgetModifiedFilesToolbar")}static{this.ChatInputResourceAttachmentContext=new i("ChatInputResourceAttachmentContext")}static{this.ChatInputSymbolAttachmentContext=new i("ChatInputSymbolAttachmentContext")}static{this.ChatInlineResourceAnchorContext=new i("ChatInlineResourceAnchorContext")}static{this.ChatInlineSymbolAnchorContext=new i("ChatInlineSymbolAnchorContext")}static{this.ChatMessageCheckpoint=new i("ChatMessageCheckpoint")}static{this.ChatMessageRestoreCheckpoint=new i("ChatMessageRestoreCheckpoint")}static{this.ChatNewMenu=new i("ChatNewMenu")}static{this.ChatEditingCodeBlockContext=new i("ChatEditingCodeBlockContext")}static{this.ChatTitleBarMenu=new i("ChatTitleBarMenu")}static{this.ChatAttachmentsContext=new i("ChatAttachmentsContext")}static{this.ChatTipContext=new i("ChatTipContext")}static{this.ChatTipToolbar=new i("ChatTipToolbar")}static{this.ChatToolOutputResourceToolbar=new i("ChatToolOutputResourceToolbar")}static{this.ChatTextEditorMenu=new i("ChatTextEditorMenu")}static{this.ChatToolOutputResourceContext=new i("ChatToolOutputResourceContext")}static{this.ChatMultiDiffContext=new i("ChatMultiDiffContext")}static{this.ChatConfirmationMenu=new i("ChatConfirmationMenu")}static{this.ChatEditorInlineMenu=new i("ChatEditorInlineGutter")}static{this.ChatEditorInlineExecute=new i("ChatEditorInputExecute")}static{this.ChatEditorInlineInputSide=new i("ChatEditorInputSide")}static{this.InlineChatEditorAffordance=new i("InlineChatEditorAffordance")}static{this.AccessibleView=new i("AccessibleView")}static{this.MultiDiffEditorContent=new i("MultiDiffEditorContent")}static{this.MultiDiffEditorFileToolbar=new i("MultiDiffEditorFileToolbar")}static{this.DiffEditorHunkToolbar=new i("DiffEditorHunkToolbar")}static{this.DiffEditorSelectionToolbar=new i("DiffEditorSelectionToolbar")}static{this.BrowserNavigationToolbar=new i("BrowserNavigationToolbar")}static{this.BrowserActionsToolbar=new i("BrowserActionsToolbar")}static{this.BrowserChatActionsMenu=new i("BrowserChatActionsMenu")}static{this.BrowserEmulationToolbar=new i("BrowserEmulationToolbar")}static{this.AgentSessionsViewerFilterSubMenu=new i("AgentSessionsViewerFilterSubMenu")}static{this.AgentSessionsContext=new i("AgentSessionsContext")}static{this.AgentSessionSectionContext=new i("AgentSessionSectionContext")}static{this.AgentSessionsCreateSubMenu=new i("AgentSessionsCreateSubMenu")}static{this.AgentSessionsToolbar=new i("AgentSessionsToolbar")}static{this.AgentSessionItemToolbar=new i("AgentSessionItemToolbar")}static{this.AgentSessionSectionToolbar=new i("AgentSessionSectionToolbar")}static{this.SessionItemContextMenu=new i("SessionItemContextMenu")}static{this.SessionHeaderContext=new i("SessionsSessionHeaderContext")}static{this.AgentsTitleBarControlMenu=new i("AgentsTitleBarControlMenu")}static{this.AgentsChangesToolbar=new i("AgentsChangesToolbar")}static{this.AgentsChangesPrimaryActionSubMenu=new i("AgentsChangesPrimaryActionSubMenu")}static{this.AgentsChangeInlineToolbar=new i("AgentsChangeInlineToolbar")}static{this.ChatViewSessionTitleNavigationToolbar=new i("ChatViewSessionTitleNavigationToolbar")}static{this.ChatViewSessionTitleToolbar=new i("ChatViewSessionTitleToolbar")}static{this.ChatContextUsageActions=new i("ChatContextUsageActions")}static{this.MarkerHoverStatusBar=new i("MarkerHoverParticipant.StatusBar")}static for(t){return i._instances.get(t)??new i(t)}constructor(t){if(i._instances.has(t))throw new TypeError(`MenuId with identifier '${t}' already exists. Use MenuId.for(ident) or a unique identifier`);i._instances.set(t,this),this.id=t}},$pt=R("menuService"),Qu=class i{constructor(t){this.id=t;this.has=e=>e===t}static{this._all=new Map}static for(t){let e=this._all.get(t);return e||(e=new i(t),this._all.set(t,e)),e}static merge(t){let e=new Set;for(let n of t)n instanceof i&&e.add(n.id);return e}},zpt=new class{constructor(){this._commands=new Map;this._menuItems=new Map;this._onDidChangeMenu=new hI({merge:Qu.merge});this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(i){return this._commands.set(i.id,i),this._onDidChangeMenu.fire(Qu.for(Jd.CommandPalette)),Ph(Q(()=>{this._commands.delete(i.id)&&this._onDidChangeMenu.fire(Qu.for(Jd.CommandPalette))}))}getCommand(i){return this._commands.get(i)}getCommands(){let i=new Map;return this._commands.forEach((t,e)=>i.set(e,t)),i}appendMenuItem(i,t){let e=this._menuItems.get(i);e||(e=new mo,this._menuItems.set(i,e));let n=e.push(t);return this._onDidChangeMenu.fire(Qu.for(i)),Ph(Q(()=>{n(),this._onDidChangeMenu.fire(Qu.for(i))}))}appendMenuItems(i){let t=new z;for(let{id:e,item:n}of i)t.add(this.appendMenuItem(e,n));return t}getMenuItems(i){let t;return this._menuItems.has(i)?t=[...this._menuItems.get(i)]:t=[],i===Jd.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(i){let t=new Set;for(let e of i)bJ(e)&&(t.add(e.command.id),e.alt&&t.add(e.alt.id));this._commands.forEach((e,n)=>{t.has(n)||i.push({command:e})})}};var Ju=class{constructor(t,e,n,o,r,s,a){this.hideActions=o;this.menuKeybinding=r;this._commandService=a;this.id=t.id,this.label=Ju.label(t,n),this.tooltip=(typeof t.tooltip=="string"?t.tooltip:t.tooltip?.value)??"",this.enabled=!t.precondition||s.contextMatchesRules(t.precondition),this.checked=void 0;let l;if(t.toggled){let d=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=s.contextMatchesRules(d.condition),this.checked&&d.tooltip&&(this.tooltip=typeof d.tooltip=="string"?d.tooltip:d.tooltip.value),this.checked&&dt.isThemeIcon(d.icon)&&(l=d.icon),this.checked&&d.title&&(this.label=typeof d.title=="string"?d.title:d.title.value)}l||(l=dt.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=e?new Ju(e,void 0,n,o,void 0,s,a):void 0,this._options=n,this.class=l&&dt.asClassName(l)}static label(t,e){return e?.renderShortTitle&&t.shortTitle?typeof t.shortTitle=="string"?t.shortTitle:t.shortTitle.value:typeof t.title=="string"?t.title:t.title.value}run(...t){let e=[];return this._options?.args?e=[...e,...this._options.args]:this._options?.arg&&(e=[...e,this._options.arg]),this._options?.shouldForwardArgs&&(e=[...e,...t]),this._commandService.executeCommand(this.id,...e)}};Ju=D([C(5,Ir),C(6,LO)],Ju);var Qpt=R("IExtensionGalleryManifestService");var smt=ac(11155,"Extensions");var VO=R("extensionsWorkbenchService");var _k=class extends U{constructor(e,n){super();this.containers=e;this._register(n.onChange(this.update,this))}set extension(e){this.containers.forEach(n=>n.extension=e)}update(e){for(let n of this.containers)e&&n.extension?YV(n.extension.identifier,e.identifier)&&(n.extension.server&&e.server&&n.extension.server!==e.server?n.updateWhenCounterExtensionChanges&&n.update():n.extension=e):n.update()}};_k=D([C(1,VO)],_k);var amt=new k("defaultExtensionViews",!0),lmt=new k("hasOutdatedExtensions",!1),dmt=new k("hasGallery",!1),cmt=new k("extensionsGalleryStatus","unavailable"),umt=new k("extensionResultListFocused ",!0),pmt=new k("searchMcpServers",!1),mmt=new k("searchAgentPlugins",!1);var gmt=new Jd("extensionsSearchActionsMenu"),fmt=new Jd("extensionsFilterSubMenu");var WO="vscode_searchExtensions_internal",Lmt={id:WO,toolReferenceName:"extensions",legacyToolReferenceFullNames:["extensions"],icon:dt.fromId(ce.extensions.id),displayName:p(11168,null),modelDescription:"This is a tool for browsing Visual Studio Code Extensions Marketplace. It allows the model to search for extensions and retrieve detailed information about them. The model should use this tool whenever it needs to discover extensions or resolve information about known ones. To use the tool, the model has to provide the category of the extensions, relevant search keywords, or known extension IDs. Note that search results may include false positives, so reviewing and filtering is recommended.",userDescription:p(11170,null),source:dn.Internal,inputSchema:{type:"object",properties:{category:{type:"string",description:"The category of extensions to search for",enum:rx},keywords:{type:"array",items:{type:"string"},description:"The keywords to search for"},ids:{type:"array",items:{type:"string"},description:"The ids of the extensions to search for"}}}},Dk=class{constructor(t){this.extensionWorkbenchService=t}async invoke(t,e,n,o){let r=t.parameters;if(!r.keywords?.length&&!r.category&&!r.ids?.length)return{content:[{kind:"text",value:p(11169,null)}]};let s=new Map,a=c=>{for(let u of c)u.deprecationInfo||u.isMalicious||s.set(u.identifier.id.toLowerCase(),{id:u.identifier.id,name:u.displayName,description:u.description,installed:u.state===1,installCount:u.installCount??0,rating:u.rating??0,categories:u.categories??[],tags:u.gallery?.tags??[]})},l=async c=>{let u=await this.extensionWorkbenchService.queryGallery({text:c,pageSize:10,sortBy:"InstallCount"},o);u.firstPage.length&&a(u.firstPage)};if(r.ids?.length){let c=await this.extensionWorkbenchService.getExtensions(r.ids.map(u=>({id:u})),o);a(c)}if(r.keywords?.length)for(let c of r.keywords??[])if(c==="featured")await l("featured");else{let u=r.category?`category:"${r.category}"`:"";u=c?`${u} ${c}`.trim():u,await l(u)}else await l(`category:"${r.category}"`);let d=Array.from(s.values());return{content:[{kind:"text",value:`Here are the list of extensions:
${JSON.stringify(d)}
. Important: Use the following format to display extensions to the user because there is a renderer available to parse these extensions in this format and display them with all details. So, do not describe about the extensions to the user.
\`\`\`vscode-extensions
extensionId1,extensionId2
\`\`\`
.`}],toolResultDetails:{input:JSON.stringify(r),output:[{type:"embed",isText:!0,value:JSON.stringify(d.map(c=>c.id))}]}}}};Dk=D([C(0,VO)],Dk);var Rk=class{constructor(t){this._data=t}update(t){this._data=t,this._apiObject=void 0,this._apiObjectWithChatParticipantAdditions=void 0}get data(){return this._data}get apiObject(){return this._apiObject||(this._apiObject=Object.freeze({name:this._data.id,description:this._data.modelDescription,inputSchema:this._data.inputSchema,tags:this._data.tags??[],source:void 0})),this._apiObject}get apiObjectWithChatParticipantAdditions(){return this._apiObjectWithChatParticipantAdditions||(this._apiObjectWithChatParticipantAdditions=Object.freeze({name:this._data.id,description:this._data.modelDescription,inputSchema:this._data.inputSchema,tags:this._data.tags??[],source:BM.to(this._data.source),fullReferenceName:this._data.fullReferenceName})),this._apiObjectWithChatParticipantAdditions}},Ak=class{constructor(t,e){this._languageModels=e;this._registeredTools=new Map;this._tokenCountFuncs=new Map;this._allTools=new Map;this._proxy=t.getProxy(F.MainThreadLanguageModelTools),this._proxy.$getTools().then(n=>{for(let o of n)this._allTools.set(o.id,new Rk(St(o)))})}async $countTokensForInvocation(t,e,n){let o=this._tokenCountFuncs.get(t);if(!o)throw new Error(`Tool invocation call ${t} not found`);return await o(e,n)}async invokeTool(t,e,n,o){let r=typeof e=="string"?e:e.name,s=Pe();n.tokenizationOptions&&this._tokenCountFuncs.set(s,n.tokenizationOptions.countTokens);try{if(n.toolInvocationToken&&!HV(n.toolInvocationToken))throw new Error("Invalid tool invocation token");if((r===Xw||r===vO)&&!Oe(t,"chatParticipantPrivate"))throw new Error(`Invalid tool: ${r}`);let a=await this._proxy.$invokeTool({toolId:r,callId:s,parameters:n.input,tokenBudget:n.tokenizationOptions?.tokenBudget,context:n.toolInvocationToken,chatRequestId:Oe(t,"chatParticipantPrivate")?n.chatRequestId:void 0,chatInteractionId:Oe(t,"chatParticipantPrivate")?n.chatInteractionId:void 0,subAgentInvocationId:Oe(t,"chatParticipantPrivate")?n.subAgentInvocationId:void 0,chatStreamToolCallId:Oe(t,"chatParticipantAdditions")?n.chatStreamToolCallId:void 0,preToolUseResult:Oe(t,"chatParticipantPrivate")?n.preToolUseResult:void 0,traceparent:Oe(t,"chatParticipantPrivate")?n.traceparent:void 0,tracestate:Oe(t,"chatParticipantPrivate")?n.tracestate:void 0},o),l=a instanceof Yt?a.value:a;return OT.to(St(l))}finally{this._tokenCountFuncs.delete(s)}}$onDidChangeTools(t){let e=new Set(this._allTools.keys());for(let n of t){e.delete(n.id);let o=this._allTools.get(n.id);o?o.update(n):this._allTools.set(n.id,new Rk(St(n)))}for(let n of e)this._allTools.delete(n)}getTools(t){let e=Oe(t,"chatParticipantPrivate");return Array.from(this._allTools.values()).map(n=>e?n.apiObjectWithChatParticipantAdditions:n.apiObject).filter(n=>{switch(n.name){case Xw:case vO:case o$:case WO:return Oe(t,"chatParticipantPrivate");default:return!0}})}async $invokeTool(t,e){let n=this._registeredTools.get(t.toolId);if(!n)throw new Error(`Unknown tool ${t.toolId}`);let o={input:t.parameters,toolInvocationToken:St(t.context)};Oe(n.extension,"chatParticipantPrivate")&&(o.chatRequestId=t.chatRequestId,o.chatInteractionId=t.chatInteractionId,o.chatSessionResource=b.revive(t.context?.sessionResource),o.workingDirectory=b.revive(t.context?.workingDirectory),o.subAgentInvocationId=t.subAgentInvocationId,o.traceparent=t.traceparent,o.tracestate=t.tracestate),Oe(n.extension,"chatParticipantAdditions")&&t.modelId&&(o.model=await this.getModel(t.modelId,n.extension)),Oe(n.extension,"chatParticipantAdditions")&&t.chatStreamToolCallId&&(o.chatStreamToolCallId=t.chatStreamToolCallId),t.tokenBudget!==void 0&&(o.tokenizationOptions={tokenBudget:t.tokenBudget,countTokens:this._tokenCountFuncs.get(t.callId)||((a,l=me.None)=>this._proxy.$countTokensForInvocation(t.callId,a,l))});let r;if(Oe(n.extension,"toolProgress")){let a;r={report:l=>{l.increment!==void 0&&(a=(a??0)+l.increment),this._proxy.$acceptToolProgress(t.callId,{message:ge.fromStrict(l.message),progress:a===void 0?void 0:a/100})}}}let s=await El(Promise.resolve(n.tool.invoke(o,e,r)),e);if(!s)throw new Ue;return OT.from(s,n.extension)}async getModel(t,e){let n;if(t&&(n=await this._languageModels.getLanguageModelByIdentifier(e,t)),!n&&(n=await this._languageModels.getDefaultLanguageModel(e),!n))throw new Error("Language model unavailable");return n}async $handleToolStream(t,e,n){let o=this._registeredTools.get(t);if(!o)throw new Error(`Unknown tool ${t}`);if(!o.tool.handleToolStream)return;A(o.extension,"chatParticipantAdditions");let r={rawInput:e.rawInput,chatRequestId:e.chatRequestId,chatSessionResource:e.chatSessionResource,chatInteractionId:e.chatInteractionId},s=await o.tool.handleToolStream(r,n);if(s)return{invocationMessage:ge.fromStrict(s.invocationMessage)}}async $prepareToolInvocation(t,e,n){let o=this._registeredTools.get(t);if(!o)throw new Error(`Unknown tool ${t}`);let r={input:e.parameters,chatRequestId:e.chatRequestId,chatSessionResource:e.chatSessionResource,chatInteractionId:e.chatInteractionId,workingDirectory:b.revive(e.workingDirectory),forceConfirmationReason:e.forceConfirmationReason};if(e.forceConfirmationReason&&A(o.extension,"chatParticipantPrivate"),o.tool.prepareInvocation){let s=await o.tool.prepareInvocation(r,n);if(!s)return;(s.pastTenseMessage||s.presentation)&&A(o.extension,"chatParticipantPrivate"),s.confirmationMessages?.approveCombination!==void 0&&A(o.extension,"toolInvocationApproveCombination");let a=s.confirmationMessages?.approveCombination,l=a?ge.fromStrict(a.message):void 0,d=l?await T5(t,e.parameters):void 0;return{confirmationMessages:s.confirmationMessages?{title:typeof s.confirmationMessages.title=="string"?s.confirmationMessages.title:ge.from(s.confirmationMessages.title),message:typeof s.confirmationMessages.message=="string"?s.confirmationMessages.message:ge.from(s.confirmationMessages.message),approveCombination:l&&d?{label:l,key:d,arguments:a.arguments}:void 0}:void 0,invocationMessage:ge.fromStrict(s.invocationMessage),pastTenseMessage:ge.fromStrict(s.pastTenseMessage),presentation:s.presentation}}}registerTool(t,e,n){return this._registeredTools.set(e,{extension:t,tool:n}),this._proxy.$registerTool(e,typeof n.handleToolStream=="function"),Q(()=>{this._registeredTools.delete(e),this._proxy.$unregisterTool(e)})}registerToolDefinition(t,e,n){A(t,"languageModelToolSupportsModel");let o=e.name,r={id:o,displayName:e.displayName,toolReferenceName:e.toolReferenceName,userDescription:e.userDescription,modelDescription:e.description,inputSchema:e.inputSchema,source:{type:"extension",label:t.displayName??t.name,extensionId:t.identifier},icon:Hi.from(e.icon),models:e.models,toolSet:e.toolSet};return this._registeredTools.set(o,{extension:t,tool:n}),this._proxy.$registerToolWithDefinition(t.identifier,r,typeof n.handleToolStream=="function"),Q(()=>{this._registeredTools.delete(o),this._proxy.$unregisterTool(o)})}};var Mk=class{constructor(t,e,n,o){this._documents=e;this._commands=n;this._uriTransformer=o;this._languageIds=[];this._handlePool=0;this._ids=new Set;this._proxy=t.getProxy(F.MainThreadLanguages)}$acceptLanguageIds(t){this._languageIds=t}async getLanguages(){return this._languageIds.slice(0)}async changeLanguage(t,e){await this._proxy.$changeLanguage(t,e);let n=this._documents.getDocumentData(t);if(!n)throw new Error(`document '${t.toString()}' NOT found`);return n.document}async tokenAtPosition(t,e){let n=t.version,o=gt.from(e),r=await this._proxy.$tokensAtPosition(t.uri,o),s={type:0,range:t.getWordRangeAtPosition(e)??new be(e.line,e.character,e.line,e.character)};if(!r)return s;let a={range:G.to(r.range),type:mM.to(r.type)};return!a.range.contains(e)||n!==t.version?s:a}createLanguageStatusItem(t,e,n){let o=this._handlePool++,r=this._proxy,s=this._ids,a=`${t.identifier.value}/${e}`;if(s.has(a))throw new Error(`LanguageStatusItem with id '${e}' ALREADY exists`);s.add(a);let l={selector:n,id:e,name:t.displayName??t.name,severity:0,command:void 0,text:"",detail:"",busy:!1},d,c=new z,u=()=>{if(d?.dispose(),!s.has(a)){console.warn(`LanguageStatusItem (${e}) from ${t.identifier.value} has been disposed and CANNOT be updated anymore`);return}d=$h(()=>{c.clear(),this._proxy.$setLanguageStatus(o,{id:a,name:l.name??t.displayName??t.name,source:t.displayName??t.name,selector:Fi.from(l.selector,this._uriTransformer),label:l.text,detail:l.detail??"",severity:l.severity===2?it.Error:l.severity===1?it.Warning:it.Info,command:l.command&&this._commands.toInternal(l.command,c),accessibilityInfo:l.accessibilityInformation,busy:l.busy})},0)},m={dispose(){c.dispose(),d?.dispose(),r.$removeLanguageStatus(o),s.delete(a)},get id(){return l.id},get name(){return l.name},set name(g){l.name=g,u()},get selector(){return l.selector},set selector(g){l.selector=g,u()},get text(){return l.text},set text(g){l.text=g,u()},set text2(g){A(t,"languageStatusText"),l.text=g,u()},get text2(){return A(t,"languageStatusText"),l.text},get detail(){return l.detail},set detail(g){l.detail=g,u()},get severity(){return l.severity},set severity(g){l.severity=g,u()},get accessibilityInformation(){return l.accessibilityInformation},set accessibilityInformation(g){l.accessibilityInformation=g,u()},get command(){return l.command},set command(g){l.command=g,u()},get busy(){return l.busy},set busy(g){l.busy=g,u()}};return u(),m}};function yJ(i){return i&&i.title}var Yf=class{constructor(t,e){this._logService=e;this._proxy=t.getProxy(F.MainThreadMessageService)}showMessage(t,e,n,o,r){let s={source:{identifier:t.identifier,label:t.displayName||t.name}},a;typeof o=="string"||yJ(o)?a=[o,...r]:(s.modal=o?.modal,s.useCustom=o?.useCustom,s.detail=o?.detail,a=r),s.useCustom&&A(t,"resolvers");let l=[],d=!1;for(let c=0;c<a.length;c++){let u=a[c];if(typeof u=="string")l.push({title:u,handle:c,isCloseAffordance:!1});else if(typeof u=="object"){let{title:m,isCloseAffordance:g}=u;l.push({title:m,isCloseAffordance:!!g,handle:c}),g&&(d?this._logService.warn(`[${t.identifier}] Only one message item can have 'isCloseAffordance':`,u):d=!0)}else this._logService.warn(`[${t.identifier}] Invalid message item:`,u)}return this._proxy.$showMessage(e,n,s,l).then(c=>{if(typeof c=="number")return a[c]})}};Yf=D([C(1,ne)],Yf);var Ry=class{constructor(t,e,n,o){this.start=t;this.deletedCount=e;this.deletedItems=n;this.items=o}asApiEvent(){return{range:new co(this.start,this.start+this.deletedCount),addedCells:this.items.map(t=>t.apiCell),removedCells:this.deletedItems}}},Xf=class{constructor(t,e,n){this.notebook=t;this._extHostDocument=e;this._cellData=n;this.handle=n.handle,this.uri=b.revive(n.uri),this.cellKind=n.cellKind,this._outputs=n.outputs.map(Ka.to),this._internalMetadata=n.internalMetadata??{},this._metadata=Object.freeze(n.metadata??{}),this._previousResult=Object.freeze(Qm.to(n.internalMetadata??{}))}static asModelAddData(t){return{EOL:t.eol,lines:t.source,languageId:t.language,uri:t.uri,isDirty:!1,versionId:1,encoding:"utf8"}}get internalMetadata(){return this._internalMetadata}get apiCell(){if(!this._apiCell){let t=this,e=this._extHostDocument.getDocument(this.uri);if(!e)throw new Error(`MISSING extHostDocument for notebook cell: ${this.uri}`);let n={get index(){return t.notebook.getCellIndex(t)},notebook:t.notebook.apiNotebook,kind:sb.to(this._cellData.cellKind),document:e.document,get mime(){return t._mime},set mime(o){t._mime=o},get outputs(){return t._outputs.slice(0)},get metadata(){return t._metadata},get executionSummary(){return t._previousResult}};this._apiCell=Object.freeze(n)}return this._apiCell}setOutputs(t){this._outputs=t.map(Ka.to)}setOutputItems(t,e,n){let o=n.map(hu.to),r=this._outputs.find(s=>s.id===t);if(r&&(e||(r.items.length=0),r.items.push(...o),r.items.length>1&&r.items.every(s=>Ex(s.mime)))){let s=new Map,a=[];r.items.forEach(l=>{let d;s.has(l.mime)?d=s.get(l.mime):(d=[],s.set(l.mime,d),a.push(l.mime)),d.push(l.data)}),r.items.length=0,a.forEach(l=>{let d=kW(s.get(l));r.items.push({mime:l,data:d.data.buffer})})}}setMetadata(t){this._metadata=Object.freeze(t)}setInternalMetadata(t){this._internalMetadata=t,this._previousResult=Object.freeze(Qm.to(t))}setMime(t){}},Lk=class i{constructor(t,e,n,o,r){this._proxy=t;this._textDocumentsAndEditors=e;this._textDocuments=n;this.uri=o;this.handle=i._handlePool++;this._cells=[];this._versionId=0;this._isDirty=!1;this._disposed=!1;this._notebookType=r.viewType,this._metadata=Object.freeze(r.metadata??Object.create(null)),this._spliceNotebookCells([[0,0,r.cells]],!0,void 0),this._versionId=r.versionId}static{this._handlePool=0}dispose(){this._disposed=!0}get versionId(){return this._versionId}get apiNotebook(){if(!this._notebook){let t=this,e={get uri(){return t.uri},get version(){return t._versionId},get notebookType(){return t._notebookType},get isDirty(){return t._isDirty},get isUntitled(){return t.uri.scheme===B.untitled},get isClosed(){return t._disposed},get metadata(){return t._metadata},get cellCount(){return t._cells.length},cellAt(n){return n=t._validateIndex(n),t._cells[n].apiCell},getCells(n){return(n?t._getCells(n):t._cells).map(r=>r.apiCell)},save(){return t._save()},[Symbol.for("debug.description")](){return`NotebookDocument(${this.uri.toString()})`}};this._notebook=Object.freeze(e)}return this._notebook}acceptDocumentPropertiesChanged(t){t.metadata&&(this._metadata=Object.freeze({...this._metadata,...t.metadata}))}acceptDirty(t){this._isDirty=t}acceptModelChanged(t,e,n){this._versionId=t.versionId,this._isDirty=e,this.acceptDocumentPropertiesChanged({metadata:n});let o={notebook:this.apiNotebook,metadata:n,cellChanges:[],contentChanges:[]},r=[];for(let a of t.rawEvents)a.kind===1?this._spliceNotebookCells(a.changes,!1,o.contentChanges):a.kind===2?this._moveCells(a.index,a.length,a.newIdx,o.contentChanges):a.kind===8?(this._setCellOutputs(a.index,a.outputs),r.push({cell:this._cells[a.index].apiCell,outputs:this._cells[a.index].apiCell.outputs})):a.kind===9?(this._setCellOutputItems(a.index,a.outputId,a.append,a.outputItems),r.push({cell:this._cells[a.index].apiCell,outputs:this._cells[a.index].apiCell.outputs})):a.kind===5?(this._changeCellLanguage(a.index,a.language),r.push({cell:this._cells[a.index].apiCell,document:this._cells[a.index].apiCell.document})):a.kind===10?r.push({cell:this._cells[a.index].apiCell,document:this._cells[a.index].apiCell.document}):a.kind===13?this._changeCellMime(a.index,a.mime):a.kind===7?(this._changeCellMetadata(a.index,a.metadata),r.push({cell:this._cells[a.index].apiCell,metadata:this._cells[a.index].apiCell.metadata})):a.kind===12&&(this._changeCellInternalMetadata(a.index,a.internalMetadata),r.push({cell:this._cells[a.index].apiCell,executionSummary:this._cells[a.index].apiCell.executionSummary}));let s=new Map;for(let a=0;a<r.length;a++){let l=r[a],d=s.get(l.cell);if(d===void 0){let c=o.cellChanges.push({document:void 0,executionSummary:void 0,metadata:void 0,outputs:void 0,...l});s.set(l.cell,c-1)}else o.cellChanges[d]={...o.cellChanges[d],...l}}return Object.freeze(o),Object.freeze(o.cellChanges),Object.freeze(o.contentChanges),o}_validateIndex(t){return t=t|0,t<0?0:t>=this._cells.length?this._cells.length-1:t}_validateRange(t){let e=t.start|0,n=t.end|0;return e<0&&(e=0),n>this._cells.length&&(n=this._cells.length),t.with({start:e,end:n})}_getCells(t){t=this._validateRange(t);let e=[];for(let n=t.start;n<t.end;n++)e.push(this._cells[n]);return e}async _save(){return this._disposed?Promise.reject(new Error("Notebook has been closed")):this._proxy.$trySaveNotebook(this.uri)}_spliceNotebookCells(t,e,n){if(this._disposed)return;let o=[],r=[],s=[];if(t.reverse().forEach(a=>{let d=a[2].map(m=>{let g=new Xf(this,this._textDocumentsAndEditors,m);return e||r.push(Xf.asModelAddData(m)),g}),c=new Ry(a[0],a[1],[],d),u=this._cells.splice(a[0],a[1],...d);for(let m of u)s.push(m.uri),c.deletedItems.push(m.apiCell);o.push(c)}),this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:r,removedDocuments:s}),n)for(let a of o)n.push(a.asApiEvent())}_moveCells(t,e,n,o){let r=this._cells.splice(t,e);this._cells.splice(n,0,...r);let s=[new Ry(t,e,r.map(a=>a.apiCell),[]),new Ry(n,0,[],r)];for(let a of s)o.push(a.asApiEvent())}_setCellOutputs(t,e){this._cells[t].setOutputs(e)}_setCellOutputItems(t,e,n,o){this._cells[t].setOutputItems(e,n,o)}_changeCellLanguage(t,e){let n=this._cells[t];n.apiCell.document.languageId!==e&&this._textDocuments.$acceptModelLanguageChanged(n.uri,e)}_changeCellMime(t,e){let n=this._cells[t];n.apiCell.mime=e}_changeCellMetadata(t,e){this._cells[t].setMetadata(e)}_changeCellInternalMetadata(t,e){this._cells[t].setInternalMetadata(e)}getCellFromApiCell(t){return this._cells.find(e=>e.apiCell===t)}getCellFromIndex(t){return this._cells[t]}getCell(t){return this._cells.find(e=>e.handle===t)}getCellIndex(t){return this._cells.indexOf(t)}};var Yu=class i{constructor(t,e,n,o,r,s,a){this.id=t;this._proxy=e;this.notebookData=n;this._visibleRanges=o;this._selections=r;this._viewColumn=s;this.viewType=a;this._visible=!1}static{this.apiEditorsToExtHost=new WeakMap}get apiEditor(){if(!this._editor){let t=this;this._editor={get notebook(){return t.notebookData.apiNotebook},get selection(){return t._selections[0]},set selection(e){this.selections=[e]},get selections(){return t._selections},set selections(e){if(!Array.isArray(e)||!e.every(co.isNotebookRange))throw Ve("selections");t._selections=e.length===0?[new co(0,0)]:e,t._trySetSelections(t._selections)},get visibleRanges(){return t._visibleRanges},revealRange(e,n){t._proxy.$tryRevealRange(t.id,Wr.from(e),n??0)},get viewColumn(){return t._viewColumn},get replOptions(){if(t.viewType==="repl")return{appendIndex:this.notebook.cellCount-1}},[Symbol.for("debug.description")](){return`NotebookEditor(${this.notebook.uri.toString()})`}},i.apiEditorsToExtHost.set(this._editor,this)}return this._editor}get visible(){return this._visible}_acceptVisibility(t){this._visible=t}_acceptVisibleRanges(t){this._visibleRanges=t}_acceptSelections(t){this._selections=t}_trySetSelections(t){this._proxy.$trySetSelections(this.id,t.map(Wr.from))}_acceptViewColumn(t){this._viewColumn=t}};var Zf=class{constructor(t,e){this.piece=t,this.color=e,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==we)return Ok(this.right);let t=this;for(;t.parent!==we&&t.parent.left!==t;)t=t.parent;return t.parent===we?we:t.parent}prev(){if(this.left!==we)return $O(this.left);let t=this;for(;t.parent!==we&&t.parent.right!==t;)t=t.parent;return t.parent===we?we:t.parent}detach(){this.parent=null,this.left=null,this.right=null}};var we=new Zf(null,0);we.parent=we;we.left=we;we.right=we;we.color=0;function Ok(i){for(;i.left!==we;)i=i.left;return i}function $O(i){for(;i.right!==we;)i=i.right;return i}function zO(i){return i===we?0:i.size_left+i.piece.length+zO(i.right)}function qO(i){return i===we?0:i.lf_left+i.piece.lineFeedCnt+qO(i.right)}function BO(){we.parent=we}function My(i,t){let e=t.right;e.size_left+=t.size_left+(t.piece?t.piece.length:0),e.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=e.left,e.left!==we&&(e.left.parent=t),e.parent=t.parent,t.parent===we?i.root=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}function Ly(i,t){let e=t.left;t.left=e.right,e.right!==we&&(e.right.parent=t),e.parent=t.parent,t.size_left-=e.size_left+(e.piece?e.piece.length:0),t.lf_left-=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),t.parent===we?i.root=e:t===t.parent.right?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}function Oy(i,t){let e,n;if(t.left===we?(n=t,e=n.right):t.right===we?(n=t,e=n.left):(n=Ok(t.right),e=n.right),n===i.root){i.root=e,e.color=0,t.detach(),BO(),i.root.parent=we;return}let o=n.color===1;if(n===n.parent.left?n.parent.left=e:n.parent.right=e,n===t?(e.parent=n.parent,Ay(i,e)):(n.parent===t?e.parent=n:e.parent=n.parent,Ay(i,e),n.left=t.left,n.right=t.right,n.parent=t.parent,n.color=t.color,t===i.root?i.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==we&&(n.left.parent=n),n.right!==we&&(n.right.parent=n),n.size_left=t.size_left,n.lf_left=t.lf_left,Ay(i,n)),t.detach(),e.parent.left===e){let s=zO(e),a=qO(e);if(s!==e.parent.size_left||a!==e.parent.lf_left){let l=s-e.parent.size_left,d=a-e.parent.lf_left;e.parent.size_left=s,e.parent.lf_left=a,Ks(i,e.parent,l,d)}}if(Ay(i,e.parent),o){BO();return}let r;for(;e!==i.root&&e.color===0;)e===e.parent.left?(r=e.parent.right,r.color===1&&(r.color=0,e.parent.color=1,My(i,e.parent),r=e.parent.right),r.left.color===0&&r.right.color===0?(r.color=1,e=e.parent):(r.right.color===0&&(r.left.color=0,r.color=1,Ly(i,r),r=e.parent.right),r.color=e.parent.color,e.parent.color=0,r.right.color=0,My(i,e.parent),e=i.root)):(r=e.parent.left,r.color===1&&(r.color=0,e.parent.color=1,Ly(i,e.parent),r=e.parent.left),r.left.color===0&&r.right.color===0?(r.color=1,e=e.parent):(r.left.color===0&&(r.right.color=0,r.color=1,My(i,r),r=e.parent.left),r.color=e.parent.color,e.parent.color=0,r.left.color=0,Ly(i,e.parent),e=i.root));e.color=0,BO()}function KO(i,t){for(Ay(i,t);t!==i.root&&t.parent.color===1;)if(t.parent===t.parent.parent.left){let e=t.parent.parent.right;e.color===1?(t.parent.color=0,e.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&(t=t.parent,My(i,t)),t.parent.color=0,t.parent.parent.color=1,Ly(i,t.parent.parent))}else{let e=t.parent.parent.left;e.color===1?(t.parent.color=0,e.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&(t=t.parent,Ly(i,t)),t.parent.color=0,t.parent.parent.color=1,My(i,t.parent.parent))}i.root.color=0}function Ks(i,t,e,n){for(;t!==i.root&&t!==we;)t.parent.left===t&&(t.parent.size_left+=e,t.parent.lf_left+=n),t=t.parent}function Ay(i,t){let e=0,n=0;if(t!==i.root){for(;t!==i.root&&t===t.parent.right;)t=t.parent;if(t!==i.root)for(t=t.parent,e=zO(t.left)-t.size_left,n=qO(t.left)-t.lf_left,t.size_left+=e,t.lf_left+=n;t!==i.root&&(e!==0||n!==0);)t.parent.left===t&&(t.parent.size_left+=e,t.parent.lf_left+=n),t=t.parent}}var ol=65535;function a$(i){let t;return i[i.length-1]<65536?t=new Uint16Array(i.length):t=new Uint32Array(i.length),t.set(i,0),t}var jO=class{constructor(t,e,n,o,r){this.lineStarts=t;this.cr=e;this.lf=n;this.crlf=o;this.isBasicASCII=r}};function js(i,t=!0){let e=[0],n=1;for(let o=0,r=i.length;o<r;o++){let s=i.charCodeAt(o);s===13?o+1<r&&i.charCodeAt(o+1)===10?(e[n++]=o+2,o++):e[n++]=o+1:s===10&&(e[n++]=o+1)}return t?a$(e):e}function l$(i,t){i.length=0,i[0]=0;let e=1,n=0,o=0,r=0,s=!0;for(let l=0,d=t.length;l<d;l++){let c=t.charCodeAt(l);c===13?l+1<d&&t.charCodeAt(l+1)===10?(r++,i[e++]=l+2,l++):(n++,i[e++]=l+1):c===10?(o++,i[e++]=l+1):s&&c!==9&&(c<32||c>126)&&(s=!1)}let a=new jO(a$(i),n,o,r,s);return i.length=0,a}var Mo=class{constructor(t,e,n,o,r){this.bufferIndex=t,this.start=e,this.end=n,this.lineFeedCnt=o,this.length=r}},Gs=class{constructor(t,e){this.buffer=t,this.lineStarts=e}},GO=class{constructor(t,e){this._pieces=[],this._tree=t,this._BOM=e,this._index=0,t.root!==we&&t.iterate(t.root,n=>(n!==we&&this._pieces.push(n.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}},QO=class{constructor(t){this._limit=t,this._cache=[]}get(t){for(let e=this._cache.length-1;e>=0;e--){let n=this._cache[e];if(n.nodeStartOffset<=t&&n.nodeStartOffset+n.node.piece.length>=t)return n}return null}get2(t){for(let e=this._cache.length-1;e>=0;e--){let n=this._cache[e];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<t&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=t)return n}return null}set(t){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(t)}validate(t){let e=!1,n=this._cache;for(let o=0;o<n.length;o++){let r=n[o];if(r.node.parent===null||r.nodeStartOffset>=t){n[o]=null,e=!0;continue}}if(e){let o=[];for(let r of n)r!==null&&o.push(r);this._cache=o}}},Nk=class{constructor(t,e,n){this.create(t,e,n)}create(t,e,n){this._buffers=[new Gs("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=we,this._lineCnt=1,this._length=0,this._EOL=e,this._EOLLength=e.length,this._EOLNormalized=n;let o=null;for(let r=0,s=t.length;r<s;r++)if(t[r].buffer.length>0){t[r].lineStarts||(t[r].lineStarts=js(t[r].buffer));let a=new Mo(r+1,{line:0,column:0},{line:t[r].lineStarts.length-1,column:t[r].buffer.length-t[r].lineStarts[t[r].lineStarts.length-1]},t[r].lineStarts.length-1,t[r].buffer.length);this._buffers.push(t[r]),o=this.rbInsertRight(o,a)}this._searchCache=new QO(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(t){let e=ol,n=e-Math.floor(e/3),o=n*2,r="",s=0,a=[];if(this.iterate(this.root,l=>{let d=this.getNodeContent(l),c=d.length;if(s<=n||s+c<o)return r+=d,s+=c,!0;let u=r.replace(/\r\n|\r|\n/g,t);return a.push(new Gs(u,js(u))),r=d,s=c,!0}),s>0){let l=r.replace(/\r\n|\r|\n/g,t);a.push(new Gs(l,js(l)))}this.create(a,t,!0)}getEOL(){return this._EOL}setEOL(t){this._EOL=t,this._EOLLength=this._EOL.length,this.normalizeEOL(t)}createSnapshot(t){return new GO(this,t)}equal(t){if(this.getLength()!==t.getLength()||this.getLineCount()!==t.getLineCount())return!1;let e=0;return this.iterate(this.root,o=>{if(o===we)return!0;let r=this.getNodeContent(o),s=r.length,a=t.nodeAt(e),l=t.nodeAt(e+s),d=t.getValueInRange2(a,l);return e+=s,r===d})}getOffsetAt(t,e){let n=0,o=this.root;for(;o!==we;)if(o.left!==we&&o.lf_left+1>=t)o=o.left;else if(o.lf_left+o.piece.lineFeedCnt+1>=t){n+=o.size_left;let r=this.getAccumulatedValue(o,t-o.lf_left-2);return n+=r+e-1}else t-=o.lf_left+o.piece.lineFeedCnt,n+=o.size_left+o.piece.length,o=o.right;return n}getPositionAt(t){t=Math.floor(t),t=Math.max(0,t);let e=this.root,n=0,o=t;for(;e!==we;)if(e.size_left!==0&&e.size_left>=t)e=e.left;else if(e.size_left+e.piece.length>=t){let r=this.getIndexOf(e,t-e.size_left);if(n+=e.lf_left+r.index,r.index===0){let s=this.getOffsetAt(n+1,1),a=o-s;return new On(n+1,a+1)}return new On(n+1,r.remainder+1)}else if(t-=e.size_left+e.piece.length,n+=e.lf_left+e.piece.lineFeedCnt,e.right===we){let r=this.getOffsetAt(n+1,1),s=o-t-r;return new On(n+1,s+1)}else e=e.right;return new On(1,1)}getValueInRange(t,e){if(t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn)return"";let n=this.nodeAt2(t.startLineNumber,t.startColumn),o=this.nodeAt2(t.endLineNumber,t.endColumn),r=this.getValueInRange2(n,o);return e?e!==this._EOL||!this._EOLNormalized?r.replace(/\r\n|\r|\n/g,e):e===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,e):r}getValueInRange2(t,e){if(t.node===e.node){let a=t.node,l=this._buffers[a.piece.bufferIndex].buffer,d=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(d+t.remainder,d+e.remainder)}let n=t.node,o=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),s=o.substring(r+t.remainder,r+n.piece.length);for(n=n.next();n!==we;){let a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(n===e.node){s+=a.substring(l,l+e.remainder);break}else s+=a.substr(l,n.piece.length);n=n.next()}return s}getLinesContent(){let t=[],e=0,n="",o=!1;return this.iterate(this.root,r=>{if(r===we)return!0;let s=r.piece,a=s.length;if(a===0)return!0;let l=this._buffers[s.bufferIndex].buffer,d=this._buffers[s.bufferIndex].lineStarts,c=s.start.line,u=s.end.line,m=d[c]+s.start.column;if(o&&(l.charCodeAt(m)===10&&(m++,a--),t[e++]=n,n="",o=!1,a===0))return!0;if(c===u)return!this._EOLNormalized&&l.charCodeAt(m+a-1)===13?(o=!0,n+=l.substr(m,a-1)):n+=l.substr(m,a),!0;n+=this._EOLNormalized?l.substring(m,Math.max(m,d[c+1]-this._EOLLength)):l.substring(m,d[c+1]).replace(/(\r\n|\r|\n)$/,""),t[e++]=n;for(let g=c+1;g<u;g++)n=this._EOLNormalized?l.substring(d[g],d[g+1]-this._EOLLength):l.substring(d[g],d[g+1]).replace(/(\r\n|\r|\n)$/,""),t[e++]=n;return!this._EOLNormalized&&l.charCodeAt(d[u]+s.end.column-1)===13?(o=!0,s.end.column===0?e--:n=l.substr(d[u],s.end.column-1)):n=l.substr(d[u],s.end.column),!0}),o&&(t[e++]=n,n=""),t[e++]=n,t}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(t){return this._lastVisitedLine.lineNumber===t?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=t,t===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(t):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(t,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(t).replace(/(\r\n|\r|\n)$/,""),this._lastVisitedLine.value)}_getCharCode(t){if(t.remainder===t.node.piece.length){let e=t.node.next();if(!e)return 0;let n=this._buffers[e.piece.bufferIndex],o=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start);return n.buffer.charCodeAt(o)}else{let e=this._buffers[t.node.piece.bufferIndex],o=this.offsetInBuffer(t.node.piece.bufferIndex,t.node.piece.start)+t.remainder;return e.buffer.charCodeAt(o)}}getLineCharCode(t,e){let n=this.nodeAt2(t,e+1);return this._getCharCode(n)}getLineLength(t){if(t===this.getLineCount()){let e=this.getOffsetAt(t,1);return this.getLength()-e}return this.getOffsetAt(t+1,1)-this.getOffsetAt(t,1)-this._EOLLength}getCharCode(t){let e=this.nodeAt(t);return this._getCharCode(e)}getNearestChunk(t){let e=this.nodeAt(t);if(e.remainder===e.node.piece.length){let n=e.node.next();if(!n||n===we)return"";let o=this._buffers[n.piece.bufferIndex],r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return o.buffer.substring(r,r+n.piece.length)}else{let n=this._buffers[e.node.piece.bufferIndex],o=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start),r=o+e.remainder,s=o+e.node.piece.length;return n.buffer.substring(r,s)}}findMatchesInNode(t,e,n,o,r,s,a,l,d,c,u){let m=this._buffers[t.piece.bufferIndex],g=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start),h=this.offsetInBuffer(t.piece.bufferIndex,r),f=this.offsetInBuffer(t.piece.bufferIndex,s),I,x={line:0,column:0},T,w;e._wordSeparators?(T=m.buffer.substring(h,f),w=M=>M+h,e.reset(0)):(T=m.buffer,w=M=>M,e.reset(h));do if(I=e.next(T),I){if(w(I.index)>=f)return c;this.positionInBuffer(t,w(I.index)-g,x);let M=this.getLineFeedCnt(t.piece.bufferIndex,r,x),O=x.line===r.line?x.column-r.column+o:x.column+1,N=O+I[0].length;if(u[c++]=P0(new We(n+M,O,n+M,N),I,l),w(I.index)+I[0].length>=f||c>=d)return c}while(I);return c}findMatchesLineByLine(t,e,n,o){let r=[],s=0,a=new iE(e.wordSeparators,e.regex),l=this.nodeAt2(t.startLineNumber,t.startColumn);if(l===null)return[];let d=this.nodeAt2(t.endLineNumber,t.endColumn);if(d===null)return[];let c=this.positionInBuffer(l.node,l.remainder),u=this.positionInBuffer(d.node,d.remainder);if(l.node===d.node)return this.findMatchesInNode(l.node,a,t.startLineNumber,t.startColumn,c,u,e,n,o,s,r),r;let m=t.startLineNumber,g=l.node;for(;g!==d.node;){let f=this.getLineFeedCnt(g.piece.bufferIndex,c,g.piece.end);if(f>=1){let x=this._buffers[g.piece.bufferIndex].lineStarts,T=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),w=x[c.line+f],M=m===t.startLineNumber?t.startColumn:1;if(s=this.findMatchesInNode(g,a,m,M,c,this.positionInBuffer(g,w-T),e,n,o,s,r),s>=o)return r;m+=f}let I=m===t.startLineNumber?t.startColumn-1:0;if(m===t.endLineNumber){let x=this.getLineContent(m).substring(I,t.endColumn-1);return s=this._findMatchesInLine(e,a,x,t.endLineNumber,I,s,r,n,o),r}if(s=this._findMatchesInLine(e,a,this.getLineContent(m).substr(I),m,I,s,r,n,o),s>=o)return r;m++,l=this.nodeAt2(m,1),g=l.node,c=this.positionInBuffer(l.node,l.remainder)}if(m===t.endLineNumber){let f=m===t.startLineNumber?t.startColumn-1:0,I=this.getLineContent(m).substring(f,t.endColumn-1);return s=this._findMatchesInLine(e,a,I,t.endLineNumber,f,s,r,n,o),r}let h=m===t.startLineNumber?t.startColumn:1;return s=this.findMatchesInNode(d.node,a,m,h,c,u,e,n,o,s,r),r}_findMatchesInLine(t,e,n,o,r,s,a,l,d){let c=t.wordSeparators;if(!l&&t.simpleSearch){let m=t.simpleSearch,g=m.length,h=n.length,f=-g;for(;(f=n.indexOf(m,f+g))!==-1;)if((!c||_0(c,n,h,f,g))&&(a[s++]=new Ac(new We(o,f+1+r,o,f+1+g+r),null),s>=d))return s;return s}let u;e.reset(0);do if(u=e.next(n),u&&(a[s++]=P0(new We(o,u.index+1+r,o,u.index+1+u[0].length+r),u,l),s>=d))return s;while(u);return s}insert(t,e,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==we){let{node:o,remainder:r,nodeStartOffset:s}=this.nodeAt(t),a=o.piece,l=a.bufferIndex,d=this.positionInBuffer(o,r);if(o.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&s+a.length===t&&e.length<ol){this.appendToNode(o,e),this.computeBufferMetadata();return}if(s===t)this.insertContentToNodeLeft(e,o),this._searchCache.validate(t);else if(s+o.piece.length>t){let c=[],u=new Mo(a.bufferIndex,d,a.end,this.getLineFeedCnt(a.bufferIndex,d,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,d));if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.nodeCharCodeAt(o,r)===10){let f={line:u.start.line+1,column:0};u=new Mo(u.bufferIndex,f,u.end,this.getLineFeedCnt(u.bufferIndex,f,u.end),u.length-1),e+=`
`}if(this.shouldCheckCRLF()&&this.startWithLF(e))if(this.nodeCharCodeAt(o,r-1)===13){let f=this.positionInBuffer(o,r-1);this.deleteNodeTail(o,f),e="\r"+e,o.piece.length===0&&c.push(o)}else this.deleteNodeTail(o,d);else this.deleteNodeTail(o,d);let m=this.createNewPieces(e);u.length>0&&this.rbInsertRight(o,u);let g=o;for(let h=0;h<m.length;h++)g=this.rbInsertRight(g,m[h]);this.deleteNodes(c)}else this.insertContentToNodeRight(e,o)}else{let o=this.createNewPieces(e),r=this.rbInsertLeft(null,o[0]);for(let s=1;s<o.length;s++)r=this.rbInsertRight(r,o[s])}this.computeBufferMetadata()}delete(t,e){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",e<=0||this.root===we)return;let n=this.nodeAt(t),o=this.nodeAt(t+e),r=n.node,s=o.node;if(r===s){let m=this.positionInBuffer(r,n.remainder),g=this.positionInBuffer(r,o.remainder);if(n.nodeStartOffset===t){if(e===r.piece.length){let h=r.next();Oy(this,r),this.validateCRLFWithPrevNode(h),this.computeBufferMetadata();return}this.deleteNodeHead(r,g),this._searchCache.validate(t),this.validateCRLFWithPrevNode(r),this.computeBufferMetadata();return}if(n.nodeStartOffset+r.piece.length===t+e){this.deleteNodeTail(r,m),this.validateCRLFWithNextNode(r),this.computeBufferMetadata();return}this.shrinkNode(r,m,g),this.computeBufferMetadata();return}let a=[],l=this.positionInBuffer(r,n.remainder);this.deleteNodeTail(r,l),this._searchCache.validate(t),r.piece.length===0&&a.push(r);let d=this.positionInBuffer(s,o.remainder);this.deleteNodeHead(s,d),s.piece.length===0&&a.push(s);let c=r.next();for(let m=c;m!==we&&m!==s;m=m.next())a.push(m);let u=r.piece.length===0?r.prev():r;this.deleteNodes(a),this.validateCRLFWithNextNode(u),this.computeBufferMetadata()}insertContentToNodeLeft(t,e){let n=[];if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.startWithLF(e)){let s=e.piece,a={line:s.start.line+1,column:0},l=new Mo(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),s.length-1);e.piece=l,t+=`
`,Ks(this,e,-1,-1),e.piece.length===0&&n.push(e)}let o=this.createNewPieces(t),r=this.rbInsertLeft(e,o[o.length-1]);for(let s=o.length-2;s>=0;s--)r=this.rbInsertLeft(r,o[s]);this.validateCRLFWithPrevNode(r),this.deleteNodes(n)}insertContentToNodeRight(t,e){this.adjustCarriageReturnFromNext(t,e)&&(t+=`
`);let n=this.createNewPieces(t),o=this.rbInsertRight(e,n[0]),r=o;for(let s=1;s<n.length;s++)r=this.rbInsertRight(r,n[s]);this.validateCRLFWithPrevNode(o)}positionInBuffer(t,e,n){let o=t.piece,r=t.piece.bufferIndex,s=this._buffers[r].lineStarts,l=s[o.start.line]+o.start.column+e,d=o.start.line,c=o.end.line,u=0,m=0,g=0;for(;d<=c&&(u=d+(c-d)/2|0,g=s[u],u!==c);)if(m=s[u+1],l<g)c=u-1;else if(l>=m)d=u+1;else break;return n?(n.line=u,n.column=l-g,null):{line:u,column:l-g}}getLineFeedCnt(t,e,n){if(n.column===0)return n.line-e.line;let o=this._buffers[t].lineStarts;if(n.line===o.length-1)return n.line-e.line;let r=o[n.line+1],s=o[n.line]+n.column;if(r>s+1)return n.line-e.line;let a=s-1;return this._buffers[t].buffer.charCodeAt(a)===13?n.line-e.line+1:n.line-e.line}offsetInBuffer(t,e){return this._buffers[t].lineStarts[e.line]+e.column}deleteNodes(t){for(let e=0;e<t.length;e++)Oy(this,t[e])}createNewPieces(t){if(t.length>ol){let c=[];for(;t.length>ol;){let m=t.charCodeAt(ol-1),g;m===13||m>=55296&&m<=56319?(g=t.substring(0,ol-1),t=t.substring(ol-1)):(g=t.substring(0,ol),t=t.substring(ol));let h=js(g);c.push(new Mo(this._buffers.length,{line:0,column:0},{line:h.length-1,column:g.length-h[h.length-1]},h.length-1,g.length)),this._buffers.push(new Gs(g,h))}let u=js(t);return c.push(new Mo(this._buffers.length,{line:0,column:0},{line:u.length-1,column:t.length-u[u.length-1]},u.length-1,t.length)),this._buffers.push(new Gs(t,u)),c}let e=this._buffers[0].buffer.length,n=js(t,!1),o=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===e&&e!==0&&this.startWithLF(t)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},o=this._lastChangeBufferPos;for(let c=0;c<n.length;c++)n[c]+=e+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+="_"+t,e+=1}else{if(e!==0)for(let c=0;c<n.length;c++)n[c]+=e;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+=t}let r=this._buffers[0].buffer.length,s=this._buffers[0].lineStarts.length-1,a=r-this._buffers[0].lineStarts[s],l={line:s,column:a},d=new Mo(0,o,l,this.getLineFeedCnt(0,o,l),r-e);return this._lastChangeBufferPos=l,[d]}getLinesRawContent(){return this.getContentOfSubTree(this.root)}getLineRawContent(t,e=0){let n=this.root,o="",r=this._searchCache.get2(t);if(r){n=r.node;let s=this.getAccumulatedValue(n,t-r.nodeStartLineNumber-1),a=this._buffers[n.piece.bufferIndex].buffer,l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(r.nodeStartLineNumber+n.piece.lineFeedCnt===t)o=a.substring(l+s,l+n.piece.length);else{let d=this.getAccumulatedValue(n,t-r.nodeStartLineNumber);return a.substring(l+s,l+d-e)}}else{let s=0,a=t;for(;n!==we;)if(n.left!==we&&n.lf_left>=t-1)n=n.left;else if(n.lf_left+n.piece.lineFeedCnt>t-1){let l=this.getAccumulatedValue(n,t-n.lf_left-2),d=this.getAccumulatedValue(n,t-n.lf_left-1),c=this._buffers[n.piece.bufferIndex].buffer,u=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return s+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:s,nodeStartLineNumber:a-(t-1-n.lf_left)}),c.substring(u+l,u+d-e)}else if(n.lf_left+n.piece.lineFeedCnt===t-1){let l=this.getAccumulatedValue(n,t-n.lf_left-2),d=this._buffers[n.piece.bufferIndex].buffer,c=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);o=d.substring(c+l,c+n.piece.length);break}else t-=n.lf_left+n.piece.lineFeedCnt,s+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==we;){let s=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){let a=this.getAccumulatedValue(n,0),l=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return o+=s.substring(l,l+a-e),o}else{let a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);o+=s.substr(a,n.piece.length)}n=n.next()}return o}computeBufferMetadata(){let t=this.root,e=1,n=0;for(;t!==we;)e+=t.lf_left+t.piece.lineFeedCnt,n+=t.size_left+t.piece.length,t=t.right;this._lineCnt=e,this._length=n,this._searchCache.validate(this._length)}getIndexOf(t,e){let n=t.piece,o=this.positionInBuffer(t,e),r=o.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===e){let s=this.getLineFeedCnt(t.piece.bufferIndex,n.start,o);if(s!==r)return{index:s,remainder:0}}return{index:r,remainder:o.column}}getAccumulatedValue(t,e){if(e<0)return 0;let n=t.piece,o=this._buffers[n.bufferIndex].lineStarts,r=n.start.line+e+1;return r>n.end.line?o[n.end.line]+n.end.column-o[n.start.line]-n.start.column:o[r]-o[n.start.line]-n.start.column}deleteNodeTail(t,e){let n=t.piece,o=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.end),s=e,a=this.offsetInBuffer(n.bufferIndex,s),l=this.getLineFeedCnt(n.bufferIndex,n.start,s),d=l-o,c=a-r,u=n.length+c;t.piece=new Mo(n.bufferIndex,n.start,s,l,u),Ks(this,t,c,d)}deleteNodeHead(t,e){let n=t.piece,o=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.start),s=e,a=this.getLineFeedCnt(n.bufferIndex,s,n.end),l=this.offsetInBuffer(n.bufferIndex,s),d=a-o,c=r-l,u=n.length+c;t.piece=new Mo(n.bufferIndex,s,n.end,a,u),Ks(this,t,c,d)}shrinkNode(t,e,n){let o=t.piece,r=o.start,s=o.end,a=o.length,l=o.lineFeedCnt,d=e,c=this.getLineFeedCnt(o.bufferIndex,o.start,d),u=this.offsetInBuffer(o.bufferIndex,e)-this.offsetInBuffer(o.bufferIndex,r);t.piece=new Mo(o.bufferIndex,o.start,d,c,u),Ks(this,t,u-a,c-l);let m=new Mo(o.bufferIndex,n,s,this.getLineFeedCnt(o.bufferIndex,n,s),this.offsetInBuffer(o.bufferIndex,s)-this.offsetInBuffer(o.bufferIndex,n)),g=this.rbInsertRight(t,m);this.validateCRLFWithPrevNode(g)}appendToNode(t,e){this.adjustCarriageReturnFromNext(e,t)&&(e+=`
`);let n=this.shouldCheckCRLF()&&this.startWithLF(e)&&this.endWithCR(t),o=this._buffers[0].buffer.length;this._buffers[0].buffer+=e;let r=js(e,!1);for(let g=0;g<r.length;g++)r[g]+=o;if(n){let g=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:o-g}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));let s=this._buffers[0].lineStarts.length-1,a=this._buffers[0].buffer.length-this._buffers[0].lineStarts[s],l={line:s,column:a},d=t.piece.length+e.length,c=t.piece.lineFeedCnt,u=this.getLineFeedCnt(0,t.piece.start,l),m=u-c;t.piece=new Mo(t.piece.bufferIndex,t.piece.start,l,u,d),this._lastChangeBufferPos=l,Ks(this,t,e.length,m)}nodeAt(t){let e=this.root,n=this._searchCache.get(t);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:t-n.nodeStartOffset};let o=0;for(;e!==we;)if(e.size_left>t)e=e.left;else if(e.size_left+e.piece.length>=t){o+=e.size_left;let r={node:e,remainder:t-e.size_left,nodeStartOffset:o};return this._searchCache.set(r),r}else t-=e.size_left+e.piece.length,o+=e.size_left+e.piece.length,e=e.right;return null}nodeAt2(t,e){let n=this.root,o=0;for(;n!==we;)if(n.left!==we&&n.lf_left>=t-1)n=n.left;else if(n.lf_left+n.piece.lineFeedCnt>t-1){let r=this.getAccumulatedValue(n,t-n.lf_left-2),s=this.getAccumulatedValue(n,t-n.lf_left-1);return o+=n.size_left,{node:n,remainder:Math.min(r+e-1,s),nodeStartOffset:o}}else if(n.lf_left+n.piece.lineFeedCnt===t-1){let r=this.getAccumulatedValue(n,t-n.lf_left-2);if(r+e-1<=n.piece.length)return{node:n,remainder:r+e-1,nodeStartOffset:o};e-=n.piece.length-r;break}else t-=n.lf_left+n.piece.lineFeedCnt,o+=n.size_left+n.piece.length,n=n.right;for(n=n.next();n!==we;){if(n.piece.lineFeedCnt>0){let r=this.getAccumulatedValue(n,0),s=this.offsetOfNode(n);return{node:n,remainder:Math.min(e-1,r),nodeStartOffset:s}}else if(n.piece.length>=e-1){let r=this.offsetOfNode(n);return{node:n,remainder:e-1,nodeStartOffset:r}}else e-=n.piece.length;n=n.next()}return null}nodeCharCodeAt(t,e){if(t.piece.lineFeedCnt<1)return-1;let n=this._buffers[t.piece.bufferIndex],o=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start)+e;return n.buffer.charCodeAt(o)}offsetOfNode(t){if(!t)return 0;let e=t.size_left;for(;t!==this.root;)t.parent.right===t&&(e+=t.parent.size_left+t.parent.piece.length),t=t.parent;return e}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===`
`)}startWithLF(t){if(typeof t=="string")return t.charCodeAt(0)===10;if(t===we||t.piece.lineFeedCnt===0)return!1;let e=t.piece,n=this._buffers[e.bufferIndex].lineStarts,o=e.start.line,r=n[o]+e.start.column;return o===n.length-1||n[o+1]>r+1?!1:this._buffers[e.bufferIndex].buffer.charCodeAt(r)===10}endWithCR(t){return typeof t=="string"?t.charCodeAt(t.length-1)===13:t===we||t.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(t,t.piece.length-1)===13}validateCRLFWithPrevNode(t){if(this.shouldCheckCRLF()&&this.startWithLF(t)){let e=t.prev();this.endWithCR(e)&&this.fixCRLF(e,t)}}validateCRLFWithNextNode(t){if(this.shouldCheckCRLF()&&this.endWithCR(t)){let e=t.next();this.startWithLF(e)&&this.fixCRLF(t,e)}}fixCRLF(t,e){let n=[],o=this._buffers[t.piece.bufferIndex].lineStarts,r;t.piece.end.column===0?r={line:t.piece.end.line-1,column:o[t.piece.end.line]-o[t.piece.end.line-1]-1}:r={line:t.piece.end.line,column:t.piece.end.column-1};let s=t.piece.length-1,a=t.piece.lineFeedCnt-1;t.piece=new Mo(t.piece.bufferIndex,t.piece.start,r,a,s),Ks(this,t,-1,-1),t.piece.length===0&&n.push(t);let l={line:e.piece.start.line+1,column:0},d=e.piece.length-1,c=this.getLineFeedCnt(e.piece.bufferIndex,l,e.piece.end);e.piece=new Mo(e.piece.bufferIndex,l,e.piece.end,c,d),Ks(this,e,-1,-1),e.piece.length===0&&n.push(e);let u=this.createNewPieces(`\r
`);this.rbInsertRight(t,u[0]);for(let m=0;m<n.length;m++)Oy(this,n[m])}adjustCarriageReturnFromNext(t,e){if(this.shouldCheckCRLF()&&this.endWithCR(t)){let n=e.next();if(this.startWithLF(n)){if(t+=`
`,n.piece.length===1)Oy(this,n);else{let o=n.piece,r={line:o.start.line+1,column:0},s=o.length-1,a=this.getLineFeedCnt(o.bufferIndex,r,o.end);n.piece=new Mo(o.bufferIndex,r,o.end,a,s),Ks(this,n,-1,-1)}return!0}}return!1}iterate(t,e){if(t===we)return e(we);let n=this.iterate(t.left,e);return n&&e(t)&&this.iterate(t.right,e)}getNodeContent(t){if(t===we)return"";let e=this._buffers[t.piece.bufferIndex],n=t.piece,o=this.offsetInBuffer(n.bufferIndex,n.start),r=this.offsetInBuffer(n.bufferIndex,n.end);return e.buffer.substring(o,r)}getPieceContent(t){let e=this._buffers[t.bufferIndex],n=this.offsetInBuffer(t.bufferIndex,t.start),o=this.offsetInBuffer(t.bufferIndex,t.end);return e.buffer.substring(n,o)}rbInsertRight(t,e){let n=new Zf(e,1);if(n.left=we,n.right=we,n.parent=we,n.size_left=0,n.lf_left=0,this.root===we)this.root=n,n.color=0;else if(t.right===we)t.right=n,n.parent=t;else{let r=Ok(t.right);r.left=n,n.parent=r}return KO(this,n),n}rbInsertLeft(t,e){let n=new Zf(e,1);if(n.left=we,n.right=we,n.parent=we,n.size_left=0,n.lf_left=0,this.root===we)this.root=n,n.color=0;else if(t.left===we)t.left=n,n.parent=t;else{let o=$O(t.left);o.right=n,n.parent=o}return KO(this,n),n}getContentOfSubTree(t){let e="";return this.iterate(t,n=>(e+=this.getNodeContent(n),!0)),e}};function Uk(i){let t=0,e=0,n=0,o=0;for(let r=0,s=i.length;r<s;r++){let a=i.charCodeAt(r);a===13?(t===0&&(e=r),t++,r+1<s&&i.charCodeAt(r+1)===10?(o|=2,r++):o|=3,n=r+1):a===10&&(o|=1,t===0&&(e=r),t++,n=r+1)}return t===0&&(e=i.length),[t,e,i.length-n,o]}var JO;function IJ(){return JO||(JO=new TextDecoder("UTF-16LE")),JO}function d$(i,t,e){let n=new Uint16Array(i.buffer,t,e);return e>0&&(n[0]===65279||n[0]===65534)?xJ(i,t,e):IJ().decode(n)}function xJ(i,t,e){let n=[],o=0;for(let r=0;r<e;r++){let s=NF(i,t);t+=2,n[o++]=String.fromCharCode(s)}return n.join("")}function Fk(i){return i.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var Hk=class i{constructor(t,e,n,o){this.oldPosition=t;this.oldText=e;this.newPosition=n;this.newText=o}get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${Fk(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${Fk(this.oldText)}")`:`(replace@${this.oldPosition} "${Fk(this.oldText)}" with "${Fk(this.newText)}")`}static _writeStringSize(t){return 4+2*t.length}static _writeString(t,e,n){let o=e.length;Kh(t,o,n),n+=4;for(let r=0;r<o;r++)UF(t,e.charCodeAt(r),n),n+=2;return n}static _readString(t,e){let n=qh(t,e);return e+=4,d$(t,e,n)}writeSize(){return 8+i._writeStringSize(this.oldText)+i._writeStringSize(this.newText)}write(t,e){return Kh(t,this.oldPosition,e),e+=4,Kh(t,this.newPosition,e),e+=4,e=i._writeString(t,this.oldText,e),e=i._writeString(t,this.newText,e),e}static read(t,e,n){let o=qh(t,e);e+=4;let r=qh(t,e);e+=4;let s=i._readString(t,e);e+=i._writeStringSize(s);let a=i._readString(t,e);return e+=i._writeStringSize(a),n.push(new i(o,s,r,a)),e}};var Vk=class i extends U{constructor(e,n,o,r,s,a,l){super();this._onDidChangeContent=this._register(new E);this._BOM=n,this._mightContainNonBasicASCII=!a,this._mightContainRTL=r,this._mightContainUnusualLineTerminators=s,this._pieceTree=new Nk(e,o,l)}get onDidChangeContent(){return this._onDidChangeContent.event}equals(e){return!(e instanceof i)||this._BOM!==e._BOM||this.getEOL()!==e.getEOL()?!1:this._pieceTree.equal(e._pieceTree)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}getOffsetAt(e,n){return this._pieceTree.getOffsetAt(e,n)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,n){let o=e+n,r=this.getPositionAt(e),s=this.getPositionAt(o);return new We(r.lineNumber,r.column,s.lineNumber,s.column)}getValueInRange(e,n=0){if(e.isEmpty())return"";let o=this._getEndOfLine(n);return this._pieceTree.getValueInRange(e,o)}getValueLengthInRange(e,n=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;let o=this.getOffsetAt(e.startLineNumber,e.startColumn),r=this.getOffsetAt(e.endLineNumber,e.endColumn),s=0,a=this._getEndOfLine(n),l=this.getEOL();if(a.length!==l.length){let d=a.length-l.length,c=e.endLineNumber-e.startLineNumber;s=d*c}return r-o+s}getCharacterCountInRange(e,n=0){if(this._mightContainNonBasicASCII){let o=0,r=e.startLineNumber,s=e.endLineNumber;for(let a=r;a<=s;a++){let l=this.getLineContent(a),d=a===r?e.startColumn-1:0,c=a===s?e.endColumn-1:l.length;for(let u=d;u<c;u++)mc(l.charCodeAt(u))?(o=o+1,u=u+1):o=o+1}return o+=this._getEndOfLine(n).length*(s-r),o}return this.getValueLengthInRange(e,n)}getNearestChunk(e){return this._pieceTree.getNearestChunk(e)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,n){return this._pieceTree.getLineCharCode(e,n)}getCharCode(e){return this._pieceTree.getCharCode(e)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineMinColumn(e){return 1}getLineMaxColumn(e){return this.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){let n=EI(this.getLineContent(e));return n===-1?0:n+1}getLineLastNonWhitespaceColumn(e){let n=nF(this.getLineContent(e));return n===-1?0:n+2}_getEndOfLine(e){switch(e){case 1:return`
`;case 2:return`\r
`;case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,n,o){let r=this._mightContainRTL,s=this._mightContainUnusualLineTerminators,a=this._mightContainNonBasicASCII,l=!0,d=[];for(let I=0;I<e.length;I++){let x=e[I];l&&x._isTracked&&(l=!1);let T=x.range;if(x.text){let $=!0;a||($=!iF(x.text),a=$),!r&&$&&(r=PI(x.text)),!s&&$&&(s=_I(x.text))}let w="",M=0,O=0,N=0;if(x.text){let $;[M,O,N,$]=Uk(x.text);let X=this.getEOL(),j=X===`\r
`?2:1;$===0||$===j?w=x.text:w=x.text.replace(/\r\n|\r|\n/g,X)}d[I]={sortIndex:I,identifier:x.identifier||null,range:T,rangeOffset:this.getOffsetAt(T.startLineNumber,T.startColumn),rangeLength:this.getValueLengthInRange(T),text:w,eolCount:M,firstLineLength:O,lastLineLength:N,forceMoveMarkers:!!x.forceMoveMarkers,isAutoWhitespaceEdit:x.isAutoWhitespaceEdit||!1}}d.sort(i._sortOpsAscending);let c=!1;for(let I=0,x=d.length-1;I<x;I++){let T=d[I].range.getEndPosition(),w=d[I+1].range.getStartPosition();if(w.isBeforeOrEqual(T)){if(w.isBefore(T))throw new Error("Overlapping ranges are not allowed!");c=!0}}l&&(d=this._reduceOperations(d));let u=o||n?i._getInverseEditRanges(d):[],m=[];if(n)for(let I=0;I<d.length;I++){let x=d[I],T=u[I];if(x.isAutoWhitespaceEdit&&x.range.isEmpty())for(let w=T.startLineNumber;w<=T.endLineNumber;w++){let M="";w===T.startLineNumber&&(M=this.getLineContent(x.range.startLineNumber),EI(M)!==-1)||m.push({lineNumber:w,oldContent:M})}}let g=null;if(o){let I=0;g=[];for(let x=0;x<d.length;x++){let T=d[x],w=u[x],M=this.getValueInRange(T.range),O=T.rangeOffset+I;I+=T.text.length-M.length,g[x]={sortIndex:T.sortIndex,identifier:T.identifier,range:w,text:M,textChange:new Hk(T.rangeOffset,M,O,T.text)}}c||g.sort((x,T)=>x.sortIndex-T.sortIndex)}this._mightContainRTL=r,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=a;let h=this._doApplyEdits(d),f=null;if(n&&m.length>0){m.sort((I,x)=>x.lineNumber-I.lineNumber),f=[];for(let I=0,x=m.length;I<x;I++){let T=m[I].lineNumber;if(I>0&&m[I-1].lineNumber===T)continue;let w=m[I].oldContent,M=this.getLineContent(T);M.length===0||M===w||EI(M)!==-1||f.push(T)}}return this._onDidChangeContent.fire(),new Dx(g,h,f)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let n=!1,o=e[0].range,r=e[e.length-1].range,s=new We(o.startLineNumber,o.startColumn,r.endLineNumber,r.endColumn),a=o.startLineNumber,l=o.startColumn,d=[];for(let h=0,f=e.length;h<f;h++){let I=e[h],x=I.range;n=n||I.forceMoveMarkers,d.push(this.getValueInRange(new We(a,l,x.startLineNumber,x.startColumn))),I.text.length>0&&d.push(I.text),a=x.endLineNumber,l=x.endColumn}let c=d.join(""),[u,m,g]=Uk(c);return{sortIndex:0,identifier:e[0].identifier,range:s,rangeOffset:this.getOffsetAt(s.startLineNumber,s.startColumn),rangeLength:this.getValueLengthInRange(s,0),text:c,eolCount:u,firstLineLength:m,lastLineLength:g,forceMoveMarkers:n,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(i._sortOpsDescending);let n=[];for(let o=0;o<e.length;o++){let r=e[o],s=r.range.startLineNumber,a=r.range.startColumn,l=r.range.endLineNumber,d=r.range.endColumn;if(s===l&&a===d&&r.text.length===0)continue;r.text?(this._pieceTree.delete(r.rangeOffset,r.rangeLength),this._pieceTree.insert(r.rangeOffset,r.text,!0)):this._pieceTree.delete(r.rangeOffset,r.rangeLength);let c=new We(s,a,l,d);n.push({range:c,rangeLength:r.rangeLength,text:r.text,rangeOffset:r.rangeOffset,forceMoveMarkers:r.forceMoveMarkers})}return n}findMatchesLineByLine(e,n,o,r){return this._pieceTree.findMatchesLineByLine(e,n,o,r)}getPieceTree(){return this._pieceTree}static _getInverseEditRange(e,n){let o=e.startLineNumber,r=e.startColumn,[s,a,l]=Uk(n),d;if(n.length>0){let c=s+1;c===1?d=new We(o,r,o,r+a):d=new We(o,r,o+c-1,l+1)}else d=new We(o,r,o,r);return d}static _getInverseEditRanges(e){let n=[],o=0,r=0,s=null;for(let a=0,l=e.length;a<l;a++){let d=e[a],c,u;s?s.range.endLineNumber===d.range.startLineNumber?(c=o,u=r+(d.range.startColumn-s.range.endColumn)):(c=o+(d.range.startLineNumber-s.range.endLineNumber),u=d.range.startColumn):(c=d.range.startLineNumber,u=d.range.startColumn);let m;if(d.text.length>0){let g=d.eolCount+1;g===1?m=new We(c,u,c,u+d.firstLineLength):m=new We(c,u,c+g-1,d.lastLineLength+1)}else m=new We(c,u,c,u);o=m.endLineNumber,r=m.endColumn,n.push(m),s=d}return n}static _sortOpsAscending(e,n){let o=We.compareRangesUsingEnds(e.range,n.range);return o===0?e.sortIndex-n.sortIndex:o}static _sortOpsDescending(e,n){let o=We.compareRangesUsingEnds(e.range,n.range);return o===0?n.sortIndex-e.sortIndex:-o}};var YO=class{constructor(t,e,n,o,r,s,a,l,d){this._chunks=t;this._bom=e;this._cr=n;this._lf=o;this._crlf=r;this._containsRTL=s;this._containsUnusualLineTerminators=a;this._isBasicASCII=l;this._normalizeEOL=d}_getEOL(t){let e=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return e===0?t===1?`
`:`\r
`:n>e/2?`\r
`:`
`}create(t){let e=this._getEOL(t),n=this._chunks;if(this._normalizeEOL&&(e===`\r
`&&(this._cr>0||this._lf>0)||e===`
`&&(this._cr>0||this._crlf>0)))for(let r=0,s=n.length;r<s;r++){let a=n[r].buffer.replace(/\r\n|\r|\n/g,e),l=js(a);n[r]=new Gs(a,l)}let o=new Vk(n,this._bom,e,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:o,disposable:o}}getFirstLineText(t){return this._chunks[0].buffer.substr(0,t).split(/\r\n|\r|\n/)[0]}},Ny=class{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(t){if(t.length===0)return;this.chunks.length===0&&aF(t)&&(this.BOM=sF,t=t.substr(1));let e=t.charCodeAt(t.length-1);e===13||e>=55296&&e<=56319?(this._acceptChunk1(t.substr(0,t.length-1),!1),this._hasPreviousChar=!0,this._previousChar=e):(this._acceptChunk1(t,!1),this._hasPreviousChar=!1,this._previousChar=e)}_acceptChunk1(t,e){!e&&t.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+t):this._acceptChunk2(t))}_acceptChunk2(t){let e=l$(this._tmpLineStarts,t);this.chunks.push(new Gs(t,e.lineStarts)),this.cr+=e.cr,this.lf+=e.lf,this.crlf+=e.crlf,e.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=PI(t)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=_I(t)))}finish(t=!0){return this._finish(),new YO(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,t)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;let t=this.chunks[this.chunks.length-1];t.buffer+=String.fromCharCode(this._previousChar);let e=js(t.buffer);t.lineStarts=e,this._previousChar===13&&this.cr++}}};var Wk=class extends U{constructor(e,n,o){super();this._source=e;this._inputTextBuffer=n;this._outputs=o;this._outputTextBuffers=void 0}_getFullModelRange(e){let n=e.getLineCount();return new We(1,1,n,this._getLineMaxColumn(e,n))}_getLineMaxColumn(e,n){if(n<1||n>e.getLineCount())throw new Error("Illegal value for lineNumber");return e.getLineLength(n)+1}get inputTextBuffer(){if(!this._inputTextBuffer){let e=new Ny;e.acceptChunk(this._source);let n=e.finish(!0),{textBuffer:o,disposable:r}=n.create(1);this._inputTextBuffer=o,this._register(r)}return this._inputTextBuffer}get outputTextBuffers(){return this._outputTextBuffers||(this._outputTextBuffers=this._outputs.map(e=>{let n=new Ny;n.acceptChunk(e);let o=n.finish(!0),{textBuffer:r,disposable:s}=o.create(1);return this._register(s),r})),this._outputTextBuffers}findInInputs(e){let o=new Vb(e,!1,!1,null).parseSearchRequest();if(!o)return[];let r=this._getFullModelRange(this.inputTextBuffer);return this.inputTextBuffer.findMatchesLineByLine(r,o,!0,5e3)}findInOutputs(e){let o=new Vb(e,!1,!1,null).parseSearchRequest();return o?this.outputTextBuffers.map(r=>{let s=r.findMatchesLineByLine(this._getFullModelRange(r),o,!0,5e3);if(s.length!==0)return{textBuffer:r,matches:s}}).filter(r=>!!r):[]}};function XO(i,t){let e=-1,n=[],o=[];return i.forEach(s=>{s.range.startLineNumber!==e&&o.length>0&&(n.push([...o]),o=[]),o.push(s),e=s.range.endLineNumber}),o.length>0&&n.push([...o]),n.map(s=>{let a=[],l=s[0].range.startLineNumber,d=s[s.length-1].range.endLineNumber;for(let c=l;c<=d;c++)a.push(t.getLineContent(c));return new dg(a.join(`
`)+`
`,s.map(c=>new We(c.range.startLineNumber-1,c.range.startColumn-1,c.range.endLineNumber-1,c.range.endColumn-1)))})}var dht=Object.freeze({id:"application",order:100,title:p(4710,null),type:"object"}),c$=Object.freeze({id:"workbench",order:7,title:p(4718,null),type:"object"}),CJ=Object.freeze({id:"security",scope:1,title:p(4716,null),type:"object",order:7}),cht=Object.freeze({id:"problems",title:p(4712,null),type:"object",order:101}),TJ=Object.freeze({id:"window",order:8,title:p(4717,null),type:"object"}),EJ={ConfigurationMigration:"base.contributions.configuration.migration"},ZO=class{constructor(){this.migrations=[];this._onDidRegisterConfigurationMigrations=new E;this.onDidRegisterConfigurationMigration=this._onDidRegisterConfigurationMigrations.event}registerConfigurationMigrations(t){this.migrations.push(...t)}},qk=new ZO;_t.add(EJ.ConfigurationMigration,qk);var Bk=class extends U{constructor(e,n){super();this.configurationService=e;this.workspaceService=n;this._register(this.workspaceService.onDidChangeWorkspaceFolders(async o=>{for(let r of o.added)await this.migrateConfigurationsForFolder(r,qk.migrations)})),this.migrateConfigurations(qk.migrations),this._register(qk.onDidRegisterConfigurationMigration(o=>this.migrateConfigurations(o)))}static{this.ID="workbench.contrib.configurationMigration"}async migrateConfigurations(e){await this.migrateConfigurationsForFolder(void 0,e);for(let n of this.workspaceService.getWorkspace().folders)await this.migrateConfigurationsForFolder(n,e)}async migrateConfigurationsForFolder(e,n){await Promise.all([n.map(o=>this.migrateConfigurationsForFolderAndOverride(o,e?.uri))])}async migrateConfigurationsForFolderAndOverride(e,n){let o=this.configurationService.inspect(e.key,{resource:n}),r=this.workspaceService.getWorkbenchState()===3?[["user",2],["userLocal",3],["userRemote",4],["workspace",5],["workspaceFolder",6]]:[["user",2],["userLocal",3],["userRemote",4],["workspace",5]];for(let[s,a]of r){let l=o[s];if(!l)continue;let d=[];if(l.value!==void 0){let c=await this.runMigration(e,s,l.value,n,void 0);for(let u of c??[])d.push([u,[]])}for(let{identifiers:c,value:u}of l.overrides??[])if(u!==void 0){let m=await this.runMigration(e,s,u,n,c);for(let g of m??[])d.push([g,c])}d.length&&await Promise.allSettled(d.map(async([[c,u],m])=>this.configurationService.updateValue(c,u.value,{resource:n,overrideIdentifiers:m},a)))}}async runMigration(e,n,o,r,s){let a=d=>{let u=this.configurationService.inspect(d,{resource:r})[n];if(u)return s?u.overrides?.find(({identifiers:m})=>Bt(m,s))?.value:u.value},l=await e.migrateFn(o,a);return Array.isArray(l)?l:[[e.key,l]]}};Bk=D([C(0,Gt),C(1,gs)],Bk);var $k=class extends U{constructor(e){super();this.remoteAgentService=e;this._ready=new jt;this.ready=this._ready.p;this.create()}static{this.ID="workbench.contrib.dynamicWorkbenchSecurityConfiguration"}async create(){try{await this.doCreate()}finally{this._ready.complete()}}async doCreate(){if(!Ce&&(await this.remoteAgentService.getEnvironment())?.os!==1)return;_t.as(ei.Configuration).registerConfiguration({...CJ,properties:{"security.allowedUNCHosts":{type:"array",items:{type:"string",pattern:"^[^\\\\]+$",patternErrorMessage:p(4714,null)},default:[],markdownDescription:p(4713,null),scope:3},"security.restrictUNCAccess":{type:"boolean",default:!0,markdownDescription:p(4715,null),scope:3}}})}};$k=D([C(0,Ug)],$k);var Uy="window.newWindowProfile",zk=class extends U{constructor(e,n){super();this.userDataProfilesService=e;this.configurationService=n;this.registerNewWindowProfileConfiguration(),this._register(this.userDataProfilesService.onDidChangeProfiles(o=>this.registerNewWindowProfileConfiguration())),this.setNewWindowProfile(),this.checkAndResetNewWindowProfileConfig(),this._register(n.onDidChangeConfiguration(o=>{o.source!==7&&o.affectsConfiguration(Uy)&&this.setNewWindowProfile()})),this._register(this.userDataProfilesService.onDidChangeProfiles(()=>this.checkAndResetNewWindowProfileConfig()))}static{this.ID="workbench.contrib.dynamicWindowConfiguration"}registerNewWindowProfileConfiguration(){let e=_t.as(ei.Configuration),n={...TJ,properties:{[Uy]:{type:["string","null"],default:null,enum:[...this.userDataProfilesService.profiles.map(o=>o.name),null],enumItemLabels:[...this.userDataProfilesService.profiles.map(()=>""),p(4709,null)],description:p(4711,null),scope:1}}};this.configurationNode?e.updateConfigurations({add:[n],remove:[this.configurationNode]}):e.registerConfiguration(n),this.configurationNode=n}setNewWindowProfile(){let e=this.configurationService.getValue(Uy);this.newWindowProfile=e?this.userDataProfilesService.profiles.find(n=>n.name===e):void 0}checkAndResetNewWindowProfileConfig(){let e=this.configurationService.getValue(Uy);if(!e)return;let n=this.newWindowProfile?this.userDataProfilesService.profiles.find(o=>o.id===this.newWindowProfile.id):void 0;e!==n?.name&&this.configurationService.updateValue(Uy,n?.name)}};zk=D([C(0,XH),C(1,Gt)],zk);var Cht=R("editorResolverService"),wJ="workbench.editorAssociations",kJ="workbench.diffEditorAssociations",PJ=Object.freeze({"*.md":"vscode.markdown.preview.editor"}),_J=_t.as(ei.Configuration),DJ={...c$,properties:{[wJ]:{type:"object",markdownDescription:p(17900,null),additionalProperties:{type:"string"},agentsWindow:{default:PJ}},[kJ]:{type:"object",markdownDescription:p(17899,null),additionalProperties:{type:"string"}}}};_J.registerConfiguration(DJ);function u$(i,t){if(new Set([B.extension,B.webviewPanel,B.vscodeWorkspaceTrust,B.vscodeSettings]).has(t.scheme))return!1;let o=typeof i=="string"&&i.indexOf($e.sep)>=0?`${t.scheme}:${t.path}`:rt(t);return ir(i,o,{ignoreCase:!0})}var Kk=class i{constructor(t,e,n,o,r,s,a){this._textDocumentsAndEditors=n;this._textDocuments=o;this._extHostFileSystem=r;this._extHostSearch=s;this._logService=a;this._notebookStatusBarItemProviders=new Map;this._documents=new je;this._editors=new Map;this._onDidChangeActiveNotebookEditor=new E;this.onDidChangeActiveNotebookEditor=this._onDidChangeActiveNotebookEditor.event;this._visibleNotebookEditors=[];this._onDidOpenNotebookDocument=new E;this.onDidOpenNotebookDocument=this._onDidOpenNotebookDocument.event;this._onDidCloseNotebookDocument=new E;this.onDidCloseNotebookDocument=this._onDidCloseNotebookDocument.event;this._onDidChangeVisibleNotebookEditors=new E;this.onDidChangeVisibleNotebookEditors=this._onDidChangeVisibleNotebookEditors.event;this._statusBarCache=new Ko("NotebookCellStatusBarCache");this._handlePool=0;this._notebookSerializer=new Map;this._notebookProxy=t.getProxy(F.MainThreadNotebook),this._notebookDocumentsProxy=t.getProxy(F.MainThreadNotebookDocuments),this._notebookEditorsProxy=t.getProxy(F.MainThreadNotebookEditors),this._commandsConverter=e.converter,e.registerArgumentProcessor({processArgument:l=>{if(l&&l.$mid===13){let d=l.notebookEditor?.notebookUri,c=l.cell.handle,m=this._documents.get(d)?.getCell(c);if(m)return m.apiCell}if(l&&l.$mid===14){let d=l.uri,c=this._documents.get(d);if(c)return c.apiNotebook}return l}}),i._registerApiCommands(e)}static{this._notebookStatusBarItemProviderHandlePool=0}get activeNotebookEditor(){return this._activeNotebookEditor?.apiEditor}get visibleNotebookEditors(){return this._visibleNotebookEditors.map(t=>t.apiEditor)}getEditorById(t){let e=this._editors.get(t);if(!e)throw new Error(`unknown text editor: ${t}. known editors: ${[...this._editors.keys()]} `);return e}getIdByEditor(t){for(let[e,n]of this._editors)if(n.apiEditor===t)return e}get notebookDocuments(){return[...this._documents.values()]}getNotebookDocument(t,e){let n=this._documents.get(t);if(!n&&!e)throw new Error(`NO notebook document for '${t}'`);return n}static _convertNotebookRegistrationData(t,e){if(!e)return;let n=e.filenamePattern.map(o=>yb.from(o)).filter(o=>o!==void 0);if(e.filenamePattern&&!n){console.warn(`Notebook content provider view options file name pattern is invalid ${e.filenamePattern}`);return}return{extension:t.identifier,providerDisplayName:t.displayName||t.name,displayName:e.displayName,filenamePattern:n,priority:e.exclusive?"exclusive":void 0}}registerNotebookCellStatusBarItemProvider(t,e,n){let o=i._notebookStatusBarItemProviderHandlePool++,r=typeof n.onDidChangeCellStatusBarItems=="function"?i._notebookStatusBarItemProviderHandlePool++:void 0;this._notebookStatusBarItemProviders.set(o,n),this._notebookProxy.$registerNotebookCellStatusBarItemProvider(o,r,e);let s;return r!==void 0&&(s=n.onDidChangeCellStatusBarItems(a=>this._notebookProxy.$emitCellStatusBarEvent(r))),new xe(()=>{this._notebookStatusBarItemProviders.delete(o),this._notebookProxy.$unregisterNotebookCellStatusBarItemProvider(o,r),s?.dispose()})}async createNotebookDocument(t){let e=await this._notebookDocumentsProxy.$tryCreateNotebook({viewType:t.viewType,content:t.content&&Ed.from(t.content)});return b.revive(e)}async openNotebookDocument(t){let e=this._documents.get(t);if(e)return e.apiNotebook;let n=await this._notebookDocumentsProxy.$tryOpenNotebook(t),o=this._documents.get(b.revive(n));return hi(o?.apiNotebook)}async showNotebookDocument(t,e){let n;typeof e=="object"?n={position:$t.from(e.viewColumn),preserveFocus:e.preserveFocus,selections:e.selections&&e.selections.map(Wr.from),pinned:typeof e.preview=="boolean"?!e.preview:void 0,label:typeof e.asRepl=="string"?e.asRepl:typeof e.asRepl=="object"?e.asRepl.label:void 0}:n={preserveFocus:!1,pinned:!0};let o=e?.asRepl?"repl":t.notebookType,r=await this._notebookEditorsProxy.$tryShowNotebookDocument(t.uri,o,n),s=r&&this._editors.get(r)?.apiEditor;if(s)return s;throw r?new Error(`Could NOT open editor for "${t.uri.toString()}" because another editor opened in the meantime.`):new Error(`Could NOT open editor for "${t.uri.toString()}".`)}async $provideNotebookCellStatusBarItems(t,e,n,o){let r=this._notebookStatusBarItemProviders.get(t),s=b.revive(e),a=this._documents.get(s);if(!a||!r)return;let l=a.getCellFromIndex(n);if(!l)return;let d=await r.provideCellStatusBarItems(l.apiCell,o);if(!d)return;let c=new z,u=this._statusBarCache.add([c]),g=(Array.isArray(d)?d:[d]).map(h=>kM.from(h,this._commandsConverter,c));return{cacheId:u,items:g}}$releaseNotebookCellStatusBarItems(t){this._statusBarCache.delete(t)}registerNotebookSerializer(t,e,n,o,r){if(is(e))throw new Error("viewType cannot be empty or just whitespace");let s=this._handlePool++;return this._notebookSerializer.set(s,{viewType:e,serializer:n,options:o}),this._notebookProxy.$registerNotebookSerializer(s,{id:t.identifier,location:t.extensionLocation},e,_M.from(o),i._convertNotebookRegistrationData(t,r)),Q(()=>{this._notebookProxy.$unregisterNotebookSerializer(s)})}async $dataToNotebook(t,e,n){let o=this._notebookSerializer.get(t);if(!o)throw new Error("NO serializer found");let r=await o.serializer.deserializeNotebook(e.buffer,n);return new Yt(Ed.from(r))}async $notebookToData(t,e,n){let o=this._notebookSerializer.get(t);if(!o)throw new Error("NO serializer found");let r=await o.serializer.serializeNotebook(Ed.to(e.value),n);return W.wrap(r)}async $saveNotebook(t,e,n,o,r){let s=b.revive(e),a=this._notebookSerializer.get(t);this.trace(`enter saveNotebook(versionId: ${n}, ${s.toString()})`);try{if(!a)throw new Fy("NO serializer found");let l=this._documents.get(s);if(!l)throw new Fy("Document NOT found");if(l.versionId!==n)throw new Fy("Document version mismatch, expected: "+n+", actual: "+l.versionId);if(!this._extHostFileSystem.value.isWritableFileSystem(s.scheme))throw new ms(p(3355,null,this._resourceForError(s)),6);let d={metadata:pD(l.apiNotebook.metadata,h=>!(a.options?.transientDocumentMetadata??{})[h]),cells:[]};for(let h of l.apiNotebook.getCells()){let f=new xs(h.kind,h.document.getText(),h.document.languageId,h.mime,a.options?.transientOutputs?[]:[...h.outputs],h.metadata,h.executionSummary);f.metadata=pD(h.metadata,I=>!(a.options?.transientCellMetadata??{})[I]),d.cells.push(f)}if(await this._validateWriteFile(s,o),r.isCancellationRequested)throw new Ue;let c=await a.serializer.serializeNotebook(d,r);if(r.isCancellationRequested)throw new Ue;this.trace(`serialized versionId: ${n} ${s.toString()}`),await this._extHostFileSystem.value.writeFile(s,c),this.trace(`Finished write versionId: ${n} ${s.toString()}`);let u=this._extHostFileSystem.getFileSystemProviderExtUri(s.scheme),m=await this._extHostFileSystem.value.stat(s),g={name:u.basename(s),isFile:(m.type&1)!==0,isDirectory:(m.type&2)!==0,isSymbolicLink:(m.type&64)!==0,mtime:m.mtime,ctime:m.ctime,size:m.size,readonly:!!((m.permissions??0)&1)||!this._extHostFileSystem.value.isWritableFileSystem(s.scheme),locked:!!((m.permissions??0)&2),executable:!!((m.permissions??0)&4),etag:wR({mtime:m.mtime,size:m.size})};return this.trace(`exit saveNotebook(versionId: ${n}, ${s.toString()})`),g}catch(l){if(l instanceof ms)return{...l,message:l.message};throw l}}async $searchInNotebooks(t,e,n,o,r){let s=this._notebookSerializer.get(t)?.serializer;if(!s)return{limitHit:!1,results:[]};let a=new Dr;await(async(m,g,h)=>{await Promise.all(m.map(async f=>await Promise.all(f.filenamePatterns.map(I=>{let x={_reason:h._reason,folderQueries:h.folderQueries,includePattern:h.includePattern,excludePattern:h.excludePattern,maxResults:h.maxResults,type:1,filePattern:I};return this._extHostSearch.doInternalFileSearchWithCustomCallback(x,g,T=>{T.forEach(w=>{a.has(w)||o.some(O=>f.isFromSettings&&!O.isFromSettings?!1:O.filenamePatterns.some(N=>u$(N,w)))||a.add(w)})}).catch(T=>{if(T.code==="ENOENT")return console.warn("Could not find notebook search results, ignoring notebook results."),{limitHit:!1,messages:[]};throw T})}))))})(n,r,e);let d=new je,c=!1,u=Array.from(a).map(async m=>{let g=[];try{if(r.isCancellationRequested)return;if(e.maxResults&&[...d.values()].reduce((x,T)=>x+T.cellResults.length,0)>e.maxResults){c=!0;return}let h=[],f=this._documents.get(m);if(f)f.apiNotebook.getCells().forEach(T=>h.push({input:T.document.getText(),outputs:T.outputs.flatMap(w=>w.items.map(M=>M.data.toString()))}));else{let x=await this._extHostFileSystem.value.readFile(m),T=W.fromString(x.toString()),w=await s.deserializeNotebook(T.buffer,r);if(r.isCancellationRequested)return;Ed.from(w).cells.forEach(O=>h.push({input:O.source,outputs:O.outputs.flatMap(N=>N.items.map($=>$.valueBytes.toString()))}))}if(r.isCancellationRequested)return;h.forEach((x,T)=>{let w=e.contentPattern.pattern,M=new Wk(x.input,void 0,x.outputs),O=M.findInInputs(w),N=M.findInOutputs(w),$=N.flatMap(X=>XO(X.matches,X.textBuffer)).map((X,j)=>(X.webviewIndex=j,X));if(O.length>0||N.length>0){let X={index:T,contentResults:XO(O,M.inputTextBuffer),webviewResults:$};g.push(X)}});let I={resource:m,cellResults:g};d.set(m,I);return}catch{return}});return await Promise.all(u),{limitHit:c,results:[...d.values()]}}async _validateWriteFile(t,e){let n=await this._extHostFileSystem.value.stat(t);if(typeof e?.mtime=="number"&&typeof e.etag=="string"&&e.etag!==F2&&typeof n.mtime=="number"&&typeof n.size=="number"&&e.mtime<n.mtime&&e.etag!==wR({mtime:e.mtime,size:n.size}))throw new ms(p(3356,null),3,e)}_resourceForError(t){return t.scheme===B.file?t.fsPath:t.toString()}_createExtHostEditor(t,e,n){if(this._editors.has(e))throw new Error(`editor with id ALREADY EXSIST: ${e}`);let o=new Yu(e,this._notebookEditorsProxy,t,n.visibleRanges.map(Wr.to),n.selections.map(Wr.to),typeof n.viewColumn=="number"?$t.to(n.viewColumn):void 0,n.viewType);this._editors.set(e,o)}$acceptDocumentAndEditorsDelta(t){if(t.value.removedDocuments)for(let n of t.value.removedDocuments){let o=b.revive(n),r=this._documents.get(o);r&&(r.dispose(),this._documents.delete(o),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({removedDocuments:r.apiNotebook.getCells().map(s=>s.document.uri)}),this._onDidCloseNotebookDocument.fire(r.apiNotebook));for(let s of this._editors.values())s.notebookData.uri.toString()===o.toString()&&this._editors.delete(s.id)}if(t.value.addedDocuments){let n=[];for(let o of t.value.addedDocuments){let r=b.revive(o.uri);if(this._documents.has(r))throw new Error(`adding EXISTING notebook ${r} `);let s=new Lk(this._notebookDocumentsProxy,this._textDocumentsAndEditors,this._textDocuments,r,o);n.push(...o.cells.map(a=>Xf.asModelAddData(a))),this._documents.get(r)?.dispose(),this._documents.set(r,s),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({addedDocuments:n}),this._onDidOpenNotebookDocument.fire(s.apiNotebook)}}if(t.value.addedEditors)for(let n of t.value.addedEditors){if(this._editors.has(n.id))return;let o=b.revive(n.documentUri),r=this._documents.get(o);r&&this._createExtHostEditor(r,n.id,n)}let e=[];if(t.value.removedEditors)for(let n of t.value.removedEditors){let o=this._editors.get(n);o&&(this._editors.delete(n),this._activeNotebookEditor?.id===o.id&&(this._activeNotebookEditor=void 0),e.push(o))}if(t.value.visibleEditors){this._visibleNotebookEditors=t.value.visibleEditors.map(o=>this._editors.get(o)).filter(o=>!!o);let n=new Set;this._visibleNotebookEditors.forEach(o=>n.add(o.id));for(let o of this._editors.values()){let r=n.has(o.id);o._acceptVisibility(r)}this._visibleNotebookEditors=[...this._editors.values()].map(o=>o).filter(o=>o.visible),this._onDidChangeVisibleNotebookEditors.fire(this.visibleNotebookEditors)}t.value.newActiveEditor===null?this._activeNotebookEditor=void 0:t.value.newActiveEditor&&(this._editors.get(t.value.newActiveEditor)||console.error(`FAILED to find active notebook editor ${t.value.newActiveEditor}`),this._activeNotebookEditor=this._editors.get(t.value.newActiveEditor)),t.value.newActiveEditor!==void 0&&this._onDidChangeActiveNotebookEditor.fire(this._activeNotebookEditor?.apiEditor)}static _registerApiCommands(t){let e=Z.String.with("notebookType","A notebook type"),n=new Le("vscode.executeDataToNotebook","_executeDataToNotebook","Invoke notebook serializer",[e,new Z("data","Bytes to convert to data",r=>r instanceof Uint8Array,r=>W.wrap(r))],new Re("Notebook Data",r=>Ed.to(r.value))),o=new Le("vscode.executeNotebookToData","_executeNotebookToData","Invoke notebook serializer",[e,new Z("NotebookData","Notebook data to convert to bytes",r=>!0,r=>new Yt(Ed.from(r)))],new Re("Bytes",r=>r.buffer));t.registerApiCommand(n),t.registerApiCommand(o)}trace(t){this._logService.trace(`[Extension Host Notebook] ${t}`)}},Fy=class extends Error{constructor(t){super(t),this.name="NotebookSaveError"}};var jk=class{constructor(t,e,n,o={timeout:1500,errors:3}){this._logService=t;this._notebooksAndEditors=e;this._mainThreadBulkEdits=n;this._thresholds=o;this._onWillSaveNotebookDocumentEvent=new os}dispose(){}getOnWillSaveNotebookDocumentEvent(t){return(e,n,o)=>{let r=function(a){e.call(n,a)};return r.extension=t,this._onWillSaveNotebookDocumentEvent.event(r,void 0,o)}}async $participateInSave(t,e,n){let o=b.revive(t),r=this._notebooksAndEditors.getNotebookDocument(o);if(!r)throw new Error("Unable to resolve notebook document");let s=[];if(await this._onWillSaveNotebookDocumentEvent.fireAsync({notebook:r.apiNotebook,reason:hb.to(e)},n,async(l,d)=>{let c=Date.now(),u=await await Promise.resolve(l);Date.now()-c>this._thresholds.timeout&&this._logService.warn("onWillSaveNotebookDocument-listener from extension",d.extension.identifier),!n.isCancellationRequested&&u&&(u instanceof Er?s.push(u):this._logService.warn("onWillSaveNotebookDocument-listener from extension",d.extension.identifier,"ignored due to invalid data"))}),n.isCancellationRequested)return!1;if(s.length===0)return!0;let a={edits:[]};for(let l of s){let{edits:d}=bo.from(l);a.edits=a.edits.concat(d)}return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new Yt(a))}};var Gk=class{constructor(t){this._notebooksAndEditors=t;this._onDidSaveNotebookDocument=new E;this.onDidSaveNotebookDocument=this._onDidSaveNotebookDocument.event;this._onDidChangeNotebookDocument=new E;this.onDidChangeNotebookDocument=this._onDidChangeNotebookDocument.event}$acceptModelChanged(t,e,n,o){let s=this._notebooksAndEditors.getNotebookDocument(b.revive(t)).acceptModelChanged(e.value,n,o);this._onDidChangeNotebookDocument.fire(s)}$acceptDirtyStateChanged(t,e){this._notebooksAndEditors.getNotebookDocument(b.revive(t)).acceptDirty(e)}$acceptModelSaved(t){let e=this._notebooksAndEditors.getNotebookDocument(b.revive(t));this._onDidSaveNotebookDocument.fire(e.apiNotebook)}};var eh=class{constructor(t,e){this._logService=t;this._notebooksAndEditors=e;this._onDidChangeNotebookEditorSelection=new E;this._onDidChangeNotebookEditorVisibleRanges=new E;this.onDidChangeNotebookEditorSelection=this._onDidChangeNotebookEditorSelection.event;this.onDidChangeNotebookEditorVisibleRanges=this._onDidChangeNotebookEditorVisibleRanges.event}$acceptEditorPropertiesChanged(t,e){this._logService.debug("ExtHostNotebook#$acceptEditorPropertiesChanged",t,e);let n=this._notebooksAndEditors.getEditorById(t);e.visibleRanges&&n._acceptVisibleRanges(e.visibleRanges.ranges.map(Wr.to)),e.selections&&n._acceptSelections(e.selections.selections.map(Wr.to)),e.visibleRanges&&this._onDidChangeNotebookEditorVisibleRanges.fire({notebookEditor:n.apiEditor,visibleRanges:n.apiEditor.visibleRanges}),e.selections&&this._onDidChangeNotebookEditorSelection.fire(Object.freeze({notebookEditor:n.apiEditor,selections:n.apiEditor.selections}))}$acceptEditorViewColumns(t){for(let e in t)this._notebooksAndEditors.getEditorById(e)._acceptViewColumn($t.to(t[e]))}};eh=D([C(0,ne)],eh);var Lvt=R("INotebookExecutionService");var p$=100;var Uvt=R("INotebookKernelService"),Fvt=R("INotebookKernelHistoryService");var th=class{constructor(t,e,n,o,r){this._initData=e;this._extHostNotebook=n;this._commands=o;this._logService=r;this._activeExecutions=new je;this._activeNotebookExecutions=new je;this._kernelDetectionTask=new Map;this._kernelDetectionTaskHandlePool=0;this._kernelSourceActionProviders=new Map;this._kernelSourceActionProviderHandlePool=0;this._kernelData=new Map;this._handlePool=0;this.id=0;this.variableStore={};this._proxy=t.getProxy(F.MainThreadNotebookKernels);let s=new Le("notebook.selectKernel","_notebook.selectKernel","Trigger kernel picker for specified notebook editor widget",[new Z("options","Select kernel options",l=>!0,l=>{if(l&&"notebookEditor"in l&&"id"in l){let d=this._extHostNotebook.getIdByEditor(l.notebookEditor);return{id:l.id,extension:l.extension,notebookEditorId:d}}else if(l&&"notebookEditor"in l){let d=this._extHostNotebook.getIdByEditor(l.notebookEditor);if(d===void 0)throw new Error(`Cannot invoke 'notebook.selectKernel' for unrecognized notebook editor ${l.notebookEditor.notebook.uri.toString()}`);return"skipIfAlreadySelected"in l?{notebookEditorId:d,skipIfAlreadySelected:l.skipIfAlreadySelected}:{notebookEditorId:d}}return l})],Re.Void),a=new Le("vscode.executeNotebookVariableProvider","_executeNotebookVariableProvider","Execute notebook variable provider",[Z.Uri],new Re("A promise that resolves to an array of variables",(l,d)=>l.map(c=>({variable:{name:c.name,value:c.value,expression:c.expression,type:c.type,language:c.language},hasNamedChildren:c.hasNamedChildren,indexedChildrenCount:c.indexedChildrenCount}))));this._commands.registerApiCommand(s),this._commands.registerApiCommand(a)}createNotebookController(t,e,n,o,r,s){for(let N of this._kernelData.values())if(N.controller.id===e&&Ee.equals(t.identifier,N.extensionId))throw new Error(`notebook controller with id '${e}' ALREADY exist`);let a=this._handlePool++,l=this;this._logService.trace(`NotebookController[${a}], CREATED by ${t.identifier.value}, ${e}`);let d=()=>console.warn(`NO execute handler from notebook controller '${g.id}' of extension: '${t.identifier}'`),c=!1,u=new E,m=new E,g={id:Qk(t.identifier,e),notebookType:n,extensionId:t.identifier,extensionLocation:t.extensionLocation,label:o||t.identifier.value,preloads:s?s.map(vT.from):[]},h=r??d,f,I,x;this._proxy.$addKernel(a,g).catch(N=>{console.log(N),c=!0});let T=0,w=()=>{if(c)return;let N=++T;Promise.resolve().then(()=>{N===T&&this._proxy.$updateKernel(a,g)})},M=new je,O={get id(){return e},get notebookType(){return g.notebookType},onDidChangeSelectedNotebooks:u.event,get label(){return g.label},set label(N){g.label=N??t.displayName??t.name,w()},get detail(){return g.detail??""},set detail(N){g.detail=N,w()},get description(){return g.description??""},set description(N){g.description=N,w()},get supportedLanguages(){return g.supportedLanguages},set supportedLanguages(N){g.supportedLanguages=N,w()},get supportsExecutionOrder(){return g.supportsExecutionOrder??!1},set supportsExecutionOrder(N){g.supportsExecutionOrder=N,w()},get rendererScripts(){return g.preloads?g.preloads.map(vT.to):[]},get executeHandler(){return h},set executeHandler(N){h=N??d},get interruptHandler(){return f},set interruptHandler(N){f=N,g.supportsInterrupt=!!N,w()},set variableProvider(N){A(t,"notebookVariableProvider"),x?.dispose(),I=N,g.hasVariableProvider=!!N,x=N?.onDidChangeVariables($=>l._proxy.$variablesUpdated($.uri)),w()},get variableProvider(){return I},createNotebookCellExecution(N){if(c)throw new Error("notebook controller is DISPOSED");if(!M.has(N.notebook.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(M.keys()).map($=>$.toString())),new Error(`notebook controller is NOT associated to notebook: ${N.notebook.uri.toString()}`);return l._createNotebookCellExecution(N,Qk(t.identifier,this.id))},createNotebookExecution(N){if(A(t,"notebookExecution"),c)throw new Error("notebook controller is DISPOSED");if(!M.has(N.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(M.keys()).map($=>$.toString())),new Error(`notebook controller is NOT associated to notebook: ${N.uri.toString()}`);return l._createNotebookExecution(N,Qk(t.identifier,this.id))},dispose:()=>{c||(this._logService.trace(`NotebookController[${a}], DISPOSED`),c=!0,this._kernelData.delete(a),u.dispose(),m.dispose(),x?.dispose(),this._proxy.$removeKernel(a))},updateNotebookAffinity(N,$){$===-1&&A(t,"notebookControllerAffinityHidden"),l._proxy.$updateNotebookPriority(a,N.uri,$)},onDidReceiveMessage:m.event,postMessage(N,$){return A(t,"notebookMessaging"),l._proxy.$postMessage(a,$&&l._extHostNotebook.getIdByEditor($),N)},asWebviewUri(N){return A(t,"notebookMessaging"),Qd(N,l._initData.remote)}};return this._kernelData.set(a,{extensionId:t.identifier,controller:O,onDidReceiveMessage:m,onDidChangeSelection:u,associatedNotebooks:M}),O}getIdByController(t){for(let[e,n]of this._kernelData)if(n.controller===t)return Qk(n.extensionId,t.id);return null}createNotebookControllerDetectionTask(t,e){let n=this._kernelDetectionTaskHandlePool++,o=this;this._logService.trace(`NotebookControllerDetectionTask[${n}], CREATED by ${t.identifier.value}`),this._proxy.$addKernelDetectionTask(n,e);let r={dispose:()=>{this._kernelDetectionTask.delete(n),o._proxy.$removeKernelDetectionTask(n)}};return this._kernelDetectionTask.set(n,r),r}registerKernelSourceActionProvider(t,e,n){let o=this._kernelSourceActionProviderHandlePool++,r=typeof n.onDidChangeNotebookKernelSourceActions=="function"?o:void 0,s=this;this._kernelSourceActionProviders.set(o,n),this._logService.trace(`NotebookKernelSourceActionProvider[${o}], CREATED by ${t.identifier.value}`),this._proxy.$addKernelSourceActionProvider(o,o,e);let a;return r!==void 0&&(a=n.onDidChangeNotebookKernelSourceActions(l=>this._proxy.$emitNotebookKernelSourceActionsChangeEvent(r))),{dispose:()=>{this._kernelSourceActionProviders.delete(o),s._proxy.$removeKernelSourceActionProvider(o,o),a?.dispose()}}}async $provideKernelSourceActions(t,e){let n=this._kernelSourceActionProviders.get(t);if(n){let o=new z;return(await n.provideNotebookKernelSourceActions(e)??[]).map(s=>PM.from(s,this._commands.converter,o))}return[]}$acceptNotebookAssociation(t,e,n){let o=this._kernelData.get(t);if(o){let r=this._extHostNotebook.getNotebookDocument(b.revive(e));n?o.associatedNotebooks.set(r.uri,!0):o.associatedNotebooks.delete(r.uri),this._logService.trace(`NotebookController[${t}] ASSOCIATE notebook`,r.uri.toString(),n),o.onDidChangeSelection.fire({selected:n,notebook:r.apiNotebook})}}async $executeCells(t,e,n){let o=this._kernelData.get(t);if(!o)return;let r=this._extHostNotebook.getNotebookDocument(b.revive(e)),s=[];for(let a of n){let l=r.getCell(a);l&&s.push(l.apiCell)}try{this._logService.trace(`NotebookController[${t}] EXECUTE cells`,r.uri.toString(),s.length),await o.controller.executeHandler.call(o.controller,s,r.apiNotebook,o.controller)}catch(a){this._logService.error(`NotebookController[${t}] execute cells FAILED`,a),console.error(a)}}async $cancelCells(t,e,n){let o=this._kernelData.get(t);if(!o)return;let r=this._extHostNotebook.getNotebookDocument(b.revive(e));if(o.controller.interruptHandler)await o.controller.interruptHandler.call(o.controller,r.apiNotebook);else for(let s of n){let a=r.getCell(s);a&&this._activeExecutions.get(a.uri)?.cancel()}if(o.controller.interruptHandler){let s=this._activeNotebookExecutions.get(r.uri);this._activeNotebookExecutions.delete(r.uri),n.length&&Array.isArray(s)&&s.length&&s.forEach(a=>a.dispose())}}async $provideVariables(t,e,n,o,r,s,a){let l=this._kernelData.get(t);if(!l)return;let d=this._extHostNotebook.getNotebookDocument(b.revive(n)),c=l.controller.variableProvider;if(!c)return;let u;if(o!==void 0){if(u=this.variableStore[o],!u)return}else this.variableStore={};let m=r==="named"?1:2,g=c.provideVariables(d.apiNotebook,u,m,s,a),h=0;for await(let f of g){if(a.isCancellationRequested)return;let I={id:this.id++,name:f.variable.name,value:f.variable.value,type:f.variable.type,interfaces:f.variable.interfaces,language:f.variable.language,expression:f.variable.expression,hasNamedChildren:f.hasNamedChildren,indexedChildrenCount:f.indexedChildrenCount,extensionId:l.extensionId.value};if(this.variableStore[I.id]=f.variable,this._proxy.$receiveVariable(e,I),h++>=p$)return}}$acceptKernelMessageFromRenderer(t,e,n){let o=this._kernelData.get(t);if(!o)return;let r=this._extHostNotebook.getEditorById(e);o.onDidReceiveMessage.fire(Object.freeze({editor:r.apiEditor,message:n}))}_createNotebookCellExecution(t,e){if(t.index<0)throw new Error("CANNOT execute cell that has been REMOVED from notebook");let o=this._extHostNotebook.getNotebookDocument(t.notebook.uri).getCellFromApiCell(t);if(!o)throw new Error("invalid cell");if(this._activeExecutions.has(o.uri))throw new Error(`duplicate execution for ${o.uri}`);let r=new eN(e,o,this._proxy);this._activeExecutions.set(o.uri,r);let s=r.onDidChangeState(()=>{r.state===2&&(r.dispose(),s.dispose(),this._activeExecutions.delete(o.uri))});return r.asApiObject()}_createNotebookExecution(t,e){let n=this._extHostNotebook.getNotebookDocument(t.uri),o=t.getCells().find(a=>{let l=n.getCellFromApiCell(a);return l&&this._activeExecutions.has(l.uri)});if(o)throw new Error(`duplicate cell execution for ${o.document.uri}`);if(this._activeNotebookExecutions.has(n.uri))throw new Error(`duplicate notebook execution for ${n.uri}`);let r=new tN(e,n,this._proxy),s=r.onDidChangeState(()=>{r.state===2&&(r.dispose(),s.dispose(),this._activeNotebookExecutions.delete(n.uri))});return this._activeNotebookExecutions.set(n.uri,[r,s]),r.asApiObject()}};th=D([C(4,ne)],th);var eN=class i extends U{constructor(e,n,o){super();this._cell=n;this._proxy=o;this._handle=i.HANDLE++;this._onDidChangeState=this._register(new E);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new ke);this._collector=new nN(10,r=>this.update(r)),this._executionOrder=n.internalMetadata.executionOrder,this._proxy.$createExecution(this._handle,e,this._cell.notebook.uri,this._cell.handle)}static{this.HANDLE=0}get state(){return this._state}cancel(){this._tokenSource.cancel()}async updateSoon(e){await this._collector.addItem(e)}async update(e){let n=Array.isArray(e)?e:[e];return this._proxy.$updateExecution(this._handle,new Yt(n))}verifyStateForOutput(){if(this._state===0)throw new Error("Must call start before modifying cell output");if(this._state===2)throw new Error("Cannot modify cell output after calling resolve")}cellIndexToHandle(e){let n=this._cell;if(e&&(n=this._cell.notebook.getCellFromApiCell(e)),!n)throw new Error("INVALID cell");return n.handle}validateAndConvertOutputs(e){return e.map(n=>{let o=Ss.ensureUniqueMimeTypes(n.items,!0);return o===n.items?Ka.from(n):Ka.from({items:o,id:n.id,metadata:n.metadata})})}async updateOutputs(e,n,o){let r=this.cellIndexToHandle(n),s=this.validateAndConvertOutputs(An(e));return this.updateSoon({editType:1,cellHandle:r,append:o,outputs:s})}async updateOutputItems(e,n,o){return e=Ss.ensureUniqueMimeTypes(An(e),!0),this.updateSoon({editType:2,items:e.map(hu.from),outputId:n.id,append:o})}asApiObject(){let e=this;return Object.freeze({get token(){return e._tokenSource.token},get cell(){return e._cell.apiCell},get executionOrder(){return e._executionOrder},set executionOrder(o){e._executionOrder=o,e.update([{editType:3,executionOrder:e._executionOrder}])},start(o){if(e._state===2||e._state===1)throw new Error("Cannot call start again");e._state=1,e._onDidChangeState.fire(),e.update({editType:3,runStartTime:o})},end(o,r,s){if(e._state===2)throw new Error("Cannot call resolve twice");e._state=2,e._onDidChangeState.fire(),e._collector.flush();let a=RJ(s);e._proxy.$completeExecution(e._handle,new Yt({runEndTime:r,lastRunSuccess:o,error:a}))},clearOutput(o){return e.verifyStateForOutput(),e.updateOutputs([],o,!1)},appendOutput(o,r){return e.verifyStateForOutput(),e.updateOutputs(o,r,!0)},replaceOutput(o,r){return e.verifyStateForOutput(),e.updateOutputs(o,r,!1)},appendOutputItems(o,r){return e.verifyStateForOutput(),e.updateOutputItems(o,r,!0)},replaceOutputItems(o,r){return e.verifyStateForOutput(),e.updateOutputItems(o,r,!1)}})}};function RJ(i){let t=o=>o?{startLineNumber:o.start.line,startColumn:o.start.character,endLineNumber:o.end.line,endColumn:o.end.character}:void 0,e=o=>({uri:o.uri,position:o.position,label:o.label});return i?{name:i.name,message:i.message,stack:i.stack instanceof Array?i.stack.map(o=>e(o)):i.stack,location:t(i.location),uri:i.uri}:void 0}var tN=class i extends U{constructor(e,n,o){super();this._notebook=n;this._proxy=o;this._handle=i.HANDLE++;this._onDidChangeState=this._register(new E);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new ke);this._proxy.$createNotebookExecution(this._handle,e,this._notebook.uri)}static{this.HANDLE=0}get state(){return this._state}cancel(){this._tokenSource.cancel()}asApiObject(){return Object.freeze({start:()=>{if(this._state===2||this._state===1)throw new Error("Cannot call start again");this._state=1,this._onDidChangeState.fire(),this._proxy.$beginNotebookExecution(this._handle)},end:()=>{if(this._state===2)throw new Error("Cannot call resolve twice");this._state=2,this._onDidChangeState.fire(),this._proxy.$completeNotebookExecution(this._handle)}})}},nN=class{constructor(t,e){this.delay=t;this.callback=e;this.batch=[];this.startedTimer=Date.now()}addItem(t){return this.batch.push(t),this.currentDeferred||(this.currentDeferred=new jt,this.startedTimer=Date.now(),Vt(this.delay).then(()=>this.flush())),Date.now()-this.startedTimer>this.delay?this.flush():this.currentDeferred.p}flush(){if(this.batch.length===0||!this.currentDeferred)return Promise.resolve();let t=this.currentDeferred;this.currentDeferred=void 0;let e=this.batch;return this.batch=[],this.callback(e).finally(()=>t.complete())}};function Qk(i,t){return`${i.value}/${t}`}var Jk=class{constructor(t,e){this._extHostNotebook=e;this._rendererMessageEmitters=new Map;this.proxy=t.getProxy(F.MainThreadNotebookRenderers)}$postRendererMessage(t,e,n){let o=this._extHostNotebook.getEditorById(t);this._rendererMessageEmitters.get(e)?.fire({editor:o.apiEditor,message:n})}createRendererMessaging(t,e){if(!t.contributes?.notebookRenderer?.some(o=>o.id===e))throw new Error(`Extensions may only call createRendererMessaging() for renderers they contribute (got ${e})`);return{onDidReceiveMessage:(o,r,s)=>this.getOrCreateEmitterFor(e).event(o,r,s),postMessage:(o,r)=>{Yu.apiEditorsToExtHost.has(o)&&([o,r]=[r,o]);let s=r&&Yu.apiEditorsToExtHost.get(r);return this.proxy.$postMessage(s?.id,e,o)}}}getOrCreateEmitterFor(t){let e=this._rendererMessageEmitters.get(t);return e||(e=new E({onDidRemoveLastListener:()=>{e?.dispose(),this._rendererMessageEmitters.delete(t)}}),this._rendererMessageEmitters.set(t,e),e)}};var Yk=class{constructor(t){this.handlers=new Map;this.proxy=t.getProxy(F.MainThreadProfileContentHandlers)}registerProfileContentHandler(t,e,n){if(A(t,"profileContentHandlers"),this.handlers.has(e))throw new Error(`Handler with id '${e}' already registered`);return this.handlers.set(e,n),this.proxy.$registerProfileContentHandler(e,n.name,n.description,t.identifier.value),Q(()=>{this.handlers.delete(e),this.proxy.$unregisterProfileContentHandler(e)})}async $saveProfile(t,e,n,o){let r=this.handlers.get(t);if(!r)throw new Error(`Unknown handler with id: ${t}`);return r.saveProfile(e,n,o)}async $readProfile(t,e,n){let o=this.handlers.get(t);if(!o)throw new Error(`Unknown handler with id: ${t}`);return o.readProfile(Me(e)?e:b.revive(e),n)}};var Xk=class i{constructor(t,e){this.uriTransformer=e;this.providers=new Map;this.proxy=t.getProxy(F.MainThreadQuickDiff)}static{this.handlePool=0}$provideOriginalResource(t,e,n){let o=b.revive(e),r=this.providers.get(t);return r?bn(()=>r.provideOriginalResource(o,n)).then(s=>s||null):Promise.resolve(null)}registerQuickDiffProvider(t,e,n,o,r,s){let a=i.handlePool++;this.providers.set(a,n);let l=Ee.toKey(t.identifier);return this.proxy.$registerQuickDiffProvider(a,Fi.from(e,this.uriTransformer),`${l}.${o}`,r,s),{dispose:()=>{this.proxy.$unregisterQuickDiffProvider(a),this.providers.delete(a)}}}};function m$(i,t,e){let n=i.getProxy(F.MainThreadQuickOpen);class o{constructor(d,c){this._sessions=new Map;this._instances=0;this._workspace=d,this._commands=c}showQuickPick(d,c,u,m=me.None){this._onDidSelectItem=void 0;let g=Promise.resolve(c),h=++this._instances,f=n.$show(h,{title:u?.title,placeHolder:u?.placeHolder,prompt:u?.prompt,matchOnDescription:u?.matchOnDescription,matchOnDetail:u?.matchOnDetail,ignoreFocusLost:u?.ignoreFocusOut,canPickMany:u?.canPickMany},m),I={},x=f.then(()=>I);return Promise.race([x,g]).then(T=>{if(T!==I)return g.then(w=>{let M=[];for(let O=0;O<w.length;O++){let N=w[O];typeof N=="string"?M.push({label:N,handle:O}):N.kind===-1?M.push({type:"separator",label:N.label}):(N.tooltip&&A(d,"quickPickItemTooltip"),M.push({label:N.label,iconPathDto:Hi.from(N.iconPath),description:N.description,detail:N.detail,picked:N.picked,alwaysShow:N.alwaysShow,tooltip:ge.fromStrict(N.tooltip),resourceUri:N.resourceUri,handle:O}))}return u&&typeof u.onDidSelectItem=="function"&&(this._onDidSelectItem=O=>{u.onDidSelectItem(w[O])}),n.$setItems(h,M),f.then(O=>{if(typeof O=="number")return w[O];if(Array.isArray(O))return O.map(N=>w[N])})})}).then(void 0,T=>{if(!Kt(T))return n.$setError(h,T),Promise.reject(T)})}$onItemSelected(d){this._onDidSelectItem?.(d)}showInput(d,c=me.None){return this._validateInput=d?.validateInput,n.$input(d,typeof this._validateInput=="function",c).then(void 0,u=>{if(!Kt(u))return Promise.reject(u)})}async $validateInput(d){if(!this._validateInput)return;let c=await this._validateInput(d);if(!c||typeof c=="string")return c;let u;switch(c.severity){case 1:u=it.Info;break;case 2:u=it.Warning;break;case 3:u=it.Error;break;default:u=c.message?it.Error:it.Ignore;break}return{content:c.message,severity:u}}async showWorkspaceFolderPick(d,c=me.None){let u=await this._commands.executeCommand("_workbench.pickWorkspaceFolder",[d]);if(!u)return;let m=await this._workspace.getWorkspaceFolders2();if(m)return m.find(g=>g.uri.toString()===u.uri.toString())}createQuickPick(d){let c=new s(d,()=>this._sessions.delete(c._id));return this._sessions.set(c._id,c),c}createInputBox(d){let c=new a(d,()=>this._sessions.delete(c._id));return this._sessions.set(c._id,c),c}$onDidChangeValue(d,c){this._sessions.get(d)?._fireDidChangeValue(c)}$onDidAccept(d){this._sessions.get(d)?._fireDidAccept()}$onDidChangeActive(d,c){let u=this._sessions.get(d);u instanceof s&&u._fireDidChangeActive(c)}$onDidChangeSelection(d,c){let u=this._sessions.get(d);u instanceof s&&u._fireDidChangeSelection(c)}$onDidTriggerButton(d,c,u){this._sessions.get(d)?._fireDidTriggerButton(c,u)}$onDidTriggerItemButton(d,c,u,m){let g=this._sessions.get(d);g instanceof s&&g._fireDidTriggerItemButton(c,u,m)}$onDidHide(d){this._sessions.get(d)?._fireDidHide()}}class r{constructor(d,c){this._extension=d;this._onDidDispose=c;this._id=s._nextId++;this._visible=!1;this._expectingHide=!1;this._enabled=!0;this._busy=!1;this._ignoreFocusOut=!0;this._value="";this._valueSelection=void 0;this._buttons=[];this._handlesToButtons=new Map;this._onDidAcceptEmitter=new E;this._onDidChangeValueEmitter=new E;this._onDidTriggerButtonEmitter=new E;this._onDidHideEmitter=new E;this._pendingUpdate={id:this._id};this._disposed=!1;this._disposables=[this._onDidTriggerButtonEmitter,this._onDidHideEmitter,this._onDidAcceptEmitter,this._onDidChangeValueEmitter];this.onDidChangeValue=this._onDidChangeValueEmitter.event;this.onDidAccept=this._onDidAcceptEmitter.event;this.onDidTriggerButton=this._onDidTriggerButtonEmitter.event;this.onDidHide=this._onDidHideEmitter.event}static{this._nextId=1}get title(){return this._title}set title(d){this._title=d,this.update({title:d})}get step(){return this._steps}set step(d){this._steps=d,this.update({step:d})}get totalSteps(){return this._totalSteps}set totalSteps(d){this._totalSteps=d,this.update({totalSteps:d})}get enabled(){return this._enabled}set enabled(d){this._enabled=d,this.update({enabled:d})}get busy(){return this._busy}set busy(d){this._busy=d,this.update({busy:d})}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(d){this._ignoreFocusOut=d,this.update({ignoreFocusOut:d})}get value(){return this._value}set value(d){this._value=d,this.update({value:d})}get valueSelection(){return this._valueSelection}set valueSelection(d){this._valueSelection=d,this.update({valueSelection:d})}get placeholder(){return this._placeholder}set placeholder(d){this._placeholder=d,this.update({placeholder:d})}get buttons(){return this._buttons}set buttons(d){this._buttons=d.slice(),this._handlesToButtons.clear(),d.forEach((c,u)=>{let m=c===Cs.Back?-1:u;this._handlesToButtons.set(m,c)}),this.update({buttons:d.map((c,u)=>({iconPathDto:Hi.from(c.iconPath),tooltip:c.tooltip,handle:c===Cs.Back?-1:u,location:typeof c.location=="number"?c.location:void 0,toggle:typeof c.toggle=="object"&&typeof c.toggle.checked=="boolean"?{checked:c.toggle.checked}:void 0}))})}show(){this._visible=!0,this._expectingHide=!0,this.update({visible:!0})}hide(){this._visible=!1,this.update({visible:!1})}_fireDidAccept(){this._onDidAcceptEmitter.fire()}_fireDidChangeValue(d){this._value=d,this._onDidChangeValueEmitter.fire(d)}_fireDidTriggerButton(d,c){let u=this._handlesToButtons.get(d);u&&(c!==void 0&&u.toggle&&(u.toggle.checked=c),this._onDidTriggerButtonEmitter.fire(u))}_fireDidHide(){this._expectingHide&&(this._expectingHide=this._visible,this._onDidHideEmitter.fire())}dispose(){this._disposed||(this._disposed=!0,this._fireDidHide(),this._disposables=kn(this._disposables),this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this._onDidDispose(),n.$dispose(this._id))}update(d){if(!this._disposed){for(let c of Object.keys(d)){let u=d[c];this._pendingUpdate[c]=u===void 0?null:u}"visible"in this._pendingUpdate?(this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this.dispatchUpdate()):this._visible&&!this._updateTimeout&&(this._updateTimeout=setTimeout(()=>{this._updateTimeout=void 0,this.dispatchUpdate()},0))}}dispatchUpdate(){n.$createOrUpdate(this._pendingUpdate),this._pendingUpdate={id:this._id}}}class s extends r{constructor(c,u){super(c,u);this._items=[];this._handlesToItems=new Map;this._itemsToHandles=new Map;this._canSelectMany=!1;this._matchOnDescription=!0;this._matchOnDetail=!0;this._sortByLabel=!0;this._keepScrollPosition=!1;this._activeItems=[];this._onDidChangeActiveEmitter=new E;this._selectedItems=[];this._onDidChangeSelectionEmitter=new E;this._onDidTriggerItemButtonEmitter=new E;this.onDidChangeActive=this._onDidChangeActiveEmitter.event;this.onDidChangeSelection=this._onDidChangeSelectionEmitter.event;this.onDidTriggerItemButton=this._onDidTriggerItemButtonEmitter.event;this._disposables.push(this._onDidChangeActiveEmitter,this._onDidChangeSelectionEmitter,this._onDidTriggerItemButtonEmitter),this.update({type:"quickPick"})}get items(){return this._items}set items(c){this._items=c.slice(),this._handlesToItems.clear(),this._itemsToHandles.clear(),c.forEach((m,g)=>{this._handlesToItems.set(g,m),this._itemsToHandles.set(m,g)});let u=[];for(let m=0;m<c.length;m++){let g=c[m];g.kind===-1?u.push({type:"separator",label:g.label}):(g.tooltip&&A(this._extension,"quickPickItemTooltip"),u.push({handle:m,label:g.label,iconPathDto:Hi.from(g.iconPath),description:g.description,detail:g.detail,picked:g.picked,alwaysShow:g.alwaysShow,tooltip:ge.fromStrict(g.tooltip),resourceUri:g.resourceUri,buttons:g.buttons?.map((h,f)=>({iconPathDto:Hi.from(h.iconPath),tooltip:h.tooltip,handle:f,toggle:typeof h.toggle=="object"&&typeof h.toggle.checked=="boolean"?{checked:h.toggle.checked}:void 0}))}))}this.update({items:u})}get canSelectMany(){return this._canSelectMany}set canSelectMany(c){this._canSelectMany=c,this.update({canSelectMany:c})}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(c){this._matchOnDescription=c,this.update({matchOnDescription:c})}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(c){this._matchOnDetail=c,this.update({matchOnDetail:c})}get sortByLabel(){return this._sortByLabel}set sortByLabel(c){this._sortByLabel=c,this.update({sortByLabel:c})}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(c){this._keepScrollPosition=c,this.update({keepScrollPosition:c})}get prompt(){return this._prompt}set prompt(c){this._prompt=c,this.update({prompt:c})}get activeItems(){return this._activeItems}set activeItems(c){this._activeItems=c.filter(u=>this._itemsToHandles.has(u)),this.update({activeItems:this._activeItems.map(u=>this._itemsToHandles.get(u))})}get selectedItems(){return this._selectedItems}set selectedItems(c){this._selectedItems=c.filter(u=>this._itemsToHandles.has(u)),this.update({selectedItems:this._selectedItems.map(u=>this._itemsToHandles.get(u))})}_fireDidChangeActive(c){let u=nt(c.map(m=>this._handlesToItems.get(m)));this._activeItems=u,this._onDidChangeActiveEmitter.fire(u)}_fireDidChangeSelection(c){let u=nt(c.map(m=>this._handlesToItems.get(m)));this._selectedItems=u,this._onDidChangeSelectionEmitter.fire(u)}_fireDidTriggerItemButton(c,u,m){let g=this._handlesToItems.get(c);if(!g||!g.buttons||!g.buttons.length)return;let h=g.buttons[u];h&&(m!==void 0&&h.toggle&&(h.toggle.checked=m),this._onDidTriggerItemButtonEmitter.fire({button:h,item:g}))}}class a extends r{constructor(c,u){super(c,u);this._password=!1;this.update({type:"inputBox"})}get password(){return this._password}set password(c){this._password=c,this.update({password:c})}get prompt(){return this._prompt}set prompt(c){this._prompt=c,this.update({prompt:c})}get validationMessage(){return this._validationMessage}set validationMessage(c){this._validationMessage=c,c?typeof c=="string"?this.update({validationMessage:c,severity:it.Error}):this.update({validationMessage:c.message,severity:c.severity??it.Error}):this.update({validationMessage:void 0,severity:it.Ignore})}}return new o(t,e)}function g$(i){return i instanceof b}function AJ(i,t){return i.scheme===B.file&&t.scheme===B.file&&Je?i.toString()===t.toString():i.toString().toLowerCase()===t.toString().toLowerCase()}function oN(i){if(i)return typeof i.iconPath=="string"?b.file(i.iconPath):b.isUri(i.iconPath)||dt.isThemeIcon(i.iconPath)?i.iconPath:void 0}function Qs(i){if(i){if(b.isUri(i))return i;if(dt.isThemeIcon(i))return i;{let t=i;return{light:t.light,dark:t.dark}}}else return}function f$(i){let t=Qs(i.authorIcon),e=Array.isArray(i.tooltip)?ge.fromMany(i.tooltip):i.tooltip?ge.from(i.tooltip):void 0,n=i.references?.map(o=>({...o,icon:Qs(o.icon)}));return{...i,authorIcon:t,references:n,tooltip:e}}function rN(i){return i?{...i,icon:Qs(i.icon)}:void 0}function iN(i,t){if(!i.iconPath&&!t.iconPath)return 0;if(i.iconPath){if(!t.iconPath)return 1}else return-1;let e=typeof i.iconPath=="string"?i.iconPath:b.isUri(i.iconPath)?i.iconPath.fsPath:i.iconPath.id,n=typeof t.iconPath=="string"?t.iconPath:b.isUri(t.iconPath)?t.iconPath.fsPath:t.iconPath.id;return iy(e,n)}function MJ(i,t){let e=0;if(i.strikeThrough!==t.strikeThrough)return i.strikeThrough?1:-1;if(i.faded!==t.faded)return i.faded?1:-1;if(i.tooltip!==t.tooltip)return(i.tooltip||"").localeCompare(t.tooltip||"");if(e=iN(i,t),e!==0)return e;if(i.light&&t.light)e=iN(i.light,t.light);else{if(i.light)return 1;if(t.light)return-1}if(e!==0)return e;if(i.dark&&t.dark)e=iN(i.dark,t.dark);else{if(i.dark)return 1;if(t.dark)return-1}return e}function LJ(i,t){if(i.command!==t.command)return i.command<t.command?-1:1;if(i.title!==t.title)return i.title<t.title?-1:1;if(i.tooltip!==t.tooltip){if(i.tooltip!==void 0&&t.tooltip!==void 0)return i.tooltip<t.tooltip?-1:1;if(i.tooltip!==void 0)return 1;if(t.tooltip!==void 0)return-1}if(i.arguments===t.arguments)return 0;if(i.arguments)if(t.arguments){if(i.arguments.length!==t.arguments.length)return i.arguments.length-t.arguments.length}else return 1;else return-1;for(let e=0;e<i.arguments.length;e++){let n=i.arguments[e],o=t.arguments[e];if(n!==o&&!(g$(n)&&g$(o)&&AJ(n,o)))return n<o?-1:1}return 0}function h$(i,t){let e=iy(i.resourceUri.fsPath,t.resourceUri.fsPath,!0);if(e!==0)return e;if(i.command&&t.command)e=LJ(i.command,t.command);else{if(i.command)return 1;if(t.command)return-1}if(e!==0)return e;if(i.decorations&&t.decorations)e=MJ(i.decorations,t.decorations);else{if(i.decorations)return 1;if(t.decorations)return-1}if(e!==0)return e;if(i.multiFileDiffEditorModifiedUri&&t.multiFileDiffEditorModifiedUri)e=iy(i.multiFileDiffEditorModifiedUri.fsPath,t.multiFileDiffEditorModifiedUri.fsPath,!0);else{if(i.multiFileDiffEditorModifiedUri)return 1;if(t.multiFileDiffEditorModifiedUri)return-1}if(e!==0)return e;if(i.multiDiffEditorOriginalUri&&t.multiDiffEditorOriginalUri)e=iy(i.multiDiffEditorOriginalUri.fsPath,t.multiDiffEditorOriginalUri.fsPath,!0);else{if(i.multiDiffEditorOriginalUri)return 1;if(t.multiDiffEditorOriginalUri)return-1}return e}function OJ(i,t){for(let e=0;e<i.length;e++)if(i[e]!==t[e])return!1;return!0}function NJ(i,t){return i.command===t.command&&i.title===t.title&&i.tooltip===t.tooltip&&(i.arguments&&t.arguments?OJ(i.arguments,t.arguments):i.arguments===t.arguments)}function UJ(i,t){return an(i,t,NJ)}var sN=class{constructor(t,e,n,o,r){this._extension=t;this._sourceControlHandle=o;this._documentUri=r;this._value="";this._onDidChange=new E;this._placeholder="";this._enabled=!0;this._visible=!0;this.#t=e,this.#e=n}#e;#t;get value(){return this._value}set value(t){t=t??"",this.#e.$setInputBoxValue(this._sourceControlHandle,t),this.updateValue(t)}get onDidChange(){return this._onDidChange.event}get placeholder(){return this._placeholder}set placeholder(t){this.#e.$setInputBoxPlaceholder(this._sourceControlHandle,t),this._placeholder=t}get validateInput(){return A(this._extension,"scmValidation"),this._validateInput}set validateInput(t){if(A(this._extension,"scmValidation"),t&&typeof t!="function")throw new Error(`[${this._extension.identifier.value}]: Invalid SCM input box validation function`);this._validateInput=t,this.#e.$setValidationProviderIsEnabled(this._sourceControlHandle,!!t)}get enabled(){return this._enabled}set enabled(t){t=!!t,this._enabled!==t&&(this._enabled=t,this.#e.$setInputBoxEnablement(this._sourceControlHandle,t))}get visible(){return this._visible}set visible(t){t=!!t,this._visible!==t&&(this._visible=t,this.#e.$setInputBoxVisibility(this._sourceControlHandle,t))}get document(){return A(this._extension,"scmTextDocument"),this.#t.getDocument(this._documentUri)}showValidationMessage(t,e){A(this._extension,"scmValidation"),this.#e.$showValidationMessage(this._sourceControlHandle,t,zM.from(e))}$onInputBoxValueChange(t){this.updateValue(t)}updateValue(t){this._value=t,this._onDidChange.fire(t)}},aN=class i{constructor(t,e,n,o,r,s,a){this._proxy=t;this._commands=e;this._sourceControlHandle=n;this._id=o;this._label=r;this.multiDiffEditorEnableViewChanges=s;this._extension=a;this._resourceHandlePool=0;this._resourceStates=[];this._resourceStatesMap=new Map;this._resourceStatesCommandsMap=new Map;this._resourceStatesDisposablesMap=new Map;this._onDidUpdateResourceStates=new E;this.onDidUpdateResourceStates=this._onDidUpdateResourceStates.event;this._disposed=!1;this._onDidDispose=new E;this.onDidDispose=this._onDidDispose.event;this._handlesSnapshot=[];this._resourceSnapshot=[];this._contextValue=void 0;this._hideWhenEmpty=void 0;this.handle=i._handlePool++}static{this._handlePool=0}get disposed(){return this._disposed}get id(){return this._id}get label(){return this._label}set label(t){this._label=t,this._proxy.$updateGroupLabel(this._sourceControlHandle,this.handle,t)}get contextValue(){return this._contextValue}set contextValue(t){this._contextValue=t,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get hideWhenEmpty(){return this._hideWhenEmpty}set hideWhenEmpty(t){this._hideWhenEmpty=t,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get features(){return{contextValue:this.contextValue,hideWhenEmpty:this.hideWhenEmpty}}get resourceStates(){return[...this._resourceStates]}set resourceStates(t){this._resourceStates=[...t],this._onDidUpdateResourceStates.fire()}getResourceState(t){return this._resourceStatesMap.get(t)}$executeResourceCommand(t,e){let n=this._resourceStatesCommandsMap.get(t);return n?bn(()=>this._commands.executeCommand(n.command,...n.arguments||[],e)):Promise.resolve(void 0)}_takeResourceStateSnapshot(){let t=[...this._resourceStates].sort(h$),n=zP(this._resourceSnapshot,t,h$).map(s=>{let a=s.toInsert.map(l=>{let d=this._resourceHandlePool++;this._resourceStatesMap.set(d,l);let c=l.resourceUri,u;if(l.command)if(l.command.command==="vscode.open"||l.command.command==="vscode.diff"||l.command.command==="vscode.changes"){let X=new z;u=this._commands.converter.toInternal(l.command,X),this._resourceStatesDisposablesMap.set(d,X)}else this._resourceStatesCommandsMap.set(d,l.command);let m=Oe(this._extension,"scmMultiDiffEditor"),g=m?l.multiDiffEditorOriginalUri:void 0,h=m?l.multiFileDiffEditorModifiedUri:void 0,f=oN(l.decorations),I=l.decorations&&oN(l.decorations.light)||f,x=l.decorations&&oN(l.decorations.dark)||f,T=[I,x],w=l.decorations&&l.decorations.tooltip||"",M=l.decorations&&!!l.decorations.strikeThrough,O=l.decorations&&!!l.decorations.faded,N=l.contextValue||"";return{rawResource:[d,c,T,w,M,O,N,u,g,h],handle:d}});return{start:s.start,deleteCount:s.deleteCount,toInsert:a}}),o=n.map(({start:s,deleteCount:a,toInsert:l})=>[s,a,l.map(d=>d.rawResource)]),r=n.reverse();for(let{start:s,deleteCount:a,toInsert:l}of r){let d=l.map(u=>u.handle),c=this._handlesSnapshot.splice(s,a,...d);for(let u of c)this._resourceStatesMap.delete(u),this._resourceStatesCommandsMap.delete(u),this._resourceStatesDisposablesMap.get(u)?.dispose(),this._resourceStatesDisposablesMap.delete(u)}return this._resourceSnapshot=t,o}dispose(){this._disposed=!0,this._onDidDispose.fire(),this._onDidUpdateResourceStates.dispose(),this._onDidDispose.dispose()}},Hy=class Hy{constructor(t,e,n,o,r,s,a,l,d,c){this._extension=t;this._commands=o;this._id=r;this._label=s;this._rootUri=a;this._onDidDispose=new E;this.onDidDispose=this._onDidDispose.event;this._groups=new Map;this._contextValue=void 0;this._count=void 0;this._quickDiffProvider=void 0;this._secondaryQuickDiffProvider=void 0;this._historyProviderDisposable=new cn;this._artifactProviderDisposable=new cn;this._commitTemplate=void 0;this._acceptInputDisposables=new cn;this._acceptInputCommand=void 0;this._actionButtonDisposables=new z;this._statusBarDisposables=new z;this._statusBarCommands=void 0;this._selected=!1;this._onDidChangeSelection=new E;this.onDidChangeSelection=this._onDidChangeSelection.event;this._artifactCommandsDisposables=new wn;this.handle=Hy._handlePool++;this.createdResourceGroups=new Map;this.updatedResourceGroups=new Set;this.#e=n;let u=b.from({scheme:B.vscodeSourceControl,path:`${r}/scm${this.handle}/input`,query:a?`rootUri=${encodeURIComponent(a.toString())}`:void 0});this._inputBox=new sN(t,e,this.#e,this.handle,u),this.#e.$registerSourceControl(this.handle,c?.handle,r,s,a,Qs(l),d,u),this.onDidDisposeParent=c?c.onDidDispose:ye.None}static{this._handlePool=0}#e;get id(){return this._id}get label(){return this._label}get rootUri(){return this._rootUri}get contextValue(){return A(this._extension,"scmProviderOptions"),this._contextValue}set contextValue(t){A(this._extension,"scmProviderOptions"),this._contextValue!==t&&(this._contextValue=t,this.#e.$updateSourceControl(this.handle,{contextValue:t}))}get inputBox(){return this._inputBox}get count(){return this._count}set count(t){this._count!==t&&(this._count=t,this.#e.$updateSourceControl(this.handle,{count:t}))}get quickDiffProvider(){return this._quickDiffProvider}set quickDiffProvider(t){this._quickDiffProvider=t;let e;Oe(this._extension,"quickDiffProvider")&&(e=t?.label),this.#e.$updateSourceControl(this.handle,{hasQuickDiffProvider:!!t,quickDiffLabel:e})}get secondaryQuickDiffProvider(){return A(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider}set secondaryQuickDiffProvider(t){A(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider=t;let e=t?.label;this.#e.$updateSourceControl(this.handle,{hasSecondaryQuickDiffProvider:!!t,secondaryQuickDiffLabel:e})}get historyProvider(){return A(this._extension,"scmHistoryProvider"),this._historyProvider}set historyProvider(t){A(this._extension,"scmHistoryProvider"),this._historyProvider=t,this._historyProviderDisposable.value=new z,this.#e.$updateSourceControl(this.handle,{hasHistoryProvider:!!t}),t&&(this._historyProviderDisposable.value.add(t.onDidChangeCurrentHistoryItemRefs(()=>{let e=rN(t?.currentHistoryItemRef),n=rN(t?.currentHistoryItemRemoteRef),o=rN(t?.currentHistoryItemBaseRef);this.#e.$onDidChangeHistoryProviderCurrentHistoryItemRefs(this.handle,e,n,o)})),this._historyProviderDisposable.value.add(t.onDidChangeHistoryItemRefs(e=>{if(e.added.length===0&&e.modified.length===0&&e.removed.length===0)return;let n=e.added.map(s=>({...s,icon:Qs(s.icon)})),o=e.modified.map(s=>({...s,icon:Qs(s.icon)})),r=e.removed.map(s=>({...s,icon:Qs(s.icon)}));this.#e.$onDidChangeHistoryProviderHistoryItemRefs(this.handle,{added:n,modified:o,removed:r,silent:e.silent})})))}get artifactProvider(){return A(this._extension,"scmArtifactProvider"),this._artifactProvider}set artifactProvider(t){A(this._extension,"scmArtifactProvider"),this._artifactProvider=t,this._artifactProviderDisposable.value=new z,this.#e.$updateSourceControl(this.handle,{hasArtifactProvider:!!t}),t&&this._artifactProviderDisposable.value.add(t.onDidChangeArtifacts(e=>{e.length!==0&&this.#e.$onDidChangeArtifacts(this.handle,e)}))}get commitTemplate(){return this._commitTemplate}set commitTemplate(t){t!==this._commitTemplate&&(this._commitTemplate=t,this.#e.$updateSourceControl(this.handle,{commitTemplate:t}))}get acceptInputCommand(){return this._acceptInputCommand}set acceptInputCommand(t){this._acceptInputDisposables.value=new z,this._acceptInputCommand=t;let e=this._commands.converter.toInternal(t,this._acceptInputDisposables.value);this.#e.$updateSourceControl(this.handle,{acceptInputCommand:e})}get actionButton(){return A(this._extension,"scmActionButton"),this._actionButton}set actionButton(t){if(A(this._extension,"scmActionButton"),Qp(this._actionButton,t))return;let e=this._actionButtonDisposables;this._actionButtonDisposables=new z,this._actionButton=t;let n=t!==void 0?{command:{...this._commands.converter.toInternal(t.command,this._actionButtonDisposables),shortTitle:t.command.shortTitle},secondaryCommands:t.secondaryCommands?.map(o=>o.map(r=>this._commands.converter.toInternal(r,this._actionButtonDisposables))),enabled:t.enabled}:null;this.#e.$updateSourceControl(this.handle,{actionButton:n}).finally(()=>e.dispose())}get statusBarCommands(){return this._statusBarCommands}set statusBarCommands(t){if(this._statusBarCommands&&t&&UJ(this._statusBarCommands,t))return;let e=this._statusBarDisposables;this._statusBarDisposables=new z,this._statusBarCommands=t;let n=(t||[]).map(o=>this._commands.converter.toInternal(o,this._statusBarDisposables));this.#e.$updateSourceControl(this.handle,{statusBarCommands:n}).finally(()=>e.dispose())}get selected(){return this._selected}createResourceGroup(t,e,n){let o=Oe(this._extension,"scmMultiDiffEditor")&&n?.multiDiffEditorEnableViewChanges===!0,r=new aN(this.#e,this._commands,this.handle,t,e,o,this._extension),s=ye.once(r.onDidDispose)(()=>this.createdResourceGroups.delete(r));return this.createdResourceGroups.set(r,s),this.eventuallyAddResourceGroups(),r}eventuallyAddResourceGroups(){let t=[],e=[];for(let[n,o]of this.createdResourceGroups){o.dispose();let r=n.onDidUpdateResourceStates(()=>{this.updatedResourceGroups.add(n),this.eventuallyUpdateResourceStates()});ye.once(n.onDidDispose)(()=>{this.updatedResourceGroups.delete(n),r.dispose(),this._groups.delete(n.handle),this.#e.$unregisterGroup(this.handle,n.handle)}),t.push([n.handle,n.id,n.label,n.features,n.multiDiffEditorEnableViewChanges]);let s=n._takeResourceStateSnapshot();s.length>0&&e.push([n.handle,s]),this._groups.set(n.handle,n)}this.#e.$registerGroups(this.handle,t,e),this.createdResourceGroups.clear()}eventuallyUpdateResourceStates(){let t=[];this.updatedResourceGroups.forEach(e=>{let n=e._takeResourceStateSnapshot();n.length!==0&&t.push([e.handle,n])}),t.length>0&&this.#e.$spliceResourceStates(this.handle,t),this.updatedResourceGroups.clear()}getResourceGroup(t){return this._groups.get(t)}setSelectionState(t){this._selected=t,this._onDidChangeSelection.fire(t)}async provideArtifacts(t,e){let n=new z,r=(await this.artifactProvider?.provideArtifacts(t,e))?.map(s=>({...s,icon:Qs(s.icon),command:s.command?this._commands.converter.toInternal(s.command,n):void 0}));return this._artifactCommandsDisposables.get(t)?.dispose(),this._artifactCommandsDisposables.set(t,n),r}dispose(){this._acceptInputDisposables.dispose(),this._actionButtonDisposables.dispose(),this._statusBarDisposables.dispose(),this._historyProviderDisposable.dispose(),this._artifactProviderDisposable.dispose(),this._artifactCommandsDisposables.dispose(),this._groups.forEach(t=>t.dispose()),this.#e.$unregisterSourceControl(this.handle),this._onDidChangeSelection.dispose(),this._onDidDispose.fire(),this._onDidDispose.dispose()}};D([vc(100)],Hy.prototype,"eventuallyAddResourceGroups",1),D([vc(100)],Hy.prototype,"eventuallyUpdateResourceStates",1);var lN=Hy,nh=class{constructor(t,e,n,o){this._commands=e;this._extHostDocuments=n;this.logService=o;this._sourceControls=new Map;this._sourceControlsByExtension=new ho;this._onDidChangeActiveProvider=new E;this._proxy=t.getProxy(F.MainThreadSCM),this._telemetry=t.getProxy(F.MainThreadTelemetry),e.registerArgumentProcessor({processArgument:r=>{if(r&&r.$mid===3){let s=this._sourceControls.get(r.sourceControlHandle);if(!s)return r;let a=s.getResourceGroup(r.groupHandle);return a?a.getResourceState(r.handle):r}else if(r&&r.$mid===4){let s=this._sourceControls.get(r.sourceControlHandle);return s?s.getResourceGroup(r.groupHandle):r}else if(r&&r.$mid===5){let s=this._sourceControls.get(r.handle);return s||r}return r}})}get onDidChangeActiveProvider(){return this._onDidChangeActiveProvider.event}createSourceControl(t,e,n,o,r,s,a){this.logService.trace("ExtHostSCM#createSourceControl",t.identifier.value,e,n,o),this._telemetry.$publicLog2("api/scm/createSourceControl",{extensionId:t.identifier.value});let l=a?At.find(this._sourceControls.values(),u=>u===a):void 0,d=new lN(t,this._extHostDocuments,this._proxy,this._commands,e,n,o,r,s,l);this._sourceControls.set(d.handle,d);let c=this._sourceControlsByExtension.get(t.identifier)||[];return c.push(d),this._sourceControlsByExtension.set(t.identifier,c),ye.once(d.onDidDispose)(()=>{this.logService.trace("ExtHostSCM#disposeSourceControl",t.identifier.value,e,n,o),this._sourceControls.delete(d.handle);let u=this._sourceControlsByExtension.get(t.identifier);if(u){let m=u.indexOf(d);m!==-1&&u.splice(m,1),u.length===0&&this._sourceControlsByExtension.delete(t.identifier)}}),d}getLastInputBox(t){this.logService.trace("ExtHostSCM#getLastInputBox",t.identifier.value);let e=this._sourceControlsByExtension.get(t.identifier),n=e&&e[e.length-1];return n&&n.inputBox}$provideOriginalResource(t,e,n){let o=b.revive(e);this.logService.trace("ExtHostSCM#$provideOriginalResource",t,o.toString());let r=this._sourceControls.get(t);return!r||!r.quickDiffProvider||!r.quickDiffProvider.provideOriginalResource?Promise.resolve(null):bn(()=>r.quickDiffProvider.provideOriginalResource(o,n)).then(s=>s||null)}$provideSecondaryOriginalResource(t,e,n){let o=b.revive(e);this.logService.trace("ExtHostSCM#$provideSecondaryOriginalResource",t,o.toString());let r=this._sourceControls.get(t);return!r||!r.secondaryQuickDiffProvider||!r.secondaryQuickDiffProvider.provideOriginalResource?Promise.resolve(null):bn(()=>r.secondaryQuickDiffProvider.provideOriginalResource(o,n)).then(s=>s||null)}$onInputBoxValueChange(t,e){this.logService.trace("ExtHostSCM#$onInputBoxValueChange",t);let n=this._sourceControls.get(t);return n&&n.inputBox.$onInputBoxValueChange(e),Promise.resolve(void 0)}$executeResourceCommand(t,e,n,o){this.logService.trace("ExtHostSCM#$executeResourceCommand",t,e,n);let r=this._sourceControls.get(t);if(!r)return Promise.resolve(void 0);let s=r.getResourceGroup(e);return s?s.$executeResourceCommand(n,o):Promise.resolve(void 0)}$validateInput(t,e,n){this.logService.trace("ExtHostSCM#$validateInput",t);let o=this._sourceControls.get(t);return!o||!o.inputBox.validateInput?Promise.resolve(void 0):bn(()=>o.inputBox.validateInput(e,n)).then(r=>{if(!r)return Promise.resolve(void 0);let s=ge.fromStrict(r.message);return s?Promise.resolve([s,r.type]):Promise.resolve(void 0)})}$setSelectedSourceControl(t){return this.logService.trace("ExtHostSCM#$setSelectedSourceControl",t),this._selectedSourceControlHandle===t||(t!==void 0&&this._sourceControls.get(t)?.setSelectionState(!0),this._selectedSourceControlHandle!==void 0&&this._sourceControls.get(this._selectedSourceControlHandle)?.setSelectionState(!1),this._selectedSourceControlHandle=t),Promise.resolve(void 0)}async $resolveHistoryItem(t,e,n){try{let r=await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItem(e,n);return r?f$(r):void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItem",o);return}}async $resolveHistoryItemChatContext(t,e,n){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemChatContext(e,n)??void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItemChatContext",o);return}}async $resolveHistoryItemChangeRangeChatContext(t,e,n,o,r){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemChangeRangeChatContext?.(e,n,o,r)??void 0}catch(s){this.logService.error("ExtHostSCM#$resolveHistoryItemChangeRangeChatContext",s);return}}async $resolveHistoryItemRefsCommonAncestor(t,e,n){try{return await this._sourceControls.get(t)?.historyProvider?.resolveHistoryItemRefsCommonAncestor(e,n)??void 0}catch(o){this.logService.error("ExtHostSCM#$resolveHistoryItemRefsCommonAncestor",o);return}}async $provideHistoryItemRefs(t,e,n){try{return(await this._sourceControls.get(t)?.historyProvider?.provideHistoryItemRefs(e,n))?.map(s=>({...s,icon:Qs(s.icon)}))??void 0}catch(o){this.logService.error("ExtHostSCM#$provideHistoryItemRefs",o);return}}async $provideHistoryItems(t,e,n){try{return(await this._sourceControls.get(t)?.historyProvider?.provideHistoryItems(e,n))?.map(s=>f$(s))??void 0}catch(o){this.logService.error("ExtHostSCM#$provideHistoryItems",o);return}}async $provideHistoryItemChanges(t,e,n,o){try{return await this._sourceControls.get(t)?.historyProvider?.provideHistoryItemChanges(e,n,o)??void 0}catch(r){this.logService.error("ExtHostSCM#$provideHistoryItemChanges",r);return}}async $provideArtifactGroups(t,e){try{return(await this._sourceControls.get(t)?.artifactProvider?.provideArtifactGroups(e))?.map(r=>({...r,icon:Qs(r.icon)}))}catch(n){this.logService.error("ExtHostSCM#$provideArtifactGroups",n);return}}async $provideArtifacts(t,e,n){try{return this._sourceControls.get(t)?.provideArtifacts(e,n)}catch(o){this.logService.error("ExtHostSCM#$provideArtifacts",o);return}}};nh=D([C(3,ne)],nh);var Zk=class i{constructor(t,e){this.uriTransformer=e;this.providers=new Map;this.proxy=t.getProxy(F.MainThreadShare)}static{this.handlePool=0}async $provideShare(t,e,n){return await this.providers.get(t)?.provideShare({selection:G.to(e.selection),resourceUri:b.revive(e.resourceUri)},n)??void 0}registerShareProvider(t,e){let n=i.handlePool++;return this.providers.set(n,e),this.proxy.$registerShareProvider(n,Fi.from(t,this.uriTransformer),e.id,e.label,e.priority),{dispose:()=>{this.proxy.$unregisterShareProvider(n),this.providers.delete(n)}}}};var eP=class i{constructor(t){this.providers=new Map;this.sessions=new Map;this.synthesizers=new Map;this.proxy=t.getProxy(F.MainThreadSpeech)}static{this.ID_POOL=1}async $createSpeechToTextSession(t,e,n){let o=this.providers.get(t);if(!o)return;let r=new z,s=new ke;this.sessions.set(e,s);let a=await o.provideSpeechToTextSession(s.token,n?{language:n}:void 0);a&&(r.add(a.onDidChange(l=>{s.token.isCancellationRequested||this.proxy.$emitSpeechToTextEvent(e,l)})),r.add(s.token.onCancellationRequested(()=>r.dispose())))}async $cancelSpeechToTextSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t)}async $createTextToSpeechSession(t,e,n){let o=this.providers.get(t);if(!o)return;let r=new z,s=new ke;this.sessions.set(e,s);let a=await o.provideTextToSpeechSession(s.token,n?{language:n}:void 0);a&&(this.synthesizers.set(e,a),r.add(a.onDidChange(l=>{s.token.isCancellationRequested||this.proxy.$emitTextToSpeechEvent(e,l)})),r.add(s.token.onCancellationRequested(()=>r.dispose())))}async $synthesizeSpeech(t,e){this.synthesizers.get(t)?.synthesize(e)}async $cancelTextToSpeechSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t),this.synthesizers.delete(t)}async $createKeywordRecognitionSession(t,e){let n=this.providers.get(t);if(!n)return;let o=new z,r=new ke;this.sessions.set(e,r);let s=await n.provideKeywordRecognitionSession(r.token);s&&(o.add(s.onDidChange(a=>{r.token.isCancellationRequested||this.proxy.$emitKeywordRecognitionEvent(e,a)})),o.add(r.token.onCancellationRequested(()=>o.dispose())))}async $cancelKeywordRecognitionSession(t){this.sessions.get(t)?.dispose(!0),this.sessions.delete(t)}registerProvider(t,e,n){let o=i.ID_POOL++;return this.providers.set(o,n),this.proxy.$registerProvider(o,e,{extension:t,displayName:t.value}),Q(()=>{this.proxy.$unregisterProvider(o),this.providers.delete(o)})}};var dN=class{constructor(t,e,n,o){this.id=t;this._proxy=e;this._sessions=n;this._url=o.url,this._title=o.title,this._favicon=o.favicon;let r=this;this.value={get url(){return r._url},get title(){return r._title},get icon(){return r._favicon?b.parse(r._favicon):new mn(ce.globe.id)},startCDPSession(){return r._startCDPSession()},close(){return r._close()}}}update(t){let e=!1;return t.url!==this._url&&(this._url=t.url,e=!0),t.title!==this._title&&(this._title=t.title,e=!0),t.favicon!==this._favicon&&(this._favicon=t.favicon,e=!0),e}async _startCDPSession(){let t=Pe();await this._proxy.$startCDPSession(t,this.id);let e=new cN(t,this._proxy);return this._sessions.set(t,e),e.value}async _close(){await this._proxy.$closeBrowserTab(this.id)}},cN=class{constructor(t,e){this.id=t;this._proxy=e;this._onDidReceiveMessage=new E;this._onDidClose=new E;this._closed=!1;let n=this;this.value={get onDidReceiveMessage(){return n._onDidReceiveMessage.event},get onDidClose(){return n._onDidClose.event},sendMessage(o){return n._sendMessage(o)},close(){return n._close()}}}dispose(){this._onDidReceiveMessage.dispose(),this._onDidClose.dispose()}async _sendMessage(t){if(this._closed)throw new Error("Session is closed");if(!t||typeof t!="object")throw new Error("Message must be an object");if(typeof t.id!="number")throw new Error("Message must have a numeric id");if(typeof t.method!="string")throw new Error("Message must have a method string");if(t.params!==void 0&&typeof t.params!="object")throw new Error("Message params must be an object");if(t.sessionId!==void 0&&typeof t.sessionId!="string")throw new Error("Message sessionId must be a string");await this._proxy.$sendCDPMessage(this.id,{id:t.id,method:t.method,params:t.params,sessionId:t.sessionId})}async _close(){this._closed=!0,await this._proxy.$closeCDPSession(this.id)}_acceptMessage(t){this._onDidReceiveMessage.fire(t)}_acceptClosed(){this._closed=!0,this._onDidClose.fire()}},tP=class extends U{constructor(e){super();this._browserTabs=new Map;this._sessions=this._register(new wn);this._onDidOpenBrowserTab=this._register(new E);this.onDidOpenBrowserTab=this._onDidOpenBrowserTab.event;this._onDidCloseBrowserTab=this._register(new E);this.onDidCloseBrowserTab=this._onDidCloseBrowserTab.event;this._onDidChangeActiveBrowserTab=this._register(new E);this.onDidChangeActiveBrowserTab=this._onDidChangeActiveBrowserTab.event;this._onDidChangeBrowserTabState=this._register(new E);this.onDidChangeBrowserTabState=this._onDidChangeBrowserTabState.event;this._proxy=e.getProxy(F.MainThreadBrowsers)}get browserTabs(){return[...this._browserTabs.values()].map(e=>e.value)}get activeBrowserTab(){if(this._activeBrowserTabId)return this._browserTabs.get(this._activeBrowserTabId)?.value}async openBrowserTab(e,n){let o=$t.from(n?.viewColumn),r=await this._proxy.$openBrowserTab(e,o,{preserveFocus:n?.preserveFocus,inactive:n?.background});return this._getOrCreateTab(r).value}_getOrCreateTab(e){let n=this._browserTabs.get(e.id);return n?n.update(e):(n=new dN(e.id,this._proxy,this._sessions,e),this._browserTabs.set(e.id,n),this._onDidOpenBrowserTab.fire(n.value)),n}$onDidOpenBrowserTab(e){this._getOrCreateTab(e)}$onDidCloseBrowserTab(e){let n=this._browserTabs.get(e);n&&(this._browserTabs.delete(e),this._activeBrowserTabId===e&&(this._activeBrowserTabId=void 0),this._onDidCloseBrowserTab.fire(n.value))}$onDidChangeActiveBrowserTab(e){this._activeBrowserTabId=e,this._onDidChangeActiveBrowserTab.fire(this.activeBrowserTab)}$onDidChangeBrowserTabState(e){let n=this._browserTabs.get(e.id);n&&n.update(e)&&this._onDidChangeBrowserTabState.fire(n.value)}$onCDPSessionMessage(e,n){let o=this._sessions.get(e);o&&o._acceptMessage(n)}$onCDPSessionClosed(e){let n=this._sessions.get(e);n&&(n._acceptClosed(),this._sessions.deleteAndDispose(e))}};var uN=class i{constructor(t,e,n,o,r,s=1,a,l){this._onDispose=l;this._disposed=!1;this._text="";this._staleCommandRegistrations=new z;if(this.#e=t,this.#t=e,r&&o){this._entryId=WW(o.identifier,r);let d=n.get(this._entryId);d&&(s=d.alignLeft?1:2,a=d.priority,this._visible=!0,this.name=d.name,this.text=d.text,this.tooltip=d.tooltip,this.command=d.command,this.accessibilityInformation=d.accessibilityInformation)}else this._entryId=String(i.ID_GEN++);this._extension=o,this._id=r,this._alignment=s,this._priority=this.validatePriority(a)}static{this.ID_GEN=0}static{this.ALLOWED_BACKGROUND_COLORS=new Map([["statusBarItem.errorBackground",new _a("statusBarItem.errorForeground")],["statusBarItem.warningBackground",new _a("statusBarItem.warningForeground")]])}#e;#t;validatePriority(t){if(Hn(t))return t===Number.POSITIVE_INFINITY?Number.MAX_VALUE:t===Number.NEGATIVE_INFINITY?-Number.MAX_VALUE:t}get id(){return this._id??this._extension.identifier.value}get entryId(){return this._entryId}get alignment(){return this._alignment}get priority(){return this._priority}get text(){return this._text}get name(){return this._name}get tooltip(){return this._tooltip}get tooltip2(){return this._extension&&A(this._extension,"statusBarItemTooltip"),this._tooltip2}get color(){return this._color}get backgroundColor(){return this._backgroundColor}get command(){return this._command?.fromApi}get accessibilityInformation(){return this._accessibilityInformation}set text(t){this._text=t,this.update()}set name(t){this._name=t,this.update()}set tooltip(t){this._tooltip=t,this.update()}set tooltip2(t){this._extension&&A(this._extension,"statusBarItemTooltip"),this._tooltip2=t,this.update()}set color(t){this._color=t,this.update()}set backgroundColor(t){t&&!i.ALLOWED_BACKGROUND_COLORS.has(t.id)&&(t=void 0),this._backgroundColor=t,this.update()}set command(t){this._command?.fromApi!==t&&(this._latestCommandRegistration&&this._staleCommandRegistrations.add(this._latestCommandRegistration),this._latestCommandRegistration=new z,typeof t=="string"?this._command={fromApi:t,internal:this.#t.toInternal({title:"",command:t},this._latestCommandRegistration)}:t?this._command={fromApi:t,internal:this.#t.toInternal(t,this._latestCommandRegistration)}:this._command=void 0,this.update())}set accessibilityInformation(t){this._accessibilityInformation=t,this.update()}show(){this._visible=!0,this.update()}hide(){clearTimeout(this._timeoutHandle),this._visible=!1,this.#e.$disposeEntry(this._entryId)}update(){this._disposed||!this._visible||(clearTimeout(this._timeoutHandle),this._timeoutHandle=setTimeout(()=>{this._timeoutHandle=void 0;let t;this._extension?this._id?t=`${this._extension.identifier.value}.${this._id}`:t=this._extension.identifier.value:t=this._id;let e;this._name?e=this._name:e=p(3357,null,this._extension.displayName||this._extension.name);let n=this._color;this._backgroundColor&&(n=i.ALLOWED_BACKGROUND_COLORS.get(this._backgroundColor.id));let o,r;typeof this._tooltip2=="function"?(o=ge.fromStrict(this._tooltip),r=!0):(o=ge.fromStrict(this._tooltip2??this._tooltip),r=!1),this.#e.$setEntry(this._entryId,t,this._extension?.identifier.value,e,this._text,o,r,this._command?.internal,n,this._backgroundColor,this._alignment===1,this._priority,this._accessibilityInformation),this._staleCommandRegistrations.clear()},0))}dispose(){this.hide(),this._staleCommandRegistrations.dispose(),this._latestCommandRegistration?.dispose(),this._onDispose?.(),this._disposed=!0}},pN=class{constructor(t){this._messages=[];this._item=t.createStatusBarEntry(void 0,"status.extensionMessage",1,Number.MIN_VALUE),this._item.name=p(3358,null)}dispose(){this._messages.length=0,this._item.dispose()}setMessage(t){let e={message:t};return this._messages.unshift(e),this._update(),new xe(()=>{let n=this._messages.indexOf(e);n>=0&&(this._messages.splice(n,1),this._update())})}_update(){this._messages.length>0?(this._item.text=this._messages[0].message,this._item.show()):this._item.hide()}},nP=class{constructor(t,e){this._entries=new Map;this._existingItems=new Map;this._proxy=t.getProxy(F.MainThreadStatusBar),this._commands=e,this._statusMessage=new pN(this)}$acceptStaticEntries(t){for(let e of t)this._existingItems.set(e.entryId,e)}async $provideTooltip(t,e){let n=this._entries.get(t);if(!n)return;let o=typeof n.tooltip2=="function"?await n.tooltip2(e):n.tooltip2;return e.isCancellationRequested?void 0:ge.fromStrict(o)}createStatusBarEntry(t,e,n,o){let r=new uN(this._proxy,this._commands,this._existingItems,t,e,n,o,()=>this._entries.delete(r.entryId));return this._entries.set(r.entryId,r),r}setStatusBarMessage(t,e){let n=this._statusMessage.setMessage(t),o;return typeof e=="number"?o=setTimeout(()=>n.dispose(),e):typeof e<"u"&&e.then(()=>n.dispose(),()=>n.dispose()),new xe(()=>{n.dispose(),clearTimeout(o)})}};var oP=class extends U{constructor(e,n){super();this._extHostDocumentsAndEditors=n;this._onDidChangeTextEditorSelection=this._register(new E);this._onDidChangeTextEditorOptions=this._register(new E);this._onDidChangeTextEditorVisibleRanges=this._register(new E);this._onDidChangeTextEditorViewColumn=this._register(new E);this._onDidChangeTextEditorDiffInformation=this._register(new E);this._onDidChangeActiveTextEditor=this._register(new E);this._onDidChangeVisibleTextEditors=this._register(new E);this.onDidChangeTextEditorSelection=this._onDidChangeTextEditorSelection.event;this.onDidChangeTextEditorOptions=this._onDidChangeTextEditorOptions.event;this.onDidChangeTextEditorVisibleRanges=this._onDidChangeTextEditorVisibleRanges.event;this.onDidChangeTextEditorViewColumn=this._onDidChangeTextEditorViewColumn.event;this.onDidChangeTextEditorDiffInformation=this._onDidChangeTextEditorDiffInformation.event;this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event;this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event;this._proxy=e.getProxy(F.MainThreadTextEditors),this._register(this._extHostDocumentsAndEditors.onDidChangeVisibleTextEditors(o=>this._onDidChangeVisibleTextEditors.fire(o))),this._register(this._extHostDocumentsAndEditors.onDidChangeActiveTextEditor(o=>this._onDidChangeActiveTextEditor.fire(o)))}getActiveTextEditor(){return this._extHostDocumentsAndEditors.activeEditor()}getVisibleTextEditors(e){let n=this._extHostDocumentsAndEditors.allEditors();return e?n:n.map(o=>o.value)}async showTextDocument(e,n,o){let r;typeof n=="number"?r={position:$t.from(n),preserveFocus:o}:typeof n=="object"?r={position:$t.from(n.viewColumn),preserveFocus:n.preserveFocus,selection:typeof n.selection=="object"?G.from(n.selection):void 0,pinned:typeof n.preview=="boolean"?!n.preview:void 0}:r={preserveFocus:!1};let s=await this._proxy.$tryShowTextDocument(e.uri,r),a=s&&this._extHostDocumentsAndEditors.getEditor(s);if(a)return a.value;throw s?new Error(`Could NOT open editor for "${e.uri.toString()}" because another editor opened in the meantime.`):new Error(`Could NOT open editor for "${e.uri.toString()}".`)}createTextEditorDecorationType(e,n){return new hE(this._proxy,e,n).value}$acceptEditorPropertiesChanged(e,n){let o=this._extHostDocumentsAndEditors.getEditor(e);if(!o)throw new Error("unknown text editor");if(n.options&&o._acceptOptions(n.options),n.selections){let r=n.selections.selections.map(Do.to);o._acceptSelections(r)}if(n.visibleRanges){let r=nt(n.visibleRanges.map(G.to));o._acceptVisibleRanges(r)}if(n.options&&this._onDidChangeTextEditorOptions.fire({textEditor:o.value,options:{...n.options,lineNumbers:Iu.to(n.options.lineNumbers)}}),n.selections){let r=uu.fromValue(n.selections.source),s=n.selections.selections.map(Do.to);this._onDidChangeTextEditorSelection.fire({textEditor:o.value,selections:s,kind:r})}if(n.visibleRanges){let r=nt(n.visibleRanges.map(G.to));this._onDidChangeTextEditorVisibleRanges.fire({textEditor:o.value,visibleRanges:r})}}$acceptEditorPositionData(e){for(let n in e){let o=this._extHostDocumentsAndEditors.getEditor(n);if(!o)throw new Error("Unknown text editor");let r=$t.to(e[n]);o.value.viewColumn!==r&&(o._acceptViewColumn(r),this._onDidChangeTextEditorViewColumn.fire({textEditor:o.value,viewColumn:r}))}}$acceptEditorDiffInformation(e,n){let o=this._extHostDocumentsAndEditors.getEditor(e);if(!o)throw new Error("unknown text editor");if(!n){o._acceptDiffInformation(void 0),this._onDidChangeTextEditorDiffInformation.fire({textEditor:o.value,diffInformation:void 0});return}let r=this,s=n.map(a=>{let l=b.revive(a.original),d=b.revive(a.modified),c=a.changes.map(u=>{let[m,g,h,f]=u,I;return m===g?I=1:h===f?I=2:I=3,{original:{startLineNumber:m,endLineNumberExclusive:g},modified:{startLineNumber:h,endLineNumberExclusive:f},kind:I}});return Object.freeze({documentVersion:a.documentVersion,original:l,modified:d,changes:c,get isStale(){return r._extHostDocumentsAndEditors.getDocument(d)?.version!==a.documentVersion}})});o._acceptDiffInformation(s),this._onDidChangeTextEditorDiffInformation.fire({textEditor:o.value,diffInformation:s})}getDiffInformation(e){return Promise.resolve(this._proxy.$getDiffInformation(e))}};var oh=class{constructor(t){this._actual=new Yc(2),this._onDidChangeActiveColorTheme=new E}get activeColorTheme(){return this._actual}$onColorThemeChange(t){let e;switch(t){case"light":e=1;break;case"hcDark":e=3;break;case"hcLight":e=4;break;default:e=2}this._actual=new Yc(e),this._onDidChangeActiveColorTheme.fire(this._actual)}get onDidChangeActiveColorTheme(){return this._onDidChangeActiveColorTheme.event}};oh=D([C(0,ae)],oh);var vxt=R("IExtHostTimeline"),rP=class{constructor(t,e){this._providers=new Map;this._itemsBySourceAndUriMap=new Map;this._proxy=t.getProxy(F.MainThreadTimeline),e.registerArgumentProcessor({processArgument:(n,o)=>{if(n&&n.$mid===12)if(this._providers.get(n.source)&&o&&Oe(o,"timeline")){let r=n.uri===void 0?void 0:b.revive(n.uri);return this._itemsBySourceAndUriMap.get(n.source)?.get(v$(r))?.get(n.handle)}else return;return n}})}async $getTimeline(t,e,n,o){return this._providers.get(t)?.provider.provideTimeline(b.revive(e),n,o)}registerTimelineProvider(t,e,n,o){let r=new z,s=this.convertTimelineItem(e.id,o,r).bind(this),a;e.onDidChange&&(a=e.onDidChange(d=>this._proxy.$emitTimelineChangeEvent({uri:void 0,reset:!0,...d,id:e.id}),this));let l=this._itemsBySourceAndUriMap;return this.registerTimelineProviderCore({...e,scheme:t,onDidChange:void 0,async provideTimeline(d,c,u){c?.resetCache&&(r.clear(),l.get(e.id)?.clear());let m=await e.provideTimeline(d,c,u);if(m==null)return;let g=s(d,c);return{...m,source:e.id,items:m.items.map(g)}},dispose(){for(let d of l.values())d.get(e.id)?.clear();a?.dispose(),r.dispose()}},n)}convertTimelineItem(t,e,n){return(o,r)=>{let s;if(r?.cacheResults){let a=this._itemsBySourceAndUriMap.get(t);a===void 0&&(a=new Map,this._itemsBySourceAndUriMap.set(t,a));let l=v$(o);s=a.get(l),s===void 0&&(s=new Map,a.set(l,s))}return a=>{let{iconPath:l,...d}=a,c=`${t}|${a.id??a.timestamp}`;s?.set(c,a);let u,m,g;a.iconPath&&(l instanceof mn?g={id:l.id,color:l.color}:b.isUri(l)?(u=l,m=l):{light:u,dark:m}=l);let h;return Xt.isMarkdownString(d.tooltip)?h=ge.from(d.tooltip):Me(d.tooltip)?h=d.tooltip:Xt.isMarkdownString(d.detail)?(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),h=ge.from(d.detail)):Me(d.detail)&&(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),h=d.detail),{...d,id:d.id??void 0,handle:c,source:t,command:a.command?e.toInternal(a.command,n):void 0,icon:u,iconDark:m,themeIcon:g,tooltip:h,accessibilityInformation:a.accessibilityInformation}}}}registerTimelineProviderCore(t,e){if(this._providers.get(t.id))throw new Error(`Timeline Provider ${t.id} already exists.`);return this._proxy.$registerTimelineProvider({id:t.id,label:t.label,scheme:t.scheme}),this._providers.set(t.id,{provider:t,extension:e}),Q(()=>{for(let o of this._itemsBySourceAndUriMap.values())o.get(t.id)?.clear();this._providers.delete(t.id),this._proxy.$unregisterTimelineProvider(t.id),t.dispose()})}};function v$(i){return i?.toString()}var Dxt=p(4974,null),Rxt=Lu("default-view-icon",ce.window,p(4971,null)),fN;(e=>(e.ViewContainersRegistry="workbench.registry.view.containers",e.ViewsRegistry="workbench.registry.view"))(fN||={});var mN=class extends U{constructor(){super(...arguments);this._onDidRegister=this._register(new E);this.onDidRegister=this._onDidRegister.event;this._onDidDeregister=this._register(new E);this.onDidDeregister=this._onDidDeregister.event;this.viewContainers=new Map;this.defaultViewContainers=[]}get all(){return[...this.viewContainers.values()].flat()}registerViewContainer(e,n,o){let r=this.get(e.id);if(r)return r;let s=e;return s.openCommandActionDescriptor=o?.doNotRegisterOpenCommand?void 0:s.openCommandActionDescriptor??{id:s.id},JP(this.viewContainers,n,[]).push(s),o?.isDefault&&this.defaultViewContainers.push(s),this._onDidRegister.fire({viewContainer:s,viewContainerLocation:n}),s}deregisterViewContainer(e){for(let n of this.viewContainers.keys()){let o=this.viewContainers.get(n),r=o?.indexOf(e);if(r!==-1){o?.splice(r,1),o.length===0&&this.viewContainers.delete(n),this._onDidDeregister.fire({viewContainer:e,viewContainerLocation:n});return}}}get(e){return this.all.filter(n=>n.id===e)[0]}getViewContainers(e){return[...this.viewContainers.get(e)||[]]}getViewContainerLocation(e){return[...this.viewContainers.keys()].filter(n=>this.getViewContainers(n).filter(o=>o?.id===e.id).length>0)[0]}getDefaultViewContainers(e){return this.defaultViewContainers.filter(n=>this.getViewContainerLocation(n)===e)}};_t.add(fN.ViewContainersRegistry,new mN);function FJ(i,t){let e=i.group??"9_more",n=t.group??"9_more";return e!==n?e.localeCompare(n):(i.order??5)-(t.order??5)}var gN=class extends U{constructor(){super(...arguments);this._onViewsRegistered=this._register(new E);this.onViewsRegistered=this._onViewsRegistered.event;this._onViewsDeregistered=this._register(new E);this.onViewsDeregistered=this._onViewsDeregistered.event;this._onDidChangeContainer=this._register(new E);this.onDidChangeContainer=this._onDidChangeContainer.event;this._onDidChangeViewWelcomeContent=this._register(new E);this.onDidChangeViewWelcomeContent=this._onDidChangeViewWelcomeContent.event;this._viewContainers=[];this._views=new Map;this._viewWelcomeContents=new sp}registerViews(e,n){this.registerViews2([{views:e,viewContainer:n}])}registerViews2(e){e.forEach(({views:n,viewContainer:o})=>this.addViews(n,o)),this._onViewsRegistered.fire(e)}deregisterViews(e,n){let o=this.removeViews(e,n);o.length&&this._onViewsDeregistered.fire({views:o,viewContainer:n})}moveViews(e,n){for(let o of this._views.keys())if(o!==n){let r=this.removeViews(e,o);r.length&&(this.addViews(r,n),this._onDidChangeContainer.fire({views:r,from:o,to:n}))}}getViews(e){return this._views.get(e)||[]}getView(e){for(let n of this._viewContainers){let o=(this._views.get(n)||[]).filter(r=>r.id===e)[0];if(o)return o}return null}getViewContainer(e){for(let n of this._viewContainers)if((this._views.get(n)||[]).filter(r=>r.id===e)[0])return n;return null}registerViewWelcomeContent(e,n){return this._viewWelcomeContents.add(e,n),this._onDidChangeViewWelcomeContent.fire(e),Q(()=>{this._viewWelcomeContents.delete(e,n),this._onDidChangeViewWelcomeContent.fire(e)})}registerViewWelcomeContent2(e,n){let o=new Map;for(let[r,s]of n)this._viewWelcomeContents.add(e,s),o.set(r,Q(()=>{this._viewWelcomeContents.delete(e,s),this._onDidChangeViewWelcomeContent.fire(e)}));return this._onDidChangeViewWelcomeContent.fire(e),o}getViewWelcomeContent(e){let n=[];return this._viewWelcomeContents.forEach(e,o=>n.push(o)),n.sort(FJ)}addViews(e,n){let o=this._views.get(n);o||(o=[],this._views.set(n,o),this._viewContainers.push(n));for(let r of e){if(this.getView(r.id)!==null)throw new Error(p(4972,null,r.id));o.push(r)}}removeViews(e,n){let o=this._views.get(n);if(!o)return[];let r=[],s=[];for(let a of o)e.includes(a)?r.push(a):s.push(a);return r.length&&(s.length?this._views.set(n,s):(this._views.delete(n),this._viewContainers.splice(this._viewContainers.indexOf(n),1))),r}};_t.add(fN.ViewsRegistry,new gN);var Axt=R("viewDescriptorService");var pi=class extends Error{constructor(e){super(p(4973,null,e));this.name="NoTreeViewError"}static is(e){return!!e&&e.name==="NoTreeViewError"}};var iP=class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(t){if(t&&this._dragOperations.has(t)){let e=this._dragOperations.get(t);return this._dragOperations.delete(t),e}}addDragOperationTransfer(t,e){this._dragOperations.set(t,e)}};function b$(i,t){if(Me(i))return{label:i};if(i&&typeof i=="object"&&i.label){let e;if(Array.isArray(i.highlights)&&(e=i.highlights.filter((n=>n.length===2&&typeof n[0]=="number"&&typeof n[1]=="number")),e=e.length?e:void 0),Me(i.label))return{label:i.label,highlights:e};if(Xt.isMarkdownString(i.label))return A(t,"treeItemMarkdownLabel"),{label:ge.from(i.label),highlights:e}}}var sP=class extends U{constructor(e,n,o){super();this._proxy=e;this._commands=n;this._logService=o;this._treeViews=new Map;this._treeDragAndDropService=new iP;function r(s){return s&&s.$treeViewId&&(s.$treeItemHandle||s.$selectedTreeItems||s.$focusedTreeItem)}n.registerArgumentProcessor({processArgument:s=>r(s)?this._convertArgument(s):Array.isArray(s)&&s.length>0?s.map(a=>r(a)?this._convertArgument(a):a):s})}registerTreeDataProvider(e,n,o){let r=this.createTreeView(e,{treeDataProvider:n},o);return{dispose:()=>r.dispose()}}createTreeView(e,n,o){if(!n||!n.treeDataProvider)throw new Error("Options with treeDataProvider is mandatory");let r=n.dragAndDropController?.dropMimeTypes??[],s=n.dragAndDropController?.dragMimeTypes??[],a=!!n.dragAndDropController?.handleDrag,l=!!n.dragAndDropController?.handleDrop,d=this._createExtHostTreeView(e,n,o),c={showCollapseAll:!!n.showCollapseAll,canSelectMany:!!n.canSelectMany,dropMimeTypes:r,dragMimeTypes:s,hasHandleDrag:a,hasHandleDrop:l,manuallyManageCheckboxes:!!n.manageCheckboxStateManually},u=this._proxy.$registerTreeViewDataProvider(e,c),m={get onDidCollapseElement(){return d.onDidCollapseElement},get onDidExpandElement(){return d.onDidExpandElement},get selection(){return d.selectedElements},get onDidChangeSelection(){return d.onDidChangeSelection},get activeItem(){return A(o,"treeViewActiveItem"),d.focusedElement},get onDidChangeActiveItem(){return A(o,"treeViewActiveItem"),d.onDidChangeActiveItem},get visible(){return d.visible},get onDidChangeVisibility(){return d.onDidChangeVisibility},get onDidChangeCheckboxState(){return d.onDidChangeCheckboxState},get message(){return d.message},set message(g){Vo(g)&&A(o,"treeViewMarkdownMessage"),d.message=g},get title(){return d.title},set title(g){d.title=g},get description(){return d.description},set description(g){d.description=g},get badge(){return d.badge},set badge(g){g!==void 0&&R1.isViewBadge(g)?d.badge={value:Math.floor(Math.abs(g.value)),tooltip:g.tooltip}:g===void 0&&(d.badge=void 0)},reveal:(g,h)=>d.reveal(g,h),dispose:async()=>{await u,this._treeViews.get(e)===d&&(this._treeViews.delete(e),this._proxy.$disposeTree(e)),d.dispose()}};return this._register(m),m}async $getChildren(e,n){let o=this._treeViews.get(e);if(!o)return Promise.reject(new pi(e));if(!n){let s=await o.getChildren();return s?[[0,...s]]:void 0}let r=[];for(let s=0;s<n.length;s++){let a=n[s],l=await o.getChildren(a);l&&r.push([s,...l])}return r}async $handleDrop(e,n,o,r,s,a,l,d){let c=this._treeViews.get(e);if(!c)return Promise.reject(new pi(e));let u=xu.toDataTransfer(o,async m=>(await this._proxy.$resolveDropFileData(e,n,m)).buffer);return l===e&&d&&await this._addAdditionalTransferItems(u,c,d,s,a),c.onDrop(u,r,s)}async _addAdditionalTransferItems(e,n,o,r,s){let a=this._treeDragAndDropService.removeDragOperationTransfer(s);if(a)(await a)?.forEach((l,d)=>{l&&e.set(d,l)});else if(s&&n.handleDrag){let l=n.handleDrag(o,e,r);this._treeDragAndDropService.addDragOperationTransfer(s,l),await l}return e}async $handleDrag(e,n,o,r){let s=this._treeViews.get(e);if(!s)return Promise.reject(new pi(e));let a=await this._addAdditionalTransferItems(new oi,s,n,r,o);if(!(!a||r.isCancellationRequested))return xu.from(a)}async $hasResolve(e){let n=this._treeViews.get(e);if(!n)throw new pi(e);return n.hasResolve}$resolve(e,n,o){let r=this._treeViews.get(e);if(!r)throw new pi(e);return r.resolveTreeItem(n,o)}$setExpanded(e,n,o){let r=this._treeViews.get(e);if(!r)throw new pi(e);r.setExpanded(n,o)}$setSelectionAndFocus(e,n,o){let r=this._treeViews.get(e);if(!r)throw new pi(e);r.setSelectionAndFocus(n,o)}$setVisible(e,n){let o=this._treeViews.get(e);if(!o){if(!n)return;throw new pi(e)}o.setVisible(n)}$changeCheckboxState(e,n){let o=this._treeViews.get(e);if(!o)throw new pi(e);o.setCheckboxState(n)}_createExtHostTreeView(e,n,o){let r=this._register(new hN(e,n,this._proxy,this._commands.converter,this._logService,o));return this._treeViews.set(e,r),r}_convertArgument(e){let n=this._treeViews.get(e.$treeViewId),o=e;return n&&o.$treeItemHandle?n.getExtensionElement(o.$treeItemHandle):n&&e.$focusedTreeItem?n.focusedElement:null}},hN=class i extends U{constructor(e,n,o,r,s,a){super();this._viewId=e;this._proxy=o;this._commands=r;this._logService=s;this._extension=a;this._roots=void 0;this._elements=new Map;this._nodes=new Map;this._childrenFetchTokens=new Map;this._globalFetchTokenCounter=0;this._visible=!1;this._selectedHandles=[];this._focusedHandle=void 0;this._onDidExpandElement=this._register(new E);this.onDidExpandElement=this._onDidExpandElement.event;this._onDidCollapseElement=this._register(new E);this.onDidCollapseElement=this._onDidCollapseElement.event;this._onDidChangeSelection=this._register(new E);this.onDidChangeSelection=this._onDidChangeSelection.event;this._onDidChangeActiveItem=this._register(new E);this.onDidChangeActiveItem=this._onDidChangeActiveItem.event;this._onDidChangeVisibility=this._register(new E);this.onDidChangeVisibility=this._onDidChangeVisibility.event;this._onDidChangeCheckboxState=this._register(new E);this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event;this._onDidChangeData=this._register(new E);this._refreshPromise=Promise.resolve();this._refreshQueue=Promise.resolve();this._nodesToClear=new Set;this._message="";this._title="";this._refreshCancellationSource=new ke;if(a.contributes&&a.contributes.views)for(let u in a.contributes.views)for(let m of a.contributes.views[u])m.id===e&&(this._title=m.name);this._dataProvider=n.treeDataProvider,this._dndController=n.dragAndDropController,this._dataProvider.onDidChangeTreeData&&this._register(this._dataProvider.onDidChangeTreeData(u=>{Array.isArray(u)&&u.length===0||this._onDidChangeData.fire({message:!1,element:u})}));let l,d,c=ye.debounce(this._onDidChangeData.event,(u,m)=>(u||(u={message:!1,elements:[]}),m.element!==!1&&(l||(l=new Promise(g=>d=g),this._refreshPromise=this._refreshPromise.then(()=>l)),Array.isArray(m.element)?u.elements.push(...m.element):u.elements.push(m.element)),m.message&&(u.message=!0),u),200,!0);this._register(c(({message:u,elements:m})=>{m.length&&(m=qr(m),this._refreshQueue=this._refreshQueue.then(()=>{let g=d;l=null;let h=Array.from(this._nodesToClear);return this._nodesToClear.clear(),this._debugLogRefresh("start",m,h),this._refresh(m).then(()=>(this._debugLogRefresh("done",m,h),this._clearNodes(h),g())).catch(f=>{let I=f instanceof Error?f.message:JSON.stringify(f);return this._debugLogRefresh("error",m,h),this._clearNodes(h),this._logService.error(`Unable to refresh tree view ${this._viewId}: ${I}`),g()})})),u&&this._proxy.$setMessage(this._viewId,ge.fromStrict(this._message)??"")}))}static{this.LABEL_HANDLE_PREFIX="0"}static{this.ID_HANDLE_PREFIX="1"}static{this.ROOT_FETCH_KEY=Symbol("extHostTreeViewRoot")}get visible(){return this._visible}get selectedElements(){return this._selectedHandles.map(e=>this.getExtensionElement(e)).filter(e=>!Ht(e))}get focusedElement(){return this._focusedHandle?this.getExtensionElement(this._focusedHandle):void 0}_debugCollectHandles(e){let n=[];for(let r of e){if(!r){n.push("<root>");continue}let s=this._nodes.get(r);s&&n.push(s.item.handle)}let o=this._roots?.map(r=>r.item.handle)??[];return{changed:n,roots:o}}_debugLogRefresh(e,n,o){if(this._isDebugLogging())try{let r=this._debugCollectHandles(n);r.clearing=o.map(l=>l.item.handle);let s=r.changed.length,a=o.length;this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} changed=${s} nodesToClear=${a} elements.size=${this._elements.size} nodes.size=${this._nodes.size} handles=${JSON.stringify(r)}`)}catch{this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} (snapshot failed)`)}}_isDebugLogging(){try{let e=this._logService.getLevel();return e===2||e===1}catch{return!1}}async getChildren(e){let n=e?this.getExtensionElement(e):void 0;if(e&&!n)return this._logService.error(`No tree item with id '${e}' found.`),Promise.resolve([]);let o=this._getChildrenNodes(e);return o||(o=await this._fetchChildrenNodes(n)),o?o.map(r=>r.item):void 0}getExtensionElement(e){return this._elements.get(e)}reveal(e,n){n=n||{select:!0,focus:!1};let o=Ht(n.select)?!0:n.select,r=Ht(n.focus)?!1:n.focus,s=Ht(n.expand)?!1:n.expand;return typeof this._dataProvider.getParent!="function"?Promise.reject(new Error("Required registered TreeDataProvider to implement 'getParent' method to access 'reveal' method")):e?this._refreshPromise.then(()=>this._resolveUnknownParentChain(e)).then(a=>this._resolveTreeNode(e,a[a.length-1]).then(l=>this._proxy.$reveal(this._viewId,{item:l.item,parentChain:a.map(d=>d.item)},{select:o,focus:r,expand:s})),a=>this._logService.error(a)):this._proxy.$reveal(this._viewId,void 0,{select:o,focus:r,expand:s})}get message(){return this._message}set message(e){this._message=e,this._onDidChangeData.fire({message:!0,element:!1})}get title(){return this._title}set title(e){this._title=e,this._proxy.$setTitle(this._viewId,e,this._description)}get description(){return this._description}set description(e){this._description=e,this._proxy.$setTitle(this._viewId,this._title,e)}get badge(){return this._badge}set badge(e){this._badge?.value===e?.value&&this._badge?.tooltip===e?.tooltip||(this._badge=xb.from(e),this._proxy.$setBadge(this._viewId,e))}setExpanded(e,n){let o=this.getExtensionElement(e);o&&(n?this._onDidExpandElement.fire(Object.freeze({element:o})):this._onDidCollapseElement.fire(Object.freeze({element:o})))}setSelectionAndFocus(e,n){let o=!an(this._selectedHandles,e);this._selectedHandles=e;let r=this._focusedHandle!==n;this._focusedHandle=n,o&&this._onDidChangeSelection.fire(Object.freeze({selection:this.selectedElements})),r&&this._onDidChangeActiveItem.fire(Object.freeze({activeItem:this.focusedElement}))}setVisible(e){e!==this._visible&&(this._visible=e,this._onDidChangeVisibility.fire(Object.freeze({visible:this._visible})))}async setCheckboxState(e){let n=(await Promise.all(e.map(async o=>{let r=this.getExtensionElement(o.treeItemHandle);return r?{extensionItem:r,treeItem:await this._dataProvider.getTreeItem(r),newState:o.newState?1:0}:Promise.resolve(void 0)}))).filter(o=>o!==void 0);n.forEach(o=>{o.treeItem.checkboxState=o.newState?1:0}),this._onDidChangeCheckboxState.fire({items:n.map(o=>[o.extensionItem,o.newState])})}async handleDrag(e,n,o){let r=[];for(let s of e){let a=this.getExtensionElement(s);a&&r.push(a)}if(!(!this._dndController?.handleDrag||r.length===0))return await this._dndController.handleDrag(r,n,o),n}get hasHandleDrag(){return!!this._dndController?.handleDrag}async onDrop(e,n,o){let r=n?this.getExtensionElement(n):void 0;if(!(!r&&n||!this._dndController?.handleDrop))return bn(()=>this._dndController?.handleDrop?this._dndController.handleDrop(r,e,o):void 0)}get hasResolve(){return!!this._dataProvider.resolveTreeItem}async resolveTreeItem(e,n){if(!this._dataProvider.resolveTreeItem)return;let o=this._elements.get(e);if(o){let r=this._nodes.get(o);if(r){let s=await this._dataProvider.resolveTreeItem(r.extensionItem,o,n)??r.extensionItem;return this._validateTreeItem(s),r.item.tooltip=this._getTooltip(s.tooltip),r.item.command=this._getCommand(r.disposableStore,s.command),r.item}}}_resolveUnknownParentChain(e){return this._resolveParent(e).then(n=>n?this._resolveUnknownParentChain(n).then(o=>this._resolveTreeNode(n,o[o.length-1]).then(r=>(o.push(r),o))):Promise.resolve([]))}_resolveParent(e){let n=this._nodes.get(e);return n?Promise.resolve(n.parent?this._elements.get(n.parent.item.handle):void 0):bn(()=>this._dataProvider.getParent(e))}async _resolveTreeNode(e,n){let o=this._nodes.get(e);if(o)return o;let r=await bn(()=>this._dataProvider.getTreeItem(e)),s=this._createHandle(e,r,n,!0);await this.getChildren(n?n.item.handle:void 0);let a=this.getExtensionElement(s);if(a){let l=this._nodes.get(a);if(l)return l}throw this._logService.error(`[TreeView:${this._viewId}] Failed to resolve tree node for element ${s}`),this._proxy.$logResolveTreeNodeFailure(this._extension.identifier.value),new Error(`Cannot resolve tree item for element ${s} from extension ${this._extension.identifier.value}`)}_getChildrenNodes(e){if(e){let n;if(typeof e=="string"){let o=this.getExtensionElement(e);n=o?this._nodes.get(o):void 0}else n=e;return n&&n.children||void 0}return this._roots}_getFetchKey(e){return e??i.ROOT_FETCH_KEY}async _fetchChildrenNodes(e){this._addChildrenToClear(e);let n=this._getFetchKey(e),o=++this._globalFetchTokenCounter;this._childrenFetchTokens.set(n,o);let r=new ke(this._refreshCancellationSource.token);try{let s=await this._dataProvider.getChildren(e);if(this._childrenFetchTokens.get(n)!==o)return;let a=e?this._nodes.get(e):void 0;if(r.token.isCancellationRequested)return;let l=nt(s||[]),d=await Promise.all(nt(l).map(u=>this._dataProvider.getTreeItem(u)));if(this._childrenFetchTokens.get(n)!==o||r.token.isCancellationRequested)return;let c=d.map((u,m)=>u?this._createAndRegisterTreeNode(l[m],u,a):null);return this._childrenFetchTokens.get(n)!==o?void 0:nt(c)}finally{r.dispose()}}_refresh(e){if(e.some(o=>!o))return this._refreshCancellationSource.dispose(!0),this._refreshCancellationSource=new ke,this._addChildrenToClear(),this._proxy.$refresh(this._viewId);{let o=this._getHandlesToRefresh(e);if(o.length)return this._refreshHandles(o)}return Promise.resolve(void 0)}_getHandlesToRefresh(e){let n=new Set,o=e.map(s=>this._nodes.get(s));for(let s of o)if(s&&!n.has(s.item.handle)){let a=s;for(;a&&a.parent&&o.findIndex(l=>a&&a.parent&&l&&l.item.handle===a.parent.item.handle)===-1;){let l=this._elements.get(a.parent.item.handle);a=l?this._nodes.get(l):void 0}a&&!a.parent&&n.add(s.item.handle)}let r=[];return n.forEach(s=>{let a=this._elements.get(s);if(a){let l=this._nodes.get(a);l&&(!l.parent||!n.has(l.parent.item.handle))&&r.push(s)}}),r}_refreshHandles(e){let n={};return Promise.all(e.map(o=>this._refreshNode(o).then(r=>{r&&(n[o]=r.item)}))).then(()=>Object.keys(n).length?this._proxy.$refresh(this._viewId,n):void 0)}_refreshNode(e){let n=this.getExtensionElement(e);if(n){let o=this._nodes.get(n);if(o)return this._addChildrenToClear(n),bn(()=>this._dataProvider.getTreeItem(n)).then(r=>{if(r){let s=this._createTreeNode(n,r,o.parent);return this._updateNodeCache(n,s,o,o.parent),o.dispose(),s}return null})}return Promise.resolve(null)}_createAndRegisterTreeNode(e,n,o){let r=n.id?`${i.ID_HANDLE_PREFIX}/${n.id}`:void 0;if(r){let a=this._elements.get(r);if(a){let l=this._nodes.get(a);if(a!==e&&this._nodes.delete(a),l){let d=this._createTreeNode(e,n,o);return this._updateNodeCache(e,d,l,o),l.dispose(),d}}}let s=this._createTreeNode(e,n,o);return this._addNodeToCache(e,s),this._addNodeToParentCache(s,o),s}_getTooltip(e){return Xt.isMarkdownString(e)?ge.from(e):e}_getCommand(e,n){return n?{...this._commands.toInternal(n,e),originalId:n.command}:void 0}_getCheckbox(e){if(e.checkboxState===void 0)return;let n,o,r;return typeof e.checkboxState=="number"?n=e.checkboxState:(n=e.checkboxState.state,o=e.checkboxState.tooltip,r=e.checkboxState.accessibilityInformation),{isChecked:n===1,tooltip:o,accessibilityInformation:r}}_validateTreeItem(e){if(!ks.isTreeItem(e,this._extension))throw new Error(`Extension ${this._extension.identifier.value} has provided an invalid tree item.`)}_createTreeNode(e,n,o){this._validateTreeItem(n);let r=this._register(new z),s=this._createHandle(e,n,o),a=this._getLightIconPath(n);return{item:{handle:s,parentHandle:o?o.item.handle:void 0,label:b$(n.label,this._extension),description:n.description,resourceUri:n.resourceUri,tooltip:this._getTooltip(n.tooltip),command:this._getCommand(r,n.command),contextValue:n.contextValue,icon:a,iconDark:this._getDarkIconPath(n)||a,themeIcon:this._getThemeIcon(n),collapsibleState:Ht(n.collapsibleState)?0:n.collapsibleState,accessibilityInformation:n.accessibilityInformation,checkbox:this._getCheckbox(n)},extensionItem:n,parent:o,children:void 0,disposableStore:r,dispose(){r.dispose()}}}_getThemeIcon(e){return e.iconPath instanceof mn?e.iconPath:void 0}_createHandle(e,{id:n,label:o,resourceUri:r},s,a){if(n)return`${i.ID_HANDLE_PREFIX}/${n}`;let l=b$(o,this._extension),d=s?s.item.handle:i.LABEL_HANDLE_PREFIX,c="";l&&(Vo(l.label)?c=l.label.value:c=l.label);let u=c||(r?rt(r):"");u=u.indexOf("/")!==-1?u.replace("/","//"):u;let m=this._nodes.has(e)?this._nodes.get(e).item.handle:void 0,g=this._getChildrenNodes(s)||[],h,f=0;do{if(h=`${d}/${f}:${u}`,a||!this._elements.has(h)||m===h)break;f++}while(f<=g.length);return h}_getLightIconPath(e){if(e.iconPath&&!(e.iconPath instanceof mn))return typeof e.iconPath=="string"||b.isUri(e.iconPath)?this._getIconPath(e.iconPath):this._getIconPath(e.iconPath.light)}_getDarkIconPath(e){if(e.iconPath&&!(e.iconPath instanceof mn)&&e.iconPath.dark)return this._getIconPath(e.iconPath.dark)}_getIconPath(e){return b.isUri(e)?e:b.file(e)}_addNodeToCache(e,n){this._elements.set(n.item.handle,e),this._nodes.set(e,n)}_updateNodeCache(e,n,o,r){this._elements.delete(n.item.handle),this._nodes.delete(e),n.item.handle!==o.item.handle&&this._elements.delete(o.item.handle),this._addNodeToCache(e,n);let s=this._getChildrenNodes(r)||[],a=s.filter(l=>l.item.handle===o.item.handle)[0];a&&s.splice(s.indexOf(a),1,n)}_addNodeToParentCache(e,n){n?(n.children||(n.children=[]),n.children.push(e)):(this._roots||(this._roots=[]),this._roots.push(e))}_addChildrenToClear(e){if(e){let n=this._nodes.get(e);if(n){if(n.children)for(let o of n.children){this._nodesToClear.add(o);let r=this._elements.get(o.item.handle);r&&(this._addChildrenToClear(r),this._nodes.delete(r),this._elements.delete(o.item.handle))}n.children=void 0}}else this._addAllToClear()}_addAllToClear(){this._roots=void 0,this._nodes.forEach(e=>{this._nodesToClear.add(e)}),this._nodes.clear(),this._elements.clear(),this._childrenFetchTokens.clear()}_clearNodes(e){kn(e)}_clearAll(){this._roots=void 0,this._elements.clear(),kn(this._nodes.values()),this._nodes.clear(),kn(this._nodesToClear),this._nodesToClear.clear(),this._childrenFetchTokens.clear()}dispose(){super.dispose(),this._refreshCancellationSource.dispose(),this._clearAll()}};var aP=class i{constructor(t){this._openers=new Map;this._proxy=t.getProxy(F.MainThreadUriOpeners)}static{this.supportedSchemes=new Set([B.http,B.https])}registerExternalUriOpener(t,e,n,o){if(this._openers.has(e))throw new Error(`Opener with id '${e}' already registered`);let r=o.schemes.find(s=>!i.supportedSchemes.has(s));if(r)throw new Error(`Scheme '${r}' is not supported. Only http and https are currently supported.`);return this._openers.set(e,n),this._proxy.$registerUriOpener(e,o.schemes,t,o.label),Q(()=>{this._openers.delete(e),this._proxy.$unregisterUriOpener(e)})}async $canOpenUri(t,e,n){let o=this._openers.get(t);if(!o)throw new Error(`Unknown opener with id: ${t}`);let r=b.revive(e);return o.canOpenExternalUri(r,n)}async $openUri(t,e,n){let o=this._openers.get(t);if(!o)throw new Error(`Unknown opener id: '${t}'`);return o.openExternalUri(b.revive(e.resolvedUri),{sourceUri:b.revive(e.sourceUri)},n)}};var vN=class extends U{constructor(e,n,o,r){super();this.#a=void 0;this.#d=!0;this.#i=!1;this.#u=this._register(new E);this.onDidDispose=this.#u.event;this.#p=this._register(new E);this.onDidChangeViewState=this.#p.event;this.#e=e,this.#t=n,this.#o=o,this.#n=r.viewType,this.#s=r.panelOptions,this.#a=r.viewColumn,this.#r=r.title,this.#c=r.active}#e;#t;#n;#o;#s;#r;#l;#a;#d;#c;#i;#u;#p;dispose(){this.#i||(this.#i=!0,this.#u.fire(),this.#t.$disposeWebview(this.#e),this.#o.dispose(),super.dispose())}get webview(){return this.assertNotDisposed(),this.#o}get viewType(){return this.assertNotDisposed(),this.#n}get title(){return this.assertNotDisposed(),this.#r}set title(e){this.assertNotDisposed(),this.#r!==e&&(this.#r=e,this.#t.$setTitle(this.#e,e))}get iconPath(){return this.assertNotDisposed(),this.#l}set iconPath(e){this.assertNotDisposed(),this.#l!==e&&(this.#l=e,b.isUri(e)?this.#t.$setIconPath(this.#e,{light:e,dark:e}):this.#t.$setIconPath(this.#e,e))}get options(){return this.#s}get viewColumn(){if(this.assertNotDisposed(),!(typeof this.#a=="number"&&this.#a<0))return this.#a}get active(){return this.assertNotDisposed(),this.#c}get visible(){return this.assertNotDisposed(),this.#d}_updateViewState(e){this.#i||(this.active!==e.active||this.visible!==e.visible||this.viewColumn!==e.viewColumn)&&(this.#c=e.active,this.#d=e.visible,this.#a=e.viewColumn,this.#p.fire({webviewPanel:this}))}reveal(e,n){this.assertNotDisposed(),this.#t.$reveal(this.#e,{viewColumn:typeof e>"u"?void 0:$t.from(e),preserveFocus:!!n})}assertNotDisposed(){if(this.#i)throw new Error("Webview is disposed")}},lP=class i extends U{constructor(e,n,o){super();this.webviews=n;this.workspace=o;this._webviewPanels=new Map;this._serializers=new Map;this._proxy=e.getProxy(F.MainThreadWebviewPanels)}static newHandle(){return Pe()}dispose(){super.dispose(),this._webviewPanels.forEach(e=>e.dispose()),this._webviewPanels.clear()}createWebviewPanel(e,n,o,r,s={}){let a=typeof r=="object"?r.viewColumn:r,l={viewColumn:$t.from(a),preserveFocus:typeof r=="object"&&!!r.preserveFocus},d=nl(e),c=i.newHandle();this._proxy.$createWebviewPanel($u(e),c,n,{title:o,panelOptions:HJ(s),webviewOptions:nO(e,this.workspace,s),serializeBuffersForPostMessage:d},l);let u=this.webviews.createNewWebview(c,s,e);return this.createNewWebviewPanel(c,n,o,a,s,u,!0)}$onDidChangeWebviewPanelViewStates(e){let n=Object.keys(e);n.sort((o,r)=>{let s=e[o],a=e[r];return s.active?1:a.active?-1:+s.visible-+a.visible});for(let o of n){let r=this.getWebviewPanel(o);if(!r)continue;let s=e[o];r._updateViewState({active:s.active,visible:s.visible,viewColumn:$t.to(s.position)})}}async $onDidDisposeWebviewPanel(e){this.getWebviewPanel(e)?.dispose(),this._webviewPanels.delete(e),this.webviews.deleteWebview(e)}registerWebviewPanelSerializer(e,n,o){if(this._serializers.has(n))throw new Error(`Serializer for '${n}' already registered`);return this._serializers.set(n,{serializer:o,extension:e}),this._proxy.$registerSerializer(n,{serializeBuffersForPostMessage:nl(e)}),new xe(()=>{this._serializers.delete(n),this._proxy.$unregisterSerializer(n)})}async $deserializeWebviewPanel(e,n,o,r){let s=this._serializers.get(n);if(!s)throw new Error(`No serializer found for '${n}'`);let{serializer:a,extension:l}=s,d=this.webviews.createNewWebview(e,o.webviewOptions,l),c=this.createNewWebviewPanel(e,n,o.title,r,o.panelOptions,d,o.active);await a.deserializeWebviewPanel(c,o.state)}createNewWebviewPanel(e,n,o,r,s,a,l){let d=new vN(e,this._proxy,a,{viewType:n,title:o,viewColumn:r,panelOptions:s,active:l});return this._webviewPanels.set(e,d),d}getWebviewPanel(e){return this._webviewPanels.get(e)}};function HJ(i){return{enableFindWidget:i.enableFindWidget,retainContextWhenHidden:i.retainContextWhenHidden}}var bN=class extends U{constructor(e,n,o,r,s,a){super();this.#s=!1;this.#c=this._register(new E);this.onDidChangeVisibility=this.#c.event;this.#i=this._register(new E);this.onDidDispose=this.#i.event;this.#n=o,this.#l=r,this.#e=e,this.#t=n,this.#o=s,this.#r=a}#e;#t;#n;#o;#s;#r;#l;#a;#d;dispose(){this.#s||(this.#s=!0,this.#i.fire(),this.#o.dispose(),super.dispose())}#c;#i;get title(){return this.assertNotDisposed(),this.#l}set title(e){this.assertNotDisposed(),this.#l!==e&&(this.#l=e,this.#t.$setWebviewViewTitle(this.#e,e))}get description(){return this.assertNotDisposed(),this.#a}set description(e){this.assertNotDisposed(),this.#a!==e&&(this.#a=e,this.#t.$setWebviewViewDescription(this.#e,e))}get visible(){return this.#r}get webview(){return this.#o}get viewType(){return this.#n}_setVisible(e){e===this.#r||this.#s||(this.#r=e,this.#c.fire())}get badge(){return this.assertNotDisposed(),this.#d}set badge(e){this.assertNotDisposed(),!(e?.value===this.#d?.value&&e?.tooltip===this.#d?.tooltip)&&(this.#d=xb.from(e),this.#t.$setWebviewViewBadge(this.#e,e))}show(e){this.assertNotDisposed(),this.#t.$show(this.#e,!!e)}assertNotDisposed(){if(this.#s)throw new Error("Webview is disposed")}},dP=class{constructor(t,e){this._extHostWebview=e;this._viewProviders=new Map;this._webviewViews=new Map;this._proxy=t.getProxy(F.MainThreadWebviewViews)}registerWebviewViewProvider(t,e,n,o){if(this._viewProviders.has(e))throw new Error(`View provider for '${e}' already registered`);return this._viewProviders.set(e,{provider:n,extension:t}),this._proxy.$registerWebviewViewProvider($u(t),e,{retainContextWhenHidden:o?.retainContextWhenHidden,serializeBuffersForPostMessage:nl(t)}),new xe(()=>{this._viewProviders.delete(e),this._proxy.$unregisterWebviewViewProvider(e)})}async $resolveWebviewView(t,e,n,o,r){let s=this._viewProviders.get(e);if(!s)throw new Error(`No view provider found for '${e}'`);let{provider:a,extension:l}=s,d=this._extHostWebview.createNewWebview(t,{},l),c=new bN(t,this._proxy,e,n,d,!0);this._webviewViews.set(t,c),await a.resolveWebviewView(c,{state:o},r)}async $onDidChangeWebviewViewVisibility(t,e){this.getWebviewView(t)._setVisible(e)}async $disposeWebviewView(t){let e=this.getWebviewView(t);this._webviewViews.delete(t),e.dispose(),this._extHostWebview.deleteWebview(t)}getWebviewView(t){let e=this._webviewViews.get(t);if(!e)throw new Error("No webview found");return e}};var rh=class extends U{constructor(e,n){super();this._commands=n;this._handlePool=0;this._providers=new Map;this._itemPool=0;this._globalItems=new Map;this._providerItems=new Map;this._proxy=e.getProxy(F.MainThreadChatContext)}async $provideWorkspaceChatContext(e,n){this._clearProviderItems(e);let o=this._providers.get(e);if(!o||o.type!=="workspace")throw new Error("Workspace context provider not found");let r=o.provider,s=await r.provideWorkspaceChatContext?.(n)??await r.provideChatContext?.(n)??[];return this._convertItems(e,s)}async $provideExplicitChatContext(e,n){this._clearProviderItems(e);let o=this._providers.get(e);if(!o||o.type!=="explicit")throw new Error("Explicit context provider not found");let r=o.provider,s=await r.provideExplicitChatContext?.(n)??await r.provideChatContext?.(n)??[];return this._convertItems(e,s)}async $resolveExplicitChatContext(e,n,o){let r=this._providers.get(e);if(!r||r.type!=="explicit")throw new Error("Explicit context provider not found");let s=r.provider,a=this._globalItems.get(n.handle);if(!a)throw new Error("Chat context item not found");return this._doResolve((s.resolveExplicitChatContext??s.resolveChatContext)?.bind(s),n,a,o)}async $provideResourceChatContext(e,n,o){let r=this._providers.get(e);if(!r||r.type!=="resource")throw new Error("Resource context provider not found");let s=r.provider,a=await s.provideResourceChatContext?.({resource:b.revive(n.resource)},o)??await s.provideChatContext?.({resource:b.revive(n.resource)},o);if(!a)return;if(a.label===void 0&&a.resourceUri===void 0)throw new Error("ChatContextItem must have either a label or a resourceUri");let d={handle:this._addTrackedItem(e,a),icon:a.icon,label:a.label,resourceUri:a.resourceUri,modelDescription:a.modelDescription,tooltip:a.tooltip?ge.from(a.tooltip):void 0,value:n.withValue?a.value:void 0,command:a.command?{id:a.command.command}:void 0};if(n.withValue&&!d.value){let c=await(s.resolveResourceChatContext??s.resolveChatContext)?.bind(s)(a,o);d.value=c?.value,d.tooltip=c?.tooltip?ge.from(c.tooltip):d.tooltip}return d}async $resolveResourceChatContext(e,n,o){let r=this._providers.get(e);if(!r||r.type!=="resource")throw new Error("Resource context provider not found");let s=r.provider,a=this._globalItems.get(n.handle);if(!a)throw new Error("Chat context item not found");return this._doResolve((s.resolveResourceChatContext??s.resolveChatContext)?.bind(s),n,a,o)}async $executeChatContextItemCommand(e){let n=this._globalItems.get(e);if(!n)throw new Error("Chat context item not found");if(!n.command)throw new Error("Chat context item has no command");let o=n.command.arguments?[n,...n.command.arguments]:[n];await this._commands.executeCommand(n.command.command,...o)}registerChatWorkspaceContextProvider(e,n){let o=this._handlePool++,r=new z;return this._providers.set(o,{type:"workspace",provider:n,disposables:r}),this._listenForWorkspaceContextChanges(o,n,r),this._proxy.$registerChatWorkspaceContextProvider(o,e),{dispose:()=>{this._providers.delete(o),this._clearProviderItems(o),this._providerItems.delete(o),this._proxy.$unregisterChatContextProvider(o),r.dispose()}}}registerChatExplicitContextProvider(e,n){let o=this._handlePool++,r=new z;return this._providers.set(o,{type:"explicit",provider:n,disposables:r}),this._proxy.$registerChatExplicitContextProvider(o,e),{dispose:()=>{this._providers.delete(o),this._clearProviderItems(o),this._providerItems.delete(o),this._proxy.$unregisterChatContextProvider(o),r.dispose()}}}registerChatResourceContextProvider(e,n,o){let r=this._handlePool++,s=new z;return this._providers.set(r,{type:"resource",provider:o,disposables:s}),this._proxy.$registerChatResourceContextProvider(r,n,Fi.from(e)),{dispose:()=>{this._providers.delete(r),this._clearProviderItems(r),this._providerItems.delete(r),this._proxy.$unregisterChatContextProvider(r),s.dispose()}}}registerChatContextProvider(e,n,o){let r=[];if(o.provideWorkspaceChatContext){let s={onDidChangeWorkspaceChatContext:o.onDidChangeWorkspaceChatContext,provideWorkspaceChatContext:a=>o.provideWorkspaceChatContext(a)};r.push(this.registerChatWorkspaceContextProvider(n,s))}if(o.provideChatContextExplicit){let s={provideExplicitChatContext:a=>o.provideChatContextExplicit(a),resolveExplicitChatContext:o.resolveChatContext?(a,l)=>o.resolveChatContext(a,l):a=>a};r.push(this.registerChatExplicitContextProvider(n,s))}if(o.provideChatContextForResource&&e){let s={provideResourceChatContext:(a,l)=>o.provideChatContextForResource(a,l),resolveResourceChatContext:o.resolveChatContext?(a,l)=>o.resolveChatContext(a,l):a=>a};r.push(this.registerChatResourceContextProvider(e,n,s))}return{dispose:()=>{for(let s of r)s.dispose()}}}_clearProviderItems(e){let n=this._providerItems.get(e);if(n){for(let o of n)this._globalItems.delete(o);n.clear()}}_addTrackedItem(e,n){let o=this._itemPool++;return this._globalItems.set(o,n),this._providerItems.has(e)||this._providerItems.set(e,new Set),this._providerItems.get(e).add(o),o}_convertItems(e,n){let o=[];for(let r of n){if(r.label===void 0&&r.resourceUri===void 0)throw new Error("ChatContextItem must have either a label or a resourceUri");let s=this._addTrackedItem(e,r);o.push({handle:s,icon:r.icon,label:r.label,resourceUri:r.resourceUri,modelDescription:r.modelDescription,tooltip:r.tooltip?ge.from(r.tooltip):void 0,value:r.value,command:r.command?{id:r.command.command}:void 0})}return o}async _doResolve(e,n,o,r){let s=await e(o,r);return s?{handle:n.handle,icon:s.icon,label:s.label,resourceUri:s.resourceUri,modelDescription:s.modelDescription,tooltip:s.tooltip?ge.from(s.tooltip):void 0,value:s.value,command:s.command?{id:s.command.command}:void 0}:n}_listenForWorkspaceContextChanges(e,n,o){if(!n.onDidChangeWorkspaceChatContext)return;let r=async()=>{let s=await n.provideWorkspaceChatContext?.(me.None)??await n.provideChatContext?.(me.None),a=this._convertItems(e,s??[]);return this._proxy.$updateWorkspaceContextItems(e,a)};o.add(n.onDidChangeWorkspaceChatContext(async()=>r())),r()}dispose(){super.dispose();for(let{disposables:e}of this._providers.values())e.dispose()}};rh=D([C(0,ae),C(1,Fn)],rh);var ih=class extends U{constructor(e){super();this._nextHandle=0;this._activeProgress=new Map;this._onDidAddCoreEvent=this._register(new E({onWillAddFirstListener:()=>this._proxy.$subscribeToCoreDebugEvents(),onDidRemoveLastListener:()=>this._proxy.$unsubscribeFromCoreDebugEvents()}));this.onDidAddCoreEvent=this._onDidAddCoreEvent.event;this._proxy=e.getProxy(F.MainThreadChatDebug)}_progressKey(e,n){return`${e}:${b.revive(n).toString()}`}_cleanupProgress(e){let n=this._activeProgress.get(e);n&&(n.dispose(),this._activeProgress.delete(e))}registerChatDebugLogProvider(e){if(this._provider)throw new Error("A ChatDebugLogProvider is already registered.");this._provider=e;let n=this._nextHandle++;return this._proxy.$registerChatDebugLogProvider(n),Q(()=>{this._provider=void 0;for(let[o,r]of this._activeProgress)o.startsWith(`${n}:`)&&(r.dispose(),this._activeProgress.delete(o));this._proxy.$unregisterChatDebugLogProvider(n)})}async $provideChatDebugLog(e,n,o){if(!this._provider)return;let r=this._progressKey(e,n);this._cleanupProgress(r);let s=new z;this._activeProgress.set(r,s);let a=s.add(new E);s.add(a.event(l=>{let d=this._serializeEvent(l);d.sessionResource||(d.sessionResource=n),this._proxy.$acceptChatDebugEvent(e,d)})),s.add(o.onCancellationRequested(()=>{this._cleanupProgress(r)}));try{let l={report:u=>a.fire(u)},d=b.revive(n),c=await this._provider.provideChatDebugLog(d,l,o);return c?c.map(u=>this._serializeEvent(u)):void 0}catch(l){throw this._cleanupProgress(r),l}}_serializeEvent(e){let n={id:e.id,sessionResource:e.sessionResource,created:e.created.getTime(),parentEventId:e.parentEventId};switch(e._kind){case"toolCall":{let r=e;return{...n,kind:"toolCall",toolName:r.toolName,toolCallId:r.toolCallId,input:r.input,output:r.output,result:r.result===0?"success":r.result===1?"error":void 0,durationInMillis:r.durationInMillis}}case"modelTurn":{let r=e;return{...n,kind:"modelTurn",model:r.model,requestName:r.requestName,inputTokens:r.inputTokens,outputTokens:r.outputTokens,cachedTokens:r.cachedTokens,totalTokens:r.totalTokens,copilotUsageNanoAiu:r.copilotUsageNanoAiu,durationInMillis:r.durationInMillis}}case"generic":{let r=e;return{...n,kind:"generic",name:r.name,details:r.details,level:r.level,category:r.category}}case"subagentInvocation":{let r=e;return{...n,kind:"subagentInvocation",agentName:r.agentName,description:r.description,status:r.status===0?"running":r.status===1?"completed":r.status===2?"failed":void 0,durationInMillis:r.durationInMillis,toolCallCount:r.toolCallCount,modelTurnCount:r.modelTurnCount}}case"userMessage":{let r=e;return{...n,kind:"userMessage",message:r.message,sections:r.sections.map(s=>({name:s.name,content:s.content}))}}case"agentResponse":{let r=e;return{...n,kind:"agentResponse",message:r.message,sections:r.sections.map(s=>({name:s.name,content:s.content}))}}default:{let r=e,s=r.name,a=r.details;return{...n,kind:"generic",name:typeof s=="string"?s:"",details:typeof a=="string"?a:void 0,level:r.level??1,category:r.category}}}}async $resolveChatDebugLogEvent(e,n,o){if(!this._provider?.resolveChatDebugLogEvent)return;let r=await this._provider.resolveChatDebugLogEvent(n,o);if(!r)return;switch(r._kind){case"text":return{kind:"text",value:r.value};case"messageContent":{let a=r;return{kind:"message",type:a.type===0?"user":"agent",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"userMessage":{let a=r;return{kind:"message",type:"user",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"agentResponse":{let a=r;return{kind:"message",type:"agent",message:a.message,sections:a.sections.map(l=>({name:l.name,content:l.content}))}}case"toolCallContent":{let a=r;return{kind:"toolCall",toolName:a.toolName,result:a.result===0?"success":a.result===1?"error":void 0,durationInMillis:a.durationInMillis,input:a.input,output:a.output}}case"modelTurnContent":{let a=r;return{kind:"modelTurn",requestName:a.requestName,model:a.model,status:a.status,durationInMillis:a.durationInMillis,timeToFirstTokenInMillis:a.timeToFirstTokenInMillis,requestId:a.requestId,maxInputTokens:a.maxInputTokens,maxOutputTokens:a.maxOutputTokens,inputTokens:a.inputTokens,outputTokens:a.outputTokens,cachedTokens:a.cachedTokens,totalTokens:a.totalTokens,requestOptions:a.requestOptions,errorMessage:a.errorMessage,sections:a.sections?.map(l=>({name:l.name,content:l.content}))}}case"hookContent":{let a=r;return{kind:"hook",hookType:a.hookType,command:a.command,result:a.result===0?"success":a.result===1?"error":a.result===2?"nonBlockingError":void 0,durationInMillis:a.durationInMillis,input:a.input,output:a.output,exitCode:a.exitCode,errorMessage:a.errorMessage}}default:return}}_deserializeEvent(e){let n=new Date(e.created),o=e.sessionResource?b.revive(e.sessionResource):void 0;switch(e.kind){case"toolCall":{let r=new Nm(e.toolName,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.toolCallId=e.toolCallId,r.input=e.input,r.output=e.output,r.result=e.result==="success"?0:e.result==="error"?1:void 0,r.durationInMillis=e.durationInMillis,r}case"modelTurn":{let r=new Um(n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.model=e.model,r.requestName=e.requestName,r.inputTokens=e.inputTokens,r.outputTokens=e.outputTokens,r.cachedTokens=e.cachedTokens,r.totalTokens=e.totalTokens,r.copilotUsageNanoAiu=e.copilotUsageNanoAiu,r.durationInMillis=e.durationInMillis,r}case"generic":{let r=new Fm(e.name,e.level,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.details=e.details,r.category=e.category,r}case"subagentInvocation":{let r=new Hm(e.agentName,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.description=e.description,r.status=e.status==="running"?0:e.status==="completed"?1:e.status==="failed"?2:void 0,r.durationInMillis=e.durationInMillis,r.toolCallCount=e.toolCallCount,r.modelTurnCount=e.modelTurnCount,r}case"userMessage":{let r=new Vm(e.message,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.sections=e.sections.map(s=>new lu(s.name,s.content)),r}case"agentResponse":{let r=new Wm(e.message,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.sections=e.sections.map(s=>new lu(s.name,s.content)),r}default:return}}$onCoreDebugEvent(e){let n=this._deserializeEvent(e);n&&this._onDidAddCoreEvent.fire(n)}async $exportChatDebugLog(e,n,o,r,s){if(!this._provider?.provideChatDebugLogExport)return;let a=b.revive(n),d={coreEvents:o.map(u=>this._deserializeEvent(u)).filter(u=>u!==void 0),sessionTitle:r},c=await this._provider.provideChatDebugLogExport(a,d,s);if(c)return W.wrap(c)}async $importChatDebugLog(e,n,o){if(!this._provider?.resolveChatDebugLogImport)return;let r=await this._provider.resolveChatDebugLogImport(n.buffer,o);if(r)return{uri:r.uri,sessionTitle:r.sessionTitle}}async $getAvailableDebugSessionResources(e,n){return this._provider?.provideAvailableDebugSessionResources?await this._provider.provideAvailableDebugSessionResources(n)??[]:[]}dispose(){for(let e of this._activeProgress.values())e.dispose();this._activeProgress.clear(),super.dispose()}};ih=D([C(0,ae)],ih);function y$(i){let t=i.get(Xe),e=i.get(Xr),n=i.get(Bs),o=i.get(yo),r=i.get(Tn),s=i.get(Md),a=i.get(En),l=i.get(ps),d=i.get(ae),c=i.get(yg),u=i.get(xg),m=i.get(Zo),g=i.get(ne),h=i.get(Rd),f=i.get(Vi),I=i.get(Ru),x=i.get(wE),T=i.get(Au),w=i.get(Vg),M=i.get(Bi),O=i.get(zg),N=i.get(Mu),$=i.get(Mg),X=i.get(Lg),j=i.get(Hu),q=i.get(AE),oe=i.get(LE),ve=i.get(NE);d.set(fe.ExtHostFileSystemInfo,e),d.set(fe.ExtHostLogLevelServiceShape,m),d.set(fe.ExtHostWorkspace,r),d.set(fe.ExtHostConfiguration,a),d.set(fe.ExtHostExtensionService,o),d.set(fe.ExtHostStorage,c),d.set(fe.ExtHostTunnelService,h),d.set(fe.ExtHostWindow,I),d.set(fe.ExtHostPower,x),d.set(fe.ExtHostUrls,T),d.set(fe.ExtHostSecretState,w),d.set(fe.ExtHostTelemetry,s),d.set(fe.ExtHostEditorTabs,M),d.set(fe.ExtHostManagedSockets,O),d.set(fe.ExtHostProgress,N),d.set(fe.ExtHostAuthentication,$),d.set(fe.ExtHostChatProvider,X),d.set(fe.ExtHostDataChannels,q),d.set(fe.ExtHostMeteredConnection,oe),d.set(fe.ExtHostGitExtension,ve);let yt=d.set(fe.ExtHostDecorations,i.get(pE)),ze=d.set(fe.ExtHostDocumentsAndEditors,i.get(Br)),te=d.set(fe.ExtHostCommands,i.get(Fn)),Y=d.set(fe.ExtHostTerminalService,i.get(Ro)),ie=d.set(fe.ExtHostTerminalShellIntegration,i.get(cf)),ee=d.set(fe.ExtHostDebugService,i.get(of)),le=d.set(fe.ExtHostSearch,i.get(af)),re=d.set(fe.ExtHostTask,i.get(Xg)),pe=d.set(fe.ExtHostOutputService,i.get(uE)),et=d.set(fe.ExtHostLocalization,i.get(Bg)),Ne=d.set(fe.ExtHostDocuments,new xw(d,ze)),It=d.set(fe.ExtHostDocumentContentProviders,new yw(d,ze,g)),Ut=d.set(fe.ExtHostDocumentSaveParticipant,new Iw(g,Ne,d.getProxy(F.MainThreadBulkEdits))),Ge=d.set(fe.ExtHostNotebook,new Kk(d,te,ze,Ne,n,le,g)),Rn=d.set(fe.ExtHostNotebookDocuments,new Gk(Ge)),Lo=d.set(fe.ExtHostNotebookEditors,new eh(g,Ge)),Qi=d.set(fe.ExtHostNotebookKernels,new th(d,t,Ge,te,g)),sl=d.set(fe.ExtHostNotebookRenderers,new Jk(d,Ge)),mi=d.set(fe.ExtHostNotebookDocumentSaveParticipant,new jk(g,Ge,d.getProxy(F.MainThreadBulkEdits))),Se=d.set(fe.ExtHostEditors,new oP(d,ze)),Dt=d.set(fe.ExtHostTreeViews,new sP(d.getProxy(F.MainThreadTreeViews),te,g)),Ih=d.set(fe.ExtHostEditorInsets,new uw(d.getProxy(F.MainThreadEditorInsets),Se,t.remote)),_r=d.set(fe.ExtHostDiagnostics,new ui(d,g,e,ze)),jo=d.set(fe.ExtHostLanguages,new Mk(d,Ne,te.converter,l)),tt=d.set(fe.ExtHostLanguageFeatures,new Jw(d,l,Ne,te,_r,g,f,s)),Zd=d.set(fe.ExtHostCodeMapper,new pw(d)),tp=d.set(fe.ExtHostFileSystem,new Ew(d,tt)),gi=d.set(fe.ExtHostFileSystemEventService,new Dw(d,g,ze)),Ji=d.set(fe.ExtHostQuickOpen,m$(d,r,te)),ec=d.set(fe.ExtHostSCM,new nh(d,te,Ne,g)),tc=d.set(fe.ExtHostQuickDiff,new Xk(d,l)),Go=d.set(fe.ExtHostShare,new Zk(d,l)),al=d.set(fe.ExtHostComments,u5(d,te,Ne)),gn=d.set(fe.ExtHostLabelService,new Aw(d)),to=d.set(fe.ExtHostTheming,new oh(d)),Jy=d.set(fe.ExtHostTimeline,new rP(d,te)),nc=d.set(fe.ExtHostWebviews,new gw(d,t.remote,r,g,f)),Ys=d.set(fe.ExtHostWebviewPanels,new lP(d,nc,r)),np=d.set(fe.ExtHostCustomEditors,new hw(d,Ne,u,nc,Ys)),L=d.set(fe.ExtHostWebviewViews,new dP(d,nc)),K=d.set(fe.ExtHostTesting,i.get(el)),J=d.set(fe.ExtHostUriOpeners,new aP(d)),Ae=d.set(fe.ExtHostProfileContentHandlers,new Yk(d)),qe=d.set(fe.ExtHostChatOutputRenderer,new iw(d,nc));d.set(fe.ExtHostInteractive,new Rw(d,Ge,ze,te,g));let fn=d.set(fe.ExtHostLanguageModelTools,new Ak(d,X)),wt=d.set(fe.ExtHostChatSessions,new wf(te,X,d,g)),ct=d.set(fe.ExtHostChatAgents2,new ow(d,g,te,Ne,ze,X,_r,fn,wt)),on=d.set(fe.ExtHostChatContext,new rh(d,te)),zn=d.set(fe.ExtHostChatDebug,new ih(d)),lr=d.set(fe.ExtHostAiRelatedInformation,new ZE(d)),In=d.set(fe.ExtHostAiEmbeddingVector,new Cw(d)),qn=d.set(fe.ExtHostAiSettingsSearch,new ew(d)),po=d.set(fe.ExtHostStatusBar,new nP(d,te.converter)),dr=d.set(fe.ExtHostSpeech,new eP(d)),Be=d.set(fe.ExtHostEmbeddings,new Sw(d)),Ye=d.set(fe.ExtHostBrowsers,new tP(d)),qt=d.set(fe.ExtHostChatQuota,new lw(d));d.set(fe.ExtHostMcp,i.get(Hu));let rn=Object.values(fe);d.assertRegistered(rn);let Kn=new Tf(d,ze),xh=new cw(d),Yi=new Yf(d,g),Xs=new bw(d),QN=new aw(d),JN=new dw(d);return nw.register(te),function(P,Zs,se){function ue(y){return(S,_,Te)=>{let ft=y(sn=>{try{S.call(_,sn)}catch(ZN){ta(new Rp(P.identifier,ZN,"FAILED to handle event"))}});return Te?.push(ft),ft}}let Ft=(function(){let y=!P.isUnderDevelopment;function S(){y||(g.info(`Extension '${P.identifier.value}' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305`),y=!0)}return function _(Te){if(Array.isArray(Te))Te.forEach(_);else if(typeof Te=="string")S();else{let ft=Te;typeof ft.scheme>"u"&&S(),typeof ft.exclusive=="boolean"&&A(P,"documentFiltersExclusive")}return Te}})(),vz={getSession(y,S,_){return(typeof _?.forceNewSession=="object"&&_.forceNewSession.learnMore||typeof _?.createIfNone=="object"&&_.createIfNone.learnMore)&&A(P,"authLearnMore"),_?.authorizationServer&&A(P,"authIssuers"),$.getSession(P,y,S,_)},getAccounts(y){return $.getAccounts(y)},async hasSession(y,S){return A(P,"authSession"),!!await $.getSession(P,y,S,{silent:!0})},get onDidChangeSessions(){return ue($.getExtensionScopedSessionsEvent(P.identifier.value))},registerAuthenticationProvider(y,S,_,Te){return Te?.supportedAuthorizationServers&&A(P,"authIssuers"),$.registerAuthenticationProvider(y,S,_,Te)}},Sh={registerCommand(y,S,_){return te.registerCommand(!0,y,S,_,void 0,P)},registerTextEditorCommand(y,S,_){return te.registerCommand(!0,y,(...Te)=>{let ft=Se.getActiveTextEditor();if(!ft){g.warn("Cannot execute "+y+" because there is no active text editor.");return}return ft.edit(sn=>{S.apply(_,[ft,sn,...Te])}).then(sn=>{sn||g.warn("Edits from command "+y+" were not applied.")},sn=>{g.warn("An error occurred while running command "+y,sn)})},void 0,void 0,P)},registerDiffInformationCommand:(y,S,_)=>(A(P,"diffCommand"),te.registerCommand(!0,y,async(...Te)=>{let ft=ze.activeEditor(!0);if(!ft){g.warn("Cannot execute "+y+" because there is no active text editor.");return}let sn=await Se.getDiffInformation(ft.id);S.apply(_,[sn,...Te])},void 0,void 0,P)),executeCommand(y,...S){return te.executeCommand(y,...S)},getCommands(y=!1){return te.getCommands(y)}},YN={get machineId(){return t.telemetryInfo.machineId},get devDeviceId(){return A(P,"devDeviceId"),t.telemetryInfo.devDeviceId??t.telemetryInfo.machineId},get isAppPortable(){return t.environment.isPortable??!1},get sessionId(){return t.telemetryInfo.sessionId},get language(){return t.environment.appLanguage},get appName(){return t.environment.appName},get appRoot(){return t.environment.appRoot?.fsPath??""},get appHost(){return t.environment.appHost},get uriScheme(){return t.environment.appUriScheme},get clipboard(){return xh.value},get shell(){return Y.getDefaultShell(!1)},get onDidChangeShell(){return ue(Y.onDidChangeShell)},get isTelemetryEnabled(){return s.getTelemetryConfiguration()},get onDidChangeTelemetryEnabled(){return ue(s.onDidChangeTelemetryEnabled)},get telemetryConfiguration(){return A(P,"telemetry"),s.getTelemetryDetails()},get onDidChangeTelemetryConfiguration(){return A(P,"telemetry"),ue(s.onDidChangeTelemetryConfiguration)},get isMeteredConnection(){return A(P,"envIsConnectionMetered"),oe.isConnectionMetered},get onDidChangeMeteredConnection(){return A(P,"envIsConnectionMetered"),ue(oe.onDidChangeIsConnectionMetered)},get isNewAppInstall(){return u0(t.telemetryInfo.firstSessionDate)},createTelemetryLogger(y,S){return Fb.validateSender(y),s.instantiateLogger(P,y,S)},async openExternal(y,S){return I.openUri(y,{allowTunneling:t.remote.isRemote??(t.remote.authority?await h.hasTunnelProvider():!1),allowContributedOpeners:S?.allowContributedOpeners})},async asExternalUri(y){if(y.scheme===t.environment.appUriScheme)return T.createAppUri(y);try{return await I.asExternalUri(y,{allowTunneling:!!t.remote.authority})}catch(S){if(MI(y,B.http)||MI(y,B.https))return y;throw S}},get remoteName(){return cv(t.remote.authority)},get remoteAuthority(){return A(P,"resolvers"),t.remote.authority},get uiKind(){return t.uiKind},get logLevel(){return g.getLevel()},get onDidChangeLogLevel(){return ue(g.onDidChangeLogLevel)},get appQuality(){return A(P,"resolvers"),t.quality},get appCommit(){return A(P,"resolvers"),t.commit},getDataChannel(y){return A(P,"dataChannels"),q.createDataChannel(P,y)},get power(){return A(P,"environmentPower"),{get onDidSuspend(){return ue(x.onDidSuspend)},get onDidResume(){return ue(x.onDidResume)},get onDidChangeOnBatteryPower(){return ue(x.onDidChangeOnBatteryPower)},get onDidChangeThermalState(){return ue(x.onDidChangeThermalState)},get onDidChangeSpeedLimit(){return ue(x.onDidChangeSpeedLimit)},get onWillShutdown(){return ue(x.onWillShutdown)},get onDidLockScreen(){return ue(x.onDidLockScreen)},get onDidUnlockScreen(){return ue(x.onDidUnlockScreen)},getSystemIdleState(y){return x.getSystemIdleState(y)},getSystemIdleTime(){return x.getSystemIdleTime()},getCurrentThermalState(){return x.getCurrentThermalState()},isOnBatteryPower(){return x.isOnBatteryPower()},async startPowerSaveBlocker(y){let S=await x.startPowerSaveBlocker(y);return{id:S.id,get isStarted(){return S.isStarted},dispose(){S.dispose()}}}}}};t.environment.extensionTestsLocationURI||Object.freeze(YN);let bz={createTestController(y,S,_){return K.createTestController(P,y,S,_)},createTestObserver(){return A(P,"testObserver"),K.createTestObserver()},runTests(y){return A(P,"testObserver"),K.runTests(y)},registerTestFollowupProvider(y){return A(P,"testObserver"),K.registerTestFollowupProvider(y)},get onDidChangeTestResults(){return A(P,"testObserver"),ue(K.onResultsChanged)},get testResults(){return A(P,"testObserver"),K.results}},Yy=t.remote.isRemote?2:1,yz={getExtension(y,S){Oe(P,"extensionsAny")||(S=!1);let _=Zs.mine.getExtensionDescription(y);if(_)return new Hd(o,P.identifier,_,Yy,!1);if(S){let Te=Zs.all.getExtensionDescription(y);if(Te)return new Hd(o,P.identifier,Te,Yy,!0)}},get all(){let y=[];for(let S of Zs.mine.getAllExtensionDescriptions())y.push(new Hd(o,P.identifier,S,Yy,!1));return y},get allAcrossExtensionHosts(){A(P,"extensionsAny");let y=new Ho(Zs.mine.getAllExtensionDescriptions().map(_=>_.identifier)),S=[];for(let _ of Zs.all.getAllExtensionDescriptions()){let Te=!y.has(_.identifier);S.push(new Hd(o,P.identifier,_,Yy,Te))}return S},get onDidChange(){return Oe(P,"extensionsAny")?ue(ye.any(Zs.mine.onDidChange,Zs.all.onDidChange)):ue(Zs.mine.onDidChange)}},Iz={createDiagnosticCollection(y){return _r.createDiagnosticCollection(P.identifier,y)},get onDidChangeDiagnostics(){return ue(_r.onDidChangeDiagnostics)},getDiagnostics:y=>_r.getDiagnostics(y),getLanguages(){return jo.getLanguages()},setTextDocumentLanguage(y,S){return jo.changeLanguage(y.uri,S)},match(y,S){let _=wM.from(y),Te;return BL(_)&&(Te=Ge.notebookDocuments.find(ft=>ft.apiNotebook.getCells().find(sn=>sn.document===S))?.apiNotebook),WL(_,S.uri,S.languageId,!0,Te?.uri,Te?.notebookType)},registerCodeActionsProvider(y,S,_){return tt.registerCodeActionProvider(P,Ft(y),S,_)},registerDocumentPasteEditProvider(y,S,_){return tt.registerDocumentPasteEditProvider(P,Ft(y),S,_)},registerCodeLensProvider(y,S){return tt.registerCodeLensProvider(P,Ft(y),S)},registerDefinitionProvider(y,S){return tt.registerDefinitionProvider(P,Ft(y),S)},registerDeclarationProvider(y,S){return tt.registerDeclarationProvider(P,Ft(y),S)},registerImplementationProvider(y,S){return tt.registerImplementationProvider(P,Ft(y),S)},registerTypeDefinitionProvider(y,S){return tt.registerTypeDefinitionProvider(P,Ft(y),S)},registerHoverProvider(y,S){return tt.registerHoverProvider(P,Ft(y),S,P.identifier)},registerEvaluatableExpressionProvider(y,S){return tt.registerEvaluatableExpressionProvider(P,Ft(y),S,P.identifier)},registerInlineValuesProvider(y,S){return tt.registerInlineValuesProvider(P,Ft(y),S,P.identifier)},registerDocumentHighlightProvider(y,S){return tt.registerDocumentHighlightProvider(P,Ft(y),S)},registerMultiDocumentHighlightProvider(y,S){return tt.registerMultiDocumentHighlightProvider(P,Ft(y),S)},registerLinkedEditingRangeProvider(y,S){return tt.registerLinkedEditingRangeProvider(P,Ft(y),S)},registerReferenceProvider(y,S){return tt.registerReferenceProvider(P,Ft(y),S)},registerRenameProvider(y,S){return tt.registerRenameProvider(P,Ft(y),S)},registerNewSymbolNamesProvider(y,S){return A(P,"newSymbolNamesProvider"),tt.registerNewSymbolNamesProvider(P,Ft(y),S)},registerDocumentSymbolProvider(y,S,_){return tt.registerDocumentSymbolProvider(P,Ft(y),S,_)},registerWorkspaceSymbolProvider(y){return tt.registerWorkspaceSymbolProvider(P,y)},registerDocumentFormattingEditProvider(y,S){return tt.registerDocumentFormattingEditProvider(P,Ft(y),S)},registerDocumentRangeFormattingEditProvider(y,S){return tt.registerDocumentRangeFormattingEditProvider(P,Ft(y),S)},registerOnTypeFormattingEditProvider(y,S,_,...Te){return tt.registerOnTypeFormattingEditProvider(P,Ft(y),S,[_].concat(Te))},registerDocumentSemanticTokensProvider(y,S,_){return tt.registerDocumentSemanticTokensProvider(P,Ft(y),S,_)},registerDocumentRangeSemanticTokensProvider(y,S,_){return tt.registerDocumentRangeSemanticTokensProvider(P,Ft(y),S,_)},registerSignatureHelpProvider(y,S,_,...Te){return typeof _=="object"?tt.registerSignatureHelpProvider(P,Ft(y),S,_):tt.registerSignatureHelpProvider(P,Ft(y),S,typeof _>"u"?[]:[_,...Te])},registerCompletionItemProvider(y,S,..._){return tt.registerCompletionItemProvider(P,Ft(y),S,_)},registerInlineCompletionItemProvider(y,S,_){return S.handleDidShowCompletionItem&&A(P,"inlineCompletionsAdditions"),S.handleDidPartiallyAcceptCompletionItem&&A(P,"inlineCompletionsAdditions"),_&&A(P,"inlineCompletionsAdditions"),tt.registerInlineCompletionsProvider(P,Ft(y),S,_)},get inlineCompletionsUnificationState(){return A(P,"inlineCompletionsAdditions"),tt.inlineCompletionsUnificationState},onDidChangeCompletionsUnificationState(y,S,_){return A(P,"inlineCompletionsAdditions"),ue(tt.onDidChangeInlineCompletionsUnificationState)(y,S,_)},registerDocumentLinkProvider(y,S){return tt.registerDocumentLinkProvider(P,Ft(y),S)},registerColorProvider(y,S){return tt.registerColorProvider(P,Ft(y),S)},registerFoldingRangeProvider(y,S){return tt.registerFoldingRangeProvider(P,Ft(y),S)},registerSelectionRangeProvider(y,S){return tt.registerSelectionRangeProvider(P,y,S)},registerCallHierarchyProvider(y,S){return tt.registerCallHierarchyProvider(P,y,S)},registerTypeHierarchyProvider(y,S){return tt.registerTypeHierarchyProvider(P,y,S)},setLanguageConfiguration:(y,S)=>tt.setLanguageConfiguration(P,y,S),getTokenInformationAtPosition(y,S){return A(P,"tokenInformation"),jo.tokenAtPosition(y,S)},registerInlayHintsProvider(y,S){return tt.registerInlayHintsProvider(P,y,S)},createLanguageStatusItem(y,S){return jo.createLanguageStatusItem(P,y,S)},registerDocumentDropEditProvider(y,S,_){return tt.registerDocumentOnDropEditProvider(P,y,S,_)}},xz={get activeTextEditor(){return Se.getActiveTextEditor()},get visibleTextEditors(){return Se.getVisibleTextEditors()},get activeTerminal(){return Y.activeTerminal},get terminals(){return Y.terminals},async showTextDocument(y,S,_){b.isUri(y)&&y.scheme===B.vscodeRemote&&!y.authority&&f.report("workspace.showTextDocument",P,"A URI of 'vscode-remote' scheme requires an authority.");let Te=await(b.isUri(y)?Promise.resolve(XN.openTextDocument(y)):Promise.resolve(y));return Se.showTextDocument(Te,S,_)},createTextEditorDecorationType(y){return Se.createTextEditorDecorationType(P,y)},onDidChangeActiveTextEditor(y,S,_){return ue(Se.onDidChangeActiveTextEditor)(y,S,_)},onDidChangeVisibleTextEditors(y,S,_){return ue(Se.onDidChangeVisibleTextEditors)(y,S,_)},onDidChangeTextEditorSelection(y,S,_){return ue(Se.onDidChangeTextEditorSelection)(y,S,_)},onDidChangeTextEditorOptions(y,S,_){return ue(Se.onDidChangeTextEditorOptions)(y,S,_)},onDidChangeTextEditorVisibleRanges(y,S,_){return ue(Se.onDidChangeTextEditorVisibleRanges)(y,S,_)},onDidChangeTextEditorViewColumn(y,S,_){return ue(Se.onDidChangeTextEditorViewColumn)(y,S,_)},onDidChangeTextEditorDiffInformation(y,S,_){return A(P,"textEditorDiffInformation"),ue(Se.onDidChangeTextEditorDiffInformation)(y,S,_)},onDidCloseTerminal(y,S,_){return ue(Y.onDidCloseTerminal)(y,S,_)},onDidOpenTerminal(y,S,_){return ue(Y.onDidOpenTerminal)(y,S,_)},onDidChangeActiveTerminal(y,S,_){return ue(Y.onDidChangeActiveTerminal)(y,S,_)},onDidChangeTerminalDimensions(y,S,_){return A(P,"terminalDimensions"),ue(Y.onDidChangeTerminalDimensions)(y,S,_)},onDidChangeTerminalState(y,S,_){return ue(Y.onDidChangeTerminalState)(y,S,_)},onDidWriteTerminalData(y,S,_){return A(P,"terminalDataWriteEvent"),ue(Y.onDidWriteTerminalData)(y,S,_)},onDidExecuteTerminalCommand(y,S,_){return A(P,"terminalExecuteCommandEvent"),ue(Y.onDidExecuteTerminalCommand)(y,S,_)},onDidChangeTerminalShellIntegration(y,S,_){return ue(ie.onDidChangeTerminalShellIntegration)(y,S,_)},onDidStartTerminalShellExecution(y,S,_){return ue(ie.onDidStartTerminalShellExecution)(y,S,_)},onDidEndTerminalShellExecution(y,S,_){return ue(ie.onDidEndTerminalShellExecution)(y,S,_)},get state(){return I.getState()},onDidChangeWindowState(y,S,_){return ue(I.onDidChangeWindowState)(y,S,_)},showInformationMessage(y,...S){return Yi.showMessage(P,it.Info,y,S[0],S.slice(1))},showWarningMessage(y,...S){return Yi.showMessage(P,it.Warning,y,S[0],S.slice(1))},showErrorMessage(y,...S){return Yi.showMessage(P,it.Error,y,S[0],S.slice(1))},showQuickPick(y,S,_){return Ji.showQuickPick(P,y,S,_)},showWorkspaceFolderPick(y){return Ji.showWorkspaceFolderPick(y)},showInputBox(y,S){return Ji.showInput(y,S)},showOpenDialog(y){return Xs.showOpenDialog(y)},showSaveDialog(y){return Xs.showSaveDialog(y)},createStatusBarItem(y,S,_){let Te,ft,sn;return typeof y=="string"?(Te=y,ft=S,sn=_):(ft=y,sn=S),po.createStatusBarEntry(P,Te,ft,sn)},setStatusBarMessage(y,S){return po.setStatusBarMessage(y,S)},withScmProgress(y){return f.report("window.withScmProgress",P,"Use 'withProgress' instead."),N.withProgress(P,{location:1},(S,_)=>y({report(Te){}}))},withProgress(y,S){return N.withProgress(P,y,S)},createOutputChannel(y,S){return pe.createOutputChannel(y,S,P)},createWebviewPanel(y,S,_,Te){return Ys.createWebviewPanel(P,y,S,_,Te)},createWebviewTextEditorInset(y,S,_,Te){return A(P,"editorInsets"),Ih.createWebviewEditorInset(y,S,_,Te,P)},createTerminal(y,S,_){if(typeof y=="object"){let Te=y;return!Oe(P,"terminalTitle")&&"titleTemplate"in y&&y.titleTemplate!==void 0&&(console.error(`[${P.identifier.value}] \`titleTemplate\` was provided to window.createTerminal but is ignored because the \`terminalTitle\` proposed API is not enabled.`),Te={...y,titleTemplate:void 0}),"pty"in Te?Y.createExtensionTerminal(Te):Y.createTerminalFromOptions(Te)}return Y.createTerminal(y,S,_)},registerTerminalLinkProvider(y){return Y.registerLinkProvider(y)},registerTerminalProfileProvider(y,S){return Y.registerProfileProvider(P,y,S)},registerTerminalCompletionProvider(y,...S){return A(P,"terminalCompletionProvider"),Y.registerTerminalCompletionProvider(P,y,...S)},registerTerminalQuickFixProvider(y,S){return A(P,"terminalQuickFixProvider"),Y.registerTerminalQuickFixProvider(y,P.identifier.value,S)},registerTreeDataProvider(y,S){return Dt.registerTreeDataProvider(y,S,P)},createTreeView(y,S){return Dt.createTreeView(y,S,P)},registerWebviewPanelSerializer:(y,S)=>Ys.registerWebviewPanelSerializer(P,y,S),registerCustomEditorProvider:(y,S,_={})=>np.registerCustomEditorProvider(P,y,S,_),registerFileDecorationProvider(y){return yt.registerFileDecorationProvider(y,P)},registerUriHandler(y){return T.registerUriHandler(P,y)},createQuickPick(){return Ji.createQuickPick(P)},createInputBox(){return Ji.createInputBox(P)},get activeColorTheme(){return to.activeColorTheme},onDidChangeActiveColorTheme(y,S,_){return ue(to.onDidChangeActiveColorTheme)(y,S,_)},registerWebviewViewProvider(y,S,_){return L.registerWebviewViewProvider(P,y,S,_?.webviewOptions)},get activeNotebookEditor(){return Ge.activeNotebookEditor},onDidChangeActiveNotebookEditor(y,S,_){return ue(Ge.onDidChangeActiveNotebookEditor)(y,S,_)},get visibleNotebookEditors(){return Ge.visibleNotebookEditors},get onDidChangeVisibleNotebookEditors(){return ue(Ge.onDidChangeVisibleNotebookEditors)},onDidChangeNotebookEditorSelection(y,S,_){return ue(Lo.onDidChangeNotebookEditorSelection)(y,S,_)},onDidChangeNotebookEditorVisibleRanges(y,S,_){return ue(Lo.onDidChangeNotebookEditorVisibleRanges)(y,S,_)},showNotebookDocument(y,S){return Ge.showNotebookDocument(y,S)},registerExternalUriOpener(y,S,_){return A(P,"externalUriOpener"),J.registerExternalUriOpener(P.identifier,y,S,_)},registerProfileContentHandler(y,S){return A(P,"profileContentHandlers"),Ae.registerProfileContentHandler(P,y,S)},registerQuickDiffProvider(y,S,_,Te,ft){return A(P,"quickDiffProvider"),tc.registerQuickDiffProvider(P,Ft(y),S,_,Te,ft)},get tabGroups(){return M.tabGroups},registerShareProvider(y,S){return A(P,"shareProvider"),Go.registerShareProvider(Ft(y),S)},get nativeHandle(){return A(P,"nativeWindowHandle"),I.nativeHandle},createChatStatusItem:y=>(A(P,"chatStatusItem"),QN.createChatStatusItem(P,y)),get activeChatPanelSessionResource(){return A(P,"chatParticipantPrivate"),ct.activeChatPanelSessionResource},onDidChangeActiveChatPanelSessionResource:(y,S,_)=>(A(P,"chatParticipantPrivate"),ue(ct.onDidChangeActiveChatPanelSessionResource)(y,S,_)),get browserTabs(){return A(P,"browser"),Ye.browserTabs},onDidOpenBrowserTab(y,S,_){return A(P,"browser"),ue(Ye.onDidOpenBrowserTab)(y,S,_)},onDidCloseBrowserTab(y,S,_){return A(P,"browser"),ue(Ye.onDidCloseBrowserTab)(y,S,_)},get activeBrowserTab(){return A(P,"browser"),Ye.activeBrowserTab},onDidChangeActiveBrowserTab(y,S,_){return A(P,"browser"),ue(Ye.onDidChangeActiveBrowserTab)(y,S,_)},onDidChangeBrowserTabState(y,S,_){return A(P,"browser"),ue(Ye.onDidChangeBrowserTabState)(y,S,_)},openBrowserTab(y,S){return A(P,"browser"),Ye.openBrowserTab(y,S)}},XN={get rootPath(){return f.report("workspace.rootPath",P,"Please use 'workspace.workspaceFolders' instead. More details: https://aka.ms/vscode-eliminating-rootpath"),r.getPath()},set rootPath(y){throw new fi("rootPath")},getWorkspaceFolder(y){return r.getWorkspaceFolder(y)},get workspaceFolders(){return r.getWorkspaceFolders()},get name(){return r.name},set name(y){throw new fi("name")},get workspaceFile(){return r.workspaceFile},set workspaceFile(y){throw new fi("workspaceFile")},get isAgentSessionsWorkspace(){return A(P,"agentSessionsWorkspace"),!!t.environment.isSessionsWindow},updateWorkspaceFolders:(y,S,..._)=>r.updateWorkspaceFolders(P,y,S||0,..._),onDidChangeWorkspaceFolders:function(y,S,_){return ue(r.onDidChangeWorkspace)(y,S,_)},asRelativePath:(y,S)=>r.getRelativePath(y,S),findFiles:(y,S,_,Te)=>r.findFiles(y,S,_,P.identifier,Te),findFiles2:(y,S,_)=>(A(P,"findFiles2"),r.findFiles2(y,S,P.identifier,_)),findTextInFiles:(y,S,_,Te)=>{A(P,"findTextInFiles");let ft,sn;return typeof S=="object"?(ft=S,sn=_):(ft={},sn=S,Te=_),r.findTextInFiles(y,ft||{},sn,P.identifier,Te)},findTextInFiles2:(y,S,_)=>(A(P,"findTextInFiles2"),A(P,"textSearchProvider2"),r.findTextInFiles2(y,S,P.identifier,_)),getTextDiff(y,S,_,Te){A(P,"documentDiff");let ft=d.getProxy(F.MainThreadDocumentDiff);if(Te?.isCancellationRequested){let cr=new Ue;return{changes:ca.EMPTY,complete:Promise.reject(cr)}}let sn=ft.$computeDocumentDiff(y.uri,S.uri,_?.ignoreTrimWhitespace??!1,_?.maxComputationTimeMs??5e3,_?.computeMoves??!1),eU=(Te?Qr(sn,Te):sn).then(cr=>{if(!cr)throw new Error("Could not compute diff. Make sure both documents are available.");return cr}),tU=cr=>({originalRange:G.to(cr.originalRange),modifiedRange:G.to(cr.modifiedRange),innerChanges:cr.innerChanges?.map(ll=>({originalRange:G.to(ll.originalRange),modifiedRange:G.to(ll.modifiedRange)}))});return{changes:new ca(async cr=>{let ll=await eU;cr.emitMany(ll.changes.map(tU))}),complete:eU.then(cr=>({identical:cr.identical,mayBeIncomplete:cr.quitEarly,moves:cr.moves.map(ll=>({originalRange:G.to(ll.originalRange),modifiedRange:G.to(ll.modifiedRange),changes:ll.changes.map(tU)}))}))}},save:y=>r.save(y),saveAs:y=>r.saveAs(y),saveAll:y=>r.saveAll(y),applyEdit(y,S){return Kn.applyWorkspaceEdit(y,P,S)},createFileSystemWatcher:(y,S,_,Te)=>{let ft={ignoreCreateEvents:!!S,ignoreChangeEvents:!!_,ignoreDeleteEvents:!!Te};return gi.createFileSystemWatcher(r,se,e,P,y,ft)},get textDocuments(){return Ne.getAllDocumentData().map(y=>y.document)},set textDocuments(y){throw new fi("textDocuments")},openTextDocument(y,S){let _;if(S=S??y,typeof y=="string")_=Promise.resolve(b.file(y));else if(b.isUri(y))_=Promise.resolve(y);else if(!S||typeof S=="object")_=Ne.createDocumentData(S);else throw new Error("illegal argument - uriOrFileNameOrOptions");return _.then(Te=>(g.trace(`openTextDocument from ${P.identifier}`),Te.scheme===B.vscodeRemote&&!Te.authority&&f.report("workspace.openTextDocument",P,"A URI of 'vscode-remote' scheme requires an authority."),Ne.ensureDocumentData(Te,S).then(ft=>ft.document)))},onDidOpenTextDocument:(y,S,_)=>ue(Ne.onDidAddDocument)(y,S,_),onDidCloseTextDocument:(y,S,_)=>ue(Ne.onDidRemoveDocument)(y,S,_),onDidChangeTextDocument:(y,S,_)=>Oe(P,"textDocumentChangeReason")?ue(Ne.onDidChangeDocumentWithReason)(y,S,_):ue(Ne.onDidChangeDocument)(y,S,_),onDidSaveTextDocument:(y,S,_)=>ue(Ne.onDidSaveDocument)(y,S,_),onWillSaveTextDocument:(y,S,_)=>ue(Ut.getOnWillSaveTextDocumentEvent(P))(y,S,_),get notebookDocuments(){return Ge.notebookDocuments.map(y=>y.apiNotebook)},async openNotebookDocument(y,S){let _;if(b.isUri(y))_=y,await Ge.openNotebookDocument(y);else if(typeof y=="string")_=b.revive(await Ge.createNotebookDocument({viewType:y,content:S}));else throw new Error("Invalid arguments");return Ge.getNotebookDocument(_).apiNotebook},onDidSaveNotebookDocument(y,S,_){return ue(Rn.onDidSaveNotebookDocument)(y,S,_)},onDidChangeNotebookDocument(y,S,_){return ue(Rn.onDidChangeNotebookDocument)(y,S,_)},onWillSaveNotebookDocument(y,S,_){return ue(mi.getOnWillSaveNotebookDocumentEvent(P))(y,S,_)},get onDidOpenNotebookDocument(){return ue(Ge.onDidOpenNotebookDocument)},get onDidCloseNotebookDocument(){return ue(Ge.onDidCloseNotebookDocument)},registerNotebookSerializer(y,S,_,Te){return Ge.registerNotebookSerializer(P,y,S,_,Oe(P,"notebookLiveShare")?Te:void 0)},onDidChangeConfiguration:(y,S,_)=>ue(se.onDidChangeConfiguration)(y,S,_),getConfiguration(y,S){return S=arguments.length===1?void 0:S,se.getConfiguration(y,S,P)},registerTextDocumentContentProvider(y,S){return It.registerTextDocumentContentProvider(y,S)},registerTaskProvider:(y,S)=>(f.report("window.registerTaskProvider",P,"Use the corresponding function on the 'tasks' namespace instead"),re.registerTaskProvider(P,y,S)),registerFileSystemProvider(y,S,_){return up(tp.registerFileSystemProvider(P,y,S,_),n.addFileSystemProvider(y,S,_))},get fs(){return n.value},registerFileSearchProvider:(y,S)=>(A(P,"fileSearchProvider"),le.registerFileSearchProviderOld(y,S)),registerTextSearchProvider:(y,S)=>(A(P,"textSearchProvider"),le.registerTextSearchProviderOld(y,S)),registerAITextSearchProvider:(y,S)=>(A(P,"aiTextSearchProvider"),A(P,"textSearchProvider2"),le.registerAITextSearchProvider(y,S)),registerFileSearchProvider2:(y,S)=>(A(P,"fileSearchProvider2"),le.registerFileSearchProvider(y,S)),registerTextSearchProvider2:(y,S)=>(A(P,"textSearchProvider2"),le.registerTextSearchProvider(y,S)),registerRemoteAuthorityResolver:(y,S)=>(A(P,"resolvers"),o.registerRemoteAuthorityResolver(y,S)),registerResourceLabelFormatter:y=>(A(P,"resolvers"),gn.$registerResourceLabelFormatter(y)),getRemoteExecServer:y=>(A(P,"resolvers"),o.getRemoteExecServer(y)),onDidCreateFiles:(y,S,_)=>ue(gi.onDidCreateFile)(y,S,_),onDidDeleteFiles:(y,S,_)=>ue(gi.onDidDeleteFile)(y,S,_),onDidRenameFiles:(y,S,_)=>ue(gi.onDidRenameFile)(y,S,_),onWillCreateFiles:(y,S,_)=>ue(gi.getOnWillCreateFileEvent(P))(y,S,_),onWillDeleteFiles:(y,S,_)=>ue(gi.getOnWillDeleteFileEvent(P))(y,S,_),onWillRenameFiles:(y,S,_)=>ue(gi.getOnWillRenameFileEvent(P))(y,S,_),openTunnel:y=>(A(P,"tunnels"),h.openTunnel(P,y).then(S=>{if(!S)throw new Error("cannot open tunnel");return S})),get tunnels(){return A(P,"tunnels"),h.getTunnels()},onDidChangeTunnels:(y,S,_)=>(A(P,"tunnels"),ue(h.onDidChangeTunnels)(y,S,_)),registerPortAttributesProvider:(y,S)=>(A(P,"portsAttributes"),h.registerPortsAttributesProvider(y,S)),registerTunnelProvider:(y,S)=>(A(P,"tunnelFactory"),h.registerTunnelProvider(y,S)),registerTimelineProvider:(y,S)=>(A(P,"timeline"),Jy.registerTimelineProvider(y,S,P.identifier,te.converter)),get isTrusted(){return r.trusted},requestResourceTrust:y=>(A(P,"workspaceTrust"),r.requestResourceTrust(y)),requestWorkspaceTrust:y=>(A(P,"workspaceTrust"),r.requestWorkspaceTrust(y)),isResourceTrusted:y=>(A(P,"workspaceTrust"),r.isResourceTrusted(y)),onDidChangeWorkspaceTrustedFolders:(y,S,_)=>(A(P,"workspaceTrust"),ue(r.onDidChangeWorkspaceTrustedFolders)(y,S,_)),onDidGrantWorkspaceTrust:(y,S,_)=>ue(r.onDidGrantWorkspaceTrust)(y,S,_),registerEditSessionIdentityProvider:(y,S)=>(A(P,"editSessionIdentityProvider"),r.registerEditSessionIdentityProvider(y,S)),onWillCreateEditSessionIdentity:(y,S,_)=>(A(P,"editSessionIdentityProvider"),ue(r.getOnWillCreateEditSessionIdentityEvent(P))(y,S,_)),registerCanonicalUriProvider:(y,S)=>(A(P,"canonicalUriProvider"),r.registerCanonicalUriProvider(y,S)),getCanonicalUri:(y,S,_)=>(A(P,"canonicalUriProvider"),r.provideCanonicalUri(y,S,_)),decode(y,S){return r.decode(y,S)},encode(y,S){return r.encode(y,S)}},Sz={get inputBox(){return f.report("scm.inputBox",P,"Use 'SourceControl.inputBox' instead"),ec.getLastInputBox(P)},createSourceControl(y,S,_,Te,ft,sn){return(Te||ft||sn)&&A(P,"scmProviderOptions"),ec.createSourceControl(P,y,S,_,Te,ft,sn)}},Cz={createCommentController(y,S){return al.createCommentController(P,y,S)}},Tz={get activeDebugSession(){return ee.activeDebugSession},get activeDebugConsole(){return ee.activeDebugConsole},get breakpoints(){return ee.breakpoints},get activeStackItem(){return ee.activeStackItem},registerDebugVisualizationProvider(y,S){return A(P,"debugVisualization"),ee.registerDebugVisualizationProvider(P,y,S)},registerDebugVisualizationTreeProvider(y,S){return A(P,"debugVisualization"),ee.registerDebugVisualizationTree(P,y,S)},onDidStartDebugSession(y,S,_){return ue(ee.onDidStartDebugSession)(y,S,_)},onDidTerminateDebugSession(y,S,_){return ue(ee.onDidTerminateDebugSession)(y,S,_)},onDidChangeActiveDebugSession(y,S,_){return ue(ee.onDidChangeActiveDebugSession)(y,S,_)},onDidReceiveDebugSessionCustomEvent(y,S,_){return ue(ee.onDidReceiveDebugSessionCustomEvent)(y,S,_)},onDidChangeBreakpoints(y,S,_){return ue(ee.onDidChangeBreakpoints)(y,S,_)},onDidChangeActiveStackItem(y,S,_){return ue(ee.onDidChangeActiveStackItem)(y,S,_)},registerDebugConfigurationProvider(y,S,_){return ee.registerDebugConfigurationProvider(y,S,_||1)},registerDebugAdapterDescriptorFactory(y,S){return ee.registerDebugAdapterDescriptorFactory(P,y,S)},registerDebugAdapterTrackerFactory(y,S){return ee.registerDebugAdapterTrackerFactory(y,S)},startDebugging(y,S,_){return!_||typeof _=="object"&&"configuration"in _?ee.startDebugging(y,S,{parentSession:_}):ee.startDebugging(y,S,_||{})},stopDebugging(y){return ee.stopDebugging(y)},addBreakpoints(y){return ee.addBreakpoints(y)},removeBreakpoints(y){return ee.removeBreakpoints(y)},asDebugSourceUri(y,S){return ee.asDebugSourceUri(y,S)}},Ez={registerTaskProvider:(y,S)=>re.registerTaskProvider(P,y,S),fetchTasks:y=>re.fetchTasks(y),executeTask:y=>re.executeTask(P,y),get taskExecutions(){return re.taskExecutions},onDidStartTask:(y,S,_)=>{let Te=ft=>{Oe(P,"taskExecutionTerminal")||ft?.execution?.terminal!==void 0&&(ft.execution.terminal=void 0);let sn={...ft,execution:ft.execution};return y.call(S,sn)};return ue(re.onDidStartTask)(Te,S,_)},onDidEndTask:(y,S,_)=>ue(re.onDidEndTask)(y,S,_),onDidStartTaskProcess:(y,S,_)=>ue(re.onDidStartTaskProcess)(y,S,_),onDidEndTaskProcess:(y,S,_)=>ue(re.onDidEndTaskProcess)(y,S,_),onDidStartTaskProblemMatchers:(y,S,_)=>(A(P,"taskProblemMatcherStatus"),ue(re.onDidStartTaskProblemMatchers)(y,S,_)),onDidEndTaskProblemMatchers:(y,S,_)=>(A(P,"taskProblemMatcherStatus"),ue(re.onDidEndTaskProblemMatchers)(y,S,_))},wz={createNotebookController(y,S,_,Te,ft){return Qi.createNotebookController(P,y,S,_,Te,Oe(P,"notebookMessaging")?ft:void 0)},registerNotebookCellStatusBarItemProvider:(y,S)=>Ge.registerNotebookCellStatusBarItemProvider(P,y,S),createRendererMessaging(y){return sl.createRendererMessaging(P,y)},createNotebookControllerDetectionTask(y){return A(P,"notebookKernelSource"),Qi.createNotebookControllerDetectionTask(P,y)},registerKernelSourceActionProvider(y,S){return A(P,"notebookKernelSource"),Qi.registerKernelSourceActionProvider(P,y,S)}},kz={t(...y){if(typeof y[0]=="string"){let S=y.shift(),_=!y||typeof y[0]!="object"?y:y[0];return et.getMessage(P.identifier.value,{message:S,args:_})}return et.getMessage(P.identifier.value,y[0])},get bundle(){return et.getBundle(P.identifier.value)},get uri(){return et.getBundleUri(P.identifier.value)}},Pz={transferActiveChat(y){return A(P,"interactive"),ct.transferActiveChat(y)}},_z={getRelatedInformation(y,S){return A(P,"aiRelatedInformation"),lr.getRelatedInformation(P,y,S)},registerRelatedInformationProvider(y,S){return A(P,"aiRelatedInformation"),lr.registerRelatedInformationProvider(P,y,S)},registerEmbeddingVectorProvider(y,S){return A(P,"aiRelatedInformation"),In.registerEmbeddingVectorProvider(P,y,S)},registerSettingsSearchProvider(y){return A(P,"aiSettingsSearch"),qn.registerSettingsSearchProvider(P,y)}},Dz={registerMappedEditsProvider(y,S){return A(P,"mappedEditsProvider"),{dispose(){}}},registerMappedEditsProvider2(y){return A(P,"mappedEditsProvider"),Zd.registerMappedEditsProvider(P,y)},createChatParticipant(y,S){return ct.createChatAgent(P,y,S)},createDynamicChatParticipant(y,S,_){return A(P,"chatParticipantPrivate"),ct.createDynamicChatAgent(P,y,S,_)},registerChatParticipantDetectionProvider(y){return A(P,"chatParticipantPrivate"),ct.registerChatParticipantDetectionProvider(P,y)},onDidDisposeChatSession:(y,S,_)=>(A(P,"chatParticipantPrivate"),ue(ct.onDidDisposeChatSession)(y,S,_)),updateQuotas:y=>{A(P,"chatParticipantPrivate"),qt.updateQuotas(y)},registerChatSessionItemProvider:(y,S)=>(A(P,"chatSessionsProvider"),f.report("chat.registerChatSessionItemProvider",P,"Please migrate to the new chat session controller API",{usageId:y}),wt.registerChatSessionItemProvider(P,y,S)),createChatSessionItemController:(y,S)=>(A(P,"chatSessionsProvider"),wt.createChatSessionItemController(P,y,S)),registerChatSessionContentProvider(y,S,_,Te){return A(P,"chatSessionsProvider"),wt.registerChatSessionContentProvider(P,y,_,S,Te)},registerChatOutputRenderer:(y,S)=>(A(P,"chatOutputRenderer"),qe.registerChatOutputRenderer(P,y,S)),registerChatWorkspaceContextProvider(y,S){return A(P,"chatContextProvider"),on.registerChatWorkspaceContextProvider(`${P.id}-${y}`,S)},registerChatExplicitContextProvider(y,S){return A(P,"chatContextProvider"),on.registerChatExplicitContextProvider(`${P.id}-${y}`,S)},registerChatResourceContextProvider(y,S,_){return A(P,"chatContextProvider"),on.registerChatResourceContextProvider(Ft(y),`${P.id}-${S}`,_)},registerChatContextProvider(y,S,_){return A(P,"chatContextProvider"),on.registerChatContextProvider(y?Ft(y):void 0,`${P.id}-${S}`,_)},registerCustomAgentProvider(y){return A(P,"chatPromptFiles"),ct.registerPromptFileProvider(P,"agent",y)},registerInstructionsProvider(y){return A(P,"chatPromptFiles"),ct.registerPromptFileProvider(P,"instructions",y)},registerPromptFileProvider(y){return A(P,"chatPromptFiles"),ct.registerPromptFileProvider(P,"prompt",y)},registerSkillProvider(y){return A(P,"chatPromptFiles"),ct.registerPromptFileProvider(P,"skill",y)},registerHookProvider(y){return A(P,"chatPromptFiles"),ct.registerPromptFileProvider(P,"hook",y)},registerChatDebugLogProvider(y){return A(P,"chatDebug"),zn.registerChatDebugLogProvider(y)},onDidReceiveChatDebugEvent:(y,S,_)=>(A(P,"chatDebug"),zn.onDidAddCoreEvent(y,S,_)),getCustomAgents(y){return A(P,"chatPromptFiles"),ct.provideCustomAgents(y)},onDidChangeCustomAgents:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangeCustomAgents(y,S,_)),getInstructions(y){return A(P,"chatPromptFiles"),ct.provideInstructions(y)},onDidChangeInstructions:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangeInstructions(y,S,_)),getSkills(y){return A(P,"chatPromptFiles"),ct.provideSkills(y)},onDidChangeSkills:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangeSkills(y,S,_)),getSlashCommands(y){return A(P,"chatPromptFiles"),ct.provideSlashCommands(y)},onDidChangeSlashCommands:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangeSlashCommands(y,S,_)),getHooks(y){return A(P,"chatPromptFiles"),ct.provideHooks(y)},onDidChangeHooks:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangeHooks(y,S,_)),getPlugins(y){return A(P,"chatPromptFiles"),ct.providePlugins(y)},onDidChangePlugins:(y,S,_)=>(A(P,"chatPromptFiles"),ct.onDidChangePlugins(y,S,_)),registerChatSessionCustomizationProvider(y,S,_){return A(P,"chatSessionCustomizationProvider"),ct.registerChatSessionCustomizationProvider(P,y,S,_)},createInputNotification(y){return A(P,"chatInputNotification"),JN.createInputNotification(P,y)}},Rz={selectChatModels:y=>X.selectLanguageModels(P,y??{}),onDidChangeChatModels:(y,S,_)=>X.onDidChangeProviders(y,S,_),registerLanguageModelChatProvider:(y,S)=>X.registerLanguageModelChatProvider(P,y,S),get isModelProxyAvailable(){return A(P,"languageModelProxy"),X.isModelProxyAvailable},onDidChangeModelProxyAvailability:(y,S,_)=>(A(P,"languageModelProxy"),X.onDidChangeModelProxyAvailability(y,S,_)),getModelProxy:()=>(A(P,"languageModelProxy"),X.getModelProxy(P)),registerLanguageModelProxyProvider:y=>(A(P,"chatParticipantPrivate"),X.registerLanguageModelProxyProvider(P,y)),get embeddingModels(){return A(P,"embeddings"),Be.embeddingsModels},onDidChangeEmbeddingModels:(y,S,_)=>(A(P,"embeddings"),Be.onDidChange(y,S,_)),registerEmbeddingsProvider(y,S){return A(P,"embeddings"),Be.registerEmbeddingsProvider(P,y,S)},async computeEmbeddings(y,S,_){return A(P,"embeddings"),Be.computeEmbeddings(y,S,_)},registerTool(y,S){return fn.registerTool(P,y,S)},registerToolDefinition(y,S){return fn.registerToolDefinition(P,y,S)},invokeTool(y,S,_){return typeof y!="string"&&A(P,"chatParticipantAdditions"),fn.invokeTool(P,y,S,_)},get tools(){return fn.getTools(P)},fileIsIgnored(y,S){return X.fileIsIgnored(P,y,S)},registerIgnoredFileProvider(y){return X.registerIgnoredFileProvider(P,y)},registerMcpServerDefinitionProvider(y,S){return j.registerMcpConfigurationProvider(P,y,S)},onDidChangeMcpServerDefinitions:(...y)=>(A(P,"mcpServerDefinitions"),ue(j.onDidChangeMcpServerDefinitions)(...y)),get mcpServerDefinitions(){return A(P,"mcpServerDefinitions"),j.mcpServerDefinitions},startMcpGateway(y){return A(P,"mcpServerDefinitions"),j.startMcpGateway(y)},onDidChangeChatRequestTools(...y){return A(P,"chatParticipantAdditions"),ue(ct.onDidChangeChatRequestTools)(...y)}},Az={registerSpeechProvider(y,S){return A(P,"speech"),dr.registerProvider(P.identifier,y,S)}};return{version:t.version,ai:_z,authentication:vz,commands:Sh,comments:Cz,chat:Dz,debug:Tz,env:YN,extensions:yz,interactive:Pz,l10n:kz,languages:Iz,lm:Rz,notebooks:wz,scm:Sz,speech:Az,tasks:Ez,tests:bz,window:xz,workspace:XN,Breakpoint:Da,TerminalOutputAnchor:b1,ChatResultFeedbackKind:tT,ChatVariableLevel:q1,ChatCompletionItem:YS,ChatReferenceDiagnostic:Sd,CallHierarchyIncomingCall:vm,CallHierarchyItem:cd,CallHierarchyOutgoingCall:bm,CancellationError:Ue,CancellationTokenSource:ke,CandidatePortSource:fR,CodeAction:Ts,CodeActionKind:kt,CodeActionTriggerKind:pC,CodeLens:Yl,Color:_i,ColorInformation:nd,ColorPresentation:od,ColorThemeKind:KC,CommentMode:L1,CommentState:O1,CommentThreadCollapsibleState:FC,CommentThreadState:HC,CommentThreadApplicability:VC,CommentThreadFocus:WC,CompletionItem:ed,CompletionItemKind:eb,CompletionItemTag:fC,CompletionList:Pi,CompletionTriggerKind:gC,ConfigurationTarget:AC,CustomExecution:tu,DebugAdapterExecutable:Mi,DebugAdapterInlineImplementation:Ra,DebugAdapterNamedPipeServer:_s,DebugAdapterServer:Li,DebugConfigurationProviderTriggerKind:jA,DebugConsoleMode:BC,DebugVisualization:zS,DecorationRangeBehavior:wC,Diagnostic:wa,DiagnosticRelatedInformation:Is,DiagnosticSeverity:zc,DiagnosticTag:Jv,Disposable:xe,DocumentHighlight:Ql,DocumentHighlightKind:uC,MultiDocumentHighlight:Jl,DocumentLink:td,DocumentSymbol:Hr,EndOfLine:jc,EnvironmentVariableMutatorType:cC,EvaluatableExpression:rd,InlineValueText:id,InlineValueVariableLookup:sd,InlineValueEvaluatableExpression:ad,InlineCompletionTriggerKind:MC,InlineCompletionsDisposeReasonKind:LC,EventEmitter:E,ExtensionKind:qC,ExtensionMode:YC,ExternalUriOpenerPriority:V1,FileChangeType:NC,FileDecoration:ou,FileDecoration2:ou,FileSystemError:Ct,FileType:kc,FilePermission:Pc,FoldingRange:fm,FoldingRangeKind:UC,FunctionBreakpoint:Ai,InlineCompletionItem:um,InlineCompletionList:pm,Hover:Gc,VerboseHover:Gl,HoverVerbosityAction:y1,IndentAction:$L,Location:tn,MarkdownString:Xt,OverviewRulerLane:jR,ParameterInformation:lm,PortAutoForwardAction:B1,Position:De,ProcessExecution:ws,ProgressLocation:tb,QuickInputButtonLocation:N1,QuickInputButtons:Cs,Range:be,RelativePattern:Ps,Selection:Zn,SelectionRange:Es,SemanticTokens:Oi,SemanticTokensBuilder:$S,SemanticTokensEdit:xm,SemanticTokensEdits:pd,SemanticTokensLegend:nu,ShellExecution:Di,ShellQuoting:_1,SignatureHelp:cm,SignatureHelpTriggerKind:I1,SignatureInformation:dm,SnippetString:eo,SourceBreakpoint:Ri,StandardTokenType:nb,StatusBarAlignment:IC,SymbolInformation:Fr,SymbolKind:am,SymbolTag:Xv,Task:$n,TaskEventKind:k1,TaskGroup:Nn,TaskPanelKind:P1,TaskRevealKind:w1,TaskRunOn:D1,TaskScope:_C,TerminalLink:MS,TerminalQuickFixTerminalCommand:OS,TerminalQuickFixOpener:LS,TerminalLocation:T1,TerminalProfile:NS,TerminalExitReason:S1,TerminalShellExecutionCommandLineConfidence:PC,TerminalCompletionItem:US,TerminalCompletionItemKind:E1,TerminalCompletionList:FS,TerminalShellType:C1,TextDocumentSaveReason:SC,TextEdit:Bn,SnippetTextEdit:ka,TextEditorCursorStyle:mR,TextEditorChangeKind:TC,TextEditorLineNumbersStyle:xC,TextEditorRevealType:CC,TextEditorSelectionChangeKind:uu,SyntaxTokenType:pu,TextDocumentChangeReason:EC,ThemeColor:_a,ThemeIcon:mn,TreeItem:ks,TreeItemCheckboxState:RC,TreeItemCollapsibleState:DC,TypeHierarchyItem:md,UIKind:eE,Uri:b,ViewColumn:yC,WorkspaceEdit:Er,DocumentPasteTriggerKind:A1,DocumentDropEdit:mm,DocumentDropOrPasteEditKind:ri,DocumentPasteEdit:WS,InlayHint:Zl,InlayHintLabelPart:Xl,InlayHintKind:x1,RemoteAuthorityResolverError:Rs,ResolvedAuthority:AS,ManagedResolvedAuthority:dd,SourceControlInputBoxValidationType:kC,ExtensionRuntime:XC,TimelineItem:hm,NotebookRange:co,NotebookCellKind:Yv,NotebookCellExecutionState:U1,NotebookCellData:xs,NotebookData:qc,NotebookRendererScript:Sm,NotebookCellStatusBarAlignment:jC,NotebookEditorRevealType:GC,NotebookCellOutput:Ss,NotebookCellOutputItem:Kc,CellErrorStackFrame:qS,NotebookCellStatusBarItem:KS,NotebookControllerAffinity:F1,NotebookControllerAffinity2:QC,NotebookEdit:$o,NotebookKernelSourceAction:jS,NotebookVariablesRequestKind:JC,PortAttributes:QS,LinkedEditingRanges:GS,TestResultState:H1,TestRunRequest:ld,TestMessage:Ds,TestMessageStackFrame:JS,TestTag:Aa,TestRunProfileKind:ZC,TextSearchCompleteMessageType:Eb,DataTransfer:oi,DataTransferItem:Qc,TestCoverageCount:eu,FileCoverage:Ma,StatementCoverage:Tm,BranchCoverage:Em,DeclarationCoverage:wm,WorkspaceTrustState:W1,LanguageStatusSeverity:mC,QuickPickItemKind:$C,InputBoxValidationSeverity:zC,TabInputText:gd,TabInputTextDiff:La,TabInputTextMerge:km,TabInputCustom:fd,TabInputNotebook:hd,TabInputNotebookDiff:vd,TabInputWebview:Pm,TabInputTerminal:_m,TabInputInteractiveWindow:Dm,TabInputChat:Rm,TabInputTextMultiDiff:Am,TelemetryTrustedValue:ql,LogLevel:Ei,EditSessionIdentityMatch:zL,InteractiveSessionVoteDirection:$1,ChatCopyKind:z1,ChatSessionChangedFile:sC,ChatEditingSessionActionOutcome:eT,InteractiveEditorResponseFeedbackKind:j1,DebugStackFrame:ym,DebugThread:Im,RelatedInformationType:tM,SpeechToTextStatus:oM,TextToSpeechStatus:rM,PartialAcceptTriggerKind:hC,InlineCompletionEndOfLifeReasonKind:vC,InlineCompletionDisplayLocationKind:bC,KeywordRecognitionStatus:iM,ChatImageMimeType:eM,ChatResponseMarkdownPart:Oa,ChatResponseFileTreePart:Ua,ChatResponseAnchorPart:Ms,ChatResponseProgressPart:su,ChatResponseProgressPart2:bd,ChatResponseThinkingProgressPart:Ni,ChatResponseHookPart:Fa,ChatResponseReferencePart:ii,ChatResponseReferencePart2:ii,ChatResponseCodeCitationPart:Ba,ChatResponseCodeblockUriPart:Wa,ChatResponseWarningPart:Ls,ChatResponseInfoPart:Ha,ChatResponseTextEditPart:Ns,ChatResponseNotebookEditPart:za,ChatResponseWorkspaceEditPart:xd,ChatResponseMarkdownWithVulnerabilitiesPart:As,ChatResponseCommandButtonPart:Va,ChatResponseConfirmationPart:Na,ChatQuestion:Lm,ChatQuestionType:nT,ChatResponseQuestionCarouselPart:Os,ChatResponseMovePart:$a,ChatResponseExtensionsPart:yd,ChatResponseExternalEditPart:iu,ChatResponsePullRequestPart:Id,ChatResponseMultiDiffPart:ru,ChatResponseReferencePartStatusKind:J1,ChatResponseClearToPreviousToolInvocationReason:Y1,ChatRequestTurn:Us,ChatRequestTurn2:Us,ChatResponseTurn:Om,ChatResponseTurn2:ZS,ChatSubagentToolInvocationData:Mm,ChatToolInvocationPart:au,ChatLocation:iT,ChatSessionStatus:G1,ChatSessionCustomizationType:eC,ChatDebugLogLevel:Q1,ChatDebugToolCallResult:sT,ChatDebugHookResult:aT,ChatDebugToolCallEvent:Nm,ChatDebugModelTurnEvent:Um,ChatDebugGenericEvent:Fm,ChatDebugSubagentInvocationEvent:Hm,ChatDebugUserMessageEvent:Vm,ChatDebugAgentResponseEvent:Wm,ChatDebugMessageSection:lu,ChatDebugEventTextContent:tC,ChatDebugMessageContentType:lT,ChatDebugEventMessageContent:nC,ChatDebugEventToolCallContent:oC,ChatDebugEventModelTurnContent:rC,ChatDebugEventHookContent:iC,ChatRequestEditorData:Bm,ChatRequestNotebookData:$m,ChatReferenceBinaryData:zm,ChatRequestEditedFileEventKind:K1,LanguageModelChatMessageRole:rb,LanguageModelChatMessage:qm,LanguageModelChatMessage2:Km,LanguageModelToolResultPart:Fs,LanguageModelToolResultPart2:Fs,LanguageModelTextPart:nn,LanguageModelTextPart2:nn,LanguageModelPartAudience:dT,ToolResultAudience:dT,LanguageModelToolCallPart:si,LanguageModelThinkingPart:Ui,LanguageModelError:wr,LanguageModelToolResult:Cd,LanguageModelToolResult2:aC,LanguageModelDataPart:Un,LanguageModelDataPart2:Un,LanguageModelToolExtensionSource:jm,LanguageModelToolMCPSource:Gm,ExtendedLanguageModelToolResult:lC,LanguageModelChatToolMode:cT,LanguageModelPromptTsxPart:ai,NewSymbolName:BS,NewSymbolNameTag:M1,NewSymbolNameTriggerKind:OC,ExcludeSettingOptions:UT,TextSearchContext2:Vs,TextSearchMatch2:qo,AISearchKeyword:Cu,TextSearchCompleteMessageTypeNew:Eb,ChatErrorLevel:X1,ChatInputNotificationSeverity:Z1,McpHttpServerDefinition:cu,McpHttpServerDefinition2:cu,McpStdioServerDefinition:du,McpStdioServerDefinition2:du,McpToolAvailability:uT,McpToolInvocationContentData:XS,SettingsSearchResultKind:nM,ChatTodoStatus:oT,ChatDebugSubagentStatus:rT}}}var sh=class{constructor(t,e,n,o,r,s,a){this._apiFactory=t;this._extensionRegistry=e;this._instaService=n;this._extHostConfiguration=o;this._extHostExtensionService=r;this._initData=s;this._logService=a;this._factories=new Map,this._alternatives=[]}async install(){this._installInterceptor(),Wt("code/extHost/willWaitForConfig");let t=await this._extHostConfiguration.getConfigProvider();Wt("code/extHost/didWaitForConfig");let e=await this._extHostExtensionService.getExtensionPathIndex();this.register(new yN(this._apiFactory,e,this._extensionRegistry,t,this._logService)),this.register(this._instaService.createInstance(Yd)),this._initData.remote.isRemote&&this.register(this._instaService.createInstance(Vy,e,this._initData.environment.appUriScheme))}register(t){if("nodeModuleName"in t)if(Array.isArray(t.nodeModuleName))for(let e of t.nodeModuleName)this._factories.set(e,t);else this._factories.set(t.nodeModuleName,t);typeof t.alternativeModuleName=="function"&&this._alternatives.push(e=>t.alternativeModuleName(e))}};sh=D([C(2,Yo),C(3,En),C(4,yo),C(5,Xe),C(6,ne)],sh);var Yd=class{static{this.aliased=new Map([["vscode-ripgrep","@vscode/ripgrep-universal"],["@vscode/ripgrep","@vscode/ripgrep-universal"],["vscode-windows-registry","@vscode/windows-registry"]])}constructor(t){if(t.environment.appRoot&&Yd.aliased.size){let e=Qo(this.forceForwardSlashes(t.environment.appRoot.fsPath)),n="[a-z0-9_.-]",o=`@${n}+\\/${n}+|${n}+`,r="node_modules|node_modules\\.asar(?:\\.unpacked)?";this.re=new RegExp(`^(${e}/${r}\\/)(${o})(.*)$`,"i")}}alternativeModuleName(t){if(!this.re)return;let e=this.re.exec(this.forceForwardSlashes(t));if(!e)return;let[,n,o,r]=e,s=Yd.aliased.get(o);if(s!==void 0)return console.warn(`${o} as been renamed to ${s}, please update your imports`),n+s+r}forceForwardSlashes(t){return t.replace(/\\/g,"/")}};Yd=D([C(0,Xe)],Yd);var yN=class{constructor(t,e,n,o,r){this._apiFactory=t;this._extensionPaths=e;this._extensionRegistry=n;this._configProvider=o;this._logService=r;this.nodeModuleName="vscode";this._extApiImpl=new ho}load(t,e){let n=this._extensionPaths.findSubstr(e);if(n){let o=this._extApiImpl.get(n.identifier);return o||(o=this._apiFactory(n,this._extensionRegistry,this._configProvider),this._extApiImpl.set(n.identifier,o)),o}if(!this._defaultApiImpl){let o="";this._extensionPaths.forEach((r,s)=>o+=`	${s} -> ${r.identifier.value}
`),this._logService.warn(`Could not identify extension for 'vscode' require call from ${e}. These are the extension path mappings: 
${o}`),this._defaultApiImpl=this._apiFactory(XV,this._extensionRegistry,this._configProvider)}return this._defaultApiImpl}},Vy=class{constructor(t,e,n){this._extensionPaths=t;this._appUriScheme=e;this.nodeModuleName=["open","opn"];this._mainThreadTelemetry=n.getProxy(F.MainThreadTelemetry);let o=n.getProxy(F.MainThreadWindow);this._impl=(r,s)=>{let a=b.parse(r);return s?this.callOriginal(r,s):a.scheme==="http"||a.scheme==="https"?o.$openUri(a,r,{allowTunneling:!0}):a.scheme==="mailto"||a.scheme===this._appUriScheme?o.$openUri(a,r,{}):this.callOriginal(r,s)}}load(t,e,n){let o=this._extensionPaths.findSubstr(e);return o&&(this._extensionId=o.identifier.value,this.sendShimmingTelemetry()),this._original=n(t),this._impl}callOriginal(t,e){return this.sendNoForwardTelemetry(),this._original(t,e)}sendShimmingTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open",{extension:this._extensionId})}sendNoForwardTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open.call.noForward",{extension:this._extensionId})}};Vy=D([C(2,ae)],Vy);import{LogLevel as Zu,createHttpPatch as _$,createProxyResolver as aY,createTlsPatch as lY,createNetPatch as dY,loadSystemCertificates as D$}from"@vscode/proxy-agent";import{createRequire as cY}from"node:module";import{parse as k$}from"url";import{spawn as XJ}from"child_process";import{userInfo as GJ}from"os";import*as IN from"os";var I$=/^\d+$/,VJ=/^Microsoft.PowerShell_.*/,WJ=/^Microsoft.PowerShellPreview_.*/;var Wy;switch(process.arch){case"ia32":Wy=1;break;case"arm":case"arm64":Wy=2;break;default:Wy=0;break}var ah;process.env.PROCESSOR_ARCHITEW6432?ah=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?ah=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?ah=1:ah=0;var Xu=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await Uo.existsFile(this.exePath)),this.knownToExist}};function BJ({useAlternateBitness:i=!1}={}){return i?Wy===0?process.env["ProgramFiles(x86)"]||null:ah===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function cP({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=BJ({useAlternateBitness:i});if(!e)return null;let n=He(e,"PowerShell");if(!await Uo.existsDirectory(n))return null;let o=-1,r=null;for(let l of await at.readdir(n)){let d=-1;if(t){let u=l.indexOf("-");if(u<0)continue;let m=l.substring(0,u);if(!I$.test(m)||l.substring(u+1)!=="preview")continue;d=parseInt(m,10)}else{if(!I$.test(l))continue;d=parseInt(l,10)}if(d<=o)continue;let c=He(n,l,"pwsh.exe");await Uo.existsFile(c)&&(r=c,o=d)}if(!r)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new Xu(r,`PowerShell${a}${s}`,!0)}async function x$({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=He(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await Uo.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=i?{pwshMsixDirRegex:WJ,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:VJ,pwshMsixName:"PowerShell (Store)"};for(let o of await at.readdir(t))if(e.test(o)){let r=He(t,o,"pwsh.exe");return new Xu(r,n)}return null}function $J(){let i=He(IN.homedir(),".dotnet","tools","pwsh.exe");return new Xu(i,".NET Core PowerShell Global Tool")}function zJ(){let i=He(IN.homedir(),"scoop","apps"),t=He(i,"pwsh","current","pwsh.exe");return new Xu(t,"PowerShell (Scoop)")}function qJ(){let i=He(process.env.windir,Wy===1&&ah!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new Xu(i,"Windows PowerShell",!0)}async function*KJ(){let i=await cP();i&&(yield i),i=await cP({useAlternateBitness:!0}),i&&(yield i),i=await x$(),i&&(yield i),i=$J(),i&&(yield i),i=await cP({findPreview:!0}),i&&(yield i),i=await x$({findPreview:!0}),i&&(yield i),i=await cP({useAlternateBitness:!0,findPreview:!0}),i&&(yield i),i=await zJ(),i&&(yield i),i=qJ(),i&&(yield i)}async function*jJ(){for await(let i of KJ())await i.exists()&&(yield i)}async function S$(){for await(let i of jJ())return i;return null}async function C$(i,t){return i===1?Ce?JJ():UE(t):QJ(i,t)}var xN=null;function QJ(i,t){if(Je&&i===2||ht&&i===3)return"/bin/bash";if(!xN){let e;if(Ce)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=GJ().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}xN=e}return xN}var SN=null;async function JJ(){return SN||(SN=(await S$()).exePath),SN}import qEt from"assert";import UEt from"minimist";var VEt={o:p(2298,null),e:p(2282,null),t:p(2312,null),m:p(2293,null)};var YJ={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:p(2302,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:p(2269,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:p(2264,null)},maximize:{type:"boolean",cat:"o",description:p(2268,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:p(2305,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:p(2296,null)},profile:{type:"string",cat:"o",args:"profileName",description:p(2301,null)},help:{type:"boolean",alias:"h",description:p(2284,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:p(2270,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:p(2270,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:p(2270,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:p(2274,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:p(2294,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:p(2263,null)},remove:{type:"boolean",cat:"o",args:"folder",description:p(2303,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:p(2283,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:p(2295,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:p(2304,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:p(2266,null)},wait:{type:"boolean",cat:"o",alias:"w",description:p(2322,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:p(2290,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:p(2319,null)},profile:{type:"string",cat:"o",args:"profileName",description:p(2301,null)},help:{type:"boolean",cat:"o",alias:"h",description:p(2284,null)},"stdin-to-clipboard":{type:"boolean",cat:"o",alias:"c",description:p(2271,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:p(2281,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:p(2289,null)},"agent-plugins-dir":{type:"string"},"agents-user-data-dir":{type:"string"},"agents-extensions-dir":{type:"string"},"show-versions":{type:"boolean",cat:"e",description:p(2306,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:p(2267,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:p(2288,null)},"pre-release":{type:"boolean",cat:"e",description:p(2287,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:p(2314,null)},"update-extensions":{type:"boolean",cat:"e",description:p(2317,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:p(2280,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:p(2265,null)},version:{type:"boolean",cat:"t",alias:"v",description:p(2321,null)},verbose:{type:"boolean",cat:"t",global:!0,description:p(2320,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:p(2292,null)},status:{type:"boolean",alias:"s",cat:"t",description:p(2307,null)},"prof-startup":{type:"boolean",cat:"t",description:p(2300,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:p(2277,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:p(2276,null)},sync:{type:"string",cat:"t",description:p(2313,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:p(2286,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:p(2285,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:p(2279,null)},"disable-gpu":{type:"boolean",cat:"t",description:p(2278,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:p(2275,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:p(2291,null)},telemetry:{type:"boolean",cat:"t",description:p(2310,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:p(2311,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[]"}};function CN(i){return i.VSCODE_CLI==="1"}var TN;async function T$(i,t,e,n){return e["force-disable-user-env"]?(t.trace("resolveShellEnv(): skipped (--force-disable-user-env)"),{}):Ce?(t.trace("resolveShellEnv(): skipped (Windows)"),{}):CN(n)&&!e["force-user-env"]?(t.trace("resolveShellEnv(): skipped (VSCODE_CLI is set)"),{}):(CN(n)?t.trace("resolveShellEnv(): running (--force-user-env)"):t.trace("resolveShellEnv(): running (macOS/Linux)"),TN||(TN=Jr.withAsyncBody(async(o,r)=>{let s=new ke,a=1e4,l=i.getValue("application.shellEnvironmentResolutionTimeout");typeof l=="number"&&(a=M2(l,1,120)*1e3);let d=setTimeout(()=>{s.dispose(!0),r(new Error(p(2618,null)))},a);try{o(await ZJ(t,s.token))}catch(c){!Kt(c)&&!s.token.isCancellationRequested?r(new Error(p(2616,null,To(c)))):o({})}finally{clearTimeout(d),s.dispose()}})),TN)}async function ZJ(i,t){let e=process.env.ELECTRON_RUN_AS_NODE;i.trace("getUnixShellEnvironment#runAsNode",e);let n=process.env.ELECTRON_NO_ATTACH_CONSOLE;i.trace("getUnixShellEnvironment#noAttach",n);let o=Pe().replace(/-/g,"").substr(0,12),r=new RegExp(o+"({.*})"+o),s={...process.env,ELECTRON_RUN_AS_NODE:"1",ELECTRON_NO_ATTACH_CONSOLE:"1",VSCODE_RESOLVING_ENVIRONMENT:"1"};i.trace("getUnixShellEnvironment#env",s);let a=await C$(mr,s);return i.trace("getUnixShellEnvironment#shell",a),new Promise((l,d)=>{if(t.isCancellationRequested)return d(new Ue);let c=ot(a),u,m,g="";/^(?:pwsh|powershell)(?:-preview)?$/.test(c)?(u=`& '${process.execPath}' ${g} -p '''${o}'' + JSON.stringify(process.env) + ''${o}'''`,m=["-Login","-Command"]):c==="nu"?(u=`^'${process.execPath}' ${g} -p '"${o}" + JSON.stringify(process.env) + "${o}"'`,m=["-i","-l","-c"]):c==="xonsh"?(u=`import os, json; print("${o}", json.dumps(dict(os.environ)), "${o}")`,m=["-i","-l","-c"]):(u=`'${process.execPath}' ${g} -p '"${o}" + JSON.stringify(process.env) + "${o}"'`,c==="tcsh"||c==="csh"?m=["-ic"]:m=["-i","-l","-c"]),i.trace("getUnixShellEnvironment#spawn",JSON.stringify(m),u);let h=XJ(a,[...m,u],{detached:!0,stdio:["ignore","pipe","pipe"],env:s});t.onCancellationRequested(()=>(h.kill(),d(new Ue))),h.on("error",x=>{i.error("getUnixShellEnvironment#errorChildProcess",To(x)),d(x)});let f=[];h.stdout.on("data",x=>f.push(x));let I=[];h.stderr.on("data",x=>I.push(x)),h.on("close",(x,T)=>{let w=Buffer.concat(f).toString("utf8");i.trace("getUnixShellEnvironment#raw",w);let M=Buffer.concat(I).toString("utf8");if(M.trim()&&i.trace("getUnixShellEnvironment#stderr",M),x||T)return d(new Error(p(2617,null,x,T)));let O=r.exec(w),N=O?O[1]:"{}";try{let $=JSON.parse(N);e?$.ELECTRON_RUN_AS_NODE=e:delete $.ELECTRON_RUN_AS_NODE,n?$.ELECTRON_NO_ATTACH_CONSOLE=n:delete $.ELECTRON_NO_ATTACH_CONSOLE,delete $.VSCODE_RESOLVING_ENVIRONMENT,delete $.XDG_RUNTIME_DIR,i.trace("getUnixShellEnvironment#result",$),l($)}catch($){i.error("getUnixShellEnvironment#errorCaught",To($)),d($)}})})}import{parse as E$}from"url";function eY(i,t){return i.protocol==="http:"?t.HTTP_PROXY||t.http_proxy||null:i.protocol==="https:"&&(t.HTTPS_PROXY||t.https_proxy||t.HTTP_PROXY||t.http_proxy)||null}async function w$(i,t,e={}){let n=E$(i),o=e.proxyUrl||eY(n,t);if(!o)return null;let r=E$(o);if(!/^https?:$/.test(r.protocol||""))return null;let s={host:r.hostname||"",port:(r.port?+r.port:0)||(r.protocol==="https"?443:80),auth:r.auth,rejectUnauthorized:tI(e.strictSSL)?e.strictSSL:!0,keepAlive:!0};if(n.protocol==="http:"){let{default:a}=await import("http-proxy-agent");return new a.HttpProxyAgent(o,s)}else{let{default:a}=await import("https-proxy-agent");return new a.HttpsProxyAgent(o,s)}}import{createGunzip as tY}from"zlib";var nY=new Set(["EAI_AGAIN","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ENETDOWN","ENETUNREACH","EPROTO"]),oY=/^(GET|HEAD|OPTIONS)$/i;function rY(i){if(i instanceof Error){let t=i.code;return!!t&&nY.has(t)}return!1}var uP=class extends zx{constructor(e,n,o,r){super(r);this.machine=e;this.configurationService=n;this.environmentService=o;this.configure(),this._register(n.onDidChangeConfiguration(s=>{s.affectsConfiguration("http")&&this.configure()}))}configure(){this.proxyUrl=this.getConfigValue("http.proxy"),this.strictSSL=!!this.getConfigValue("http.proxyStrictSSL"),this.authorization=this.getConfigValue("http.proxyAuthorization")}async request(e,n){let{proxyUrl:o,strictSSL:r}=this,s;try{s=await T$(this.configurationService,this.logService,this.environmentService.args,process.env)}catch(d){this.shellEnvErrorLogged||(this.shellEnvErrorLogged=!0,this.logService.error("resolving shell environment failed",Zi(d)))}let a={...process.env,...s},l=e.agent?e.agent:await w$(e.url||"",a,{proxyUrl:o,strictSSL:r});return e.agent=l,e.strictSSL=r,this.authorization&&(e.headers={...e.headers||{},"Proxy-Authorization":this.authorization}),this.logAndRequest(e,()=>P$(e,n))}async resolveProxy(e){}async lookupAuthorization(e){}async lookupKerberosAuthorization(e){try{let n=this.getConfigValue("http.proxyKerberosServicePrincipal");return"Negotiate "+await EN(e,n,this.logService,"RequestService#lookupKerberosAuthorization")}catch(n){this.logService.debug("RequestService#lookupKerberosAuthorization Kerberos authentication failed",n);return}}async loadCertificates(){return(await import("@vscode/proxy-agent")).loadSystemCertificates({loadSystemCertificatesFromNode:()=>this.getConfigValue("http.systemCertificatesNode",jp),log:this.logService})}getConfigValue(e,n){if(this.machine==="remote")return this.configurationService.getValue(e);let o=this.configurationService.inspect(e);return o.userLocalValue??o.defaultValue??n}};uP=D([C(1,Gt),C(2,QH),C(3,ne)],uP);async function EN(i,t,e,n){let o=await import("kerberos"),r=o.default||o,s=new URL(i),a=t||(process.platform==="win32"?`HTTP/${s.hostname}`:`HTTP@${s.hostname}`);return e.debug(`${n} Kerberos authentication lookup`,`proxyURL:${s}`,`spn:${a}`),(await r.initializeClient(a)).step("")}async function iY(i){return(k$(i.url).protocol==="https:"?await import("https"):await import("http")).request}async function P$(i,t){let n,o=oY.test(i.type||"GET");for(let r=1;r<=3;r++)try{return await sY(i,t)}catch(s){if(n=s,s instanceof Ue||!o||!rY(s)||r===3)throw s;await Vt(100*r,t)}throw n}async function sY(i,t){return Jr.withAsyncBody(async(e,n)=>{let o=k$(i.url),r=i.getRawRequest?i.getRawRequest(i):await iY(i),s={hostname:o.hostname,port:o.port?parseInt(o.port):o.protocol==="https:"?443:80,protocol:o.protocol,path:o.path,method:i.type||"GET",headers:i.headers,agent:i.agent,rejectUnauthorized:tI(i.strictSSL)?i.strictSSL:!0};i.user&&i.password&&(s.auth=i.user+":"+i.password),i.disableCache&&(s.cache="no-store");let a=r(s,d=>{let c=Hn(i.followRedirects)?i.followRedirects:3;if(d.statusCode&&d.statusCode>=300&&d.statusCode<400&&c>0&&d.headers.location)P$({...i,url:d.headers.location,followRedirects:c-1},t).then(e,n);else{let u=d;!i.isChromiumNetwork&&d.headers["content-encoding"]==="gzip"&&(u=d.pipe(tY())),e({res:d,stream:VF(u)})}});if(a.on("error",n),i.timeout)if(i.isChromiumNetwork){let d=setTimeout(()=>{a.abort(),n(new Error(`Request timeout after ${i.timeout}ms`))},i.timeout);a.on("response",()=>clearTimeout(d)),a.on("error",()=>clearTimeout(d)),a.on("abort",()=>clearTimeout(d))}else a.setTimeout(i.timeout);i.isChromiumNetwork&&a.removeHeader("Content-Length"),i.data&&typeof i.data=="string"&&a.write(i.data),a.end();let l=t.onCancellationRequested(()=>{l.dispose(),a.abort(),n(new Ue)});a.on("response",()=>l.dispose()),a.on("error",()=>l.dispose())})}import*as rl from"@vscode/proxy-agent";var dh=cY(import.meta.url),R$=dh("http"),A$=dh("https"),M$=dh("tls"),L$=dh("net"),V$=!1,O$=!1;function W$(i,t,e,n,o,r,s){let a=r.remote.isRemote,l=r.environment.useHostProxy??!a,d=l,c=l,u=()=>!a||t.getConfiguration("http").get("useLocalProxyConfiguration",l),g={resolveProxy:vY(i,o),lookupProxyAuthorization:SY.bind(void 0,i,n,o,t,{},{},r.remote.isRemote,d),getProxyURL:()=>zr(t,a,"http.proxy"),getProxySupport:()=>zr(t,a,"http.proxySupport")||"off",getNoProxyConfig:()=>zr(t,a,"http.noProxy")||[],isAdditionalFetchSupportEnabled:()=>zr(t,a,"http.fetchAdditionalSupport",!0),isWebSocketPatchEnabled:()=>zr(t,a,"http.webSocketAdditionalSupport",!0),addCertificatesV1:()=>yY(t,a),addCertificatesV2:()=>IY(t,a),loadSystemCertificatesFromNode:()=>zr(t,a,"http.systemCertificatesNode",jp),log:n,getLogLevel:()=>{let T=n.getLevel();switch(T){case 1:return Zu.Trace;case 2:return Zu.Debug;case 3:return Zu.Info;case 4:return Zu.Warning;case 5:return Zu.Error;case 0:return Zu.Off;default:return w(T)}function w(M){return n.error("Unknown log level",M),Zu.Debug}},proxyResolveTelemetry:()=>{},isUseHostProxyEnabled:u,getNetworkInterfaceCheckInterval:()=>zr(t,a,"http.experimental.networkInterfaceCheckInterval",300)*1e3,loadAdditionalCertificates:async()=>{let T=zr(t,a,"http.systemCertificatesNode",jp),w=[];if(a&&w.push(D$({loadSystemCertificatesFromNode:()=>T,log:n})),c)if(!a&&T)w.push(D$({loadSystemCertificatesFromNode:()=>T,log:n}));else{n.trace("ProxyResolver#loadAdditionalCertificates: Loading certificates from main process");let O=i.loadCertificates();O.then(N=>n.trace("ProxyResolver#loadAdditionalCertificates: Loaded certificates from main process",N.length)),w.push(O)}let M=(await Promise.all(w)).flat();return o.$publicLog2("additionalCertificates",{count:M.length,isRemote:a,loadLocalCertificates:c,useNodeSystemCerts:T}),M},env:process.env},{resolveProxyWithRequest:h,resolveProxyURL:f}=aY(g),I=rl.default||rl;I.resolveProxyURL=f,pY(g,t,o,r,f,s),mY(g,f);let x=bY(g,h);return xY(e,x)}var uY=["content-length","host","trailer","te","upgrade","cookie2","keep-alive","transfer-encoding","set-cookie"];function pY(i,t,e,n,o,r){if(!globalThis.__vscodeOriginalFetch){let s=globalThis.fetch;globalThis.__vscodeOriginalFetch=s;let a=c=>rl.createFetchPatch(i,s,o,c),l=a();globalThis.__vscodePatchedFetch=l,globalThis.__vscodeCreateFetchPatch=a;let d=!1;n.remote.isRemote||(d=t.getConfiguration("http").get("electronFetch",O$),r.add(t.onDidChangeConfiguration(c=>{c.affectsConfiguration("http.electronFetch")&&(d=t.getConfiguration("http").get("electronFetch",O$))}))),globalThis.fetch=async function(u,m){function g(N){return m&&N in m?m[N]:typeof u=="object"&&"cache"in u?u[N]:void 0}let h=typeof u=="string"?u:"cache"in u?u.url:u.toString(),f=h.startsWith("data:");f&&lh(e,"data");let I=h.startsWith("blob:");I&&lh(e,"blob");let x=g("redirect")==="manual";x&&lh(e,"manualRedirect");let T=g("integrity");if(T&&lh(e,"integrity"),!d||f||I||x||T){let N=await l(u,m);return N$(e,N,h),N}if(m?.headers){let N=new Headers(m.headers);for(let $ of uY)N.delete($);m={...m,headers:N}}let w=u instanceof URL?u.toString():u,O=await dh("electron").net.fetch(w,m);return N$(e,O,h),O}}}function mY(i,t){if(!globalThis.__vscodeOriginalWebSocket){let e=globalThis.WebSocket;globalThis.__vscodeOriginalWebSocket=e,globalThis.WebSocket=rl.createWebSocketPatch(i,e,t)}}function N$(i,t,e){let n=t.url;Object.defineProperty(t,"url",{get(){return lh(i,"url"),n||e}});let o=t.type;Object.defineProperty(t,"type",{get(){return lh(i,"typeProperty"),o!=="default"?o:"basic"}})}var U$={url:0,typeProperty:0,data:0,blob:0,integrity:0,manualRedirect:0},pP,gY=!1;function lh(i,t){gY&&!U$[t]++&&(pP&&clearTimeout(pP),pP=setTimeout(()=>{i.$publicLog2("fetchFeatureUse",U$)},1e4),pP.unref?.())}var uo={count:0,totalDuration:0,minDuration:Number.MAX_SAFE_INTEGER,maxDuration:0,lastSentTime:0},fY=3600*1e3;function hY(i){if(uo.count>0){let t=uo.totalDuration/uo.count;i.$publicLog2("proxyResolveStats",{count:uo.count,totalDuration:uo.totalDuration,minDuration:uo.minDuration,maxDuration:uo.maxDuration,avgDuration:t}),uo.count=0,uo.totalDuration=0,uo.minDuration=Number.MAX_SAFE_INTEGER,uo.maxDuration=0}uo.lastSentTime=Date.now()}function vY(i,t){return async e=>{let n=performance.now();try{return await i.resolveProxy(e)}finally{let o=performance.now()-n;uo.count++,uo.totalDuration+=o,uo.minDuration=Math.min(uo.minDuration,o),uo.maxDuration=Math.max(uo.maxDuration,o),Date.now()-uo.lastSentTime>=fY&&hY(t)}}}function bY(i,t){function e(n,o){let r=n.default||n;return r.__vscodeOriginal=Object.assign({},r),Object.assign(r,o)}return{http:e(R$,_$(i,R$,t)),https:e(A$,_$(i,A$,t)),net:e(L$,dY(i,L$)),tls:e(M$,lY(i,M$))}}function yY(i,t){return!zr(i,t,"http.experimental.systemCertificatesV2",V$)&&!!zr(i,t,"http.systemCertificates")}function IY(i,t){return!!zr(i,t,"http.experimental.systemCertificatesV2",V$)&&!!zr(i,t,"http.systemCertificates")}var F$=new Map;function xY(i,t){return i.getExtensionPathIndex().then(e=>{let n=dh("module"),o=n._load;n._load=function(s,a,l){if(s==="net")return t.net;if(s==="tls")return t.tls;if(s!=="http"&&s!=="https"&&s!=="undici")return o.apply(this,arguments);let d=e.findSubstr(b.file(a.filename)),c=F$.get(d);if(c||F$.set(d,c={}),!c[s])if(s==="undici"){let u=o.apply(this,arguments);rl.patchUndici(u),c[s]=u}else{let u=t[s];c[s]={...u}}return c[s]}})}async function SY(i,t,e,n,o,r,s,a,l,d,c){l=l.replace(/\/+$/,"");let u=o[l];d&&(o[l]=d),t.trace("ProxyResolver#lookupProxyAuthorization callback",`proxyURL:${l}`,`proxyAuthenticate:${d}`,`proxyAuthenticateCache:${u}`);let m=d||u,g=Array.isArray(m)?m:typeof m=="string"?[m]:[];if(TY(e,g,s),g.some(f=>/^(Negotiate|Kerberos)( |$)/i.test(f))&&!c.kerberosRequested){c.kerberosRequested=!0;try{let f=zr(n,s,"http.proxyKerberosServicePrincipal");return"Negotiate "+await EN(l,f,t,"ProxyResolver#lookupProxyAuthorization")}catch(f){t.debug("ProxyResolver#lookupProxyAuthorization Kerberos authentication failed",f)}if(s&&a){t.debug("ProxyResolver#lookupProxyAuthorization Kerberos authentication lookup on host",`proxyURL:${l}`);let f=await i.lookupKerberosAuthorization(l);if(f)return"Negotiate "+f}}let h=g.find(f=>/^Basic( |$)/i.test(f));if(h)try{let f=r[l];if(f)if(c.basicAuthCacheUsed)t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication deleting cached credentials",`proxyURL:${l}`),delete r[l];else return t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication using cached credentials",`proxyURL:${l}`),c.basicAuthCacheUsed=!0,f;c.basicAuthAttempt=(c.basicAuthAttempt||0)+1;let I=/ realm="([^"]+)"/i.exec(h)?.[1];t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication lookup",`proxyURL:${l}`,`realm:${I}`);let x=new URL(l),T={scheme:"basic",host:x.hostname,port:Number(x.port),realm:I||"",isProxy:!0,attempt:c.basicAuthAttempt},w=await i.lookupAuthorization(T);if(w){t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication received credentials",`proxyURL:${l}`,`realm:${I}`);let M="Basic "+Buffer.from(`${w.username}:${w.password}`).toString("base64");return r[l]=M,M}else t.debug("ProxyResolver#lookupProxyAuthorization Basic authentication received no credentials",`proxyURL:${l}`,`realm:${I}`)}catch(f){t.error("ProxyResolver#lookupProxyAuthorization Basic authentication failed",f)}}var H$=!1,CY=!1;function TY(i,t,e){!CY||H$||!t.length||(H$=!0,i.$publicLog2("proxyAuthenticationRequest",{authenticationType:t.map(n=>n.split(" ")[0]).join(","),extensionHostType:e?"remote":"local"}))}function zr(i,t,e,n){if(t)return i.getConfiguration().get(e)??n;let o=i.getConfiguration().inspect(e);return o?.globalLocalValue??o?.defaultValue??n}import{tmpdir as EY}from"os";var ch=class extends U{constructor(t,e){super();let n=t.getProxy(F.MainThreadDownloadService);e.registerCommand(!1,"_workbench.downloadResource",async o=>{let r=b.file(He(EY(),Pe()));return await n.$download(o,r),r})}};ch=D([C(0,ae),C(1,Fn)],ch);import*as mP from"fs";var wN=class{constructor(t,e,n){this._commands=t;this.logService=e;this._ipcHandlePath=n;this._server=void 0;this._disposed=!1;this.setup()}get ipcHandlePath(){return this._ipcHandlePath}async setup(){try{let t=await import("http");if(this._disposed)return;this._server=t.createServer((e,n)=>this.onRequest(e,n));try{this._server.listen(this.ipcHandlePath),this._server.on("error",e=>this.logService.error(e))}catch{this.logService.error("Could not start open from terminal server.")}}catch(t){this.logService.error("Error setting up CLI server",t)}}onRequest(t,e){let n=(r,s)=>{e.writeHead(r,{"content-type":"application/json"}),e.end(JSON.stringify(s||null),a=>a&&this.logService.error(a))},o=[];t.setEncoding("utf8"),t.on("data",r=>o.push(r)),t.on("end",async()=>{try{let r=JSON.parse(o.join("")),s;switch(r.type){case"open":s=await this.open(r);break;case"openExternal":s=await this.openExternal(r);break;case"status":s=await this.getStatus(r);break;case"extensionManagement":s=await this.manageExtensions(r);break;case"clipboard":s=await this.clipboard(r);break;default:n(404,`Unknown message type: ${r.type}`);break}n(200,s)}catch(r){let s=r instanceof Error?r.message:JSON.stringify(r);n(500,s),this.logService.error("Error while processing pipe request",r)}})}async open(t){let{fileURIs:e,folderURIs:n,forceNewWindow:o,diffMode:r,mergeMode:s,addMode:a,removeMode:l,forceReuseWindow:d,gotoLineMode:c,waitMarkerFilePath:u,remoteAuthority:m}=t,g=[];if(Array.isArray(n))for(let x of n)try{g.push({folderUri:b.parse(x)})}catch{}if(Array.isArray(e))for(let x of e)try{$2(x)?g.push({workspaceUri:b.parse(x)}):g.push({fileUri:b.parse(x)})}catch{}let h=u?b.file(u):void 0,I={forceNewWindow:o,diffMode:r,mergeMode:s,addMode:a,removeMode:l,gotoLineMode:c,forceReuseWindow:d,preferNewWindow:!d&&!h&&!a&&!l,waitMarkerFileURI:h,remoteAuthority:m};this._commands.executeCommand("_remoteCLI.windowOpen",g,I)}async openExternal(t){for(let e of t.uris)b.parse(e).scheme!=="file"&&await this._commands.executeCommand("_remoteCLI.openExternal",e)}async manageExtensions(t){let e=o=>o?.map(r=>/\.vsix$/i.test(r)?b.parse(r):r),n={list:t.list,install:e(t.install),uninstall:e(t.uninstall),force:t.force};return await this._commands.executeCommand("_remoteCLI.manageExtensions",n)}async getStatus(t){return await this._commands.executeCommand("_remoteCLI.getSystemStatus")}async clipboard(t){return await this._commands.executeCommand("_remoteCLI.setClipboard",t.content)}dispose(){this._disposed=!0,this._server?.close(),this._ipcHandlePath&&process.platform!=="win32"&&mP.existsSync(this._ipcHandlePath)&&mP.unlinkSync(this._ipcHandlePath)}},uh=class extends wN{constructor(t,e){super(t,e,a2())}};uh=D([C(0,Fn),C(1,ne)],uh);var ph=class{constructor(t,e){this._mainThreadConsole=t.getProxy(F.MainThreadConsole),this._includeStack=e.consoleForward.includeStack,this._logNative=e.consoleForward.logNative,this._wrapConsoleMethod("info","log"),this._wrapConsoleMethod("log","log"),this._wrapConsoleMethod("warn","warn"),this._wrapConsoleMethod("debug","debug"),this._wrapConsoleMethod("error","error")}_wrapConsoleMethod(t,e){let n=this,o=console[t];Object.defineProperty(console,t,{set:()=>{},get:()=>(...r)=>{n._handleConsoleCall(t,e,o,r)}})}_handleConsoleCall(t,e,n,o){this._mainThreadConsole.$logExtensionHostMessage({type:"__$console",severity:e,arguments:kY(o,this._includeStack)}),this._logNative&&this._nativeConsoleLogMessage(t,n,o)}};ph=D([C(0,ae),C(1,Xe)],ph);var wY=1e5;function kY(i,t){let e=[];if(i.length)for(let n=0;n<i.length;n++){let o=i[n];if(typeof o>"u")o="undefined";else if(o instanceof Error){let r=o;r.stack?o=r.stack:o=r.toString()}e.push(o)}if(t){let n=new Error().stack;n&&e.push({__$stack:n.split(`
`).slice(3).join(`
`)})}try{let n=wp(e);return n.length>wY?"Output omitted for a large object that exceeds the limits":n}catch(n){return`Output omitted for an object that cannot be inspected ('${n.toString()}')`}}var PY=1024*1024,mh=class extends ph{constructor(e,n){super(e,n);this._isMakingConsoleCall=!1;this._wrapStream("stderr","error"),this._wrapStream("stdout","log")}_nativeConsoleLogMessage(e,n,o){let r=e==="error"||e==="warn"?process.stderr:process.stdout;this._isMakingConsoleCall=!0,r.write(`
START_NATIVE_LOG
`),n.apply(console,o),r.write(`
END_NATIVE_LOG
`),this._isMakingConsoleCall=!1}_wrapStream(e,n){let o=process[e],r=o.write,s="";Object.defineProperty(o,"write",{set:()=>{},get:()=>(a,l,d)=>{if(!this._isMakingConsoleCall){s+=a.toString(l);let c=s.length>PY?s.length:s.lastIndexOf(`
`);c!==-1&&(console[n](s.slice(0,c)),s=s.slice(c+1))}r.call(o,a,l,d)}})}};mh=D([C(0,ae),C(1,Xe)],mh);import{constants as PN,promises as ep}from"fs";async function B$(i,t,e,n,o,r){let s;try{await _Y(i,t,e,n,o,r)}catch(a){s=a}finally{s&&o.errorTransformer&&(s=o.errorTransformer(s)),typeof s<"u"&&e.error(s),e.end()}}async function _Y(i,t,e,n,o,r){kN(r);let s=await i.open(t,{create:!1});try{kN(r);let a=0,l=0,d=o&&typeof o.length=="number"?o.length:void 0,c=W.alloc(Math.min(o.bufferSize,typeof d=="number"?d:o.bufferSize)),u=o&&typeof o.position=="number"?o.position:0,m=0;do l=await i.read(s,u,c.buffer,m,c.byteLength-m),u+=l,m+=l,a+=l,typeof d=="number"&&(d-=l),m===c.byteLength&&(await e.write(n(c)),c=W.alloc(Math.min(o.bufferSize,typeof d=="number"?d:o.bufferSize)),m=0);while(l>0&&(typeof d!="number"||d>0)&&kN(r)&&DY(a,o));if(m>0){let g=m;typeof d=="number"&&(g=Math.min(m,d)),e.write(n(c.slice(0,g)))}}catch(a){throw O2(a)}finally{await i.close(s)}}function kN(i){if(i.isCancellationRequested)throw na();return!0}function DY(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw wi(p(2484,null),"EntryTooLarge");return!0}var gP=class extends U{constructor(e,n){super();this.logService=e;this.options=n;this._onDidChangeFile=this._register(new E);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidWatchError=this._register(new E);this.onDidWatchError=this._onDidWatchError.event;this.universalWatchRequests=[];this.universalWatchRequestDelayer=this._register(new da(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new da(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 o=this.toWatchRequest(e,n),r=qP(this.universalWatchRequests,o);return this.refreshUniversalWatchers(),Q(()=>{r(),this.refreshUniversalWatchers()})}toWatchRequest(e,n){let o={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:n.recursive,filter:n.filter,correlationId:n.correlationId};if(I5(o)){let r=this.options?.watcher?.recursive?.usePolling;r===!0?o.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3:Array.isArray(r)&&r.includes(o.path)&&(o.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3)}return o}refreshUniversalWatchers(){this.universalWatchRequestDelayer.trigger(()=>this.doRefreshUniversalWatchers(),this.getRefreshWatchersDelay(this.universalWatchRequests.length)).catch(e=>Qe(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire(uO(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 o={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:!1,filter:n.filter,correlationId:n.correlationId},r=qP(this.nonRecursiveWatchRequests,o);return this.refreshNonRecursiveWatchers(),Q(()=>{r(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>Qe(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire(uO(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 ro(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return gF(n)}};import{fork as MY}from"child_process";function $$(i){let t=i;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function RY(i){let t=[],e;try{let n=JSON.parse(i.arguments),o=n[n.length-1];o&&o.__$stack&&(n.pop(),e=o.__$stack),t.push(...n)}catch{t.push("Unable to log remote console arguments",i.arguments)}return{args:t,stack:e}}function AY(i){if(!i)return i;let t=i.indexOf(`
`);return t===-1?i:i.substring(0,t)}function z$(i,t){let{args:e,stack:n}=RY(i),o=typeof e[0]=="string"&&e.length===1,r=AY(n);r&&(r=`(${r.trim()})`);let s=[];if(typeof e[0]=="string"?r&&o?s=[`%c[${t}] %c${e[0]} %c${r}`,gh("blue"),gh(""),gh("grey")]:s=[`%c[${t}] %c${e[0]}`,gh("blue"),gh(""),...e.slice(1)]:s=[`%c[${t}]%`,gh("blue"),...e],r&&!o&&s.push(r),typeof console[i.severity]!="function")throw new Error("Unknown console method");console[i.severity].apply(console,s)}function gh(i){return`color: ${i}`}var fP=class{constructor(t,e){this.modulePath=t;this.options=e;this.activeRequests=new Set;this.channels=new Map;this._onDidProcessExit=new E;this.onDidProcessExit=this._onDidProcessExit.event;let n=e.timeout||6e4;this.disposeDelayer=new Hh(n),this.child=null,this._client=null}getChannel(t){let e=this;return{call(n,o,r){return e.requestPromise(t,n,o,r)},listen(n,o){return e.requestEvent(t,n,o)}}}requestPromise(t,e,n,o=me.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(o.isCancellationRequested)return Promise.reject(na());this.disposeDelayer.cancel();let r=this.getCachedChannel(t),s=yr(d=>r.call(e,n,d)),a=o.onCancellationRequested(()=>s.cancel()),l=Q(()=>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 ye.None;this.disposeDelayer.cancel();let o,r=new E({onWillAddFirstListener:()=>{o=this.getCachedChannel(t).listen(e,n)(r.fire,r),this.activeRequests.add(o)},onDidRemoveLastListener:()=>{this.activeRequests.delete(o),o.dispose(),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}});return r.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(u=>!/^--inspect(-brk)?=/.test(u)).filter(u=>!u.startsWith("--vscode-"))),w4(e.env),this.child=MY(this.modulePath,t,e);let n=new E,r=ye.fromNodeEventEmitter(this.child,"message",u=>u)(u=>{if($$(u)){z$(u,`IPC Library: ${this.options.serverName}`);return}n.fire(W.wrap(Buffer.from(u,"base64")))}),s=this.options.useQueue?P4(this.child):this.child,a=u=>this.child?.connected&&s.send(u.buffer.toString("base64")),l=n.event,d={send:a,onMessage:l};this._client=new Qh(d);let c=()=>this.disposeClient();process.once("exit",c),this.child.on("error",u=>console.warn('IPC "'+this.options.serverName+'" errored with '+u)),this.child.on("exit",(u,m)=>{process.removeListener("exit",c),r.dispose(),this.activeRequests.forEach(g=>kn(g)),this.activeRequests.clear(),u!==0&&m!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+u+" and signal "+m),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:u,signal:m})})}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()}};var hP=class extends Pw{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new fP(Cl.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:o})=>this.onError(`terminated by itself with code ${n}, signal: ${o} (ETERM)`))),tD.toService(o2(e.getChannel("watcher")))}};import{watchFile as LY,unwatchFile as OY}from"fs";var vP=class extends U{constructor(){super();this._onDidChangeFile=this._register(new E);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidLogMessage=this._register(new E);this.onDidLogMessage=this._onDidLogMessage.event;this._onDidWatchFail=this._register(new E);this.onDidWatchFail=this._onDidWatchFail.event;this.correlatedWatchRequests=new Map;this.nonCorrelatedWatchRequests=new Map;this.suspendedWatchRequests=this._register(new wn);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new da(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new jt;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 _w(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:Yn(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new jt;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[o,r]of[...this.nonCorrelatedWatchRequests,...this.correlatedWatchRequests])this.suspendedWatchRequests.has(o)||n.push(r);return this.updateWatchersDelayer.trigger(()=>this.doWatch(n),e?this.getUpdateWatchersDelay():0).catch(o=>Qe(o))}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 z;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 o=this.recursiveWatcher?.subscribe(e.path,(r,s)=>{n.isDisposed||(r?this.monitorSuspendedWatchRequest(e,n):s?.type===1&&this.onMonitoredPathAdded(e))});return o?(n.add(o),!0):!1}doMonitorWithNodeJS(e,n){let o=!1,r=(s,a)=>{if(n.isDisposed)return;let l=this.isPathNotFound(s),d=this.isPathNotFound(a),c=o;o=l,!l&&(d||c)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{LY(e.path,{persistent:!1,interval:this.suspendedWatchRequestPollingInterval},r)}catch(s){this.warn(`fs.watchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}n.add(Q(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{OY(e.path,r)}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:b.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 o=` >> normalized ${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`;this.traceWithCorrelation(o,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: ${C5(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as NY,promises as UY}from"fs";var bP=class i extends U{constructor(e,n,o,r,s,a){super();this.request=e;this.recursiveWatcher=n;this.onDidFilesChange=o;this.onDidWatchFail=r;this.onLogMessage=s;this.verboseLogging=a;this.throttledFileChangesEmitter=this._register(new xp({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new NI(e=>this.handleFileChanges(e),i.FILE_CHANGES_HANDLER_DELAY));this.cts=new ke;this.realPath=new pt(async()=>{let e=this.request.path;try{e=await at.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=!Je;this.excludes=mO(this.request.path,this.request.excludes,l),this.includes=this.request.includes?mO(this.request.path,this.request.includes,l):void 0,this.filter=_w(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 UY.stat(this.request.path);if(this.cts.token.isCancellationRequested)return;await ZP(this.doWatch(e.isDirectory()),this._store)}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 z;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 o=b.file(this.request.path),r=this.recursiveWatcher?.subscribe(this.request.path,async(s,a)=>{n.isDisposed||(s?await ZP(this.doWatch(e),n):a&&(typeof a.cId=="number"||typeof this.request.correlationId=="number")&&this.onFileChange({resource:o,type:a.type,cId:this.request.correlationId},!0))});return r?(n.add(r),!0):!1}async doWatchWithNodeJS(e,n){let o=await this.realPath.value;if(this.cts.token.isCancellationRequested)return;if(ht&&Rr(o,"/Volumes/",!0)){this.error(`Refusing to watch ${o} for changes using fs.watch() for possibly being a network share where watching is unreliable and unstable.`);return}let r=new ke(this.cts.token);n.add(Q(()=>r.dispose(!0)));let s=new z;n.add(s);try{let a=b.file(this.request.path),l=ot(o),d=NY(o);s.add(Q(()=>{d.removeAllListeners(),d.close()})),this.trace(`Started watching: '${o}'`);let c=new Set;if(e)try{for(let m of await at.readdir(o))c.add(m)}catch(m){this.error(m)}if(r.token.isCancellationRequested)return;let u=new Map;s.add(Q(()=>{for(let[,m]of u)m.dispose();u.clear()})),d.on("error",(m,g)=>{r.token.isCancellationRequested||(this.error(`Failed to watch ${o} for changes using fs.watch() (${m}, ${g})`),this.notifyWatchFailed())}),d.on("change",(m,g)=>{if(r.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${m}"] ${g}`);let h="";if(g&&(h=g.toString(),ht&&(h=hc(h))),!(!h||m!=="change"&&m!=="rename"))if(e)if(m==="rename"){u.get(h)?.dispose();let f=setTimeout(async()=>{if(u.delete(h),vp(h,l,!Je)&&!await at.exists(o)){this.onWatchedPathDeleted(a);return}if(r.token.isCancellationRequested)return;let I=await this.existsChildStrictCase(He(o,h));if(r.token.isCancellationRequested)return;let x;I?c.has(h)?x=0:(x=1,c.add(h)):(c.delete(h),x=2),this.onFileChange({resource:vt(a,h),type:x,cId:this.request.correlationId})},i.FILE_DELETE_HANDLER_DELAY);u.set(h,Q(()=>clearTimeout(f)))}else{let f;c.has(h)?f=0:(f=1,c.add(h)),this.onFileChange({resource:vt(a,h),type:f,cId:this.request.correlationId})}else if(m==="rename"||!vp(h,l,!Je)){let f=setTimeout(async()=>{let I=await at.exists(o);r.token.isCancellationRequested||(I?(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(Q(()=>clearTimeout(f)))}else this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0)})}catch(a){if(r.token.isCancellationRequested)return;this.error(`Failed to watch ${o} 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(o=>o(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (excluded) ${e.resource.fsPath}`):!n&&this.includes&&this.includes.length>0&&!this.includes.some(o=>o(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (not included) ${e.resource.fsPath}`):this.fileChangesAggregator.work(e))}handleFileChanges(e){let n=x5(e),o=[];for(let s of n){if(S5(s,this.filter)){this.verboseLogging&&this.traceWithCorrelation(` >> ignored (filtered) ${s.resource.fsPath}`);continue}o.push(s)}if(o.length===0)return;if(this.verboseLogging)for(let s of o)this.traceWithCorrelation(` >> normalized ${s.type===1?"[ADDED]":s.type===2?"[DELETED]":"[CHANGED]"} ${s.resource.fsPath}`);this.throttledFileChangesEmitter.work(o)?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: ${o[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: ${o.length}, most recent change: ${o[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`)}async existsChildStrictCase(e){if(Je)return at.exists(e);try{let n=ot(e);return(await at.readdir(pn(e))).some(r=>r===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 yP=class extends vP{constructor(e){super();this.recursiveWatcher=e;this.onDidError=ye.None;this._watchers=new Map;this.worker=this._register(new cn)}get watchers(){return this._watchers.values()}async doWatch(e){e=this.removeDuplicateRequests(e);let n=[],o=new Set(Array.from(this.watchers));for(let r of e){let s=this._watchers.get(this.requestToWatcherKey(r));s&&ZA(s.request.excludes,r.excludes)&&ZA(s.request.includes,r.includes)?o.delete(s):n.push(r)}n.length&&this.trace(`Request to start watching: ${n.map(r=>this.requestToString(r)).join(",")}`),o.size&&this.trace(`Request to stop watching: ${Array.from(o).map(r=>this.requestToString(r.request)).join(",")}`),this.worker.clear();for(let r of o)this.stopWatching(r);this.createWatchWorker().work(n)}createWatchWorker(){return this.worker.value=new xp({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 Je?e:e.toLowerCase()}startWatching(e){let n=new bP(e,this.recursiveWatcher,r=>this._onDidChangeFile.fire(r),()=>this._onDidWatchFail.fire(e),r=>this._onDidLogMessage.fire(r),this.verboseLogging),o={request:e,instance:n};this._watchers.set(this.requestToWatcherKey(e),o)}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 o of e){let r=n.get(o.correlationId);r||(r=new Map,n.set(o.correlationId,r));let s=this.pathToWatcherKey(o.path);r.has(s)&&this.trace(`ignoring a request for watching who's path is already watched: ${this.requestToString(o)}`),r.set(s,o)}return Array.from(n.values()).flatMap(o=>Array.from(o.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 IP=class extends kw{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new yP(void 0))}};var xP=class i extends gP{constructor(){super(...arguments);this.onDidChangeCapabilities=ye.None;this.resourceLocks=new je(e=>gc.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,Je&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:o}=await Uo.stat(this.toFilePath(e)),r;return(n.mode&128)===0&&(r=2),(n.mode&PN.S_IXUSR||n.mode&PN.S_IXGRP||n.mode&PN.S_IXOTH)&&(r=(r??0)|4),{type:this.toType(n,o),ctime:n.birthtime.getTime(),mtime:n.mtime.getTime(),size:n.size,permissions:r}}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 at.realpath(n)}async readdir(e){try{let n=await at.readdir(this.toFilePath(e),{withFileTypes:!0}),o=[];return await Promise.all(n.map(async r=>{try{let s;r.isSymbolicLink()?s=(await this.stat(vt(e,r.name))).type:s=this.toType(r),o.push([r.name,s])}catch(s){this.logService.trace(s)}})),o}catch(n){throw this.toFileSystemProviderError(n)}}toType(e,n){let o;return n?.dangling?o=0:e.isFile()?o=1:e.isDirectory()?o=2:o=0,n&&(o|=64),o}async createResourceLock(e){let n=this.toFilePath(e);this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - request to acquire resource lock (${n})`);let o;for(;o=this.resourceLocks.get(e);)this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - waiting for resource lock to be released (${n})`),await o.wait();let r=new Sn;return this.resourceLocks.set(e,r),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),Q(()=>{this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock dispose() (${n})`),this.resourceLocks.get(e)===r&&(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})`),r.open()})}async readFile(e,n){let o;try{n?.atomic&&(this.traceLock(`[Disk FileSystemProvider]: atomic read operation started (${this.toFilePath(e)})`),o=await this.createResourceLock(e));let r=this.toFilePath(e);return await ep.readFile(r)}catch(r){throw this.toFileSystemProviderError(r)}finally{o?.dispose()}}traceLock(e){i.TRACE_LOG_RESOURCE_LOCKS&&this.logService.trace(e)}readFileStream(e,n,o){let r=fc(s=>W.concat(s.map(a=>W.wrap(a))).buffer);return B$(this,e,r,s=>s.buffer,{...n,bufferSize:256*1024},o),r}async writeFile(e,n,o){return o?.atomic!==!1&&o?.atomic?.postfix&&await this.canWriteFileAtomic(e)?this.doWriteFileAtomic(e,vt(Oo(e),`${rt(e)}${o.atomic.postfix}`),n,o):this.doWriteFile(e,n,o)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:o}=await Uo.stat(n);if(o)return!1}catch{}return!0}async doWriteFileAtomic(e,n,o,r){let s=new z;try{s.add(await this.createResourceLock(e)),s.add(await this.createResourceLock(n)),await this.doWriteFile(n,o,{...r,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,o,r){let s;try{let a=this.toFilePath(e);if(!o.create||!o.overwrite){if(await at.exists(a)){if(!o.overwrite)throw wi(p(2487,null),"EntryExists")}else if(!o.create)throw wi(p(2490,null),"EntryNotFound")}s=await this.open(e,{create:!0,append:o.append,unlock:o.unlock},r),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,o){let r=this.toFilePath(e),s;wc(n)&&!o&&(s=await this.createResourceLock(e));let a;try{if(wc(n)&&n.unlock)try{let{stat:l}=await Uo.stat(r);l.mode&128||await ep.chmod(r,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(Ce&&wc(n)&&!n.append)try{a=await at.open(r,"r+"),await at.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await at.close(a)}catch(d){this.logService.trace(d)}a=void 0}}typeof a!="number"&&(a=await at.open(r,wc(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),wc(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),wc(n)&&this.writeHandles.set(a,e),s){let l=this.mapHandleToLock.get(a);this.traceLock(`[Disk FileSystemProvider]: open() - storing lock for handle ${a} (${r})`),this.mapHandleToLock.set(a,s),l&&(this.traceLock(`[Disk FileSystemProvider]: open() - disposing a previous lock that was still stored on same handle ${a} (${r})`),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 at.fdatasync(e)}catch(o){i.configureFlushOnWrite(!1),this.logService.error(o)}return await at.close(e)}catch(o){throw this.toFileSystemProviderError(o)}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,o,r,s){let a=this.normalizePos(e,n),l=null;try{l=(await at.read(e,o,r,s,a)).bytesRead}catch(d){throw this.toFileSystemProviderError(d)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,o){let r=this.mapHandleToPos.get(e);typeof r=="number"&&(typeof n=="number"||(typeof o=="number"?this.mapHandleToPos.set(e,r+o):this.mapHandleToPos.delete(e)))}async write(e,n,o,r,s){return DF(()=>this.doWrite(e,n,o,r,s),100,3)}async doWrite(e,n,o,r,s){let a=this.normalizePos(e,n),l=null;try{l=(await at.write(e,o,r,s,a)).bytesWritten}catch(d){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),d)}finally{this.updatePos(e,a,l)}return l}async mkdir(e){try{await ep.mkdir(this.toFilePath(e))}catch(n){throw this.toFileSystemProviderError(n)}}async delete(e,n){try{let o=this.toFilePath(e);if(n.recursive){let r;n?.atomic!==!1&&n.atomic.postfix&&(r=He(pn(o),`${ot(o)}${n.atomic.postfix}`)),await at.rm(o,1,r)}else try{await ep.unlink(o)}catch(r){if(r.code==="EPERM"||r.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await Uo.stat(o);s=a.isDirectory()&&!l}catch{}if(s)await ep.rmdir(o);else throw r}else throw r}}catch(o){throw this.toFileSystemProviderError(o)}}async rename(e,n,o){let r=this.toFilePath(e),s=this.toFilePath(n);if(r!==s)try{await this.validateMoveCopy(e,n,"move",o.overwrite),await at.rename(r,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(p(2491,null,ot(r),ot(pn(s)),a.toString()))),this.toFileSystemProviderError(a)}}async copy(e,n,o){let r=this.toFilePath(e),s=this.toFilePath(n);if(r!==s)try{await this.validateMoveCopy(e,n,"copy",o.overwrite),await at.copy(r,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(p(2485,null,ot(r),ot(pn(s)),a.toString()))),this.toFileSystemProviderError(a)}}async validateMoveCopy(e,n,o,r){let s=this.toFilePath(e),a=this.toFilePath(n),l=!1;if(this.capabilities&1024||(l=vp(s,a,!0)),l){if(o==="copy")throw wi(p(2486,null),"EntryExists");if(o==="move")return}let c=await this.statIgnoreError(e);if(!c)throw wi(p(2489,null),"EntryNotFound");let u=await this.statIgnoreError(n);if(u){if(!r)throw wi(p(2488,null),"EntryExists");(c.type&1)!==0&&(u.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,o){let r=this.toFilePath(e),s=this.toFilePath(n),a=!!(this.capabilities&1024);if(vp(r,s,!a))return;let l=new z;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),o&&await ep.mkdir(pn(s),{recursive:!0}),await ep.copyFile(r,s)}catch(d){if(d.code==="ENOENT"&&!o)return this.doCloneFile(e,n,!0);throw this.toFileSystemProviderError(d)}finally{l.dispose()}}createUniversalWatcher(e,n,o){return new hP(r=>e(r),r=>n(r),o)}createNonRecursiveWatcher(e,n,o){return new IP(r=>e(r),r=>n(r),o)}toFileSystemProviderError(e){if(e instanceof Ll)return e;let n=e,o;switch(e.code){case"ENOENT":o="EntryNotFound";break;case"EISDIR":o="EntryIsADirectory";break;case"ENOTDIR":o="EntryNotADirectory";break;case"EEXIST":o="EntryExists";break;case"EPERM":case"EACCES":o="NoPermissions";break;case"ERR_UNC_HOST_NOT_ALLOWED":n=`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`,o="Unknown";break;default:o="Unknown"}return wi(n,o)}async toFileSystemProviderWriteError(e,n){let o=this.toFileSystemProviderError(n);if(e&&o.code==="NoPermissions")try{let{stat:r}=await Uo.stat(this.toFilePath(e));r.mode&128||(o=wi(n,"EntryWriteLocked"))}catch(r){this.logService.trace(r)}return o}};var fh=class{constructor(t,e){t.addFileSystemProvider(B.file,new _N(e),{isCaseSensitive:Je})}};fh=D([C(0,Bs),C(1,ne)],fh);var _N=class{constructor(t){this.impl=new xP(t)}async stat(t){let e=await this.impl.stat(t);return{type:e.type,ctime:e.ctime,mtime:e.mtime,size:e.size,permissions:e.permissions===1?1:void 0}}readDirectory(t){return this.impl.readdir(t)}createDirectory(t){return this.impl.mkdir(t)}readFile(t){return this.impl.readFile(t)}writeFile(t,e,n){return this.impl.writeFile(t,e,{...n,unlock:!1,atomic:!1})}delete(t,e){return this.impl.delete(t,{...e,useTrash:!1,atomic:!1})}rename(t,e,n){return this.impl.rename(t,e,n)}copy(t,e,n){return this.impl.copy(t,e,n)}get onDidChangeFile(){throw new Error("Method not implemented.")}watch(t,e){throw new Error("Method not implemented.")}};import K$ from"node:module";var j$=K$.createRequire(import.meta.url),DN=class i extends sh{constructor(){super(...arguments);this._store=new z}static _createDataUri(e){return`data:text/javascript;base64,${Buffer.from(e).toString("base64")}`}static{this._vscodeImportFnName="_VSCODE_IMPORT_VSCODE_API"}dispose(){this._store.dispose()}_installInterceptor(){let e=this,n=j$("module"),o=n._load;n._load=function(h,f,I){return h=a(h),e._factories.has(h)?e._factories.get(h).load(h,b.file(J_(f.filename)),x=>o.apply(this,[x,f,I])):o.apply(this,arguments)};let r=n._resolveLookupPaths;n._resolveLookupPaths=(g,h)=>r.call(this,a(g),h);let s=n._resolveFilename;n._resolveFilename=function(h,f,I,x){return h==="vsda"&&Array.isArray(x?.paths)&&x.paths.length===0&&(x.paths=n._nodeModulePaths(import.meta.dirname)),s.call(this,h,f,I,x)};let a=g=>{for(let h of e._alternatives){let f=h(g);if(f){g=f;break}}return g},l=new eI,d=new Map;Object.defineProperty(globalThis,i._vscodeImportFnName,{enumerable:!1,configurable:!1,writable:!1,value:g=>l.getKey(g)});let c,u=g=>{c||(c=this._factories.get("vscode"),dp(c));let h=b.parse(g),f=c.load("_not_used",h,()=>{throw new Error("CANNOT LOAD MODULE from here.")}),I=l.get(f);I||(I=Pe(),l.set(f,I));let x=d.get(I);if(!x){let T=`const _vscodeInstance = globalThis.${i._vscodeImportFnName}('${I}');

${Object.keys(f).map((w=>`export const ${w} = _vscodeInstance['${w}'];`)).join(`
`)}`;x=i._createDataUri(T),d.set(I,x)}return x},m=K$.registerHooks({resolve:(g,h,f)=>g!=="vscode"||!h.parentURL?f(g,h):{url:u(h.parentURL),shortCircuit:!0}});this._store.add(Q(()=>m.deregister()))}},SP=class extends Fd{constructor(){super(...arguments);this.extensionRuntime=1}async _beforeAlmostReadyToRunExtensions(){this._instaService.createInstance(mh);let e=this._instaService.invokeFunction(y$);if(this._instaService.createInstance(ch),this._initData.remote.isRemote&&this._initData.remote.authority){let o=this._instaService.createInstance(uh);process.env.VSCODE_IPC_HOOK_CLI=o.ipcHandlePath}this._instaService.createInstance(fh),await this._store.add(this._instaService.createInstance(DN,e,{mine:this._myRegistry,all:this._globalRegistry})).install(),Wt("code/extHost/didInitAPI"),(async()=>{let o=process.env.VSCODE_IPC_HOOK_CLI,r=process.env.CODE_SERVER_SESSION_SOCKET;if(!o||!r)return;let a={workspace:this._instaService.invokeFunction(d=>d.get(Tn).workspace),socketPath:o},l=JSON.stringify({entry:a});await new Promise((d,c)=>{let m=q$.request({path:"/add-session",socketPath:r,method:"POST",headers:{"content-type":"application/json"}},g=>{g.on("error",c),g.on("end",()=>{try{g.statusCode===200?d():c(new Error("Unexpected status code: "+g.statusCode))}catch(h){c(h)}})});m.on("error",c),m.write(l),m.end()})})().catch(o=>{this._logService.error(o)});let n=await this._extHostConfiguration.getConfigProvider();await W$(this._extHostWorkspace,n,this,this._logService,this._mainThreadTelemetryProxy,this._initData,this._store),Wt("code/extHost/didInitProxyResolver")}_getEntryPoint(e){return e.main}async _doLoadModule(e,n,o,r){if(n.scheme!==B.file)throw new Error(`Cannot load URI: '${n}', must be of file-scheme`);let s=null;o.codeLoadingStart(),this._logService.trace(`ExtensionService#loadModule [${r}] -> ${n.toString(!0)}`),this._logService.flush();let a=e?.identifier.value;e&&await this._extHostLocalizationService.initializeLocalizedMessages(e);try{a&&Wt(`code/extHost/willLoadExtensionCode/${a}`),r==="esm"?s=await import(n.toString(!0)):s=j$(n.fsPath)}finally{a&&Wt(`code/extHost/didLoadExtensionCode/${a}`),o.codeLoadingStop()}return s}async _loadCommonJSModule(e,n,o){return this._doLoadModule(e,n,o,"cjs")}async _loadESMModule(e,n,o){return this._doLoadModule(e,n,o,"esm")}async $setRemoteEnvironment(e){if(this._initData.remote.isRemote)for(let n in e){let o=e[n];o===null?delete process.env[n]:process.env[n]=o}}};import*as vh from"fs";import{exec as az}from"child_process";var FY=(i,t,e)=>{let n=new Uint8Array(16);for(let s=0;s<16;s++)n[s]=Math.round(Math.random()*256);let o=so(W.wrap(n));return[`GET ws://localhost${i}?${t}&skipWebSocketFrames=true HTTP/1.1`,"Connection: Upgrade","Upgrade: websocket",`Sec-WebSocket-Key: ${o}`].join(`\r
`)+`\r
\r
`},G$=W.fromString(`\r
\r
`);async function Q$(i,t,e,n,o){i.write(W.fromString(FY(t,e,n)));let r=new z;try{return await new Promise((s,a)=>{let l;r.add(i.onData(d=>{l?l=W.concat([l,d],l.byteLength+d.byteLength):l=d;let c=l.indexOf(G$);if(c===-1)return;s(i),i.pauseData();let u=l.slice(c+G$.byteLength);u.byteLength&&o.onData.fire(u)})),r.add(i.onClose(d=>a(d??new Error("socket closed")))),r.add(i.onEnd(()=>a(new Error("socket ended"))))})}catch(s){throw i.dispose(),s}finally{r.dispose()}}var CP=class extends U{constructor(e,n){super();this.debugLabel=e;this.pausableDataEmitter=this._register(new rs);this.onData=(...e)=>(this.pausableDataEmitter.isPaused&&queueMicrotask(()=>this.pausableDataEmitter.resume()),this.pausableDataEmitter.event(...e));this.didDisposeEmitter=this._register(new E);this.onDidDispose=this.didDisposeEmitter.event;this.ended=!1;this._register(n.onData),this._register(n.onData.event(o=>this.pausableDataEmitter.fire(o))),this.onClose=this._register(n.onClose).event,this.onEnd=this._register(n.onEnd).event}pauseData(){this.pausableDataEmitter.pause()}drain(){return Promise.resolve()}end(){this.ended=!0,this.closeRemote()}traceSocketEvent(e,n){Yh.traceSocketEvent(this,this.debugLabel,e,n)}dispose(){this.ended||this.closeRemote(),this.didDisposeEmitter.fire(),super.dispose()}};var HY="signService",Xd=R(HY);import*as oz from"net";import*as rz from"os";import*as RN from"net";var AN={1:!0,7:!0,9:!0,11:!0,13:!0,15:!0,17:!0,19:!0,20:!0,21:!0,22:!0,23:!0,25:!0,37:!0,42:!0,43:!0,53:!0,69:!0,77:!0,79:!0,87:!0,95:!0,101:!0,102:!0,103:!0,104:!0,109:!0,110:!0,111:!0,113:!0,115:!0,117:!0,119:!0,123:!0,135:!0,137:!0,139:!0,143:!0,161:!0,179:!0,389:!0,427:!0,465:!0,512:!0,513:!0,514:!0,515:!0,526:!0,530:!0,531:!0,532:!0,540:!0,548:!0,554:!0,556:!0,563:!0,587:!0,601:!0,636:!0,989:!0,990:!0,993:!0,995:!0,1719:!0,1720:!0,1723:!0,2049:!0,3659:!0,4045:!0,5060:!0,5061:!0,6e3:!0,6566:!0,6665:!0,6666:!0,6667:!0,6668:!0,6669:!0,6697:!0,10080:!0};function J$(i,t,e,n="127.0.0.1"){let o=!1,r,s=1,a=RN.createServer({pauseOnConnect:!0});function l(d,c){o||(o=!0,a.removeAllListeners(),a.close(),r&&clearTimeout(r),c(d))}return new Promise(d=>{r=setTimeout(()=>{l(0,d)},e),a.on("listening",()=>{l(i,d)}),a.on("error",c=>{c&&(c.code==="EADDRINUSE"||c.code==="EACCES")&&s<t?(i++,s++,a.listen(i,n)):l(0,d)}),a.on("close",()=>{l(0,d)}),a.listen(i,n)})}var WY=30*1e3;function LN(i){switch(i){case 1:return"Management";case 2:return"ExtensionHost";case 3:return"Tunnel"}}function X$(i){let t=new ke;return setTimeout(()=>t.cancel(),i),t.token}function BY(i,t){if(i.isCancellationRequested||t.isCancellationRequested)return me.Cancelled;let e=new ke;return i.onCancellationRequested(()=>e.cancel()),t.onCancellationRequested(()=>e.cancel()),e.token}var hh=class{get didTimeout(){return this._state==="timedout"}constructor(t){this._state="pending",this._disposables=new z,{promise:this.promise,resolve:this._resolvePromise,reject:this._rejectPromise}=Bh(),t.isCancellationRequested?this._timeout():this._disposables.add(t.onCancellationRequested(()=>this._timeout()))}registerDisposable(t){this._state==="pending"?this._disposables.add(t):t.dispose()}_timeout(){this._state==="pending"&&(this._disposables.dispose(),this._state="timedout",this._rejectPromise(this._createTimeoutError()))}_createTimeoutError(){let t=new Error("Time limit reached");return t.code="ETIMEDOUT",t.syscall="connect",t}resolve(t){this._state==="pending"&&(this._disposables.dispose(),this._state="resolved",this._resolvePromise(t))}reject(t){this._state==="pending"&&(this._disposables.dispose(),this._state="rejected",this._rejectPromise(t))}};function $Y(i,t){let e=new hh(t);return e.registerDisposable(i.onControlMessage(n=>{let o=JSON.parse(n.toString()),r=tz(o);r?e.reject(r):e.resolve(o)})),e.promise}function zY(i,t,e,n,o,r,s,a){let l=new hh(a),d=Jt.create(!1);return i.info(`Creating a socket (${s})...`),Wt(`code/willCreateSocket/${r}`),t.connect(e,n,o,s).then(c=>{l.didTimeout?(Wt(`code/didCreateSocketError/${r}`),i.info(`Creating a socket (${s}) finished after ${d.elapsed()} ms, but this is too late and has timed out already.`),c?.dispose()):(Wt(`code/didCreateSocketOK/${r}`),i.info(`Creating a socket (${s}) was successful after ${d.elapsed()} ms.`),l.resolve(c))},c=>{Wt(`code/didCreateSocketError/${r}`),i.info(`Creating a socket (${s}) returned an error after ${d.elapsed()} ms.`),i.error(c),l.reject(c)}),l.promise}function MN(i,t){let e=new hh(t);return i.then(n=>{e.didTimeout||e.resolve(n)},n=>{e.didTimeout||e.reject(n)}),e.promise}async function qY(i,t,e,n){let o=VN(i,t);i.logService.trace(`${o} 1/6. invoking socketFactory.connect().`);let r;try{r=await zY(i.logService,i.remoteSocketFactoryService,i.connectTo,__.getServerRootPath(),`reconnectionToken=${i.reconnectionToken}&reconnection=${i.reconnectionProtocol?"true":"false"}`,LN(t),`renderer-${LN(t)}-${i.reconnectionToken}`,n)}catch(c){throw i.logService.error(`${o} socketFactory.connect() failed or timed out. Error:`),i.logService.error(c),c}i.logService.trace(`${o} 2/6. socketFactory.connect() was successful.`);let s,a;i.reconnectionProtocol?(i.reconnectionProtocol.beginAcceptReconnection(r,null),s=i.reconnectionProtocol,a=!1):(s=new yc({socket:r}),a=!0),i.logService.trace(`${o} 3/6. sending AuthRequest control message.`);let l=await MN(i.signService.createNewMessage(Pe()),n),d={type:"auth",auth:i.connectionToken||"00000000000000000000",data:l.data};s.sendControl(W.fromString(JSON.stringify(d)));try{let c=await $Y(s,BY(n,X$(1e4)));if(c.type!=="sign"||typeof c.data!="string"){let h=new Error("Unexpected handshake message");throw h.code="VSCODE_CONNECTION_ERROR",h}if(i.logService.trace(`${o} 4/6. received SignRequest control message.`),!await MN(i.signService.validate(l,c.signedData),n)){let h=new Error("Refused to connect to unsupported server");throw h.code="VSCODE_CONNECTION_ERROR",h}let m=await MN(i.signService.sign(c.data),n),g={type:"connectionType",commit:i.commit,signedData:m,desiredConnectionType:t};return e&&(g.args=e),i.logService.trace(`${o} 5/6. sending ConnectionTypeRequest control message.`),s.sendControl(W.fromString(JSON.stringify(g))),{protocol:s,ownsProtocol:a}}catch(c){throw c&&c.code==="ETIMEDOUT"&&(i.logService.error(`${o} the handshake timed out. Error:`),i.logService.error(c)),c&&c.code==="VSCODE_CONNECTION_ERROR"&&(i.logService.error(`${o} received error control message when negotiating connection. Error:`),i.logService.error(c)),a&&HN(s),c}}async function KY(i,t,e,n){let o=Date.now(),r=VN(i,t),{protocol:s,ownsProtocol:a}=await qY(i,t,e,n),l=new hh(n);return l.registerDisposable(s.onControlMessage(d=>{let c=JSON.parse(d.toString()),u=tz(c);u?(i.logService.error(`${r} received error control message when negotiating connection. Error:`),i.logService.error(u),a&&HN(s),l.reject(u)):(i.reconnectionProtocol?.endAcceptReconnection(),i.logService.trace(`${r} 6/6. handshake finished, connection is up and running after ${nz(o)}!`),l.resolve({protocol:s,firstMessage:c}))})),l.promise}async function jY(i,t,e){let n=Date.now(),o=VN(i,3),{protocol:r}=await KY(i,3,t,e);return i.logService.trace(`${o} 6/6. handshake finished, connection is up and running after ${nz(n)}!`),r}async function Z$(i,t,e){let{connectTo:n,connectionToken:o}=await i.addressProvider.getAddress();return{commit:i.commit,quality:i.quality,connectTo:n,connectionToken:o,reconnectionToken:t,reconnectionProtocol:e,remoteSocketFactoryService:i.remoteSocketFactoryService,signService:i.signService,logService:i.logService}}async function ez(i,t,e){let n=await Z$(i,Pe(),null);return await jY(n,{host:t,port:e},me.None)}function GY(i){return yr(t=>new Promise((e,n)=>{let o=setTimeout(e,i*1e3);t.onCancellationRequested(()=>{clearTimeout(o),e()})}))}var ON=class{constructor(t,e){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.type=0}},NN=class{constructor(t,e,n,o){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.durationSeconds=n;this.cancellableTimer=o;this.type=1}skipWait(){this.cancellableTimer.cancel()}},UN=class{constructor(t,e,n){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.type=2}},TP=class{constructor(t,e,n){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.type=4}},FN=class{constructor(t,e,n,o){this.reconnectionToken=t;this.millisSinceLastIncomingData=e;this.attempt=n;this.handled=o;this.type=3}},Y$=class i extends U{constructor(e,n,o,r,s){super();this._connectionType=e;this._options=n;this.reconnectionToken=o;this.protocol=r;this._reconnectionFailureIsFatal=s;this._onDidStateChange=this._register(new E);this.onDidStateChange=this._onDidStateChange.event;this._permanentFailure=!1;this._isReconnecting=!1;this._isDisposed=!1;this._reconnectionGraceTime=108e5;this._onDidStateChange.fire(new TP(this.reconnectionToken,0,0)),this._register(r.onSocketClose(a=>{let l=By(this._connectionType,this.reconnectionToken,!0);a?a.type===0?(this._options.logService.info(`${l} received socket close event (hadError: ${a.hadError}).`),a.error&&this._options.logService.error(a.error)):(this._options.logService.info(`${l} received socket close event (wasClean: ${a.wasClean}, code: ${a.code}, reason: ${a.reason}).`),a.event&&this._options.logService.error(a.event)):this._options.logService.info(`${l} received socket close event.`),this._beginReconnecting()})),this._register(r.onSocketTimeout(a=>{let l=By(this._connectionType,this.reconnectionToken,!0);this._options.logService.info(`${l} received socket timeout event (reason: ${a.reason}, unacknowledgedMsgCount: ${a.unacknowledgedMsgCount}, timeSinceOldestUnacknowledgedMsg: ${a.timeSinceOldestUnacknowledgedMsg}, timeSinceLastReceivedSomeData: ${a.timeSinceLastReceivedSomeData}).`),this._beginReconnecting()})),i._instances.push(this),this._register(Q(()=>{let a=i._instances.indexOf(this);a>=0&&i._instances.splice(a,1)})),this._isPermanentFailure&&this._gotoPermanentFailure(i._permanentFailureMillisSinceLastIncomingData,i._permanentFailureAttempt,i._permanentFailureHandled)}static triggerPermanentFailure(e,n,o){this._permanentFailure=!0,this._permanentFailureMillisSinceLastIncomingData=e,this._permanentFailureAttempt=n,this._permanentFailureHandled=o,this._instances.forEach(r=>r._gotoPermanentFailure(this._permanentFailureMillisSinceLastIncomingData,this._permanentFailureAttempt,this._permanentFailureHandled))}static debugTriggerReconnection(){this._instances.forEach(e=>e._beginReconnecting())}static debugPauseSocketWriting(){this._instances.forEach(e=>e._pauseSocketWriting())}static{this._permanentFailure=!1}static{this._permanentFailureMillisSinceLastIncomingData=0}static{this._permanentFailureAttempt=0}static{this._permanentFailureHandled=!1}static{this._instances=[]}get _isPermanentFailure(){return this._permanentFailure||i._permanentFailure}updateGraceTime(e){let n=QY(e,108e5),o=By(this._connectionType,this.reconnectionToken,!1);this._options.logService.trace(`${o} Applying reconnection grace time: ${n}ms (${Math.floor(n/1e3)}s)`),this._reconnectionGraceTime=n}dispose(){super.dispose(),this._isDisposed=!0}async _beginReconnecting(){if(!this._isReconnecting)try{this._isReconnecting=!0,await this._runReconnectingLoop()}finally{this._isReconnecting=!1}}async _runReconnectingLoop(){if(this._isPermanentFailure||this._isDisposed)return;let e=By(this._connectionType,this.reconnectionToken,!0);this._options.logService.info(`${e} starting reconnecting loop. You can get more information with the trace log level.`),this._onDidStateChange.fire(new ON(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData()));let n=[0,5,5,10,10,10,10,10,30],o=this._reconnectionGraceTime;if(this._options.logService.info(`${e} starting reconnection with grace time: ${o}ms (${Math.floor(o/1e3)}s)`),o<=0){this._options.logService.error(`${e} reconnection grace time is set to 0ms, will not attempt to reconnect.`),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),0,!1);return}let r=Date.now(),s=-1;do{s++;let a=s<n.length?n[s]:n[n.length-1];try{if(a>0){let d=GY(a);this._onDidStateChange.fire(new NN(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),a,d)),this._options.logService.info(`${e} waiting for ${a} seconds before reconnecting...`);try{await d}catch{}}if(this._isPermanentFailure){this._options.logService.error(`${e} permanent failure occurred while running the reconnecting loop.`);break}this._onDidStateChange.fire(new UN(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),s+1)),this._options.logService.info(`${e} resolving connection...`);let l=await Z$(this._options,this.reconnectionToken,this.protocol);this._options.logService.info(`${e} connecting to ${l.connectTo}...`),await this._reconnect(l,X$(WY)),this._options.logService.info(`${e} reconnected!`),this._onDidStateChange.fire(new TP(this.reconnectionToken,this.protocol.getMillisSinceLastIncomingData(),s+1));break}catch(l){if(l.code==="VSCODE_CONNECTION_ERROR"){this._options.logService.error(`${e} A permanent error occurred in the reconnecting loop! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}if(Date.now()-r>=o){let d=Math.round(o/1e3);this._options.logService.error(`${e} An error occurred while reconnecting, but it will be treated as a permanent error because the reconnection grace time (${d}s) has expired! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}if(sm.isTemporarilyNotAvailable(l)){this._options.logService.info(`${e} A temporarily not available error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if((l.code==="ETIMEDOUT"||l.code==="ENETUNREACH"||l.code==="ECONNREFUSED"||l.code==="ECONNRESET")&&l.syscall==="connect"){this._options.logService.info(`${e} A network error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if(Kt(l)){this._options.logService.info(`${e} A promise cancelation error occurred while trying to reconnect, will try again...`),this._options.logService.trace(l);continue}if(l instanceof sm){this._options.logService.error(`${e} A RemoteAuthorityResolverError occurred while trying to reconnect. Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,sm.isHandled(l));break}this._options.logService.error(`${e} An unknown error occurred while trying to reconnect, since this is an unknown case, it will be treated as a permanent error! Will give up now! Error:`),this._options.logService.error(l),this._onReconnectionPermanentFailure(this.protocol.getMillisSinceLastIncomingData(),s+1,!1);break}}while(!this._isPermanentFailure&&!this._isDisposed)}_onReconnectionPermanentFailure(e,n,o){this._reconnectionFailureIsFatal?i.triggerPermanentFailure(e,n,o):this._gotoPermanentFailure(e,n,o)}_gotoPermanentFailure(e,n,o){this._onDidStateChange.fire(new FN(this.reconnectionToken,e,n,o)),HN(this.protocol)}_pauseSocketWriting(){this.protocol.pauseSocketWriting()}};function HN(i){try{i.acceptDisconnect();let t=i.getSocket();i.dispose(),t.dispose()}catch(t){Qe(t)}}function tz(i){if(i&&i.type==="error"){let t=new Error(`Connection error: ${i.reason}`);return t.code="VSCODE_CONNECTION_ERROR",t}return null}function QY(i,t){return typeof i!="number"||!isFinite(i)||i<0?t:i>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:Math.floor(i)}function JY(i,t){for(;i.length<t;)i+=" ";return i}function YY(i,t){return`[remote-connection][${JY(LN(i),13)}][${t.substr(0,5)}\u2026]`}function By(i,t,e){return`${YY(i,t)}[${e?"reconnect":"initial"}]`}function VN(i,t){return`${By(t,i.reconnectionToken,!!i.reconnectionProtocol)}[${i.connectTo}]`}function nz(i){return`${Date.now()-i} ms`}var EP=R("remoteSocketFactoryService");async function XY(i,t,e,n,o){let r;for(let s=3;s&&(r?.dispose(),r=await new qy(i,t,e,n,o).waitForReady(),!(o&&AN[o]||!AN[r.tunnelLocalPort]));s--);return r}var qy=class extends U{constructor(e,n,o,r,s){super();this.defaultTunnelHost=n;this.suggestedLocalPort=s;this.privacy="private";this._socketsDispose=new Map;this._options=e,this._server=oz.createServer(),this._barrier=new Sn,this._listeningListener=()=>this._barrier.open(),this._server.on("listening",this._listeningListener),this._connectionListener=a=>this._onConnection(a),this._server.on("connection",this._connectionListener),this._errorListener=()=>{},this._server.on("error",this._errorListener),this.tunnelRemotePort=r,this.tunnelRemoteHost=o}async dispose(){super.dispose(),this._server.removeListener("listening",this._listeningListener),this._server.removeListener("connection",this._connectionListener),this._server.removeListener("error",this._errorListener),this._server.close(),Array.from(this._socketsDispose.values()).forEach(n=>{n()})}async waitForReady(){let e=this.suggestedLocalPort??this.tunnelRemotePort,n=ci(this.defaultTunnelHost)?"0.0.0.0":"127.0.0.1",o=await J$(e,2,1e3,n),r=null;return this._server.listen(o,this.defaultTunnelHost),await this._barrier.wait(),r=this._server.address(),r||(o=0,this._server.listen(o,this.defaultTunnelHost),await this._barrier.wait(),r=this._server.address()),this.tunnelLocalPort=r.port,this.localAddress=`${this.tunnelRemoteHost==="127.0.0.1"?"127.0.0.1":"localhost"}:${r.port}`,this}async _onConnection(e){e.pause();let n=$s(this.tunnelRemoteHost)||ci(this.tunnelRemoteHost)?"localhost":this.tunnelRemoteHost,o=await ez(this._options,n,this.tunnelRemotePort),r=o.getSocket(),s=o.readEntireBuffer();o.dispose(),s.byteLength>0&&e.write(s.buffer),e.on("end",()=>{e.localAddress&&this._socketsDispose.delete(e.localAddress),r.end()}),e.on("close",()=>r.end()),e.on("error",()=>{e.localAddress&&this._socketsDispose.delete(e.localAddress),r instanceof ua?r.socket.destroy():r.end()}),r instanceof ua?this._mirrorNodeSocket(e,r):this._mirrorGenericSocket(e,r),e.localAddress&&this._socketsDispose.set(e.localAddress,()=>{e.end(),r.end()})}_mirrorGenericSocket(e,n){n.onClose(()=>e.destroy()),n.onEnd(()=>e.end()),n.onData(o=>e.write(o.buffer)),e.on("data",o=>n.write(W.wrap(o))),e.resume()}_mirrorNodeSocket(e,n){let o=n.socket;o.on("end",()=>e.end()),o.on("close",()=>e.end()),o.on("error",()=>{e.destroy()}),o.pipe(e),e.pipe(o)}},$y=class extends Sg{constructor(e,n,o,r,s){super(n,s);this.remoteSocketFactoryService=e;this.signService=o;this.productService=r}isPortPrivileged(e){return EB(e,this.defaultTunnelHost,mr,rz.release())}retainOrCreateTunnel(e,n,o,r,s,a,l,d){let c=this.getTunnelFromMap(n,o);if(c)return++c.refcount,c.value;if(TB(e))return this.createWithProvider(e,n,o,s,a,l,d);{this.logService.trace(`ForwardedPorts: (TunnelService) Creating tunnel without provider ${n}:${o} on local port ${s}.`);let u={commit:this.productService.commit,quality:this.productService.quality,addressProvider:e,remoteSocketFactoryService:this.remoteSocketFactoryService,signService:this.signService,logService:this.logService,ipcLogger:null},m=XY(u,r,n,o,s);return this.logService.trace("ForwardedPorts: (TunnelService) Tunnel created without provider."),this.addTunnelToMap(n,o,m),m}}};$y=D([C(0,EP),C(1,ne),C(2,Xd),C(3,hs),C(4,Gt)],$y);var zy=class extends $y{constructor(t,e,n,o,r){super(t,e,n,o,r)}};zy=D([C(0,EP),C(1,ne),C(2,Xd),C(3,hs),C(4,Gt)],zy);var wP=class extends U{constructor(e,n,o,r,s){super();this.remoteSocketFactoryService=e;this.logService=n;this.productService=o;this.signService=r;this.configurationService=s;this._tunnelServices=new Map}async openTunnel(e,n,o,r,s,a,l,d,c){if(this.logService.trace(`ForwardedPorts: (SharedTunnelService) openTunnel request for ${o}:${r} on local port ${a}.`),!this._tunnelServices.has(e)){let u=new zy(this.remoteSocketFactoryService,this.logService,this.signService,this.productService,this.configurationService);this._register(u),this._tunnelServices.set(e,u),u.onTunnelClosed(async()=>{(await u.tunnels).length===0&&(u.dispose(),this._tunnelServices.delete(e))})}return this._tunnelServices.get(e).openTunnel(n,o,r,s,a,l,d,c)}};wP=D([C(0,EP),C(1,ne),C(2,hs),C(3,Xd),C(4,Gt)],wP);var ZY=10*1e3,kP="remote.tunnels.toRestore",WN="remote.tunnels.toRestoreExpiration",eX=1e3*60*60*24*14,iz="onTunnel",aAt=new k("forwardedPortsViewEnabled",!1,p(18275,null)),tX=new k("forwardedPortsViewOnlyEnabled",!1,p(18275,null));function $N(i){let t=i.match(/^([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*:)?([0-9]+)$/);if(t)return{host:t[1]?.substring(0,t[1].length-1)||"localhost",port:Number(t[2])}}var BN={source:0,description:p(18277,null)},lAt={source:1,description:p(18276,null)};function sz(i,t,e){let n=i.get(Pr(t,e));if(n)return n;if($s(t))for(let o of Cg){let r=Pr(o,e);if(i.has(r))return i.get(r)}else if(ci(t))for(let o of Ub){let r=Pr(o,e);if(i.has(r))return i.get(r)}}function ar(i,t,e){let n=sz(i,t,e);if(n)return n;let o=ci(t)?"localhost":$s(t)?"0.0.0.0":void 0;if(o)return sz(i,o,e)}function Pr(i,t){return i+":"+t}function nX(i){return i&&"host"in i&&typeof i.host=="string"&&"port"in i&&typeof i.port=="number"&&(!("detail"in i)||typeof i.detail=="string")&&(!("pid"in i)||typeof i.pid=="string")}var PP=class i extends U{constructor(e){super();this.configurationService=e;this.portsAttributes=[];this._onDidChangeAttributes=this._register(new E);this.onDidChangeAttributes=this._onDidChangeAttributes.event;this._register(e.onDidChangeConfiguration(n=>{(n.affectsConfiguration(i.SETTING)||n.affectsConfiguration(i.DEFAULTS))&&this.updateAttributes()})),this.updateAttributes()}static{this.SETTING="remote.portsAttributes"}static{this.DEFAULTS="remote.otherPortsAttributes"}static{this.RANGE=/^(\d+)\-(\d+)$/}static{this.HOST_AND_PORT=/^([a-z0-9\-]+):(\d{1,5})$/}updateAttributes(){this.portsAttributes=this.readSetting(),this._onDidChangeAttributes.fire()}getAttributes(e,n,o){let r=this.findNextIndex(e,n,o,this.portsAttributes,0),s={label:void 0,onAutoForward:void 0,elevateIfNeeded:void 0,requireLocalPort:void 0,protocol:void 0};for(;r>=0;){let a=this.portsAttributes[r];a.key===e?(s.onAutoForward=a.onAutoForward??s.onAutoForward,s.elevateIfNeeded=a.elevateIfNeeded!==void 0?a.elevateIfNeeded:s.elevateIfNeeded,s.label=a.label??s.label,s.requireLocalPort=a.requireLocalPort,s.protocol=a.protocol):(s.onAutoForward=s.onAutoForward??a.onAutoForward,s.elevateIfNeeded=s.elevateIfNeeded!==void 0?s.elevateIfNeeded:a.elevateIfNeeded,s.label=s.label??a.label,s.requireLocalPort=s.requireLocalPort!==void 0?s.requireLocalPort:void 0,s.protocol=s.protocol??a.protocol),r=this.findNextIndex(e,n,o,this.portsAttributes,r+1)}return s.onAutoForward!==void 0||s.elevateIfNeeded!==void 0||s.label!==void 0||s.requireLocalPort!==void 0||s.protocol!==void 0?s:this.getOtherAttributes()}hasStartEnd(e){return e.start!==void 0&&e.end!==void 0}hasHostAndPort(e){return e.host!==void 0&&e.port!==void 0&&Me(e.host)&&Hn(e.port)}findNextIndex(e,n,o,r,s){if(s>=r.length)return-1;let a=!$s(n)&&!ci(n),d=r.slice(s).findIndex(c=>Hn(c.key)?a?!1:c.key===e:this.hasStartEnd(c.key)?a?!1:e>=c.key.start&&e<=c.key.end:this.hasHostAndPort(c.key)?e===c.key.port&&n===c.key.host:o?c.key.test(o):!1);return d>=0?d+s:-1}readSetting(){let e=this.configurationService.getValue(i.SETTING);if(!e||!st(e))return[];let n=[];for(let r in e){if(r===void 0)continue;let s=e[r],a;if(Number(r))a=Number(r);else if(Me(r))if(i.RANGE.test(r)){let l=r.match(i.RANGE);a={start:Number(l[1]),end:Number(l[2])}}else if(i.HOST_AND_PORT.test(r)){let l=r.match(i.HOST_AND_PORT);a={host:l[1],port:Number(l[2])}}else{let l;try{l=RegExp(r)}catch{}l&&(a=l)}a&&n.push({key:a,elevateIfNeeded:s.elevateIfNeeded,onAutoForward:s.onAutoForward,label:s.label,requireLocalPort:s.requireLocalPort,protocol:s.protocol})}let o=this.configurationService.getValue(i.DEFAULTS);return o&&(this.defaultPortAttributes={elevateIfNeeded:o.elevateIfNeeded,label:o.label,onAutoForward:o.onAutoForward,requireLocalPort:o.requireLocalPort,protocol:o.protocol}),this.sortAttributes(n)}sortAttributes(e){function n(o,r){return Hn(o.key)?o.key:r.hasStartEnd(o.key)?o.key.start:r.hasHostAndPort(o.key)?o.key.port:Number.MAX_VALUE}return e.sort((o,r)=>n(o,this)-n(r,this))}getOtherAttributes(){return this.defaultPortAttributes}static providedActionToAction(e){switch(e){case 1:return"notify";case 2:return"openBrowser";case 6:return"openBrowserOnce";case 3:return"openPreview";case 4:return"silent";case 5:return"ignore";default:return}}async addAttributes(e,n,o){let s=this.configurationService.inspect(i.SETTING).userRemoteValue,a;!s||!st(s)?a={}:a=lt(s),a[`${e}`]||(a[`${e}`]={});for(let l in n)a[`${e}`][l]=n[l];return this.configurationService.updateValue(i.SETTING,a,o)}},Ky=class extends U{constructor(e,n,o,r,s,a,l,d,c,u){super();this.tunnelService=e;this.storageService=n;this.configurationService=o;this.environmentService=r;this.remoteAuthorityResolverService=s;this.workspaceContextService=a;this.logService=l;this.dialogService=d;this.extensionService=c;this.contextKeyService=u;this.inProgress=new Map;this._onForwardPort=this._register(new E);this.onForwardPort=this._onForwardPort.event;this._onClosePort=this._register(new E);this.onClosePort=this._onClosePort.event;this._onPortName=this._register(new E);this.onPortName=this._onPortName.event;this._onCandidatesChanged=this._register(new E);this.onCandidatesChanged=this._onCandidatesChanged.event;this._onEnvironmentTunnelsSet=this._register(new E);this.onEnvironmentTunnelsSet=this._onEnvironmentTunnelsSet.event;this._environmentTunnelsSet=!1;this.restoreListener=void 0;this.restoreComplete=!1;this.onRestoreComplete=this._register(new E);this.unrestoredExtensionTunnels=new Map;this.sessionCachedProperties=new Map;this.portAttributesProviders=[];this.hasCheckedExtensionsOnTunnelOpened=!1;this.mismatchCooldown=new Date;this.configPortsAttributes=new PP(o),this.tunnelRestoreValue=this.getTunnelRestoreValue(),this._register(this.configPortsAttributes.onDidChangeAttributes(this.updateAttributes,this)),this.forwarded=new Map,this.remoteTunnels=new Map,this.tunnelService.tunnels.then(async m=>{let g=await this.getAttributes(m.map(h=>({port:h.tunnelRemotePort,host:h.tunnelRemoteHost})));for(let h of m)if(h.localAddress){let f=Pr(h.tunnelRemoteHost,h.tunnelRemotePort),I=ar(this._candidates??new Map,h.tunnelRemoteHost,h.tunnelRemotePort);this.forwarded.set(f,{remotePort:h.tunnelRemotePort,remoteHost:h.tunnelRemoteHost,localAddress:h.localAddress,protocol:g?.get(h.tunnelRemotePort)?.protocol??"http",localUri:await this.makeLocalUri(h.localAddress,g?.get(h.tunnelRemotePort)),localPort:h.tunnelLocalPort,name:g?.get(h.tunnelRemotePort)?.label,runningProcess:I?.detail,hasRunningProcess:!!I,pid:I?.pid,privacy:h.privacy,source:BN}),this.remoteTunnels.set(f,h)}}),this.detected=new Map,this._register(this.tunnelService.onTunnelOpened(async m=>{let g=Pr(m.tunnelRemoteHost,m.tunnelRemotePort);if(!ar(this.forwarded,m.tunnelRemoteHost,m.tunnelRemotePort)&&!ar(this.detected,m.tunnelRemoteHost,m.tunnelRemotePort)&&!ar(this.inProgress,m.tunnelRemoteHost,m.tunnelRemotePort)&&m.localAddress){let h=ar(this._candidates??new Map,m.tunnelRemoteHost,m.tunnelRemotePort),f=(await this.getAttributes([{port:m.tunnelRemotePort,host:m.tunnelRemoteHost}]))?.get(m.tunnelRemotePort);this.forwarded.set(g,{remoteHost:m.tunnelRemoteHost,remotePort:m.tunnelRemotePort,localAddress:m.localAddress,protocol:f?.protocol??"http",localUri:await this.makeLocalUri(m.localAddress,f),localPort:m.tunnelLocalPort,name:f?.label,closeable:!0,runningProcess:h?.detail,hasRunningProcess:!!h,pid:h?.pid,privacy:m.privacy,source:BN})}await this.storeForwarded(),this.checkExtensionActivationEvents(!0),this.remoteTunnels.set(g,m),this._onForwardPort.fire(this.forwarded.get(g))})),this._register(this.tunnelService.onTunnelClosed(m=>this.onTunnelClosed(m,"Other"))),this.checkExtensionActivationEvents(!1)}extensionHasActivationEvent(){return this.extensionService.extensions.find(e=>e.activationEvents?.includes(iz))?(this.contextKeyService.createKey(tX.key,!0),!0):!1}checkExtensionActivationEvents(e){if(this.hasCheckedExtensionsOnTunnelOpened||(e&&(this.hasCheckedExtensionsOnTunnelOpened=!0),this.environmentService.remoteAuthority!==void 0&&!e)||this.extensionHasActivationEvent())return;let o=this._register(this.extensionService.onDidRegisterExtensions(()=>{this.extensionHasActivationEvent()&&o.dispose()}))}async onTunnelClosed(e,n){let o=Pr(e.host,e.port);this.forwarded.delete(o)&&(await this.storeForwarded(),this._onClosePort.fire(e))}makeLocalUri(e,n){if(e.startsWith("http"))return b.parse(e);let o=n?.protocol??"http";return b.parse(`${o}://${e}`)}async addStorageKeyPostfix(e){let n=this.workspaceContextService.getWorkspace(),o=n.configuration?Yn(n.configuration.path):n.folders.length>0?Yn(n.folders[0].uri.path):void 0;if(o===void 0){this.logService.debug("Could not get workspace hash for forwarded ports storage key.");return}return`${e}.${this.environmentService.remoteAuthority}.${o}`}async getTunnelRestoreStorageKey(){return this.addStorageKeyPostfix(kP)}async getRestoreExpirationStorageKey(){return this.addStorageKeyPostfix(WN)}async getTunnelRestoreValue(){let e=this.storageService.get(kP,1);if(e)return this.storageService.remove(kP,1),await this.storeForwarded(),e;let n=await this.getTunnelRestoreStorageKey();if(n)return this.storageService.get(n,0)}async restoreForwarded(){if(this.cleanupExpiredTunnelsForRestore(),this.configurationService.getValue("remote.restoreForwardedPorts")){let e=await this.tunnelRestoreValue;if(e&&e!==this.knownPortsRestoreValue){let n=JSON.parse(e)??[];this.logService.trace(`ForwardedPorts: (TunnelModel) restoring ports ${n.map(o=>o.remotePort).join(", ")}`);for(let o of n){let r=ar(this.detected,o.remoteHost,o.remotePort);o.source.source!==2&&!r||o.source.source===2&&r?await this.doForward({remote:{host:o.remoteHost,port:o.remotePort},local:o.localPort,name:o.name,elevateIfNeeded:!0,source:o.source}):o.source.source===2&&!r&&this.unrestoredExtensionTunnels.set(Pr(o.remoteHost,o.remotePort),o)}}}if(this.restoreComplete=!0,this.onRestoreComplete.fire(),!this.restoreListener){let e=await this.getTunnelRestoreStorageKey();this.restoreListener=this._register(new z),this.restoreListener.add(this.storageService.onDidChangeValue(0,void 0,this.restoreListener)(async n=>{n.key===e&&(this.tunnelRestoreValue=Promise.resolve(this.storageService.get(e,0)),await this.restoreForwarded())}))}}cleanupExpiredTunnelsForRestore(){let e=this.storageService.keys(0,0).filter(n=>n.startsWith(WN));for(let n of e){let o=this.storageService.getNumber(n,0);if(o&&o<Date.now()){this.tunnelRestoreValue=Promise.resolve(void 0);let r=n.replace(WN,kP);this.storageService.remove(n,0),this.storageService.remove(r,0)}}}async storeForwarded(){if(this.configurationService.getValue("remote.restoreForwardedPorts")){let e=Array.from(this.forwarded.values()),n=e.map(a=>({remoteHost:a.remoteHost,remotePort:a.remotePort,localPort:a.localPort,name:a.name,localAddress:a.localAddress,localUri:a.localUri,protocol:a.protocol,source:a.source})),o;e.length>0&&(o=JSON.stringify(n));let r=await this.getTunnelRestoreStorageKey(),s=await this.getRestoreExpirationStorageKey();!o&&r&&s?(this.storageService.remove(r,0),this.storageService.remove(s,0)):o!==this.knownPortsRestoreValue&&r&&s&&(this.storageService.store(r,o,0,0),this.storageService.store(s,Date.now()+eX,0,0)),this.knownPortsRestoreValue=o}}async showPortMismatchModalIfNeeded(e,n,o){if(!e.tunnelLocalPort||!o?.requireLocalPort||e.tunnelLocalPort===n)return;let r=new Date;if(this.mismatchCooldown.getTime()+ZY>r.getTime())return;this.mismatchCooldown=r;let s=p(18274,null,n,e.tunnelRemotePort,e.tunnelLocalPort);return this.dialogService.info(s)}async forward(e,n){return!this.restoreComplete&&this.environmentService.remoteAuthority&&await ye.toPromise(this.onRestoreComplete.event),this.doForward(e,n)}async doForward(e,n){await this.extensionService.activateByEvent(iz);let o=ar(this.forwarded,e.remote.host,e.remote.port);n=n??(n!==null?(await this.getAttributes([e.remote]))?.get(e.remote.port):void 0);let r=e.local!==void 0?e.local:e.remote.port,s;if(o)return this.mergeAttributesIntoExistingTunnel(o,e,n);{let a=this.environmentService.remoteAuthority,l=a?{getAddress:async()=>(await this.remoteAuthorityResolverService.resolveAuthority(a)).authority}:void 0,d=Pr(e.remote.host,e.remote.port);this.inProgress.set(d,!0),e=this.mergeCachedAndUnrestoredProperties(d,e);let c=await this.tunnelService.openTunnel(l,e.remote.host,e.remote.port,void 0,r,e.elevateIfNeeded?e.elevateIfNeeded:n?.elevateIfNeeded,e.privacy,n?.protocol);if(typeof c=="string")s=c;else if(c&&c.localAddress){let u=ar(this._candidates??new Map,e.remote.host,e.remote.port),m=c.protocol?c.protocol==="https"?"https":"http":n?.protocol??"http",g={remoteHost:c.tunnelRemoteHost,remotePort:c.tunnelRemotePort,localPort:c.tunnelLocalPort,name:n?.label??e.name,closeable:!0,localAddress:c.localAddress,protocol:m,localUri:await this.makeLocalUri(c.localAddress,n),runningProcess:u?.detail,hasRunningProcess:!!u,pid:u?.pid,source:e.source??BN,privacy:c.privacy};return this.forwarded.set(d,g),this.remoteTunnels.set(d,c),this.inProgress.delete(d),await this.storeForwarded(),await this.showPortMismatchModalIfNeeded(c,r,n),this._onForwardPort.fire(g),c}this.inProgress.delete(d)}return s}mergeCachedAndUnrestoredProperties(e,n){let o=this.unrestoredExtensionTunnels.has(e)?this.unrestoredExtensionTunnels:this.sessionCachedProperties.has(e)?this.sessionCachedProperties:void 0;if(o){let r=o.get(e);o.delete(e),r&&(n.name=r.name??n.name,n.local=("local"in r?r.local:"localPort"in r?r.localPort:void 0)??n.local,n.privacy=n.privacy)}return n}async mergeAttributesIntoExistingTunnel(e,n,o){let r=o?.label??n.name,s;(u=>(u[u.None=0]="None",u[u.Fire=1]="Fire",u[u.Reopen=2]="Reopen"))(s||={});let a=0;switch(r!==e.name&&(e.name=r,a=1),(o?.protocol||e.protocol!=="http")&&o?.protocol!==e.protocol&&(n.source=e.source,a=2),n.privacy&&e.privacy!==n.privacy&&(a=2),a){case 1:{this._onForwardPort.fire();break}case 2:await this.close(e.remoteHost,e.remotePort,"User"),await this.doForward(n,o)}return ar(this.remoteTunnels,n.remote.host,n.remote.port)}async name(e,n,o){let r=ar(this.forwarded,e,n),s=Pr(e,n);if(r){r.name=o,await this.storeForwarded(),this._onPortName.fire({host:e,port:n});return}else this.detected.has(s)&&(this.detected.get(s).name=o,this._onPortName.fire({host:e,port:n}))}async close(e,n,o){let r=Pr(e,n),s=this.forwarded.get(r);return o==="AutoForwardEnd"&&s&&s.source.source===1&&this.sessionCachedProperties.set(r,{local:s.localPort,name:s.name,privacy:s.privacy}),await this.tunnelService.closeTunnel(e,n),this.onTunnelClosed({host:e,port:n},o)}address(e,n){let o=Pr(e,n);return(this.forwarded.get(o)||this.detected.get(o))?.localAddress}get environmentTunnelsSet(){return this._environmentTunnelsSet}addEnvironmentTunnels(e){if(e)for(let n of e){let o=ar(this._candidates??new Map,n.remoteAddress.host,n.remoteAddress.port),r=typeof n.localAddress=="string"?n.localAddress:Pr(n.localAddress.host,n.localAddress.port);this.detected.set(Pr(n.remoteAddress.host,n.remoteAddress.port),{remoteHost:n.remoteAddress.host,remotePort:n.remoteAddress.port,localAddress:r,protocol:"http",localUri:this.makeLocalUri(r),closeable:!1,runningProcess:o?.detail,hasRunningProcess:!!o,pid:o?.pid,privacy:"constantPrivate",source:{source:2,description:p(18278,null)}}),this.tunnelService.setEnvironmentTunnel(n.remoteAddress.host,n.remoteAddress.port,r,"constantPrivate","http")}this._environmentTunnelsSet=!0,this._onEnvironmentTunnelsSet.fire(),this._onForwardPort.fire()}setCandidateFilter(e){this._candidateFilter=e}async setCandidates(e){let n=e;this._candidateFilter&&(n=await this._candidateFilter(e));let o=this.updateInResponseToCandidates(n);this.logService.trace(`ForwardedPorts: (TunnelModel) removed candidates ${Array.from(o.values()).map(r=>r.port).join(", ")}`),this._onCandidatesChanged.fire(o)}updateInResponseToCandidates(e){let n=this._candidates??new Map,o=new Map;return this._candidates=o,e.forEach(r=>{let s=Pr(r.host,r.port);o.set(s,{host:r.host,port:r.port,detail:r.detail,pid:r.pid}),n.delete(s);let a=ar(this.forwarded,r.host,r.port);a&&(a.runningProcess=r.detail,a.hasRunningProcess=!0,a.pid=r.pid)}),n.forEach((r,s)=>{let a=$N(s);if(!a)return;let l=ar(this.forwarded,a.host,a.port);l&&(l.runningProcess=void 0,l.hasRunningProcess=!1,l.pid=void 0);let d=ar(this.detected,a.host,a.port);d&&(d.runningProcess=void 0,d.hasRunningProcess=!1,d.pid=void 0)}),n}get candidates(){return this._candidates?Array.from(this._candidates.values()):[]}get candidatesOrUndefined(){return this._candidates?this.candidates:void 0}async updateAttributes(){let e=Array.from(this.forwarded.values()),n=await this.getAttributes(e.map(o=>({port:o.remotePort,host:o.remoteHost})),!1);if(n)for(let o of e){let r=n.get(o.remotePort);(r?.protocol||o.protocol!=="http")&&r?.protocol!==o.protocol&&await this.doForward({remote:{host:o.remoteHost,port:o.remotePort},local:o.localPort,name:o.name,source:o.source},r),r&&r.label&&r.label!==o.name&&await this.name(o.remoteHost,o.remotePort,r.label)}}async getAttributes(e,n=!0){let o=new Map,r=new Map;e.forEach(c=>{let u=ar(this._candidates??new Map,Cg[0],c.port)??c;if(u){o.set(c.port,u);let m=nX(u)?u.pid:void 0;r.has(m)||r.set(m,[]),r.get(m)?.push(c.port)}});let s=new Map;if(e.forEach(c=>{let u=this.configPortsAttributes.getAttributes(c.port,c.host,o.get(c.port)?.detail);u&&s.set(c.port,u)}),this.portAttributesProviders.length===0||!n)return s.size>0?s:void 0;let a=await Promise.all(this.portAttributesProviders.flatMap(c=>Array.from(r.entries()).map(u=>{let m=u[1],g=o.get(m[0]);return c.providePortAttributes(m,g?.pid,g?.detail,me.None)}))),l=new Map;if(a.forEach(c=>c.forEach(u=>{u&&l.set(u.port,u)})),!s&&!l)return;let d=new Map;return e.forEach(c=>{let u=s.get(c.port),m=l.get(c.port);d.set(c.port,{elevateIfNeeded:u?.elevateIfNeeded,label:u?.label,onAutoForward:u?.onAutoForward??PP.providedActionToAction(m?.autoForwardAction),requireLocalPort:u?.requireLocalPort,protocol:u?.protocol})}),d}addAttributesProvider(e){this.portAttributesProviders.push(e)}};D([vc(1e3)],Ky.prototype,"storeForwarded",1),Ky=D([C(0,CB),C(1,nr),C(2,Gt),C(3,Gp),C(4,FW),C(5,gs),C(6,ne),C(7,Ox),C(8,pS),C(9,Ir)],Ky);function oX(i){let t=i.trim().split(`
`),e=[];return t.forEach(o=>{let r=/\/proc\/(\d+)\/fd\/\d+ -> socket:\[(\d+)\]/.exec(o);r&&r.length>=3&&e.push({pid:parseInt(r[1],10),socket:parseInt(r[2],10)})}),e.reduce((o,r)=>(o[r.socket]=r,o),{})}function rX(...i){let t=[].concat(...i.map(sX));return[...new Map(t.filter(e=>e.st==="0A").map(e=>{let n=e.local_address.split(":");return{socket:parseInt(e.inode,10),ip:iX(n[0]),port:parseInt(n[1],16)}}).map(e=>[e.ip+":"+e.port,e])).values()]}function iX(i){let t="";if(i.length===8)for(let e=i.length-2;e>=0;e-=2)t+=parseInt(i.substr(e,2),16),e!==0&&(t+=".");else for(let e=0;e<i.length;e+=8){let n=i.substring(e,e+8),o="";for(let r=8;r>=2;r-=2)o+=n.substring(r-2,r),(r===6||r===2)&&(o=parseInt(o,16).toString(16),t+=`${o}`,o="",e+r!==i.length-6&&(t+=":"))}return t}function sX(i){let t=i.trim().split(`
`),e=t.shift().trim().split(/\s+/).filter(o=>o!=="rx_queue"&&o!=="tm->when");return t.map(o=>o.trim().split(/\s+/).reduce((r,s,a)=>(r[e[a]||a]=s,r),{}))}function aX(i){return i.length>500?!1:!!i.match(/.*\.vscode-server-[a-zA-Z]+\/bin.*/)||i.indexOf("out/server-main.js")!==-1||i.indexOf("_productName=VSCode")!==-1}function lX(i){let t=i.trim().split(`
`),e=[];return t.forEach(n=>{let o=/^\d+\s+\D+\s+root\s+(\d+)\s+(\d+).+\d+\:\d+\:\d+\s+(.+)$/.exec(n);o&&o.length>=4&&e.push({pid:parseInt(o[1],10),ppid:parseInt(o[2]),cmd:o[3]})}),e}async function dX(i,t,e){let n=e.reduce((r,s)=>(r[s.pid]=s,r),{}),o=[];return i.forEach(({socket:r,ip:s,port:a})=>{let l=t[r]?t[r].pid:void 0,d=l?n[l]?.cmd:void 0;l&&d&&!aX(d)&&o.push({host:s,port:a,detail:d,pid:l})}),o}function cX(i,t,e){let n=new Map,o=lX(t);for(let r of i){let s=e.get(r.port);if(s){n.set(r.port,s);continue}let a=o.find(l=>l.cmd.includes(`${r.port}`));if(a){let l=a,d;do d=o.find(c=>c.ppid===l.pid),d&&(l=d);while(d);n.set(r.port,{host:r.ip,port:r.port,pid:l.pid,detail:l.cmd,ppid:l.ppid})}else n.set(r.port,{host:r.ip,port:r.port,ppid:Number.MAX_VALUE})}return n}var bh=class extends Dd{constructor(e,n,o,r,s){super(e,n,o);this.initData=n;this.signService=r;this.configurationService=s;this._initialCandidates=void 0;this._foundRootPorts=new Map;this._candidateFindingEnabled=!1;Je&&n.remote.isRemote&&n.remote.authority&&(this._proxy.$setRemoteTunnelService(process.pid),this.setInitialCandidates())}async $registerCandidateFinder(e){if(e&&this._candidateFindingEnabled)return;this._candidateFindingEnabled=e;let n;this._initialCandidates&&(n=this._initialCandidates,await this._proxy.$onFoundNewCandidates(this._initialCandidates));let o=new gx,r=0;for(;this._candidateFindingEnabled;){let s=new Date().getTime(),a=(await this.findCandidatePorts()).filter(c=>$s(c.host)||ci(c.host));this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) found candidate ports ${a.map(c=>c.port).join(", ")}`);let l=new Date().getTime()-s;this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) candidate port scan took ${l} ms.`),r++>3&&o.update(l),(!n||JSON.stringify(n)!==JSON.stringify(a))&&(n=a,await this._proxy.$onFoundNewCandidates(n));let d=this.calculateDelay(o.value);this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) next candidate port scan in ${d} ms.`),await new Promise(c=>setTimeout(()=>c(),d))}}calculateDelay(e){return Math.max(e*20,2e3)}async setInitialCandidates(){this._initialCandidates=await this.findCandidatePorts(),this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) Initial candidates found: ${this._initialCandidates.map(e=>e.port).join(", ")}`)}async findCandidatePorts(){let e="",n="";try{e=await vh.promises.readFile("/proc/net/tcp","utf8"),n=await vh.promises.readFile("/proc/net/tcp6","utf8")}catch{}let o=rX(e,n),r=await new Promise(g=>{az("ls -l /proc/[0-9]*/fd/[0-9]* | grep socket:",(h,f,I)=>{g(f)})}),s=oX(r),a=await at.readdir("/proc"),l=[];for(let g of a)try{let h=Number(g),f=vt(b.file("/proc"),g);if((await vh.promises.stat(f.fsPath)).isDirectory()&&!isNaN(h)){let x=await vh.promises.readlink(vt(f,"cwd").fsPath),T=await vh.promises.readFile(vt(f,"cmdline").fsPath,"utf8");l.push({pid:h,cwd:x,cmd:T})}}catch{}let d=[],c=o.filter((g=>{let h=s[g.socket];return h||d.push(g),h})),u=dX(c,s,l),m;if(this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) number of possible root ports ${d.length}`),d.length>0){let g=await new Promise(h=>{az("ps -F -A -l | grep root",(f,I,x)=>{h(I)})});this._foundRootPorts=cX(d,g,this._foundRootPorts),m=Array.from(this._foundRootPorts.values()),this.logService.trace(`ForwardedPorts: (ExtHostTunnelService) heuristic ports ${m.map(h=>h.port).join(", ")}`)}return u.then(g=>m?g.concat(m):g)}async defaultTunnelHost(){let e=(await this.configurationService.getConfigProvider()).getConfiguration("remote").get("localPortHost");return!e||e==="localhost"?"127.0.0.1":"0.0.0.0"}makeManagedTunnelFactory(e){return async n=>{let o=new qy({commit:this.initData.commit,quality:this.initData.quality,logService:this.logService,ipcLogger:null,remoteSocketFactoryService:{_serviceBrand:void 0,async connect(s,a,l,d){let c=await e.makeConnection();return zN.connect(c,a,l,d)},register(){throw new Error("not implemented")}},addressProvider:{getAddress(){return Promise.resolve({connectTo:new im(0),connectionToken:e.connectionToken})}},signService:this.signService},await this.defaultTunnelHost(),n.remoteAddress.host||"localhost",n.remoteAddress.port,n.localAddressPort);await o.waitForReady();let r=new E;return{localAddress:$N(o.localAddress)??o.localAddress,remoteAddress:{port:o.tunnelRemotePort,host:o.tunnelRemoteHost},onDidDispose:r.event,dispose:()=>{o.dispose(),r.fire(),r.dispose()}}}}};bh=D([C(0,ae),C(1,Xe),C(2,ne),C(3,Xd),C(4,En)],bh);var zN=class i extends CP{constructor(e,n,o){super(n,o);this.passing=e}static connect(e,n,o,r){let s=new z,a={onClose:s.add(new E),onData:s.add(new E),onEnd:s.add(new E)};s.add(e.onDidReceiveMessage(d=>a.onData.fire(W.wrap(d)))),s.add(e.onDidEnd(()=>a.onEnd.fire())),s.add(e.onDidClose(d=>a.onClose.fire({type:0,error:d,hadError:!!d})));let l=new i(e,r,a);return l._register(s),Q$(l,n,o,r,a)}write(e){this.passing.send(e.buffer)}closeRemote(){this.passing.end()}async drain(){await this.passing.drain?.()}};import*as il from"fs";var _P=class extends Ig{constructor(){super(...arguments);this._workspaceStorageLock=null}async _getWorkspaceStorageURI(e){let n=await super._getWorkspaceStorageURI(e);if(n.scheme!==B.file)return n;if(this._environment.skipWorkspaceStorageLock)return this._logService.info(`Skipping acquiring lock for ${n.fsPath}.`),n;let o=n.fsPath,r=0;do{let s;r===0?s=o:s=/[/\\]$/.test(o)?`${o.substr(0,o.length-1)}-${r}`:`${o}-${r}`,await uX(s);let a=He(s,"vscode.lock"),l=await dz(this._logService,a,!1);if(l)return this._workspaceStorageLock=l,process.on("exit",()=>{l.dispose()}),b.file(s);r++}while(r<10);return n}onWillDeactivateAll(){this._workspaceStorageLock?.setWillRelease(6e3)}};async function uX(i){try{await il.promises.stat(i);return}catch{}try{await il.promises.mkdir(i,{recursive:!0})}catch{}}var pX=1e3,lz=600*1e3,KN=class extends U{constructor(e,n){super();this.logService=e;this.filename=n;this._timer=this._register(new Ip),this._timer.cancelAndSet(async()=>{let o=await jN(e,n);(!o||o.pid!==process.pid)&&(e.info(`Lock '${n}': The lock was lost unexpectedly.`),this._timer.cancel());try{await il.promises.utimes(n,new Date,new Date)}catch(r){e.error(r),e.info(`Lock '${n}': Could not update mtime.`)}},pX)}dispose(){super.dispose();try{il.unlinkSync(this.filename)}catch{}}async setWillRelease(e){this.logService.info(`Lock '${this.filename}': Marking the lockfile as scheduled to be released in ${e} ms.`);try{let n={pid:process.pid,willReleaseAt:Date.now()+e};await at.writeFile(this.filename,JSON.stringify(n),{flag:"w"})}catch(n){this.logService.error(n)}}};async function dz(i,t,e){try{let o={pid:process.pid,willReleaseAt:0};await at.writeFile(t,JSON.stringify(o),{flag:"wx"})}catch(o){i.error(o)}let n=await jN(i,t);return!n||n.pid!==process.pid?e?(i.info(`Lock '${t}': Could not acquire lock, giving up.`),null):(i.info(`Lock '${t}': Could not acquire lock, checking if the file is stale.`),gX(i,t)):(i.info(`Lock '${t}': Lock acquired.`),new KN(i,t))}async function jN(i,t){let e;try{e=await il.promises.readFile(t)}catch(n){return i.error(n),null}try{return JSON.parse(String(e))}catch(n){return i.error(n),null}}async function qN(i,t){let e;try{e=await il.promises.stat(t)}catch(n){return i.error(n),0}return e.mtime.getTime()}function mX(i){try{return process.kill(i,0),!0}catch{return!1}}async function gX(i,t){let e=await jN(i,t);if(!e)return i.info(`Lock '${t}': Could not read pid of lock holder.`),jy(i,t);if(e.willReleaseAt){let a=e.willReleaseAt-Date.now();if(a<5e3){for(a>0?i.info(`Lock '${t}': The lockfile is scheduled to be released in ${a} ms.`):i.info(`Lock '${t}': The lockfile is scheduled to have been released.`);a>0;){if(await Vt(Math.min(100,a)),await qN(i,t)===0)return jy(i,t);a=e.willReleaseAt-Date.now()}return jy(i,t)}}if(!mX(e.pid))return i.info(`Lock '${t}': The pid ${e.pid} appears to be gone.`),jy(i,t);let n=await qN(i,t),o=Date.now()-n;if(o<=lz)return i.info(`Lock '${t}': The lock does not look stale, elapsed: ${o} ms, giving up.`),null;i.info(`Lock '${t}': The lock looks stale, waiting for 2s.`),await Vt(2e3);let r=await qN(i,t),s=Date.now()-r;return s<=lz?(i.info(`Lock '${t}': The lock does not look stale, elapsed: ${s} ms, giving up.`),null):(i.info(`Lock '${t}': The lock looks stale even after waiting for 2s.`),jy(i,t))}async function jy(i,t){i.info(`Lock '${t}': Deleting a stale lock.`);try{await il.promises.unlink(t)}catch{}return dz(i,t,!0)}async function fX(i,t,e,n,o){try{let r=await import("@vscode/spdlog");r.setFlushOn(0);let s=await r.createAsyncRotatingLogger(i,t,e,n);return o?s.clearFormatters():s.setPattern("%Y-%m-%d %H:%M:%S.%e [%l] %v"),s}catch(r){console.error(r)}return null}function cz(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 uz(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 DP=class extends Al{constructor(e,n,o,r,s){super();this.buffer=[];this.setLevel(s),this._loggerCreationPromise=this._createSpdLogLogger(e,n,o,r),this._register(this.onDidChangeLogLevel(a=>{this._logger&&uz(this._logger,a)}))}async _createSpdLogLogger(e,n,o,r){let s=o?6:1,a=30/s*Ec.MB,l=await fX(e,n,a,s,r);if(l){this._logger=l,uz(this._logger,this.getLevel());for(let{level:d,message:c}of this.buffer)cz(this._logger,d,c);this.buffer=[]}}log(e,n){this._logger?cz(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 RP=class extends $d{doCreateLogger(t,e,n){return t.scheme===B.file?new DP(n?.name||Pe(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e):super.doCreateLogger(t,e,n)}registerLogger(t){super.registerLogger(t),this._proxy.$registerLogger(t)}deregisterLogger(t){super.deregisterLogger(t),this._proxy.$deregisterLogger(t)}};import{homedir as hX}from"os";var AP=class extends Wd{homeDir(){return hX()}};var MP=class extends U{constructor(t,e=[]){super(),this.logger=new sx([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()}};var yh=class extends MP{constructor(t,e,n){let o=n.remote.isRemote?"remoteexthost":t?"workerexthost":"exthost",r=n.remote.isRemote?p(3353,null):t?p(3354,null):p(3352,null);super(e.createLogger(o,{name:r}))}};yh=D([C(1,Zo),C(2,Xe)],yh);import{spawn as bX}from"child_process";import{readFile as yX}from"fs/promises";import{homedir as IX}from"os";function pz(i){let t=new Map,n=i.replace(/\r\n?/g,`
`).split(`
`);for(let s of n){if(s=s.trim(),!s||s.startsWith("#"))continue;let[a,l]=o(s);a&&t.set(a,l)}return t;function o(s){s.startsWith("export ")&&(s=s.substring(7).trim());let a=r(s,u=>u==="="||u===":");if(a===-1)return[null,null];let l=s.substring(0,a).trim(),d=s.substring(a+1).trim(),c=r(d,u=>u==="#");if(c!==-1&&(d=d.substring(0,c).trim()),d.length>=2){let u=d[0],m=d[d.length-1];(u==='"'&&m==='"'||u==="'"&&m==="'"||u==="`"&&m==="`")&&(d=d.substring(1,d.length-1),u==='"'&&(d=d.replace(/\\n/g,`
`).replace(/\\r/g,"\r")))}return[l,d]}function r(s,a){let l=!1,d="";for(let c=0;c<s.length;c++){let u=s[c];if(l)u===d&&s[c-1]!=="\\"&&(l=!1);else if(u==='"'||u==="'"||u==="`")l=!0,d=u;else if(a(u))return c}return-1}}import{Transform as vX}from"stream";var Gy=class extends vX{constructor(t){if(super(),typeof t=="number")this.splitter=t,this.spitterLen=1;else{let e=Buffer.isBuffer(t)?t:Buffer.from(t);this.splitter=e.length===1?e[0]:e,this.spitterLen=e.length}}_transform(t,e,n){this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t;let o=0;for(;o<this.buffer.length;){let r=typeof this.splitter=="number"?this.buffer.indexOf(this.splitter,o):W_(this.buffer,this.splitter,o);if(r===-1)break;this.push(this.buffer.slice(o,r+this.spitterLen)),o=r+this.spitterLen}this.buffer=o===this.buffer.length?void 0:this.buffer.slice(o),n()}_flush(t){this.buffer&&this.push(this.buffer),t()}};var LP=class i{constructor(t,e=i.GRACE_TIME_MS){this._child=t;this._graceTimeMs=e;this._procState=0}static{this.GRACE_TIME_MS=1e4}get stopped(){return this._procState!==0}stop(){if(this._procState===0){let t=this._graceTimeMs;try{this._child.stdin.end()}catch{t=1}this._procState=1,this._nextTimeout=new Vh(()=>this.killPolite(),t)}else this._nextTimeout?.dispose(),this.killForceful()}async killPolite(){this._procState=2,this._nextTimeout=new Vh(()=>this.killForceful(),this._graceTimeMs),this._child.pid?Ce||await Zb(this._child.pid,!1).catch(()=>{this._child.kill("SIGTERM")}):this._child.kill("SIGTERM")}async killForceful(){this._procState=3,this._child.pid?await Zb(this._child.pid,!0).catch(()=>{this._child.kill("SIGKILL")}):this._child.kill()}write(t){this.stopped||this._child.stdin.write(t+`
`)}dispose(){this._nextTimeout?.dispose()}};var OP=class extends zd{constructor(){super(...arguments);this.nodeServers=this._register(new wn)}_startMcp(e,n,o,r){n.type===1?this.startNodeMpc(e,n,o):n.type===2?this._sseEventSources.set(e,new GN(e,n,this._proxy,this._logService,r)):super._startMcp(e,n,o,r)}$stopMcp(e){let n=this.nodeServers.get(e);n?n.stop():super.$stopMcp(e)}$sendMessage(e,n){let o=this.nodeServers.get(e);o?o.write(n):super.$sendMessage(e,n)}async startNodeMpc(e,n,o){let r=d=>this._proxy.$onDidChangeState(e,{state:ko.Kind.Error,code:d.hasOwnProperty("code")?String(d.code):void 0,message:typeof d=="string"?d:d.message}),s={...process.env};if(n.envFile)try{for(let[d,c]of pz(await yX(n.envFile,"utf-8")))s[d]=c}catch(d){r(`Failed to read envFile '${n.envFile}': ${d.message}`);return}for(let[d,c]of Object.entries(n.env)){if(d.toUpperCase()==="PATH"&&c!==null){s[d]=s[d]?`${s[d]}${hp}${String(c)}`:String(c);continue}s[d]=c===null?void 0:String(c)}let a;try{let d=IX(),c=n.cwd?Fl(n.cwd,d):o?.fsPath||d;xn(c)||(c=o?He(o.fsPath,c):He(d,c));let{executable:u,args:m,shell:g}=await SX(Fl(n.command,d),n.args.map(h=>Fl(h,d)),c,s);this._proxy.$onDidPublishLog(e,2,`Server command line: ${u} ${m.join(" ")}`),a=bX(u,m,{stdio:"pipe",cwd:c,env:s,shell:g})}catch(d){r(d);return}let l=new LP(a);this._proxy.$onDidChangeState(e,{state:ko.Kind.Starting}),a.stdout.pipe(new Gy(`
`)).on("data",d=>this._proxy.$onDidReceiveMessage(e,d.toString())),a.stdin.on("error",r),a.stdout.on("error",r),a.stderr.pipe(new Gy(`
`)).on("data",d=>this._proxy.$onDidPublishLog(e,4,`[server stderr] ${d.toString().trimEnd()}`)),a.on("spawn",()=>this._proxy.$onDidChangeState(e,{state:ko.Kind.Running})),a.on("error",d=>{r(d)}),a.on("exit",d=>{this.nodeServers.deleteAndDispose(e),d===0||l.stopped?this._proxy.$onDidChangeState(e,{state:ko.Kind.Stopped}):this._proxy.$onDidChangeState(e,{state:ko.Kind.Error,message:`Process exited with code ${d}`})}),this.nodeServers.set(e,l)}},GN=class extends Xb{constructor(){super(...arguments);this._undici=new pt(()=>import("undici"))}async _fetchInternal(e,n){let{fetch:o,Agent:r}=await this._undici.value,s={...n},a=e,l=b.parse(e);if(l.scheme==="unix"||l.scheme==="pipe")s.dispatcher=new r({socketPath:l.path}),a=l.with({scheme:"http",authority:"localhost",path:l.fragment}).toString(!0);else return super._fetchInternal(e,n);let d=await o(a,s);return{status:d.status,statusText:d.statusText,headers:d.headers,body:d.body,url:d.url,json:()=>d.json(),text:()=>d.text()}}},xX=/\.(bat|cmd)$/i,mz=i=>`"${i.replace(/"/g,'""')}"`,SX=async(i,t,e,n)=>{if(process.platform!=="win32")return{executable:i,args:t,shell:!1};let o=await Vu(i,e,void 0,n);return o&&xX.test(o)?{executable:mz(o),args:t.map(mz),shell:!0}:{executable:i,args:t,shell:!1}};import{URL as EX}from"url";import{randomBytes as CX}from"crypto";import{URL as TX}from"url";var NP=class{constructor(t,e,n){this._logger=t;this._appUri=e;this._appName=n;this._state=CX(16).toString("base64");let o=new jt;this._resultPromise=o.p,this._server=(async()=>(await import("http")).createServer((s,a)=>{let l=new TX(s.url,`http://${s.headers.host}`);switch(l.pathname){case"/":{let d=l.searchParams.get("code")??void 0,c=l.searchParams.get("state")??void 0,u=l.searchParams.get("error")??void 0;if(u){a.writeHead(302,{location:`/done?error=${l.searchParams.get("error_description")||u}`}),a.end(),o.error(new Error(u));break}if(!d||!c){a.writeHead(400),a.end();break}if(this.state!==c){a.writeHead(302,{location:`/done?error=${encodeURIComponent("State does not match.")}`}),a.end(),o.error(new Error("State does not match."));break}o.complete({code:d,state:c}),a.writeHead(302,{location:"/done"}),a.end();break}case"/done":this._sendPage(a);break;default:a.writeHead(404),a.end();break}}))()}get state(){return this._state}get redirectUri(){if(this._port===void 0)throw new Error("Server is not started yet");return`http://127.0.0.1:${this._port}/`}_sendPage(t){let e=this.getHtml();t.writeHead(200,{"Content-Type":"text/html","Content-Length":Buffer.byteLength(e,"utf8")}),t.end(e)}async start(){let t=await this._server,e=new jt;if(t.listening)throw new Error("Server is already started");let n=setTimeout(()=>{e.error(new Error("Timeout waiting for port"))},5e3);return t.on("listening",()=>{let o=t.address();if(typeof o=="string")this._port=parseInt(o);else if(o instanceof Object)this._port=o.port;else throw new Error("Unable to determine port");clearTimeout(n),e.complete()}),t.on("error",o=>{if("code"in o&&o.code==="EADDRINUSE"){this._logger.error("Address in use, retrying with a different port..."),t.listen(0,"127.0.0.1");return}clearTimeout(n),e.error(new Error(`Error listening to server: ${o}`))}),t.on("close",()=>{e.error(new Error("Closed"))}),t.listen(v0,"127.0.0.1"),e.p}async stop(){let t=new jt,e=await this._server;return e.listening?(e.close(n=>{n?t.error(n):t.complete()}),setTimeout(()=>{t.isResolved||t.error(new Error("Timeout waiting for server to close"))},5e3),t.p):(t.complete(),t.p)}waitForOAuthResponse(){return this._resultPromise}getHtml(){let t="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABAAAAAQABAMAAACNMzawAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJ1BMVEUAAAD///9Qm8+ozed8tNsWer+Lvd9trNfF3u9Ck8slgsMzi8eZxeM/Qa6mAAAAAXRSTlMAQObYZgAAAAFiS0dEAf8CLd4AAAAHdElNRQfiCwYULRt0g+ZLAAAJRUlEQVR42u3SUY0CQRREUSy0hSZtBA+wfOwv4wAPYwAJSMAfAthkB6YD79HnKqikzmYjSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk6cmKhg4AAASAABAAAkAACAABIAAEgAAQAAJAAAgAAaBvBVAjtV2wfFe1ogcA+0gdFgBoe60IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAjAP/1MkWoAvBvAsUTqBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAgAASAABIAAEAACQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKA7gDlbFwC6AijZagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQDM2boA0BXAqAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIATARAAAkAAvF7N1hWArgBKthoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfBrAlK0bAF0BjBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4EQABIAAEwOtN2boB0BVAyVYDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgE8DqNm6AtAVwKgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEwEQAAJAAPzd7xypMwDvBnAskToBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAIAAkAACAABIAAEgAAQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBKBGarsAwK5qRQ8ANGYAACAABIAAEAACQAAIAAEgAASAABAAAkDfCUCSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJC3uDtO80OSql+i8AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTExLTA2VDIwOjQ1OjI3KzAwOjAwEjLurQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMS0wNlQyMDo0NToyNyswMDowMGNvVhEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC')";return this._appName==="Visual Studio Code"?t="url('data:image/svg+xml;base64, ')":this._appName==="Visual Studio Code - Insiders"&&(t="url('data:image/svg+xml;base64, ')"),`<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8" />
	<title>GitHub Authentication - Sign In</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<style>
		html {
			height: 100%;
		}

		body {
			box-sizing: border-box;
			min-height: 100%;
			margin: 0;
			padding: 15px 30px;
			display: flex;
			flex-direction: column;
			color: white;
			font-family: "Segoe UI","Helvetica Neue","Helvetica",Arial,sans-serif;
			background-color: #2C2C32;
		}

		.branding {
			background-image: ${t};
			background-size: 24px;
			background-repeat: no-repeat;
			background-position: left center;
			padding-left: 36px;
			font-size: 20px;
			letter-spacing: -0.04rem;
			font-weight: 400;
			color: white;
			text-decoration: none;
		}

		.message-container {
			flex-grow: 1;
			display: flex;
			align-items: center;
			justify-content: center;
			margin: 0 30px;
		}

		.message {
			font-weight: 300;
			font-size: 1.4rem;
		}

		body.error .message {
			display: none;
		}

		body.error .error-message {
			display: block;
		}

		.error-message {
			display: none;
			font-weight: 300;
			font-size: 1.3rem;
		}

		.error-text {
			color: red;
			font-size: 1rem;
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Light"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff2") format("woff2"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/light/latest.svg#web") format("svg");
			font-weight: 200
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Semilight"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff2") format("woff2"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semilight/latest.svg#web") format("svg");
			font-weight: 300
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/normal/latest.svg#web") format("svg");
			font-weight: 400
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Semibold"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/semibold/latest.svg#web") format("svg");
			font-weight: 600
		}

		@font-face {
			font-family: 'Segoe UI';
			src: url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.eot?#iefix") format("embedded-opentype");
			src: local("Segoe UI Bold"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff2") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.woff") format("woff"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.ttf") format("truetype"),url("https://c.s-microsoft.com/static/fonts/segoe-ui/west-european/bold/latest.svg#web") format("svg");
			font-weight: 700
		}
	</style>
</head>

<body>
	<a class="branding" href="https://code.visualstudio.com/">
		${this._appName}
	</a>
	<div class="message-container">
		<div class="message">
			Sign-in successful! Returning to ${this._appName}...
			<br><br>
			If you're not redirected automatically, <a href="${this._appUri.toString(!0)}" style="color: #85CEFF;">click here</a> or close this page.
		</div>
		<div class="error-message">
			An error occurred while signing in:
			<div class="error-text"></div>
		</div>
	</div>
	<script>
		const search = window.location.search;
		const error = (/[?&^]error=([^&]+)/.exec(search) || [])[1];
		if (error) {
			document.querySelector('.error-text')
				.textContent = decodeURIComponent(error);
			document.querySelector('body')
				.classList.add('error');
		} else {
			// Redirect to the app URI after a 1-second delay to allow page to load
			setTimeout(function() {
				window.location.href = '${this._appUri.toString(!0)}';
			}, 1000);
		}
	</script>
</body>
</html>`}};var UP=class extends Nd{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g){super(t,e,n,o,r,s,a,l,d,c,u,m,g),!n.remote.isRemote&&l.authorization_endpoint&&this._createFlows.unshift({label:p(3378,null),handler:(h,f,I)=>this._createWithLoopbackServer(h,f,I)}),l.device_authorization_endpoint&&this._createFlows.push({label:p(3377,null),handler:(h,f,I)=>this._createWithDeviceCode(h,f,I)})}async _createWithLoopbackServer(t,e,n){if(!this._serverMetadata.authorization_endpoint)throw new Error("Authorization Endpoint required");if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let o=this.generateRandomString(64),r=await this.generateCodeChallenge(o),s=this.generateRandomString(32),a=b.parse(`${this._initData.environment.appUriScheme}://dynamicauthprovider/${this.authorizationServer.authority}/redirect?nonce=${s}`),l;try{l=await this._extHostUrls.createAppUri(a)}catch(g){throw new Error(`Failed to create external URI: ${g}`)}let d=new EX(this._serverMetadata.authorization_endpoint);d.searchParams.append("client_id",this._clientId),d.searchParams.append("response_type","code"),d.searchParams.append("code_challenge",r),d.searchParams.append("code_challenge_method","S256");let c=t.join(" ");c&&d.searchParams.append("scope",c),this._resourceMetadata?.resource&&d.searchParams.append("resource",this._resourceMetadata.resource);let u=new NP(this._logger,l,this._initData.environment.appName);try{await u.start()}catch(g){throw new Error(`Failed to start loopback server: ${g}`)}d.searchParams.set("redirect_uri",u.redirectUri),d.searchParams.set("state",u.state);let m=u.waitForOAuthResponse();this._proxy.$waitForUriHandler(l);try{if(this._logger.info(`Opening authorization URL for scopes: ${c}`),this._logger.trace(`Authorization URL: ${d.toString()}`),!await this._extHostWindow.openUri(d.toString(),{}))throw new Ue;e.report({message:p(3376,null)});let h;try{h=(await Qr(m,n)).code}catch(I){throw Kt(I)?(this._logger.info("Authorization code request was cancelled by the user."),I):(this._logger.error(`Failed to receive authorization code: ${I}`),new Error(`Failed to receive authorization code: ${I}`))}return this._logger.info(`Authorization code received for scopes: ${c}`),await this.exchangeCodeForToken(h,o,u.redirectUri)}finally{setTimeout(()=>{u.stop()},5e3)}}async _createWithDeviceCode(t,e,n){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");if(!this._serverMetadata.device_authorization_endpoint)throw new Error("Device authorization endpoint not available in server metadata");let o=this._serverMetadata.device_authorization_endpoint,r=t.join(" ");this._logger.info(`Starting device code flow for scopes: ${r}`);let s=new URLSearchParams;s.append("client_id",this._clientId),r&&s.append("scope",r),this._resourceMetadata?.resource&&s.append("resource",this._resourceMetadata.resource);let a;try{a=await fetch(o,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:s.toString()})}catch(m){throw this._logger.error(`Failed to request device code: ${m}`),new Error(`Failed to request device code: ${m}`)}if(!a.ok){let m=await a.text();throw new Error(`Device code request failed: ${a.status} ${a.statusText} - ${m}`)}let l=await a.json();if(!NB(l))throw this._logger.error("Invalid device code response received from server"),new Error("Invalid device code response received from server");if(this._logger.info(`Device code received: ${l.user_code}`),!await this._proxy.$showDeviceCodeModal(l.user_code,l.verification_uri))throw new Ue;e.report({message:p(3379,null,l.verification_uri,l.user_code)});let c=(l.interval||5)*1e3,u=Date.now()+l.expires_in*1e3;for(;Date.now()<u;){if(n.isCancellationRequested)throw new Ue;if(await new Promise(g=>setTimeout(g,c)),n.isCancellationRequested)throw new Ue;let m=new URLSearchParams;m.append("grant_type","urn:ietf:params:oauth:grant-type:device_code"),m.append("device_code",l.device_code),m.append("client_id",this._clientId),this._resourceMetadata?.resource&&m.append("resource",this._resourceMetadata.resource);try{let g=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:m.toString()});if(g.ok){let h=await g.json();if(!_u(h))throw this._logger.error("Invalid token response received from server"),new Error("Invalid token response received from server");return this._logger.info(`Device code flow completed successfully for scopes: ${r}`),h}else{let h;try{h=await g.json()}catch(f){throw this._logger.error(`Failed to parse error response: ${f}`),new Error(`Token request failed with status ${g.status}: ${g.statusText}`)}if(h.error==="authorization_pending")continue;if(h.error==="slow_down"){await new Promise(f=>setTimeout(f,c));continue}else throw h.error==="expired_token"?new Error("Device code expired. Please try again."):h.error==="access_denied"?new Ue:h.error==="invalid_client"?(this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),new Error("Client ID was invalid, generated a new one. Please try again.")):new Error(`Token request failed: ${h.error_description||h.error||"Unknown error"}`)}}catch(g){throw Kt(g)?g:new Error(`Error polling for token: ${g}`)}}throw new Error("Device code flow timed out. Please try again.")}},FP=class extends Ag{constructor(e,n,o,r,s,a,l){super(e,n,o,r,s,a,l);this._dynamicAuthProviderCtor=UP;this._xaaAuthProviderCtor=rE(UP)}};Ke(yo,SP,0);Ke(Zo,RP,1);Ke(ne,new er(yh,[!1],!0));Ke(Xd,vf,1);Ke(xg,_P,0);Ke(Md,new er(kg,[!1],!0));Ke(Mg,FP,0);Ke(of,bf,0);Ke(af,Cf,0);Ke(Xg,ff,0);Ke(Ro,gf,0);Ke(Rd,bh,0);Ke($r,AP,0);Ke(Hu,OP,0);import{createRequire as kX}from"node:module";var hz=kX(import.meta.url);if(process.env.VSCODE_DEV){let i=process.listeners("warning");process.removeAllListeners("warning"),process.on("warning",t=>{if(t.code==="ExperimentalWarning"||t.name==="ExperimentalWarning"||t.name==="DeprecationWarning"){console.debug(t);return}i[0](t)})}(function(){for(let t=0;t<process.execArgv.length;t++)process.execArgv[t]==="--inspect-port=0"&&(process.execArgv.splice(t,1),t--)})();var Qy=wX(process.argv.slice(2),{boolean:["transformURIs","skipWorkspaceStorageLock","supportGlobalNavigator"],string:["useHostProxy"]});(function(){let i=hz("module"),t=i._load;i._load=function(e){if(e==="natives")throw new Error('Either the extension or an NPM dependency is using the [unsupported "natives" node module](https://go.microsoft.com/fwlink/?linkid=871887).');return t.apply(this,arguments)}})();var HP=process.exit.bind(process),PX=process.on.bind(process);function _X(i){process.exit=function(t){if(i)HP(t);else{let e=new Error("An extension called process.exit() and this was prevented.");console.warn(e.stack)}},process.crash=function(){let t=new Error("An extension called process.crash() and this was prevented.");console.warn(t.stack)},process.env.ELECTRON_RUN_AS_NODE="1",process.on=function(t,e){if(t==="uncaughtException"){let n=e;e=function(...o){try{return n.apply(void 0,o)}catch{}}}PX(t,e)}}Qy.supportGlobalNavigator||Object.defineProperty(globalThis,"navigator",{get:()=>{ta(new ea("navigator is now a global in nodejs, please see https://aka.ms/vscode-extensions/navigator for additional info on this error."))}});var Js=function(i){HP()};function DX(i,t){let e=process.env[i];if(typeof e!="string"||e.trim().length===0)return console.log(`[reconnection-grace-time] Extension host: env var ${i} not set, using default: ${t}ms (${Math.floor(t/1e3)}s)`),t;let n=Number(e);if(!isFinite(n)||n<0)return console.log(`[reconnection-grace-time] Extension host: env var ${i} invalid value '${e}', using default: ${t}ms (${Math.floor(t/1e3)}s)`),t;let o=Math.floor(n),r=o>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:o;return console.log(`[reconnection-grace-time] Extension host: read ${i}=${e}ms (${Math.floor(r/1e3)}s)`),r}function RX(){let i=t4(process.env);if(i.type===3)return new Promise((t,e)=>{let n=o=>{let r=o[0],s=new ls;r.on("message",a=>s.fire(W.wrap(a.data))),r.on("close",()=>{Js("renderer closed the MessagePort")}),r.start(),t({onMessage:s.event,send:a=>r.postMessage(a.buffer)})};process.parentPort.on("message",o=>n(o.ports))});if(i.type===2)return new Promise((t,e)=>{let n=null,o=setTimeout(()=>{Js("VSCODE_EXTHOST_IPC_SOCKET timeout")},6e4),r=DX("VSCODE_RECONNECTION_GRACE_TIME",108e5),s=r>0?Math.min(3e5,r):0,a=new Wh(()=>Js("renderer disconnected for too long (1)"),r),l=new Wh(()=>Js("renderer disconnected for too long (2)"),s);process.on("message",(c,u)=>{if(c&&c.type==="VSCODE_EXTHOST_IPC_SOCKET"){u.setNoDelay(!0);let m=W.wrap(Buffer.from(c.initialDataChunk,"base64")),g;if(c.skipWebSocketFrames)g=new ua(u,"extHost-socket");else{let h=W.wrap(Buffer.from(c.inflateBytes,"base64"));g=new jI(new ua(u,"extHost-socket"),c.permessageDeflate,h,!1)}n?(a.cancel(),l.cancel(),n.beginAcceptReconnection(g,m),n.endAcceptReconnection(),n.sendResume()):(clearTimeout(o),n=new yc({socket:g,initialChunk:m}),n.sendResume(),ye.once(n.onDidDispose)(()=>Js("renderer disconnected")),t(n),n.onSocketClose(()=>{a.schedule()}))}if(c&&c.type==="VSCODE_EXTHOST_IPC_REDUCE_GRACE_TIME"){if(l.isScheduled())return;a.isScheduled()&&l.schedule()}});let d={type:"VSCODE_EXTHOST_IPC_READY"};process.send?.(d)});{let t=i.pipeName;return new Promise((e,n)=>{let o=fz.createConnection(t,()=>{o.removeListener("error",n);let r=new yc({socket:new ua(o,"extHost-renderer")});r.sendResume(),e(r)});o.once("error",n),o.on("close",()=>{Js("renderer closed the socket")})})}}async function AX(){let i=await RX();return new class{constructor(){this._onMessage=new ls;this.onMessage=this._onMessage.event;this._terminating=!1,this._protocolListener=i.onMessage(t=>{DB(t,2)?(this._terminating=!0,this._protocolListener.dispose(),Js("received terminate message from renderer")):this._onMessage.fire(t)})}send(t){this._terminating||i.send(t)}async drain(){if(i.drain)return i.drain()}}}function MX(i){return new Promise(t=>{let e=i.onMessage(n=>{e.dispose();let o=JSON.parse(n.toString()),r=o.commit,s=Xo.commit;if(r&&s&&r!==s&&HP(55),o.parentPid){let a=0;setInterval(function(){try{process.kill(o.parentPid,0),a=0}catch(d){d&&d.code==="EPERM"?(a++,a>=3&&Js(`parent process ${o.parentPid} does not exist anymore (3 x EPERM): ${d.message} (code: ${d.code}) (errno: ${d.errno})`)):Js(`parent process ${o.parentPid} does not exist anymore: ${d.message} (code: ${d.code}) (errno: ${d.errno})`)}},1e3);let l;try{l=hz("@vscode/native-watchdog"),l.start(o.parentPid)}catch(d){Qe(d)}}i.send(c0(0)),t({protocol:i,initData:o})});i.send(c0(1))})}async function LX(){let i=[];process.on("unhandledRejection",(a,l)=>{i.push(l),setTimeout(()=>{let d=i.indexOf(l);d>=0&&l.catch(c=>{i.splice(d,1),Kt(c)||(console.warn(`rejected promise not handled within 1 second: ${c}`),c&&c.stack&&console.warn(`stack trace: ${c.stack}`),a&&Qe(a))})},1e3)}),process.on("rejectionHandled",a=>{let l=i.indexOf(a);l>=0&&i.splice(l,1)}),process.on("uncaughtException",function(a){aU(a)||Qe(a)}),Wt("code/extHost/willConnectToRenderer");let t=await AX();Wt("code/extHost/didConnectToRenderer");let e=await MX(t);Wt("code/extHost/didWaitForInitData");let{initData:n}=e;_X(!!n.environment.extensionTestsLocationURI),n.environment.useHostProxy=Qy.useHostProxy!==void 0?Qy.useHostProxy!=="false":void 0,n.environment.skipWorkspaceStorageLock=de(Qy.skipWorkspaceStorageLock,!1);let o=new class{constructor(){this.pid=process.pid}exit(l){HP(l)}fsExists(l){return at.exists(l)}fsRealpath(l){return at.realpath(l)}},r=null;n.remote.authority&&Qy.transformURIs&&(r=e4(n.remote.authority));let s=new dE(e.protocol,n,o,r);Js=a=>{s.terminate(a);let l=process.env.VSCODE_IPC_HOOK_CLI,d=process.env.CODE_SERVER_SESSION_SOCKET;if(!l||!d)return;let c=JSON.stringify({socketPath:l}),m=gz.request({path:"/delete-session",socketPath:d,method:"POST",headers:{"content-type":"application/json",accept:"application/json"}});m.write(c),m.end()}}LX().catch(i=>console.log(i));
