/*!--------------------------------------------------------
 * 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 qB=Object.defineProperty;var KB=Object.getOwnPropertyDescriptor;var aO=i=>{throw TypeError(i)};var R=(i,t,e,n)=>{for(var o=n>1?void 0:n?KB(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&&qB(t,e,o),o},C=(i,t)=>(e,n)=>t(e,n,i);var kw=(i,t,e)=>t.has(i)||aO("Cannot "+e);var en=(i,t,e)=>(kw(i,t,"read from private field"),e?e.call(i):t.get(i)),cu=(i,t,e)=>t.has(i)?aO("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(i):t.set(i,e),tf=(i,t,e,n)=>(kw(i,t,"write to private field"),n?n.call(i,e):t.set(i,e),e),nf=(i,t,e)=>(kw(i,t,"access private method"),e);var yt=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}};var Pw=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?ao.isErrorNoTelemetry(t)?new ao(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)}},La=new Pw;function of(i){La.setUnexpectedErrorHandler(i)}function Na(i){La.onUnexpectedError(i)}function _t(i){En(i)||La.onUnexpectedError(i)}function Id(i){En(i)||La.onUnexpectedExternalError(i)}function Di(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:ao.isErrorNoTelemetry(i),cause:n?Di(n):void 0,code:i.code}}return i}function _w(i){let t;return i.noTelemetry?t=new ao:(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=_w(i.cause)),t}var xb="Canceled";function En(i){return i instanceof ct?!0:i instanceof Error&&i.name===xb&&i.message===xb}var ct=class extends Error{constructor(){super(xb),this.name=this.message}},bd=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 Dw(){let i=new Error(xb);return i.name=i.message,i}function Ne(i){return i?new Error(`Illegal argument: ${i}`):new Error("Illegal argument")}function uu(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}var Jr=class extends TypeError{constructor(t){super(t?`${t} is read-only and cannot be changed`:"Cannot change read-only property")}};function xd(i){return i?i.message?i.message:i.stack?i.stack.split(`
`)[0]:String(i):"Error"}var Sb=class extends Error{constructor(t){super("NotImplemented"),t&&(this.message=t)}},yd=class extends Error{constructor(t){super("NotSupported"),t&&(this.message=t)}};var ao=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"}},Pt=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function dO(i,t,e=i.length-1){let n=GB(i,t,e);if(n!==-1)return i[n]}function GB(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 jB(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}var lO=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=jB(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};function Jt(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 uO(i,t,e){return QB(i.length,n=>e(i[n],t))}function QB(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 pO(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 Rw(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 mO(i,t,e){let n=Rw(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 ut(i){return i.filter(t=>!!t)}function gO(i){let t=0;for(let e=0;e<i.length;e++)i[e]&&(i[t]=i[e],t+=1);i.length=t}function rf(i){return!Array.isArray(i)||i.length===0}function Ua(i){return Array.isArray(i)&&i.length>0}function No(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 Mw(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 sf(i,t){return Array.isArray(i)?i.map(t):t(i)}function hn(i){return Array.isArray(i)?i:[i]}var fO;(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})(fO||={});function hO(i,t){return(e,n)=>t(i(e),i(n))}var vO=(i,t)=>i-t;var cO=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||fO.isGreaterThan(t(o,e)))&&(n=!1,e=o),!0)),e}};function Cb(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 Aw(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 yO,IO,bO=class{constructor(t,e){this.toKey=e;this._map=new Map;this[yO]="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))}[(IO=Symbol.iterator,yO=Symbol.toStringTag,IO)](){return this.values()}};function Uw(i,t,e){let n=i.get(t);return n===void 0&&(n=e,i.set(t,n)),n}var Ow=class{constructor(t,e){this.uri=t;this.value=e}};function YB(i){return Array.isArray(i)}var xO,Ue=class i{constructor(t,e){this[xO]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(YB(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 Ow(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]}*[(xO=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},SO,ir=class{constructor(t,e){this[SO]="ResourceSet";!t||typeof t=="function"?this._map=new Ue(t):(this._map=new Ue(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()}[(SO=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var CO,Lw=class{constructor(){this[CO]="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}[(CO=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)}},Nw=class extends Lw{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))}},Er=class extends Nw{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var mu=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 gu(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 An(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function Fa(i,t="Unreachable"){throw new Error(t)}function Cd(i,t="unexpected state"){if(!i)throw typeof t=="string"?new Pt(`Assertion Failed: ${t}`):t}function af(i){if(!i()){debugger;i(),_t(new Pt("Assertion Failed"))}}function _e(i){return typeof i=="string"}function EO(i){return XB(i,_e)}function XB(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 wO(i){let t=Object.getPrototypeOf(Uint8Array);return typeof i=="object"&&i instanceof t}function sr(i){return typeof i=="number"&&!isNaN(i)}function kO(i){return!!i&&typeof i[Symbol.iterator]=="function"}function Ri(i){return typeof i>"u"}function Io(i){return!Ut(i)}function Ut(i){return Ri(i)||i===null}function Tb(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function Yr(i){return Cd(i!=null,"Argument is `undefined` or `null`."),i}var ZB=Object.prototype.hasOwnProperty;function Ha(i){if(!st(i))return!1;for(let t in i)if(ZB.call(i,t))return!1;return!0}function Fw(i){return typeof i=="function"}function PO(i,t){let e=Math.min(i.length,t.length);for(let n=0;n<e;n++)Hw(i[n],t[n])}function Hw(i,t){if(_e(t)){if(typeof i!==t)throw new Error(`argument does not match constraint: typeof ${t}`)}else if(Fw(t)){try{if(i instanceof t)return}catch{}if(!Ut(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 On(i,t){for(let e in t)if(!(e in i))return!1;return!0}var It;(V=>{function i(q){return!!q&&typeof q=="object"&&typeof q[Symbol.iterator]=="function"}V.is=i;let t=Object.freeze([]);function e(){return t}V.empty=e;function*n(q){yield q}V.single=n;function o(q){return i(q)?q:n(q)}V.wrap=o;function r(q){return q??t}V.from=r;function*s(q){for(let J=q.length-1;J>=0;J--)yield q[J]}V.reverse=s;function a(q){return!q||q[Symbol.iterator]().next().done===!0}V.isEmpty=a;function l(q){return q[Symbol.iterator]().next().value}V.first=l;function d(q,J){let z=0;for(let j of q)if(J(j,z++))return!0;return!1}V.some=d;function c(q,J){let z=0;for(let j of q)if(!J(j,z++))return!1;return!0}V.every=c;function u(q,J){for(let z of q)if(J(z))return z}V.find=u;function*m(q,J){for(let z of q)J(z)&&(yield z)}V.filter=m;function*g(q,J){let z=0;for(let j of q)yield J(j,z++)}V.map=g;function*v(q,J){let z=0;for(let j of q)yield*J(j,z++)}V.flatMap=v;function*h(...q){for(let J of q)kO(J)?yield*J:yield J}V.concat=h;function I(q,J,z){let j=z;for(let X of q)j=J(j,X);return j}V.reduce=I;function S(q){let J=0;for(let z of q)J++;return J}V.length=S;function*w(q,J,z=q.length){for(J<-q.length&&(J=0),J<0&&(J+=q.length),z<0?z+=q.length:z>q.length&&(z=q.length);J<z;J++)yield q[J]}V.slice=w;function P(q,J=Number.POSITIVE_INFINITY){let z=[];if(J===0)return[z,q];let j=q[Symbol.iterator]();for(let X=0;X<J;X++){let ue=j.next();if(ue.done)return[z,V.empty()];z.push(ue.value)}return[z,{[Symbol.iterator](){return j}}]}V.consume=P;async function A(q){let J=[];for await(let z of q)J.push(z);return J}V.asyncToArray=A;async function L(q){let J=[];for await(let z of q)J=J.concat(z);return J}V.asyncToArrayFlat=L})(It||={});var eW=!1,Td=null;var _O=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 mu;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(hO(l=>l.idx,vO));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 v=r.get(d.slice(0,u).join(`
`)),h=Cb([...v].map(I=>o(I)[u]),I=>I);delete h[d[u]];for(let[I,S]of Object.entries(h))S&&c.unshift(`    - stacktraces of ${S.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 tW(i){Td=i}if(eW){let i="__is_disposable_tracked__";tW(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 Ba(i){return Td?.trackDisposable(i),i}function Wa(i){Td?.markAsDisposed(i)}function Ed(i,t){Td?.setParent(i,t)}function nW(i,t){if(Td)for(let e of i)Td.setParent(e,t)}function lf(i){return Td?.markAsSingleton(i),i}function wb(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function kn(i){if(It.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 fu(...i){let t=Y(()=>kn(i));return nW(i,t),t}var Vw=class{constructor(t){this._isDisposed=!1,this._fn=t,Ba(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,Wa(this),this._fn()}}};function Y(i){return new Vw(i)}var G=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;Ba(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(Wa(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 Ed(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)&&Ed(t,null)}assertNotDisposed(){this._isDisposed&&_t(new Pt("Object disposed"))}},U=class{constructor(){this._store=new G;Ba(this),Ed(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){Wa(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},dn=class{constructor(){this._isDisposed=!1;Ba(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&Ed(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Wa(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&Ed(t,null),t}};var wn=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,Ba(this)}dispose(){Wa(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),Ed(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&Ed(e,null),this._store.delete(t),e}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}};var Eb=class extends wn{constructor(){super(new Ue)}};function kb(i,t){return new Bw(i,t)}var Bw=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?_t(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 DO(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function Pb(i,t){return new Promise((e,n)=>{let o=[];Ww(i,{onData:r=>{t&&o.push(r)},onError:r=>{t?n(r):e(void 0)},onEnd:()=>{e(t?t(o):void 0)}})})}function Ww(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 RO(i,t){let e=kb(t);return e.end(i),e}var df=typeof Buffer<"u",rW=new yt(()=>new Uint8Array(256)),$w,zw,ee=class i{static alloc(t){return df?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return df&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&df?new i(Buffer.from(t)):($w||($w=new TextEncoder),new i($w.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 df&&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 df?this.buffer.toString():(zw||(zw=new TextDecoder(void 0,{ignoreBOM:!0})),zw.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 cf(this.buffer,t)}writeUInt32BE(t,e){uf(this.buffer,t,e)}readUInt32LE(t){return sW(this.buffer,t)}writeUInt32LE(t,e){aW(this.buffer,t,e)}readUInt8(t){return lW(this.buffer,t)}writeUInt8(t,e){dW(this.buffer,t,e)}indexOf(t,e=0){return iW(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 iW(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=rW.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 OO(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0}function LO(i,t,e){i[e+0]=t&255,t=t>>>8,i[e+1]=t&255}function cf(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function uf(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 sW(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function aW(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 lW(i,t){return i[t]}function dW(i,t,e){i[e]=t}function NO(i){return DO(i,t=>ee.concat(t))}function qw(i){return Pb(i,t=>ee.concat(t))}function UO(i){return RO(i,t=>ee.concat(t))}function Gn(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 ee.wrap(o).slice(0,s)}var cW="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",uW="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function jn({buffer:i},t=!0,e=!1){let n=e?uW:cW,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 MO="0123456789abcdef";function $a({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=MO[n>>>4],t+=MO[n&15]}return t}function pf(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]=AO(i,e++)<<4|AO(i,e++);return ee.wrap(t)}function AO(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}`)}var Yt=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},Qn=class{constructor(){this._first=Yt.Undefined;this._last=Yt.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===Yt.Undefined}clear(){let t=this._first;for(;t!==Yt.Undefined;){let e=t.next;t.prev=Yt.Undefined,t.next=Yt.Undefined,t=e}this._first=Yt.Undefined,this._last=Yt.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new Yt(t);if(this._first===Yt.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!==Yt.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==Yt.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==Yt.Undefined)return this._last.element}_remove(t){if(t.prev!==Yt.Undefined&&t.next!==Yt.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===Yt.Undefined&&t.next===Yt.Undefined?(this._first=Yt.Undefined,this._last=Yt.Undefined):t.next===Yt.Undefined?(this._last=this._last.prev,this._last.next=Yt.Undefined):t.prev===Yt.Undefined&&(this._first=this._first.next,this._first.prev=Yt.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==Yt.Undefined;)yield t.element,t=t.next}};function pW(){return globalThis._VSCODE_NLS_MESSAGES}function Kw(){return globalThis._VSCODE_NLS_LANGUAGE}var mW=Kw()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function _b(i,t){let e;return t.length===0?e=i:e=i.replace(/\{(\d+)\}/g,(n,o)=>{let r=parseInt(o,10),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}),mW&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function p(i,t,...e){return _b(typeof i=="number"?HO(i,t):t,e)}function HO(i,t){let e=pW()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}function ws(i,t,...e){let n;typeof i=="number"?n=HO(i,t):n=t;let o=_b(n,e);return{value:o,original:t===n?o:_b(t,e)}}var Mi="en",gf=!1,ff=!1,mf=!1,gW=!1,$O=!1,jw=!1,zO=!1,Qw=!1,qO=!1,KO=!1,Db,Rb=Mi,VO=Mi,fW,ks,Ps=globalThis,$o;typeof Ps.vscode<"u"&&typeof Ps.vscode.process<"u"?$o=Ps.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&($o=process);var GO=typeof $o?.versions?.electron=="string",hW=GO&&$o?.type==="renderer";if(typeof $o=="object"){gf=$o.platform==="win32",ff=$o.platform==="darwin",mf=$o.platform==="linux",gW=mf&&!!$o.env.SNAP&&!!$o.env.SNAP_REVISION,zO=GO,qO=!!$o.env.CI||!!$o.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!$o.env.GITHUB_WORKSPACE,Db=Mi,Rb=Mi;let i=$o.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);Db=t.userLocale,VO=t.osLocale,Rb=t.resolvedLanguage||Mi,fW=t.languagePack?.translationsConfigFile}catch{}$O=!0}else typeof navigator=="object"&&!hW?(ks=navigator.userAgent,gf=ks.indexOf("Windows")>=0,ff=ks.indexOf("Macintosh")>=0,Qw=(ks.indexOf("Macintosh")>=0||ks.indexOf("iPad")>=0||ks.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,mf=ks.indexOf("Linux")>=0,KO=ks?.indexOf("Mobi")>=0,jw=!0,Rb=Kw()||Mi,Db=navigator.language.toLowerCase(),VO=Db):console.error("Unable to resolve platform.");function Jw(i){switch(i){case 0:return"Web";case 1:return"Mac";case 2:return"Linux";case 3:return"Windows"}}var Gw=0;ff?Gw=1:gf?Gw=3:mf&&(Gw=2);var Ct=gf,cn=ff,lo=mf;var hf=$O,jO=zO,ar=jw,Yw=jw&&typeof Ps.importScripts=="function",QO=Yw?Ps.origin:void 0,JO=Qw,YO=KO,qa=qO;var wr=ks,za=Rb,vW;(n=>{function i(){return za}n.value=i;function t(){return za.length===2?za==="en":za.length>=3?za[0]==="e"&&za[1]==="n"&&za[2]==="-":!1}n.isDefaultVariant=t;function e(){return za==="en"}n.isDefault=e})(vW||={});var bW=typeof Ps.postMessage=="function"&&!Ps.importScripts,Mb=(()=>{if(bW){let i=[];Ps.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}),Ps.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var Ai=ff||Qw?2:gf?1:3,BO=!0,WO=!1;function Ab(){if(!WO){WO=!0;let i=new Uint8Array(2);i[0]=1,i[1]=2,BO=new Uint16Array(i.buffer)[0]===513}return BO}var vf=!!(wr&&wr.indexOf("Chrome")>=0),XO=!!(wr&&wr.indexOf("Firefox")>=0),ZO=!!(!vf&&wr&&wr.indexOf("Safari")>=0),Ob=!!(wr&&wr.indexOf("Edg/")>=0),wK=!!(wr&&wr.indexOf("Android")>=0),eL=!!(wr&&wr.indexOf("Electron")>=0);var kd,Xw=globalThis.vscode;if(typeof Xw<"u"&&typeof Xw.process<"u"){let i=Xw.process;kd={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"?kd={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:kd={get platform(){return Ct?"win32":cn?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var _s=kd.cwd,xo=kd.env,Zw=kd.platform,yW=kd.arch;var IW=globalThis.performance.now.bind(globalThis.performance),Vn=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:IW,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 tL=!1,xW=!1,SW=100,nL=6e4;function oL(){return!!xo.VSCODE_DEV}var Le;(Ze=>{Ze.None=()=>U.None;function t(re){if(xW){let{onDidAddListener:Z}=re,te=vu.create(),se=0;re.onDidAddListener=()=>{++se===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),te.print()),Z?.()}}}function e(re,Z,te){return g(re,()=>{},0,void 0,Z??!0,void 0,te)}Ze.defer=e;function n(re){return(Z,te=null,se)=>{let Q=!1,ae;return ae=re(be=>{if(!Q)return ae?ae.dispose():Q=!0,Z.call(te,be)},null,se),Q&&ae.dispose(),ae}}Ze.once=n;function o(re,Z){return Ze.once(Ze.filter(re,Z))}Ze.onceIf=o;function r(re,Z,te){return u((se,Q=null,ae)=>re(be=>se.call(Q,Z(be)),null,ae),te)}Ze.map=r;function s(re,Z,te){return u((se,Q=null,ae)=>re(be=>{Z(be),se.call(Q,be)},null,ae),te)}Ze.forEach=s;function a(re,Z,te){return u((se,Q=null,ae)=>re(be=>Z(be)&&se.call(Q,be),null,ae),te)}Ze.filter=a;function l(re){return re}Ze.signal=l;function d(...re){return(Z,te=null,se)=>{let Q=fu(...re.map(ae=>ae(be=>Z.call(te,be))));return m(Q,se)}}Ze.any=d;function c(re,Z,te,se){let Q=te;return r(re,ae=>(Q=Z(Q,ae),Q),se)}Ze.reduce=c;function u(re,Z){let te,se={onWillAddFirstListener(){te=re(Q.fire,Q)},onDidRemoveLastListener(){te?.dispose()}};Z||t(se);let Q=new T(se);return Z?.add(Q),Q.event}function m(re,Z){return Z instanceof Array?Z.push(re):Z&&Z.add(re),re}function g(re,Z,te=100,se=!1,Q=!1,ae,be){let rt,$e,Ae,At=0,Nt,lt={leakWarningThreshold:ae,onWillAddFirstListener(){rt=re(Ss=>{At++,$e=Z($e,Ss),se&&!Ae&&(vo.fire($e),$e=void 0),Nt=()=>{let Pi=$e;$e=void 0,Ae=void 0,(!se||At>1)&&vo.fire(Pi),At=0},typeof te=="number"?(Ae&&clearTimeout(Ae),Ae=setTimeout(Nt,te)):Ae===void 0&&(Ae=null,queueMicrotask(Nt))})},onWillRemoveListener(){Q&&At>0&&Nt?.()},onDidRemoveLastListener(){Nt=void 0,rt.dispose()}};be||t(lt);let vo=new T(lt);return be?.add(vo),vo.event}Ze.debounce=g;function v(re,Z=0,te,se){return Ze.debounce(re,(Q,ae)=>Q?(Q.push(ae),Q):[ae],Z,void 0,te??!0,void 0,se)}Ze.accumulate=v;function h(re,Z,te=100,se=!0,Q=!0,ae,be){let rt,$e,Ae,At=0,Nt={leakWarningThreshold:ae,onWillAddFirstListener(){rt=re(vo=>{At++,$e=Z($e,vo),Ae===void 0&&(se&&(lt.fire($e),$e=void 0,At=0),typeof te=="number"?Ae=setTimeout(()=>{Q&&At>0&&lt.fire($e),$e=void 0,Ae=void 0,At=0},te):(Ae=0,queueMicrotask(()=>{Q&&At>0&&lt.fire($e),$e=void 0,Ae=void 0,At=0})))})},onDidRemoveLastListener(){rt.dispose()}};be||t(Nt);let lt=new T(Nt);return be?.add(lt),lt.event}Ze.throttle=h;function I(re,Z=(se,Q)=>se===Q,te){let se=!0,Q;return a(re,ae=>{let be=se||!Z(ae,Q);return se=!1,Q=ae,be},te)}Ze.latch=I;function S(re,Z,te){return[Ze.filter(re,Z,te),Ze.filter(re,se=>!Z(se),te)]}Ze.split=S;function w(re,Z,te=!1,se=[],Q){let ae=se.slice(),be;oL()&&(be={stack:vu.create(),timerId:setTimeout(()=>{ae&&ae.length>0&&be&&!be.warned&&(be.warned=!0,console.warn(`[Event.buffer][${Z}] potential LEAK detected: ${ae.length} events buffered for ${nL/1e3}s without being consumed. Buffered here:`),be.stack.print())},nL),warned:!1},Q&&Q.add(Y(()=>clearTimeout(be.timerId))));let rt=()=>{be&&clearTimeout(be.timerId)},$e=re(Nt=>{ae?(ae.push(Nt),oL()&&be&&!be.warned&&ae.length>=SW&&(be.warned=!0,console.warn(`[Event.buffer][${Z}] potential LEAK detected: ${ae.length} events buffered without being consumed. Buffered here:`),be.stack.print())):At.fire(Nt)});Q&&Q.add($e);let Ae=()=>{ae?.forEach(Nt=>At.fire(Nt)),ae=null,rt()},At=new T({onWillAddFirstListener(){$e||($e=re(Nt=>At.fire(Nt)),Q&&Q.add($e))},onDidAddFirstListener(){ae&&(te?setTimeout(Ae):Ae())},onDidRemoveLastListener(){$e&&$e.dispose(),$e=null,rt()}});return Q&&Q.add(At),At.event}Ze.buffer=w;function P(re,Z){return(se,Q,ae)=>{let be=Z(new L);return re(function(rt){let $e=be.evaluate(rt);$e!==A&&se.call(Q,$e)},void 0,ae)}}Ze.chain=P;let A=Symbol("HaltChainable");class L{constructor(){this.steps=[]}map(Z){return this.steps.push(Z),this}forEach(Z){return this.steps.push(te=>(Z(te),te)),this}filter(Z){return this.steps.push(te=>Z(te)?te:A),this}reduce(Z,te){let se=te;return this.steps.push(Q=>(se=Z(se,Q),se)),this}latch(Z=(te,se)=>te===se){let te=!0,se;return this.steps.push(Q=>{let ae=te||!Z(Q,se);return te=!1,se=Q,ae?Q:A}),this}evaluate(Z){for(let te of this.steps)if(Z=te(Z),Z===A)break;return Z}}function V(re,Z,te=se=>se){let se=(...rt)=>be.fire(te(...rt)),Q=()=>re.on(Z,se),ae=()=>re.removeListener(Z,se),be=new T({onWillAddFirstListener:Q,onDidRemoveLastListener:ae});return be.event}Ze.fromNodeEventEmitter=V;function q(re,Z,te=se=>se){let se=(...rt)=>be.fire(te(...rt)),Q=()=>re.addEventListener(Z,se),ae=()=>re.removeEventListener(Z,se),be=new T({onWillAddFirstListener:Q,onDidRemoveLastListener:ae});return be.event}Ze.fromDOMEventEmitter=q;function J(re,Z){let te,se,Q=new Promise(ae=>{se=n(re)(ae),ik(se,Z),te=()=>{iL(se,Z)}});return Q.cancel=te,Z&&Q.finally(()=>iL(se,Z)),Q}Ze.toPromise=J;function z(re,Z){return re(te=>Z.fire(te))}Ze.forward=z;function j(re,Z,te){return Z(te),re(se=>Z(se))}Ze.runAndSubscribe=j;class X{constructor(Z,te){this._observable=Z;this._counter=0;this._hasChanged=!1;let se={onWillAddFirstListener:()=>{Z.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Z.removeObserver(this)}};te||t(se),this.emitter=new T(se),te&&te.add(this.emitter)}beginUpdate(Z){this._counter++}handlePossibleChange(Z){}handleChange(Z,te){this._hasChanged=!0}endUpdate(Z){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ue(re,Z){return new X(re,Z).emitter.event}Ze.fromObservable=ue;function ot(re){return(Z,te,se)=>{let Q=0,ae=!1,be={beginUpdate(){Q++},endUpdate(){Q--,Q===0&&(re.reportChanges(),ae&&(ae=!1,Z.call(te)))},handlePossibleChange(){},handleChange(){ae=!0}};re.addObserver(be),re.reportChanges();let rt={dispose(){re.removeObserver(be)}};return ik(rt,se),rt}}Ze.fromObservableLight=ot})(Le||={});var tk=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 Vn,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}}},rL=-1;var CW=1;function sL(){return(CW++).toString(16).padStart(3,"0")}var nk=class{constructor(t,e,n=sL()){this._errorHandler=t;this.threshold=e;this.name=n;this._warnCountdown=0}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=t.value,r=this._stacks.get(o)||0;if(this._stacks.set(o,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[s,a]=this.getMostFrequentStack(),l=/^[0-9a-f]+$/i.test(this.name)?void 0:this.name,d=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${a}):`;console.warn(d),console.warn(s);let c=a/e>.3?"dominated":"popular",u=new bu(c,d,s,e,l);this._errorHandler(u)}return()=>{let s=this._stacks.get(o)||0;s<=1?this._stacks.delete(o):this._stacks.set(o,s-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}},vu=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(`
`))}},bu=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"}},ok=class extends bu{constructor(t,e,n,o,r){super(t,e,n,o,r),this.name="ListenerRefusalError"}},TW=0,hu=class{constructor(t){this.value=t;this.id=TW++}},EW=2,aL=(i,t)=>{if(i instanceof hu)t(i);else for(let e=0;e<i.length;e++){let n=i[e];n&&t(n)}},T=class{constructor(t){this._size=0;this._options=t,(rL>0||this._options?.leakWarningThreshold)&&(this._leakWarningThreshold=this._options?.leakWarningThreshold??rL,this._leakWarningName=this._options?.leakWarningName??sL(),this._leakWarningErrorHandler=this._options?.onListenerError??_t),this._perfMon=this._options?._profName?new tk(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}_getLeakageMonitor(){if(!(this._leakWarningThreshold===void 0||this._leakWarningName===void 0||this._leakWarningErrorHandler===void 0))return this._leakageMon??=new nk(this._leakWarningErrorHandler,this._leakWarningThreshold,this._leakWarningName)}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(tL){let t=this._listeners;queueMicrotask(()=>{aL(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._leakWarningThreshold!==void 0&&this._size>this._leakWarningThreshold**2){let l=this._getLeakageMonitor();if(l){let d=`[${l.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${l.threshold})`;console.warn(d);let c=l.getMostFrequentStack()??["UNKNOWN stack",-1],u=c[1]/this._size>.3?"dominated":"popular",m=new ok(u,`${d}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||_t)(m),U.None}}if(this._disposed)return U.None;e&&(t=t.bind(e));let o=new hu(t),r,s;if(this._leakWarningThreshold!==void 0&&this._size>=Math.ceil(this._leakWarningThreshold*.2)){let l=this._getLeakageMonitor();l&&(o.stack=vu.create(),r=l.check(o.stack,this._size+1))}tL&&(o.stack=s??vu.create()),this._listeners?this._listeners instanceof hu?(this._deliveryQueue??=new rk,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=Y(()=>{r?.(),this._removeListener(o)});return ik(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*EW<=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||_t;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 hu)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 rk=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}},Oi=class extends T{async fireAsync(t,e,n){if(this._listeners)for(this._asyncDeliveryQueue||(this._asyncDeliveryQueue=new Qn),aL(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){_t(l);continue}Object.freeze(s),await Promise.allSettled(s).then(l=>{for(let d of l)d.status==="rejected"&&_t(d.reason)})}}},Ka=class extends T{constructor(e){super(e);this._isPaused=0;this._eventQueue=new Qn;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))}},Lb=class extends Ka{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)}},Nb=class extends T{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=[]}))}};function ik(i,t){t instanceof G?t.add(i):Array.isArray(t)&&t.push(i)}function iL(i,t){if(t instanceof G)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var Ub=(e=>(e[e.Desktop=1]="Desktop",e[e.Web=2]="Web",e))(Ub||{});function sk(i){let t=ee.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 lL(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}}function ak(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 wW(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?ak():{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 ak(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),ak()}function kW(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=wW()),i.MonacoPerformanceMarks}var lk=kW(globalThis),vn=lk.mark,PW=lk.clearMarks,dL=lk.getMarks;var _W=65,DW=97,RW=90,MW=122,Pd=46,Yn=47,zo=92,Ds=58,AW=63,Hb=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 OW(i,t){if(i===null||typeof i!="object")throw new Hb(t,"Object",i)}function bn(i,t){if(typeof i!="string")throw new Hb(t,"string",i)}var qo=Zw==="win32";function et(i){return i===Yn||i===zo}function dk(i){return i===Yn}function Rs(i){return i>=_W&&i<=RW||i>=DW&&i<=MW}function Vb(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=Yn}if(n(l)){if(!(s===d-1||a===1))if(a===2){if(o.length<2||r!==2||o.charCodeAt(o.length-1)!==Pd||o.charCodeAt(o.length-2)!==Pd){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===Pd&&a!==-1?++a:a=-1}return o}function LW(i){return i?`${i[0]==="."?"":"."}${i}`:""}function cL(i,t){OW(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${LW(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var tn={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],bn(r,`paths[${o}]`),r.length===0)continue}else t.length===0?r=_s():(r=xo[`=${t}`]||_s(),(r===void 0||r.slice(0,2).toLowerCase()!==t.toLowerCase()&&r.charCodeAt(2)===zo)&&(r=`${t}\\`));let s=r.length,a=0,l="",d=!1,c=r.charCodeAt(0);if(s===1)et(c)&&(a=1,d=!0);else if(et(c))if(d=!0,et(r.charCodeAt(1))){let u=2,m=u;for(;u<s&&!et(r.charCodeAt(u));)u++;if(u<s&&u!==m){let g=r.slice(m,u);for(m=u;u<s&&et(r.charCodeAt(u));)u++;if(u<s&&u!==m){for(m=u;u<s&&!et(r.charCodeAt(u));)u++;(u===s||u!==m)&&(l=`\\\\${g}\\${r.slice(m,u)}`,a=u)}}}else a=1;else Rs(c)&&r.charCodeAt(1)===Ds&&(l=r.slice(0,2),a=2,s>2&&et(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=Vb(e,!n,"\\",et),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){bn(i,"path");let t=i.length;if(t===0)return".";let e=0,n,o=!1,r=i.charCodeAt(0);if(t===1)return dk(r)?"\\":i;if(et(r))if(o=!0,et(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!et(i.charCodeAt(a));)a++;if(a<t&&a!==l){let d=i.slice(l,a);for(l=a;a<t&&et(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!et(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 Rs(r)&&i.charCodeAt(1)===Ds&&(n=i.slice(0,2),e=2,t>2&&et(i.charCodeAt(2))&&(o=!0,e=3));let s=e<t?Vb(i.slice(e),!o,"\\",et):"";if(s.length===0&&!o&&(s="."),s.length>0&&et(i.charCodeAt(t-1))&&(s+="\\"),!o&&n===void 0&&i.includes(":")){if(s.length>=2&&Rs(s.charCodeAt(0))&&s.charCodeAt(1)===Ds)return`.\\${s}`;let a=i.indexOf(":");do if(a===t-1||et(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){bn(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return et(e)||t>2&&Rs(e)&&i.charCodeAt(1)===Ds&&et(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];bn(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"&&et(e.charCodeAt(0))){++o;let r=e.length;r>1&&et(e.charCodeAt(1))&&(++o,r>2&&(et(e.charCodeAt(2))?++o:n=!1))}if(n){for(;o<t.length&&et(t.charCodeAt(o));)o++;o>=2&&(t=`\\${t.slice(o)}`)}return tn.normalize(t)},relative(i,t){if(bn(i,"from"),bn(t,"to"),i===t)return"";let e=tn.resolve(i),n=tn.resolve(t);if(e===n||(i=e.toLowerCase(),t=n.toLowerCase(),i===t))return"";if(e.length!==i.length||n.length!==t.length){let v=e.split("\\"),h=n.split("\\");v[v.length-1]===""&&v.pop(),h[h.length-1]===""&&h.pop();let I=v.length,S=h.length,w=I<S?I:S,P;for(P=0;P<w&&v[P].toLowerCase()===h[P].toLowerCase();P++);return P===0?n:P===w?S>w?h.slice(P).join("\\"):I>w?"..\\".repeat(I-1-P)+"..":"":"..\\".repeat(I-P)+h.slice(P).join("\\")}let o=0;for(;o<i.length&&i.charCodeAt(o)===zo;)o++;let r=i.length;for(;r-1>o&&i.charCodeAt(r-1)===zo;)r--;let s=r-o,a=0;for(;a<t.length&&t.charCodeAt(a)===zo;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===zo;)l--;let d=l-a,c=s<d?s:d,u=-1,m=0;for(;m<c;m++){let v=i.charCodeAt(o+m);if(v!==t.charCodeAt(a+m))break;v===zo&&(u=m)}if(m!==c){if(u===-1)return n}else{if(d>c){if(t.charCodeAt(a+m)===zo)return n.slice(a+m+1);if(m===2)return n.slice(a+m)}s>c&&(i.charCodeAt(o+m)===zo?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)===zo)&&(g+=g.length===0?"..":"\\..");return a+=u,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===zo&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=tn.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===zo){if(t.charCodeAt(1)===zo){let e=t.charCodeAt(2);if(e!==AW&&e!==Pd)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Rs(t.charCodeAt(0))&&t.charCodeAt(1)===Ds&&t.charCodeAt(2)===zo)return`\\\\?\\${t}`;return t},dirname(i){bn(i,"path");let t=i.length;if(t===0)return".";let e=-1,n=0,o=i.charCodeAt(0);if(t===1)return et(o)?i:".";if(et(o)){if(e=n=1,et(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!et(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&et(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!et(i.charCodeAt(a));)a++;if(a===t)return i;a!==l&&(e=n=a+1)}}}}else Rs(o)&&i.charCodeAt(1)===Ds&&(e=t>2&&et(i.charCodeAt(2))?3:2,n=e);let r=-1,s=!0;for(let a=t-1;a>=n;--a)if(et(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&&bn(t,"suffix"),bn(i,"path");let e=0,n=-1,o=!0,r;if(i.length>=2&&Rs(i.charCodeAt(0))&&i.charCodeAt(1)===Ds&&(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(et(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(et(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){bn(i,"path");let t=0,e=-1,n=0,o=-1,r=!0,s=0;i.length>=2&&i.charCodeAt(1)===Ds&&Rs(i.charCodeAt(0))&&(t=n=2);for(let a=i.length-1;a>=t;--a){let l=i.charCodeAt(a);if(et(l)){if(!r){n=a+1;break}continue}o===-1&&(r=!1,o=a+1),l===Pd?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:cL.bind(null,"\\"),parse(i){bn(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 et(o)?(t.root=t.dir=i,t):(t.base=t.name=i,t);if(et(o)){if(n=1,et(i.charCodeAt(1))){let u=2,m=u;for(;u<e&&!et(i.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&et(i.charCodeAt(u));)u++;if(u<e&&u!==m){for(m=u;u<e&&!et(i.charCodeAt(u));)u++;u===e?n=u:u!==m&&(n=u+1)}}}}else if(Rs(o)&&i.charCodeAt(1)===Ds){if(e<=2)return t.root=t.dir=i,t;if(n=2,et(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),et(o)){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),o===Pd?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},NW=(()=>{if(qo){let i=/\\/g;return()=>{let t=_s().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>_s()})(),Ve={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let o=i[n];bn(o,`paths[${n}]`),o.length!==0&&(t=`${o}/${t}`,e=o.charCodeAt(0)===Yn)}if(!e){let n=NW();t=`${n}/${t}`,e=n.charCodeAt(0)===Yn}return t=Vb(t,!e,"/",dk),e?`/${t}`:t.length>0?t:"."},normalize(i){if(bn(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Yn,e=i.charCodeAt(i.length-1)===Yn;return i=Vb(i,!t,"/",dk),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return bn(i,"path"),i.length>0&&i.charCodeAt(0)===Yn},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];bn(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":Ve.normalize(t.join("/"))},relative(i,t){if(bn(i,"from"),bn(t,"to"),i===t||(i=Ve.resolve(i),t=Ve.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===Yn&&(l=d)}if(d===a)if(s>a){if(t.charCodeAt(r+d)===Yn)return t.slice(r+d+1);if(d===0)return t.slice(r+d)}else o>a&&(i.charCodeAt(e+d)===Yn?l=d:d===0&&(l=0));let c="";for(d=e+l+1;d<=n;++d)(d===n||i.charCodeAt(d)===Yn)&&(c+=c.length===0?"..":"/..");return`${c}${t.slice(r+l)}`},toNamespacedPath(i){return i},dirname(i){if(bn(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Yn,e=-1,n=!0;for(let o=i.length-1;o>=1;--o)if(i.charCodeAt(o)===Yn){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&&bn(t,"suffix"),bn(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===Yn){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)===Yn){if(!o){e=r+1;break}}else n===-1&&(o=!1,n=r+1);return n===-1?"":i.slice(e,n)},extname(i){bn(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:cL.bind(null,"/"),parse(i){bn(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===Yn,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===Yn){if(!a){r=l+1;break}continue}s===-1&&(a=!1,s=l+1),c===Pd?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};Ve.win32=tn.win32=tn;Ve.posix=tn.posix=Ve;var Ko=qo?tn.normalize:Ve.normalize,Xr=qo?tn.isAbsolute:Ve.isAbsolute,yu=qo?tn.join:Ve.join,uL=qo?tn.resolve:Ve.resolve,Ms=qo?tn.relative:Ve.relative,Li=qo?tn.dirname:Ve.dirname,un=qo?tn.basename:Ve.basename,As=qo?tn.extname:Ve.extname,$K=qo?tn.format:Ve.format,zK=qo?tn.parse:Ve.parse,qK=qo?tn.toNamespacedPath:Ve.toNamespacedPath,Xn=qo?tn.sep:Ve.sep,KK=qo?tn.delimiter:Ve.delimiter;var UW=/^\w[\w\d+.-]*$/,FW=/^\//,HW=/^\/\//;function VW(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&&!UW.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(!FW.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(HW.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 BW(i,t){return!i&&!t?"file":i}function WW(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==Zr&&(t=Zr+t):t=Zr;break}return t}var jt="",Zr="/",$W=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,y=class i{static isUri(t){return t instanceof i?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,e,n,o,r,s=!1){typeof t=="object"?(this.scheme=t.scheme||jt,this.authority=t.authority||jt,this.path=t.path||jt,this.query=t.query||jt,this.fragment=t.fragment||jt):(this.scheme=BW(t,s),this.authority=e||jt,this.path=WW(this.scheme,n||jt),this.query=o||jt,this.fragment=r||jt,VW(this,s))}get fsPath(){return bf(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=jt),n===void 0?n=this.authority:n===null&&(n=jt),o===void 0?o=this.path:o===null&&(o=jt),r===void 0?r=this.query:r===null&&(r=jt),s===void 0?s=this.fragment:s===null&&(s=jt),e===this.scheme&&n===this.authority&&o===this.path&&r===this.query&&s===this.fragment?this:new Ga(e,n,o,r,s)}static parse(t,e=!1){let n=$W.exec(t);return n?new Ga(n[2]||jt,Bb(n[4]||jt),Bb(n[5]||jt),Bb(n[7]||jt),Bb(n[9]||jt),e):new Ga(jt,jt,jt,jt,jt)}static file(t){let e=jt;if(Ct&&(t=t.replace(/\\/g,Zr)),t[0]===Zr&&t[1]===Zr){let n=t.indexOf(Zr,2);n===-1?(e=t.substring(2),t=Zr):(e=t.substring(2,n),t=t.substring(n)||Zr)}return new Ga("file",e,t,jt,jt)}static from(t,e){return new Ga(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 Ct&&t.scheme==="file"?n=i.file(tn.join(bf(t,!0),...e)).path:n=Ve.join(t.path,...e),t.with({path:n})}toString(t=!1){return ck(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new Ga(t);return e._formatted=t.external??null,e._fsPath=t._sep===gL?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};function ja(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 gL=Ct?1:void 0,Ga=class extends y{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=bf(this,!1)),this._fsPath}toString(e=!1){return e?ck(this,!0):(this._formatted||(this._formatted=ck(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=gL),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}},fL={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 pL(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=fL[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 zW(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+=fL[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function bf(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,Ct&&(e=e.replace(/\//g,"\\")),e}function ck(i,t){let e=t?zW:pL,n="",{scheme:o,authority:r,path:s,query:a,fragment:l}=i;if(o&&(n+=o,n+=":"),(r||o==="file")&&(n+=Zr,n+=Zr),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:pL(l,!1,!1)),n}function hL(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+hL(i.substr(3)):i}}var mL=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Bb(i){return i.match(mL)?i.replace(mL,t=>hL(t)):i}var yf=class i{constructor(t){this._proxyIdentifierBrand=void 0;this.sid=t,this.nid=++i.count}static{this.count=0}},vL=[];function H(i){let t=new yf(i);return vL[t.nid]=t,t}function If(i){return vL[i].sid}var Vt=class{constructor(t){this.value=t}};var uk=(o=>(o[o.None=0]="None",o[o.Process=1]="Process",o[o.Output=2]="Output",o[o.Hybrid=3]="Hybrid",o))(uk||{}),bL=class i{static{this._n=0}static mixin(t){return t._id=i._n++,t}};var N={MainThreadAuthentication:H("MainThreadAuthentication"),MainThreadBulkEdits:H("MainThreadBulkEdits"),MainThreadLanguageModels:H("MainThreadLanguageModels"),MainThreadEmbeddings:H("MainThreadEmbeddings"),MainThreadChatAgents2:H("MainThreadChatAgents2"),MainThreadCodeMapper:H("MainThreadCodeMapper"),MainThreadLanguageModelTools:H("MainThreadChatSkills"),MainThreadGitExtension:H("MainThreadGitExtension"),MainThreadClipboard:H("MainThreadClipboard"),MainThreadCommands:H("MainThreadCommands"),MainThreadComments:H("MainThreadComments"),MainThreadConfiguration:H("MainThreadConfiguration"),MainThreadConsole:H("MainThreadConsole"),MainThreadDebugService:H("MainThreadDebugService"),MainThreadDecorations:H("MainThreadDecorations"),MainThreadDiagnostics:H("MainThreadDiagnostics"),MainThreadDialogs:H("MainThreadDiaglogs"),MainThreadDocuments:H("MainThreadDocuments"),MainThreadDocumentContentProviders:H("MainThreadDocumentContentProviders"),MainThreadTextEditors:H("MainThreadTextEditors"),MainThreadEditorInsets:H("MainThreadEditorInsets"),MainThreadEditorTabs:H("MainThreadEditorTabs"),MainThreadErrors:H("MainThreadErrors"),MainThreadTreeViews:H("MainThreadTreeViews"),MainThreadDownloadService:H("MainThreadDownloadService"),MainThreadLanguageFeatures:H("MainThreadLanguageFeatures"),MainThreadLanguages:H("MainThreadLanguages"),MainThreadLogger:H("MainThreadLogger"),MainThreadMessageService:H("MainThreadMessageService"),MainThreadOutputService:H("MainThreadOutputService"),MainThreadProgress:H("MainThreadProgress"),MainThreadQuickDiff:H("MainThreadQuickDiff"),MainThreadAgentEditorComments:H("MainThreadAgentEditorComments"),MainThreadDocumentDiff:H("MainThreadDocumentDiff"),MainThreadQuickOpen:H("MainThreadQuickOpen"),MainThreadStatusBar:H("MainThreadStatusBar"),MainThreadSecretState:H("MainThreadSecretState"),MainThreadStorage:H("MainThreadStorage"),MainThreadSpeech:H("MainThreadSpeechProvider"),MainThreadTelemetry:H("MainThreadTelemetry"),MainThreadMeteredConnection:H("MainThreadMeteredConnection"),MainThreadTerminalService:H("MainThreadTerminalService"),MainThreadTerminalShellIntegration:H("MainThreadTerminalShellIntegration"),MainThreadWebviews:H("MainThreadWebviews"),MainThreadWebviewPanels:H("MainThreadWebviewPanels"),MainThreadWebviewViews:H("MainThreadWebviewViews"),MainThreadCustomEditors:H("MainThreadCustomEditors"),MainThreadUrls:H("MainThreadUrls"),MainThreadUriOpeners:H("MainThreadUriOpeners"),MainThreadProfileContentHandlers:H("MainThreadProfileContentHandlers"),MainThreadWorkspace:H("MainThreadWorkspace"),MainThreadFileSystem:H("MainThreadFileSystem"),MainThreadFileSystemEventService:H("MainThreadFileSystemEventService"),MainThreadExtensionService:H("MainThreadExtensionService"),MainThreadSCM:H("MainThreadSCM"),MainThreadSearch:H("MainThreadSearch"),MainThreadShare:H("MainThreadShare"),MainThreadTask:H("MainThreadTask"),MainThreadWindow:H("MainThreadWindow"),MainThreadPower:H("MainThreadPower"),MainThreadLabelService:H("MainThreadLabelService"),MainThreadNotebook:H("MainThreadNotebook"),MainThreadNotebookDocuments:H("MainThreadNotebookDocumentsShape"),MainThreadNotebookEditors:H("MainThreadNotebookEditorsShape"),MainThreadNotebookKernels:H("MainThreadNotebookKernels"),MainThreadNotebookRenderers:H("MainThreadNotebookRenderers"),MainThreadInteractive:H("MainThreadInteractive"),MainThreadTheming:H("MainThreadTheming"),MainThreadTunnelService:H("MainThreadTunnelService"),MainThreadManagedSockets:H("MainThreadManagedSockets"),MainThreadBrowserTunnelProxy:H("MainThreadBrowserTunnelProxy"),MainThreadTimeline:H("MainThreadTimeline"),MainThreadTesting:H("MainThreadTesting"),MainThreadLocalization:H("MainThreadLocalizationShape"),MainThreadMcp:H("MainThreadMcpShape"),MainThreadAiRelatedInformation:H("MainThreadAiRelatedInformation"),MainThreadAiEmbeddingVector:H("MainThreadAiEmbeddingVector"),MainThreadChatStatus:H("MainThreadChatStatus"),MainThreadChatQuota:H("MainThreadChatQuota"),MainThreadChatInputNotification:H("MainThreadChatInputNotification"),MainThreadAiSettingsSearch:H("MainThreadAiSettingsSearch"),MainThreadDataChannels:H("MainThreadDataChannels"),MainThreadChatSessions:H("MainThreadChatSessions"),MainThreadChatOutputRenderer:H("MainThreadChatOutputRenderer"),MainThreadChatContext:H("MainThreadChatContext"),MainThreadChatDebug:H("MainThreadChatDebug"),MainThreadBrowsers:H("MainThreadBrowsers")},pe={ExtHostCodeMapper:H("ExtHostCodeMapper"),ExtHostCommands:H("ExtHostCommands"),ExtHostConfiguration:H("ExtHostConfiguration"),ExtHostDiagnostics:H("ExtHostDiagnostics"),ExtHostDebugService:H("ExtHostDebugService"),ExtHostDecorations:H("ExtHostDecorations"),ExtHostDocumentsAndEditors:H("ExtHostDocumentsAndEditors"),ExtHostDocuments:H("ExtHostDocuments"),ExtHostDocumentContentProviders:H("ExtHostDocumentContentProviders"),ExtHostDocumentSaveParticipant:H("ExtHostDocumentSaveParticipant"),ExtHostEditors:H("ExtHostEditors"),ExtHostTreeViews:H("ExtHostTreeViews"),ExtHostFileSystem:H("ExtHostFileSystem"),ExtHostFileSystemInfo:H("ExtHostFileSystemInfo"),ExtHostFileSystemEventService:H("ExtHostFileSystemEventService"),ExtHostLanguages:H("ExtHostLanguages"),ExtHostLanguageFeatures:H("ExtHostLanguageFeatures"),ExtHostQuickOpen:H("ExtHostQuickOpen"),ExtHostQuickDiff:H("ExtHostQuickDiff"),ExtHostAgentEditorComments:H("ExtHostAgentEditorComments"),ExtHostStatusBar:H("ExtHostStatusBar"),ExtHostShare:H("ExtHostShare"),ExtHostExtensionService:H("ExtHostExtensionService"),ExtHostLogLevelServiceShape:H("ExtHostLogLevelServiceShape"),ExtHostTerminalService:H("ExtHostTerminalService"),ExtHostTerminalShellIntegration:H("ExtHostTerminalShellIntegration"),ExtHostSCM:H("ExtHostSCM"),ExtHostSearch:H("ExtHostSearch"),ExtHostTask:H("ExtHostTask"),ExtHostWorkspace:H("ExtHostWorkspace"),ExtHostWindow:H("ExtHostWindow"),ExtHostPower:H("ExtHostPower"),ExtHostWebviews:H("ExtHostWebviews"),ExtHostWebviewPanels:H("ExtHostWebviewPanels"),ExtHostCustomEditors:H("ExtHostCustomEditors"),ExtHostWebviewViews:H("ExtHostWebviewViews"),ExtHostEditorInsets:H("ExtHostEditorInsets"),ExtHostEditorTabs:H("ExtHostEditorTabs"),ExtHostProgress:H("ExtHostProgress"),ExtHostComments:H("ExtHostComments"),ExtHostSecretState:H("ExtHostSecretState"),ExtHostStorage:H("ExtHostStorage"),ExtHostUrls:H("ExtHostUrls"),ExtHostUriOpeners:H("ExtHostUriOpeners"),ExtHostChatOutputRenderer:H("ExtHostChatOutputRenderer"),ExtHostProfileContentHandlers:H("ExtHostProfileContentHandlers"),ExtHostOutputService:H("ExtHostOutputService"),ExtHostLabelService:H("ExtHostLabelService"),ExtHostNotebook:H("ExtHostNotebook"),ExtHostNotebookDocuments:H("ExtHostNotebookDocuments"),ExtHostNotebookEditors:H("ExtHostNotebookEditors"),ExtHostNotebookKernels:H("ExtHostNotebookKernels"),ExtHostNotebookRenderers:H("ExtHostNotebookRenderers"),ExtHostNotebookDocumentSaveParticipant:H("ExtHostNotebookDocumentSaveParticipant"),ExtHostInteractive:H("ExtHostInteractive"),ExtHostChatAgents2:H("ExtHostChatAgents"),ExtHostLanguageModelTools:H("ExtHostChatSkills"),ExtHostChatProvider:H("ExtHostChatProvider"),ExtHostChatContext:H("ExtHostChatContext"),ExtHostChatDebug:H("ExtHostChatDebug"),ExtHostSpeech:H("ExtHostSpeech"),ExtHostEmbeddings:H("ExtHostEmbeddings"),ExtHostAiRelatedInformation:H("ExtHostAiRelatedInformation"),ExtHostAiEmbeddingVector:H("ExtHostAiEmbeddingVector"),ExtHostAiSettingsSearch:H("ExtHostAiSettingsSearch"),ExtHostTheming:H("ExtHostTheming"),ExtHostTunnelService:H("ExtHostTunnelService"),ExtHostManagedSockets:H("ExtHostManagedSockets"),ExtHostBrowserTunnelProxy:H("ExtHostBrowserTunnelProxy"),ExtHostAuthentication:H("ExtHostAuthentication"),ExtHostTimeline:H("ExtHostTimeline"),ExtHostTesting:H("ExtHostTesting"),ExtHostTelemetry:H("ExtHostTelemetry"),ExtHostMeteredConnection:H("ExtHostMeteredConnection"),ExtHostLocalization:H("ExtHostLocalization"),ExtHostMcp:H("ExtHostMcp"),ExtHostDataChannels:H("ExtHostDataChannels"),ExtHostChatSessions:H("ExtHostChatSessions"),ExtHostChatQuota:H("ExtHostChatQuota"),ExtHostGitExtension:H("ExtHostGitExtension"),ExtHostBrowsers:H("ExtHostBrowsers")};var yL=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),ve;(n=>{function i(o){return o===n.None||o===n.Cancelled||o instanceof Iu?!0:!o||typeof o!="object"?!1:typeof o.isCancellationRequested=="boolean"&&typeof o.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Le.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:yL})})(ve||={});var Iu=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?yL:(this._emitter||(this._emitter=new T),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},Re=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 Iu),this._token}cancel(){this._token?this._token instanceof Iu&&this._token.cancel():this._token=ve.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof Iu&&this._token.dispose():this._token=ve.None}};function qW(i){return i}var Wb=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=qW):(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}};function pk(i){return i<0?0:i>255?255:i|0}function _d(i){return i<0?0:i>4294967295?4294967295:i|0}function Ui(i){return!i||typeof i!="string"?!0:i.trim().length===0}var GW=/{(\d+)}/g;function TL(i,...t){return t.length===0?i:i.replace(GW,function(e,n){let o=parseInt(n,10);return isNaN(o)||o<0||o>=t.length?e:t[o]})}var jW=/{([^}]+)}/g;function hk(i,t){return Object.keys(t).length===0?i:i.replace(jW,(e,n)=>t[n]??e)}function EL(i){return i.replace(/[<>"'&]/g,t=>{switch(t){case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case"'":return"&apos;";case"&":return"&amp;"}return t})}function Fi(i){return i.replace(/[<>&]/g,function(t){switch(t){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";default:return t}})}function dr(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function wL(i,t){let e=0,n=i.indexOf(t);for(;n!==-1;)e++,n=i.indexOf(t,n+t.length);return e}function vk(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 Dd(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 kL(i,t,e={}){if(!i)throw new Error("Cannot create regex from empty string");t||(i=dr(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 zb(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function qb(i){return i.split(/\r\n|\r|\n/)}function Kb(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 PL(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 ei(i,t){return i<t?-1:i>t?1:0}function Gb(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 Rd(i,t){return Md(i,t,0,i.length,0,t.length)}function Md(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 Gb(i.toLowerCase(),t.toLowerCase(),e,n,o,r);IL(l)&&(l-=32),IL(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 IL(i){return i>=97&&i<=122}function Bn(i,t){return i.length===t.length&&Md(i,t)===0}function jb(i,t,e){return i===t||!!e&&i!==void 0&&t!==void 0&&Bn(i,t)}function Qa(i,t){let e=t.length;return e<=i.length&&Md(i,t,0,e)===0}function _L(i,t){let e=i.length,n=e-t.length;return n>=0&&Md(i,t,n,e)===0}function DL(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 Ad(i){return 55296<=i&&i<=56319}function xf(i){return 56320<=i&&i<=57343}function Qb(i,t){return(i-55296<<10)+(t-56320)+65536}function bk(i,t,e){let n=i.charCodeAt(e);if(Ad(n)&&e+1<t){let o=i.charCodeAt(e+1);if(xf(o))return Qb(n,o)}return n}function QW(i,t){let e=i.charCodeAt(t-1);if(xf(e)&&t>1){let n=i.charCodeAt(t-2);if(Ad(n))return Qb(n,e)}return e}var gk=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=QW(this._str,this._offset);return this._offset-=t>=65536?2:1,t}nextCodePoint(){let t=bk(this._str,this._len,this._offset);return this._offset+=t>=65536?2:1,t}eol(){return this._offset>=this._len}},fk=class{get offset(){return this._iterator.offset}constructor(t,e=0){this._iterator=new gk(t,e)}nextGraphemeLength(){let t=$b.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(xL(o,s)){e.setOffset(r);break}o=s}return e.offset-n}prevGraphemeLength(){let t=$b.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(xL(s,o)){e.setOffset(r);break}o=s}return n-e.offset}eol(){return this._iterator.eol()}};function yk(i,t){return new fk(i,t).nextGraphemeLength()}var mk;function JW(){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 Jb(i){return mk||(mk=JW()),mk.test(i)}var YW=/^[\t\n\r\x20-\x7E]*$/;function RL(i){return YW.test(i)}var XW=/[\u2028\u2029]/;function Yb(i){return XW.test(i)}var ZW=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,e4=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,t4=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,gG=new RegExp("(?:"+[ZW.source,e4.source,t4.source].join("|")+")","g");var ML=String.fromCharCode(65279);function AL(i){return!!(i&&i.length>0&&i.charCodeAt(0)===65279)}function Ik(i,t=!1){return i?(t&&(i=i.replace(/\\./g,"")),i.toLowerCase()!==i):!1}function OL(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 xL(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 $b=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=n4()}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 n4(){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 SL=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new yt(()=>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 Wb(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[v,h]of m)g.set(v,h);return g}function r(u,m){if(!u)return m;let g=new Map;for(let[v,h]of u)m.has(v)&&g.set(v,h);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 yt(()=>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())}},CL=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 Ja(i){return i===47||i===92}function Xb(i){return i.replace(/[\\/]/g,Ve.sep)}function LL(i){return i.indexOf("/")===-1&&(i=Xb(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function xk(i,t=Ve.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(Ja(n)){if(Ja(i.charCodeAt(1))&&!Ja(i.charCodeAt(2))){let r=3,s=r;for(;r<e&&!Ja(i.charCodeAt(r));r++);if(s!==r&&!Ja(i.charCodeAt(r+1))){for(r+=1;r<e;r++)if(Ja(i.charCodeAt(r)))return i.slice(0,r+1).replace(/[\\/]/g,t)}}return t}else if(UL(n)&&i.charCodeAt(1)===58)return Ja(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(Ja(i.charCodeAt(o)))return i.slice(0,o+1)}return""}var o4=/[\\/:\*\?"<>\|]/g,r4=/[/]/g,i4=/^(con|prn|aux|clock\$|nul|lpt[0-9]|com[0-9])(\.(.*?))?$/i;function NL(i,t=Ct){let e=t?o4:r4;return!(!i||i.length===0||/^\s+$/.test(i)||(e.lastIndex=0,e.test(i))||t&&i4.test(i)||i==="."||i===".."||t&&i[i.length-1]==="."||t&&i.length!==i.trim().length||i.length>255)}function Od(i,t,e,n=!1){let o=n?Ve.sep:Xn;if(i===t)return!0;if(!i||!t||((i.indexOf("..")>=0||t.indexOf("..")>=0)&&(i=n?Ve.normalize(i):Ko(i),t=n?Ve.normalize(t):Ko(t)),t.length>i.length))return!1;if(e){if(!Qa(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 UL(i){return i>=65&&i<=90||i>=97&&i<=122}function FL(i,t=Ct){return t?UL(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}var $;(Oe=>(Oe.inMemory="inmemory",Oe.vscode="vscode",Oe.internal="private",Oe.walkThrough="walkThrough",Oe.walkThroughSnippet="walkThroughSnippet",Oe.http="http",Oe.https="https",Oe.file="file",Oe.mailto="mailto",Oe.untitled="untitled",Oe.data="data",Oe.command="command",Oe.vscodeRemote="vscode-remote",Oe.vscodeRemoteResource="vscode-remote-resource",Oe.vscodeManagedRemoteResource="vscode-managed-remote-resource",Oe.vscodeUserData="vscode-userdata",Oe.vscodeCustomEditor="vscode-custom-editor",Oe.vscodeNotebookCell="vscode-notebook-cell",Oe.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",Oe.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",Oe.vscodeNotebookCellOutput="vscode-notebook-cell-output",Oe.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",Oe.vscodeNotebookMetadata="vscode-notebook-metadata",Oe.vscodeInteractiveInput="vscode-interactive-input",Oe.vscodeSettings="vscode-settings",Oe.vscodeWorkspaceTrust="vscode-workspace-trust",Oe.vscodeTerminal="vscode-terminal",Oe.vscodeImageCarousel="vscode-image-carousel",Oe.vscodeChatCodeBlock="vscode-chat-code-block",Oe.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",Oe.vscodeChatEditor="vscode-chat-editor",Oe.vscodeChatInput="chatSessionInput",Oe.sessionsChatInput="sessions-chat",Oe.vscodeLocalChatSession="vscode-chat-session",Oe.vscodeChatResponseResource="vscode-chat-response-resource",Oe.webviewPanel="webview-panel",Oe.vscodeWebview="vscode-webview",Oe.vscodeBrowser="vscode-browser",Oe.extension="extension",Oe.vscodeFileResource="vscode-file",Oe.tmp="tmp",Oe.vsls="vsls",Oe.vscodeSourceControl="vscode-scm",Oe.commentsInput="comment",Oe.codeSetting="code-setting",Oe.outputChannel="output",Oe.accessibleView="accessible-view",Oe.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",Oe.chatEditingModel="chat-editing-text-model",Oe.copilotPr="copilot-pr"))($||={});function Zb(i,t){return y.isUri(i)?Bn(i.scheme,t):Qa(i,t+":")}function Tk(i,...t){return t.some(e=>Zb(i,e))}var s4="tkn",Sk=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=Ve.join(e??"/",l4(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return Ve.join(this._serverRootPath,$.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 Id(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+=`&${s4}=${encodeURIComponent(r)}`),y.from({scheme:ar?this._preferredWebSchema:$.vscodeRemoteResource,authority:`${n}:${o}`,path:ar?(window.location.pathname+"/"+this._remoteResourcesPath).replace(/\/\/+/g,"/"):this._remoteResourcesPath,query:s})}},a4=new Sk;function l4(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var VL="vs/../../node_modules",BL="vs/../../node_modules.asar";var Ek="vscode-app",Ck=class i{static{this.FALLBACK_AUTHORITY=Ek}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===$.vscodeRemote?a4.rewrite(t):t.scheme===$.file&&(hf||QO===`${$.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:$.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===$.vscodeFileResource?t.with({scheme:$.file,authority:t.authority!==i.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(y.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return y.joinPath(y.parse(e,!0),t);let n=yu(e,t);return y.file(n)}throw new Error("Cannot determine URI for module id!")}},ey=new Ck,SG=Object.freeze({"Cache-Control":"no-cache, no-store"}),CG=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),d4;(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:y.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})(d4||={});function Pr(i){return bf(i,!0)}var Vi=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:ei(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===$.file)return Od(Pr(t),Pr(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(WL(t.authority,e.authority))return Od(t.path,e.path,this._ignorePathCasing(t),!0)&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return y.joinPath(t,...e)}basenameOrAuthority(t){return tt(t)||t.authority}basename(t,e){return Ve.basename(t.path,e)}extname(t){return Ve.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===$.file?e=y.file(Li(Pr(t))).path:(e=Ve.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===$.file?e=y.file(Ko(Pr(t))).path:e=Ve.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!WL(t.authority,e.authority))return;if(t.scheme===$.file){let r=Ms(Pr(t),Pr(e));return Ct?Xb(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 Ve.relative(n,o)}resolvePath(t,e){if(t.scheme===$.file){let n=y.file(uL(Pr(t),e));return t.with({authority:n.authority,path:n.path})}return e=LL(e),t.with({path:Ve.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&Bn(t,e)}hasTrailingPathSeparator(t,e=Xn){if(t.scheme===$.file){let n=Pr(t);return n.length>xk(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=Xn){return $L(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=Xn){let n=!1;if(t.scheme===$.file){let o=Pr(t);n=o!==void 0&&o.length===xk(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&&!$L(t,e)?t.with({path:t.path+"/"}):t}},pt=new Vi(()=>!1),wk=new Vi(i=>i.scheme===$.file?!lo:!0),kk=new Vi(i=>!0),nn=pt.isEqual.bind(pt),zL=pt.isEqualOrParent.bind(pt),DG=pt.getComparisonKey.bind(pt),Sf=pt.basenameOrAuthority.bind(pt),tt=pt.basename.bind(pt),ty=pt.extname.bind(pt),Go=pt.dirname.bind(pt),Lt=pt.joinPath.bind(pt),c4=pt.normalizePath.bind(pt),Cf=pt.relativePath.bind(pt),RG=pt.resolvePath.bind(pt),qL=pt.isAbsolutePath.bind(pt),WL=pt.isEqualAuthority.bind(pt),$L=pt.hasTrailingPathSeparator.bind(pt),MG=pt.removeTrailingPathSeparator.bind(pt),AG=pt.addTrailingPathSeparator.bind(pt);var u4;(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})(u4||={});var KL=Symbol("MicrotaskDelay");function _r(i){return!!i&&typeof i.then=="function"}function p4(i){let t=new Re,e=i(t.token),n=!1,o=new Promise((r,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new ct)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?wb(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 Xa(i,t,e){return new Promise((n,o)=>{let r=t.onCancellationRequested(()=>{r.dispose(),n(e)});i.then(n,o).finally(()=>r.dispose())})}function Bi(i,t){return new Promise((e,n)=>{let o=t.onCancellationRequested(()=>{o.dispose(),n(new ct)});i.then(e,n).finally(()=>o.dispose())})}function on(i){return new Promise((t,e)=>{let n=i();_r(n)?n.then(t,e):t(n)})}function Ak(){let i,t;return{promise:new Promise((n,o)=>{i=n,t=o}),resolve:i,reject:t}}var Pk=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new Re}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()}},ry=class{constructor(){this.current=Promise.resolve(null)}queue(t){return this.current=this.current.then(()=>t(),()=>t())}};var Ya=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()}},m4=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},g4=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},_k=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===KL?g4(n):m4(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new ct),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},iy=class{constructor(t){this.delayer=new _k(t),this.throttler=new Pk}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()}},Ln=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 Pn(i,t){return t?new Promise((e,n)=>{let o=setTimeout(()=>{r.dispose(),e()},i),r=t.onCancellationRequested(()=>{clearTimeout(o),r.dispose(),n(new ct)})}):p4(e=>Pn(i,e))}function GL(i,t=0,e){let n=setTimeout(()=>{i(),e&&o.dispose()},t),o=Y(()=>{clearTimeout(n),e?.delete(o)});return e?.add(o),o}var GG=2**31-1;var Dk=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new T}whenIdle(){return this.size>0?Le.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()}},Tf=class extends Dk{constructor(){super(1)}};var sy=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 pn;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=pt){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=pt){let o=n.getComparisonKey(t),r=this.queues.get(o);if(!r){r=new Tf;let s=this.drainListenerCount++,a=Le.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 ay=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 Pt("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();let o=n.setInterval(()=>{t()},e);this.disposable=Y(()=>{n.clearInterval(o),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}},Nn=class{constructor(t,e){this.timeoutToken=void 0,this.runner=t,this.timeout=e,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=void 0)}schedule(t=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,t)}get delay(){return this.timeout}set delay(t){this.timeout=t}isScheduled(){return this.timeoutToken!==void 0}flush(){this.isScheduled()&&(this.cancel(),this.doRun())}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){this.runner?.()}};var Ok,oy;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?oy=(t,e,n)=>{Mb(()=>{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)}}}:oy=(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))}}},Ok=(t,e)=>oy(globalThis,t,e)})();var Rk=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=oy(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}},ly=class extends Rk{constructor(t){super(globalThis,t)}};var pn=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 ct)}},Za;(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})(Za||={});var Os=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 T,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=()=>{},n.emitMany=()=>{},n.reject=()=>{}}})}[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 Le.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 dy=class{constructor(t){this._deferred=new pn;this._asyncIterable=new Os(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 Mk=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 Pt("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 pn;return this._unsatisfiedConsumers.push(t),t.p}}},xu=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new Mk;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 pn,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}};var jL=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};function Lk(i,t,e,n){if(!i||n>200)return null;if(typeof i=="object"){if(i.$mid===1)return e?y.revive(t.transformIncoming(i)):t.transformIncoming(i);if(i instanceof ee)return null;for(let o in i)if(Object.hasOwnProperty.call(i,o)){let r=Lk(i[o],t,e,n+1);r!==null&&(i[o]=r)}}return null}function Ld(i,t){let e=Lk(i,t,!1,0);return e===null?i:e}function QL(i,t){let e=Lk(i,t,!0,0);return e===null?i:e}var Ef=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):_t(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)}},cy=class extends Ef{constructor(){super(),this._hasErr=!0,this._err=new ct}};function Nk(i,t){try{return JSON.stringify(i,t)}catch{return"null"}}var Fk="$$ref$$",f4={[Fk]:-1};function JL(i,t=null,e=!1){let n=[];return{jsonString:(e?Nk:JSON.stringify)(i,(r,s)=>{if(typeof s>"u")return f4;if(typeof s=="object"){if(s instanceof ee){let a=n.push(s)-1;return{[Fk]:a}}if(t)return t(r,s)}return s}),referencedBuffers:n}}function eN(i,t,e){return JSON.parse(i,(n,o)=>{if(o){let r=o[Fk];if(typeof r=="number")return t[r];if(e&&o.$mid===1)return e.transformIncoming(o)}return o})}function YL(i,t){return JSON.stringify(i,t)}function h4(i){return i?(t,e)=>e&&e.$mid===1?i.transformOutgoing(e):e:null}var v4=Symbol.for("rpcProtocol"),b4=Symbol.for("rpcProxy"),XL,ZL,uy=class i extends(ZL=U,XL=v4,ZL){constructor(e,n=null,o=null){super();this[XL]=!0;this._onDidChangeResponsiveState=this._register(new T);this.onDidChangeResponsiveState=this._onDidChangeResponsiveState.event;this._protocol=e,this._logger=n,this._uriTransformer=o,this._uriReplacer=h4(this._uriTransformer),this._isDisposed=!1,this._locals=[],this._proxies=[];for(let r=0,s=yf.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 Nn(()=>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(Dw())}),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?Ld(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===b4?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=rn.read(e,0),r=o.readUInt8(),s=o.readUInt32();switch(r){case 1:case 2:{let{rpcId:a,method:l,args:d}=jo.deserializeRequestJSONArgs(o);this._uriTransformer&&(d=Ld(d,this._uriTransformer)),this._receiveRequest(n,s,a,l,d,r===2);break}case 3:case 4:{let{rpcId:a,method:l,args:d}=jo.deserializeRequestMixedArgs(o);this._uriTransformer&&(d=Ld(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=jo.deserializeReplyOKJSON(o);this._uriTransformer&&(a=Ld(a,this._uriTransformer)),this._receiveReply(n,s,a);break}case 10:{let a=jo.deserializeReplyOKJSONWithBuffers(o,this._uriTransformer);this._receiveReply(n,s,a);break}case 8:{let a=jo.deserializeReplyOKVSBuffer(o);this._receiveReply(n,s,a);break}case 11:{let a=jo.deserializeReplyErrError(o);this._uriTransformer&&(a=Ld(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 ${If(o)}.${r}(`,s);let l=String(n),d,c;if(a){let m=new Re;s.push(m.token),d=this._invokeHandler(o,r,s),c=()=>m.cancel()}else d=this._invokeHandler(o,r,s);c&&(this._cancelInvokedHandlers[l]=c);let u=jo.serializeAcknowledged(n);this._logger?.logOutgoing(u.byteLength,n,1,"ack"),this._protocol.send(u),d.then(m=>{delete this._cancelInvokedHandlers[l];let g=jo.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=jo.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),r=this._cancelInvokedHandlers[o];delete this._cancelInvokedHandlers[o],r?.()}_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 "+If(e));let s=r[n];if(typeof s!="function")throw new Error("Unknown method "+n+" on actor "+If(e));return s.apply(r,o)}_remoteCall(e,n,o){if(this._isDisposed)return new cy;let r=null;if(o.length>0&&ve.isCancellationToken(o[o.length-1])&&(r=o.pop()),r&&r.isCancellationRequested)return Promise.reject(Dw());let s=jo.serializeRequestArguments(o,this._uriReplacer),a=++this._lastMessageId,l=String(a),d=new Ef,c=new G;r&&c.add(r.onCancellationRequested(()=>{let m=jo.serializeCancel(a);this._logger?.logOutgoing(m.byteLength,a,0,"cancel"),this._protocol.send(m)})),this._pendingRPCReplies[l]=new Uk(d,c),this._onWillSendRequest(a);let u=jo.serializeRequest(a,e,n,s,!!r);return this._logger?.logOutgoing(u.byteLength,a,0,`request: ${If(e)}.${n}(`,o),this._protocol.send(u),d}},Uk=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()}},rn=class i{static alloc(t,e,n){let o=new i(ee.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 Vt(eN(s,a,null));break}case 4:e[n]=void 0;break}return e}};var jo=class{static _useMixedArgSerialization(t){for(let e=0,n=t.length;e<n;e++)if(t[e]instanceof ee||t[e]instanceof Vt||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 ee)n[o]={type:2,value:s};else if(typeof s>"u")n[o]={type:4};else if(s instanceof Vt){let{jsonString:a,referencedBuffers:l}=JL(s.value,e);n[o]={type:3,value:ee.fromString(a),buffers:l}}else n[o]={type:1,value:ee.fromString(YL(s,e))}}return{type:1,args:n}}return{type:0,args:YL(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=ee.fromString(n),a=ee.fromString(o),l=0;l+=rn.sizeUInt8(),l+=rn.sizeShortString(s),l+=rn.sizeLongString(a);let d=rn.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=ee.fromString(n),a=0;a+=rn.sizeUInt8(),a+=rn.sizeShortString(s),a+=rn.sizeMixedArray(o);let l=rn.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 rn.alloc(5,t,0).buffer}static serializeCancel(t){return rn.alloc(6,t,0).buffer}static serializeReplyOK(t,e,n){if(typeof e>"u")return this._serializeReplyOKEmpty(t);if(e instanceof ee)return this._serializeReplyOKVSBuffer(t,e);if(e instanceof Vt){let{jsonString:o,referencedBuffers:r}=JL(e.value,n,!0);return this._serializeReplyOKJSONWithBuffers(t,o,r)}else return this._serializeReplyOKJSON(t,Nk(e,n))}static _serializeReplyOKEmpty(t){return rn.alloc(7,t,0).buffer}static _serializeReplyOKVSBuffer(t,e){let n=0;n+=rn.sizeVSBuffer(e);let o=rn.alloc(8,t,n);return o.writeVSBuffer(e),o.buffer}static deserializeReplyOKVSBuffer(t){return t.readVSBuffer()}static _serializeReplyOKJSON(t,e){let n=ee.fromString(e),o=0;o+=rn.sizeLongString(n);let r=rn.alloc(9,t,o);return r.writeLongString(n),r.buffer}static _serializeReplyOKJSONWithBuffers(t,e,n){let o=ee.fromString(e),r=0;r+=rn.sizeUInt32,r+=rn.sizeLongString(o);for(let a of n)r+=rn.sizeVSBuffer(a);let s=rn.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 Vt(eN(o,r,e))}static serializeReplyErr(t,e){let n=e?Nk(Di(e),null):void 0;if(typeof n!="string")return this._serializeReplyErrEmpty(t);let o=ee.fromString(n),r=0;r+=rn.sizeLongString(o);let s=rn.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 rn.alloc(12,t,0).buffer}};var ti;(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})(ti||={});var mn=D("instantiationService");function y4(i,t,e){t[ti.DI_TARGET]===t?t[ti.DI_DEPENDENCIES].push({id:i,index:e}):(t[ti.DI_DEPENDENCIES]=[{id:i,index:e}],t[ti.DI_TARGET]=t)}function D(i){if(ti.serviceIds.has(i))return ti.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");y4(t,e,o)};return t.toString=()=>i,ti.serviceIds.set(i,t),t}function wf(i){if(!i)return;let t=i.indexOf("+");return t<0?i:i.substr(0,t)}var py=["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 xe=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 Bn(n,o)}return t._lower===e._lower}static toKey(t){return typeof t=="string"?t.toLowerCase():t._lower}},So=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(xe.toKey(t))}delete(t){return this._set.delete(xe.toKey(t))}has(t){return this._set.has(xe.toKey(t))}},eo=class{constructor(){this._map=new Map}clear(){this._map.clear()}delete(t){this._map.delete(xe.toKey(t))}get(t){return this._map.get(xe.toKey(t))}has(t){return this._map.has(xe.toKey(t))}set(t,e){this._map.set(xe.toKey(t),e)}values(){return this._map.values()}forEach(t){this._map.forEach(t)}[Symbol.iterator](){return this._map[Symbol.iterator]()}},Su=class extends Error{constructor(t,e,n){let o=n&&e?.message?`${n}: ${e.message}`:n??e?.message;super(`Error in extension ${xe.toKey(t)}: ${o}`,{cause:e}),this.name="ExtensionError",this.extension=t,e?.stack&&(this.stack=e.stack)}};var Ej=D("IBuiltinExtensionsScannerService");function Hk(i,t){return t&&(i.stack||i.stacktrace)?p(116,null,nN(i),tN(i.stack)||tN(i.stacktrace)):nN(i)}function tN(i){return Array.isArray(i)?i.join(`
`):i}function nN(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 ni(i=null,t=!1){if(!i)return p(113,null);if(Array.isArray(i)){let e=ut(i),n=ni(e[0],t);return e.length>1?p(114,null,n,e.length):n}if(_e(i))return i;if(i.detail){let e=i.detail;if(e.error)return Hk(e.error,t);if(e.exception)return Hk(e.exception,t)}return i.stack?Hk(i,t):i.message?i.message:p(113,null)}function cr(i){return Bk(i,0)}function Bk(i,t){switch(typeof i){case"object":return i===null?Ls(349,t):Array.isArray(i)?x4(i,t):S4(i,t);case"string":return Cu(i,t);case"boolean":return I4(i,t);case"number":return Ls(i,t);case"undefined":return Ls(937,t);default:return Ls(617,t)}}function Ls(i,t){return(t<<5)-t+i|0}function I4(i,t){return Ls(i?433:863,t)}function Cu(i,t){t=Ls(149417,t);for(let e=0,n=i.length;e<n;e++)t=Ls(i.charCodeAt(e),t);return t}function x4(i,t){return t=Ls(104579,t),i.reduce((e,n)=>Bk(n,e),t)}function S4(i,t){return t=Ls(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=Cu(n,e),Bk(i[n],e)),t)}function Vk(i,t,e=32){let n=e-t,o=~((1<<n)-1);return(i<<t|(o&i)>>>n)>>>0}function kf(i,t=32){return i instanceof ArrayBuffer?$a(ee.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var oN=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(Ad(s))if(a+1<e){let d=t.charCodeAt(a+1);xf(d)?(a++,l=Qb(s,d)):l=65533}else{r=s;break}else xf(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()),kf(this._h0)+kf(this._h1)+kf(this._h2)+kf(this._h3)+kf(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,Vk(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=Vk(n,5)+l+a+d+t.getUint32(u*4,!1)&4294967295,a=s,s=r,r=Vk(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}};function Wk(...i){switch(i.length){case 1:return p(2680,null,i[0]);case 2:return p(2681,null,i[0],i[1]);case 3:return p(2682,null,i[0],i[1],i[2]);default:return}}var C4=p(2679,null),T4=p(2678,null),el=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 uu(`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(Wk("==","=~"));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(Wk("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(Wk("||"));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(C4);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(T4);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 Wn=new Map;Wn.set("false",!1);Wn.set("true",!0);Wn.set("isMac",cn);Wn.set("isLinux",lo);Wn.set("isWindows",Ct);Wn.set("isWeb",ar);Wn.set("isMacNative",cn&&!ar);Wn.set("isEdge",Ob);Wn.set("isFirefox",XO);Wn.set("isChrome",vf);Wn.set("isSafari",ZO);var E4=Object.prototype.hasOwnProperty;var w4={regexParsingWithErrorRecovery:!0},k4=p(2659,null),P4=p(2660,null),_4=p(2662,null),rN=p(2658,null),D4=p(2665,null),R4=p(2666,null),M4=p(2663,null),A4=p(2664,null),my=class i{constructor(t=w4){this._config=t;this._scanner=new el;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:k4,offset:0,lexeme:"",additionalInfo:P4});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?R4:void 0;throw this._parsingErrors.push({message:D4,offset:n.offset,lexeme:el.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]:Je.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:Je.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),co.INSTANCE;case 12:return this._advance(),Co.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,rN),e?.negate()}case 17:return this._advance(),Ud.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(),Je.true();case 12:return this._advance(),Je.false();case 0:{this._advance();let e=this._expr();return this._consume(1,rN),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 Of.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(el.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 Je.regex(e,u)}case 18:{let r=o.lexeme;this._advance();let s=null;if(!Ui(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 Of.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,_4);let o=this._value();return Je.notIn(e,o)}switch(this._peek().type){case 3:{this._advance();let o=this._value();if(this._previous().type===18)return Je.equals(e,o);switch(o){case"true":return Je.has(e);case"false":return Je.not(e);default:return Je.equals(e,o)}}case 4:{this._advance();let o=this._value();if(this._previous().type===18)return Je.notEquals(e,o);switch(o){case"true":return Je.not(e);case"false":return Je.has(e);default:return Je.notEquals(e,o)}}case 5:return this._advance(),Mf.create(e,this._value());case 6:return this._advance(),Af.create(e,this._value());case 7:return this._advance(),Tu.create(e,this._value());case 8:return this._advance(),Rf.create(e,this._value());case 13:return this._advance(),Je.in(e,this._value());default:return Je.has(e)}}case 20:throw this._parsingErrors.push({message:M4,offset:t.offset,lexeme:"",additionalInfo:A4}),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(2661,null,t,el.getLexeme(e)),r=e.offset,s=el.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}},Je=class{static false(){return co.INSTANCE}static true(){return Co.INSTANCE}static has(t){return Nd.create(t)}static equals(t,e){return _f.create(t,e)}static notEquals(t,e){return Df.create(t,e)}static regex(t,e){return Of.create(t,e)}static in(t,e){return gy.create(t,e)}static notIn(t,e){return fy.create(t,e)}static not(t){return Ud.create(t)}static and(...t){return hy.create(t,null,!0)}static or(...t){return Lf.create(t,null,!0)}static greater(t,e){return Tu.create(t,e)}static greaterEquals(t,e){return Rf.create(t,e)}static smaller(t,e){return Mf.create(t,e)}static smallerEquals(t,e){return Af.create(t,e)}static{this._parser=new my({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function sN(i){let t=new my({regexParsingWithErrorRecovery:!1});return i.map(e=>(t.parse(e),t.lexingErrors.length>0?t.lexingErrors.map(n=>({errorMessage:n.additionalInfo?p(2668,null,n.additionalInfo):p(2667,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 Pf(i,t){return i.cmp(t)}var co=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 Co.INSTANCE}},Co=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 co.INSTANCE}},Nd=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=Wn.get(t);return typeof n=="boolean"?n?Co.INSTANCE:co.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:lN(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Wn.get(this.key);return typeof t=="boolean"?t?Co.INSTANCE:co.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=Ud.create(this.key,this)),this.negated}},_f=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?Nd.create(t,n):Ud.create(t,n);let o=Wn.get(t);return typeof o=="boolean"?e===(o?"true":"false")?Co.INSTANCE:co.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Wn.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?Co.INSTANCE:co.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=Df.create(this.key,this.value,this)),this.negated}},gy=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:Fd(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(Ct&&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(E4.call(e,n))return!0;if(Ct&&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=fy.create(this.key,this.valueKey)),this.negated}},fy=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=gy.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}},Df=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?Ud.create(t,n):Nd.create(t,n);let o=Wn.get(t);return typeof o=="boolean"?e===(o?"true":"false")?co.INSTANCE:Co.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Wn.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?co.INSTANCE:Co.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=_f.create(this.key,this.value,this)),this.negated}},Ud=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=Wn.get(t);return typeof n=="boolean"?n?co.INSTANCE:Co.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:lN(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Wn.get(this.key);return typeof t=="boolean"?t?co.INSTANCE:Co.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=Nd.create(this.key,this)),this.negated}};function vy(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):co.INSTANCE}var Tu=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 vy(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Af.create(this.key,this.value,this)),this.negated}},Rf=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 vy(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Mf.create(this.key,this.value,this)),this.negated}},Mf=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 vy(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Rf.create(this.key,this.value,this)),this.negated}},Af=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 vy(e,o=>new i(t,o,n))}cmp(t){return t.type!==this.type?this.type-t.type:Fd(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=Tu.create(this.key,this.value,this)),this.negated}},Of=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=$k.create(this)),this.negated}},$k=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 aN(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 hy=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=Pf(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=aN(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 co.INSTANCE;if(s.type===6){o.push(...s.expr);continue}o.push(s)}if(o.length===0&&r)return Co.INSTANCE;if(o.length!==0){if(o.length===1)return o[0];o.sort(Pf);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=Lf.create(s.expr.map(c=>i.create([c,a],null,n)),null,l);d&&(o.push(d),o.sort(Pf))}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 co.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=Lf.create(t,this,!0)}return this.negated}},Lf=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=Pf(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=aN(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 Co.INSTANCE;if(l.type===9){o=o.concat(l.expr);continue}o.push(l)}}if(o.length===0&&r)return co.INSTANCE;o.sort(Pf)}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 Co.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 iN(e))for(let s of iN(n))o.push(hy.create([r,s],null,!1));t.unshift(i.create(o,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},E=class i extends Nd{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 _f.create(this.key,t)}notEqualsTo(t){return Df.create(this.key,t)}greater(t){return Tu.create(this.key,t)}},Dr=D("contextKeyService");function lN(i,t){return i<t?-1:i>t?1:0}function Fd(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function iN(i){return i.type===9?i.expr:[i]}var ie=D("logService"),ur=D("loggerService");var Hd=(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))(Hd||{}),O4=3;function ku(i,t){return i!==0&&i<=t}function dN(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 Eu(i,t=!1){let e="";for(let n=0;n<i.length;n++){let o=i[n];if(o instanceof Error&&(o=ni(o,t)),typeof o=="object")try{o=JSON.stringify(o)}catch{}e+=(n>0?" ":"")+o}return e}var by=class extends U{constructor(){super(...arguments);this.level=O4;this._onDidChangeLogLevel=this._register(new T)}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 ku(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},wu=class extends by{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,Eu([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,Eu([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,Eu([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,Eu([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,Eu(o))}else this.log(5,Eu([e,...n]))}flush(){}};var yy=class extends by{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()}},Iy=class extends U{constructor(e,n,o){super();this.logLevel=e;this.logsHome=n;this._loggers=new Ue;this._onDidChangeLoggers=this._register(new T);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new T);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new T);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 _e(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=_e(e)?e:n?.id??cr(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 _e(e)?Lt(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(y.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 L4(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 sQ=new E("logLevel",L4(3));var Uo=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var cN=[];function qe(i,t,e){t instanceof Uo||(t=new Uo(t,[],!!e)),cN.push([i,t])}function uN(){return cN}var tl=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 at=D("IExtHostInitDataService");var zk=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},Nf=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 zk(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 N4=!1,xy=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},Sy=class i{constructor(t=new tl,e=!1,n,o=N4){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(mn,this),this._globalGraph=o?n?._globalGraph??new Nf(r=>r):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,kn(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)wb(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=Uf.traceInvocation(this._enableTracing,t),o=!1;try{return t({get:s=>{if(o)throw uu("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 Uo?(n=Uf.traceCreation(this._enableTracing,t.ctor),o=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=Uf.traceCreation(this._enableTracing,t),o=this._createInstance(t,e,n)),n.stop(),o}_createInstance(t,e=[],n){let o=ti.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 Uo)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 Uo?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 Nf(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 xy(o);for(let d of ti.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 Uo){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 xy(o);break}for(let{data:d}of l){if(this._getServiceInstanceOrDescriptor(d.id)instanceof Uo){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 Uo)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 ly(()=>{let c=a._createInstance(e,n,r);for(let[u,m]of l){let g=c[u];if(typeof g=="function")for(let v of m)v.disposable=g.apply(c,v.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 v=l.get(u);return v||(v=new Qn,l.set(u,v)),(I,S,w)=>{if(d.isInitialized)return d.value[u](I,S,w);{let P={listener:[I,S,w],disposable:void 0},A=v.push(P);return Y(()=>{A(),P.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 Uf=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 me=D("IExtHostRpcService"),Cy=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 nl=D("IURITransformerService"),Ty=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 qk=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]}},Kk=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?Gb(t,this._value,0,t.length,this._from,this._to):Md(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},Ey=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?Gb(t,this._value,0,t.length,this._from,this._to):Md(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var Ff=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 Ey(!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 Rd(t,this._value.scheme);if(this._states[this._stateIdx]===2)return Rd(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return ei(t,this._value.query);if(this._states[this._stateIdx]===5)return ei(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}},Ns=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}},Pu=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 Fo=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new Ff(t,e))}static forPaths(t=!1){return new i(new Ey(void 0,!t))}static forStrings(){return new i(new qk)}static forConfigKeys(){return new i(new Kk)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);Mw(n);for(let o of n)this.set(o,t)}else{let n=t.slice(0);Mw(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 Pu,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 Pu,o.left.segment=n.value()),r.push([-1,o]),o=o.left;else if(a<0)o.right||(o.right=new Pu,o.right.segment=n.value()),r.push([1,o]),o=o.right;else if(n.hasNext())n.next(),o.mid||(o.mid=new Pu,o.mid.segment=n.value()),r.push([0,o]),o=o.mid;else break}let s=Ns.unwrap(o.value);o.value=Ns.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 Ns.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:Cd(!1);case 1:Cd(!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=Ns.unwrap(n.value)||o,n=n.mid;else break}return n&&Ns.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?Ns.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,Ns.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 xt(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"?xt(n):n}),t}function Hf(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(pN.call(e,n)){let o=e[n];typeof o=="object"&&!Object.isFrozen(o)&&!wO(o)&&t.push(o)}}return i}var pN=Object.prototype.hasOwnProperty;function oi(i,t){return Gk(i,t,new Set)}function Gk(i,t,e){if(Ut(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(Gk(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)pN.call(i,r)&&(o[r]=Gk(i[r],t,e));return e.delete(i),o}return i}function Rr(i,t,e=!0){return st(i)?(st(t)&&Object.keys(t).forEach(n=>{n in i?e&&(st(i[n])&&st(t[n])?Rr(i[n],t[n],e):i[n]=t[n]):i[n]=t[n]}),i):t}function ht(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(!ht(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(),!ht(o,r))return!1;for(e=0;e<o.length;e++)if(!ht(i[o[e]],t[o[e]]))return!1}return!0}function _u(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 jk(i,t){let e=Object.create(null);for(let[n,o]of Object.entries(i))t(n,o)&&(e[n]=o);return e}var wy=class{constructor(){this._next=0}getNext(){return this._next++}};var To=D("fileService");var Du=(o=>(o[o.Unknown=0]="Unknown",o[o.File=1]="File",o[o.Directory=2]="Directory",o[o.SymbolicLink=64]="SymbolicLink",o))(Du||{}),Bf=(n=>(n[n.Readonly=1]="Readonly",n[n.Locked=2]="Locked",n[n.Executable=4]="Executable",n))(Bf||{});var Vf=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let o=new i(e.toString(),n);return Jk(o,n),o}};function Jk(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function Ru(i){if(!i)return"Unknown";if(i instanceof Vf)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 Bd(i){if(i instanceof Wi)return i.fileOperationResult;switch(Ru(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 mN=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new yt(()=>{let t=Fo.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new yt(()=>{let t=Fo.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new yt(()=>{let t=Fo.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"}};var Wi=class extends Error{constructor(e,n,o){super(e);this.fileOperationResult=n;this.options=o}};var gN="";function Yk(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var Qk=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 sr(t)||(t=0),t<i.KB?p(2874,null,t.toFixed(0)):t<i.MB?p(2876,null,(t/i.KB).toFixed(2)):t<i.GB?p(2877,null,(t/i.MB).toFixed(2)):t<i.TB?p(2875,null,(t/i.GB).toFixed(2)):p(2878,null,(t/i.TB).toFixed(2))}};var Py=(o=>(o[o.Ignore=0]="Ignore",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(Py||{});(a=>{let i="error",t="warning",e="warn",n="info",o="ignore";function r(l){return l?Bn(i,l)?3:Bn(t,l)||Bn(e,l)?2:Bn(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})(Py||={});var je=Py;var fN=je,hN=D("notificationService");var Mr=D("contextService");function vN(i){let t=i;return typeof t?.id=="string"&&y.isUri(t.uri)}function bN(i){let t=i;return typeof t?.id=="string"&&y.isUri(t.configPath)}function Xk(i){let t=i;return!!(t&&typeof t=="object"&&y.isUri(t.uri)&&typeof t.name=="string"&&typeof t.toResource=="function")}var _y=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=Fo.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=Fo.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}}},Wf=class{constructor(t,e){this.raw=e;this.uri=t.uri,this.index=t.index,this.name=t.name}toResource(t){return Lt(this.uri,t)}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}};function $f(i){return new Wf({uri:i,index:0,name:Sf(i)},{uri:i.toString()})}var yN="code-workspace",gJ=`.${yN}`,fJ=[{name:p(3496,null),extensions:[yN]}];var Dy=class{constructor(){this._systemSchemes=new Set(Object.keys($));this._providerInfo=new Map;this.extUri=new Vi(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)}},Ar=D("IExtHostFileSystemInfo");var Be=(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 My=Object.freeze({create:i=>No(i.map(t=>t.toString())).join(`\r
`),split:i=>i.split(`\r
`),parse:i=>My.split(i).filter(t=>!t.startsWith("#"))});var PJ=new Uint32Array(10);var _J=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),DJ=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),RJ=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]),MJ=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]);var LJ=new Er(1e4);var U4=new Er(1e4);function F4(i){return V4(i,"NFD",U4)}var H4=/[^\u0000-\u0080]/;function V4(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let o;return H4.test(i)?o=i.normalize(t):o=i,e.set(i,o),o}var B4=(function(){let i=new Er(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let o=F4(e).replace(t,""),r=(o.length===e.length?o:e).toLowerCase();return i.set(e,r),r}})();function xN(...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 zJ=CN.bind(void 0,!1),SN=CN.bind(void 0,!0);function CN(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=Qa(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function W4(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 $4(i,t){return i.length>t.length?null:Zk(i.toLowerCase(),t.toLowerCase(),0,0)}function Zk(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=Zk(i,t,e+1,n+1))?EN({start:n,end:n+1},o):null}return Zk(i,t,e,n+1)}function tP(i){return 97<=i&&i<=122}function Oy(i){return 65<=i&&i<=90}function nP(i){return 48<=i&&i<=57}function z4(i){return i===32||i===9||i===10||i===13}var q4=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>q4.add(i.charCodeAt(0)));function TN(i){return tP(i)||Oy(i)||nP(i)}function EN(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function wN(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if(Oy(n)||nP(n)||e>0&&!TN(i.charCodeAt(e-1)))return e}return i.length}function eP(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=eP(i,t,e+1,n+1);!o&&(r=wN(t,r))<t.length;)o=eP(i,t,e+1,r),r++;return o===null?null:EN({start:n,end:n+1},o)}}function K4(i){let t=0,e=0,n=0,o=0,r=0;for(let c=0;c<i.length;c++)r=i.charCodeAt(c),Oy(r)&&t++,tP(r)&&e++,TN(r)&&n++,nP(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 G4(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function j4(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:o}=i;return e>.2&&t<.8&&n>.6&&o<.2}function Q4(i){let t=0,e=0,n=0,o=0;for(let r=0;r<i.length;r++)n=i.charCodeAt(r),Oy(n)&&t++,tP(n)&&e++,z4(n)&&o++;return(t===0||e===0)&&o===0?i.length<=30:t<=5}function kN(i,t){if(!t||(t=t.trim(),t.length===0)||!Q4(i))return null;t.length>60&&(t=t.substring(0,60));let e=K4(t);if(!j4(e)){if(!G4(e))return null;t=t.toLowerCase()}let n=null,o=0;for(i=i.toLowerCase();o<t.length&&(n=eP(i,t,0,o))===null;)o=wN(t,o+1);return n}var qJ=xN(SN,kN,W4),KJ=xN(SN,kN,$4),GJ=new Er(1e4);var Ay=128;function oP(){let i=[],t=[];for(let e=0;e<=Ay;e++)t[e]=0;for(let e=0;e<=Ay;e++)i.push(t.slice(0));return i}function PN(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var jJ=PN(2*Ay),QJ=PN(2*Ay),JJ=oP(),YJ=oP(),XJ=oP();var J4;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(J4||={});var IN=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var rP=Object.create(null);function f(i,t){if(_e(t)){let e=rP[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return rP[i]=t,{id:i}}function _N(){return rP}var DN={add:f("add",6e4),plus:f("plus",6e4),gistNew:f("gist-new",6e4),repoCreate:f("repo-create",6e4),lightbulb:f("lightbulb",60001),lightBulb:f("light-bulb",60001),repo:f("repo",60002),repoDelete:f("repo-delete",60002),gistFork:f("gist-fork",60003),repoForked:f("repo-forked",60003),gitPullRequest:f("git-pull-request",60004),gitPullRequestAbandoned:f("git-pull-request-abandoned",60004),recordKeys:f("record-keys",60005),keyboard:f("keyboard",60005),tag:f("tag",60006),gitPullRequestLabel:f("git-pull-request-label",60006),tagAdd:f("tag-add",60006),tagRemove:f("tag-remove",60006),person:f("person",60007),personFollow:f("person-follow",60007),personOutline:f("person-outline",60007),personFilled:f("person-filled",60007),sourceControl:f("source-control",60008),mirror:f("mirror",60009),mirrorPublic:f("mirror-public",60009),star:f("star",60010),starAdd:f("star-add",60010),starDelete:f("star-delete",60010),starEmpty:f("star-empty",60010),comment:f("comment",60011),commentAdd:f("comment-add",60011),alert:f("alert",60012),warning:f("warning",60012),search:f("search",60013),searchSave:f("search-save",60013),logOut:f("log-out",60014),signOut:f("sign-out",60014),logIn:f("log-in",60015),signIn:f("sign-in",60015),eye:f("eye",60016),eyeUnwatch:f("eye-unwatch",60016),eyeWatch:f("eye-watch",60016),circleFilled:f("circle-filled",60017),primitiveDot:f("primitive-dot",60017),closeDirty:f("close-dirty",60017),debugBreakpoint:f("debug-breakpoint",60017),debugBreakpointDisabled:f("debug-breakpoint-disabled",60017),debugHint:f("debug-hint",60017),terminalDecorationSuccess:f("terminal-decoration-success",60017),primitiveSquare:f("primitive-square",60018),edit:f("edit",60019),pencil:f("pencil",60019),info:f("info",60020),issueOpened:f("issue-opened",60020),gistPrivate:f("gist-private",60021),gitForkPrivate:f("git-fork-private",60021),lock:f("lock",60021),mirrorPrivate:f("mirror-private",60021),close:f("close",60022),removeClose:f("remove-close",60022),x:f("x",60022),repoSync:f("repo-sync",60023),sync:f("sync",60023),clone:f("clone",60024),desktopDownload:f("desktop-download",60024),beaker:f("beaker",60025),microscope:f("microscope",60025),vm:f("vm",60026),deviceDesktop:f("device-desktop",60026),file:f("file",60027),more:f("more",60028),ellipsis:f("ellipsis",60028),kebabHorizontal:f("kebab-horizontal",60028),mailReply:f("mail-reply",60029),reply:f("reply",60029),organization:f("organization",60030),organizationFilled:f("organization-filled",60030),organizationOutline:f("organization-outline",60030),newFile:f("new-file",60031),fileAdd:f("file-add",60031),newFolder:f("new-folder",60032),fileDirectoryCreate:f("file-directory-create",60032),trash:f("trash",60033),trashcan:f("trashcan",60033),history:f("history",60034),clock:f("clock",60034),folder:f("folder",60035),fileDirectory:f("file-directory",60035),symbolFolder:f("symbol-folder",60035),logoGithub:f("logo-github",60036),markGithub:f("mark-github",60036),github:f("github",60036),terminal:f("terminal",60037),console:f("console",60037),repl:f("repl",60037),zap:f("zap",60038),symbolEvent:f("symbol-event",60038),error:f("error",60039),stop:f("stop",60039),variable:f("variable",60040),symbolVariable:f("symbol-variable",60040),array:f("array",60042),symbolArray:f("symbol-array",60042),symbolModule:f("symbol-module",60043),symbolPackage:f("symbol-package",60043),symbolNamespace:f("symbol-namespace",60043),symbolObject:f("symbol-object",60043),symbolMethod:f("symbol-method",60044),symbolFunction:f("symbol-function",60044),symbolConstructor:f("symbol-constructor",60044),symbolBoolean:f("symbol-boolean",60047),symbolNull:f("symbol-null",60047),symbolNumeric:f("symbol-numeric",60048),symbolNumber:f("symbol-number",60048),symbolStructure:f("symbol-structure",60049),symbolStruct:f("symbol-struct",60049),symbolParameter:f("symbol-parameter",60050),symbolTypeParameter:f("symbol-type-parameter",60050),symbolKey:f("symbol-key",60051),symbolText:f("symbol-text",60051),symbolReference:f("symbol-reference",60052),goToFile:f("go-to-file",60052),symbolEnum:f("symbol-enum",60053),symbolValue:f("symbol-value",60053),symbolRuler:f("symbol-ruler",60054),symbolUnit:f("symbol-unit",60054),activateBreakpoints:f("activate-breakpoints",60055),archive:f("archive",60056),arrowBoth:f("arrow-both",60057),arrowDown:f("arrow-down",60058),arrowLeft:f("arrow-left",60059),arrowRight:f("arrow-right",60060),arrowSmallDown:f("arrow-small-down",60061),arrowSmallLeft:f("arrow-small-left",60062),arrowSmallRight:f("arrow-small-right",60063),arrowSmallUp:f("arrow-small-up",60064),arrowUp:f("arrow-up",60065),bell:f("bell",60066),bold:f("bold",60067),book:f("book",60068),bookmark:f("bookmark",60069),debugBreakpointConditionalUnverified:f("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:f("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:f("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:f("debug-breakpoint-data-unverified",60072),debugBreakpointData:f("debug-breakpoint-data",60073),debugBreakpointDataDisabled:f("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:f("debug-breakpoint-log-unverified",60074),debugBreakpointLog:f("debug-breakpoint-log",60075),debugBreakpointLogDisabled:f("debug-breakpoint-log-disabled",60075),briefcase:f("briefcase",60076),broadcast:f("broadcast",60077),browser:f("browser",60078),bug:f("bug",60079),calendar:f("calendar",60080),caseSensitive:f("case-sensitive",60081),check:f("check",60082),checklist:f("checklist",60083),chevronDown:f("chevron-down",60084),chevronLeft:f("chevron-left",60085),chevronRight:f("chevron-right",60086),chevronUp:f("chevron-up",60087),chromeClose:f("chrome-close",60088),chromeMaximize:f("chrome-maximize",60089),chromeMinimize:f("chrome-minimize",60090),chromeRestore:f("chrome-restore",60091),circleOutline:f("circle-outline",60092),circle:f("circle",60092),debugBreakpointUnverified:f("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:f("terminal-decoration-incomplete",60092),circleSlash:f("circle-slash",60093),circuitBoard:f("circuit-board",60094),clearAll:f("clear-all",60095),clippy:f("clippy",60096),closeAll:f("close-all",60097),cloudDownload:f("cloud-download",60098),cloudUpload:f("cloud-upload",60099),code:f("code",60100),collapseAll:f("collapse-all",60101),colorMode:f("color-mode",60102),commentDiscussion:f("comment-discussion",60103),creditCard:f("credit-card",60105),dash:f("dash",60108),dashboard:f("dashboard",60109),database:f("database",60110),debugContinue:f("debug-continue",60111),debugDisconnect:f("debug-disconnect",60112),debugPause:f("debug-pause",60113),debugRestart:f("debug-restart",60114),debugStart:f("debug-start",60115),debugStepInto:f("debug-step-into",60116),debugStepOut:f("debug-step-out",60117),debugStepOver:f("debug-step-over",60118),debugStop:f("debug-stop",60119),debug:f("debug",60120),deviceCameraVideo:f("device-camera-video",60121),deviceCamera:f("device-camera",60122),deviceMobile:f("device-mobile",60123),diffAdded:f("diff-added",60124),diffIgnored:f("diff-ignored",60125),diffModified:f("diff-modified",60126),diffRemoved:f("diff-removed",60127),diffRenamed:f("diff-renamed",60128),diff:f("diff",60129),diffSidebyside:f("diff-sidebyside",60129),discard:f("discard",60130),editorLayout:f("editor-layout",60131),emptyWindow:f("empty-window",60132),exclude:f("exclude",60133),extensions:f("extensions",60134),eyeClosed:f("eye-closed",60135),fileBinary:f("file-binary",60136),fileCode:f("file-code",60137),fileMedia:f("file-media",60138),filePdf:f("file-pdf",60139),fileSubmodule:f("file-submodule",60140),fileSymlinkDirectory:f("file-symlink-directory",60141),fileSymlinkFile:f("file-symlink-file",60142),fileZip:f("file-zip",60143),files:f("files",60144),filter:f("filter",60145),flame:f("flame",60146),foldDown:f("fold-down",60147),foldUp:f("fold-up",60148),fold:f("fold",60149),folderActive:f("folder-active",60150),folderOpened:f("folder-opened",60151),gear:f("gear",60152),gift:f("gift",60153),gistSecret:f("gist-secret",60154),gist:f("gist",60155),gitCommit:f("git-commit",60156),gitCompare:f("git-compare",60157),compareChanges:f("compare-changes",60157),gitMerge:f("git-merge",60158),githubAction:f("github-action",60159),githubAlt:f("github-alt",60160),globe:f("globe",60161),grabber:f("grabber",60162),graph:f("graph",60163),gripper:f("gripper",60164),heart:f("heart",60165),home:f("home",60166),horizontalRule:f("horizontal-rule",60167),hubot:f("hubot",60168),inbox:f("inbox",60169),issueReopened:f("issue-reopened",60171),issues:f("issues",60172),italic:f("italic",60173),jersey:f("jersey",60174),json:f("json",60175),bracket:f("bracket",60175),kebabVertical:f("kebab-vertical",60176),key:f("key",60177),law:f("law",60178),lightbulbAutofix:f("lightbulb-autofix",60179),linkExternal:f("link-external",60180),link:f("link",60181),listOrdered:f("list-ordered",60182),listUnordered:f("list-unordered",60183),liveShare:f("live-share",60184),loading:f("loading",60185),location:f("location",60186),mailRead:f("mail-read",60187),mail:f("mail",60188),markdown:f("markdown",60189),megaphone:f("megaphone",60190),mention:f("mention",60191),milestone:f("milestone",60192),gitPullRequestMilestone:f("git-pull-request-milestone",60192),mortarBoard:f("mortar-board",60193),move:f("move",60194),multipleWindows:f("multiple-windows",60195),mute:f("mute",60196),noNewline:f("no-newline",60197),note:f("note",60198),octoface:f("octoface",60199),openPreview:f("open-preview",60200),package:f("package",60201),paintcan:f("paintcan",60202),pin:f("pin",60203),play:f("play",60204),run:f("run",60204),plug:f("plug",60205),preserveCase:f("preserve-case",60206),preview:f("preview",60207),project:f("project",60208),pulse:f("pulse",60209),question:f("question",60210),quote:f("quote",60211),radioTower:f("radio-tower",60212),reactions:f("reactions",60213),references:f("references",60214),refresh:f("refresh",60215),regex:f("regex",60216),remoteExplorer:f("remote-explorer",60217),remote:f("remote",60218),remove:f("remove",60219),replaceAll:f("replace-all",60220),replace:f("replace",60221),repoClone:f("repo-clone",60222),repoForcePush:f("repo-force-push",60223),repoPull:f("repo-pull",60224),repoPush:f("repo-push",60225),report:f("report",60226),requestChanges:f("request-changes",60227),rocket:f("rocket",60228),rootFolderOpened:f("root-folder-opened",60229),rootFolder:f("root-folder",60230),rss:f("rss",60231),ruby:f("ruby",60232),saveAll:f("save-all",60233),saveAs:f("save-as",60234),save:f("save",60235),screenFull:f("screen-full",60236),screenNormal:f("screen-normal",60237),searchStop:f("search-stop",60238),server:f("server",60240),settingsGear:f("settings-gear",60241),settings:f("settings",60242),shield:f("shield",60243),smiley:f("smiley",60244),sortPrecedence:f("sort-precedence",60245),splitHorizontal:f("split-horizontal",60246),splitVertical:f("split-vertical",60247),squirrel:f("squirrel",60248),starFull:f("star-full",60249),starHalf:f("star-half",60250),symbolClass:f("symbol-class",60251),symbolColor:f("symbol-color",60252),symbolConstant:f("symbol-constant",60253),symbolEnumMember:f("symbol-enum-member",60254),symbolField:f("symbol-field",60255),symbolFile:f("symbol-file",60256),symbolInterface:f("symbol-interface",60257),symbolKeyword:f("symbol-keyword",60258),symbolMisc:f("symbol-misc",60259),symbolOperator:f("symbol-operator",60260),symbolProperty:f("symbol-property",60261),wrench:f("wrench",60261),wrenchSubaction:f("wrench-subaction",60261),symbolSnippet:f("symbol-snippet",60262),tasklist:f("tasklist",60263),telescope:f("telescope",60264),textSize:f("text-size",60265),threeBars:f("three-bars",60266),thumbsdown:f("thumbsdown",60267),thumbsup:f("thumbsup",60268),tools:f("tools",60269),triangleDown:f("triangle-down",60270),triangleLeft:f("triangle-left",60271),triangleRight:f("triangle-right",60272),triangleUp:f("triangle-up",60273),twitter:f("twitter",60274),unfold:f("unfold",60275),unlock:f("unlock",60276),unmute:f("unmute",60277),unverified:f("unverified",60278),verified:f("verified",60279),versions:f("versions",60280),vmActive:f("vm-active",60281),vmOutline:f("vm-outline",60282),vmRunning:f("vm-running",60283),watch:f("watch",60284),whitespace:f("whitespace",60285),wholeWord:f("whole-word",60286),window:f("window",60287),wordWrap:f("word-wrap",60288),zoomIn:f("zoom-in",60289),zoomOut:f("zoom-out",60290),listFilter:f("list-filter",60291),listFlat:f("list-flat",60292),listSelection:f("list-selection",60293),selection:f("selection",60293),listTree:f("list-tree",60294),debugBreakpointFunctionUnverified:f("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:f("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:f("debug-breakpoint-function-disabled",60296),debugStackframeActive:f("debug-stackframe-active",60297),circleSmallFilled:f("circle-small-filled",60298),debugStackframeDot:f("debug-stackframe-dot",60298),terminalDecorationMark:f("terminal-decoration-mark",60298),debugStackframe:f("debug-stackframe",60299),debugStackframeFocused:f("debug-stackframe-focused",60299),debugBreakpointUnsupported:f("debug-breakpoint-unsupported",60300),symbolString:f("symbol-string",60301),debugReverseContinue:f("debug-reverse-continue",60302),debugStepBack:f("debug-step-back",60303),debugRestartFrame:f("debug-restart-frame",60304),debugAlt:f("debug-alt",60305),callIncoming:f("call-incoming",60306),callOutgoing:f("call-outgoing",60307),menu:f("menu",60308),expandAll:f("expand-all",60309),feedback:f("feedback",60310),gitPullRequestReviewer:f("git-pull-request-reviewer",60310),groupByRefType:f("group-by-ref-type",60311),ungroupByRefType:f("ungroup-by-ref-type",60312),account:f("account",60313),gitPullRequestAssignee:f("git-pull-request-assignee",60313),bellDot:f("bell-dot",60314),debugConsole:f("debug-console",60315),library:f("library",60316),output:f("output",60317),runAll:f("run-all",60318),syncIgnored:f("sync-ignored",60319),pinned:f("pinned",60320),githubInverted:f("github-inverted",60321),serverProcess:f("server-process",60322),serverEnvironment:f("server-environment",60323),pass:f("pass",60324),issueClosed:f("issue-closed",60324),stopCircle:f("stop-circle",60325),playCircle:f("play-circle",60326),record:f("record",60327),debugAltSmall:f("debug-alt-small",60328),vmConnect:f("vm-connect",60329),cloud:f("cloud",60330),merge:f("merge",60331),export:f("export",60332),graphLeft:f("graph-left",60333),magnet:f("magnet",60334),notebook:f("notebook",60335),redo:f("redo",60336),checkAll:f("check-all",60337),pinnedDirty:f("pinned-dirty",60338),passFilled:f("pass-filled",60339),circleLargeFilled:f("circle-large-filled",60340),circleLarge:f("circle-large",60341),circleLargeOutline:f("circle-large-outline",60341),combine:f("combine",60342),gather:f("gather",60342),table:f("table",60343),variableGroup:f("variable-group",60344),typeHierarchy:f("type-hierarchy",60345),typeHierarchySub:f("type-hierarchy-sub",60346),typeHierarchySuper:f("type-hierarchy-super",60347),gitPullRequestCreate:f("git-pull-request-create",60348),runAbove:f("run-above",60349),runBelow:f("run-below",60350),notebookTemplate:f("notebook-template",60351),debugRerun:f("debug-rerun",60352),workspaceTrusted:f("workspace-trusted",60353),workspaceUntrusted:f("workspace-untrusted",60354),workspaceUnknown:f("workspace-unknown",60355),terminalCmd:f("terminal-cmd",60356),terminalDebian:f("terminal-debian",60357),terminalLinux:f("terminal-linux",60358),terminalPowershell:f("terminal-powershell",60359),terminalTmux:f("terminal-tmux",60360),terminalUbuntu:f("terminal-ubuntu",60361),terminalBash:f("terminal-bash",60362),arrowSwap:f("arrow-swap",60363),copy:f("copy",60364),personAdd:f("person-add",60365),filterFilled:f("filter-filled",60366),wand:f("wand",60367),debugLineByLine:f("debug-line-by-line",60368),inspect:f("inspect",60369),layers:f("layers",60370),layersDot:f("layers-dot",60371),layersActive:f("layers-active",60372),compass:f("compass",60373),compassDot:f("compass-dot",60374),compassActive:f("compass-active",60375),azure:f("azure",60376),issueDraft:f("issue-draft",60377),gitPullRequestClosed:f("git-pull-request-closed",60378),gitPullRequestDraft:f("git-pull-request-draft",60379),debugAll:f("debug-all",60380),debugCoverage:f("debug-coverage",60381),runErrors:f("run-errors",60382),folderLibrary:f("folder-library",60383),debugContinueSmall:f("debug-continue-small",60384),beakerStop:f("beaker-stop",60385),graphLine:f("graph-line",60386),graphScatter:f("graph-scatter",60387),pieChart:f("pie-chart",60388),bracketDot:f("bracket-dot",60389),bracketError:f("bracket-error",60390),lockSmall:f("lock-small",60391),azureDevops:f("azure-devops",60392),verifiedFilled:f("verified-filled",60393),newline:f("newline",60394),layout:f("layout",60395),layoutActivitybarLeft:f("layout-activitybar-left",60396),layoutActivitybarRight:f("layout-activitybar-right",60397),layoutPanelLeft:f("layout-panel-left",60398),layoutPanelCenter:f("layout-panel-center",60399),layoutPanelJustify:f("layout-panel-justify",60400),layoutPanelRight:f("layout-panel-right",60401),layoutPanel:f("layout-panel",60402),layoutSidebarLeft:f("layout-sidebar-left",60403),layoutSidebarRight:f("layout-sidebar-right",60404),layoutStatusbar:f("layout-statusbar",60405),layoutMenubar:f("layout-menubar",60406),layoutCentered:f("layout-centered",60407),target:f("target",60408),indent:f("indent",60409),recordSmall:f("record-small",60410),errorSmall:f("error-small",60411),terminalDecorationError:f("terminal-decoration-error",60411),arrowCircleDown:f("arrow-circle-down",60412),arrowCircleLeft:f("arrow-circle-left",60413),arrowCircleRight:f("arrow-circle-right",60414),arrowCircleUp:f("arrow-circle-up",60415),layoutSidebarRightOff:f("layout-sidebar-right-off",60416),layoutPanelOff:f("layout-panel-off",60417),layoutSidebarLeftOff:f("layout-sidebar-left-off",60418),blank:f("blank",60419),heartFilled:f("heart-filled",60420),map:f("map",60421),mapHorizontal:f("map-horizontal",60421),foldHorizontal:f("fold-horizontal",60421),mapFilled:f("map-filled",60422),mapHorizontalFilled:f("map-horizontal-filled",60422),foldHorizontalFilled:f("fold-horizontal-filled",60422),circleSmall:f("circle-small",60423),bellSlash:f("bell-slash",60424),bellSlashDot:f("bell-slash-dot",60425),commentUnresolved:f("comment-unresolved",60426),gitPullRequestGoToChanges:f("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:f("git-pull-request-new-changes",60428),searchFuzzy:f("search-fuzzy",60429),commentDraft:f("comment-draft",60430),send:f("send",60431),sparkle:f("sparkle",60432),insert:f("insert",60433),mic:f("mic",60434),thumbsdownFilled:f("thumbsdown-filled",60435),thumbsupFilled:f("thumbsup-filled",60436),coffee:f("coffee",60437),snake:f("snake",60438),game:f("game",60439),vr:f("vr",60440),chip:f("chip",60441),piano:f("piano",60442),music:f("music",60443),micFilled:f("mic-filled",60444),repoFetch:f("repo-fetch",60445),copilot:f("copilot",60446),lightbulbSparkle:f("lightbulb-sparkle",60447),robot:f("robot",60448),sparkleFilled:f("sparkle-filled",60449),diffSingle:f("diff-single",60450),diffMultiple:f("diff-multiple",60451),surroundWith:f("surround-with",60452),share:f("share",60453),gitStash:f("git-stash",60454),gitStashApply:f("git-stash-apply",60455),gitStashPop:f("git-stash-pop",60456),vscode:f("vscode",60457),vscodeInsiders:f("vscode-insiders",60458),codeOss:f("code-oss",60459),runCoverage:f("run-coverage",60460),runAllCoverage:f("run-all-coverage",60461),coverage:f("coverage",60462),githubProject:f("github-project",60463),mapVertical:f("map-vertical",60464),foldVertical:f("fold-vertical",60464),mapVerticalFilled:f("map-vertical-filled",60465),foldVerticalFilled:f("fold-vertical-filled",60465),goToSearch:f("go-to-search",60466),percentage:f("percentage",60467),sortPercentage:f("sort-percentage",60467),attach:f("attach",60468),goToEditingSession:f("go-to-editing-session",60469),editSession:f("edit-session",60470),codeReview:f("code-review",60471),copilotWarning:f("copilot-warning",60472),python:f("python",60473),copilotLarge:f("copilot-large",60474),copilotWarningLarge:f("copilot-warning-large",60475),keyboardTab:f("keyboard-tab",60476),copilotBlocked:f("copilot-blocked",60477),copilotNotConnected:f("copilot-not-connected",60478),flag:f("flag",60479),lightbulbEmpty:f("lightbulb-empty",60480),symbolMethodArrow:f("symbol-method-arrow",60481),copilotUnavailable:f("copilot-unavailable",60482),repoPinned:f("repo-pinned",60483),keyboardTabAbove:f("keyboard-tab-above",60484),keyboardTabBelow:f("keyboard-tab-below",60485),gitPullRequestDone:f("git-pull-request-done",60486),mcp:f("mcp",60487),extensionsLarge:f("extensions-large",60488),layoutPanelDock:f("layout-panel-dock",60489),layoutSidebarLeftDock:f("layout-sidebar-left-dock",60490),layoutSidebarRightDock:f("layout-sidebar-right-dock",60491),copilotInProgress:f("copilot-in-progress",60492),copilotError:f("copilot-error",60493),copilotSuccess:f("copilot-success",60494),chatSparkle:f("chat-sparkle",60495),searchSparkle:f("search-sparkle",60496),editSparkle:f("edit-sparkle",60497),copilotSnooze:f("copilot-snooze",60498),sendToRemoteAgent:f("send-to-remote-agent",60499),commentDiscussionSparkle:f("comment-discussion-sparkle",60500),chatSparkleWarning:f("chat-sparkle-warning",60501),chatSparkleError:f("chat-sparkle-error",60502),collection:f("collection",60503),newCollection:f("new-collection",60504),thinking:f("thinking",60505),build:f("build",60506),commentDiscussionQuote:f("comment-discussion-quote",60507),cursor:f("cursor",60508),eraser:f("eraser",60509),fileText:f("file-text",60510),quotes:f("quotes",60512),rename:f("rename",60513),runWithDeps:f("run-with-deps",60514),debugConnected:f("debug-connected",60515),strikethrough:f("strikethrough",60516),openInProduct:f("open-in-product",60517),indexZero:f("index-zero",60518),agent:f("agent",60519),editCode:f("edit-code",60520),repoSelected:f("repo-selected",60521),skip:f("skip",60522),mergeInto:f("merge-into",60523),gitBranchChanges:f("git-branch-changes",60524),gitBranchStagedChanges:f("git-branch-staged-changes",60525),gitBranchConflicts:f("git-branch-conflicts",60526),gitBranch:f("git-branch",60527),gitBranchCreate:f("git-branch-create",60527),gitBranchDelete:f("git-branch-delete",60527),searchLarge:f("search-large",60528),terminalGitBash:f("terminal-git-bash",60529),windowActive:f("window-active",60530),forward:f("forward",60531),download:f("download",60532),clockface:f("clockface",60533),unarchive:f("unarchive",60534),sessionInProgress:f("session-in-progress",60535),collectionSmall:f("collection-small",60536),vmSmall:f("vm-small",60537),cloudSmall:f("cloud-small",60538),addSmall:f("add-small",60539),removeSmall:f("remove-small",60540),worktreeSmall:f("worktree-small",60541),worktree:f("worktree",60542),screenCut:f("screen-cut",60543),ask:f("ask",60544),openai:f("openai",60545),claude:f("claude",60546),openInWindow:f("open-in-window",60547),newSession:f("new-session",60548),terminalSecure:f("terminal-secure",60549),chatImport:f("chat-import",60550),chatExport:f("chat-export",60551),shareWindow:f("share-window",60552),circleSlashCompact:f("circle-slash-compact",60553),copilotCompact:f("copilot-compact",60554),folderOpenedCompact:f("folder-opened-compact",60555),folderCompact:f("folder-compact",60556),gearCompact:f("gear-compact",60557),gitBranchCompact:f("git-branch-compact",60558),libraryCompact:f("library-compact",60559),recordKeysCompact:f("record-keys-compact",60560),remoteCompact:f("remote-compact",60561),repoForkedCompact:f("repo-forked-compact",60562),repoCompact:f("repo-compact",60563),shieldCompact:f("shield-compact",60564),sparkleCompact:f("sparkle-compact",60565),symbolColorCompact:f("symbol-color-compact",60566),windowCompact:f("window-compact",60567),errorCompact:f("error-compact",60568),warningCompact:f("warning-compact",60569),passCompact:f("pass-compact",60570),important:f("important",60571),importantCompact:f("important-compact",60572),rocketCompact:f("rocket-compact",60573),unpin:f("unpin",60574),addCompact:f("add-compact",60575),attachCompact:f("attach-compact",60576),beakerCompact:f("beaker-compact",60577),checkCompact:f("check-compact",60578),checklistCompact:f("checklist-compact",60579),chevronDownCompact:f("chevron-down-compact",60580),chevronLeftCompact:f("chevron-left-compact",60581),chevronRightCompact:f("chevron-right-compact",60582),chevronUpCompact:f("chevron-up-compact",60583),circleFilledCompact:f("circle-filled-compact",60584),circleSmallFilledCompact:f("circle-small-filled-compact",60585),closeCompact:f("close-compact",60586),collapseAllCompact:f("collapse-all-compact",60587),commentCompact:f("comment-compact",60588),commentUnresolvedCompact:f("comment-unresolved-compact",60589),debugConnectedCompact:f("debug-connected-compact",60590),debugDisconnectCompact:f("debug-disconnect-compact",60591),editCompact:f("edit-compact",60592),fileMediaCompact:f("file-media-compact",60593),gitFetch:f("git-fetch",60594),lightbulbCompact:f("lightbulb-compact",60595),loadingCompact:f("loading-compact",60596),passFilledCompact:f("pass-filled-compact",60597),projectCompact:f("project-compact",60598),refreshCompact:f("refresh-compact",60599),searchCompact:f("search-compact",60600),sessionInProgressCompact:f("session-in-progress-compact",60601),syncCompact:f("sync-compact",60602),terminalCompact:f("terminal-compact",60603),vmPending:f("vm-pending",60604),worktreeCompact:f("worktree-compact",60605),developerTools:f("developer-tools",60606),cloudCompact:f("cloud-compact",60607),agentCompact:f("agent-compact",60608),askCompact:f("ask-compact",60609),settingsCompact:f("settings-compact",60610),vmCompact:f("vm-compact",60611),runCompact:f("run-compact",60612),gitPullRequestComment:f("git-pull-request-comment",60613),gitPullRequestError:f("git-pull-request-error",60614),rightPanelHide:f("right-panel-hide",60615),rightPanelShow:f("right-panel-show",60616),vscodeInsidersOutline:f("vscode-insiders-outline",60617),vscodeOutline:f("vscode-outline",60618),voiceMode:f("voice-mode",60619),voiceModeCompact:f("voice-mode-compact",60620),micDownload:f("mic-download",60621),micDownloadCompact:f("mic-download-compact",60622),voiceModeDownload:f("voice-mode-download",60623),voiceModeDownloadCompact:f("voice-mode-download-compact",60624),googleGemini:f("google-gemini",60625),kimi:f("kimi",60626),microsoft:f("microsoft",60627),fish1Happy:f("fish1-happy",60628),fish1Neutral:f("fish1-neutral",60629),fish1Sad:f("fish1-sad",60630),fish1VerySad:f("fish1-very-sad",60631),fish2Happy:f("fish2-happy",60632),fish2Neutral:f("fish2-neutral",60633),fish2Sad:f("fish2-sad",60634),fish2VerySad:f("fish2-very-sad",60635),fish3Happy:f("fish3-happy",60636),fish3Neutral:f("fish3-neutral",60637),fish3Sad:f("fish3-sad",60638),fish3VerySad:f("fish3-very-sad",60639),fish4Happy:f("fish4-happy",60640),fish4Neutral:f("fish4-neutral",60641),fish4Sad:f("fish4-sad",60642),fish4VerySad:f("fish4-very-sad",60643),personVoice:f("person-voice",60644),personVoiceCompact:f("person-voice-compact",60645),personVoiceFilled:f("person-voice-filled",60646),personVoiceFilledCompact:f("person-voice-filled-compact",60647),cloudDownloadCompact:f("cloud-download-compact",60648),cloudUploadCompact:f("cloud-upload-compact",60649),micCompact:f("mic-compact",60650),arrowUpCompact:f("arrow-up-compact",60651),xai:f("xai",60652),arrowCircleUpSparkle:f("arrow-circle-up-sparkle",60653),closeSmall:f("close-small",60654),bookCompact:f("book-compact",60655),micOff:f("mic-off",60656),micOffCompact:f("mic-off-compact",60657)};var Y4={dialogError:f("dialog-error","error"),dialogWarning:f("dialog-warning","warning"),dialogInfo:f("dialog-info","info"),dialogClose:f("dialog-close","close"),treeItemExpanded:f("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:f("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:f("tree-filter-on-type-off","list-selection"),treeFilterClear:f("tree-filter-clear","close"),treeItemLoading:f("tree-item-loading","loading"),menuSelection:f("menu-selection","check"),menuSubmenu:f("menu-submenu","chevron-right"),menuBarMore:f("menubar-more","more"),scrollbarButtonLeft:f("scrollbar-button-left","triangle-left"),scrollbarButtonRight:f("scrollbar-button-right","triangle-right"),scrollbarButtonUp:f("scrollbar-button-up","triangle-up"),scrollbarButtonDown:f("scrollbar-button-down","triangle-down"),toolBarMore:f("toolbar-more","more"),quickInputBack:f("quick-input-back","arrow-left"),dropDownButton:f("drop-down-button",60084),symbolCustomColor:f("symbol-customcolor",60252),exportIcon:f("export",60332),workspaceUnspecified:f("workspace-unspecified",60355),newLine:f("newline",60394),thumbsDownFilled:f("thumbsdown-filled",60435),thumbsUpFilled:f("thumbsup-filled",60436),gitFetch:f("git-fetch",60445),lightbulbSparkleAutofix:f("lightbulb-sparkle-autofix",60447),debugBreakpointPending:f("debug-breakpoint-pending",60377),chatImport:f("chat-import",60550),chatExport:f("chat-export",60551)},le={...DN,...Y4};var Mu;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(Mu||={});var Ye;(S=>{S.iconNameSegment="[A-Za-z0-9]+",S.iconNameExpression="[A-Za-z0-9-]+",S.iconModifierExpression="~[A-Za-z]+",S.iconNameCharacter="[A-Za-z0-9~-]";let o=new RegExp(`^(${S.iconNameExpression})(${S.iconModifierExpression})?$`);function r(w){let P=o.exec(w.id);if(!P)return r(le.error);let[,A,L]=P,V=["codicon","codicon-"+A];return L&&V.push("codicon-modifier-"+L.substring(1)),V}S.asClassNameArray=r;function s(w){return r(w).join(" ")}S.asClassName=s;function a(w){return"."+r(w).join(".")}S.asCSSSelector=a;function l(w){return!!w&&typeof w=="object"&&typeof w.id=="string"&&(typeof w.color>"u"||Mu.isThemeColor(w.color))}S.isThemeIcon=l;let d=new RegExp(`^\\$\\((${S.iconNameExpression}(?:${S.iconModifierExpression})?)\\)$`);function c(w){let P=d.exec(w);if(!P)return;let[,A]=P;return{id:A}}S.fromString=c;function u(w){return{id:w}}S.fromId=u;function m(w,P){let A=w.id,L=A.lastIndexOf("~");return L!==-1&&(A=A.substring(0,L)),P&&(A=`${A}~${P}`),{id:A}}S.modify=m;function g(w){let P=w.id.lastIndexOf("~");if(P!==-1)return w.id.substring(P+1)}S.getModifier=g;function v(w,P){return w.id===P.id&&w.color?.id===P.color?.id}S.isEqual=v;function h(w){return w?.id===le.file.id}S.isFile=h;function I(w){return w?.id===le.folder.id}S.isFolder=I})(Ye||={});var iP=new RegExp(`\\$\\(${Ye.iconNameExpression}(?:${Ye.iconModifierExpression})?\\)`,"g"),X4=new RegExp(`(\\\\)?${iP.source}`,"g");function RN(i){return i.replace(X4,(t,e)=>e?t:`\\${t}`)}var gY=new RegExp(`\\\\${iP.source}`,"g");var fY=new RegExp(`(\\s)?(\\\\)?${iP.source}(\\s)?`,"g");var hY=new RegExp(`\\$\\(${Ye.iconNameCharacter}+\\)`,"g");var vt=class i{static lift(t){let e=new i(t.value,t);return e.uris=t.uris,e.baseUri=t.baseUri?y.revive(t.baseUri):void 0,e}constructor(t="",e=!1){if(this.value=t,typeof this.value!="string")throw Ne("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+=Z4(this.supportThemeIcons?RN(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+=`
${e5(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(dr(e),"g");return t.replace(n,(o,r)=>t.charAt(r-1)!=="\\"?`\\${o}`:o)}};function Eo(i){return i instanceof vt?!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 Z4(i){return i.replace(/[\\`*_{}[\]()#+!~]/g,"\\$&").replace(/^([ \t]*)-/gm,"$1\\-")}function e5(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 sP(i){let t=Math.max(0,...(i.match(/`+/g)??[]).map(r=>r.length)),e="`".repeat(t+1),o=i.startsWith("`")||i.endsWith("`")?` ${i} `:i;return`${e}${o}${e}`}function MN(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 dP(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var $d=dP();function FN(i){$d=i}var HN=/[&<>"']/,n5=new RegExp(HN.source,"g"),VN=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,o5=new RegExp(VN.source,"g"),r5={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},AN=i=>r5[i];function pr(i,t){if(t){if(HN.test(i))return i.replace(n5,AN)}else if(VN.test(i))return i.replace(o5,AN);return i}var i5=/(^|[^\[])\^/g;function Wt(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(i5,"$1"),e=e.replace(o,s),n},getRegex:()=>new RegExp(e,t)};return n}function ON(i){try{i=encodeURI(i).replace(/%25/g,"%")}catch{return null}return i}var Kf={exec:()=>null};function LN(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 zf(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 s5(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 NN(i,t,e,n){let o=t.href,r=t.title?pr(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:pr(s)}}function a5(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 Ou=class{options;rules;lexer;constructor(t){this.options=t||$d}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:zf(n,`
`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],o=a5(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=zf(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:zf(e[0],`
`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=zf(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 v=g,h=v.raw+`
`+n.join(`
`),I=this.blockquote(h);s[s.length-1]=I,o=o.substring(0,o.length-v.raw.length)+I.raw,r=r.substring(0,r.length-v.text.length)+I.text;break}else if(g?.type==="list"){let v=g,h=v.raw+`
`+n.join(`
`),I=this.list(h);s[s.length-1]=I,o=o.substring(0,o.length-g.raw.length)+I.raw,r=r.substring(0,r.length-v.raw.length)+I.raw,n=h.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+/,S=>" ".repeat(3*S.length)),m=t.split(`
`,1)[0],g=!u.trim(),v=0;if(this.options.pedantic?(v=2,c=u.trimStart()):g?v=e[1].length+1:(v=e[2].search(/[^ ]/),v=v>4?1:v,c=u.slice(v),v+=e[1].length),g&&/^ *$/.test(m)&&(d+=m+`
`,t=t.substring(m.length+1),l=!0),!l){let S=new RegExp(`^ {0,${Math.min(3,v-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),w=new RegExp(`^ {0,${Math.min(3,v-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),P=new RegExp(`^ {0,${Math.min(3,v-1)}}(?:\`\`\`|~~~)`),A=new RegExp(`^ {0,${Math.min(3,v-1)}}#`);for(;t;){let L=t.split(`
`,1)[0];if(m=L,this.options.pedantic&&(m=m.replace(/^ {1,4}(?=( {4})*[^ ])/g,"  ")),P.test(m)||A.test(m)||S.test(m)||w.test(t))break;if(m.search(/[^ ]/)>=v||!m.trim())c+=`
`+m.slice(v);else{if(g||u.search(/[^ ]/)>=4||P.test(u)||A.test(u)||w.test(u))break;c+=`
`+m}!g&&!m.trim()&&(g=!0),d+=L+`
`,t=t.substring(L.length+1),u=m.slice(v)}}r.loose||(a?r.loose=!0:/\n *\n *$/.test(d)&&(a=!0));let h=null,I;this.options.gfm&&(h=/^\[[ xX]\] /.exec(c),h&&(I=h[0]!=="[ ] ",c=c.replace(/^\[[ xX]\] +/,""))),r.items.push({type:"list_item",raw:d,task:!!h,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=LN(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(LN(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:pr(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=zf(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=s5(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)),NN(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 NN(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 h=g.slice(1,-1);return{type:"em",raw:g,text:h,tokens:this.lexer.inlineTokens(h)}}let v=g.slice(2,-2);return{type:"strong",raw:g,text:v,tokens:this.lexer.inlineTokens(v)}}}}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=pr(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=pr(e[1]),o="mailto:"+n):(n=pr(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=pr(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=pr(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=pr(e[0]),{type:"text",raw:e[0],text:n}}}},l5=/^(?: *(?:\n|$))+/,d5=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,c5=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,jf=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,u5=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,BN=/(?:[*+-]|\d{1,9}[.)])/,WN=Wt(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,BN).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(),cP=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,p5=/^[^\n]+/,uP=/(?!\s*\])(?:\\.|[^\[\]\\])+/,m5=Wt(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",uP).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),g5=Wt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,BN).getRegex(),Uy="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",pP=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,f5=Wt("^ {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",pP).replace("tag",Uy).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),$N=Wt(cP).replace("hr",jf).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",Uy).getRegex(),h5=Wt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",$N).getRegex(),mP={blockquote:h5,code:d5,def:m5,fences:c5,heading:u5,hr:jf,html:f5,lheading:WN,list:g5,newline:l5,paragraph:$N,table:Kf,text:p5},UN=Wt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",jf).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",Uy).getRegex(),v5={...mP,table:UN,paragraph:Wt(cP).replace("hr",jf).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",UN).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",Uy).getRegex()},b5={...mP,html:Wt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",pP).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:Kf,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Wt(cP).replace("hr",jf).replace("heading",` *#{1,6} *[^
]`).replace("lheading",WN).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},zN=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,y5=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,qN=/^( {2,}|\\)\n(?!\s*$)/,I5=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Qf="\\p{P}\\p{S}",x5=Wt(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,Qf).getRegex(),S5=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,C5=Wt(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Qf).getRegex(),T5=Wt("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Qf).getRegex(),E5=Wt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Qf).getRegex(),w5=Wt(/\\([punct])/,"gu").replace(/punct/g,Qf).getRegex(),k5=Wt(/^<(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(),P5=Wt(pP).replace("(?:-->|$)","-->").getRegex(),_5=Wt("^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",P5).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ny=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,D5=Wt(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Ny).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),KN=Wt(/^!?\[(label)\]\[(ref)\]/).replace("label",Ny).replace("ref",uP).getRegex(),GN=Wt(/^!?\[(ref)\](?:\[\])?/).replace("ref",uP).getRegex(),R5=Wt("reflink|nolink(?!\\()","g").replace("reflink",KN).replace("nolink",GN).getRegex(),gP={_backpedal:Kf,anyPunctuation:w5,autolink:k5,blockSkip:S5,br:qN,code:y5,del:Kf,emStrongLDelim:C5,emStrongRDelimAst:T5,emStrongRDelimUnd:E5,escape:zN,link:D5,nolink:GN,punctuation:x5,reflink:KN,reflinkSearch:R5,tag:_5,text:I5,url:Kf},M5={...gP,link:Wt(/^!?\[(label)\]\((.*?)\)/).replace("label",Ny).getRegex(),reflink:Wt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ny).getRegex()},aP={...gP,escape:Wt(zN).replace("])","~|])").getRegex(),url:Wt(/^((?: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.!#$%&'*+\/=?_`{\|}~-]+@)))/},A5={...aP,br:Wt(qN).replace("{2,}","*").getRegex(),text:Wt(aP.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Ly={normal:mP,gfm:v5,pedantic:b5},qf={normal:gP,gfm:aP,breaks:A5,pedantic:M5},Us=class i{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||$d,this.options.tokenizer=this.options.tokenizer||new Ou,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:Ly.normal,inline:qf.normal};this.options.pedantic?(e.block=Ly.pedantic,e.inline=qf.pedantic):this.options.gfm&&(e.block=Ly.gfm,this.options.breaks?e.inline=qf.breaks:e.inline=qf.gfm),this.tokenizer.rules=e}static get rules(){return{block:Ly,inline:qf}}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}},Lu=class{options;parser;constructor(t){this.options=t||$d}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-'+pr(o)+'">'+(n?r:pr(r,!0))+`</code></pre>
`:"<pre><code>"+(n?r:pr(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=ON(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=ON(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}},Gf=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""}},Fs=class i{options;renderer;textRenderer;constructor(t){this.options=t||$d,this.options.renderer=this.options.renderer||new Lu,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Gf}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}},Au=class{options;constructor(t){this.options=t||$d}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}},lP=class{defaults=dP();options=this.setOptions;parse=this.parseMarkdown(Us.lex,Fs.parse);parseInline=this.parseMarkdown(Us.lexInline,Fs.parseInline);Parser=Fs;Renderer=Lu;TextRenderer=Gf;Lexer=Us;Tokenizer=Ou;Hooks=Au;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 Lu(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 Ou(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 Au;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];Au.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 Us.lex(t,e??this.defaults)}parser(t,e){return Fs.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>"+pr(n.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(n);throw n}}},Wd=new lP;function Ft(i,t){return Wd.parse(i,t)}Ft.options=Ft.setOptions=function(i){return Wd.setOptions(i),Ft.defaults=Wd.defaults,FN(Ft.defaults),Ft};Ft.getDefaults=dP;Ft.defaults=$d;Ft.use=function(...i){return Wd.use(...i),Ft.defaults=Wd.defaults,FN(Ft.defaults),Ft};Ft.walkTokens=function(i,t){return Wd.walkTokens(i,t)};Ft.parseInline=Wd.parseInline;Ft.Parser=Fs;Ft.parser=Fs.parse;Ft.Renderer=Lu;Ft.TextRenderer=Gf;Ft.Lexer=Us;Ft.lexer=Us.lex;Ft.Tokenizer=Ou;Ft.Hooks=Au;Ft.parse=Ft;var EY=Ft.options,wY=Ft.setOptions,kY=Ft.use,PY=Ft.walkTokens,_Y=Ft.parseInline;var DY=Fs.parse,RY=Us.lex;function jN(i){return JSON.stringify(i,L5)}function Fy(i){let t=JSON.parse(i);return t=Dt(t),t}function L5(i,t){return t instanceof RegExp?{$mid:2,source:t.source,flags:t.flags}:t}function Dt(i,t=0){if(!i||t>200)return i;if(typeof i=="object"){switch(i.$mid){case 1:return y.revive(i);case 2:return new RegExp(i.source,i.flags);case 17:return new Date(i.source)}if(i instanceof ee||i instanceof Uint8Array)return i;if(Array.isArray(i))for(let e=0;e<i.length;++e)i[e]=Dt(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=Dt(i[e],t+1))}return i}var Qo=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"}),N5={".css":"text/css",".csv":"text/csv",".htm":"text/html",".html":"text/html",".ics":"text/calendar",".js":"text/javascript",".mjs":"text/javascript",".txt":"text/plain",".xml":"text/xml"},U5={".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 Hy(i){for(let t of[N5,U5])for(let e in t){let n=t[e];if(Array.isArray(n)?n.includes(i):n===i)return e}}var F5=/^(.+)\/(.+?)(;.+)?$/;function fP(i,t){let e=F5.exec(i);return e?`${e[1].toLowerCase()}/${e[2].toLowerCase()}${e[3]??""}`:t?void 0:i}function Vy(i){return["application/vnd.code.notebook.stdout","application/vnd.code.notebook.stderr"].includes(i)}var wo=Symbol("unset"),By=class{constructor(){this.root=new Jf;this._size=0}get size(){return this._size}get nodes(){return this.root.children?.values()||It.empty()}get entries(){return this.root.children?.entries()||It.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 QN(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 Jf;o.children.set(a,l),o=l}else{let l=new Jf;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 QN(this.root))t!==wo&&(yield t)}};function*QN(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 Jf=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 JN=new class{constructor(){this._zoomLevel=0;this._onDidChangeZoomLevel=new T;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 H5=cn?1.5:1.35,hP=8,vP=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=H5*n:s<hP&&(s=s*n),s=Math.round(s),s<hP&&(s=hP);let c=1+(d?0:JN.getZoomLevel()*.1);return n*=c,s*=c,r===yP&&(e==="normal"||e==="bold"?r=bP:(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=ri.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}},V5=2,Wy=class extends vP{constructor(e,n){super(e);this._editorStylingBrand=void 0;this.version=V5;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}},bP="normal",yP="translate",B5="Consolas, 'Courier New', monospace",W5="Menlo, Monaco, 'Courier New', monospace",$5="'Droid Sans Mono', monospace",ri={fontFamily:cn?W5:Ct?B5:$5,fontWeight:"normal",fontSize:cn?12:14,lineHeight:0,letterSpacing:0};var IP={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var xP="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function z5(i=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(let e of xP)i.indexOf(e)>=0||(t+="\\"+e);return t+="\\s]+)",new RegExp(t,"g")}var q5=z5();function SP(i){let t=q5;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 YN=new Qn;YN.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function CP(i,t,e,n,o){if(t=SP(t),o||(o=It.first(YN)),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),CP(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=K5(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 K5(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}var iX=D("accessibilityService");var sX=new E("accessibilityModeEnabled",!1);var G5=8;var TP=class{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}},wt=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return $y(t,e)}compute(t,e,n){return n}},Nu=class{constructor(t,e){this.newValue=t;this.didChange=e}};function $y(i,t){if(typeof i!="object"||typeof t!="object"||!i||!t)return new Nu(t,i!==t);if(Array.isArray(i)||Array.isArray(t)){let n=Array.isArray(i)&&Array.isArray(t)&&Jt(i,t);return new Nu(t,!n)}let e=!1;for(let n in t)if(t.hasOwnProperty(n)){let o=$y(i[n],t[n]);o.didChange&&(i[n]=o.newValue,e=!0)}return new Nu(i,e)}var $i=class{constructor(t,e){this.schema=void 0;this.id=t,this.name="_never_",this.defaultValue=e}applyUpdate(t,e){return $y(t,e)}validate(t){return this.defaultValue}},ol=class{constructor(t,e,n,o){this.id=t,this.name=e,this.defaultValue=n,this.schema=o}applyUpdate(t,e){return $y(t,e)}compute(t,e,n){return n}};function ce(i,t){return typeof i>"u"?t:i==="false"?!1:!!i}var Ee=class extends ol{constructor(t,e,n,o=void 0){typeof o<"u"&&(o.type="boolean",o.default=n),super(t,e,n,o)}validate(t){return ce(t,this.defaultValue)}};function j5(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 Xe=class i extends ol{static clampedInt(t,e,n,o){return j5(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 Jo=class i extends ol{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))}},to=class i extends ol{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 Et(i,t,e,n){return typeof i!="string"?t:n&&i in n?n[i]:e.indexOf(i)===-1?t:i}var Tt=class extends ol{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 Et(t,this.defaultValue,this._allowedValues)}},qd=class extends wt{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 Q5(i){switch(i){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}var EP=class extends wt{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}},wP=class extends wt{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:ce(e.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:ce(e.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}};function J5(i){switch(i){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var g_=(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))(g_||{});function XN(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 kP=class extends $i{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(" ")}},PP=class extends Ee{constructor(){super(45,"emptySelectionClipboard",!0,{description:p(462,null)})}compute(t,e,n){return n&&t.emptySelectionClipboard}},_P=class extends wt{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:cn},"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:ce(e.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:ce(e.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":Et(e.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":Et(e.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:ce(e.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:ce(e.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:ce(e.loop,this.defaultValue.loop),closeOnResult:ce(e.closeOnResult,this.defaultValue.closeOnResult),history:Et(e.history,this.defaultValue.history,["never","workspace"]),replaceHistory:Et(e.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}},DP=class i extends wt{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}},RP=class i extends wt{static{this.OFF=bP}static{this.TRANSLATE=yP}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}},MP=class extends $i{constructor(){super(59,new Wy({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}},AP=class extends $i{constructor(){super(161,1)}compute(t,e,n){return t.inputMode==="overtype"?e.get(92):e.get(34)}},OP=class extends $i{constructor(){super(170,!1)}compute(t,e){return t.editContextSupported&&e.get(44)}},LP=class extends $i{constructor(){super(172,!1)}compute(t,e){return t.accessibilitySupport===2?e.get(7):e.get(6)}},NP=class extends ol{constructor(){super(61,"fontSize",ri.fontSize,{type:"number",minimum:6,maximum:100,default:ri.fontSize,description:p(493,null)})}validate(t){let e=Jo.float(t,this.defaultValue);return e===0?ri.fontSize:Jo.clamp(e,6,100)}compute(t,e,n){return t.fontInfo.fontSize}},UP=class i extends wt{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",ri.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:ri.fontWeight,description:p(497,null)})}validate(t){return t==="normal"||t==="bold"?t:String(Xe.clampedInt(t,ri.fontWeight,i.MINIMUM_VALUE,i.MAXIMUM_VALUE))}},FP=class extends wt{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:Et(e.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:Et(e.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:Et(e.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:Et(e.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:Et(e.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:Et(e.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:Et(e.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:to.string(e.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:to.string(e.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:to.string(e.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:to.string(e.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:to.string(e.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:to.string(e.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}},HP=class extends wt{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,cn?"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:Et(e.enabled,this.defaultValue.enabled,["on","off","onKeyboardModifier"]),delay:Xe.clampedInt(e.delay,this.defaultValue.delay,0,1e4),sticky:ce(e.sticky,this.defaultValue.sticky),hidingDelay:Xe.clampedInt(e.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:ce(e.above,this.defaultValue.above),showLongLineWarning:ce(e.showLongLineWarning,this.defaultValue.showLongLineWarning)}}};var VP=class i extends $i{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,v=t.minimap.size,h=t.minimap.side,I=t.verticalScrollbarWidth,S=t.viewLineCount,w=t.remainingWidth,P=t.isViewportWrapping,A=u?2:3,L=Math.floor(r*o),V=L/r,q=!1,J=!1,z=A*m,j=m/r,X=1;if(v==="fill"||v==="fit"){let{typicalViewportLineCount:se,extraLinesBeforeFirstLine:Q,extraLinesBeyondLastLine:ae,desiredRatio:be,minimapLineCount:rt}=i.computeContainedMinimapLineCount({viewLineCount:S,scrollBeyondLastLine:c,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:o,lineHeight:l,pixelRatio:r});if(S/rt>1)q=!0,J=!0,m=1,z=1,j=m/r;else{let Ae=!1,At=m+1;if(v==="fit"){let Nt=Math.ceil((Q+S+ae)*z);P&&a&&w<=e.stableFitRemainingWidth?(Ae=!0,At=e.stableFitMaxMinimapScale):Ae=Nt>L}if(v==="fill"||Ae){q=!0;let Nt=m;z=Math.min(l*r,Math.max(1,Math.floor(1/be))),P&&a&&w<=e.stableFitRemainingWidth&&(At=e.stableFitMaxMinimapScale),m=Math.min(At,Math.max(1,Math.floor(z/A))),m>Nt&&(X=Math.min(2,m/Nt)),j=m/r/X,L=Math.ceil(Math.max(se,Q+S+ae)*z),P?(e.stableMinimapLayoutInput=t,e.stableFitRemainingWidth=w,e.stableFitMaxMinimapScale=m):(e.stableMinimapLayoutInput=null,e.stableFitRemainingWidth=0)}}}let ue=Math.floor(g*j),ot=Math.min(ue,Math.max(0,Math.floor((w-I-2)*j/(d+j)))+G5),Ze=Math.floor(r*ot),re=Ze/r;Ze=Math.floor(Ze*X);let Z=u?1:2,te=h==="left"?0:n-ot-I;return{renderMinimap:Z,minimapLeft:te,minimapWidth:ot,minimapHeightIsEditorHeight:q,minimapIsSampling:J,minimapScale:m,minimapLineHeight:z,minimapCanvasInnerWidth:Ze,minimapCanvasInnerHeight:L,minimapCanvasOuterWidth:re,minimapCanvasOuterHeight:V}}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,v=t.get(152),h=e.isDominatedByLongLines,I=t.get(66),S=t.get(76).renderType!==0,w=t.get(77),P=t.get(119),A=t.get(96),L=t.get(81),V=t.get(117),q=V.verticalScrollbarSize,J=V.verticalHasArrows,z=V.arrowSize,j=V.horizontalScrollbarSize,X=t.get(52),ue=t.get(126)!=="never",ot=t.get(74);X&&ue&&(ot+=16);let Ze=0;if(S){let vo=Math.max(s,w);Ze=Math.round(vo*l)}let re=0;I&&(re=r*e.glyphMarginDecorationLaneCount);let Z=0,te=Z+re,se=te+Ze,Q=se+ot,ae=n-re-Ze-ot,be=!1,rt=!1,$e=-1;t.get(2)===2&&m==="inherit"&&h?(be=!0,rt=!0):g==="on"||g==="bounded"?rt=!0:g==="wordWrapColumn"&&($e=v);let Ae=i._computeMinimapLayout({outerWidth:n,outerHeight:o,lineHeight:r,typicalHalfwidthCharacterWidth:a,pixelRatio:d,scrollBeyondLastLine:P,paddingTop:A.top,paddingBottom:A.bottom,minimap:L,verticalScrollbarWidth:q,viewLineCount:c,remainingWidth:ae,isViewportWrapping:rt},e.memory||new TP);Ae.renderMinimap!==0&&Ae.minimapLeft===0&&(Z+=Ae.minimapWidth,te+=Ae.minimapWidth,se+=Ae.minimapWidth,Q+=Ae.minimapWidth);let At=ae-Ae.minimapWidth,Nt=Math.max(1,Math.floor((At-q-2)/a)),lt=J?z:0;return rt&&($e=Math.max(1,Nt),g==="bounded"&&($e=Math.min($e,v))),{width:n,height:o,glyphMarginLeft:Z,glyphMarginWidth:re,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount,lineNumbersLeft:te,lineNumbersWidth:Ze,decorationsLeft:se,decorationsWidth:ot,contentLeft:Q,contentWidth:At,minimap:Ae,viewportColumn:Nt,isWordWrapMinified:be,isViewportWrapping:rt,wrappingColumn:$e,verticalScrollbarWidth:q,horizontalScrollbarHeight:j,overviewRuler:{top:lt,width:q,height:o-2*lt,right:0}}}},BP=class extends wt{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 Et(t,"simple",["simple","advanced"])}compute(t,e,n){return e.get(2)===2?"advanced":n}};var WP=class extends wt{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:Et(t.enabled,this.defaultValue.enabled,["off","onCode","on"])}}},$P=class extends wt{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:ce(e.enabled,this.defaultValue.enabled),maxLineCount:Xe.clampedInt(e.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Et(e.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:ce(e.scrollWithEditor,this.defaultValue.scrollWithEditor)}}},zP=class extends wt{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,cn?"Ctrl+Option":"Ctrl+Alt"),p(419,null,cn?"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:Et(e.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:Xe.clampedInt(e.fontSize,this.defaultValue.fontSize,0,100),fontFamily:to.string(e.fontFamily,this.defaultValue.fontFamily),padding:ce(e.padding,this.defaultValue.padding),maximumLength:Xe.clampedInt(e.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}},qP=class extends wt{constructor(){super(74,"lineDecorationsWidth",10)}validate(t){return typeof t=="string"&&/^\d+(\.\d+)?ch$/.test(t)?-parseFloat(t.substring(0,t.length-2)):Xe.clampedInt(t,this.defaultValue,0,1e3)}compute(t,e,n){return n<0?Xe.clampedInt(-n*t.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):n}},KP=class extends Jo{constructor(){super(75,"lineHeight",ri.lineHeight,t=>Jo.clamp(t,0,150),{markdownDescription:p(540,null)},0,150)}compute(t,e,n){return t.fontInfo.lineHeight}},GP=class extends wt{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(553,null)},"editor.minimap.autohide":{type:"string",enum:["none","mouseover","scroll"],enumDescriptions:[p(551,null),p(550,null),p(552,null)],default:t.autohide,description:p(549,null)},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[p(567,null),p(565,null),p(566,null)],default:t.size,description:p(564,null)},"editor.minimap.side":{type:"string",enum:["left","right"],default:t.side,description:p(563,null)},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:t.showSlider,description:p(562,null)},"editor.minimap.scale":{type:"number",default:t.scale,minimum:1,maximum:3,enum:[1,2,3],description:p(557,null)},"editor.minimap.renderCharacters":{type:"boolean",default:t.renderCharacters,description:p(556,null)},"editor.minimap.maxColumn":{type:"number",default:t.maxColumn,description:p(555,null)},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:t.showRegionSectionHeaders,description:p(561,null)},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:t.showMarkSectionHeaders,description:p(560,null)},"editor.minimap.markSectionHeaderRegex":{type:"string",default:t.markSectionHeaderRegex,description:p(554,null)},"editor.minimap.sectionHeaderFontSize":{type:"number",default:t.sectionHeaderFontSize,description:p(558,null)},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:t.sectionHeaderLetterSpacing,description:p(559,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:ce(e.enabled,this.defaultValue.enabled),autohide:Et(e.autohide,this.defaultValue.autohide,["none","mouseover","scroll"]),size:Et(e.size,this.defaultValue.size,["proportional","fill","fit"]),side:Et(e.side,this.defaultValue.side,["right","left"]),showSlider:Et(e.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:ce(e.renderCharacters,this.defaultValue.renderCharacters),scale:Xe.clampedInt(e.scale,1,1,3),maxColumn:Xe.clampedInt(e.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:ce(e.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:ce(e.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),markSectionHeaderRegex:n,sectionHeaderFontSize:Jo.clamp(Jo.float(e.sectionHeaderFontSize,this.defaultValue.sectionHeaderFontSize),4,32),sectionHeaderLetterSpacing:Jo.clamp(Jo.float(e.sectionHeaderLetterSpacing,this.defaultValue.sectionHeaderLetterSpacing),0,5)}}};function Y5(i){return i==="ctrlCmd"?cn?"metaKey":"ctrlKey":"altKey"}var jP=class extends wt{constructor(){super(96,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:p(592,null)},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:p(591,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{top:Xe.clampedInt(e.top,0,0,1e3),bottom:Xe.clampedInt(e.bottom,0,0,1e3)}}},QP=class extends wt{constructor(){let t={enabled:!0,cycle:!0};super(98,"parameterHints",t,{"editor.parameterHints.enabled":{type:"boolean",default:t.enabled,description:p(594,null)},"editor.parameterHints.cycle":{type:"boolean",default:t.cycle,description:p(593,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:ce(e.enabled,this.defaultValue.enabled),cycle:ce(e.cycle,this.defaultValue.cycle)}}},JP=class extends $i{constructor(){super(163,1)}compute(t,e,n){return t.pixelRatio}},YP=class extends wt{constructor(){super(100,"placeholder",void 0)}validate(t){return typeof t>"u"?this.defaultValue:typeof t=="string"?t:this.defaultValue}},XP=class extends wt{constructor(){let t={other:"offWhenInlineCompletions",comments:"off",strings:"off"},e=[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(587,null),p(518,null),p(585,null),p(586,null)]}];super(102,"quickSuggestions",t,{anyOf:[{type:"boolean"},{type:"string",enum:["on","inline","off","offWhenInlineCompletions"],enumDescriptions:[p(609,null),p(606,null),p(607,null),p(608,null)]},{type:"object",additionalProperties:!1,properties:{strings:{anyOf:e,default:t.strings,description:p(605,null)},comments:{anyOf:e,default:t.comments,description:p(603,null)},other:{anyOf:e,default:t.other,description:p(604,null)}}}],default:t,markdownDescription:p(602,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=Et(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=Et(e,this.defaultValue.other,r),typeof n=="boolean"?a=n?"on":"off":a=Et(n,this.defaultValue.comments,r),typeof o=="boolean"?l=o?"on":"off":l=Et(o,this.defaultValue.strings,r),{other:s,comments:a,strings:l}}};var ZP=class extends wt{constructor(){super(76,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[p(543,null),p(544,null),p(545,null),p(542,null)],default:"on",description:p(541,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 e_=class extends wt{constructor(){let t=[],e={type:"number",description:p(626,null)};super(116,"rulers",t,{type:"array",items:{anyOf:[e,{type:["object"],properties:{column:e,color:{type:"string",description:p(625,null),format:"color-hex"}}}]},default:t,description:p(624,null)})}validate(t){if(Array.isArray(t)){let e=[];for(let n of t)if(typeof n=="number")e.push({column:Xe.clampedInt(n,0,0,1e4),color:null});else if(n&&typeof n=="object"){let o=n;e.push({column:Xe.clampedInt(o.column,0,0,1e4),color:o.color})}return e.sort((n,o)=>n.column-o.column),e}return this.defaultValue}},t_=class extends wt{constructor(){super(105,"readOnlyMessage",void 0)}validate(t){return!t||typeof t!="object"?this.defaultValue:t}};function ZN(i,t){if(typeof i!="string")return t;switch(i){case"hidden":return 2;case"visible":return 3;default:return 1}}var n_=class extends wt{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(636,null),p(638,null),p(637,null)],default:"auto",description:p(635,null)},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[p(629,null),p(631,null),p(630,null)],default:"auto",description:p(628,null)},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:t.verticalScrollbarSize,description:p(639,null)},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:t.horizontalScrollbarSize,description:p(632,null)},"editor.scrollbar.scrollByPage":{type:"boolean",default:t.scrollByPage,description:p(634,null)},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:t.ignoreHorizontalScrollbarInContentHeight,description:p(633,null)}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t,n=Xe.clampedInt(e.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),o=Xe.clampedInt(e.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:Xe.clampedInt(e.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:ZN(e.vertical,this.defaultValue.vertical),horizontal:ZN(e.horizontal,this.defaultValue.horizontal),useShadows:ce(e.useShadows,this.defaultValue.useShadows),verticalHasArrows:ce(e.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:ce(e.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:ce(e.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:ce(e.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:n,horizontalSliderSize:Xe.clampedInt(e.horizontalSliderSize,n,0,1e3),verticalScrollbarSize:o,verticalSliderSize:Xe.clampedInt(e.verticalSliderSize,o,0,1e3),scrollByPage:ce(e.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:ce(e.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}},ii="inUntrustedWorkspace",zd={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"},o_=class extends wt{constructor(){let t={nonBasicASCII:ii,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:ii,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(142,"unicodeHighlight",t,{[zd.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,ii],default:t.nonBasicASCII,description:p(699,null)},[zd.invisibleCharacters]:{restricted:!0,type:"boolean",default:t.invisibleCharacters,description:p(698,null)},[zd.ambiguousCharacters]:{restricted:!0,type:"boolean",default:t.ambiguousCharacters,description:p(695,null)},[zd.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,ii],default:t.includeComments,description:p(696,null)},[zd.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,ii],default:t.includeStrings,description:p(697,null)},[zd.allowedCharacters]:{restricted:!0,type:"object",default:t.allowedCharacters,description:p(693,null),additionalProperties:{type:"boolean"}},[zd.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:t.allowedLocales,description:p(694,null)}})}applyUpdate(t,e){let n=!1;e.allowedCharacters&&t&&(ht(t.allowedCharacters,e.allowedCharacters)||(t={...t,allowedCharacters:e.allowedCharacters},n=!0)),e.allowedLocales&&t&&(ht(t.allowedLocales,e.allowedLocales)||(t={...t,allowedLocales:e.allowedLocales},n=!0));let o=super.applyUpdate(t,e);return n?new Nu(o.newValue,!0):o}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{nonBasicASCII:Uu(e.nonBasicASCII,ii,[!0,!1,ii]),invisibleCharacters:ce(e.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:ce(e.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:Uu(e.includeComments,ii,[!0,!1,ii]),includeStrings:Uu(e.includeStrings,ii,[!0,!1,ii]),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}},r_=class extends wt{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,longDistanceHintContextLineCount:0},triggerCommandOnProviderChange:!1,experimental:{suppressInlineSuggestions:"",showOnSuggestConflict:"never",emptyResponseInformation:!0}};super(71,"inlineSuggest",t,{"editor.inlineSuggest.enabled":{type:"boolean",default:t.enabled,description:p(526,null)},"editor.inlineSuggest.showToolbar":{type:"string",default:t.showToolbar,enum:["always","onHover","never"],enumDescriptions:[p(531,null),p(533,null),p(532,null)],description:p(530,null)},"editor.inlineSuggest.syntaxHighlightingEnabled":{type:"boolean",default:t.syntaxHighlightingEnabled,description:p(537,null)},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:t.suppressSuggestions,description:p(536,null)},"editor.inlineSuggest.suppressInSnippetMode":{type:"boolean",default:t.suppressInSnippetMode,description:p(535,null)},"editor.inlineSuggest.minShowDelay":{type:"number",default:0,minimum:0,maximum:1e4,description:p(528,null)},"editor.inlineSuggest.experimental.suppressInlineSuggestions":{type:"string",default:t.experimental.suppressInlineSuggestions,tags:["experimental"],description:p(534,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.emptyResponseInformation":{type:"boolean",default:t.experimental.emptyResponseInformation,tags:["experimental"],description:p(525,null),experiment:{mode:"auto"}},"editor.inlineSuggest.triggerCommandOnProviderChange":{type:"boolean",default:t.triggerCommandOnProviderChange,tags:["experimental"],description:p(538,null),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.showOnSuggestConflict":{type:"string",default:t.experimental.showOnSuggestConflict,tags:["experimental"],enum:["always","never","whenSuggestListIsIncomplete"],description:p(529,null),experiment:{mode:"auto"}},"editor.inlineSuggest.fontFamily":{type:"string",default:t.fontFamily,description:p(527,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(524,null),tags:["nextEditSuggestions","experimental"]},"editor.inlineSuggest.edits.longDistanceHintContextLineCount":{type:"number",default:t.edits.longDistanceHintContextLineCount,minimum:0,maximum:10,description:p(521,null),tags:["nextEditSuggestions","experimental"],experiment:{mode:"auto"}},"editor.inlineSuggest.edits.renderSideBySide":{type:"string",default:t.edits.renderSideBySide,description:p(522,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(523,null),tags:["nextEditSuggestions"]}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:ce(e.enabled,this.defaultValue.enabled),mode:Et(e.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:Et(e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:ce(e.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:ce(e.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:to.string(e.fontFamily,this.defaultValue.fontFamily),syntaxHighlightingEnabled:ce(e.syntaxHighlightingEnabled,this.defaultValue.syntaxHighlightingEnabled),minShowDelay:Xe.clampedInt(e.minShowDelay,0,0,1e4),suppressInSnippetMode:ce(e.suppressInSnippetMode,this.defaultValue.suppressInSnippetMode),edits:this._validateEdits(e.edits),triggerCommandOnProviderChange:ce(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:ce(e.enabled,this.defaultValue.edits.enabled),showCollapsed:ce(e.showCollapsed,this.defaultValue.edits.showCollapsed),allowCodeShifting:Et(e.allowCodeShifting,this.defaultValue.edits.allowCodeShifting,["always","horizontal","never"]),showLongDistanceHint:ce(e.showLongDistanceHint,this.defaultValue.edits.showLongDistanceHint),longDistanceHintContextLineCount:Xe.clampedInt(e.longDistanceHintContextLineCount,this.defaultValue.edits.longDistanceHintContextLineCount,0,10),renderSideBySide:Et(e.renderSideBySide,this.defaultValue.edits.renderSideBySide,["never","auto"])}}_validateExperimental(t){if(!t||typeof t!="object")return this.defaultValue.experimental;let e=t;return{suppressInlineSuggestions:to.string(e.suppressInlineSuggestions,this.defaultValue.experimental.suppressInlineSuggestions),showOnSuggestConflict:Et(e.showOnSuggestConflict,this.defaultValue.experimental.showOnSuggestConflict,["always","never","whenSuggestListIsIncomplete"]),emptyResponseInformation:ce(e.emptyResponseInformation,this.defaultValue.experimental.emptyResponseInformation)}}},i_=class extends wt{constructor(){let t={enabled:IP.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:IP.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:ce(e.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:ce(e.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}},s_=class extends wt{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:Uu(e.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:Uu(e.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:ce(e.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:ce(e.indentation,this.defaultValue.indentation),highlightActiveIndentation:Uu(e.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}};function Uu(i,t,e){let n=e.indexOf(i);return n===-1?t:e[n]}var a_=class extends wt{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,fitWidthToDetails:!1,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(666,null),p(668,null)],default:t.insertMode,description:p(664,null)},"editor.suggest.filterGraceful":{type:"boolean",default:t.filterGraceful,description:p(663,null)},"editor.suggest.localityBonus":{type:"boolean",default:t.localityBonus,description:p(671,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(665,null),p(667,null),p(670,null),p(669,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.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:Et(e.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:ce(e.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:ce(e.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:ce(e.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:ce(e.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:Et(e.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:ce(e.showIcons,this.defaultValue.showIcons),showStatusBar:ce(e.showStatusBar,this.defaultValue.showStatusBar),preview:ce(e.preview,this.defaultValue.preview),previewMode:Et(e.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:ce(e.showInlineDetails,this.defaultValue.showInlineDetails),fitWidthToDetails:ce(e.fitWidthToDetails,this.defaultValue.fitWidthToDetails),showMethods:ce(e.showMethods,this.defaultValue.showMethods),showFunctions:ce(e.showFunctions,this.defaultValue.showFunctions),showConstructors:ce(e.showConstructors,this.defaultValue.showConstructors),showDeprecated:ce(e.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:ce(e.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:ce(e.showFields,this.defaultValue.showFields),showVariables:ce(e.showVariables,this.defaultValue.showVariables),showClasses:ce(e.showClasses,this.defaultValue.showClasses),showStructs:ce(e.showStructs,this.defaultValue.showStructs),showInterfaces:ce(e.showInterfaces,this.defaultValue.showInterfaces),showModules:ce(e.showModules,this.defaultValue.showModules),showProperties:ce(e.showProperties,this.defaultValue.showProperties),showEvents:ce(e.showEvents,this.defaultValue.showEvents),showOperators:ce(e.showOperators,this.defaultValue.showOperators),showUnits:ce(e.showUnits,this.defaultValue.showUnits),showValues:ce(e.showValues,this.defaultValue.showValues),showConstants:ce(e.showConstants,this.defaultValue.showConstants),showEnums:ce(e.showEnums,this.defaultValue.showEnums),showEnumMembers:ce(e.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:ce(e.showKeywords,this.defaultValue.showKeywords),showWords:ce(e.showWords,this.defaultValue.showWords),showColors:ce(e.showColors,this.defaultValue.showColors),showFiles:ce(e.showFiles,this.defaultValue.showFiles),showReferences:ce(e.showReferences,this.defaultValue.showReferences),showFolders:ce(e.showFolders,this.defaultValue.showFolders),showTypeParameters:ce(e.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:ce(e.showSnippets,this.defaultValue.showSnippets),showUsers:ce(e.showUsers,this.defaultValue.showUsers),showIssues:ce(e.showIssues,this.defaultValue.showIssues)}}},l_=class extends wt{constructor(){super(129,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:p(648,null),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:p(649,null),default:!0,type:"boolean"}})}validate(t){return!t||typeof t!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:ce(t.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:ce(t.selectSubwords,this.defaultValue.selectSubwords)}}},d_=class extends wt{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 c_=class extends wt{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}},u_=class extends $i{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}}},p_=class extends wt{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:ce(e.enabled,this.defaultValue.enabled),showDropSelector:Et(e.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}},m_=class extends wt{constructor(){let t={enabled:!0,showPasteSelector:"afterPaste"};super(97,"pasteAs",t,{"editor.pasteAs.enabled":{type:"boolean",default:t.enabled,markdownDescription:p(595,null)},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:p(596,null),enum:["afterPaste","never"],enumDescriptions:[p(597,null),p(598,null)],default:"afterPaste"}})}validate(t){if(!t||typeof t!="object")return this.defaultValue;let e=t;return{enabled:ce(e.enabled,this.defaultValue.enabled),showPasteSelector:Et(e.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}},X5=[];function F(i){return X5[i.id]=i,i}var hX={acceptSuggestionOnCommitCharacter:F(new Ee(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:p(304,null)})),acceptSuggestionOnEnter:F(new Tt(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",p(306,null),""],markdownDescription:p(305,null)})),accessibilitySupport:F(new EP),accessibilityPageSize:F(new Xe(3,"accessibilityPageSize",500,1,1073741824,{description:p(307,null),tags:["accessibility"]})),allowOverflow:F(new Ee(4,"allowOverflow",!0)),allowVariableLineHeights:F(new Ee(5,"allowVariableLineHeights",!0,{description:p(314,null)})),allowVariableFonts:F(new Ee(6,"allowVariableFonts",!0,{description:p(312,null)})),allowVariableFontsInAccessibilityMode:F(new Ee(7,"allowVariableFontsInAccessibilityMode",!1,{description:p(313,null),tags:["accessibility"]})),ariaLabel:F(new to(8,"ariaLabel",p(461,null))),ariaRequired:F(new Ee(9,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:F(new Ee(12,"screenReaderAnnounceInlineSuggestion",!0,{description:p(627,null),tags:["accessibility"]})),autoClosingBrackets:F(new Tt(10,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(364,null),p(363,null),""],description:p(320,null)})),autoClosingComments:F(new Tt(11,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(366,null),p(365,null),""],description:p(321,null)})),autoClosingDelete:F(new Tt(13,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",p(367,null),""],description:p(322,null)})),autoClosingOvertype:F(new Tt(14,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",p(368,null),""],description:p(323,null)})),autoClosingQuotes:F(new Tt(15,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",p(370,null),p(369,null),""],description:p(324,null)})),autoIndent:F(new qd(16,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],Q5,{enumDescriptions:[p(375,null),p(374,null),p(372,null),p(371,null),p(373,null)],description:p(325,null)})),autoIndentOnPaste:F(new Ee(17,"autoIndentOnPaste",!1,{description:p(326,null)})),autoIndentOnPasteWithinString:F(new Ee(18,"autoIndentOnPasteWithinString",!0,{description:p(327,null)})),automaticLayout:F(new Ee(19,"automaticLayout",!1)),autoSurround:F(new Tt(20,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[p(377,null),p(378,null),p(376,null),""],description:p(328,null)})),bracketPairColorization:F(new i_),bracketPairGuides:F(new s_),stickyTabStops:F(new Ee(132,"stickyTabStops",!1,{description:p(662,null)})),codeLens:F(new Ee(23,"codeLens",!0,{description:p(331,null)})),codeLensFontFamily:F(new to(24,"codeLensFontFamily","",{description:p(332,null)})),codeLensFontSize:F(new Xe(25,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:p(333,null)})),colorDecorators:F(new Ee(26,"colorDecorators",!0,{description:p(335,null)})),colorDecoratorActivatedOn:F(new Tt(168,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[p(380,null),p(381,null),p(379,null)],description:p(334,null)})),colorDecoratorsLimit:F(new Xe(27,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:p(336,null)})),columnSelection:F(new Ee(28,"columnSelection",!1,{description:p(337,null)})),comments:F(new wP),contextmenu:F(new Ee(30,"contextmenu",!0)),copyWithSyntaxHighlighting:F(new Ee(31,"copyWithSyntaxHighlighting",!0,{description:p(340,null)})),cursorBlinking:F(new qd(32,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],J5,{description:p(341,null)})),cursorSmoothCaretAnimation:F(new Tt(33,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[p(345,null),p(344,null),p(346,null)],description:p(343,null)})),cursorStyle:F(new qd(34,"cursorStyle",1,"line",["line","block","underline","line-thin","block-outline","underline-thin"],XN,{description:p(347,null)})),overtypeCursorStyle:F(new qd(92,"overtypeCursorStyle",2,"block",["line","block","underline","line-thin","block-outline","underline-thin"],XN,{description:p(588,null)})),cursorSurroundingLines:F(new Xe(35,"cursorSurroundingLines",0,0,1073741824,{description:p(348,null)})),cursorSurroundingLinesStyle:F(new Tt(36,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[p(351,null),p(350,null)],markdownDescription:p(349,null)})),cursorWidth:F(new Xe(37,"cursorWidth",0,0,1073741824,{markdownDescription:p(352,null)})),cursorHeight:F(new Xe(38,"cursorHeight",0,0,1073741824,{markdownDescription:p(342,null)})),disableLayerHinting:F(new Ee(39,"disableLayerHinting",!1)),disableMonospaceOptimizations:F(new Ee(40,"disableMonospaceOptimizations",!1)),domReadOnly:F(new Ee(41,"domReadOnly",!1)),doubleClickSelectsBlock:F(new Ee(173,"doubleClickSelectsBlock",!0,{description:p(356,null)})),dragAndDrop:F(new Ee(42,"dragAndDrop",!0,{description:p(357,null)})),emptySelectionClipboard:F(new PP),dropIntoEditor:F(new p_),editContext:F(new Ee(44,"editContext",!0,{description:p(362,null),included:vf||Ob||hf})),renderRichScreenReaderContent:F(new Ee(107,"renderRichScreenReaderContent",!1,{markdownDescription:p(618,null)})),stickyScroll:F(new $P),experimentalGpuAcceleration:F(new Tt(46,"experimentalGpuAcceleration","off",["off","on"],{tags:["experimental"],enumDescriptions:[p(465,null),p(466,null)],description:p(464,null)})),experimentalWhitespaceRendering:F(new Tt(47,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[p(470,null),p(468,null),p(469,null)],description:p(467,null)})),extraEditorClassName:F(new to(48,"extraEditorClassName","")),fastScrollSensitivity:F(new Jo(49,"fastScrollSensitivity",5,i=>i<=0?5:i,{markdownDescription:p(471,null)})),find:F(new _P),fixedOverflowWidgets:F(new Ee(51,"fixedOverflowWidgets",!1)),folding:F(new Ee(52,"folding",!0,{description:p(482,null)})),foldingStrategy:F(new Tt(53,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[p(487,null),p(488,null)],description:p(486,null)})),foldingHighlight:F(new Ee(54,"foldingHighlight",!0,{description:p(483,null)})),foldingImportsByDefault:F(new Ee(55,"foldingImportsByDefault",!1,{description:p(484,null)})),foldingMaximumRegions:F(new Xe(56,"foldingMaximumRegions",5e3,10,65e3,{description:p(485,null)})),unfoldOnClickAfterEndOfLine:F(new Ee(57,"unfoldOnClickAfterEndOfLine",!1,{description:p(692,null)})),fontFamily:F(new to(58,"fontFamily",ri.fontFamily,{description:p(489,null)})),fontInfo:F(new MP),fontLigatures2:F(new DP),fontSize:F(new NP),fontWeight:F(new UP),fontVariations:F(new RP),formatOnPaste:F(new Ee(64,"formatOnPaste",!1,{description:p(499,null)})),formatOnType:F(new Ee(65,"formatOnType",!1,{description:p(500,null)})),glyphMargin:F(new Ee(66,"glyphMargin",!0,{description:p(501,null)})),gotoLocation:F(new FP),hideCursorInOverviewRuler:F(new Ee(68,"hideCursorInOverviewRuler",!1,{description:p(502,null)})),hover:F(new HP),inDiffEditor:F(new Ee(70,"inDiffEditor",!1)),inertialScroll:F(new Ee(158,"inertialScroll",!1,{description:p(512,null)})),letterSpacing:F(new Jo(72,"letterSpacing",ri.letterSpacing,i=>Jo.clamp(i,-5,20),{description:p(539,null)})),lightbulb:F(new WP),lineDecorationsWidth:F(new qP),lineHeight:F(new KP),lineNumbers:F(new ZP),lineNumbersMinChars:F(new Xe(77,"lineNumbersMinChars",5,1,300)),linkedEditing:F(new Ee(78,"linkedEditing",!1,{description:p(546,null)})),links:F(new Ee(79,"links",!0,{description:p(547,null)})),matchBrackets:F(new Tt(80,"matchBrackets","always",["always","near","never"],{description:p(548,null)})),minimap:F(new GP),mouseStyle:F(new Tt(82,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:F(new Jo(83,"mouseWheelScrollSensitivity",1,i=>i===0?1:i,{markdownDescription:p(569,null)})),mouseWheelZoom:F(new Ee(84,"mouseWheelZoom",!1,{markdownDescription:cn?p(571,null):p(570,null)})),multiCursorMergeOverlapping:F(new Ee(85,"multiCursorMergeOverlapping",!0,{description:p(573,null)})),multiCursorModifier:F(new qd(86,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],Y5,{markdownEnumDescriptions:[p(576,null),p(575,null)],markdownDescription:p(574,null)})),mouseMiddleClickAction:F(new Tt(87,"mouseMiddleClickAction","default",["default","openLink","ctrlLeftClick"],{description:p(568,null)})),multiCursorPaste:F(new Tt(88,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[p(579,null),p(578,null)],markdownDescription:p(577,null)})),multiCursorLimit:F(new Xe(89,"multiCursorLimit",1e4,1,1e5,{markdownDescription:p(572,null)})),occurrencesHighlight:F(new Tt(90,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[p(582,null),p(583,null),p(581,null)],markdownDescription:p(580,null)})),occurrencesHighlightDelay:F(new Xe(91,"occurrencesHighlightDelay",0,0,2e3,{description:p(584,null),tags:["preview"]})),overtypeOnPaste:F(new Ee(93,"overtypeOnPaste",!0,{description:p(589,null)})),overviewRulerBorder:F(new Ee(94,"overviewRulerBorder",!0,{description:p(590,null)})),overviewRulerLanes:F(new Xe(95,"overviewRulerLanes",3,0,3)),padding:F(new jP),pasteAs:F(new m_),parameterHints:F(new QP),peekWidgetDefaultFocus:F(new Tt(99,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[p(601,null),p(600,null)],description:p(599,null)})),placeholder:F(new YP),definitionLinkOpensInPeek:F(new Ee(101,"definitionLinkOpensInPeek",!1,{description:p(354,null)})),quickSuggestions:F(new XP),quickSuggestionsDelay:F(new Xe(103,"quickSuggestionsDelay",10,0,1073741824,{description:p(610,null),experiment:{mode:"auto"}})),readOnly:F(new Ee(104,"readOnly",!1)),readOnlyMessage:F(new t_),renameOnType:F(new Ee(106,"renameOnType",!1,{description:p(611,null),markdownDeprecationMessage:p(612,null)})),renderControlCharacters:F(new Ee(108,"renderControlCharacters",!0,{description:p(613,null),restricted:!0})),renderFinalNewline:F(new Tt(109,"renderFinalNewline",lo?"dimmed":"on",["off","on","dimmed"],{description:p(614,null)})),renderLineHighlight:F(new Tt(110,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",p(616,null)],description:p(615,null)})),renderLineHighlightOnlyWhenFocus:F(new Ee(111,"renderLineHighlightOnlyWhenFocus",!1,{description:p(617,null)})),renderValidationDecorations:F(new Tt(112,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:F(new Tt(113,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",p(620,null),p(621,null),p(622,null),""],description:p(619,null)})),revealHorizontalRightPadding:F(new Xe(114,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:F(new Ee(115,"roundedSelection",!0,{description:p(623,null)})),rulers:F(new e_),scrollbar:F(new n_),scrollBeyondLastColumn:F(new Xe(118,"scrollBeyondLastColumn",4,0,1073741824,{description:p(640,null)})),scrollBeyondLastLine:F(new Ee(119,"scrollBeyondLastLine",!0,{description:p(641,null)})),scrollOnMiddleClick:F(new Ee(171,"scrollOnMiddleClick",!1,{description:p(642,null)})),scrollPredominantAxis:F(new Ee(120,"scrollPredominantAxis",!0,{description:p(643,null)})),selectionClipboard:F(new Ee(121,"selectionClipboard",!0,{description:p(644,null),included:lo})),selectionHighlight:F(new Ee(122,"selectionHighlight",!0,{description:p(645,null)})),selectionHighlightMaxLength:F(new Xe(123,"selectionHighlightMaxLength",200,0,1073741824,{description:p(646,null)})),selectionHighlightMultiline:F(new Ee(124,"selectionHighlightMultiline",!1,{description:p(647,null)})),selectOnLineNumbers:F(new Ee(125,"selectOnLineNumbers",!0)),showFoldingControls:F(new Tt(126,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[p(652,null),p(654,null),p(653,null)],description:p(651,null)})),showUnused:F(new Ee(127,"showUnused",!0,{description:p(655,null)})),showDeprecated:F(new Ee(157,"showDeprecated",!0,{description:p(650,null)})),inlayHints:F(new zP),snippetSuggestions:F(new Tt(128,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[p(661,null),p(658,null),p(659,null),p(660,null)],description:p(657,null)})),smartSelect:F(new l_),smoothScrolling:F(new Ee(130,"smoothScrolling",!1,{description:p(656,null)})),stopRenderingLineAfter:F(new Xe(133,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:F(new a_),inlineSuggest:F(new r_),inlineCompletionsAccessibilityVerbose:F(new Ee(169,"inlineCompletionsAccessibilityVerbose",!1,{description:p(519,null)})),suggestFontSize:F(new Xe(135,"suggestFontSize",0,0,1e3,{markdownDescription:p(679,null,"`0`","`#editor.fontSize#`")})),suggestLineHeight:F(new Xe(136,"suggestLineHeight",0,0,1e3,{markdownDescription:p(680,null,"`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:F(new Ee(137,"suggestOnTriggerCharacters",!0,{description:p(681,null)})),suggestSelection:F(new Tt(138,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[p(683,null),p(684,null),p(685,null)],description:p(682,null)})),tabCompletion:F(new Tt(139,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[p(688,null),p(687,null),p(689,null)],description:p(686,null)})),tabIndex:F(new Xe(140,"tabIndex",0,-1,1073741824)),trimWhitespaceOnDelete:F(new Ee(141,"trimWhitespaceOnDelete",!1,{description:p(691,null)})),unicodeHighlight:F(new o_),unusualLineTerminators:F(new Tt(143,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[p(701,null),p(702,null),p(703,null)],description:p(700,null)})),useShadowDOM:F(new Ee(144,"useShadowDOM",!0)),useTabStops:F(new Ee(145,"useTabStops",!0,{description:p(704,null)})),wordBreak:F(new Tt(146,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[p(707,null),p(706,null)],description:p(705,null)})),wordSegmenterLocales:F(new d_),wordSeparators:F(new to(148,"wordSeparators",xP,{description:p(709,null)})),wordWrap:F(new Tt(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:F(new to(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:F(new to(151,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:F(new Xe(152,"wordWrapColumn",80,1,1073741824,{markdownDescription:p(715,null)})),wordWrapOverride1:F(new Tt(153,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:F(new Tt(154,"wordWrapOverride2","inherit",["off","on","inherit"])),wrapOnEscapedLineFeeds:F(new Ee(160,"wrapOnEscapedLineFeeds",!1,{markdownDescription:p(716,null)})),effectiveCursorStyle:F(new AP),editorClassName:F(new kP),defaultColorDecorators:F(new Tt(167,"defaultColorDecorators","auto",["auto","always","never"],{enumDescriptions:[p(383,null),p(382,null),p(384,null)],description:p(353,null)})),pixelRatio:F(new JP),tabFocusMode:F(new Ee(164,"tabFocusMode",!1,{markdownDescription:p(690,null)})),layoutInfo:F(new VP),wrappingInfo:F(new u_),wrappingIndent:F(new c_),wrappingStrategy:F(new BP),effectiveEditContextEnabled:F(new OP),effectiveAllowVariableFonts:F(new LP)};var yn=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 Fe=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 yn(t.endLineNumber,t.endColumn)}getStartPosition(){return i.getStartPosition(this)}static getStartPosition(t){return new yn(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 zy=class{constructor(){this._tokenizationSupports=new Map;this._factories=new Map;this._onDidChange=new T;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]),Y(()=>{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 f_(this,t,e);return this._factories.set(t,n),Y(()=>{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}},f_=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 e$;(r=>{let i=new Map;i.set(0,le.symbolMethod),i.set(1,le.symbolFunction),i.set(2,le.symbolConstructor),i.set(3,le.symbolField),i.set(4,le.symbolVariable),i.set(5,le.symbolClass),i.set(6,le.symbolStruct),i.set(7,le.symbolInterface),i.set(8,le.symbolModule),i.set(9,le.symbolProperty),i.set(10,le.symbolEvent),i.set(11,le.symbolOperator),i.set(12,le.symbolUnit),i.set(13,le.symbolValue),i.set(15,le.symbolEnum),i.set(14,le.symbolConstant),i.set(16,le.symbolEnumMember),i.set(17,le.symbolKeyword),i.set(28,le.symbolSnippet),i.set(18,le.symbolText),i.set(19,le.symbolColor),i.set(20,le.symbolFile),i.set(21,le.symbolReference),i.set(22,le.symbolCustomColor),i.set(23,le.symbolFolder),i.set(24,le.symbolTypeParameter),i.set(25,le.account),i.set(26,le.issues),i.set(27,le.tools);function t(s){let a=i.get(s);return a||(console.info("No codicon found for CompletionItemKind "+s),a=le.symbolProperty),a}r.toIcon=t;function e(s){switch(s){case 0:return p(887,null);case 1:return p(883,null);case 2:return p(875,null);case 3:return p(880,null);case 4:return p(900,null);case 5:return p(872,null);case 6:return p(893,null);case 7:return p(884,null);case 8:return p(888,null);case 9:return p(890,null);case 10:return p(879,null);case 11:return p(889,null);case 12:return p(897,null);case 13:return p(899,null);case 14:return p(874,null);case 15:return p(877,null);case 16:return p(878,null);case 17:return p(886,null);case 18:return p(894,null);case 19:return p(873,null);case 20:return p(881,null);case 21:return p(891,null);case 22:return p(876,null);case 23:return p(882,null);case 24:return p(896,null);case 25:return p(898,null);case 26:return p(885,null);case 27:return p(895,null);case 28:return p(892,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})(e$||={});function tU(i){return!!i&&y.isUri(i.uri)&&Fe.isIRange(i.range)&&(Fe.isIRange(i.originSelectionRange)||Fe.isIRange(i.targetSelectionRange))}function h_(i){return!!i&&y.isUri(i.uri)&&Fe.isIRange(i.range)}var BX={17:p(848,null),16:p(849,null),4:p(850,null),13:p(851,null),8:p(852,null),9:p(853,null),21:p(854,null),23:p(855,null),7:p(856,null),0:p(857,null),11:p(858,null),10:p(859,null),19:p(860,null),5:p(861,null),1:p(862,null),2:p(863,null),20:p(864,null),15:p(865,null),18:p(866,null),24:p(867,null),3:p(868,null),6:p(869,null),14:p(870,null),22:p(871,null),25:p(902,null),12:p(903,null)};var v_;(o=>{let i=new Map;i.set(0,le.symbolFile),i.set(1,le.symbolModule),i.set(2,le.symbolNamespace),i.set(3,le.symbolPackage),i.set(4,le.symbolClass),i.set(5,le.symbolMethod),i.set(6,le.symbolProperty),i.set(7,le.symbolField),i.set(8,le.symbolConstructor),i.set(9,le.symbolEnum),i.set(10,le.symbolInterface),i.set(11,le.symbolFunction),i.set(12,le.symbolVariable),i.set(13,le.symbolConstant),i.set(14,le.symbolString),i.set(15,le.symbolNumber),i.set(16,le.symbolBoolean),i.set(17,le.symbolArray),i.set(18,le.symbolObject),i.set(19,le.symbolKey),i.set(20,le.symbolNull),i.set(21,le.symbolEnumMember),i.set(22,le.symbolStruct),i.set(23,le.symbolEvent),i.set(24,le.symbolOperator),i.set(25,le.symbolTypeParameter);function t(r){let s=i.get(r);return s||(console.info("No codicon found for SymbolKind "+r),s=le.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})(v_||={});var Hs=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 b_;(t=>{function i(e){return!e||typeof e!="object"?!1:typeof e.id=="string"&&typeof e.title=="string"}t.is=i})(b_||={});var WX=new zy;var y_=(o=>(o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=4]="Right",o[o.Full=7]="Full",o))(y_||{});var Kd=class{constructor(t,e){this._findMatchBrand=void 0;this.range=t,this.matches=e}};var Ky=class{constructor(t,e,n){this.regex=t,this.wordSeparators=e,this.simpleSearch=n}},Gy=class{constructor(t,e,n){this.reverseEdits=t;this.changes=e;this.trimAutoWhitespaceLineNumbers=n}};var Fu=(o=>(o[o.Hint=1]="Hint",o[o.Info=2]="Info",o[o.Warning=4]="Warning",o[o.Error=8]="Error",o))(Fu||{});(a=>{function i(l,d){return d-l}a.compare=i;let t=Object.create(null);t[8]=p(2962,null),t[4]=p(2966,null),t[2]=p(2964,null);function e(l){return t[l]||""}a.toString=e;let n=Object.create(null);n[8]=p(2963,null),n[4]=p(2967,null),n[2]=p(2965,null);function o(l){return n[l]||""}a.toStringPlural=o;function r(l){switch(l){case je.Error:return 8;case je.Warning:return 4;case je.Info:return 2;case je.Ignore:return 1}}a.fromSeverity=r;function s(l){switch(l){case 8:return je.Error;case 4:return je.Warning;case 2:return je.Info;case 1:return je.Ignore}}a.toSeverity=s})(Fu||={});var t$;(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(Fu.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})(t$||={});var jX=D("markerService");var n$=D("progressService");var tZ=Object.freeze({total(){},worked(){},done(){}}),rl=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)}},jy=class extends U{constructor(e,n){super();this.deferred=new pn;n.withProgress(e,o=>(this.reporter=o,this.lastStep&&o.report(this.lastStep),this.deferred.p)),this._register(Y(()=>this.deferred.complete()))}report(e){this.reporter?this.reporter.report(e):this.lastStep=e}};jy=R([C(1,n$)],jy);var nZ=D("editorProgressService");var I_=class{constructor(){this.data=new Map}add(t,e){An(_e(t)),An(st(e)),An(!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=>{Fw(t.dispose)&&t.dispose()}),this.data.clear()}},mt=new I_;var x_=class extends U{constructor(e,n="",o="",r=!0,s){super();this._onDidChange=this._register(new T);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 oU=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(){}},Yf=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(){}},rU=class i extends x_{static{this.ID="vs.actions.empty"}constructor(){super(i.ID,p(46,null),void 0,!1)}};var o$={EditorPane:"workbench.contributions.editors",EditorFactory:"workbench.contributions.editor.inputFactories"},P_={id:"default",displayName:p(5296,null),providerDisplayName:p(5293,null)};function Jy(i){if(Vs(i))return!1;let t=i;return t?.original!==void 0&&t.modified!==void 0}function iU(i){if(Vs(i))return!1;let t=i;return!t||t.resources&&!Array.isArray(t.resources)?!1:!!t.resources||!!t.multiDiffSource}function S_(i){if(Vs(i)||Jy(i))return!1;let t=i;return t?.primary!==void 0&&t.secondary!==void 0}function Qy(i){if(Vs(i))return!1;let t=i;return y.isUri(t?.base?.resource)&&y.isUri(t?.input1?.resource)&&y.isUri(t?.input2?.resource)&&y.isUri(t?.result?.resource)}var C_=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}},AZ=new C_;var T_=class extends U{};function Vs(i){return i instanceof T_}function r$(i){let t=i;return y.isUri(t?.preferredResource)}function i$(i){let t=i;return Vs(t?.primary)&&Vs(t?.secondary)}function sU(i){let t=i;return Vs(t?.modified)&&Vs(t?.original)}var E_=class{getOriginalUri(t,e){if(!t)return;if(Qy(t))return w_.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(Jy(t)||iU(t)||S_(t)||Qy(t))return;let n=r$(t)?t.preferredResource:t.resource;return!n||!e?.filterByScheme?n:this.filterUri(n,e.filterByScheme)}getSideEditors(t){return i$(t)||S_(t)?{primary:t.primary,secondary:t.secondary}:sU(t)||Jy(t)?{primary:t.modified,secondary:t.original}:{primary:void 0,secondary:void 0}}getCanonicalUri(t,e){if(!t)return;if(Qy(t))return w_.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(Jy(t)||iU(t)||S_(t)||Qy(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 w_=new E_;var k_=class{constructor(){this.editorSerializerConstructors=new Map;this.editorSerializerInstances=new Map}start(t){let e=this.instantiationService=t.get(mn);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 Yr(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),Y(()=>{this.editorSerializerConstructors.delete(t),this.editorSerializerInstances.delete(t)})}getEditorSerializer(t){return this.editorSerializerInstances.get(typeof t=="string"?t:t.typeId)}};mt.add(o$.EditorFactory,new k_);var UZ=D("agentHostConnectionsService");var __=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))}};mt.add("workbench.contrib.chatSessions.asyncActivation",new __);var D_;(l=>(l.CopilotCLI="copilotcli",l.CopilotCloud="copilot-cloud-agent",l.Local="local",l.Codex="openai-codex",l.Growth="copilot-growth",l.AgentHostCopilot="agent-host-copilotcli",l.AgentHostClaude="agent-host-claude",l.AgentHostCodex="agent-host-codex"))(D_||={});var Hu=D_.Local,s$;(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)}})(s$||={});var a$=D("chatSessionsService");var mr;(s=>{s.scheme=$.vscodeLocalChatSession;function t(a){let l=jn(ee.wrap(new TextEncoder().encode(a)),!1,!0);return y.from({scheme:s.scheme,authority:Hu,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===Hu?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=Gn(l[1]);return{chatSessionType:d,sessionId:new TextDecoder().decode(c.buffer)}}})(mr||={});function il(i){let t=mr.parseLocalSessionId(i);return t||i.toString()}function Gd(i){return i.scheme===$.vscodeChatEditor?Hu:i.scheme===mr.scheme?i.authority||Hu:i.scheme}function jd(i){return i.path.startsWith("/untitled-")}function l$(i){if(!i||typeof i!="object")return!1;if(Ye.isThemeIcon(i)||y.isUri(i))return!0;let t=i;return y.isUri(t.light)&&y.isUri(t.dark)}var Xf;(r=>{r.icon=le.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(10331,null);return s.filterUri&&(l=p(10332,null,tt(s.filterUri))),l}r.label=o})(Xf||={});function aU(i){return typeof i=="object"&&i!==null&&i.$mid==="agentHostChatReference"}function lU(i,t,e,n,o){let r;try{r=y.parse(i.chatResource)}catch{return}return{kind:"chatReference",id:t,name:e,value:r,endTurn:i.endTurn,range:n,_meta:o}}var sl;(n=>{function i(o){return y.isUri(o.value)?o.value:h_(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:jn(ee.wrap(o.value))},r}return Yy(o)&&o.imageData instanceof Uint8Array?{...o,imageData:{$base64:jn(ee.wrap(o.imageData))}}: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=Gn(o.value.$base64).buffer,r}return Yy(o)&&o.imageData&&typeof o.imageData=="object"&&"$base64"in o.imageData&&typeof o.imageData.$base64=="string"?{...o,imageData:Gn(o.imageData.$base64).buffer}:o}n.fromExport=e})(sl||={});function dU(i){return i.kind==="implicit"}function cU(i){return i.kind==="string"}function R_(i){return i.kind==="image"}function Yy(i){return i.kind==="element"}function Zf(i){return i.kind==="promptFile"}function uU(i){return i.kind==="promptText"}function pU(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||y.isUri(t.resourceUri))&&(typeof t.name=="string"||y.isUri(t.resourceUri))&&(t.iconPath===void 0||l$(t.iconPath))&&y.isUri(t.uri)&&typeof t.handle=="number"}function al(i,t,e,n=!1,o){return{id:`${t}__${i.toString()}`,name:`prompt:${tt(i)}`,value:i,kind:"promptFile",modelDescription:"Prompt instructions file",isRoot:t!=="vscode.instructions.file.reference",originLabel:e,toolReferences:o,automaticallyAdded:n}}function mU(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 gU(i,t){return{kind:"tool",id:i.id,icon:Ye.isThemeIcon(i.icon)?i.icon:void 0,name:i.displayName,value:void 0,range:t}}var Qd=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 _n=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return bU(t,this)}},fU=new Map,M_=new WeakMap;function bU(i,t){let e=M_.get(i);if(e)return e;let n=d$(i,t);if(n){let o=fU.get(n)??0;o++,fU.set(n,o);let r=o===1?n:`${n}#${o}`;return M_.set(i,r),r}}function d$(i,t){let e=M_.get(i);if(e)return e;let n=t.owner?u$(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=eh(s),o!==void 0))return n+o;if(t.owner!==void 0){let a=c$(t.owner,i);if(a!==void 0)return n+a}}function c$(i,t){for(let e in i)if(i[e]===t)return e}var hU=new Map,vU=new WeakMap;function u$(i){let t=vU.get(i);if(t)return t;let e=A_(i)??"Object",n=hU.get(e)??0;n++,hU.set(e,n);let o=n===1?e:`${e}#${n}`;return vU.set(i,o),o}function A_(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function eh(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function ko(i,t){return i===t}function p$(){return(i,t)=>i===t}function O_(i,t,e){return Jt(i,t,e??ko)}function m$(i){return(t,e)=>Jt(t,e,i??ko)}function Vu(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(!Vu(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)||!Vu(e[a],n[a]))return!1;return!0}return!1}function g$(){return(i,t)=>Vu(i,t)}function f$(i,t){return JSON.stringify(i)===JSON.stringify(t)}function h$(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function v$(){return(i,t)=>i.equals(t)}function b$(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function y$(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var I$;(u=>(u.strict=ko,u.strictC=p$,u.array=O_,u.arrayC=m$,u.structural=Vu,u.structuralC=g$,u.jsonStringify=f$,u.jsonStringifyC=h$,u.thisC=v$,u.ifDefined=b$,u.ifDefinedC=y$))(I$||={});function L_(i){let t=new Error("BugIndicatingErrorRecovery: "+i);_t(t),console.error("recovered from an error that indicates a bug",t)}var Jd;function th(i){Jd?Jd instanceof Xy?Jd.loggers.push(i):Jd=new Xy([Jd,i]):Jd=i}function $t(){return Jd}var N_;function yU(i){N_=i}function IU(i){N_&&N_(i)}var Xy=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 dl(i,t){let e=new ll(i,t);try{i(e)}finally{e.finish()}}function U_(i,t,e){i?t(i):dl(t,e)}var ll=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];$t()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():eh(this._fn)}updateObserver(t,e){if(!this._updatingObservers){L_("Transaction already finished!"),dl(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){L_("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,$t()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var an;(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,F_.fromStack(s,2)}n.ofCaller=e})(an||={});var F_=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=x$(n[e+1]);if(o)return new i(o.fileName,o.line,o.column,o.id)}};function x$(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 H_;function xU(i){H_=i}var SU;function CU(i){SU=i}var TU;function EU(i){TU=i}var V_;function wU(i){V_=i}var nh=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=an.ofCaller()){let o=e===void 0?void 0:t,r=e===void 0?t:e;return H_({owner:o,debugName:()=>{let s=eh(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 H_({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(SU(this,e)),this}keepObserved(t){return t.add(TU(this)),this}get debugValue(){return this.get()}get debug(){return new B_(this)}},B_=class{constructor(t){this.observable=t}getDependencyGraph(){return V_(this.observable,{type:"dependencies"})}getObserverGraph(){return V_(this.observable,{type:"observers"})}},gr=class extends nh{constructor(e){super();this._observers=new Set;$t()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&$t()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&$t()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!$t();return IU(this),e||$t()?.handleObservableCreated(this,an.ofCaller()),this}debugGetObservers(){return this._observers}};function gn(i,t,e=an.ofCaller()){let n;return typeof i=="string"?n=new _n(void 0,i,void 0):n=new _n(i,void 0,void 0),new zi(n,t,ko,e)}var zi=class extends gr{constructor(e,n,o,r){super(r);this._debugNameData=e;this._equalityComparator=o;this._value=n,$t()?.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 ll(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),$t()?.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 Zy=class extends gr{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){$t()?.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{$t()?.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 ll(()=>{},()=>`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 Bs(i,t,e=an.ofCaller()){return i.lazy?new Zy(new _n(i.owner,i.debugName,void 0),t,i.equalsFn??ko,e):new zi(new _n(i.owner,i.debugName,void 0),t,i.equalsFn??ko,e)}function S$(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Ws=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),$t()?.handleAutorunCreated(this,o),this._run(),Ba(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(),$t()?.handleAutorunDisposed(this),Wa(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){$t()?.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){Na(o)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||$t()?.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--}af(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){$t()?.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){Na(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new Pt("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 Pt("Cannot access store after dispose");return this._store===void 0&&(this._store=new G),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new Pt("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new G),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:S$(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?(Na(new Pt(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function uo(i,t=an.ofCaller()){return new Ws(new _n(void 0,void 0,i),i,void 0,t)}function W_(i,t,e=an.ofCaller()){let n,o=!1;n=uo(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 C$(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Un=class extends gr{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,$t()?.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),$t()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:r})}catch(o){Na(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 Pt("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)}}af(()=>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){$t()?.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){Na(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 Pt("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 G),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new G),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:C$(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 $s(i,t,e=an.ofCaller()){return t!==void 0?new Un(new _n(i,void 0,t),t,void 0,void 0,ko,e):new Un(new _n(void 0,void 0,i),i,void 0,void 0,ko,e)}function oh(i,t,e=an.ofCaller()){return new Un(new _n(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??ko,e)}xU(oh);function po(...i){let t,e,n,o;return i.length===2?[e,n]=i:[t,e,n,o]=i,new Or(new _n(t,void 0,n),e,n,()=>Or.globalTransaction,ko,o??an.ofCaller())}var Or=class extends gr{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,s=!r||!this._equalityComparator(o,n),a=!1;s&&(this._value=n,this._hasValue=!0,r&&(a=!0,U_(this._getTransaction(),l=>{$t()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:s,hadValue:r});for(let d of this._observers)l.updateObserver(d,this),d.handleChange(this,void 0)},()=>{let l=this.getDebugName();return"Event fired"+(l?`: ${l}`:"")}))),a||$t()?.handleObservableUpdated(this,{oldValue:o,newValue:n,change:void 0,didChange:s,hadValue:r})}}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=Or;function t(n,o){let r=!1;Or.globalTransaction===void 0&&(Or.globalTransaction=n,r=!0);try{o()}finally{r&&(Or.globalTransaction=void 0)}}e.batchEventsGlobally=t})(po||={});function kU(i){let t=new eI(!1,void 0);return i.addObserver(t),Y(()=>{i.removeObserver(t)})}EU(kU);function PU(i,t){let e=new eI(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return Y(()=>{i.removeObserver(e)})}CU(PU);var eI=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 tI(i){return new $_(i)}var $_=class extends nh{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 rh(i,t,e=an.ofCaller()){return new z_(typeof i=="string"?i:new _n(i,void 0,void 0),t,e)}var z_=class extends gr{constructor(e,n,o){super(o);this.event=n;this.handleEvent=()=>{dl(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 nI;function _U(i){nI||(nI=new ih,th(nI)),nI.addFilteredObj(i)}var ih=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 _$([Bu(M$("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[Bu(" "),Lr(fr(t.oldValue,70),{color:"red",strikeThrough:!0}),Bu(" "),Lr(fr(t.newValue,60),{color:"green"})]:[Bu(" (unchanged)")]:[Bu(" "),Lr(fr(t.newValue,60),{color:"green"}),Bu(" (initial)")]}handleObservableCreated(t){if(t instanceof Un){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 Un){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Wu("observable value changed"),Lr(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return Lr(" (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([Wu("derived recomputed"),Lr(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([Wu("derived cleared"),Lr(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Wu("observable from event triggered"),Lr(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([Wu("autorun"),Lr(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([Wu("transaction"),Lr(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function _$(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 Bu(i){return Lr(i,{color:"black"})}function Wu(i){return Lr(A$(`${i}: `,10),{color:"black",bold:!0})}function Lr(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 fr(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)?D$(i,t):R$(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function D$(i,t){let e="[ ",n=!0;for(let o of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${fr(o,t-e.length)}`}return e+=" ]",e}function R$(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=A_(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}: ${fr(s,t-n.length)}`}return n+=e?")":" }",n}function M$(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function A$(i,t){for(;i.length<t;)i+=" ";return i}var oI=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)=>{if(s!=="then")return 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)=>{if(s!=="then")return(...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 DU(i,t){let e=globalThis,n=[],o,{channel:r,handler:s}=O$({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},oI.createClient(r,()=>{if(!a)throw new Error("Not supported");return a})}function O$(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 rI=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 q_(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?q_(i[e],t[e]):i[e]=t[e]}function K_(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"?K_(i[e],t[e]):i[e]=t[e]}var iI=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=DU("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(Io)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(Io),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(Io)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(Io)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof Un)n.debugSetValue(e);else if(n instanceof zi)n.debugSetValue(e);else if(n instanceof Or)n.debugSetValue(e);else throw new Pt("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 Un)return fr(e.debugGetState().value,200);if(e instanceof zi)return fr(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 Pt("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof Un)e.debugRecompute();else if(e instanceof Ws)e.debugRerun();else throw new Pt("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new rI;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};an.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){_t(new Pt("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){_t(new Pt("No info found"));return}return e}_getInfo(t,e){if(t instanceof Un){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(Io);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 Ws){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 Un)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){K_(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:q_(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 Un?"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 Un){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=fr(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=fr(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 RU(i,t){let e=t?.debugNamePostProcessor??(r=>r),n=Yd.from(i,e);if(!n)return"";let o=new Set;return t.type==="observers"?AU(n,0,o,t).trim():MU(n,0,o,t).trim()}function MU(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: ${fr(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=Yd.from(a,n.debugNamePostProcessor??(d=>d))??Yd.unknown(a);r.push(MU(l,t+1,e,n))}}return r.join(`
`)}function AU(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: ${fr(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=Yd.from(a,n.debugNamePostProcessor??(d=>d))??Yd.unknown(a);r.push(AU(l,t+1,e,n))}}return r.join(`
`)}var Yd=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 Ws){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof Un){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 zi){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof Or){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",[],[])}};wU(RU);yU(_U);var U$=!1;U$&&th(new ih);xo&&xo.VSCODE_DEV_DEBUG_OBSERVABLES&&th(iI.getInstance());function F$(i){return!!i&&typeof i=="object"&&"uri"in i&&i.uri instanceof y&&"version"in i&&typeof i.version=="number"&&"ranges"in i&&Array.isArray(i.ranges)&&i.ranges.every(Fe.isIRange)}function LU(i){return!!i&&typeof i=="object"&&"documents"in i&&Array.isArray(i.documents)&&i.documents.every(F$)}function NU(i){return!!i&&typeof i=="object"&&"command"in i&&"language"in i}var Me;(m=>{let i;(A=>(A[A.Streaming=0]="Streaming",A[A.WaitingForConfirmation=1]="WaitingForConfirmation",A[A.Executing=2]="Executing",A[A.WaitingForPostApproval=3]="WaitingForPostApproval",A[A.Completed=4]="Completed",A[A.Cancelled=5]="Cancelled",A[A.WaitingForAuthentication=6]="WaitingForAuthentication"))(i=m.StateKind||={});function t(g,v){if(g.kind==="toolInvocationSerialized")return g.isConfirmed===void 0||typeof g.isConfirmed=="boolean"?{type:g.isConfirmed?4:0}:g.isConfirmed;let h=g.state.read(v);if(!(h.type===0||h.type===1))return h.type===5?{type:h.reason}:h.confirmed}m.executionConfirmedOrDenied=t;function e(g,v){let h=t(g);if(h)return Promise.resolve(h);let I=new G;return new Promise(S=>{v&&I.add(v.onCancellationRequested(()=>{S({type:0})})),I.add(uo(w=>{let P=t(g,w);P&&(I.dispose(),S(P))}))}).finally(()=>{I.dispose()})}m.awaitConfirmation=e;function n(g,v){let h=g.state.read(v);if(h.type===4)return h.postConfirmed||{type:1};if(h.type===5)return{type:h.reason}}function o(g,v){let h=g?.state.get();return h?.type===1||h?.type===3?(h.confirm(v),!0):!1}m.confirmWith=o;function r(g,v){let h=n(g);if(h)return Promise.resolve(h);let I=new G;return new Promise(S=>{v&&I.add(v.onCancellationRequested(()=>{S({type:0})})),I.add(uo(w=>{let P=n(g,w);P&&(I.dispose(),S(P))}))}).finally(()=>{I.dispose()})}m.awaitPostConfirmation=r;function s(g,v){if(g.kind==="toolInvocationSerialized")return g.resultDetails;let h=g.state.read(v);if(h.type===4||h.type===3)return h.resultDetails}m.resultDetails=s;function a(g,v){if(g.kind==="toolInvocationSerialized")return!0;let h=g.state.read(v);return h.type===4||h.type===5}m.isComplete=a;function l(g,v){return!!(g.presentation==="hidden"||g.presentation==="hiddenAfterComplete"&&a(g,v))}m.isEffectivelyHidden=l;function d(g,v){return g.kind==="toolInvocationSerialized"?!1:g.state.read(v).type===0}m.isStreaming=d;function c(g,v){if(g.kind==="toolInvocationSerialized")return;let h=g.state.read(v);if(h.type!==0)return h.parameters}m.getParameters=c;function u(g,v){if(g.kind==="toolInvocationSerialized")return;let h=g.state.read(v);if(h.type!==0)return h.confirmationMessages}m.getConfirmationMessages=u})(Me||={});var H$;(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})(H$||={});var Yo=D("IChatService");var sn=D("configurationService");function UU(i){switch(i){case 1:return"APPLICATION";case 2:return"USER";case 3:return"USER_LOCAL";case 4:return"USER_REMOTE";case 5:return"WORKSPACE";case 6:return"WORKSPACE_FOLDER";case 7:return"DEFAULT";case 8:return"MEMORY"}}function sI(i,t){let e=Object.create(null);for(let n in i)G_(e,n,i[n],t);return e}function G_(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 FU(i,t){let e=t.split(".");HU(i,e)}function HU(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)&&(HU(o,t),Object.keys(o).length===0&&delete e[n])}}function sh(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 VU(i){return i.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}var fie=new E("isMac",cn,p(2672,null)),hie=new E("isLinux",lo,p(2671,null)),vie=new E("isWindows",Ct,p(2676,null)),BU=new E("isWeb",ar,p(2675,null)),j_=new E("isMacNative",cn&&!ar,p(2673,null)),bie=new E("isIOS",JO,p(2670,null)),yie=new E("isMobile",YO,p(2674,null)),Iie=new E("isDevelopment",!1,!0),xie=new E("productQualityType","",p(2677,null)),V$="inputFocus",Sie=new E(V$,!1,p(2669,null));var Q_=D("languageService");var J_=D("modelService");var $ie=new E("workbenchState",void 0,{type:"string",description:p(5291,null)}),zie=new E("workspaceFolderCount",0,p(5292,null)),qie=new E("openFolderWorkspaceSupport",!0,!0),Kie=new E("enterMultiRootWorkspaceSupport",!0,!0),Gie=new E("emptyWorkspaceSupport",!0,!0),jie=new E("dirtyWorkingCopies",!1,p(5231,null)),WU=new E("remoteName","",p(5268,null)),Qie=new E("virtualWorkspace","",p(5290,null)),Jie=new E("temporaryWorkspace",!1,p(5284,null)),$U=new E("isSessionsWindow",!1,p(5254,null)),Yie=new E("hasWebFileSystemAccess",!1,!0),Xie=new E("embedderIdentifier",void 0,p(5243,null)),Zie=new E("inAutomation",!1,p(5246,null)),ese=new E("isEnabledFileDownloads",!0,!0),tse=new E("isEnabledFileUploads",!0,!0),nse=new E("isEnabledCoderGettingStarted",!0,!0),ose=new E("isFullscreen",!1,p(5252,null)),rse=new E("isAuxiliaryWindowFocusedContext",!1,p(5249,null)),ise=new E("isWindowAlwaysOnTop",!1,p(5256,null)),zU=new E("isAuxiliaryWindow",!1,p(5248,null)),B$=Je.or(j_,Je.and(Je.notEquals("config.window.menuBarVisibility","hidden"),Je.notEquals("config.window.menuBarVisibility","toggle"),Je.notEquals("config.window.menuBarVisibility","compact"))),sse=Je.and(j_.negate(),B$),ase=new E("activeEditorIsDirty",!1,p(5219,null)),lse=new E("activeEditorIsNotPreview",!1,p(5222,null)),dse=new E("activeEditorIsFirstInGroup",!1,p(5220,null)),cse=new E("activeEditorIsLastInGroup",!1,p(5221,null)),use=new E("activeEditorIsPinned",!1,p(5223,null)),pse=new E("activeEditorIsReadonly",!1,p(5224,null)),mse=new E("activeCompareEditorCanSwap",!1,p(5207,null)),gse=new E("activeEditorCanToggleReadonly",!0,p(5214,null)),fse=new E("activeEditorCanRevert",!1,p(5213,null)),hse=new E("activeEditorCanSplitInGroup",!0),vse=new E("activeEditorCannotClose",!1,p(5212,null)),bse=new E("activeEditor",null,{type:"string",description:p(5210,null)}),yse=new E("activeEditorAvailableEditorIds","",p(5211,null)),Ise=new E("textCompareEditorVisible",!1,p(5286,null)),xse=new E("textCompareEditorActive",!1,p(5285,null)),Sse=new E("sideBySideEditorActive",!1,p(5281,null)),Cse=new E("activeCustomEditorDiffCanToggleLayout",!1,p(5208,null)),Tse=new E("activeCustomEditorTextDiff",!1,p(5209,null)),Ese=new E("groupEditorsCount",0,p(5245,null)),wse=new E("isTopRightEditorGroup",!1,p(5255,null)),kse=new E("activeEditorGroupEmpty",!1,p(5215,null)),Pse=new E("activeEditorGroupIndex",0,p(5216,null)),_se=new E("activeEditorGroupLast",!1,p(5217,null)),Dse=new E("activeEditorGroupLocked",!1,p(5218,null)),W$=new E("multipleEditorGroups",!1,p(5258,null)),Rse=W$.toNegated(),Mse=new E("multipleEditorsSelectedInGroup",!1,p(5259,null)),Ase=new E("twoEditorsSelectedInGroup",!1,p(5289,null)),Ose=new E("SelectedEditorsInGroupFileOrUntitledResourceContextKey",!0,p(5278,null)),Lse=new E("editorPartMultipleEditorGroups",!1,p(5241,null)),Nse=new E("editorPartMaximizedEditorGroup",!1,p(5234,null)),Use=new E("editorPartModal",!1,p(5235,null)),Fse=new E("editorPartModalVisible",!1,p(5240,null)),Hse=new E("editorPartModalMaximized",!1,p(5236,null)),Vse=new E("editorPartModalNavigation",!1,p(5237,null)),Bse=new E("editorPartModalSidebar",!1,p(5238,null)),Wse=new E("editorPartModalSidebarVisible",!1,p(5239,null)),$se=new E("editorIsOpen",!1,p(5233,null)),zse=new E("editorAreaFocus",!1,p(5232,null)),qse=new E("inZenMode",!1,p(5247,null)),Kse=new E("isCenteredLayout",!1,p(5253,null)),Gse=new E("splitEditorsVertically",!1,p(5282,null)),jse=new E("mainEditorAreaVisible",!0,p(5257,null)),Qse=new E("editorTabsVisible",!0,p(5242,null)),Jse=new E("sideBarVisible",!1,p(5280,null)),Yse=new E("sideBarFocus",!1,p(5279,null)),Xse=new E("activeViewlet","",p(5226,null)),Zse=new E("statusBarFocused",!1,p(5283,null)),eae=new E("titleBarStyle","custom",p(5287,null)),tae=new E("titleBarVisible",!1,p(5288,null)),nae=new E("isCompactTitleBar",!1,p(5250,null)),oae=new E("bannerFocused",!1,p(5230,null)),rae=new E("notificationFocus",!0,p(5261,null)),iae=new E("notificationCenterVisible",!1,p(5260,null)),sae=new E("notificationToastsVisible",!1,p(5262,null)),aae=new E("activeAuxiliary","",p(5206,null)),lae=new E("auxiliaryBarFocus",!1,p(5227,null)),dae=new E("auxiliaryBarVisible",!1,p(5229,null)),cae=new E("secondarySideBarVisible",!1,p(5277,null)),uae=new E("auxiliaryBarMaximized",!1,p(5228,null)),pae=new E("activePanel","",p(5225,null)),mae=new E("panelFocus",!1,p(5264,null)),gae=new E("panelPosition","bottom",p(5266,null)),fae=new E("panelAlignment","center",p(5263,null)),hae=new E("panelVisible",!1,p(5267,null)),vae=new E("panelMaximized",!1,p(5265,null)),bae=new E("focusedView","",p(5244,null));var Ho=class{constructor(t,e,n,o){this._contextKeyService=t;this._fileService=e;this._languageService=n;this._modelService=o;this._schemeKey=Ho.Scheme.bindTo(this._contextKeyService),this._filenameKey=Ho.Filename.bindTo(this._contextKeyService),this._dirnameKey=Ho.Dirname.bindTo(this._contextKeyService),this._pathKey=Ho.Path.bindTo(this._contextKeyService),this._langIdKey=Ho.LangId.bindTo(this._contextKeyService),this._resourceKey=Ho.Resource.bindTo(this._contextKeyService),this._extensionKey=Ho.Extension.bindTo(this._contextKeyService),this._hasResource=Ho.HasResource.bindTo(this._contextKeyService),this._isFileSystemResource=Ho.IsFileSystemResource.bindTo(this._contextKeyService)}static{this.Scheme=new E("resourceScheme",void 0,{type:"string",description:p(5275,null)})}static{this.Filename=new E("resourceFilename",void 0,{type:"string",description:p(5272,null)})}static{this.Dirname=new E("resourceDirname",void 0,{type:"string",description:p(5270,null)})}static{this.Path=new E("resourcePath",void 0,{type:"string",description:p(5274,null)})}static{this.LangId=new E("resourceLangId",void 0,{type:"string",description:p(5273,null)})}static{this.Resource=new E("resource",void 0,{type:"URI",description:p(5269,null)})}static{this.Extension=new E("resourceExtname",void 0,{type:"string",description:p(5271,null)})}static{this.HasResource=new E("resourceSet",void 0,{type:"boolean",description:p(5276,null)})}static{this.IsFileSystemResource=new E("isFileSystemResource",void 0,{type:"boolean",description:p(5251,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,!nn(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?tt(t):null),this._dirnameKey.set(t?this.uriToPath(Go(t)):null),this._pathKey.set(t?this.uriToPath(t):null),this._setLangId(),this._extensionKey.set(t?ty(t):null),this._hasResource.set(!!t),this._isFileSystemResource.set(t?this._fileService.hasProvider(t):!1)}))}uriToPath(t){return t.scheme===$.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}};Ho=R([C(0,Dr),C(1,To),C(2,Q_),C(3,J_)],Ho);var aI=class extends Ho{constructor(e,n,o,r){super(e,n,o,r);this._disposables=new G;this._disposables.add(n.onDidChangeFileSystemProviderRegistrations(()=>{let s=this.get();this._isFileSystemResource.set(!!(s&&n.hasProvider(s)))})),this._disposables.add(r.onModelAdded(s=>{nn(s.uri,this.get())&&this._setLangId()})),this._disposables.add(r.onModelLanguageChanged(s=>{nn(s.model.uri,this.get())&&this._setLangId()}))}dispose(){this._disposables.dispose()}};aI=R([C(0,Dr),C(1,To),C(2,Q_),C(3,J_)],aI);function qU(i,t){return i.dependencies?.[t]?.replace(/^[~^]/,"")}var $n,Y_=globalThis.vscode;if(typeof Y_<"u"&&typeof Y_.context<"u"){let i=Y_.context.configuration();if(i)$n=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){$n=globalThis._VSCODE_PRODUCT_JSON;let i=globalThis._VSCODE_PACKAGE_JSON;if(xo.VSCODE_DEV&&Object.assign($n,{nameShort:`${$n.nameShort} Dev`,nameLong:`${$n.nameLong} Dev`,dataFolderName:`${$n.dataFolderName}-dev`,serverDataFolderName:$n.serverDataFolderName?`${$n.serverDataFolderName}-dev`:void 0}),$n.version||Object.assign($n,{version:i.version}),!$n.copilotVersions){let t=qU(i,"@github/copilot"),e=qU(i,"@github/copilot-sdk");t&&e&&Object.assign($n,{copilotVersions:{runtime:t,sdk:e}})}Object.assign($n,{extensionsGallery:xo.EXTENSIONS_GALLERY?JSON.parse(xo.EXTENSIONS_GALLERY):$n.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:xo.CS_TELEMETRY_URL||$n.telemetryEndpoint||"https://v1.telemetry.coder.com/track"})}else $n={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",nodejsArtifactFeed:"",electronArtifactFeed:"",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.11",sha256:"a962a1e6a3baf74c9354b7f47fa96e6d6f0423a63bff55d7f976b6134a748ae9",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",optimizeUsageDocumentationUrl:"https://aka.ms/token-usage-tips",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.135.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.135.0",commit:"de89acbcdce9d9b870008a270c9f6466993d91f4",date:"2026-08-25T14:26:52Z"},Object.keys($n).length===0&&Object.assign($n,{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 hr=$n;var lI="chat.disableAIFeatures";var $$={"**/.vscode/*.json":!1,"**/.github/agents/**":!1,"**/.github/hooks/**":!1,"**/.claude/agents/**":!1,"**/.claude/settings.json":!1,"**/.claude/settings.local.json":!1},Cae={"**/*":!0,"**/.git/**":!1,"**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env,Cargo.toml}":!1,"**/{.npmrc,.yarnrc,.yarnrc.yml,.pnpmfile.js,.pnpmfile.cjs,.pnpmfile.mjs,pnpm-workspace.yaml}":!1,"**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props,gradle,gradle.kts}":!1,"**/gradle.properties":!1,"**/ruby_lsp/*/addon":!1,"**/*.lock":!1,"**/*-lock.{yaml,json}":!1,...$$};var KU=D("dialogService");var _ae=D("fileDialogService");var $u=D("productService"),GU="vscode://schemas/vscode-product";function jU(i){let t=!1,e=new Map,n=new Map;if(z$(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 zu(i){return typeof i=="object"&&i!==null}function z$(i,t){if(!i||typeof i!="object")return;let e=(...l)=>{for(let d of l)zu(d)&&s.push(d)},n=(...l)=>{for(let d of l)if(zu(d))for(let c in d){let u=d[c];zu(u)&&s.push(u)}},o=(...l)=>{for(let d of l)if(Array.isArray(d))for(let c of d)zu(c)&&s.push(c)},r=l=>{if(Array.isArray(l))for(let d of l)zu(d)&&s.push(d);else zu(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 Xd={JSONContribution:"base.contributions.json"};function QU(i){return i.length>0&&i.charAt(i.length-1)==="#"?i.substring(0,i.length-1):i}var X_=class extends U{constructor(){super(...arguments);this.schemasById={};this.schemaAssociations={};this._onDidChangeSchema=this._register(new T);this.onDidChangeSchema=this._onDidChangeSchema.event;this._onDidChangeSchemaAssociations=this._register(new T);this.onDidChangeSchemaAssociations=this._onDidChangeSchemaAssociations.event}registerSchema(e,n,o){let r=QU(e);this.schemasById[r]=n,this._onDidChangeSchema.fire(e),o&&o.add(Y(()=>{delete this.schemasById[r],this._onDidChangeSchema.fire(e)}))}registerSchemaAssociation(e,n){let o=QU(e);return this.schemaAssociations[o]||(this.schemaAssociations[o]=[]),this.schemaAssociations[o].includes(n)||(this.schemaAssociations[o].push(n),this._onDidChangeSchemaAssociations.fire()),Y(()=>{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?jU(n):void 0}hasSchemaContent(e){return!!this.schemasById[e]}getSchemaAssociations(){return this.schemaAssociations}},q$=new X_;mt.add(Xd.JSONContribution,q$);var Xo={Configuration:"base.contributions.configuration"};function K$(i,t){return i===t?!0:!i||!t?!1:typeof i=="string"||typeof t=="string"?i===t:i.id===t.id}var dI={properties:{},patternProperties:{}},cI={properties:{},patternProperties:{}},uI={properties:{},patternProperties:{}},pI={properties:{},patternProperties:{}},mI={properties:{},patternProperties:{}},gI={properties:{},patternProperties:{}},ah={properties:{},patternProperties:{}},Zd="vscode://schemas/settings/resourceLanguage";var fI=mt.as(Xd.JSONContribution),Z_=class extends U{constructor(){super();this.registeredConfigurationDefaults=[];this.excludedAgentHostSyncKeys=new Map;this.overrideIdentifiers=new Set;this._onDidSchemaChange=this._register(new T);this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=this._register(new T);this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:p(2654,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.policyReferenceConfigurations=new Map,this.agentHostSyncConfigurations=new Map,this.excludedConfigurationProperties={},fI.registerSchema(Zd,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),fI.registerSchema(Zd,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:o})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),fI.registerSchema(Zd,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),fI.registerSchema(Zd,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}),Nr.test(a)){let c=this.mergeDefaultConfigurationsForOverrideIdentifier(a,d,s,l.configurationDefaultOverrideValue);if(!c)continue;l.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(a,c,s),o.push(...qu(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?K$(d.source,r):d.value===o[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),Nr.test(s)){let d;for(let c of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForOverrideIdentifier(s,c.value,c.source,d);d&&!Ha(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(2653,null,VU(e)),$ref:Zd,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)&&(Ri(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&&(Ri(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=>{let s=this.excludedAgentHostSyncKeys.get(r);if(s){for(let a of s)n.add(a),this.agentHostSyncConfigurations.delete(a);this.excludedAgentHostSyncKeys.delete(r)}if(r.properties)for(let a in r.properties){n.add(a);let l=this.configurationProperties[a];if(l?.policy?.name&&this.policyConfigurations.delete(l.policy.name),this.agentHostSyncConfigurations.delete(a),l?.policyReference?.name){let d=this.policyReferenceConfigurations.get(l.policyReference.name);d&&(d.delete(a),d.size===0&&this.policyReferenceConfigurations.delete(l.policyReference.name))}delete this.configurationProperties[a],this.removeFromSchema(a,r.properties[a])}r.allOf?.forEach(a=>o(a))};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=Ut(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&&j$(c,u,o?.id)){delete l[c];continue}u.source=o,u.defaultDefaultValue=l[c].default,this.updatePropertyDefaultValue(c,u),Nr.test(c)?u.scope=void 0:(u.scope=Ut(u.scope)?s:u.scope,u.restricted=Ut(u.restricted)?!!r?.includes(c):u.restricted),u.experiment?u.tags?.some(I=>I.toLowerCase()==="onexp")||(u.tags=u.tags??[],u.tags.push("onExP")):u.tags?.some(I=>I.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,v=l[c].policyReference?.name,h=l[c].agentHost;if(h&&this.agentHostSyncConfigurations.set(c,h),m){if(this.excludedConfigurationProperties[c]=l[c],g&&(this.policyConfigurations.set(g,c),a.add(c)),v&&(this.addPolicyReferenceConfiguration(v,c),a.add(c)),h){a.add(c);let I=this.excludedAgentHostSyncKeys.get(e);I||(I=new Set,this.excludedAgentHostSyncKeys.set(e,I)),I.add(c)}delete l[c]}else a.add(c),g&&this.policyConfigurations.set(g,c),v&&this.addPolicyReferenceConfiguration(v,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)}addPolicyReferenceConfiguration(e,n){let o=this.policyReferenceConfigurations.get(e);o||(o=new Set,this.policyReferenceConfigurations.set(e,o)),o.add(n)}getConfigurations(){return this.configurationContributors}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getPolicyReferenceConfigurations(){return this.policyReferenceConfigurations}getAgentHostSyncConfigurations(){return this.agentHostSyncConfigurations}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(dI.properties[e]=n,n.scope){case 1:cI.properties[e]=n;break;case 2:pI.properties[e]=n;break;case 3:uI.properties[e]=n;break;case 7:mI.properties[e]=n;break;case 4:gI.properties[e]=n;break;case 5:ah.properties[e]=n;break;case 6:ah.properties[e]=n,this.resourceLanguageSettingsSchema.properties[e]=n;break}}removeFromSchema(e,n){switch(delete dI.properties[e],n.scope){case 1:delete cI.properties[e];break;case 2:delete pI.properties[e];break;case 3:delete uI.properties[e];break;case 7:delete mI.properties[e];break;case 4:delete gI.properties[e];break;case 5:case 6:delete ah.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let n=`[${e}]`,o={type:"object",description:p(2655,null),errorMessage:p(2656,null),$ref:Zd};this.updatePropertyDefaultValue(n,o),dI.properties[n]=o,cI.properties[n]=o,uI.properties[n]=o,pI.properties[n]=o,mI.properties[n]=o,gI.properties[n]=o,ah.properties[n]=o}}registerOverridePropertyPatternKey(){let e={type:"object",description:p(2655,null),errorMessage:p(2656,null),$ref:Zd};dI.patternProperties[cl]=e,cI.patternProperties[cl]=e,uI.patternProperties[cl]=e,pI.patternProperties[cl]=e,mI.patternProperties[cl]=e,gI.patternProperties[cl]=e,ah.patternProperties[cl]=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),Ri(r)&&(r=n.defaultDefaultValue,s=void 0),Ri(r)&&(r=G$(n.type)),n.default=r,n.defaultValueSource=s}},YU="\\[([^\\]]+)\\]",JU=new RegExp(YU,"g"),cl=`^(${YU})+$`,Nr=new RegExp(cl);function qu(i){let t=[];if(Nr.test(i)){let e=JU.exec(i);for(;e?.length;){let n=e[1].trim();n&&t.push(n),e=JU.exec(i)}}return No(t)}function G$(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 lh=new Z_;mt.add(Xo.Configuration,lh);function j$(i,t,e){if(!i.trim())return p(2651,null);if(Nr.test(i))return p(2652,null,i);if(lh.getConfigurationProperties()[i]!==void 0&&(!e||!Q$.has(e.toLowerCase())))return p(2650,null,i);if(t.policy&&t.policyReference)return p(2648,null,i);if(t.policy?.name&&lh.getPolicyConfigurations().get(t.policy?.name)!==void 0)return p(2649,null,i,t.policy?.name,lh.getPolicyConfigurations().get(t.policy?.name));if(t.agentHost){for(let[n,o]of lh.getAgentHostSyncConfigurations())if(o.key===t.agentHost.key&&n!==i)return p(2647,null,i,t.agentHost.key,n)}return null}var Q$=new Set(hr.defaultChatAgent?[hr.defaultChatAgent.extensionId,hr.defaultChatAgent.chatExtensionId].map(i=>i.toLowerCase()):[]);var hI=D("requestService");function J$(i){return i.res.statusCode&&i.res.statusCode>=200&&i.res.statusCode<300||i.res.statusCode===1223}function eF(i){return i.res.statusCode===204}async function tD(i){return eF(i)?null:(await qw(i.stream)).toString()}async function tF(i){if(!J$(i))throw new Error("Server returned "+i.res.statusCode);if(eF(i))return null;let e=(await qw(i.stream)).toString();try{return JSON.parse(e)}catch(n){throw n.message+=`:
`+e,n}}var Y$=!1,eD=[],XU,ZU;function X$(i=!0,t=!0){if(XU===i&&ZU===t)return;XU=i,ZU=t;let e=mt.as(Xo.Configuration),n=eD;eD=[{id:"http",order:15,title:p(3024,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:p(3039,null),restricted:!0}}},{id:"http",order:15,title:p(3024,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:p(3022,null),restricted:!0}}},{id:"http",order:15,title:p(3024,null),type:"object",scope:i?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:p(3027,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,agentHost:{key:"http.proxy",scope:"ambient",transform:o=>typeof o=="string"?o:""}},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:p(3035,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:p(3029,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,agentHost:{key:"http.proxyKerberosServicePrincipal",scope:"ambient",transform:o=>typeof o=="string"?o:""}},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:p(3026,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,agentHost:{key:"http.noProxy",scope:"ambient",transform:o=>Array.isArray(o)?o:[]}},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:p(3028,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[p(3032,null),p(3033,null),p(3031,null),p(3034,null)],default:"override",markdownDescription:p(3030,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:p(3036,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:Y$,markdownDescription:p(3037,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:p(3038,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(3023,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:p(3040,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:p(3025,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:eD,remove:n})}X$();var ul=class i extends U{constructor(e,n=Object.create(null)){super();this.database=e;this.options=n;this._onDidChangeStorage=this._register(new Ka);this.onDidChangeStorage=this._onDidChangeStorage.event;this.state=0;this.cache=new Map;this.flushDelayer=this._register(new iy(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;Ut(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 Ut(o)?n:o}getBoolean(e,n){let o=this.get(e);return Ut(o)?n:o==="true"}getNumber(e,n){let o=this.get(e);return Ut(o)?n:parseInt(o,10)}getObject(e,n){let o=this.get(e);return Ut(o)?n:Fy(o)}async set(e,n,o=!1){if(this.state===2)return;if(Ut(n))return this.delete(e,o);let r=st(n)||Array.isArray(n)?jN(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}},ec=class{constructor(){this.onDidChangeItemsExternal=Le.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(){}},nF="__$__migratedStorageMarker",oF=class i extends ul{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)&&Ri(super.get(e))){this.migratedKeys.add(e);let o=this.fallbackStorage?.items.get(e);Ri(o)||(this.set(e,o),this.isFallbackStorageReadonly||this.fallbackStorage?.delete(e),this.persistMigratedKeys())}return super.get(e,n)}loadMigratedKeys(){let e=super.get(nF);if(e)try{return new Set(JSON.parse(e))}catch{}return new Set}persistMigratedKeys(){this.set(nF,JSON.stringify([...this.migratedKeys]))}};var tc=D("environmentService"),yle=tc;var vr=D("IUriIdentityService");var ch="agents",Z$={settings:!0,keybindings:!0,prompts:!0,mcp:!0,languageModels:!0,snippets:!0,tasks:!0,extensions:!0};function iF(i){let t=i;return!!(t&&typeof t=="object"&&typeof t.id=="string"&&typeof t.isDefault=="boolean"&&typeof t.name=="string"&&y.isUri(t.location)&&y.isUri(t.globalStorageHome)&&y.isUri(t.settingsResource)&&y.isUri(t.keybindingsResource)&&y.isUri(t.tasksResource)&&y.isUri(t.snippetsHome)&&y.isUri(t.promptsHome)&&y.isUri(t.extensionsResource)&&y.isUri(t.mcpResource)&&y.isUri(t.languageModelsResource)&&y.isUri(t.agentPluginsHome))}var pl=D("IUserDataProfilesService");function qi(i,t){return{id:i.id,isDefault:i.isDefault,name:i.name,icon:i.icon,location:y.revive(i.location).with({scheme:t}),globalStorageHome:y.revive(i.globalStorageHome).with({scheme:t}),settingsResource:y.revive(i.settingsResource).with({scheme:t}),keybindingsResource:y.revive(i.keybindingsResource).with({scheme:t}),tasksResource:y.revive(i.tasksResource).with({scheme:t}),snippetsHome:y.revive(i.snippetsHome).with({scheme:t}),promptsHome:y.revive(i.promptsHome).with({scheme:t}),extensionsResource:y.revive(i.extensionsResource).with({scheme:t}),mcpResource:y.revive(i.mcpResource).with({scheme:t}),languageModelsResource:y.revive(i.languageModelsResource).with({scheme:t}),agentPluginsHome:y.revive(i.agentPluginsHome),cacheHome:y.revive(i.cacheHome).with({scheme:t}),useDefaultFlags:i.useDefaultFlags,isTransient:i.isTransient,isInternal:i.isInternal,isAgentsWindowProfile:i.isAgentsWindowProfile,workspaces:i.workspaces?.map(e=>y.revive(e))}}function vI(i,t,e,n,o,r){let s=i===ch;return{id:i,name:t,location:e,isDefault:!1,icon:o?.icon,globalStorageHome:r&&o?.useDefaultFlags?.globalState?r.globalStorageHome:Lt(e,"globalStorage"),settingsResource:r&&o?.useDefaultFlags?.settings?r.settingsResource:Lt(e,"settings.json"),keybindingsResource:r&&o?.useDefaultFlags?.keybindings?r.keybindingsResource:Lt(e,"keybindings.json"),tasksResource:r&&o?.useDefaultFlags?.tasks?r.tasksResource:Lt(e,"tasks.json"),snippetsHome:r&&o?.useDefaultFlags?.snippets?r.snippetsHome:Lt(e,"snippets"),promptsHome:r&&o?.useDefaultFlags?.prompts?r.promptsHome:Lt(e,"prompts"),extensionsResource:r&&o?.useDefaultFlags?.extensions?r.extensionsResource:Lt(e,"extensions.json"),mcpResource:r&&o?.useDefaultFlags?.mcp?r.mcpResource:Lt(e,"mcp.json"),languageModelsResource:r&&o?.useDefaultFlags?.languageModels?r.languageModelsResource:Lt(e,"chatLanguageModels.json"),agentPluginsHome:r?r.agentPluginsHome:Lt(e,"agent-plugins"),cacheHome:Lt(n,i),useDefaultFlags:o?.useDefaultFlags,isTransient:o?.transient,isInternal:s||o?.transient,isAgentsWindowProfile:s,workspaces:o?.workspaces}}var rF="builtin",bI=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 T);this.onDidChangeProfiles=this._onDidChangeProfiles.event;this._onWillCreateProfile=this._register(new T);this.onWillCreateProfile=this._onWillCreateProfile.event;this._onWillRemoveProfile=this._register(new T);this.onWillRemoveProfile=this._onWillRemoveProfile.event;this._onDidResetWorkspaces=this._register(new T);this.onDidResetWorkspaces=this._onDidResetWorkspaces.event;this.profileCreationPromises=new Map;this.transientProfilesObject={profiles:[],emptyWindows:new Map};this.profilesHome=Lt(this.environmentService.userRoamingDataHome,"profiles"),this.profilesCacheHome=Lt(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=tt(r.location);n.push(vI(s,r.name,r.location,this.profilesCacheHome,{icon:r.icon,useDefaultFlags:s===ch?Z$: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=y.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||!_e(e.name)||!e.location}createDefaultProfile(){let e=vI("__default__profile__",p(3478,null),this.environmentService.userRoamingDataHome,this.profilesCacheHome);return{...e,extensionsResource:this.getDefaultProfileExtensionsLocation()??e.extensionsResource,isDefault:!0}}async createTransientProfile(e){let n="Temp",o=new RegExp(`${dr(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(cr(Be()).toString(16),s,{transient:!0},e)}async createNamedProfile(e,n,o){return this.createProfile(cr(Be()).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(!_e(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!==ch&&!u.isTransient&&!o?.transient&&u.name===n))throw new Error(`Profile with ${n} name already exists`);let l=r?this.getWorkspace(r):void 0;y.isUri(l)&&(o={...o,workspaces:[l]});let d=vI(e,n,this.uriIdentityService.extUri.joinPath(this.profilesHome,...e===ch?[rF,e]:[e]),this.profilesCacheHome,e===ch?{}:o,this.defaultProfile);await this.fileService.createFolder(d.location);let c=[];return this._onWillCreateProfile.fire({profile:d,join(u){c.push(u)}}),await Za.settled(c),l&&!y.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=vI(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){Bd(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(y.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(y.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!==rF&&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 y.isUri(n)&&this.uriIdentityService.extUri.isEqual(n,this.environmentService.agentSessionsWorkspace)?this.profiles.find(o=>o.isAgentsWindowProfile):y.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 vN(e)?e.uri:bN(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(){}};bI=R([C(0,tc),C(1,To),C(2,vr),C(3,ie)],bI);var e7="__$__isNewStorageMarker",yI="__$__targetStorageMarker",Po=D("storageService");function t7(i){let t=i.get(yI);if(t)try{return JSON.parse(t)}catch{}return Object.create(null)}var oD=class i extends U{constructor(e={flushInterval:i.DEFAULT_FLUSH_INTERVAL}){super();this._onDidChangeValue=this._register(new Ka);this._onDidChangeTarget=this._register(new Ka);this.onDidChangeTarget=this._onDidChangeTarget.event;this._onWillSaveState=this._register(new T);this.onWillSaveState=this._onWillSaveState.event;this.runFlushWhenIdle=this._register(new dn);this._workspaceKeyTargets=void 0;this._profileKeyTargets=void 0;this._applicationKeyTargets=void 0;this._applicationSharedKeyTargets=void 0;this.flushWhenIdleScheduler=this._register(new Nn(()=>this.doFlushWhenIdle(),e.flushInterval))}static{this.DEFAULT_FLUSH_INTERVAL=60*1e3}onDidChangeValue(e,n,o){return Le.filter(this._onDidChangeValue.event,r=>r.scope===e&&(n===void 0||r.key===n),o)}doFlushWhenIdle(){this.runFlushWhenIdle.value=Ok(()=>{this.shouldFlushWhenIdle()&&this.flush(),this.flushWhenIdleScheduler.schedule()})}shouldFlushWhenIdle(){return!0}stopFlushWhenIdle(){kn([this.runFlushWhenIdle,this.flushWhenIdleScheduler])}initialize(){return this.initializationPromise||(this.initializationPromise=(async()=>{vn("code/willInitStorage");try{await this.doInitialize()}finally{vn("code/didInitStorage")}this.flushWhenIdleScheduler.schedule()})()),this.initializationPromise}emitDidChangeValue(e,n){let{key:o,external:r}=n;if(o===yI){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(Ut(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(yI,JSON.stringify(s),r)):typeof s[e]=="number"&&(delete s[e],this.getStorage(n)?.set(yI,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?t7(n):Object.create(null)}isNew(e){return this.getBoolean(e7,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 Za.settled([n?.whenFlushed()??Promise.resolve(),o?.whenFlushed()??Promise.resolve(),r?.whenFlushed()??Promise.resolve(),s?.whenFlushed()??Promise.resolve()]);break;case 1:await Za.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 n7(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),iF(e)?this.switchToProfile(e,n):this.switchToWorkspace(e,n)}canSwitchProfile(e,n){return!(e.id===n.id||sF(n)&&sF(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 sF(i){return i.isDefault||!!i.useDefaultFlags?.globalState}var II=class extends oD{constructor(){super();this.applicationStorage=this._register(new ul(new ec,{hint:1}));this.applicationSharedStorage=this._register(new ul(new ec,{hint:1}));this.profileStorage=this._register(new ul(new ec,{hint:1}));this.workspaceStorage=this._register(new ul(new ec,{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 n7(i,t,e,n,o,r,s,a){let l=A=>{try{return JSON.parse(A)}catch{return A}},d=new Map,c=new Map;i.forEach((A,L)=>{d.set(L,A),c.set(L,l(A))});let u=new Map,m=new Map;t.forEach((A,L)=>{u.set(L,A),m.set(L,l(A))});let g=new Map,v=new Map;e.forEach((A,L)=>{g.set(L,A),v.set(L,l(A))});let h=new Map,I=new Map;n.forEach((A,L)=>{h.set(L,A),I.set(L,l(A))}),console.group(o!==s?`Storage: Application (path: ${o})`:`Storage: Application & Profile (path: ${o}, default profile)`);let S=[];d.forEach((A,L)=>{S.push({key:L,value:A})}),console.table(S),console.groupEnd(),console.log(c),console.group(`Storage: Application Shared (path: ${r})`);let w=[];if(u.forEach((A,L)=>{w.push({key:L,value:A})}),console.table(w),console.groupEnd(),console.log(m),o!==s){console.group(`Storage: Profile (path: ${s}, profile specific)`);let A=[];g.forEach((L,V)=>{A.push({key:V,value:L})}),console.table(A),console.groupEnd(),console.log(v)}console.group(`Storage: Workspace (path: ${a})`);let P=[];h.forEach((A,L)=>{P.push({key:L,value:A})}),console.table(P),console.groupEnd(),console.log(I)}var Ur=D("telemetryService");var ade=D("customEndpointTelemetryService");var xI="__";function aF(i){return typeof i=="object"&&i!==null&&"wwwAuthenticate"in i&&typeof i.wwwAuthenticate=="string"}var lF=D("IAuthenticationService");var cde=D("IAuthenticationExtensionsService");var SI=D("openerService");var Ku=tc;var dF=D("lifecycleService");var CI=D("defaultAccountService");var ye;(a=>(a.Setup={hidden:new E("chatSetupHidden",!1,!0),installed:new E("chatSetupInstalled",!1,!0),disabled:new E("chatSetupDisabled",!1,!0),disabledInWorkspace:new E("chatSetupDisabledInWorkspace",!1,!0),untrusted:new E("chatSetupUntrusted",!1,!0),later:new E("chatSetupLater",!1,!0),registered:new E("chatSetupRegistered",!1,!0),completed:new E("chatSetupCompleted",!1,!0)},a.Entitlement={signedOut:new E("chatEntitlementSignedOut",!1,!0),canSignUp:new E("chatPlanCanSignUp",!1,!0),planFree:new E("chatPlanFree",!1,!0),planPro:new E("chatPlanPro",!1,!0),planEdu:new E("chatPlanEdu",!1,!0),planProPlus:new E("chatPlanProPlus",!1,!0),planMax:new E("chatPlanMax",!1,!0),planBusiness:new E("chatPlanBusiness",!1,!0),planEnterprise:new E("chatPlanEnterprise",!1,!0),organisations:new E("chatEntitlementOrganisations",void 0,!0),internal:new E("chatEntitlementInternal",!1,!0),sku:new E("chatEntitlementSku",void 0,!0)},a.chatQuotaExceeded=new E("chatQuotaExceeded",!1,!0),a.completionsQuotaExceeded=new E("completionsQuotaExceeded",!1,!0),a.chatAnonymous=new E("chatAnonymous",!1,!0),a.clientByokEnabled=new E("github.copilot.clientByokEnabled",!0,!0),a.hasByokModels=new E("github.copilot.hasByokModels",!1,!0)))(ye||={});var o7=D("chatEntitlementService");function r7(i){return i===10||i===6||i===7||i===11||i===8||i===9}var TI={upgradePlanUrl:hr.defaultChatAgent?.upgradePlanUrl??"",providerUriSetting:hr.defaultChatAgent?.providerUriSetting??"",entitlementSignupLimitedUrl:hr.defaultChatAgent?.entitlementSignupLimitedUrl??"",chatQuotaExceededContext:hr.defaultChatAgent?.chatQuotaExceededContext??"",completionsQuotaExceededContext:hr.defaultChatAgent?.completionsQuotaExceededContext??""},uF="chat.allowAnonymousAccess";function rD(i,t,e){return!(i.getValue(uF)!==!0||t!==1||e.hidden||e.disabledInWorkspace)}function pF(i,t,e){e.publicLog2("chatEntitlements",{chatHidden:!!i.hidden,chatDisabled:!!i.disabled,chatEntitlement:i.entitlement,chatRegistered:!!i.registered,chatAnonymous:rD(t,i.entitlement,i)})}var zs=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 T);this.onDidChangeQuotaExceeded=this._onDidChangeQuotaExceeded.event;this._onDidChangeQuotaRemaining=this._register(new T);this.onDidChangeQuotaRemaining=this._onDidChangeQuotaRemaining.event;this._onDidChangeUsageBasedBilling=this._register(new T);this.onDidChangeUsageBasedBilling=this._onDidChangeUsageBasedBilling.event;this.ExtensionQuotaContextKeys={chatQuotaExceeded:TI.chatQuotaExceededContext,completionsQuotaExceeded:TI.completionsQuotaExceededContext};this._onDidChangeAnonymous=this._register(new T);this.onDidChangeAnonymous=this._onDidChangeAnonymous.event;this.anonymousObs=po(this.onDidChangeAnonymous,()=>this.anonymous);let c=this.storageService.getBoolean(zs.CACHED_UBB_STORAGE_KEY,0);if(this._quotas=c!==void 0?{usageBasedBilling:c}:{},this.chatQuotaExceededContextKey=ye.chatQuotaExceeded.bindTo(this.contextKeyService),this.completionsQuotaExceededContextKey=ye.completionsQuotaExceeded.bindTo(this.contextKeyService),this.anonymousContextKey=ye.chatAnonymous.bindTo(this.contextKeyService),this.anonymousContextKey.set(this.anonymous),this.contextKeyService.getContextKeyValue(ye.clientByokEnabled.key)===void 0&&ye.clientByokEnabled.bindTo(this.contextKeyService),this.onDidChangeEntitlement=Le.map(Le.filter(this.contextKeyService.onDidChangeContext,m=>m.affectsSome(new Set([ye.Entitlement.planEdu.key,ye.Entitlement.planPro.key,ye.Entitlement.planBusiness.key,ye.Entitlement.planEnterprise.key,ye.Entitlement.planProPlus.key,ye.Entitlement.planMax.key,ye.Entitlement.planFree.key,ye.Entitlement.canSignUp.key,ye.Entitlement.signedOut.key,ye.Entitlement.organisations.key,ye.Entitlement.internal.key,ye.Entitlement.sku.key])),this._store),()=>{},this._store),this.entitlementObs=po(this.onDidChangeEntitlement,()=>this.entitlement),this.onDidChangeSentiment=Le.map(Le.filter(this.contextKeyService.onDidChangeContext,m=>m.affectsSome(new Set([ye.Setup.completed.key,ye.Setup.hidden.key,ye.Setup.disabled.key,ye.Setup.untrusted.key,ye.Setup.installed.key,ye.Setup.later.key,ye.Setup.registered.key])),this._store),()=>{},this._store),this.sentimentObs=po(this.onDidChangeSentiment,()=>this.sentiment),ar&&!o.remoteAuthority&&!o.isSessionsWindow){ye.Setup.hidden.bindTo(this.contextKeyService).set(!0);return}if(!n.defaultChatAgent)return;let u=this.context=new yt(()=>this._register(e.createInstance(si)));this.requests=new yt(()=>this._register(e.createInstance(mh,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(ye.Entitlement.planEdu.key)===!0?10:this.contextKeyService.getContextKeyValue(ye.Entitlement.planPro.key)===!0?6:this.contextKeyService.getContextKeyValue(ye.Entitlement.planBusiness.key)===!0?8:this.contextKeyService.getContextKeyValue(ye.Entitlement.planEnterprise.key)===!0?9:this.contextKeyService.getContextKeyValue(ye.Entitlement.planProPlus.key)===!0?7:this.contextKeyService.getContextKeyValue(ye.Entitlement.planMax.key)===!0?11:this.contextKeyService.getContextKeyValue(ye.Entitlement.planFree.key)===!0?5:this.contextKeyService.getContextKeyValue(ye.Entitlement.canSignUp.key)===!0?3:this.contextKeyService.getContextKeyValue(ye.Entitlement.signedOut.key)===!0?1:2}get isInternal(){return this.contextKeyService.getContextKeyValue(ye.Entitlement.internal.key)===!0}get organisations(){return this.contextKeyService.getContextKeyValue(ye.Entitlement.organisations.key)}get sku(){return this.contextKeyService.getContextKeyValue(ye.Entitlement.sku.key)}get copilotTrackingId(){return this.context?.value.state.copilotTrackingId}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 dn);this._register(this.contextKeyService.onDidChangeContext(s=>{s.affectsSome(e)&&(n.value&&n.value.cancel(),n.value=new Re,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&&pF(this.context.value.state,this.configurationService,this.telemetryService),this._onDidChangeAnonymous.fire())};this._register(this.configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration(uF)&&r()})),this._register(this.onDidChangeEntitlement(()=>r())),this._register(this.onDidChangeSentiment(()=>r()))}acceptQuotas(e){let n=this._quotas,o=this.quotaCopilotTrackingId===this.copilotTrackingId?n:{},r={...e,chat:e.chat?ph(o.chat,e.chat):void 0,completions:e.completions?ph(o.completions,e.completions):void 0,premiumChat:e.premiumChat?ph(o.premiumChat,e.premiumChat):void 0,sessionRateLimit:e.sessionRateLimit?ph(o.sessionRateLimit,e.sessionRateLimit):void 0,weeklyRateLimit:e.weeklyRateLimit?ph(o.weeklyRateLimit,e.weeklyRateLimit):void 0};this.quotaCopilotTrackingId=this.copilotTrackingId,this._quotas=r,this.updateContextKeys(),n.usageBasedBilling!==r.usageBasedBilling&&(r.usageBasedBilling!==void 0?this.storageService.store(zs.CACHED_UBB_STORAGE_KEY,r.usageBasedBilling,0,1):this.storageService.remove(zs.CACHED_UBB_STORAGE_KEY,0)),this.logService.getLevel()===1&&this.logService.trace(`[chat entitlement]: acceptQuotas: ${JSON.stringify(r)}`);let{changed:s}=this.compareQuotas(n.chat,r.chat),{changed:a}=this.compareQuotas(n.completions,r.completions),{changed:l}=this.compareQuotas(n.premiumChat,r.premiumChat);(s.exceeded||a.exceeded||l.exceeded)&&this._onDidChangeQuotaExceeded.fire();let d=n.sessionRateLimit?.percentRemaining!==r.sessionRateLimit?.percentRemaining,c=n.weeklyRateLimit?.percentRemaining!==r.weeklyRateLimit?.percentRemaining;(s.remaining||a.remaining||l.remaining||d||c||n.usageBasedBilling!==r.usageBasedBilling)&&this._onDidChangeQuotaRemaining.fire(),n.usageBasedBilling!==r.usageBasedBilling&&this._onDidChangeUsageBasedBilling.fire(),n.additionalUsageEnabled!==void 0&&r.additionalUsageEnabled!==void 0&&n.additionalUsageEnabled!==r.additionalUsageEnabled&&this.telemetryService.publicLog2("chatAdditionalSpendConfiguration",{enabled:r.additionalUsageEnabled??!1,entitlement:this.entitlement}),r.additionalUsageEnabled&&r.premiumChat?.percentRemaining===0&&n.premiumChat?.percentRemaining!==void 0&&n.premiumChat.percentRemaining>0&&this.telemetryService.publicLog2("chatAdditionalSpendActive",{entitlement:this.entitlement,additionalUsageCount:r.additionalUsageCount??0})}compareQuotas(e,n){return{changed:{exceeded:e?.percentRemaining===0!=(n?.percentRemaining===0),remaining:e?.percentRemaining!==n?.percentRemaining||e?.usageBasedBilling!==n?.usageBasedBilling||e?.creditsUsed!==n?.creditsUsed}}}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(ye.Setup.completed.key)===!0,installed:this.contextKeyService.getContextKeyValue(ye.Setup.installed.key)===!0,hidden:this.contextKeyService.getContextKeyValue(ye.Setup.hidden.key)===!0,disabledInWorkspace:this.contextKeyService.getContextKeyValue(ye.Setup.disabledInWorkspace.key)===!0,disabled:this.contextKeyService.getContextKeyValue(ye.Setup.disabled.key)===!0,untrusted:this.contextKeyService.getContextKeyValue(ye.Setup.untrusted.key)===!0,later:this.contextKeyService.getContextKeyValue(ye.Setup.later.key)===!0,registered:this.contextKeyService.getContextKeyValue(ye.Setup.registered.key)===!0}}get anonymous(){return rD(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):ye.Setup.hidden.bindTo(this.contextKeyService).set(e)}async update(e){await this.requests?.value.forceResolveEntitlement(e)}};zs=R([C(0,mn),C(1,$u),C(2,Ku),C(3,Dr),C(4,sn),C(5,Ur),C(6,ie),C(7,Po)],zs);function ph(i,t){let e={...i,...t};for(let n of Object.keys(t))t[n]===void 0&&i?.[n]!==void 0&&(e[n]=i[n]);return e}function i7(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,s=o.credits_used!==void 0?Number(o.credits_used):void 0;if(!o.unlimited&&r===0)continue;let a=o.quota_remaining!==void 0?Number(o.quota_remaining):void 0,l={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:a!==void 0&&Number.isFinite(a)&&a>=0?a:void 0,creditsUsed:s!==void 0&&Number.isFinite(s)&&s>=0?s:void 0};switch(n){case"chat":t.chat=l;break;case"completions":t.completions=l;break;case"premium_interactions":t.premiumChat=l;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 mh=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 Re;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 Re,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 i7(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=ve.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(TI.entitlementSignupLimitedUrl,"POST",n,e,ve.None,"chatEntitlementService.signUpFree");if(!o)return await this.onUnknownSignUpError(p(19590,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 tD(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(19591,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 tD(o)}catch{}if(!r)return await this.onUnknownSignUpError(p(19589,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(19588,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:je.Error,message:p(19592,null),detail:e,primaryButton:p(19587,null)});return o}return!1}onUnprocessableSignUpError(e,n){this.logService.error(e),this.lifecycleService.willShutdown||this.dialogService.prompt({type:je.Error,message:p(19593,null),detail:n,buttons:[{label:p(19579,null),run:()=>{}},{label:p(19578,null),run:()=>this.openerService.open(y.parse(TI.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,ve.None);return{defaultAccount:n,entitlements:o}}dispose(){this.pendingResolveCts.dispose(!0),super.dispose()}};mh=R([C(2,Ur),C(3,ie),C(4,hI),C(5,KU),C(6,SI),C(7,dF),C(8,CI),C(9,lF)],mh);var si=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 T);this.onDidChange=this._onDidChange.event;this.updateBarrier=void 0;this._forceHidden=!1;this.canSignUpContextKey=ye.Entitlement.canSignUp.bindTo(e),this.signedOutContextKey=ye.Entitlement.signedOut.bindTo(e),this.freeContextKey=ye.Entitlement.planFree.bindTo(e),this.eduContextKey=ye.Entitlement.planEdu.bindTo(e),this.proContextKey=ye.Entitlement.planPro.bindTo(e),this.proPlusContextKey=ye.Entitlement.planProPlus.bindTo(e),this.maxContextKey=ye.Entitlement.planMax.bindTo(e),this.businessContextKey=ye.Entitlement.planBusiness.bindTo(e),this.enterpriseContextKey=ye.Entitlement.planEnterprise.bindTo(e),this.organisationsContextKey=ye.Entitlement.organisations.bindTo(e),this.isInternalContextKey=ye.Entitlement.internal.bindTo(e),this.skuContextKey=ye.Entitlement.sku.bindTo(e),this.completedContext=ye.Setup.completed.bindTo(e),this.hiddenContext=ye.Setup.hidden.bindTo(e),this.disabledInWorkspaceContext=ye.Setup.disabledInWorkspace.bindTo(e),this.laterContext=ye.Setup.later.bindTo(e),this.installedContext=ye.Setup.installed.bindTo(e),this.disabledContext=ye.Setup.disabled.bindTo(e),this.untrustedContext=ye.Setup.untrusted.bindTo(e),this.registeredContext=ye.Setup.registered.bindTo(e),this._state=this.storageService.getObject(si.CHAT_ENTITLEMENT_CONTEXT_STORAGE_KEY,0)??{entitlement:1,organisations:void 0,sku:void 0,copilotTrackingId:void 0},this.storageService.getBoolean(si.CHAT_ENTITLEMENT_CONTEXT_MIGRATED_STORAGE_KEY,0)===!0||(this.storageService.store(si.CHAT_ENTITLEMENT_CONTEXT_MIGRATED_STORAGE_KEY,!0,0,1),this._state.installed&&!this._state.completed&&(this._state.completed=!0,this.storageService.store(si.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"}get state(){return this.withConfiguration(this.suspendedState??this._state)}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(lI)&&this.updateContext()}))}withConfiguration(e){return this._forceHidden||this.configurationService.getValue(lI)===!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||r7(this._state.entitlement)?this._state.registered=!0:this._state.entitlement===3&&(this._state.registered=!1)),rD(this.configurationService,this._state.entitlement,this._state)&&(this._state.sku="no_auth_limited_copilot"),n!==JSON.stringify(this._state))return this.storageService.store(si.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)}`),pF(e,this.configurationService,this.telemetryService),this._onDidChange.fire()}suspend(){this.suspendedState={...this._state},this.updateBarrier=new Ln}resume(){this.suspendedState=void 0,this.updateBarrier?.open(),this.updateBarrier=void 0}};si=R([C(0,Dr),C(1,Po),C(2,ie),C(3,sn),C(4,Ur)],si);qe(o7,zs,0);var s7="forceRemoteSettingsRefresh",a7="sandbox.enabled",ace={[s7]:{type:"boolean"},[a7]:{type:"boolean"}};var lce=D("managedSettingsService");var dce=D("nativeManagedSettingsService");function gF(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 fF(i){for(let t in i){let e=i[t].managedSettings;if(e&&!Ha(e))return!0}return!1}function hF(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}var mF=["nativeMdm","server","file"];function vF(i,t,e){let n={nativeMdm:i,server:t,file:e},o=new Map;for(let a of mF){let l=n[a];if(l)for(let d of Object.keys(l)){let c=l[d];if(c===void 0)continue;let u=o.get(d);u?u.contributions.push({channel:a,value:c}):o.set(d,{value:c,source:a,contributions:[{channel:a,value:c}]})}}let r=new Set,s=[];for(let[a,l]of o)s.push([a,l.value]),r.add(l.source);return{values:Object.fromEntries(s),resolutions:o,activeSources:mF.filter(a=>r.has(a))}}var cce=D("fileManagedSettingsService");function l7(i){return{type:i.type,managedSettings:i.managedSettings,restrictedValue:i.restrictedValue}}function bF(i){if(i.restrictedValue!==void 0)return i.restrictedValue;switch(i.type){case"boolean":return!1;case"number":return 0;case"string":return""}}var hce=D("policy"),EI=class extends U{constructor(){super(...arguments);this.policyDefinitions={};this.policies=new Map;this.policyValueSources=new Map;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event}async updatePolicyDefinitions(e){let n=!1;for(let o of Object.keys(e))this.policyDefinitions[o]!==e[o]&&(this.policyDefinitions[o]=e[o],n=!0);return n&&await this._updatePolicyDefinitions(this.policyDefinitions),this.getPolicyValues()}getPolicyValue(e){return this.policies.get(e)}getPolicyValueSource(e){return this.getStoredPolicyValueSource(e)}getStoredPolicyValueSource(e){if(this.policies.has(e))return this.policyValueSources.get(e)??"device"}serialize(){return It.reduce(Object.entries(this.policyDefinitions),(e,[n,o])=>({...e,[n]:{definition:l7(o),value:this.policies.get(n)}}),{})}getPolicyValues(){return It.reduce(this.policies.entries(),(e,[n,o])=>({...e,[n]:o}),{})}updatePolicyValue(e,n,o="device"){if(n===void 0){let a=this.policies.delete(e),l=this.policyValueSources.delete(e);return a||l}let r=this.policies.get(e)!==n,s=this.getStoredPolicyValueSource(e)!==o;return!r&&!s?!1:(this.policies.set(e,n),this.policyValueSources.set(e,o),!0)}clearPolicyValues(){this.policies.clear(),this.policyValueSources.clear()}};var yF="ChatApprovedAccountOrganizations";var xF=new E("chatAccountPolicyGateActive",!1,{type:"boolean",description:p(20066,null)}),Uce=D("accountPolicyGateService"),wI=class extends EI{constructor(e,n,o,r,s){super();this.logService=e;this.defaultAccountService=n;this._gateInfo={state:"inactive"};this._onDidChangeGateInfo=this._register(new T);this.onDidChangeGateInfo=this._onDidChangeGateInfo.event;this._managedSettings={};this._onDidChangeManagedSettings=this._register(new T);this.onDidChangeManagedSettings=this._onDidChangeManagedSettings.event;this.managedPolicyReader=o,this.nativeManagedSettingsService=r,this.fileManagedSettingsService=s,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(a=>{a.includes(yF)&&this._updatePolicyDefinitions(this.policyDefinitions)})),this.nativeManagedSettingsService&&this._register(this.nativeManagedSettingsService.onDidChangeManagedSettings(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})),this.fileManagedSettingsService&&this._register(this.fileManagedSettingsService.onDidChangeManagedSettings(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})),this.defaultAccountService.getDefaultAccount().then(()=>{this._updatePolicyDefinitions(this.policyDefinitions)})}get gateInfo(){return this._gateInfo}getManagedSettingValue(e){return this._managedSettings[e]}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=this.resolvePolicyValue(e[u],r,c);this.updatePolicyValue(u,m?.value,m?.source)&&o.push(u)}o.length&&this._onDidChange.fire(o),d&&this._onDidChangeGateInfo.fire(this._gateInfo)}resolvePolicyValue(e,n,o){if(o&&(e.value!==void 0||e.restrictedValue!==void 0))return{value:bF(e),source:"accountGate"};let r=e.value;if(!n||!r)return;let{policyData:s,managedSettingResolutions:a}=n,l=r(s);if(l===void 0)return;let d="account";if(e.managedSettings){let c=s.managedSettings??{},u=Object.keys(e.managedSettings).filter(m=>Object.hasOwn(c,m));if(u.length>0){let m=v=>({...s,managedSettings:Object.fromEntries(Object.entries(c).filter(([h])=>!v.has(h)))}),g=new Set(u);if(r(m(g))!==l){let v=new Set;for(let S of u){let w=a.get(S)?.source;w&&v.add(w)}let h=new Set;for(let S of v){let w=new Set(u.filter(P=>a.get(P)?.source===S));r(m(w))!==l&&h.add(S)}let I=h.size>0?h:v;d=I.size===1?IF(Array.from(I)[0]):"mixedManagedSettings"}}}if(d==="account"&&s.managedSettingsActive===!0&&r({...s,managedSettingsActive:!1})!==l){let c=new Set;for(let u of a.values())c.add(u.source);c.size>0&&(d=c.size===1?IF(Array.from(c)[0]):"mixedManagedSettings")}return{value:l,source:d}}async updateCopilotManagedSettingDefinitions(e){return!this.nativeManagedSettingsService||!fF(e)?this.nativeManagedSettingsService?.managedSettings:this.nativeManagedSettingsService.updatePolicyDefinitions(e)}getPolicyData(e){let n=this.defaultAccountService.policyData??void 0,o=e??this.nativeManagedSettingsService?.managedSettings,r=this.fileManagedSettingsService?.managedSettings,s=vF(o,n?.managedSettings,r);if(ht(this._managedSettings,s.values)||(this._managedSettings=s.values,this._onDidChangeManagedSettings.fire()),!n&&s.activeSources.length===0)return;let a=gF(this.policyDefinitions),l=hF(s.values,a,d=>this.logService.warn(`[AccountPolicy] ${d}`));return{policyData:{...n,managedSettings:l,managedSettingsActive:s.activeSources.length>0},managedSettingResolutions:s.resolutions}}computeGateInfo(){if(!this.managedPolicyReader)return{state:"inactive"};let e=this.managedPolicyReader.getPolicyValue(yF),n=d7(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}}};wI=R([C(0,ie),C(1,CI)],wI);function IF(i){switch(i){case"nativeMdm":return"nativeMdm";case"server":return"serverManagedSettings";case"file":return"fileManagedSettings"}}function d7(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):[]}function SF(i){return i.scheme!==$.file&&i.scheme!==$.vscodeRemote}function c7(i){if(i.folders.length)return i.folders.every(t=>SF(t.uri))?i.folders[0].uri:void 0;if(i.configuration&&SF(i.configuration))return i.configuration}function CF(i){return c7(i)?.scheme}var Kce={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 eue=new E("agentHostEnabled",!1,{type:"boolean",description:p(1865,null)}),p7=D("agentHostEnablementService"),m7=mt.as(Xo.Configuration);m7.registerConfiguration({id:"chatAgentHost",title:p(1870,null),type:"object",properties:{"chat.editor.preferCopilotHarness":{type:"boolean",description:p(1868,null),default:!1,tags:["experimental"],experiment:{mode:"startup"},policy:{name:"ChatEditorPreferCopilotHarness",category:"InteractiveSession",minimumVersion:"1.134",localization:{description:{key:"chat.editor.preferCopilotHarness.policy",value:p(1869,null)}}}},"chat.defaultToCopilotHarness":{type:"boolean",description:p(1866,null),default:!1,tags:["experimental"],experiment:{mode:"startup"}},"chat.editor.localAgent.enabled":{type:"boolean",description:p(1867,null),default:!0,tags:["experimental"],experiment:{mode:"startup"}}}});var kI=(o=>(o.Default="default",o.Assisted="assisted",o.AutoApprove="autoApprove",o.Autopilot="autopilot",o))(kI||{}),xue=new Set(Object.values(kI));var ai=(o=>(o.Chat="panel",o.Terminal="terminal",o.Notebook="notebook",o.EditorInline="editor",o))(ai||{});(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})(ai||={});var Sue=new Set([$.vscodeChatEditor,$.vscodeChatResponseResource,$.walkThrough,$.vscodeLocalChatSession,$.vscodeSettings,$.webviewPanel,$.vscodeUserData,$.extension,"ccreq","openai-codex"]),Cue=[$.vscodeChatInput,$.sessionsChatInput];var Tue=Je.and(ye.Setup.hidden.negate(),ye.Setup.disabledInWorkspace.negate(),$U.negate(),Je.has("config.chat.agent.enabled"),zU.negate());var Eue=new E("inModelsEditor",!1),wue=new E("inModelsSearch",!1);var Zo;(oe=>{oe.responseVote=new E("chatSessionResponseVote","",{type:"string",description:p(10325,null)}),oe.responseDetectedAgentCommand=new E("chatSessionResponseDetectedAgentOrCommand",!1,{type:"boolean",description:p(10297,null)}),oe.responseSupportsIssueReporting=new E("chatResponseSupportsIssueReporting",!1,{type:"boolean",description:p(10288,null)}),oe.responseIsFiltered=new E("chatSessionResponseFiltered",!1,{type:"boolean",description:p(10286,null)}),oe.responseHasError=new E("chatSessionResponseError",!1,{type:"boolean",description:p(10284,null)}),oe.responseHasFeedbackSurvey=new E("chatSessionResponseHasFeedbackSurvey",!1,{type:"boolean",description:p(10287,null)}),oe.responseFeedbackSurveyOpen=new E("chatSessionResponseFeedbackSurveyOpen",!1,{type:"boolean",description:p(10285,null)}),oe.requestInProgress=new E("chatSessionRequestInProgress",!1,{type:"boolean",description:p(10324,null)}),oe.hasActiveRequest=new E("chatSessionHasActiveRequest",!1,{type:"boolean",description:p(10289,null)}),oe.currentlyEditing=new E("chatSessionCurrentlyEditing",!1,{type:"boolean",description:p(10322,null)}),oe.currentlyEditingInput=new E("chatSessionCurrentlyEditingInput",!1,{type:"boolean",description:p(10323,null)});let u;(ef=>(ef.Sent="s",ef.Queue="q",ef.Steer="st"))(u=oe.EditingRequestType||={}),oe.editingRequestType=new E("chatEditingSentRequest",void 0,{type:"string",description:p(10250,null)}),oe.isResponse=new E("chatResponse",!1,{type:"boolean",description:p(10283,null)}),oe.isRequest=new E("chatRequest",!1,{type:"boolean",description:p(10281,null)}),oe.isFirstRequest=new E("chatFirstRequest",!1,{type:"boolean",description:p(10256,null)}),oe.isPendingRequest=new E("chatRequestIsPending",!1,{type:"boolean",description:p(10282,null)}),oe.itemId=new E("chatItemId","",{type:"string",description:p(10268,null)}),oe.lastItemId=new E("chatLastItemId",[],{type:"string",description:p(10269,null)}),oe.editApplied=new E("chatEditApplied",!1,{type:"boolean",description:p(10244,null)}),oe.inputHasText=new E("chatInputHasText",!1,{type:"boolean",description:p(10321,null)}),oe.inputHasSendableContent=new E("chatInputHasSendableContent",!1,{type:"boolean",description:p(10320,null)}),oe.inputHasFocus=new E("chatInputHasFocus",!1,{type:"boolean",description:p(10319,null)}),oe.inChatInput=new E("inChatInput",!1,{type:"boolean",description:p(10317,null)}),oe.inChatSession=new E("inChat",!1,{type:"boolean",description:p(10310,null)}),oe.inChatQuestionCarousel=new E("inChatQuestionCarousel",!1,{type:"boolean",description:p(10313,null)}),oe.chatQuestionCarouselHasTerminal=new E("chatQuestionCarouselHasTerminal",!1,{type:"boolean",description:p(10279,null)}),oe.inChatEditor=new E("inChatEditor",!1,{type:"boolean",description:p(10312,null)}),oe.findSupported=new E("chatFindSupported",!1,{type:"boolean",description:p(10253,null)}),oe.findWidgetVisible=new E("chatFindWidgetVisible",!1,{type:"boolean",description:p(10255,null)}),oe.findInputFocused=new E("chatFindInputFocused",!1,{type:"boolean",description:p(10252,null)}),oe.findWidgetFocused=new E("chatFindWidgetFocused",!1,{type:"boolean",description:p(10254,null)}),oe.inChatTodoList=new E("inChatTodoList",!1,{type:"boolean",description:p(10316,null)}),oe.inChatTip=new E("inChatTip",!1,{type:"boolean",description:p(10315,null)}),oe.inChatComposer=new E("inChatComposer",!1,{type:"boolean",description:p(10311,null)}),oe.multipleChatTips=new E("multipleChatTips",!1,{type:"boolean",description:p(10328,null)}),oe.inChatTerminalToolOutput=new E("inChatTerminalToolOutput",!1,{type:"boolean",description:p(10314,null)}),oe.chatModeKind=new E("chatAgentKind","ask",{type:"string",description:p(10225,null)}),oe.chatPermissionLevel=new E("chatPermissionLevel","default",{type:"string",description:p(10278,null)}),oe.chatModeName=new E("chatModeName","",{type:"string",description:p(10272,null)}),oe.chatModelId=new E("chatModelId","",{type:"string",description:p(10270,null)}),oe.speechToTextRecording=new E("chatSpeechToTextRecording",!1,{type:"boolean",description:p(10304,null)}),oe.speechToTextConfigured=new E("chatSpeechToTextConfigured",!1,{type:"boolean",description:p(10302,null)}),oe.speechToTextPreparing=new E("chatSpeechToTextPreparing",!1,{type:"boolean",description:p(10303,null)}),oe.supported=Je.or(BU.negate(),WU.notEqualsTo(""),Je.has("config.chat.experimental.serverlessWebEnabled")),oe.enabled=new E("chatIsEnabled",!1,{type:"boolean",description:p(10265,null)}),oe.accountPolicyGateActive=xF,oe.lockedToCodingAgent=new E("lockedToCodingAgent",!1,{type:"boolean",description:p(10327,null)}),oe.lockedCodingAgentId=new E("lockedCodingAgentId","",{type:"string",description:p(10326,null)}),oe.readOnly=new E("chatIsReadonly",!1,{type:"boolean",description:p(10267,null)}),oe.chatIsAgentHostSession=new E("chatIsAgentHostSession",!1,{type:"boolean",description:p(10264,null)}),oe.chatAgentHostProviderId=new E("chatAgentHostProviderId","",{type:"string",description:p(10241,null)}),oe.chatAgentHostHasImmutablePrimaryWorkingDirectory=new E("chatAgentHostHasImmutablePrimaryWorkingDirectory",!1,{type:"boolean",description:p(10240,null)}),oe.chatAgentHostFolderPickerVisible=new E("chatAgentHostFolderPickerVisible",!1,{type:"boolean",description:p(10239,null)}),oe.chatSessionHasCustomAgentTarget=new E("chatSessionHasCustomAgentTarget",!1,{type:"boolean",description:p(10290,null)}),oe.chatSessionHasTargetedModels=new E("chatSessionHasTargetedModels",!1,{type:"boolean",description:p(10294,null)}),oe.agentSupportsAttachments=new E("agentSupportsAttachments",!1,{type:"boolean",description:p(10238,null)}),oe.withinEditSessionDiff=new E("withinEditSessionDiff",!1,{type:"boolean",description:p(10330,null)}),oe.filePartOfEditSession=new E("filePartOfEditSession",!1,{type:"boolean",description:p(10306,null)}),oe.extensionParticipantRegistered=new E("chatPanelExtensionParticipantRegistered",!1,{type:"boolean",description:p(10275,null)}),oe.panelParticipantRegistered=new E("chatPanelParticipantRegistered",!1,{type:"boolean",description:p(10277,null)}),oe.chatEditingCanUndo=new E("chatEditingCanUndo",!1,{type:"boolean",description:p(10246,null)}),oe.chatEditingCanRedo=new E("chatEditingCanRedo",!1,{type:"boolean",description:p(10245,null)}),oe.languageModelsAreUserSelectable=new E("chatModelsAreUserSelectable",!1,{type:"boolean",description:p(10271,null)}),oe.nonCopilotLanguageModelsAreUserSelectable=new E("chatNonCopilotModelsAreUserSelectable",!1,{type:"boolean",description:p(10274,null)}),oe.chatSessionHasModels=new E("chatSessionHasModels",!1,{type:"boolean",description:p(10293,null)}),oe.chatSessionOptionsValid=new E("chatSessionOptionsValid",!0,{type:"boolean",description:p(10296,null)}),oe.extensionInvalid=new E("chatExtensionInvalid",!1,{type:"boolean",description:p(10251,null)}),oe.inputCursorAtTop=new E("chatCursorAtTop",!1),oe.inputHasAgent=new E("chatInputHasAgent",!1),oe.location=new E("chatLocation",void 0),oe.inQuickChat=new E("quickChatHasFocus",!1,{type:"boolean",description:p(10318,null)}),oe.inAgentSessionsWelcome=new E("inAgentSessionsWelcome",!1,{type:"boolean",description:p(10308,null)}),oe.inAutomationsDialog=new E("inAutomationsDialog",!1,{type:"boolean",description:p(10309,null)}),oe.chatSessionType=new E("chatSessionType","",{type:"string",description:p(10300,null)}),oe.hasFileAttachments=new E("chatHasFileAttachments",!1,{type:"boolean",description:p(10260,null)}),oe.chatSessionIsEmpty=new E("chatSessionIsEmpty",!0,{type:"boolean",description:p(10295,null)}),oe.hasPendingRequests=new E("chatHasPendingRequests",!1,{type:"boolean",description:p(10262,null)}),oe.chatSessionHasDebugData=new E("chatSessionHasDebugData",!1,{type:"boolean",description:p(10291,null)}),oe.chatSessionHasDebugTools=new E("chatSessionHasDebugTools",!1,{type:"boolean",description:p(10292,null)}),oe.remoteJobCreating=new E("chatRemoteJobCreating",!1,{type:"boolean",description:p(10280,null)}),oe.hasRemoteCodingAgent=new E("hasRemoteCodingAgent",!1,p(10307,null)),oe.hasCanDelegateProviders=new E("chatHasCanDelegateProviders",!1,{type:"boolean",description:p(10259,null)}),oe.enableRemoteCodingAgentPromptFileOverlay=new E("enableRemoteCodingAgentPromptFileOverlay",!1,p(10305,null)),oe.skipChatRequestInProgressMessage=new E("chatSkipRequestInProgressMessage",!1,{type:"boolean",description:p(10301,null)}),oe.Setup=ye.Setup,oe.Entitlement=ye.Entitlement,oe.chatQuotaExceeded=ye.chatQuotaExceeded,oe.completionsQuotaExceeded=ye.completionsQuotaExceeded,oe.Editing={hasToolConfirmation:new E("chatHasToolConfirmation",!1,{type:"boolean",description:p(10249,null)}),hasElicitationRequest:new E("chatHasElicitationRequest",!1,{type:"boolean",description:p(10247,null)}),hasQuestionCarousel:new E("chatHasQuestionCarousel",!1,{type:"boolean",description:p(10248,null)})},oe.Tools={toolsCount:new E("toolsCount",0,{type:"number",description:p(10329,null)})},oe.foregroundSessionCount=new E("chatForegroundSessionCount",0,{type:"number",description:p(10257,null)}),oe.Modes={hasCustomChatModes:new E("chatHasCustomAgents",!1,{type:"boolean",description:p(10258,null)}),agentModeDisabledByPolicy:new E("chatAgentModeDisabledByPolicy",!1,{type:"boolean",description:p(10242,null)})},oe.panelLocation=new E("chatPanelLocation",void 0,{type:"number",description:p(10276,null)}),oe.agentSessionsViewerFocused=new E("agentSessionsViewerFocused",!0,{type:"boolean",description:p(10233,null)}),oe.agentSessionsViewerOrientation=new E("agentSessionsViewerOrientation",void 0,{type:"number",description:p(10234,null)}),oe.agentSessionsViewerPosition=new E("agentSessionsViewerPosition",void 0,{type:"number",description:p(10235,null)}),oe.agentSessionsViewerVisible=new E("agentSessionsViewerVisible",void 0,{type:"boolean",description:p(10236,null)}),oe.agentSessionType=new E("chatSessionType","",{type:"string",description:p(10237,null)}),oe.agentSessionPullRequest=new E("chatSessionPullRequest","",{type:"string",description:p(10231,null)}),oe.chatSessionSupportsDelegation=new E("chatSessionSupportsDelegation",!0,{type:"boolean",description:p(10298,null)}),oe.hasPendingDelegationTarget=new E("chatHasPendingDelegationTarget",!1,{type:"boolean",description:p(10261,null)}),oe.chatSessionSupportsFork=new E("chatSessionSupportsFork",!1,{type:"boolean",description:p(10299,null)}),oe.agentSessionSection=new E("agentSessionSection","",{type:"string",description:p(10232,null)}),oe.isArchivedAgentSession=new E("agentSessionIsArchived",!1,{type:"boolean",description:p(10228,null)}),oe.isPinnedAgentSession=new E("agentSessionIsPinned",!1,{type:"boolean",description:p(10229,null)}),oe.isReadAgentSession=new E("agentSessionIsRead",!1,{type:"boolean",description:p(10230,null)}),oe.hasMultipleAgentSessionsSelected=new E("agentSessionHasMultipleSelected",!1,{type:"boolean",description:p(10227,null)}),oe.hasAgentSessionChanges=new E("agentSessionHasChanges",!1,{type:"boolean",description:p(10226,null)}),oe.isKatexMathElement=new E("chatIsKatexMathElement",!1,{type:"boolean",description:p(10266,null)}),oe.hasUsedCreateSlashCommands=new E("chatHasUsedCreateSlashCommands",!1,{type:"boolean",description:p(10263,null)}),oe.contextUsageHasBeenOpened=new E("chatContextUsageHasBeenOpened",!1,{type:"boolean",description:p(10243,null)}),oe.newChatButtonExperimentIcon=new E("chatNewChatButtonExperimentIcon","",{type:"string",description:p(10273,null)})})(Zo||={});var g7;(n=>(n.inEditingMode=Je.or(Zo.chatModeKind.isEqualTo("edit"),Zo.chatModeKind.isEqualTo("agent")),n.isAgentHostSession=Zo.chatIsAgentHostSession.isEqualTo(!0),n.isAgentHostSessionItem=Je.or(Je.regex(Zo.agentSessionType.key,/^agent-host-/),Je.regex(Zo.agentSessionType.key,/^remote-/))))(g7||={});var iD=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===$.file?t.resource.fsPath:t.resource?.path}},Vue=new iD,TF=D("quickInputService");var EF=D("encryptionService"),$ue=D("encryptionMainService");var fh="secret://";function DI(i){return`${fh}${i}`}async function f7(i,t,e,n){let o=DI(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 h7(i,t,e,n,o){o?.trace("[secrets] encrypting secret for key:",i);let r=await n(t),s=DI(i);o?.trace("[secrets] storing encrypted secret for key:",s),e(s,r),o?.trace("[secrets] stored encrypted secret for key:",s)}var v7=['{"extensionId":"vscode.github-authentication","key":"github.auth"}'],wF=D("secretStorageService"),_I=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 T);this.onDidChangeSecret=this.onDidChangeSecretEmitter.event;this._sequencer=new Ya;this._type="unknown";this._onDidChangeValueDisposable=this._register(new G);this._lazyStorageService=new yt(()=>this.initialize())}useSharedStorage(e){return Ct&&v7.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 f7(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);let r=DI(e);this._logService.trace("[secrets] deleting invalid secret for key:",r),this.removeValueFromStorage(e,r,n),this._logService.trace("[secrets] deleted invalid secret for key:",r);return}})}set(e,n){return this._sequencer.queue(e,async()=>{let o=await this.resolvedStorageService;try{await h7(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=DI(e);this._logService.trace("[secrets] deleting secret for key:",o),this.removeValueFromStorage(e,o,n),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(fh)).map(o=>o.slice(fh.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)}removeValueFromStorage(e,n,o){let r=this.useSharedStorage(e)?-2:-1;o.remove(n,r)}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 II)}return this._onDidChangeValueDisposable.clear(),this._onDidChangeValueDisposable.add(Le.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 yt(()=>this.initialize())}onDidChangeValue(e){if(!e.startsWith(fh))return;let n=e.slice(fh.length);this._logService.trace(`[SecretStorageService] Notifying change in value for secret: ${n}`),this.onDidChangeSecretEmitter.fire(n)}};_I=R([C(1,Po),C(2,EF),C(3,ie)],_I);var hh="^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$",bpe=new RegExp(hh);var ype=D("extensionGalleryService");var Ipe=D("extensionManagementService");var xpe=D("IGlobalExtensionEnablementService"),Spe=D("IExtensionTipsService"),Cpe=D("IAllowedExtensionsService");var Tpe=ws(2775,"Extensions"),Epe=ws(2792,"Preferences"),b7="extensions.allowed";mt.as(Xo.Configuration).registerConfiguration({id:"extensions",order:30,title:p(2791,null),type:"object",properties:{[b7]:{type:"object",markdownDescription:p(2781,null),default:"*",defaultSnippets:[{body:{},description:p(2786,null)},{body:{"*":!0},description:p(2782,null)}],scope:1,policy:{name:"AllowedExtensions",category:"Extensions",minimumVersion:"1.96",localization:{description:{key:"extensions.allowed.policy",value:p(2787,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(2779,null),enumDescriptions:[p(2785,null),p(2783,null),p(2784,null)]},{type:"array",items:{type:"string"},description:p(2780,null)}]},"([a-z0-9A-Z][a-z0-9-A-Z]*)$":{type:["boolean","string"],enum:[!0,!1,"stable"],description:p(2774,null),enumDescriptions:[p(2790,null),p(2788,null),p(2789,null)]},"\\*":{type:"boolean",enum:[!0,!1],description:p(2776,null),enumDescriptions:[p(2778,null),p(2777,null)]}}}}});var ml=class{constructor(t){this.value=t;this.isTrustedTelemetryValue=!0}},sD=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(){}},Gpe=new sD;var I7="telemetry",DF={id:I7,name:p(3064,null)};function RF(i,t){if(!i)return"none";let e=wf(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 x7(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 MF=[{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 _F(i,t=i){for(let e of MF)if(e.regex.test(t))return`<REDACTED: ${e.label}>`;return i}function S7(i){if(!i)return i;let t=!1;for(let n of MF)if(n.regex.test(i)){t=!0;break}if(!t)return i;if(!i.includes(`
`))return _F(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]=_F(e[n],o)}return e.join(`
`)}function aD(i,t){return i?oi(i,e=>{if(e instanceof ml||Object.hasOwnProperty.call(e,"isTrustedTelemetryValue"))return e.value;if(typeof e=="string"){let n=e.replaceAll("%20"," ");n=x7(n,t);for(let o of t)n=n.replace(o,"");return n=S7(n),n}}):{}}function AF(i,t){return i.uuid&&t.uuid?i.uuid===t.uuid:i.id===t.id?!0:Rd(i.id,t.id)===0}var ume=new xe("pprice.better-merge");var lD=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[xe.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:${xe.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){_t(a)}}return e}},dD=new lD;var OF=Object.freeze({identifier:new xe("nullExtensionDescription"),name:"Null Extension Description",version:"0.0.0",publisher:"vscode",engines:{vscode:""},extensionLocation:y.parse("void:location"),isBuiltin:!1,targetPlatform:"undefined",isUserBuiltin:!1,isUnderDevelopment:!1,preRelease:!1});var LF=D("extensionService"),vh=class{constructor(t){this.dependency=t}};function De(i,t){return!0}var cD;function NF(i){return cD=i,Y(()=>{cD===i&&(cD=void 0)})}var uD;var C7="none";function UF(i,t){if(t!=="stable")return U.None;let e=new Set;if(i!==void 0&&i!==C7)for(let o of i.split(",")){let r=o.trim(),s=r.indexOf(":");if(s<=0||s===r.length-1)continue;let a=xe.toKey(r.slice(0,s)),l=r.slice(s+1);e.add(`${a}:${l}`)}let n=i===void 0?()=>!0:(o,r)=>e.has(`${xe.toKey(o.identifier)}:${r}`);return uD=n,Y(()=>{uD===n&&(uD=void 0)})}function M(i,t){if(!De(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 T7={activeComment:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.activeComment.d.ts"},agentEditorComments:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.agentEditorComments.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"},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"},authSessionAccountIcon:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.authSessionAccountIcon.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"},chatHooks:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatHooks.d.ts"},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"},chatParticipantPrivate:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantPrivate.d.ts"},chatPromptFiles:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatPromptFiles.d.ts"},chatProvider:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatProvider.d.ts"},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"},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"},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"},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"},documentSyntaxHighlighting:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.documentSyntaxHighlighting.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"},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"},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"},languageStatusText:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatusText.d.ts"},linkPresentation:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.linkPresentation.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"},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"},terminalRemoteResolver:{proposal:"https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalRemoteResolver.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"}},bh=Object.freeze(T7);var hD=mt.as(Xd.JSONContribution);var pD=class i{constructor(t,e){this.added=t;this.removed=e}static _toSet(t){let e=new So;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)}},mD=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=pD.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){_t(t)}}},E7={type:"string",enum:["ui","workspace"],enumDescriptions:[p(19875,null),p(19955,null)]},FF="vscode://schemas/vscode-extensions",gD={properties:{engines:{type:"object",description:p(19939,null),properties:{vscode:{type:"string",description:p(19940,null),default:"^1.105.0"}}},publisher:{description:p(19951,null),type:"string"},displayName:{description:p(19936,null),type:"string"},categories:{description:p(19930,null),type:"array",uniqueItems:!0,items:{oneOf:[{type:"string",enum:py},{type:"string",const:"Languages",deprecationMessage:p(19931,null)}]}},galleryBanner:{type:"object",description:p(19943,null),properties:{color:{description:p(19944,null),type:"string"},theme:{description:p(19945,null),type:"string",enum:["dark","light"]}}},contributes:{description:p(19932,null),type:"object",properties:{},default:{}},preview:{type:"boolean",description:p(19949,null)},enableProposedApi:{type:"boolean",deprecationMessage:p(19938,null)},enabledApiProposals:{markdownDescription:p(19937,null),type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(bh).map(i=>i),markdownEnumDescriptions:Object.values(bh).map(i=>i.proposal)}},api:{markdownDescription:p(19910,null),type:"string",enum:["none"],enumDescriptions:[p(19911,null)]},activationEvents:{description:p(19876,null),type:"array",items:{type:"string",defaultSnippets:[{label:"onWebviewPanel",description:p(19907,null),body:"onWebviewPanel:viewType"},{label:"onLanguage",description:p(19890,null),body:"onLanguage:${1:languageId}"},{label:"onCommand",description:p(19880,null),body:"onCommand:${2:commandId}"},{label:"onDebug",description:p(19882,null),body:"onDebug"},{label:"onDebugInitialConfigurations",description:p(19885,null),body:"onDebugInitialConfigurations"},{label:"onDebugDynamicConfigurations",description:p(19884,null),body:"onDebugDynamicConfigurations"},{label:"onDebugResolve",description:p(19886,null),body:"onDebugResolve:${6:type}"},{label:"onDebugAdapterProtocolTracker",description:p(19883,null),body:"onDebugAdapterProtocolTracker:${6:type}"},{label:"workspaceContains",description:p(19909,null),body:"workspaceContains:${4:filePattern}"},{label:"onStartupFinished",description:p(19898,null),body:"onStartupFinished"},{label:"onTaskType",description:p(19899,null),body:"onTaskType:${1:taskType}"},{label:"onFileSystem",description:p(19888,null),body:"onFileSystem:${1:scheme}"},{label:"onEditSession",description:p(19887,null),body:"onEditSession:${1:scheme}"},{label:"onSearch",description:p(19897,null),body:"onSearch:${7:scheme}"},{label:"onView",body:"onView:${5:viewId}",description:p(19905,null)},{label:"onUri",body:"onUri",description:p(19904,null)},{label:"onOpenExternalUri",body:"onOpenExternalUri",description:p(19895,null)},{label:"onCustomEditor",body:"onCustomEditor:${9:viewType}",description:p(19881,null)},{label:"onNotebook",body:"onNotebook:${1:type}",description:p(19894,null)},{label:"onAuthenticationRequest",body:"onAuthenticationRequest:${11:authenticationProviderId}",description:p(19877,null)},{label:"onRenderer",description:p(19896,null),body:"onRenderer:${11:rendererId}"},{label:"onTerminalProfile",body:"onTerminalProfile:${1:terminalId}",description:p(19901,null)},{label:"onTerminalQuickFixRequest",body:"onTerminalQuickFixRequest:${1:quickFixId}",description:p(19902,null)},{label:"onWalkthrough",body:"onWalkthrough:${1:walkthroughID}",description:p(19906,null)},{label:"onIssueReporterOpened",body:"onIssueReporterOpened",description:p(19889,null)},{label:"onChatParticipant",body:"onChatParticipant:${1:participantId}",description:p(19879,null)},{label:"onChatContextProvider",body:"onChatContextProvider:${1:contextProviderId}",description:p(19878,null)},{label:"onLanguageModelChatProvider",body:"onLanguageModelChatProvider:${1:vendor}",description:p(19891,null)},{label:"onLanguageModelTool",body:"onLanguageModelTool:${1:toolId}",description:p(19892,null)},{label:"onTerminal",body:"onTerminal:{1:shellType}",description:p(19900,null)},{label:"onTerminalShellIntegration",body:"onTerminalShellIntegration:${1:shellType}",description:p(19903,null)},{label:"onMcpCollection",description:p(19893,null),body:"onMcpCollection:${2:collectionId}"},{label:"*",description:p(19908,null),body:"*"}]}},badges:{type:"array",description:p(19912,null),items:{type:"object",required:["url","href","description"],properties:{url:{type:"string",description:p(19915,null)},href:{type:"string",description:p(19914,null)},description:{type:"string",description:p(19913,null)}}}},markdown:{type:"string",description:p(19948,null),enum:["github","standard"],default:"github"},qna:{default:"marketplace",description:p(19952,null),anyOf:[{type:["string","boolean"],enum:["marketplace",!1]},{type:"string"}]},extensionDependencies:{description:p(19942,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:hh}},extensionAffinity:{description:p(19941,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:hh}},extensionPack:{description:p(19933,null),type:"array",uniqueItems:!0,items:{type:"string",pattern:hh}},extensionKind:{description:p(19868,null),type:"array",items:E7,default:["workspace"],defaultSnippets:[{body:["ui"],description:p(19870,null)},{body:["workspace"],description:p(19872,null)},{body:["ui","workspace"],description:p(19871,null)},{body:["workspace","ui"],description:p(19873,null)},{body:[],description:p(19869,null)}]},capabilities:{description:p(19916,null),type:"object",properties:{virtualWorkspaces:{description:p(19924,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(19926,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(19928,null),p(19929,null),p(19927,null)]},description:{type:"string",markdownDescription:p(19925,null)}}},untrustedWorkspaces:{description:p(19917,null),type:"object",required:["supported"],defaultSnippets:[{body:{supported:"${1:limited}",description:"${2}"}}],properties:{supported:{markdownDescription:p(19920,null),type:["string","boolean"],enum:["limited",!0,!1],enumDescriptions:[p(19922,null),p(19923,null),p(19921,null)]},restrictedConfigurations:{description:p(19919,null),type:"array",items:{type:"string"}},description:{type:"string",markdownDescription:p(19918,null)}}}}},sponsor:{description:p(19934,null),type:"object",defaultSnippets:[{body:{url:"${1:https:}"}}],properties:{url:{description:p(19935,null),type:"string"}}},scripts:{type:"object",properties:{"vscode:prepublish":{description:p(19953,null),type:"string"},"vscode:uninstall":{description:p(19954,null),type:"string"}}},icon:{type:"string",description:p(19946,null)},l10n:{type:"string",description:p(19947,null)},pricing:{type:"string",markdownDescription:p(19950,null),enum:["Free","Trial"],default:"Free"}}},fD=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 mD(t.extensionPoint,t.defaultExtensionKind,t.canHandleResolver);return this._extensionPoints.set(t.extensionPoint,e),t.activationEventsGenerator&&dD.register(t.extensionPoint,t.activationEventsGenerator),gD.properties.contributes.properties[t.extensionPoint]=t.jsonSchema,hD.registerSchema(FF,gD),e}getExtensionPoints(){return Array.from(this._extensionPoints.values())}},HF={ExtensionsRegistry:"ExtensionsRegistry"};mt.add(HF.ExtensionsRegistry,new fD);var RI=mt.as(HF.ExtensionsRegistry);hD.registerSchema(FF,gD);hD.registerSchema(GU,{properties:{extensionEnabledApiProposals:{description:p(19874,null),type:"object",properties:{},additionalProperties:{anyOf:[{type:"array",uniqueItems:!0,items:{type:"string",enum:Object.keys(bh),markdownEnumDescriptions:Object.values(bh).map(i=>i.proposal)}}]}}}});var VF=D("ILanguageModelsConfigurationService");var Ks="copilot";var w7=new Set(["openai","anthropic","gemini","ollama","openrouter","azure","xai","customoai","customendpoint"]),k7="3p-extension",P7=["github.copilot-chat","github.copilot"];function _7(i,t){if(!(!i||i===Ks))return w7.has(i)&&t&&P7.some(e=>xe.equals(t,e))?i:k7}var Gu;(d=>{function i(c){return(typeof c.capabilities?.agentMode>"u"||c.capabilities.agentMode)&&!!c.capabilities?.toolCalling}d.suitableForAgentMode=i;function t(c){return`${c.name} (${c.vendor})`}d.asQualifiedName=t;function e(c,u){return u.vendor===Ks&&c===u.name?!0:c===t(u)}d.matchesQualifiedName=e;function n(c){return!!c.promo&&c.promo.discountPercent>0}d.hasPromoDiscount=n;function o(c){return!!c.promo&&c.promo.discountPercent>=0&&!!c.promo.message}d.hasPromoMessage=o;function r(c){if(!c)return;let u=new Date(c);if(isNaN(u.getTime()))return;let m=u.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"});return p(10437,null,m)}d.getPromoEndsAtLabel=r,d.autoModelSelectionDocsUrl="https://docs.github.com/en/copilot/concepts/models/auto-model-selection";function a(c){let u=p(10431,null),m=p(10433,null,d.autoModelSelectionDocsUrl);if(typeof c=="number"&&c>0){let g=p(10432,null,c);return`${u} ${g} ${m}`}return`${u} ${m}`}d.getAutoModelDescription=a;function l(c){return c.byokModelIdentifier}d.getAgentHostByokManageModelsIdentifier=l})(Gu||={});var MI=D("ILanguageModelsService");var BF={type:"object",required:["vendor","displayName"],properties:{vendor:{type:"string",description:p(10457,null)},displayName:{type:"string",description:p(10453,null)},configuration:{type:"object",description:p(10449,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(10450,null)}}}},additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#",properties:{secret:{type:"boolean",description:p(10450,null)}}}}}]},managementCommand:{type:"string",description:p(10455,null),deprecated:!0,deprecationMessage:p(10456,null)},deprecation:{type:"object",description:p(10451,null),properties:{link:{type:"string",description:p(10452,null)}}},when:{type:"string",description:p(10459,null)}}};function D7(i,t){let e=y.parse(i);return e.scheme===$.vscode&&t?e.with({scheme:t}):e}var R7=RI.registerExtensionPoint({extensionPoint:"languageModelChatProviders",jsonSchema:{description:p(10448,null),oneOf:[BF,{type:"array",items:BF}]},activationEventsGenerator:function*(i){for(let t of i)yield`onLanguageModelChatProvider:${t.vendor}`}}),WF="chatModelRecentlyUsed",$F="chatModelPinned",zF="chatModelVisibility",yh="copilot/auto";var vD="chat.participantNameRegistry",bD="chat.modelsControl";function M7(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<1)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 v=d?.[g]??String(m),h=m===l?p(10444,null,v):v,I=c?.[g]??"";return{id:`configureModel.${o}.${m}`,label:h,class:void 0,enabled:!0,tooltip:I,checked:s===m,run:()=>e(o,m)}});n.push(new Yf(`configureModel.${o}`,a,u))}return n}var oc=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m){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._notificationService=c;this._openerService=u;this._telemetryService=m;this._store=new G;this._providers=new Map;this._vendors=new Map;this._deprecationNoticeShownVendors=new Set;this._onDidChangeLanguageModelVendors=this._store.add(new T);this.onDidChangeLanguageModelVendors=this._onDidChangeLanguageModelVendors.event;this._modelsGroups=new Map;this._modelCache=new Map;this._resolveLMSequencer=new Ya;this._modelConfigurations=new Map;this._onLanguageModelChange=this._store.add(new T);this.onDidChangeLanguageModels=this._onLanguageModelChange.event;this._recentlyUsedModelIds=[];this._pinnedModelIds=[];this._hiddenModelIds=new Set;this._onDidChangeModelsControlManifest=this._store.add(new T);this.onDidChangeModelsControlManifest=this._onDidChangeModelsControlManifest.event;this._onDidChangePinnedModels=this._store.add(new T);this.onDidChangePinnedModels=this._onDidChangePinnedModels.event;this._onDidChangeModelVisibility=this._store.add(new T);this.onDidChangeModelVisibility=this._onDidChangeModelVisibility.event;this._modelsControlManifest={free:{},paid:{}};this._chatControlDisposed=!1;this._restrictedChatParticipants=gn(this,Object.create(null));this.restrictedChatParticipants=this._restrictedChatParticipants;this._hasUserSelectableModels=Zo.languageModelsAreUserSelectable.bindTo(o),this._hasNonCopilotUserSelectableModels=Zo.nonCopilotLanguageModelsAreUserSelectable.bindTo(o),this._recentlyUsedModelIds=this._readRecentlyUsedModels(),this._pinnedModelIds=this._readPinnedModels(),this._readVisibility(),this._initChatControlData(),this._store.add(this.onDidChangeLanguageModels(()=>{let g=!1,v=!1;for(let h of this._modelCache.values())if(h.isUserSelectable!==!1&&(g=!0,h.vendor!==Ks)){v=!0;break}this._hasUserSelectableModels.set(g),this._hasNonCopilotUserSelectableModels.set(v),this._refreshModelsControlManifest()})),this._store.add(this._languageModelsConfigurationService.onDidChangeLanguageModelGroups(g=>this._onDidChangeLanguageModelGroups(g))),this._store.add(R7.setHandler((g,{added:v,removed:h})=>{let I=[],S=[];for(let w of v)for(let P of It.wrap(w.value)){if(this._vendors.has(P.vendor)){w.collector.error(p(10458,null,P.vendor));continue}if(Ui(P.vendor)){w.collector.error(p(10454,null));continue}if(P.vendor.trim()!==P.vendor){w.collector.error(p(10460,null));continue}I.push(P)}for(let w of h)for(let P of It.wrap(w.value))S.push(P);this.deltaLanguageModelChatProviderDescriptors(I,S)}))}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(Ui(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,deprecation:r.deprecation,when:r.when,isDefault:r.vendor===Ks};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=Je.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(Gu.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 g=await o.provideLanguageModelChatInfo({silent:e},ve.None);if(g.length){r.push(...g);let v=[];for(let h of g)n.isDefault?h.metadata.isUserSelectable!==!1?v.push(h.identifier):this._logService.trace(`[LM] Skipping model ${h.identifier} from model picker as it is not user selectable.`):v.push(h.identifier);s.push({modelIdentifiers:v})}}catch(g){s.push({modelIdentifiers:[],status:{message:xd(g),severity:je.Error}})}let a=this._languageModelsConfigurationService.getLanguageModelsProviderGroups(),l=new Map;for(let g of a){if(g.vendor!==t)continue;if(!n.configuration&&r.length>0){if(g.settings)for(let h of r){let I=g.settings[h.metadata.id];I&&l.set(h.identifier,{...I})}s.push({group:g,modelIdentifiers:[]});continue}let v=await this._resolveConfiguration(g,n.configuration);try{let h=await o.provideLanguageModelChatInfo({group:g.name,silent:e,configuration:v},ve.None);if(h.length){for(let I=0;I<h.length;I++)h[I].metadata.detail||(h[I]={...h[I],metadata:{...h[I].metadata,detail:g.name}});r.push(...h),s.push({group:g,modelIdentifiers:h.map(I=>I.identifier)})}if(g.settings)for(let I of h){let S=g.settings[I.metadata.id];S&&l.set(I.identifier,{...S})}}catch(h){s.push({group:g,modelIdentifiers:[],status:{message:xd(h),severity:je.Error}})}}let d=this._modelsGroups.has(t),c=this._modelsGroups.get(t)??[];this._modelsGroups.set(t,s);let u=this._clearModelCache(t),m=!d;for(let g of r){if(this._modelCache.has(g.identifier)){this._logService.warn(`[LM] Model ${g.identifier} is already registered. Skipping.`);continue}this._modelCache.set(g.identifier,g.metadata),m=m||!ht(u.get(g.identifier),g.metadata),u.delete(g.identifier)}this._logService.trace(`[LM] Resolved language models for vendor ${t}`,r),m=m||u.size>0,m||(m=this._hasGroupStructureChanged(c,s)),this._clearModelConfigurations(t);for(let[g,v]of l)this._modelCache.has(g)&&this._modelConfigurations.set(g,v);m?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 Y(()=>{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.`);s&&(this._logProviderUsageTelemetry(s),this._maybeShowProviderDeprecationNotice(s));let l=this.getModelConfiguration(t),d=l?{...o,configuration:{...l,...o.configuration}}:o;return a.sendChatRequest(t,n,e,d,r)}_maybeShowProviderDeprecationNotice(t){let e=this._vendors.get(t.vendor),n=e?.deprecation?.link;if(!n||this._deprecationNoticeShownVendors.has(t.vendor))return;this._deprecationNoticeShownVendors.add(t.vendor);let o=(e.displayName||t.vendor).replace(/\s*\(deprecated\)\s*$/i,"");this._notificationService.prompt(je.Info,p(10439,null,o),[{label:p(10438,null),run:()=>{this._openerService.open(D7(n,this._productService.urlProtocol))}}],{neverShowAgain:{id:`chat.providerDeprecation.${t.vendor}`,scope:2}})}_logProviderUsageTelemetry(t){let e=_7(t?.vendor,t?.extension);e&&this._telemetryService.publicLog2("chat.languageModelRequest",{provider:e,isBYOK:!!t?.isBYOK})}_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;if(r=o.find(d=>d.vendor===n.vendor&&d.settings?.[n.id]!==void 0),!r){let c=this._modelsGroups.get(n.vendor)?.find(u=>u.modelIdentifiers.includes(t)&&u.group)?.group;c&&(r=o.find(u=>u.vendor===c.vendor&&u.name===c.name)??c)}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 M7(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(En(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(En(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 G;try{await new Promise(a=>{let l=s.add(this._quickInputService.createInputBox());l.title=p(10440,null),l.placeholder=p(10443,null),l.value=o,l.ignoreFocusOut=!0,s.add(l.onDidChangeValue(d=>{if(!d){l.validationMessage=p(10441,null),l.severity=je.Error;return}if(t.some(c=>c!==n&&c.vendor===e.vendor&&c.name===d)){l.validationMessage=p(10445,null),l.severity=je.Error;return}l.validationMessage=void 0,l.severity=je.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 G;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(10446,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 G;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(10446,null,e),m.ignoreFocusOut=!0,l!==void 0){let g=d.find(v=>v.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 G;try{let a=d=>{if(!d&&o)return p(10447,null)},l=await new Promise((d,c)=>{let u=s.add(this._quickInputService.createInputBox());u.title=`${t}: ${n.title??e}`,u.placeholder=p(10442,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 v=a(g);v?(u.validationMessage=v,u.severity=je.Error):(u.validationMessage=void 0,u.severity=je.Ignore)})),s.add(u.onDidAccept(()=>{let g=a(u.value);if(g){u.validationMessage=g,u.severity=je.Error;return}d(u.value),u.hide()})),s.add(u.onDidHide(g=>{g.reason===2?c(new ct):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 TL(oc.SECRET_INPUT,t)}decodeSecretKey(t){if(_e(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&&_e(a)){let l=`${oc.SECRET_KEY_PREFIX}${cr(Be()).toString(16)}`;await this._secretStorageService.set(l,s==="apiKey"?a.trim():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},ve.None),await this.addLanguageModelsProviderGroup(n,e,o)}_readRecentlyUsedModels(){return this._storageService.getObject(WF,0,[])}_saveRecentlyUsedModels(){this._storageService.store(WF,this._recentlyUsedModelIds,0,0)}getRecentlyUsedModelIds(){return this._recentlyUsedModelIds.filter(t=>this._modelCache.has(t)&&t!==yh).slice(0,4)}addToRecentlyUsedList(t){if(t===yh)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($F,0,[])}_savePinnedModels(){this._storageService.store($F,this._pinnedModelIds,0,0)}getPinnedModelIds(){return this._pinnedModelIds.filter(t=>t!==yh&&this._modelCache.has(t))}pinModel(t){t===yh||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!==yh&&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)if((s.group?.name??r)===e)for(let l of s.modelIdentifiers){let d=this._modelCache.get(l);d&&Gu.getAgentHostByokManageModelsIdentifier(d)!==void 0||o.push(l)}return o}_readVisibility(){let t=this._storageService.getObject(zF,0,{});this._hiddenModelIds=new Set(Array.isArray(t?.hiddenModels)?t.hiddenModels:[])}_saveVisibility(){this._storageService.store(zF,{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){this.setModelsHidden(this._getModelIdsInGroup(t,e),n)}setModelHidden(t,e){this.setModelsHidden([t],e)}setModelsHidden(t,e){let n=!1;for(let o of t)e?this._hiddenModelIds.has(o)||(this._hiddenModelIds.add(o),n=!0):this._hiddenModelIds.delete(o)&&(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(vD,-1);try{this._restrictedChatParticipants.set(JSON.parse(t??"{}"),void 0)}catch{this._storageService.remove(vD,-1)}let e=this._storageService.get(bD,-1);try{let n=JSON.parse(e??"{}");st(n)&&this._setModelsControlManifest(n)}catch{this._storageService.remove(bD,-1)}this._refreshChatControlData()}_refreshChatControlData(){this._chatControlDisposed||this._fetchChatControlData().catch(t=>this._logService.warn("Failed to fetch chat control data",t)).then(()=>Pn(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"},ve.None)}catch(o){this._logService.warn("[LM] Failed to request chat control data",xd(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 tF(t)}catch(o){this._logService.warn("[LM] Failed to parse chat control response",xd(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(vD,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(bD,JSON.stringify(e.models),-1,1))}dispose(){this._chatControlDisposed=!0,this._store.dispose(),this._providers.clear()}};oc=R([C(0,LF),C(1,ie),C(2,Po),C(3,Dr),C(4,VF),C(5,TF),C(6,wF),C(7,$u),C(8,hI),C(9,hN),C(10,SI),C(11,Ur)],oc);var O7="code/chat/",qF=new Map,Ih={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 xh(i,t){let e=il(i),n=`${O7}${e}/${t}`,o=qF.get(e);o||(o=new Set,qF.set(e,o)),o.add(n),vn(n)}var NI=D("chatAgentService"),AI=class extends U{constructor(e,n){super();this.contextKeyService=e;this.configurationService=n;this._agents=new Map;this._onDidChangeAgents=this._register(new T);this.onDidChangeAgents=this._onDidChangeAgents.event;this._onWillInvokeAgent=this._register(new T);this.onWillInvokeAgent=this._onWillInvokeAgent.event;this._agentsContextKeys=new Set;this._hasToolsAgent=!1;this._chatParticipantDetectionProviders=new Map;this._agentCompletionProviders=new Map;this._hasDefaultAgent=Zo.enabled.bindTo(this.contextKeyService),this._extensionAgentRegistered=Zo.extensionParticipantRegistered.bindTo(this.contextKeyService),this._defaultAgentRegistered=Zo.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(Je.deserialize(l.when)))}};let a={data:n};return this._agents.set(e,a),this._updateAgentsContextKeys(),this._updateContextKeys(),this._onDidChangeAgents.fire(void 0),Y(()=>{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=Je.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 ju(o.data,n)),Y(()=>{o.impl=void 0,this._onDidChangeAgents.fire(void 0),o.data.isDefault&&this._hasDefaultAgent.set(It.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 ju(e,n)),Y(()=>{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 ju(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 dO(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(Je.deserialize(n.data.when))}getAgentByFullyQualifiedId(e){let n=It.find(this._agents.values(),o=>yD(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 ju(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){xh(n.sessionResource,Ih.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 xh(n.sessionResource,Ih.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),Y(()=>{this._chatParticipantDetectionProviders.delete(e)})}hasChatParticipantDetectionProviders(){return this._chatParticipantDetectionProviders.size>0}async detectAgentOrCommand(e,n,o,r){let s=It.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}}};AI=R([C(0,Dr),C(1,sn)],AI);var ju=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}},KF=D("chatAgentNameService"),OI=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=>Bn(r,r.includes(".")?e.extensionId.value:e.extensionPublisherId)):!0)}};OI=R([C(0,MI)],OI);function yD(i){return`${i.extensionId.value}.${i.id}`}function L7(i){return i.name!==void 0}function UI(i){let t=L7(i)?i:{...i,name:i.id};return t.extensionPublisherId||(t.extensionPublisherId=i.extensionPublisher??""),t.extensionDisplayName||(t.extensionDisplayName=""),t.extensionId||(t.extensionId=new xe("")),Dt(t)}var N7=250,U7=500,F7=250,H7=1e3,ID=10,V7=2,Qu=class{constructor(t){this.logService=t;let e=Date.now();this._data={totalTime:0,lastUpdateTime:e,impliedWordLoadRate:0,lastWordCount:0,firstMarkdownTime:void 0,bootstrapActive:!0,wordCountAtBootstrapExit:void 0,updatesWithNewWords:0},this._publicData={impliedWordLoadRate:0,lastWordCount:0}}get data(){return this._publicData}get internalData(){return this._data}update(t){let{totalWordCount:e}=t;if(e===this._data.lastWordCount){this.trace("Update- no new words");return}let n=Date.now(),o=e-this._data.lastWordCount,r=this._data.lastWordCount===0,s=this._data.firstMarkdownTime,a=this._data.wordCountAtBootstrapExit;typeof s!="number"&&e>0&&(s=n);let l=this._data.updatesWithNewWords+1;r&&(this._data.lastUpdateTime=n);let d=o>ID?H7:F7,c=Math.min(n-this._data.lastUpdateTime,d),u=this._data.totalTime+c,m=r&&e>ID?U7:N7,g=this._data.bootstrapActive;if(g){let P=s;typeof P=="number"&&l>=V7&&e>=ID?(g=!1,u=Math.max(n-P,c),a=this._data.lastWordCount,this.trace("Has stable data")):u=Math.max(u,m)}let v=typeof a=="number"?Math.max(e-a,0):e,h=u,I=g?e:v,S=h>0?I/(h/1e3):0;this._data={totalTime:u,lastUpdateTime:n,impliedWordLoadRate:S,lastWordCount:e,firstMarkdownTime:s,bootstrapActive:g,wordCountAtBootstrapExit:a,updatesWithNewWords:l},this._publicData={impliedWordLoadRate:S,lastWordCount:e};let w=g?e:v;return this.trace(`Update- got ${w} words over last ${u}ms = ${S} words/s`),this._data}trace(t){this.logService.trace(`ChatStreamStatsTracker#update: ${t}`)}};Qu=R([C(0,ie)],Qu);var xD=/(?<![a-zA-Z0-9])(?<dollars>\${1,2})(?!\.|\(["'])((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\k<dollars>(?![a-zA-Z0-9])/,B7="vscode-katex-container",W7="data-latex",$7=new RegExp("^"+xD.source),z7;(r=>{let i=/^(\${1,2})\n((?:\\[^]|[^\\])+?)\n\1(?:\n|$)/;function t(s,a={}){return{extensions:[n(a,e(s,a,!1)),o(a,e(s,a,!0))]}}r.extension=t;function e(s,a,l){return d=>{let c;try{let u=s.renderToString(d.text,{...a,throwOnError:!0,displayMode:d.displayMode});c=`<span class="${B7}" ${W7}="${EL(d.text)}">${u}</span>`}catch{c=d.raw}return c+(l?`
`:"")}}function n(s,a){let l=$7;return{name:"inlineKatex",level:"inline",start(d){let c,u=d;for(;u;){if(c=u.indexOf("$"),c===-1)return;if(u.substring(c).match(l))return c;u=u.substring(c+1).replace(/^\$+/,"")}},tokenizer(d,c){let u=d.match(l);if(u)return{type:"inlineKatex",raw:u[0],text:u[2].trim(),displayMode:u[1].length===2}},renderer:a}}function o(s,a){return{name:"blockKatex",level:"block",start(l){return l.match(new RegExp(i.source,"m"))?.index},tokenizer(l,d){let c=l.match(i);if(c)return{type:"blockKatex",raw:c[0],text:c[2].trim(),displayMode:c[1].length===2}},renderer:a}}})(z7||={});var _o=String.raw,K7=_o`(?<!\\)`+_o`(!?\[`+_o`(?:`+_o`[^\[\]\\]|`+_o`\\.|`+_o`\[[^\[\]]*\]`+_o`)*`+_o`\])`+_o`(\(\s*)`+_o`(`+_o`[^\s\(\)<](?:[^\s\(\)]|\([^\s\(\)]*?\))*|`+_o`<(?:\\[<>]|[^<>])+>`+_o`)`+_o`\s*(?:"[^"]*"|'[^']*'|\([^\(\)]*\))?\s*`+_o`\)`;function G7(i,t){let n=new RegExp("(?:"+K7+")|(?:"+xD.source+_o`)|\p{sc=Han}|=+|\++|-+|[^\s\|\p{sc=Han}|=|\+|\-|${"`"}]+`,"gu"),o=Array.from(i.matchAll(n)),r=o.slice(0,t),s=t>=o.length?i.length:r.length?r.at(-1).index+r.at(-1)[0].length:0,a=i.substring(0,s);return{value:a,returnedWordCount:r.length===0?a.length?1:0:r.length,isFullString:s>=i.length,totalWordCount:o.length}}function GF(i){return G7(i,Number.MAX_SAFE_INTEGER).returnedWordCount}function jF(i){return!!i&&typeof i=="object"&&"message"in i}function Q7(i){return!!i&&typeof i.setVote<"u"}var FI=class extends U{constructor(e,n,o){super();this._model=e;this._options=n;this.instantiationService=o;this._onDidDisposeModel=this._register(new T);this.onDidDisposeModel=this._onDidDisposeModel.event;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this._items=[];this._inputPlaceholder=void 0;this._editing=void 0;e.getRequests().forEach((r,s)=>{let a=this.instantiationService.createInstance(Ju,r);this._items.push(a),r.response&&this.onAddResponse(r.response)}),this._register(e.onDidDispose(()=>this._onDidDisposeModel.fire())),this._register(e.onDidChangePendingRequests(()=>this._onDidChange.fire(null))),this._register(e.onDidChange(r=>{if(r.kind==="addRequest"){let a=this.instantiationService.createInstance(Ju,r.request);this._items.push(a),r.request.response&&this.onAddResponse(r.request.response)}else if(r.kind==="addResponse")this.onAddResponse(r.response);else if(r.kind==="removeRequest"){let a=this._items.findIndex(d=>jF(d)&&d.id===r.requestId);a>=0&&this._items.splice(a,1);let l=r.responseId&&this._items.findIndex(d=>Q7(d)&&d.id===r.responseId);if(typeof l=="number"&&l>=0){let c=this._items.splice(l,1)[0];c instanceof rc&&c.dispose()}}let s=r.kind==="addRequest"?{kind:"addRequest"}:r.kind==="initialize"?{kind:"initialize"}:r.kind==="setHidden"?{kind:"setHidden"}:null;this._onDidChange.fire(s)}))}get inputPlaceholder(){return this._inputPlaceholder}get model(){return this._model}setInputPlaceholder(e){this._inputPlaceholder=e,this._onDidChange.fire({kind:"changePlaceholder"})}resetInputPlaceholder(){this._inputPlaceholder=void 0,this._onDidChange.fire({kind:"changePlaceholder"})}get sessionResource(){return this._model.sessionResource}onAddResponse(e){let n=this.instantiationService.createInstance(rc,e,this);this._register(n.onDidChange(()=>this._onDidChange.fire(null))),this._items.push(n)}getItems(){let e=this._items.filter(o=>!(o.isHiddenFromTranscript||o.shouldBeRemovedOnSend&&!o.shouldBeRemovedOnSend.afterUndoStop));this._options?.maxVisibleItems!==void 0&&e.length>this._options.maxVisibleItems&&(e=e.slice(-this._options.maxVisibleItems));let n=this._model.getPendingRequests().filter(o=>!o.request.isHiddenFromTranscript);if(n.length>0){let o=n.filter(s=>s.kind==="steering"),r=n.filter(s=>s.kind==="queued");if(o.length>0){let s=o.every(a=>a.request.isSystemInitiated);e.push({kind:"pendingDivider",id:"pending-divider-steering",sessionResource:this._model.sessionResource,isComplete:!0,dividerKind:"steering",isSystemInitiated:s,currentRenderedHeight:void 0});for(let a of o){let l=this.instantiationService.createInstance(Ju,a.request,a.kind);e.push(l)}}if(r.length>0){e.push({kind:"pendingDivider",id:"pending-divider-queued",sessionResource:this._model.sessionResource,isComplete:!0,dividerKind:"queued",currentRenderedHeight:void 0});for(let s of r){let a=this.instantiationService.createInstance(Ju,s.request,s.kind);e.push(a)}}}return e}get editing(){return this._editing}setEditing(e){this.editing&&e&&this.editing.id===e.id||(this._editing=e)}dispose(){super.dispose(),kn(this._items.filter(e=>e instanceof rc)),this._items.length=0}};FI=R([C(2,mn)],FI);var Ju=class{constructor(t,e){this._model=t;this._pendingKind=e}get id(){return this._model.id}get dataId(){return`${this.id}_${this._model.version+(this._model.response?.isComplete?1:0)}`}get sessionResource(){return this._model.session.sessionResource}get username(){return"User"}get avatarIcon(){return le.account}get message(){return this._model.message}get messageText(){return this.message.text}get attempt(){return this._model.attempt}get variables(){return this._model.variableData.variables}get contentReferences(){return this._model.response?.contentReferences}get confirmation(){return this._model.confirmation}get isComplete(){return this._model.response?.isComplete??!1}get isCompleteAddedRequest(){return this._model.isCompleteAddedRequest}get isTerminalCommand(){return this._model.isTerminalCommand}get shouldBeRemovedOnSend(){return this._model.shouldBeRemovedOnSend}get isHiddenFromTranscript(){return this._model.isHiddenFromTranscript}get shouldBeBlocked(){return this._model.shouldBeBlocked}get slashCommand(){return this._model.response?.slashCommand}get agentOrSlashCommandDetected(){return this._model.response?.agentOrSlashCommandDetected??!1}get attachedContext(){return this._model.attachedContext}get modelId(){return this._model.modelId}get resolvedModelId(){let t=this._model.response?.result?.metadata?.resolvedModel;return typeof t=="string"?t:void 0}get timestamp(){return this._model.timestamp}get requestTimestamp(){return this._model.requestTimestamp}get origin(){return this._model.origin}get pendingKind(){return this._pendingKind}get isSystemInitiated(){return this._model.isSystemInitiated}get systemInitiatedLabel(){return this._model.systemInitiatedLabel}},rc=class extends U{constructor(e,n,o,r){super();this._model=e;this.session=n;this.instantiationService=o;this.chatAgentNameService=r;this._modelChangeCount=0;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this.renderData=void 0;this._vulnerabilitiesListExpanded=!1;e.isComplete||(this.liveUpdateTracker=this.instantiationService.createInstance(Qu));let s=this.liveUpdateTracker?this._register(new Nn(()=>{let a=GF(e.entireResponse.getMarkdown());this.liveUpdateTracker.update({totalWordCount:a})},0)):void 0;this._register(e.onDidChange(()=>{s?.schedule(),this._modelChangeCount++,this._onDidChange.fire()}))}get model(){return this._model}get id(){return this._model.id}get dataId(){return this._model.id+`_${this._modelChangeCount}`+(this.isLast?"_last":"")}get sessionResource(){return this._model.session.sessionResource}get username(){return this.agent?this.chatAgentNameService.getAgentNameRestriction(this.agent)?this.agent.fullName||this.agent.name:yD(this.agent):this._model.username}get agent(){return this._model.agent}get slashCommand(){return this._model.slashCommand}get agentOrSlashCommandDetected(){return this._model.agentOrSlashCommandDetected}get response(){return this._model.response}get usedContext(){return this._model.usedContext}get contentReferences(){return this._model.contentReferences}get codeCitations(){return this._model.codeCitations}get progressMessages(){return this._model.progressMessages}get isComplete(){return this._model.isComplete}get isCanceled(){return this._model.isCanceled}get shouldBeBlocked(){return this._model.shouldBeBlocked}get shouldBeRemovedOnSend(){return this._model.shouldBeRemovedOnSend}get isHiddenFromTranscript(){return this._model.isHiddenFromTranscript}get isCompleteAddedRequest(){return this._model.isCompleteAddedRequest}get isTerminalCommand(){return this._model.request?.isTerminalCommand??!1}get replyFollowups(){return this._model.followups?.filter(e=>e.kind==="reply")}get result(){return this._model.result}get errorDetails(){return this.result?.errorDetails}get vote(){return this._model.vote}get requestId(){return this._model.requestId}get isStale(){return this._model.isStale}get isLast(){return this.session.getItems().at(-1)===this}get usedReferencesExpanded(){if(typeof this._usedReferencesExpanded=="boolean")return this._usedReferencesExpanded}set usedReferencesExpanded(e){this._usedReferencesExpanded=e}get vulnerabilitiesListExpanded(){return this._vulnerabilitiesListExpanded}set vulnerabilitiesListExpanded(e){this._vulnerabilitiesListExpanded=e}get contentUpdateTimings(){return this.liveUpdateTracker?.data}get confirmationAdjustedTimestamp(){return this._model.confirmationAdjustedTimestamp}get usageObs(){return this._model.usageObs}get completionTokenCountObs(){return this._model.completionTokenCountObs}setVote(e){this._modelChangeCount++,this._model.setVote(e)}setEditApplied(e,n){this._modelChangeCount++,this._model.setEditApplied(e,n)}};rc=R([C(2,mn),C(3,KF)],rc);var mo=class i{constructor(t,e){this.start=t;this.endExclusive=e;if(t>e)throw new Pt(`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 Pt(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,t))}clipCyclic(t){if(this.isEmpty)throw new Pt(`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 Pt(`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 Gs="**",BI="/",HI="[/\\\\]",VI="[^/\\\\]",J7=/\//g;function QF(i,t){switch(i){case 0:return"";case 1:return`${VI}*?`;default:return`(?:${HI}|${VI}+${HI}${t?`|${HI}${VI}+`:""})*?`}}function Yu(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 eH(i){if(!i)return"";let t="",e=Yu(i,BI);if(e.every(n=>n===Gs))t=".*";else{let n=!1;e.forEach((o,r)=>{if(o===Gs){if(n)return;t+=QF(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===BI?u="":u=dr(c),d+=u;continue}switch(c){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let m=`(?:${Yu(a,",").map(g=>eH(g)).join("|")})`;t+=m,s=!1,a="";break}case"]":{t+="["+d+"]",l=!1,d="";break}case"?":t+=VI;continue;case"*":t+=QF(1);continue;default:t+=dr(c)}}r<e.length-1&&(e[r+1]!==Gs||r+2<e.length)&&(t+=HI)}n=o===Gs})}return t}var Y7=/^\*\*\/\*\.[\w\.-]+$/,X7=/^\*\*\/([\w\.-]+)\/?$/,Z7=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,e9=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,t9=/^\*\*((\/[\w\.-]+)+)\/?$/,n9=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,JF=new Er(1e4),YF=function(){return!1},Ki=function(){return null};function CD(i,t,e){if(!i)return Ki;let n;typeof i!="string"?n=i.pattern:n=i,n=n.trim();let o=t.ignoreCase??!1,r={...t,equals:o?Bn:(d,c)=>d===c,endsWith:o?_L:(d,c)=>d.endsWith(c),isEqualOrParent:(d,c)=>Od(d,c,t.ignoreCase??!lo)},s=`${e===void 0?`default:${o?n.toLowerCase():n}`:`custom:${e}`}_${!!t.trimForExclusions}_${o}`,a=JF.get(s);if(a)return XF(a,i,r);let l;return Y7.test(n)?a=o9(n.substring(4),n,r):(l=X7.exec(SD(n,r)))?a=r9(l[1],n,r):(t.trimForExclusions?e9:Z7).test(n)?a=i9(n,r):(l=t9.exec(SD(n,r)))?a=ZF(l[1].substring(1),n,!0,r):(l=n9.exec(SD(n,r)))?a=ZF(l[1],n,!1,r):a=s9(n,r),JF.set(s,a),XF(a,i,r)}function XF(i,t,e){if(typeof t=="string")return i;let n=function(o,r){return e.isEqualOrParent(o,t.base)?i(vk(o.substring(t.base.length),Xn),r):null};return n.allBasenames=i.allBasenames,n.allPaths=i.allPaths,n.basenames=i.basenames,n.patterns=i.patterns,n}function SD(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function o9(i,t,e){return function(n,o){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function r9(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 i9(i,t){let e=nH(i.slice(1,-1).split(",").map(a=>CD(a,t)).filter(a=>a!==Ki),i,t.ignoreCase),n=e.length;if(!n)return Ki;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 ZF(i,t,e,n){let o=Xn===Ve.sep,r=o?i:i.replace(J7,Xn),s=Xn+r,a=Ve.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 s9(i,t){try{let e=new RegExp(`^${eH(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return Ki}}function br(i,t,e){return!i||typeof t!="string"?!1:li(i,e)(t)}function li(i,t={}){if(!i)return YF;if(typeof i=="string"||tH(i)){let e=CD(i,t);if(e===Ki)return YF;let n=function(o,r){return!!e(o,r)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return a9(i,t)}function tH(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function a9(i,t){let e=nH(Object.getOwnPropertyNames(i).map(a=>l9(a,i[a],t)).filter(a=>a!==Ki),void 0,t.ignoreCase),n=e.length;if(!n)return Ki;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(c,u){let m;for(let g=0,v=e.length;g<v;g++){let h=e[g](c,u);if(typeof h=="string")return h;_r(h)&&(m||(m=[]),m.push(h))}return m?(async()=>{for(let g of m){let v=await g;if(typeof v=="string")return v}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 v=e[m];v.requiresSiblings&&d&&(l||(l=un(a)),c||(c=l.substring(0,l.length-As(a).length)));let h=v(a,l,c,d);if(typeof h=="string")return h;_r(h)&&(u||(u=[]),u.push(h))}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 l9(i,t,e){if(t===!1)return Ki;let n=CD(i,e,i);if(n===Ki)return Ki;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 _r(u)?u.then(m=>m?i:null):u?i:null};return r.requiresSiblings=!0,r}}return n}function nH(i,t,e){let n=i.filter(l=>!!l.basenames);if(n.length<2)return i;let o=n.reduce((l,d)=>{let c=d.basenames;return c?l.concat(c):l},[]),r;if(t){r=[];for(let l=0,d=o.length;l<d;l++)r.push(t)}else r=n.reduce((l,d)=>{let c=d.patterns;return c?l.concat(c):l},[]);let s=function(l,d){if(typeof l!="string")return null;if(!d){let u;for(u=l.length;u>0;u--){let m=l.charCodeAt(u-1);if(m===47||m===92)break}d=l.substring(u)}let c=e?o.findIndex(u=>Bn(u,d)):o.indexOf(d);return c!==-1?r[c]:null};s.basenames=o,s.patterns=r,s.allBasenames=o;let a=i.filter(l=>!l.basenames);return a.push(s),a}var d9=D("notebookDocumentService"),TD=["W","X","Y","Z","a","b","c","d","e","f"],c9=new RegExp(`^[${TD.join("")}]+`),oH=7;function WI(i){if(i.scheme!==$.vscodeNotebookCell)return;let t=i.fragment.indexOf("s");if(t<0)return;let e=parseInt(i.fragment.substring(0,t).replace(c9,""),oH),n=Gn(i.fragment.substring(t+1)).toString();if(!isNaN(e))return{handle:e,notebook:i.with({scheme:n,fragment:null})}}function rH(i,t){let e=t.toString(oH),o=`${e.length<TD.length?TD[e.length-1]:"z"}${e}s${jn(ee.fromString(i.scheme),!0,!0)}`;return i.with({scheme:$.vscodeNotebookCell,fragment:o})}function iH(i){if(i.scheme!==$.vscodeNotebookMetadata)return;let t=Gn(i.fragment).toString();return i.with({scheme:t,fragment:null})}function sH(i){let t=`${jn(ee.fromString(i.scheme),!0,!0)}`;return i.with({scheme:$.vscodeNotebookMetadata,fragment:t})}function wD(i){if(i.scheme!==$.vscodeNotebookCellOutput)return;let t=new URLSearchParams(i.query),e=t.get("openIn");if(!e)return;let n=t.get("outputId")??void 0,o=WI(i.with({scheme:$.vscodeNotebookCell,query:null})),r=t.get("outputIndex")?parseInt(t.get("outputIndex")||"",10):void 0,s=o?o.notebook:i.with({scheme:t.get("notebookScheme")||$.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 ED=class{constructor(){this._documents=new Ue}getNotebook(t){if(t.scheme===$.vscodeNotebookCell){let e=WI(t);if(e){let n=this._documents.get(e.notebook);if(n)return n}}if(t.scheme===$.vscodeNotebookCellOutput){let e=wD(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)}};qe(d9,ED,1);var mhe=["application/json","application/javascript","text/html","image/svg+xml",Qo.latex,Qo.markdown,"image/png","image/jpeg",Qo.text],ghe=[Qo.latex,Qo.markdown,"application/json","text/html","image/svg+xml","image/png","image/jpeg",Qo.text];var u9;(n=>{n.scheme=$.vscodeNotebookMetadata;function t(o){return sH(o)}n.generate=t;function e(o){return iH(o)}n.parse=e})(u9||={});var Ch;(d=>{d.scheme=$.vscodeNotebookCell;function t(c,u){return rH(c,u)}d.generate=t;function e(c){return WI(c)}d.parse=e;function n(c,u){return c.with({scheme:$.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"editor",outputId:u??"",notebookScheme:c.scheme!==$.file?c.scheme:""}).toString()})}d.generateCellOutputUriWithId=n;function o(c,u,m){return c.with({scheme:$.vscodeNotebookCellOutput,fragment:u.fragment,query:new URLSearchParams({openIn:"notebook",outputIndex:String(m)}).toString()})}d.generateCellOutputUriWithIndex=o;function r(c,u,m,g,v){return c.with({scheme:$.vscodeNotebookCellOutput,query:new URLSearchParams({openIn:"notebookOutputEditor",notebook:c.toString(),cellIndex:String(m),outputId:g,outputIndex:String(v)}).toString()})}d.generateOutputEditorUri=r;function s(c){return wD(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})(Ch||={});var fhe=new E("notebookEditorCursorAtBoundary","none"),hhe=new E("notebookEditorCursorAtLineBoundary","none");var aH=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]}}}},p9=new TextDecoder;function lH(i){let t=[],e=!1;for(let s of i)(t.length===0||e)&&(t.push(s),e=!0);let n=g9(t),o=ee.concat(t.map(s=>ee.wrap(s))),r=y9(o);return n=n||r.byteLength!==o.byteLength,{data:r,didCompression:n}}var $I="\x1B[A",kD=$I.split("").map(i=>i.charCodeAt(0)),m9=10;function g9(i){let t=!1;return i.forEach((e,n)=>{if(n===0||e.length<$I.length)return;let o=i[n-1],r=e.subarray(0,$I.length);if(r[0]===kD[0]&&r[1]===kD[1]&&r[2]===kD[2]){let s=o.lastIndexOf(m9);if(s===-1)return;t=!0,i[n-1]=o.subarray(0,s),i[n]=e.subarray($I.length)}}),t}function f9(i){let t=i;do i=t,t=i.replace(/[^\n]\x08/gm,"");while(t.length<i.length);return i}function h9(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 v9=8,b9=13;function y9(i){return!i.buffer.includes(v9)&&!i.buffer.includes(b9)?i:ee.fromString(h9(f9(p9.decode(i.buffer))))}var cH=D("chatEditingService");var khe=new E("chatEditingWidgetFileState",void 0,p(10429,null)),Phe=new E("chatEditingAgentSupportsReadonlyReferences",void 0,p(10428,null)),_he=new E("decidedChatEditingResource",[]),Dhe=new E("chatEditingResource",void 0),Rhe=new E("inChatEditingSession",void 0),Mhe=new E("hasUndecidedChatEditingResource",!1),Ahe=new E("hasAppliedChatEdits",!1),Ohe=new E("applyingChatEditsFailed",!1);function PD(i){return NU(i)&&(i={kind:"terminal",commandLine:{original:i.command,toolEdited:void 0,userEdited:void 0},language:i.language}),i}function uH(i){return{kind:i.kind,sourceSessionResource:i.sourceSessionResource.toJSON()}}function pH(i){if(i?.kind!=="delegation")return;let t=y.revive(i.sourceSessionResource);return t?{kind:i.kind,sourceSessionResource:t}:void 0}var Khe=D("chatRequestOriginService");var Qt;(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(10932,null)}:s.type==="mcp"?{ordinal:2,label:s.serverLabel||s.label}:s.type==="user"?{ordinal:0,label:p(10934,null)}:{ordinal:3,label:s.label}}r.classify=o})(Qt||={});function mH(i){return i!==null&&typeof i=="object"&&y.isUri(i.sessionResource)}function _D(i){return typeof i=="object"&&typeof i?.input=="string"&&(typeof i?.output=="string"||Array.isArray(i?.output))}function DD(i){return typeof i=="object"&&typeof i?.output=="object"&&typeof i?.output?.mimeType=="string"&&i?.output?.type==="data"}function gH(i){return!!i&&i.getTools!==void 0}var Xu=D("ILanguageModelToolsService");var I9;(a=>(a.execute="execute",a.edit="edit",a.search="search",a.agent="agent",a.read="read",a.web="web",a.todo="todo"))(I9||={});var Th;(e=>(e.runSubagent="runSubagent",e.vscode="vscode"))(Th||={});var Eh=class i{constructor(t,e,n,o,r,s={},a){this.toolCallId=n;this.kind="toolInvocation";this.isAttachedToThinking=!1;this._toolSpecificDataKind=gn(this,void 0);this.toolSpecificDataKind=this._toolSpecificDataKind;this._progress=gn(this,{progress:0});this._partialInput=gn(this,void 0);this._streamingMessage=gn(this,void 0);let l="";s.startInStreaming?l=e.displayName:s.startInCancelled&&(l=s.cancelReasonMessage??p(10473,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&&Ye.isThemeIcon(e.icon)?e.icon:void 0),this.source=e.source,this.subAgentInvocationId=o,this.parameters=r,this.chatRequestId=a,s.startInCancelled?this._state=gn(this,{type:Me.StateKind.Cancelled,reason:s.cancelReason??0,reasonMessage:s.cancelReasonMessage,parameters:this.parameters,confirmationMessages:this.confirmationMessages}):s.startInStreaming?this._state=gn(this,{type:Me.StateKind.Streaming,partialInput:this._partialInput,streamingMessage:this._streamingMessage}):this.confirmationMessages?.title?this._state=gn(this,{type:Me.StateKind.WaitingForConfirmation,parameters:this.parameters,confirmationMessages:this.confirmationMessages,confirm:d=>this._confirm(d)}):this._state=gn(this,{type:Me.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)}_confirm(t){t.type===0||t.type===5?this._state.set({type:Me.StateKind.Cancelled,reason:t.type,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0):this._state.set({type:Me.StateKind.Executing,confirmed:t,progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}updatePartialInput(t){this._state.get().type===Me.StateKind.Streaming&&this._partialInput.set(t,void 0)}updateStreamingMessage(t){this._state.get().type===Me.StateKind.Streaming&&this._streamingMessage.set(t,void 0)}notifyToolSpecificDataChanged(){let t=this._state.get();this._state.set({...t},void 0)}updateConfirmationMessages(t){let e=this._state.get();e.type===Me.StateKind.WaitingForConfirmation&&(this.confirmationMessages=t,this._state.set({...e,confirmationMessages:t},void 0))}cancelFromStreaming(t,e){return this._state.get().type!==Me.StateKind.Streaming?!1:(this._state.set({type:Me.StateKind.Cancelled,reason:t,reasonMessage:e,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0),!0)}transitionFromStreaming(t,e,n){if(this._state.get().type!==Me.StateKind.Streaming)return;let r=this._streamingMessage.get();r&&!t?.invocationMessage&&(this.invocationMessage=r),this._updatePreparedInvocation(t,e),n?this._confirm(n):this.confirmationMessages?.title?this._state.set({type:Me.StateKind.WaitingForConfirmation,parameters:this.parameters,confirmationMessages:this.confirmationMessages,confirm:s=>this._confirm(s)},void 0):this._state.set({type:Me.StateKind.Executing,confirmed:{type:1,reason:this.confirmationMessages?.confirmationNotNeededReason},progress:this._progress,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}updatePreparedInvocation(t,e){let n=this._state.get();return n.type===Me.StateKind.Streaming||n.type===Me.StateKind.Completed||n.type===Me.StateKind.Cancelled?!1:(this._updatePreparedInvocation(t,e),this._state.set({...n,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0),!0)}_updatePreparedInvocation(t,e){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)}requestConfirmation(t){let e=this._state.get().type;if(e===Me.StateKind.Streaming){this.transitionFromStreaming(t,this.parameters,void 0);return}e===Me.StateKind.Completed||e===Me.StateKind.Cancelled||e===Me.StateKind.WaitingForConfirmation||(t.invocationMessage&&(this.invocationMessage=t.invocationMessage),this.pastTenseMessage=t.pastTenseMessage,this.confirmationMessages=t.confirmationMessages,this.presentation=t.presentation,this.toolSpecificData=t.toolSpecificData,this.confirmationMessages?.title&&this._state.set({type:Me.StateKind.WaitingForConfirmation,parameters:this.parameters,confirmationMessages:this.confirmationMessages,confirm:n=>this._confirm(n)},void 0))}_setCompleted(t,e){if(e&&(e.type===0||e.type===5)){this._state.set({type:Me.StateKind.Cancelled,reason:e.type,parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0);return}this._state.set({type:Me.StateKind.Completed,confirmed:Me.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){let o=this._state.get();if(o.type===Me.StateKind.Completed||o.type===Me.StateKind.Cancelled)return o;if(t?.toolSpecificData&&(this.toolSpecificData=t.toolSpecificData),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 r=await n?.();r?this._setCompleted(t,r):this._state.set({type:Me.StateKind.WaitingForPostApproval,confirmed:Me.executionConfirmedOrDenied(this)||{type:1},resultDetails:t?.toolResultDetails,contentForModel:t?.content||[],confirm:s=>this._setCompleted(t,s),parameters:this.parameters,confirmationMessages:this.confirmationMessages},void 0)}else this._setCompleted(t);return this._state.get()}setAuthenticationRequired(t,e=()=>{}){let n=this._state.get();n.type!==Me.StateKind.Executing&&n.type!==Me.StateKind.WaitingForAuthentication||this._state.set({type:Me.StateKind.WaitingForAuthentication,server:t,cancel:n.type===Me.StateKind.WaitingForAuthentication?n.cancel:e,confirmed:n.confirmed,parameters:n.parameters,confirmationMessages:n.confirmationMessages},void 0)}setAuthenticationResolved(){let t=this._state.get();t.type===Me.StateKind.WaitingForAuthentication&&this._state.set({type:Me.StateKind.Executing,confirmed:t.confirmed,progress:this._progress,parameters:t.parameters,confirmationMessages:t.confirmationMessages},void 0)}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===Me.StateKind.WaitingForPostApproval,e=t?void 0:Me.resultDetails(this);return{kind:"toolInvocationSerialized",presentation:this.presentation,invocationMessage:this.invocationMessage,pastTenseMessage:this.pastTenseMessage,originMessage:this.originMessage,isConfirmed:t?{type:5}:Me.executionConfirmedOrDenied(this),isComplete:!0,source:this.source,resultDetails:DD(e)?{output:{type:"data",mimeType:e.output.mimeType,base64Data:jn(e.output.value)}}:e,toolSpecificData:this.toolSpecificData?.kind==="automationConfiguration"?void 0:this.toolSpecificData,toolCallId:this.toolCallId,toolId:this.toolId,subAgentInvocationId:this.subAgentInvocationId,generatedTitle:this.generatedTitle}}};var Zu=class{constructor(t,e,n,o,r,s,a,l,d,c){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.isOutdated=c;this.kind="planReview";this.completion=new pn;this._onDidDismiss=new T;this.onDidDismiss=this._onDidDismiss.event}dismiss(){this.isUsed||(this.isUsed=!0,this.draftFeedback=void 0,this.draftCollapsed=void 0,this.completion.complete(void 0),this._onDidDismiss.fire())}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,isOutdated:this.isOutdated,source:this.source}}};var ep=class{constructor(t,e,n,o,r,s,a,l,d){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.answerPresentation=d;this.kind="questionCarousel";this.completion=new pn}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,answeredExternally:this.answeredExternally,autoReply:this.autoReply,message:this.message,source:this.source,terminalId:this.terminalId,answerPresentation:this.answerPresentation}}};var S9;(t=>{function i(e,n){return e.text===n.text&&O_(e.parts,n.parts,(o,r)=>o.kind===r.kind&&mo.equals(o.range,r.range)&&Fe.equalsRange(o.editorRange,r.editorRange)&&o.text===r.text)}t.equals=i})(S9||={});var tp=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}},XI="#",C9="@",wh="/",zI=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`${XI}${this.variableName}${t}`}get promptText(){return this.text}},qI=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`${XI}${this.toolName}`}get promptText(){return this.text}toVariableEntry(){return{kind:"tool",id:this.toolId,name:this.toolName,range:this.range,value:void 0,icon:Ye.isThemeIcon(this.icon)?this.icon:void 0,fullName:this.displayName}}},KI=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`${XI}${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}}},GI=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`${C9}${this.agent.name}`}get promptText(){return""}},jI=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`${wh}${this.command.name}`}get promptText(){return""}},QI=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`${wh}${this.slashCommand.command}`}get promptText(){return`${wh}${this.slashCommand.command}`}},JI=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??`${wh}${this.name}`}get promptText(){return this.displayText??`${wh}${this.name}`}},YI=class i{constructor(t,e,n,o,r,s,a,l,d,c,u,m){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.isAttachmentReference=m;this.kind=i.Kind}static{this.Kind="dynamic"}get referenceText(){return this.text.replace(XI,"")}get promptText(){return this.text}toVariableEntry(){if(this.id==="vscode.problems")return Xf.toEntry(this.data.filter);if(aU(this.data)){let t=lU(this.data,this.id,this.fullName??this.referenceText,this.range,this._meta);if(t)return t}return{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 fH(i){return{text:i.text,parts:i.parts.map(t=>{if(t.kind===tp.Kind)return new tp(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.text);if(t.kind===zI.Kind)return new zI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.variableName,t.variableArg,t.variableId||"");if(t.kind===qI.Kind)return new qI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.toolName,t.toolId,t.displayName,t.icon);if(t.kind===KI.Kind)return new KI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.id,t.name,t.icon,t.tools??[]);if(t.kind===GI.Kind){let e=t.agent;return e=UI(e),new GI(new mo(t.range.start,t.range.endExclusive),t.editorRange,e)}else{if(t.kind===jI.Kind)return new jI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.command);if(t.kind===QI.Kind)return new QI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.slashCommand);if(t.kind===JI.Kind)return new JI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.name,t.displayText);if(t.kind===YI.Kind)return new YI(new mo(t.range.start,t.range.endExclusive),t.editorRange,t.text,t.id,t.modelDescription,Dt(t.data),t.fullName,t.icon,t.isFile,t.isDirectory,t._meta,t.isAttachmentReference);throw new Error(`Unknown chat request part: ${t.kind}`)}})}}var bH;(t=>{function i(e){return{variables:e.variables.map(sl.toExport)}}t.toExport=i})(bH||={});var di={reason:"other"},ZI=class{constructor(t){this._shouldBeBlocked=gn(this,!1);this._version=0;this._session=t.session,this.message=t.message,this._variableData=t.variableData,this.requestTimestamp=t.timestamp,this.timestamp=t.timestamp??t.fallbackTimestamp??Date.now(),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_"+Be(),this._editedFileEvents=t.editedFileEvents,this.userSelectedTools=t.userSelectedTools,this.isSystemInitiated=t.isSystemInitiated,this.isHiddenFromTranscript=t.isHiddenFromTranscript??!1,this.systemInitiatedLabel=t.systemInitiatedLabel,this.terminalExecutionId=t.terminalExecutionId,this.isTerminalCommand=t.isTerminalCommand??!1,this.origin=t.origin}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}},ex=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"voiceProgress":case"multiDiffData":case"mcpServersStarting":case"mcpAuthenticationRequired":case"mcpServersStartingSlow":case"questionCarousel":case"planReview":case"disabledClaudeHooks":case"autoModeResolution":continue;case"systemNotification":s={text:r.content.value,isBlock:!0};break;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 vt){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(10467,null)),e.join(`

`)}inlineRefToRepr(t){return"uri"in t.inlineReference?this.uriToRepr(t.inlineReference.uri,t.inlineReference.range):"name"in t.inlineReference?sP(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=PD(t.toolSpecificData);o=e(s)}let r=n;if(o&&(r+=`: ${o}`),t.kind==="toolInvocationSerialized"||t.kind==="toolInvocation"&&Me.isComplete(t)){let s=Me.resultDetails(t);if(s&&"input"in s){let a=t.kind==="toolInvocationSerialized"||Me.isComplete(t)?"Completed":"Errored",l=t.toolSpecificData?.kind==="terminal"?e(PD(t.toolSpecificData)):s.input;r+=`
${a} with input: ${l}`}}return{text:r,isBlock:!0}}uriToRepr(t,e){if(t.scheme===$.http||t.scheme===$.https)return t.toString(!1);let n=e?e.startLineNumber===e.endLineNumber?`:${e.startLineNumber}`:`:${e.startLineNumber}-${e.endLineNumber}`:"";return sP(tt(t)+n)}},RD=class extends ex{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}},MD=class extends ex{constructor(e){super(hn(e).map(n=>"kind"in n?n:Eo(n)?{content:n,kind:"markdownContent"}:{kind:"treeData",treeData:n}));this._store=new G;this._onDidChangeValue=this._store.add(new T);this._citations=[]}get onDidChangeValue(){return this._onDidChangeValue.event}dispose(){this._store.dispose()}clear(){this.finalizeReasoningDuration(),this._responseParts=[],this._contentChanged(!0)}clearToPreviousToolInvocation(e){this.finalizeReasoningDuration();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 vt(e)}),this._contentChanged(!0)}updateContent(e,n){if(e.kind!=="thinking"&&this.finalizeReasoningDuration(),e.kind==="clearToPreviousToolInvocation"){e.reason===2?this.clearToPreviousToolInvocation(p(10466,null)):e.reason===1?this.clearToPreviousToolInvocation(p(10468,null)):this.clearToPreviousToolInvocation();return}else if(e.kind==="markdownContent"){let o=this._responseParts.filter(r=>r.kind!=="textEditGroup"&&!k9(r)).at(-1);if(!o||o.kind!=="markdownContent"||!hH(o.content,e.content))this._responseParts.push(e);else{let r=this._responseParts.indexOf(o);this._responseParts[r]={...o,content:vH(o.content,e.content)}}this._contentChanged(n)}else if(e.kind==="systemNotification"){let o=this._responseParts.at(-1);o?.kind==="toolInvocation"&&Me.isStreaming(o)&&!Me.isEffectivelyHidden(o)?this._responseParts.splice(this._responseParts.length-1,0,e):this._responseParts.push(e),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(a(s)?this.finalizeReasoningDuration():this._activeReasoning||(this._activeReasoning={part:e,startedAt:Date.now()}),!o||o.kind!=="thinking"||a(s)||a(r)||!hH(new vt(r),new vt(s)))this._responseParts.push(e);else{let l=this._responseParts.indexOf(o),d={...o,value:vH(new vt(r),new vt(s)).value};this._responseParts[l]=d,this._activeReasoning?.part===o&&(this._activeReasoning.part=d)}this._contentChanged(n)}else if(e.kind==="textEdit"||e.kind==="notebookEdit"){let o=Ch.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 vt(s)),this._contentChanged(!1)})}else if(e.kind==="toolInvocation")W_(this._store,o=>{e.state.read(o),this._contentChanged(!1),Me.isComplete(e,o)&&o.dispose()}),this._responseParts.push(e),this._contentChanged(n);else if(e.kind==="externalToolInvocationUpdate")this._handleExternalToolInvocationUpdate(e),this._contentChanged(n);else if(e.kind==="progressMessage"&&e.id!==void 0){let o=this._responseParts.findIndex(r=>r.kind==="progressMessage"&&r.id===e.id);o===-1?this._responseParts.push(e):this._responseParts[o]=e,this._contentChanged(n)}else this._responseParts.push(e),this._contentChanged(n)}finalizeReasoningDuration(){this._activeReasoning&&(this._activeReasoning.part.reasoningDurationMs=Math.max(0,Date.now()-this._activeReasoning.startedAt),this._activeReasoning=void 0)}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&&nn(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&&nn(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:Qt.External,displayName:e.toolName,modelDescription:e.toolName},r=new Eh({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+=`

`+P9(this._citations)),e}_contentChanged(e){this._invalidateRepr(),e||this._onDidChangeValue.fire()}};function T9(i){return i?.reduce((t,e)=>t+e.outputTokens,0)}var np=class extends U{constructor(e){super();this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this._modelState=gn(this,{value:0});this._usageObs=gn(this,void 0);this._subagentCopilotCredits=new Map;this._completionTokenCountObs=gn(this,void 0);this._shouldBeBlocked=gn(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._completionTimestamp=e.completionTimestamp===null?void 0:e.completionTimestamp??(e.modelState&&"completedAt"in e.modelState?e.modelState.completedAt: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||Eo(e.responseContent)&&e.responseContent.value.length!==0),this._response=this._register(new MD(e.responseContent)),this._codeBlockInfos=e.codeBlockInfos?[...e.codeBlockInfos]:void 0;let n=rh(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===Me.StateKind.WaitingForConfirmation){let u=c.confirmationMessages?.title;return u?Eo(u)?u.value:u:void 0}if(c.type===Me.StateKind.WaitingForPostApproval)return p(10470,null);if(c.type===Me.StateKind.WaitingForAuthentication)return p(10471,null,c.server.name)}if(d.kind==="confirmation"&&!d.isUsed)return d.title;if(d.kind==="questionCarousel"&&!d.isUsed)return p(10469,null);if(d.kind==="planReview"&&!d.isUsed)return p(10472,null);if(d.kind==="elicitation2"&&d.state.read(l)==="pending"){let c=d.title;return Eo(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(di))),this.id=e.restoredId??"response_"+Be();let s;this.confirmationAdjustedTimestamp=$s(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 isHiddenFromTranscript(){return this.request?.isHiddenFromTranscript??!1}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(di))}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 completionTimestamp(){return this._completionTimestamp}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 RD(this._response,e)),this._responseView):this._finalizedResponse||this._response}get codeBlockInfos(){return this._codeBlockInfos}initializeCodeBlockInfos(e){if(this._codeBlockInfos)throw new Pt("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(di))}applyCodeCitation(e){this._codeCitations.push(e),this._response.addCitation(e),this._onDidChange.fire(di)}setAgent(e,n){this._agent=e,this._slashCommand=n,this._agentOrSlashCommandDetected=!e.isDefault||!!n,this._onDidChange.fire(di)}setResult(e){if(this.isCanceled&&e.errorDetails){let{errorDetails:n,...o}=e;this._result=o}else this._result=e;this._onDidChange.fire(di)}setUsage(e){this._parentUsage=e,this._setUsage(this._withSubagentCopilotCredits(e),!0)}setSubagentCopilotCredits(e,n){let o=this._subagentCopilotCredits.get(e);if(!Number.isFinite(n)||n<0||o!==void 0&&n<=o)return;this._subagentCopilotCredits.set(e,n);let r=this._parentUsage??{kind:"usage",promptTokens:0,completionTokens:0};this._setUsage(this._withSubagentCopilotCredits(r),!1)}_withSubagentCopilotCredits(e){let n=0;for(let o of this._subagentCopilotCredits.values())n+=o;return n===0?e:{...e,copilotCredits:(e.copilotCredits??0)+n}}_setUsage(e,n){let o=this._usageObs.get();if(o&&this.isSameUsage(o,e))return;let r=!o||o.promptTokens!==e.promptTokens||o.completionTokens!==e.completionTokens||o.outputBuffer!==e.outputBuffer;this._usageObs.set(e,void 0);let s=T9(e.modelTotals);if(s!==void 0)this._completionTokenCountObs.set(s,void 0);else if(n&&r){let a=this._completionTokenCountObs.get()??0;this._completionTokenCountObs.set(a+e.completionTokens,void 0)}this._onDidChange.fire(di)}setElapsedMs(e){this._elapsedMs=Math.max(0,e)}isSameUsage(e,n){return e.promptTokens===n.promptTokens&&e.completionTokens===n.completionTokens&&e.outputBuffer===n.outputBuffer&&e.copilotCredits===n.copilotCredits&&e.sessionCopilotCredits===n.sessionCopilotCredits&&ht(e.promptTokenDetails,n.promptTokenDetails)&&ht(e.modelTotals,n.modelTotals)}complete(e=Date.now()){this._complete(e,e)}completeWithoutTimestamp(){this._complete(Date.now(),void 0)}_complete(e,n){if(this.isComplete)return;this._result?.errorDetails?.responseIsRedacted&&this._response.clear(),this._response.finalizeReasoningDuration(),this._elapsedMs??=Math.max(0,e-this.confirmationAdjustedTimestamp.get());let o=this._result?.errorDetails&&this._result.errorDetails.code!=="canceled"?3:1;this._completionTimestamp=n,this._modelState.set({value:o,completedAt:e},void 0),this._onDidChange.fire({reason:"completedRequest"})}cancel(){this._response.finalizeReasoningDuration();for(let n of this._response.value)n.kind==="toolInvocation"&&n instanceof Eh?n.cancelFromStreaming(5):n instanceof Zu?n.dismiss():n instanceof ep&&n.dismiss(void 0);let e=Date.now();this._elapsedMs??=Math.max(0,e-this.confirmationAdjustedTimestamp.get()),this._completionTimestamp=e,this._modelState.set({value:2,completedAt:e},void 0),this._onDidChange.fire({reason:"completedRequest"})}setFollowups(e){this._followups=e,this._onDidChange.fire(di)}setVote(e){this._vote=e,this._onDidChange.fire(di)}setEditApplied(e,n){return!this.response.value.includes(e)||!e.state?!1:(e.state.applied=n,this._onDidChange.fire(di),!0)}adoptTo(e){this._session=e,this._onDidChange.fire(di)}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,responseTimestamp:this._timestamp,timeSpentWaiting:(n?Date.now()-n.startedWaitingAt:0)+this._timeSpentWaitingAccumulator,promptTokens:this.usage?.promptTokens,completionTokens:this.completionTokenCount,outputBuffer:this.usage?.outputBuffer,promptTokenDetails:this.usage?.promptTokenDetails,copilotCredits:this.usage?.copilotCredits,modelTotals:this.usage?.modelTotals,sessionCopilotCredits:this.usage?.sessionCopilotCredits,elapsedMs:this.elapsedMs??(this.completedAt?Math.max(0,this.completedAt-this.confirmationAdjustedTimestamp.get()):void 0)}}};function E9(i){return{attachments:(i.attachments??[]).map(sl.fromExport),mode:i.mode,selectedModel:i.selectedModel&&{identifier:i.selectedModel.identifier,metadata:i.selectedModel.metadata},modelConfiguration:i.selectedModel?i.selectedModel.modelConfiguration??i.modelConfiguration:void 0,contrib:i.contrib,inputText:i.inputText,selections:i.selections,permissionLevel:i.permissionLevel}}function yH(i){return!!i&&Array.isArray(i.requests)&&typeof i.responderUsername=="string"}function w9(i){let t=i;return yH(i)&&typeof t.creationDate=="number"&&typeof t.sessionId=="string"&&i.requests.every(e=>!e.usedContext||LU(e.usedContext))}var AD=class{constructor(t,e,n){this.logger=e;this.sessionId=n;this._state=Bs({debugName:"inputModelState",equalsFn:ht},t),this.state=this._state}get intendedModel(){return this._intendedModel}setIntendedModel(t){this._intendedModel=t}setState(t){let e=this._state.get();_9(t,e,this.logger,this.sessionId),this._state.set({attachments:[],mode:{id:"agent",kind:"agent"},selectedModel:void 0,inputText:"",selections:[],contrib:{},...e,...t,origin:t.origin},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=>!(cU(n)||dU(n)&&pU(n.value)));return{contrib:t.contrib,attachments:e.map(sl.toExport),mode:t.mode,selectedModel:t.selectedModel?{identifier:t.selectedModel.identifier,metadata:t.selectedModel.metadata,modelConfiguration:t.modelConfiguration}:void 0,inputText:t.inputText,selections:t.selections,permissionLevel:t.permissionLevel}}},op=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 T);this.onDidDispose=this._onDidDispose.event;this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this._pendingRequests=[];this._onDidChangePendingRequests=this._register(new T);this.onDidChangePendingRequests=this._onDidChangePendingRequests.event;this._isImported=!1;this._isDeleted=!1;this._canUseTools=!0;this.currentEditedFileEvents=new Ue;this._checkpoint=void 0;let l=e?.value,d=yH(l),c=d&&w9(l);l&&!d&&this.logService.warn(`ChatModel#constructor: Loaded malformed session data: ${JSON.stringify(l)}`),this._isImported=!!l&&d&&!c,n.resource?(this._sessionId=il(n.resource),this._sessionResource=n.resource):c?(this._sessionId=l.sessionId,this._sessionResource=mr.forSession(l.sessionId)):(this._sessionId=Be(),this._sessionResource=mr.forSession(this._sessionId)),this._disableBackgroundKeepAlive=n.disableBackgroundKeepAlive??!1,this._timestamp=c&&l.creationDate||Date.now(),this._requests=l?this._deserialize(l):[],this._customTitle=c?l.customTitle:void 0;let u=n.inputState||(c&&l.inputState?l.inputState:void 0);if(this.inputModel=new AD(u&&E9(u),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?y.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.isReadOnly=n.isReadOnly??tI(!1),this.lastRequestObs=po(this,this.onDidChange,()=>this._requests.at(-1)),this._register(uo(m=>{let g=this.lastRequestObs.read(m);g?.response&&m.store.add(g.response.onDidChange(async v=>{!this._editingSession||v.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 v=m?.response?.isPendingConfirmation.read(g);if(v)return{title:this.title,detail:v.detail}}),this.initialLocation==="panel"&&!n.disableBackgroundKeepAlive){let m=this._register(new dn);this._register(uo(g=>{let v=this.requestInProgress.read(g),h=this.requestNeedsInput.read(g),I=v||!!h;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()}replacePendingRequests(e){this._pendingRequests.length===e.length&&e.every((n,o)=>this._pendingRequests[o]===n)||(this._pendingRequests.length=0,this._pendingRequests.push(...e),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 sessionCost(){let e=0,n=0;for(let o of this._requests){let r=o.response?.usage;typeof r?.copilotCredits=="number"&&(e+=r.copilotCredits),typeof r?.sessionCopilotCredits=="number"&&(n=Math.max(n,r.sessionCopilotCredits))}return Math.max(e,n)}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||op.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 dn);this._register(uo(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(uo(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=On(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):fH(e.message),o=this.reviveVariableData(e.variableData),r=typeof e.timestamp=="number"&&e.timestamp>0?e.timestamp:void 0,s=new ZI({session:this,message:n,variableData:o,timestamp:r,fallbackTimestamp:this._timestamp,restoredId:e.requestId,confirmation:e.confirmation,editedFileEvents:e.editedFileEvents,modelId:e.modelId,modeInfo:e.modeInfo,isSystemInitiated:e.isSystemInitiated,isHiddenFromTranscript:e.hiddenFromTranscript,systemInitiatedLabel:e.systemInitiatedLabel,terminalExecutionId:e.terminalExecutionId,origin:pH(e.origin)});if(s.shouldBeRemovedOnSend=e.isHidden?{requestId:e.requestId}:e.shouldBeRemovedOnSend,e.response||e.result||e.responseErrorDetails){let a=e.agent&&"metadata"in e.agent?UI(e.agent):void 0,l="responseErrorDetails"in e?{errorDetails:e.responseErrorDetails}:e.result,d=e.modelState||{value:e.isCanceled?2:1,completedAt:Date.now()};if((d.value===0||d.value===4)&&(d={value:2,completedAt:Date.now()}),e.response)for(let c of e.response)On(c,{kind:!0})&&(c.kind==="questionCarousel"||c.kind==="planReview")&&(c.isUsed=!0);s.response=new np({responseContent:e.response??[new vt(e.response)],session:this,agent:a,slashCommand:e.slashCommand,requestId:s.id,modelState:d,completionTimestamp:e.modelState&&"completedAt"in e.modelState&&Number.isFinite(e.modelState.completedAt)&&e.modelState.completedAt>0?e.modelState.completedAt:null,vote:e.vote,timestamp:typeof e.responseTimestamp=="number"&&e.responseTimestamp>0?e.responseTimestamp:r,result:l,followups:e.followups,restoredId:e.responseId,timeSpentWaiting:e.timeSpentWaiting,elapsedMs:e.elapsedMs,shouldBeBlocked:s.shouldBeBlocked.get(),codeBlockInfos:e.responseMarkdownInfo?.map(c=>({suggestionId:c.suggestionId}))}),s.response.shouldBeRemovedOnSend=e.isHidden?{requestId:e.requestId}:e.shouldBeRemovedOnSend,(typeof e.completionTokens=="number"||typeof e.promptTokens=="number"||typeof e.copilotCredits=="number"||typeof e.sessionCopilotCredits=="number")&&s.response.setUsage({kind:"usage",promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,outputBuffer:e.outputBuffer,promptTokenDetails:e.promptTokenDetails,copilotCredits:e.copilotCredits,modelTotals:e.modelTotals,sessionCopilotCredits:e.sessionCopilotCredits}),e.usedContext&&s.response.applyReference(Dt(e.usedContext)),e.contentReferences?.forEach(c=>s.response.applyReference(Dt(c))),e.codeCitations?.forEach(c=>s.response.applyCodeCitation(Dt(c)))}return s}reviveVariableData(e){let n=e&&Array.isArray(e.variables)?e:{variables:[]};return n.variables=n.variables.map(sl.fromExport),n}getParsedRequestFromString(e){let n=[new tp(new mo(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?tI(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,v,h,I,S,w,P,A,L){let V=[...this.currentEditedFileEvents.values()];this.currentEditedFileEvents.clear();let q=P===void 0?Date.now():typeof P=="number"&&Number.isFinite(P)&&P>0?P:void 0,J=new ZI({restoredId:v,session:this,message:e,variableData:n,timestamp:q,fallbackTimestamp:this._timestamp,attempt:o,modeInfo:r,confirmation:l,locationData:d,attachedContext:c,isCompleteAddedRequest:u,modelId:m,editedFileEvents:V.length?V:void 0,userSelectedTools:g,isSystemInitiated:h,isHiddenFromTranscript:A,systemInitiatedLabel:I,terminalExecutionId:S,isTerminalCommand:w,origin:L});return J.response=new np({responseContent:[],session:this,agent:s,slashCommand:a,requestId:J.id,isCompleteAddedRequest:u,codeBlockInfos:void 0}),this._requests.push(J),xh(this.sessionResource,Ih.RequestUiUpdated),this._onDidChange.fire({kind:"addRequest",request:J}),J}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 np({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??Be(),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 np({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:bH.toExport(e.variableData),response:e.response?e.response.entireResponse.value.filter(s=>s.kind!=="voiceProgress").map(s=>s.kind==="treeData"?s.treeData:s.kind==="markdownContent"?s.content:s):void 0,shouldBeRemovedOnSend:e.shouldBeRemovedOnSend,agent:r,timestamp:e.requestTimestamp,confirmation:e.confirmation,editedFileEvents:e.editedFileEvents,modelId:e.modelId,modeInfo:e.modeInfo,isSystemInitiated:e.isSystemInitiated||void 0,hiddenFromTranscript:e.isHiddenFromTranscript||void 0,systemInitiatedLabel:e.systemInitiatedLabel,terminalExecutionId:e.terminalExecutionId,origin:e.origin?uH(e.origin):void 0,...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}};op=R([C(2,ie),C(3,NI),C(4,cH),C(5,Yo)],op);function hH(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 ht(i.isTrusted,t.isTrusted)&&i.supportHtml===t.supportHtml&&i.supportThemeIcons===t.supportThemeIcons}function k9(i){return"subAgentInvocationId"in i&&!!i.subAgentInvocationId}function vH(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 P9(i){if(i.length===0)return"";let t=i.reduce((n,o)=>n.add(o.license),new Set);return t.size===1?p(10464,null,t.size):p(10465,null,t.size)}var kh;(n=>{n.scheme=$.vscodeChatResponseResource;function t(o,r,s,a){return y.from({scheme:n.scheme,authority:$a(ee.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=y.parse(pf(o.authority).toString())}catch(c){if(c instanceof SyntaxError)d=mr.forSession(o.authority);else throw c}return{sessionResource:d,toolCallId:a,index:Number(l)}}n.parseUri=e})(kh||={});function _9(i,t,e,n){if(!ku(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)}function IH(i){if(i instanceof Uint8Array)return i;if(i instanceof ArrayBuffer)return new Uint8Array(i);if(!i||typeof i!="object"||Array.isArray(i))return;let t=i,e=Object.keys(t).sort((o,r)=>Number(o)-Number(r));if(e.length===0)return;let n=new Uint8Array(e.length);for(let o=0;o<e.length;o++){let r=t[e[o]];if(e[o]!==String(o)||typeof r!="number"||!Number.isInteger(r)||r<0||r>255)return;n[o]=r}return n}function rp(i,t=Ct){return FL(i,t)?i.charAt(0).toUpperCase()+i.slice(1):i}function OD(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}var ND;(t=>t.DEFAULT={allowTrailingComma:!0})(ND||={});function D9(i,t=!1){let e=0,n=i.length,o="",r=0,s=16,a=0;function l(h){let I=0,S=0;for(;I<h;){let w=i.charCodeAt(e);if(w>=48&&w<=57)S=S*16+w-48;else if(w>=65&&w<=70)S=S*16+w-65+10;else if(w>=97&&w<=102)S=S*16+w-97+10;else break;e++,I++}return I<h&&(S=-1),S}function d(h){e=h,o="",r=0,s=16,a=0}function c(){let h=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&ip(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&ip(i.charCodeAt(e)))for(e++;e<i.length&&ip(i.charCodeAt(e));)e++;else return a=3,i.substring(h,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&&ip(i.charCodeAt(e))){for(e++;e<i.length&&ip(i.charCodeAt(e));)e++;I=e}else a=3;return i.substring(h,I)}function u(){let h="",I=e;for(;;){if(e>=n){h+=i.substring(I,e),a=2;break}let S=i.charCodeAt(e);if(S===34){h+=i.substring(I,e),e++;break}if(S===92){if(h+=i.substring(I,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:h+='"';break;case 92:h+="\\";break;case 47:h+="/";break;case 98:h+="\b";break;case 102:h+="\f";break;case 110:h+=`
`;break;case 114:h+="\r";break;case 116:h+="	";break;case 117:{let P=l(4);P>=0?h+=String.fromCharCode(P):a=4;break}default:a=5}I=e;continue}if(S>=0&&S<=31)if(tx(S)){h+=i.substring(I,e),a=2;break}else a=6;e++}return h}function m(){if(o="",a=0,r=e,e>=n)return r=n,s=17;let h=i.charCodeAt(e);if(LD(h)){do e++,o+=String.fromCharCode(h),h=i.charCodeAt(e);while(LD(h));return s=15}if(tx(h))return e++,o+=String.fromCharCode(h),h===13&&i.charCodeAt(e)===10&&(e++,o+=`
`),s=14;switch(h){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&&!tx(i.charCodeAt(e));)e++;return o=i.substring(I,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let S=n-1,w=!1;for(;e<S;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,w=!0;break}e++}return w||(e++,a=1),o=i.substring(I,e),s=13}return o+=String.fromCharCode(h),e++,s=16}case 45:if(o+=String.fromCharCode(h),e++,e===n||!ip(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(h);)e++,h=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(h),e++,s=16}}function g(h){if(LD(h)||tx(h))return!1;switch(h){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function v(){let h;do h=m();while(h>=12&&h<=15);return h}return{setPosition:d,getPosition:()=>e,scan:t?v:m,getToken:()=>s,getTokenValue:()=>o,getTokenOffset:()=>r,getTokenLength:()=>e-r,getTokenError:()=>a}}function LD(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 tx(i){return i===10||i===13||i===8232||i===8233}function ip(i){return i>=48&&i<=57}function Ph(i,t=[],e=ND.DEFAULT){let n=null,o=[],r=[];function s(l){Array.isArray(o)?o.push(l):n!==null&&(o[n]=l)}return UD(i,{onObjectBegin:()=>{let l={};s(l),r.push(o),o=l,n=null},onObjectProperty:l=>{n=l},onObjectEnd:()=>{o=r.pop()},onArrayBegin:()=>{let l=[];s(l),r.push(o),o=l,n=null},onArrayEnd:()=>{o=r.pop()},onLiteralValue:s,onError:(l,d,c)=>{t.push({error:l,offset:d,length:c})}},e),o[0]}function UD(i,t,e=ND.DEFAULT){let n=D9(i,!1);function o(z){return z?()=>z(n.getTokenOffset(),n.getTokenLength()):()=>!0}function r(z){return z?j=>z(j,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),v=r(t.onError),h=e&&e.disallowComments,I=e&&e.allowTrailingComma;function S(){for(;;){let z=n.scan();switch(n.getTokenError()){case 4:w(14);break;case 5:w(15);break;case 3:w(13);break;case 1:h||w(11);break;case 2:w(12);break;case 6:w(16);break}switch(z){case 12:case 13:h?w(10):g();break;case 16:w(1);break;case 15:case 14:break;default:return z}}}function w(z,j=[],X=[]){if(v(z),j.length+X.length>0){let ue=n.getToken();for(;ue!==17;){if(j.indexOf(ue)!==-1){S();break}else if(X.indexOf(ue)!==-1)break;ue=S()}}}function P(z){let j=n.getTokenValue();return z?u(j):a(j),S(),!0}function A(){switch(n.getToken()){case 11:{let z=0;try{z=JSON.parse(n.getTokenValue()),typeof z!="number"&&(w(2),z=0)}catch{w(2)}u(z);break}case 7:u(null);break;case 8:u(!0);break;case 9:u(!1);break;default:return!1}return S(),!0}function L(){return n.getToken()!==10?(w(3,[],[2,5]),!1):(P(!1),n.getToken()===6?(m(":"),S(),J()||w(4,[],[2,5])):w(5,[],[2,5]),!0)}function V(){s(),S();let z=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(z||w(4,[],[]),m(","),S(),n.getToken()===2&&I)break}else z&&w(6,[],[]);L()||w(4,[],[2,5]),z=!0}return l(),n.getToken()!==2?w(7,[2],[]):S(),!0}function q(){d(),S();let z=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(z||w(4,[],[]),m(","),S(),n.getToken()===4&&I)break}else z&&w(6,[],[]);J()||w(4,[],[4,5]),z=!0}return c(),n.getToken()!==4?w(8,[4],[]):S(),!0}function J(){switch(n.getToken()){case 3:return q();case 1:return V();case 10:return P(!0);default:return A()}}return S(),n.getToken()===17?e.allowEmptyContent?!0:(w(4,[],[]),!1):J()?(n.getToken()!==17&&w(9,[],[]),!0):(w(4,[],[]),!1)}function xH(i,t){return t?`${i.replace(/#/g,"%23")}#range=${t.start.line}:${t.start.character}-${t.end.line}:${t.end.character}`:i}var V9="subagent",Jxe=`/${V9}/`;var FD;(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&&nn(e.cwd,n.cwd)&&ht(e.env,n.env)&&e.timeout===n.timeout&&nn(e.sourceUri,n.sourceUri)}t.isEquals=i})(FD||={});var sp="com.github.copilot",ESe={format:3,manifestPath:"plugin.json",hookConfigPath:`${sp}/hooks/hooks.json`,componentPaths:{commands:`${sp}/commands`,skills:"skills",agents:`${sp}/agents`,rules:`${sp}/rules`,hooks:`${sp}/hooks/hooks.json`,mcpServers:"mcp.json"},manifestExtensionNamespace:sp,requiresManifest:!0,pluginRootTokens:[],pluginRootEnvVars:[],parseHooks(i,t,e,n,o){return K9(i,t,n,o)}};function B9(i,t){let e=xH(i.toString());return t?`${e.replace(/#/g,"%23")}#${t}`:e}function W9(i){return{type:"hook",id:B9(i),uri:i.toString(),name:tt(i)}}var $9={SessionStart:"SessionStart",SessionEnd:"SessionEnd",UserPromptSubmit:"UserPromptSubmit",PreToolUse:"PreToolUse",PostToolUse:"PostToolUse",PreCompact:"PreCompact",SubagentStart:"SubagentStart",SubagentStop:"SubagentStop",Stop:"Stop",ErrorOccurred:"ErrorOccurred",sessionStart:"SessionStart",sessionEnd:"SessionEnd",userPromptSubmitted:"UserPromptSubmit",preToolUse:"PreToolUse",postToolUse:"PostToolUse",agentStop:"Stop",subagentStop:"SubagentStop",errorOccurred:"ErrorOccurred"};function z9(i){if(i.type!==void 0&&i.type!=="command")return;let t=typeof i.command=="string"&&i.command.length>0,e=typeof i.bash=="string"&&i.bash.length>0,n=typeof i.powershell=="string"&&i.powershell.length>0,o=typeof i.windows=="string"&&i.windows.length>0,r=typeof i.linux=="string"&&i.linux.length>0,s=typeof i.osx=="string"&&i.osx.length>0;if(!t&&!e&&!n&&!o&&!r&&!s)return;let a=o?i.windows:n?i.powershell:void 0,l=r?i.linux:e?i.bash:void 0,d=s?i.osx:e?i.bash:void 0,c=typeof i.timeout=="number"?i.timeout:typeof i.timeoutSec=="number"?i.timeoutSec:void 0;return{...t&&{command:i.command},...a&&{windows:a},...l&&{linux:l},...d&&{osx:d},...typeof i.env=="object"&&i.env!==null&&{env:i.env},...c!==void 0&&{timeout:c}}}function SH(i,t,e){let n=z9(i);if(!n)return;let o,r=typeof i.cwd=="string"?i.cwd:void 0;return r?r.startsWith("~/")?o=y.joinPath(e,r.substring(2)):Xr(r)?o=y.file(r):t&&(o=Lt(t,r)):o=t,{...n,cwd:o}}function q9(i,t,e){if(!i||typeof i!="object")return[];let n=i,o=[],r=n.hooks;if(r!==void 0&&Array.isArray(r))for(let s of r){if(!s||typeof s!="object")continue;let a=SH(s,t,e);a&&o.push(a)}else{let s=SH(n,t,e);s&&o.push(s)}return o}function K9(i,t,e,n){if(!t||typeof t!="object")return[];let o=t;if(o.disableAllHooks===!0)return[];let r=o.hooks,s=r&&typeof r=="object"&&!Array.isArray(r)?r:o,a=[],l=W9(i);for(let d of Object.keys(s)){let c=$9[d];if(!c)continue;let u=s[d];if(!Array.isArray(u))continue;let m=[];for(let g of u)m.push(...q9(g,e,n));m.length>0&&a.push({type:c,commands:m,uri:i,originalId:d,customization:l})}return a}var TH="github.copilot.chat.agentDebugLog.fileLogging.enabled";var EH="troubleshoot/SKILL.md";var ap=(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))(ap||{}),wH={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(ap).map(i=>[i,i]))},kH={SessionStart:{label:p(10555,null),description:p(10554,null)},UserPromptSubmit:{label:p(10563,null),description:p(10562,null)},PreToolUse:{label:p(10551,null),description:p(10550,null)},PostToolUse:{label:p(10547,null),description:p(10546,null)},PreCompact:{label:p(10549,null),description:p(10548,null)},SubagentStart:{label:p(10559,null),description:p(10558,null)},SubagentStop:{label:p(10561,null),description:p(10560,null)},Stop:{label:p(10557,null),description:p(10556,null)},SessionEnd:{label:p(10553,null),description:p(10552,null)},ErrorOccurred:{label:p(10545,null),description:p(10544,null)}};var j9;(t=>{function i(e,n){if(e===n)return!0;if(!e||!n)return!1;for(let o of Object.values(ap)){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(!FD.isEquals(r[a],s[a]))return!1}}return!0}t.isEquals=i})(j9||={});function PH(i,t){if(!i)return t;let e={...i};for(let n of Object.values(ap)){let o=i[n],r=t[n];r&&r.length>0&&(e[n]=o?[...o,...r]:r)}return e}var er={type:p(10537,null),command:p(10528,null),windows:p(10538,null),linux:p(10532,null),osx:p(10533,null),bash:p(10526,null),powershell:p(10534,null),cwd:p(10530,null),env:p(10531,null),timeout:p(10535,null),timeoutSec:p(10536,null)},Q9={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["command"]},{required:["windows"]},{required:["linux"]},{required:["osx"]},{required:["bash"]},{required:["powershell"]}],errorMessage:p(10529,null),properties:{type:{type:"string",enum:["command"],description:er.type},command:{type:"string",description:er.command},windows:{type:"string",description:er.windows},linux:{type:"string",description:er.linux},osx:{type:"string",description:er.osx},cwd:{type:"string",description:er.cwd},env:{type:"object",additionalProperties:{type:"string"},description:er.env},timeout:{type:"number",default:30,description:er.timeout}}},J9={type:"array",items:Q9};function _H(i,t){return Object.fromEntries(Object.entries(wH[i]).map(([e,n])=>[e,{...t,description:kH[n]?.description}]))}var Y9=_H("vscode",J9),X9={type:"object",additionalProperties:!0,required:["type"],anyOf:[{required:["bash"]},{required:["powershell"]}],errorMessage:p(10527,null),properties:{type:{type:"string",enum:["command"],description:er.type},bash:{type:"string",description:er.bash},powershell:{type:"string",description:er.powershell},cwd:{type:"string",description:er.cwd},env:{type:"object",additionalProperties:{type:"string"},description:er.env},timeoutSec:{type:"number",default:10,description:er.timeoutSec}}},Z9={type:"array",items:X9},e8=_H("github-copilot",Z9),HSe={$schema:"http://json-schema.org/draft-07/schema#",type:"object",description:p(10539,null),additionalProperties:!0,required:["hooks"],properties:{hooks:{type:"object",description:p(10540,null),additionalProperties:!0}},if:{required:["version"],properties:{version:{type:"number"}}},then:{properties:{version:{type:"number",description:p(10543,null)},hooks:{properties:e8}}},else:{properties:{hooks:{properties:Y9}}},defaultSnippets:[{label:p(10541,null),description:p(10542,null),body:{hooks:{SessionStart:[{type:"command",command:'${1:echo "Session started" >> session.log}'}],PreToolUse:[{type:"command",command:"${2:./scripts/validate.sh}",timeout:15}]}}}]};function DH(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}var KSe=new E("debugType",void 0,{type:"string",description:p(12076,null)}),GSe=new E("debugConfigurationType",void 0,{type:"string",description:p(12067,null)}),jSe=new E("debugState","inactive",{type:"string",description:p(12075,null)}),t8="debugUx",QSe=new E(t8,"default",{type:"string",description:p(12077,null)}),JSe=new E("hasDebugged",!1,{type:"boolean",description:p(12085,null)}),YSe=new E("inDebugMode",!1,{type:"boolean",description:p(12087,null)}),XSe=new E("inDebugRepl",!1,{type:"boolean",description:p(12088,null)}),ZSe=new E("breakpointWidgetVisible",!1,{type:"boolean",description:p(12057,null)}),eCe=new E("inBreakpointWidget",!1,{type:"boolean",description:p(12086,null)}),tCe=new E("breakpointsFocused",!0,{type:"boolean",description:p(12055,null)}),nCe=new E("watchExpressionsFocused",!0,{type:"boolean",description:p(12113,null)}),oCe=new E("watchExpressionsExist",!1,{type:"boolean",description:p(12112,null)}),rCe=new E("variablesFocused",!0,{type:"boolean",description:p(12109,null)}),iCe=new E("expressionSelected",!1,{type:"boolean",description:p(12081,null)}),sCe=new E("breakpointInputFocused",!1,{type:"boolean",description:p(12051,null)}),aCe=new E("callStackItemType",void 0,{type:"string",description:p(12063,null)}),lCe=new E("callStackSessionIsAttach",!1,{type:"boolean",description:p(12065,null)}),dCe=new E("callStackItemStopped",!1,{type:"boolean",description:p(12062,null)}),cCe=new E("callStackSessionHasOneThread",!1,{type:"boolean",description:p(12064,null)}),uCe=new E("callStackFocused",!0,{type:"boolean",description:p(12061,null)}),pCe=new E("watchItemType",void 0,{type:"string",description:p(12114,null)}),mCe=new E("canViewMemory",void 0,{type:"boolean",description:p(12066,null)}),gCe=new E("breakpointItemType",void 0,{type:"string",description:p(12053,null)}),fCe=new E("breakpointItemBytes",void 0,{type:"boolean",description:p(12052,null)}),hCe=new E("breakpointHasModes",!1,{type:"boolean",description:p(12050,null)}),vCe=new E("breakpointSupportsCondition",!1,{type:"boolean",description:p(12056,null)}),bCe=new E("loadedScriptsSupported",!1,{type:"boolean",description:p(12093,null)}),yCe=new E("loadedScriptsItemType",void 0,{type:"string",description:p(12092,null)}),ICe=new E("focusedSessionIsAttach",!1,{type:"boolean",description:p(12082,null)}),xCe=new E("focusedSessionIsNoDebug",!1,{type:"boolean",description:p(12083,null)}),SCe=new E("stepBackSupported",!1,{type:"boolean",description:p(12098,null)}),CCe=new E("restartFrameSupported",!1,{type:"boolean",description:p(12096,null)}),TCe=new E("stackFrameSupportsRestart",!1,{type:"boolean",description:p(12097,null)}),ECe=new E("jumpToCursorSupported",!1,{type:"boolean",description:p(12090,null)}),wCe=new E("stepIntoTargetsSupported",!1,{type:"boolean",description:p(12099,null)}),kCe=new E("breakpointsExist",!1,{type:"boolean",description:p(12054,null)}),PCe=new E("debuggersAvailable",!1,{type:"boolean",description:p(12070,null)}),_Ce=new E("debugExtensionAvailable",!0,{type:"boolean",description:p(12068,null)}),DCe=new E("debugProtocolVariableMenuContext",void 0,{type:"string",description:p(12071,null)}),RCe=new E("debugSetVariableSupported",!1,{type:"boolean",description:p(12074,null)}),MCe=new E("debugSetDataBreakpointAddressSupported",!1,{type:"boolean",description:p(12072,null)}),ACe=new E("debugSetExpressionSupported",!1,{type:"boolean",description:p(12073,null)}),OCe=new E("breakWhenValueChangesSupported",!1,{type:"boolean",description:p(12058,null)}),LCe=new E("breakWhenValueIsAccessedSupported",!1,{type:"boolean",description:p(12059,null)}),NCe=new E("breakWhenValueIsReadSupported",!1,{type:"boolean",description:p(12060,null)}),UCe=new E("terminateDebuggeeSupported",!1,{type:"boolean",description:p(12101,null)}),FCe=new E("suspendDebuggeeSupported",!1,{type:"boolean",description:p(12100,null)}),HCe=new E("terminateThreadsSupported",!1,{type:"boolean",description:p(12102,null)}),VCe=new E("variableEvaluateNamePresent",!1,{type:"boolean",description:p(12103,null)}),BCe=new E("variableIsReadonly",!1,{type:"boolean",description:p(12106,null)}),WCe=new E("variableValue",!1,{type:"string",description:p(12111,null)}),$Ce=new E("variableType",!1,{type:"string",description:p(12110,null)}),zCe=new E("variableInterfaces",!1,{type:"array",description:p(12105,null)}),qCe=new E("variableName",!1,{type:"string",description:p(12108,null)}),KCe=new E("variableLanguage",!1,{type:"string",description:p(12107,null)}),GCe=new E("variableExtensionId",!1,{type:"string",description:p(12104,null)}),jCe=new E("exceptionWidgetVisible",!1,{type:"boolean",description:p(12080,null)}),QCe=new E("multiSessionRepl",!1,{type:"boolean",description:p(12095,null)}),JCe=new E("multiSessionDebug",!1,{type:"boolean",description:p(12094,null)}),YCe=new E("disassembleRequestSupported",!1,{type:"boolean",description:p(12078,null)}),XCe=new E("disassemblyViewFocus",!1,{type:"boolean",description:p(12079,null)}),ZCe=new E("languageSupportsDisassembleRequest",!1,{type:"boolean",description:p(12091,null)}),eTe=new E("focusedStackFrameHasInstructionReference",!1,{type:"boolean",description:p(12084,null)});var tTe={enum:["neverOpen","openOnSessionStart","openOnFirstSessionStart"],default:"openOnFirstSessionStart",description:p(12089,null)};var HD=(e=>(e[e.Initial=1]="Initial",e[e.Dynamic=2]="Dynamic",e))(HD||{});var nTe=D("debugService");var n8;(e=>(e.deserialize=n=>n,e.serialize=n=>n))(n8||={});var o8;(e=>(e.deserialize=n=>({id:n.id,name:n.name,iconPath:n.iconPath&&{light:y.revive(n.iconPath.light),dark:y.revive(n.iconPath.dark)},iconClass:n.iconClass,visualization:n.visualization}),e.serialize=n=>n))(o8||={});var iTe=D("IMcpGalleryManifestService");var _h=D("IMcpGalleryService"),RH=D("IMcpManagementService"),ci=D("IAllowedMcpServersService");var r8={IconContribution:"base.contributions.icons"},i8;(t=>{function i(e,n){let o=e.defaults;for(;Ye.isThemeIcon(o);){let r=lp.getIcon(o.id);if(!r)return;o=r.defaults}return o}t.getDefinition=i})(i8||={});var s8;(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=>_e(r)?r:void 0;if(n&&Array.isArray(n.src)&&n.src.every(r=>_e(r.format)&&_e(r.location)))return{weight:o(n.weight),style:o(n.style),src:n.src.map(r=>({format:r.format,location:y.parse(r.location)}))}}e.fromJSONObject=t})(s8||={});var a8=/^([\w_-]+)$/;var l8=p(3365,null),VD=class extends U{constructor(){super();this._onDidChange=this._register(new T);this.onDidChange=this._onDidChange.event;this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:p(3362,null),pattern:a8.source,patternErrorMessage:l8},fontCharacter:{type:"string",description:p(3361,null)}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}};this.iconReferenceSchema={type:"string",pattern:`^${Ye.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(;Ye.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}|${Ye.isThemeIcon(s.defaults)?s.defaults.id:s.id}|${s.description||""}|`);o.push("| preview     | identifier                        "),o.push("| ----------- | --------------------------------- |");for(let s of r.filter(a=>!Ye.isThemeIcon(a.defaults)).sort(e))o.push(`|<i class="${n(s)}"></i>|${s.id}|`);return o.join(`
`)}},lp=new VD;mt.add(r8.IconContribution,lp);function js(i,t,e,n){return lp.registerIcon(i,t,e,n)}function d8(){let i=_N();for(let t in i){let e="\\"+i[t].toString(16);lp.registerIcon(t,{fontCharacter:e})}}d8();var AH="vscode://schemas/icons",OH=mt.as(Xd.JSONContribution);OH.registerSchema(AH,lp.getIconSchema());var MH=new Nn(()=>OH.notifySchemaChanged(AH),200);lp.onDidChange(()=>{MH.isScheduled()||MH.schedule()});var STe=js("widget-close",le.close,p(3366,null)),CTe=js("goto-previous-location",le.arrowUp,p(3364,null)),TTe=js("goto-next-location",le.arrowDown,p(3363,null)),ETe=Ye.modify(le.sync,"spin"),wTe=Ye.modify(le.loading,"spin");var nx=D("IUserDataProfileService"),LTe=D("IUserDataProfileManagementService");var NTe=D("IUserDataProfileImportExportService"),UTe=js("defaultProfile-icon",le.settings,p(20452,null)),c8=ws(20454,"Profiles"),FTe={...c8},u8="code-profile",HTe=[{name:p(20453,null),extensions:[u8]}],VTe=new E("currentProfile",""),BTe=new E("hasProfiles",!1);function BD(i){switch(i){case 1:return p(123,null);case 2:return p(122,null);case 3:return p(124,null);case 4:return p(125,null);case 5:return p(119,null);case 6:return p(120,null);case 7:return p(117,null);case 8:return p(118,null);case 9:return p(121,null);default:return""}}var dp=D("IMcpResourceScannerService"),Dh=class extends U{constructor(e,n){super();this.fileService=e;this.uriIdentityService=n;this.resourcesAccessQueueMap=new Ue}async scanMcpServers(e,n){return this.withProfileMcpServers(e,n)}async addMcpServers(e,n,o){await this.withProfileMcpServers(n,o,r=>{let s=r.inputs??[],a=r.servers??{};for(let{name:l,config:d,inputs:c}of e)if(a[l]=d,c){let u=new Set(s.map(g=>g.id)),m=c.filter(g=>!u.has(g.id));s=[...s,...m]}return{servers:a,inputs:s,sandbox:r.sandbox}})}async updateSandboxConfig(e,n,o){await this.withProfileMcpServers(n,o,e)}async removeMcpServers(e,n,o){await this.withProfileMcpServers(n,o,r=>{for(let s of e)r.servers?.[s]&&delete r.servers[s];return r})}async withProfileMcpServers(e,n,o){return this.getResourceAccessQueue(e).queue(async()=>{n=n??2;let r={};try{let s=await this.fileService.readFile(e),a=[],l=Ph(s.value.toString(),a,{allowTrailingComma:!0,allowEmptyContent:!0})||{};if(a.length>0)throw new Error("Failed to parse scanned MCP servers: "+a.map(d=>`[${d.offset}, ${d.length}] ${BD(d.error)}`).join(", "));if(n===2)r=this.fromUserMcpServers(l);else if(n===6)r=this.fromWorkspaceFolderMcpServers(l);else if(n===5){let d=l;d.settings?.mcp&&(r=this.fromWorkspaceFolderMcpServers(d.settings?.mcp))}}catch(s){if(Bd(s)!==1)throw s}return o&&(r=o(r??{}),n===2?await this.writeScannedMcpServers(e,r):n===6?await this.writeScannedMcpServersToWorkspaceFolder(e,r):n===5?await this.writeScannedMcpServersToWorkspace(e,r):Fa(n,`Invalid Target: ${UU(n)}`)),r})}async writeScannedMcpServers(e,n){n.servers&&Object.keys(n.servers).length>0||n.inputs&&n.inputs.length>0||n.sandbox!==void 0?await this.fileService.writeFile(e,ee.fromString(JSON.stringify(n,null,"	"))):await this.fileService.del(e)}async writeScannedMcpServersToWorkspaceFolder(e,n){await this.fileService.writeFile(e,ee.fromString(JSON.stringify(n,null,"	")))}async writeScannedMcpServersToWorkspace(e,n){let o;try{let r=await this.fileService.readFile(e),s=[];if(o=Ph(r.value.toString(),s,{allowTrailingComma:!0,allowEmptyContent:!0}),s.length>0)throw new Error("Failed to parse scanned MCP servers: "+s.map(a=>`[${a.offset}, ${a.length}] ${BD(a.error)}`).join(", "))}catch(r){if(Bd(r)!==1)throw r;o={settings:{}}}o.settings||(o.settings={}),o.settings.mcp=n,await this.fileService.writeFile(e,ee.fromString(JSON.stringify(o,null,"	")))}fromUserMcpServers(e){let n={inputs:e.inputs,sandbox:e.sandbox},o=Object.entries(e.servers??{});if(o.length>0){n.servers={};for(let[r,s]of o)n.servers[r]=this.sanitizeServer(s)}return n}fromWorkspaceFolderMcpServers(e){let n={inputs:e.inputs,sandbox:e.sandbox},o=Object.entries(e.servers??{});if(o.length>0){n.servers={};for(let[r,s]of o){let a=this.sanitizeServer(s);n.servers[r]=a}}return n}sanitizeServer(e){let n;if(e.config){let o=e;n={...o.config,version:o.version,gallery:o.gallery}}else n=e;return(n.type===void 0||n.type!=="http"&&n.type!=="stdio")&&(n.type=n.command?"stdio":"http"),n}getResourceAccessQueue(e){let n=this.resourcesAccessQueueMap.get(e);return n||(n=new Tf,this.resourcesAccessQueueMap.set(e,n)),n}};Dh=R([C(0,To),C(1,vr)],Dh);qe(dp,Dh,1);var rx=".vscode",p8="settings",vEe=`${rx}/${p8}.json`;var bEe=[1,3],yEe=[2,4,5,6,7],m8=[4,5,6],IEe=[1,...m8],xEe=[2,3,4,5,6,7],SEe=[4,5,6,7],CEe=[5,6,7],ox="tasks",LH="launch",Gi="mcp",Qs=Object.create(null);Qs[ox]=`${rx}/${ox}.json`;Qs[LH]=`${rx}/${LH}.json`;Qs[Gi]=`${rx}/${Gi}.json`;var NH=Object.create(null);NH[ox]=`${ox}.json`;NH[Gi]=`${Gi}.json`;var TEe=sn;var ji=D("remoteAgentService"),PEe=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 Pn(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 cp=class extends U{constructor(e){super();this.logService=e}getMcpServerConfigurationFromManifest(e,n){if(n==="remote"&&e.remotes?.length){let d=e.remotes[0].url,c=e.remotes[0].headers??[],{inputs:u,variables:m}=this.processKeyValueInputs(d.startsWith("https://api.githubcopilot.com/mcp")?c.filter(g=>g.name.toLowerCase()!=="authorization"):c);return{mcpServerConfiguration:{config:{type:"http",url:e.remotes[0].url,headers:Object.keys(u).length?u:void 0},inputs:m.length?m:void 0},notices:[]}}let o=e.packages?.find(d=>d.registryType===n)??e.packages?.[0];if(!o)throw new Error("No server package found");let r=[],s=[],a={},l=[];if(o.registryType==="oci"&&(r.push("run"),r.push("-i"),r.push("--rm")),o.runtimeArguments?.length){let d=this.processArguments(o.runtimeArguments??[]);r.push(...d.args),s.push(...d.variables),l.push(...d.notices)}if(o.environmentVariables?.length){let{inputs:d,variables:c,notices:u}=this.processKeyValueInputs(o.environmentVariables??[]);s.push(...c),l.push(...u);for(let[m,g]of Object.entries(d))a[m]=g,o.registryType==="oci"&&(r.push("-e"),r.push(m))}switch(o.registryType){case"npm":o.registryBaseUrl&&r.push("--registry",o.registryBaseUrl),r.push(o.version?`${o.identifier}@${o.version}`:o.identifier);break;case"pypi":o.registryBaseUrl&&r.push("--index-url",o.registryBaseUrl),r.push(o.version?`${o.identifier}@${o.version}`:o.identifier);break;case"oci":{let d=o.registryBaseUrl?`${o.registryBaseUrl}/${o.identifier}`:o.identifier;r.push(o.version?`${d}:${o.version}`:d);break}case"nuget":r.push(o.version?`${o.identifier}@${o.version}`:o.identifier),r.push("--yes"),o.registryBaseUrl&&r.push("--source",o.registryBaseUrl),o.packageArguments?.length&&r.push("--");break}if(o.packageArguments?.length){let d=this.processArguments(o.packageArguments);r.push(...d.args),s.push(...d.variables),l.push(...d.notices)}return{notices:l,mcpServerConfiguration:{config:{type:"stdio",command:this.getCommandName(o.registryType),args:r.length?r:void 0,env:Object.keys(a).length?a:void 0},inputs:s.length?s:void 0}}}getCommandName(e){switch(e){case"npm":return"npx";case"oci":return"docker";case"pypi":return"uvx";case"nuget":return"dnx"}return e}getVariables(e){let n=[];for(let[o,r]of Object.entries(e))n.push({id:o,type:r.choices?"pickString":"promptString",description:r.description??"",password:!!r.isSecret,default:r.default,options:r.choices});return n}processKeyValueInputs(e){let n=[],o={},r=[];for(let s of e){let a=s.variables?this.getVariables(s.variables):[],l=s.value||"";if(a.length){for(let d of a)l=l.replace(`{${d.id}}`,`\${input:${d.id}}`);r.push(...a)}else!l&&(s.description||s.choices||s.default!==void 0)&&(r.push({id:s.name,type:s.choices?"pickString":"promptString",description:s.description??"",password:!!s.isSecret,default:s.default,options:s.choices}),l=`\${input:${s.name}}`);o[s.name]=l}return{inputs:o,variables:r,notices:n}}processArguments(e){let n=[],o=[],r=[];for(let s of e){let a=s.variables?this.getVariables(s.variables):[];if(s.type==="positional"){let l=s.value;if(l){for(let d of a)l=l.replace(`{${d.id}}`,`\${input:${d.id}}`);n.push(l),a.length&&o.push(...a)}else s.valueHint&&(s.description||s.default!==void 0)?(o.push({id:s.valueHint,type:"promptString",description:s.description??"",password:!1,default:s.default}),n.push(`\${input:${s.valueHint}}`)):n.push(s.valueHint??"")}else if(s.type==="named"){if(!s.name){r.push(`Named argument is missing a name. ${JSON.stringify(s)}`);continue}if(n.push(s.name),s.value){let l=s.value;for(let d of a)l=l.replace(`{${d.id}}`,`\${input:${d.id}}`);n.push(l),a.length&&o.push(...a)}else if(s.description||s.default!==void 0){let l=s.name.replace(/^--?/,"");o.push({id:l,type:"promptString",description:s.description??"",password:!1,default:s.default}),n.push(`\${input:${l}}`)}}}return{args:n,variables:o,notices:r}}};cp=R([C(0,ie)],cp);var sc=class extends cp{constructor(e,n,o,r,s,a,l,d){super(a);this.mcpResource=e;this.target=n;this.mcpGalleryService=o;this.fileService=r;this.uriIdentityService=s;this.mcpResourceScannerService=l;this.allowedMcpServersService=d;this.local=new Map;this._onInstallMcpServer=this._register(new T);this.onInstallMcpServer=this._onInstallMcpServer.event;this._onDidInstallMcpServers=this._register(new T);this._onDidUpdateMcpServers=this._register(new T);this._onUninstallMcpServer=this._register(new T);this._onDidUninstallMcpServer=this._register(new T);this.reloadConfigurationScheduler=this._register(new Nn(()=>this.updateLocal(),50))}get onDidInstallMcpServers(){return this._onDidInstallMcpServers.event}get onDidUpdateMcpServers(){return this._onDidUpdateMcpServers.event}get onUninstallMcpServer(){return this._onUninstallMcpServer.event}get onDidUninstallMcpServer(){return this._onDidUninstallMcpServer.event}ensureServerAllowed(e){let n=this.allowedMcpServersService.isAllowed(e);if(n!==!0)throw new Error(n.value)}initialize(){return this.initializePromise||(this.initializePromise=(async()=>{try{this.local=await this.populateLocalServers()}finally{this.startWatching()}})()),this.initializePromise}async populateLocalServers(){this.logService.trace("AbstractMcpResourceManagementService#populateLocalServers",this.mcpResource.toString());let e=new Map;try{let n=await this.mcpResourceScannerService.scanMcpServers(this.mcpResource,this.target);n.servers&&await Promise.allSettled(Object.entries(n.servers).map(async([o,r])=>{let s=await this.scanLocalServer(o,r,n.sandbox);e.set(o,s)}))}catch(n){throw this.logService.debug("Could not read user MCP servers:",n),n}return e}startWatching(){this._register(this.fileService.watch(this.mcpResource)),this._register(this.fileService.onDidFilesChange(e=>{e.affects(this.mcpResource)&&this.reloadConfigurationScheduler.schedule()}))}async updateLocal(e){try{let n=await this.populateLocalServers(),o=[],r=[],s=[...this.local.keys()].filter(a=>!n.has(a));for(let a of s)this.local.delete(a);for(let[a,l]of n){let d=this.local.get(a);d?ht(d,l)||(r.push(l),this.local.set(a,l)):(o.push(l),this.local.set(a,l))}for(let a of s)this.local.delete(a),this._onDidUninstallMcpServer.fire({name:a,mcpResource:this.mcpResource});r.length&&this._onDidUpdateMcpServers.fire(r.map(a=>({name:a.name,local:a,source:e?.name===a.name?e:void 0,mcpResource:this.mcpResource}))),o.length&&this._onDidInstallMcpServers.fire(o.map(a=>({name:a.name,local:a,source:e?.name===a.name?e:void 0,mcpResource:this.mcpResource})))}catch(n){this.logService.error("Failed to load installed MCP servers:",n)}}async getInstalled(){return await this.initialize(),Array.from(this.local.values())}async scanLocalServer(e,n,o){let r=await this.getLocalServerInfo(e,n);return r||(r={name:e,version:n.version,galleryUrl:_e(n.gallery)?n.gallery:void 0}),{name:e,config:n,rootSandbox:o,mcpResource:this.mcpResource,version:r.version,location:r.location,displayName:r.displayName,description:r.description,publisher:r.publisher,publisherDisplayName:r.publisherDisplayName,galleryUrl:r.galleryUrl,galleryId:r.galleryId,repositoryUrl:r.repositoryUrl,readmeUrl:r.readmeUrl,icon:r.icon,codicon:r.codicon,manifest:r.manifest,source:n.gallery?"gallery":"local"}}async install(e,n){this.logService.trace("MCP Management Service: install",e.name),this.ensureServerAllowed(e),this._onInstallMcpServer.fire({name:e.name,mcpResource:this.mcpResource});try{await this.mcpResourceScannerService.addMcpServers([e],this.mcpResource,this.target),await this.updateLocal();let o=this.local.get(e.name);if(!o)throw new Error(`Failed to install MCP server: ${e.name}`);return o}catch(o){throw this._onDidInstallMcpServers.fire([{name:e.name,error:o,mcpResource:this.mcpResource}]),o}}async uninstall(e,n){this.logService.trace("MCP Management Service: uninstall",e.name),this._onUninstallMcpServer.fire({name:e.name,mcpResource:this.mcpResource});try{if(!(await this.mcpResourceScannerService.scanMcpServers(this.mcpResource,this.target)).servers)return;await this.mcpResourceScannerService.removeMcpServers([e.name],this.mcpResource,this.target),e.location&&await this.fileService.del(y.revive(e.location),{recursive:!0}),await this.updateLocal()}catch(o){throw this._onDidUninstallMcpServer.fire({name:e.name,error:o,mcpResource:this.mcpResource}),o}}};sc=R([C(2,_h),C(3,To),C(4,vr),C(5,ie),C(6,dp),C(7,ci)],sc);var Rh=class extends sc{constructor(t,e,n,o,r,s,a,l){super(t,2,e,n,o,r,s,a),this.mcpLocation=o.extUri.joinPath(l.userRoamingDataHome,"mcp")}async installFromGallery(t,e){throw new Error("Not supported")}async updateMetadata(t,e){await this.updateMetadataFromGallery(e),await this.updateLocal(e);let n=(await this.getInstalled()).find(o=>o.name===t.name);if(!n)throw new Error(`Failed to find MCP server: ${t.name}`);return n}async updateMetadataFromGallery(t){let e=t.configuration,n=this.getLocation(t.name,t.version),o=this.uriIdentityService.extUri.joinPath(n,"manifest.json"),r={galleryUrl:t.galleryUrl,galleryId:t.id,name:t.name,displayName:t.displayName,description:t.description,version:t.version,publisher:t.publisher,publisherDisplayName:t.publisherDisplayName,repositoryUrl:t.repositoryUrl,licenseUrl:t.license,icon:t.icon,codicon:t.codicon,manifest:e};if(await this.fileService.writeFile(o,ee.fromString(JSON.stringify(r))),t.readmeUrl||t.readme){let s=t.readme?t.readme:await this.mcpGalleryService.getReadme(t,ve.None);await this.fileService.writeFile(this.uriIdentityService.extUri.joinPath(n,"README.md"),ee.fromString(s))}return e}async getLocalServerInfo(t,e){let n,o,r;if(e.gallery){o=this.getLocation(t,e.version);let s=this.uriIdentityService.extUri.joinPath(o,"manifest.json");try{let a=await this.fileService.readFile(s);n=JSON.parse(a.value.toString()),n.galleryUrl?.includes("/v0/")&&(n.galleryUrl=n.galleryUrl.substring(0,n.galleryUrl.indexOf("/v0/")),await this.fileService.writeFile(s,ee.fromString(JSON.stringify(n)))),n.location=o,r=this.uriIdentityService.extUri.joinPath(o,"README.md"),await this.fileService.exists(r)||(r=void 0),n.readmeUrl=r}catch(a){Bd(a)===1?this.logService.trace("MCP Management Service: manifest not found",s.toString()):this.logService.error("MCP Management Service: failed to read manifest",o.toString(),a)}}return n}getLocation(t,e){return t=t.replace("/","."),this.uriIdentityService.extUri.joinPath(this.mcpLocation,e?`${t}-${e}`:t)}installFromUri(t,e){throw new Error("Method not supported.")}canInstall(){throw new Error("Not supported")}};Rh=R([C(1,_h),C(2,To),C(3,vr),C(4,ie),C(5,dp),C(6,ci),C(7,tc)],Rh);var Qi=class extends cp{constructor(e,n){super(n);this.allowedMcpServersService=e}canInstall(e){let n=this.allowedMcpServersService.isAllowed(e);return n!==!0?new vt(p(2975,null,n.value)):!0}};Qi=R([C(0,ci),C(1,ie)],Qi);var ix=class extends Qi{constructor(e,n,o,r){super(e,n);this.userDataProfilesService=o;this.instantiationService=r;this._onInstallMcpServer=this._register(new T);this.onInstallMcpServer=this._onInstallMcpServer.event;this._onDidInstallMcpServers=this._register(new T);this.onDidInstallMcpServers=this._onDidInstallMcpServers.event;this._onDidUpdateMcpServers=this._register(new T);this.onDidUpdateMcpServers=this._onDidUpdateMcpServers.event;this._onUninstallMcpServer=this._register(new T);this.onUninstallMcpServer=this._onUninstallMcpServer.event;this._onDidUninstallMcpServer=this._register(new T);this.onDidUninstallMcpServer=this._onDidUninstallMcpServer.event;this.mcpResourceManagementServices=new Ue}getMcpResourceManagementService(e){let n=this.mcpResourceManagementServices.get(e);if(!n){let o=new G,r=o.add(this.createMcpResourceManagementService(e));o.add(r.onInstallMcpServer(s=>this._onInstallMcpServer.fire(s))),o.add(r.onDidInstallMcpServers(s=>this._onDidInstallMcpServers.fire(s))),o.add(r.onDidUpdateMcpServers(s=>this._onDidUpdateMcpServers.fire(s))),o.add(r.onUninstallMcpServer(s=>this._onUninstallMcpServer.fire(s))),o.add(r.onDidUninstallMcpServer(s=>this._onDidUninstallMcpServer.fire(s))),this.mcpResourceManagementServices.set(e,n={service:r,dispose:()=>o.dispose()})}return n.service}async getInstalled(e){let n=e||this.userDataProfilesService.defaultProfile.mcpResource;return this.getMcpResourceManagementService(n).getInstalled()}async install(e,n){let o=n?.mcpResource||this.userDataProfilesService.defaultProfile.mcpResource;return this.getMcpResourceManagementService(o).install(e,n)}async uninstall(e,n){let o=n?.mcpResource||this.userDataProfilesService.defaultProfile.mcpResource;return this.getMcpResourceManagementService(o).uninstall(e,n)}async installFromGallery(e,n){let o=n?.mcpResource||this.userDataProfilesService.defaultProfile.mcpResource;return this.getMcpResourceManagementService(o).installFromGallery(e,n)}async updateMetadata(e,n,o){return this.getMcpResourceManagementService(o||this.userDataProfilesService.defaultProfile.mcpResource).updateMetadata(e,n)}dispose(){this.mcpResourceManagementServices.forEach(e=>e.dispose()),this.mcpResourceManagementServices.clear(),super.dispose()}createMcpResourceManagementService(e){return this.instantiationService.createInstance(Rh,e)}};ix=R([C(0,ci),C(1,ie),C(2,pl),C(3,mn)],ix);function Mh(i,t){return i?y.revive(t?t.transformIncoming(i):i):void 0}function up(i,t){t=t||jL;let e=i.manifest;return{...QL({...i,manifest:void 0},t),manifest:e}}var pp=class extends Qi{constructor(e,n,o){super(n,o);this.channel=e;this._onInstallMcpServer=this._register(new T);this._onDidInstallMcpServers=this._register(new T);this._onUninstallMcpServer=this._register(new T);this._onDidUninstallMcpServer=this._register(new T);this._onDidUpdateMcpServers=this._register(new T);this._register(this.channel.listen("onInstallMcpServer")(r=>this._onInstallMcpServer.fire({...r,mcpResource:Mh(r.mcpResource,null)}))),this._register(this.channel.listen("onDidInstallMcpServers")(r=>this._onDidInstallMcpServers.fire(r.map(s=>({...s,local:s.local?up(s.local,null):s.local,mcpResource:Mh(s.mcpResource,null)}))))),this._register(this.channel.listen("onDidUpdateMcpServers")(r=>this._onDidUpdateMcpServers.fire(r.map(s=>({...s,local:s.local?up(s.local,null):s.local,mcpResource:Mh(s.mcpResource,null)}))))),this._register(this.channel.listen("onUninstallMcpServer")(r=>this._onUninstallMcpServer.fire({...r,mcpResource:Mh(r.mcpResource,null)}))),this._register(this.channel.listen("onDidUninstallMcpServer")(r=>this._onDidUninstallMcpServer.fire({...r,mcpResource:Mh(r.mcpResource,null)})))}get onInstallMcpServer(){return this._onInstallMcpServer.event}get onDidInstallMcpServers(){return this._onDidInstallMcpServers.event}get onUninstallMcpServer(){return this._onUninstallMcpServer.event}get onDidUninstallMcpServer(){return this._onDidUninstallMcpServer.event}get onDidUpdateMcpServers(){return this._onDidUpdateMcpServers.event}install(e,n){return Promise.resolve(this.channel.call("install",[e,n])).then(o=>up(o,null))}installFromGallery(e,n){return Promise.resolve(this.channel.call("installFromGallery",[e,n])).then(o=>up(o,null))}uninstall(e,n){return Promise.resolve(this.channel.call("uninstall",[e,n]))}getInstalled(e){return Promise.resolve(this.channel.call("getInstalled",[e])).then(n=>n.map(o=>up(o,null)))}updateMetadata(e,n,o){return Promise.resolve(this.channel.call("updateMetadata",[e,n,o])).then(r=>up(r,null))}};pp=R([C(1,ci),C(2,ie)],pp);var sx=class extends U{constructor(e,n,o){super();this.profilesHome=n;this.channel=o;this._profiles=[];this._onDidChangeProfiles=this._register(new T);this.onDidChangeProfiles=this._onDidChangeProfiles.event;this._profiles=e.map(r=>qi(r,this.profilesHome.scheme)),this._register(this.channel.listen("onDidChangeProfiles")(r=>{let s=r.added.map(d=>qi(d,this.profilesHome.scheme)),a=r.removed.map(d=>qi(d,this.profilesHome.scheme)),l=r.updated.map(d=>qi(d,this.profilesHome.scheme));this._profiles=r.all.map(d=>qi(d,this.profilesHome.scheme)),this._onDidChangeProfiles.fire({added:s,removed:a,updated:l,all:this.profiles})})),this.onDidResetWorkspaces=this.channel.listen("onDidResetWorkspaces")}get defaultProfile(){return this.profiles[0]}get profiles(){return this._profiles}async createNamedProfile(e,n,o){let r=await this.channel.call("createNamedProfile",[e,n,o]);return qi(r,this.profilesHome.scheme)}async createProfile(e,n,o,r){let s=await this.channel.call("createProfile",[e,n,o,r]);return qi(s,this.profilesHome.scheme)}async createTransientProfile(e){let n=await this.channel.call("createTransientProfile",[e]);return qi(n,this.profilesHome.scheme)}async setProfileForWorkspace(e,n){await this.channel.call("setProfileForWorkspace",[e,n])}removeProfile(e){return this.channel.call("removeProfile",[e])}async updateProfile(e,n){let o=await this.channel.call("updateProfile",[e,n]);return qi(o,this.profilesHome.scheme)}resetWorkspaces(){return this.channel.call("resetWorkspaces")}cleanUp(){return this.channel.call("cleanUp")}cleanUpTransientProfiles(){return this.channel.call("cleanUpTransientProfiles")}};var WD="associatedRemoteProfiles",$D=D("IRemoteUserDataProfilesService"),Ah=class extends U{constructor(e,n,o,r,s,a){super();this.environmentService=e;this.remoteAgentService=n;this.userDataProfilesService=o;this.userDataProfileService=r;this.storageService=s;this.logService=a;this.initPromise=this.init()}async init(){let e=this.remoteAgentService.getConnection();if(!e)return;let n=await this.remoteAgentService.getEnvironment();if(!n)return;this.remoteUserDataProfilesService=new sx(n.profiles.all,n.profiles.home,e.getChannel("userDataProfiles")),this._register(this.userDataProfilesService.onDidChangeProfiles(r=>this.onDidChangeLocalProfiles(r)));let o=await this.getAssociatedRemoteProfile(this.userDataProfileService.currentProfile,this.remoteUserDataProfilesService);o.isDefault||this.setAssociatedRemoteProfiles([...this.getAssociatedRemoteProfiles(),o.id]),this.cleanUp()}async onDidChangeLocalProfiles(e){for(let n of e.removed){let o=this.remoteUserDataProfilesService?.profiles.find(r=>r.id===n.id);o&&await this.remoteUserDataProfilesService?.removeProfile(o)}}async getRemoteProfiles(){if(await this.initPromise,!this.remoteUserDataProfilesService)throw new ao("Remote profiles service not available in the current window");return this.remoteUserDataProfilesService.profiles}async getRemoteProfile(e){if(await this.initPromise,!this.remoteUserDataProfilesService)throw new ao("Remote profiles service not available in the current window");return this.getAssociatedRemoteProfile(e,this.remoteUserDataProfilesService)}async getAssociatedRemoteProfile(e,n){if(e.isDefault)return n.defaultProfile;let o=n.profiles.find(r=>r.id===e.id);return o||(o=await n.createProfile(e.id,e.name,{transient:e.isTransient,useDefaultFlags:e.useDefaultFlags}),this.setAssociatedRemoteProfiles([...this.getAssociatedRemoteProfiles(),this.userDataProfileService.currentProfile.id])),o}getAssociatedRemoteProfiles(){return this.environmentService.remoteAuthority?this.parseAssociatedRemoteProfiles()[this.environmentService.remoteAuthority]??[]:[]}setAssociatedRemoteProfiles(e){if(this.environmentService.remoteAuthority){let n=this.parseAssociatedRemoteProfiles();e=No(e),e.length?n[this.environmentService.remoteAuthority]=e:delete n[this.environmentService.remoteAuthority],Object.keys(n).length?this.storageService.store(WD,JSON.stringify(n),-1,1):this.storageService.remove(WD,-1)}}parseAssociatedRemoteProfiles(){if(this.environmentService.remoteAuthority){let e=this.storageService.get(WD,-1);try{return e?JSON.parse(e):{}}catch(n){this.logService.error(n)}}return{}}async cleanUp(){let e=[];for(let n of this.getAssociatedRemoteProfiles()){let o=this.remoteUserDataProfilesService?.profiles.find(s=>s.id===n);if(!o)continue;let r=this.userDataProfilesService.profiles.find(s=>s.id===n);if(r){r.name!==o.name&&await this.remoteUserDataProfilesService?.updateProfile(o,{name:r.name}),e.push(n);continue}o&&await this.remoteUserDataProfilesService?.removeProfile(o)}this.setAssociatedRemoteProfiles(e)}};Ah=R([C(0,Ku),C(1,ji),C(2,pl),C(3,nx),C(4,Po),C(5,ie)],Ah);qe($D,Ah,1);var f8="usrlocal",h8="usrremote",v8="workspace",zD="ws";var Yke=RH,ax=class extends Qi{constructor(e,n,o,r,s,a,l,d,c,u){super(n,o);this.mcpManagementService=e;this.userDataProfileService=r;this.uriIdentityService=s;this.workspaceContextService=a;this.userDataProfilesService=d;this.remoteUserDataProfilesService=c;this._onInstallMcpServer=this._register(new T);this.onInstallMcpServer=this._onInstallMcpServer.event;this._onDidInstallMcpServers=this._register(new T);this.onDidInstallMcpServers=this._onDidInstallMcpServers.event;this._onDidUpdateMcpServers=this._register(new T);this.onDidUpdateMcpServers=this._onDidUpdateMcpServers.event;this._onUninstallMcpServer=this._register(new T);this.onUninstallMcpServer=this._onUninstallMcpServer.event;this._onDidUninstallMcpServer=this._register(new T);this.onDidUninstallMcpServer=this._onDidUninstallMcpServer.event;this._onInstallMcpServerInCurrentProfile=this._register(new T);this.onInstallMcpServerInCurrentProfile=this._onInstallMcpServerInCurrentProfile.event;this._onDidInstallMcpServersInCurrentProfile=this._register(new T);this.onDidInstallMcpServersInCurrentProfile=this._onDidInstallMcpServersInCurrentProfile.event;this._onDidUpdateMcpServersInCurrentProfile=this._register(new T);this.onDidUpdateMcpServersInCurrentProfile=this._onDidUpdateMcpServersInCurrentProfile.event;this._onUninstallMcpServerInCurrentProfile=this._register(new T);this.onUninstallMcpServerInCurrentProfile=this._onUninstallMcpServerInCurrentProfile.event;this._onDidUninstallMcpServerInCurrentProfile=this._register(new T);this.onDidUninstallMcpServerInCurrentProfile=this._onDidUninstallMcpServerInCurrentProfile.event;this._onDidChangeProfile=this._register(new T);this.onDidChangeProfile=this._onDidChangeProfile.event;this.workspaceMcpManagementService=this._register(u.createInstance(Lh));let m=l.getConnection();m&&(this.remoteMcpManagementService=this._register(u.createInstance(pp,m.getChannel("mcpManagement")))),this._register(this.mcpManagementService.onInstallMcpServer(g=>{this._onInstallMcpServer.fire(g),s.extUri.isEqual(g.mcpResource,this.userDataProfileService.currentProfile.mcpResource)&&this._onInstallMcpServerInCurrentProfile.fire({...g,scope:"user"})})),this._register(this.mcpManagementService.onDidInstallMcpServers(g=>{let{mcpServerInstallResult:v,mcpServerInstallResultInCurrentProfile:h}=this.createInstallMcpServerResultsFromEvent(g,"user");this._onDidInstallMcpServers.fire(v),h.length&&this._onDidInstallMcpServersInCurrentProfile.fire(h)})),this._register(this.mcpManagementService.onDidUpdateMcpServers(g=>{let{mcpServerInstallResult:v,mcpServerInstallResultInCurrentProfile:h}=this.createInstallMcpServerResultsFromEvent(g,"user");this._onDidUpdateMcpServers.fire(v),h.length&&this._onDidUpdateMcpServersInCurrentProfile.fire(h)})),this._register(this.mcpManagementService.onUninstallMcpServer(g=>{this._onUninstallMcpServer.fire(g),s.extUri.isEqual(g.mcpResource,this.userDataProfileService.currentProfile.mcpResource)&&this._onUninstallMcpServerInCurrentProfile.fire({...g,scope:"user"})})),this._register(this.mcpManagementService.onDidUninstallMcpServer(g=>{this._onDidUninstallMcpServer.fire(g),s.extUri.isEqual(g.mcpResource,this.userDataProfileService.currentProfile.mcpResource)&&this._onDidUninstallMcpServerInCurrentProfile.fire({...g,scope:"user"})})),this._register(this.workspaceMcpManagementService.onInstallMcpServer(async g=>{this._onInstallMcpServer.fire(g),this._onInstallMcpServerInCurrentProfile.fire({...g,scope:"workspace"})})),this._register(this.workspaceMcpManagementService.onDidInstallMcpServers(async g=>{let{mcpServerInstallResult:v}=this.createInstallMcpServerResultsFromEvent(g,"workspace");this._onDidInstallMcpServers.fire(v),this._onDidInstallMcpServersInCurrentProfile.fire(v)})),this._register(this.workspaceMcpManagementService.onUninstallMcpServer(async g=>{this._onUninstallMcpServer.fire(g),this._onUninstallMcpServerInCurrentProfile.fire({...g,scope:"workspace"})})),this._register(this.workspaceMcpManagementService.onDidUninstallMcpServer(async g=>{this._onDidUninstallMcpServer.fire(g),this._onDidUninstallMcpServerInCurrentProfile.fire({...g,scope:"workspace"})})),this._register(this.workspaceMcpManagementService.onDidUpdateMcpServers(g=>{let{mcpServerInstallResult:v}=this.createInstallMcpServerResultsFromEvent(g,"workspace");this._onDidUpdateMcpServers.fire(v),this._onDidUpdateMcpServersInCurrentProfile.fire(v)})),this.remoteMcpManagementService&&(this._register(this.remoteMcpManagementService.onInstallMcpServer(async g=>{this._onInstallMcpServer.fire(g);let v=await this.getRemoteMcpResource(this.userDataProfileService.currentProfile.mcpResource);(v?s.extUri.isEqual(g.mcpResource,v):this.userDataProfileService.currentProfile.isDefault)&&this._onInstallMcpServerInCurrentProfile.fire({...g,scope:"remoteUser"})})),this._register(this.remoteMcpManagementService.onDidInstallMcpServers(g=>this.handleRemoteInstallMcpServerResultsFromEvent(g,this._onDidInstallMcpServers,this._onDidInstallMcpServersInCurrentProfile))),this._register(this.remoteMcpManagementService.onDidUpdateMcpServers(g=>this.handleRemoteInstallMcpServerResultsFromEvent(g,this._onDidInstallMcpServers,this._onDidInstallMcpServersInCurrentProfile))),this._register(this.remoteMcpManagementService.onUninstallMcpServer(async g=>{this._onUninstallMcpServer.fire(g);let v=await this.getRemoteMcpResource(this.userDataProfileService.currentProfile.mcpResource);(v?s.extUri.isEqual(g.mcpResource,v):this.userDataProfileService.currentProfile.isDefault)&&this._onUninstallMcpServerInCurrentProfile.fire({...g,scope:"remoteUser"})})),this._register(this.remoteMcpManagementService.onDidUninstallMcpServer(async g=>{this._onDidUninstallMcpServer.fire(g);let v=await this.getRemoteMcpResource(this.userDataProfileService.currentProfile.mcpResource);(v?s.extUri.isEqual(g.mcpResource,v):this.userDataProfileService.currentProfile.isDefault)&&this._onDidUninstallMcpServerInCurrentProfile.fire({...g,scope:"remoteUser"})}))),this._register(r.onDidChangeCurrentProfile(g=>{this.uriIdentityService.extUri.isEqual(g.previous.mcpResource,g.profile.mcpResource)||this._onDidChangeProfile.fire()}))}createInstallMcpServerResultsFromEvent(e,n){let o=[],r=[];for(let s of e){let a={...s,local:s.local?this.toWorkspaceMcpServer(s.local,n):void 0};o.push(a),this.uriIdentityService.extUri.isEqual(s.mcpResource,this.userDataProfileService.currentProfile.mcpResource)&&r.push(a)}return{mcpServerInstallResult:o,mcpServerInstallResultInCurrentProfile:r}}async handleRemoteInstallMcpServerResultsFromEvent(e,n,o){let r=[],s=[],a=await this.getRemoteMcpResource(this.userDataProfileService.currentProfile.mcpResource);for(let l of e){let d={...l,local:l.local?this.toWorkspaceMcpServer(l.local,"remoteUser"):void 0};r.push(d),(a?this.uriIdentityService.extUri.isEqual(l.mcpResource,a):this.userDataProfileService.currentProfile.isDefault)&&s.push(d)}n.fire(r),s.length&&o.fire(s)}async getInstalled(){let e=[],[n,o,r]=await Promise.all([this.mcpManagementService.getInstalled(this.userDataProfileService.currentProfile.mcpResource),this.remoteMcpManagementService?.getInstalled(await this.getRemoteMcpResource())??Promise.resolve([]),this.workspaceMcpManagementService?.getInstalled()??Promise.resolve([])]);for(let s of n)e.push(this.toWorkspaceMcpServer(s,"user"));for(let s of o)e.push(this.toWorkspaceMcpServer(s,"remoteUser"));for(let s of r)e.push(this.toWorkspaceMcpServer(s,"workspace"));return e}toWorkspaceMcpServer(e,n){return{...e,id:`mcp.config.${this.getConfigId(e,n)}.${e.name}`,scope:n}}getConfigId(e,n){if(n==="user")return f8;if(n==="remoteUser")return h8;if(n==="workspace"){let o=this.workspaceContextService.getWorkspace();if(o.configuration&&this.uriIdentityService.extUri.isEqual(o.configuration,e.mcpResource))return v8;let r=o.folders;for(let s=0;s<r.length;s++){let a=r[s];if(this.uriIdentityService.extUri.isEqual(this.uriIdentityService.extUri.joinPath(a.uri,Qs[Gi]),e.mcpResource))return`${zD}${s}`}}return"unknown"}async install(e,n){if(n=n??{},n.target===5||Xk(n.target)){let r=n.target===5?this.workspaceContextService.getWorkspace().configuration:n.target.toResource(Qs[Gi]);if(!r)throw new Error(`Illegal target: ${n.target}`);n.mcpResource=r;let s=await this.workspaceMcpManagementService.install(e,n);return this.toWorkspaceMcpServer(s,"workspace")}if(n.target===4){if(!this.remoteMcpManagementService)throw new Error(`Illegal target: ${n.target}`);n.mcpResource=await this.getRemoteMcpResource(n.mcpResource);let r=await this.remoteMcpManagementService.install(e,n);return this.toWorkspaceMcpServer(r,"remoteUser")}if(n.target&&n.target!==2&&n.target!==3)throw new Error(`Illegal target: ${n.target}`);n.mcpResource=this.userDataProfileService.currentProfile.mcpResource;let o=await this.mcpManagementService.install(e,n);return this.toWorkspaceMcpServer(o,"user")}async installFromGallery(e,n){if(n=n??{},n.target===5||Xk(n.target)){let r=n.target===5?this.workspaceContextService.getWorkspace().configuration:n.target.toResource(Qs[Gi]);if(!r)throw new Error(`Illegal target: ${n.target}`);n.mcpResource=r;let s=await this.workspaceMcpManagementService.installFromGallery(e,n);return this.toWorkspaceMcpServer(s,"workspace")}if(n.target===4){if(!this.remoteMcpManagementService)throw new Error(`Illegal target: ${n.target}`);n.mcpResource=await this.getRemoteMcpResource(n.mcpResource);let r=await this.remoteMcpManagementService.installFromGallery(e,n);return this.toWorkspaceMcpServer(r,"remoteUser")}if(n.target&&n.target!==2&&n.target!==3)throw new Error(`Illegal target: ${n.target}`);n.mcpResource||(n.mcpResource=this.userDataProfileService.currentProfile.mcpResource);let o=await this.mcpManagementService.installFromGallery(e,n);return this.toWorkspaceMcpServer(o,"user")}async updateMetadata(e,n,o){if(e.scope==="workspace"){let s=await this.workspaceMcpManagementService.updateMetadata(e,n,o);return this.toWorkspaceMcpServer(s,"workspace")}if(e.scope==="remoteUser"){if(!this.remoteMcpManagementService)throw new Error(`Illegal target: ${e.scope}`);let s=await this.remoteMcpManagementService.updateMetadata(e,n,o);return this.toWorkspaceMcpServer(s,"remoteUser")}let r=await this.mcpManagementService.updateMetadata(e,n,o);return this.toWorkspaceMcpServer(r,"user")}async uninstall(e){if(e.scope==="workspace")return this.workspaceMcpManagementService.uninstall(e);if(e.scope==="remoteUser"){if(!this.remoteMcpManagementService)throw new Error(`Illegal target: ${e.scope}`);return this.remoteMcpManagementService.uninstall(e)}return this.mcpManagementService.uninstall(e,{mcpResource:this.userDataProfileService.currentProfile.mcpResource})}async getRemoteMcpResource(e){if(!e&&this.userDataProfileService.currentProfile.isDefault)return;e=e??this.userDataProfileService.currentProfile.mcpResource;let n=this.userDataProfilesService.profiles.find(o=>this.uriIdentityService.extUri.isEqual(o.mcpResource,e));return n?n=await this.remoteUserDataProfilesService.getRemoteProfile(n):n=(await this.remoteUserDataProfilesService.getRemoteProfiles()).find(o=>this.uriIdentityService.extUri.isEqual(o.mcpResource,e)),n?.mcpResource}};ax=R([C(1,ci),C(2,ie),C(3,nx),C(4,vr),C(5,Mr),C(6,ji),C(7,pl),C(8,$D),C(9,mn)],ax);var Oh=class extends sc{constructor(t,e,n,o,r,s,a,l){super(t,e,n,o,r,s,a,l)}async installFromGallery(t,e){this.logService.trace("MCP Management Service: installGallery",t.name,t.galleryUrl),this._onInstallMcpServer.fire({name:t.name,mcpResource:this.mcpResource});try{let n=e?.packageType??t.configuration.packages?.[0]?.registryType??"remote",{mcpServerConfiguration:o,notices:r}=this.getMcpServerConfigurationFromManifest(t.configuration,n);r.length>0&&this.logService.warn(`MCP Management Service: Warnings while installing ${t.name}`,r);let s={name:t.name,config:{...o.config,gallery:t.galleryUrl??!0,version:t.version},inputs:o.inputs};this.ensureServerAllowed(s),await this.mcpResourceScannerService.addMcpServers([s],this.mcpResource,this.target),await this.updateLocal(t);let a=(await this.getInstalled()).find(l=>l.name===t.name);if(!a)throw new Error(`Failed to install MCP server: ${t.name}`);return a}catch(n){throw this._onDidInstallMcpServers.fire([{name:t.name,source:t,error:n,mcpResource:this.mcpResource}]),n}}updateMetadata(){throw new Error("Not supported")}installFromUri(){throw new Error("Not supported")}async getLocalServerInfo(t,e){if(!e.gallery)return;let[n]=await this.mcpGalleryService.getMcpServersFromGallery([{name:t}]);if(n)return{name:n.name,version:e.version,displayName:n.displayName,description:n.description,galleryUrl:n.galleryUrl,manifest:n.configuration,publisher:n.publisher,publisherDisplayName:n.publisherDisplayName,repositoryUrl:n.repositoryUrl,icon:n.icon}}canInstall(t){throw new Error("Not supported")}};Oh=R([C(2,_h),C(3,To),C(4,vr),C(5,ie),C(6,dp),C(7,ci)],Oh);var Lh=class extends Qi{constructor(e,n,o,r,s){super(e,o);this.uriIdentityService=n;this.workspaceContextService=r;this.instantiationService=s;this._onInstallMcpServer=this._register(new T);this.onInstallMcpServer=this._onInstallMcpServer.event;this._onDidInstallMcpServers=this._register(new T);this.onDidInstallMcpServers=this._onDidInstallMcpServers.event;this._onDidUpdateMcpServers=this._register(new T);this.onDidUpdateMcpServers=this._onDidUpdateMcpServers.event;this._onUninstallMcpServer=this._register(new T);this.onUninstallMcpServer=this._onUninstallMcpServer.event;this._onDidUninstallMcpServer=this._register(new T);this.onDidUninstallMcpServer=this._onDidUninstallMcpServer.event;this.allMcpServers=[];this.workspaceMcpManagementServices=new Ue;this.initialize()}async initialize(){try{await this.onDidChangeWorkbenchState(),await this.onDidChangeWorkspaceFolders({added:this.workspaceContextService.getWorkspace().folders,removed:[],changed:[]}),this._register(this.workspaceContextService.onDidChangeWorkspaceFolders(e=>this.onDidChangeWorkspaceFolders(e))),this._register(this.workspaceContextService.onDidChangeWorkbenchState(e=>this.onDidChangeWorkbenchState()))}catch(e){this.logService.error("Failed to initialize workspace folders",e)}}async onDidChangeWorkbenchState(){this.workspaceConfiguration&&await this.removeWorkspaceService(this.workspaceConfiguration),this.workspaceConfiguration=this.workspaceContextService.getWorkspace().configuration,this.workspaceConfiguration&&await this.addWorkspaceService(this.workspaceConfiguration,5)}async onDidChangeWorkspaceFolders(e){try{await Promise.allSettled(e.removed.map(n=>this.removeWorkspaceService(n.toResource(Qs[Gi]))))}catch(n){this.logService.error(n)}try{await Promise.allSettled(e.added.map(n=>this.addWorkspaceService(n.toResource(Qs[Gi]),6)))}catch(n){this.logService.error(n)}}async addWorkspaceService(e,n){if(this.workspaceMcpManagementServices.has(e))return;let o=new G,r=o.add(this.instantiationService.createInstance(Oh,e,n));try{let s=await r.getInstalled();if(this.allMcpServers.push(...s),s.length>0){let a=s.map(l=>({name:l.name,local:l,mcpResource:l.mcpResource}));this._onDidInstallMcpServers.fire(a)}}catch(s){this.logService.warn("Failed to get installed servers from",e.toString(),s)}o.add(r.onInstallMcpServer(s=>this._onInstallMcpServer.fire(s))),o.add(r.onDidInstallMcpServers(s=>{for(let{local:a}of s)a&&this.allMcpServers.push(a);this._onDidInstallMcpServers.fire(s)})),o.add(r.onDidUpdateMcpServers(s=>{for(let{local:a,mcpResource:l}of s)if(a){let d=this.allMcpServers.findIndex(c=>this.uriIdentityService.extUri.isEqual(c.mcpResource,l)&&c.name===a.name);d!==-1&&this.allMcpServers.splice(d,1,a)}this._onDidUpdateMcpServers.fire(s)})),o.add(r.onUninstallMcpServer(s=>this._onUninstallMcpServer.fire(s))),o.add(r.onDidUninstallMcpServer(s=>{let a=this.allMcpServers.findIndex(l=>this.uriIdentityService.extUri.isEqual(l.mcpResource,s.mcpResource)&&l.name===s.name);a!==-1&&(this.allMcpServers.splice(a,1),this._onDidUninstallMcpServer.fire(s))})),this.workspaceMcpManagementServices.set(e,{service:r,dispose:()=>o.dispose()})}async removeWorkspaceService(e){let n=this.workspaceMcpManagementServices.get(e);if(n){try{let o=await n.service.getInstalled();this.allMcpServers=this.allMcpServers.filter(r=>!o.some(s=>this.uriIdentityService.extUri.isEqual(s.mcpResource,r.mcpResource)));for(let r of o)this._onDidUninstallMcpServer.fire({name:r.name,mcpResource:r.mcpResource})}catch(o){this.logService.warn("Failed to get installed servers from",e.toString(),o)}this.workspaceMcpManagementServices.delete(e),n.dispose()}}async getInstalled(){return this.allMcpServers}async install(e,n){if(!n?.mcpResource)throw new Error("MCP resource is required");let o=this.workspaceMcpManagementServices.get(n?.mcpResource);if(!o)throw new Error(`No MCP management service found for resource: ${n?.mcpResource.toString()}`);return o.service.install(e,n)}async uninstall(e,n){let o=e.mcpResource,r=this.workspaceMcpManagementServices.get(o);if(!r)throw new Error(`No MCP management service found for resource: ${o.toString()}`);return r.service.uninstall(e,n)}installFromGallery(e,n){if(!n?.mcpResource)throw new Error("MCP resource is required");let o=this.workspaceMcpManagementServices.get(n?.mcpResource);if(!o)throw new Error(`No MCP management service found for resource: ${n?.mcpResource.toString()}`);return o.service.installFromGallery(e,n)}updateMetadata(){throw new Error("Not supported")}dispose(){this.workspaceMcpManagementServices.forEach(e=>e.dispose()),this.workspaceMcpManagementServices.clear(),super.dispose()}};Lh=R([C(0,ci),C(1,vr),C(2,ie),C(3,Mr),C(4,mn)],Lh);var Nh;(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))(Nh||={});var b8="mcp.config.";function UH(i,t){return xe.toKey(i)+"/"+t}var y8;(n=>{function i(o,r){return o.id===r.id&&o.remoteAuthority===r.remoteAuthority&&o.label===r.label&&o.trustBehavior===r.trustBehavior&&ht(o.sandbox,r.sandbox)}n.equals=i;function t(o){return o.configTarget===5||o.configTarget===6}n.isWorkspaceDiscovered=t;function e(o){return o.id.startsWith(`${b8}${zD}`)}n.isVscodeMcpJson=e})(y8||={});var I8;(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:ac.fromSerialized(o.launch),defaultCwd:o.defaultCwd?y.revive(o.defaultCwd):void 0,sandboxEnabled:o.sandboxEnabled,variableReplacement:o.variableReplacement?FH.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&&nn(o.defaultCwd,r.defaultCwd)&&Jt(o.roots,r.roots,(s,a)=>s.toString()===a.toString())&&ht(o.launch,r.launch)&&ht(o.presentation,r.presentation)&&ht(o.variableReplacement,r.variableReplacement)&&ht(o.devMode,r.devMode)&&o.sandboxEnabled===r.sandboxEnabled}n.equals=e})(I8||={});var FH;(e=>{function i(n){return n}e.toSerialized=i;function t(n){return{section:n.section,folder:n.folder?{...n.folder,uri:y.revive(n.folder.uri)}:void 0,target:n.target}}e.fromSerialized=t})(FH||={});var x8;(t=>t.Empty={working:!1,starting:[],serversRequiringInteraction:[]})(x8||={});var EPe=D("IMcpService");var S8;(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||={})})(S8||={});var ac;(n=>{function i(o){return o}n.toSerialized=i;function t(o){switch(o.type){case 2:return{type:o.type,uri:y.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 $a(ee.wrap(new Uint8Array(r)))}n.hash=e})(ac||={});var ui;(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(14284,null);case 1:return p(14283,null);case 2:return p(14282,null);case 3:return p(14281,null,s.message);default:Fa(s)}},r.toKindString=s=>{switch(s){case 0:return"stopped";case 1:return"starting";case 2:return"running";case 3:return"error";default:Fa(s)}},r.canBeStarted=s=>s===3||s===0,r.isRunning=s=>!(0,r.canBeStarted)(s.state)})(ui||={});var Uh=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 C8=D("IMcpWorkbenchService"),lx=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()}};lx=R([C(1,C8)],lx);var wPe=new E("mcpServersGalleryStatus","unavailable"),kPe=new E("hasInstalledMcpServers",!0);var T8;(o=>{o.scheme="mcp-resource";let t="dylo78gyp";function e(r,s){return typeof s=="string"&&(s=y.parse(s)),s.with({scheme:o.scheme,authority:$a(ee.fromString(r.id)),path:["",s.scheme,s.authority||t].join("/")+s.path})}o.fromServer=e;function n(r){if(typeof r=="string"&&(r=y.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:pf(r.authority).toString(),resourceURL:c}}o.toServer=n})(T8||={});var PPe=D("IMcpServerSampling");var _Pe=D("IMcpElicitationService");var APe=D("scm");var OPe=D("scmView");var Ke=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 qPe={2:p(18392,null),4:p(18391,null),8:p(18390,null)};var HH=i=>"runId"in i,Fh;(e=>(e.serialize=n=>({range:n.range.toJSON(),uri:n.uri.toJSON()}),e.deserialize=(n,o)=>({range:Fe.lift(o.range),uri:n.asCanonicalUri(y.revive(o.uri))})))(Fh||={});var qD;(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(y.revive(o.uri)):void 0,position:o.position?yn.lift(o.position):void 0})))(qD||={});var KD;(e=>(e.serialize=n=>({message:n.message,type:0,expected:n.expected,actual:n.actual,contextValue:n.contextValue,location:n.location&&Fh.serialize(n.location),stackTrace:n.stackTrace?.map(qD.serialize)}),e.deserialize=(n,o)=>({message:o.message,type:0,expected:o.expected,actual:o.actual,contextValue:o.contextValue,location:o.location&&Fh.deserialize(n,o.location),stackTrace:o.stackTrace&&o.stackTrace.map(r=>qD.deserialize(n,r))})))(KD||={});var GD;(e=>(e.serialize=n=>({message:n.message,type:1,offset:n.offset,length:n.length,location:n.location&&Fh.serialize(n.location)}),e.deserialize=(n,o)=>({message:o.message,type:1,offset:o.offset,length:o.length,location:o.location&&Fh.deserialize(n,o.location)})))(GD||={});var jD;(n=>(n.serialize=o=>o.type===0?KD.serialize(o):GD.serialize(o),n.deserialize=(o,r)=>r.type===0?KD.deserialize(o,r):GD.deserialize(o,r),n.isDiffable=o=>o.type===0&&o.actual!==void 0&&o.expected!==void 0))(jD||={});var dx;(n=>(n.serializeWithoutMessages=o=>({state:o.state,duration:o.duration,messages:[]}),n.serialize=o=>({state:o.state,duration:o.duration,messages:o.messages.map(jD.serialize)}),n.deserialize=(o,r)=>({state:r.state,duration:r.duration,messages:r.messages.map(s=>jD.deserialize(o,s))})))(dx||={});var VH="\0",mp=(i,t)=>i+VH+t,px=i=>{let t=i.indexOf(VH);return{ctrlId:i.slice(0,t),tagId:i.slice(t+1)}},QD;(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(y.revive(o.uri)):void 0,range:o.range?Fe.lift(o.range):null,description:o.description,error:o.error,sortText:o.sortText})))(QD||={});var lc;(e=>(e.serialize=n=>({expand:n.expand,item:QD.serialize(n.item)}),e.deserialize=(n,o)=>({controllerId:Ke.root(o.item.extId),expand:o.expand,item:QD.deserialize(n,o.item)})))(lc||={});var cx;(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?Fe.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}}))(cx||={});var mx=(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)},E8;(n=>(n.serializeWithoutMessages=o=>({...lc.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(dx.serializeWithoutMessages)}),n.serialize=o=>({...lc.serialize(o),ownComputedState:o.ownComputedState,computedState:o.computedState,tasks:o.tasks.map(dx.serialize)}),n.deserialize=(o,r)=>({...lc.deserialize(o,r),ownComputedState:r.ownComputedState,computedState:r.computedState,tasks:r.tasks.map(s=>dx.deserialize(o,s)),retired:!0})))(E8||={});var BH;(e=>(e.empty=()=>({covered:0,total:0}),e.sum=(n,o)=>{n.covered+=o.covered,n.total+=o.total}))(BH||={});var w8;(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(y.revive(r.uri))}),n.empty=(o,r)=>({id:o,uri:r,statement:BH.empty()})))(w8||={});function ZD(i){return{...i,location:i.location?.toJSON()}}function eR(i){return i.location=i.location?yn.isIPosition(i.location)?yn.lift(i.location):Fe.lift(i.location):void 0,i}var k8;(e=>(e.serialize=n=>n.type===0?YD.serialize(n):XD.serialize(n),e.deserialize=n=>n.type===0?YD.deserialize(n):XD.deserialize(n)))(k8||={});var JD;(e=>(e.serialize=ZD,e.deserialize=eR))(JD||={});var YD;(e=>(e.serialize=ZD,e.deserialize=eR))(YD||={});var XD;(e=>(e.serialize=n=>({...ZD(n),branches:n.branches?.map(JD.serialize)}),e.deserialize=n=>({...eR(n),branches:n.branches?.map(JD.deserialize)})))(XD||={});var gx;(e=>(e.deserialize=(n,o)=>o.op===0?{op:o.op,item:lc.deserialize(n,o.item)}:o.op===1?{op:o.op,item:cx.deserialize(o.item)}:o.op===2?{op:o.op,uri:n.asCanonicalUri(y.revive(o.uri)),docv:o.docv}:o,e.serialize=n=>n.op===0?{op:n.op,item:lc.serialize(n.item)}:n.op===1?{op:n.op,item:cx.serialize(n.item)}:n))(gx||={});var ux=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(lc.deserialize(this.uriIdentity,n.item),e);break;case 1:this.update(cx.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=Ke.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++),mx(n,t),e.update?.(n),n}remove(t,e){let n=this.items.get(t);if(!n)return;let o=Ke.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 jPe=D("IAiSettingsSearchService");var WH=D("editorGroupsService");var x_e=D("editorService"),$H=-1,zH=-2;var Hh=(i,t)=>i===t,P8={range:(i,t)=>i===t?!0:!i||!t?!1:i.equalsRange(t),busy:Hh,label:Hh,description:Hh,error:Hh,sortText:Hh,tags:(i,t)=>!(i.length!==t.length||i.some(e=>!t.includes(e)))},_8=Object.entries(P8),D8=(i,t)=>{let e;for(let[n,o]of _8)o(i[n],t[n])||(e?e[n]=t[n]:e={[n]:t[n]});return e},fx=class extends U{constructor(e){super();this.options=e;this.debounceSendDiff=this._register(new Nn(()=>this.flushDiff(),200));this.diffOpEmitter=this._register(new T);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){mx(n.item,e.item);return}if(n.op===0&&n.item.item.extId===e.item.extId){mx(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(Ke.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:Fa(n)}}documentSynced(e){e&&this.pushDiff({op:2,uri:e,docv:this.options.getDocumentVersion(e)})}upsertItem(e,n){let o=Ke.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=D8(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(Ke.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=>mp(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:mp(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:mp(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(Ke.joinToString(e.fullId,s.id),n);_r(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 Ln;return s.open(),s}e.expand=2,this.pushExpandStateUpdate(e);let n=e.resolveBarrier=new Ln,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 _r(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(Ke.joinToString(r.fullId,a.id)))}}}flushDiff(){let e=this.collectDiff();e.length&&this.diffOpEmitter.fire(e)}},tR=class extends Error{constructor(t){super(`Attempted to insert a duplicate test item ID ${t}`)}},fl=class extends Error{constructor(t){super(`TestItem with ID "${t}" is invalid. Make sure to create it from the createTestItem method.`)}},nR=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}".`)}},qH=(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 fl(l.id);let d=t(l).controllerId;if(d!==i.controllerId)throw new nR(l.id,d,i.controllerId);if(r.has(l.id))throw new tR(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 fl(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 KH=new WeakMap,GH=(i,t)=>{let e={controllerId:t};return KH.set(i,e),e},gp=i=>{let t=KH.get(i);if(!t)throw new fl(i?.id||"<unknown>");return t};var $_e=D("remoteAuthorityResolverService");var hx=class{constructor(t){this.id=t;this.type=1}toString(){return`Managed(${this.id})`}},vx=class{constructor(t,e){this.host=t;this.port=e;this.type=0}toString(){return`WebSocket(${this.host}:${this.port})`}};function oR(i){let t=i.indexOf("+");return t===-1?i:i.substring(0,t)}function fe(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 zn,Bt=class{constructor(t,e=!1){cu(this,zn);tf(this,zn,new vt(t,{supportThemeIcons:e}))}static isMarkdownString(t){return t instanceof Bt?!0:!t||typeof t!="object"?!1:t.appendCodeblock&&t.appendMarkdown&&t.appendText&&t.value!==void 0}get value(){return en(this,zn).value}set value(t){en(this,zn).value=t}get isTrusted(){return en(this,zn).isTrusted}set isTrusted(t){en(this,zn).isTrusted=t}get supportThemeIcons(){return en(this,zn).supportThemeIcons}set supportThemeIcons(t){en(this,zn).supportThemeIcons=t}get supportHtml(){return en(this,zn).supportHtml}set supportHtml(t){en(this,zn).supportHtml=t}get supportAlertSyntax(){return en(this,zn).supportAlertSyntax}set supportAlertSyntax(t){en(this,zn).supportAlertSyntax=t}get baseUri(){return en(this,zn).baseUri}set baseUri(t){en(this,zn).baseUri=t}appendText(t){return en(this,zn).appendText(t),this}appendMarkdown(t){return en(this,zn).appendMarkdown(t),this}appendCodeblock(t,e){return en(this,zn).appendCodeblock(e??"",t),this}};zn=new WeakMap,Bt=R([fe],Bt);var we=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 we)return!0;let{line:e,character:n}=t;return typeof e=="number"&&typeof n=="number"}static of(t){if(t instanceof we)return t;if(this.isPosition(t))return new we(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 Ne("line must be non-negative");if(e<0)throw Ne("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 Ne();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 we(this.line+n,this.character+e)}with(t,e=this.character){if(t===null||e===null)throw Ne();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 we(n,e)}toJSON(){return{line:this.line,character:this.character}}[Symbol.for("debug.description")](){return`(${this.line}:${this.character})`}};we=R([fe],we);var he=class{static isRange(t){return t instanceof he?!0:!t||typeof t!="object"?!1:we.isPosition(t.start)&&we.isPosition(t.end)}static of(t){if(t instanceof he)return t;if(this.isRange(t))return new he(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 we(t,e),s=new we(n,o)):we.isPosition(t)&&we.isPosition(e)&&(r=we.of(t),s=we.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 he.isRange(t)?this.contains(t.start)&&this.contains(t.end):we.isPosition(t)?!(we.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=we.Max(t.start,this._start),n=we.Min(t.end,this._end);if(!e.isAfter(n))return new he(e,n)}union(t){if(this.contains(t))return this;if(t.contains(this))return t;let e=we.Min(t.start,this._start),n=we.Max(t.end,this.end);return new he(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 Ne();let n;return t?we.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 he(n,e)}toJSON(){return[this.start,this.end]}[Symbol.for("debug.description")](){return rR(this)}};he=R([fe],he);function rR(i){return i.isEmpty?`[${i.start.line}:${i.start.character})`:`[${i.start.line}:${i.start.character} -> ${i.end.line}:${i.end.character})`}var bt=class{constructor(t){this.value=t}append(t){return new bt(this.value?this.value+bt.sep+t:t)}intersects(t){return this.contains(t)||t.contains(this)}contains(t){return this.value===t.value||t.value.startsWith(this.value+bt.sep)}};bt.sep=".",bt=R([fe],bt);bt.Empty=new bt("");bt.QuickFix=bt.Empty.append("quickfix");bt.Refactor=bt.Empty.append("refactor");bt.RefactorExtract=bt.Refactor.append("extract");bt.RefactorInline=bt.Refactor.append("inline");bt.RefactorMove=bt.Refactor.append("move");bt.RefactorRewrite=bt.Refactor.append("rewrite");bt.Source=bt.Empty.append("source");bt.SourceOrganizeImports=bt.Source.append("organizeImports");bt.SourceFixAll=bt.Source.append("fixAll");bt.Notebook=bt.Empty.append("notebook");var Vh=(e=>(e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated",e))(Vh||{}),dc=(o=>(o[o.Hint=3]="Hint",o[o.Information=2]="Information",o[o.Warning=1]="Warning",o[o.Error=0]="Error",o))(dc||{}),Ji=class{static is(t){return t?typeof t.message=="string"&&t.location&&he.isRange(t.location.range)&&y.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()}};Ji=R([fe],Ji);var Js=class{constructor(t,e,n=0){if(!he.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:dc[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)&&Jt(t.tags,e.tags)&&Jt(t.relatedInformation,e.relatedInformation,Ji.isEqual)}};Js=R([fe],Js);var zt=class{static isLocation(t){return t instanceof zt?!0:t?he.isRange(t.range)&&y.isUri(t.uri):!1}constructor(t,e){if(this.uri=t,e)if(he.isRange(e))this.range=he.of(e);else if(we.isPosition(e))this.range=new he(e,e);else throw new Error("Illegal argument")}toJSON(){return{uri:this.uri,range:this.range}}};zt=R([fe],zt);var Bh=(e=>(e[e.Markup=1]="Markup",e[e.Code=2]="Code",e))(Bh||{}),qn=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 Ne("start must be positive");if(e<0)throw Ne("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)}},Yi=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)}},cc=class{constructor(t){this.cells=t}},Do=class{static isNotebookCellEdit(t){return t instanceof Do?!0:t?qn.isNotebookRange(t)&&Array.isArray(t.newCells):!1}static replaceCells(t,e){return new Do(t,e)}static insertCells(t,e){return new Do(new qn(t,t),e)}static deleteCells(t){return new Do(t,[])}static updateCellMetadata(t,e){let n=new Do(new qn(t,t),[]);return n.newCellMetadata=e,n}static updateNotebookMetadata(t){let e=new Do(new qn(0,0),[]);return e.newNotebookMetadata=t,e}constructor(t,e){this.range=t,this.newCells=e}};Do=R([fe],Do);var uc=class i{constructor(t,e){this.data=t;this.mime=e;let n=fP(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=Qo.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)}},Xi=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=fP(s.mime);if(!n.has(a)||Vy(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=Be(),this.metadata=e??n)}};var Fn=class extends he{static isSelection(t){return t instanceof Fn?!0:!t||typeof t!="object"?!1:he.isRange(t)&&we.isPosition(t.anchor)&&we.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 we(t,e),s=new we(n,o)):we.isPosition(t)&&we.isPosition(e)&&(r=we.of(t),s=we.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 R8(this)}};Fn=R([fe],Fn);function R8(i){let t=rR(i);return i.isEmpty||(i.active.isEqual(i.start)?t=`|${t}`:t=`${t}|`),t}var Hn=class{constructor(t){this._tabstop=1;this.value=t||""}static isSnippetString(t){return t instanceof Hn?!0:!t||typeof t!="object"?!1:typeof t.value=="string"}static _escape(t){return t.replace(/\$|}|\\/g,"\\$&")}appendText(t){return this.value+=Hn._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 Hn;n._tabstop=this._tabstop,t(n),this._tabstop=n._tabstop,t=n.value}else t=Hn._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 Hn;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}};Hn=R([fe],Hn);var Ys=class i{static isSnippetTextEdit(t){return t instanceof i?!0:t?he.isRange(t.range)&&Hn.isSnippetString(t.snippet):!1}static replace(t,e){return new i(t,e)}static insert(t,e){return i.replace(new he(t,t),e)}constructor(t,e){this.range=t,this.snippet=e}};var fp=(j=>(j[j.File=0]="File",j[j.Module=1]="Module",j[j.Namespace=2]="Namespace",j[j.Package=3]="Package",j[j.Class=4]="Class",j[j.Method=5]="Method",j[j.Property=6]="Property",j[j.Field=7]="Field",j[j.Constructor=8]="Constructor",j[j.Enum=9]="Enum",j[j.Interface=10]="Interface",j[j.Function=11]="Function",j[j.Variable=12]="Variable",j[j.Constant=13]="Constant",j[j.String=14]="String",j[j.Number=15]="Number",j[j.Boolean=16]="Boolean",j[j.Array=17]="Array",j[j.Object=18]="Object",j[j.Key=19]="Key",j[j.Null=20]="Null",j[j.EnumMember=21]="EnumMember",j[j.Struct=22]="Struct",j[j.Event=23]="Event",j[j.Operator=24]="Operator",j[j.TypeParameter=25]="TypeParameter",j))(fp||{}),Wh=(t=>(t[t.Deprecated=1]="Deprecated",t))(Wh||{}),yr=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 zt?this.location=o:n instanceof he&&(this.location=new zt(o,n)),yr.validate(this)}toJSON(){return{name:this.name,kind:fp[this.kind],location:this.location,containerName:this.containerName}}};yr=R([fe],yr);var pc=(e=>(e[e.LF=1]="LF",e[e.CRLF=2]="CRLF",e))(pc||{}),Dn=class{static isTextEdit(t){return t instanceof Dn?!0:!t||typeof t!="object"?!1:he.isRange(t)&&typeof t.newText=="string"}static replace(t,e){return new Dn(t,e)}static insert(t,e){return Dn.replace(new he(t,t),e)}static delete(t){return Dn.replace(t,"")}static setEndOfLine(t){let e=new Dn(new he(new we(0,0),new we(0,0)),"");return e.newEol=t,e}get range(){return this._range}set range(t){if(t&&!he.isRange(t))throw Ne("range");this._range=t}get newText(){return this._newText||""}set newText(t){if(t&&typeof t!="string")throw Ne("newText");this._newText=t}get newEol(){return this._newEol}set newEol(t){if(t&&typeof t!="number")throw Ne("newEol");this._newEol=t}constructor(t,e){this._range=t,this._newText=e}toJSON(){return{range:this.range,newText:this.newText,newEol:this._newEol}}};Dn=R([fe],Dn);var tr=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 Dn(e,n),metadata:o})}insert(t,e,n,o){this.replace(t,new he(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,Do.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):Ys.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}}gO(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 Ue;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()}};tr=R([fe],tr);var iR=(e=>(e[e.Top=0]="Top",e[e.Bottom=1]="Bottom",e))(iR||{});var vc,Ie=class{constructor(t){cu(this,vc);tf(this,vc,t)}static from(...t){let e=t;return new Ie(function(){if(e){for(let n of e)n&&typeof n.dispose=="function"&&n.dispose();e=void 0}})}dispose(){typeof en(this,vc)=="function"&&(en(this,vc).call(this),tf(this,vc,void 0))}};vc=new WeakMap,Ie=R([fe],Ie);var JH=i=>{if(typeof i!="string"||i.length===0||!/^[0-9A-Za-z_\-]+$/.test(i))throw Ne("connectionToken")},bx=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 Ne("host");if(typeof e!="number"||e===0||Math.round(e)!==e)throw Ne("port");typeof n<"u"&&JH(n),this.host=t,this.port=Math.round(e),this.connectionToken=n}},Al=class{constructor(t,e){this.makeConnection=t;this.connectionToken=e;typeof e<"u"&&JH(e)}static isManagedResolvedAuthority(t){return t&&typeof t=="object"&&typeof t.makeConnection=="function"&&(t.connectionToken===void 0||typeof t.connectionToken=="string")}},ss=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)}},jx=(n=>(n[n.Replace=1]="Replace",n[n.Append=2]="Append",n[n.Prepend=3]="Prepend",n))(jx||{}),mc=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}};mc=R([fe],mc);var hl=class extends mc{constructor(t,e,n,o){super(t,e),this.canIncreaseVerbosity=n,this.canDecreaseVerbosity=o}};hl=R([fe],hl);var sR=(e=>(e[e.Increase=0]="Increase",e[e.Decrease=1]="Decrease",e))(sR||{}),Qx=(n=>(n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write",n))(Qx||{}),vl=class{constructor(t,e=0){this.range=t,this.kind=e}toJSON(){return{range:this.range,kind:Qx[this.kind]}}};vl=R([fe],vl);var bl=class{constructor(t,e){this.uri=t,this.highlights=e}toJSON(){return{uri:this.uri,highlights:this.highlights.map(t=>t.toJSON())}}};bl=R([fe],bl);var Ir=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(Ir.validate)}constructor(t,e,n,o,r){this.name=t,this.detail=e,this.kind=n,this.range=o,this.selectionRange=r,this.children=[],Ir.validate(this)}};Ir=R([fe],Ir);var Jx=(e=>(e[e.Invoke=1]="Invoke",e[e.Automatic=2]="Automatic",e))(Jx||{}),es=class{constructor(t,e){this.title=t,this.kind=e}};es=R([fe],es);var ts=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")}};ts=R([fe],ts);var Ol=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}},Ep=class{constructor(t,e){this.fromRanges=e,this.from=t}},wp=class{constructor(t,e){this.fromRanges=e,this.to=t}},Yx=(n=>(n[n.Information=0]="Information",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(Yx||{}),yl=class{constructor(t,e){this.range=t,this.command=e}get isResolved(){return!!this.command}};yl=R([fe],yl);var hp=class{constructor(t,e){this.label=t,this.documentation=e}};hp=R([fe],hp);var vp=class{constructor(t,e){this.label=t,this.documentation=e,this.parameters=[]}};vp=R([fe],vp);var bp=class{constructor(){this.activeSignature=0;this.activeParameter=0;this.signatures=[]}};bp=R([fe],bp);var aR=(n=>(n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n))(aR||{}),lR=(e=>(e[e.Type=1]="Type",e[e.Parameter=2]="Parameter",e))(lR||{}),Il=class{constructor(t){this.value=t}};Il=R([fe],Il);var xl=class{constructor(t,e,n){this.position=t,this.label=e,this.kind=n}};xl=R([fe],xl);var Xx=(n=>(n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions",n))(Xx||{}),zh=(X=>(X[X.Text=0]="Text",X[X.Method=1]="Method",X[X.Function=2]="Function",X[X.Constructor=3]="Constructor",X[X.Field=4]="Field",X[X.Variable=5]="Variable",X[X.Class=6]="Class",X[X.Interface=7]="Interface",X[X.Module=8]="Module",X[X.Property=9]="Property",X[X.Unit=10]="Unit",X[X.Value=11]="Value",X[X.Enum=12]="Enum",X[X.Keyword=13]="Keyword",X[X.Snippet=14]="Snippet",X[X.Color=15]="Color",X[X.File=16]="File",X[X.Reference=17]="Reference",X[X.Folder=18]="Folder",X[X.EnumMember=19]="EnumMember",X[X.Constant=20]="Constant",X[X.Struct=21]="Struct",X[X.Event=22]="Event",X[X.Operator=23]="Operator",X[X.TypeParameter=24]="TypeParameter",X[X.User=25]="User",X[X.Issue=26]="Issue",X))(zh||{}),Zx=(t=>(t[t.Deprecated=1]="Deprecated",t))(Zx||{}),Sl=class{constructor(t,e){this.label=t,this.kind=e}toJSON(){return{label:this.label,kind:this.kind&&zh[this.kind],detail:this.detail,documentation:this.documentation,sortText:this.sortText,filterText:this.filterText,preselect:this.preselect,insertText:this.insertText,textEdit:this.textEdit}}};Sl=R([fe],Sl);var pi=class{constructor(t=[],e=!1){this.items=t,this.isIncomplete=e}};pi=R([fe],pi);var yp=class{constructor(t,e,n){this.insertText=t,this.range=e,this.command=n}};yp=R([fe],yp);var Ip=class{constructor(t){this.commands=void 0;this.suppressSuggestions=void 0;this.items=t}};Ip=R([fe],Ip);var eS=(o=>(o[o.Unknown=0]="Unknown",o[o.Word=1]="Word",o[o.Line=2]="Line",o[o.Suggest=3]="Suggest",o))(eS||{}),tS=(n=>(n[n.Accepted=0]="Accepted",n[n.Rejected=1]="Rejected",n[n.Ignored=2]="Ignored",n))(tS||{}),nS=(e=>(e[e.Code=1]="Code",e[e.Label=2]="Label",e))(nS||{}),oS=(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))(oS||{}),rS=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(rS||{});function YH(i,t){return`${xe.toKey(i)}.${t}`}var iS=(o=>(o[o.Off=0]="Off",o[o.On=1]="On",o[o.Relative=2]="Relative",o[o.Interval=3]="Interval",o))(iS||{}),sS=(n=>(n[n.Manual=1]="Manual",n[n.AfterDelay=2]="AfterDelay",n[n.FocusOut=3]="FocusOut",n))(sS||{}),aS=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(aS||{}),Rc=(n=>(n[n.Keyboard=1]="Keyboard",n[n.Mouse=2]="Mouse",n[n.Command=3]="Command",n))(Rc||{}),qh=(n=>(n[n.Addition=1]="Addition",n[n.Deletion=2]="Deletion",n[n.Modification=3]="Modification",n))(qh||{}),lS=(e=>(e[e.Undo=1]="Undo",e[e.Redo=2]="Redo",e))(lS||{}),dS=(o=>(o[o.OpenOpen=0]="OpenOpen",o[o.ClosedClosed=1]="ClosedClosed",o[o.OpenClosed=2]="OpenClosed",o[o.ClosedOpen=3]="ClosedOpen",o))(dS||{});(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})(Rc||={});var Mc=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))(Mc||{});(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})(Mc||={});var Cl=class{constructor(t,e){if(e&&!y.isUri(e))throw Ne("target");if(!he.isRange(t)||t.isEmpty)throw Ne("range");this.range=t,this.target=e}};Cl=R([fe],Cl);var mi=class{constructor(t,e,n,o){this.red=t,this.green=e,this.blue=n,this.alpha=o}};mi=R([fe],mi);var Tl=class{constructor(t,e){if(e&&!(e instanceof mi))throw Ne("color");if(!he.isRange(t)||t.isEmpty)throw Ne("range");this.range=t,this.color=e}};Tl=R([fe],Tl);var El=class{constructor(t){if(!t||typeof t!="string")throw Ne("label");this.label=t}};El=R([fe],El);var cS=(n=>(n[n.Error=0]="Error",n[n.Warning=1]="Warning",n[n.Information=2]="Information",n))(cS||{}),dR=(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))(dR||{}),uS=(n=>(n[n.Low=0]="Low",n[n.Medium=1]="Medium",n[n.High=2]="High",n))(uS||{}),cR=(v=>(v[v.Sh=1]="Sh",v[v.Bash=2]="Bash",v[v.Fish=3]="Fish",v[v.Csh=4]="Csh",v[v.Ksh=5]="Ksh",v[v.Zsh=6]="Zsh",v[v.CommandPrompt=7]="CommandPrompt",v[v.GitBash=8]="GitBash",v[v.PowerShell=9]="PowerShell",v[v.Python=10]="Python",v[v.Julia=11]="Julia",v[v.NuShell=12]="NuShell",v[v.Node=13]="Node",v[v.Xonsh=14]="Xonsh",v))(cR||{}),yx=class{constructor(t,e,n){this.startIndex=t;this.length=e;this.tooltip=n;if(typeof t!="number"||t<0)throw Ne("startIndex");if(typeof e!="number"||e<1)throw Ne("length");if(n!==void 0&&typeof n!="string")throw Ne("tooltip")}},Ix=class{constructor(t){this.uri=t}},xx=class{constructor(t){this.terminalCommand=t}},uR=(e=>(e[e.Panel=1]="Panel",e[e.Editor=2]="Editor",e))(uR||{}),Sx=class{constructor(t){this.options=t;if(typeof t!="object")throw Ne("options")}},pR=(S=>(S[S.File=0]="File",S[S.Folder=1]="Folder",S[S.Method=2]="Method",S[S.Alias=3]="Alias",S[S.Argument=4]="Argument",S[S.Option=5]="Option",S[S.OptionValue=6]="OptionValue",S[S.Flag=7]="Flag",S[S.SymbolicLinkFile=8]="SymbolicLinkFile",S[S.SymbolicLinkFolder=9]="SymbolicLinkFolder",S[S.ScmCommit=10]="ScmCommit",S[S.ScmBranch=11]="ScmBranch",S[S.ScmTag=12]="ScmTag",S[S.ScmStash=13]="ScmStash",S[S.ScmRemote=14]="ScmRemote",S[S.PullRequest=15]="PullRequest",S[S.PullRequestDone=16]="PullRequestDone",S))(pR||{}),Cx=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}},Tx=class{constructor(t,e){this.items=t??[],this.resourceOptions=e}},mR=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(mR||{}),gR=(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))(gR||{}),fR=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))(fR||{}),In=class{constructor(t,e){this.label=e;if(typeof t!="string")throw Ne("name");if(typeof e!="string")throw Ne("name");this._id=t}static from(t){switch(t){case"clean":return In.Clean;case"build":return In.Build;case"rebuild":return In.Rebuild;case"test":return In.Test;default:return}}get id(){return this._id}};In.Clean=new In("clean","Clean"),In.Build=new In("build","Build"),In.Rebuild=new In("rebuild","Rebuild"),In.Test=new In("test","Test"),In=R([fe],In);function XH(i){let t="";for(let e=0;e<i.length;e++)t+=i[e].replace(/,/g,",,")+",";return t}var ns=class{constructor(t,e,n){if(typeof t!="string")throw Ne("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 Ne("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 XH(t)}};ns=R([fe],ns);var gi=class{constructor(t,e,n){this._args=[];if(Array.isArray(e)){if(!t)throw Ne("command can't be undefined or null");if(typeof t!="string"&&typeof t.value!="string")throw Ne("command");this._command=t,e&&(this._args=e),this._options=n}else{if(typeof t!="string")throw Ne("commandLine");this._commandLine=t,this._options=e}}get commandLine(){return this._commandLine}set commandLine(t){if(typeof t!="string")throw Ne("commandLine");this._commandLine=t}get command(){return this._command?this._command:""}set command(t){if(typeof t!="string"&&typeof t.value!="string")throw Ne("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 XH(t)}};gi=R([fe],gi);var hR=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(hR||{}),pS=(e=>(e[e.Global=1]="Global",e[e.Workspace=2]="Workspace",e))(pS||{}),vR=(n=>(n[n.Default=1]="Default",n[n.FolderOpen=2]="FolderOpen",n[n.WorktreeCreated=3]="WorktreeCreated",n))(vR||{}),Ic=class{constructor(t){this._callback=t}computeId(){return"customExecution"+Be()}set callback(t){this._callback=t}get callback(){return this._callback}},Rn=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 ns?this._definition={type:Rn.ProcessType,id:this._execution.computeId()}:this._execution instanceof gi?this._definition={type:Rn.ShellType,id:this._execution.computeId()}:this._execution instanceof Ic?this._definition={type:Rn.ExtensionCallbackType,id:this._execution.computeId()}:this._definition={type:Rn.EmptyType,id:Be()}}get definition(){return this._definition}set definition(t){if(t==null)throw Ne("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 Ne("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;(Rn.EmptyType===e||Rn.ProcessType===e||Rn.ShellType===e||Rn.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 Ne("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}};Rn.ExtensionCallbackType="customExecution",Rn.ProcessType="process",Rn.ShellType="shell",Rn.EmptyType="$empty",Rn=R([fe],Rn);var Kh=(n=>(n[n.SourceControl=1]="SourceControl",n[n.Window=10]="Window",n[n.Notification=15]="Notification",n))(Kh||{}),bR;(t=>{function i(e){let n=e;return sr(n.value)?n.tooltip&&!_e(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})(bR||={});var os=class{constructor(t,e=0){this.collapsibleState=e;y.isUri(t)?this.resourceUri=t:this.label=t}static isTreeItem(t,e){let n=t;if(n.checkboxState!==void 0){let o=sr(n.checkboxState)?n.checkboxState:st(n.checkboxState)&&sr(n.checkboxState.state)?n.checkboxState.state:void 0,r=!sr(n.checkboxState)&&st(n.checkboxState)?n.checkboxState.tooltip:void 0;if(o===void 0||o!==1&&o!==0||r!==void 0&&!_e(r))return console.log("INVALID tree item, invalid checkboxState",n.checkboxState),!1}if(t instanceof os)return!0;if(n.label!==void 0&&!_e(n.label)&&!n.label?.label)return console.log("INVALID tree item, invalid label",n.label),!1;if(n.id!==void 0&&!_e(n.id))return console.log("INVALID tree item, invalid id",n.id),!1;if(n.iconPath!==void 0&&!_e(n.iconPath)&&!y.isUri(n.iconPath)&&(!n.iconPath||!_e(n.iconPath.id))){let o=n.iconPath;if(!o||!_e(o.light)&&!y.isUri(o.light)&&!_e(o.dark)&&!y.isUri(o.dark))return console.log("INVALID tree item, invalid iconPath",n.iconPath),!1}return n.description!==void 0&&!_e(n.description)&&typeof n.description!="boolean"?(console.log("INVALID tree item, invalid description",n.description),!1):n.resourceUri!==void 0&&!y.isUri(n.resourceUri)?(console.log("INVALID tree item, invalid resourceUri",n.resourceUri),!1):n.tooltip!==void 0&&!_e(n.tooltip)&&!(n.tooltip instanceof Bt)?(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&&!_e(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}};os=R([fe],os);var mS=(n=>(n[n.None=0]="None",n[n.Collapsed=1]="Collapsed",n[n.Expanded=2]="Expanded",n))(mS||{}),gS=(e=>(e[e.Unchecked=0]="Unchecked",e[e.Checked=1]="Checked",e))(gS||{}),gc=class{constructor(t){this.value=t}async asString(){return typeof this.value=="string"?this.value:JSON.stringify(this.value)}asFile(){}};gc=R([fe],gc);var Ll=class extends gc{},Ex=class extends Ll{#e;constructor(t){super(""),this.#e=t}asFile(){return this.#e}},wx=class{constructor(t,e,n,o){this.name=t,this.uri=e,this._itemId=n,this._getData=o}data(){return this._getData()}},Xs,bc,$h,Fr=class{constructor(t){cu(this,bc);cu(this,Xs,new Map);for(let[e,n]of t??[]){let o=en(this,Xs).get(nf(this,bc,$h).call(this,e));o?o.push(n):en(this,Xs).set(nf(this,bc,$h).call(this,e),[n])}}get(t){return en(this,Xs).get(nf(this,bc,$h).call(this,t))?.[0]}set(t,e){en(this,Xs).set(nf(this,bc,$h).call(this,t),[e])}forEach(t,e){for(let[n,o]of en(this,Xs))for(let r of o)t.call(e,r,n,this)}*[Symbol.iterator](){for(let[t,e]of en(this,Xs))for(let n of e)yield[t,n]}};Xs=new WeakMap,bc=new WeakSet,$h=function(t){return t.toLowerCase()},Fr=R([fe],Fr);var xp=class{constructor(t,e,n){this.insertText=t,this.title=e,this.kind=n}};xp=R([fe],xp);var yR=(e=>(e[e.Automatic=0]="Automatic",e[e.PasteAs=1]="PasteAs",e))(yR||{}),Hr=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)}};Hr.Empty=new Hr("");Hr.Text=new Hr("text");Hr.TextUpdateImports=Hr.Text.append("updateImports");var kx=class{constructor(t,e,n){this.title=e,this.insertText=t,this.kind=n}},ln=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}};ln=R([fe],ln);ln.File=new ln("file");ln.Folder=new ln("folder");var Zs=class{constructor(t){this.id=t}};Zs=R([fe],Zs);var fS=(n=>(n[n.Global=1]="Global",n[n.Workspace=2]="Workspace",n[n.WorkspaceFolder=3]="WorkspaceFolder",n))(fS||{}),rs=class{get base(){return this._base}set base(t){this._base=t,this._baseUri=y.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||!y.isUri(t)&&!y.isUri(t.uri)))throw Ne("base");if(typeof e!="string")throw Ne("pattern");typeof t=="string"?this.baseUri=y.file(t):y.isUri(t)?this.baseUri=t:this.baseUri=t.uri,this.pattern=e}toJSON(){return{pattern:this.pattern,base:this.base,baseUri:this.baseUri.toJSON()}}};rs=R([fe],rs);var ZH=new WeakMap;function e2(i,t){ZH.set(i,t)}var ea=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=ZH.get(this)??Be()),this._id}};ea=R([fe],ea);var fi=class extends ea{constructor(t,e,n,o,r,s){if(super(e,n,o,r,s),t===null)throw Ne("location");this.location=t}};fi=R([fe],fi);var hi=class extends ea{constructor(t,e,n,o,r,s){super(e,n,o,r,s),this.functionName=t}};hi=R([fe],hi);var fc=class extends ea{constructor(t,e,n,o,r,s,a,l){if(super(o,r,s,a,l),!e)throw Ne("dataId");this.label=t,this.dataId=e,this.canPersist=n}};fc=R([fe],fc);var wl=class{constructor(t,e,n){this.command=t,this.args=e||[],this.options=n}};wl=R([fe],wl);var ta=class{constructor(t,e){this.port=t,this.host=e}};ta=R([fe],ta);var kl=class{constructor(t){this.path=t}};kl=R([fe],kl);var na=class{constructor(t){this.implementation=t}};na=R([fe],na);var kp=class{constructor(t,e,n){this.session=t;this.threadId=e;this.frameId=n}},Pp=class{constructor(t,e){this.session=t;this.threadId=e}},Pl=class{constructor(t,e){this.range=t,this.expression=e}};Pl=R([fe],Pl);var hS=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(hS||{}),vS=(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))(vS||{}),_l=class{constructor(t,e){this.range=t,this.text=e}};_l=R([fe],_l);var Dl=class{constructor(t,e,n=!0){this.range=t,this.variableName=e,this.caseSensitiveLookup=n}};Dl=R([fe],Dl);var Rl=class{constructor(t,e){this.range=t,this.expression=e}};Rl=R([fe],Rl);var Sp=class{constructor(t,e){this.frameId=t,this.stoppedLocation=e}};Sp=R([fe],Sp);var IR=(t=>(t[t.AIGenerated=1]="AIGenerated",t))(IR||{}),bS=(e=>(e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic",e))(bS||{}),Px=class{constructor(t,e){this.newSymbolName=t,this.tags=e}},yS=(n=>(n[n.Changed=1]="Changed",n[n.Created=2]="Created",n[n.Deleted=3]="Deleted",n))(yS||{}),gt=class extends Error{static FileExists(t){return new gt(t,"EntryExists",gt.FileExists)}static FileNotFound(t){return new gt(t,"EntryNotFound",gt.FileNotFound)}static FileNotADirectory(t){return new gt(t,"EntryNotADirectory",gt.FileNotADirectory)}static FileIsADirectory(t){return new gt(t,"EntryIsADirectory",gt.FileIsADirectory)}static NoPermissions(t){return new gt(t,"NoPermissions",gt.NoPermissions)}static Unavailable(t){return new gt(t,"Unavailable",gt.Unavailable)}constructor(t,e="Unknown",n){super(y.isUri(t)?t.toString(!0):t),this.code=n?.name??"Unknown",Jk(this,e),Object.setPrototypeOf(this,gt.prototype),typeof Error.captureStackTrace=="function"&&typeof n=="function"&&Error.captureStackTrace(this,n)}};gt=R([fe],gt);var Cp=class{constructor(t,e,n){this.start=t,this.end=e,this.kind=n}};Cp=R([fe],Cp);var IS=(n=>(n[n.Comment=1]="Comment",n[n.Imports=2]="Imports",n[n.Region=3]="Region",n))(IS||{}),xS=(e=>(e[e.Collapsed=0]="Collapsed",e[e.Expanded=1]="Expanded",e))(xS||{}),xR=(e=>(e[e.Editing=0]="Editing",e[e.Preview=1]="Preview",e))(xR||{}),SR=(e=>(e[e.Published=0]="Published",e[e.Draft=1]="Draft",e))(SR||{}),SS=(e=>(e[e.Unresolved=0]="Unresolved",e[e.Resolved=1]="Resolved",e))(SS||{}),CS=(e=>(e[e.Current=0]="Current",e[e.Outdated=1]="Outdated",e))(CS||{}),TS=(e=>(e[e.Reply=1]="Reply",e[e.Comment=2]="Comment",e))(TS||{}),xc=class{constructor(t,e=[]){this.tokenTypes=t,this.tokenModifiers=e}};function O8(i){return typeof i>"u"||EO(i)}var _x=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(he.isRange(t)&&typeof e=="string"&&O8(n))return this._push(t,e,n);throw Ne()}_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],v=d-r,h=v===0?c-s:c,I=5*a;o[I+0]=v,o[I+1]=h,o[I+2]=u,o[I+3]=m,o[I+4]=g,r=d,s=c}return o}build(t){return this._dataIsSortedAndDeltaEncoded?new vi(new Uint32Array(this._data),t):new vi(i._sortAndDeltaEncode(this._data),t)}},vi=class{constructor(t,e){this.resultId=e,this.data=t}},_p=class{constructor(t,e,n){this.start=t,this.deleteCount=e,this.data=n}},Nl=class{constructor(t,e){this.resultId=e,this.edits=t}},ES=(e=>(e[e.Separate=0]="Separate",e[e.MergeWithParent=1]="MergeWithParent",e))(ES||{}),Dx=class{constructor(t){this.name=t}},CR=(n=>(n[n.Title=1]="Title",n[n.Inline=2]="Inline",n[n.Input=3]="Input",n))(CR||{}),Zi=class{constructor(){}};Zi.Back={iconPath:new ln("arrow-left")},Zi=R([fe],Zi);var wS=(e=>(e[e.Separator=-1]="Separator",e[e.Default=0]="Default",e))(wS||{}),kS=(n=>(n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(kS||{}),PS=(e=>(e[e.UI=1]="UI",e[e.Workspace=2]="Workspace",e))(PS||{}),Sc=class{static validate(t){if(typeof t.badge=="string"){let e=yk(t.badge,0);if(e<t.badge.length&&(e+=yk(t.badge,e)),t.badge.length>e)throw new Error("The 'badge'-property must be undefined or a short character")}else if(t.badge&&!ln.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}},hc=class{constructor(t){this.kind=t}};hc=R([fe],hc);var _S=(o=>(o[o.Light=1]="Light",o[o.Dark=2]="Dark",o[o.HighContrast=3]="HighContrast",o[o.HighContrastLight=4]="HighContrastLight",o))(_S||{}),Rx=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},TR=(n=>(n[n.Idle=1]="Idle",n[n.Pending=2]="Pending",n[n.Executing=3]="Executing",n))(TR||{}),DS=(e=>(e[e.Left=1]="Left",e[e.Right=2]="Right",e))(DS||{}),RS=(o=>(o[o.Default=0]="Default",o[o.InCenter=1]="InCenter",o[o.InCenterIfOutsideViewport=2]="InCenterIfOutsideViewport",o[o.AtTop=3]="AtTop",o))(RS||{}),Mx=class{constructor(t,e){this.text=t;this.alignment=e}},ER=(e=>(e[e.Default=1]="Default",e[e.Preferred=2]="Preferred",e))(ER||{}),MS=(n=>(n[n.Default=1]="Default",n[n.Preferred=2]="Preferred",n[n.Hidden=-1]="Hidden",n))(MS||{}),Dp=class{constructor(t,e=[]){this.uri=t;this.provides=hn(e)}},Ax=class{constructor(t){this.label=t}},AS=(e=>(e[e.Named=1]="Named",e[e.Indexed=2]="Indexed",e))(AS||{}),Tp=class{constructor(t,e){this.label=t;this.timestamp=e}};Tp=R([fe],Tp);var OS=(n=>(n[n.Production=1]="Production",n[n.Development=2]="Development",n[n.Test=3]="Test",n))(OS||{}),LS=(e=>(e[e.Node=1]="Node",e[e.Webworker=2]="Webworker",e))(LS||{}),Gh=(o=>(o[o.Other=0]="Other",o[o.Comment=1]="Comment",o[o.String=2]="String",o[o.RegEx=3]="RegEx",o))(Gh||{}),wR=(r=>(r[r.None=0]="None",r[r.Italic=1]="Italic",r[r.Bold=2]="Bold",r[r.Underline=4]="Underline",r[r.Strikethrough=8]="Strikethrough",r))(wR||{}),Ox=class{constructor(t,e){this.ranges=t;this.wordPattern=e}},Lx=class{constructor(t){this._autoForwardAction=t}get autoForwardAction(){return this._autoForwardAction}},kR=(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))(kR||{}),NS=(n=>(n[n.Run=1]="Run",n[n.Debug=2]="Debug",n[n.Coverage=3]="Coverage",n))(NS||{}),Rp=class{constructor(t,e,n){this.controllerId=t;this.profileId=e;this.kind=n}},Ml=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}};Ml=R([fe],Ml);var is=class{constructor(t){this.message=t}static diff(t,e,n){let o=new is(t);return o.expectedOutput=e,o.actualOutput=n,o}};is=R([fe],is);var oa=class{constructor(t){this.id=t}};oa=R([fe],oa);var Nx=class{constructor(t,e,n){this.label=t;this.uri=e;this.position=n}},yc=class{constructor(t,e){this.covered=t;this.total=e;jh(this)}};function jh(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 ra=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 yc(0,0),o=new yc(0,0),r=new yc(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}},Mp=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}},Ap=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}},Op=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}},PR=(o=>(o[o.None=0]="None",o[o.Option=1]="Option",o[o.Default=2]="Default",o[o.Preferred=3]="Preferred",o))(PR||{}),_R=(n=>(n[n.Untrusted=0]="Untrusted",n[n.Trusted=1]="Trusted",n[n.Unspecified=2]="Unspecified",n))(_R||{}),DR=(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))(DR||{}),Ul=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}},Fl=class{constructor(t){this.uri=t}},ia=class{constructor(t,e){this.original=t;this.modified=e}},Lp=class{constructor(t,e,n,o){this.base=t;this.input1=e;this.input2=n;this.result=o}},Hl=class{constructor(t,e){this.uri=t;this.viewType=e}},Np=class{constructor(t){this.viewType=t}},Vl=class{constructor(t,e){this.uri=t;this.notebookType=e}},Bl=class{constructor(t,e,n){this.original=t;this.modified=e;this.notebookType=n}},Up=class{constructor(){}},Fp=class{constructor(t,e){this.uri=t;this.inputBoxUri=e}},Hp=class{constructor(){}},Vp=class{constructor(t){this.textDiffs=t}},RR=(e=>(e[e.Down=0]="Down",e[e.Up=1]="Up",e))(RR||{}),MR=(e=>(e[e.Action=1]="Action",e[e.Toolbar=2]="Toolbar",e))(MR||{}),AR=(n=>(n[n.Short=1]="Short",n[n.Medium=2]="Medium",n[n.Full=3]="Full",n))(AR||{}),Ux=class{constructor(t,e,n){this.id=t,this.label=e,this.values=n}},US=(n=>(n[n.Accepted=1]="Accepted",n[n.Rejected=2]="Rejected",n[n.Saved=3]="Saved",n))(US||{}),OR=(n=>(n[n.Keep=1]="Keep",n[n.Undo=2]="Undo",n[n.UserModification=3]="UserModification",n))(OR||{}),LR=(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))(LR||{}),FS=(e=>(e[e.Unhelpful=0]="Unhelpful",e[e.Helpful=1]="Helpful",e))(FS||{}),sa=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 Bt(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 Bt(t):t,this.vulnerabilities=e}},aa=class{constructor(t,e,n,o){this.title=t,this.message=e,this.data=n,this.buttons=o}},la=class{constructor(t,e){this.value=t,this.baseUri=e}},Cc=class{constructor(t,e,n){this.value=t,this.title=e,this.readOnly=n}},Fx=class{constructor(t,e){this.data=t,this.mimeType=e}},Bp=class{constructor(t,e,n,o){this.description=t,this.agentName=e,this.prompt=n,this.result=o}},Tc=class{constructor(t,e){this.uris=t;this.callback=e;this.applied=new Promise(n=>{this.didGetApplied=n})}},ls=class{constructor(t,e){this.value=t,this.value2=t,this.title=e}},Ec=class{constructor(t){this.value=t}},Wl=class{constructor(t,e){this.value=t,this.task=e}},bi=class{constructor(t,e,n){this.value=t,this.id=e,this.metadata=n}},da=class{constructor(t,e,n,o){this.hookType=t,this.stopReason=e,this.systemMessage=n,this.metadata=o}},$l=class{constructor(t,e){this.id=t,this.value=e}},ds=class{constructor(t,e,n,o){this.resolvedModel=t,this.resolvedModelName=e,this.predictedLabel=n,this.confidence=o}},cs=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 Bt(t):t}},ca=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 Bt(t):t}},ua=class{constructor(t){this.value=t}},Vr=class{constructor(t,e,n){this.value=t,this.iconPath=e,this.options=n}},pa=class{constructor(t,e,n){this.value=t,this.isEdit=e,this.undoStopId=n}},ma=class{constructor(t,e,n){this.value=t,this.license=e,this.snippet=n}},ga=class{constructor(t,e){this.uri=t;this.range=e}},zl=class{constructor(t){this.extensions=t}},ql=class{constructor(t,e,n,o,r){this.title=e;this.description=n;this.author=o;this.linkTag=r;ja(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}}},HS=(n=>(n[n.Text=1]="Text",n[n.SingleSelect=2]="SingleSelect",n[n.MultiSelect=3]="MultiSelect",n))(HS||{}),Wp=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}},us=class{constructor(t,e=!0){this.questions=t,this.allowSkip=e}},ps=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},fa=class{constructor(t,e){this.uri=t,e===!0?(this.isDone=!0,this.edits=[]):this.edits=Array.isArray(e)?e:[e]}},Kl=class{constructor(t){this.edits=t}},VS=(n=>(n[n.NotStarted=1]="NotStarted",n[n.InProgress=2]="InProgress",n[n.Completed=3]="Completed",n))(VS||{}),BS=(n=>(n[n.Running=0]="Running",n[n.Completed=1]="Completed",n[n.Failed=2]="Failed",n))(BS||{}),wc=class{constructor(t,e,n){this.toolName=t,this.toolCallId=e,this.errorMessage=n}},ms=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}},$p=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},Hx=class{constructor(t,e,n,o){this.response=t;this.result=e;this.participant=n;this.command=o}},WS=(o=>(o[o.Panel=1]="Panel",o[o.Terminal=2]="Terminal",o[o.Notebook=3]="Notebook",o[o.Editor=4]="Editor",o))(WS||{}),NR=(o=>(o[o.Failed=0]="Failed",o[o.Completed=1]="Completed",o[o.InProgress=2]="InProgress",o[o.NeedsInput=3]="NeedsInput",o))(NR||{}),Br=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")}},UR=(o=>(o[o.Trace=0]="Trace",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error",o))(UR||{}),$S=(e=>(e[e.Success=0]="Success",e[e.Error=1]="Error",e))($S||{}),zS=(n=>(n[n.Success=0]="Success",n[n.Error=1]="Error",n[n.NonBlockingError=2]="NonBlockingError",n))(zS||{}),zp=class{constructor(t,e){this._kind="toolCall";this.toolName=t,this.created=e}},qp=class{constructor(t){this._kind="modelTurn";this.created=t}},Kp=class{constructor(t,e,n){this._kind="generic";this.name=t,this.level=e,this.created=n}},Gp=class{constructor(t,e){this._kind="subagentInvocation";this.agentName=t,this.created=e}},kc=class{constructor(t,e){this.name=t,this.content=e}},jp=class{constructor(t,e){this._kind="userMessage";this.message=t,this.created=e,this.sections=[]}},Qp=class{constructor(t,e){this._kind="agentResponse";this.message=t,this.created=e,this.sections=[]}},Vx=class{constructor(t){this._kind="text";this.value=t}},qS=(e=>(e[e.User=0]="User",e[e.Agent=1]="Agent",e))(qS||{}),Bx=class{constructor(t,e,n){this._kind="messageContent";this.type=t,this.message=e,this.sections=n}},Wx=class{constructor(t){this._kind="toolCallContent";this.toolName=t}},$x=class{constructor(t){this._kind="modelTurnContent";this.requestName=t}},zx=class{constructor(t){this._kind="hookContent";this.hookType=t}},qx=class{constructor(t,e,n,o,r){this.uri=t;this.originalUri=e;this.modifiedUri=n;this.insertions=o;this.deletions=r}},FR=(n=>(n[n.Complete=1]="Complete",n[n.Partial=2]="Partial",n[n.Omitted=3]="Omitted",n))(FR||{}),HR=(n=>(n[n.NoReason=0]="NoReason",n[n.FilteredContentRetry=1]="FilteredContentRetry",n[n.CopyrightContentRetry=2]="CopyrightContentRetry",n))(HR||{}),Jp=class{constructor(t,e,n,o){this.editor=t;this.document=e;this.selection=n;this.wholeRange=o}},Yp=class{constructor(t){this.cell=t}},Pc=class{constructor(t,e,n,o,r){this.mimeType=t,this.data=e,this.reference=n,this.isPasted=o,this.isURL=r}},Gl=class{constructor(t){this.diagnostics=t}},Qh=(n=>(n[n.User=1]="User",n[n.Assistant=2]="Assistant",n[n.System=3]="System",n))(Qh||{}),gs=class{constructor(t,e,n){this.callId=t,this.content=e,this.isError=n??!1}},VR=(n=>(n[n.Info=0]="Info",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(VR||{}),BR=(n=>(n[n.Info=0]="Info",n[n.Warning=1]="Warning",n[n.Error=2]="Error",n))(BR||{}),Xp=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 qt(t)]:this._content=t}get content(){return this._content}},Zp=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 qt(t)]:this._content=t}get content(){return this._content}set content2(t){t&&(this.content=t.map(e=>typeof e=="string"?new qt(e):e))}get content2(){return this.content.map(t=>t instanceof qt?t.value:t)}},Wr=class{constructor(t,e,n){this.callId=t,this.name=e,this.input=n}},KS=(n=>(n[n.Assistant=0]="Assistant",n[n.User=1]="User",n[n.Extension=2]="Extension",n))(KS||{}),qt=class{constructor(t,e){this.value=t,e=e}toJSON(){return{$mid:21,value:this.value,audience:this.audience}}},xn=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(ee.fromString(n).buffer,e)}static text(t,e=Qo.text){return new i(ee.fromString(t).buffer,e)}toJSON(){return{$mid:24,mimeType:this.mimeType,data:jn(ee.wrap(this.data)),audience:this.audience}}},WR=(r=>(r.PNG="image/png",r.JPEG="image/jpeg",r.GIF="image/gif",r.WEBP="image/webp",r.BMP="image/bmp",r))(WR||{}),yi=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}}},$r=class{constructor(t){this.value=t}toJSON(){return{$mid:23,value:this.value}}};var nr=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??""}},jl=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},Kx=class{constructor(t){this.content=t}toJSON(){return{$mid:20,content:this.content}}},Gx=class extends jl{},GS=(e=>(e[e.Auto=1]="Auto",e[e.Required=2]="Required",e))(GS||{}),em=class{constructor(t,e){this.id=t;this.label=e}},tm=class{constructor(t,e,n){this.label=t;this.name=e;this.instructions=n}},$R=(o=>(o[o.SymbolInformation=1]="SymbolInformation",o[o.CommandInformation=2]="CommandInformation",o[o.SearchInformation=3]="SearchInformation",o[o.SettingInformation=4]="SettingInformation",o))($R||{}),zR=(n=>(n[n.EMBEDDED=1]="EMBEDDED",n[n.LLM_RANKED=2]="LLM_RANKED",n[n.CANCELED=3]="CANCELED",n))(zR||{}),qR=(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))(qR||{}),KR=(n=>(n[n.Started=1]="Started",n[n.Stopped=2]="Stopped",n[n.Error=3]="Error",n))(KR||{}),GR=(e=>(e[e.Recognized=1]="Recognized",e[e.Stopped=2]="Stopped",e))(GR||{}),jS=(e=>(e[e.Initial=0]="Initial",e[e.Dynamic=1]="Dynamic",e))(jS||{}),_c=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}},Dc=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 fo;(e=>{function i(n){let{selectionStartLineNumber:o,selectionStartColumn:r,positionLineNumber:s,positionColumn:a}=n,l=new we(o-1,r-1),d=new we(s-1,a-1);return new Fn(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})(fo||={});var B;(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 he(o-1,r-1,s-1,a-1)}e.to=t})(B||={});var zr;(e=>{function i(n){return{uri:n.uri,range:B.from(n.range)}}e.from=i;function t(n){return new zt(y.revive(n.uri),B.to(n.range))}e.to=t})(zr||={});var tM;(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})(tM||={});var nt;(e=>{function i(n){return new we(n.lineNumber-1,n.column-1)}e.to=i;function t(n){return{lineNumber:n.line+1,column:n.character+1}}e.from=t})(nt||={});var fs;(n=>{function i(o,r,s){return ut(hn(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:Ro.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}})(fs||={});var nM;(e=>{function i(n){return n.viewType!==void 0}function t(n,o,r){return i(n)?{viewType:n.viewType}:{uri:fs.from(n.uri,o,r)}}e.from=t})(nM||={});var jR;(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})(jR||={});var ba;(e=>{function i(n){let o;return n.code&&(_e(n.code)||sr(n.code)?o=String(n.code):o={value:String(n.code.value),target:n.code.target}),{...B.from(n.range),message:n.message,source:n.source,code:o,severity:QS.from(n.severity),relatedInformation:n.relatedInformation&&n.relatedInformation.map(QR.from),tags:Array.isArray(n.tags)?ut(n.tags.map(jR.from)):void 0}}e.from=i;function t(n){let o=new Js(B.to(n),n.message,QS.to(n.severity));return o.source=n.source,o.code=_e(n.code)?n.code:n.code?.value,o.relatedInformation=n.relatedInformation&&n.relatedInformation.map(QR.to),o.tags=n.tags&&ut(n.tags.map(jR.to)),o}e.to=t})(ba||={});var QR;(e=>{function i(n){return{...B.from(n.location.range),message:n.message,resource:n.location.uri}}e.from=i;function t(n){return new Ji(new zt(n.resource,B.to(n)),n.message)}e.to=t})(QR||={});var QS;(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})(QS||={});var Mt;(e=>{function i(n){return typeof n=="number"&&n>=1?n-1:n===-2?zH:$H}e.from=i;function t(n){if(typeof n=="number"&&n>=0)return n+1;throw new Error("invalid 'EditorGroupColumn'")}e.to=t})(Mt||={});function B8(i){return typeof i.range<"u"}function oM(i){return i.length===0?!0:!!B8(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 Bt.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=y.parse(u,!0);m=m.with({query:n(m.query,d)}),d[u]=m}catch{}return""};return Ft.walkTokens(Ft.lexer(l.value),u=>{u.type==="link"?c({href:u.href}):u.type==="image"&&typeof u.href=="string"&&c(MN(u.href))}),l}s.from=e;function n(a,l){if(!a)return a;let d;try{d=Fy(a)}catch{}if(!d)return a;let c=!1;return d=oi(d,u=>{if(y.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 Bt(a.value,a.supportThemeIcons);return l.isTrusted=a.isTrusted,l.supportHtml=a.supportHtml,l.supportAlertSyntax=a.supportAlertSyntax,l.baseUri=a.baseUri?y.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 t2(i){return oM(i)?i.map(t=>({range:B.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:B.from(t)}))}function ov(i){return typeof i>"u"?i:typeof i=="string"?y.file(i):i}var Jh;(t=>{function i(e){return typeof e>"u"?e:{contentText:e.contentText,contentIconPath:e.contentIconPath?ov(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})(Jh||={});var JR;(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?ov(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?Jh.from(e.before):void 0,after:e.after?Jh.from(e.after):void 0}}t.from=i})(JR||={});var n2;(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})(n2||={});var rM;(t=>{function i(e){return{isWholeLine:e.isWholeLine,rangeBehavior:e.rangeBehavior?n2.from(e.rangeBehavior):void 0,overviewRulerLane:e.overviewRulerLane,light:e.light?JR.from(e.light):void 0,dark:e.dark?JR.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?ov(e.gutterIconPath):void 0,gutterIconSize:e.gutterIconSize,overviewRulerColor:e.overviewRulerColor,before:e.before?Jh.from(e.before):void 0,after:e.after?Jh.from(e.after):void 0}}t.from=i})(rM||={});var fn;(e=>{function i(n){return{text:n.newText,eol:n.newEol&&Lc.from(n.newEol),range:B.from(n.range)}}e.from=i;function t(n){let o=new Dn(B.to(n.range),n.text);return o.newEol=typeof n.eol>"u"?void 0:Lc.to(n.eol),o}e.to=t})(fn||={});var oo;(e=>{function i(n,o){let r={edits:[]};if(n instanceof tr){let s=new ir;for(let a of n._allEntries())a._type===1&&y.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:jn(ee.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:fn.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:B.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(Xh.from)}})}return r}e.from=i;function t(n){let o=new tr,r=new Ue;for(let s of n.edits)if(s.textEdit){let a=s,l=y.revive(a.resource),d=B.to(a.textEdit.range),c=a.textEdit.text,u=a.textEdit.insertAsSnippet,m;u?m=Ys.replace(d,new Hn(c)):m=Dn.replace(d,c);let g=r.get(l);g?g.push(m):r.set(l,[m])}else o.renameFile(y.revive(s.oldResource),y.revive(s.newResource),s.options);for(let[s,a]of r)o.set(s,a);return o}e.to=t})(oo||={});var xr;(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})(xr||={});var ha;(e=>{function i(n){if(n===1)return 1}e.from=i;function t(n){if(n===1)return 1}e.to=t})(ha||={});var Ql;(e=>{function i(n){return{name:n.name,kind:xr.from(n.kind),tags:n.tags&&n.tags.map(ha.from),containerName:n.containerName,location:no.from(n.location)}}e.from=i;function t(n){let o=new yr(n.name,xr.to(n.kind),n.containerName,no.to(n.location));return o.tags=n.tags&&n.tags.map(ha.to),o}e.to=t})(Ql||={});var iM;(e=>{function i(n){let o={name:n.name||"!!MISSING: name!!",detail:n.detail,range:B.from(n.range),selectionRange:B.from(n.selectionRange),kind:xr.from(n.kind),tags:n.tags?.map(ha.from)??[]};return n.children&&(o.children=n.children.map(i)),o}e.from=i;function t(n){let o=new Ir(n.name,n.detail,xr.to(n.kind),B.to(n.range),B.to(n.selectionRange));return Ua(n.tags)&&(o.tags=n.tags.map(ha.to)),n.children&&(o.children=n.children.map(t)),o}e.to=t})(iM||={});var ya;(e=>{function i(n){let o=new Ol(xr.to(n.kind),n.name,n.detail||"",y.revive(n.uri),B.to(n.range),B.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:xr.from(n.kind),uri:n.uri,range:B.from(n.range),selectionRange:B.from(n.selectionRange),tags:n.tags?.map(ha.from)}}e.from=t})(ya||={});var sM;(t=>{function i(e){return new Ep(ya.to(e.from),e.fromRanges.map(n=>B.to(n)))}t.to=i})(sM||={});var aM;(t=>{function i(e){return new wp(ya.to(e.to),e.fromRanges.map(n=>B.to(n)))}t.to=i})(aM||={});var no;(e=>{function i(n){return{range:n.range&&B.from(n.range),uri:n.uri}}e.from=i;function t(n){return new zt(y.revive(n.uri),B.to(n.range))}e.to=t})(no||={});var im;(e=>{function i(n){let o=n,r=n;return{originSelectionRange:o.originSelectionRange?B.from(o.originSelectionRange):void 0,uri:o.targetUri?o.targetUri:r.uri,range:B.from(o.targetRange?o.targetRange:r.range),targetSelectionRange:o.targetSelectionRange?B.from(o.targetSelectionRange):void 0}}e.from=i;function t(n){return{targetUri:y.revive(n.uri),targetRange:B.to(n.range),targetSelectionRange:n.targetSelectionRange?B.to(n.targetSelectionRange):void 0,originSelectionRange:n.originSelectionRange?B.to(n.originSelectionRange):void 0}}e.to=t})(im||={});var sm;(e=>{function i(n){return{range:B.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=B.to(n.range),s=n.canIncreaseVerbosity,a=n.canDecreaseVerbosity;return new hl(o,r,s,a)}e.to=t})(sm||={});var lM;(e=>{function i(n){return{range:B.from(n.range),expression:n.expression}}e.from=i;function t(n){return new Pl(B.to(n.range),n.expression)}e.to=t})(lM||={});var rv;(e=>{function i(n){if(n instanceof _l)return{type:"text",range:B.from(n.range),text:n.text};if(n instanceof Dl)return{type:"variable",range:B.from(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};if(n instanceof Rl)return{type:"expression",range:B.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:B.to(n.range),text:n.text};case"variable":return{range:B.to(n.range),variableName:n.variableName,caseSensitiveLookup:n.caseSensitiveLookup};case"expression":return{range:B.to(n.range),expression:n.expression}}}e.to=t})(rv||={});var iv;(e=>{function i(n){return{frameId:n.frameId,stoppedLocation:B.from(n.stoppedLocation)}}e.from=i;function t(n){return new Sp(n.frameId,B.to(n.stoppedLocation))}e.to=t})(iv||={});var Oc;(e=>{function i(n){return{range:B.from(n.range),kind:n.kind}}e.from=i;function t(n){return new vl(B.to(n.range),n.kind)}e.to=t})(Oc||={});var dM;(e=>{function i(n){return{uri:n.uri,highlights:n.highlights.map(Oc.from)}}e.from=i;function t(n){return new bl(y.revive(n.uri),n.highlights.map(Oc.to))}e.to=t})(dM||={});var o2;(t=>{function i(e){switch(e){case 1:return 1;case 2:return 2;case 0:default:return 0}}t.to=i})(o2||={});var cM;(t=>{function i(e){return{triggerKind:o2.to(e.triggerKind),triggerCharacter:e.triggerCharacter}}t.to=i})(cM||={});var JS;(e=>{function i(n){if(n===1)return 1}e.from=i;function t(n){if(n===1)return 1}e.to=t})(JS||={});var uM;(t=>{function i(e,n,o){return"icon"in e&&"command"in e?{command:n.toInternal(e.command,o),icon:Ii.fromThemeIcon(e.icon)}:{command:n.toInternal(e,o)}}t.from=i})(uM||={});var YS;(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})(YS||={});var pM;(t=>{function i(e,n){let o=new Sl(e.label);return o.insertText=e.insertText,o.kind=YS.to(e.kind),o.tags=e.tags?.map(JS.to),o.detail=e.detail,o.documentation=Eo(e.documentation)?ge.to(e.documentation):e.documentation,o.sortText=e.sortText,o.filterText=e.filterText,o.preselect=e.preselect,o.commitCharacters=e.commitCharacters,Fe.isIRange(e.range)?o.range=B.to(e.range):typeof e.range=="object"&&(o.range={inserting:B.to(e.range.insert),replacing:B.to(e.range.replace)}),o.keepWhitespace=typeof e.insertTextRules>"u"?!1:!!(e.insertTextRules&1),typeof e.insertTextRules<"u"&&e.insertTextRules&4?o.insertText=new Hn(e.insertText):(o.insertText=e.insertText,o.textEdit=o.range instanceof he?new Dn(o.range,o.insertText):void 0),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(o.additionalTextEdits=e.additionalTextEdits.map(r=>fn.to(r))),o.command=n&&e.command?n.fromInternal(e.command):void 0,o}t.to=i})(pM||={});var YR;(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:Eo(n.documentation)?ge.to(n.documentation):n.documentation}}e.to=t})(YR||={});var XR;(e=>{function i(n){return{label:n.label,documentation:ge.fromStrict(n.documentation),parameters:Array.isArray(n.parameters)?n.parameters.map(YR.from):[],activeParameter:n.activeParameter}}e.from=i;function t(n){return{label:n.label,documentation:Eo(n.documentation)?ge.to(n.documentation):n.documentation,parameters:Array.isArray(n.parameters)?n.parameters.map(YR.to):[],activeParameter:n.activeParameter}}e.to=t})(XR||={});var am;(e=>{function i(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(XR.from):[]}}e.from=i;function t(n){return{activeSignature:n.activeSignature,activeParameter:n.activeParameter,signatures:Array.isArray(n.signatures)?n.signatures.map(XR.to):[]}}e.to=t})(am||={});var mM;(t=>{function i(e,n){let o=new xl(nt.to(n.position),typeof n.label=="string"?n.label:n.label.map(r2.to.bind(void 0,e)),n.kind&&XS.to(n.kind));return o.textEdits=n.textEdits&&n.textEdits.map(fn.to),o.tooltip=Eo(n.tooltip)?ge.to(n.tooltip):n.tooltip,o.paddingLeft=n.paddingLeft,o.paddingRight=n.paddingRight,o}t.to=i})(mM||={});var r2;(t=>{function i(e,n){let o=new Il(n.label);return o.tooltip=Eo(n.tooltip)?ge.to(n.tooltip):n.tooltip,b_.is(n.command)&&(o.command=e.fromInternal(n.command)),n.location&&(o.location=no.to(n.location)),o}t.to=i})(r2||={});var XS;(e=>{function i(n){return n}e.from=i;function t(n){return n}e.to=t})(XS||={});var Ia;(e=>{function i(n){return{range:B.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"?y.parse(n.url,!0):y.revive(n.url)}catch{}let r=new Cl(B.to(n.range),o);return r.tooltip=n.tooltip,r}e.to=t})(Ia||={});var sv;(e=>{function i(n){let o=new El(n.label);return n.textEdit&&(o.textEdit=fn.to(n.textEdit)),n.additionalTextEdits&&(o.additionalTextEdits=n.additionalTextEdits.map(r=>fn.to(r))),o}e.to=i;function t(n){return{label:n.label,textEdit:n.textEdit?fn.from(n.textEdit):void 0,additionalTextEdits:n.additionalTextEdits?n.additionalTextEdits.map(o=>fn.from(o)):void 0}}e.from=t})(sv||={});var Hc;(e=>{function i(n){return new mi(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})(Hc||={});var gM;(e=>{function i(n){return{range:B.from(n.range)}}e.from=i;function t(n){return new ts(B.to(n.range))}e.to=t})(gM||={});var av;(t=>{function i(e){switch(e){case 2:return 2;case 1:return 1;case 3:case 4:return 3}}t.to=i})(av||={});var Vc;(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})(Vc||={});var Lc;(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})(Lc||={});var ZS;(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})(ZS||={});var lv;(e=>{function i(n){let o={start:n.start+1,end:n.end+1};return n.kind&&(o.kind=ZR.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=ZR.to(n.kind)),o}e.to=t})(lv||={});var ZR;(e=>{function i(n){if(n)switch(n){case 1:return Hs.Comment;case 2:return Hs.Imports;case 3:return Hs.Region}}e.from=i;function t(n){if(n)switch(n.value){case Hs.Comment.value:return 1;case Hs.Imports.value:return 2;case Hs.Region.value:return 3}}e.to=t})(ZR||={});var dv;(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"?B.from(e.selection):void 0,override:typeof e.override=="boolean"?P_.id:void 0}}t.from=i})(dv||={});var Ro;(o=>{function i(r){return r instanceof rs?r.toJSON():typeof r=="string"?r:t(r)||e(r)?new rs(r.baseUri??r.base,r.pattern).toJSON():r}o.from=i;function t(r){let s=r;return s?y.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 rs(y.revive(r.baseUri),r.pattern)}o.to=n})(Ro||={});var fM;(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:Ro.from(n.pattern)??void 0,exclusive:n.exclusive,notebookType:n.notebookType}}}else return}t.from=i})(fM||={});var Sr;(e=>{function i(n){return{start:n.start,end:n.end}}e.from=i;function t(n){return new qn(n.start,n.end)}e.to=t})(Sr||={});var nm;(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})(nm||={});var Yh;(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})(Yh||={});var Jl;(e=>{function i(n){let o={metadata:n.metadata??Object.create(null),cells:[]};for(let r of n.cells)Yi.validate(r),o.cells.push(Xh.from(r));return o}e.from=i;function t(n){let o=new cc(n.cells.map(Xh.to));return Ha(n.metadata)||(o.metadata=n.metadata),o}e.to=t})(Jl||={});var Xh;(e=>{function i(n){return{cellKind:Yh.from(n.kind),language:n.languageId,mime:n.mime,source:n.value,metadata:n.metadata,internalMetadata:nm.from(n.executionSummary??{}),outputs:n.outputs?n.outputs.map(va.from):[]}}e.from=i;function t(n){return new Yi(Yh.to(n.cellKind),n.source,n.language,n.mime,n.outputs?n.outputs.map(va.to):void 0,n.metadata,n.internalMetadata?nm.to(n.internalMetadata):void 0)}e.to=t})(Xh||={});var Nc;(e=>{function i(n){return{mime:n.mime,valueBytes:ee.wrap(n.data)}}e.from=i;function t(n){return new uc(n.valueBytes.buffer,n.mime)}e.to=t})(Nc||={});var va;(e=>{function i(n){return{outputId:n.id,items:n.items.map(Nc.from),metadata:n.metadata}}e.from=i;function t(n){let o=n.items.map(Nc.to);return new Xi(o,n.outputId,n.metadata)}e.to=t})(va||={});var cv;(n=>{function i(o){return e(o)?{include:Ro.from(o.include)??void 0,exclude:Ro.from(o.exclude)??void 0}:Ro.from(o)??void 0}n.from=i;function t(o){return e(o)?{include:Ro.to(o.include),exclude:Ro.to(o.exclude)}:Ro.to(o)}n.to=t;function e(o){let r=o;return r?!Ut(r.include)&&!Ut(r.exclude):!1}})(cv||={});var hM;(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})(hM||={});var vM;(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})(vM||={});var bM;(t=>{function i(e){return{transientOutputs:e?.transientOutputs??!1,transientCellMetadata:e?.transientCellMetadata??{},transientDocumentMetadata:e?.transientDocumentMetadata??{},cellContentMetadata:e?.cellContentMetadata??{}}}t.from=i})(bM||={});var eC;(e=>{function i(n){return{uri:n.uri,provides:n.provides}}e.from=i;function t(n){return new Dp(y.revive(n.uri),n.provides)}e.to=t})(eC||={});var lm;(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:B.from(n.location.range),uri:n.location.uri},stackTrace:n.stackTrace?.map(o=>({label:o.label,position:o.position&&nt.from(o.position),uri:o.uri&&y.revive(o.uri).toJSON()}))}}e.from=i;function t(n){let o=new is(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?no.to(n.location):void 0,o}e.to=t})(lm||={});var qr;(e=>(e.namespace=mp,e.denamespace=px))(qr||={});var yM;(t=>{function i(e){return{controllerId:e.controllerId,profileId:e.profileId,group:dm.from(e.kind)}}t.from=i})(yM||={});var dm;(e=>{let i={3:8,2:4,1:2};function t(n){return i.hasOwnProperty(n)?i[n]:2}e.from=t})(dm||={});var hs;(e=>{function i(n){let o=gp(n).controllerId;return{extId:Ke.fromExtHostTestItem(n,o).toString(),label:n.label,uri:y.revive(n.uri),busy:n.busy,tags:n.tags.map(r=>qr.namespace(o,r.id)),range:Fe.lift(B.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:Ke.fromString(n.extId).localId,label:n.label,uri:y.revive(n.uri),tags:(n.tags||[]).map(o=>{let{tagId:r}=qr.denamespace(o);return new oa(r)}),children:{add:()=>{},delete:()=>{},forEach:()=>{},*[Symbol.iterator](){},get:()=>{},replace:()=>{},size:0},range:B.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 oa(n.id)}e.to=t})(qr||={});var IM;(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(lm.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 By;for(let a of n.items)o.insert(Ke.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(Io)}}e.to=t})(IM||={});var uv;(s=>{function i(a){return{covered:a.covered,total:a.total}}function t(a){return"line"in a?nt.from(a):B.from(a)}function e(a){if(a)return"endLineNumber"in a?B.to(a):nt.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 Mp(a.count,e(a.location),a.branches?.map(d=>new Ap(d.count,e(d.location),d.label)))}else return new Op(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 jh(d.statementCoverage),jh(d.branchCoverage),jh(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 ra&&d.includesTests.length?d.includesTests.map(c=>Ke.fromExtHostTestItem(c,a).toString()):void 0}}s.fromFile=r})(uv||={});var xM;(t=>{function i(e){switch(e){case 1:return 1;case 2:return 2}}t.to=i})(xM||={});var xa;(e=>{function i(n){let o=new Ul(xr.to(n.kind),n.name,n.detail||"",y.revive(n.uri),B.to(n.range),B.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:xr.from(n.kind),name:n.name,detail:n.detail??"",uri:n.uri,range:B.from(n.range),selectionRange:B.from(n.selectionRange),tags:n.tags?.map(ha.from)}}e.from=t})(xa||={});var pv;(t=>{function i(e){if(e)return{value:e.value,tooltip:e.tooltip}}t.from=i})(pv||={});var Ac;(o=>{function i(r,s,a){let l=s.fileData;return l?new Ex(new wx(l.name,y.revive(l.uri),l.id,gu(()=>a(l.id)))):r===Qo.uriList&&s.uriListData?new Ll(n(s.uriListData)):new Ll(s.asString)}o.to=i;async function t(r,s,a=Be()){let l=await s.asString();if(r===Qo.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 My.split(r).map(s=>{if(s.startsWith("#"))return s;try{return y.parse(s)}catch{}return s})}function n(r){return My.create(r.map(s=>typeof s=="string"?s:y.revive(s)))}})(Ac||={});var Bc;(n=>{function i(o,r){let s=o.items.map(([a,l])=>[a,Ac.to(a,l,r)]);return new Fr(s)}n.toDataTransfer=i;async function t(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await Ac.from(s,a)]))}}n.from=t;async function e(o){return{items:await Promise.all(Array.from(o,async([s,a])=>[s,await Ac.from(s,a,a.id)]))}}n.fromList=e})(Bc||={});var tC;(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})(tC||={});var Zh;(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})(Zh||={});var W8;(e=>{function i(n){let o=n.content.map(a=>{if(a.type==="text")return new qt(a.value,a.audience);if(a.type==="tool_result"){let l=ut(a.value.map(d=>d.type==="text"?new qt(d.value,d.audience):d.type==="data"?new xn(d.data.buffer,d.mimeType):d.type==="prompt_tsx"?new $r(d.value):void 0));return new gs(a.toolCallId,l,a.isError)}else{if(a.type==="image_url")return new xn(a.value.data.buffer,a.value.mimeType);if(a.type==="data")return new xn(a.data.buffer,a.mimeType);if(a.type==="tool_use")return new Wr(a.toolCallId,a.name,a.parameters)}}).filter(a=>a!==void 0),r=Zh.to(n.role);return new Xp(r,o,n.name)}e.to=i;function t(n){let o=Zh.from(n.role),r=n.name,s=n.content;typeof s=="string"&&(s=[new qt(s)]);let a=s.map(l=>{if(l instanceof gs)return{type:"tool_result",toolCallId:l.callId,value:ut(l.content.map(d=>d instanceof qt?{type:"text",value:d.value,audience:d.audience}:d instanceof $r?{type:"prompt_tsx",value:d.value}:d instanceof xn?{type:"data",mimeType:d.mimeType,data:ee.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof xn)return i2(l)?{type:"image_url",value:{mimeType:l.mimeType,data:ee.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:ee.wrap(l.data),audience:l.audience};if(l instanceof Wr)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof qt)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})(W8||={});var nC;(e=>{function i(n){let o=n.content.map(a=>{if(a.type==="text")return new qt(a.value,a.audience);if(a.type==="tool_result"){let l=a.value.map(d=>d.type==="text"?new qt(d.value,d.audience):d.type==="data"?new xn(d.data.buffer,d.mimeType):new $r(d.value));return new gs(a.toolCallId,l,a.isError)}else return a.type==="image_url"?new xn(a.value.data.buffer,a.value.mimeType):a.type==="data"?new xn(a.data.buffer,a.mimeType):a.type==="thinking"?new yi(a.value,a.id,a.metadata):new Wr(a.toolCallId,a.name,a.parameters)}),r=Zh.to(n.role);return new Zp(r,o,n.name)}e.to=i;function t(n){let o=Zh.from(n.role),r=n.name,s=n.content;typeof s=="string"&&(s=[new qt(s)]);let a=s.map(l=>{if(l instanceof gs)return{type:"tool_result",toolCallId:l.callId,value:ut(l.content.map(d=>d instanceof qt?{type:"text",value:d.value,audience:d.audience}:d instanceof $r?{type:"prompt_tsx",value:d.value}:d instanceof xn?{type:"data",mimeType:d.mimeType,data:ee.wrap(d.data),audience:d.audience}:void 0)),isError:l.isError};if(l instanceof xn)return i2(l)?{type:"image_url",value:{mimeType:l.mimeType,data:ee.wrap(l.data)}}:{type:"data",mimeType:l.mimeType,data:ee.wrap(l.data),audience:l.audience};if(l instanceof Wr)return{type:"tool_use",toolCallId:l.callId,name:l.name,parameters:l.input};if(l instanceof qt)return{type:"text",value:l.value};if(l instanceof yi)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})(nC||={});function i2(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 ev;(e=>{function i(n){return{kind:"markdownContent",content:ge.from(n.value)}}e.from=i;function t(n){return new sa(ge.to(n.content))}e.to=t})(ev||={});var oC;(e=>{function i(n){return{kind:"codeblockUri",uri:n.value,isEdit:n.isEdit,undoStopId:n.undoStopId}}e.from=i;function t(n){return new pa(y.revive(n.uri),n.isEdit,n.undoStopId)}e.to=t})(oC||={});var rC;(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})(rC||={});var iC;(t=>{function i(e){return{kind:"confirmation",title:e.title,message:ge.from(e.message),data:e.data,buttons:e.buttons}}t.from=i})(iC||={});var sC;(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 Wp(a.id,t(a.type),a.title,{message:a.message?typeof a.message=="string"?new Bt(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 us(s,r.allowSkip)}o.to=n})(sC||={});var tv;(e=>{function i(n){let{value:o,baseUri:r}=n;function s(a,l){return a.map(d=>{let c=y.joinPath(l,d.name);return{label:d.name,uri:c,children:d.children&&s(d.children,c)}})}return{kind:"treeData",treeData:{label:tt(r),uri:r,children:s(o,r)}}}e.from=i;function t(n){let o=Dt(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 la(a,s)}e.to=t})(tv||={});var s2;(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?y.revive(r.originalUri):void 0,modifiedUri:r.modifiedUri?y.revive(r.modifiedUri):void 0,goToFileUri:r.goToFileUri?y.revive(r.goToFileUri):void 0,added:r.added,removed:r.removed}));return new Cc(o,n.multiDiffData.title,n.readOnly)}e.to=t})(s2||={});var om;(e=>{function i(n){let o=s=>y.isUri(s),r=s=>"name"in s;return{kind:"inlineReference",name:n.title,inlineReference:o(n.value)?n.value:r(n.value)?Ql.from(n.value):zr.from(n.value)}}e.from=i;function t(n){let o=Dt(n);return new ls(y.isUri(o.inlineReference)?o.inlineReference:"location"in o.inlineReference?Ql.to(o.inlineReference):zr.to(o.inlineReference),n.name)}e.to=t})(om||={});var mv;(e=>{function i(n){return{kind:"progressMessage",content:ge.from(n.value)}}e.from=i;function t(n){return new Ec(n.content.value)}e.to=t})(mv||={});var gv;(e=>{function i(n){return{kind:"thinking",value:n.value,id:n.id,metadata:n.metadata}}e.from=i;function t(n){return new bi(n.value??"",n.id,n.metadata)}e.to=t})(gv||={});var aC;(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 da(n.hookType,n.stopReason,n.systemMessage,n.metadata)}e.to=t})(aC||={});var lC;(t=>{function i(e){return{kind:"voiceProgress",id:e.id,value:e.value}}t.from=i})(lC||={});var dC;(n=>{let i=new Set(["needs_reasoning","no_reasoning","fallback"]);function t(o){let r=i.has(o.predictedLabel)?o.predictedLabel:"fallback";return{kind:"autoModeResolution",resolvedModel:o.resolvedModel,resolvedModelName:o.resolvedModelName,predictedLabel:r,confidence:Math.max(0,Math.min(1,o.confidence))}}n.from=t;function e(o){return new ds(o.resolvedModel,o.resolvedModelName,o.predictedLabel,o.confidence)}n.to=e})(dC||={});var fv;(e=>{function i(n){return{kind:"warning",content:ge.from(n.value)}}e.from=i;function t(n){return new cs(n.content.value)}e.to=t})(fv||={});var cC;(e=>{function i(n){return{kind:"info",content:ge.from(n.value)}}e.from=i;function t(n){return new ca(n.content.value)}e.to=t})(cC||={});var a2;(t=>{function i(e){return{kind:"extensions",extensions:e.extensions}}t.from=i})(a2||={});var l2;(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})(l2||={});var d2;(e=>{function i(n){return{kind:"move",uri:n.uri,range:B.from(n.range)}}e.from=i;function t(n){return new ga(y.revive(n.uri),B.to(n.range))}e.to=t})(d2||={});var c2;(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:Qt.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?ee.wrap(u.data).toString():jn(ee.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 zt?zr.from(c):y.revive(c))}:d instanceof Bp?{kind:"subagent",description:d.description,agentName:d.agentName,prompt:d.prompt,result:d.result,modelName:d.modelName}: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 wc(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}})(c2||={});var uC;(t=>{function i(e){return{kind:"progressTask",content:ge.from(e.value)}}t.from=i})(uC||={});var SM;(t=>{function i(e){return{kind:"progressTaskResult",content:typeof e=="string"?ge.from(e):void 0}}t.from=i})(SM||={});var nv;(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 ua(o.fromInternal(n.command)??{command:n.command.id,title:n.command.title})}e.to=t})(nv||={});var pC;(e=>{function i(n){return{kind:"textEdit",uri:n.uri,edits:n.edits.map(o=>fn.from(o)),done:n.isDone}}e.from=i;function t(n){let o=new ps(y.revive(n.uri),n.edits.map(r=>fn.to(r)));return o.isDone=n.done,o}e.to=t})(pC||={});var mC;(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(Xh.from)}}t.from=i})(mC||={});var gC;(t=>{function i(e){return{kind:"notebookEdit",uri:e.uri,edits:e.edits.map(mC.from),done:e.isDone}}t.from=i})(gC||={});var fC;(t=>{function i(e){return{kind:"workspaceEdit",edits:e.edits.map(n=>({oldResource:n.oldResource,newResource:n.newResource}))}}t.from=i})(fC||={});var Uc;(e=>{function i(n){let o=Ye.isThemeIcon(n.iconPath)?n.iconPath:y.isUri(n.iconPath)?{light:y.revive(n.iconPath)}:n.iconPath&&"light"in n.iconPath&&"dark"in n.iconPath&&y.isUri(n.iconPath.light)&&y.isUri(n.iconPath.dark)?{light:y.revive(n.iconPath.light),dark:y.revive(n.iconPath.dark)}:void 0;return typeof n.value=="object"&&"variableName"in n.value?{kind:"reference",reference:{variableName:n.value.variableName,value:y.isUri(n.value.value)||!n.value.value?n.value.value:zr.from(n.value.value)},iconPath:o,options:n.options}:{kind:"reference",reference:y.isUri(n.value)||typeof n.value=="string"?n.value:zr.from(n.value),iconPath:o,options:n.options}}e.from=i;function t(n){let o=Dt(n),r=s=>y.isUri(s)?s:zr.to(s);return new Vr(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})(Uc||={});var hC;(t=>{function i(e){return{kind:"codeCitation",value:e.value,license:e.license,snippet:e.snippet}}t.from=i})(hC||={});var cm;(n=>{function i(o,r,s){return o instanceof sa?ev.from(o):o instanceof ls?om.from(o):o instanceof Vr?Uc.from(o):o instanceof Ec?mv.from(o):o instanceof bi?gv.from(o):o instanceof da?aC.from(o):o instanceof $l?lC.from(o):o instanceof la?tv.from(o):o instanceof Cc?s2.from(o):o instanceof ua?nv.from(o,r,s):o instanceof ps?pC.from(o):o instanceof fa?gC.from(o):o instanceof as?rC.from(o):o instanceof pa?oC.from(o):o instanceof cs?fv.from(o):o instanceof ca?cC.from(o):o instanceof aa?iC.from(o):o instanceof us?sC.from(o):o instanceof ma?hC.from(o):o instanceof ga?d2.from(o):o instanceof zl?a2.from(o):o instanceof ql?l2.from(o,r,s):o instanceof wc?c2.from(o):o instanceof Kl?fC.from(o):o instanceof ds?dC.from(o):{kind:"markdownContent",content:ge.from("")}}n.from=i;function t(o,r){switch(o.kind){case"reference":return Uc.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 ev.to(o);case"inlineReference":return om.to(o);case"progressMessage":return;case"treeData":return tv.to(o);case"command":return nv.to(o,r)}}n.toContent=e})(cm||={});var um;(t=>{function i(e,n,o,r,s,a,l,d){let c=[],u=[];for(let v of e.variables.variables)v.kind==="tool"?c.push(v):v.kind==="toolset"?c.push(...v.value):u.push(v);let m=mr.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,isVoiceModeInput:e.isVoiceModeInput,sessionId:m,sessionResource:e.sessionResource,references:u.flatMap(v=>vC.toReferences(v,s,d)),toolReferences:c.map(Fc.to),location:pm.to(e.location),acceptedConfirmationData:e.acceptedConfirmationData,rejectedConfirmationData:e.rejectedConfirmationData,location2:n,toolInvocationToken:Object.freeze({sessionResource:e.sessionResource,workingDirectory:y.revive(e.workingDirectory)}),tools:a,model:o,modelConfiguration:r,editedFileEvents:e.editedFileEvents,modeInstructions:e.modeInstructions?.content,modeInstructions2:Wc.to(e.modeInstructions),permissionLevel:e.permissionLevel,subAgentInvocationId:e.subAgentInvocationId,subAgentName:e.subAgentName,parentRequestId:e.parentRequestId,hasHooksEnabled:e.hasHooksEnabled??!1,hooks:e.hooks?m2.to(e.hooks):void 0,isSystemInitiated:e.isSystemInitiated};return De(l,"chatParticipantPrivate")||(delete g.id,delete g.attempt,delete g.enableCommandDetection,delete g.isParticipantDetected,delete g.isVoiceModeInput,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),De(l,"chatParticipantAdditions")||(delete g.acceptedConfirmationData,delete g.rejectedConfirmationData,delete g.tools),g}t.to=i})(um||={});var pm;(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})(pm||={});var hv;(e=>{function i(n){return n.id}e.from=i;function t(n){switch(n){case"agent":return Br.Agent;case"skill":return Br.Skill;case"instructions":return Br.Instructions;case"prompt":return Br.Prompt;case"hook":return Br.Hook;case"plugins":return Br.Plugins;default:return new Br(n)}}e.to=t})(hv||={});var vC;(e=>{function i(n,o,r){let s=t(n,o,r);if(!s)return[];let a=Yy(n)?n:void 0;if(!a)return[s];let l=IH(a.imageData);return l?[s,{id:`${n.id}-screenshot`,name:`${n.name} screenshot`,value:new Pc(a.imageMimeType??"image/png",()=>Promise.resolve(l))}]:[s]}e.toReferences=i;function t(n,o,r){let s=n.value;if(!s){let l;try{l=JSON.stringify(n)}catch{l=`kind=${n.kind}, id=${n.id}, name=${n.name}`}r.error(`[ChatPromptReference] Ignoring invalid reference in variable: ${l}`);return}if(ja(s))s=y.revive(s);else if(s&&typeof s=="object"&&"uri"in s&&"range"in s&&ja(s.uri))s=zr.to(Dt(s));else if(R_(n)){let l=n.references?.[0]?.reference;s=new Pc(n.mimeType??"image/png",()=>Promise.resolve(new Uint8Array(Object.values(n.value))),l&&y.isUri(l)?l:void 0,n.isPasted,n.isURL)}else if(n.kind==="diagnostic"){let l=n.filterSeverity&&QS.to(n.filterSeverity),d=n.filterUri&&y.revive(n.filterUri).toString();s=new Gl(o.map(([c,u])=>n.filterUri&&c.toString()!==d?[c,[]]:[c,u.filter(m=>!(l&&m.severity>l||n.filterRange&&!Fe.areIntersectingOrTouching(n.filterRange,B.from(m.range))))]).filter(([,c])=>c.length>0))}let a;return(Zf(n)||uU(n))&&n.toolReferences&&(a=CM.to(n.toolReferences)),{id:n.id,name:n.name,range:n.range&&[n.range.start,n.range.endExclusive],toolReferences:a,value:s,modelDescription:n.modelDescription}}e.to=t})(vC||={});var Fc;(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})(Fc||={});var CM;(t=>{function i(e){let n=[];for(let o of e)if(o.kind==="tool")n.push(Fc.to(o));else if(o.kind==="toolset")n.push(...o.value.map(Fc.to));else throw new Error("Invalid tool reference in prompt variables");return n}t.to=i})(CM||={});var Wc;(e=>{function i(n){if(n)return{uri:y.revive(n.uri),name:n.name,content:n.content,toolReferences:CM.to(Dt(n.toolReferences)),allowedSubagents:n.allowedSubagents,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}))??[],allowedSubagents:n.allowedSubagents,metadata:n.metadata,isBuiltin:n.isBuiltin}}e.from=t})(Wc||={});var TM;(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})(TM||={});var mm;(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 oi(o,r=>{if(r.$mid===20)return new jl(oi(r.content,e));if(r.$mid===21)return new qt(r.value);if(r.$mid===22)return new yi(r.value,r.id,r.metadata);if(r.$mid===23)return new $r(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=Gn(r.data).buffer}catch{s=new Uint8Array(0)}else s=new Uint8Array(0);return new xn(s,r.mimeType,r.audience)}})}})(mm||={});var EM;(t=>{function i(e,n,o){if(n.action.kind==="vote")return;let r=mm.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:tC.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:y.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:y.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})(EM||={});var bC;(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})(bC||={});var eM;(t=>{function i(e){return{...e,documentation:ge.fromStrict(e.documentation)}}t.from=i})(eM||={});var wM;(t=>{function i(e,n){return Array.isArray(e)?{items:e.map(o=>eM.from(o))}:{items:e.items.map(o=>eM.from(o)),resourceOptions:e.resourceOptions?u2.from(e.resourceOptions,n):void 0}}t.from=i})(wM||={});var u2;(t=>{function i(e,n){return{...e,pathSeparator:n,cwd:e.cwd,globPattern:Ro.from(e.globPattern)??void 0}}t.from=i})(u2||={});var kM;(t=>{function i(e){return{kind:p2.to(e.kind),acceptedLength:e.acceptedLength}}t.to=i})(kM||={});var p2;(t=>{function i(e){switch(e){case 0:return 1;case 1:return 2;case 2:return 3;default:return 0}}t.to=i})(p2||={});var PM;(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})(PM||={});var _M;(e=>{function i(n){return n===2?2:1}e.from=i;function t(n){return n===2?2:1}e.to=t})(_M||={});var DM;(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})(DM||={});var RM;(t=>{function i(e){return e.type==="mcp"?new tm(e.label,e.serverLabel||e.label,e.instructions):e.type==="extension"?new em(e.extensionId.value,e.label):void 0}t.to=i})(RM||={});var yC;(e=>{function i(n){let o=new jl(n.content.map(r=>r.kind==="text"?new qt(r.value,r.audience):r.kind==="data"?new xn(r.value.data.buffer,r.value.mimeType,r.audience):new $r(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&&M(o,"chatParticipantPrivate");let r=d=>{d.audience&&M(o,"languageModelToolResultAudience")},s=!1,a;Array.isArray(n.toolResultDetails)?a=n.toolResultDetails?.map(d=>y.isUri(d)?d:zr.from(d)):n.toolResultDetails2&&(a={output:{type:"data",mimeType:n.toolResultDetails2.mime,value:ee.wrap(n.toolResultDetails2.value)}},s=!0);let l={content:n.content.map(d=>{if(d instanceof qt)return r(d),{kind:"text",value:d.value,audience:d.audience};if(d instanceof $r)return{kind:"promptTsx",value:d.value};if(d instanceof xn)return r(d),s=!0,{kind:"data",value:{mimeType:d.mimeType,data:ee.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 Vt(l):l}e.from=t})(yC||={});var Ii;(n=>{function i(o){return o}n.fromThemeIcon=i;function t(o){if(o){if(Ye.isThemeIcon(o))return o;if(y.isUri(o))return o;if(typeof o=="string")return y.file(o);if(typeof o=="object"&&o!==null&&"dark"in o){let r=typeof o.dark=="string"?y.file(o.dark):o.dark,s=typeof o.light=="string"?y.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(Ye.isThemeIcon(o))return o;if(ja(o))return y.revive(o);{let r=o;return{light:y.revive(r.light),dark:y.revive(r.dark)}}}else return}n.to=e})(Ii||={});var MM;(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")}}})(MM||={});var gm;(n=>{function i(o){return!!o.uri}function t(o){return ac.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=ac.fromSerialized(o.launch);if(r.type===2)return new Dc(o.label,r.uri,Object.fromEntries(r.headers),o.cacheNonce==="$$NONE"?void 0:o.cacheNonce);{let s=new _c(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=y.file(r.cwd)),s}}n.to=e})(gm||={});var AM;(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})(AM||={});var m2;(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=g2.to(a);l&&s.push(l)}s.length>0&&(n[o]=s)}return n}t.to=i})(m2||={});var g2;(t=>{function i(e){let n=DH(e,Ai);if(n)return{command:n,cwd:e.cwd,env:e.env,timeout:e.timeout}}t.to=i})(g2||={});var Sa;(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})(Sa||={});var or=class{constructor(t,e,n){this.uri=t;this.ranges=e;this.previewText=n}},Yl=class{constructor(t,e,n){this.uri=t;this.text=e;this.lineNumber=n}},$c=class{constructor(t){this.keyword=t}},IC=(n=>(n[n.None=1]="None",n[n.FilesExclude=2]="FilesExclude",n[n.SearchAndFilesExclude=3]="SearchAndFilesExclude",n))(IC||{}),vv=(e=>(e[e.Information=1]="Information",e[e.Warning=2]="Warning",e))(vv||{});var CC=2e4,f2="\u27EA ",h2=" characters skipped \u27EB",$8=(f2.length+h2.length+5)*2,z8=D("searchService");function LM(i){return!!i.rangeLocations&&!!i.previewText}var xC=class{constructor(t,e,n,o){this.rangeLocations=[];this.webviewIndex=o;let r=Array.isArray(e)?e:[e];if(n&&n.matchLines===1&&q8(r)){t=OL(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+$8){let g=f2+(u-l)+h2;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 OM(0,c.startColumn-a,c.endColumn-a)})}this.previewText=s}else{let s=Array.isArray(e)?e[0].startLineNumber:e.startLineNumber,a=sf(e,l=>({preview:new SC(l.startLineNumber-s,l.startColumn,l.endLineNumber-s,l.endColumn),source:l}));this.rangeLocations=Array.isArray(a)?a:[a],this.previewText=t}}};function q8(i){let t=i[0].startLineNumber;for(let e of i)if(e.startLineNumber!==t||e.endLineNumber!==t)return!1;return!0}var SC=class{constructor(t,e,n,o){this.startLineNumber=t,this.startColumn=e,this.endLineNumber=n,this.endColumn=o}},OM=class extends SC{constructor(t,e,n){super(t,e,t,n)}};function v2(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=Rr(o,xt(e)),o=Rr(o,xt(n),!0),o}function TC(i,t){let e=i.ignoreGlobCase?{ignoreCase:!0}:void 0;return i.excludePattern&&br(i.excludePattern,t,e)?!1:i.includePattern||i.usingSearchPaths?i.includePattern&&br(i.includePattern,t,e)?!0:i.usingSearchPaths?!!i.folderQueries&&i.folderQueries.some(n=>{let o=n.folder.fsPath;if(Od(t,o,i.ignoreGlobCase)){let r=Ms(o,t);return!n.includePattern||!!br(n.includePattern,r,e)}else return!1}):!1:!0}function Xl(i,t){let e={...i||{},...t||{}};return Object.keys(e).filter(n=>{let o=e[n];return typeof o=="boolean"&&o})}var fm=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=>li(r,n));let o=t.includePattern;e.includePattern&&(o?o={...o,...e.includePattern}:o=e.includePattern),o&&(this._parsedIncludeExpression=li(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 _r(s)?s.then(a=>a?!1:o()):o()})).then(r=>r.some(s=>!!s))}hasSiblingExcludeClauses(){return this._excludeExpression.reduce((t,e)=>K8(e)||t,!1)}};function K8(i){for(let t in i)if(typeof i[t]!="boolean")return!0;return!1}function b2(i){if(!i)return;let t;return e=>(t||(t=(i()||Promise.resolve([])).then(n=>n?I2(n):{})),t.then(n=>!!n[e]))}function y2(i){if(!i)return;let t;return e=>{if(!t){let n=i();t=n?I2(n):{}}return!!t[e]}}function I2(i){let t={};for(let e of i)t[e]=!0;return t}function EC(i){return i.flatMap(t=>t.patterns.map(e=>t.baseUri?{baseUri:t.baseUri,pattern:e}:e))}var bv={matchLines:100,charsPerLine:1e4};var UM=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var FM=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 UM(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(`${$.vscodeFileResource}://${Ek}`))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=Be();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("module")).default,n=e.createRequire(import.meta.url),o=n("fs"),r=n("vm"),s=y.parse(t).fsPath,a=o.readFileSync(s).toString(),l=e.wrap(a.replace(/^#!.*/,""));return new r.Script(l).runInThisContext().apply(),this._defineCalls.pop()}catch(e){throw e}}},NM=new Map;async function wC(i,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${i}/${t}`:i;if(NM.has(n))return NM.get(n);let o;if(/^\w[\w\d+.-]*:\/\//.test(n))o=n;else{let l=`${e&&(jO||Yw&&eL)?BL:VL}/${n}`;o=ey.asBrowserUri(l).toString(!0)}let r=FM.INSTANCE.load(o);return NM.set(n,r),r}var Iv="utf8",$M="utf8bom",PC="utf16be",_C="utf16le";var kC=[254,255],VM=[255,254],yv=[239,187,191],G8=512,j8=512,Q8=512*8,J8=512*128;var BM=class extends Error{constructor(e,n){super(e);this.decodeStreamErrorKind=n}},WM=class i{constructor(t){this.iconvLiteDecoder=t}static async create(t){let e;if(t!==Iv)e=(await wC("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getDecoder(C2(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 x2(i,t){let e=t.minBytesRequiredForDetection??(t.guessEncoding?Q8:j8);return new Promise((n,o)=>{let r=kb(u=>u.join("")),s=[],a=0,l,d=new Re,c=async()=>{try{let u=await rz({buffer:ee.concat(s),bytesRead:a},t.guessEncoding,t.candidateGuessEncodings);if(u.seemsBinary&&t.acceptTextOnly)throw new BM("Stream is binary but only text is accepted for decoding",1);u.encoding=await t.overwriteEncoding(u.encoding),l=await WM.create(u.encoding);let m=l.write(ee.concat(s).buffer);r.write(m),s.length=0,a=0,n({stream:r,detected:u})}catch(u){d.cancel(),r.destroy(),o(u)}};Ww(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 S2(i,t,e){let o=(await wC("@vscode/iconv-lite-umd","lib/iconv-lite-umd.js")).getEncoder(C2(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 Iv:case $M:return ee.wrap(Uint8Array.from(yv));case PC:return ee.wrap(Uint8Array.from(kC));case _C:return ee.wrap(Uint8Array.from(VM))}let l=o.end();return l&&l.length>0?(r=!0,ee.wrap(l)):null}return r=!0,ee.wrap(o.write(a))}}}function C2(i){return i===$M||i===null?Iv:i}function Y8(i,t){if(!i||t<kC.length)return null;let e=i.readUInt8(0),n=i.readUInt8(1);if(e===kC[0]&&n===kC[1])return PC;if(e===VM[0]&&n===VM[1])return _C;if(t<yv.length)return null;let o=i.readUInt8(2);return e===yv[0]&&n===yv[1]&&o===yv[2]?$M:null}var X8=["ascii","utf-16","utf-32"];async function Z8(i,t){let e=await wC("jschardet","dist/jschardet.min.js"),n=i.slice(0,J8),o=oz(n.buffer);t&&(t=ut(t.map(a=>nz(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<=X8.indexOf(s)?null:tz(r.encoding)}var ez={ibm866:"cp866",big5:"cp950"};function T2(i){return i.replace(/[^a-zA-Z0-9]/g,"").toLowerCase()}function tz(i){let t=T2(i);return ez[t]||t}function nz(i){let t=T2(i),e=iz[t];return e?e.guessableName:void 0}function oz(i){let t="";for(let e=0;e<i.length;e++)t+=String.fromCharCode(i[e]);return t}function rz({buffer:i,bytesRead:t},e,n){let o=Y8(i,t),r=!1;if(o!==PC&&o!==_C&&i){let s=!0,a=!0,l=!1;for(let d=0;d<t&&d<G8;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=_C:a?o=PC:r=!0)}return e&&!r&&!o&&i?Z8(i.slice(0,t),n).then(s=>({seemsBinary:!1,encoding:s})):{seemsBinary:r,encoding:o}}var HM={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}},iz=(()=>{let i={};for(let t in HM)HM[t].guessableName&&(i[t]=HM[t]);return i})();var a1e=D("textFileService");function E2(i){let t=!1;return{read(){return t?null:(t=!0,i)}}}function Sv(i,t,e){return new Vi(n=>RC(n,e)).isEqual(i,t)}function sz(i,t,e){return Sv(i.uri,t.uri,e)?0:ei(i.uri.toString(),t.uri.toString())}function az(i,t,e){return i.index!==t.index?i.index<t.index?-1:1:Sv(i.uri,t.uri,e)?ei(i.name,t.name):ei(i.uri.toString(),t.uri.toString())}function k2(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 mO(o,r,(s,a)=>e(s,a,n))}function RC(i,t){let e=t.getCapabilities(i.scheme);return!(e&&e&1024)}var xv=class i extends _y{constructor(e,n,o,r,s,a,l){super(e,o.map(d=>new Wf(d)),r,s,l);this._name=n;this._isUntitled=a;this._workspaceFolders=[];this._structure=Fo.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((S,w)=>{let P=y.revive(S.uri),A=i._findFolder(o||n,P,r);A?(A.name=S.name,A.index=S.index,m.push(A)):m.push({uri:P,name:S.name,index:w})}):m.push(...l.map(({uri:S,name:w,index:P})=>({uri:y.revive(S),name:w,index:P}))),m.sort((S,w)=>S.index<w.index?-1:1);let v=new i(s,a,m,!!c,d?y.revive(d):null,!!u,S=>RC(S,r)),{added:h,removed:I}=k2(g?g.workspaceFolders:[],v.workspaceFolders,sz,r);return{workspace:v,added:h,removed:I}}static _findFolder(e,n,o){for(let r=0;r<e.folders.length;r++){let s=e.workspaceFolders[r];if(Sv(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=Go(e)),this._structure.findSubstr(e)}resolveWorkspaceFolder(e){return this._structure.get(e)}},hm=class{constructor(t,e,n,o,r){this._onDidChangeWorkspace=new T;this.onDidChangeWorkspace=this._onDidChangeWorkspace.event;this._onDidGrantWorkspaceTrust=new T;this.onDidGrantWorkspaceTrust=this._onDidGrantWorkspaceTrust.event;this._onDidChangeWorkspaceTrustedFolders=new T;this.onDidChangeWorkspaceTrustedFolders=this._onDidChangeWorkspaceTrustedFolders.event;this._activeSearchCallbacks=[];this._trusted=!1;this._editSessionIdentityProviders=new Map;this._providerHandlePool=0;this._onWillCreateEditSessionIdentityEvent=new Oi;this._canonicalUriProviders=new Map;this._logService=o,this._extHostFileSystemInfo=n,this._uriTransformerService=r,this._requestIdProvider=new wy,this._barrier=new Ln,this._proxy=t.getProxy(N.MainThreadWorkspace),this._messageService=t.getProxy(N.MainThreadMessageService),this._telemetryProxy=t.getProxy(N.MainThreadTelemetry);let s=e.workspace;this._confirmedWorkspace=s?new xv(s.id,s.name,[],!!s.transient,s.configuration?y.revive(s.configuration):null,!!s.isUntitled,a=>RC(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?y.from({scheme:$.untitled,path:tt(Go(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=>{y.isUri(c.uri)&&!r.some(u=>Sv(u.uri,c.uri,this._extHostFileSystemInfo))&&r.push({uri:c.uri,name:c.name||Sf(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||Sf(c.uri),index:void 0})));for(let c=0;c<a.length;c++){let u=a[c];if(a.some((m,g)=>g!==c&&Sv(u.uri,m.uri,this._extHostFileSystemInfo)))return!1}a.forEach((c,u)=>c.index=u);let{added:l,removed:d}=k2(s,a,az,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(fN.Error,p(3811,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=y.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=Cf(r.uri,n);return e&&r.name&&(s=`${r.name}/${s}`),s}trySetWorkspaceFolders(t){this._actualWorkspace&&(this._unconfirmedWorkspace=xv.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}=xv.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=ve.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=ve.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 Vn(!0),d=0,c=this._userIgnoreFilesSetting(),u=0,m=!1,g=!1;try{if(s.isCancellationRequested)return m=!0,[];let v=t.type==="include"?[t.value]:t.value??[];if(!Array.isArray(v))throw console.error("Invalid file pattern provided",v),new Error(`Invalid file pattern provided ${JSON.stringify(v)}`);let h=v.map(w=>{let P=w2(e.exclude),A={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:P.length>0?P:void 0,ignoreGlobCase:e.caseInsensitive,_reason:"startFileSearch",shouldGlobSearch:t.type==="include"?void 0:!0},L=DC(Ro.from(w)),V=L?.folder;return t.type==="include"?A.includePattern=L?.pattern:A.filePattern=L?.pattern,{folder:V,options:A}});d=h.length;let I=this._userIgnoreFilesSetting();c=h.every(w=>w.options.disregardIgnoreFiles===!0?!1:w.options.disregardIgnoreFiles===!1?!0:I);let S=await this._findFilesBase(h,s);return u=S.length,m=s.isCancellationRequested,S}catch(v){throw g=!0,m=s.isCancellationRequested,v}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(!ve.isCancellationToken(e)){o=new Re;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=>y.revive(u)):[]))??[])).flat();o?.dispose();let a=new Vi(d=>RC(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=ve.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?DC(Ro.from(m)):void 0,v=e.exclude?w2(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:v},folder:g?.folder}},a=(e?.include?.map(m=>r(m))??[r(void 0)]).filter(m=>!!m),l=new G,d=l.add(new T),c=this.findTextInFilesBase(t,a,(m,g)=>d.fire({result:m,uri:g}),o);return{results:new xu(async m=>{l.add(d.event(g=>{let v=g.result,h=g.uri;LM(v)?m.emitOne(new or(h,v.rangeLocations.map(I=>({previewRange:new he(I.preview.startLineNumber,I.preview.startColumn,I.preview.endLineNumber,I.preview.endColumn),sourceRange:new he(I.source.startLineNumber,I.source.startColumn,I.source.endLineNumber,I.source.endColumn)})),v.previewText)):m.emitOne(new Yl(h,v.text,v.lineNumber))})),await c}),complete:c.then(m=>(l.dispose(),{limitHit:m?.limitHit??!1}))}}async findTextInFilesBase(t,e,n,o=ve.None){let r=this._requestIdProvider.getNext(),s=!1;if(o.onCancellationRequested(a=>{s=!0}),this._activeSearchCallbacks[r]=a=>{if(s)return;let l=y.revive(a.resource);a.results.forEach(d=>{let c=Dt(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=ve.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=DC(Ro.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)=>{LM(u)?n({uri:m,preview:{text:u.previewText,matches:sf(u.rangeLocations,g=>new he(g.preview.startLineNumber,g.preview.startColumn,g.preview.endLineNumber,g.preview.endColumn))},ranges:sf(u.rangeLocations,g=>new he(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 y.revive(e)}async saveAs(t){let e=await this._proxy.$save(t,{saveAs:!0});return y.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),Y(()=>{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(y.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(y.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(y.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),Y(()=>{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?.(y.revive(t),e,n);if(r)return r}async $provideCanonicalUri(t,e,n){return this.provideCanonicalUri(y.revive(t),{targetScheme:e},n)}async decode(t,e){let[n,o]=this.toEncodeDecodeParameters(e),r=await this._proxy.$resolveDecoding(n,o),s=(await x2(UO(ee.wrap(t)),{...r,acceptTextOnly:!0,overwriteEncoding:a=>a===null||a===r.preferredEncoding?Promise.resolve(r.preferredEncoding):this._proxy.$validateDetectedEncoding(n,a,o)})).stream;return Pb(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===Iv&&!s)return ee.fromString(t).buffer;let a=await S2(E2(t),r,{addBOM:s});return NO(a).buffer}toEncodeDecodeParameters(t){let e=ja(t?.uri)?t.uri:void 0,n=typeof t?.encoding=="string"?t.encoding:void 0;return[e,n?{encoding:n}:void 0]}};hm=R([C(0,me),C(1,at),C(2,Ar),C(3,ie),C(4,nl)],hm);var ro=D("IExtHostWorkspace");function DC(i){let t,e;if(i)return typeof i=="string"?t=i:(t=i.pattern,e=y.revive(i.baseUri)),{pattern:t,folder:e}}function w2(i){return(i?.map(t=>{if(typeof t=="string")return t===""?void 0:{pattern:t,uri:void 0};{let e=DC(t);return e?{pattern:e.pattern,uri:e.folder}:void 0}})??[]).filter(t=>!!t)}function Cv(i){return Object.isFrozen(i)?i:Hf(i)}var ed=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 zM("",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?sh(this.contents,t):this.contents}inspect(t,e){let n=this;return{get value(){return Cv(n.rawConfiguration.getValue(t))},get override(){return e?Cv(n.rawConfiguration.getOverrideValue(t,e)):void 0},get merged(){return Cv(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?Cv(o):void 0}}}getOverrideValue(t,e){let n=this.getContentsForOverrideIdentifer(e);return n?t?sh(n,t):n:void 0}getKeysForOverrideIdentifier(t){let e=[];for(let n of this.overrides)n.identifiers.includes(t)&&e.push(...n.keys);return No(e)}getAllOverrideIdentifiers(){let t=[];for(let e of this.overrides)t.push(...e.identifiers);return No(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=xt(this.contents),n=xt(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=>Jt(d.identifiers,a.identifiers));l?(this.mergeContents(l.contents,a.contents),l.keys.push(...a.keys),l.keys=No(l.keys)):n.push(xt(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 No([...Object.keys(this.contents),...Object.keys(e)])){let r=this.contents[o],s=e[o];s&&(typeof r=="object"&&typeof s=="object"?(r=xt(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]=xt(e[n])}}getContentsForOverrideIdentifer(t){let e=null,n=null,o=r=>{r&&(n?this.mergeContents(n,r):n=xt(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),FU(this.contents,t),Nr.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>Jt(n.identifiers,qu(t))),1))}updateValue(t,e,n){if(G_(this.contents,t,e,o=>this.logService.error(o)),n=n||this.keys.indexOf(t)===-1,n&&this.keys.push(t),Nr.test(t)){let o=this.contents[t],r=qu(t),s={identifiers:r,keys:Object.keys(o),contents:sI(o,l=>this.logService.error(l))},a=this.overrides.findIndex(l=>Jt(l.identifiers,r));a!==-1?this.overrides[a]=s:this.overrides.push(s)}}},zM=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||ed.createEmptyModel(this.logService)}get restrictedConfigurations(){return this._restrictedConfigurations}get errors(){return this._parseErrors}parse(t,e){if(!Ut(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 ed(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{UD(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=mt.as(Xo.Configuration),o=n.getConfigurationProperties(),r=n.getExcludedConfigurationProperties(),s=this.filter(t,o,r,!0,e);t=s.raw;let a=sI(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(Nr.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(Nr.test(o)){let r={},s=t[o];for(let a in s)r[a]=s[a];n.push({identifiers:qu(o),keys:Object.keys(r),contents:sI(r,e)})}return n}};var qM=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 Cv(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)}},vm=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 Ue;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=ed.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 qM(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}=Zl(this._defaultConfiguration,t);e=[...o,...r,...s]}for(let o of e)for(let r of qu(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=>!ht(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}=Zl(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}=Zl(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}=Zl(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}=Zl(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}=Zl(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}=Zl(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}=Zl(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 ed(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(y.revive(u[0]),this.parseConfigurationModel(u[1],e)),c),new Ue);return new i(n,o,r,s,a,l,d,ed.createEmptyModel(e),new Ue,e)}static parseConfigurationModel(t,e){return new ed(t.contents,t.keys,t.overrides,t.raw,e)}};var MC=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=vm.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!ht(a,l)}return!0}};function Zl(i,t){let{added:e,removed:n,updated:o}=P2(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=P2({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 P2(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=sh(t.contents,r),a=sh(i.contents,r);ht(s,a)||o.push(r)}}return{added:e,removed:n,updated:o}}function AC(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 dz(i){return i instanceof y}function cz(i){return st(i)&&i.uri instanceof y&&!!i.languageId&&typeof i.languageId=="string"}function uz(i){return st(i)&&!i.uri&&!!i.languageId&&typeof i.languageId=="string"}function pz(i){return st(i)&&i.uri instanceof y&&(!i.name||typeof i.name=="string")&&(!i.index||typeof i.index=="number")}function _2(i){if(dz(i))return{resource:i};if(cz(i))return{resource:i.uri,overrideIdentifier:i.languageId};if(uz(i))return{overrideIdentifier:i.languageId};if(pz(i))return{resource:i.uri};if(i===null)return{resource:null}}var bm=class{constructor(t,e,n){this._proxy=t.getProxy(N.MainThreadConfiguration),this._extHostWorkspace=e,this._logService=n,this._barrier=new Ln,this._actual=null}getConfigProvider(){return this._barrier.wait().then(t=>this._actual)}$initializeConfiguration(t){this._actual=new KM(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))}};bm=R([C(0,me),C(1,ro),C(2,ie)],bm);var KM=class{constructor(t,e,n,o){this._onDidChangeConfiguration=new T;this._proxy=t,this._logService=o,this._extHostWorkspace=e,this._configuration=vm.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=vm.parse(t,this._logService),this._configurationScopes=this._toMap(t.configurationScopes),this._onDidChangeConfiguration.fire(this._toConfigurationChangeEvent(e,n))}getConfiguration(t,e,n){let o=_2(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 AC(r,l)<"u"},get:(l,d)=>{this._validateConfigurationAccess(t?`${t}.${l}`:l,o,n?.identifier);let c=AC(r,l);if(typeof c>"u")c=d;else{let u,m=(g,v)=>{if(st(g)){let h,I=()=>{u=u||xt(r),h=h||AC(u,v)};return new Proxy(g,{get:(S,w)=>{if(typeof w=="string"&&w.toLowerCase()==="tojson")return I(),()=>h;if(u)return h=h||AC(u,v),h[w];let P=S[w];return typeof w=="string"?m(P,`${v}.${w}`):P},set:(S,w,P)=>(I(),h&&(h[w]=P),!0),deleteProperty:(S,w)=>(I(),h&&delete h[w],!0),defineProperty:(S,w,P)=>(I(),h&&Object.defineProperty(h,w,P),!0)})}return Array.isArray(g)?xt(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:xt(d.policy?.value??d.default?.value),globalLocalValue:xt(d.userLocal?.value),globalRemoteValue:xt(d.userRemote?.value),globalValue:xt(d.user?.value??d.application?.value),workspaceValue:xt(d.workspace?.value),workspaceFolderValue:xt(d.workspaceFolder?.value),defaultLanguageValue:xt(d.default?.override),globalLocalLanguageValue:xt(d.userLocal?.override),globalRemoteLanguageValue:xt(d.userRemote?.override),globalLanguageValue:xt(d.user?.override??d.application?.override),workspaceLanguageValue:xt(d.workspace?.override),workspaceFolderLanguageValue:xt(d.workspaceFolder?.override),languageIds:xt(d.overrideIdentifiers)}}};return typeof r=="object"&&Rr(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=Nr.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 MC(t,e,this._configuration,this._extHostWorkspace.workspace,this._logService);return Object.freeze({affectsConfiguration:(o,r)=>n.affectsConfiguration(o,_2(r))})}_toMap(t){return t.reduce((e,n)=>(e.set(n[0],n[1]),e),new Map)}},Mo=D("IExtHostConfiguration");var GM=class{constructor(t,e){this.versionId=t;this.removedDueToLooping=e}},Ca=class i extends U{constructor(e,n){super();this._activationEventsReader=e;this._onDidChange=this._register(new T);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(mz),this._extensionsMap=new eo,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=D2(this._extensionDescriptions,n),this._extensionDescriptions=this._extensionDescriptions.concat(e);let o=i._findLoopingExtensions(this._extensionDescriptions);return this._extensionDescriptions=D2(this._extensionDescriptions,o.map(r=>r.identifier)),this._initialize(),this._versionId++,this._onDidChange.fire(void 0),new GM(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 eo;for(let l of e)if(o.set(l.identifier,l),l.extensionDependencies)for(let d of l.extensionDependencies)n.addArc(xe.toKey(l.identifier),xe.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 jM(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)}},jM=class{constructor(t,e){this.versionId=t;this.extensions=e}};function mz(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=Ve.basename(i.extensionLocation.path),r=Ve.basename(t.extensionLocation.path);return o<r?-1:o>r?1:0}function D2(i,t){let e=new So(t);return i.filter(n=>!e.has(n.identifier))}var zc=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}},Im=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 zc(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()}},qc=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}},OC=class extends qc{constructor(t){super(!1,null,t,{activate:void 0,deactivate:void 0},void 0,U.None)}},LC=class extends qc{constructor(){super(!1,null,zc.NONE,{activate:void 0,deactivate:void 0},void 0,U.None)}},xm=class extends qc{constructor(t){super(!0,t,zc.NONE,{activate:void 0,deactivate:void 0},void 0,U.None)}},ym=class{constructor(t,e,n,o){this._logService=o;this._registry=t,this._globalRegistry=e,this._host=n,this._operations=new eo,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 xm(r));return this._host.onExtensionActivationError(t.id,r,new vh(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 xm(d));return this._host.onExtensionActivationError(e.identifier,d,new vh(r)),c}return this._createAndSaveOperation(t,e.displayName,n,null)}_createAndSaveOperation(t,e,n,o){let r=new Tv(t.id,e,t.reason,n,o,this._host,this._logService);return this._operations.set(t.id,r),r}_isHostExtension(t){return Ca.isHostExtension(t,this._registry,this._globalRegistry)}_isResolvedExtension(t){let e=this._globalRegistry.getExtensionDescription(t);return e?!e.main&&!e.browser:!1}};ym=R([C(3,ie)],ym);var Tv=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 Ln;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 xm(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 xm(e),this._isDisposed&&En(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)}}};Tv=R([C(6,ie)],Tv);var Sm=class{constructor(t,e){this._logService=e;this._onDidChangeStorage=new T;this.onDidChangeStorage=this._onDidChangeStorage.event;this._proxy=t.getProxy(N.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}`)}}},Cm=D("IExtHostStorage");var Ev=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 Nn(()=>{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 pn;return this._deferredPromises.set(t,o),this._scheduler.isScheduled()||this._scheduler.schedule(),o.p}dispose(){this._storageListener.dispose()}},NC=class extends Ev{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 Vo=class{constructor(t,e){this._fileSystemProvider=new Map;this._writeQueue=new sy;this._proxy=t.getProxy(N.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){Vo._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 Vo._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 Vo._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 Vo._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,ee.wrap(r))}catch(s){return Vo._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 Vo._handleError(s)}},async rename(o,r,s){try{return await n._proxy.$rename(o,r,{overwrite:!1,...s})}catch(a){return Vo._handleError(a)}},async copy(o,r,s){try{return await n._proxy.$copy(o,r,{overwrite:!1,...s})}catch(a){return Vo._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 gt.FileExists(`Unable to create folder '${n.scheme===$.file?n.fsPath:n.toString(!0)}' that already exists but is not a directory`);break}catch(r){if(Ru(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(Ru(s)!=="EntryExists")throw s}}}static _handleError(t){if(t instanceof gt)throw t;if(t instanceof Vf)switch(t.code){case"EntryExists":throw gt.FileExists(t.message);case"EntryNotFound":throw gt.FileNotFound(t.message);case"EntryNotADirectory":throw gt.FileNotADirectory(t.message);case"EntryIsADirectory":throw gt.FileIsADirectory(t.message);case"NoPermissions":throw gt.NoPermissions(t.message);case"Unavailable":throw gt.Unavailable(t.message);default:throw new gt(t.message,t.name)}if(!(t instanceof Error))throw new gt(String(t));if(t.name==="ENOPRO"||t.message.includes("ENOPRO"))throw gt.Unavailable(t.message);switch(t.name){case"EntryExists":throw gt.FileExists(t.message);case"EntryNotFound":throw gt.FileNotFound(t.message);case"EntryNotADirectory":throw gt.FileNotADirectory(t.message);case"EntryIsADirectory":throw gt.FileIsADirectory(t.message);case"NoPermissions":throw gt.NoPermissions(t.message);case"Unavailable":throw gt.Unavailable(t.message);default:throw new gt(t.message,t.name)}}addFileSystemProvider(t,e,n){return this._fileSystemProvider.set(t,{impl:e,extUri:n?.isCaseSensitive?pt:kk,isReadonly:!!n?.isReadonly}),Y(()=>this._fileSystemProvider.delete(t))}getFileSystemProviderExtUri(t){return this._fileSystemProvider.get(t)?.extUri??pt}};Vo=R([C(0,me),C(1,Ar)],Vo);var td=D("IExtHostConsumerFileSystem");var Em=D("IExtensionStoragePaths"),Tm=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 y.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(y.joinPath(e,"meta.json"),new TextEncoder().encode(JSON.stringify({id:this._workspace.id,configuration:y.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 y.joinPath(this._value,t.identifier.value)}globalValue(t){return y.joinPath(this._environment.globalStorageHome,t.identifier.value.toLowerCase())}onWillDeactivateAll(){}};Tm=R([C(0,at),C(1,ie),C(2,td)],Tm);var ZOe=D("tunnelService"),eLe=D("sharedTunnelsService");function gz(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 QM=["localhost","127.0.0.1","0:0:0:0:0:0:0:1","::1"];function R2(i){return QM.indexOf(i)>=0}var JM=["0.0.0.0","0:0:0:0:0:0:0:0","::"];function M2(i){return JM.indexOf(i)>=0}var FC=class{constructor(t,e,n){this.remoteAddress=t;this.localAddress=e;this._dispose=n;this._onDispose=new T;this.onDidDispose=this._onDispose.event}dispose(){return this._onDispose.fire(),this._onDispose.dispose(),this._dispose()}},UC=class extends U{constructor(e,n){super();this.logService=e;this.configurationService=n;this._onTunnelOpened=this._register(new T);this.onTunnelOpened=this._onTunnelOpened.event;this._onTunnelClosed=this._register(new T);this.onTunnelClosed=this._onTunnelClosed.event;this._onAddedTunnelProvider=this._register(new T);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){(M2(e)||R2(e))&&(e=QM[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];R2(e)?(o.push(...QM),o.push(...JM)):M2(e)&&o.push(...JM);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!!gz(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}};UC=R([C(0,ie),C(1,sn)],UC);var YM=class extends FC{},A2;(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})(A2||={});var km=D("IExtHostTunnelService"),wm=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 T);this.onDidChangeTunnels=this._onDidChangeTunnels.event;this._providerHandleCounter=0;this._portAttributesProviders=new Map;this._proxy=e.getProxy(N.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 YM(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 Ie(()=>{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,ve.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(Y(()=>{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(3809,null),themeIcon:"lock"},{id:"public",label:p(3810,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 Y(()=>{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}),A2.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}};wm=R([C(0,me),C(1,at),C(2,ie)],wm);function O2(i){return[...i.entries()]}function L2(i){return i?[...i.entries()]:[]}var PLe=D("ptyService");var fz={Backend:"workbench.contributions.terminal.processBackend"},XM=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()??""}};mt.add(fz.Backend,new XM);var _Le=D("localPtyService"),DLe=D("terminalLogService");var HC=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=_e(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 Kc=(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))}}}},Pm=(i,t)=>i===t,nd={range:(i,t)=>i===t?!0:!i||!t?!1:i.isEqual(t),label:Pm,description:Pm,sortText:Pm,busy:Pm,error:Pm,canResolveChildren:Pm,tags:(i,t)=>!(i.length!==t.length||i.some(e=>!t.find(n=>e.id===n.id)))},_m=i=>t=>({op:4,update:i(t)}),hz=(i,t)=>({range:(()=>{let e,n=_m(o=>({range:Fe.lift(B.from(o))}));return{enumerable:!0,configurable:!1,get(){return e},set(o){i.listener?.({op:6}),nd.range(e,o)||(e=o,i.listener?.(n(o)))}}})(),label:Kc(i,t,nd.label,_m(e=>({label:e}))),description:Kc(i,void 0,nd.description,_m(e=>({description:e}))),sortText:Kc(i,void 0,nd.sortText,_m(e=>({sortText:e}))),canResolveChildren:Kc(i,!1,nd.canResolveChildren,e=>({op:2,state:e})),busy:Kc(i,!1,nd.busy,_m(e=>({busy:e}))),error:Kc(i,void 0,nd.error,_m(e=>({error:ge.fromStrict(e)||null}))),tags:Kc(i,[],nd.tags,(e,n)=>({op:1,new:e.map(qr.from),old:n.map(qr.from)}))}),vz=i=>{let t=Ke.fromString(i.extId),e=new Ta(t.controllerId,t.localId,i.label,y.revive(i.uri)||void 0);return e.range=B.to(i.range||void 0),e.description=i.description||void 0,e.sortText=i.sortText||void 0,e.tags=i.tags.map(n=>qr.to({id:px(n).tagId})),e},ZM=i=>{let t;for(let e of i.tests){let n=vz(e.item);gp(n).parent=t,t=n}return t},Ta=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=GH(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 Dm?void 0:r.parent}},children:{value:qH(r,gp,i),enumerable:!0,writable:!1},...hz(r,n)})}},Dm=class extends Ta{constructor(e,n){super(e,e,n,void 0);this._isRoot=!0}},VC=class extends fx{constructor(t,e,n){super({controllerId:t,getDocumentVersion:o=>o&&n.getDocument(o)?.version,getApiFor:gp,getChildren:o=>o.children,root:new Dm(t,e),toITestItem:hs.from})}};var Rm=class extends U{constructor(e,n,o){super();this.initData=n;this._onDidChangeTelemetryEnabled=this._register(new T);this.onDidChangeTelemetryEnabled=this._onDidChangeTelemetryEnabled.event;this._onDidChangeTelemetryConfiguration=this._register(new T);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(3807,null,this._inLoggingOnlyMode?" (Not Sent)":""),hidden:!0,group:DF}))}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 wv(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"]=eA(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"]=RF(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}};Rm=R([C(1,at),C(2,ur)],Rm);var wv=class{constructor(t,e,n,o,r,s,a){this._extension=n;this._logger=o;this._inLoggingOnlyMode=r;this._commonProperties=s;this._onDidChangeEnableStates=new T;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=aD(e,[]),this._additionalCommonProperties&&(e=Rr(e,this._additionalCommonProperties)),this._ignoreBuiltinCommonProperties||(e=Rr(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=aD(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 eA(i){let t=Date.now()-new Date(i).getTime();return isNaN(t)?!1:t<1e3*60*60*24}var od=D("IExtHostTelemetry");var Mm=class{constructor(t,e,n){this._commands=new Map;this._apiCommands=new Map;this.#e=t.getProxy(N.MainThreadCommands),this._logService=e,this.#n=n,this.#t=t.getProxy(N.MainThreadTelemetry),this.converter=new tA(this,o=>{let r=this._apiCommands.get(o);return r?.result===ke.Void?r:void 0},e),this._argumentProcessors=[{processArgument(o){return Dt(o)}},{processArgument(o){return oi(o,function(r){if(Fe.isIRange(r))return B.to(r);if(yn.isIPosition(r))return nt.to(r);if(Fe.isIRange(r.range)&&y.isUri(r.uri))return no.to(r);if(r instanceof ee)return r.buffer.buffer.slice(r.buffer.byteOffset,r.buffer.byteOffset+r.buffer.byteLength);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 Ie(()=>{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 Ie(()=>{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=oi(e,function(s){if(s instanceof we)return nt.from(s);if(s instanceof he)return B.from(s);if(s instanceof zt)return no.from(s);if(qn.isNotebookRange(s))return Sr.from(s);if(s instanceof ArrayBuffer)return o=!0,ee.wrap(new Uint8Array(s));if(s instanceof Uint8Array)return o=!0,ee.wrap(s);if(s instanceof ee)return o=!0,s;if(!Array.isArray(s))return s});try{let s=await this.#e.$executeCommand(t,o?new Vt(r):r,n);return Dt(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{Hw(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=Vn.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(En(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(ni(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 ml(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)}};Mm=R([C(0,me),C(1,ie),C(2,od)],Mm);var rr=D("IExtHostCommands"),tA=class{constructor(t,e,n){this._commands=t;this._lookupApiCommand=e;this._logService=n;this.delegatingCommandId=`__vsc${Be()}`;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(Ua(t.arguments)){let r=`${t.command} /${++this._cachIdPool}`;this._cache.set(r,t),e.add(Y(()=>{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]}`)}},ne=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=>y.isUri(t),t=>t)}static{this.Position=new i("position","A position in a text document",t=>we.isPosition(t),nt.from)}static{this.Range=new i("range","A range in a text document",t=>he.isRange(t),B.from)}static{this.Selection=new i("selection","A selection in a text document",t=>Fn.isSelection(t),fo.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 Ol,ya.from)}static{this.TypeHierarchyItem=new i("item","A type hierarchy item",t=>t instanceof Ul,xa.from)}static{this.TestItem=new i("testItem","A VS Code TestItem",t=>t instanceof Ta,hs.from)}static{this.TestProfile=new i("testProfile","A VS Code test profile",t=>t instanceof Rp,yM.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)}},ke=class i{constructor(t,e){this.description=t;this.convert=e}static{this.Void=new i("no result",t=>t)}},Pe=class{constructor(t,e,n,o,r){this.id=t;this.internalId=e;this.description=n;this.args=o;this.result=r}};var xi=D("IExtHostTerminalService"),_v=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 T);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:U2(e.iconPath)??void 0,color:Mu.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,isRemoteResolverTerminal:n?.isRemoteResolverTerminal??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:Mu.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"?On(e,{parentTerminal:!0})&&e.parentTerminal&&n?{parentTerminal:n}:On(e,{viewColumn:!0})?{viewColumn:Mt.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))})}},Pv=class{constructor(t){this._pty=t;this.id=0;this.shouldPersist=!1;this._onProcessData=new T;this.onProcessData=this._onProcessData.event;this._onProcessReady=new T;this._onDidChangeProperty=new T;this.onDidChangeProperty=this._onDidChangeProperty.event;this._onProcessExit=new T;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})}},bz=1,kv=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 dn);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 T;this.onDidCloseTerminal=this._onDidCloseTerminal.event;this._onDidOpenTerminal=new T;this.onDidOpenTerminal=this._onDidOpenTerminal.event;this._onDidChangeActiveTerminal=new T;this.onDidChangeActiveTerminal=this._onDidChangeActiveTerminal.event;this._onDidChangeTerminalDimensions=new T;this.onDidChangeTerminalDimensions=this._onDidChangeTerminalDimensions.event;this._onDidChangeTerminalState=new T;this.onDidChangeTerminalState=this._onDidChangeTerminalState.event;this._onDidChangeShell=new T;this.onDidChangeShell=this._onDidChangeShell.event;this._onDidWriteTerminalData=new T({onWillAddFirstListener:()=>this._proxy.$startSendingDataEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingDataEvents()});this.onDidWriteTerminalData=this._onDidWriteTerminalData.event;this._onDidExecuteCommand=new T({onWillAddFirstListener:()=>this._proxy.$startSendingCommandEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingCommandEvents()});this.onDidExecuteTerminalCommand=this._onDidExecuteCommand.event;this._proxy=o.getProxy(N.MainThreadTerminalService),this._bufferer=new HC(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 _v(this._proxy,Be(),e,e.name),r=new Pv(e.pty);return o.createExtensionTerminal(e.location,n,this._serializeParentTerminal(e,n).resolvedExtHostIdentifier,U2(e.iconPath),yz(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"&&On(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"&&On(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 Pv(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:y.revive(r.cwd),env:r.env,hideFromUser:r.hideFromUser,titleTemplate:r.titleTemplate},a=new _v(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(3808,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 G;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 Pv&&(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 Ie(()=>{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 Ie(()=>{this._completionProviders.delete(e.identifier.value),this._proxy.$unregisterCompletionProvider(e.identifier.value)})}async $provideTerminalCompletions(e,n){let o=new Re().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=!Ct||this.activeTerminal.state?.shell==="gitbash"?"/":"\\";return wM.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 Ie(()=>{this._quickFixProviders.delete(e),this._proxy.$unregisterQuickFixProvider(e)})}async $provideTerminalQuickFixes(e,n){let o=new Re().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 G;if(this._lastQuickFixCommands.value=a,!Array.isArray(s))return s?bC.from(s,this._extHostCommands.converter,a):void 0;let l=[];for(let d of s){let c=bC.from(d,this._extHostCommands.converter,a);c&&l.push(c)}return l}async $createContributedProfileTerminal(e,n){let o=new Re().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&&!On(s,{options:!0})&&(s={options:s}),!s||!On(s,{options:!0}))throw new Error(`No terminal profile options provided for id "${e}"`);let a=De(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(On(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 Ie(()=>{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 Re;this._terminalLinkCancellationSource.set(e,s);let a=[],l={terminal:o.value,line:n},d=[];for(let m of this._linkProviders)d.push(Za.withAsyncBody(async g=>{let v=s.token.onCancellationRequested(()=>g({provider:m,links:[]}));try{let h=await m.provideTerminalLinks(l,s.token)||[];s.token.isCancellationRequested||g({provider:m,links:h})}finally{v.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 v={id:bz++,startIndex:g.startIndex,length:g.length,label:g.tooltip};return u.set(v.id,{provider:m.provider,link:g}),v}));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 BC),this._setEnvironmentVariableCollection(e.identifier.value,n)),n.getScopedEnvironmentVariableCollection(void 0)}_syncEnvironmentVariableCollection(e,n){let o=O2(n.map),r=L2(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 BC(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)}))}};kv=R([C(1,rr),C(2,me)],kv);var BC=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 T);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 nA(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?N2(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,N2(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)}},nA=class{constructor(t,e){this.collection=t;this.scope=e;this._onDidChangeCollection=new T}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)}},Am=class extends kv{constructor(t,e,n){super(!1,t,e),this._hasRemoteAuthority=!!n.remote.authority}createTerminal(t,e,n){if(!this._hasRemoteAuthority)throw new yd;return this.createTerminalFromOptions({name:t,shellPath:e,shellArgs:n})}createTerminalFromOptions(t,e){if(!this._hasRemoteAuthority)throw new yd;let n=new _v(this._proxy,Be(),t,t.name);return this._terminals.push(n),n.create(t,this._serializeParentTerminal(t,e)),n.value}};Am=R([C(0,rr),C(1,me),C(2,at)],Am);function U2(i){if(!(!i||typeof i=="string"))return On(i,{id:!0})?{id:i.id,color:i.color}:i}function yz(i){return Mu.isThemeColor(i)?i:void 0}function N2(i){let t={...i};return delete t.scope,t.options=t.options??void 0,t}var rA="/.well-known",Iz=`${rA}/oauth-protected-resource`,xz=`${rA}/oauth-authorization-server`,oA=`${rA}/openid-configuration`,Om=" ",Sz="urn:ietf:params:oauth:grant-type:token-exchange";var Cz="urn:ietf:params:oauth:token-type:id_token",Tz="urn:ietf:params:oauth:token-type:id-jag",Ez="urn:ietf:params:oauth:grant-type:jwt-bearer";function H2(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",Sz),s.append("subject_token",e),s.append("subject_token_type",Cz),s.append("requested_token_type",Tz),s.append("audience",n),o&&s.append("resource",o),r.length&&s.append("scope",r.join(Om)),s}function V2(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",Ez),r.append("assertion",e),n&&r.append("resource",n),o.length&&r.append("scope",o.join(Om)),r}function wz(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 kz=["issuer","authorization_endpoint","token_endpoint","registration_endpoint","jwks_uri"];function Pz(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 kz)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 _z(i){return typeof i!="object"||i===null?!1:i.client_id!==void 0}function Dv(i){if(typeof i!="object"||i===null)return!1;let t=i;return t.access_token!==void 0&&t.token_type!==void 0}function iA(i){return typeof i!="object"||i===null?!1:i.error!==void 0}function Dz(i){return typeof i!="object"||i===null?!1:i.error!==void 0}function B2(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 F2=["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],Rz=33418;async function sA(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=>F2.includes(s)):F2,response_types:["code"],redirect_uris:["https://insiders.vscode.dev/redirect","https://vscode.dev/redirect","http://127.0.0.1/",`http://127.0.0.1:${Rz}/`],scope:e?.join(Om),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);Dz(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(_z(r))return r;throw new Error(`Invalid authorization dynamic client registration response: ${JSON.stringify(r)}`)}function aA(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 Lm(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(Gn(e).toString())!="object")throw new Error("Invalid JWT token format: header is not a JSON object");let s=JSON.parse(Gn(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 W2(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 $2(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 v=await o(c,{method:"GET",headers:m});if(v.status!==200){let I;try{I=await v.text()}catch{I=v.statusText}throw new Error(`Failed to fetch resource metadata from ${c}: ${v.status} ${I}`)}let h=await v.json();if(wz(h)){let I=new URL(h.resource).toString(),S=new URL(u).toString();if(I!==S)throw new Error(`Protected Resource Metadata 'resource' property value "${I}" does not match expected value "${S}" for URL ${c}. Per RFC 9728, these MUST match. See https://datatracker.ietf.org/doc/html/rfc9728#PRConfigurationValidation`);return h}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(h)}`)},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}${Iz}`;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 Mz(i){if(i.status===200)try{let t=await i.json();if(Pz(t))return t}catch{}}async function Az(i){try{return await i.text()}catch{return i.statusText}}async function WC(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"}}),v=await Mz(g);if(v)return v;s.push(new Error(`Failed to fetch authorization server metadata from ${m}: ${g.status} ${await Az(g)}`));return}catch(g){s.push(g instanceof Error?g:new Error(String(g)));return}},l=new URL(xz,i).toString()+r,d=await a(l);if(d)return{metadata:d,discoveryUrl:l,errors:s};let c=new URL(oA,i).toString()+r;if(d=await a(c),d)return{metadata:d,discoveryUrl:c,errors:s};let u=i.endsWith("/")?i+oA.substring(1):i+oA;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 rd=class{constructor(t,e){this._onDidChangeWindowState=new T;this.onDidChangeWindowState=this._onDidChangeWindowState.event;this._state=rd.InitialState;t.handle&&(this._nativeHandle=Gn(t.handle).buffer),this._proxy=e.getProxy(N.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?Gn(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=y.parse(t)}catch{return Promise.reject(`Invalid uri - '${t}'`)}}return Ui(t.scheme)?Promise.reject("Invalid scheme - cannot be empty"):t.scheme===$.command?Promise.reject(`Invalid scheme '${t.scheme}'`):this._proxy.$openUri(t,n,e)}async asExternalUri(t,e){if(Ui(t.scheme))return Promise.reject("Invalid scheme - cannot be empty");let n=await this._proxy.$asExternalUri(t,e);return y.from(n)}};rd=R([C(0,at),C(1,me)],rd);var Gc=D("IExtHostWindow");var id=class{constructor(t){this.handles=new So;this.handlers=new Map;this._proxy=t.getProxy(N.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=id.HandlePool++;return this.handles.add(n),this.handlers.set(o,e),this._proxy.$registerUriHandler(o,n,t.displayName||t.name),Y(()=>{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(y.revive(e))}catch(o){_t(o)}return Promise.resolve(void 0)}async createAppUri(t){return y.revive(await this._proxy.$createAppUri(t))}};id=R([C(0,me)],id);var jc=D("IExtHostUrlsService");function z2(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 Rv(i,t,e){return z2((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 q2(i,t,e){return z2((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()))}})}var Qc=D("IExtHostProgress"),Nm=class{constructor(t){this._handles=0;this._mapHandleToCancellationSource=new Map;this._proxy=t.getProxy(N.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:ZS.from(s),title:r,source:l,cancellable:a},t.isUnderDevelopment?void 0:t.identifier.value).catch(Id),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:ZS.from(s),title:r,source:t,cancellable:a},void 0).catch(Id),this._withProgress(o,n,!!a)}_withProgress(t,e,n){let o;n&&(o=new Re,this._mapHandleToCancellationSource.set(t,o));let r=a=>{this._proxy.$progressEnd(a),this._mapHandleToCancellationSource.delete(a),o?.dispose()},s;try{s=e(new $C(this._proxy,t),n&&o?o.token:ve.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))}};Nm=R([C(0,me)],Nm);function Oz(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 $C=class extends rl{constructor(e,n){super(o=>this.throttledReport(o));this._proxy=e;this._handle=n}throttledReport(e){this._proxy.$progressReport(this._handle,e)}};R([q2(100,(e,n)=>Oz(e,n),()=>Object.create(null))],$C.prototype,"throttledReport",1);var lA=["openid","offline_access"];function K2(i,t){return i+"|"+[...t].sort().join(" ")}function Lz(i,t=Date.now()){return i.token.expires_in===void 0?!1:t>i.created_at+i.token.expires_in*1e3-6e4}function j2(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(!n&&!r&&!s)return super.getSessions(n,o);if(!r||!n||!s)return[];let a=K2(r,n),l=this._resourceTokens.get(a);if(l&&!Lz(l))return[dA(l.token,l.scopes,l.account)];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?[dA(c.token,c.scopes,c.account)]:[]}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 dA(l.token,l.scopes,l.account)}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 P=Lm(d);typeof P.client_id=="string"&&P.client_id.length>0&&(u=P.client_id,m=u!==this._clientId)}catch(P){this._logger.warn(`[XAA] Could not decode ID-JAG to read resource client_id; falling back to IdP client_id. Error: ${P.message}`)}let v=this._clientSecret,h=typeof a.clientSecret=="string"&&a.clientSecret.length>0?a.clientSecret:void 0,I=this._resourceClientSecretKey(s,u);if(h)v=h,this._resourceClientSecrets.set(I,h);else if(m)if(this._resourceClientSecrets.has(I))v=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 P=await this._proxy.$promptForResourceClientSecret(u,s);if(P===void 0)return;this._resourceClientSecrets.set(I,P),v=P.length>0?P:void 0}let S=await this._redeemAtResource(c,d,s,o,u,v),w={resource:s,scopes:o,token:S,account:n.account,created_at:Date.now()};return this._resourceTokens.set(K2(s,o),w),w}async _tryGetSilentIdpSession(){let n={},o=await super.getSessions(lA,n);return o.length?o[0]:void 0}async _ensureIdpSession(){this._logger.trace(`[XAA] _ensureIdpSession: scopes=[${lA.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([...lA],{}))}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=H2(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 G2(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 WC(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=V2(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 G2(c)}`);let u=await c.json();if(!Dv(u))throw new Error(`XAA token exchange (resource) returned an invalid token response: ${JSON.stringify(u)}`);return u}}}function dA(i,t,e){let n;if(i.id_token)try{let o=Lm(i.id_token);n={id:o.sub||"unknown",label:o.preferred_username||o.name||o.email||"XAA"}}catch{}return n??=e??{id:"unknown",label:"XAA"},{id:Cu(i.access_token,0).toString(),accessToken:i.access_token,account:n,scopes:[...t],idToken:i.id_token}}async function G2(i){try{return await i.text()}catch{return i.statusText}}var Vm=D("IExtHostAuthentication");function Um(i){return{...i,icon:y.revive(i.icon)}}var Fm=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=Hm;this._xaaAuthProviderCtor=j2(Hm);this._authenticationProviders=new Map;this._providerOperations=new Ya;this._onDidChangeSessions=new T;this._getSessionTaskSingler=new cA;this._onDidDynamicAuthProviderTokensChange=new T;this._proxy=t.getProxy(N.MainThreadAuthentication)}getExtensionScopedSessionsEvent(t){let e=t.toLowerCase();return Le.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=xe.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(aF(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,c=await this._proxy.$getSession(e,n,r,d,o);return c&&{...c,account:Um(c.account)}})}async getAccounts(t){return await this._proxy.$ensureProvider(t),(await this._proxy.$getAccounts(t)).map(n=>Um(n))}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 Ie(()=>{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=y.revive(n.authorizationServer),n.account&&(n.account=Um(n.account)),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=y.revive(n.authorizationServer),n.account&&(n.account=Um(n.account)),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=y.revive(n.authorizationServer),n.account&&(n.account=Um(n.account)),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=y.revive(n.authorizationServer),n.account&&(n.account=Um(n.account)),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(xI)||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=y.revive(t);if(e.registration_endpoint)try{let d=await sA(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,y.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:Ie.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?y.parse(n.resource):void 0,clientId:a.clientId,clientSecret:a.clientSecret})}),a.id}async $registerXaaAuthProvider(t,e,n,o,r){let s=y.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:Ie.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})}};Fm=R([C(0,me),C(1,at),C(2,Gc),C(3,jc),C(4,Qc),C(5,ur),C(6,ie)],Fm);var cA=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}},Hm=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g,v=fetch){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._fetch=v;this._onDidChangeSessions=new T;this.onDidChangeSessions=this._onDidChangeSessions.event;this._onDidChangeClientId=new T;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 G,this._disposable.add(this._onDidChangeSessions),this._disposable.add(this._onDidChangeClientId);let I=Le.chain(m.event,S=>S.filter(w=>w.authProviderId===this.id&&w.clientId===c).map(w=>w.tokens));this._tokenStore=this._disposable.add(new uA({onDidChange:I,set:S=>s.$setSessionsForDynamicAuthProvider(this.id,this.clientId,S)},g,this._logger)),this._disposable.add(this._tokenStore.onDidChangeSessions(S=>this._onDidChangeSessions.fire(S))),this._createFlows=[],l.authorization_endpoint&&this._createFlows.push({label:p(3792,null),handler:(S,w,P)=>this._createWithUrlHandler(S,w,P)})}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=>Jt([...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,e.silent!==!0);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=>Jt([...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(3789,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=En(a)?p(3793,null,this.label,l):p(3791,null,this.label,l);if(!await this._proxy.$showContinueNotification(d))throw new ct;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=y.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 ct;e.report({message:p(3790,null)});let v;try{v=(await Bi(m,n)).code}catch(I){throw En(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(v,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 jn(ee.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 this._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(Dv(s))return this._logger.info("Successfully exchanged authorization code for token."),s;throw iA(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,e){if(!this._serverMetadata.token_endpoint)throw new Error("Token endpoint not available in server metadata");let n=new URLSearchParams;n.append("client_id",this._clientId),n.append("grant_type","refresh_token"),n.append("refresh_token",t),this._resourceMetadata?.resource&&n.append("resource",this._resourceMetadata.resource),this._clientSecret&&n.append("client_secret",this._clientSecret);let r=await(await this._fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:n.toString()})).json();if(Dv(r))return{...r,created_at:Date.now()};throw iA(r)&&r.error==="invalid_client"?e?(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.")):(this._logger.warn(`Client ID (${this._clientId}) was invalid while silently refreshing the token.`),new Error("Client ID was invalid while silently refreshing the token.")):new Error(`Invalid authorization token response: ${JSON.stringify(r)}`)}async _generateNewClientId(){try{let t=await sA(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}`)}}}};Hm=R([C(0,Gc),C(1,jc),C(2,at),C(3,Qc),C(4,ur)],Hm);var uA=class{constructor(t,e,n){this._persistence=t;this._logger=n;this._onDidChangeSessions=new T;this.onDidChangeSessions=this._onDidChangeSessions.event;this._disposable=new G,this._tokensObservable=gn("tokens",e),this._sessionsObservable=oh({equalsFn:(o,r)=>Jt(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 uo(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=Lm(t.id_token)}catch{}if(!e)try{e=Lm(t.access_token)}catch{}let n=t.scope!==void 0?t.scope?t.scope.split(" "):[]:e?.scope?e.scope.split(" "):[];return{id:Cu(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 Bm=D("IExtHostLanguageModels"),pA=class{constructor(){this._defaultStream=new dy;this._isDone=!1;let t=this,[e,n]=xu.tee(t._defaultStream.asyncIterable);this.apiObject={get stream(){return e},get text(){return n.map(o=>{if(o instanceof qt)return o.value}).coalesce()}}}handleResponsePart(t){if(this._isDone)return;let e=[];for(let n of It.wrap(t)){let o;n.type==="text"?o=new qt(n.value,n.audience):n.type==="thinking"?o=new yi(n.value,n.id,n.metadata):n.type==="data"?o=new xn(n.data.buffer,n.mimeType,n.audience):o=new Wr(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()}},sd=class{constructor(t,e,n){this._logService=e;this._extHostAuthentication=n;this._onDidChangeModelAccess=new T;this._onDidChangeProviders=new T;this.onDidChangeProviders=this._onDidChangeProviders.event;this._onDidChangeModelProxyAvailability=new T;this.onDidChangeModelProxyAvailability=this._onDidChangeModelProxyAvailability.event;this._languageModelProviders=new Map;this._localModels=new Map;this._modelAccessList=new eo;this._pendingRequest=new Map;this._pendingCancelCTS=new wn;this._ignoredFileProviders=new Map;this._languageAccessInformationExtensions=new Set;this._proxy=t.getProxy(N.MainThreadLanguageModels)}static{this._idPool=1}dispose(){this._onDidChangeModelAccess.dispose(),this._onDidChangeProviders.dispose(),this._onDidChangeModelProxyAvailability.dispose(),this._pendingRequest.clear(),this._pendingCancelCTS.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)})),Y(()=>{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&&De(o.extension,"chatProvider")&&(l={providerLabel:o.extension.displayName||o.extension.name,accountLabel:typeof a.requiresAuthorization=="object"?a.requiresAuthorization.label:void 0}),a.capabilities.editTools&&M(o.extension,"chatProvider");let d={};if(De(o.extension,"chatProvider")){if(a.isDefault===!0)for(let c of Object.values(ai))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[pm.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,cacheWriteCost:a.cacheWriteCost,longContextInputCost:a.longContextInputCost,longContextOutputCost:a.longContextOutputCost,longContextCacheCost:a.longContextCacheCost,longContextCacheWriteCost:a.longContextCacheWriteCost,priceCategory:a.priceCategory,category:a.category,maxInputTokens:a.maxInputTokens,maxOutputTokens:a.maxOutputTokens,auth:l,isDefaultForLocation:d,isUserSelectable:a.isUserSelectable,statusIcon:a.statusIcon,targetChatSessionType:a.targetChatSessionType,configurationSchema:a.configurationSchema,warningText:a.warningText,infoText:a.infoText,promo:a.promo,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=new Re(s);this._pendingCancelCTS.set(e,d);let c=d.token,u=[],m=()=>{u.length>0&&(this._proxy.$reportResponsePart(e,new Vt(u)),u.length=0)},g=new Nn(m,30),v=S=>{u.push(S)>30?(m(),g.cancel()):g.schedule()},h=new rl(async S=>{if(c.isCancellationRequested){this._logService.warn(`[CHAT](${l.extension.identifier.value}) CANNOT send progress because the REQUEST IS CANCELLED`);return}let w;if(S instanceof Wr?w={type:"tool_use",name:S.name,parameters:S.input,toolCallId:S.callId}:S instanceof qt?w={type:"text",value:S.value,audience:S.audience}:S instanceof xn?w={type:"data",mimeType:S.mimeType,data:ee.wrap(S.data),audience:S.audience}:S instanceof yi&&(w={type:"thinking",value:S.value,id:S.id,metadata:S.metadata}),!w){this._logService.warn(`[CHAT](${l.extension.identifier.value}) UNKNOWN part ${JSON.stringify(S)}`);return}v(w)}),I;try{I=l.provider.provideLanguageModelChatResponse(a.info,o.value.map(nC.to),{...r,modelOptions:r.modelOptions??{},modelConfiguration:r.configuration,requestInitiator:n?xe.toKey(n):"core",toolMode:r.toolMode??1,includeEncryptedThinking:r.includeEncryptedThinking},h,c)}catch(S){throw this._pendingCancelCTS.deleteAndDispose(e),S}Promise.resolve(I).then(()=>{m(),this._pendingCancelCTS.deleteAndDispose(e),this._proxy.$reportResponseDone(e,void 0)},S=>{m(),this._pendingCancelCTS.deleteAndDispose(e),this._proxy.$reportResponseDone(e,Di(S))})}$cancelLanguageModelChatRequest(t){this._pendingCancelCTS.get(t)?.cancel()}$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===Ks){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,cacheWriteCost:n.metadata.cacheWriteCost,longContextInputCost:n.metadata.longContextInputCost,longContextOutputCost:n.metadata.longContextOutputCost,longContextCacheCost:n.metadata.longContextCacheCost,longContextCacheWriteCost:n.metadata.longContextCacheWriteCost,priceCategory:n.metadata.priceCategory,category:n.metadata.category,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 nr.NotFound(e);return o._computeTokenLength(e,s,a??ve.None)},sendRequest(s,a,l){if(!o._localModels.has(e))throw nr.NotFound(e);return o._sendChatRequest(t,e,s,a??{},l??ve.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 nr.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 nr.NoPermissions(`Language model '${e}' cannot be used by '${a.value}'.`);let d=Math.random()*1e6|0,c=new pA;this._pendingRequest.set(d,{languageModelId:e,res:c});let u=new Re(r);this._pendingCancelCTS.set(d,u),u.token.onCancellationRequested(()=>{this._proxy.$cancelLanguageModelChatRequest(d)});try{await this._proxy.$tryStartChatRequest(a,e,d,new Vt(s),o,u.token)}catch(m){throw this._pendingRequest.delete(d),this._pendingCancelCTS.deleteAndDispose(d),nr.tryDeserialize(m)??m}return c.apiObject}_convertMessages(t,e){let n=[];for(let o of e)o.role===3&&M(t,"languageModelSystem"),n.push(nC.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),this._pendingCancelCTS.deleteAndDispose(t),e?n.res.reject(nr.tryDeserialize(e)??_w(e)):n.res.resolve())}async _getAuthAccess(t,e,n,o){let r=xI+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(3799,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&&!xe.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 nr.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 So;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=Le.signal(Le.filter(this._onDidChangeModelAccess.event,o=>xe.equals(o.from,t.identifier))),n=Le.signal(this._onDidChangeProviders.event);return{get onDidChange(){return Le.any(e,n)},canSendRequest(o){return!0}}}fileIsIgnored(t,e,n=ve.None){return M(t,"chatParticipantAdditions"),this._proxy.$fileIsIgnored(e,n)}get isModelProxyAvailable(){return!!this._languageModelProxyProvider}async getModelProxy(t){if(M(t,"languageModelProxy"),!this._languageModelProxyProvider)throw this._logService.trace("[LanguageModelProxy] No LanguageModelProxyProvider registered"),new Error("No language model proxy provider is registered.");let e=xe.toKey(t.identifier);try{let n=await Promise.resolve(this._languageModelProxyProvider.provideModelProxy(e,ve.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(y.revive(e),n)??!1}registerIgnoredFileProvider(t,e){M(t,"chatParticipantPrivate");let n=sd._idPool++;return this._proxy.$registerFileIgnoreProvider(n),this._ignoredFileProviders.set(n,e),Y(()=>{this._proxy.$unregisterFileIgnoreProvider(n),this._ignoredFileProviders.delete(n)})}registerLanguageModelProxyProvider(t,e){return M(t,"chatParticipantPrivate"),this._languageModelProxyProvider=e,this._onDidChangeModelProxyAvailability.fire(),Y(()=>{this._languageModelProxyProvider===e&&(this._languageModelProxyProvider=void 0,this._onDidChangeModelProxyAvailability.fire())})}};sd=R([C(0,me),C(1,ie),C(2,Vm)],sd);var Nz=60,Uz=Nz*60,mA=Uz*24,f2e=mA*7,h2e=mA*30,v2e=mA*365;function Q2(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 Wm={DateTimeFormat(i,t){return new yt(()=>{try{return new Intl.DateTimeFormat(i,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(i,t){return new yt(()=>{try{return new Intl.Collator(i,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(i,t){return new yt(()=>{try{return new Intl.Segmenter(i,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(i,t){return new yt(()=>{try{return new Intl.Locale(i,t)}catch{return new Intl.Locale(Mi,t)}})},NumberFormat(i,t){return new yt(()=>{try{return new Intl.NumberFormat(i,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};var $m=class i{constructor(t){let e=pk(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=pk(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 gA=class extends $m{constructor(e,n){super(0);this._segmenter=null;this._cachedLine=null;this._cachedSegments=[];this.intlSegmenterLocales=n,this.intlSegmenterLocales.length>0?this._segmenter=Wm.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}},J2=new Er(10);function Y2(i,t){let e=`${i}/${t.join(",")}`,n=J2.get(e);return n||(n=new gA(i,t),J2.set(e,n)),n}var Mv=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=fA(this.searchString):t=this.searchString.indexOf(`
`)>=0;let e=null;try{e=kL(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 Ky(e,this.wordSeparators?Y2(this.wordSeparators,[]):null,n?this.searchString:null)}};function fA(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 hA(i,t,e){if(!e)return new Kd(i,null);let n=[];for(let o=0,r=t.length;o<r;o++)n[o]=t[o];return new Kd(i,n)}function Hz(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 Vz(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 vA(i,t,e,n,o){return Hz(i,t,e,n,o)&&Vz(i,t,e,n,o)}var zC=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){bk(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||vA(this._wordSeparators,t,e,o,r))return n}while(n);return null}};var X2=D("pathService"),zm=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||Ai)(),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===$.file||t.scheme===$.vscodeRemote?NL(n??tt(t),e===1):!0}get defaultUriScheme(){return zm.findDefaultUriScheme(this.environmentService,this.contextService)}static findDefaultUriScheme(t,e){if(t.remoteAuthority)return $.vscodeRemote;let n=CF(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:$.file}userHome(t){return t?.preferLocal?this.localUserHome:this.resolveUserHome}get resolvedUserHome(){return this.maybeUnresolvedUserHome}get path(){return this.resolveOS.then(t=>t===1?tn:Ve)}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 y.from({scheme:$.file,authority:e,path:t,query:"",fragment:""})}};zm=R([C(1,ji),C(2,Ku),C(3,Mr)],zm);function Wz(i){return typeof i=="object"&&"uri"in i&&"pattern"in i}var Av=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($f),n),type:3,contentPattern:t}}text(t,e,n={}){return t=this.getContentPattern(t,n),{...this.commonQuery(e?.map($f),n),type:2,contentPattern:t,previewOptions:n.previewOptions,maxFileSize:n.maxFileSize,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(qC),!t.length)return{}}else t=qC(t);return e?this.parseSearchPaths(t):{pattern:bA(...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=ut(this.editorGroupsService.groups.flatMap(g=>g.editors.map(v=>v.resource)));this.logService.trace("QueryBuilder#commonQuery - openEditor URIs",JSON.stringify(c));let u=c.filter(g=>TC(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=>TC(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=>TC(l,c.fsPath));return l.extraFileResources=d&&d.length?d:void 0,l}commonQueryFromFileList(t){let e=[],n=new Ue,o={},r=!1;return t.forEach(s=>{if(s.scheme===$.walkThrough)return;if(qL(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=Ms(l.fsPath,s.fsPath);Yr(d.includePattern)[Z2(c.replace(/\\/g,"/"))]=!0}else s.fsPath&&(r=!0,o[Z2(s.fsPath)]=!0)}),{folderQueries:e,includePattern:o,usingSearchPaths:!0,excludePattern:r?void 0:{"**/*":!0}}}isCaseSensitive(t,e){if(e.isSmartCase){if(t.isRegExp){if(Ik(t.pattern,!0))return!0}else if(Ik(t.pattern))return!0}return!!t.isCaseSensitive}isMultiline(t){return t.isMultiline||t.isRegExp&&fA(t.pattern)||t.pattern.indexOf(`
`)>=0?!0:!!t.isMultiline}parseSearchPaths(t){let e=u=>Xr(u)||/^\.\.?([\/\\]|$)/.test(u),o=(Array.isArray(t)?t:zz(t)).map(u=>{let m=this.pathService.resolvedUserHome;return m?OD(u,m.scheme===$.file?m.fsPath:m.path):u}),r=Cb(o,u=>e(u)?"searchPaths":"exprSegments"),s=(r.exprSegments||[]).map(u=>Dd(u,"/")).map(u=>Dd(u,"\\")).map(u=>(u[0]==="."&&(u="*"+u),qz(u))),a={},l=this.expandSearchPathPatterns(r.searchPaths||[]);l&&l.length&&(a.searchPaths=l);let d=s.flat(),c=bA(...d);return c&&(a.pattern=c),a}getExcludesForFolder(t,e){return e.disregardExcludeSettings?void 0:v2(t,!e.disregardSearchExcludeSettings)}expandSearchPathPatterns(t){if(!t||!t.length)return[];let e=t.flatMap(o=>{let{pathPortion:r,globPortion:s}=$z(o);return s&&(s=yA(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?bA(o.pattern):void 0})}),Array.from(n.values())}expandOneSearchPath(t){if(Xr(t)){let e=this.workspaceContextService.getWorkspace().folders;return e[0]&&e[0].uri.scheme!==$.file?[{searchPath:e[0].uri.with({path:t})}]:[{searchPath:y.file(Ko(t))}]}if(this.workspaceContextService.getWorkbenchState()===2){let e=this.workspaceContextService.getWorkspace().folders[0].uri;if(t=qC(t),t.startsWith("../")||t===".."){let o=Ve.resolve(e.path,t);return[{searchPath:e.with({path:o})}]}let n=yA(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(`^${dr(r.name)}(?:/(.*)|$)`));return s?{match:s,folder:r}:null}).filter(Io);if(o.length)return o.map(r=>{let s=r.match[1];return{searchPath:r.folder.uri,pattern:s&&yA(s)}});{let r=t.match(/\.[\/\\](.+)[\/\\]?/),s=r?r[1]:t,a=p(20140,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($f(t.searchPath),e,n,!1);return o?{...o,includePattern:t.pattern}:null}getFolderQueryForRoot(t,e,n,o){let r,s=y.isUri(t)?t:t.uri,a=e.excludePattern?.map(g=>{let v=e.excludePattern&&Wz(g)?g.uri:void 0;return!v||!(y.isUri(t)&&this.uriIdentityService.extUri.isEqual(t,v))?v:void 0});if(a?.length||(a=[void 0]),n.searchPaths){let g=n.searchPaths.filter(v=>nn(v.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=y.isUri(t)?tt(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}}};Av=R([C(0,sn),C(1,Mr),C(2,WH),C(3,ie),C(4,X2),C(5,vr)],Av);function $z(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 bA(...i){return i.length?i.reduce((t,e)=>(t[e]=!0,t),Object.create(null)):void 0}function zz(i){return Yu(i,",").map(t=>t.trim()).filter(t=>!!t.length)}function qz(i){return[`**/${i}/**`,`**/${i}`].map(e=>e.replace(/\*\*\/\*\*/g,"**"))}function qC(i){return i.replace(/\\/g,"/")}function yA(i){return qC(i).replace(/^\.\//,"").replace(/\/+$/g,"")}function Z2(i){return i.replace(/([?*[\]])/g,"[$1]")}var Kz=7e3;function tV(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}=Ak(),a=c=>s({activationEvent:c}),l=Promise.all(n.map(c=>Gz(i,c,a))).then(()=>{}),d=jz(i,t.identifier,o,a);return Promise.all([l,d]).then(()=>{s(void 0)}),r}async function Gz(i,t,e){for(let n of i.folders)if(await i.exists(Lt(y.revive(n),t))){e(`workspaceContains:${t}`);return}}async function jz(i,t,e,n){if(e.length===0)return Promise.resolve(void 0);let o=new Re,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(",")}`)},Kz),a=!1;try{a=await r}catch(l){En(l)||_t(l)}o.dispose(),clearTimeout(s),a&&n(`workspaceContains:${e.join(",")}`)}var qm=class{constructor(t){this._onDidChangePassword=new T;this.onDidChangePassword=this._onDidChangePassword.event;this._proxy=t.getProxy(N.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)}},Km=D("IExtHostSecretState");var KC=class{constructor(t,e){this.disposables=new G;this._id=xe.toKey(t.identifier),this.#e=e,this.onDidChange=Le.map(Le.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 Gm=class{constructor(t,e,n){this.logService=n;this.bundleCache=new Map;this._proxy=e.getProxy(N.MainThreadLocalization),this.currentLanguage=t.environment.appLanguage,this.isDefaultLanguage=this.currentLanguage===Mi}getMessage(t,e){let{message:n,args:o,comment:r}=e;if(this.isDefaultLanguage)return hk(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}`),hk(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 y.revive(e)}return t.l10n?y.joinPath(t.extensionLocation,t.l10n,`bundle.l10n.${this.currentLanguage}.json`):void 0}};Gm=R([C(0,at),C(1,me),C(2,ie)],Gm);var jm=D("IExtHostLocalizationService");var Jm=D("IExtHostManagedSockets"),Qm=class{constructor(t){this._remoteSocketIdCounter=0;this._factory=null;this._managedRemoteSockets=new Map;this._proxy=t.getProxy(N.MainThreadManagedSockets)}setFactory(t,e){for(let n of this._managedRemoteSockets.values())n.dispose();this._factory&&this._proxy.$unregisterSocketFactory(this._factory.socketFactoryId),this._factory=new IA(t,e),this._proxy.$registerSocketFactory(this._factory.socketFactoryId)}makeConnection(){if(!this._factory)throw new Error("No managed socket factory registered");return Promise.resolve(this._factory.makeConnection())}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 G;return this._managedRemoteSockets.set(e,new xA(e,n,o)),o.add(Y(()=>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,ee.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?.()}};Qm=R([C(0,me)],Qm);var IA=class{constructor(t,e){this.socketFactoryId=t;this.makeConnection=e}},xA=class extends U{constructor(e,n,o){super();this.socketId=e;this.actual=n;this._register(o)}};var TA=D("IHostUtils"),ad=class extends U{constructor(e,n,o,r,s,a,l,d,c,u,m,g,v){super();this._extHostManagedSockets=g;this._extHostLanguageModels=v;this._onDidChangeRemoteConnectionData=this._register(new T);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(N.MainThreadWorkspace),this._mainThreadTelemetryProxy=this._extHostContext.getProxy(N.MainThreadTelemetry),this._mainThreadExtensionsProxy=this._extHostContext.getProxy(N.MainThreadExtensionService),this._almostReadyToRunExtensions=new Ln,this._readyToStartExtensionHost=new Ln,this._readyToRunExtensions=new Ln,this._eagerExtensionsActivated=new Ln,this._activationEventsReader=new CA(this._initData.extensions.activationEvents),this._globalRegistry=new Ca(this._activationEventsReader,this._initData.extensions.allExtensions);let h=new So(this._initData.extensions.myExtensions);this._myRegistry=new Ca(this._activationEventsReader,rV(this._globalRegistry,h)),qa&&(this._logService.info(`Creating extension host with the following global extensions: ${Ym(this._globalRegistry)}`),this._logService.info(`Creating extension host with the following local extensions: ${Ym(this._myRegistry)}`)),this._storage=new Sm(this._extHostContext,this._logService),this._secretState=new qm(this._extHostContext),this._storagePath=d,this._instaService=this._store.add(e.createChild(new tl([Cm,this._storage],[Km,this._secretState]))),this._activator=this._register(new ym(this._myRegistry,this._globalRegistry,{onExtensionActivationError:(I,S,w)=>{this._mainThreadExtensionsProxy.$onExtensionActivationError(I,Di(S),w)},actualActivateExtension:async(I,S)=>{if(Ca.isHostExtension(I,this._myRegistry,this._globalRegistry))return await this._mainThreadExtensionsProxy.$activateExtension(I,S),new LC;let w=this._myRegistry.getExtensionDescription(I);return this._activateExtension(w,S)}},this._logService)),this._extensionPathIndex=null,this._resolvers=Object.create(null),this._started=!1,this._remoteConnectionData=this._initData.remote.connectionData,this._register(NF(I=>this._reportProposedApiUsage(I))),this._register(UF(this._initData.enabledApiProposalsFallback,this._initData.quality))}_reportProposedApiUsage(e){this._mainThreadTelemetryProxy.$publicLog2("extensionProposedApiNotEnabled",{extensionId:e.extensionId,proposalName:e.proposalName})}getRemoteConnectionData(){return this._remoteConnectionData}async initialize(){try{await this._beforeAlmostReadyToRunExtensions(),this._almostReadyToRunExtensions.open(),await this._extHostWorkspace.waitForInitializeCall(),vn("code/extHost/ready"),this._readyToStartExtensionHost.open(),this._initData.autoStart&&this._startExtensionHost()}catch(e){_t(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(),of(r=>{this._logService.error(r)}),this._extHostContext.dispose();let o=this._deactivateAll();Promise.race([Pn(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 xe(n.identifier.value),extensionLocation:y.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===$.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 y.file(o)}return e}async getExtensionPathIndex(){return this._extensionPathIndex||(this._extensionPathIndex=this._createExtensionPathIndex(this._myRegistry.getAllExtensionDescriptions()).then(e=>new SA(e))),this._extensionPathIndex}async _createExtensionPathIndex(e){let n=Fo.forUris(o=>wk.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=oV(e,n);this._mainThreadTelemetryProxy.$publicLog2("extensionActivationTimes",{...s,...r||{},outcome:o})}_doActivateExtension(e,n){let o=oV(e,n);this._mainThreadTelemetryProxy.$publicLog2("activatePlugin",o);let r=this._getEntryPoint(e);if(!r)return Promise.resolve(new OC(zc.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 G,l=new Im(n.startup);return Promise.all([s?this._loadESMModule(e,Lt(e.extensionLocation,r),l):this._loadCommonJSModule(e,Lt(e.extensionLocation,r),l),this._loadExtensionContext(e,a)]).then(d=>(vn(`code/extHost/willActivateExtension/${e.identifier.value}`),ad._callActivate(this._logService,e.identifier,d[0],d[1],a,l))).then(d=>(vn(`code/extHost/didActivateExtension/${e.identifier.value}`),d))}_loadExtensionContext(e,n){let o=this._extHostLanguageModels.createLanguageModelAccessInformation(e),r=n.add(new NC(e,this._storage)),s=n.add(new Ev(e.identifier.value,!1,this._storage)),a=n.add(new KC(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=De(e,"ipc")?this._initData.messagePorts?.get(xe.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(v){return yu(e.extensionLocation.fsPath,v)},get storagePath(){return c._storagePath.workspaceValue(e)?.fsPath},get globalStoragePath(){return c._storagePath.globalValue(e).fsPath},get logPath(){return yu(c._initData.logsLocation.fsPath,e.identifier.value)},get logUri(){return y.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 ld(c,e.identifier,e,d,!1)),u},get extensionRuntime(){return M(e,"extensionRuntime"),c.extensionRuntime},get environmentVariableCollection(){return c._extHostTerminalService.getEnvironmentVariableCollection(e)},get messagePassingProtocol(){if(!m){if(!g)return;let v=Le.buffer(Le.fromDOMEventEmitter(g,"message",h=>h.data),"onDidReceiveMessage");g.start(),m={onDidReceiveMessage:v,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 qc(!1,null,a.build(),o,l,Y(()=>{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();Mb(()=>{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(dL()),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,Pn(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 tV(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(3796,null));let o=(await this.getExtensionPathIndex()).findSubstr(n),s=await(this._isESM(o,n.path)?this._loadESMModule(null,n,new Im(!1)):this._loadCommonJSModule(null,n,new Im(!1)));if(!s||typeof s.run!="function")throw new Error(p(3795,null,n.toString()));return new Promise((a,l)=>{let d=(m,g)=>{m?(qa&&this._logService.error("Test runner called back with error",m),l(m)):(qa&&(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=Pr(n),u=s.run(c,d);u&&u.then&&u.then(()=>{qa&&this._logService.info("Test runner finished successfully."),a(0)}).catch(m=>{qa&&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(),Pn(1e3)])).then(()=>this._handleEagerExtensions()).then(()=>{this._eagerExtensionsActivated.open(),this._logService.info("Eager extensions activated")})}registerRemoteAuthorityResolver(e,n){return this._resolvers[e]=n,Y(()=>{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 ss("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=Vn.create(!1),r=()=>`[resolveAuthority(${oR(e)},${n})][${o.elapsed()}ms] `,s=P=>this._logService.info(`${r()}${P}`),a=P=>this._logService.warn(`${r()}${P}`),l=(P,A=void 0)=>this._logService.error(`${r()}${P}`,A),d=P=>{if(P instanceof ss)return{type:"error",error:{code:P._code,message:P._message,detail:P._detail}};throw P},c=async P=>{s(`activating resolver for ${P}...`);let{resolver:A,authorityPrefix:L}=await this._activateAndGetResolver(P);if(!A)throw l(`no resolver for ${L}`),new ss(`No remote extension installed to resolve ${L}.`,"NoResolverFound");return{resolver:A,authorityPrefix:L,remoteAuthority:P}},u=e.split(/@|%40/g).reverse();s(`activating remote resolvers ${u.join(" -> ")}`);let m;try{m=await Promise.all(u.map(c)).catch(async P=>{if(!(P instanceof ss)||P._code!=="InvalidAuthority")throw P;return a(`resolving nested authorities failed: ${P.message}`),[await c(e)]})}catch(P){return d(P)}let g=new ay;g.cancelAndSet(()=>s("waiting..."),1e3);let v,h;for(let[P,{authorityPrefix:A,resolver:L,remoteAuthority:V}]of m.entries())try{if(P===m.length-1)s("invoking final resolve()..."),vn(`code/extHost/willResolveAuthority/${A}`),v=await L.resolve(V,{resolveAttempt:n,execServer:h}),vn(`code/extHost/didResolveAuthorityOK/${A}`),s("setting tunnel factory..."),this._register(await this._extHostTunnelService.setTunnelFactory(L,Al.isManagedResolvedAuthority(v)?v:void 0));else{if(s(`invoking resolveExecServer() for ${V}`),vn(`code/extHost/willResolveExecServer/${A}`),h=await L.resolveExecServer?.(V,{resolveAttempt:n,execServer:h}),!h)throw new ss(`Exec server was not available for ${V}`,"NoResolverFound");vn(`code/extHost/didResolveExecServerOK/${A}`)}}catch(q){return vn(`code/extHost/didResolveAuthorityError/${A}`),l("returned an error",q),g.dispose(),d(q)}g.dispose();let I={environmentTunnels:v.environmentTunnels,features:v.tunnelFeatures?{elevation:v.tunnelFeatures.elevation,privacyOptions:v.tunnelFeatures.privacyOptions,protocol:v.tunnelFeatures.protocol===void 0?!0:v.tunnelFeatures.protocol}:void 0},S={extensionHostEnv:v.extensionHostEnv,isTrusted:v.isTrusted,authenticationSession:v.authenticationSessionForInitializingExtensions?{id:v.authenticationSessionForInitializingExtensions.id,providerId:v.authenticationSessionForInitializingExtensions.providerId}:void 0};s(`returned ${Al.isManagedResolvedAuthority(v)?"managed authority":`${v.host}:${v.port}`}`);let w;if(Al.isManagedResolvedAuthority(v)){let P=n;this._extHostManagedSockets.setFactory(P,v.makeConnection),w={authority:e,connectTo:new hx(P),connectionToken:v.connectionToken}}else w={authority:e,connectTo:new vx(v.host,v.port),connectionToken:v.connectionToken};return{type:"ok",value:{authority:w,options:S,tunnelInformation:I}}}async $getCanonicalURI(e,n){this._logService.info(`$getCanonicalURI invoked for authority (${oR(e)})`);let{resolver:o}=await this._activateAndGetResolver(e);if(!o)return null;let r=y.revive(n);if(typeof o.getCanonicalURI>"u")return r;let s=await on(()=>o.getCanonicalURI(r));return s||r}async $startExtensionHost(e){e.toAdd.forEach(a=>a.extensionLocation=y.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=nV(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),qa&&(this._logService.info(`$startExtensionHost: global extensions: ${Ym(this._globalRegistry)}`),this._logService.info(`$startExtensionHost: local extensions: ${Ym(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=y.revive(a.extensionLocation));let{globalRegistry:n,myExtensions:o}=nV(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),qa&&(this._logService.info(`$deltaExtensions: global extensions: ${Ym(this._globalRegistry)}`),this._logService.info(`$deltaExtensions: local extensions: ${Ym(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=ee.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")}};ad=R([C(0,mn),C(1,TA),C(2,me),C(3,ro),C(4,Mo),C(5,ie),C(6,at),C(7,Em),C(8,km),C(9,xi),C(10,jm),C(11,Jm),C(12,Bm)],ad);function nV(i,t,e,n){i.addActivationEvents(n.addActivationEvents);let o=new Ca(i,t.getAllExtensionDescriptions());o.deltaExtensions(n.toAdd,n.toRemove);let r=new So(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=rV(o,r);return{globalRegistry:o,myExtensions:s}}function oV(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 Ym(i){return i.getAllExtensionDescriptions().map(t=>t.identifier.value).join(",")}var Ao=D("IExtHostExtensionService"),ld=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=Ko(Pr(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 rV(i,t){return i.getAllExtensionDescriptions().filter(e=>t.has(e.identifier))}var SA=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)}},CA=class{constructor(t){this._map=new eo;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 Ea=D("IExtHostApiDeprecationService"),Xm=class{constructor(t,e){this._extHostLogService=e;this._reportedUsages=new Set;this._telemetryShape=t.getProxy(N.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}};Xm=R([C(0,me),C(1,ie)],Xm);var IWe=Object.freeze(new class{report(i,t,e){}});var GC=class{static async installEarlyHandler(t){Error.stackTraceLimit=100;let e=t.get(ie),o=t.get(me).getProxy(N.MainThreadErrors);of(r=>{e.error(r);let s=Di(r);o.$onUnexpectedError(s)})}static async installFullHandler(t){let e=t.get(ie),n=t.get(me),o=t.get(Ao),r=t.get(od),s=t.get(Ea),a=n.getProxy(N.MainThreadExtensionService),l=n.getProxy(N.MainThreadErrors),d=await o.getExtensionRegistry(),c=await o.getExtensionPathIndex(),u=new WeakMap;function m(h,I){if(u.has(h))return u.get(h).stack;let S="",w,P;for(let L of I)S+=`
	at ${L.toString()}`,P=L.getFileName(),!w&&P&&(w=c.findSubstr(y.file(P)));let A=`${h.name||"Error"}: ${h.message||""}${S}`;return u.set(h,{extensionIdentifier:w?.identifier,stack:A}),A}let g=Symbol("prepareStackTrace wrapped"),v=m;Object.defineProperty(Error,"prepareStackTrace",{configurable:!1,get(){return v},set(h){if(h===m||!h||h[g]){v=h||m;return}v=function(I,S){return m(I,S),h.call(Error,I,S)},Object.assign(v,{[g]:!0})}}),of(h=>{bd.is(h)||e.error(h);let I=Di(h),S;if(h instanceof Su?S=h.extension:S=u.get(h)?.extensionIdentifier,!!S)if(bd.is(h)){let w=d.getExtensionDescription(S);w&&s.report(h.name,w,`${h.message}
 FROM: ${h.stack}`)}else{a.$onExtensionRuntimeError(S,I);let w=r.onExtensionError(S,h);e.trace("forwarded error to extension?",w,S)}}),La.addListener(h=>{l.$onUnexpectedError(h)})}},jC=class i{constructor(t,e,n,o,r){this._hostUtils=n,this._rpcProtocol=new uy(t,null,o),e=i._transform(e,this._rpcProtocol);let s=new tl(...uN());s.set(at,{_serviceBrand:void 0,...e,messagePorts:r}),s.set(me,new Cy(this._rpcProtocol)),s.set(nl,new Ty(o)),s.set(TA,n);let a=new Sy(s,!0);a.invokeFunction(GC.installEarlyHandler),this._logService=a.invokeFunction(l=>l.get(ie)),vn("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(Ao)),this._extensionService.initialize(),a.invokeFunction(GC.installFullHandler)}async asBrowserUri(t){let e=this._rpcProtocol.getProxy(N.MainThreadExtensionService);return y.revive(await e.$asBrowserUri(t))}terminate(t){this._extensionService.terminate(t)}static _transform(t,e){t.extensions.allExtensions.forEach(o=>{o.extensionLocation=y.revive(e.transformIncomingURIs(o.extensionLocation))}),t.environment.appRoot=y.revive(e.transformIncomingURIs(t.environment.appRoot));let n=t.environment.extensionDevelopmentLocationURI;return n&&(t.environment.extensionDevelopmentLocationURI=n.map(o=>y.revive(e.transformIncomingURIs(o)))),t.environment.extensionTestsLocationURI=y.revive(e.transformIncomingURIs(t.environment.extensionTestsLocationURI)),t.environment.globalStorageHome=y.revive(e.transformIncomingURIs(t.environment.globalStorageHome)),t.environment.workspaceStorageHome=y.revive(e.transformIncomingURIs(t.environment.workspaceStorageHome)),t.nlsBaseUrl=y.revive(e.transformIncomingURIs(t.nlsBaseUrl)),t.logsLocation=y.revive(e.transformIncomingURIs(t.logsLocation)),t.workspace=e.transformIncomingURIs(t.workspace),t}};var Qz=(function(t){let e=n=>{globalThis.removeEventListener("message",e);let o=n.data;Object.defineProperties(globalThis,{postMessage:{value(r,s){o.postMessage(r,s)}},onmessage:{get(){return o.onmessage},set(r){o.onmessage=r}}}),o.addEventListener("message",r=>{globalThis.dispatchEvent(new MessageEvent("message",{data:r.data,ports:r.ports?[...r.ports]:void 0}))}),o.start(),globalThis.Worker=class{constructor(){throw new TypeError("Nested workers from within nested worker are NOT supported.")}},importScripts(t)};globalThis.addEventListener("message",e)}).toString(),QC=class extends EventTarget{constructor(e,n,o){super();this.onmessage=null;this.onmessageerror=null;this.onerror=null;let r=`((${Qz})('${n}'))`,s=new Blob([r],{type:"application/javascript"}),a=URL.createObjectURL(s),l=new MessageChannel,d=a,c={type:"_newWorker",id:d,port:l.port2,url:a,options:o};e(c,[l.port2]),this.postMessage=l.port1.postMessage.bind(l.port1),this.terminate=()=>{e({type:"_terminateWorker",id:d}),URL.revokeObjectURL(a),l.port1.close(),l.port2.close()},Object.defineProperties(this,{onmessage:{get(){return l.port1.onmessage},set(u){l.port1.onmessage=u}},onmessageerror:{get(){return l.port1.onmessageerror},set(u){l.port1.onmessageerror=u}}}),l.port1.addEventListener("messageerror",u=>{let m=new MessageEvent("messageerror",{data:u.data});this.dispatchEvent(m)}),l.port1.addEventListener("message",u=>{let m=new MessageEvent("message",{data:u.data});this.dispatchEvent(m)}),l.port1.start()}};var JWe=new E("inOutput",!1),YWe=new E("activeLogOutput",!1),XWe=new E("activeLogOutput.isLog",!1),ZWe=new E("activeLogOutput.levelSettable",!1),e4e=new E("activeLogOutput.level",""),t4e=new E("activeLogOutput.levelIsDefault",!1),n4e=new E("outputView.scrollLock",!1),o4e=new E("activeOutputChannel",""),r4e=new E("output.filter.trace",!0),i4e=new E("output.filter.debug",!0),s4e=new E("output.filter.info",!0),a4e=new E("output.filter.warning",!0),l4e=new E("output.filter.error",!0),d4e=new E("outputFilterFocus",!1),c4e=new E("output.filter.categories",""),u4e=D("outputService");var Jz={OutputChannels:"workbench.contributions.outputChannels"};function Yz(i){return Array.isArray(i.source)}var EA=class extends U{constructor(){super(...arguments);this.channels=new Map;this._onDidRegisterChannel=this._register(new T);this.onDidRegisterChannel=this._onDidRegisterChannel.event;this._onDidRemoveChannel=this._register(new T);this.onDidRemoveChannel=this._onDidRemoveChannel.event;this._onDidUpdateChannelFiles=this._register(new T);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&&Yz(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))}};mt.add(Jz.OutputChannels,new EA);var JC=class extends wu{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(Y(()=>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+=ee.fromString(n).byteLength,dN(this.logger,e,n),this.visible&&(this.logger.flush(),this.proxy.$update(this.id,1))}},wA=class extends JC{appendLine(t){this.append(t)}},Zm=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 Ue;this.logOutputChannels=new Ue;this.namePool=1;this.channels=new Map;this.visibleChannelId=null;this.proxy=t.getProxy(N.MainThreadOutputService),this.outputsLocation=this.extHostFileSystemInfo.extUri.joinPath(e.logsLocation,`output_logging_${Q2(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=_e(e)?e:void 0;if(_e(r)&&!r.trim())throw new Error("illegal argument `languageId`. must not be empty");let s=new G,a,l=this.initData.environment.extensionLogLevel?.find(([c])=>xe.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(Y(()=>{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(Y(()=>this.loggerService.deregisterLogger(s))),new JC(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(Y(()=>this.loggerService.deregisterLogger(e))),new wA(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(Ru(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 T);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))}}}};Zm=R([C(0,me),C(1,at),C(2,td),C(3,Ar),C(4,ur),C(5,ie)],Zm);var YC=D("IExtHostOutputService");var vs=class{constructor(t,e){this._logService=e;this._provider=new Map;this._proxy=t.getProxy(N.MainThreadDecorations)}static{this._handlePool=0}static{this._maxEventSize=250}registerFileDecorationProvider(t,e){let n=vs._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=hn(r);if(s.length<=vs._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:wL(c.path,"/")})),l=pO(a,(c,u)=>c.rank-u.rank||ei(c.uri.path,u.uri.path)),d=[];e:for(let c of l){let u;for(let m of c){let g=Li(m.uri.path);if(u!==g&&(u=g,d.push(m.uri)>=vs._maxEventSize))break e}}this._proxy.$onDidChange(n,d)});return new Ie(()=>{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(y.revive(l),n));if(!c)return;try{Sc.validate(c),c.badge&&typeof c.badge!="string"&&M(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}};vs=R([C(0,me),C(1,ie)],vs);var XC=D("IExtHostDecorations");var ZC=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=_d(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=_d(t),e=_d(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=_d(t),e=_d(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=_d(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 kA(o,t-s)}};var kA=class{constructor(t,e){this.index=t;this.remainder=e;this._prefixSumIndexOfResultBrand=void 0;this.index=t,this.remainder=e}};var eT=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 yn(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 ZC(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=qb(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 PA=new Map;function iV(i,t){t?PA.set(i,t):PA.delete(i)}function Xz(i){return PA.get(i)}var tT=class extends eT{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(){An(!this._isDisposed),this._isDisposed=!0,this._isDirty=!1}equalLines(e){return Jt(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===$.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){An(!this._isDisposed),this._languageId=e}_acceptIsDirty(e){An(!this._isDisposed),this._isDirty=e}_acceptEncoding(e){An(!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 we?n=e.line:typeof e=="number"?n=e:!this._strictInstanceofChecks&&we.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 _A(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 we(n.index,Math.min(n.remainder,o))}_validateRange(e){if(this._strictInstanceofChecks){if(!(e instanceof he))throw new Error("Invalid argument")}else if(!he.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 he(n.line,n.character,o.line,o.character)}_validatePosition(e){if(this._strictInstanceofChecks){if(!(e instanceof we))throw new Error("Invalid argument")}else if(!we.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 we(n,o):e}_getWordRangeAtPosition(e,n){let o=this._validatePosition(e);if(!n)n=Xz(this._languageId);else if(zb(n))throw new Error(`[getWordRangeAtPosition]: ignoring custom regexp '${n.source}' because it matches the empty string.`);let r=CP(o.character+1,SP(n),this._lines[o.line],0);if(r)return new he(o.line,r.startColumn-1,o.line,r.endColumn-1)}},_A=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 he(this._line,0,this._line,this._text.length)}get rangeIncludingLineBreak(){return this._isLastLine?this.range:new he(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 dd=class{constructor(t){this._prefix=t,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}},b5e=new dd("id#");var nT=class i{static{this._Keys=new dd("TextEditorDecorationType")}constructor(t,e,n){let o=i._Keys.nextId();t.$registerTextEditorDecorationType(e.identifier,o,rM.from(n)),this.value=Object.freeze({key:o,dispose(){t.$removeTextEditorDecorationType(o)}})}},DA=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 we)n=new he(t,t);else if(t instanceof he)n=t;else throw new Error("Unrecognized location");this._pushEdit(n,e,!1)}insert(t,e){this._throwIfFinalized(),this._pushEdit(new he(t,t),e,!0)}delete(t){this._throwIfFinalized();let e=null;if(t instanceof he)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 Ne("endOfLine");this._setEndOfLine=t}},RA=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=Vc.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:Vc.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=Vc.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)})}},oT=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 RA(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 Jr("document")},get selection(){return d._selections&&d._selections[0]},set selection(c){if(!(c instanceof Fn))throw Ne("selection");d._selections=[c],d._trySetSelection()},get selections(){return d._selections},set selections(c){if(!Array.isArray(c)||c.some(u=>!(u instanceof Fn)))throw Ne("selections");c.length===0&&(c=[new Fn(0,0,0,0)]),d._selections=c,d._trySetSelection()},get visibleRanges(){return d._visibleRanges},set visibleRanges(c){throw new Jr("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 Jr("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 DA(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(v=>B.from(v));else if(u instanceof we){let{lineNumber:v,column:h}=nt.from(u);g=[{startLineNumber:v,startColumn:h,endLineNumber:v,endColumn:h}]}else if(u instanceof he)g=[B.from(u)];else{g=[];for(let v of u)if(v instanceof he)g.push(B.from(v));else{let{lineNumber:h,column:I}=nt.from(v);g.push({startLineNumber:h,startColumn:I,endLineNumber:h,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(oM(u))return e.$trySetDecorations(t,c.key,t2(u));{let g=new Array(4*u.length);for(let v=0,h=u.length;v<h;v++){let I=u[v];g[4*v]=I.start.line+1,g[4*v+1]=I.start.character+1,g[4*v+2]=I.end.line+1,g[4*v+3]=I.end.character+1}return e.$trySetDecorationsFast(t,c.key,g)}}))},revealRange(c,u){d._runOnProxy(()=>e.$tryRevealRange(t,B.from(c),u||0))},show(c){e.$tryShowEditor(t,Mt.from(c))},hide(){e.$tryHideEditor(t)},[Symbol.for("debug.description")](){return`TextEditor(${this.document.uri.toString()})`}})}dispose(){An(!this._disposed),this._disposed=!0}_acceptOptions(t){An(!this._disposed),this._options._accept(t)}_acceptVisibleRanges(t){An(!this._disposed),this._visibleRanges=t}_acceptViewColumn(t){An(!this._disposed),this._viewColumn=t}_acceptSelections(t){An(!this._disposed),this._selections=t}_acceptDiffInformation(t){An(!this._disposed),this._diffInformation=t}async _trySetSelection(){let t=this._selections.map(fo.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:B.from(r.range),text:r.text,forceMoveMarkers:r.forceMoveMarkers}));return this._proxy.$tryApplyEdits(this.id,e.documentVersionId,o,{setEndOfLine:typeof e.setEndOfLine=="number"?Lc.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 MA=class{constructor(t){this.value=t;this._count=0}ref(){this._count++}unref(){return--this._count===0}},eg=class{constructor(t,e){this._extHostRpc=t;this._logService=e;this._activeEditorId=null;this._editors=new Map;this._documents=new Ue;this._onDidAddDocuments=new T;this._onDidRemoveDocuments=new T;this._onDidChangeVisibleTextEditors=new T;this._onDidChangeActiveTextEditor=new T;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=y.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=y.revive(r.uri),a=this._documents.get(s);if(a&&s.scheme!==$.vscodeNotebookCell&&s.scheme!==$.vscodeInteractiveInput)throw new Error(`document '${s} already exists!'`);a||(a=new MA(new tT(this._extHostRpc.getProxy(N.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=y.revive(r.documentUri);An(this._documents.has(s),`document '${s}' does not exist`),An(!this._editors.has(r.id),`editor '${r.id}' already exists!`);let a=this._documents.get(s).value,l=new oT(r.id,this._extHostRpc.getProxy(N.MainThreadTextEditors),this._logService,new yt(()=>a.document),r.selections.map(fo.to),r.options,r.visibleRanges.map(d=>B.to(d)),typeof r.editorPosition=="number"?Mt.to(r.editorPosition):void 0);this._editors.set(r.id,l)}t.newActiveEditor!==void 0&&(An(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 It.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()]}};eg=R([C(0,me),C(1,ie)],eg);var Si=D("IExtHostDocumentsAndEditors");var Zz={type:"object",additionalProperties:!1,properties:{type:{type:"string",description:p(16908,null)},required:{type:"array",markdownDescription:p(16910,null),items:{type:"string"}},properties:{type:"object",description:p(16909,null),additionalProperties:{$ref:"http://json-schema.org/draft-07/schema#"}},when:{type:"string",markdownDescription:p(16911,null),default:""}}},sV;(t=>{function i(e,n,o){if(!e)return;let r=_e(e.type)?e.type:void 0;if(!r||r.length===0){o.error(p(16913,null));return}let s=[];if(Array.isArray(e.required))for(let a of e.required)_e(a)&&s.push(a);return{extensionId:n.value,taskType:r,required:s,properties:e.properties?xt(e.properties):{},when:e.when?Je.deserialize(e.when):void 0}}t.from=i})(sV||={});var eq=RI.registerExtensionPoint({extensionPoint:"taskDefinitions",activationEventsGenerator:function*(i){for(let t of i)t.type&&(yield`onTaskType:${t.type}`)},jsonSchema:{description:p(16912,null),type:"array",items:Zz}}),AA=class{constructor(){this._onDefinitionsChanged=new T;this.onDefinitionsChanged=this._onDefinitionsChanged.event;this.taskTypes=Object.create(null),this.readyPromise=new Promise((t,e)=>{eq.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=sV.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=xt(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}},aV=new AA;var lV="settings",o$e=new E("taskRunning",!1,p(16916,null)),r$e=new E("taskTerminalActive",!1,p(16918,null)),i$e=ws(16917,"Tasks"),LA=(n=>(n[n.Escape=1]="Escape",n[n.Strong=2]="Strong",n[n.Weak=3]="Weak",n))(LA||{});(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})(LA||={});var tq;(t=>t.defaults={cwd:"${workspaceFolder}"})(tq||={});var NA=(n=>(n[n.Always=1]="Always",n[n.Silent=2]="Silent",n[n.Never=3]="Never",n))(NA||{});(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})(NA||={});var UA=(n=>(n[n.Never=1]="Never",n[n.OnProblem=2]="OnProblem",n[n.Always=3]="Always",n))(UA||{});(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})(UA||={});var FA=(n=>(n[n.Shared=1]="Shared",n[n.Dedicated=2]="Dedicated",n[n.New=3]="New",n))(FA||{});(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})(FA||={});var nq;(t=>t.defaults={echo:!0,reveal:1,revealProblems:1,focus:!1,panel:1,showReuseMessage:!0,clear:!1,preserveTerminalName:!1})(nq||={});var HA=(n=>(n[n.Shell=1]="Shell",n[n.Process=2]="Process",n[n.CustomExecution=3]="CustomExecution",n))(HA||{});(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})(HA||={});var oq;(t=>{function i(e){return _e(e)?e:e.value}t.value=i})(oq||={});var rq;(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 _e(a)?o(a)?{_id:a,isDefault:!1}:void 0:a}s.from=r})(rq||={});var iq;(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})(iq||={});var sq;(t=>t.defaults={reevaluateOnRerun:!0,runOn:1,instanceLimit:1,instancePolicy:"prompt"})(sq||={});var VA=(e=>(e[e.Process=1]="Process",e[e.Terminal=2]="Terminal",e))(VA||{});(t=>t._default=2)(VA||={});var aq;(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})(aq||={});var OA;(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})(OA||={});var lq;(t=>{function i(e,n){let o=aV.get(e.type);if(o===void 0){let l=xt(e);return delete l._key,OA.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]=xt(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(16915,null,JSON.stringify(e,void 0,0),l));return}}}return OA.create(r)}t.createTaskIdentifier=i})(lq||={});var s$e=js("rerun-task",le.refresh,p(16914,null));var BA;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(BA||={});var WA;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(WA||={});var dV;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(dV||={});var rT;(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=dV.from(o.options)),r}n.from=t;function e(o){if(o!=null)return new ns(o.process,o.args,o.options)}n.to=e})(rT||={});var cV;(e=>{function i(n){if(n!=null)return n}e.from=i;function t(n){if(n!=null)return n}e.to=t})(cV||={});var iT;(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=cV.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 gi(o.commandLine,o.options):new gi(o.command,o.args?o.args:[],o.options)}n.to=e})(iT||={});var cd;(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})(cd||={});var dq;(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=lV),{id:e._id,workspaceFolder:o}}t.from=i})(dq||={});var uV;(t=>{function i(e){if(e!=null)return{_id:e.id,isDefault:e.isDefault}}t.from=i})(uV||={});var Jc;(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 ns?s=rT.from(o.execution):o.execution instanceof gi?s=iT.from(o.execution):o.execution&&o.execution instanceof Ic&&(s=cd.from(o.execution));let a=BA.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:uV.from(o.group),presentationOptions:WA.from(o.presentationOptions),problemMatchers:hn(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;rT.is(o.execution)?a=rT.to(o.execution):iT.is(o.execution)?a=iT.to(o.execution):cd.is(o.execution)&&(a=cd.to(o._id,s));let l=BA.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(y.revive(o.source.scope)):d=2),!l||!d)return;let c=new Rn(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=In.from(o.group._id),c.group&&o.group.isDefault&&(c.group=new In(c.group.id,c.group.label),o.group.isDefault===!0&&(c.group.isDefault=o.group.isDefault))),o.presentationOptions&&(c.presentationOptions=WA.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})(Jc||={});var pV;(e=>{function i(n){return n}e.from=i;function t(n){if(n)return Object.assign(Object.create(null),n)}e.to=t})(pV||={});var Lv=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}},Ov=class{constructor(t,e,n,o,r,s,a,l){this._onDidExecuteTask=new T;this._onDidTerminateTask=new T;this._onDidTaskProcessStarted=new T;this._onDidTaskProcessEnded=new T;this._onDidStartTaskProblemMatchers=new T;this._onDidEndTaskProblemMatchers=new T;this._proxy=t.getProxy(N.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 Ie(()=>{});let o=this.nextHandle();return this._handlers.set(o,{type:e,provider:n,extension:t}),this._proxy.$registerTaskProvider(o,e),new Ie(()=>{this._handlers.delete(o),this._proxy.$unregisterTaskProvider(o)})}registerTaskSystem(t,e){this._proxy.$registerTaskSystem(t,e)}fetchTasks(t){return this._proxy.$fetchTasks(pV.from(t)).then(async e=>{let n=[];for(let o of e){let r=await Jc.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 Lv))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=on(()=>n.provider.provideTasks(ve.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 Jc.to(e,this._workspaceProvider,this._providedCustomExecutions2);if(!o)throw new Error("Unexpected: Task cannot be resolved.");let r=await n.provider.resolveTask(o,ve.None);if(!r)return;this.checkDeprecation(r,n);let s=Jc.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 cd.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 ao("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 Lv(this,t.id,e)):o=Jc.to(t.task,this._workspaceProvider,this._providedCustomExecutions2).then(r=>{if(!r)throw new ao("Unexpected: Task does not exist.");return new Lv(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()}};Ov=R([C(0,me),C(1,at),C(2,ro),C(3,Si),C(4,Mo),C(5,xi),C(6,ie),C(7,Ea)],Ov);var tg=class extends Ov{constructor(t,e,n,o,r,s,a,l){super(t,e,n,o,r,s,a,l),this.registerTaskSystem($.vscodeRemote,{scheme:$.vscodeRemote,authority:"",platform:Jw(0)})}async executeTask(t,e){if(!e.execution)throw new Error("Tasks to execute must include an execution");let n=Jc.from(e,t);if(n===void 0)throw new Error("Task is not valid");if(cd.is(n.execution))await this.addCustomExecution(n,e,!1);else throw new yd;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=Jc.from(s,n.extension);a&&cd.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(cd.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){}};tg=R([C(0,me),C(1,at),C(2,ro),C(3,Si),C(4,Mo),C(5,xi),C(6,ie),C(7,Ea)],tg);var sT=D("IExtHostTask");var aT=class{constructor(){this.pendingRequests=new Map;this.pendingRequestTimers=new Map;this.queue=[];this._onError=new T;this._onExit=new T;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(12049,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 Pn(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 Pn(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 mV(i){return i.type&&(i.label||i.program||i.runtime)}var cq=/^[a-zA-Z][a-zA-Z0-9\+\-\.]+:/;function uq(i){return!!(i&&i.match(cq))}function gV(i){if(typeof i.path=="string"&&!(typeof i.sourceReference=="number"&&i.sourceReference>0)){if(uq(i.path))return y.parse(i.path);if(Xr(i.path))return y.file(i.path)}return i.path}function fV(i){if(typeof i.path=="object"){let t=y.revive(i.path);if(t)return t.scheme===$.file?t.fsPath:t.toString()}return i.path}function hV(i,t){let e=t?gV:fV,n=xt(i);return bV(n,(o,r)=>{o&&r&&(r.path=e(r))}),n}function vV(i,t){let e=t?gV:fV,n=xt(i);return bV(n,(o,r)=>{!o&&r&&(r.path=e(r))}),n}function bV(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 Ci=D("IExtHostEditorTabs"),lT=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 Fl(y.revive(this._dto.input.uri));case 2:return new ia(y.revive(this._dto.input.original),y.revive(this._dto.input.modified));case 3:return new Lp(y.revive(this._dto.input.base),y.revive(this._dto.input.input1),y.revive(this._dto.input.input2),y.revive(this._dto.input.result));case 6:return new Hl(y.revive(this._dto.input.uri),this._dto.input.viewType);case 7:return new Np(this._dto.input.viewType);case 4:return new Vl(y.revive(this._dto.input.uri),this._dto.input.notebookType);case 5:return new Bl(y.revive(this._dto.input.original),y.revive(this._dto.input.modified),this._dto.input.notebookType);case 8:return new Up;case 9:return new Fp(y.revive(this._dto.input.uri),y.revive(this._dto.input.inputBoxUri));case 10:return new Hp;case 11:return new Vp(this._dto.input.diffEditors.map(t=>new ia(y.revive(t.original),y.revive(t.modified))));default:return}}},$A=class{constructor(t,e){this._tabs=[];this._activeTabId="";this._dto=t,this._activeGroupIdGetter=e,this._reconcileTabs(t)}get apiObject(){if(!this._apiObject){let t=this,e={get isActive(){return t._dto.groupId===t._activeGroupIdGetter()},get viewColumn(){return Mt.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}acceptModelUpdate(t){this._dto=t,this._reconcileTabs(t)}_reconcileTabs(t){let e=new Map;for(let n of this._tabs)e.set(n.tabId,n);this._activeTabId="",this._tabs=t.tabs.map(n=>{n.isActive&&(this._activeTabId=n.id);let o=e.get(n.id);return o?(o.acceptDtoUpdate(n),o):new lT(n,this,()=>this.activeTabId())})}acceptTabOperation(t){if(t.kind===0){let n=new lT(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}},ng=class{constructor(t){this._onDidChangeTabs=new T;this._onDidChangeTabGroups=new T;this._extHostTabGroups=[];this._proxy=t.getProxy(N.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 Yr(t._extHostTabGroups.find(r=>r.groupId===n)?.apiObject)},close:async(n,o)=>{let r=Array.isArray(n)?n:[n];return r.length?pq(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(c=>c.groupId)),n=new Set(t.map(c=>c.groupId)),o=Aw(e,n),r=this._extHostTabGroups.filter(c=>o.removed.includes(c.groupId)).map(c=>c.apiObject),s=[],a=[],l=new Map;for(let c of this._extHostTabGroups)l.set(c.groupId,c);this._extHostTabGroups=t.map(c=>{let u=l.get(c.groupId);if(u)return u.acceptModelUpdate(c),a.push(u.apiObject),u;let m=new $A(c,()=>this._activeGroupId);return s.push(m.apiObject),m});let d=Yr(t.find(c=>c.isActive===!0)?.groupId);d!==void 0&&this._activeGroupId!==d&&(this._activeGroupId=d),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)}};ng=R([C(0,me)],ng);function pq(i){return i.tabs!==void 0}var S7e={6:p(18327,null),4:p(18328,null),3:p(18329,null),1:p(18330,null),2:p(18331,null),5:p(18332,null),0:p(18333,null)};var C7e={4:p(18324,null),2:p(18325,null),8:p(18323,null)};var gq=0,yV=new WeakMap,Yc=D("IExtHostTesting"),og=class extends U{constructor(e,n,o,r){super();this.logService=n;this.commands=o;this.editors=r;this.resultsChangedEmitter=this._register(new T);this.controllers=new Map;this.defaultProfilesChangedEmitter=this._register(new T);this.followupProviders=new Set;this.testFollowups=new Map;this.onResultsChanged=this.resultsChangedEmitter.event;this.results=[];this.proxy=e.getProxy(N.MainThreadTesting),this.observer=new jA(this.proxy),this.runTracker=new qA(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(Ke.root(l))?.collection.tree.get(l)?.actual??ZM(s)}case 18:{let{test:a,message:l}=s,d=a.item.extId;return{test:this.controllers.get(Ke.root(d))?.collection.tree.get(d)?.actual??ZM({$mid:16,tests:[a]}),message:lm.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(Ke.root(l));if(d)return Ke.isRoot(l)?d.controller:d.collection.tree.get(l)?.actual};return{include:s?.include.map(a).filter(Io)||[],exclude:s?.exclude.map(a).filter(Io)||[]}})}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 G,a=s.add(new VC(n,o,this.editors));a.root.label=o;let l=new Map,d=new Set,c=this.proxy,u=()=>{let v=0;r&&(v|=2);let h=g.relatedCodeProvider;return h&&(h?.provideRelatedTests&&(v|=8),h?.provideRelatedCode&&(v|=4)),v},m={items:a.root.children,get label(){return o},set label(v){o=v,a.root.label=v,c.$updateController(n,{label:o})},get refreshHandler(){return r},set refreshHandler(v){r=v,c.$updateController(n,{capabilities:u()})},get id(){return n},get relatedCodeProvider(){return g.relatedCodeProvider},set relatedCodeProvider(v){M(e,"testRelatedCode"),g.relatedCodeProvider=v,c.$updateController(n,{capabilities:u()})},createRunProfile:(v,h,I,S,w,P)=>{let A=cr(v);for(;l.has(A);)A++;return new cT(this.proxy,l,d,this.defaultProfilesChangedEmitter.event,n,A,v,h,I,S,w,P)},createTestItem(v,h,I){return new Ta(n,v,h,I)},createTestRun:(v,h,I=!0)=>this.runTracker.createTestRun(e,n,a,v,h,I),invalidateTestResults:v=>{if(v===void 0)this.proxy.$markTestRetired(void 0);else{let h=v instanceof Array?v:[v];this.proxy.$markTestRetired(h.map(I=>Ke.fromExtHostTestItem(I,n).toString()))}},set resolveHandler(v){a.resolveHandler=v},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(Y(()=>c.$unregisterTestController(n))),this.controllers.set(n,g),s.add(Y(()=>this.controllers.delete(n))),s.add(a.onDidGenerateDiff(v=>c.$publishDiff(n,v.map(gx.serialize)))),m}createTestObserver(){return this.observer.checkout()}async runTests(e,n=ve.None){let o=IV(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:dm.from(o.kind),targets:[{testIds:e.include?.map(s=>Ke.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(y.revive(e));if(!r)return[];let s=nt.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(Ke.fromExtHostTestItem(c,l.controller.id).toString());l.collection.flushDiff()}})),a}async $getCodeRelatedToTest(e,n){let o=this.controllers.get(Ke.root(e));if(!o)return[];let r=o.collection.tree.get(e);return r?(await o.relatedCodeProvider?.provideRelatedCode?.(r.actual,n))?.map(no.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(uv.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=IM.to(n),r=n.tasks.findIndex(s=>s.hasCoverage);return r!==-1&&(o.getDetailedCoverage=(s,a=ve.None)=>this.proxy.$getCoverageDetails(n.id,r,s,a).then(l=>l.map(uv.to))),yV.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(Ke.fromString(e).controllerId)?.collection;o&&(await o.expand(e,n<0?1/0:n),o.flushDiff())}$acceptDiff(e){this.observer.applyDiff(e.map(n=>gx.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 Re(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=>yV.get(a)===e.resultId),r=o&&hq(Ke.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=gq++;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(v=>s.tree.get(v)).filter(Io),u=e.excludeExtIds.map(v=>r.collection.tree.get(v)).filter(Io).filter(v=>c.some(h=>h.fullId.compare(v.fullId)===2));if(!c.length)return{};let m=new Ml(c.some(v=>v.actual instanceof Dm)?void 0:c.map(v=>v.actual),u.map(v=>v.actual),d,n),g=HH(e)&&this.runTracker.prepareForMainThreadTestRun(l,m,dT.fromInternal(e,r.collection),d,o);try{return await d.runHandler(m,o),{}}catch(v){return{error:String(v)}}finally{g&&g.hasRunningTasks&&!o.isCancellationRequested&&await Le.toPromise(g.onEnd)}}};og=R([C(0,me),C(1,ie),C(2,rr),C(3,Si)],og);var fq=1e4;var zA=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 T);this.publishedCoverage=new Map;this.onEnd=this.endEmitter.event;this.cts=this._register(new Re(a));let l=this._register(new Nn(()=>this.forciblyEndTasks(),fq));this._register(this.cts.token.onCancellationRequested(()=>l.schedule()));let d=new T;this.onDidDispose=d.event,this._register(Y(()=>{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]=Ke.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 ra){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=Be(),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(lm.from):[lm.from(m)];if(u.uri&&u.range){let v={range:B.from(u.range),uri:u.uri};for(let h of g)h.location=h.location||v}this.proxy.$appendTestMessagesInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),g)},l=!1,d=this._register(new Re(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 ra?u.includesTests:[];if(m.length)for(let h of m)this.ensureTestIsKnown(h);let g=u.uri.toString(),v=new Ke([n,r,g]).toString();this.publishedCoverage.set(v,{report:u,extIds:m.map(h=>Ke.fromExtHostTestItem(h,o).toString())}),this.proxy.$appendCoverage(n,r,uv.fromFile(o,v,u))},enqueued:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),1)}),skipped:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),5)}),started:s(u=>{this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),2)}),errored:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),6,g)}),failed:s((u,m,g)=>{a(u,m),this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,o).toString(),4,g)}),passed:s((u,m)=>{this.proxy.$updateTestStateInRun(n,r,Ke.fromExtHostTestItem(u,this.dto.controllerId).toString(),3,m)}),appendOutput:(u,m,g)=>{l||(g&&this.ensureTestIsKnown(g),this.proxy.$appendOutputToRun(n,r,ee.fromString(u),m&&no.from(m),g&&Ke.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 Ta))throw new fl(e.id);if(this.sharedTestIds.has(Ke.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()}},qA=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=Ke.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=dT.fromPublic(e,n,o,s),d=IV(o);this.proxy.$startedExtensionTestRun({controllerId:e,continuous:!!o.continuous,profile:d&&{group:dm.from(d.kind),id:d.profileId},exclude:o.exclude?.map(u=>Ke.fromExtHostTestItem(u,n.root.id).toString())??[],id:l.id,include:o.include?.map(u=>Ke.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 Le.once(c.onEnd)(()=>{this.proxy.$finishedExtensionTestRun(l.id)}),c.createRun(r)}getTracker(t,e,n,o,r){let s=new zA(e,this.proxy,this.logService,n,o,r);return this.tracked.set(t,s),this.trackedById.set(s.id,s),s}},IV=i=>{if(i.profile){if(!(i.profile instanceof cT))throw new Error("TestRunRequest.profile is not an instance created from TestController.createRunProfile");return i.profile}},dT=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,Be(),o,e)}static fromInternal(t,e){return new i(t.controllerId,t.runId,!0,e)}},KA=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=Ke.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())}},GA=class extends ux{constructor(){super(...arguments);this.changeEmitter=new T;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 KA(this.changeEmitter)}},jA=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:gu(()=>{--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 GA({asCanonicalUri:e=>e});return this.proxy.$subscribeToDiffs(),{observers:0,tests:t}}},Nv=(i,t,e,n)=>{e?Object.assign(e,n):t.$updateTestRunConfig(i.controllerId,i.profileId,n)},cT=class extends Rp{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 v=dm.from(d);u&&o.add(a),this.#o={profileId:a,controllerId:s,tag:m?qr.namespace(this.controllerId,m.id):null,label:l,group:v,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,Nv(this,this.#e,this.#o,{label:e}))}get supportsContinuousRun(){return this._supportsContinuousRun}set supportsContinuousRun(e){e!==this._supportsContinuousRun&&(this._supportsContinuousRun=e,Nv(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),Nv(this,this.#e,this.#o,{isDefault:e}))}get tag(){return this._tag}set tag(e){e?.id!==this._tag?.id&&(this._tag=e,Nv(this,this.#e,this.#o,{tag:e?qr.namespace(this.controllerId,e.id):null}))}get configureHandler(){return this._configureHandler}set configureHandler(e){e!==this._configureHandler&&(this._configureHandler=e,Nv(this,this.#e,this.#o,{hasConfigurationHandler:!!e}))}get onDidChangeDefault(){return Le.chain(this.#n,e=>e.map(n=>n.get(this.controllerId)?.get(this.profileId)).filter(Io))}dispose(){this.#s?.delete(this.profileId)&&(this.#s=void 0,this.#e.$removeTestProfile(this.controllerId,this.profileId)),this.#o=void 0}};function hq(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 S9e=D("configurationResolverService"),QA=(ue=>(ue.Unknown="unknown",ue.Env="env",ue.Config="config",ue.Command="command",ue.Input="input",ue.ExtensionInstallFolder="extensionInstallFolder",ue.TaskVar="taskVar",ue.WorkspaceFolder="workspaceFolder",ue.Cwd="cwd",ue.WorkspaceFolderBasename="workspaceFolderBasename",ue.UserHome="userHome",ue.LineNumber="lineNumber",ue.ColumnNumber="columnNumber",ue.SelectedText="selectedText",ue.File="file",ue.FileWorkspaceFolder="fileWorkspaceFolder",ue.FileWorkspaceFolderBasename="fileWorkspaceFolderBasename",ue.RelativeFile="relativeFile",ue.RelativeFileDirname="relativeFileDirname",ue.FileDirname="fileDirname",ue.FileExtname="fileExtname",ue.FileBasename="fileBasename",ue.FileBasenameNoExtension="fileBasenameNoExtension",ue.FileDirnameBasename="fileDirnameBasename",ue.ExecPath="execPath",ue.ExecInstallFolder="execInstallFolder",ue.PathSeparator="pathSeparator",ue.PathSeparatorAlias="/",ue))(QA||{}),xV=Object.values(QA).filter(i=>typeof i=="string"),io=class extends ao{constructor(e,n){super(n);this.variable=e}};var Uv=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=Ct?"windows":cn?"osx":lo?"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=It.first(t);if(!n)break;let[o,r]=n;yield r,t.delete(o)}this.newReplacementNotifiers.delete(e)}resolved(){return It.map(It.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||It.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 uT=class{constructor(t,e,n,o){this._contributedVariables=new Map;this.resolvableVariables=new Set(xV);this._context=t,this._labelService=e,this._userHomePromise=n,o&&(this._envVariablesPromise=o.then(r=>this.prepareEnv(r)))}prepareEnv(t){if(Ct){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=Uv.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=Uv.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 rp(m);throw new io(u,p(19666,null,t.id))},d=u=>{let m=l(u);if(this._context.getWorkspaceFolderPathForFile){let g=this._context.getWorkspaceFolderPathForFile();if(g)return rp(g)}throw new io(u,p(19667,null,t.id,un(m)))},c=u=>{if(a){let m=this._context.getFolderUri(a);if(m)return m;throw new io(u,p(19664,null,u,a))}if(e)return e;throw this._context.getWorkspaceFolderCount()>1?new io(u,p(19672,null,u)):new io(u,p(19671,null,u))};switch(s){case"env":if(a){if(r.env){let u=r.env[Ct?a.toLowerCase():a];if(_e(u))return u}return""}throw new io("env",p(19677,null,t.id));case"config":if(a){let u=this._context.getConfigurationValue(e,a);if(Ut(u))throw new io("config",p(19674,null,t.id,a));if(st(u))throw new io("config",p(19673,null,t.id,a));return u}throw new io("config",p(19676,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(19675,null,t.id,a));return this.fsPath(u.extensionLocation)}throw new io("extensionInstallFolder",p(19678,null,t.id));default:switch(s){case"workspaceRoot":case"workspaceFolder":{let u=c("workspaceFolder");return u?rp(this.fsPath(u)):void 0}case"cwd":{if(!e&&!a)return _s();let u=c("cwd");return u?rp(this.fsPath(u)):void 0}case"workspaceRootFolderName":case"workspaceFolderBasename":{let u=c("workspaceFolderBasename");return u?rp(un(this.fsPath(u))):void 0}case"userHome":if(r.userHome)return r.userHome;throw new io("userHome",p(19670,null,t.id));case"lineNumber":{let u=this._context.getLineNumber();if(u)return u;throw new io("lineNumber",p(19668,null,t.id))}case"columnNumber":{let u=this._context.getColumnNumber();if(u)return u;throw new Error(p(19665,null,t.id))}case"selectedText":{let u=this._context.getSelectedText();if(u)return u;throw new io("selectedText",p(19669,null,t.id))}case"file":return l("file");case"fileWorkspaceFolder":return d("fileWorkspaceFolder");case"fileWorkspaceFolderBasename":return un(d("fileWorkspaceFolderBasename"));case"relativeFile":return e||a?Ms(this.fsPath(c("relativeFile")),l("relativeFile")):l("relativeFile");case"relativeFileDirname":{let u=Li(l("relativeFileDirname"));if(e||a){let m=Ms(this.fsPath(c("relativeFileDirname")),u);return m.length===0?".":m}return u}case"fileDirname":return Li(l("fileDirname"));case"fileExtname":return As(l("fileExtname"));case"fileBasename":return un(l("fileBasename"));case"fileBasenameNoExtension":{let u=un(l("fileBasenameNoExtension"));return u.slice(0,u.length-As(u).length)}case"fileDirnameBasename":return un(Li(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 Xn;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(19679,null,e))}return e}};var Xc=D("IExtHostVariableResolverProvider"),JA=class extends uT{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 ia||c.input instanceof Bl)return c.input.modified;if(c.input instanceof Fl||c.input instanceof Vl||c.input instanceof Hl)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:()=>_s(),getExecPath:()=>xo.VSCODE_EXEC_PATH,getFilePath:()=>{let d=l();if(d)return Ko(d.fsPath)},getWorkspaceFolderPathForFile:()=>{if(e){let d=l();if(d){let c=e.getWorkspaceFolder(d);if(c)return Ko(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(xo))}},rg=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 yt(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 JA(this.extensionService,this.workspaceService,this.editorService,this.editorTabs,e,o,this.homeDir())})}getResolver(){return this._resolver.value}homeDir(){}};rg=R([C(0,Ao),C(1,ro),C(2,Si),C(3,Mo),C(4,Ci)],rg);var pT=D("IExtHostDebugService"),Fv=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 T),this._onDidTerminateDebugSession=this._register(new T),this._onDidChangeActiveDebugSession=this._register(new T),this._onDidReceiveDebugSessionCustomEvent=this._register(new T),this._debugServiceProxy=e.getProxy(N.MainThreadDebugService),this._onDidChangeBreakpoints=this._register(new T),this._onDidChangeActiveStackItem=this._register(new T),this._activeDebugConsole=new XA(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(N.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=xe.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),Y(()=>{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})),DM.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}`,y.parse(r)}else{if(o.path)return y.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)mV(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=xe.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),Y(()=>{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 fi){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 hi&&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 fi).map(a=>a.id),r=n.filter(a=>a instanceof hi).map(a=>a.id),s=n.filter(a=>a instanceof fc).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 Ie(()=>{});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 Ie(()=>{this._configProviders=this._configProviders.filter(s=>s.provider!==n),this._debugServiceProxy.$unregisterDebugConfigurationProvider(r)})}registerDebugAdapterDescriptorFactory(e,n,o){if(!o)return new Ie(()=>{});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 Ie(()=>{this._adapterFactories=this._adapterFactories.filter(s=>s.factory!==o),this._debugServiceProxy.$unregisterDebugAdapterDescriptorFactory(r)})}registerDebugAdapterTrackerFactory(e,n){if(!n)return new Ie(()=>{});let o=this._trackerFactoryHandleCounter++;return this._trackerFactories.push({type:e,handle:o,factory:n}),new Ie(()=>{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 na)return new e1(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=vV(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=hV(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 hi(s.functionName,s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode);else if(s.type==="data")l=new fc(s.label,s.dataId,s.canPersist,s.enabled,s.hitCondition,s.condition,s.logMessage,s.mode);else{let d=y.revive(s.uri);l=new fi(new zt(d,new we(s.line,s.character)),s.enabled,s.condition,s.hitCondition,s.logMessage,s.mode)}e2(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 hi&&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 fi&&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 zt(y.revive(s.uri),new we(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 Pp(o.api,e.threadId):n=new kp(o.api,e.threadId,e.frameId)}this._activeStackItem=n,this._onDidChangeActiveStackItem.fire(this._activeStackItem)}$provideDebugConfigurations(e,n,o){return on(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 on(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 on(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 wl)return this.convertExecutableToDto(e);if(e instanceof ta)return this.convertServerToDto(e);if(e instanceof kl)return this.convertPipeServerToDto(e);if(e instanceof na)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=>on(()=>s.factory.createDebugAdapterTracker(e.api)).then(a=>a,a=>null));return Promise.race([Promise.all(r).then(s=>{let a=ut(s);if(a.length>0)return new ZA(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 ta(o));if(e){let s=await this._extensionService.getExtensionRegistry();return on(()=>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 YA(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=y.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=Ye.asClassName(n):o=n,{iconPath:o,iconClass:r}}getIconUris(e){if(e instanceof ln)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"?y.file(n):n,light:typeof o=="string"?y.file(o):o}}};Fv=R([C(0,me),C(1,ro),C(2,Ao),C(3,Mo),C(4,Ci),C(5,Xc),C(6,rr),C(7,Yc)],Fv);var YA=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}},XA=class{constructor(t){this.value=Object.freeze({append(e){t.$appendDebugConsole(e)},appendLine(e){this.append(e+`
`)}})}},ZA=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)}},e1=class extends aT{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)}},ig=class extends Fv{constructor(t,e,n,o,r,s,a,l){super(t,e,n,o,r,s,a,l)}};ig=R([C(0,me),C(1,ro),C(2,Ao),C(3,Mo),C(4,Ci),C(5,Xc),C(6,rr),C(7,Yc)],ig);function vq(i){return"uri"in i&&"ranges"in i&&"preview"in i}function bq(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 sg=class{constructor(t){this.provider=t}provideFileSearchResults(t,e,n){return(async()=>{let r=bq(e);return Promise.all(r.map(s=>this.provider.provideFileSearchResults({pattern:t},s,n)))})().then(r=>ut(r).flat())}};function yq(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:Iq(i.previewOptions),maxFileSize:i.maxFileSize,encoding:t.encoding,afterContext:i.surroundingContext,beforeContext:i.surroundingContext}))}function Iq(i){return{matchLines:i?.matchLines??bv.matchLines,charsPerLine:i?.charsPerLine??bv.charsPerLine}}function xq(i){if(vq(i)){let t=hn(i.ranges).map((e,n)=>{let r=hn(i.preview.matches)[n];return{sourceRange:e,previewRange:r}});return new or(i.uri,t,i.preview.text)}else return new Yl(i.uri,i.text,i.lineNumber)}var mT=class{constructor(t){this.provider=t}provideTextSearchResults(t,e,n,o){let r=l=>{Sq(l)&&n.report(xq(l))};return(async()=>ut(await Promise.all(yq(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:ut(hn(l.message))}))}};function Sq(i){if(Cq(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 Cq(i){return!!i.preview}var ag=class extends Fo{constructor(t,e,n=()=>!1){let o=new Ff(n,()=>!1);super(o);let r=new Ue;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 t1=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&&li(t.includePattern,o),this.maxResults=t.maxResults||void 0,this.exists=t.exists,this.activeCancellationTokens=new Set,this.globalExcludePattern=t.excludePattern&&li(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=un(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(ni(s)))})})}async doSearch(t,e){let n=new Re,o=t.map(c=>this.getSearchOptionsForFolder(c)),r=this.provider instanceof sg?this.sessionLifecycle?.tokenSource.token:this.sessionLifecycle?.obj,s={folderOptions:o,maxResults:this.config.maxResults??CC,session:r},a=c=>{let u=new fm(this.config,c),m=!u.hasSiblingExcludeClauses();return{queryTester:u,noSiblingsClauses:m,folder:c.folder,tree:this.initDirectoryTree()}},l=new ag(t,a),d;try{this.activeCancellationTokens.add(n),d=Vn.create();let c=await this.provider.provideFileSearchResults(this.config.filePattern||"",s,n.token),u=d.elapsed(),m=Vn.create();return this.isCanceled&&!this.isLimitHit||(c&&c.forEach(g=>{let v=l.findQueryFragmentAwareSubstr(g),h=Ve.relative(v.folder.path,g.path);if(v.noSiblingsClauses){let I=un(g.path);this.matchFile(e,{base:v.folder,relativePath:h,basename:I});return}this.addDirectoryEntries(v.tree,v.folder,h,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=Xl(this.config.includePattern,t.includePattern),n=t.excludePattern?.map(r=>({folder:r.folder,patterns:Xl(this.config.excludePattern,r.pattern)}));n?.length||(n=[{folder:void 0,patterns:Xl(this.config.excludePattern,void 0)}]);let o=EC(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&&jb(n,this.filePattern,this.config.ignoreGlobCase)){let s=un(this.filePattern);this.matchFile(o,{base:e,relativePath:this.filePattern,basename:s})}function r(s){let a=un(s),l=Li(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=y2(()=>d.map(u=>u.basename));for(let u=0,m=d.length;u<m;u++){let g=d[u],{relativePath:v,basename:h}=g;if(n.matchesExcludesSync(v,h,jb(s,h,a)?void 0:c))continue;let I=e[v];if(I)l(I);else{if(jb(v,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))}},n1=class{constructor(){this._obj=new Object,this.tokenSource=new Re}get obj(){if(this._obj)return this._obj;throw new Error("Session object has been dereferenced.")}cancel(){this.tokenSource.cancel(),this._obj=void 0}},gT=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 t1(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 n1),this.sessions.get(t)}rawMatchToSearchItem(t){return t.relativePath?{resource:Lt(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 Hv=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 Re(e);return new Promise((s,a)=>{this.collector=new o1(t);let l=!1,d=(c,u)=>{if(!(c instanceof $c)&&!l&&!this.isLimitHit){let m=this.resultSize(c);c instanceof or&&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 v=c instanceof or;(g>0||!v)&&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=ni(c);a(new Error(u))})})}getMessagesFromResults(t){return t?.message?Array.isArray(t.message)?t.message:[t.message]:[]}resultSize(t){return t instanceof or?Array.isArray(t.ranges)?t.ranges.length:1:0}trimResultToSize(t,e){return new or(t.uri,t.ranges.slice(0,e),t.previewText)}async doSearch(t,e,n,o){let r=new ag(t,(u,m)=>({queryTester:new fm(this.query,u),folder:u.folder,folderIdx:m}),()=>!0),s=[],a={report:u=>{if(u instanceof $c)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===$.file?b2(()=>this.fileUtils.readdir(Go(u.uri))):void 0,v=Cf(m.folder,u.uri);if(v){let h=m.queryTester.includedInQuery(v,un(v),g);_r(h)?s.push(h.then(I=>{I&&e(u,m.folderIdx)})):h&&e(u,m.folderIdx)}}}}},d={folderOptions:t.map(u=>this.getSearchOptionsForFolder(u)),maxFileSize:this.query.maxFileSize,maxResults:this.query.maxResults??CC,previewOptions:this.query.previewOptions??bv,surroundingContext:this.query.surroundingContext??0},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(Tq(this.queryProviderPair.query.contentPattern),d,a,n),s.length&&await Promise.all(s),c}getSearchOptionsForFolder(t){let e=Xl(this.query.includePattern,t.includePattern),n=t.excludePattern?.map(s=>({folder:s.folder,patterns:Xl(this.query.excludePattern,s.pattern)}));(!n||n.length===0)&&(n=[{folder:void 0,patterns:Xl(this.query.excludePattern,void 0)}]);let o=EC(n);return{folder:y.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 Tq(i){return{isCaseSensitive:i.isCaseSensitive||!1,isRegExp:i.isRegExp||!1,isWordMatch:i.isWordMatch||!1,isMultiline:i.isMultiline||!1,pattern:i.pattern}}var o1=class{constructor(t){this._onResult=t;this._currentFolderIdx=-1;this._currentFileMatch=null;this._batchedCollector=new r1(512,e=>this.sendItems(e))}add(t,e){this._currentFileMatch&&(this._currentFolderIdx!==e||!nn(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(Eq(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 Eq(i){return i instanceof or?{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 r1=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 fT=D("IExtHostSearch"),lg=class{constructor(t,e,n){this.extHostRpc=t;this._uriTransformer=e;this._logService=n;this._proxy=this.extHostRpc.getProxy(N.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 gT}_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 mT(e)),this._proxy.$registerTextSearchProvider(n,this._transformScheme(t)),Y(()=>{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)),Y(()=>{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)),Y(()=>{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 sg(e)),this._proxy.$registerFileSearchProvider(n,this._transformScheme(t)),Y(()=>{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)),Y(()=>{this._fileSearchUsedSchemes.delete(t),this._fileSearchProvider.delete(n),this._proxy.$unregisterProvider(n)})}$provideFileSearchResults(t,e,n,o){let r=i1(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=i1(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=i1(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 Hv({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"textSearchProvider")}createAITextSearchManager(t,e){return new Hv({query:t,provider:e},{readdir:n=>Promise.resolve([]),toCanonicalName:n=>n},"aiTextSearchProvider")}};lg=R([C(0,me),C(1,nl),C(2,ie)],lg);function i1(i){return{...i,folderQueries:i.folderQueries&&i.folderQueries.map(wq),extraFileResources:i.extraFileResources&&i.extraFileResources.map(t=>y.revive(t))}}function wq(i){return Dt(i)}var dg=class extends U{constructor(e){super();this._onDidSuspend=this._register(new T);this.onDidSuspend=this._onDidSuspend.event;this._onDidResume=this._register(new T);this.onDidResume=this._onDidResume.event;this._onDidChangeOnBatteryPower=this._register(new T);this.onDidChangeOnBatteryPower=this._onDidChangeOnBatteryPower.event;this._onDidChangeThermalState=this._register(new T);this.onDidChangeThermalState=this._onDidChangeThermalState.event;this._onDidChangeSpeedLimit=this._register(new T);this.onDidChangeSpeedLimit=this._onDidChangeSpeedLimit.event;this._onWillShutdown=this._register(new T);this.onWillShutdown=this._onWillShutdown.event;this._onDidLockScreen=this._register(new T);this.onDidLockScreen=this._onDidLockScreen.event;this._onDidUnlockScreen=this._register(new T);this.onDidUnlockScreen=this._onDidUnlockScreen.event;this._proxy=e.getProxy(N.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))}}}};dg=R([C(0,me)],dg);var hT=D("IExtHostPower");var cg=class extends Iy{constructor(t,e){super(e.logLevel,e.logsLocation,e.loggers.map(n=>Dt(n))),this._proxy=t.getProxy(N.MainThreadLogger)}$setLogLevel(t,e){e?this.setLogLevel(y.revive(e),t):this.setLogLevel(t)}setVisibility(t,e){super.setVisibility(t,e),this._proxy.$setVisibility(t,e)}doCreateLogger(t,e,n){return new s1(this._proxy,t,e,n)}};cg=R([C(0,me),C(1,at)],cg);var s1=class extends wu{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 bT=D("IExtHostBrowserTunnelProxy"),vT=class{$setEnabled(t){}};var xT=D("IExtHostTerminalShellIntegration"),ug=class extends U{constructor(e,n){super();this._extHostTerminalService=n;this._activeShellIntegrations=new Map;this._onDidChangeTerminalShellIntegration=this._register(new T);this.onDidChangeTerminalShellIntegration=this._onDidChangeTerminalShellIntegration.event;this._onDidStartTerminalShellExecution=this._register(new T);this.onDidStartTerminalShellExecution=this._onDidStartTerminalShellExecution.event;this._onDidEndTerminalShellExecution=this._register(new T);this.onDidEndTerminalShellExecution=this._onDidEndTerminalShellExecution.event;this._proxy=e.getProxy(N.MainThreadTerminalShellIntegration),this._register(Y(()=>{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 a1(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?y.file(e):void 0}};ug=R([C(0,me),C(1,xi)],ug);var a1=class extends U{constructor(e,n,o){super();this._terminal=e;this._onDidStartTerminalShellExecution=o;this._pendingExecutions=[];this.store=this._register(new G);this._onDidRequestChangeShellIntegration=this._register(new T);this.onDidRequestChangeShellIntegration=this._onDidRequestChangeShellIntegration.event;this._onDidRequestShellExecution=this._register(new T);this.onDidRequestShellExecution=this._onDidRequestShellExecution.event;this._onDidRequestEndExecution=this._register(new T);this.onDidRequestEndExecution=this._onDidRequestEndExecution.event;this._onDidRequestNewExecution=this._register(new T);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 IT(e,n??this._cwd);return yT(e.value).length>1&&(this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:yT(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=SV(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=SV(yT(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 IT(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;y.isUri(this._cwd)?n=!y.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})}},IT=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 Os.EMPTY;this._dataStream=new l1}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)}},l1=class extends U{constructor(){super(...arguments);this._iterables=[];this._emitters=[]}createIterable(){this._barrier||(this._barrier=new Ln);let e=this._barrier,n=new Os(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 yT(i){return i.split(`
`).map(t=>t.trim()).filter(t=>t.length>0)}function SV(i,t){if(i.length===0)return!1;let e=[...i],n=yT(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 pg=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 Vv=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},mg=class extends Vv{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}}},kq=new mg("string");function Wv(){return kq}var Pq=new mg("number");function CV(){return Pq}var o6e=new mg("boolean");var _q=new mg("object");function ST(){return _q}var Bv=class{constructor(t){this.validator=t}};function Zc(i){return new Bv(i)}var d1=class extends Vv{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 Bv,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 Bv,l=a?s.validator:s;n[r]=l.getJSONSchema(),a||e.push(r)}return{type:"object",properties:n,...e.length>0?{required:e}:{}}}};function $v(i){return new d1(i)}var c1=class extends Vv{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 u1(i){return new c1(i)}var zv=D("IExtHostMpcService"),Dq=$v({label:Wv(),version:Zc(Wv()),metadata:Zc($v({capabilities:Zc(ST()),serverInfo:Zc(ST()),tools:Zc(u1($v({availability:CV(),definition:ST()})))})),authentication:Zc($v({providerId:Wv(),scopes:u1(Wv())}))}),gg=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 T);this.onDidChangeMcpServerDefinitions=this._onDidChangeMcpServerDefinitions.event;this._mcpServerDefinitions=[];this._activeGateways=new Map;this._proxy=e.getProxy(N.MainThreadMcp)}get mcpServerDefinitions(){return this._mcpServerDefinitions}$onDidChangeMcpServerDefinitions(e){this._mcpServerDefinitions=e.map(n=>gm.to(n)),this._onDidChangeMcpServerDefinitions.fire()}$startMcp(e,n){this._startMcp(e,ac.fromSerialized(n.launch),n.defaultCwd&&y.revive(n.defaultCwd),n.errorOnUserInteraction)}_startMcp(e,n,o,r){if(n.type===2){this._sseEventSources.set(e,new f1(e,n,this._proxy,this._logService,r));return}throw new Error("not implemented")}async $substituteVariables(e,n){let o=y.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 gm.from(r);let s=await o.provider.resolveMcpServerDefinition(r,ve.None);return s?gm.from(s):void 0}registerMcpConfigurationProvider(e,n,o){let r=new G,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:UH(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(ve.None);this._unresolvedMcpServers.set(a.id,{servers:c??[],provider:o});let u=[];for(let m of c??[]){let g=xe.toKey(e.identifier)+"/"+m.label;if(u.some(I=>I.id===g)){let I=2;for(;u.some(S=>S.id===g+I);)I++;g=g+I}Dq.validateOrThrow(m),m.authentication&&M(e,"mcpToolDefinitions");let v,h=m;De(e,"mcpToolDefinitions")&&h.metadata&&(v={capabilities:h.metadata.capabilities,instructions:h.metadata.instructions,serverInfo:h.metadata.serverInfo,tools:h.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:v,launch:gm.from(m)})}this._proxy.$upsertMcpCollection(a,u)};r.add(Y(()=>{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:y.revive(a.address)})),s=new T;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:y.revive(s.address)}));o.servers.length=0,o.servers.push(...r),o.onDidChangeServers.fire(r)}};gg=R([C(0,me),C(1,ie),C(2,at),C(3,ro),C(4,Xc)],gg);function p1(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 Rq=5,Mq=[301,302,303,307,308],Aq=new Set(["http:","https:"]),Oq=new Set(["authorization","cookie","proxy-authorization","mcp-session-id"]);function m1(i,t,e){for(let n of Object.keys(i))n.toLowerCase()===t.toLowerCase()&&delete i[n];i[t]=e}var f1=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 ry;this._postEndpoint=new pn;this._mode={value:0};this._cts=new Re;this._abortCtrl=new AbortController;this._didSendClose=!1;this._register(Y(()=>{this._abortCtrl.abort(),this._cts.dispose(!0)})),this._proxy.$onDidChangeState(this._id,{state:ui.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}: ${p1(n)}`;this._proxy.$onDidChangeState(this._id,{state:ui.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:ui.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&&!g1(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:ui.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 pg(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 ct});try{await this._doSSE(r,e)}catch(s){this._log(4,`Error reading SSE stream: ${p1(s)}`)}}else if(o.startsWith("application/json"))this._proxy.$onDidReceiveMessage(this._id,await e.text());else{let r=await e.text();Lq(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 Pn(Math.max(0,n-Date.now()),this._cts.token),n=void 0):await Pn(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 pg(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 pn,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:ui.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:ui.Kind.Error,message:`Error connecting to ${this._launch.uri} as SSE: ${s}`});return}let r=new pg(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(Y(()=>e.cancel())),this._doSSE(r,o).catch(s=>{this._proxy.$onDidChangeState(this._id,{state:ui.Kind.Error,message:`Error reading SSE stream: ${p1(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 Bi(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&&m1(e,"Authorization",`Bearer ${s}`)}catch(r){if(Uh.is(r))throw this._proxy.$onDidChangeState(this._id,{state:ui.Kind.Stopped,reason:"needs-user-interaction"}),new ct;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&&(m1(e,"Authorization",`Bearer ${r}`),this._log(3,"Successfully obtained token from provided authentication config"))}catch(r){if(Uh.is(r))throw this._proxy.$onDidChangeState(this._id,{state:ui.Kind.Stopped,reason:"needs-user-interaction"}),new ct;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(g1(s.status)&&(this._authMetadata?this._authMetadata.update(s.headers)&&(await this._addAuthHeader(o),o.Authorization&&(n.headers=o,s=await r())):(this._authMetadata=await Nq(e,s.headers,{sameOriginHeaders:{...Object.fromEntries(this._launch.headers),"MCP-Protocol-Version":Nh.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&&g1(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(m1(n.headers,"user-agent",`${hr.nameLong}/${hr.version}`),ku(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<Rq&&(r=await this._fetchInternal(o,{...n,signal:this._abortCtrl.signal,redirect:"manual"}),!!Mq.includes(r.status));s++){let a=r.headers.get("location");if(!a)break;let l=new URL(o),d=new URL(a,o);if(!Aq.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))Oq.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(ku(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 Lq(i){try{return JSON.parse(i),!0}catch{return!1}}function g1(i){return i===401||i===403}var CT=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 W2(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=aA(e);for(let o of n)if(o.scheme==="Bearer"&&o.params.scope){let r=o.params.scope.split(Om).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 Nq(i,t,e){let{sameOriginHeaders:n,fetch:o,log:r}=e,s="none",a,{resourceMetadataChallenge:l,scopesChallenge:d}=Uq(t.get("WWW-Authenticate")??void 0,r),c,u,m=d;try{let{metadata:I,discoveryUrl:S,errors:w}=await $2(i,l,{sameOriginHeaders:n,fetch:(P,A)=>o(P,A)});for(let P of w)r(4,`Error fetching resource metadata: ${P}`);r(3,`Discovered resource metadata at ${S}`),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 ${S} - 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,v={};c||(c=g,n&&(v=n));try{r(2,`Fetching auth server metadata for: ${c} ...`);let{metadata:I,discoveryUrl:S,errors:w}=await WC(c,{additionalHeaders:v,fetch:(P,A)=>o(P,A)});for(let P of w)r(4,`Error fetching authorization server metadata: ${P}`);return r(3,`Discovered authorization server metadata at ${S}`),a??="wellKnown",new CT(y.parse(c),I,u,m,{resourceMetadataSource:s,serverMetadataSource:a},r)}catch(I){r(4,`Error populating auth server metadata for ${c}: ${String(I)}`)}let h=B2(new URL(g));return r(3,"Using default auth metadata"),new CT(y.parse(g),h,u,m,{resourceMetadataSource:s,serverMetadataSource:"default"},r)}function Uq(i,t){if(!i)return{};let e,n,o=aA(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(Om).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 Z6e=D("dataChannelService"),e3e=D("linkPresentationService");function EV(i){if(!h1(i)||!Hq(i.kind))throw new Error("Invalid link presentation payload");let t=TV(i.status),e=TV(i.secondaryStatus),n=Fq(i.changes);return{kind:i.kind,...typeof i.title=="string"?{title:i.title}:{},...typeof i.detail=="string"?{detail:i.detail}:{},...typeof i.reference=="string"?{reference:i.reference}:{},...t?{status:t}:{},...e?{secondaryStatus:e}:{},...n?{changes:n}:{},...typeof i.tooltip=="string"?{tooltip:i.tooltip}:{},...typeof i.ariaLabel=="string"?{ariaLabel:i.ariaLabel}:{},...i.isLoading===!0?{isLoading:!0}:{}}}function TV(i){if(i!==void 0){if(!h1(i)||!Vq(i.kind)||typeof i.label!="string")throw new Error("Invalid link presentation status");return{kind:i.kind,label:i.label}}}function Fq(i){if(i!==void 0){if(!h1(i)||typeof i.insertions!="number"||typeof i.deletions!="number")throw new Error("Invalid link presentation changes");return{insertions:i.insertions,deletions:i.deletions}}}function Hq(i){return i==="resource"||i==="issue"||i==="pullRequest"||i==="commit"||i==="file"||i==="folder"||i==="session"||i==="chat"||i==="repository"||i==="branch"}function Vq(i){return i==="neutral"||i==="pending"||i==="success"||i==="warning"||i==="error"||i==="open"||i==="closed"||i==="merged"||i==="draft"||i==="notPlanned"}function h1(i){return typeof i=="object"&&i!==null}var TT=D("IExtHostDataChannels"),wa=class{constructor(t){this._channels=new Map;this._linkPresentationWatchers=new Map;this._linkPresentationProviders=new Map;this._providedLinkPresentationWatchers=new Map;this._linkPresentationCache=new Map;this._onDidChangeLinkPresentationRules=new T;this.onDidChangeLinkPresentationRules=this._onDidChangeLinkPresentationRules.event;this._linkPresentationRules=[];this._proxy=t.getProxy(N.MainThreadDataChannels)}static{this._linkPresentationWatcherHandlePool=0}static{this._linkPresentationProviderHandlePool=0}get linkPresentationRules(){return this._linkPresentationRules}createDataChannel(t,e){M(t,"dataChannels");let n=this._channels.get(e);return n||(n=new v1(e),this._channels.set(e,n)),n}createLinkPresentationWatcher(t,e,n){M(t,"linkPresentation");let o=n.toString(!0),r=this._linkPresentationRules.find(u=>u.id===e&&Bq(u.uriPattern,o));if(!r)throw new Error(`Link presentation provider '${e}' does not accept '${o}'.`);let s=`${e}\0${o}`,l={...this._getCachedLinkPresentation(s)??{kind:r.initialKind},isLoading:!0},d=wa._linkPresentationWatcherHandlePool++,c=new b1(d,l,this._proxy,u=>this._linkPresentationWatchers.delete(u),u=>this._cacheLinkPresentation(s,u));return this._linkPresentationWatchers.set(d,c),this._proxy.$createLinkPresentationWatcher(d,e,n),c}registerLinkPresentationProvider(t,e,n){if(M(t,"linkPresentation"),!e.trim())throw new Error("Link presentation provider id must not be empty.");let o=wa._linkPresentationProviderHandlePool++;return this._linkPresentationProviders.set(o,n),this._proxy.$registerLinkPresentationProvider(o,t.identifier.value,e),Y(()=>{this._proxy.$unregisterLinkPresentationProvider(o),this._linkPresentationProviders.delete(o);for(let[r,s]of this._providedLinkPresentationWatchers)s.providerHandle===o&&(s.store.dispose(),this._providedLinkPresentationWatchers.delete(r))})}$onDidReceiveData(t,e){this._channels.get(t)?._fireDidReceiveData(e)}$acceptLinkPresentationRules(t){this._linkPresentationRules=t.map(e=>({id:e.id,uriPattern:new RegExp(e.source,e.flags),initialKind:e.initialKind})),this._onDidChangeLinkPresentationRules.fire()}$acceptLinkPresentation(t,e){this._linkPresentationWatchers.get(t)?.acceptPresentation(e)}async $createLinkPresentationWatcher(t,e,n){let o=this._linkPresentationProviders.get(e);if(!o)throw new Error(`Link presentation provider handle '${e}' is not registered.`);let r=o.provideLinkPresentationWatcher(y.revive(n),ve.None),s=new G;return s.add(r),s.add(r.onDidChangePresentation(()=>{this._proxy.$acceptLinkPresentationProviderData(t,r.presentation)})),this._providedLinkPresentationWatchers.set(t,{providerHandle:e,store:s}),r.presentation}$disposeLinkPresentationWatcher(t){let e=this._providedLinkPresentationWatchers.get(t);e&&(this._providedLinkPresentationWatchers.delete(t),e.store.dispose())}_getCachedLinkPresentation(t){let e=this._linkPresentationCache.get(t);return e&&(this._linkPresentationCache.delete(t),this._linkPresentationCache.set(t,e)),e}_cacheLinkPresentation(t,e){for(this._linkPresentationCache.delete(t),this._linkPresentationCache.set(t,e);this._linkPresentationCache.size>100;){let n=this._linkPresentationCache.keys().next().value;if(n===void 0)break;this._linkPresentationCache.delete(n)}}};wa=R([C(0,me)],wa);var v1=class extends U{constructor(e){super();this.channelId=e;this._onDidReceiveData=this._register(new T);this.onDidReceiveData=this._onDidReceiveData.event}_fireDidReceiveData(e){this._onDidReceiveData.fire({data:e})}toString(){return`DataChannel(${this.channelId})`}},b1=class extends U{constructor(e,n,o,r,s){super();this._onDidAcceptPresentation=s;this._onDidChangePresentation=this._register(new T);this.onDidChangePresentation=this._onDidChangePresentation.event;this._presentation=n,this._register({dispose:()=>{o.$disposeLinkPresentationWatcher(e),r(e)}})}get presentation(){return this._presentation}acceptPresentation(e){this._presentation=EV(e),this._onDidAcceptPresentation(this._presentation),this._onDidChangePresentation.fire()}};function Bq(i,t){return i.lastIndex=0,i.test(t)}var wT=D("IExtHostMeteredConnection"),ET=class extends U{constructor(){super();this._isConnectionMetered=!1;this._onDidChangeIsConnectionMetered=this._register(new T);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 kT="vscode.git";function wV(i){switch(i){case 0:return 0;case 1:return 1;case 2:return 2;default:throw new Error(`Unknown GitRefType: ${i}`)}}function Wq(i){return{name:i.name,commit:i.commit,type:wV(i.type),remote:i.remote,upstream:i.upstream?$q(i.upstream):void 0,ahead:i.ahead,behind:i.behind}}function $q(i){return{remote:i.remote,name:i.name,commit:i.commit}}function fg(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 PT=D("IExtHostGitExtensionService"),ud=class extends U{constructor(e,n){super();this._extHostExtensionService=n;this._repositories=new Map;this._repositoryByUri=new Ue;this._repositoryStateChangeListeners=new wn;this._proxy=e.getProxy(N.MainThreadGitExtension)}static{this._handlePool=0}async $isGitExtensionAvailable(){return!!(await this._extHostExtensionService.getExtensionRegistry()).getExtensionDescription(kT)}async $openRepository(e){let n=await this._ensureGitApi();if(!n)return;let o=await n.openRepository(y.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=ud._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:wV(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?Wq(n.HEAD):void 0,remotes:n.remotes,mergeChanges:n.mergeChanges.map(fg),indexChanges:n.indexChanges.map(fg),workingTreeChanges:n.workingTreeChanges.map(fg),untrackedChanges:n.untrackedChanges.map(fg)}}_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=>({...fg(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=>({...fg(a),insertions:a.insertions,deletions:a.deletions}))}catch{return[]}}async _ensureGitApi(){if(this._gitApi)return this._gitApi;try{await this._extHostExtensionService.activateByIdWithErrors(new xe(kT),{startup:!1,extensionId:new xe(kT),activationEvent:"api"});let e=this._extHostExtensionService.getExtensionExports(new xe(kT));e&&typeof e.getAPI=="function"&&(this._gitApi=e.getAPI(1))}catch{}return this._gitApi}dispose(){this._repositoryStateChangeListeners.dispose(),super.dispose()}};ud=R([C(0,me),C(1,Ao)],ud);qe(jm,Gm,1);qe(ur,cg,1);qe(Ea,Xm,1);qe(rr,Mm,0);qe(Qc,Nm,0);qe(Bm,sd,0);qe(Mo,bm,0);qe(td,Vo,0);qe(Yc,og,0);qe(pT,ig,0);qe(XC,vs,0);qe(Si,eg,0);qe(Jm,Qm,0);qe(bT,vT,0);qe(Ar,Dy,0);qe(YC,Zm,1);qe(fT,lg,0);qe(Cm,Sm,0);qe(sT,tg,0);qe(xi,Am,0);qe(xT,ug,0);qe(km,wm,0);qe(Gc,rd,0);qe(hT,dg,0);qe(jc,id,0);qe(ro,hm,0);qe(Km,qm,0);qe(Ci,ng,0);qe(Xc,rg,0);qe(zv,gg,0);qe(TT,wa,0);qe(wT,ET,0);qe(PT,ud,1);var _T=class extends U{constructor(t,e=[]){super(),this.logger=new yy([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 hg=class extends _T{constructor(t,e,n){let o=n.remote.isRemote?"remoteexthost":t?"workerexthost":"exthost",r=n.remote.isRemote?p(3801,null):t?p(3802,null):p(3800,null);super(e.createLogger(o,{name:r}))}};hg=R([C(1,ur),C(2,at)],hg);function y1(i,t,e,n,o,r){if(Array.isArray(i)){let s=0;for(let a of i){let l=y1(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:Ko(a.base)},m===t.fsPath||br(m,t.fsPath))u=10;else return 0}return u}else return 0}}function I1(i){return typeof i=="string"?!1:Array.isArray(i)?i.some(I1):!!i.notebookType}var x1=(o=>(o[o.None=0]="None",o[o.Indent=1]="Indent",o[o.IndentOutdent=2]="IndentOutdent",o[o.Outdent=3]="Outdent",o))(x1||{});var zKe=D("editSessionIdentityService"),S1=(n=>(n[n.Complete=100]="Complete",n[n.Partial=50]="Partial",n[n.None=0]="None",n))(S1||{});var DT=class{constructor(t){this._relatedInformationProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(N.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 Ie(()=>{this._proxy.$unregisterAiRelatedInformationProvider(o),this._relatedInformationProviders.delete(o)})}};var RT=class{constructor(t){this._settingsSearchProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(N.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 rl(a=>{this._proxy.$handleSearchResult(t,MM.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 Ie(()=>{this._proxy.$unregisterAiSettingsSearchProvider(n),this._settingsSearchProviders.delete(n)})}};function kV(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 qq(i){let t=new Uint8Array(i.buffer,i.byteOffset,i.length*4);return Ab()||kV(t),ee.wrap(t)}function Kq(i){let t=i.buffer;if(Ab()||kV(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 MT(i){let t=new Uint32Array(Gq(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 qq(t)}function Gq(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 C1(i){let t=Kq(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 jq=[new Pe("vscode.executeDocumentHighlights","_executeDocumentHighlights","Execute document highlight provider.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of DocumentHighlight-instances.",Ti(Oc.to))),new Pe("vscode.executeDocumentSymbolProvider","_executeDocumentSymbolProvider","Execute document symbol provider.",[ne.Uri],new ke("A promise that resolves to an array of SymbolInformation and DocumentSymbol instances.",(i,t)=>{if(rf(i))return;class e extends yr{constructor(){super(...arguments);this.containerName=""}static to(r){let s=new e(r.name,xr.to(r.kind),r.containerName||"",new zt(t[0],B.to(r.range)));return s.detail=r.detail,s.range=s.location.range,s.selectionRange=B.to(r.selectionRange),s.children=r.children?r.children.map(e.to):[],s}}return i.map(e.to)})),new Pe("vscode.executeFormatDocumentProvider","_executeFormatDocumentProvider","Execute document format provider.",[ne.Uri,new ne("options","Formatting options",i=>!0,i=>i)],new ke("A promise that resolves to an array of TextEdits.",Ti(fn.to))),new Pe("vscode.executeFormatRangeProvider","_executeFormatRangeProvider","Execute range format provider.",[ne.Uri,ne.Range,new ne("options","Formatting options",i=>!0,i=>i)],new ke("A promise that resolves to an array of TextEdits.",Ti(fn.to))),new Pe("vscode.executeFormatOnTypeProvider","_executeFormatOnTypeProvider","Execute format on type provider.",[ne.Uri,ne.Position,new ne("ch","Trigger character",i=>typeof i=="string",i=>i),new ne("options","Formatting options",i=>!0,i=>i)],new ke("A promise that resolves to an array of TextEdits.",Ti(fn.to))),new Pe("vscode.executeDefinitionProvider","_executeDefinitionProvider","Execute all definition providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.experimental.executeDefinitionProvider_recursive","_executeDefinitionProvider_recursive","Execute all definition providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.executeTypeDefinitionProvider","_executeTypeDefinitionProvider","Execute all type definition providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.experimental.executeTypeDefinitionProvider_recursive","_executeTypeDefinitionProvider_recursive","Execute all type definition providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.executeDeclarationProvider","_executeDeclarationProvider","Execute all declaration providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.experimental.executeDeclarationProvider_recursive","_executeDeclarationProvider_recursive","Execute all declaration providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.executeImplementationProvider","_executeImplementationProvider","Execute all implementation providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.experimental.executeImplementationProvider_recursive","_executeImplementationProvider_recursive","Execute all implementation providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location or LocationLink instances.",pd)),new Pe("vscode.executeReferenceProvider","_executeReferenceProvider","Execute all reference providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location-instances.",Ti(no.to))),new Pe("vscode.experimental.executeReferenceProvider","_executeReferenceProvider_recursive","Execute all reference providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Location-instances.",Ti(no.to))),new Pe("vscode.executeHoverProvider","_executeHoverProvider","Execute all hover providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Hover-instances.",Ti(sm.to))),new Pe("vscode.experimental.executeHoverProvider_recursive","_executeHoverProvider_recursive","Execute all hover providers.",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of Hover-instances.",Ti(sm.to))),new Pe("vscode.executeSelectionRangeProvider","_executeSelectionRangeProvider","Execute selection range provider.",[ne.Uri,new ne("position","A position in a text document",i=>Array.isArray(i)&&i.every(t=>we.isPosition(t)),i=>i.map(nt.from))],new ke("A promise that resolves to an array of ranges.",i=>i.map(t=>{let e;for(let n of t.reverse())e=new ts(B.to(n),e);return e}))),new Pe("vscode.executeWorkspaceSymbolProvider","_executeWorkspaceSymbolProvider","Execute all workspace symbol providers.",[ne.String.with("query","Search string")],new ke("A promise that resolves to an array of SymbolInformation-instances.",i=>i.map(Ql.to))),new Pe("vscode.prepareCallHierarchy","_executePrepareCallHierarchy","Prepare call hierarchy at a position inside a document",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of CallHierarchyItem-instances",i=>i.map(ya.to))),new Pe("vscode.provideIncomingCalls","_executeProvideIncomingCalls","Compute incoming calls for an item",[ne.CallHierarchyItem],new ke("A promise that resolves to an array of CallHierarchyIncomingCall-instances",i=>i.map(sM.to))),new Pe("vscode.provideOutgoingCalls","_executeProvideOutgoingCalls","Compute outgoing calls for an item",[ne.CallHierarchyItem],new ke("A promise that resolves to an array of CallHierarchyOutgoingCall-instances",i=>i.map(aM.to))),new Pe("vscode.prepareRename","_executePrepareRename","Execute the prepareRename of rename provider.",[ne.Uri,ne.Position],new ke("A promise that resolves to a range and placeholder text.",i=>{if(i)return{range:B.to(i.range),placeholder:i.text}})),new Pe("vscode.executeDocumentRenameProvider","_executeDocumentRenameProvider","Execute rename provider.",[ne.Uri,ne.Position,ne.String.with("newName","The new symbol name")],new ke("A promise that resolves to a WorkspaceEdit.",i=>{if(i){if(i.rejectReason)throw new Error(i.rejectReason);return oo.to(i)}})),new Pe("vscode.executeLinkProvider","_executeLinkProvider","Execute document link provider.",[ne.Uri,ne.Number.with("linkResolveCount","Number of links that should be resolved, only when links are unresolved.").optional()],new ke("A promise that resolves to an array of DocumentLink-instances.",i=>i.map(Ia.to))),new Pe("vscode.provideDocumentSemanticTokensLegend","_provideDocumentSemanticTokensLegend","Provide semantic tokens legend for a document",[ne.Uri],new ke("A promise that resolves to SemanticTokensLegend.",i=>{if(i)return new xc(i.tokenTypes,i.tokenModifiers)})),new Pe("vscode.provideDocumentSemanticTokens","_provideDocumentSemanticTokens","Provide semantic tokens for a document",[ne.Uri],new ke("A promise that resolves to SemanticTokens.",i=>{if(!i)return;let t=C1(i);if(t.type==="full")return new vi(t.data,void 0)})),new Pe("vscode.provideDocumentRangeSemanticTokensLegend","_provideDocumentRangeSemanticTokensLegend","Provide semantic tokens legend for a document range",[ne.Uri,ne.Range.optional()],new ke("A promise that resolves to SemanticTokensLegend.",i=>{if(i)return new xc(i.tokenTypes,i.tokenModifiers)})),new Pe("vscode.provideDocumentRangeSemanticTokens","_provideDocumentRangeSemanticTokens","Provide semantic tokens for a document range",[ne.Uri,ne.Range],new ke("A promise that resolves to SemanticTokens.",i=>{if(!i)return;let t=C1(i);if(t.type==="full")return new vi(t.data,void 0)})),new Pe("vscode.executeCompletionItemProvider","_executeCompletionItemProvider","Execute completion item provider.",[ne.Uri,ne.Position,ne.String.with("triggerCharacter","Trigger completion when the user types the character, like `,` or `(`").optional(),ne.Number.with("itemResolveCount","Number of completions to resolve (too large numbers slow down completions)").optional()],new ke("A promise that resolves to a CompletionList-instance.",(i,t,e)=>{if(!i)return new pi([]);let n=i.suggestions.map(o=>pM.to(o,e));return new pi(n,i.incomplete)})),new Pe("vscode.executeSignatureHelpProvider","_executeSignatureHelpProvider","Execute signature help provider.",[ne.Uri,ne.Position,ne.String.with("triggerCharacter","Trigger signature help when the user types the character, like `,` or `(`").optional()],new ke("A promise that resolves to SignatureHelp.",i=>{if(i)return am.to(i)})),new Pe("vscode.executeCodeLensProvider","_executeCodeLensProvider","Execute code lens provider.",[ne.Uri,ne.Number.with("itemResolveCount","Number of lenses that should be resolved and returned. Will only return resolved lenses, will impact performance)").optional()],new ke("A promise that resolves to an array of CodeLens-instances.",(i,t,e)=>Ti(n=>new yl(B.to(n.range),n.command&&e.fromInternal(n.command)))(i))),new Pe("vscode.executeCodeActionProvider","_executeCodeActionProvider","Execute code action provider.",[ne.Uri,new ne("rangeOrSelection","Range in a text document. Some refactoring provider requires Selection object.",i=>he.isRange(i),i=>Fn.isSelection(i)?fo.from(i):B.from(i)),ne.String.with("kind","Code action kind to return code actions for").optional(),ne.Number.with("itemResolveCount","Number of code actions to resolve (too large numbers slow down code actions)").optional()],new ke("A promise that resolves to an array of Command-instances.",(i,t,e)=>Ti(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 es(n.title,n.kind?new bt(n.kind):void 0);return n.edit&&(o.edit=oo.to(n.edit)),n.command&&(o.command=e.fromInternal(n.command)),o.isPreferred=n.isPreferred,o}})(i))),new Pe("vscode.executeDocumentColorProvider","_executeDocumentColorProvider","Execute document color provider.",[ne.Uri],new ke("A promise that resolves to an array of ColorInformation objects.",i=>i?i.map(t=>new Tl(B.to(t.range),Hc.to(t.color))):[])),new Pe("vscode.executeColorPresentationProvider","_executeColorPresentationProvider","Execute color presentation provider.",[new ne("color","The color to show and insert",i=>i instanceof mi,Hc.from),new ne("context","Context object with uri and range",i=>!0,i=>({uri:i.uri,range:B.from(i.range)}))],new ke("A promise that resolves to an array of ColorPresentation objects.",i=>i?i.map(sv.to):[])),new Pe("vscode.executeInlayHintProvider","_executeInlayHintProvider","Execute inlay hints provider",[ne.Uri,ne.Range],new ke("A promise that resolves to an array of Inlay objects",(i,t,e)=>i.map(mM.to.bind(void 0,e)))),new Pe("vscode.executeFoldingRangeProvider","_executeFoldingRangeProvider","Execute folding range provider",[ne.Uri],new ke("A promise that resolves to an array of FoldingRange objects",(i,t)=>{if(i)return i.map(lv.to)})),new Pe("vscode.resolveNotebookContentProviders","_resolveNotebookContentProvider","Resolve Notebook Content Providers",[],new ke("A promise that resolves to an array of NotebookContentProvider static info objects.",Ti(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=>cv.to(t))})))),new Pe("vscode.executeInlineValueProvider","_executeInlineValueProvider","Execute inline value provider",[ne.Uri,ne.Range,new ne("context","An InlineValueContext",i=>i&&typeof i.frameId=="number"&&i.stoppedLocation instanceof he,i=>iv.from(i))],new ke("A promise that resolves to an array of InlineValue objects",i=>i.map(rv.to))),new Pe("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 ne("uriOrString","Uri-instance or string (only http/https)",i=>y.isUri(i)||typeof i=="string"&&Tk(i,$.http,$.https),i=>i),new ne("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"?[Mt.from(i),void 0]:[Mt.from(i.viewColumn),dv.from(i)])).optional(),ne.String.with("label","").optional()],ke.Void),new Pe("vscode.openWith","_workbench.openWith","Opens the provided resource with a specific editor.",[ne.Uri.with("resource","Resource to open"),ne.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 ne("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"?[Mt.from(i),void 0]:[Mt.from(i.viewColumn),dv.from(i)])).optional()],ke.Void),new Pe("vscode.diff","_workbench.diff","Opens the provided resources in the diff editor to compare their contents.",[ne.Uri.with("left","Left-hand side resource of the diff editor"),ne.Uri.with("right","Right-hand side resource of the diff editor"),ne.String.with("title","Human readable title for the diff editor").optional(),new ne("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",i=>i===void 0||typeof i=="object",i=>i&&[Mt.from(i.viewColumn),dv.from(i)]).optional()],ke.Void),new Pe("vscode.changes","_workbench.changes","Opens a list of resources in the changes editor to compare their contents.",[ne.String.with("title","Human readable title for the changes editor"),new ne("resourceList","List of resources to compare",i=>{for(let t of i){if(t.length!==3)return!1;let[e,n,o]=t;if(!y.isUri(e)||!y.isUri(n)&&n!==void 0&&n!==null||!y.isUri(o)&&o!==void 0&&o!==null)return!1}return!0},i=>i)],ke.Void),new Pe("vscode.prepareTypeHierarchy","_executePrepareTypeHierarchy","Prepare type hierarchy at a position inside a document",[ne.Uri,ne.Position],new ke("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(xa.to))),new Pe("vscode.provideSupertypes","_executeProvideSupertypes","Compute supertypes for an item",[ne.TypeHierarchyItem],new ke("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(xa.to))),new Pe("vscode.provideSubtypes","_executeProvideSubtypes","Compute subtypes for an item",[ne.TypeHierarchyItem],new ke("A promise that resolves to an array of TypeHierarchyItem-instances",i=>i.map(xa.to))),new Pe("vscode.revealTestInExplorer","_revealTestInExplorer","Reveals a test instance in the explorer",[ne.TestItem],ke.Void),new Pe("vscode.startContinuousTestRun","testing.startContinuousRunFromExtension","Starts running the given tests with continuous run mode.",[ne.TestProfile,ne.Arr(ne.TestItem)],ke.Void),new Pe("vscode.stopContinuousTestRun","testing.stopContinuousRunFromExtension","Stops running the given tests with continuous run mode.",[ne.Arr(ne.TestItem)],ke.Void),new Pe("vscode.experimental.editSession.continue","_workbench.editSessions.actions.continueEditSession","Continue the current edit session in a different workspace",[ne.Uri.with("workspaceUri","The target workspace to continue the current edit session in")],ke.Void),new Pe("setContext","_setContext","Set a custom context key value that can be used in when clauses.",[ne.String.with("name","The context key name"),new ne("value","The context key value",()=>!0,i=>i)],ke.Void),new Pe("vscode.editorChat.start","inlineChat.start","Invoke a new editor chat session",[new ne("Run arguments","",i=>!0,i=>{if(i)return{initialRange:i.initialRange?B.from(i.initialRange):void 0,initialSelection:Fn.isSelection(i.initialSelection)?fo.from(i.initialSelection):void 0,message:i.message,attachments:i.attachments,autoSend:i.autoSend,position:i.position?nt.from(i.position):void 0,resolveOnResponse:i.resolveOnResponse}})],ke.Void),new Pe("vscode.extensionPromptFileProvider","_listExtensionPromptFiles","Get all extension-contributed prompt files (custom agents, instructions, and prompt files).",[],new ke("A promise that resolves to an array of objects containing uri, type, and extensionId.",i=>i?i.map(t=>({uri:y.revive(t.uri),type:t.type,extensionId:t.extensionId})):[]))],AT=class{static register(t){jq.forEach(t.registerApiCommand,t),this._registerValidateWhenClausesCommand(t)}static _registerValidateWhenClausesCommand(t){t.registerCommand(!1,"_validateWhenClauses",sN)}};function Ti(i){return t=>{if(Array.isArray(t))return t.map(i)}}function pd(i){if(!Array.isArray(i))return;let t=[];for(let e of i)tU(e)?t.push(im.to(e)):t.push(no.to(e));return t}var vg=class{constructor(t,e){this._proxy=t.getProxy(N.MainThreadBulkEdits),this._versionInformationProvider={getTextDocumentVersion:n=>e.getDocument(n)?.version,getNotebookDocumentVersion:()=>{}}}applyWorkspaceEdit(t,e,n){let o=new Vt(oo.from(t,this._versionInformationProvider));return this._proxy.$tryApplyWorkspaceEdit(o,void 0,n?.isRefactoring??!1)}};vg=R([C(0,me)],vg);var PV;(t=>{function i(e,n){return e.callstack<n.callstack?-1:e.callstack>n.callstack?1:0}t.compare=i})(PV||={});function E1(i){if(!i||typeof i!="object")return{callstack:void 0,msg:_u(i)};let t=Array.isArray(i.stack)?i.stack.join(`
`):i.stack,e=i.message?i.message:_u(i);return{callstack:t,msg:e}}var T1=class i{constructor(t,e=i.ERROR_FLUSH_TIMEOUT){this._flushHandle=void 0;this._buffer=[];this._disposables=new G;this._telemetryService=t,this._flushDelay=e;let n=La.addListener(o=>this._onErrorEvent(o));this._disposables.add(Y(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),ao.isErrorNoTelemetry(t)||t instanceof Wi||bd.is(t)||typeof t?.message=="string"&&t.message.includes("Unable to read file")))return;let{callstack:e,msg:n}=E1(t);if(!e)return;let o={msg:n,callstack:e};bu.is(t)&&(o.kind=t.kind,o.listenerCount=t.listenerCount),this._enqueue(o)}_enqueue(t){let e=uO(this._buffer,t,PV.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 _V(i){return!!i&&y.isUri(i.sessionResource)&&i.$mid===19}var bg=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=Vn.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(()=>{Bt.isMarkdownString(g.value)?s(fv.from(g),c):s(Uc.from(g),c)})}};Promise.all([u,d(m)]).then(([g,v])=>{s(SM.from(v),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 sa(l),c=ev.from(d);return a(c),this},markdownWithVulnerabilities(l,d){n(this.markdown),d&&M(t._extension,"chatParticipantAdditions");let c=new as(l,d),u=rC.from(c);return a(u),this},codeblockUri(l,d){n(this.codeblockUri),M(t._extension,"chatParticipantAdditions");let c=new pa(l,d),u=oC.from(c);return a(u),this},filetree(l,d){n(this.filetree);let c=new la(l,d),u=tv.from(c);return a(u),this},anchor(l,d){let c=new ls(l,d);return this.push(c)},button(l){n(this.anchor);let d=new ua(l),c=nv.from(d,t._commandsConverter,t._sessionDisposables);return a(c),this},progress(l,d){n(this.progress);let c=new Wl(l,d),u=d?uC.from(c):mv.from(c);return a(u,d),this},thinkingProgress(l){n(this.thinkingProgress),M(t._extension,"chatParticipantAdditions");let d=new bi(l.text??"",l.id,l.metadata),c=gv.from(d);return a(c),this},hookProgress(l,d,c){n(this.hookProgress),M(t._extension,"chatParticipantAdditions");let u=new da(l,d,c),m=aC.from(u);return a(m),this},voiceProgress(l,d){n(this.voiceProgress),M(t._extension,"chatParticipantPrivate");let c=new $l(l,d);return a(lC.from(c)),this},warning(l){n(this.progress),M(t._extension,"chatParticipantAdditions");let d=new cs(l),c=fv.from(d);return a(c),this},info(l){n(this.progress),M(t._extension,"chatParticipantAdditions");let d=new ca(l),c=cC.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&&M(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 Vr(l,d,c);m=[Uc.from(g)]}return m.forEach(g=>a(g)),this}}else{let u=new Vr(l,d,c),m=Uc.from(u);a(m)}return this},codeCitation(l,d,c){n(this.codeCitation),M(t._extension,"chatParticipantAdditions");let u=new ma(l,d,c),m=hC.from(u);a(m)},textEdit(l,d){n(this.textEdit),M(t._extension,"chatParticipantAdditions");let c=new ps(l,d);c.isDone=d===!0?!0:void 0;let u=pC.from(c);return a(u),this},notebookEdit(l,d){n(this.notebookEdit),M(t._extension,"chatParticipantAdditions");let c=new fa(l,d),u=gC.from(c);return a(u),this},workspaceEdit(l){n(this.workspaceEdit),M(t._extension,"chatParticipantAdditions");let d=new Kl(l),c=fC.from(d);return a(c),this},async externalEdit(l,d){n(this.externalEdit);let c=Array.isArray(l)?l:[l],u=e++,m=Be();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),M(t._extension,"chatParticipantAdditions");let m=new aa(l,d,c,u),g=iC.from(m);return a(g),this},async questionCarousel(l,d=!0){n(this.questionCarousel),M(t._extension,"chatParticipantAdditions");let c=Be(),u=new us(l,d),m=sC.from(u);m.resolveId=c;let g=new pn;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),Xa(g.p,t._token)},beginToolInvocation(l,d,c){n(this.beginToolInvocation),M(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),M(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 ps||l instanceof fa||l instanceof as||l instanceof cs||l instanceof aa||l instanceof us||l instanceof ma||l instanceof ga||l instanceof zl||l instanceof Tc||l instanceof bi||l instanceof ql||l instanceof ds||l instanceof Wl)&&M(t._extension,"chatParticipantAdditions"),l instanceof Vr)this.reference2(l.value,l.iconPath,l.options);else if(l instanceof Wl){let d=l.task?uC.from(l):mv.from(l);a(d,l.task)}else if(l instanceof bi){let d=gv.from(l);a(d)}else if(l instanceof ds){let d=dC.from(l);a(d)}else if(l instanceof ls){let d=om.from(l);if(l.resolve&&(M(t._extension,"chatParticipantAdditions"),d.resolveId=Be()),a(d),l.resolve){let c=new Re;l.resolve(c.token).then(()=>{let u=om.from(l);t._proxy.$handleAnchorResolve(t._request.requestId,d.resolveId,u)}).then(()=>c.dispose(),()=>c.dispose()),t._sessionDisposables.add(Y(()=>c.dispose(!0)))}}else{if(l instanceof Tc)return this.externalEdit(l.uris,l.callback).then(c=>l.didGetApplied(c)),this;{let d=cm.from(l,t._commandsConverter,t._sessionDisposables);a(d)}}return this},usage(l){n(this.usage),M(t._extension,"chatParticipantAdditions");let d={kind:"usage",promptTokens:l.promptTokens,completionTokens:l.completionTokens,outputBuffer:l.outputBuffer,copilotCredits:l.copilotCredits,promptTokenDetails:l.promptTokenDetails};return a(d),this}})}return this._apiObject}},OT=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 Eb);this._completionDisposables=this._register(new wn);this._inFlightRequests=new Set;this._pendingCarouselResolvers=new Map;this._onDidChangeChatRequestTools=this._register(new T);this.onDidChangeChatRequestTools=this._onDidChangeChatRequestTools.event;this._onDidDisposeChatSession=this._register(new T);this.onDidDisposeChatSession=this._onDidDisposeChatSession.event;this._onDidChangeCustomAgents=this._register(new T);this.onDidChangeCustomAgents=this._onDidChangeCustomAgents.event;this._onDidChangeInstructions=this._register(new T);this.onDidChangeInstructions=this._onDidChangeInstructions.event;this._onDidChangeSkills=this._register(new T);this.onDidChangeSkills=this._onDidChangeSkills.event;this._onDidChangeSlashCommands=this._register(new T);this.onDidChangeSlashCommands=this._onDidChangeSlashCommands.event;this._onDidChangeHooks=this._register(new T);this.onDidChangeHooks=this._onDidChangeHooks.event;this._onDidChangePlugins=this._register(new T);this.onDidChangePlugins=this._onDidChangePlugins.event;this._customAgents=new md(()=>this._proxy.$provideCustomAgents(ve.None).then(e=>e.map(n=>this.toCustomAgent(n))));this._instructions=new md(()=>this._proxy.$provideInstructions(ve.None).then(e=>e.map(n=>this.toInstruction(n))));this._skills=new md(()=>this._proxy.$provideSkills(ve.None).then(e=>e.map(n=>this.toSkill(n))));this._slashCommands=new md(()=>this._proxy.$provideSlashCommands(ve.None).then(e=>e.map(n=>this.toSlashCommand(n))));this._hooks=new md(()=>this._proxy.$provideHooks(ve.None).then(e=>e.map(n=>this.toHook(n))));this._plugins=new md(()=>this._proxy.$providePlugins(ve.None).then(e=>e.map(n=>this.toPlugin(n))));this._onDidChangeActiveChatPanelSessionResource=this._register(new T);this.onDidChangeActiveChatPanelSessionResource=this._onDidChangeActiveChatPanelSessionResource.event;this._proxy=e.getProxy(N.MainThreadChatAgents2),o.registerArgumentProcessor({processArgument:u=>_V(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:y.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?y.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:y.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?y.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,pattern:e.pattern})}toSkill(e){return Object.freeze({uri:y.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?y.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,userInvocable:e.userInvocable,disableModelInvocation:e.disableModelInvocation})}toSlashCommand(e){return Object.freeze({uri:y.revive(e.uri),name:e.name,description:e.description,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?y.revive(e.pluginUri):void 0,sessionTypes:e.sessionTypes,argumentHint:e.argumentHint,userInvocable:e.userInvocable})}toHook(e){return Object.freeze({uri:y.revive(e.uri),sessionTypes:e.sessionTypes,source:e.source,extensionId:e.extensionId,pluginUri:e.pluginUri?y.revive(e.pluginUri):void 0})}toPlugin(e){return Object.freeze({uri:y.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 LT(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 LT(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 w1(e,n)),this._proxy.$registerChatParticipantDetectionProvider(o),Y(()=>{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 G,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(Y(()=>{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=>hv.from(d))};this._proxy.$registerChatSessionCustomizationProvider(s,n,a,e.identifier);let l=new G;return r.onDidChange&&l.add(r.onDidChange(()=>{this._proxy.$onDidChangeCustomizations(s)})),l.add(Y(()=>{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(y.revive(n),o);return s?s.map(a=>({uri:a.uri,type:hv.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,pluginLabel:a.pluginLabel,userInvocable:a.userInvocable})):void 0}catch{return}}async $provideSourceFolders(e,n,o,r){let s=this._customizationProviders.get(e);if(s?.provider.provideSourceFolders)try{let a=await s.provider.provideSourceFolders(y.revive(n),hv.to(o),r);return a?a.map(l=>({uri:l.uri,label:l.label,source:l.source})):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=um.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:pm.to(r.location)},s)}async _createRequest(e,n,o){let r=Dt(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 Jp(d.value,l,fo.to(r.locationData.selection),B.to(r.locationData.wholeRange))}else if(r.locationData?.type==="notebook"){let l=this._documents.getDocument(r.locationData.sessionInputUri);a=new Yp(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,ve.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 G,this._sessionDisposables.set(d.sessionResource,m)),a=new bg(s.extension,d,this._proxy,this._commands.converter,m,this._pendingCarouselResolvers,r);let g=await this.getModelForRequest(d,s.extension),v=await this.getToolsForRequest(s.extension,d.userSelectedTools,g.id,r),h=um.to(d,c,g,d.modelConfiguration,this.getDiagnosticsWhenEnabled(s.extension),v,s.extension,this._logService);l={requestId:n.requestId,extRequest:h,extension:s.extension,hooks:d.hooks,yieldRequested:!1},this._inFlightRequests.add(l);let I;if(o.chatSessionContext){let P=y.revive(o.chatSessionContext.chatSessionResource),A=await this._chatSessions.getInputStateForSession(P,o.chatSessionContext.initialSessionOptions,r);I={chatSessionItem:{resource:P,label:o.chatSessionContext.isUntitled?"Untitled Session":"Session"},isUntitled:o.chatSessionContext.isUntitled,initialSessionOptions:o.chatSessionContext.initialSessionOptions,inputState:A}}let S={history:u,chatSessionContext:I,get yieldRequested(){return l?.yieldRequested??!1}},w=s.invoke(h,S,a.apiObject,r);return await Qq(1e3,Promise.resolve(w).then(P=>{if(P?.metadata)try{JSON.stringify(P.metadata)}catch(L){let V=`result.metadata MUST be JSON.stringify-able. Got error: ${L.message}`;return this._logService.error(`[${s.extension.identifier.value}] [@${s.id}] ${V}`,s.extension),{errorDetails:{message:V},timings:a?.timings,nextQuestion:P.nextQuestion}}let A;return P?.errorDetails&&(A={...P.errorDetails,responseIsIncomplete:!0}),(A?.responseIsRedacted||A?.isQuotaExceeded||A?.isRateLimited||A?.isExpectedError||A?.confirmationButtons||A?.code)&&M(s.extension,"chatParticipantPrivate"),{errorDetails:A,timings:a?.timings,metadata:P?.metadata,nextQuestion:P?.nextQuestion,details:P?.details}}),r)}catch(d){this._logService.error(d,s.extension),d instanceof nr&&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}=E1(d),v=d instanceof Error?d.name:void 0;return{errorDetails:{message:ni(d),responseIsIncomplete:!0,isQuotaExceeded:c,isRateLimited:u,isExpectedError:m},errorCallstack:g,errorName:v}}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 De(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=mm.to(s.result),l=n===s.request.agentId||DV(s.request.agentId)&&DV(n)?a:{...a,metadata:void 0},d=[],c=[];for(let h of s.request.variables.variables)h.kind==="tool"?c.push(Fc.to(h)):h.kind==="toolset"?c.push(...h.value.map(Fc.to)):d.push(...vC.toReferences(h,this.getDiagnosticsWhenEnabled(e),this._logService));let u=De(e,"chatParticipantPrivate")?s.request.editedFileEvents:void 0,m=De(e,"chatParticipantPrivate")&&s.request.modeInstructions?Wc.to(s.request.modeInstructions):void 0,g=new ms(s.request.message,s.request.command,d,s.request.agentId,c,u,s.request.requestId,void 0,m);r.push(g);let v=ut(s.response.map(h=>cm.toContent(h,this._commands.converter)));r.push(new $p(v,l,s.request.agentId,s.request.command))}return r}$releaseSession(e){let n=y.revive(e);this._sessionDisposables.deleteAndDispose(n);let o=mr.parseLocalSessionId(n);o&&this._onDidDisposeChatSession.fire(o)}$acceptActiveChatSession(e){let n=e?y.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=Dt(e),d=await this.prepareHistoryTurns(a.extension,a.id,r),c=mm.to(o);return(await a.provideFollowups(c,{history:d,yieldRequested:!1},s)).filter(u=>{let m=!u.participant||It.some(this._agents.values(),g=>g.id===u.participant&&xe.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=>tC.from(u,l))}$acceptFeedback(e,n,o){let r=this._agents.get(e);if(!r)return;let s=mm.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=EM.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 G,this._completionDisposables.set(e,s)),(await r.invokeCompletionProvider(n,o)).map(l=>TM.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?y.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?y.revive(n[0].request.sessionResource):void 0;return await r.provideSummary({history:s,sessionResource:a,yieldRequested:!1},o)}},w1=class{constructor(t,e){this.extension=t;this.provider=e}},LT=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 T;this._onDidPerformAction=new T;this._pauseStateEmitter=new T}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 y?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 ln?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){Tb(typeof r=="function","Invalid request handler"),o._requestHandler=r},get followupProvider(){return o._followupProvider},set followupProvider(r){o._followupProvider=r,n()},get helpTextPrefix(){return M(o.extension,"defaultChatParticipant"),o._helpTextPrefix},set helpTextPrefix(r){M(o.extension,"defaultChatParticipant"),o._helpTextPrefix=r,n()},get helpTextPostfix(){return M(o.extension,"defaultChatParticipant"),o._helpTextPostfix},set helpTextPostfix(r){M(o.extension,"defaultChatParticipant"),o._helpTextPostfix=r,n()},get supportIssueReporting(){return M(o.extension,"chatParticipantPrivate"),o._supportIssueReporting},set supportIssueReporting(r){M(o.extension,"chatParticipantPrivate"),o._supportIssueReporting=r,n()},get onDidReceiveFeedback(){return o._onDidReceiveFeedback.event},set participantVariableProvider(r){if(M(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 M(o.extension,"chatParticipantAdditions"),o._agentVariableProvider},set additionalWelcomeMessage(r){M(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage=r,n()},get additionalWelcomeMessage(){return M(o.extension,"defaultChatParticipant"),o._additionalWelcomeMessage},set titleProvider(r){M(o.extension,"defaultChatParticipant"),o._titleProvider=r,n()},get titleProvider(){return M(o.extension,"defaultChatParticipant"),o._titleProvider},set summarizer(r){M(o.extension,"defaultChatParticipant"),o._summarizer=r},get summarizer(){return M(o.extension,"defaultChatParticipant"),o._summarizer},get onDidChangePauseState(){return M(o.extension,"chatParticipantAdditions"),o._pauseStateEmitter.event},onDidPerformAction:De(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 Qq(i,t,e){return new Promise((n,o)=>{let r=e.onCancellationRequested(async()=>{r.dispose(),await Pn(i),n(void 0)});t.then(n,o).finally(()=>r.dispose())})}var md=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 Bi(this.cachedPromise,t)}clear(){this.cachedPromise=void 0}};function DV(i){return i.startsWith("github.copilot")}var UT=class{constructor(t,e){this.webviews=e;this._renderers=new Map;this._proxy=t.getProxy(N.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 Ie(()=>{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 ka=class{constructor(t,e){this.#n=new T;this.onDidChange=this.#n.event;this.#o=new T;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()}},k1=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")}ht(this.#c,t)||(this.#c=t,this.#i())}};function Yq(i,t){let e={addedOrUpdated:new Ue,removed:new ir};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 Xq(i){return{addedOrUpdated:i.addedOrUpdated?Array.from(i.addedOrUpdated.values(),Sa.from):[],removed:i.removed?Array.from(i.removed.keys()):[]}}var FT=class{#e=new Ue;#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 Ue(t.map(o=>[o.resource,o])),n=Yq(this.#e,e);!n.addedOrUpdated?.size&&!n.removed?.size||(this.#e=e,this.#t.$updateChatSessionItems(this.#n,Xq(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,Sa.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()}},P1=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 bg(e,n,o,r,s,this._pendingCarouselResolvers,ve.None)}get activeResponseStream(){return this._stream}getActiveRequestStream(t){return new bg(this.extension,t,this.proxy,this.commandsConverter,this.sessionDisposables,this._pendingCarouselResolvers,ve.None)}},yg=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 Ue;this._proxyCommands=new Map;this._proxy=this._extHostRpc.getProxy(N.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 G,a=s.add(new T),l=new FT(r,this._proxy),d={id:n,items:l,createChatSessionItem:(u,m)=>{throw new Error("Not implemented for providers")},createChatSessionInputState:u=>new ka([]),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(ve.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 G,a=!1,l,d,c,u,m=s.add(new T),g=new Set,v=new FT(r,this._proxy),h=this._proxy,I=Object.freeze({id:n,refreshHandler:async S=>{if(a)throw new Error("ChatSessionItemController has been disposed");this._logService.trace(`ExtHostChatSessions. Controller(${n}).refresh()`),await o(S)},items:v,onDidChangeChatSessionItemState:m.event,createChatSessionItem:(S,w)=>{if(a)throw new Error("ChatSessionItemController has been disposed");let P=new k1(S,w,()=>{v.get(S)===P&&this._proxy.$addOrUpdateChatSessionItem(r,Sa.from(P))});return P},get newChatSessionItemHandler(){return l},set newChatSessionItemHandler(S){l=S},get forkHandler(){return d},set forkHandler(S){d=S},get resolveChatSessionItem(){return c},set resolveChatSessionItem(S){let w=!!c;c=S;let P=!!S;w!==P&&!a&&h.$updateChatSessionItemControllerCapabilities(r,P)},get getChatSessionInputState(){return u},set getChatSessionInputState(S){u=S},createChatSessionInputState:S=>{if(a)throw new Error("ChatSessionItemController has been disposed");let w=new ka(S,()=>{let P=this._chatSessionItemControllers.get(r);P&&(P.optionGroups=w.groups);let L=this._wrapOptionGroupCommands(r,w.groups).map(q=>({id:q.id,name:q.name,description:q.description,items:q.items,selected:q.selected,when:q.when,icon:q.icon,commands:q.commands,kind:q.kind})),V=w.sessionResource??w.untitledSessionResource;V&&this._proxy.$updateChatSessionInputState(r,V,L)});return g.add(w),w},dispose:()=>{a=!0;for(let S of g)S._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(Y(()=>{this._chatSessionItemControllers.delete(r),this._proxy.$unregisterChatSessionItemController(r)})),I}registerChatSessionContentProvider(e,n,o,r,s){let a=this._contentProviderHandlePool++,l=new G;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 Ie(()=>{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=y.revive(n),l=this.getChatSessionItemController(Gd(a)),d;if(l?.controller.getChatSessionInputState){let I=await l.controller.getChatSessionInputState(jd(a)?void 0:a,{previousInputState:this._createInputStateFromOptions(l.optionGroups??[],o.initialSessionOptions)},r);I&&(d=I)}d??=this._createInputStateFromOptions(l?.optionGroups??[],o.initialSessionOptions),d instanceof ka&&(l&&this._disposeInputStatesForResource(l.inputStates,a),jd(a)?d.untitledSessionResource=a:d.sessionResource=a);let c=await s.provider.provideChatSessionContent(a,r,{inputState:d});if(r.isCancellationRequested)throw new ct;let u=new G,m=a.toString(),g=new P1(c,s.extension,{sessionResource:a,requestId:"ongoing",agentId:m,message:"",variables:{variables:[]},location:"panel"},{$handleProgressChunk:(I,S)=>this._proxy.$handleProgressChunk(e,a,I,S),$handleAnchorResolve:(I,S,w)=>{this._proxy.$handleAnchorResolve(e,a,I,S,w)}},this.commands.converter,u),v=u.add(new Re);this._extHostChatSessions.set(a,{sessionObj:g,disposeCts:v}),c.activeResponseCallback&&Promise.resolve(c.activeResponseCallback(g.activeResponseStream.apiObject,v.token)).finally(()=>{this._proxy.$handleProgressComplete(e,a,"ongoing")});let{capabilities:h}=s;return{resource:y.revive(a),title:c.title,hasActiveResponseCallback:!!c.activeResponseCallback,hasRequestHandler:!!c.requestHandler,hasForkHandler:!!l?.controller.forkHandler||!!c.forkHandler,supportsInterruption:!!h?.supportsInterruptions,options:c.options,history:c.history.map(I=>I instanceof ms?this.convertRequestTurn(I):this.convertResponseTurn(I,u))}}async $provideHandleOptionsChange(e,n,o,r){let s=y.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=Gd(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 v=typeof g=="string"?g:g.id,h=m.items.find(I=>I.id===v);return h?{...m,selected:h}: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(y.revive(n))?.disposeCts.cancel()}async $disposeChatSessionContent(e,n){let o=y.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(y.revive(n));if(!a||!a.sessionObj.session.requestHandler)return{};let l=um.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=y.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(Gd(s));if(d?.controller.forkHandler){let u=await d.controller.forkHandler(s,l,r);return Sa.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 Sa.from(c)}convertRequestDtoToRequestTurn(e){if(e)return new ms(e.prompt,e.command,[],e.participant,[],void 0,e.id,e.modelId,Wc.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&&nn(n,r)&&(o._dispose(),e.delete(o))}}_createInputStateFromOptions(e,n){if(!n?.length)return new ka(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 ka(o)}async getInputStateForSession(e,n,o){let r=e?Gd(e):void 0,s=r?this.getChatSessionItemController(r):void 0,a=e&&!jd(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 ka&&(e&&s&&this._disposeInputStatesForResource(s.inputStates,e),e&&jd(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.${Be()}`;return this._proxyCommands.set(a,{originalCommandId:s.command,controllerHandle:e}),this.commands.registerCommand(!0,a,async(...l)=>{let d=l[0]instanceof y?l[0]:void 0,c=await this.getInputStateForSession(d,void 0,ve.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:Wc.from(e.modeInstructions2)}}convertReferenceToVariable(e){let n=e.value&&typeof e.value=="object"&&"uri"in e.value&&"range"in e.value?zr.from(e.value):e.value,o=e.range?{start:e.range[0],endExclusive:e.range[1]}:void 0;if(n&&n instanceof Gl&&Array.isArray(n.diagnostics)&&n.diagnostics.length&&n.diagnostics[0][1].length){let a=ba.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 Xf.toEntry(l)}if(zt.isLocation(e.value)&&e.name.startsWith("sym:")){let a=zr.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:v_.toIcon(6),kind:"symbol",range:o}}if(y.isUri(n)&&e.name.startsWith("prompt:")){if(e.id.startsWith("vscode.instructions.file.root"))return al(n,"vscode.instructions.file.root");if(e.id.startsWith("vscode.instructions.file.reference"))return al(n,"vscode.instructions.file.reference");if(e.id.startsWith("vscode.prompt.file"))return al(n,"vscode.prompt.file")}let r=y.isUri(n)||n&&typeof n=="object"&&"uri"in n,s=r&&y.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:ut(e.response.map(r=>cm.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),Sa.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=y.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=y.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 Sa.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?y.revive(n):void 0,l=await s(!a||jd(a)?void 0:a,{previousInputState:void 0},o);return l?(l instanceof ka&&a&&(this._disposeInputStatesForResource(r.inputStates,a),jd(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}};yg=R([C(2,me),C(3,ie)],yg);var HT=class{constructor(t){this._items=new Map;this._proxy=t.getProxy(N.MainThreadChatStatus)}createChatStatusItem(t,e){let n=Zq(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 Zq(i,t){return`${xe.toKey(i)}.${t}`}var VT=class extends U{constructor(t){super(),this._proxy=t.getProxy(N.MainThreadChatQuota)}updateQuotas(t){this._proxy.$updateQuotas(t)}};var BT=class{constructor(t){this._items=new Map;this._proxy=t.getProxy(N.MainThreadChatInputNotification)}createInputNotification(t,e){let n=e6(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,sessionTypes:void 0},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()},get sessionTypes(){return o.sessionTypes},set sessionTypes(d){o.sessionTypes=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 e6(i,t){return`${xe.toKey(i)}.${t}`}var WT=class{constructor(t){let e=t.getProxy(N.MainThreadClipboard);this.value=Object.freeze({readText(){return e.$readText()},writeText(n){return e.$writeText(n)}})}};var RV="vscode-cdn.net",t6=`vscode-resource.${RV}`,qv=`'self' https://*.${RV}`;function gd(i,t){return i.scheme===$.http||i.scheme===$.https?i:(t&&t.authority&&t.isRemote&&i.scheme===$.file&&(i=y.from({scheme:$.vscodeRemote,authority:t.authority,path:i.path})),y.from({scheme:$.https,authority:`${i.scheme}+${n6(i.authority)}.${t6}`,path:i.path,fragment:i.fragment,query:i.query}))}function n6(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 $T=class{constructor(t,e,n){this._proxy=t;this._editors=e;this._remoteInfo=n;this._handlePool=0;this._disposables=new G;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 T,c=new T,u=new class{constructor(){this._html="";this._options=Object.create(null)}asWebviewUri(g){return gd(g,a._remoteInfo)}get cspSource(){return qv}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 zT=class i{constructor(t){this.providers=new Map;this._proxy=t.getProxy(N.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=hn(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(fn.from)})},notebookEdit:(l,d)=>{d=hn(d),this._proxy.$handleProgress(e.requestId,{uri:l,edits:d.map(mC.from)})}},s={location:e.location,chatRequestId:e.chatRequestId,chatRequestModel:e.chatRequestModel,chatSessionId:e.chatSessionResource?mr.parseLocalSessionId(y.revive(e.chatSessionResource)):void 0,codeBlocks:e.codeBlocks.map(l=>({code:l.code,resource:y.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 MV(i,t,e){let n=i.getProxy(N.MainThreadComments);class o{constructor(){this._commentControllers=new Map;this._commentControllersByExtension=new eo;t.registerArgumentProcessor({processArgument:h=>{if(h&&h.$mid===6){let I=this._commentControllers.get(h.handle);return I?I.value:h}else if(h&&h.$mid===7){let I=h,S=this._commentControllers.get(I.commentControlHandle);if(!S)return I;let w=S.getCommentThread(I.commentThreadHandle);return w?w.value:I}else if(h&&(h.$mid===9||h.$mid===8)){let I=this._commentControllers.get(h.thread.commentControlHandle);if(!I)return h;let S=I.getCommentThread(h.thread.commentThreadHandle);return S?h.$mid===8?S.value:{thread:S.value,text:h.text}:h}else if(h&&h.$mid===10){let I=this._commentControllers.get(h.thread.commentControlHandle);if(!I)return h;let S=I.getCommentThread(h.thread.commentThreadHandle);if(!S)return h;let w=h.commentUniqueId,P=S.getCommentByUniqueId(w);return P||h}else if(h&&h.$mid===11){let I=this._commentControllers.get(h.thread.commentControlHandle);if(!I)return h;let S=I.getCommentThread(h.thread.commentThreadHandle);if(!S)return h;let w=h.text,P=h.commentUniqueId,A=S.getCommentByUniqueId(P);return A?(typeof A.body=="string"?A.body=w:A.body=new Bt(w),A):h}return h}})}static{this.handlePool=0}createCommentController(h,I,S){let w=o.handlePool++,P=new s(h,w,I,S);this._commentControllers.set(P.handle,P);let A=this._commentControllersByExtension.get(h.identifier)||[];return A.push(P),this._commentControllersByExtension.set(h.identifier,A),P.value}async $createCommentThreadTemplate(h,I,S,w){let P=this._commentControllers.get(h);P&&P.$createCommentThreadTemplate(I,S,w)}async $setActiveComment(h,I){let S=this._commentControllers.get(h);S&&S.$setActiveComment(I??void 0)}async $updateCommentThreadTemplate(h,I,S){let w=this._commentControllers.get(h);w&&w.$updateCommentThreadTemplate(I,S)}$deleteCommentThread(h,I){this._commentControllers.get(h)?.$deleteCommentThread(I)}async $updateCommentThread(h,I,S){this._commentControllers.get(h)?.$updateCommentThread(I,S)}async $provideCommentingRanges(h,I,S){let w=this._commentControllers.get(h);if(!w||!w.commentingRangeProvider)return Promise.resolve(void 0);let P=await e.ensureDocumentData(y.revive(I));return on(async()=>{let A=await w.commentingRangeProvider?.provideCommentingRanges(P.document,S),L;return Array.isArray(A)?L={ranges:A,fileComments:!1}:A?L={ranges:A.ranges||[],fileComments:A.enableFileComments||!1}:L=A??void 0,L}).then(A=>{let L;return A&&(L={ranges:A.ranges.map(V=>B.from(V)),fileComments:A.fileComments}),L})}$toggleReaction(h,I,S,w,P){let A=this._commentControllers.get(h);return!A||!A.reactionHandler?Promise.resolve(void 0):on(()=>{let L=A.getCommentThread(I);if(L){let V=L.getCommentByUniqueId(w.uniqueIdInThread);if(A!==void 0&&V&&A.reactionHandler)return A.reactionHandler(V,d(P))}return Promise.resolve(void 0)})}}let g=class g{constructor(h,I,S,w,P,A,L,V,q){this._commentControllerHandle=I;this._id=S;this._uri=w;this._range=P;this._comments=A;this.extensionDescription=L;this._isTemplate=V;this.handle=g._handlePool++;this.commentHandle=0;this.modifications=Object.create(null);this._onDidUpdateCommentThread=new T;this.onDidUpdateCommentThread=this._onDidUpdateCommentThread.event;this._canReply=!0;this._commentsMap=new Map;this._acceptInputDisposables=new dn;this._acceptInputDisposables.value=new G,this._id===void 0&&(this._id=`${h}.${this.handle}`),n.$createCommentThread(I,this.handle,this._id,this._uri,B.from(this._range),this._comments.map(z=>a(this,z,this._commentsMap,this.extensionDescription)),L.identifier,this._isTemplate,q),this._localDisposables=[],this._isDiposed=!1,this._localDisposables.push(this.onDidUpdateCommentThread(()=>{this.eventuallyUpdateCommentThread()})),this._localDisposables.push({dispose:()=>{n.$deleteCommentThread(I,this.handle)}});let J=this;this.value={get uri(){return J.uri},get range(){return J.range},set range(z){J.range=z},get comments(){return J.comments},set comments(z){J.comments=z},get collapsibleState(){return J.collapsibleState},set collapsibleState(z){J.collapsibleState=z},get canReply(){return J.canReply},set canReply(z){J.canReply=z},get contextValue(){return J.contextValue},set contextValue(z){J.contextValue=z},get label(){return J.label},set label(z){J.label=z},get state(){return J.state},set state(z){J.state=z},reveal:(z,j)=>J.reveal(z,j),hide:()=>J.hide(),dispose:()=>{J.dispose()}}}static{this._handlePool=0}set threadId(h){this._id=h}get threadId(){return this._id}get id(){return this._id}get resource(){return this._uri}get uri(){return this._uri}set range(h){(h===void 0!=(this._range===void 0)||!h||!this._range||!h.isEqual(this._range))&&(this._range=h,this.modifications.range=h,this._onDidUpdateCommentThread.fire())}get range(){return this._range}set canReply(h){this._canReply!==h&&(this._canReply=h,this.modifications.canReply=h,this._onDidUpdateCommentThread.fire())}get canReply(){return this._canReply}get label(){return this._label}set label(h){this._label=h,this.modifications.label=h,this._onDidUpdateCommentThread.fire()}get contextValue(){return this._contextValue}set contextValue(h){this._contextValue=h,this.modifications.contextValue=h,this._onDidUpdateCommentThread.fire()}get comments(){return this._comments}set comments(h){this._comments=h,this.modifications.comments=h,this._onDidUpdateCommentThread.fire()}get collapsibleState(){return this._collapseState}set collapsibleState(h){this._collapseState!==h&&(this._collapseState=h,this.modifications.collapsibleState=h,this._onDidUpdateCommentThread.fire())}get state(){return this._state}set state(h){this._state=h,typeof h=="object"?(M(this.extensionDescription,"commentThreadApplicability"),this.modifications.state=h.resolved,this.modifications.applicability=h.applicability):this.modifications.state=h,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 G);let h=S=>Object.prototype.hasOwnProperty.call(this.modifications,S),I={};h("range")&&(I.range=B.from(this._range)),h("label")&&(I.label=this.label),h("contextValue")&&(I.contextValue=this.contextValue??null),h("comments")&&(I.comments=this._comments.map(S=>a(this,S,this._commentsMap,this.extensionDescription))),h("collapsibleState")&&(I.collapseState=c(this._collapseState)),h("canReply")&&(I.canReply=this.canReply),h("state")&&(I.state=u(this._state)),h("applicability")&&(I.applicability=m(this._state)),h("isTemplate")&&(I.isTemplate=this._isTemplate),this.modifications={},n.$updateCommentThread(this._commentControllerHandle,this.handle,this._id,this._uri,I)}getCommentByUniqueId(h){for(let I of this._commentsMap){let S=I[0],w=I[1];if(h===w)return S}}async reveal(h,I){M(this.extensionDescription,"commentReveal");let S;h&&h.body!==void 0?S=h:I=I??h;let w=S?this._commentsMap.get(S):void 0;w??=this._commentsMap.get(this._comments[0]);let P=!0,A=!1;return I?.focus===1?(A=!0,P=!1):I?.focus===2&&(P=!1),n.$revealCommentThread(this._commentControllerHandle,this.handle,w,{preserveFocus:P,focusReply:A})}async hide(){return n.$hideCommentThread(this._commentControllerHandle,this.handle)}dispose(){this._isDiposed=!0,this._acceptInputDisposables.dispose(),this._onDidUpdateCommentThread.dispose(),this._localDisposables.forEach(h=>h.dispose())}};R([Rv(100)],g.prototype,"eventuallyUpdateCommentThread",1);let r=g;class s{constructor(h,I,S,w){this._extension=h;this._handle=I;this._id=S;this._label=w;this._threads=new Map;n.$registerCommentController(this.handle,S,w,this._extension.identifier.value);let P=this;this.value=Object.freeze({id:P.id,label:P.label,get options(){return P.options},set options(A){P.options=A},get commentingRangeProvider(){return P.commentingRangeProvider},set commentingRangeProvider(A){P.commentingRangeProvider=A},get reactionHandler(){return P.reactionHandler},set reactionHandler(A){P.reactionHandler=A},get activeCommentThread(){return P.activeCommentThread},createCommentThread(A,L,V){return P.createCommentThread(A,L,V).value},dispose:()=>{P.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(h){this._commentingRangeProvider=h,h?.resourceHints&&M(this._extension,"commentingRangeHint"),n.$updateCommentingRanges(this.handle,h?.resourceHints)}get reactionHandler(){return this._reactionHandler}set reactionHandler(h){this._reactionHandler=h,n.$updateCommentControllerFeatures(this.handle,{reactionHandler:!!h})}get options(){return this._options}set options(h){this._options=h,n.$updateCommentControllerFeatures(this.handle,{options:this._options})}get activeComment(){return M(this._extension,"activeComment"),this._activeComment}get activeCommentThread(){return M(this._extension,"activeComment"),this._activeThread?.value}createCommentThread(h,I,S){let w=new r(this.id,this.handle,void 0,h,I,S,this._extension,!1);return this._threads.set(w.handle,w),w}$setActiveComment(h){if(!h){this._activeComment=void 0,this._activeThread=void 0;return}let I=this._threads.get(h.commentThreadHandle);I&&(this._activeComment=h.uniqueIdInThread?I.getCommentByUniqueId(h.uniqueIdInThread):void 0,this._activeThread=I)}$createCommentThreadTemplate(h,I,S){let w=new r(this.id,this.handle,void 0,y.revive(h),B.to(I),[],this._extension,!0,S);return w.collapsibleState=1,this._threads.set(w.handle,w),w}$updateCommentThreadTemplate(h,I){let S=this._threads.get(h);S&&(S.range=B.to(I))}$updateCommentThread(h,I){let S=this._threads.get(h);if(!S)return;(P=>Object.prototype.hasOwnProperty.call(I,P))("collapseState")&&(S.collapsibleState=c(I.collapseState))}$deleteCommentThread(h){this._threads.get(h)?.dispose(),this._threads.delete(h)}getCommentThread(h){return this._threads.get(h)}dispose(){this._threads.forEach(h=>{h.dispose()}),this._localDisposables.forEach(h=>h.dispose())}}function a(v,h,I,S){let w=I.get(h);return w||(w=++v.commentHandle,I.set(h,w)),h.state!==void 0&&M(S,"commentsDraftState"),h.reactions?.some(P=>P.reactors!==void 0)&&M(S,"commentReactor"),{mode:h.mode,contextValue:h.contextValue,uniqueIdInThread:w,body:typeof h.body=="string"?h.body:ge.from(h.body),userName:h.author.name,userIconPath:h.author.iconPath,label:h.label,commentReactions:h.reactions?h.reactions.map(P=>l(P)):void 0,state:h.state,timestamp:h.timestamp?.toJSON()}}function l(v){return{label:v.label,iconPath:v.iconPath?ov(v.iconPath):void 0,count:v.count,hasReacted:v.authorHasReacted,reactors:v.reactors&&v.reactors.length>0&&typeof v.reactors[0]!="string"?v.reactors.map(h=>h.name):v.reactors}}function d(v){return{label:v.label||"",count:v.count||0,iconPath:v.iconPath?y.revive(v.iconPath):"",authorHasReacted:v.hasReacted||!1,reactors:v.reactors?.map(h=>({name:h}))}}function c(v){if(v!==void 0)switch(v){case 1:return 1;case 0:return 0}return 0}function u(v){let h;if(typeof v=="object"?h=v.resolved:h=v,h!==void 0)switch(h){case 0:return 0;case 1:return 1}return 0}function m(v){let h;if(typeof v=="object"&&(h=v.applicability),h!==void 0)switch(h){case 0:return 0;case 1:return 1}return 0}return new o}var qT={},ft={exports:qT};(function(i,t){if(typeof qT=="object"&&typeof ft=="object")ft.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var e=t();for(var n in e)(typeof qT=="object"?qT: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=ze,o=typeof n=="object"&&n.env&&n.env.NODE_DEBUG&&/\bsemver\b/i.test(n.env.NODE_DEBUG)?function(){var O=Array.prototype.slice.call(arguments,0);O.unshift("SEMVER"),console.log.apply(console,O)}: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 v=d++;l[v]="("+l[u]+")\\.("+l[u]+")\\.("+l[u]+")";var h=d++;l[h]="(?:"+l[c]+"|"+l[m]+")";var I=d++;l[I]="(?:"+l[u]+"|"+l[m]+")";var S=d++;l[S]="(?:-("+l[h]+"(?:\\."+l[h]+")*))";var w=d++;l[w]="(?:-?("+l[I]+"(?:\\."+l[I]+")*))";var P=d++;l[P]="[0-9A-Za-z-]+";var A=d++;l[A]="(?:\\+("+l[P]+"(?:\\."+l[P]+")*))";var L=d++,V="v?"+l[g]+l[S]+"?"+l[A]+"?";l[L]="^"+V+"$";var q="[v=\\s]*"+l[v]+l[w]+"?"+l[A]+"?",J=d++;l[J]="^"+q+"$";var z=d++;l[z]="((?:<|>)?=?)";var j=d++;l[j]=l[u]+"|x|X|\\*";var X=d++;l[X]=l[c]+"|x|X|\\*";var ue=d++;l[ue]="[v=\\s]*("+l[X]+")(?:\\.("+l[X]+")(?:\\.("+l[X]+")(?:"+l[S]+")?"+l[A]+"?)?)?";var ot=d++;l[ot]="[v=\\s]*("+l[j]+")(?:\\.("+l[j]+")(?:\\.("+l[j]+")(?:"+l[w]+")?"+l[A]+"?)?)?";var Ze=d++;l[Ze]="^"+l[z]+"\\s*"+l[ue]+"$";var re=d++;l[re]="^"+l[z]+"\\s*"+l[ot]+"$";var Z=d++;l[Z]="(?:^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])";var te=d++;l[te]="(?:~>?)";var se=d++;l[se]="(\\s*)"+l[te]+"\\s+",a[se]=new RegExp(l[se],"g");var Q=d++;l[Q]="^"+l[te]+l[ue]+"$";var ae=d++;l[ae]="^"+l[te]+l[ot]+"$";var be=d++;l[be]="(?:\\^)";var rt=d++;l[rt]="(\\s*)"+l[be]+"\\s+",a[rt]=new RegExp(l[rt],"g");var $e=d++;l[$e]="^"+l[be]+l[ue]+"$";var Ae=d++;l[Ae]="^"+l[be]+l[ot]+"$";var At=d++;l[At]="^"+l[z]+"\\s*("+q+")$|^$";var Nt=d++;l[Nt]="^"+l[z]+"\\s*("+V+")$|^$";var lt=d++;l[lt]="(\\s*)"+l[z]+"\\s*("+q+"|"+l[ue]+")",a[lt]=new RegExp(l[lt],"g");var vo=d++;l[vo]="^\\s*("+l[ue]+")\\s+-\\s+("+l[ue]+")\\s*$";var Ss=d++;l[Ss]="^\\s*("+l[ot]+")\\s+-\\s+("+l[ot]+")\\s*$";var Pi=d++;l[Pi]="(<|>)?=?\\s*\\*";for(var jr=0;jr<35;jr++)o(jr,l[jr]),a[jr]||(a[jr]=new RegExp(l[jr]));function Qr(O,W){if(O instanceof ze)return O;if(typeof O!="string"||O.length>r||!(W?a[J]:a[L]).test(O))return null;try{return new ze(O,W)}catch{return null}}function ze(O,W){if(O instanceof ze){if(O.loose===W)return O;O=O.version}else if(typeof O!="string")throw new TypeError("Invalid Version: "+O);if(O.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof ze))return new ze(O,W);o("SemVer",O,W),this.loose=W;var K=O.trim().match(W?a[J]:a[L]);if(!K)throw new TypeError("Invalid Version: "+O);if(this.raw=O,this.major=+K[1],this.minor=+K[2],this.patch=+K[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");K[4]?this.prerelease=K[4].split(".").map((function(Ce){if(/^[0-9]+$/.test(Ce)){var He=+Ce;if(He>=0&&He<s)return He}return Ce})):this.prerelease=[],this.build=K[5]?K[5].split("."):[],this.format()}t.parse=Qr,t.valid=function(O,W){var K=Qr(O,W);return K?K.version:null},t.clean=function(O,W){var K=Qr(O.trim().replace(/^[=v]+/,""),W);return K?K.version:null},t.SemVer=ze,ze.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},ze.prototype.toString=function(){return this.version},ze.prototype.compare=function(O){return o("SemVer.compare",this.version,this.loose,O),O instanceof ze||(O=new ze(O,this.loose)),this.compareMain(O)||this.comparePre(O)},ze.prototype.compareMain=function(O){return O instanceof ze||(O=new ze(O,this.loose)),Cs(this.major,O.major)||Cs(this.minor,O.minor)||Cs(this.patch,O.patch)},ze.prototype.comparePre=function(O){if(O instanceof ze||(O=new ze(O,this.loose)),this.prerelease.length&&!O.prerelease.length)return-1;if(!this.prerelease.length&&O.prerelease.length)return 1;if(!this.prerelease.length&&!O.prerelease.length)return 0;var W=0;do{var K=this.prerelease[W],Ce=O.prerelease[W];if(o("prerelease compare",W,K,Ce),K===void 0&&Ce===void 0)return 0;if(Ce===void 0)return 1;if(K===void 0)return-1;if(K!==Ce)return Cs(K,Ce)}while(++W)},ze.prototype.inc=function(O,W){switch(O){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",W);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",W);break;case"prepatch":this.prerelease.length=0,this.inc("patch",W),this.inc("pre",W);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",W),this.inc("pre",W);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 K=this.prerelease.length;--K>=0;)typeof this.prerelease[K]=="number"&&(this.prerelease[K]++,K=-2);K===-1&&this.prerelease.push(0)}W&&(this.prerelease[0]===W?isNaN(this.prerelease[1])&&(this.prerelease=[W,0]):this.prerelease=[W,0]);break;default:throw new Error("invalid increment argument: "+O)}return this.format(),this.raw=this.version,this},t.inc=function(O,W,K,Ce){typeof K=="string"&&(Ce=K,K=void 0);try{return new ze(O,K).inc(W,Ce).version}catch{return null}},t.diff=function(O,W){if(du(O,W))return null;var K=Qr(O),Ce=Qr(W);if(K.prerelease.length||Ce.prerelease.length){for(var He in K)if((He==="major"||He==="minor"||He==="patch")&&K[He]!==Ce[He])return"pre"+He;return"prerelease"}for(var He in K)if((He==="major"||He==="minor"||He==="patch")&&K[He]!==Ce[He])return He},t.compareIdentifiers=Cs;var Oe=/^[0-9]+$/;function Cs(O,W){var K=Oe.test(O),Ce=Oe.test(W);return K&&Ce&&(O=+O,W=+W),K&&!Ce?-1:Ce&&!K?1:O<W?-1:O>W?1:0}function bo(O,W,K){return new ze(O,K).compare(new ze(W,K))}function Cr(O,W,K){return bo(O,W,K)>0}function Ge(O,W,K){return bo(O,W,K)<0}function du(O,W,K){return bo(O,W,K)===0}function Jg(O,W,K){return bo(O,W,K)!==0}function Tr(O,W,K){return bo(O,W,K)>=0}function _i(O,W,K){return bo(O,W,K)<=0}function Da(O,W,K,Ce){var He;switch(W){case"===":typeof O=="object"&&(O=O.version),typeof K=="object"&&(K=K.version),He=O===K;break;case"!==":typeof O=="object"&&(O=O.version),typeof K=="object"&&(K=K.version),He=O!==K;break;case"":case"=":case"==":He=du(O,K,Ce);break;case"!=":He=Jg(O,K,Ce);break;case">":He=Cr(O,K,Ce);break;case">=":He=Tr(O,K,Ce);break;case"<":He=Ge(O,K,Ce);break;case"<=":He=_i(O,K,Ce);break;default:throw new TypeError("Invalid operator: "+W)}return He}function yo(O,W){if(O instanceof yo){if(O.loose===W)return O;O=O.value}if(!(this instanceof yo))return new yo(O,W);o("comparator",O,W),this.loose=W,this.parse(O),this.semver===Ra?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}t.rcompareIdentifiers=function(O,W){return Cs(W,O)},t.major=function(O,W){return new ze(O,W).major},t.minor=function(O,W){return new ze(O,W).minor},t.patch=function(O,W){return new ze(O,W).patch},t.compare=bo,t.compareLoose=function(O,W){return bo(O,W,!0)},t.rcompare=function(O,W,K){return bo(W,O,K)},t.sort=function(O,W){return O.sort((function(K,Ce){return t.compare(K,Ce,W)}))},t.rsort=function(O,W){return O.sort((function(K,Ce){return t.rcompare(K,Ce,W)}))},t.gt=Cr,t.lt=Ge,t.eq=du,t.neq=Jg,t.gte=Tr,t.lte=_i,t.cmp=Da,t.Comparator=yo;var Ra={};function Xt(O,W){if(O instanceof Xt)return O.loose===W?O:new Xt(O.raw,W);if(O instanceof yo)return new Xt(O.value,W);if(!(this instanceof Xt))return new Xt(O,W);if(this.loose=W,this.raw=O,this.set=O.split(/\s*\|\|\s*/).map((function(K){return this.parseRange(K.trim())}),this).filter((function(K){return K.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+O);this.format()}function Kn(O){return!O||O.toLowerCase()==="x"||O==="*"}function bb(O,W,K,Ce,He,Sn,St,Cn,Kt,Qe,Lo,Zt,Tn){return((W=Kn(K)?"":Kn(Ce)?">="+K+".0.0":Kn(He)?">="+K+"."+Ce+".0":">="+W)+" "+(Cn=Kn(Kt)?"":Kn(Qe)?"<"+(+Kt+1)+".0.0":Kn(Lo)?"<"+Kt+"."+(+Qe+1)+".0":Zt?"<="+Kt+"."+Qe+"."+Lo+"-"+Zt:"<="+Cn)).trim()}function Yg(O,W){for(var K=0;K<O.length;K++)if(!O[K].test(W))return!1;if(W.prerelease.length){for(K=0;K<O.length;K++)if(o(O[K].semver),O[K].semver!==Ra&&O[K].semver.prerelease.length>0){var Ce=O[K].semver;if(Ce.major===W.major&&Ce.minor===W.minor&&Ce.patch===W.patch)return!0}return!1}return!0}function vd(O,W,K){try{W=new Xt(W,K)}catch{return!1}return W.test(O)}function Ts(O,W,K,Ce){var He,Sn,St,Cn,Kt;switch(O=new ze(O,Ce),W=new Xt(W,Ce),K){case">":He=Cr,Sn=_i,St=Ge,Cn=">",Kt=">=";break;case"<":He=Ge,Sn=Tr,St=Cr,Cn="<",Kt="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(vd(O,W,Ce))return!1;for(var Qe=0;Qe<W.set.length;++Qe){var Lo=W.set[Qe],Zt=null,Tn=null;if(Lo.forEach((function(so){so.semver===Ra&&(so=new yo(">=0.0.0")),Zt=Zt||so,Tn=Tn||so,He(so.semver,Zt.semver,Ce)?Zt=so:St(so.semver,Tn.semver,Ce)&&(Tn=so)})),Zt.operator===Cn||Zt.operator===Kt||(!Tn.operator||Tn.operator===Cn)&&Sn(O,Tn.semver)||Tn.operator===Kt&&St(O,Tn.semver))return!1}return!0}yo.prototype.parse=function(O){var W=this.loose?a[At]:a[Nt],K=O.match(W);if(!K)throw new TypeError("Invalid comparator: "+O);this.operator=K[1],this.operator==="="&&(this.operator=""),K[2]?this.semver=new ze(K[2],this.loose):this.semver=Ra},yo.prototype.toString=function(){return this.value},yo.prototype.test=function(O){return o("Comparator.test",O,this.loose),this.semver===Ra||(typeof O=="string"&&(O=new ze(O,this.loose)),Da(O,this.operator,this.semver,this.loose))},yo.prototype.intersects=function(O,W){if(!(O instanceof yo))throw new TypeError("a Comparator is required");var K;if(this.operator==="")return K=new Xt(O.value,W),vd(this.value,K,W);if(O.operator==="")return K=new Xt(this.value,W),vd(O.semver,K,W);var Ce=!(this.operator!==">="&&this.operator!==">"||O.operator!==">="&&O.operator!==">"),He=!(this.operator!=="<="&&this.operator!=="<"||O.operator!=="<="&&O.operator!=="<"),Sn=this.semver.version===O.semver.version,St=!(this.operator!==">="&&this.operator!=="<="||O.operator!==">="&&O.operator!=="<="),Cn=Da(this.semver,"<",O.semver,W)&&(this.operator===">="||this.operator===">")&&(O.operator==="<="||O.operator==="<"),Kt=Da(this.semver,">",O.semver,W)&&(this.operator==="<="||this.operator==="<")&&(O.operator===">="||O.operator===">");return Ce||He||Sn&&St||Cn||Kt},t.Range=Xt,Xt.prototype.format=function(){return this.range=this.set.map((function(O){return O.join(" ").trim()})).join("||").trim(),this.range},Xt.prototype.toString=function(){return this.range},Xt.prototype.parseRange=function(O){var W=this.loose;O=O.trim(),o("range",O,W);var K=W?a[Ss]:a[vo];O=O.replace(K,bb),o("hyphen replace",O),O=O.replace(a[lt],"$1$2$3"),o("comparator trim",O,a[lt]),O=(O=(O=O.replace(a[se],"$1~")).replace(a[rt],"$1^")).split(/\s+/).join(" ");var Ce=W?a[At]:a[Nt],He=O.split(" ").map((function(Sn){return(function(St,Cn){return o("comp",St),St=(function(Kt,Qe){return Kt.trim().split(/\s+/).map((function(Lo){return(function(Zt,Tn){o("caret",Zt,Tn);var so=Tn?a[Ae]:a[$e];return Zt.replace(so,(function(Bo,We,it,kt,Rt){var Mn;return o("caret",Zt,Bo,We,it,kt,Rt),Kn(We)?Mn="":Kn(it)?Mn=">="+We+".0.0 <"+(+We+1)+".0.0":Kn(kt)?Mn=We==="0"?">="+We+"."+it+".0 <"+We+"."+(+it+1)+".0":">="+We+"."+it+".0 <"+(+We+1)+".0.0":Rt?(o("replaceCaret pr",Rt),Rt.charAt(0)!=="-"&&(Rt="-"+Rt),Mn=We==="0"?it==="0"?">="+We+"."+it+"."+kt+Rt+" <"+We+"."+it+"."+(+kt+1):">="+We+"."+it+"."+kt+Rt+" <"+We+"."+(+it+1)+".0":">="+We+"."+it+"."+kt+Rt+" <"+(+We+1)+".0.0"):(o("no pr"),Mn=We==="0"?it==="0"?">="+We+"."+it+"."+kt+" <"+We+"."+it+"."+(+kt+1):">="+We+"."+it+"."+kt+" <"+We+"."+(+it+1)+".0":">="+We+"."+it+"."+kt+" <"+(+We+1)+".0.0"),o("caret return",Mn),Mn}))})(Lo,Qe)})).join(" ")})(St,Cn),o("caret",St),St=(function(Kt,Qe){return Kt.trim().split(/\s+/).map((function(Lo){return(function(Zt,Tn){var so=Tn?a[ae]:a[Q];return Zt.replace(so,(function(Bo,We,it,kt,Rt){var Mn;return o("tilde",Zt,Bo,We,it,kt,Rt),Kn(We)?Mn="":Kn(it)?Mn=">="+We+".0.0 <"+(+We+1)+".0.0":Kn(kt)?Mn=">="+We+"."+it+".0 <"+We+"."+(+it+1)+".0":Rt?(o("replaceTilde pr",Rt),Rt.charAt(0)!=="-"&&(Rt="-"+Rt),Mn=">="+We+"."+it+"."+kt+Rt+" <"+We+"."+(+it+1)+".0"):Mn=">="+We+"."+it+"."+kt+" <"+We+"."+(+it+1)+".0",o("tilde return",Mn),Mn}))})(Lo,Qe)})).join(" ")})(St,Cn),o("tildes",St),St=(function(Kt,Qe){return o("replaceXRanges",Kt,Qe),Kt.split(/\s+/).map((function(Lo){return(function(Zt,Tn){Zt=Zt.trim();var so=Tn?a[re]:a[Ze];return Zt.replace(so,(function(Bo,We,it,kt,Rt,Mn){o("xRange",Zt,Bo,We,it,kt,Rt,Mn);var Xg=Kn(it),Ma=Xg||Kn(kt),Aa=Ma||Kn(Rt);return We==="="&&Aa&&(We=""),Xg?Bo=We===">"||We==="<"?"<0.0.0":"*":We&&Aa?(Ma&&(kt=0),Aa&&(Rt=0),We===">"?(We=">=",Ma?(it=+it+1,kt=0,Rt=0):Aa&&(kt=+kt+1,Rt=0)):We==="<="&&(We="<",Ma?it=+it+1:kt=+kt+1),Bo=We+it+"."+kt+"."+Rt):Ma?Bo=">="+it+".0.0 <"+(+it+1)+".0.0":Aa&&(Bo=">="+it+"."+kt+".0 <"+it+"."+(+kt+1)+".0"),o("xRange return",Bo),Bo}))})(Lo,Qe)})).join(" ")})(St,Cn),o("xrange",St),St=(function(Kt,Qe){return o("replaceStars",Kt,Qe),Kt.trim().replace(a[Pi],"")})(St,Cn),o("stars",St),St})(Sn,W)})).join(" ").split(/\s+/);return this.loose&&(He=He.filter((function(Sn){return!!Sn.match(Ce)}))),He=He.map((function(Sn){return new yo(Sn,W)}))},Xt.prototype.intersects=function(O,W){if(!(O instanceof Xt))throw new TypeError("a Range is required");return this.set.some((function(K){return K.every((function(Ce){return O.set.some((function(He){return He.every((function(Sn){return Ce.intersects(Sn,W)}))}))}))}))},t.toComparators=function(O,W){return new Xt(O,W).set.map((function(K){return K.map((function(Ce){return Ce.value})).join(" ").trim().split(" ")}))},Xt.prototype.test=function(O){if(!O)return!1;typeof O=="string"&&(O=new ze(O,this.loose));for(var W=0;W<this.set.length;W++)if(Yg(this.set[W],O))return!0;return!1},t.satisfies=vd,t.maxSatisfying=function(O,W,K){var Ce=null,He=null;try{var Sn=new Xt(W,K)}catch{return null}return O.forEach((function(St){Sn.test(St)&&(Ce&&He.compare(St)!==-1||(He=new ze(Ce=St,K)))})),Ce},t.minSatisfying=function(O,W,K){var Ce=null,He=null;try{var Sn=new Xt(W,K)}catch{return null}return O.forEach((function(St){Sn.test(St)&&(Ce&&He.compare(St)!==1||(He=new ze(Ce=St,K)))})),Ce},t.validRange=function(O,W){try{return new Xt(O,W).range||"*"}catch{return null}},t.ltr=function(O,W,K){return Ts(O,W,"<",K)},t.gtr=function(O,W,K){return Ts(O,W,">",K)},t.outside=Ts,t.prerelease=function(O,W){var K=Qr(O,W);return K&&K.prerelease.length?K.prerelease:null},t.intersects=function(O,W,K){return O=new Xt(O,K),W=new Xt(W,K),O.intersects(W)},t.coerce=function(O){if(O instanceof ze)return O;if(typeof O!="string")return null;var W=O.match(a[Z]);return W==null?null:Qr((W[1]||"0")+"."+(W[2]||"0")+"."+(W[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 S=d.length;S;){for(l=d,d=[];++u<S;)l&&l[u].run();u=-1,S=d.length}l=null,c=!1,(function(w){if(n===clearTimeout)return clearTimeout(w);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(w);try{n(w)}catch{try{return n.call(null,w)}catch{return n.call(this,w)}}})(I)}}function v(I,S){this.fun=I,this.array=S}function h(){}o.nextTick=function(I){var S=new Array(arguments.length-1);if(arguments.length>1)for(var w=1;w<arguments.length;w++)S[w-1]=arguments[w];d.push(new v(I,S)),d.length!==1||c||a(g)},v.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=h,o.addListener=h,o.once=h,o.off=h,o.removeListener=h,o.removeAllListeners=h,o.emit=h,o.prependListener=h,o.prependOnceListener=h,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 pJe=ft.exports.SEMVER_SPEC_VERSION,mJe=ft.exports.parse,o6=ft.exports.valid,gJe=ft.exports.coerce,fJe=ft.exports.clean,hJe=ft.exports.inc,vJe=ft.exports.major,bJe=ft.exports.minor,yJe=ft.exports.patch,IJe=ft.exports.prerelease,xJe=ft.exports.gt,SJe=ft.exports.gte,CJe=ft.exports.lt,TJe=ft.exports.lte,EJe=ft.exports.eq,wJe=ft.exports.neq,kJe=ft.exports.cmp,PJe=ft.exports.compare,_Je=ft.exports.rcompare,DJe=ft.exports.compareIdentifiers,RJe=ft.exports.rcompareIdentifiers,MJe=ft.exports.compareBuild,AJe=ft.exports.sort,OJe=ft.exports.rsort,LJe=ft.exports.diff,NJe=ft.exports.validRange,UJe=ft.exports.satisfies,FJe=ft.exports.maxSatisfying,HJe=ft.exports.minSatisfying,VJe=ft.exports.minVersion,BJe=ft.exports.gtr,WJe=ft.exports.ltr,$Je=ft.exports.outside,zJe=ft.exports.intersects,qJe=ft.exports.SemVer,KJe=ft.exports.Comparator,GJe=ft.exports.Range;var AV=/^(\^|>=)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/,i6=/^-(\d{4})(\d{2})(\d{2})(\d{2})?(\d{2})?$/;function s6(i){return i=i.trim(),i==="*"||AV.test(i)}function _1(i){if(!s6(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(AV);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 D1(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=i6.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 R1=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 OV(i,t){if(t.serializeBuffersForPostMessage){let e=new R1,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=a6(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 ee.wrap(a)});return{message:o,buffers:r}}else return{message:JSON.stringify(i),buffers:[]}}function a6(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 LV(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 M1=class{constructor(t,e,n,o,r,s,a){this.#l="";this.#d=!1;this.#c=!1;this._onMessageEmitter=new T;this.onDidReceiveMessage=this._onMessageEmitter.event;this.#p=new T;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=Pa(s),this.#u=l6(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,gd(t,this.#o)}get cspSource(){let t=this.#r.extensionLocation;if(t.scheme===$.https||t.scheme===$.http){let e=t.toString();return e.endsWith("/")||(e+="/"),e+" "+qv}return qv}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(),ht(this.#a,t)||this.#t.$setOptions(this.#e,A1(this.#r,this.#s,t)),this.#a=t}async postMessage(t){if(this.#d)return!1;let e=OV(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===$.vscodeRemote,n=this.#r.extensionLocation.scheme===$.vscodeRemote?this.#r.extensionLocation.authority:void 0;return t.replace(/(["'])(?:vscode-resource):(\/\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(o,r,s,a,l,d)=>{let c=y.from({scheme:a||"file",path:decodeURIComponent(l)}),u=gd(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=y.from({scheme:a||"file",path:decodeURIComponent(l)}),u=gd(c,{isRemote:e,authority:n}).toString();return`${r}${u}${d}`})}};function Pa(i){try{let t=D1(_1(i.engines.vscode));return!!t&&t.majorBase>=1&&t.minorBase>=57}catch{return!1}}function l6(i){try{let t=D1(_1(i.engines.vscode));return t?t.majorBase<1||t.majorBase===1&&t.minorBase<60:!1}catch{return!1}}var KT=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(N.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}=LV(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 M1(e,this._webviewProxy,d6(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:NV(o,this.workspace)})}deleteWebview(e){this._webviews.delete(e)}getWebview(e){return this._webviews.get(e)}};function eu(i){return{id:i.identifier,location:i.extensionLocation}}function A1(i,t,e){return{enableCommandUris:e.enableCommandUris,enableScripts:e.enableScripts,enableForms:e.enableForms,portMapping:e.portMapping,localResourceRoots:e.localResourceRoots||NV(i,t)}}function d6(i){return{enableCommandUris:i.enableCommandUris,enableScripts:i.enableScripts,enableForms:i.enableForms,portMapping:i.portMapping,localResourceRoots:i.localResourceRoots?.map(t=>y.from(t))}}function NV(i,t){return[...(t?.getWorkspaceFolders()||[]).map(e=>e.uri),i.extensionLocation]}var Oo=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 O1=class{constructor(t,e){this.document=t;this._storagePath=e;this._backupCounter=1;this._edits=new Oo("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=p6(this.document.uri)+this._backupCounter++;return Lt(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}},L1=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 O1(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 N1=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 Ie(()=>this._providers.delete(t))}},jT=class{constructor(t,e,n,o,r){this._extHostDocuments=e;this._extensionStoragePaths=n;this._extHostWebview=o;this._extHostWebviewPanels=r;this._editorProviders=new N1;this._documents=new L1;this._proxy=t.getProxy(N.MainThreadCustomEditors)}registerCustomEditorProvider(t,e,n,o){let r=new G;if(c6(n))r.add(this._editorProviders.addTextProvider(e,t,n)),this._proxy.$registerTextEditorProvider(eu(t),e,o.webviewOptions||{},{supportsMove:!!n.moveCustomTextEditor,supportsInlineDiff:De(t,"customEditorDiffs")&&UV(n),supportsSideBySideDiff:De(t,"customEditorDiffs")&&FV(n)},Pa(t));else{r.add(this._editorProviders.addCustomProvider(e,t,n));let s=De(t,"customEditorDiffs");GT(n)&&r.add(n.onDidChangeCustomDocument(a=>{let l=this.getCustomDocumentEntry(e,a.document.uri);if(u6(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(eu(t),e,o.webviewOptions||{},{supportsInlineDiff:s&&HV(n),supportsSideBySideDiff:s&&VV(n)},!!o.supportsMultipleEditorsPerDocument,Pa(t))}return Ie.from(r,new Ie(()=>{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=y.revive(t),l=await s.provider.openCustomDocument(a,{backupId:n,untitledDocumentData:o?.buffer},r),d;return GT(s.provider)&&this._extensionStoragePaths&&(d=this._extensionStoragePaths.workspaceValue(s.extension)??this._extensionStoragePaths.globalValue(s.extension)),this._documents.add(e,l,d),{editable:GT(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=y.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=Mt.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=y.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=y.revive(t),u=y.revive(e);if(l.type===0){if(!UV(l.provider))throw new Error(`Provider for '${o}' does not support inline custom text editor diffs`);let v=this._extHostDocuments.getDocument(c),h=this._extHostDocuments.getDocument(u);return l.provider.resolveCustomTextEditorInlineDiff({original:v,modified:h},d,a)}if(!HV(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=y.revive(t),m=y.revive(e);if(l.type===0){if(!FV(l.provider))throw new Error(`Provider for '${o}' does not support side by side custom text editor diffs`);let h=this._extHostDocuments.getDocument(u),I=this._extHostDocuments.getDocument(m);return l.provider.resolveCustomTextEditorSideBySideDiff({original:h,modified:I},{original:d,modified:c},a)}if(!VV(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:v}=this.getCustomDocumentEntry(o,m);return l.provider.resolveCustomEditorSideBySideDiff({original:g,modified:v},{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=Mt.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=y.revive(e),a=this._extHostDocuments.getDocument(s);await o.provider.moveCustomTextEditor(a,r,ve.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,y.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,y.revive(e));if(!n)throw new Error("No custom document found");return n}getCustomEditorProvider(t){let n=this._editorProviders.get(t)?.provider;if(!n||!GT(n))throw new Error("Custom document is not editable");return n}};function GT(i){return!!i.onDidChangeCustomDocument}function c6(i){return typeof i.resolveCustomTextEditor=="function"}function UV(i){return typeof i.resolveCustomTextEditorInlineDiff=="function"}function FV(i){return typeof i.resolveCustomTextEditorSideBySideDiff=="function"}function HV(i){return typeof i.resolveCustomEditorInlineDiff=="function"}function VV(i){return typeof i.resolveCustomEditorSideBySideDiff=="function"}function u6(i){return typeof i.undo=="function"&&typeof i.redo=="function"}function p6(i){let t=i.scheme===$.file||i.scheme===$.untitled?i.fsPath:i.toString();return cr(t)+""}var QT=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 Ue(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(y.isUri(t)){if(!e){this.delete(t);return}this.#n.set(t,ut(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(...ut(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({...ba.from(u),modelVersionId:this._modelVersionIdProvider(s)})===this._maxDiagnosticsPerFile)break e;a.push({severity:2,message:p(3794,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=>({...ba.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}},Kr=class{constructor(t,e,n,o){this._logService=e;this._fileSystemInfoService=n;this._extHostDocumentsAndEditors=o;this._collections=new Map;this._onDidChangeDiagnostics=new Lb({merge:t=>t.flat(),delay:50});this.onDidChangeDiagnostics=Le.map(this._onDidChangeDiagnostics.event,Kr._mapper);this._proxy=t.getProxy(N.MainThreadDiagnostics)}static{this._idPool=0}static{this._maxDiagnosticsPerFile=1e3}static{this._maxDiagnosticsTotal=1.1*this._maxDiagnosticsPerFile}static _mapper(t){let e=new Ue;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_#"+Kr._idPool++,c=e;else if(!n.has(e))c=e;else{this._logService.warn(`DiagnosticCollection with name '${e}' does already exist.`);do c=e+Kr._idPool++;while(n.has(c))}return new class extends QT{constructor(){super(e,c,Kr._maxDiagnosticsTotal,Kr._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 QT(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)n.length===0?this._mirrorCollection.delete(y.revive(e)):this._mirrorCollection.set(y.revive(e),n.map(ba.to))}};Kr=R([C(1,ie),C(2,Ar)],Kr);var JT=class{constructor(t){this._proxy=t.getProxy(N.MainThreadDialogs)}showOpenDialog(t){return this._proxy.$showOpenDialog(t).then(e=>e?e.map(n=>y.revive(n)):void 0)}showSaveDialog(t){return this._proxy.$showSaveDialog(t).then(e=>e?y.revive(e):void 0)}};var YT=class i{constructor(t,e,n){this._documentsAndEditors=e;this._logService=n;this._documentContentProviders=new Map;this._proxy=t.getProxy(N.MainThreadDocumentContentProviders)}static{this._handlePool=0}registerTextDocumentContentProvider(t,e){if(Object.keys($).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=qb(l);if(!d.equalLines(c))return this._proxy.$onVirtualDocumentChange(s,l)}).catch(_t).finally(()=>{r===a&&(r=void 0)});r=a})}return new Ie(()=>{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(y.revive(e),ve.None)):Promise.reject(new Error(`unsupported uri-scheme: ${e.scheme}`))}};var XT=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 Qn;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=y.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:av.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 uu("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(v=>{this._logService.debug(`onWillSaveTextDocument-listener from extension '${t.identifier.value}' finished after ${Date.now()-s}ms`),clearTimeout(g),u(v)}).catch(v=>{clearTimeout(g),m(v)})}).then(u=>{let m={edits:[]};for(let g of u)if(Array.isArray(g)&&g.every(v=>v instanceof Dn))for(let{newText:v,newEol:h,range:I}of g)m.edits.push({resource:a.uri,versionId:void 0,textEdit:{range:I&&B.from(I),text:v,eol:h&&Lc.from(h)}});if(m.edits.length!==0)return d===a.version?this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new Vt(m)):Promise.reject(new Error("concurrent_edits"))})}};var ZT=class{constructor(t,e){this._toDispose=new G;this._onDidAddDocument=this._toDispose.add(new T);this._onDidRemoveDocument=this._toDispose.add(new T);this._onDidChangeDocument=this._toDispose.add(new T);this._onDidChangeDocumentWithReason=this._toDispose.add(new T);this._onDidSaveDocument=this._toDispose.add(new T);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(N.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=y.revive(r);return Yr(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=>y.revive(e))}$acceptModelLanguageChanged(t,e){let n=y.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=y.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=y.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=y.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=y.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(Hf({document:r.document,contentChanges:e.changes.map(a=>({range:B.to(a.range),rangeOffset:a.rangeOffset,rangeLength:a.rangeLength,text:a.text})),reason:s})),this._onDidChangeDocumentWithReason.fire(Hf({document:r.document,contentChanges:e.changes.map(a=>({range:B.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){iV(t,e)}};var eE=class{constructor(t){this._provider=new Map;this._registeredModels=new Set;this._onDidChange=new T;this.onDidChange=this._onDidChange.event;this._allKnownModels=new Set;this._handlePool=0;this._proxy=t.getProxy(N.MainThreadEmbeddings)}registerEmbeddingsProvider(t,e,n){if(this._registeredModels.has(e))throw new Error(`An embeddings provider for model '${e}' is already registered`);let o=this._handlePool++;return this._proxy.$registerEmbeddingProvider(o,e),this._provider.set(o,{id:e,provider:n}),this._registeredModels.add(e),Y(()=>{this._registeredModels.delete(e),this._proxy.$unregisterEmbeddingProvider(o),this._provider.delete(o)})}async computeEmbeddings(t,e,n){n??=ve.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 tE=class{constructor(t){this._AiEmbeddingVectorProviders=new Map;this._nextHandle=0;this._proxy=t.getProxy(N.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 Ie(()=>{this._proxy.$unregisterAiEmbeddingVectorProvider(o),this._AiEmbeddingVectorProviders.delete(o)})}};var F1=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}},Gv=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 F1(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)}},U1=null;function m6(){return U1===null&&(U1=new Gv([[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]])),U1}var Kv=null;function g6(){if(Kv===null){Kv=new $m(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++)Kv.set(i.charCodeAt(e),1);let t=".,;:";for(let e=0;e<t.length;e++)Kv.set(t.charCodeAt(e),2)}return Kv}var nE=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=m6()){let n=g6(),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,v=!1,h=!1,I=!1;for(;d<l;){let S=!1,w=a.charCodeAt(d);if(m===13){let P;switch(w){case 40:g=!0,P=0;break;case 41:P=g?0:1;break;case 91:h=!0,v=!0,P=0;break;case 93:h=!1,P=v?0:1;break;case 123:I=!0,P=0;break;case 125:P=I?0:1;break;case 39:case 34:case 96:u===w?P=1:u===39||u===34||u===96?P=0:P=1;break;case 42:P=u===42?1:0;break;case 32:P=h?0:1;break;default:P=n.get(w)}P===1&&(o.push(i._createLink(n,a,r,c,d)),S=!0)}else if(m===12){let P;w===91?(v=!0,P=0):P=n.get(w),P===1?S=!0:m=13}else m=e.nextState(m,w),m===0&&(S=!0);S&&(m=1,g=!1,v=!1,I=!1,c=d+1,u=w),d++}m===13&&o.push(i._createLink(n,a,r,c,l))}return o}};var H1=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?DL(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 Gv(e)}}provideDocumentLinks(t){this._initStateMachine();let e=[],n=nE.computeLinks({getLineContent(o){return t.lineAt(o-1).text},getLineCount(){return t.lineCount}},this._stateMachine);for(let o of n){let r=Ia.to(o);r.target&&e.push(r)}return e}},oE=class i{constructor(t,e){this._extHostLanguageFeatures=e;this._linkProvider=new H1;this._fsProvider=new Map;this._registeredSchemes=new Set;this._watches=new Map;this._handlePool=0;this._proxy=t.getProxy(N.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"&&(M(t,"fsChunks"),s+=4);let a;o.isReadonly&&Eo(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 v;switch(g){case 1:v=0;break;case 2:v=1;break;case 3:v=2;break;default:throw new Error("Unknown FileChangeType")}c.push({resource:m,type:v})}this._proxy.$onFileSystemChange(r,c)});return Y(()=>{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(y.revive(e))).then(n=>i._asIStat(n))}$readdir(t,e){return Promise.resolve(this._getFsProvider(t).readDirectory(y.revive(e)))}$readFile(t,e){return Promise.resolve(this._getFsProvider(t).readFile(y.revive(e))).then(n=>ee.wrap(n))}$writeFile(t,e,n,o){return Promise.resolve(this._getFsProvider(t).writeFile(y.revive(e),n.buffer,o))}$delete(t,e,n){return Promise.resolve(this._getFsProvider(t).delete(y.revive(e),n))}$rename(t,e,n,o){return Promise.resolve(this._getFsProvider(t).rename(y.revive(e),y.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(y.revive(e),y.revive(n),o))}$mkdir(t,e){return Promise.resolve(this._getFsProvider(t).createDirectory(y.revive(e)))}$watch(t,e,n,o){let r=this._getFsProvider(t).watch(y.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(y.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=ee.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}};var BV=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 dn);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new G;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()}};function WV(i,t){return typeof t=="string"&&!t.startsWith(Gs)&&!Xr(t)?{base:i,pattern:t}:t}var V1=class{constructor(t,e,n,o,r,s,a,l){this.session=Math.random();this._onDidCreate=new T;this._onDidChange=new T;this._onDidDelete=new T;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($.file)??0)&1024):n.extUri.ignorePathCasing(y.revive(a.baseUri)),c=a;d&&(c=typeof a=="string"?a.toLowerCase():{base:a.base.toLowerCase(),pattern:a.pattern.toLowerCase()});let u=li(c,{ignoreCase:!1}),m=typeof a=="string",g=!1,v=s(h=>{if(!(typeof h.session=="number"&&h.session!==this.session)&&!(g&&typeof h.session>"u")){if(!l.ignoreCreateEvents)for(let{uri:I,lowerCaseFsPath:S}of h.created)u(d?S:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidCreate.fire(I);if(!l.ignoreChangeEvents)for(let{uri:I,lowerCaseFsPath:S}of h.changed)u(d?S:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidChange.fire(I);if(!l.ignoreDeleteEvents)for(let{uri:I,lowerCaseFsPath:S}of h.deleted)u(d?S:I.fsPath)&&(!m||o.getWorkspaceFolder(I))&&this._onDidDelete.fire(I)}});this._disposable=Ie.from(this.ensureWatching(t,o,e,r,a,l,!1),this._onDidCreate,this._onDidChange,this._onDidDelete,v)}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=Ie.from();if(typeof r=="string"||s.ignoreChangeEvents&&s.ignoreCreateEvents&&s.ignoreDeleteEvents)return l;let d=t.getProxy(N.MainThreadFileSystemEventService),c=!1;(r.pattern.includes(Gs)||r.pattern.includes(BI))&&(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 v=e.getWorkspaceFolder(y.revive(r.baseUri)),h=n.getConfiguration("files",v).get("watcherExclude");if(h)for(let I in h)I&&h[I]===!0&&u.push(I)}else if(!c){let v=e.getWorkspaceFolder(y.revive(r.baseUri));if(v){let h=n.getConfiguration("files",v).get("watcherExclude");if(h){for(let I in h)if(I&&h[I]===!0){let S=`${Dd(I,"/")}/${Gs}`;m||(m=[]),m.push(WV(v.uri.fsPath,S))}}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),Ie.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}},B1=class i{constructor(t){this._events=t;this._created=new yt(()=>this._events.created.map(i._revive));this._changed=new yt(()=>this._events.changed.map(i._revive));this._deleted=new yt(()=>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=y.revive(t);return{uri:e,lowerCaseFsPath:e.fsPath.toLowerCase()}}},rE=class{constructor(t,e,n){this._mainContext=t;this._logService=e;this._extHostDocumentsAndEditors=n;this._onFileSystemEvent=new T;this._onDidRenameFile=new T;this._onDidCreateFile=new T;this._onDidDeleteFile=new T;this._onWillRenameFile=new Oi;this._onWillCreateFile=new Oi;this._onWillDeleteFile=new Oi;this.onDidRenameFile=this._onDidRenameFile.event;this.onDidCreateFile=this._onDidCreateFile.event;this.onDidDeleteFile=this._onDidDeleteFile.event}createFileSystemWatcher(t,e,n,o,r,s){return new V1(this._mainContext,e,n,t,o,this._onFileSystemEvent.event,Ro.from(r),s)}$onFileEvent(t){this._onFileSystemEvent.fire(new B1(t))}$onDidRunFileOperation(t,e){switch(t){case 2:this._onDidRenameFile.fire(Object.freeze({files:e.map(n=>({oldUri:y.revive(n.source),newUri:y.revive(n.target)}))}));break;case 1:this._onDidDeleteFile.fire(Object.freeze({files:e.map(n=>y.revive(n.target))}));break;case 0:case 3:this._onDidCreateFile.fire(Object.freeze({files:e.map(n=>y.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:y.revive(r.source),newUri:y.revive(r.target)}))},n,o);case 1:return await this._fireWillEvent(this._onWillDeleteFile,{files:e.map(r=>y.revive(r.target))},n,o);case 0:case 3:return await this._fireWillEvent(this._onWillCreateFile,{files:e.map(r=>y.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 tr&&(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}=oo.from(l,{getTextDocumentVersion:c=>this._extHostDocumentsAndEditors.getDocument(c)?.version,getNotebookDocumentVersion:()=>{}});a.edits=a.edits.concat(d)}return{edit:a,extensionNames:Array.from(r)}}};var iE=class{constructor(t,e,n,o,r){this._extHostNotebooks=e;this._textDocumentsAndEditors=n;this._commands=o;let s=new Pe("interactive.open","_interactive.open","Open interactive window and return notebook editor and input URI",[new ne("showOptions","Show Options",a=>!0,a=>a),new ne("resource","Interactive resource Uri",a=>!0,a=>a),new ne("controllerId","Notebook controller Id",a=>!0,a=>a),new ne("title","Interactive editor title",a=>!0,a=>a)],new ke("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:y.revive(a.notebookUri),inputUri:y.revive(a.inputUri),notebookEditor:l.apiEditor}}return r.debug("[ExtHostInteractive] notebook editor not found, uris for the interactive document",a.notebookUri,a.inputUri),{notebookUri:y.revive(a.notebookUri),inputUri:y.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 sE=class{constructor(t){this._handlePool=0;this._proxy=t.getProxy(N.MainThreadLabelService)}$registerResourceLabelFormatter(t){let e=this._handlePool++;return this._proxy.$registerResourceLabelFormatter(e,t),Y(()=>{this._proxy.$unregisterResourceLabelFormatter(e)})}};var aE=class i extends Fe{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 yn(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new yn(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 lE=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(!rf(o))return o[0]instanceof Ir?o.map(iM.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:xr.from(o.kind),tags:o.tags?.map(ha.from)||[],detail:"",containerName:o.containerName,range:B.from(o.location.range),selectionRange:B.from(o.location.range),children:[]};for(;;){if(n.length===0){n.push(r),e.push(r);break}let s=n[n.length-1];if(Fe.containsRange(s.range,r.range)&&!Fe.equalsRange(s.range,r.range)){s.children?.push(r),n.push(r);break}n.pop()}}return e}},Ig=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 Oo("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 G;this._disposables.set(r,s);let a={cacheId:r,lenses:[]};for(let l=0;l<o.length;l++){if(!he.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:B.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 EE(i){return Array.isArray(i)?i.map(im.from):i?[im.from(i)]:[]}var dE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDefinition(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideDefinition(o,r,n);return EE(s)}},cE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDeclaration(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideDeclaration(o,r,n);return EE(s)}},uE=class{constructor(t,e){this._documents=t;this._provider=e}async provideImplementation(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideImplementation(o,r,n);return EE(s)}},pE=class{constructor(t,e){this._documents=t;this._provider=e}async provideTypeDefinition(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideTypeDefinition(o,r,n);return EE(s)}},jv=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=nt.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||rf(a.contents))return;a.range||(a.range=r.getWordRangeAtPosition(s)),a.range||(a.range=new he(s,s));let l=sm.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)}},mE=class{constructor(t,e){this._documents=t;this._provider=e}async provideEvaluatableExpression(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideEvaluatableExpression(o,r,n);if(s)return lM.from(s)}},gE=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,B.to(e),iv.to(n),o);if(Array.isArray(s))return s.map(a=>rv.from(a))}},fE=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentHighlights(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideDocumentHighlights(o,r,n);if(Array.isArray(s))return s.map(Oc.from)}},hE=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=nt.to(e),l=await this._provider.provideMultiDocumentHighlights(r,a,s,o);if(Array.isArray(l))return l.map(dM.from)}},vE=class{constructor(t,e){this._documents=t;this._provider=e}async provideLinkedEditingRanges(t,e,n){let o=this._documents.getDocument(t),r=nt.to(e),s=await this._provider.provideLinkedEditingRanges(o,r,n);if(s&&Array.isArray(s.ranges))return{ranges:ut(s.ranges.map(B.from)),wordPattern:s.wordPattern}}},bE=class{constructor(t,e){this._documents=t;this._provider=e}async provideReferences(t,e,n,o){let r=this._documents.getDocument(t),s=nt.to(e),a=await this._provider.provideReferences(r,s,n,o);if(Array.isArray(a))return a.map(no.from)}},xg=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 Oo("CodeAction");this._disposables=new Map}static{this._maxCodeActionsPerFile=1e3}async provideCodeActions(t,e,n,o){let r=this._documents.getDocument(t),s=aE.isISelection(e)?fo.to(e):B.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 bt(n.only):void 0,triggerKind:xM.to(n.trigger)},d=await this._provider.provideCodeActions(r,s,l,o);if(!Ua(d)||o.isCancellationRequested)return;let c=this._cache.add(d),u=new G;this._disposables.set(c,u);let m=[];for(let g=0;g<d.length;g++){let v=d[g];if(v)if(i._isCommand(v)&&!(v instanceof es))this._apiDeprecation.report("CodeActionProvider.provideCodeActions - return commands",this._extension,"Return 'CodeAction' instances instead."),m.push({_isSynthetic:!0,title:v.title,command:this._commands.toInternal(v,u)});else{let h=v;l.only&&(h.kind?l.only.contains(h.kind)||this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${l.only.value}' requested but returned code action is of kind '${h.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=h.ranges??[];m.push({cacheId:[c,g],title:h.title,command:h.command&&this._commands.toInternal(h.command,u),diagnostics:h.diagnostics&&h.diagnostics.map(ba.from),edit:h.edit&&oo.from(h.edit,void 0),kind:h.kind&&h.kind.value,isPreferred:h.isPreferred,isAI:De(this._extension,"codeActionAI")?h.isAI:!1,ranges:De(this._extension,"codeActionRanges")?ut(I.map(B.from)):void 0,disabled:h.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=oo.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"}},tu=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 Oo("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=>B.to(u)),a=Bc.toDataTransfer(n,()=>{throw new Sb});if(await this._provider.prepareDocumentPaste(r,s,a,o),o.isCancellationRequested)return;let l=Array.from(a).filter(([,u])=>!(u instanceof Ll)),d=new Map,c=await Promise.all(Array.from(l,async([u,m])=>{let g=Be();return d.set(g,m),[u,await Ac.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=>B.to(g)),d=o.items.map(([g,v])=>{let h=this._cachedPrepare?.get(v.id);return h?[g,h]:[g,Ac.to(g,v,async I=>(await this._proxy.$resolvePasteFileData(this._handle,t,I)).buffer)]}),c=new Fr(d),u=await this._provider.provideDocumentPasteEdits(a,l,c,{only:r.only?new Hr(r.only):void 0,triggerKind:r.triggerKind},s);if(!u||s.isCancellationRequested)return[];let m=this._editsCache.add(u);return u.map((g,v)=>({_cacheId:[m,v],title:g.title??p(3798,null,this._extension.displayName||this._extension.name),kind:g.kind,yieldTo:g.yieldTo?.map(h=>h.value),insertText:typeof g.insertText=="string"?g.insertText:{snippet:g.insertText.value},additionalEdit:g.additionalEdit?oo.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?oo.from(s.additionalEdit,void 0):void 0}}releasePasteEdits(t){this._editsCache.delete(t)}},yE=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(fn.from)}},Qv=class{constructor(t,e){this._documents=t;this._provider=e}async provideDocumentRangeFormattingEdits(t,e,n,o){let r=this._documents.getDocument(t),s=B.to(e),a=await this._provider.provideDocumentRangeFormattingEdits(r,s,n,o);if(Array.isArray(a))return a.map(fn.from)}async provideDocumentRangesFormattingEdits(t,e,n,o){Tb(typeof this._provider.provideDocumentRangesFormattingEdits=="function","INVALID invocation of `provideDocumentRangesFormattingEdits`");let r=this._documents.getDocument(t),s=e.map(B.to),a=await this._provider.provideDocumentRangesFormattingEdits(r,s,n,o);if(Array.isArray(a))return a.map(fn.from)}},IE=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=nt.to(e),l=await this._provider.provideOnTypeFormattingEdits(s,a,n,o,r);if(Array.isArray(l))return l.map(fn.from)}},Sg=class{constructor(t,e){this._provider=t;this._logService=e;this._cache=new Oo("WorkspaceSymbols")}async provideWorkspaceSymbols(t,e){let n=await this._provider.provideWorkspaceSymbols(t,e);if(!Ua(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({...Ql.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&&Rr(t,Ql.from(o),!0)}}releaseWorkspaceSymbols(t){this._cache.delete(t)}},Cg=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=nt.to(e);try{let a=await this._provider.provideRenameEdits(r,s,n,o);return a?oo.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=nt.to(e);try{let s=await this._provider.prepareRename(o,r,n),a,l;if(he.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:B.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}},Jv=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=B.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}},Yv=class{constructor(t,e){this.resultId=t;this.tokens=e}},Xv=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 vi(new Uint32Array(t.data),t.resultId):i._isSemanticTokensEdits(t)?i._isCorrectSemanticTokensEdits(t)?t:new Nl(t.edits.map(e=>new _p(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 Nl([],e.resultId);let d=0,c=l-a;for(;d<c&&n[o-d-1]===r[s-d-1];)d++;return new Nl([{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 Yv(t.resultId,t.data)),MT({id:n,type:"full",data:t.data})}if(i._isSemanticTokensEdits(t)){let n=this._nextResultId++;return i._isSemanticTokens(e)?this._previousResults.set(n,new Yv(e.resultId,e.data)):this._previousResults.set(n,new Yv(t.resultId)),MT({id:n,type:"delta",deltas:(t.edits||[]).map(o=>({start:o.start,deleteCount:o.deleteCount,data:o.data}))})}return null}},xE=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,B.to(e),n);return r?this._send(r):null}_send(t){return MT({id:0,type:"full",data:t.data})}},nu=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 Oo("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=nt.to(e),a=r.getWordRangeAtPosition(s)||new he(s,s),l=a.with({end:s}),d=new Vn,c=await this._provider.provideCompletionItems(r,s,o,cM.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 G;this._disposables.set(m,g);let v=[],h={x:m,b:v,a:{replace:B.from(a),insert:B.from(l)},c:u.isIncomplete||void 0,d:d.elapsed()};for(let I=0;I<u.items.length;I++){let S=u.items[I],w=this._convertCompletionItem(S,[m,I],l,a);v.push(w)}return h}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||!ht(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?YS.from(t.kind):void 0,m:t.tags&&t.tags.map(JS.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(fn.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 Hn&&(a.h=t.insertText.value,a.i|=4);let l;return t.textEdit?l=t.textEdit.range:t.range&&(l=t.range),he.isRange(l)?a.j=B.from(l):l&&(!n?.isEqual(l.inserting)||!o?.isEqual(l.replacing))&&(a.j={insert:B.from(l.inserting),replace:B.from(l.replacing)}),a}},Ei=class{constructor(t,e,n,o){this._extension=t;this._documents=e;this._provider=n;this._commands=o;this._references=new W1;this.languageTriggerKindToVSCodeTriggerKind={0:1,1:0};this._isAdditionsProposedApiEnabled=De(this._extension,"inlineCompletionsAdditions")}get supportsHandleEvents(){return De(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 De(this._extension,"inlineCompletionsAdditions")&&typeof this._provider.setCurrentModelId=="function"}get supportsSetProviderOption(){return De(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=nt.to(e),a=await this._provider.provideInlineCompletionItems(r,s,{selectedCompletionInfo:n.selectedSuggestionInfo?{range:B.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,g=this._references.createReferenceId({dispose(){m?.dispose()},items:l,list:d});return{pid:g,languageId:r.languageId,items:l.map((h,I)=>{let S;h.command&&(m||(m=new G),S=this._commands.toInternal(h.command,m));let w;h.action&&(m||(m=new G),w=this._commands.toInternal(h.action,m));let P=h.insertText;return{insertText:P===void 0?void 0:typeof P=="string"?P:{snippet:P.value},range:h.range?B.from(h.range):void 0,showRange:this._isAdditionsProposedApiEnabled&&h.showRange?B.from(h.showRange):void 0,command:S,gutterMenuLinkAction:w,pid:g,idx:I,completeBracketPairs:this._isAdditionsProposedApiEnabled?h.completeBracketPairs:!1,isInlineEdit:this._isAdditionsProposedApiEnabled?h.isInlineEdit:!1,showInlineEditMenu:this._isAdditionsProposedApiEnabled?h.showInlineEditMenu:!1,hint:h.displayLocation&&this._isAdditionsProposedApiEnabled?{range:B.from(h.displayLocation.range),content:h.displayLocation.label,style:h.displayLocation.kind?_M.from(h.displayLocation.kind):1}:void 0,warning:h.warning&&this._isAdditionsProposedApiEnabled?{message:ge.from(h.warning.message),icon:h.warning.icon?Ii.fromThemeIcon(h.warning.icon):void 0}:void 0,correlationId:this._isAdditionsProposedApiEnabled?h.correlationId:void 0,suggestionId:void 0,uri:this._isAdditionsProposedApiEnabled&&h.uri?h.uri:void 0,supportsRename:this._isAdditionsProposedApiEnabled?h.supportsRename:!1,jumpToPosition:this._isAdditionsProposedApiEnabled&&h.jumpToPosition?nt.from(h.jumpToPosition):void 0}}),commands:c.map(h=>(m||(m=new G),uM.from(h,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,kM.to(o)))}handleEndOfLifetime(t,e,n){let o=this._references.get(t)?.items[e];if(o&&this._provider.handleEndOfLifetime&&this._isAdditionsProposedApiEnabled){let r=PM.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)}},W1=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)}},Zv=class{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Oo("SignatureHelp")}async provideSignatureHelp(t,e,n,o){let r=this._documents.getDocument(t),s=nt.to(e),a=this.reviveContext(n),l=await this._provider.provideSignatureHelp(r,s,o,a);if(l){let d=this._cache.add([l]);return{...am.from(l),id:d}}}reviveContext(t){let e;if(t.activeSignatureHelp){let n=am.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)}},Tg=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 Oo("InlayHints");this._disposables=new Map}async provideInlayHints(t,e,n){let o=this._documents.getDocument(t),r=B.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 G);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:nt.from(t.position),textEdits:t.textEdits&&t.textEdits.map(fn.from),kind:t.kind&&XS.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)};zt.isLocation(s.location)&&(a.location=no.from(s.location)),s.command&&(a.command=this._commands.toInternal(s.command,n)),r.push(a)}}return o}},Eg=class i{constructor(t,e){this._documents=t;this._provider=e;this._cache=new Oo("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(Ia.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=Ia.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 Ia.from(o)}releaseLinks(t){this._cache.delete(t)}},eb=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:Hc.from(s.color),range:B.from(s.range)})):[]}async provideColorPresentations(t,e,n){let o=this._documents.getDocument(t),r=B.to(e.range),s=Hc.to(e.color),a=await this._provider.provideColorPresentations(s,{document:o,range:r},n);if(Array.isArray(a))return a.map(sv.from)}},SE=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(lv.from)}},CE=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(nt.to),s=await this._provider.provideSelectionRanges(o,r,n);if(!Ua(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(gM.from(u)),!u.parent)break;c=u.range,u=u.parent}}return a}},ou=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new dd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),r=nt.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=>B.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=>B.from(a))}))}releaseSession(t){this._cache.delete(t)}_cacheAndConvertItem(t,e){let n=this._cache.get(t),o=ya.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},ru=class{constructor(t,e){this._documents=t;this._provider=e;this._idPool=new dd("");this._cache=new Map}async prepareSession(t,e,n){let o=this._documents.getDocument(t),r=nt.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=xa.from(e,t,n.size.toString(36));return n.set(o._itemId,e),o}_itemFromCache(t,e){return this._cache.get(t)?.get(e)}},wg=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 Oo("DocumentDropEdit")}async provideDocumentOnDropEdits(t,e,n,o,r){let s=this._documents.getDocument(e),a=nt.to(n),l=Bc.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=hn(d),u=this._cache.add(c);return c.map((m,g)=>({_cacheId:[u,g],title:m.title??p(3797,null,this._extension.displayName||this._extension.name),kind:m.kind?.value,yieldTo:m.yieldTo?.map(v=>v.value),insertText:typeof m.insertText=="string"?m.insertText:{snippet:m.insertText.value},additionalEdit:m.additionalEdit?oo.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?oo.from(s.additionalEdit,void 0):void 0}}releaseDropEdits(t){this._cache.delete(t)}},iu=class{constructor(t,e){this.adapter=t;this.extension=e}},TE=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 T);this.onDidChangeInlineCompletionsUnificationState=this._onDidChangeInlineCompletionsUnificationState.event;this._proxy=e.getProxy(N.MainThreadLanguageFeatures),this._inlineCompletionsUnificationState={codeUnification:!1,modelUnification:!1,extensionUnification:!1,expAssignments:[]}}static{this._handlePool=0}get inlineCompletionsUnificationState(){return this._inlineCompletionsUnificationState}_transformDocumentSelector(e,n){return fs.from(e,this._uriTransformer,n)}_createDisposable(e){return new Ie(()=>{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=>{En(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`)}),ve.isCancellationToken(s)?Bi(c,s):c}_addNewAdapter(e,n){let o=this._nextHandle();return this._adapter.set(o,new iu(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 lE(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,lE,r=>r.provideDocumentSymbols(y.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 iu(new Ig(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=Ie.from(a,l)}return a}$provideCodeLenses(e,n,o){return this._withAdapter(e,Ig,r=>r.provideCodeLenses(y.revive(n),o),void 0,o,n.scheme==="output")}$resolveCodeLens(e,n,o){return this._withAdapter(e,Ig,r=>r.resolveCodeLens(n,o),void 0,void 0,!0)}$releaseCodeLenses(e,n){this._withAdapter(e,Ig,o=>Promise.resolve(o.releaseCodeLenses(n)),void 0,void 0,!0)}registerDefinitionProvider(e,n,o){let r=this._addNewAdapter(new dE(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,dE,s=>s.provideDefinition(y.revive(n),o,r),[],r)}registerDeclarationProvider(e,n,o){let r=this._addNewAdapter(new cE(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,cE,s=>s.provideDeclaration(y.revive(n),o,r),[],r)}registerImplementationProvider(e,n,o){let r=this._addNewAdapter(new uE(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,uE,s=>s.provideImplementation(y.revive(n),o,r),[],r)}registerTypeDefinitionProvider(e,n,o){let r=this._addNewAdapter(new pE(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,pE,s=>s.provideTypeDefinition(y.revive(n),o,r),[],r)}registerHoverProvider(e,n,o,r){let s=this._addNewAdapter(new jv(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,jv,a=>a.provideHover(y.revive(n),o,r,s),void 0,s)}$releaseHover(e,n){this._withAdapter(e,jv,o=>Promise.resolve(o.releaseHover(n)),void 0,void 0)}registerEvaluatableExpressionProvider(e,n,o,r){let s=this._addNewAdapter(new mE(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,mE,s=>s.provideEvaluatableExpression(y.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 gE(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=Ie.from(l,d)}return l}$provideInlineValues(e,n,o,r,s){return this._withAdapter(e,gE,a=>a.provideInlineValues(y.revive(n),o,r,s),void 0,s)}registerDocumentHighlightProvider(e,n,o){let r=this._addNewAdapter(new fE(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 hE(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,fE,s=>s.provideDocumentHighlights(y.revive(n),o,r),void 0,r)}$provideMultiDocumentHighlights(e,n,o,r,s){return this._withAdapter(e,hE,a=>a.provideMultiDocumentHighlights(y.revive(n),o,r.map(l=>y.revive(l)),s),void 0,s)}registerLinkedEditingRangeProvider(e,n,o){let r=this._addNewAdapter(new vE(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,vE,async s=>{let a=await s.provideLinkedEditingRanges(y.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 bE(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,bE,a=>a.provideReferences(y.revive(n),o,r,s),void 0,s)}registerCodeActionProvider(e,n,o,r){let s=new G,a=this._addNewAdapter(new xg(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,xg,a=>a.provideCodeActions(y.revive(n),o,r,s),void 0,s)}$resolveCodeAction(e,n,o){return this._withAdapter(e,xg,r=>r.resolveCodeAction(n,o),{},void 0)}$releaseCodeActions(e,n){this._withAdapter(e,xg,o=>Promise.resolve(o.releaseCodeActions(n)),void 0,void 0)}registerDocumentFormattingEditProvider(e,n,o){let r=this._addNewAdapter(new yE(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,yE,s=>s.provideDocumentFormattingEdits(y.revive(n),o,r),void 0,r)}registerDocumentRangeFormattingEditProvider(e,n,o){let r=typeof o.provideDocumentRangesFormattingEdits=="function",s=this._addNewAdapter(new Qv(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,Qv,a=>a.provideDocumentRangeFormattingEdits(y.revive(n),o,r,s),void 0,s)}$provideDocumentRangesFormattingEdits(e,n,o,r,s){return this._withAdapter(e,Qv,a=>a.provideDocumentRangesFormattingEdits(y.revive(n),o,r,s),void 0,s)}registerOnTypeFormattingEditProvider(e,n,o,r){let s=this._addNewAdapter(new IE(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,IE,l=>l.provideOnTypeFormattingEdits(y.revive(n),o,r,s,a),void 0,a)}registerWorkspaceSymbolProvider(e,n){let o=this._addNewAdapter(new Sg(n,this._logService),e);return this._proxy.$registerNavigateTypeSupport(o,typeof n.resolveWorkspaceSymbol=="function"),this._createDisposable(o)}$provideWorkspaceSymbols(e,n,o){return this._withAdapter(e,Sg,r=>r.provideWorkspaceSymbols(n,o),{symbols:[]},o)}$resolveWorkspaceSymbol(e,n,o){return this._withAdapter(e,Sg,r=>r.resolveWorkspaceSymbol(n,o),void 0,void 0)}$releaseWorkspaceSymbols(e,n){this._withAdapter(e,Sg,o=>o.releaseWorkspaceSymbols(n),void 0,void 0)}registerRenameProvider(e,n,o){let r=this._addNewAdapter(new Cg(this._documents,o,this._logService),e);return this._proxy.$registerRenameSupport(r,this._transformDocumentSelector(n,e),Cg.supportsResolving(o)),this._createDisposable(r)}$provideRenameEdits(e,n,o,r,s){return this._withAdapter(e,Cg,a=>a.provideRenameEdits(y.revive(n),o,r,s),void 0,s)}$resolveRenameLocation(e,n,o,r){return this._withAdapter(e,Cg,s=>s.resolveRenameLocation(y.revive(n),o,r),void 0,r)}registerNewSymbolNamesProvider(e,n,o){let r=this._addNewAdapter(new Jv(this._documents,o,this._logService),e);return this._proxy.$registerNewSymbolNamesProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$supportsAutomaticNewSymbolNamesTriggerKind(e){return this._withAdapter(e,Jv,n=>n.supportsAutomaticNewSymbolNamesTriggerKind(),!1,void 0)}$provideNewSymbolNames(e,n,o,r,s){return this._withAdapter(e,Jv,a=>a.provideNewSymbolNames(y.revive(n),o,r,s),void 0,s)}registerDocumentSemanticTokensProvider(e,n,o,r){let s=this._addNewAdapter(new Xv(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=Ie.from(l,d)}return l}$provideDocumentSemanticTokens(e,n,o,r){return this._withAdapter(e,Xv,s=>s.provideDocumentSemanticTokens(y.revive(n),o,r),null,r)}$releaseDocumentSemanticTokens(e,n){this._withAdapter(e,Xv,o=>o.releaseDocumentSemanticColoring(n),void 0,void 0)}registerDocumentRangeSemanticTokensProvider(e,n,o,r){let s=this._addNewAdapter(new xE(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=Ie.from(l,d)}return l}$provideDocumentRangeSemanticTokens(e,n,o,r){return this._withAdapter(e,xE,s=>s.provideDocumentRangeSemanticTokens(y.revive(n),o,r),null,r)}registerCompletionItemProvider(e,n,o,r){let s=this._addNewAdapter(new nu(this._documents,this._commands.converter,o,this._apiDeprecation,e),e);return this._proxy.$registerCompletionsProvider(s,this._transformDocumentSelector(n,e),r,nu.supportsResolving(o),e.identifier),this._createDisposable(s)}$provideCompletionItems(e,n,o,r,s){return this._withAdapter(e,nu,a=>a.provideCompletionItems(y.revive(n),o,r,s),void 0,s)}$resolveCompletionItem(e,n,o){return this._withAdapter(e,nu,r=>r.resolveCompletionItem(n,o),void 0,o)}$releaseCompletionItems(e,n){this._withAdapter(e,nu,o=>o.releaseCompletionItems(n),void 0,void 0)}registerInlineCompletionsProvider(e,n,o,r){let s=new Ei(e,this._documents,o,this._commands.converter),a=this._addNewAdapter(s,e),l=this._createDisposable(a),d=De(e,"inlineCompletionsAdditions")&&typeof o.onDidChange=="function";if(d){let m=o.onDidChange(g=>this._proxy.$emitInlineCompletionsChange(a,g?{data:g.data}:void 0));l=Ie.from(l,m)}let c=De(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeModelInfo=="function";if(c){let m=o.onDidChangeModelInfo(g=>this._proxy.$emitInlineCompletionModelInfoChange(a,s.modelInfo));l=Ie.from(l,m)}let u=De(e,"inlineCompletionsAdditions")&&typeof o.onDidChangeProviderOptions=="function";if(u){let m=o.onDidChangeProviderOptions(g=>this._proxy.$emitInlineCompletionProviderOptionsChange(a,s.providerOptions));l=Ie.from(l,m)}return this._proxy.$registerInlineCompletionsSupport(a,this._transformDocumentSelector(n,e),s.supportsHandleEvents,xe.toKey(e.identifier.value),e.version,r?.groupId?xe.toKey(r.groupId):void 0,r?.yieldTo?.map(m=>xe.toKey(m))||[],r?.displayName,r?.debounceDelayMs,r?.excludes?.map(m=>xe.toKey(m))||[],d,s.supportsSetModelId,s.modelInfo,c,s.supportsSetProviderOption,s.providerOptions,u),l}$provideInlineCompletions(e,n,o,r,s){return this._withAdapter(e,Ei,a=>a.provideInlineCompletions(y.revive(n),o,r,s),void 0,void 0)}$handleInlineCompletionDidShow(e,n,o,r){this._withAdapter(e,Ei,async s=>{s.handleDidShowCompletionItem(n,o,r)},void 0,void 0)}$handleInlineCompletionPartialAccept(e,n,o,r,s){this._withAdapter(e,Ei,async a=>{a.handlePartialAccept(n,o,r,s)},void 0,void 0)}$handleInlineCompletionEndOfLifetime(e,n,o,r){this._withAdapter(e,Ei,async s=>{s.handleEndOfLifetime(n,o,r)},void 0,void 0)}$handleInlineCompletionRejection(e,n,o){this._withAdapter(e,Ei,async r=>{r.handleRejection(n,o)},void 0,void 0)}$freeInlineCompletionsList(e,n,o){this._withAdapter(e,Ei,async r=>{r.disposeCompletions(n,o)},void 0,void 0)}$acceptInlineCompletionsUnificationState(e){this._inlineCompletionsUnificationState=e,this._onDidChangeInlineCompletionsUnificationState.fire()}$handleInlineCompletionSetCurrentModelId(e,n){this._withAdapter(e,Ei,async o=>{o.setCurrentModelId(n)},void 0,void 0)}$handleInlineCompletionSetProviderOption(e,n,o){this._withAdapter(e,Ei,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 Zv(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,Zv,a=>a.provideSignatureHelp(y.revive(n),o,r,s),void 0,s)}$releaseSignatureHelp(e,n){this._withAdapter(e,Zv,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 Tg(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=Ie.from(a,l)}return a}$provideInlayHints(e,n,o,r){return this._withAdapter(e,Tg,s=>s.provideInlayHints(y.revive(n),o,r),void 0,r)}$resolveInlayHint(e,n,o){return this._withAdapter(e,Tg,r=>r.resolveInlayHint(n,o),void 0,o)}$releaseInlayHints(e,n){this._withAdapter(e,Tg,o=>o.releaseHints(n),void 0,void 0)}registerDocumentLinkProvider(e,n,o){let r=this._addNewAdapter(new Eg(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,Eg,r=>r.provideLinks(y.revive(n),o),void 0,o,n.scheme==="output")}$resolveDocumentLink(e,n,o){return this._withAdapter(e,Eg,r=>r.resolveLink(n,o),void 0,void 0,!0)}$releaseDocumentLinks(e,n){this._withAdapter(e,Eg,o=>o.releaseLinks(n),void 0,void 0,!0)}registerColorProvider(e,n,o){let r=this._addNewAdapter(new eb(this._documents,o),e);return this._proxy.$registerDocumentColorProvider(r,this._transformDocumentSelector(n,e)),this._createDisposable(r)}$provideDocumentColors(e,n,o){return this._withAdapter(e,eb,r=>r.provideColors(y.revive(n),o),[],o)}$provideColorPresentations(e,n,o,r){return this._withAdapter(e,eb,s=>s.provideColorPresentations(y.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 iu(new SE(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=Ie.from(a,l)}return a}$provideFoldingRanges(e,n,o,r){return this._withAdapter(e,SE,s=>s.provideFoldingRanges(y.revive(n),o,r),void 0,r)}registerSelectionRangeProvider(e,n,o){let r=this._addNewAdapter(new CE(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,CE,s=>s.provideSelectionRanges(y.revive(n),o,r),[],r)}registerCallHierarchyProvider(e,n,o){let r=this._addNewAdapter(new ou(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,ou,s=>Promise.resolve(s.prepareSession(y.revive(n),o,r)),void 0,r)}$provideCallHierarchyIncomingCalls(e,n,o,r){return this._withAdapter(e,ou,s=>s.provideCallsTo(n,o,r),void 0,r)}$provideCallHierarchyOutgoingCalls(e,n,o,r){return this._withAdapter(e,ou,s=>s.provideCallsFrom(n,o,r),void 0,r)}$releaseCallHierarchy(e,n){this._withAdapter(e,ou,o=>Promise.resolve(o.releaseSession(n)),void 0,void 0)}registerTypeHierarchyProvider(e,n,o){let r=this._addNewAdapter(new ru(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,ru,s=>Promise.resolve(s.prepareSession(y.revive(n),o,r)),void 0,r)}$provideTypeHierarchySupertypes(e,n,o,r){return this._withAdapter(e,ru,s=>s.provideSupertypes(n,o,r),void 0,r)}$provideTypeHierarchySubtypes(e,n,o,r){return this._withAdapter(e,ru,s=>s.provideSubtypes(n,o,r),void 0,r)}$releaseTypeHierarchy(e,n){this._withAdapter(e,ru,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 iu(new wg(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,wg,l=>Promise.resolve(l.provideDocumentOnDropEdits(n,y.revive(o),r,s,a)),void 0,void 0)}$resolveDropEdit(e,n,o){return this._withAdapter(e,wg,r=>r.resolveDropEdit(n,o),{},void 0)}$releaseDocumentOnDropEdits(e,n){this._withAdapter(e,wg,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 iu(new tu(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,tu,a=>a.prepareDocumentPaste(y.revive(n),o,r,s),void 0,s)}$providePasteEdits(e,n,o,r,s,a,l){return this._withAdapter(e,tu,d=>d.providePasteEdits(n,y.revive(o),r,s,a,l),void 0,l)}$resolvePasteEdit(e,n,o){return this._withAdapter(e,tu,r=>r.resolvePasteEdit(n,o),{},void 0)}$releasePasteEdits(e,n){this._withAdapter(e,tu,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=>Mc.toString(n)):void 0}}static _serializeAutoClosingPairs(e){return e.map(i._serializeAutoClosingPair)}setLanguageConfiguration(e,n,o){let{wordPattern:r}=o;if(r&&zb(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 $V(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 Ket=D("ILanguageModelToolsConfirmationService");var zV=D("notebookService");var qV=D("codeMapperService");var $1="vscode_editFile",wE="vscode_editFile_internal",KV={id:wE,displayName:"",modelDescription:"",source:Qt.Internal},kg=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=y.revive(r.uri),a=Ch.parse(s)?.notebook||s,l=this.chatService.getSession(t.context.sessionResource),d=l.getRequests().at(-1);l.acceptResponseProgress(d,{kind:"markdownContent",content:new vt("\n````\n")}),l.acceptResponseProgress(d,{kind:"codeblockUri",uri:a,isEdit:!0}),l.acceptResponseProgress(d,{kind:"markdownContent",content:new vt("\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,v)=>{l.acceptResponseProgress(d,{kind:"textEdit",uri:g,edits:v})},notebookEdit(g,v){l.acceptResponseProgress(d,{kind:"notebookEdit",uri:g,edits:v})}},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 v=!1;m=uo(h=>{let S=c.entries.read(h)?.find(w=>nn(w.modifiedURI,a));S&&(S.isCurrentlyBeingModifiedBy.read(h)?v=!0:v&&g(!0))})}).finally(()=>{m.dispose()}),{content:[{kind:"text",value:"The file was edited successfully"}]}}async prepareToolInvocation(t,e){return{presentation:"hidden"}}};kg=R([C(0,Yo),C(1,qV),C(2,zV)],kg);var kE="The user is not available to respond and will review your work later. Work autonomously and make good decisions.",GV="vscode_askQuestions",PE={header:50,question:200},v6={header:75};function b6(i,t){if(i!==void 0)return i.length>t?i.slice(0,t-3)+"...":i}function y6(){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 ${PE.header} characters.`,maxLength:PE.header},question:{type:"string",description:`The question text to display to the user. Keep it concise, ideally one sentence. Maximum ${PE.question} characters.`,maxLength:PE.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:GV,toolReferenceName:"askQuestions",legacyToolReferenceFullNames:[GV,"vscode/askQuestions"],canBeReferencedInPrompt:!1,icon:Ye.fromId(le.question.id),displayName:p(10876,null),userDescription:p(10877,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:Qt.Internal,inputSchema:t}}var z1=y6(),Pg=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=Vn.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(10874,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 z=u.modeInfo?.permissionLevel==="autopilot"?"Autopilot mode":"Auto-reply enabled";this.logService.info(`[AskQuestionsTool] ${z}: auto-responding to questions`);let{carousel:j,idToHeaderMap:X}=this.toQuestionCarousel(l,g);return j.terminalId=this.extractTerminalId(u),j.data=this.buildAutopilotCarouselAnswers(l,j,X),j.isUsed=!0,this.chatService.appendProgress(u,j),this.createAutopilotResult(l)}let{carousel:v,idToHeaderMap:h}=this.toQuestionCarousel(l,g);v.terminalId=this.extractTerminalId(u),this.logService.trace(`[AskQuestionsTool] request=${u.id} terminalExecutionId=${u.terminalExecutionId??"undefined"} carousel.terminalId=${v.terminalId??"undefined"}`),this.chatService.appendProgress(u,v);let I=this.chatService.onDidReceiveQuestionCarouselAnswer(z=>{z.resolveId!==v.resolveId||v.isUsed||v.dismiss(z.answers)}),S;try{S=await Xa(v.completion.p,r)}catch(z){throw z instanceof ct&&v.dismiss(void 0),z}finally{I.dispose()}if(!S)throw v.dismiss(void 0),new ct;if(r.isCancellationRequested)throw new ct;if(v.dismissedByTerminalInput&&v.terminalId)return this.logService.info(`[AskQuestionsTool] Carousel dismissed because user typed directly in terminal ${v.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 ${v.terminalId} completes.`}]};o.report({message:p(10875,null)});let w=this.convertCarouselAnswers(l,S?.answers,h),{answeredCount:P,skippedCount:A,freeTextCount:L,recommendedAvailableCount:V,recommendedSelectedCount:q}=this.collectMetrics(l,w);this.sendTelemetry(e.chatRequestId,l.length,P,A,L,V,q,s.elapsed());let J=JSON.stringify(w);return this.logService.trace(`[AskQuestionsTool] Returning tool result with metrics: questions=${l.length}, answered=${P}, skipped=${A}, freeText=${L}, recommendedAvailable=${V}, recommendedSelected=${q}`),{content:[{kind:"text",value:J}]}}async prepareToolInvocation(e,n){let o=e.parameters,{questions:r}=o;if(!r||r.length===0)throw new Error(p(10874,null));for(let c of r)if(c.options&&c.options.length===1&&!c.allowFreeformInput)throw new Error(p(10869,null,c.header));let s=r.length,a=r.map(c=>c.header).join(", "),l=s===1?p(10872,null,a):p(10870,null,s,a),d=s===1?p(10873,null,a):p(10871,null,s,a);return{invocationMessage:new vt(l),pastTenseMessage:new vt(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===Me.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??Be(),s=e.map((a,l)=>this.toChatQuestion(a,o,r,l));return{carousel:new ep(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=b6(e.header,v6.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"&&On(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"&&(On(d,{selectedValue:!0})||On(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:kE,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:kE}:d.type==="singleSelect"?r[l]={freeformValue:kE}:r[l]=kE)}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})}};Pg=R([C(0,Yo),C(1,Ur),C(2,ie),C(3,sn)],Pg);var I6="vscode_get_confirmation",x6="vscode_get_confirmation_with_options",S6="vscode_get_modified_files_confirmation",jV={id:I6,displayName:"Confirmation Tool",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and confirmation type (basic or terminal).",source:Qt.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}},QV={id:x6,displayName:"Confirmation Tool with Options",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and buttons.",source:Qt.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}},JV={id:S6,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:Qt.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}},_E=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 vt(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"}]}}},DE=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:y.parse(r.uri).toJSON(),originalUri:r.originalUri?y.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 vt(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 Dg=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 _g(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 _g(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 _g(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 _g(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}}},_g=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){_t(`[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(){Ha(this.mementoObj)?this.storageService.remove(this.id,this.scope):this.storageService.store(this.id,this.mementoObj,this.scope,this.target)}};var YV=D("chatTodoListService"),tb=class{constructor(t){this.memento=new Dg("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 il(t)}};tb=R([C(0,Po)],tb);var RE=class extends U{constructor(e){super();this._onDidUpdateTodos=this._register(new T);this.onDidUpdateTodos=this._onDidUpdateTodos.event;this.todoListStorage=new tb(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)}};RE=R([C(0,Po)],RE);var q1="manage_todo_list";function K1(){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:q1,toolReferenceName:"todo",legacyToolReferenceFullNames:["todos"],canBeReferencedInPrompt:!0,icon:Ye.fromId(le.checklist.id),displayName:p(10888,null),userDescription:p(10889,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:Qt.Internal,inputSchema:i}}var Knt=K1(),Rg=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=y.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(10883,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(10887,null);return{invocationMessage:new vt(c),presentation:l.length?void 0:"hidden",pastTenseMessage:new vt(a??p(10886,null)),toolSpecificData:{kind:"todoList",todoList:d}}}generatePastTenseMessage(e,n){if(e.length===0&&n.length>0)return n.length===1?p(10882,null):p(10881,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(10884,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(10880,null,l.title,c,d)}let a=n.filter(l=>!o.has(l.id));return a.length>0?a.length===1?p(10879,null):p(10878,null,a.length):p(10885,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}};Rg=R([C(0,YV),C(1,ie),C(2,Ur)],Rg);var C6="vscode_reviewPlan";function T6(){let t={type:"object",properties:{title:{type:"string",description:'Title displayed in the widget header. Defaults to "Plan summary" 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:C6,toolReferenceName:"reviewPlan",canBeReferencedInPrompt:!1,icon:Ye.fromId(le.checklist.id),displayName:p(10894,null),userDescription:p(10895,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:Qt.Internal,inputSchema:t}}var XV=T6(),Mg=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(10893,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=y.parse(l)}catch{try{g=y.file(l)}catch{g=void 0}}let v=new Zu(a??p(10890,null),d,c,u,g?.toJSON(),Be());this.chatService.appendProgress(m,v);let h=await Xa(v.completion.p,r);if(r.isCancellationRequested)throw v.dismiss(),new ct;return this.toResult(h??{rejected:!0})}async prepareToolInvocation(e,n){let o=e.parameters;if(!o.actions||o.actions.length===0)throw new Error(p(10893,null));return{invocationMessage:new vt(p(10891,null)),pastTenseMessage:new vt(p(10892,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}}};Mg=R([C(0,Yo),C(1,ie)],Mg);var wot=0,kot=0;function ZV(i){return i.isBYOK===!0}var eB=D("labelService");function G1(){return{applyingInstructionsCount:0,referencedInstructionsCount:0,agentInstructionsCount:0,listedInstructionsCount:0,totalInstructionsCount:0,claudeRulesCount:0,claudeMdCount:0,claudeAgentsCount:0}}function j1(){return{debugDetails:[],durationInMillis:0}}function Ag(i,t){return i===void 0||t===void 0||i.includes(t)}var ME=D("IPromptsService");var E6;(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"?xe.equals(n.extensionId,o.extensionId):n.storage==="plugin"&&o.storage==="plugin"?nn(n.pluginUri,o.pluginUri):!0}e.isEquals=t})(E6||={});var k6=".prompt.md",P6=".instructions.md",_6=".chatmode.md",D6=".agent.md",R6="SKILL.md";function M6(i){return Rd(i,R6)===0}var A6="copilot-instructions.md";var O6=".github/prompts",L6=".github/instructions";var nB=".github/agents",AE=".claude/agents",oB="~/.copilot/agents",Q1=".claude/rules";var N6=[{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"}],U6=[{path:L6,source:"github-workspace",storage:"local"},{path:Q1,source:"claude-workspace",storage:"local"},{path:"~/.copilot/instructions",source:"copilot-personal",storage:"user"},{path:"~/"+Q1,source:"claude-personal",storage:"user"}],F6=[{path:O6,source:"github-workspace",storage:"local"}],H6=[{path:nB,source:"github-workspace",storage:"local"},{path:AE,source:"claude-workspace",storage:"local"},{path:oB,source:"copilot-personal",storage:"user"},{path:"~/"+AE,source:"claude-personal",storage:"user"}],V6=[{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 B6(i){let t=Go(i).path;return t.endsWith("/"+nB)||t.endsWith("/"+AE)||W6(i)}function rB(i){return Go(i).path.endsWith("/"+AE)}function W6(i){return Go(i).path.endsWith(oB.substring(1))}function J1(i){return i.path.includes("/"+Q1+"/")}function $6(i){let t=tt(i);if(t.endsWith(k6))return"prompt";if(t.endsWith(P6)||t===A6)return"instructions";if(t.endsWith(_6)||t.endsWith(D6))return"agent";if(M6(t))return"skill";if(t.endsWith(".md")&&t!=="README.md"&&B6(i))return"agent";if(t.endsWith(".md")&&t!=="README.md"&&J1(i))return"instructions";if(t.toLowerCase().endsWith(".json"))return"hook"}function Y1(i){return $6(i)!==void 0}function iB(i){switch(i){case"instructions":return U6;case"prompt":return F6;case"agent":return H6;case"skill":return N6;case"hook":return V6;default:throw new Error("Unknown prompt type")}}var wi;(L=>{L.PROMPT_LOCATIONS_KEY="chat.promptFilesLocations",L.INSTRUCTIONS_LOCATION_KEY="chat.instructionsFilesLocations",L.MODE_LOCATION_KEY="chat.modeFilesLocations",L.AGENTS_LOCATION_KEY="chat.agentFilesLocations",L.SKILLS_LOCATION_KEY="chat.agentSkillsLocations",L.HOOKS_LOCATION_KEY="chat.hookFilesLocations",L.PROMPT_FILES_SUGGEST_KEY="chat.promptFilesRecommendations",L.USE_COPILOT_INSTRUCTION_FILES="github.copilot.chat.codeGeneration.useInstructionFiles",L.USE_AGENT_MD="chat.useAgentsMdFile",L.USE_NESTED_AGENT_MD="chat.useNestedAgentsMdFiles",L.USE_CLAUDE_MD="chat.useClaudeMdFile",L.USE_AGENT_SKILLS="chat.useAgentSkills",L.USE_CHAT_HOOKS="chat.useHooks",L.USE_CLAUDE_HOOKS="chat.useClaudeHooks",L.USE_SKILL_ADHERENCE_PROMPT="chat.experimental.useSkillAdherencePrompt",L.INCLUDE_APPLYING_INSTRUCTIONS="chat.includeApplyingInstructions",L.INCLUDE_REFERENCED_INSTRUCTIONS="chat.includeReferencedInstructions",L.USE_CUSTOMIZATIONS_IN_PARENT_REPOS="chat.useCustomizationsInParentRepositories";function w(V,q){let J=z6(q),z=V.getValue(J);if(!(z==null||Array.isArray(z))&&typeof z=="object"){let j={};for(let[X,ue]of Object.entries(z)){let ot=X.trim(),Ze=sB(ue);Ze!==void 0&&ot&&(j[ot]=Ze)}return j}}L.getLocationsValue=w;function P(V,q){let J=w(V,q),z=iB(q);if(J&&typeof J=="object"){let j=[],X=new Set(z.map(ue=>ue.path));for(let ue of z)J[ue.path]!==!1&&j.push(ue);for(let[ue,ot]of Object.entries(J)){if(ot===!1||X.has(ue))continue;let Ze=q6(ue)?"user":"local";j.push({path:ue,source:Ze==="local"?"config-workspace":"config-personal",storage:Ze})}return j}return[]}L.promptSourceFolders=P;function A(V,q){let J=V.getValue(L.PROMPT_FILES_SUGGEST_KEY,{resource:q});if(!J||typeof J!="object"||Array.isArray(J))return;let z={};for(let[j,X]of Object.entries(J)){let ue=j.trim();if(!ue)continue;if(typeof X=="boolean"){z[ue]=X;continue}if(typeof X=="string"){let Ze=X.trim();Ze&&(z[ue]=Ze);continue}let ot=sB(X);ot!==void 0&&(z[ue]=ot)}return Object.keys(z).length>0?z:void 0}L.getPromptFilesRecommendationsValue=A})(wi||={});function z6(i){switch(i){case"instructions":return wi.INSTRUCTIONS_LOCATION_KEY;case"prompt":return wi.PROMPT_LOCATIONS_KEY;case"agent":return wi.AGENTS_LOCATION_KEY;case"skill":return wi.SKILLS_LOCATION_KEY;case"hook":return wi.HOOKS_LOCATION_KEY;default:throw new Error("Unknown prompt type")}}function sB(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 q6(i){return i.startsWith("~/")}var aB=D("agentPluginService");var X1=class{constructor(){this._discovery=[];this._order=0}register(t,e){let n={descriptor:t,priority:e,order:this._order++};return this._discovery.push(n),Y(()=>{let o=this._discovery.indexOf(n);o>=0&&this._discovery.splice(o,1)})}getAll(){return[...this._discovery].sort((t,e)=>t.priority-e.priority||t.order-e.order)}},Zot=new X1;var K6,Og=class{constructor(t,e,n,o,r,s,a,l,d,c,u,m,g,v){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=v;this._parseResults=new Ue}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=G1(),s=j1(),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),K6={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 Ue,n=this._agentPluginService.plugins.get();for(let r of n)e.set(r.uri,r);let o=r=>r!==void 0?String(cr(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(wi.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(!Ag(d.sessionTypes,l))continue;if(!u){this._logService.trace(`[InstructionsContextComputer] No pattern (applyTo / paths) found: ${c}`),r.debugDetails.push({category:"skipped",name:tt(c).toString(),uri:c,reason:p(10516,null)});continue}let m=J1(c);if(e.instructions.has(c)){this._logService.trace(`[InstructionsContextComputer] Skipping already processed instruction file: ${c}`),r.debugDetails.push({category:"skipped",name:tt(c).toString(),uri:c,reason:p(10514,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 v=g.file?p(10525,null,u,this._labelService.getUriLabel(g.file,{relative:!0})):p(10523,null);n.add(al(c,"vscode.instructions.file.root",v,!0)),o.applyingInstructionsCount++,r.debugDetails.push({category:"applying",name:tt(c).toString(),uri:c,reason:v}),m&&o.claudeRulesCount++}else this._logService.trace(`[InstructionsContextComputer] No match for ${c} with ${u}`),r.debugDetails.push({category:"skipped",name:tt(c).toString(),uri:c,reason:p(10515,null,u)})}}_getContext(t){let e=new ir,n=new ir;for(let o of t.asArray())if(Zf(o))n.add(o.value);else{let r=sl.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 Qd,l=new Qd;for(let{uri:d,type:c}of s){let u=al(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:tt(d).toString(),uri:d,reason:p(10512,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=Yu(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(br(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(Th.runSubagent),c=this._getTool("skill"),u=this._currentSessionType,g=(await this._remoteAgentService.getEnvironment())?.os,v=this._remoteAgentService.getConnection()!==null,h=A=>G6(A,g,v),I=[];if(l){let L=this._configurationService.getValue(wi.USE_NESTED_AGENT_MD)?this._promptsService.listNestedAgentMDs(r):Promise.resolve([]);I.push("<instructions>"),I.push("Here is a list of instruction files that contain rules for working with this codebase."),I.push("These files are important for understanding the codebase structure, conventions, and best practices."),I.push("When an instruction file applies to your task (based on its description or applyTo pattern), follow the rules specified in it."),I.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.`),I.push("Only load instruction files when they are relevant to the current task. Do not eagerly load all instructions upfront."),I.push("When modifying or creating files, check for instructions whose applyTo pattern matches the file path and follow them.");let V=!1;for(let X of t)Ag(X.sessionTypes,u)&&(I.push("<instruction>"),I.push(`<file>${h(X.uri)}</file>`),X.description&&I.push(`<description>${Fi(X.description)}</description>`),X.pattern&&I.push(`<applyTo>${Fi(X.pattern)}</applyTo>`),I.push("</instruction>"),V=!0);let q=await L;for(let{uri:X}of q){let ue=this._labelService.getUriLabel(Go(X),{relative:!0}),ot=ue.trim().length===0?p(10522,null):p(10521,null,ue);I.push("<instruction>"),I.push(`<file>${h(X)}</file>`),I.push(`<description>${Fi(ot)}</description>`),I.push("</instruction>"),V=!0}V?I.push("</instructions>","",""):I.length=0;let J=await this._promptsService.findAgentSkills(r),z=this._configurationService.getValue(TH),j=J?.filter(X=>X.description?X.disableModelInvocation?(o.debugDetails.push({category:"skipped",name:X.name,uri:X.uri,reason:p(10519,null)}),!1):Ag(X.sessionTypes,u)?!z&&X.uri.path.includes(EH)?(o.debugDetails.push({category:"skipped",name:X.name,uri:X.uri,reason:p(10517,null)}),!1):!0:(o.debugDetails.push({category:"skipped",name:X.name,uri:X.uri,reason:p(10520,null)}),!1):(o.debugDetails.push({category:"skipped",name:X.name,uri:X.uri,reason:p(10518,null)}),!1));if(j&&j.length>0){this._logSkillLoadedTelemetry(j);for(let te of j)o.debugDetails.push({category:"skill",name:te.name,uri:te.uri,reason:te.storage});let X=this._configurationService.getValue(wi.USE_SKILL_ADHERENCE_PROMPT),ue=c??l;I.push("<skills>"),X?(I.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?I.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).`):I.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).`),I.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."),I.push("How to determine if a skill applies:"),I.push("1. Review the available skills below and match their descriptions against the user's request"),I.push("2. If any skill's domain overlaps with the task, load that skill immediately"),I.push("3. When multiple skills apply (e.g., a flowchart in documentation), load all relevant skills"),I.push("Examples:"),I.push(`- "Help me write unit tests for this module" -> Load the testing skill via ${ue.variable} FIRST, then proceed`),I.push(`- "Optimize this slow function" -> Load the performance-profiling skill via ${ue.variable} FIRST, then proceed`),I.push('- "Add a discount code field to checkout" -> Load both the checkout-flow and form-validation skills FIRST'),I.push("Available skills:")):c?(I.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),I.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.`)):(I.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),I.push("Each skill comes with a description of the topic and a file path that contains the detailed instructions."),I.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 ot=15e3,Ze=5e3,re=0,Z=j.length;for(let te=0;te<j.length;te++){let se=j[te],Q=["<skill>",`<name>${Fi(se.name)}</name>`];se.description&&Q.push(`<description>${Fi(se.description)}</description>`),Q.push(`<file>${h(se.uri)}</file>`),Q.push("</skill>");let ae=Q.join(`
`).length+1;if(c&&re+ae>ot){Z=te;break}re+=ae,I.push(...Q)}if(Z<j.length){let te=j.slice(Z),se=[],Q=0;for(let rt of te){let $e=Fi(rt.name),Ae=(se.length>0?2:0)+$e.length;if(Q+Ae>Ze)break;Q+=Ae,se.push($e)}let ae=te.length-se.length,be=se.join(", ");I.push(ae>0?`Additional skills available (invoke by name): ${be}... and ${ae} more`:`Additional skills available (invoke by name): ${be}`)}I.push("</skills>","","")}}if(d){let A=(()=>{if(!this._enabledSubagents||this._enabledSubagents.includes("*"))return V=>V.visibility.agentInvocable&&Ag(V.sessionTypes,u);{let V=this._enabledSubagents;return q=>V.includes(q.name)&&Ag(q.sessionTypes,u)}})(),L=(await this._promptsService.getCustomAgents(r)).filter(V=>V.enabled);if(L.length>0){I.push("<agents>"),I.push("Here is a list of agents that can be used when running a subagent."),I.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."),I.push(`Use the ${d.variable} tool with the agent name to run the subagent.`);for(let V of L)A(V)?(I.push("<agent>"),I.push(`<name>${Fi(V.name)}</name>`),V.description&&I.push(`<description>${Fi(V.description)}</description>`),V.argumentHint&&I.push(`<argumentHint>${Fi(V.argumentHint)}</argumentHint>`),I.push("</agent>"),o.debugDetails.push({category:"custom-agent",name:V.name,uri:V.uri}),rB(V.uri)&&n.claudeAgentsCount++):o.debugDetails.push({category:"skipped",name:V.name,uri:V.uri,reason:p(10513,null)});I.push("</agents>","","")}}if(I.length===0)return;let S=I.join(`
`),w=[],P=A=>{if(A){let L=S.indexOf(A.variable);for(;L>=0;)w.push(gU(A.tool,new mo(L,L+A.variable.length))),L=S.indexOf(A.variable,L+1)}};return P(l),P(d),P(c),mU(S,!0,w)}async _addReferencedInstructions(t,e,n,o){if(!this._configurationService.getValue(wi.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 ir,a=[];for(let d of t.asArray())Zf(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)&&(Y1(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],v=c[m].resource;if(g.success&&g.stat?.isFile){Y1(v)&&a.push(v);let h=p(10524,null,tt(l));t.add(al(v,"vscode.instructions.file.reference",h,!0)),e.referencedInstructionsCount++,n.debugDetails.push({category:"referenced",name:tt(v).toString(),uri:v,reason:h}),this._logService.trace(`[InstructionsContextComputer] ${v.toString()} added, referenced by ${l.toString()}`)}}}}l=a.pop()}}};Og=R([C(4,ME),C(5,ie),C(6,eB),C(7,sn),C(8,Mr),C(9,To),C(10,ji),C(11,Ur),C(12,Xu),C(13,aB)],Og);function G6(i,t,e=!1){if(e&&i.scheme===$.file)return i.with({scheme:"vscode-local"}).toString();if(i.scheme===$.file||i.scheme===$.vscodeRemote){let n=i.fsPath;return t!==void 0?t===1?n.replace(/\//g,"\\"):n.replace(/\\/g,"/"):n}return i.toString()}function j6(i,t,e){let n=e.defaultChatAgent?.chatExtensionId;if(!n)return!1;let o=xe.equals(t,n),r=i.path.includes("/github/");return o&&r}function Z1(i,t,e){if(i.storage!=="extension")return!1;let n=e.defaultChatAgent?.chatExtensionId;return!n||!xe.equals(i.extensionId,n)?!1:!j6(t,i.extensionId,e)}function OE(i){return{content:[{kind:"text",value:i}]}}var Q6=`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.`,J6=5,ki=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 T);this.onDidUpdateToolData=this._onDidUpdateToolData.event;this._resolvedModels=new Map;this._sessionDepth=new Map}static{this.Id="runSubagent"}getToolData(){let e=Q6,n={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"}};n.agentName={type:"string",description:"Optional name of a specific agent to invoke. If not provided, uses the current agent."},n.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 o={type:"object",properties:n,required:["prompt","description"]};return{id:ki.Id,toolReferenceName:Th.runSubagent,icon:Ye.fromId(le.organization.id),displayName:p(10896,null),userDescription:p(10897,null),modelDescription:e,source:Qt.Internal,inputSchema:o}}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,c=new G;try{let u=this.chatAgentService.getDefaultAgent("panel","agent");if(!u)return OE("Error: No default agent available");let m=e.modelId,g=e.userSelectedTools,v,h,I,S=l.modeInfo?.modeInstructions,w=this.normalizeRequestedAgentName(s.agentName),P=w??S?.name;if(w)if(h=await this.getSubAgentByName(w),h){let Q=this._resolvedModels.get(e.callId);if(Q)this._resolvedModels.delete(e.callId),m=Q.modeModelId,I=Q.resolvedModelName;else{let rt=this.resolveSubagentModel(h,e.modelId,s.model);m=rt.modeModelId,I=rt.resolvedModelName}let ae=h.tools;if(ae){let rt=this.languageModelToolsService.toToolAndToolSetEnablementMap(ae,void 0);g={};for(let[$e,Ae]of rt)gH($e)||(g[$e.id]=Ae)}let be=h.agentInstructions;v=be&&{name:w,content:be.content,toolReferences:this.languageModelToolsService.toToolReferences(be.toolReferences),allowedSubagents:void 0,metadata:be.metadata,isBuiltin:Z1(h.source,h.uri,this.productService)}}else throw this._resolvedModels.delete(e.callId),new Error(`Requested agent '${w}' not found. Try again with the correct agent name, or omit agentName to use the current agent.`);else{v=S;let Q=this._resolvedModels.get(e.callId);if(Q)this._resolvedModels.delete(e.callId),m=Q.modeModelId,I=Q.resolvedModelName;else{let ae=this.resolveSubagentModel(void 0,e.modelId,s.model);m=ae.modeModelId,I=ae.resolvedModelName}}let A=[],L=e.chatStreamToolCallId??e.callId??`subagent-${Be()}`,V=!1,q=Q=>{for(let ae of Q){if(ae.kind==="usage"){typeof ae.copilotCredits=="number"&&Number.isFinite(ae.copilotCredits)&&ae.copilotCredits>=0&&(d=Math.max(d??0,ae.copilotCredits));continue}ae.kind==="textEdit"||ae.kind==="notebookEdit"||ae.kind==="codeblockUri"?(ae.kind==="codeblockUri"&&!V&&(V=!0,a.acceptResponseProgress(l,{kind:"markdownContent",content:new vt("```\n")})),ae.kind==="codeblockUri"?a.acceptResponseProgress(l,{...ae,subAgentInvocationId:L}):a.acceptResponseProgress(l,ae)):ae.kind==="hook"?a.acceptResponseProgress(l,{...ae,subAgentInvocationId:L}):ae.kind==="markdownContent"&&(V&&(a.acceptResponseProgress(l,{kind:"markdownContent",content:new vt("\n```\n\n")}),V=!1),A.push(ae.content.value))}},J=this.configurationService.getValue("chat.subagents.allowInvocationsFromSubagents")??!1,z=J?J6:0,j=e.context.sessionResource.toString(),X=this._sessionDepth.get(j)??0,ue=X+1<=z;g||(g={}),g[ki.Id]!==!1&&(g[ki.Id]=ue),g[q1]=!1,g.copilot_askQuestions=!1,z>0&&this.logService.debug(`RunSubagentTool: Nested subagents enabling ${g[ki.Id]}: session ${j}, currentDepth: ${X}, maxDepth: ${z}, allowInvocationsFromSubagents: ${J}`);let Ze=new Qd;this.configurationService.getValue("chat.experimental.collectInstructionsInExtension")!==!0&&await this.instantiationService.createInstance(Og,"agent",g,void 0,Gd(e.context.sessionResource)).collect(Ze,r);let re;try{re=(await this.promptsService.getHooks(r))?.hooks}catch(Q){this.logService.warn("[ChatService] Failed to collect hooks:",Q)}if(h?.hooks){let Q={...h.hooks};if(Q.Stop){let ae=Q.Stop;Q.SubagentStop=Q.SubagentStop?[...Q.SubagentStop,...ae]:ae,Q.Stop=void 0}re=PH(re,Q)}let Z={sessionResource:e.context.sessionResource,requestId:e.callId??`subagent-${Date.now()}`,agentId:u.id,message:s.prompt,variables:{variables:Ze.asArray()},location:"panel",subAgentInvocationId:L,subAgentName:P,userSelectedModelId:m,modelConfiguration:m?this.languageModelsService.getModelConfiguration(m):void 0,userSelectedTools:g,modeInstructions:v,parentRequestId:e.chatRequestId,hooks:re,hasHooksEnabled:!!re&&Object.values(re).some(Q=>Q&&Q.length>0)};c.add(this.languageModelToolsService.onDidInvokeTool(Q=>{Q.subagentInvocationId===L&&(A.length=0)})),this._sessionDepth.set(j,X+1);let te;try{te=await this.chatAgentService.invokeAgent(u.id,Z,q,[],r)}finally{let Q=(this._sessionDepth.get(j)??1)-1;Q<=0?this._sessionDepth.delete(j):this._sessionDepth.set(j,Q)}if(te?.errorDetails)return OE(`Agent error: ${te.errorDetails.message}`);let se=A.join("").replace(/^\n*```\n+```\n*/g,"").trim()||"Agent completed with no output";return e.toolSpecificData?.kind==="subagent"&&(e.toolSpecificData.result=se,e.toolSpecificData.modelName=I),{content:[{kind:"text",value:se}],toolMetadata:{subAgentInvocationId:L,description:s.description,agentName:Z.subAgentName,modelName:I}}}catch(u){let m=`Error invoking subagent: ${u instanceof Error?u.message:"Unknown error"}`;return this.logService.error(m,u),OE(m)}finally{d!==void 0&&(l.response?.setSubagentCopilotCredits(e.callId,d),e.toolSpecificData?.kind==="subagent"&&(e.toolSpecificData.credits=d)),c.dispose()}}async getSubAgentByName(e){return(await this.promptsService.getCustomAgents(ve.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&&Gu.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=Gu.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&&ZV(d)&&Z1(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===Ks)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,r=this.normalizeRequestedAgentName(o.agentName),s=r?await this.getSubAgentByName(r):void 0,a=e.chatSessionResource?this.getCurrentModeInstructions(e.chatSessionResource):void 0,l=this.resolveSubagentModel(s,e.modelId,o.model);return this._resolvedModels.set(e.toolCallId,l),{invocationMessage:o.description,toolSpecificData:{kind:"subagent",description:o.description,agentName:s?.name??r??a?.name,prompt:o.prompt,modelName:l.resolvedModelName}}}normalizeRequestedAgentName(e){let n=e?.trim();return n||void 0}getCurrentModeInstructions(e){return typeof this.chatService.getSession!="function"?void 0:this.chatService.getSession(e)?.getRequests().at(-1)?.modeInfo?.modeInstructions}};ki=R([C(0,NI),C(1,Yo),C(2,Xu),C(3,MI),C(4,ie),C(5,sn),C(6,ME),C(7,mn),C(8,$u)],ki);var lB="chat-memory-file",Y6="copilot_memory",cB;(n=>{function i(o,r){return y.from({scheme:lB,path:o,query:r.toString()})}n.createUri=i;function t(o){return o.scheme===lB}n.isChatMemoryFileUri=t;function e(o){return{memoryPath:o.path,sessionResource:o.query}}n.parse=e})(cB||={});function X6(i,t){if(i===t)return!0;let[e,n]=i.split("/"),[o]=t.split("/");return n==="*"&&e===o}function nb(i,t){let e=un(i);for(let[n,o]of Object.entries(t))if(br(n,i)||br(n,e))return o}function dB(i,t){for(let[e,n]of Object.entries(t))if(X6(e,i))return n}function Z6(i){return typeof i=="object"&&i!==null&&"output"in i&&typeof i.output=="object"&&i.output?.type==="data"&&typeof i.output?.mimeType=="string"}function e3(i){if(typeof i!="object"||i===null)return;let t=i.path;return typeof t=="string"?t:void 0}var t3=new Set(["create","str_replace","insert"]);function n3(i){if(typeof i!="object"||i===null)return!1;let t=i.command;return typeof t=="string"&&t3.has(t)}function uB(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=nb(l.path,n);c&&(s.add(d),r.push({label:tt(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=nb(l.path,n);c&&(s.add(d),r.push({label:tt(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=nb(d.path,n);u&&(s.add(c),r.push({label:tt(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=nb(l.path,n);c&&(s.add(d),r.push({label:tt(l),uri:d,type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}if((a.kind==="toolInvocation"||a.kind==="toolInvocationSerialized")&&a.toolId===Y6){let l=Me.getParameters(a),d=e3(l);if(d&&n3(l)){let c=nb(d,o);if(c){let u=`memory:${a.toolCallId}:${d}`;s.has(u)||(s.add(u),r.push({label:un(d),uri:cB.createUri(d,t).toString(),type:"plan",groupName:c.groupName,onlyShowGroup:c.onlyShowGroup}))}}}if(a.kind==="toolInvocation"||a.kind==="toolInvocationSerialized"){let l=Me.resultDetails(a);if(!l)continue;if(_D(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=dB(c.mimeType,e);if(u){let m=`${a.toolCallId}:${d}`;if(!s.has(m)){s.add(m);let g=Hy(c.mimeType),v=g?`file${g}`:"file.bin",h=kh.createUri(t,a.toolCallId,d,v);r.push({label:c.uri?.path.split("/").pop()??`${u.groupName} ${d+1}`,uri:h.toString(),toolCallId:a.toolCallId,dataPartIndex:d,type:"screenshot",groupName:u.groupName,onlyShowGroup:u.onlyShowGroup})}}}}if(Z6(l)){let d=dB(l.output.mimeType,e);if(d){let c=`${a.toolCallId}:0`;if(!s.has(c)){s.add(c);let u=Hy(l.output.mimeType),m=u?`file${u}`:"file.bin",g=kh.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 NE=D("chatArtifactsService"),ob=class{constructor(t){this._memento=new Dg("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()}};ob=R([C(0,Po)],ob);var e0=class extends U{constructor(e,n,o,r,s){super();this._storageKey=n;this._storage=o;this._responseCache=new Map;this._ruleOverrides=Bs({owner:this,equalsFn:()=>!1},void 0);this._agentArtifacts=Bs({owner:this,equalsFn:()=>!1},[]);this._subagentArtifacts=Bs({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=po(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byMimeType")??{}),d=po(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byFilePath")??{}),c=po(this,s.onDidChangeConfiguration,()=>s.getValue("chat.artifacts.rules.byMemoryFilePath")??{}),u=po(this,r.onDidCreateModel,()=>r.getSession(e)),m=$s(g=>{let v=this._ruleOverrides.read(g),h=v?.byMimeType??l.read(g),I=v?.byFilePath??d.read(g),S=v?.byMemoryFilePath??c.read(g),w=u.read(g);if(!w)return[];rh(this,w.onDidChange).read(g);let A=w.getRequests(),L=[],V=new Set,q=new Set;for(let J of A){let z=J.response;if(!z)continue;V.add(z.id);let j=z.response,X=j.value.length,ue=0;for(let re of j.value)(re.kind==="toolInvocation"||re.kind==="toolInvocationSerialized")&&Me.resultDetails(re)!==void 0&&ue++;let ot=this._responseCache.get(z.id),Ze;ot&&ot.partsLength===X&&ot.completedToolCount===ue&&ot.byMimeType===h&&ot.byFilePath===I&&ot.byMemoryFilePath===S?Ze=ot.artifacts:(Ze=uB(j,e,h,I,S),this._responseCache.set(z.id,{partsLength:X,completedToolCount:ue,byMimeType:h,byFilePath:I,byMemoryFilePath:S,artifacts:Ze}));for(let re of Ze){let Z=re.toolCallId?`${re.toolCallId}:${re.dataPartIndex}`:re.uri;if(q.has(Z)){let te=L.findIndex(se=>se.toolCallId?`${se.toolCallId}:${se.dataPartIndex}`===Z:se.uri===Z);te!==-1&&L.splice(te,1)}q.add(Z),L.push(re)}}for(let J of this._responseCache.keys())V.has(J)||this._responseCache.delete(J);return L});this.artifactGroups=$s(g=>{let v=[],h=m.read(g);h.length>0&&v.push({key:"rules",seq:this._sourceSequences.get("rules")??0,group:{source:{kind:"rules"},artifacts:h}});let I=this._agentArtifacts.read(g);I.length>0&&v.push({key:"agent",seq:this._sourceSequences.get("agent")??1/0,group:{source:{kind:"agent"},artifacts:I}});let S=this._subagentArtifacts.read(g);for(let[A,L]of S)if(L.artifacts.length>0){let V=`subagent:${A}`;v.push({key:V,seq:this._sourceSequences.get(V)??1/0,group:{source:{kind:"subagent",invocationId:A,name:L.name},artifacts:L.artifacts}})}v.sort((A,L)=>A.seq-L.seq);let w=new Set,P=[];for(let A of v){let L=A.group.artifacts.filter(V=>{let q=V.toolCallId?`${V.toolCallId}:${V.dataPartIndex}`:V.uri;if(!q)return!1;let J=q.toLowerCase();return w.has(J)?!1:(w.add(J),!0)});L.length>0&&P.push({source:A.group.source,artifacts:L})}return P})}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)}},LE=class extends U{constructor(e,n,o){super();this._chatService=n;this._configurationService=o;this._instances=this._register(new wn);this._storage=new ob(e)}getArtifacts(e){let n=il(e),o=this._instances.get(n);return o||(o=new e0(e,n,this._storage,this._chatService,this._configurationService),this._instances.set(n,o)),o}};LE=R([C(0,Po),C(1,Yo),C(2,sn)],LE);var o3="setArtifacts",r3={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"]},pB={id:o3,toolReferenceName:"artifacts",legacyToolReferenceFullNames:["Set Session Artifacts"],displayName:p(10901,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:Qt.Internal,inputSchema:r3},Lg=class{constructor(t,e,n){this._chatArtifactsService=t;this._fileService=e;this._chatService=n}async prepareToolInvocation(t,e){return{pastTenseMessage:new vt(p(10902,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=y.parse(u);if(m.scheme!=="http"&&m.scheme!=="https"&&!await this._fileService.exists(m))throw new Error(p(10904,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(10903,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}}}};Lg=R([C(0,NE),C(1,To),C(2,Yo)],Lg);var i3="setArtifactRules",t0={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"]},s3={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:t0},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:t0},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:t0}}},mB={id:i3,toolReferenceName:"artifactRules",legacyToolReferenceFullNames:[],displayName:p(10898,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:Qt.Internal,inputSchema:s3},Ng=class{constructor(t){this._chatArtifactsService=t}async prepareToolInvocation(t,e){return{pastTenseMessage:new vt(p(10899,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(10900,null)}]}}};Ng=R([C(0,NE)],Ng);var a3="task_complete";var gB={id:a3,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:Qt.Internal,inputSchema:{type:"object",properties:{summary:{type:"string",description:"Brief summary of what was accomplished. Omit for trivial interactions."}}}},UE=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 FE=class extends U{static{this.ID="chat.builtinTools"}constructor(t,e,n){super();let o=e.createInstance(kg);this._register(t.registerTool(KV,o));let r=this._register(e.createInstance(Pg));this._register(t.registerTool(z1,r)),this._register(t.vscodeToolSet.addTool(z1));let s=this._register(e.createInstance(Mg));this._register(t.registerTool(XV,s));let a=K1(),l=this._register(e.createInstance(Rg));this._register(t.registerTool(a,l));let d=e.createInstance(_E);this._register(t.registerTool(jV,d)),this._register(t.registerTool(QV,d));let c=e.createInstance(DE);this._register(t.registerTool(JV,c));let u=e.createInstance(UE);this._register(t.registerTool(gB,u));let m=e.createInstance(Lg),g=e.createInstance(Ng),v=this._register(new dn),h=this._register(new dn),I=()=>{n.getValue("chat.artifacts.enabled")?(v.value||(v.value=t.registerTool(pB,m)),h.value||(h.value=t.registerTool(mB,g))):(v.clear(),h.clear())};I(),this._register(n.onDidChangeConfiguration(L=>{L.affectsConfiguration("chat.artifacts.enabled")&&I()}));let S=this._register(e.createInstance(ki)),w,P,A=()=>{w?.dispose(),P?.dispose(),t.flushToolUpdates();let L=S.getToolData();w=t.registerTool(L,S),P=t.agentToolSet.addTool(L)};A(),this._register(S.onDidUpdateToolData(A)),this._register({dispose:()=>{w?.dispose(),P?.dispose()}})}};FE=R([C(0,Xu),C(1,mn),C(2,sn)],FE);var fB="vscode_fetchWebPage_internal";var n0=D("commandService"),rb=new class{constructor(){this._commands=new Map;this._onDidRegisterCommand=new T;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 PO(d,s),a(l,...d)}}let{id:e}=i,n=this._commands.get(e);n||(n=new Qn,this._commands.set(e,n));let o=n.unshift(i),r=Y(()=>{o(),this._commands.get(e)?.isEmpty()&&this._commands.delete(e)});return this._onDidRegisterCommand.fire(e),lf(r)}registerCommandAlias(i,t){return rb.registerCommand(i,(e,...n)=>e.get(n0).executeCommand(t,...n))}getCommand(i){let t=this._commands.get(i);if(!(!t||t.isEmpty()))return It.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}};rb.registerCommand("noop",()=>{});var ib=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}},HE=new ib,o0=new ib,r0=new ib,l3=new Array(230),d3={},c3={},u3=[],p3=Object.create(null),m3=Object.create(null);var hB=[],i0=[];for(let i=0;i<=193;i++)hB[i]=-1;for(let i=0;i<=132;i++)i0[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,u3[s]=a,p3[a]=s,m3[a.toLowerCase()]=s,r&&(hB[s]=l,l!==0&&l!==3&&!f3(l)&&(i0[l]=s))),!e[l]){if(e[l]=!0,!d)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);HE.define(l,d),o0.define(l,m||d),r0.define(l,g||m||d)}c&&(l3[c]=l),a&&(c3[a]=c),u&&(d3[u]=l)}i0[3]=46})();var g3;(s=>{function i(a){return HE.keyCodeToStr(a)}s.toString=i;function t(a){return HE.strToKeyCode(a)}s.fromString=t;function e(a){return o0.keyCodeToStr(a)}s.toUserSettingsUS=e;function n(a){return r0.keyCodeToStr(a)}s.toUserSettingsGeneral=n;function o(a){return o0.strToKeyCode(a)||r0.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 HE.keyCodeToStr(a)}s.toElectronAccelerator=r})(g3||={});function f3(i){return i===5||i===4||i===6||i===57}function sb(i,t){if(typeof i=="number"){if(i===0)return null;let e=(i&65535)>>>0,n=(i&4294901760)>>>16;return n!==0?new Ug([VE(e,t),VE(n,t)]):new Ug([VE(e,t)])}else{let e=[];for(let n=0;n<i.length;n++)e.push(VE(i[n],t));return new Ug(e)}}function VE(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 s0(o,r,s,a,l)}var s0=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 Ug([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}};var Ug=class{constructor(t){if(t.length===0)throw Ne("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 a0=class i{constructor(){this._coreKeybindings=new Qn,this._coreKeybindingRules=new Qn,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,Ai)}registerKeybindingRule(t){let e=i.bindToCurrentPlatform(t),n=new G;if(e&&e.primary){let r=sb(e.primary,Ai);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=sb(a,Ai);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(Y(()=>{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 fu(this.registerKeybindingRule(t),rb.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,Y(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(vB)),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=sb(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=sb(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(vB),e}},bB=new a0,h3={EditorModes:"platform.keybindingsRegistry"};mt.add(h3.EditorModes,bB);function vB(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 v3(i){return i.command!==void 0}var fd=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.TitleBarUpdate=new i("TitleBarUpdate")}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.ChatSubagentContent=new i("ChatSubagentContent")}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.AutomationsDialogInput=new i("AutomationsDialogInput")}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.AgentSessionsExternalFilterSubMenu=new i("AgentSessionsExternalFilterSubMenu")}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}},Gat=D("menuService"),su=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}},jat=new class{constructor(){this._commands=new Map;this._menuItems=new Map;this._onDidChangeMenu=new Nb({merge:su.merge});this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(i){return this._commands.set(i.id,i),this._onDidChangeMenu.fire(su.for(fd.CommandPalette)),lf(Y(()=>{this._commands.delete(i.id)&&this._onDidChangeMenu.fire(su.for(fd.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 Qn,this._menuItems.set(i,e));let n=e.push(t);return this._onDidChangeMenu.fire(su.for(i)),lf(Y(()=>{n(),this._onDidChangeMenu.fire(su.for(i))}))}appendMenuItems(i){let t=new G;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===fd.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(i){let t=new Set;for(let e of i)v3(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 au=class{constructor(t,e,n,o,r,s,a){this.hideActions=o;this.menuKeybinding=r;this._commandService=a;this.id=t.id,this.label=au.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&&Ye.isThemeIcon(d.icon)&&(l=d.icon),this.checked&&d.title&&(this.label=typeof d.title=="string"?d.title:d.title.value)}l||(l=Ye.isThemeIcon(t.icon)?t.icon:void 0),this.item=t,this.alt=e?new au(e,void 0,n,o,void 0,s,a):void 0,this._options=n,this.class=l&&Ye.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)}};au=R([C(5,Dr),C(6,n0)],au);var Zat=D("IExtensionGalleryManifestService");var clt=ws(12919,"Extensions");var l0=D("extensionsWorkbenchService");var BE=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?AF(n.extension.identifier,e.identifier)&&(n.extension.server&&e.server&&n.extension.server!==e.server?n.updateWhenCounterExtensionChanges&&n.update():n.extension=e):n.update()}};BE=R([C(1,l0)],BE);var ult=new E("defaultExtensionViews",!0),plt=new E("hasOutdatedExtensions",!1),mlt=new E("hasGallery",!1),glt=new E("extensionsGalleryStatus","unavailable"),flt=new E("extensionResultListFocused ",!0),hlt=new E("searchMcpServers",!1),vlt=new E("searchAgentPlugins",!1);var blt=new fd("extensionsSearchActionsMenu"),ylt=new fd("extensionsFilterSubMenu");var d0="vscode_searchExtensions_internal",Flt={id:d0,toolReferenceName:"extensions",legacyToolReferenceFullNames:["extensions"],icon:Ye.fromId(le.extensions.id),displayName:p(12932,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(12934,null),source:Qt.Internal,inputSchema:{type:"object",properties:{category:{type:"string",description:"The category of extensions to search for",enum:py},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"}}}},WE=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(12933,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))}]}}}};WE=R([C(0,l0)],WE);var $E=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,fullReferenceName:this._data.fullReferenceName,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:RM.to(this._data.source),fullReferenceName:this._data.fullReferenceName})),this._apiObjectWithChatParticipantAdditions}},zE=class{constructor(t,e){this._languageModels=e;this._registeredTools=new Map;this._tokenCountFuncs=new Map;this._allTools=new Map;this._proxy=t.getProxy(N.MainThreadLanguageModelTools),this._proxy.$getTools().then(n=>{for(let o of n)this._allTools.set(o.id,new $E(Dt(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=Be();n.tokenizationOptions&&this._tokenCountFuncs.set(s,n.tokenizationOptions.countTokens);try{if(n.toolInvocationToken&&!mH(n.toolInvocationToken))throw new Error("Invalid tool invocation token");if((r===wE||r===$1)&&!De(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:De(t,"chatParticipantPrivate")?n.chatRequestId:void 0,chatInteractionId:De(t,"chatParticipantPrivate")?n.chatInteractionId:void 0,subAgentInvocationId:De(t,"chatParticipantPrivate")?n.subAgentInvocationId:void 0,chatStreamToolCallId:De(t,"chatParticipantAdditions")?n.chatStreamToolCallId:void 0,preToolUseResult:De(t,"chatParticipantPrivate")?n.preToolUseResult:void 0,traceparent:De(t,"chatParticipantPrivate")?n.traceparent:void 0,tracestate:De(t,"chatParticipantPrivate")?n.tracestate:void 0},o),l=a instanceof Vt?a.value:a;return yC.to(Dt(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 $E(Dt(n)))}for(let n of e)this._allTools.delete(n)}getTools(t){let e=De(t,"chatParticipantPrivate");return Array.from(this._allTools.values()).map(n=>e?n.apiObjectWithChatParticipantAdditions:n.apiObject).filter(n=>{switch(n.name){case wE:case $1:case fB:case d0:return De(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:Dt(t.context)};De(n.extension,"chatParticipantPrivate")&&(o.chatRequestId=t.chatRequestId,o.chatInteractionId=t.chatInteractionId,o.chatSessionResource=y.revive(t.context?.sessionResource),o.workingDirectory=y.revive(t.context?.workingDirectory),o.subAgentInvocationId=t.subAgentInvocationId,o.traceparent=t.traceparent,o.tracestate=t.tracestate),De(n.extension,"chatParticipantAdditions")&&t.modelId&&(o.model=await this.getModel(t.modelId,n.extension)),De(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=ve.None)=>this._proxy.$countTokensForInvocation(t.callId,a,l))});let r;if(De(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 Xa(Promise.resolve(n.tool.invoke(o,e,r)),e);if(!s)throw new ct;return yC.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;M(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:y.revive(e.workingDirectory),forceConfirmationReason:e.forceConfirmationReason};if(e.forceConfirmationReason&&M(o.extension,"chatParticipantPrivate"),o.tool.prepareInvocation){let s=await o.tool.prepareInvocation(r,n);if(!s)return;(s.pastTenseMessage||s.presentation)&&M(o.extension,"chatParticipantPrivate"),s.confirmationMessages?.approveCombination!==void 0&&M(o.extension,"toolInvocationApproveCombination");let a=s.confirmationMessages?.approveCombination,l=a?ge.fromStrict(a.message):void 0,d=l?await $V(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"),Y(()=>{this._registeredTools.delete(e),this._proxy.$unregisterTool(e)})}registerToolDefinition(t,e,n){M(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:Ii.from(e.icon),models:e.models,toolSet:e.toolSet,tags:e.tags,fullReferenceName:void 0};return this._registeredTools.set(o,{extension:t,tool:n}),this._proxy.$registerToolWithDefinition(t.identifier,r,typeof n.handleToolStream=="function"),Y(()=>{this._registeredTools.delete(o),this._proxy.$unregisterTool(o)})}};var qE=class{constructor(t,e,n,o){this._documents=e;this._commands=n;this._uriTransformer=o;this._languageIds=[];this._onDidChangeSyntaxHighlighting=new T;this.onDidChangeSyntaxHighlighting=this._onDidChangeSyntaxHighlighting.event;this._handlePool=0;this._ids=new Set;this._proxy=t.getProxy(N.MainThreadLanguages)}$acceptLanguageIds(t){this._languageIds=t}$acceptSyntaxHighlightingThemeChanged(){this._onDidChangeSyntaxHighlighting.fire()}async computeFullSyntaxHighlighting(t,e){return await this._proxy.$computeFullSyntaxHighlighting(t,e)}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=nt.from(e),r=await this._proxy.$tokensAtPosition(t.uri,o),s={type:0,range:t.getWordRangeAtPosition(e)??new he(e.line,e.character,e.line,e.character)};if(!r)return s;let a={range:B.to(r.range),type:tM.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 G,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=GL(()=>{c.clear(),this._proxy.$setLanguageStatus(o,{id:a,name:l.name??t.displayName??t.name,source:t.displayName??t.name,selector:fs.from(l.selector,this._uriTransformer),label:l.text,detail:l.detail??"",severity:l.severity===2?je.Error:l.severity===1?je.Warning:je.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){M(t,"languageStatusText"),l.text=g,u()},get text2(){return M(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 b3(i){return i&&i.title}var Fg=class{constructor(t,e){this._logService=e;this._proxy=t.getProxy(N.MainThreadMessageService)}showMessage(t,e,n,o,r){let s={source:{identifier:t.identifier,label:t.displayName||t.name}},a;typeof o=="string"||b3(o)?a=[o,...r]:(s.modal=o?.modal,s.useCustom=o?.useCustom,s.detail=o?.detail,a=r),s.useCustom&&M(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]})}};Fg=R([C(1,ie)],Fg);var ab=class{constructor(t,e,n,o){this.start=t;this.deletedCount=e;this.deletedItems=n;this.items=o}asApiEvent(){return{range:new qn(this.start,this.start+this.deletedCount),addedCells:this.items.map(t=>t.apiCell),removedCells:this.deletedItems}}},Hg=class{constructor(t,e,n){this.notebook=t;this._extHostDocument=e;this._cellData=n;this.handle=n.handle,this.uri=y.revive(n.uri),this.cellKind=n.cellKind,this._outputs=n.outputs.map(va.to),this._internalMetadata=n.internalMetadata??{},this._metadata=Object.freeze(n.metadata??{}),this._previousResult=Object.freeze(nm.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:Yh.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(va.to)}setOutputItems(t,e,n){let o=n.map(Nc.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=>Vy(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=lH(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(nm.to(t))}setMime(t){}},KE=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===$.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 Hg(this,this._textDocumentsAndEditors,m);return e||r.push(Hg.asModelAddData(m)),g}),c=new ab(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 ab(t,e,r.map(a=>a.apiCell),[]),new ab(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 lu=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(qn.isNotebookRange))throw Ne("selections");t._selections=e.length===0?[new qn(0,0)]:e,t._trySetSelections(t._selections)},get visibleRanges(){return t._visibleRanges},revealRange(e,n){t._proxy.$tryRevealRange(t.id,Sr.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(Sr.from))}_acceptViewColumn(t){this._viewColumn=t}};var Vg=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!==Te)return GE(this.right);let t=this;for(;t.parent!==Te&&t.parent.left!==t;)t=t.parent;return t.parent===Te?Te:t.parent}prev(){if(this.left!==Te)return u0(this.left);let t=this;for(;t.parent!==Te&&t.parent.right!==t;)t=t.parent;return t.parent===Te?Te:t.parent}detach(){this.parent=null,this.left=null,this.right=null}};var Te=new Vg(null,0);Te.parent=Te;Te.left=Te;Te.right=Te;Te.color=0;function GE(i){for(;i.left!==Te;)i=i.left;return i}function u0(i){for(;i.right!==Te;)i=i.right;return i}function p0(i){return i===Te?0:i.size_left+i.piece.length+p0(i.right)}function m0(i){return i===Te?0:i.lf_left+i.piece.lineFeedCnt+m0(i.right)}function c0(){Te.parent=Te}function db(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!==Te&&(e.left.parent=t),e.parent=t.parent,t.parent===Te?i.root=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}function cb(i,t){let e=t.left;t.left=e.right,e.right!==Te&&(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===Te?i.root=e:t===t.parent.right?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}function ub(i,t){let e,n;if(t.left===Te?(n=t,e=n.right):t.right===Te?(n=t,e=n.left):(n=GE(t.right),e=n.right),n===i.root){i.root=e,e.color=0,t.detach(),c0(),i.root.parent=Te;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,lb(i,e)):(n.parent===t?e.parent=n:e.parent=n.parent,lb(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!==Te&&(n.left.parent=n),n.right!==Te&&(n.right.parent=n),n.size_left=t.size_left,n.lf_left=t.lf_left,lb(i,n)),t.detach(),e.parent.left===e){let s=p0(e),a=m0(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,bs(i,e.parent,l,d)}}if(lb(i,e.parent),o){c0();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,db(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,cb(i,r),r=e.parent.right),r.color=e.parent.color,e.parent.color=0,r.right.color=0,db(i,e.parent),e=i.root)):(r=e.parent.left,r.color===1&&(r.color=0,e.parent.color=1,cb(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,db(i,r),r=e.parent.left),r.color=e.parent.color,e.parent.color=0,r.left.color=0,cb(i,e.parent),e=i.root));e.color=0,c0()}function g0(i,t){for(lb(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,db(i,t)),t.parent.color=0,t.parent.parent.color=1,cb(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,cb(i,t)),t.parent.color=0,t.parent.parent.color=1,db(i,t.parent.parent))}i.root.color=0}function bs(i,t,e,n){for(;t!==i.root&&t!==Te;)t.parent.left===t&&(t.parent.size_left+=e,t.parent.lf_left+=n),t=t.parent}function lb(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=p0(t.left)-t.size_left,n=m0(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 _a=65535;function yB(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 f0=class{constructor(t,e,n,o,r){this.lineStarts=t;this.cr=e;this.lf=n;this.crlf=o;this.isBasicASCII=r}};function ys(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?yB(e):e}function IB(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 f0(yB(i),n,o,r,s);return i.length=0,a}var ho=class{constructor(t,e,n,o,r){this.bufferIndex=t,this.start=e,this.end=n,this.lineFeedCnt=o,this.length=r}},Is=class{constructor(t,e){this.buffer=t,this.lineStarts=e}},h0=class{constructor(t,e){this._pieces=[],this._tree=t,this._BOM=e,this._index=0,t.root!==Te&&t.iterate(t.root,n=>(n!==Te&&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++])}},v0=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}}},jE=class{constructor(t,e,n){this.create(t,e,n)}create(t,e,n){this._buffers=[new Is("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Te,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=ys(t[r].buffer));let a=new ho(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 v0(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(t){let e=_a,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 Is(u,ys(u))),r=d,s=c,!0}),s>0){let l=r.replace(/\r\n|\r|\n/g,t);a.push(new Is(l,ys(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 h0(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===Te)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!==Te;)if(o.left!==Te&&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!==Te;)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 yn(n+1,a+1)}return new yn(n+1,r.remainder+1)}else if(t-=e.size_left+e.piece.length,n+=e.lf_left+e.piece.lineFeedCnt,e.right===Te){let r=this.getOffsetAt(n+1,1),s=o-t-r;return new yn(n+1,s+1)}else e=e.right;return new yn(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!==Te;){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===Te)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===Te)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),v=this.offsetInBuffer(t.piece.bufferIndex,r),h=this.offsetInBuffer(t.piece.bufferIndex,s),I,S={line:0,column:0},w,P;e._wordSeparators?(w=m.buffer.substring(v,h),P=A=>A+v,e.reset(0)):(w=m.buffer,P=A=>A,e.reset(v));do if(I=e.next(w),I){if(P(I.index)>=h)return c;this.positionInBuffer(t,P(I.index)-g,S);let A=this.getLineFeedCnt(t.piece.bufferIndex,r,S),L=S.line===r.line?S.column-r.column+o:S.column+1,V=L+I[0].length;if(u[c++]=hA(new Fe(n+A,L,n+A,V),I,l),P(I.index)+I[0].length>=h||c>=d)return c}while(I);return c}findMatchesLineByLine(t,e,n,o){let r=[],s=0,a=new zC(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 h=this.getLineFeedCnt(g.piece.bufferIndex,c,g.piece.end);if(h>=1){let S=this._buffers[g.piece.bufferIndex].lineStarts,w=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),P=S[c.line+h],A=m===t.startLineNumber?t.startColumn:1;if(s=this.findMatchesInNode(g,a,m,A,c,this.positionInBuffer(g,P-w),e,n,o,s,r),s>=o)return r;m+=h}let I=m===t.startLineNumber?t.startColumn-1:0;if(m===t.endLineNumber){let S=this.getLineContent(m).substring(I,t.endColumn-1);return s=this._findMatchesInLine(e,a,S,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 h=m===t.startLineNumber?t.startColumn-1:0,I=this.getLineContent(m).substring(h,t.endColumn-1);return s=this._findMatchesInLine(e,a,I,t.endLineNumber,h,s,r,n,o),r}let v=m===t.startLineNumber?t.startColumn:1;return s=this.findMatchesInNode(d.node,a,m,v,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,v=n.length,h=-g;for(;(h=n.indexOf(m,h+g))!==-1;)if((!c||vA(c,n,v,h,g))&&(a[s++]=new Kd(new Fe(o,h+1+r,o,h+1+g+r),null),s>=d))return s;return s}let u;e.reset(0);do if(u=e.next(n),u&&(a[s++]=hA(new Fe(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!==Te){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<_a){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 ho(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 h={line:u.start.line+1,column:0};u=new ho(u.bufferIndex,h,u.end,this.getLineFeedCnt(u.bufferIndex,h,u.end),u.length-1),e+=`
`}if(this.shouldCheckCRLF()&&this.startWithLF(e))if(this.nodeCharCodeAt(o,r-1)===13){let h=this.positionInBuffer(o,r-1);this.deleteNodeTail(o,h),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 v=0;v<m.length;v++)g=this.rbInsertRight(g,m[v]);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===Te)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 v=r.next();ub(this,r),this.validateCRLFWithPrevNode(v),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!==Te&&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 ho(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),s.length-1);e.piece=l,t+=`
`,bs(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++)ub(this,t[e])}createNewPieces(t){if(t.length>_a){let c=[];for(;t.length>_a;){let m=t.charCodeAt(_a-1),g;m===13||m>=55296&&m<=56319?(g=t.substring(0,_a-1),t=t.substring(_a-1)):(g=t.substring(0,_a),t=t.substring(_a));let v=ys(g);c.push(new ho(this._buffers.length,{line:0,column:0},{line:v.length-1,column:g.length-v[v.length-1]},v.length-1,g.length)),this._buffers.push(new Is(g,v))}let u=ys(t);return c.push(new ho(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 Is(t,u)),c}let e=this._buffers[0].buffer.length,n=ys(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 ho(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!==Te;)if(n.left!==Te&&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!==Te;){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!==Te;)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 ho(n.bufferIndex,n.start,s,l,u),bs(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 ho(n.bufferIndex,s,n.end,a,u),bs(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 ho(o.bufferIndex,o.start,d,c,u),bs(this,t,u-a,c-l);let m=new ho(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=ys(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 ho(t.piece.bufferIndex,t.piece.start,l,u,d),this._lastChangeBufferPos=l,bs(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!==Te;)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!==Te;)if(n.left!==Te&&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!==Te;){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===Te||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===Te||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 ho(t.piece.bufferIndex,t.piece.start,r,a,s),bs(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 ho(e.piece.bufferIndex,l,e.piece.end,c,d),bs(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++)ub(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)ub(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 ho(o.bufferIndex,r,o.end,a,s),bs(this,n,-1,-1)}return!0}}return!1}iterate(t,e){if(t===Te)return e(Te);let n=this.iterate(t.left,e);return n&&e(t)&&this.iterate(t.right,e)}getNodeContent(t){if(t===Te)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 Vg(e,1);if(n.left=Te,n.right=Te,n.parent=Te,n.size_left=0,n.lf_left=0,this.root===Te)this.root=n,n.color=0;else if(t.right===Te)t.right=n,n.parent=t;else{let r=GE(t.right);r.left=n,n.parent=r}return g0(this,n),n}rbInsertLeft(t,e){let n=new Vg(e,1);if(n.left=Te,n.right=Te,n.parent=Te,n.size_left=0,n.lf_left=0,this.root===Te)this.root=n,n.color=0;else if(t.left===Te)t.left=n,n.parent=t;else{let o=u0(t.left);o.right=n,n.parent=o}return g0(this,n),n}getContentOfSubTree(t){let e="";return this.iterate(t,n=>(e+=this.getNodeContent(n),!0)),e}};function QE(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 b0;function y3(){return b0||(b0=new TextDecoder("UTF-16LE")),b0}function xB(i,t,e){let n=new Uint16Array(i.buffer,t,e);return e>0&&(n[0]===65279||n[0]===65534)?I3(i,t,e):y3().decode(n)}function I3(i,t,e){let n=[],o=0;for(let r=0;r<e;r++){let s=OO(i,t);t+=2,n[o++]=String.fromCharCode(s)}return n.join("")}function JE(i){return i.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}var YE=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} "${JE(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${JE(this.oldText)}")`:`(replace@${this.oldPosition} "${JE(this.oldText)}" with "${JE(this.newText)}")`}static _writeStringSize(t){return 4+2*t.length}static _writeString(t,e,n){let o=e.length;uf(t,o,n),n+=4;for(let r=0;r<o;r++)LO(t,e.charCodeAt(r),n),n+=2;return n}static _readString(t,e){let n=cf(t,e);return e+=4,xB(t,e,n)}writeSize(){return 8+i._writeStringSize(this.oldText)+i._writeStringSize(this.newText)}write(t,e){return uf(t,this.oldPosition,e),e+=4,uf(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=cf(t,e);e+=4;let r=cf(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 XE=class i extends U{constructor(e,n,o,r,s,a,l){super();this._onDidChangeContent=this._register(new T);this._BOM=n,this._mightContainNonBasicASCII=!a,this._mightContainRTL=r,this._mightContainUnusualLineTerminators=s,this._pieceTree=new jE(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 Fe(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++)Ad(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=Kb(this.getLineContent(e));return n===-1?0:n+1}getLineLastNonWhitespaceColumn(e){let n=PL(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 S=e[I];l&&S._isTracked&&(l=!1);let w=S.range;if(S.text){let q=!0;a||(q=!RL(S.text),a=q),!r&&q&&(r=Jb(S.text)),!s&&q&&(s=Yb(S.text))}let P="",A=0,L=0,V=0;if(S.text){let q;[A,L,V,q]=QE(S.text);let J=this.getEOL(),z=J===`\r
`?2:1;q===0||q===z?P=S.text:P=S.text.replace(/\r\n|\r|\n/g,J)}d[I]={sortIndex:I,identifier:S.identifier||null,range:w,rangeOffset:this.getOffsetAt(w.startLineNumber,w.startColumn),rangeLength:this.getValueLengthInRange(w),text:P,eolCount:A,firstLineLength:L,lastLineLength:V,forceMoveMarkers:!!S.forceMoveMarkers,isAutoWhitespaceEdit:S.isAutoWhitespaceEdit||!1}}d.sort(i._sortOpsAscending);let c=!1;for(let I=0,S=d.length-1;I<S;I++){let w=d[I].range.getEndPosition(),P=d[I+1].range.getStartPosition();if(P.isBeforeOrEqual(w)){if(P.isBefore(w))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 S=d[I],w=u[I];if(S.isAutoWhitespaceEdit&&S.range.isEmpty())for(let P=w.startLineNumber;P<=w.endLineNumber;P++){let A="";P===w.startLineNumber&&(A=this.getLineContent(S.range.startLineNumber),Kb(A)!==-1)||m.push({lineNumber:P,oldContent:A})}}let g=null;if(o){let I=0;g=[];for(let S=0;S<d.length;S++){let w=d[S],P=u[S],A=this.getValueInRange(w.range),L=w.rangeOffset+I;I+=w.text.length-A.length,g[S]={sortIndex:w.sortIndex,identifier:w.identifier,range:P,text:A,textChange:new YE(w.rangeOffset,A,L,w.text)}}c||g.sort((S,w)=>S.sortIndex-w.sortIndex)}this._mightContainRTL=r,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=a;let v=this._doApplyEdits(d),h=null;if(n&&m.length>0){m.sort((I,S)=>S.lineNumber-I.lineNumber),h=[];for(let I=0,S=m.length;I<S;I++){let w=m[I].lineNumber;if(I>0&&m[I-1].lineNumber===w)continue;let P=m[I].oldContent,A=this.getLineContent(w);A.length===0||A===P||Kb(A)!==-1||h.push(w)}}return this._onDidChangeContent.fire(),new Gy(g,v,h)}_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 Fe(o.startLineNumber,o.startColumn,r.endLineNumber,r.endColumn),a=o.startLineNumber,l=o.startColumn,d=[];for(let v=0,h=e.length;v<h;v++){let I=e[v],S=I.range;n=n||I.forceMoveMarkers,d.push(this.getValueInRange(new Fe(a,l,S.startLineNumber,S.startColumn))),I.text.length>0&&d.push(I.text),a=S.endLineNumber,l=S.endColumn}let c=d.join(""),[u,m,g]=QE(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 Fe(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]=QE(n),d;if(n.length>0){let c=s+1;c===1?d=new Fe(o,r,o,r+a):d=new Fe(o,r,o+c-1,l+1)}else d=new Fe(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 Fe(c,u,c,u+d.firstLineLength):m=new Fe(c,u,c+g-1,d.lastLineLength+1)}else m=new Fe(c,u,c,u);o=m.endLineNumber,r=m.endColumn,n.push(m),s=d}return n}static _sortOpsAscending(e,n){let o=Fe.compareRangesUsingEnds(e.range,n.range);return o===0?e.sortIndex-n.sortIndex:o}static _sortOpsDescending(e,n){let o=Fe.compareRangesUsingEnds(e.range,n.range);return o===0?n.sortIndex-e.sortIndex:-o}};var y0=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=ys(a);n[r]=new Is(a,l)}let o=new XE(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]}},pb=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&&AL(t)&&(this.BOM=ML,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=IB(this._tmpLineStarts,t);this.chunks.push(new Is(t,e.lineStarts)),this.cr+=e.cr,this.lf+=e.lf,this.crlf+=e.crlf,e.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=Jb(t)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=Yb(t)))}finish(t=!0){return this._finish(),new y0(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=ys(t.buffer);t.lineStarts=e,this._previousChar===13&&this.cr++}}};var ZE=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 Fe(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 pb;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 pb;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 Mv(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 Mv(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 I0(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 xC(a.join(`
`)+`
`,s.map(c=>new Fe(c.range.startLineNumber-1,c.range.startColumn-1,c.range.endLineNumber-1,c.range.endColumn-1)))})}var gut=Object.freeze({id:"application",order:100,title:p(5197,null),type:"object"}),SB=Object.freeze({id:"workbench",order:7,title:p(5205,null),type:"object"}),S3=Object.freeze({id:"security",scope:1,title:p(5203,null),type:"object",order:7}),fut=Object.freeze({id:"problems",title:p(5199,null),type:"object",order:101}),C3=Object.freeze({id:"window",order:8,title:p(5204,null),type:"object"}),T3={ConfigurationMigration:"base.contributions.configuration.migration"},x0=class{constructor(){this.migrations=[];this._onDidRegisterConfigurationMigrations=new T;this.onDidRegisterConfigurationMigration=this._onDidRegisterConfigurationMigrations.event}registerConfigurationMigrations(t){this.migrations.push(...t)}},ow=new x0;mt.add(T3.ConfigurationMigration,ow);var ew=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,ow.migrations)})),this.migrateConfigurations(ow.migrations),this._register(ow.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]];e.includeApplication&&r.unshift(["application",1]);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})=>ht(m,s))?.value:u.value},l=await e.migrateFn(o,a);return Array.isArray(l)?l:[[e.key,l]]}};ew=R([C(0,sn),C(1,Mr)],ew);var tw=class extends U{constructor(e){super();this.remoteAgentService=e;this._ready=new pn;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(!Ct&&(await this.remoteAgentService.getEnvironment())?.os!==1)return;mt.as(Xo.Configuration).registerConfiguration({...S3,properties:{"security.allowedUNCHosts":{type:"array",items:{type:"string",pattern:"^[^\\\\]+$",patternErrorMessage:p(5201,null)},default:[],markdownDescription:p(5200,null),scope:3},"security.restrictUNCAccess":{type:"boolean",default:!0,markdownDescription:p(5202,null),scope:3}}})}};tw=R([C(0,ji)],tw);var mb="window.newWindowProfile",nw=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(mb)&&this.setNewWindowProfile()})),this._register(this.userDataProfilesService.onDidChangeProfiles(()=>this.checkAndResetNewWindowProfileConfig()))}static{this.ID="workbench.contrib.dynamicWindowConfiguration"}registerNewWindowProfileConfiguration(){let e=mt.as(Xo.Configuration),n={...C3,properties:{[mb]:{type:["string","null"],default:null,enum:[...this.userDataProfilesService.profiles.map(o=>o.name),null],enumItemLabels:[...this.userDataProfilesService.profiles.map(()=>""),p(5196,null)],description:p(5198,null),scope:1}}};this.configurationNode?e.updateConfigurations({add:[n],remove:[this.configurationNode]}):e.registerConfiguration(n),this.configurationNode=n}setNewWindowProfile(){let e=this.configurationService.getValue(mb);this.newWindowProfile=e?this.userDataProfilesService.profiles.find(n=>n.name===e):void 0}checkAndResetNewWindowProfileConfig(){let e=this.configurationService.getValue(mb);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(mb,n?.name)}};nw=R([C(0,pl),C(1,sn)],nw);var Put=D("editorResolverService"),E3="workbench.editorAssociations",w3="workbench.diffEditorAssociations",k3="workbench.editor.hiddenEditorTypes",P3="workbench.editor.markdownDefaultEditorInAgentsWindow";function CB(i){return{"*.md":i?.markdownDefaultEditor===!0?"vscode.markdown.editor":"vscode.markdown.preview.editor"}}function _3(i){return CB(i)}var D3=mt.as(Xo.Configuration),R3={...SB,properties:{[P3]:{type:"boolean",default:!0,tags:["experimental"],experiment:{mode:"startup"},markdownDescription:p(19751,null)},[E3]:{type:"object",markdownDescription:p(19749,null),additionalProperties:{type:"string"},agentsWindow:{default:CB()}},[w3]:{type:"object",markdownDescription:p(19748,null),additionalProperties:{type:"string"},agentsWindow:{default:_3()}},[k3]:{type:"array",default:[],items:{type:"string"},markdownDescription:p(19750,null),agentsWindow:{default:["vscode.markdown.preview.editor"]}}}};D3.registerConfiguration(R3);function TB(i,t){if(new Set([$.extension,$.webviewPanel,$.vscodeWorkspaceTrust,$.vscodeSettings]).has(t.scheme))return!1;let o=typeof i=="string"&&i.indexOf(Ve.sep)>=0?`${t.scheme}:${t.path}`:tt(t);return br(i,o,{ignoreCase:!0})}var rw=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 Ue;this._editors=new Map;this._onDidChangeActiveNotebookEditor=new T;this.onDidChangeActiveNotebookEditor=this._onDidChangeActiveNotebookEditor.event;this._visibleNotebookEditors=[];this._onDidOpenNotebookDocument=new T;this.onDidOpenNotebookDocument=this._onDidOpenNotebookDocument.event;this._onDidCloseNotebookDocument=new T;this.onDidCloseNotebookDocument=this._onDidCloseNotebookDocument.event;this._onDidChangeVisibleNotebookEditors=new T;this.onDidChangeVisibleNotebookEditors=this._onDidChangeVisibleNotebookEditors.event;this._statusBarCache=new Oo("NotebookCellStatusBarCache");this._handlePool=0;this._notebookSerializer=new Map;this._notebookProxy=t.getProxy(N.MainThreadNotebook),this._notebookDocumentsProxy=t.getProxy(N.MainThreadNotebookDocuments),this._notebookEditorsProxy=t.getProxy(N.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=>cv.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 Ie(()=>{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&&Jl.from(t.content)});return y.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(y.revive(n));return Yr(o?.apiNotebook)}async showNotebookDocument(t,e){let n;typeof e=="object"?n={position:Mt.from(e.viewColumn),preserveFocus:e.preserveFocus,selections:e.selections&&e.selections.map(Sr.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=y.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 G,u=this._statusBarCache.add([c]),g=(Array.isArray(d)?d:[d]).map(v=>hM.from(v,this._commandsConverter,c));return{cacheId:u,items:g}}$releaseNotebookCellStatusBarItems(t){this._statusBarCache.delete(t)}registerNotebookSerializer(t,e,n,o,r){if(Ui(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,bM.from(o),i._convertNotebookRegistrationData(t,r)),Y(()=>{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 Vt(Jl.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(Jl.to(e.value),n);return ee.wrap(r)}async $saveNotebook(t,e,n,o,r){let s=y.revive(e),a=this._notebookSerializer.get(t);this.trace(`enter saveNotebook(versionId: ${n}, ${s.toString()})`);try{if(!a)throw new gb("NO serializer found");let l=this._documents.get(s);if(!l)throw new gb("Document NOT found");if(l.versionId!==n)throw new gb("Document version mismatch, expected: "+n+", actual: "+l.versionId);if(!this._extHostFileSystem.value.isWritableFileSystem(s.scheme))throw new Wi(p(3803,null,this._resourceForError(s)),6);let d={metadata:jk(l.apiNotebook.metadata,v=>!(a.options?.transientDocumentMetadata??{})[v]),cells:[]};for(let v of l.apiNotebook.getCells()){let h=new Yi(v.kind,v.document.getText(),v.document.languageId,v.mime,a.options?.transientOutputs?[]:[...v.outputs],v.metadata,v.executionSummary);h.metadata=jk(v.metadata,I=>!(a.options?.transientCellMetadata??{})[I]),d.cells.push(h)}if(await this._validateWriteFile(s,o),r.isCancellationRequested)throw new ct;let c=await a.serializer.serializeNotebook(d,r);if(r.isCancellationRequested)throw new ct;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:Yk({mtime:m.mtime,size:m.size})};return this.trace(`exit saveNotebook(versionId: ${n}, ${s.toString()})`),g}catch(l){if(l instanceof Wi)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 ir;await(async(m,g,v)=>{await Promise.all(m.map(async h=>await Promise.all(h.filenamePatterns.map(I=>{let S={_reason:v._reason,folderQueries:v.folderQueries,includePattern:v.includePattern,excludePattern:v.excludePattern,maxResults:v.maxResults,type:1,filePattern:I};return this._extHostSearch.doInternalFileSearchWithCustomCallback(S,g,w=>{w.forEach(P=>{a.has(P)||o.some(L=>h.isFromSettings&&!L.isFromSettings?!1:L.filenamePatterns.some(V=>TB(V,P)))||a.add(P)})}).catch(w=>{if(w.code==="ENOENT")return console.warn("Could not find notebook search results, ignoring notebook results."),{limitHit:!1,messages:[]};throw w})}))))})(n,r,e);let d=new Ue,c=!1,u=Array.from(a).map(async m=>{let g=[];try{if(r.isCancellationRequested)return;if(e.maxResults&&[...d.values()].reduce((S,w)=>S+w.cellResults.length,0)>e.maxResults){c=!0;return}let v=[],h=this._documents.get(m);if(h)h.apiNotebook.getCells().forEach(w=>v.push({input:w.document.getText(),outputs:w.outputs.flatMap(P=>P.items.map(A=>A.data.toString()))}));else{let S=await this._extHostFileSystem.value.readFile(m),w=ee.fromString(S.toString()),P=await s.deserializeNotebook(w.buffer,r);if(r.isCancellationRequested)return;Jl.from(P).cells.forEach(L=>v.push({input:L.source,outputs:L.outputs.flatMap(V=>V.items.map(q=>q.valueBytes.toString()))}))}if(r.isCancellationRequested)return;v.forEach((S,w)=>{let P=e.contentPattern.pattern,A=new ZE(S.input,void 0,S.outputs),L=A.findInInputs(P),V=A.findInOutputs(P),q=V.flatMap(J=>I0(J.matches,J.textBuffer)).map((J,z)=>(J.webviewIndex=z,J));if(L.length>0||V.length>0){let J={index:w,contentResults:I0(L,A.inputTextBuffer),webviewResults:q};g.push(J)}});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!==gN&&typeof n.mtime=="number"&&typeof n.size=="number"&&e.mtime<n.mtime&&e.etag!==Yk({mtime:e.mtime,size:n.size}))throw new Wi(p(3804,null),3,e)}_resourceForError(t){return t.scheme===$.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 lu(e,this._notebookEditorsProxy,t,n.visibleRanges.map(Sr.to),n.selections.map(Sr.to),typeof n.viewColumn=="number"?Mt.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=y.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=y.revive(o.uri);if(this._documents.has(r))throw new Error(`adding EXISTING notebook ${r} `);let s=new KE(this._notebookDocumentsProxy,this._textDocumentsAndEditors,this._textDocuments,r,o);n.push(...o.cells.map(a=>Hg.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=y.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=ne.String.with("notebookType","A notebook type"),n=new Pe("vscode.executeDataToNotebook","_executeDataToNotebook","Invoke notebook serializer",[e,new ne("data","Bytes to convert to data",r=>r instanceof Uint8Array,r=>ee.wrap(r))],new ke("Notebook Data",r=>Jl.to(r.value))),o=new Pe("vscode.executeNotebookToData","_executeNotebookToData","Invoke notebook serializer",[e,new ne("NotebookData","Notebook data to convert to bytes",r=>!0,r=>new Vt(Jl.from(r)))],new ke("Bytes",r=>r.buffer));t.registerApiCommand(n),t.registerApiCommand(o)}trace(t){this._logService.trace(`[Extension Host Notebook] ${t}`)}},gb=class extends Error{constructor(t){super(t),this.name="NotebookSaveError"}};var iw=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 Oi}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=y.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:av.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 tr?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}=oo.from(l);a.edits=a.edits.concat(d)}return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new Vt(a))}};var sw=class{constructor(t){this._notebooksAndEditors=t;this._onDidSaveNotebookDocument=new T;this.onDidSaveNotebookDocument=this._onDidSaveNotebookDocument.event;this._onDidChangeNotebookDocument=new T;this.onDidChangeNotebookDocument=this._onDidChangeNotebookDocument.event}$acceptModelChanged(t,e,n,o){let s=this._notebooksAndEditors.getNotebookDocument(y.revive(t)).acceptModelChanged(e.value,n,o);this._onDidChangeNotebookDocument.fire(s)}$acceptDirtyStateChanged(t,e){this._notebooksAndEditors.getNotebookDocument(y.revive(t)).acceptDirty(e)}$acceptModelSaved(t){let e=this._notebooksAndEditors.getNotebookDocument(y.revive(t));this._onDidSaveNotebookDocument.fire(e.apiNotebook)}};var Bg=class{constructor(t,e){this._logService=t;this._notebooksAndEditors=e;this._onDidChangeNotebookEditorSelection=new T;this._onDidChangeNotebookEditorVisibleRanges=new T;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(Sr.to)),e.selections&&n._acceptSelections(e.selections.selections.map(Sr.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(Mt.to(t[e]))}};Bg=R([C(0,ie)],Bg);var Hpt=D("INotebookExecutionService");var EB=100;var Wpt=D("INotebookKernelService"),$pt=D("INotebookKernelHistoryService");var Wg=class{constructor(t,e,n,o,r){this._initData=e;this._extHostNotebook=n;this._commands=o;this._logService=r;this._activeExecutions=new Ue;this._activeNotebookExecutions=new Ue;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(N.MainThreadNotebookKernels);let s=new Pe("notebook.selectKernel","_notebook.selectKernel","Trigger kernel picker for specified notebook editor widget",[new ne("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})],ke.Void),a=new Pe("vscode.executeNotebookVariableProvider","_executeNotebookVariableProvider","Execute notebook variable provider",[ne.Uri],new ke("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 V of this._kernelData.values())if(V.controller.id===e&&xe.equals(t.identifier,V.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 T,m=new T,g={id:aw(t.identifier,e),notebookType:n,extensionId:t.identifier,extensionLocation:t.extensionLocation,label:o||t.identifier.value,preloads:s?s.map(eC.from):[]},v=r??d,h,I,S;this._proxy.$addKernel(a,g).catch(V=>{console.log(V),c=!0});let w=0,P=()=>{if(c)return;let V=++w;Promise.resolve().then(()=>{V===w&&this._proxy.$updateKernel(a,g)})},A=new Ue,L={get id(){return e},get notebookType(){return g.notebookType},onDidChangeSelectedNotebooks:u.event,get label(){return g.label},set label(V){g.label=V??t.displayName??t.name,P()},get detail(){return g.detail??""},set detail(V){g.detail=V,P()},get description(){return g.description??""},set description(V){g.description=V,P()},get supportedLanguages(){return g.supportedLanguages},set supportedLanguages(V){g.supportedLanguages=V,P()},get supportsExecutionOrder(){return g.supportsExecutionOrder??!1},set supportsExecutionOrder(V){g.supportsExecutionOrder=V,P()},get rendererScripts(){return g.preloads?g.preloads.map(eC.to):[]},get executeHandler(){return v},set executeHandler(V){v=V??d},get interruptHandler(){return h},set interruptHandler(V){h=V,g.supportsInterrupt=!!V,P()},set variableProvider(V){M(t,"notebookVariableProvider"),S?.dispose(),I=V,g.hasVariableProvider=!!V,S=V?.onDidChangeVariables(q=>l._proxy.$variablesUpdated(q.uri)),P()},get variableProvider(){return I},createNotebookCellExecution(V){if(c)throw new Error("notebook controller is DISPOSED");if(!A.has(V.notebook.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(A.keys()).map(q=>q.toString())),new Error(`notebook controller is NOT associated to notebook: ${V.notebook.uri.toString()}`);return l._createNotebookCellExecution(V,aw(t.identifier,this.id))},createNotebookExecution(V){if(M(t,"notebookExecution"),c)throw new Error("notebook controller is DISPOSED");if(!A.has(V.uri))throw l._logService.trace(`NotebookController[${a}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(A.keys()).map(q=>q.toString())),new Error(`notebook controller is NOT associated to notebook: ${V.uri.toString()}`);return l._createNotebookExecution(V,aw(t.identifier,this.id))},dispose:()=>{c||(this._logService.trace(`NotebookController[${a}], DISPOSED`),c=!0,this._kernelData.delete(a),u.dispose(),m.dispose(),S?.dispose(),this._proxy.$removeKernel(a))},updateNotebookAffinity(V,q){q===-1&&M(t,"notebookControllerAffinityHidden"),l._proxy.$updateNotebookPriority(a,V.uri,q)},onDidReceiveMessage:m.event,postMessage(V,q){return M(t,"notebookMessaging"),l._proxy.$postMessage(a,q&&l._extHostNotebook.getIdByEditor(q),V)},asWebviewUri(V){return M(t,"notebookMessaging"),gd(V,l._initData.remote)}};return this._kernelData.set(a,{extensionId:t.identifier,controller:L,onDidReceiveMessage:m,onDidChangeSelection:u,associatedNotebooks:A}),L}getIdByController(t){for(let[e,n]of this._kernelData)if(n.controller===t)return aw(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 G;return(await n.provideNotebookKernelSourceActions(e)??[]).map(s=>vM.from(s,this._commands.converter,o))}return[]}$acceptNotebookAssociation(t,e,n){let o=this._kernelData.get(t);if(o){let r=this._extHostNotebook.getNotebookDocument(y.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(y.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(y.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(y.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),v=0;for await(let h of g){if(a.isCancellationRequested)return;let I={id:this.id++,name:h.variable.name,value:h.variable.value,type:h.variable.type,interfaces:h.variable.interfaces,language:h.variable.language,expression:h.variable.expression,hasNamedChildren:h.hasNamedChildren,indexedChildrenCount:h.indexedChildrenCount,extensionId:l.extensionId.value};if(this.variableStore[I.id]=h.variable,this._proxy.$receiveVariable(e,I),v++>=EB)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 S0(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 C0(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()}};Wg=R([C(4,ie)],Wg);var S0=class i extends U{constructor(e,n,o){super();this._cell=n;this._proxy=o;this._handle=i.HANDLE++;this._onDidChangeState=this._register(new T);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new Re);this._collector=new T0(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 Vt(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=Xi.ensureUniqueMimeTypes(n.items,!0);return o===n.items?va.from(n):va.from({items:o,id:n.id,metadata:n.metadata})})}async updateOutputs(e,n,o){let r=this.cellIndexToHandle(n),s=this.validateAndConvertOutputs(hn(e));return this.updateSoon({editType:1,cellHandle:r,append:o,outputs:s})}async updateOutputItems(e,n,o){return e=Xi.ensureUniqueMimeTypes(hn(e),!0),this.updateSoon({editType:2,items:e.map(Nc.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=M3(s);e._proxy.$completeExecution(e._handle,new Vt({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 M3(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 C0=class i extends U{constructor(e,n,o){super();this._notebook=n;this._proxy=o;this._handle=i.HANDLE++;this._onDidChangeState=this._register(new T);this.onDidChangeState=this._onDidChangeState.event;this._state=0;this._tokenSource=this._register(new Re);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)}})}},T0=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 pn,this.startedTimer=Date.now(),Pn(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 aw(i,t){return`${i.value}/${t}`}var lw=class{constructor(t,e){this._extHostNotebook=e;this._rendererMessageEmitters=new Map;this.proxy=t.getProxy(N.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)=>{lu.apiEditorsToExtHost.has(o)&&([o,r]=[r,o]);let s=r&&lu.apiEditorsToExtHost.get(r);return this.proxy.$postMessage(s?.id,e,o)}}}getOrCreateEmitterFor(t){let e=this._rendererMessageEmitters.get(t);return e||(e=new T({onDidRemoveLastListener:()=>{e?.dispose(),this._rendererMessageEmitters.delete(t)}}),this._rendererMessageEmitters.set(t,e),e)}};var dw=class{constructor(t){this.handlers=new Map;this.proxy=t.getProxy(N.MainThreadProfileContentHandlers)}registerProfileContentHandler(t,e,n){if(M(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),Y(()=>{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(_e(e)?e:y.revive(e),n)}};var E0=class{constructor(t,e,n,o){this.handle=t;this.proxy=e;this.documents=n;this.onDispose=o;this._onDidChange=new T;this.onDidChange=this._onDidChange.event}get diffInformation(){return this._diffInformation}$acceptDiffInformation(t){if(!t){this._diffInformation=void 0,this._onDidChange.fire();return}let e=this.documents,n=y.revive(t.original),o=y.revive(t.modified),r=t.changes.map(s=>{let[a,l,d,c]=s,u;return a===l?u=1:d===c?u=2:u=3,{original:{startLineNumber:a,endLineNumberExclusive:l},modified:{startLineNumber:d,endLineNumberExclusive:c},kind:u}});this._diffInformation=Object.freeze({documentVersion:t.documentVersion,original:n,modified:o,changes:r,get isStale(){return e.getDocumentData(o)?.document.version!==t.documentVersion}}),this._onDidChange.fire()}dispose(){this.proxy.$disposeSourceControlDiffInformation(this.handle),this._onDidChange.dispose(),this.onDispose(this.handle)}},cw=class i{constructor(t,e,n){this.documents=e;this.uriTransformer=n;this.providers=new Map;this.informations=new Map;this.proxy=t.getProxy(N.MainThreadQuickDiff)}static{this.handlePool=0}$provideOriginalResource(t,e,n){let o=y.revive(e),r=this.providers.get(t);return r?on(()=>r.provideOriginalResource(o,n)).then(s=>s||null):Promise.resolve(null)}$acceptSourceControlDiffInformation(t,e){this.informations.get(t)?.$acceptDiffInformation(e)}registerQuickDiffProvider(t,e,n,o,r,s){let a=i.handlePool++;this.providers.set(a,n);let l=xe.toKey(t.identifier);return this.proxy.$registerQuickDiffProvider(a,fs.from(e,this.uriTransformer),`${l}.${o}`,r,s),{dispose:()=>{this.proxy.$unregisterQuickDiffProvider(a),this.providers.delete(a)}}}createSourceControlDiffInformation(t){let e=i.handlePool++,n=new E0(e,this.proxy,this.documents,o=>this.informations.delete(o));return this.informations.set(e,n),this.proxy.$createSourceControlDiffInformation(e,t),n}};var w0=class{constructor(t,e,n){this.handle=t;this.proxy=e;this.onDispose=n;this._onDidChange=new T;this.onDidChange=this._onDidChange.event;this._onDidRevealComment=new T;this.onDidRevealComment=this._onDidRevealComment.event;this._comments=[];this._acceptsComments=!1}get comments(){return this._comments}get acceptsComments(){return this._acceptsComments}$acceptComments(t,e){this._comments=t.map(n=>Object.freeze({id:n.id,range:B.to(n.range),body:n.body,author:n.author})),this._acceptsComments=e,this._onDidChange.fire()}$revealComment(t){this._onDidRevealComment.fire(t)}addComment(t,e){this.proxy.$addComment(this.handle,B.from(t),e)}deleteComment(t){this.proxy.$deleteComment(this.handle,t)}dispose(){this.proxy.$disposeAgentEditorComments(this.handle),this._onDidChange.dispose(),this._onDidRevealComment.dispose(),this.onDispose(this.handle)}},uw=class i{constructor(t){this.providers=new Map;this.proxy=t.getProxy(N.MainThreadAgentEditorComments)}static{this.handlePool=0}createAgentEditorComments(t){let e=i.handlePool++,n=new w0(e,this.proxy,o=>this.providers.delete(o));return this.providers.set(e,n),this.proxy.$createAgentEditorComments(e,t),n}$acceptAgentEditorComments(t,e,n){this.providers.get(t)?.$acceptComments(e,n)}$revealAgentEditorComment(t,e){this.providers.get(t)?.$revealComment(e)}};function wB(i,t,e){let n=i.getProxy(N.MainThreadQuickOpen);class o{constructor(d,c){this._sessions=new Map;this._instances=0;this._workspace=d,this._commands=c}showQuickPick(d,c,u,m=ve.None){this._onDidSelectItem=void 0;let g=Promise.resolve(c),v=++this._instances,h=n.$show(v,{title:u?.title,placeHolder:u?.placeHolder,prompt:u?.prompt,matchOnDescription:u?.matchOnDescription,matchOnDetail:u?.matchOnDetail,ignoreFocusLost:u?.ignoreFocusOut,canPickMany:u?.canPickMany},m),I={},S=h.then(()=>I);return Promise.race([S,g]).then(w=>{if(w!==I)return g.then(P=>{let A=[];for(let L=0;L<P.length;L++){let V=P[L];typeof V=="string"?A.push({label:V,handle:L}):V.kind===-1?A.push({type:"separator",label:V.label}):(V.tooltip&&M(d,"quickPickItemTooltip"),A.push({label:V.label,iconPathDto:Ii.from(V.iconPath),description:V.description,detail:V.detail,picked:V.picked,alwaysShow:V.alwaysShow,tooltip:ge.fromStrict(V.tooltip),resourceUri:V.resourceUri,handle:L}))}return u&&typeof u.onDidSelectItem=="function"&&(this._onDidSelectItem=L=>{u.onDidSelectItem(P[L])}),n.$setItems(v,A),h.then(L=>{if(typeof L=="number")return P[L];if(Array.isArray(L))return L.map(V=>P[V])})})}).then(void 0,w=>{if(!En(w))return n.$setError(v,w),Promise.reject(w)})}$onItemSelected(d){this._onDidSelectItem?.(d)}showInput(d,c=ve.None){return this._validateInput=d?.validateInput,n.$input(d,typeof this._validateInput=="function",c).then(void 0,u=>{if(!En(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=je.Info;break;case 2:u=je.Warning;break;case 3:u=je.Error;break;default:u=c.message?je.Error:je.Ignore;break}return{content:c.message,severity:u}}async showWorkspaceFolderPick(d,c=ve.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 T;this._onDidChangeValueEmitter=new T;this._onDidTriggerButtonEmitter=new T;this._onDidHideEmitter=new T;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===Zi.Back?-1:u;this._handlesToButtons.set(m,c)}),this.update({buttons:d.map((c,u)=>({iconPathDto:Ii.from(c.iconPath),tooltip:c.tooltip,handle:c===Zi.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 T;this._selectedItems=[];this._onDidChangeSelectionEmitter=new T;this._onDidTriggerItemButtonEmitter=new T;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&&M(this._extension,"quickPickItemTooltip"),u.push({handle:m,label:g.label,iconPathDto:Ii.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((v,h)=>({iconPathDto:Ii.from(v.iconPath),tooltip:v.tooltip,handle:h,toggle:typeof v.toggle=="object"&&typeof v.toggle.checked=="boolean"?{checked:v.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=ut(c.map(m=>this._handlesToItems.get(m)));this._activeItems=u,this._onDidChangeActiveEmitter.fire(u)}_fireDidChangeSelection(c){let u=ut(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 v=g.buttons[u];v&&(m!==void 0&&v.toggle&&(v.toggle.checked=m),this._onDidTriggerItemButtonEmitter.fire({button:v,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:je.Error}):this.update({validationMessage:c.message,severity:c.severity??je.Error}):this.update({validationMessage:void 0,severity:je.Ignore})}}return new o(t,e)}var kB=new yt(()=>{let i=Wm.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:i,collatorIsNumeric:i.resolvedOptions().numeric}}),kgt=new yt(()=>({collator:Wm.Collator(void 0,{numeric:!0}).value})),Pgt=new yt(()=>({collator:Wm.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function A3(i,t,e=!1){let n=i||"",o=t||"",r=kB.value.collator.compare(n,o);return kB.value.collatorIsNumeric&&r===0&&n!==o?n<o?-1:1:r}function O3(i,t,e=!1){return e||(i=i&&i.toLowerCase(),t=t&&t.toLowerCase()),i===t?0:i<t?-1:1}function fb(i,t,e=!1){let n=i.split(Xn),o=t.split(Xn),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 A3(n[d],o[d],e);if(a)return-1;if(l)return 1;let c=O3(n[d],o[d],e);if(c!==0)return c}}function PB(i){return i instanceof y}function L3(i,t){return i.scheme===$.file&&t.scheme===$.file&&lo?i.toString()===t.toString():i.toString().toLowerCase()===t.toString().toLowerCase()}function k0(i){if(i)return typeof i.iconPath=="string"?y.file(i.iconPath):y.isUri(i.iconPath)||Ye.isThemeIcon(i.iconPath)?i.iconPath:void 0}function xs(i){if(i){if(y.isUri(i))return i;if(Ye.isThemeIcon(i))return i;{let t=i;return{light:t.light,dark:t.dark}}}else return}function _B(i){let t=xs(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:xs(o.icon)}));return{...i,authorIcon:t,references:n,tooltip:e}}function P0(i){return i?{...i,icon:xs(i.icon)}:void 0}function _0(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:y.isUri(i.iconPath)?i.iconPath.fsPath:i.iconPath.id,n=typeof t.iconPath=="string"?t.iconPath:y.isUri(t.iconPath)?t.iconPath.fsPath:t.iconPath.id;return fb(e,n)}function N3(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=_0(i,t),e!==0)return e;if(i.light&&t.light)e=_0(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=_0(i.dark,t.dark);else{if(i.dark)return 1;if(t.dark)return-1}return e}function U3(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&&!(PB(n)&&PB(o)&&L3(n,o)))return n<o?-1:1}return 0}function DB(i,t){let e=fb(i.resourceUri.fsPath,t.resourceUri.fsPath,!0);if(e!==0)return e;if(i.command&&t.command)e=U3(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=N3(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=fb(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=fb(i.multiDiffEditorOriginalUri.fsPath,t.multiDiffEditorOriginalUri.fsPath,!0);else{if(i.multiDiffEditorOriginalUri)return 1;if(t.multiDiffEditorOriginalUri)return-1}return e}function F3(i,t){for(let e=0;e<i.length;e++)if(i[e]!==t[e])return!1;return!0}function H3(i,t){return i.command===t.command&&i.title===t.title&&i.tooltip===t.tooltip&&(i.arguments&&t.arguments?F3(i.arguments,t.arguments):i.arguments===t.arguments)}function V3(i,t){return Jt(i,t,H3)}var D0=class{constructor(t,e,n,o,r){this._extension=t;this._sourceControlHandle=o;this._documentUri=r;this._value="";this._onDidChange=new T;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 M(this._extension,"scmValidation"),this._validateInput}set validateInput(t){if(M(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 M(this._extension,"scmTextDocument"),this.#t.getDocument(this._documentUri)}showValidationMessage(t,e){M(this._extension,"scmValidation"),this.#e.$showValidationMessage(this._sourceControlHandle,t,AM.from(e))}$onInputBoxValueChange(t){this.updateValue(t)}updateValue(t){this._value=t,this._onDidChange.fire(t)}},R0=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 T;this.onDidUpdateResourceStates=this._onDidUpdateResourceStates.event;this._disposed=!1;this._onDidDispose=new T;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?on(()=>this._commands.executeCommand(n.command,...n.arguments||[],e)):Promise.resolve(void 0)}_takeResourceStateSnapshot(){let t=[...this._resourceStates].sort(DB),n=Rw(this._resourceSnapshot,t,DB).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 J=new G;u=this._commands.converter.toInternal(l.command,J),this._resourceStatesDisposablesMap.set(d,J)}else this._resourceStatesCommandsMap.set(d,l.command);let m=De(this._extension,"scmMultiDiffEditor"),g=m?l.multiDiffEditorOriginalUri:void 0,v=m?l.multiFileDiffEditorModifiedUri:void 0,h=k0(l.decorations),I=l.decorations&&k0(l.decorations.light)||h,S=l.decorations&&k0(l.decorations.dark)||h,w=[I,S],P=l.decorations&&l.decorations.tooltip||"",A=l.decorations&&!!l.decorations.strikeThrough,L=l.decorations&&!!l.decorations.faded,V=l.contextValue||"";return{rawResource:[d,c,w,P,A,L,V,u,g,v],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()}},hb=class hb{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 T;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 dn;this._artifactProviderDisposable=new dn;this._commitTemplate=void 0;this._acceptInputDisposables=new dn;this._acceptInputCommand=void 0;this._actionButtonDisposables=new G;this._statusBarDisposables=new G;this._statusBarCommands=void 0;this._selected=!1;this._onDidChangeSelection=new T;this.onDidChangeSelection=this._onDidChangeSelection.event;this._artifactCommandsDisposables=new wn;this.handle=hb._handlePool++;this.createdResourceGroups=new Map;this.updatedResourceGroups=new Set;this.#e=n;let u=y.from({scheme:$.vscodeSourceControl,path:`${r}/scm${this.handle}/input`,query:a?`rootUri=${encodeURIComponent(a.toString())}`:void 0});this._inputBox=new D0(t,e,this.#e,this.handle,u),this.#e.$registerSourceControl(this.handle,c?.handle,r,s,a,xs(l),d,u),this.onDidDisposeParent=c?c.onDidDispose:Le.None}static{this._handlePool=0}#e;get id(){return this._id}get label(){return this._label}get rootUri(){return this._rootUri}get contextValue(){return M(this._extension,"scmProviderOptions"),this._contextValue}set contextValue(t){M(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;De(this._extension,"quickDiffProvider")&&(e=t?.label),this.#e.$updateSourceControl(this.handle,{hasQuickDiffProvider:!!t,quickDiffLabel:e})}get secondaryQuickDiffProvider(){return M(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider}set secondaryQuickDiffProvider(t){M(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider=t;let e=t?.label;this.#e.$updateSourceControl(this.handle,{hasSecondaryQuickDiffProvider:!!t,secondaryQuickDiffLabel:e})}get historyProvider(){return M(this._extension,"scmHistoryProvider"),this._historyProvider}set historyProvider(t){M(this._extension,"scmHistoryProvider"),this._historyProvider=t,this._historyProviderDisposable.value=new G,this.#e.$updateSourceControl(this.handle,{hasHistoryProvider:!!t}),t&&(this._historyProviderDisposable.value.add(t.onDidChangeCurrentHistoryItemRefs(()=>{let e=P0(t?.currentHistoryItemRef),n=P0(t?.currentHistoryItemRemoteRef),o=P0(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:xs(s.icon)})),o=e.modified.map(s=>({...s,icon:xs(s.icon)})),r=e.removed.map(s=>({...s,icon:xs(s.icon)}));this.#e.$onDidChangeHistoryProviderHistoryItemRefs(this.handle,{added:n,modified:o,removed:r,silent:e.silent})})))}get artifactProvider(){return M(this._extension,"scmArtifactProvider"),this._artifactProvider}set artifactProvider(t){M(this._extension,"scmArtifactProvider"),this._artifactProvider=t,this._artifactProviderDisposable.value=new G,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 G,this._acceptInputCommand=t;let e=this._commands.converter.toInternal(t,this._acceptInputDisposables.value);this.#e.$updateSourceControl(this.handle,{acceptInputCommand:e})}get actionButton(){return M(this._extension,"scmActionButton"),this._actionButton}set actionButton(t){if(M(this._extension,"scmActionButton"),Vu(this._actionButton,t))return;let e=this._actionButtonDisposables;this._actionButtonDisposables=new G,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&&V3(this._statusBarCommands,t))return;let e=this._statusBarDisposables;this._statusBarDisposables=new G,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=De(this._extension,"scmMultiDiffEditor")&&n?.multiDiffEditorEnableViewChanges===!0,r=new R0(this.#e,this._commands,this.handle,t,e,o,this._extension),s=Le.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()});Le.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 G,r=(await this.artifactProvider?.provideArtifacts(t,e))?.map(s=>({...s,icon:xs(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()}};R([Rv(100)],hb.prototype,"eventuallyAddResourceGroups",1),R([Rv(100)],hb.prototype,"eventuallyUpdateResourceStates",1);var M0=hb,$g=class{constructor(t,e,n,o){this._commands=e;this._extHostDocuments=n;this.logService=o;this._sourceControls=new Map;this._sourceControlsByExtension=new eo;this._onDidChangeActiveProvider=new T;this._proxy=t.getProxy(N.MainThreadSCM),this._telemetry=t.getProxy(N.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?It.find(this._sourceControls.values(),u=>u===a):void 0,d=new M0(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),Le.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=y.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):on(()=>r.quickDiffProvider.provideOriginalResource(o,n)).then(s=>s||null)}$provideSecondaryOriginalResource(t,e,n){let o=y.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):on(()=>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):on(()=>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?_B(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:xs(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=>_B(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:xs(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}}};$g=R([C(3,ie)],$g);var pw=class i{constructor(t,e){this.uriTransformer=e;this.providers=new Map;this.proxy=t.getProxy(N.MainThreadShare)}static{this.handlePool=0}async $provideShare(t,e,n){return await this.providers.get(t)?.provideShare({selection:B.to(e.selection),resourceUri:y.revive(e.resourceUri)},n)??void 0}registerShareProvider(t,e){let n=i.handlePool++;return this.providers.set(n,e),this.proxy.$registerShareProvider(n,fs.from(t,this.uriTransformer),e.id,e.label,e.priority),{dispose:()=>{this.proxy.$unregisterShareProvider(n),this.providers.delete(n)}}}};var mw=class i{constructor(t){this.providers=new Map;this.sessions=new Map;this.synthesizers=new Map;this.proxy=t.getProxy(N.MainThreadSpeech)}static{this.ID_POOL=1}async $createSpeechToTextSession(t,e,n){let o=this.providers.get(t);if(!o)return;let r=new G,s=new Re;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 G,s=new Re;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 G,r=new Re;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}),Y(()=>{this.proxy.$unregisterProvider(o),this.providers.delete(o)})}};var A0=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?y.parse(r._favicon):new ln(le.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=Be();await this._proxy.$startCDPSession(t,this.id);let e=new O0(t,this._proxy);return this._sessions.set(t,e),e.value}async _close(){await this._proxy.$closeBrowserTab(this.id)}},O0=class{constructor(t,e){this.id=t;this._proxy=e;this._onDidReceiveMessage=new T;this._onDidClose=new T;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()}},gw=class extends U{constructor(e){super();this._browserTabs=new Map;this._sessions=this._register(new wn);this._onDidOpenBrowserTab=this._register(new T);this.onDidOpenBrowserTab=this._onDidOpenBrowserTab.event;this._onDidCloseBrowserTab=this._register(new T);this.onDidCloseBrowserTab=this._onDidCloseBrowserTab.event;this._onDidChangeActiveBrowserTab=this._register(new T);this.onDidChangeActiveBrowserTab=this._onDidChangeActiveBrowserTab.event;this._onDidChangeBrowserTabState=this._register(new T);this.onDidChangeBrowserTabState=this._onDidChangeBrowserTabState.event;this._proxy=e.getProxy(N.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=Mt.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 A0(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 L0=class i{constructor(t,e,n,o,r,s=1,a,l){this._onDispose=l;this._disposed=!1;this._text="";this._staleCommandRegistrations=new G;if(this.#e=t,this.#t=e,r&&o){this._entryId=YH(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 Zs("statusBarItem.errorForeground")],["statusBarItem.warningBackground",new Zs("statusBarItem.warningForeground")]])}#e;#t;validatePriority(t){if(sr(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&&M(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&&M(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 G,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(3805,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}},N0=class{constructor(t){this._messages=[];this._item=t.createStatusBarEntry(void 0,"status.extensionMessage",1,Number.MIN_VALUE),this._item.name=p(3806,null)}dispose(){this._messages.length=0,this._item.dispose()}setMessage(t){let e={message:t};return this._messages.unshift(e),this._update(),new Ie(()=>{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()}},fw=class{constructor(t,e){this._entries=new Map;this._existingItems=new Map;this._proxy=t.getProxy(N.MainThreadStatusBar),this._commands=e,this._statusMessage=new N0(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 L0(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 Ie(()=>{n.dispose(),clearTimeout(o)})}};var hw=class extends U{constructor(e,n){super();this._extHostDocumentsAndEditors=n;this._onDidChangeTextEditorSelection=this._register(new T);this._onDidChangeTextEditorOptions=this._register(new T);this._onDidChangeTextEditorVisibleRanges=this._register(new T);this._onDidChangeTextEditorViewColumn=this._register(new T);this._onDidChangeTextEditorDiffInformation=this._register(new T);this._onDidChangeActiveTextEditor=this._register(new T);this._onDidChangeVisibleTextEditors=this._register(new T);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(N.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:Mt.from(n),preserveFocus:o}:typeof n=="object"?r={position:Mt.from(n.viewColumn),preserveFocus:n.preserveFocus,selection:typeof n.selection=="object"?B.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 nT(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(fo.to);o._acceptSelections(r)}if(n.visibleRanges){let r=ut(n.visibleRanges.map(B.to));o._acceptVisibleRanges(r)}if(n.options&&this._onDidChangeTextEditorOptions.fire({textEditor:o.value,options:{...n.options,lineNumbers:Vc.to(n.options.lineNumbers)}}),n.selections){let r=Rc.fromValue(n.selections.source),s=n.selections.selections.map(fo.to);this._onDidChangeTextEditorSelection.fire({textEditor:o.value,selections:s,kind:r})}if(n.visibleRanges){let r=ut(n.visibleRanges.map(B.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=Mt.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=y.revive(a.original),d=y.revive(a.modified),c=a.changes.map(u=>{let[m,g,v,h]=u,I;return m===g?I=1:v===h?I=2:I=3,{original:{startLineNumber:m,endLineNumberExclusive:g},modified:{startLineNumber:v,endLineNumberExclusive:h},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 zg=class{constructor(t){this._actual=new hc(2),this._onDidChangeActiveColorTheme=new T}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 hc(e),this._onDidChangeActiveColorTheme.fire(this._actual)}get onDidChangeActiveColorTheme(){return this._onDidChangeActiveColorTheme.event}};zg=R([C(0,me)],zg);var Fht=D("IExtHostTimeline"),vw=class{constructor(t,e){this._providers=new Map;this._itemsBySourceAndUriMap=new Map;this._proxy=t.getProxy(N.MainThreadTimeline),e.registerArgumentProcessor({processArgument:(n,o)=>{if(n&&n.$mid===12)if(this._providers.get(n.source)&&o&&De(o,"timeline")){let r=n.uri===void 0?void 0:y.revive(n.uri);return this._itemsBySourceAndUriMap.get(n.source)?.get(RB(r))?.get(n.handle)}else return;return n}})}async $getTimeline(t,e,n,o){return this._providers.get(t)?.provider.provideTimeline(y.revive(e),n,o)}registerTimelineProvider(t,e,n,o){let r=new G,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=RB(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 ln?g={id:l.id,color:l.color}:y.isUri(l)?(u=l,m=l):{light:u,dark:m}=l);let v;return Bt.isMarkdownString(d.tooltip)?v=ge.from(d.tooltip):_e(d.tooltip)?v=d.tooltip:Bt.isMarkdownString(d.detail)?(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),v=ge.from(d.detail)):_e(d.detail)&&(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),v=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:v,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}),Y(()=>{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 RB(i){return i?.toString()}var Yht=p(5488,null),Xht=js("default-view-icon",le.window,p(5485,null)),H0;(e=>(e.ViewContainersRegistry="workbench.registry.view.containers",e.ViewsRegistry="workbench.registry.view"))(H0||={});var U0=class extends U{constructor(){super(...arguments);this._onDidRegister=this._register(new T);this.onDidRegister=this._onDidRegister.event;this._onDidDeregister=this._register(new T);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},Uw(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)}};mt.add(H0.ViewContainersRegistry,new U0);function B3(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 F0=class extends U{constructor(){super(...arguments);this._onViewsRegistered=this._register(new T);this.onViewsRegistered=this._onViewsRegistered.event;this._onViewsDeregistered=this._register(new T);this.onViewsDeregistered=this._onViewsDeregistered.event;this._onDidChangeContainer=this._register(new T);this.onDidChangeContainer=this._onDidChangeContainer.event;this._onDidChangeViewWelcomeContent=this._register(new T);this.onDidChangeViewWelcomeContent=this._onDidChangeViewWelcomeContent.event;this._viewContainers=[];this._views=new Map;this._viewWelcomeContents=new mu}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),Y(()=>{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,Y(()=>{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(B3)}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(5486,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}};mt.add(H0.ViewsRegistry,new F0);var Zht=D("viewDescriptorService");var Gr=class extends Error{constructor(e){super(p(5487,null,e));this.name="NoTreeViewError"}static is(e){return!!e&&e.name==="NoTreeViewError"}};var bw=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 MB(i,t){if(_e(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),_e(i.label))return{label:i.label,highlights:e};if(Bt.isMarkdownString(i.label))return M(t,"treeItemMarkdownLabel"),{label:ge.from(i.label),highlights:e}}}var yw=class extends U{constructor(e,n,o){super();this._proxy=e;this._commands=n;this._logService=o;this._treeViews=new Map;this._treeDragAndDropService=new bw;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 M(o,"treeViewActiveItem"),d.focusedElement},get onDidChangeActiveItem(){return M(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){Eo(g)&&M(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&&bR.isViewBadge(g)?d.badge={value:Math.floor(Math.abs(g.value)),tooltip:g.tooltip}:g===void 0&&(d.badge=void 0)},reveal:(g,v)=>d.reveal(g,v),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 Gr(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 Gr(e));let u=Bc.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 Gr(e));let a=await this._addAdditionalTransferItems(new Fr,s,n,r,o);if(!(!a||r.isCancellationRequested))return Bc.from(a)}async $hasResolve(e){let n=this._treeViews.get(e);if(!n)throw new Gr(e);return n.hasResolve}$resolve(e,n,o){let r=this._treeViews.get(e);if(!r)throw new Gr(e);return r.resolveTreeItem(n,o)}$setExpanded(e,n,o){let r=this._treeViews.get(e);if(!r)throw new Gr(e);r.setExpanded(n,o)}$setSelectionAndFocus(e,n,o){let r=this._treeViews.get(e);if(!r)throw new Gr(e);r.setSelectionAndFocus(n,o)}$setVisible(e,n){let o=this._treeViews.get(e);if(!o){if(!n)return;throw new Gr(e)}o.setVisible(n)}$changeCheckboxState(e,n){let o=this._treeViews.get(e);if(!o)throw new Gr(e);o.setCheckboxState(n)}_createExtHostTreeView(e,n,o){let r=this._register(new V0(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}},V0=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 T);this.onDidExpandElement=this._onDidExpandElement.event;this._onDidCollapseElement=this._register(new T);this.onDidCollapseElement=this._onDidCollapseElement.event;this._onDidChangeSelection=this._register(new T);this.onDidChangeSelection=this._onDidChangeSelection.event;this._onDidChangeActiveItem=this._register(new T);this.onDidChangeActiveItem=this._onDidChangeActiveItem.event;this._onDidChangeVisibility=this._register(new T);this.onDidChangeVisibility=this._onDidChangeVisibility.event;this._onDidChangeCheckboxState=this._register(new T);this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event;this._onDidChangeData=this._register(new T);this._refreshPromise=Promise.resolve();this._refreshQueue=Promise.resolve();this._nodesToClear=new Set;this._message="";this._title="";this._refreshCancellationSource=new Re;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=Le.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=No(m),this._refreshQueue=this._refreshQueue.then(()=>{let g=d;l=null;let v=Array.from(this._nodesToClear);return this._nodesToClear.clear(),this._debugLogRefresh("start",m,v),this._refresh(m).then(()=>(this._debugLogRefresh("done",m,v),this._clearNodes(v),g())).catch(h=>{let I=h instanceof Error?h.message:JSON.stringify(h);return this._debugLogRefresh("error",m,v),this._clearNodes(v),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=>!Ut(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=Ut(n.select)?!0:n.select,r=Ut(n.focus)?!1:n.focus,s=Ut(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=pv.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=!Jt(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 on(()=>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):on(()=>this._dataProvider.getParent(e))}async _resolveTreeNode(e,n){let o=this._nodes.get(e);if(o)return o;let r=await on(()=>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 Re(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=ut(s||[]),d=await Promise.all(ut(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:ut(c)}finally{r.dispose()}}_refresh(e){if(e.some(o=>!o))return this._refreshCancellationSource.dispose(!0),this._refreshCancellationSource=new Re,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),on(()=>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 Bt.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(!os.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 G),s=this._createHandle(e,n,o),a=this._getLightIconPath(n);return{item:{handle:s,parentHandle:o?o.item.handle:void 0,label:MB(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:Ut(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 ln?e.iconPath:void 0}_createHandle(e,{id:n,label:o,resourceUri:r},s,a){if(n)return`${i.ID_HANDLE_PREFIX}/${n}`;let l=MB(o,this._extension),d=s?s.item.handle:i.LABEL_HANDLE_PREFIX,c="";l&&(Eo(l.label)?c=l.label.value:c=l.label);let u=c||(r?tt(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)||[],v,h=0;do{if(v=`${d}/${h}:${u}`,a||!this._elements.has(v)||m===v)break;h++}while(h<=g.length);return v}_getLightIconPath(e){if(e.iconPath&&!(e.iconPath instanceof ln))return typeof e.iconPath=="string"||y.isUri(e.iconPath)?this._getIconPath(e.iconPath):this._getIconPath(e.iconPath.light)}_getDarkIconPath(e){if(e.iconPath&&!(e.iconPath instanceof ln)&&e.iconPath.dark)return this._getIconPath(e.iconPath.dark)}_getIconPath(e){return y.isUri(e)?e:y.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 Iw=class i{constructor(t){this._openers=new Map;this._proxy=t.getProxy(N.MainThreadUriOpeners)}static{this.supportedSchemes=new Set([$.http,$.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),Y(()=>{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=y.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(y.revive(e.resolvedUri),{sourceUri:y.revive(e.sourceUri)},n)}};var B0=class extends U{constructor(e,n,o,r){super();this.#a=void 0;this.#d=!0;this.#i=!1;this.#u=this._register(new T);this.onDidDispose=this.#u.event;this.#p=this._register(new T);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,y.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:Mt.from(e),preserveFocus:!!n})}assertNotDisposed(){if(this.#i)throw new Error("Webview is disposed")}},xw=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(N.MainThreadWebviewPanels)}static newHandle(){return Be()}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:Mt.from(a),preserveFocus:typeof r=="object"&&!!r.preserveFocus},d=Pa(e),c=i.newHandle();this._proxy.$createWebviewPanel(eu(e),c,n,{title:o,panelOptions:W3(s),webviewOptions:A1(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:Mt.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:Pa(e)}),new Ie(()=>{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 B0(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 W3(i){return{enableFindWidget:i.enableFindWidget,retainContextWhenHidden:i.retainContextWhenHidden}}var W0=class extends U{constructor(e,n,o,r,s,a){super();this.#s=!1;this.#c=this._register(new T);this.onDidChangeVisibility=this.#c.event;this.#i=this._register(new T);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=pv.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")}},Sw=class{constructor(t,e){this._extHostWebview=e;this._viewProviders=new Map;this._webviewViews=new Map;this._proxy=t.getProxy(N.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(eu(t),e,{retainContextWhenHidden:o?.retainContextWhenHidden,serializeBuffersForPostMessage:Pa(t)}),new Ie(()=>{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 W0(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 qg=class extends U{constructor(e,n,o){super();this._commands=n;this._editorTabs=o;this._handlePool=0;this._providers=new Map;this._itemPool=0;this._globalItems=new Map;this._providerItems=new Map;this._proxy=e.getProxy(N.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 s=await o.provider.provideWorkspaceChatContext?.(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 s=await o.provider.provideAttachChatContext?.(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.resolveAttachChatContext?.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=y.revive(n.resource),l=this._findTab(a,n.viewType);if(!l)return;let d=await s.provideChatTabContext?.({tab:l},o);if(!d)return;if(d.label===void 0&&d.resourceUri===void 0)throw new Error("ChatContextItem must have either a label or a resourceUri");let u={handle:this._addTrackedItem(e,d),iconPath:d.iconPath,label:d.label,resourceUri:d.resourceUri,modelDescription:d.modelDescription,tooltip:d.tooltip?ge.from(d.tooltip):void 0,value:n.withValue?d.value:void 0,command:d.command?{id:d.command.command}:void 0};if(n.withValue&&!u.value){let m=await s.resolveChatTabContext?.bind(s)(d,o);u.value=m?.value,u.tooltip=m?.tooltip?ge.from(m.tooltip):u.tooltip}return u}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.resolveChatTabContext?.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 G;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()}}}registerChatAttachContextProvider(e,n){let o=this._handlePool++,r=new G;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()}}}registerChatTabContextProvider(e,n,o){let r=this._handlePool++,s=new G;return this._providers.set(r,{type:"resource",provider:o,disposables:s}),this._proxy.$registerChatResourceContextProvider(r,n,nM.from(e)),{dispose:()=>{this._providers.delete(r),this._clearProviderItems(r),this._providerItems.delete(r),this._proxy.$unregisterChatContextProvider(r),s.dispose()}}}_findTab(e,n){let o;for(let r of this._editorTabs.tabGroups.all)for(let s of r.tabs){let a=s.input;if(a){if(y.isUri(a.uri)&&nn(a.uri,e))return s;n!==void 0&&a.viewType===n&&(!o||s.isActive)&&(o=s)}}return o}_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,iconPath:r.iconPath,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,iconPath:s.iconPath,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?.(ve.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()}};qg=R([C(0,me),C(1,rr),C(2,Ci)],qg);var Kg=class extends U{constructor(e){super();this._nextHandle=0;this._activeProgress=new Map;this._onDidAddCoreEvent=this._register(new T({onWillAddFirstListener:()=>this._proxy.$subscribeToCoreDebugEvents(),onDidRemoveLastListener:()=>this._proxy.$unsubscribeFromCoreDebugEvents()}));this.onDidAddCoreEvent=this._onDidAddCoreEvent.event;this._proxy=e.getProxy(N.MainThreadChatDebug)}_progressKey(e,n){return`${e}:${y.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),Y(()=>{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 G;this._activeProgress.set(r,s);let a=s.add(new T);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=y.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?y.revive(e.sessionResource):void 0;switch(e.kind){case"toolCall":{let r=new zp(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 qp(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 Kp(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 Gp(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 jp(e.message,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.sections=e.sections.map(s=>new kc(s.name,s.content)),r}case"agentResponse":{let r=new Qp(e.message,n);return r.id=e.id,r.sessionResource=o,r.parentEventId=e.parentEventId,r.sections=e.sections.map(s=>new kc(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=y.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 ee.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()}};Kg=R([C(0,me)],Kg);function $3(i,t){if(t.isRemoteResolverTerminal)return M(i,"terminalRemoteResolver"),{isRemoteResolverTerminal:!0}}function AB(i){let t=i.get(at),e=i.get(Ar),n=i.get(td),o=i.get(Ao),r=i.get(ro),s=i.get(od),a=i.get(Mo),l=i.get(nl),d=i.get(me),c=i.get(Cm),u=i.get(Em),m=i.get(ur),g=i.get(ie),v=i.get(km),h=i.get(Ea),I=i.get(Gc),S=i.get(hT),w=i.get(jc),P=i.get(Km),A=i.get(Ci),L=i.get(Jm),V=i.get(bT),q=i.get(Qc),J=i.get(Vm),z=i.get(Bm),j=i.get(zv),X=i.get(TT),ue=i.get(wT),ot=i.get(PT);d.set(pe.ExtHostFileSystemInfo,e),d.set(pe.ExtHostLogLevelServiceShape,m),d.set(pe.ExtHostWorkspace,r),d.set(pe.ExtHostConfiguration,a),d.set(pe.ExtHostExtensionService,o),d.set(pe.ExtHostStorage,c),d.set(pe.ExtHostTunnelService,v),d.set(pe.ExtHostWindow,I),d.set(pe.ExtHostPower,S),d.set(pe.ExtHostUrls,w),d.set(pe.ExtHostSecretState,P),d.set(pe.ExtHostTelemetry,s),d.set(pe.ExtHostEditorTabs,A),d.set(pe.ExtHostManagedSockets,L),d.set(pe.ExtHostBrowserTunnelProxy,V),d.set(pe.ExtHostProgress,q),d.set(pe.ExtHostAuthentication,J),d.set(pe.ExtHostChatProvider,z),d.set(pe.ExtHostDataChannels,X),d.set(pe.ExtHostMeteredConnection,ue),d.set(pe.ExtHostGitExtension,ot);let Ze=d.set(pe.ExtHostDecorations,i.get(XC)),re=d.set(pe.ExtHostDocumentsAndEditors,i.get(Si)),Z=d.set(pe.ExtHostCommands,i.get(rr)),te=d.set(pe.ExtHostTerminalService,i.get(xi)),se=d.set(pe.ExtHostTerminalShellIntegration,i.get(xT)),Q=d.set(pe.ExtHostDebugService,i.get(pT)),ae=d.set(pe.ExtHostSearch,i.get(fT)),be=d.set(pe.ExtHostTask,i.get(sT)),rt=d.set(pe.ExtHostOutputService,i.get(YC)),$e=d.set(pe.ExtHostLocalization,i.get(jm)),Ae=d.set(pe.ExtHostDocuments,new ZT(d,re)),At=d.set(pe.ExtHostDocumentContentProviders,new YT(d,re,g)),Nt=d.set(pe.ExtHostDocumentSaveParticipant,new XT(g,Ae,d.getProxy(N.MainThreadBulkEdits))),lt=d.set(pe.ExtHostNotebook,new rw(d,Z,re,Ae,n,ae,g)),vo=d.set(pe.ExtHostNotebookDocuments,new sw(lt)),Ss=d.set(pe.ExtHostNotebookEditors,new Bg(g,lt)),Pi=d.set(pe.ExtHostNotebookKernels,new Wg(d,t,lt,Z,g)),jr=d.set(pe.ExtHostNotebookRenderers,new lw(d,lt)),Qr=d.set(pe.ExtHostNotebookDocumentSaveParticipant,new iw(g,lt,d.getProxy(N.MainThreadBulkEdits))),ze=d.set(pe.ExtHostEditors,new hw(d,re)),Oe=d.set(pe.ExtHostTreeViews,new yw(d.getProxy(N.MainThreadTreeViews),Z,g)),Cs=d.set(pe.ExtHostEditorInsets,new $T(d.getProxy(N.MainThreadEditorInsets),ze,t.remote)),bo=d.set(pe.ExtHostDiagnostics,new Kr(d,g,e,re)),Cr=d.set(pe.ExtHostLanguages,new qE(d,Ae,Z.converter,l)),Ge=d.set(pe.ExtHostLanguageFeatures,new TE(d,l,Ae,Z,bo,g,h,s)),du=d.set(pe.ExtHostCodeMapper,new zT(d)),Jg=d.set(pe.ExtHostFileSystem,new oE(d,Ge)),Tr=d.set(pe.ExtHostFileSystemEventService,new rE(d,g,re)),_i=d.set(pe.ExtHostQuickOpen,wB(d,r,Z)),Da=d.set(pe.ExtHostSCM,new $g(d,Z,Ae,g)),yo=d.set(pe.ExtHostQuickDiff,new cw(d,Ae,l)),Ra=d.set(pe.ExtHostAgentEditorComments,new uw(d)),Xt=d.set(pe.ExtHostShare,new pw(d,l)),Kn=d.set(pe.ExtHostComments,MV(d,Z,Ae)),bb=d.set(pe.ExtHostLabelService,new sE(d)),Yg=d.set(pe.ExtHostTheming,new zg(d)),vd=d.set(pe.ExtHostTimeline,new vw(d,Z)),Ts=d.set(pe.ExtHostWebviews,new KT(d,t.remote,r,g,h)),O=d.set(pe.ExtHostWebviewPanels,new xw(d,Ts,r)),W=d.set(pe.ExtHostCustomEditors,new jT(d,Ae,u,Ts,O)),K=d.set(pe.ExtHostWebviewViews,new Sw(d,Ts)),Ce=d.set(pe.ExtHostTesting,i.get(Yc)),He=d.set(pe.ExtHostUriOpeners,new Iw(d)),Sn=d.set(pe.ExtHostProfileContentHandlers,new dw(d)),St=d.set(pe.ExtHostChatOutputRenderer,new UT(d,Ts));d.set(pe.ExtHostInteractive,new iE(d,lt,re,Z,g));let Cn=d.set(pe.ExtHostLanguageModelTools,new zE(d,z)),Kt=d.set(pe.ExtHostChatSessions,new yg(Z,z,d,g)),Qe=d.set(pe.ExtHostChatAgents2,new OT(d,g,Z,Ae,re,z,bo,Cn,Kt)),Lo=d.set(pe.ExtHostChatContext,new qg(d,Z,A)),Zt=d.set(pe.ExtHostChatDebug,new Kg(d)),Tn=d.set(pe.ExtHostAiRelatedInformation,new DT(d)),so=d.set(pe.ExtHostAiEmbeddingVector,new tE(d)),Bo=d.set(pe.ExtHostAiSettingsSearch,new RT(d)),We=d.set(pe.ExtHostStatusBar,new fw(d,Z.converter)),it=d.set(pe.ExtHostSpeech,new mw(d)),kt=d.set(pe.ExtHostEmbeddings,new eE(d)),Rt=d.set(pe.ExtHostBrowsers,new gw(d)),Mn=d.set(pe.ExtHostChatQuota,new VT(d));d.set(pe.ExtHostMcp,i.get(zv));let Xg=Object.values(pe);d.assertRegistered(Xg);let Ma=new vg(d,re),Aa=new WT(d),yb=new Fg(d,g),Tw=new JT(d),K0=new HT(d),G0=new BT(d);return AT.register(Z),function(k,Es,Ib){function de(b){return(x,_,Se)=>{let dt=b(Gt=>{try{x.call(_,Gt)}catch(rO){Id(new Su(k.identifier,rO,"FAILED to handle event"))}});return Se?.push(dt),dt}}let Ot=(function(){let b=!k.isUnderDevelopment;function x(){b||(g.info(`Extension '${k.identifier.value}' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305`),b=!0)}return function _(Se){if(Array.isArray(Se))Se.forEach(_);else if(typeof Se=="string")x();else{let dt=Se;typeof dt.scheme>"u"&&x(),typeof dt.exclusive=="boolean"&&M(k,"documentFiltersExclusive")}return Se}})(),j0={getSession(b,x,_){return(typeof _?.forceNewSession=="object"&&_.forceNewSession.learnMore||typeof _?.createIfNone=="object"&&_.createIfNone.learnMore)&&M(k,"authLearnMore"),_?.authorizationServer&&M(k,"authIssuers"),J.getSession(k,b,x,_)},getAccounts(b){return J.getAccounts(b)},async hasSession(b,x){return M(k,"authSession"),!!await J.getSession(k,b,x,{silent:!0})},get onDidChangeSessions(){return de(J.getExtensionScopedSessionsEvent(k.identifier.value))},registerAuthenticationProvider(b,x,_,Se){return Se?.supportedAuthorizationServers&&M(k,"authIssuers"),J.registerAuthenticationProvider(b,x,_,Se)}},Q0={registerCommand(b,x,_){return Z.registerCommand(!0,b,x,_,void 0,k)},registerTextEditorCommand(b,x,_){return Z.registerCommand(!0,b,(...Se)=>{let dt=ze.getActiveTextEditor();if(!dt){g.warn("Cannot execute "+b+" because there is no active text editor.");return}return dt.edit(Gt=>{x.apply(_,[dt,Gt,...Se])}).then(Gt=>{Gt||g.warn("Edits from command "+b+" were not applied.")},Gt=>{g.warn("An error occurred while running command "+b,Gt)})},void 0,void 0,k)},registerDiffInformationCommand:(b,x,_)=>(M(k,"diffCommand"),Z.registerCommand(!0,b,async(...Se)=>{let dt=re.activeEditor(!0);if(!dt){g.warn("Cannot execute "+b+" because there is no active text editor.");return}let Gt=await ze.getDiffInformation(dt.id);x.apply(_,[Gt,...Se])},void 0,void 0,k)),executeCommand(b,...x){return Z.executeCommand(b,...x)},getCommands(b=!1){return Z.getCommands(b)}},Ew={get machineId(){return t.telemetryInfo.machineId},get devDeviceId(){return M(k,"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 Aa.value},get shell(){return te.getDefaultShell(!1)},get onDidChangeShell(){return de(te.onDidChangeShell)},get isTelemetryEnabled(){return s.getTelemetryConfiguration()},get onDidChangeTelemetryEnabled(){return de(s.onDidChangeTelemetryEnabled)},get telemetryConfiguration(){return M(k,"telemetry"),s.getTelemetryDetails()},get onDidChangeTelemetryConfiguration(){return M(k,"telemetry"),de(s.onDidChangeTelemetryConfiguration)},get isMeteredConnection(){return M(k,"envIsConnectionMetered"),ue.isConnectionMetered},get onDidChangeMeteredConnection(){return M(k,"envIsConnectionMetered"),de(ue.onDidChangeIsConnectionMetered)},get isNewAppInstall(){return eA(t.telemetryInfo.firstSessionDate)},createTelemetryLogger(b,x){return wv.validateSender(b),s.instantiateLogger(k,b,x)},async openExternal(b,x){return I.openUri(b,{allowTunneling:t.remote.isRemote??(t.remote.authority?await v.hasTunnelProvider():!1),allowContributedOpeners:x?.allowContributedOpeners})},async asExternalUri(b){if(b.scheme===t.environment.appUriScheme)return w.createAppUri(b);try{return await I.asExternalUri(b,{allowTunneling:!!t.remote.authority})}catch(x){if(Zb(b,$.http)||Zb(b,$.https))return b;throw x}},get remoteName(){return wf(t.remote.authority)},get remoteAuthority(){return M(k,"resolvers"),t.remote.authority},get uiKind(){return t.uiKind},get logLevel(){return g.getLevel()},get onDidChangeLogLevel(){return de(g.onDidChangeLogLevel)},get appQuality(){return M(k,"resolvers"),t.quality},get appCommit(){return M(k,"resolvers"),t.commit},getDataChannel(b){return M(k,"dataChannels"),X.createDataChannel(k,b)},get power(){return M(k,"environmentPower"),{get onDidSuspend(){return de(S.onDidSuspend)},get onDidResume(){return de(S.onDidResume)},get onDidChangeOnBatteryPower(){return de(S.onDidChangeOnBatteryPower)},get onDidChangeThermalState(){return de(S.onDidChangeThermalState)},get onDidChangeSpeedLimit(){return de(S.onDidChangeSpeedLimit)},get onWillShutdown(){return de(S.onWillShutdown)},get onDidLockScreen(){return de(S.onDidLockScreen)},get onDidUnlockScreen(){return de(S.onDidUnlockScreen)},getSystemIdleState(b){return S.getSystemIdleState(b)},getSystemIdleTime(){return S.getSystemIdleTime()},getCurrentThermalState(){return S.getCurrentThermalState()},isOnBatteryPower(){return S.isOnBatteryPower()},async startPowerSaveBlocker(b){let x=await S.startPowerSaveBlocker(b);return{id:x.id,get isStarted(){return x.isStarted},dispose(){x.dispose()}}}}}};t.environment.extensionTestsLocationURI||Object.freeze(Ew);let J0={createTestController(b,x,_){return Ce.createTestController(k,b,x,_)},createTestObserver(){return M(k,"testObserver"),Ce.createTestObserver()},runTests(b){return M(k,"testObserver"),Ce.runTests(b)},registerTestFollowupProvider(b){return M(k,"testObserver"),Ce.registerTestFollowupProvider(b)},get onDidChangeTestResults(){return M(k,"testObserver"),de(Ce.onResultsChanged)},get testResults(){return M(k,"testObserver"),Ce.results}},Zg=t.remote.isRemote?2:1,Y0={getExtension(b,x){De(k,"extensionsAny")||(x=!1);let _=Es.mine.getExtensionDescription(b);if(_)return new ld(o,k.identifier,_,Zg,!1);if(x){let Se=Es.all.getExtensionDescription(b);if(Se)return new ld(o,k.identifier,Se,Zg,!0)}},get all(){let b=[];for(let x of Es.mine.getAllExtensionDescriptions())b.push(new ld(o,k.identifier,x,Zg,!1));return b},get allAcrossExtensionHosts(){M(k,"extensionsAny");let b=new So(Es.mine.getAllExtensionDescriptions().map(_=>_.identifier)),x=[];for(let _ of Es.all.getAllExtensionDescriptions()){let Se=!b.has(_.identifier);x.push(new ld(o,k.identifier,_,Zg,Se))}return x},get onDidChange(){return De(k,"extensionsAny")?de(Le.any(Es.mine.onDidChange,Es.all.onDidChange)):de(Es.mine.onDidChange)}},X0={createDiagnosticCollection(b){return bo.createDiagnosticCollection(k.identifier,b)},get onDidChangeDiagnostics(){return de(bo.onDidChangeDiagnostics)},getDiagnostics:b=>bo.getDiagnostics(b),getLanguages(){return Cr.getLanguages()},setTextDocumentLanguage(b,x){return Cr.changeLanguage(b.uri,x)},match(b,x){let _=fM.from(b),Se;return I1(_)&&(Se=lt.notebookDocuments.find(dt=>dt.apiNotebook.getCells().find(Gt=>Gt.document===x))?.apiNotebook),y1(_,x.uri,x.languageId,!0,Se?.uri,Se?.notebookType)},registerCodeActionsProvider(b,x,_){return Ge.registerCodeActionProvider(k,Ot(b),x,_)},registerDocumentPasteEditProvider(b,x,_){return Ge.registerDocumentPasteEditProvider(k,Ot(b),x,_)},registerCodeLensProvider(b,x){return Ge.registerCodeLensProvider(k,Ot(b),x)},registerDefinitionProvider(b,x){return Ge.registerDefinitionProvider(k,Ot(b),x)},registerDeclarationProvider(b,x){return Ge.registerDeclarationProvider(k,Ot(b),x)},registerImplementationProvider(b,x){return Ge.registerImplementationProvider(k,Ot(b),x)},registerTypeDefinitionProvider(b,x){return Ge.registerTypeDefinitionProvider(k,Ot(b),x)},registerHoverProvider(b,x){return Ge.registerHoverProvider(k,Ot(b),x,k.identifier)},registerEvaluatableExpressionProvider(b,x){return Ge.registerEvaluatableExpressionProvider(k,Ot(b),x,k.identifier)},registerInlineValuesProvider(b,x){return Ge.registerInlineValuesProvider(k,Ot(b),x,k.identifier)},registerDocumentHighlightProvider(b,x){return Ge.registerDocumentHighlightProvider(k,Ot(b),x)},registerMultiDocumentHighlightProvider(b,x){return Ge.registerMultiDocumentHighlightProvider(k,Ot(b),x)},registerLinkedEditingRangeProvider(b,x){return Ge.registerLinkedEditingRangeProvider(k,Ot(b),x)},registerReferenceProvider(b,x){return Ge.registerReferenceProvider(k,Ot(b),x)},registerRenameProvider(b,x){return Ge.registerRenameProvider(k,Ot(b),x)},registerNewSymbolNamesProvider(b,x){return M(k,"newSymbolNamesProvider"),Ge.registerNewSymbolNamesProvider(k,Ot(b),x)},registerDocumentSymbolProvider(b,x,_){return Ge.registerDocumentSymbolProvider(k,Ot(b),x,_)},registerWorkspaceSymbolProvider(b){return Ge.registerWorkspaceSymbolProvider(k,b)},registerDocumentFormattingEditProvider(b,x){return Ge.registerDocumentFormattingEditProvider(k,Ot(b),x)},registerDocumentRangeFormattingEditProvider(b,x){return Ge.registerDocumentRangeFormattingEditProvider(k,Ot(b),x)},registerOnTypeFormattingEditProvider(b,x,_,...Se){return Ge.registerOnTypeFormattingEditProvider(k,Ot(b),x,[_].concat(Se))},registerDocumentSemanticTokensProvider(b,x,_){return Ge.registerDocumentSemanticTokensProvider(k,Ot(b),x,_)},registerDocumentRangeSemanticTokensProvider(b,x,_){return Ge.registerDocumentRangeSemanticTokensProvider(k,Ot(b),x,_)},registerSignatureHelpProvider(b,x,_,...Se){return typeof _=="object"?Ge.registerSignatureHelpProvider(k,Ot(b),x,_):Ge.registerSignatureHelpProvider(k,Ot(b),x,typeof _>"u"?[]:[_,...Se])},registerCompletionItemProvider(b,x,..._){return Ge.registerCompletionItemProvider(k,Ot(b),x,_)},registerInlineCompletionItemProvider(b,x,_){return x.handleDidShowCompletionItem&&M(k,"inlineCompletionsAdditions"),x.handleDidPartiallyAcceptCompletionItem&&M(k,"inlineCompletionsAdditions"),_&&M(k,"inlineCompletionsAdditions"),Ge.registerInlineCompletionsProvider(k,Ot(b),x,_)},get inlineCompletionsUnificationState(){return M(k,"inlineCompletionsAdditions"),Ge.inlineCompletionsUnificationState},onDidChangeCompletionsUnificationState(b,x,_){return M(k,"inlineCompletionsAdditions"),de(Ge.onDidChangeInlineCompletionsUnificationState)(b,x,_)},registerDocumentLinkProvider(b,x){return Ge.registerDocumentLinkProvider(k,Ot(b),x)},registerColorProvider(b,x){return Ge.registerColorProvider(k,Ot(b),x)},registerFoldingRangeProvider(b,x){return Ge.registerFoldingRangeProvider(k,Ot(b),x)},registerSelectionRangeProvider(b,x){return Ge.registerSelectionRangeProvider(k,b,x)},registerCallHierarchyProvider(b,x){return Ge.registerCallHierarchyProvider(k,b,x)},registerTypeHierarchyProvider(b,x){return Ge.registerTypeHierarchyProvider(k,b,x)},setLanguageConfiguration:(b,x)=>Ge.setLanguageConfiguration(k,b,x),getTokenInformationAtPosition(b,x){return M(k,"tokenInformation"),Cr.tokenAtPosition(b,x)},computeFullSyntaxHighlighting(b,x){return M(k,"documentSyntaxHighlighting"),Cr.computeFullSyntaxHighlighting(b,x)},get onDidChangeSyntaxHighlighting(){return M(k,"documentSyntaxHighlighting"),Cr.onDidChangeSyntaxHighlighting},registerInlayHintsProvider(b,x){return Ge.registerInlayHintsProvider(k,b,x)},createLanguageStatusItem(b,x){return Cr.createLanguageStatusItem(k,b,x)},registerDocumentDropEditProvider(b,x,_){return Ge.registerDocumentOnDropEditProvider(k,b,x,_)}},Z0={get activeTextEditor(){return ze.getActiveTextEditor()},get visibleTextEditors(){return ze.getVisibleTextEditors()},get activeTerminal(){return te.activeTerminal},get terminals(){return te.terminals},async showTextDocument(b,x,_){y.isUri(b)&&b.scheme===$.vscodeRemote&&!b.authority&&h.report("workspace.showTextDocument",k,"A URI of 'vscode-remote' scheme requires an authority.");let Se=await(y.isUri(b)?Promise.resolve(ww.openTextDocument(b)):Promise.resolve(b));return ze.showTextDocument(Se,x,_)},createTextEditorDecorationType(b){return ze.createTextEditorDecorationType(k,b)},onDidChangeActiveTextEditor(b,x,_){return de(ze.onDidChangeActiveTextEditor)(b,x,_)},onDidChangeVisibleTextEditors(b,x,_){return de(ze.onDidChangeVisibleTextEditors)(b,x,_)},onDidChangeTextEditorSelection(b,x,_){return de(ze.onDidChangeTextEditorSelection)(b,x,_)},onDidChangeTextEditorOptions(b,x,_){return de(ze.onDidChangeTextEditorOptions)(b,x,_)},onDidChangeTextEditorVisibleRanges(b,x,_){return de(ze.onDidChangeTextEditorVisibleRanges)(b,x,_)},onDidChangeTextEditorViewColumn(b,x,_){return de(ze.onDidChangeTextEditorViewColumn)(b,x,_)},onDidChangeTextEditorDiffInformation(b,x,_){return M(k,"textEditorDiffInformation"),de(ze.onDidChangeTextEditorDiffInformation)(b,x,_)},onDidCloseTerminal(b,x,_){return de(te.onDidCloseTerminal)(b,x,_)},onDidOpenTerminal(b,x,_){return de(te.onDidOpenTerminal)(b,x,_)},onDidChangeActiveTerminal(b,x,_){return de(te.onDidChangeActiveTerminal)(b,x,_)},onDidChangeTerminalDimensions(b,x,_){return M(k,"terminalDimensions"),de(te.onDidChangeTerminalDimensions)(b,x,_)},onDidChangeTerminalState(b,x,_){return de(te.onDidChangeTerminalState)(b,x,_)},onDidWriteTerminalData(b,x,_){return M(k,"terminalDataWriteEvent"),de(te.onDidWriteTerminalData)(b,x,_)},onDidExecuteTerminalCommand(b,x,_){return M(k,"terminalExecuteCommandEvent"),de(te.onDidExecuteTerminalCommand)(b,x,_)},onDidChangeTerminalShellIntegration(b,x,_){return de(se.onDidChangeTerminalShellIntegration)(b,x,_)},onDidStartTerminalShellExecution(b,x,_){return de(se.onDidStartTerminalShellExecution)(b,x,_)},onDidEndTerminalShellExecution(b,x,_){return de(se.onDidEndTerminalShellExecution)(b,x,_)},get state(){return I.getState()},onDidChangeWindowState(b,x,_){return de(I.onDidChangeWindowState)(b,x,_)},showInformationMessage(b,...x){return yb.showMessage(k,je.Info,b,x[0],x.slice(1))},showWarningMessage(b,...x){return yb.showMessage(k,je.Warning,b,x[0],x.slice(1))},showErrorMessage(b,...x){return yb.showMessage(k,je.Error,b,x[0],x.slice(1))},showQuickPick(b,x,_){return _i.showQuickPick(k,b,x,_)},showWorkspaceFolderPick(b){return _i.showWorkspaceFolderPick(b)},showInputBox(b,x){return _i.showInput(b,x)},showOpenDialog(b){return Tw.showOpenDialog(b)},showSaveDialog(b){return Tw.showSaveDialog(b)},createStatusBarItem(b,x,_){let Se,dt,Gt;return typeof b=="string"?(Se=b,dt=x,Gt=_):(dt=b,Gt=x),We.createStatusBarEntry(k,Se,dt,Gt)},setStatusBarMessage(b,x){return We.setStatusBarMessage(b,x)},withScmProgress(b){return h.report("window.withScmProgress",k,"Use 'withProgress' instead."),q.withProgress(k,{location:1},(x,_)=>b({report(Se){}}))},withProgress(b,x){return q.withProgress(k,b,x)},createOutputChannel(b,x){return rt.createOutputChannel(b,x,k)},createWebviewPanel(b,x,_,Se){return O.createWebviewPanel(k,b,x,_,Se)},createWebviewTextEditorInset(b,x,_,Se){return M(k,"editorInsets"),Cs.createWebviewEditorInset(b,x,_,Se,k)},createTerminal(b,x,_){if(typeof b=="object"){let Se=b;return!De(k,"terminalTitle")&&"titleTemplate"in b&&b.titleTemplate!==void 0&&(console.error(`[${k.identifier.value}] \`titleTemplate\` was provided to window.createTerminal but is ignored because the \`terminalTitle\` proposed API is not enabled.`),Se={...b,titleTemplate:void 0}),"pty"in Se?te.createExtensionTerminal(Se):te.createTerminalFromOptions(Se,$3(k,Se))}return te.createTerminal(b,x,_)},registerTerminalLinkProvider(b){return te.registerLinkProvider(b)},registerTerminalProfileProvider(b,x){return te.registerProfileProvider(k,b,x)},registerTerminalCompletionProvider(b,...x){return M(k,"terminalCompletionProvider"),te.registerTerminalCompletionProvider(k,b,...x)},registerTerminalQuickFixProvider(b,x){return M(k,"terminalQuickFixProvider"),te.registerTerminalQuickFixProvider(b,k.identifier.value,x)},registerTreeDataProvider(b,x){return Oe.registerTreeDataProvider(b,x,k)},createTreeView(b,x){return Oe.createTreeView(b,x,k)},registerWebviewPanelSerializer:(b,x)=>O.registerWebviewPanelSerializer(k,b,x),registerCustomEditorProvider:(b,x,_={})=>W.registerCustomEditorProvider(k,b,x,_),registerFileDecorationProvider(b){return Ze.registerFileDecorationProvider(b,k)},registerUriHandler(b){return w.registerUriHandler(k,b)},createQuickPick(){return _i.createQuickPick(k)},createInputBox(){return _i.createInputBox(k)},get activeColorTheme(){return Yg.activeColorTheme},onDidChangeActiveColorTheme(b,x,_){return de(Yg.onDidChangeActiveColorTheme)(b,x,_)},registerWebviewViewProvider(b,x,_){return K.registerWebviewViewProvider(k,b,x,_?.webviewOptions)},get activeNotebookEditor(){return lt.activeNotebookEditor},onDidChangeActiveNotebookEditor(b,x,_){return de(lt.onDidChangeActiveNotebookEditor)(b,x,_)},get visibleNotebookEditors(){return lt.visibleNotebookEditors},get onDidChangeVisibleNotebookEditors(){return de(lt.onDidChangeVisibleNotebookEditors)},onDidChangeNotebookEditorSelection(b,x,_){return de(Ss.onDidChangeNotebookEditorSelection)(b,x,_)},onDidChangeNotebookEditorVisibleRanges(b,x,_){return de(Ss.onDidChangeNotebookEditorVisibleRanges)(b,x,_)},showNotebookDocument(b,x){return lt.showNotebookDocument(b,x)},registerExternalUriOpener(b,x,_){return M(k,"externalUriOpener"),He.registerExternalUriOpener(k.identifier,b,x,_)},registerProfileContentHandler(b,x){return M(k,"profileContentHandlers"),Sn.registerProfileContentHandler(k,b,x)},registerQuickDiffProvider(b,x,_,Se,dt){return M(k,"quickDiffProvider"),yo.registerQuickDiffProvider(k,Ot(b),x,_,Se,dt)},createSourceControlDiffInformation(b){return M(k,"textEditorDiffInformation"),yo.createSourceControlDiffInformation(b)},get linkPresentationRules(){return M(k,"linkPresentation"),X.linkPresentationRules},get onDidChangeLinkPresentationRules(){return M(k,"linkPresentation"),X.onDidChangeLinkPresentationRules},createLinkPresentationWatcher(b,x){return M(k,"linkPresentation"),X.createLinkPresentationWatcher(k,b,x)},registerLinkPresentationProvider(b,x){return M(k,"linkPresentation"),X.registerLinkPresentationProvider(k,b,x)},createAgentEditorComments(b){return M(k,"agentEditorComments"),Ra.createAgentEditorComments(b)},get tabGroups(){return A.tabGroups},registerShareProvider(b,x){return M(k,"shareProvider"),Xt.registerShareProvider(Ot(b),x)},get nativeHandle(){return M(k,"nativeWindowHandle"),I.nativeHandle},createChatStatusItem:b=>(M(k,"chatStatusItem"),K0.createChatStatusItem(k,b)),get activeChatPanelSessionResource(){return M(k,"chatParticipantPrivate"),Qe.activeChatPanelSessionResource},onDidChangeActiveChatPanelSessionResource:(b,x,_)=>(M(k,"chatParticipantPrivate"),de(Qe.onDidChangeActiveChatPanelSessionResource)(b,x,_)),get browserTabs(){return M(k,"browser"),Rt.browserTabs},onDidOpenBrowserTab(b,x,_){return M(k,"browser"),de(Rt.onDidOpenBrowserTab)(b,x,_)},onDidCloseBrowserTab(b,x,_){return M(k,"browser"),de(Rt.onDidCloseBrowserTab)(b,x,_)},get activeBrowserTab(){return M(k,"browser"),Rt.activeBrowserTab},onDidChangeActiveBrowserTab(b,x,_){return M(k,"browser"),de(Rt.onDidChangeActiveBrowserTab)(b,x,_)},onDidChangeBrowserTabState(b,x,_){return M(k,"browser"),de(Rt.onDidChangeBrowserTabState)(b,x,_)},openBrowserTab(b,x){return M(k,"browser"),Rt.openBrowserTab(b,x)}},ww={get rootPath(){return h.report("workspace.rootPath",k,"Please use 'workspace.workspaceFolders' instead. More details: https://aka.ms/vscode-eliminating-rootpath"),r.getPath()},set rootPath(b){throw new Jr("rootPath")},getWorkspaceFolder(b){return r.getWorkspaceFolder(b)},get workspaceFolders(){return r.getWorkspaceFolders()},get name(){return r.name},set name(b){throw new Jr("name")},get workspaceFile(){return r.workspaceFile},set workspaceFile(b){throw new Jr("workspaceFile")},get isAgentSessionsWorkspace(){return M(k,"agentSessionsWorkspace"),!!t.environment.isSessionsWindow},updateWorkspaceFolders:(b,x,..._)=>r.updateWorkspaceFolders(k,b,x||0,..._),onDidChangeWorkspaceFolders:function(b,x,_){return de(r.onDidChangeWorkspace)(b,x,_)},asRelativePath:(b,x)=>r.getRelativePath(b,x),findFiles:(b,x,_,Se)=>r.findFiles(b,x,_,k.identifier,Se),findFiles2:(b,x,_)=>(M(k,"findFiles2"),r.findFiles2(b,x,k.identifier,_)),findTextInFiles:(b,x,_,Se)=>{M(k,"findTextInFiles");let dt,Gt;return typeof x=="object"?(dt=x,Gt=_):(dt={},Gt=x,Se=_),r.findTextInFiles(b,dt||{},Gt,k.identifier,Se)},findTextInFiles2:(b,x,_)=>(M(k,"findTextInFiles2"),M(k,"textSearchProvider2"),r.findTextInFiles2(b,x,k.identifier,_)),getTextDiff(b,x,_,Se){M(k,"documentDiff");let dt=d.getProxy(N.MainThreadDocumentDiff);if(Se?.isCancellationRequested){let Wo=new ct;return{changes:Os.EMPTY,complete:Promise.reject(Wo)}}let Gt=dt.$computeDocumentDiff(b.uri,x.uri,_?.ignoreTrimWhitespace??!1,_?.maxComputationTimeMs??5e3,_?.computeMoves??!1),iO=(Se?Bi(Gt,Se):Gt).then(Wo=>{if(!Wo)throw new Error("Could not compute diff. Make sure both documents are available.");return Wo}),sO=Wo=>({originalRange:B.to(Wo.originalRange),modifiedRange:B.to(Wo.modifiedRange),innerChanges:Wo.innerChanges?.map(Oa=>({originalRange:B.to(Oa.originalRange),modifiedRange:B.to(Oa.modifiedRange)}))});return{changes:new Os(async Wo=>{let Oa=await iO;Wo.emitMany(Oa.changes.map(sO))}),complete:iO.then(Wo=>({identical:Wo.identical,mayBeIncomplete:Wo.quitEarly,moves:Wo.moves.map(Oa=>({originalRange:B.to(Oa.originalRange),modifiedRange:B.to(Oa.modifiedRange),changes:Oa.changes.map(sO)}))}))}},save:b=>r.save(b),saveAs:b=>r.saveAs(b),saveAll:b=>r.saveAll(b),applyEdit(b,x){return Ma.applyWorkspaceEdit(b,k,x)},createFileSystemWatcher:(b,x,_,Se)=>{let dt={ignoreCreateEvents:!!x,ignoreChangeEvents:!!_,ignoreDeleteEvents:!!Se};return Tr.createFileSystemWatcher(r,Ib,e,k,b,dt)},get textDocuments(){return Ae.getAllDocumentData().map(b=>b.document)},set textDocuments(b){throw new Jr("textDocuments")},openTextDocument(b,x){let _;if(x=x??b,typeof b=="string")_=Promise.resolve(y.file(b));else if(y.isUri(b))_=Promise.resolve(b);else if(!x||typeof x=="object")_=Ae.createDocumentData(x);else throw new Error("illegal argument - uriOrFileNameOrOptions");return _.then(Se=>(g.trace(`openTextDocument from ${k.identifier}`),Se.scheme===$.vscodeRemote&&!Se.authority&&h.report("workspace.openTextDocument",k,"A URI of 'vscode-remote' scheme requires an authority."),Ae.ensureDocumentData(Se,x).then(dt=>dt.document)))},onDidOpenTextDocument:(b,x,_)=>de(Ae.onDidAddDocument)(b,x,_),onDidCloseTextDocument:(b,x,_)=>de(Ae.onDidRemoveDocument)(b,x,_),onDidChangeTextDocument:(b,x,_)=>De(k,"textDocumentChangeReason")?de(Ae.onDidChangeDocumentWithReason)(b,x,_):de(Ae.onDidChangeDocument)(b,x,_),onDidSaveTextDocument:(b,x,_)=>de(Ae.onDidSaveDocument)(b,x,_),onWillSaveTextDocument:(b,x,_)=>de(Nt.getOnWillSaveTextDocumentEvent(k))(b,x,_),get notebookDocuments(){return lt.notebookDocuments.map(b=>b.apiNotebook)},async openNotebookDocument(b,x){let _;if(y.isUri(b))_=b,await lt.openNotebookDocument(b);else if(typeof b=="string")_=y.revive(await lt.createNotebookDocument({viewType:b,content:x}));else throw new Error("Invalid arguments");return lt.getNotebookDocument(_).apiNotebook},onDidSaveNotebookDocument(b,x,_){return de(vo.onDidSaveNotebookDocument)(b,x,_)},onDidChangeNotebookDocument(b,x,_){return de(vo.onDidChangeNotebookDocument)(b,x,_)},onWillSaveNotebookDocument(b,x,_){return de(Qr.getOnWillSaveNotebookDocumentEvent(k))(b,x,_)},get onDidOpenNotebookDocument(){return de(lt.onDidOpenNotebookDocument)},get onDidCloseNotebookDocument(){return de(lt.onDidCloseNotebookDocument)},registerNotebookSerializer(b,x,_,Se){return lt.registerNotebookSerializer(k,b,x,_,De(k,"notebookLiveShare")?Se:void 0)},onDidChangeConfiguration:(b,x,_)=>de(Ib.onDidChangeConfiguration)(b,x,_),getConfiguration(b,x){return x=arguments.length===1?void 0:x,Ib.getConfiguration(b,x,k)},registerTextDocumentContentProvider(b,x){return At.registerTextDocumentContentProvider(b,x)},registerTaskProvider:(b,x)=>(h.report("window.registerTaskProvider",k,"Use the corresponding function on the 'tasks' namespace instead"),be.registerTaskProvider(k,b,x)),registerFileSystemProvider(b,x,_){return fu(Jg.registerFileSystemProvider(k,b,x,_),n.addFileSystemProvider(b,x,_))},get fs(){return n.value},registerFileSearchProvider:(b,x)=>(M(k,"fileSearchProvider"),ae.registerFileSearchProviderOld(b,x)),registerTextSearchProvider:(b,x)=>(M(k,"textSearchProvider"),ae.registerTextSearchProviderOld(b,x)),registerAITextSearchProvider:(b,x)=>(M(k,"aiTextSearchProvider"),M(k,"textSearchProvider2"),ae.registerAITextSearchProvider(b,x)),registerFileSearchProvider2:(b,x)=>(M(k,"fileSearchProvider2"),ae.registerFileSearchProvider(b,x)),registerTextSearchProvider2:(b,x)=>(M(k,"textSearchProvider2"),ae.registerTextSearchProvider(b,x)),registerRemoteAuthorityResolver:(b,x)=>(M(k,"resolvers"),o.registerRemoteAuthorityResolver(b,x)),registerResourceLabelFormatter:b=>(M(k,"resolvers"),bb.$registerResourceLabelFormatter(b)),getRemoteExecServer:b=>(M(k,"resolvers"),o.getRemoteExecServer(b)),onDidCreateFiles:(b,x,_)=>de(Tr.onDidCreateFile)(b,x,_),onDidDeleteFiles:(b,x,_)=>de(Tr.onDidDeleteFile)(b,x,_),onDidRenameFiles:(b,x,_)=>de(Tr.onDidRenameFile)(b,x,_),onWillCreateFiles:(b,x,_)=>de(Tr.getOnWillCreateFileEvent(k))(b,x,_),onWillDeleteFiles:(b,x,_)=>de(Tr.getOnWillDeleteFileEvent(k))(b,x,_),onWillRenameFiles:(b,x,_)=>de(Tr.getOnWillRenameFileEvent(k))(b,x,_),openTunnel:b=>(M(k,"tunnels"),v.openTunnel(k,b).then(x=>{if(!x)throw new Error("cannot open tunnel");return x})),get tunnels(){return M(k,"tunnels"),v.getTunnels()},onDidChangeTunnels:(b,x,_)=>(M(k,"tunnels"),de(v.onDidChangeTunnels)(b,x,_)),registerPortAttributesProvider:(b,x)=>(M(k,"portsAttributes"),v.registerPortsAttributesProvider(b,x)),registerTunnelProvider:(b,x)=>(M(k,"tunnelFactory"),v.registerTunnelProvider(b,x)),registerTimelineProvider:(b,x)=>(M(k,"timeline"),vd.registerTimelineProvider(b,x,k.identifier,Z.converter)),get isTrusted(){return r.trusted},requestResourceTrust:b=>(M(k,"workspaceTrust"),r.requestResourceTrust(b)),requestWorkspaceTrust:b=>(M(k,"workspaceTrust"),r.requestWorkspaceTrust(b)),isResourceTrusted:b=>(M(k,"workspaceTrust"),r.isResourceTrusted(b)),onDidChangeWorkspaceTrustedFolders:(b,x,_)=>(M(k,"workspaceTrust"),de(r.onDidChangeWorkspaceTrustedFolders)(b,x,_)),onDidGrantWorkspaceTrust:(b,x,_)=>de(r.onDidGrantWorkspaceTrust)(b,x,_),registerEditSessionIdentityProvider:(b,x)=>(M(k,"editSessionIdentityProvider"),r.registerEditSessionIdentityProvider(b,x)),onWillCreateEditSessionIdentity:(b,x,_)=>(M(k,"editSessionIdentityProvider"),de(r.getOnWillCreateEditSessionIdentityEvent(k))(b,x,_)),registerCanonicalUriProvider:(b,x)=>(M(k,"canonicalUriProvider"),r.registerCanonicalUriProvider(b,x)),getCanonicalUri:(b,x,_)=>(M(k,"canonicalUriProvider"),r.provideCanonicalUri(b,x,_)),decode(b,x){return r.decode(b,x)},encode(b,x){return r.encode(b,x)}},eO={get inputBox(){return h.report("scm.inputBox",k,"Use 'SourceControl.inputBox' instead"),Da.getLastInputBox(k)},createSourceControl(b,x,_,Se,dt,Gt){return(Se||dt||Gt)&&M(k,"scmProviderOptions"),Da.createSourceControl(k,b,x,_,Se,dt,Gt)}},tO={createCommentController(b,x){return Kn.createCommentController(k,b,x)}},nO={get activeDebugSession(){return Q.activeDebugSession},get activeDebugConsole(){return Q.activeDebugConsole},get breakpoints(){return Q.breakpoints},get activeStackItem(){return Q.activeStackItem},registerDebugVisualizationProvider(b,x){return M(k,"debugVisualization"),Q.registerDebugVisualizationProvider(k,b,x)},registerDebugVisualizationTreeProvider(b,x){return M(k,"debugVisualization"),Q.registerDebugVisualizationTree(k,b,x)},onDidStartDebugSession(b,x,_){return de(Q.onDidStartDebugSession)(b,x,_)},onDidTerminateDebugSession(b,x,_){return de(Q.onDidTerminateDebugSession)(b,x,_)},onDidChangeActiveDebugSession(b,x,_){return de(Q.onDidChangeActiveDebugSession)(b,x,_)},onDidReceiveDebugSessionCustomEvent(b,x,_){return de(Q.onDidReceiveDebugSessionCustomEvent)(b,x,_)},onDidChangeBreakpoints(b,x,_){return de(Q.onDidChangeBreakpoints)(b,x,_)},onDidChangeActiveStackItem(b,x,_){return de(Q.onDidChangeActiveStackItem)(b,x,_)},registerDebugConfigurationProvider(b,x,_){return Q.registerDebugConfigurationProvider(b,x,_||1)},registerDebugAdapterDescriptorFactory(b,x){return Q.registerDebugAdapterDescriptorFactory(k,b,x)},registerDebugAdapterTrackerFactory(b,x){return Q.registerDebugAdapterTrackerFactory(b,x)},startDebugging(b,x,_){return!_||typeof _=="object"&&"configuration"in _?Q.startDebugging(b,x,{parentSession:_}):Q.startDebugging(b,x,_||{})},stopDebugging(b){return Q.stopDebugging(b)},addBreakpoints(b){return Q.addBreakpoints(b)},removeBreakpoints(b){return Q.removeBreakpoints(b)},asDebugSourceUri(b,x){return Q.asDebugSourceUri(b,x)}},oO={registerTaskProvider:(b,x)=>be.registerTaskProvider(k,b,x),fetchTasks:b=>be.fetchTasks(b),executeTask:b=>be.executeTask(k,b),get taskExecutions(){return be.taskExecutions},onDidStartTask:(b,x,_)=>{let Se=dt=>{De(k,"taskExecutionTerminal")||dt?.execution?.terminal!==void 0&&(dt.execution.terminal=void 0);let Gt={...dt,execution:dt.execution};return b.call(x,Gt)};return de(be.onDidStartTask)(Se,x,_)},onDidEndTask:(b,x,_)=>de(be.onDidEndTask)(b,x,_),onDidStartTaskProcess:(b,x,_)=>de(be.onDidStartTaskProcess)(b,x,_),onDidEndTaskProcess:(b,x,_)=>de(be.onDidEndTaskProcess)(b,x,_),onDidStartTaskProblemMatchers:(b,x,_)=>(M(k,"taskProblemMatcherStatus"),de(be.onDidStartTaskProblemMatchers)(b,x,_)),onDidEndTaskProblemMatchers:(b,x,_)=>(M(k,"taskProblemMatcherStatus"),de(be.onDidEndTaskProblemMatchers)(b,x,_))},oe={createNotebookController(b,x,_,Se,dt){return Pi.createNotebookController(k,b,x,_,Se,De(k,"notebookMessaging")?dt:void 0)},registerNotebookCellStatusBarItemProvider:(b,x)=>lt.registerNotebookCellStatusBarItemProvider(k,b,x),createRendererMessaging(b){return jr.createRendererMessaging(k,b)},createNotebookControllerDetectionTask(b){return M(k,"notebookKernelSource"),Pi.createNotebookControllerDetectionTask(k,b)},registerKernelSourceActionProvider(b,x){return M(k,"notebookKernelSource"),Pi.registerKernelSourceActionProvider(k,b,x)}},VB={t(...b){if(typeof b[0]=="string"){let x=b.shift(),_=!b||typeof b[0]!="object"?b:b[0];return $e.getMessage(k.identifier.value,{message:x,args:_})}return $e.getMessage(k.identifier.value,b[0])},get bundle(){return $e.getBundle(k.identifier.value)},get uri(){return $e.getBundleUri(k.identifier.value)}},BB={transferActiveChat(b){return M(k,"interactive"),Qe.transferActiveChat(b)}},WB={getRelatedInformation(b,x){return M(k,"aiRelatedInformation"),Tn.getRelatedInformation(k,b,x)},registerRelatedInformationProvider(b,x){return M(k,"aiRelatedInformation"),Tn.registerRelatedInformationProvider(k,b,x)},registerEmbeddingVectorProvider(b,x){return M(k,"aiRelatedInformation"),so.registerEmbeddingVectorProvider(k,b,x)},registerSettingsSearchProvider(b){return M(k,"aiSettingsSearch"),Bo.registerSettingsSearchProvider(k,b)}},ef={registerMappedEditsProvider(b,x){return M(k,"mappedEditsProvider"),{dispose(){}}},registerMappedEditsProvider2(b){return M(k,"mappedEditsProvider"),du.registerMappedEditsProvider(k,b)},createChatParticipant(b,x){return Qe.createChatAgent(k,b,x)},createDynamicChatParticipant(b,x,_){return M(k,"chatParticipantPrivate"),Qe.createDynamicChatAgent(k,b,x,_)},registerChatParticipantDetectionProvider(b){return M(k,"chatParticipantPrivate"),Qe.registerChatParticipantDetectionProvider(k,b)},onDidDisposeChatSession:(b,x,_)=>(M(k,"chatParticipantPrivate"),de(Qe.onDidDisposeChatSession)(b,x,_)),updateQuotas:b=>{M(k,"chatParticipantPrivate"),Mn.updateQuotas(b)},registerChatSessionItemProvider:(b,x)=>(M(k,"chatSessionsProvider"),h.report("chat.registerChatSessionItemProvider",k,"Please migrate to the new chat session controller API",{usageId:b}),Kt.registerChatSessionItemProvider(k,b,x)),createChatSessionItemController:(b,x)=>(M(k,"chatSessionsProvider"),Kt.createChatSessionItemController(k,b,x)),registerChatSessionContentProvider(b,x,_,Se){return M(k,"chatSessionsProvider"),Kt.registerChatSessionContentProvider(k,b,_,x,Se)},registerChatOutputRenderer:(b,x)=>(M(k,"chatOutputRenderer"),St.registerChatOutputRenderer(k,b,x)),registerChatWorkspaceContextProvider(b,x){return M(k,"chatContextProvider"),Lo.registerChatWorkspaceContextProvider(`${k.id}-${b}`,x)},registerChatAttachContextProvider(b,x){return M(k,"chatContextProvider"),Lo.registerChatAttachContextProvider(`${k.id}-${b}`,x)},registerChatTabContextProvider(b,x,_){return M(k,"chatContextProvider"),Lo.registerChatTabContextProvider(b,`${k.id}-${x}`,_)},registerChatExplicitContextProvider(b,x){return M(k,"chatContextProvider"),{dispose:()=>{}}},registerChatResourceContextProvider(b,x,_){return M(k,"chatContextProvider"),{dispose:()=>{}}},registerCustomAgentProvider(b){return M(k,"chatPromptFiles"),Qe.registerPromptFileProvider(k,"agent",b)},registerInstructionsProvider(b){return M(k,"chatPromptFiles"),Qe.registerPromptFileProvider(k,"instructions",b)},registerPromptFileProvider(b){return M(k,"chatPromptFiles"),Qe.registerPromptFileProvider(k,"prompt",b)},registerSkillProvider(b){return M(k,"chatPromptFiles"),Qe.registerPromptFileProvider(k,"skill",b)},registerHookProvider(b){return M(k,"chatPromptFiles"),Qe.registerPromptFileProvider(k,"hook",b)},registerChatDebugLogProvider(b){return M(k,"chatDebug"),Zt.registerChatDebugLogProvider(b)},onDidReceiveChatDebugEvent:(b,x,_)=>(M(k,"chatDebug"),Zt.onDidAddCoreEvent(b,x,_)),getCustomAgents(b){return M(k,"chatPromptFiles"),Qe.provideCustomAgents(b)},onDidChangeCustomAgents:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangeCustomAgents(b,x,_)),getInstructions(b){return M(k,"chatPromptFiles"),Qe.provideInstructions(b)},onDidChangeInstructions:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangeInstructions(b,x,_)),getSkills(b){return M(k,"chatPromptFiles"),Qe.provideSkills(b)},onDidChangeSkills:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangeSkills(b,x,_)),getSlashCommands(b){return M(k,"chatPromptFiles"),Qe.provideSlashCommands(b)},onDidChangeSlashCommands:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangeSlashCommands(b,x,_)),getHooks(b){return M(k,"chatPromptFiles"),Qe.provideHooks(b)},onDidChangeHooks:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangeHooks(b,x,_)),getPlugins(b){return M(k,"chatPromptFiles"),Qe.providePlugins(b)},onDidChangePlugins:(b,x,_)=>(M(k,"chatPromptFiles"),Qe.onDidChangePlugins(b,x,_)),registerChatSessionCustomizationProvider(b,x,_){return M(k,"chatSessionCustomizationProvider"),Qe.registerChatSessionCustomizationProvider(k,b,x,_)},createInputNotification(b){return M(k,"chatInputNotification"),G0.createInputNotification(k,b)}},$B={selectChatModels:b=>z.selectLanguageModels(k,b??{}),onDidChangeChatModels:(b,x,_)=>z.onDidChangeProviders(b,x,_),registerLanguageModelChatProvider:(b,x)=>z.registerLanguageModelChatProvider(k,b,x),get isModelProxyAvailable(){return M(k,"languageModelProxy"),z.isModelProxyAvailable},onDidChangeModelProxyAvailability:(b,x,_)=>(M(k,"languageModelProxy"),z.onDidChangeModelProxyAvailability(b,x,_)),getModelProxy:()=>(M(k,"languageModelProxy"),z.getModelProxy(k)),registerLanguageModelProxyProvider:b=>(M(k,"chatParticipantPrivate"),z.registerLanguageModelProxyProvider(k,b)),get embeddingModels(){return M(k,"embeddings"),kt.embeddingsModels},onDidChangeEmbeddingModels:(b,x,_)=>(M(k,"embeddings"),kt.onDidChange(b,x,_)),registerEmbeddingsProvider(b,x){return M(k,"embeddings"),kt.registerEmbeddingsProvider(k,b,x)},async computeEmbeddings(b,x,_){return M(k,"embeddings"),kt.computeEmbeddings(b,x,_)},registerTool(b,x){return Cn.registerTool(k,b,x)},registerToolDefinition(b,x){return Cn.registerToolDefinition(k,b,x)},invokeTool(b,x,_){return typeof b!="string"&&M(k,"chatParticipantAdditions"),Cn.invokeTool(k,b,x,_)},get tools(){return Cn.getTools(k)},fileIsIgnored(b,x){return z.fileIsIgnored(k,b,x)},registerIgnoredFileProvider(b){return z.registerIgnoredFileProvider(k,b)},registerMcpServerDefinitionProvider(b,x){return j.registerMcpConfigurationProvider(k,b,x)},onDidChangeMcpServerDefinitions:(...b)=>(M(k,"mcpServerDefinitions"),de(j.onDidChangeMcpServerDefinitions)(...b)),get mcpServerDefinitions(){return M(k,"mcpServerDefinitions"),j.mcpServerDefinitions},startMcpGateway(b){return M(k,"mcpServerDefinitions"),j.startMcpGateway(b)},onDidChangeChatRequestTools(...b){return M(k,"chatParticipantAdditions"),de(Qe.onDidChangeChatRequestTools)(...b)}},zB={registerSpeechProvider(b,x){return M(k,"speech"),it.registerProvider(k.identifier,b,x)}};return{version:t.version,ai:WB,authentication:j0,commands:Q0,comments:tO,chat:ef,debug:nO,env:Ew,extensions:Y0,interactive:BB,l10n:VB,languages:X0,lm:$B,notebooks:oe,scm:eO,speech:zB,tasks:oO,tests:J0,window:Z0,workspace:ww,Breakpoint:ea,TerminalOutputAnchor:iR,ChatResultFeedbackKind:FS,ChatVariableLevel:AR,ChatCompletionItem:Ux,ChatReferenceDiagnostic:Gl,CallHierarchyIncomingCall:Ep,CallHierarchyItem:Ol,CallHierarchyOutgoingCall:wp,CancellationError:ct,CancellationTokenSource:Re,CandidatePortSource:uk,CodeAction:es,CodeActionKind:bt,CodeActionTriggerKind:Jx,CodeLens:yl,Color:mi,ColorInformation:Tl,ColorPresentation:El,ColorThemeKind:_S,CommentMode:xR,CommentState:SR,CommentThreadCollapsibleState:xS,CommentThreadState:SS,CommentThreadApplicability:CS,CommentThreadFocus:TS,CompletionItem:Sl,CompletionItemKind:zh,CompletionItemTag:Zx,CompletionList:pi,CompletionTriggerKind:Xx,ConfigurationTarget:fS,CustomExecution:Ic,DebugAdapterExecutable:wl,DebugAdapterInlineImplementation:na,DebugAdapterNamedPipeServer:kl,DebugAdapterServer:ta,DebugConfigurationProviderTriggerKind:HD,DebugConsoleMode:ES,DebugVisualization:Dx,DecorationRangeBehavior:dS,Diagnostic:Js,DiagnosticRelatedInformation:Ji,DiagnosticSeverity:dc,DiagnosticTag:Vh,Disposable:Ie,DocumentHighlight:vl,DocumentHighlightKind:Qx,MultiDocumentHighlight:bl,DocumentLink:Cl,DocumentSymbol:Ir,EndOfLine:pc,EnvironmentVariableMutatorType:jx,EvaluatableExpression:Pl,InlineValueText:_l,InlineValueVariableLookup:Dl,InlineValueEvaluatableExpression:Rl,InlineCompletionTriggerKind:hS,InlineCompletionsDisposeReasonKind:vS,EventEmitter:T,ExtensionKind:PS,ExtensionMode:OS,ExternalUriOpenerPriority:PR,FileChangeType:yS,FileDecoration:Sc,FileDecoration2:Sc,FileSystemError:gt,FileType:Du,FilePermission:Bf,FoldingRange:Cp,FoldingRangeKind:IS,FunctionBreakpoint:hi,InlineCompletionItem:yp,InlineCompletionList:Ip,Hover:mc,VerboseHover:hl,HoverVerbosityAction:sR,IndentAction:x1,Location:zt,MarkdownString:Bt,OverviewRulerLane:y_,ParameterInformation:hp,PortAutoForwardAction:DR,Position:we,ProcessExecution:ns,ProgressLocation:Kh,QuickInputButtonLocation:CR,QuickInputButtons:Zi,Range:he,RelativePattern:rs,Selection:Fn,SelectionRange:ts,SemanticTokens:vi,SemanticTokensBuilder:_x,SemanticTokensEdit:_p,SemanticTokensEdits:Nl,SemanticTokensLegend:xc,ShellExecution:gi,ShellQuoting:hR,SignatureHelp:bp,SignatureHelpTriggerKind:aR,SignatureInformation:vp,SnippetString:Hn,SourceBreakpoint:fi,StandardTokenType:Gh,SyntaxHighlightingTokenFontStyle:wR,StatusBarAlignment:rS,SymbolInformation:yr,SymbolKind:fp,SymbolTag:Wh,Task:Rn,TaskEventKind:gR,TaskGroup:In,TaskPanelKind:fR,TaskRevealKind:mR,TaskRunOn:vR,TaskScope:pS,TerminalLink:yx,TerminalQuickFixTerminalCommand:xx,TerminalQuickFixOpener:Ix,TerminalLocation:uR,TerminalProfile:Sx,TerminalExitReason:dR,TerminalShellExecutionCommandLineConfidence:uS,TerminalCompletionItem:Cx,TerminalCompletionItemKind:pR,TerminalCompletionList:Tx,TerminalShellType:cR,TextDocumentSaveReason:sS,TextEdit:Dn,SnippetTextEdit:Ys,TextEditorCursorStyle:g_,TextEditorChangeKind:qh,TextEditorLineNumbersStyle:iS,TextEditorRevealType:aS,TextEditorSelectionChangeKind:Rc,SyntaxTokenType:Mc,TextDocumentChangeReason:lS,ThemeColor:Zs,ThemeIcon:ln,TreeItem:os,TreeItemCheckboxState:gS,TreeItemCollapsibleState:mS,TypeHierarchyItem:Ul,UIKind:Ub,Uri:y,ViewColumn:oS,WorkspaceEdit:tr,DocumentPasteTriggerKind:yR,DocumentDropEdit:xp,DocumentDropOrPasteEditKind:Hr,DocumentPasteEdit:kx,InlayHint:xl,InlayHintLabelPart:Il,InlayHintKind:lR,RemoteAuthorityResolverError:ss,ResolvedAuthority:bx,ManagedResolvedAuthority:Al,SourceControlInputBoxValidationType:cS,ExtensionRuntime:LS,TimelineItem:Tp,NotebookRange:qn,NotebookCellKind:Bh,NotebookCellExecutionState:TR,NotebookCellData:Yi,NotebookData:cc,NotebookRendererScript:Dp,NotebookCellStatusBarAlignment:DS,NotebookEditorRevealType:RS,NotebookCellOutput:Xi,NotebookCellOutputItem:uc,CellErrorStackFrame:Rx,NotebookCellStatusBarItem:Mx,NotebookControllerAffinity:ER,NotebookControllerAffinity2:MS,NotebookEdit:Do,NotebookKernelSourceAction:Ax,NotebookVariablesRequestKind:AS,PortAttributes:Lx,LinkedEditingRanges:Ox,TestResultState:kR,TestRunRequest:Ml,TestMessage:is,TestMessageStackFrame:Nx,TestTag:oa,TestRunProfileKind:NS,TextSearchCompleteMessageType:vv,DataTransfer:Fr,DataTransferItem:gc,TestCoverageCount:yc,FileCoverage:ra,StatementCoverage:Mp,BranchCoverage:Ap,DeclarationCoverage:Op,WorkspaceTrustState:_R,LanguageStatusSeverity:Yx,QuickPickItemKind:wS,InputBoxValidationSeverity:kS,TabInputText:Fl,TabInputTextDiff:ia,TabInputTextMerge:Lp,TabInputCustom:Hl,TabInputNotebook:Vl,TabInputNotebookDiff:Bl,TabInputWebview:Np,TabInputTerminal:Up,TabInputInteractiveWindow:Fp,TabInputChat:Hp,TabInputTextMultiDiff:Vp,TelemetryTrustedValue:ml,LogLevel:Hd,EditSessionIdentityMatch:S1,InteractiveSessionVoteDirection:RR,ChatCopyKind:MR,ChatSessionChangedFile:qx,ChatEditingSessionActionOutcome:US,InteractiveEditorResponseFeedbackKind:LR,DebugStackFrame:kp,DebugThread:Pp,RelatedInformationType:$R,SpeechToTextStatus:qR,TextToSpeechStatus:KR,PartialAcceptTriggerKind:eS,InlineCompletionEndOfLifeReasonKind:tS,InlineCompletionDisplayLocationKind:nS,KeywordRecognitionStatus:GR,ChatImageMimeType:WR,ChatResponseMarkdownPart:sa,ChatResponseFileTreePart:la,ChatResponseAnchorPart:ls,ChatResponseProgressPart:Ec,ChatResponseProgressPart2:Wl,ChatResponseThinkingProgressPart:bi,ChatResponseHookPart:da,ChatResponseVoiceProgressPart:$l,ChatResponseAutoModeResolutionPart:ds,ChatResponseReferencePart:Vr,ChatResponseReferencePart2:Vr,ChatResponseCodeCitationPart:ma,ChatResponseCodeblockUriPart:pa,ChatResponseWarningPart:cs,ChatResponseInfoPart:ca,ChatResponseTextEditPart:ps,ChatResponseNotebookEditPart:fa,ChatResponseWorkspaceEditPart:Kl,ChatResponseMarkdownWithVulnerabilitiesPart:as,ChatResponseCommandButtonPart:ua,ChatResponseConfirmationPart:aa,ChatQuestion:Wp,ChatQuestionType:HS,ChatResponseQuestionCarouselPart:us,ChatResponseMovePart:ga,ChatResponseExtensionsPart:zl,ChatResponseExternalEditPart:Tc,ChatResponsePullRequestPart:ql,ChatResponseMultiDiffPart:Cc,ChatResponseReferencePartStatusKind:FR,ChatResponseClearToPreviousToolInvocationReason:HR,ChatRequestTurn:ms,ChatRequestTurn2:ms,ChatResponseTurn:$p,ChatResponseTurn2:Hx,ChatSubagentToolInvocationData:Bp,ChatToolInvocationPart:wc,ChatLocation:WS,ChatSessionStatus:NR,ChatSessionCustomizationType:Br,ChatDebugLogLevel:UR,ChatDebugToolCallResult:$S,ChatDebugHookResult:zS,ChatDebugToolCallEvent:zp,ChatDebugModelTurnEvent:qp,ChatDebugGenericEvent:Kp,ChatDebugSubagentInvocationEvent:Gp,ChatDebugUserMessageEvent:jp,ChatDebugAgentResponseEvent:Qp,ChatDebugMessageSection:kc,ChatDebugEventTextContent:Vx,ChatDebugMessageContentType:qS,ChatDebugEventMessageContent:Bx,ChatDebugEventToolCallContent:Wx,ChatDebugEventModelTurnContent:$x,ChatDebugEventHookContent:zx,ChatRequestEditorData:Jp,ChatRequestNotebookData:Yp,ChatReferenceBinaryData:Pc,ChatRequestEditedFileEventKind:OR,LanguageModelChatMessageRole:Qh,LanguageModelChatMessage:Xp,LanguageModelChatMessage2:Zp,LanguageModelToolResultPart:gs,LanguageModelToolResultPart2:gs,LanguageModelTextPart:qt,LanguageModelTextPart2:qt,LanguageModelPartAudience:KS,ToolResultAudience:KS,LanguageModelToolCallPart:Wr,LanguageModelThinkingPart:yi,LanguageModelError:nr,LanguageModelToolResult:jl,LanguageModelToolResult2:Kx,LanguageModelDataPart:xn,LanguageModelDataPart2:xn,LanguageModelToolExtensionSource:em,LanguageModelToolMCPSource:tm,ExtendedLanguageModelToolResult:Gx,LanguageModelChatToolMode:GS,LanguageModelPromptTsxPart:$r,NewSymbolName:Px,NewSymbolNameTag:IR,NewSymbolNameTriggerKind:bS,ExcludeSettingOptions:IC,TextSearchContext2:Yl,TextSearchMatch2:or,AISearchKeyword:$c,TextSearchCompleteMessageTypeNew:vv,ChatErrorLevel:VR,ChatInputNotificationSeverity:BR,McpHttpServerDefinition:Dc,McpHttpServerDefinition2:Dc,McpStdioServerDefinition:_c,McpStdioServerDefinition2:_c,McpToolAvailability:jS,McpToolInvocationContentData:Fx,SettingsSearchResultKind:zR,ChatTodoStatus:VS,ChatDebugSubagentStatus:BS}}}var Gg=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(),vn("code/extHost/willWaitForConfig");let t=await this._extHostConfiguration.getConfigProvider();vn("code/extHost/didWaitForConfig");let e=await this._extHostExtensionService.getExtensionPathIndex();this.register(new $0(this._apiFactory,e,this._extensionRegistry,t,this._logService)),this.register(this._instaService.createInstance(hd)),this._initData.remote.isRemote&&this.register(this._instaService.createInstance(vb,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))}};Gg=R([C(2,mn),C(3,Mo),C(4,Ao),C(5,at),C(6,ie)],Gg);var hd=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&&hd.aliased.size){let e=dr(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=hd.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,"/")}};hd=R([C(0,at)],hd);var $0=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 eo}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(OF,this._extensionRegistry,this._configProvider)}return this._defaultApiImpl}},vb=class{constructor(t,e,n){this._extensionPaths=t;this._appUriScheme=e;this.nodeModuleName=["open","opn"];this._mainThreadTelemetry=n.getProxy(N.MainThreadTelemetry);let o=n.getProxy(N.MainThreadWindow);this._impl=(r,s)=>{let a=y.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})}};vb=R([C(2,me)],vb);var jg=class{constructor(t,e){this._mainThreadConsole=t.getProxy(N.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:q3(o,this._includeStack)}),this._logNative&&this._nativeConsoleLogMessage(t,n,o)}};jg=R([C(0,me),C(1,at)],jg);var z3=1e5;function q3(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=_u(e);return n.length>z3?"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 Qg=class extends jg{constructor(t,e){super(t,e)}_nativeConsoleLogMessage(t,e,n){e.apply(console,n)}};Qg=R([C(0,me),C(1,at)],Qg);var z0=class extends Gg{_installInterceptor(){}getModule(t,e){for(let n of this._alternatives){let o=n(t);if(o){t=o;break}}if(this._factories.has(t))return this._factories.get(t).load(t,e,()=>{throw new Error("CANNOT LOAD MODULE from here.")})}},Cw=class extends ad{constructor(){super(...arguments);this.extensionRuntime=2}async _beforeAlmostReadyToRunExtensions(){this._instaService.createInstance(Qg);let e=this._instaService.invokeFunction(AB);this._fakeModules=this._instaService.createInstance(z0,e,{mine:this._myRegistry,all:this._globalRegistry}),await this._fakeModules.install(),performance.mark("code/extHost/didInitAPI"),await this._waitForDebuggerAttachment()}_getEntryPoint(e){return e.browser}async _loadCommonJSModule(e,n,o){n=n.with({path:K3(n.path,".js")});let r=e?.identifier.value;r&&performance.mark(`code/extHost/willFetchExtensionCode/${r}`);let s=y.revive(await this._mainThreadExtensionsProxy.$asBrowserUri(n)),a=await fetch(s.toString(!0));if(r&&performance.mark(`code/extHost/didFetchExtensionCode/${r}`),a.status!==200)throw new Error(a.statusText);let l=await a.text(),d=`${n.toString(!0)}#vscode-extension`,c=`${l}
//# sourceURL=${d}`,u;try{u=new Function("module","exports","require",c)}catch(h){throw console.error(r?`Loading code for extension ${r} failed: ${h.message}`:`Loading code failed: ${h.message}`),console.error(`${n.toString(!0)}${typeof h.line=="number"?` line ${h.line}`:""}${typeof h.column=="number"?` column ${h.column}`:""}`),console.error(h),h}e&&await this._extHostLocalizationService.initializeLocalizedMessages(e);let m={},g={exports:m},v=h=>{let I=this._fakeModules.getModule(h,n);if(I===void 0)throw new Error(`Cannot load module '${h}'`);return I};try{return o.codeLoadingStart(),r&&performance.mark(`code/extHost/willLoadExtensionCode/${r}`),u(g,m,v),g.exports!==m?g.exports:m}finally{r&&performance.mark(`code/extHost/didLoadExtensionCode/${r}`),o.codeLoadingStop()}}_loadESMModule(e,n,o){throw new Error("ESM modules are not supported in the web worker extension host")}async $setRemoteEnvironment(e){}async _waitForDebuggerAttachment(e=5e3){if(!this._initData.environment.isExtensionDevelopmentDebug)return;let n=Date.now()+e;for(;Date.now()<n&&!("__jsDebugIsReady"in globalThis);)await Pn(10)}};function K3(i,t){return As(i)?i:i+t}qe(ie,new Uo(hg,[!0],!0));qe(Vm,Fm,0);qe(Ao,Cw,0);qe(Em,Tm,0);qe(od,new Uo(Rm,[!0],!0));var NB=self.close.bind(self);self.close=()=>console.trace("'close' has been blocked");var UB=postMessage.bind(self);self.postMessage=()=>console.trace("'postMessage' has been blocked");function OB(i){return/^(file|vscode-remote):/i.test(i)}var LB=fetch.bind(self);function G3(i){self.fetch=async function(t,e){return t instanceof Request||OB(String(t))&&(t=(await i(y.parse(String(t)))).toString(!0)),LB(t,e)},self.XMLHttpRequest=class extends XMLHttpRequest{open(t,e,n,o,r){(async()=>(OB(e.toString())&&(e=(await i(y.parse(e.toString()))).toString(!0)),super.open(t,e,n??!0,o,r)))()}}}self.importScripts=()=>{throw new Error("'importScripts' has been blocked")};self.addEventListener=()=>console.trace("'addEventListener' has been blocked");self.AMDLoader=void 0;self.NLSLoaderPlugin=void 0;self.define=void 0;self.require=void 0;self.webkitRequestFileSystem=void 0;self.webkitRequestFileSystemSync=void 0;self.webkitResolveLocalFileSystemSyncURL=void 0;self.webkitResolveLocalFileSystemURL=void 0;if(self.Worker){let i=self.Worker;Worker=function(t,e){if(/^file:/i.test(t.toString()))t=ey.uriToBrowserUri(y.parse(t.toString())).toString(!0);else if(/^vscode-remote:/i.test(t.toString()))throw new Error("Creating workers from remote extensions is currently not supported.");let o=`(${(function(l){function d(m){return typeof m=="string"||m instanceof URL?String(m).replace(/^file:\/\//i,"vscode-file://vscode-app"):m}let c=fetch.bind(self);self.fetch=function(m,g){return m instanceof Request?c(m,g):c(d(m),g)},self.XMLHttpRequest=class extends XMLHttpRequest{open(m,g,v,h,I){return super.open(m,d(g),v??!0,h,I)}};let u=importScripts.bind(self);self.importScripts=(...m)=>{u(...m.map(d))},u(l)}).toString()}('${t}'))`;e=e||{},e.name=`${name} -> ${e.name||un(t.toString())}`;let r=new Blob([o],{type:"application/javascript"}),s=URL.createObjectURL(r);return new i(s,e)}}else self.Worker=class extends QC{constructor(i,t){super(UB,i,{name:un(i.toString()),...t})}};var j3=new class{constructor(){this.pid=void 0}exit(i){NB()}},q0=class{constructor(){let t=new MessageChannel,e=new T,n=!1;UB(t.port2,[t.port2]),t.port1.onmessage=o=>{let{data:r}=o;if(!(r instanceof ArrayBuffer)){console.warn("UNKNOWN data received",r);return}let s=ee.wrap(new Uint8Array(r,0,r.byteLength));if(lL(s,2)){n=!0,FB("received terminate message from renderer");return}e.fire(s)},this.protocol={onMessage:e.event,send:o=>{if(!n){let r=o.buffer.buffer.slice(o.buffer.byteOffset,o.buffer.byteOffset+o.buffer.byteLength);t.port1.postMessage(r,[r])}}}}};function Q3(i){return new Promise(t=>{let e=i.onMessage(n=>{e.dispose();let o=JSON.parse(n.toString());i.send(sk(0)),t({protocol:i,initData:o})});i.send(sk(1))})}var FB=i=>NB();function J3(i){return!!i&&typeof i=="object"&&i.type==="vscode.init"&&i.data instanceof Map}function HB(){vn("code/extHost/willConnectToRenderer");let i=new q0;return{onmessage(t){J3(t)&&Q3(i.protocol).then(e=>{vn("code/extHost/didWaitForInitData");let n=new jC(e.protocol,e.initData,j3,null,t.data);G3(o=>n.asBrowserUri(o)),FB=o=>n.terminate(o)})}}}var Y3=HB();self.onmessage=i=>Y3.onmessage(i.data);
