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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

var ag=Object.defineProperty;var lg=Object.getOwnPropertyDescriptor;var R=(i,t,e,n)=>{for(var r=n>1?void 0:n?lg(t,e):t,o=i.length-1,s;o>=0;o--)(s=i[o])&&(r=(n?s(t,e,r):s(r))||r);return n&&r&&ag(t,e,r),r},U=(i,t)=>(e,n)=>t(e,n,i);function cg(i,t,e=0,n=i.length){let r=e,o=n;for(;r<o;){let s=Math.floor((r+o)/2);t(i[s])?r=s+1:o=s}return r-1}var gd=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=cg(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};var Wa=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?xt.isErrorNoTelemetry(t)?new xt(t.message+`

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

`+t.stack):t},0)}}addListener(t){return this.listeners.push(t),()=>{this._removeListener(t)}}emit(t){this.listeners.forEach(e=>{e(t)})}_removeListener(t){this.listeners.splice(this.listeners.indexOf(t),1)}setUnexpectedErrorHandler(t){this.unexpectedErrorHandler=t}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}},vd=new Wa;function Yt(i){vd.onUnexpectedError(i)}function ve(i){dg(i)||vd.onUnexpectedError(i)}var To="Canceled";function dg(i){return i instanceof Oe?!0:i instanceof Error&&i.name===To&&i.message===To}var Oe=class extends Error{constructor(){super(To),this.name=this.message}},hd=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 xo(){let i=new Error(To);return i.name=i.message,i}function _o(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}var xt=class i extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof i)return t;let e=new i;return e.message=t.message,e.stack=t.stack,e}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}},ae=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function di(i,t,e=(n,r)=>n===r){if(i===t)return!0;if(!i||!t||i.length!==t.length)return!1;for(let n=0,r=i.length;n<r;n++)if(!e(i[n],t[n]))return!1;return!0}function wo(i){return i.filter(t=>!!t)}function Ba(i,t){return i.push(t),()=>ug(i,t)}function ug(i,t){let e=i.indexOf(t);if(e>-1)return i.splice(e,1),t}function Va(i,t){let e;if(typeof t=="number"){let n=t;e=()=>{let r=Math.sin(n++)*179426549;return r-Math.floor(r)}}else e=Math.random;for(let n=i.length-1;n>0;n-=1){let r=Math.floor(e()*(n+1)),o=i[n];i[n]=i[r],i[r]=o}}function Id(i){return i[Math.floor(Math.random()*i.length)]}var Sd;(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})(Sd||={});function Td(i,t){return(e,n)=>t(i(e),i(n))}var xd=(i,t)=>i-t;var yd=class i{constructor(t){this.iterate=t}static{this.empty=new i(t=>{})}forEach(t){this.iterate(e=>(t(e),!0))}toArray(){let t=[];return this.iterate(e=>(t.push(e),!0)),t}filter(t){return new i(e=>this.iterate(n=>t(n)?e(n):!0))}map(t){return new i(e=>this.iterate(n=>e(t(n))))}some(t){let e=!1;return this.iterate(n=>(e=t(n),!e)),e}findFirst(t){let e;return this.iterate(n=>t(n)?(e=n,!1):!0),e}findLast(t){let e;return this.iterate(n=>(t(n)&&(e=n),!0)),e}findLastMaxBy(t){let e,n=!0;return this.iterate(r=>((n||Sd.isGreaterThan(t(r,e)))&&(n=!1,e=r),!0)),e}};function Ed(i,t){let e=Object.create(null);for(let n of i){let r=t(n),o=e[r];o||(o=e[r]=[]),o.push(n)}return e}var Cd,Rd,wd=class{constructor(t,e){this.toKey=e;this._map=new Map;this[Cd]="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))}[(Rd=Symbol.iterator,Cd=Symbol.toStringTag,Rd)](){return this.values()}};function er(i,t){let e=this,n=!1,r;return function(){if(n)return r;if(n=!0,t)try{r=i.apply(e,arguments)}finally{t()}else r=i.apply(e,arguments);return r}}var $a=class{constructor(t,e){this.uri=t;this.value=e}};function pg(i){return Array.isArray(i)}var Ad,ft=class i{constructor(t,e){this[Ad]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(pg(t)){this.map=new Map,this.toKey=e??i.defaultToKey;for(let[n,r]of t)this.set(n,r)}else this.map=new Map,this.toKey=t??i.defaultToKey}static{this.defaultToKey=t=>t.toString()}set(t,e){return this.map.set(this.toKey(t),new $a(t,e)),this}get(t){return this.map.get(this.toKey(t))?.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,e){typeof e<"u"&&(t=t.bind(e));for(let[n,r]of this.map)t(r.value,r.uri,this)}*values(){for(let t of this.map.values())yield t.value}*keys(){for(let t of this.map.values())yield t.uri}*entries(){for(let t of this.map.values())yield[t.uri,t.value]}*[(Ad=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},kd,Pd=class{constructor(t,e){this[kd]="ResourceSet";!t||typeof t=="function"?this._map=new ft(t):(this._map=new ft(e),t.forEach(this.add,this))}get size(){return this._map.size}add(t){return this._map.set(t,t),this}clear(){this._map.clear()}delete(t){return this._map.delete(t)}forEach(t,e){this._map.forEach((n,r)=>t.call(e,r,r,this))}has(t){return this._map.has(t)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(kd=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var Dd,qa=class{constructor(){this[Dd]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,e=0){let n=this._map.get(t);if(n)return e!==0&&this.touch(n,e),n.value}set(t,e,n=0){let r=this._map.get(t);if(r)r.value=e,n!==0&&this.touch(r,n);else{switch(r={key:t,value:e,next:void 0,previous:void 0},n){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(t,r),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let e=this._map.get(t);if(e)return this._map.delete(t),this.removeItem(e),this._size--,e.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,e){let n=this._state,r=this._head;for(;r;){if(e?t.bind(e)(r.value,r.key,this):t(r.value,r.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}values(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}entries(){let t=this,e=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(t._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}[(Dd=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._head,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.next,n--;this._head=e,this._size=n,e&&(e.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let e=this._tail,n=this.size;for(;e&&n>t;)this._map.delete(e.key),e=e.previous,n--;this._tail=e,this._size=n,e&&(e.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{let e=t.next,n=t.previous;if(!e||!n)throw new Error("Invalid list");e.previous=n,n.next=e}t.next=void 0,t.previous=void 0,this._state++}touch(t,e){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(e!==1&&e!==2)){if(e===1){if(t===this._head)return;let n=t.next,r=t.previous;t===this._tail?(r.next=void 0,this._tail=r):(n.previous=r,r.next=n),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(e===2){if(t===this._tail)return;let n=t.next,r=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=r,r.next=n),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((e,n)=>{t.push([n,e])}),t}fromJSON(t){this.clear();for(let[e,n]of t)this.set(e,n)}},Ha=class extends qa{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))}},_t=class extends Ha{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var Co=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 Ro(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function Eo(i,t="unexpected state"){if(!i)throw typeof t=="string"?new ae(`Assertion Failed: ${t}`):t}function ui(i){if(!i()){debugger;i(),ve(new ae("Assertion Failed"))}}function Be(i){return typeof i=="string"}function Po(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function pi(i){return typeof i=="number"&&!isNaN(i)}function Od(i){return!!i&&typeof i[Symbol.iterator]=="function"}function mg(i){return typeof i>"u"}function tr(i){return!fi(i)}function fi(i){return mg(i)||i===null}function Ld(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function mi(i){return typeof i=="function"}function Ve(i,t){for(let e in t)if(!(e in i))return!1;return!0}var gi;(at=>{function i(E){return!!E&&typeof E=="object"&&typeof E[Symbol.iterator]=="function"}at.is=i;let t=Object.freeze([]);function e(){return t}at.empty=e;function*n(E){yield E}at.single=n;function r(E){return i(E)?E:n(E)}at.wrap=r;function o(E){return E??t}at.from=o;function*s(E){for(let F=E.length-1;F>=0;F--)yield E[F]}at.reverse=s;function a(E){return!E||E[Symbol.iterator]().next().done===!0}at.isEmpty=a;function l(E){return E[Symbol.iterator]().next().value}at.first=l;function c(E,F){let k=0;for(let Y of E)if(F(Y,k++))return!0;return!1}at.some=c;function p(E,F){let k=0;for(let Y of E)if(!F(Y,k++))return!1;return!0}at.every=p;function u(E,F){for(let k of E)if(F(k))return k}at.find=u;function*f(E,F){for(let k of E)F(k)&&(yield k)}at.filter=f;function*g(E,F){let k=0;for(let Y of E)yield F(Y,k++)}at.map=g;function*b(E,F){let k=0;for(let Y of E)yield*F(Y,k++)}at.flatMap=b;function*v(...E){for(let F of E)Od(F)?yield*F:yield F}at.concat=v;function y(E,F,k){let Y=k;for(let pe of E)Y=F(Y,pe);return Y}at.reduce=y;function S(E){let F=0;for(let k of E)F++;return F}at.length=S;function*I(E,F,k=E.length){for(F<-E.length&&(F=0),F<0&&(F+=E.length),k<0?k+=E.length:k>E.length&&(k=E.length);F<k;F++)yield E[F]}at.slice=I;function T(E,F=Number.POSITIVE_INFINITY){let k=[];if(F===0)return[k,E];let Y=E[Symbol.iterator]();for(let pe=0;pe<F;pe++){let Me=Y.next();if(Me.done)return[k,at.empty()];k.push(Me.value)}return[k,{[Symbol.iterator](){return Y}}]}at.consume=T;async function K(E){let F=[];for await(let k of E)F.push(k);return F}at.asyncToArray=K;async function we(E){let F=[];for await(let k of E)F=F.concat(k);return F}at.asyncToArrayFlat=we})(gi||={});var gg=!1,nr=null;var Fd=class i{constructor(){this.livingDisposables=new Map}static{this.idx=0}getDisposableData(t){let e=this.livingDisposables.get(t);return e||(e={parent:null,source:null,isSingleton:!1,value:t,idx:i.idx++},this.livingDisposables.set(t,e)),e}trackDisposable(t){let e=this.getDisposableData(t);e.source||(e.source=new Error().stack)}setParent(t,e){let n=this.getDisposableData(t);n.parent=e}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,e){let n=e.get(t);if(n)return n;let r=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,r),r}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,t).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(t=10,e){let n;if(e)n=e;else{let l=new Map,c=[...this.livingDisposables.values()].filter(u=>u.source!==null&&!this.getRootParent(u,l).isSingleton);if(c.length===0)return;let p=new Set(c.map(u=>u.value));if(n=c.filter(u=>!(u.parent&&p.has(u.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(l){function c(u,f){for(;u.length>0&&f.some(g=>typeof g=="string"?g===u[0]:u[0].match(g));)u.shift()}let p=l.source.split(`
`).map(u=>u.trim().replace("at ","")).filter(u=>u!=="");return c(p,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),p.reverse()}let o=new Co;for(let l of n){let c=r(l);for(let p=0;p<=c.length;p++)o.add(c.slice(0,p).join(`
`),l)}n.sort(Td(l=>l.idx,xd));let s="",a=0;for(let l of n.slice(0,t)){a++;let c=r(l),p=[];for(let u=0;u<c.length;u++){let f=c[u];f=`(shared with ${o.get(c.slice(0,u+1).join(`
`)).size}/${n.length} leaks) at ${f}`;let b=o.get(c.slice(0,u).join(`
`)),v=Ed([...b].map(y=>r(y)[u]),y=>y);delete v[c[u]];for(let[y,S]of Object.entries(v))S&&p.unshift(`    - stacktraces of ${S.length} other leaks continue with ${y}`);p.unshift(f)}s+=`


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

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


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

`),{leaks:n,details:s}}};function hg(i){nr=i}if(gg){let i="__is_disposable_tracked__";hg(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!==L.None)try{t[i]=!0}catch{}}markAsDisposed(t){if(t&&t!==L.None)try{t[i]=!0}catch{}}markAsSingleton(t){}})}function Zt(i){return nr?.trackDisposable(i),i}function en(i){nr?.markAsDisposed(i)}function En(i,t){nr?.setParent(i,t)}function vg(i,t){if(nr)for(let e of i)nr.setParent(e,t)}function ko(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function je(i){if(gi.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 Ud(...i){let t=A(()=>je(i));return vg(i,t),t}var Ka=class{constructor(t){this._isDisposed=!1,this._fn=t,Zt(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,en(this),this._fn()}}};function A(i){return new Ka(i)}var M=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;Zt(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(en(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{je(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===L.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return En(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)&&En(t,null)}assertNotDisposed(){this._isDisposed&&ve(new ae("Object disposed"))}},L=class{constructor(){this._store=new M;Zt(this),En(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){en(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},Xt=class{constructor(){this._isDisposed=!1;Zt(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&En(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,en(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&En(t,null),t}};var Ao=class{constructor(){this.references=new Map}acquire(t,...e){let n=this.references.get(t);n||(n={counter:0,object:this.createReferencedObject(t,...e)},this.references.set(t,n));let{object:r}=n,o=er(()=>{--n.counter===0&&(this.destroyReferencedObject(t,n.object),this.references.delete(t))});return n.counter++,{object:r,dispose:o}}};var lt=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,Zt(this)}dispose(){en(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{je(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),En(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&En(e,null),this._store.delete(t),e}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}};function Nd(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var le=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},hi=class{constructor(){this._first=le.Undefined;this._last=le.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===le.Undefined}clear(){let t=this._first;for(;t!==le.Undefined;){let e=t.next;t.prev=le.Undefined,t.next=le.Undefined,t=e}this._first=le.Undefined,this._last=le.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new le(t);if(this._first===le.Undefined)this._first=n,this._last=n;else if(e){let o=this._last;this._last=n,n.prev=o,o.next=n}else{let o=this._first;this._first=n,n.next=o,o.prev=n}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(n))}}shift(){if(this._first!==le.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==le.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==le.Undefined)return this._last.element}_remove(t){if(t.prev!==le.Undefined&&t.next!==le.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===le.Undefined&&t.next===le.Undefined?(this._first=le.Undefined,this._last=le.Undefined):t.next===le.Undefined?(this._last=this._last.prev,this._last.next=le.Undefined):t.prev===le.Undefined&&(this._first=this._first.next,this._first.prev=le.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==le.Undefined;)yield t.element,t=t.next}};function bg(){return globalThis._VSCODE_NLS_MESSAGES}function za(){return globalThis._VSCODE_NLS_LANGUAGE}var yg=za()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function Md(i,t){let e;return t.length===0?e=i:e=i.replace(/\{(\d+)\}/g,(n,r)=>{let o=r[0],s=t[o],a=n;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),yg&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function m(i,t,...e){return Md(typeof i=="number"?Ig(i,t):t,e)}function Ig(i,t){let e=bg()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}var Pn="en",bi=!1,yi=!1,vi=!1,Sg=!1,Bd=!1,Qa=!1,Tg=!1,Vd=!1,xg=!1,_g=!1,Do,Oo=Pn,Wd=Pn,wg,At,kt=globalThis,Ye;typeof kt.vscode<"u"&&typeof kt.vscode.process<"u"?Ye=kt.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Ye=process);var $d=typeof Ye?.versions?.electron=="string",Cg=$d&&Ye?.type==="renderer";if(typeof Ye=="object"){bi=Ye.platform==="win32",yi=Ye.platform==="darwin",vi=Ye.platform==="linux",Sg=vi&&!!Ye.env.SNAP&&!!Ye.env.SNAP_REVISION,Tg=$d,xg=!!Ye.env.CI||!!Ye.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!Ye.env.GITHUB_WORKSPACE,Do=Pn,Oo=Pn;let i=Ye.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);Do=t.userLocale,Wd=t.osLocale,Oo=t.resolvedLanguage||Pn,wg=t.languagePack?.translationsConfigFile}catch{}Bd=!0}else typeof navigator=="object"&&!Cg?(At=navigator.userAgent,bi=At.indexOf("Windows")>=0,yi=At.indexOf("Macintosh")>=0,Vd=(At.indexOf("Macintosh")>=0||At.indexOf("iPad")>=0||At.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,vi=At.indexOf("Linux")>=0,_g=At?.indexOf("Mobi")>=0,Qa=!0,Oo=za()||Pn,Do=navigator.language.toLowerCase(),Wd=Do):console.error("Unable to resolve platform.");var Ja=0;yi?Ja=1:bi?Ja=3:vi&&(Ja=2);var B=bi,Le=yi,ge=vi;var qd=Bd;var rr=Qa,Rg=Qa&&typeof kt.importScripts=="function",Hd=Rg?kt.origin:void 0;var wt=At,tn=Oo,Eg;(n=>{function i(){return tn}n.value=i;function t(){return tn.length===2?tn==="en":tn.length>=3?tn[0]==="e"&&tn[1]==="n"&&tn[2]==="-":!1}n.isDefaultVariant=t;function e(){return tn==="en"}n.isDefault=e})(Eg||={});var Pg=typeof kt.postMessage=="function"&&!kt.importScripts,jd=(()=>{if(Pg){let i=[];kt.addEventListener("message",e=>{if(e.data&&e.data.vscodeScheduleAsyncWork)for(let n=0,r=i.length;n<r;n++){let o=i[n];if(o.id===e.data.vscodeScheduleAsyncWork){i.splice(n,1),o.callback();return}}});let t=0;return e=>{let n=++t;i.push({id:n,callback:e}),kt.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var ir=yi||Vd?2:bi?1:3;var Ya=!!(wt&&wt.indexOf("Chrome")>=0),Kd=!!(wt&&wt.indexOf("Firefox")>=0),zd=!!(!Ya&&wt&&wt.indexOf("Safari")>=0),Gd=!!(wt&&wt.indexOf("Edg/")>=0),wI=!!(wt&&wt.indexOf("Android")>=0);var An,Xa=globalThis.vscode;if(typeof Xa<"u"&&typeof Xa.process<"u"){let i=Xa.process;An={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"?An={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:An={get platform(){return B?"win32":Le?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var or=An.cwd,Ce=An.env,Lo=An.platform,EI=An.arch;var Ag=globalThis.performance.now.bind(globalThis.performance),Fo=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:Ag,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 Jd=!1,kg=!1,Dg=100,Qd=6e4;function Yd(){return!!Ce.VSCODE_DEV}var X;(Cn=>{Cn.None=()=>L.None;function t(D){if(kg){let{onDidAddListener:x}=D,C=ar.create(),P=0;D.onDidAddListener=()=>{++P===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),C.print()),x?.()}}}function e(D,x,C){return g(D,()=>{},0,void 0,x??!0,void 0,C)}Cn.defer=e;function n(D){return(x,C=null,P)=>{let O=!1,N;return N=D(H=>{if(!O)return N?N.dispose():O=!0,x.call(C,H)},null,P),O&&N.dispose(),N}}Cn.once=n;function r(D,x){return Cn.once(Cn.filter(D,x))}Cn.onceIf=r;function o(D,x,C){return u((P,O=null,N)=>D(H=>P.call(O,x(H)),null,N),C)}Cn.map=o;function s(D,x,C){return u((P,O=null,N)=>D(H=>{x(H),P.call(O,H)},null,N),C)}Cn.forEach=s;function a(D,x,C){return u((P,O=null,N)=>D(H=>x(H)&&P.call(O,H),null,N),C)}Cn.filter=a;function l(D){return D}Cn.signal=l;function c(...D){return(x,C=null,P)=>{let O=Ud(...D.map(N=>N(H=>x.call(C,H))));return f(O,P)}}Cn.any=c;function p(D,x,C,P){let O=C;return o(D,N=>(O=x(O,N),O),P)}Cn.reduce=p;function u(D,x){let C,P={onWillAddFirstListener(){C=D(O.fire,O)},onDidRemoveLastListener(){C?.dispose()}};x||t(P);let O=new _(P);return x?.add(O),O.event}function f(D,x){return x instanceof Array?x.push(D):x&&x.add(D),D}function g(D,x,C=100,P=!1,O=!1,N,H){let ke,oe,We,De=0,He,Pt={leakWarningThreshold:N,onWillAddFirstListener(){ke=D(fd=>{De++,oe=x(oe,fd),P&&!We&&(Rn.fire(oe),oe=void 0),He=()=>{let md=oe;oe=void 0,We=void 0,(!P||De>1)&&Rn.fire(md),De=0},typeof C=="number"?(We&&clearTimeout(We),We=setTimeout(He,C)):We===void 0&&(We=null,queueMicrotask(He))})},onWillRemoveListener(){O&&De>0&&He?.()},onDidRemoveLastListener(){He=void 0,ke.dispose()}};H||t(Pt);let Rn=new _(Pt);return H?.add(Rn),Rn.event}Cn.debounce=g;function b(D,x=0,C,P){return Cn.debounce(D,(O,N)=>O?(O.push(N),O):[N],x,void 0,C??!0,void 0,P)}Cn.accumulate=b;function v(D,x,C=100,P=!0,O=!0,N,H){let ke,oe,We,De=0,He={leakWarningThreshold:N,onWillAddFirstListener(){ke=D(Rn=>{De++,oe=x(oe,Rn),We===void 0&&(P&&(Pt.fire(oe),oe=void 0,De=0),typeof C=="number"?We=setTimeout(()=>{O&&De>0&&Pt.fire(oe),oe=void 0,We=void 0,De=0},C):(We=0,queueMicrotask(()=>{O&&De>0&&Pt.fire(oe),oe=void 0,We=void 0,De=0})))})},onDidRemoveLastListener(){ke.dispose()}};H||t(He);let Pt=new _(He);return H?.add(Pt),Pt.event}Cn.throttle=v;function y(D,x=(P,O)=>P===O,C){let P=!0,O;return a(D,N=>{let H=P||!x(N,O);return P=!1,O=N,H},C)}Cn.latch=y;function S(D,x,C){return[Cn.filter(D,x,C),Cn.filter(D,P=>!x(P),C)]}Cn.split=S;function I(D,x,C=!1,P=[],O){let N=P.slice(),H;Yd()&&(H={stack:ar.create(),timerId:setTimeout(()=>{N&&N.length>0&&H&&!H.warned&&(H.warned=!0,console.warn(`[Event.buffer][${x}] potential LEAK detected: ${N.length} events buffered for ${Qd/1e3}s without being consumed. Buffered here:`),H.stack.print())},Qd),warned:!1},O&&O.add(A(()=>clearTimeout(H.timerId))));let ke=()=>{H&&clearTimeout(H.timerId)},oe=D(He=>{N?(N.push(He),Yd()&&H&&!H.warned&&N.length>=Dg&&(H.warned=!0,console.warn(`[Event.buffer][${x}] potential LEAK detected: ${N.length} events buffered without being consumed. Buffered here:`),H.stack.print())):De.fire(He)});O&&O.add(oe);let We=()=>{N?.forEach(He=>De.fire(He)),N=null,ke()},De=new _({onWillAddFirstListener(){oe||(oe=D(He=>De.fire(He)),O&&O.add(oe))},onDidAddFirstListener(){N&&(C?setTimeout(We):We())},onDidRemoveLastListener(){oe&&oe.dispose(),oe=null,ke()}});return O&&O.add(De),De.event}Cn.buffer=I;function T(D,x){return(P,O,N)=>{let H=x(new we);return D(function(ke){let oe=H.evaluate(ke);oe!==K&&P.call(O,oe)},void 0,N)}}Cn.chain=T;let K=Symbol("HaltChainable");class we{constructor(){this.steps=[]}map(x){return this.steps.push(x),this}forEach(x){return this.steps.push(C=>(x(C),C)),this}filter(x){return this.steps.push(C=>x(C)?C:K),this}reduce(x,C){let P=C;return this.steps.push(O=>(P=x(P,O),P)),this}latch(x=(C,P)=>C===P){let C=!0,P;return this.steps.push(O=>{let N=C||!x(O,P);return C=!1,P=O,N?O:K}),this}evaluate(x){for(let C of this.steps)if(x=C(x),x===K)break;return x}}function at(D,x,C=P=>P){let P=(...ke)=>H.fire(C(...ke)),O=()=>D.on(x,P),N=()=>D.removeListener(x,P),H=new _({onWillAddFirstListener:O,onDidRemoveLastListener:N});return H.event}Cn.fromNodeEventEmitter=at;function E(D,x,C=P=>P){let P=(...ke)=>H.fire(C(...ke)),O=()=>D.addEventListener(x,P),N=()=>D.removeEventListener(x,P),H=new _({onWillAddFirstListener:O,onDidRemoveLastListener:N});return H.event}Cn.fromDOMEventEmitter=E;function F(D,x){let C,P,O=new Promise(N=>{P=n(D)(N),il(P,x),C=()=>{Zd(P,x)}});return O.cancel=C,x&&O.finally(()=>Zd(P,x)),O}Cn.toPromise=F;function k(D,x){return D(C=>x.fire(C))}Cn.forward=k;function Y(D,x,C){return x(C),D(P=>x(P))}Cn.runAndSubscribe=Y;class pe{constructor(x,C){this._observable=x;this._counter=0;this._hasChanged=!1;let P={onWillAddFirstListener:()=>{x.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{x.removeObserver(this)}};C||t(P),this.emitter=new _(P),C&&C.add(this.emitter)}beginUpdate(x){this._counter++}handlePossibleChange(x){}handleChange(x,C){this._hasChanged=!0}endUpdate(x){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function Me(D,x){return new pe(D,x).emitter.event}Cn.fromObservable=Me;function sg(D){return(x,C,P)=>{let O=0,N=!1,H={beginUpdate(){O++},endUpdate(){O--,O===0&&(D.reportChanges(),N&&(N=!1,x.call(C)))},handlePossibleChange(){},handleChange(){N=!0}};D.addObserver(H),D.reportChanges();let ke={dispose(){D.removeObserver(H)}};return il(ke,P),ke}}Cn.fromObservableLight=sg})(X||={});var el=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 Fo,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}}},Xd=-1;var tl=class i{constructor(t,e,n=(i._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t;this.threshold=e;this.name=n;this._warnCountdown=0}static{this._idPool=1}dispose(){this._stacks?.clear()}check(t,e){let n=this.threshold;if(n<=0||e<n)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[o,s]=this.getMostFrequentStack(),a=/^[0-9a-f]+$/i.test(this.name)?void 0:this.name,l=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${s}):`;console.warn(l),console.warn(o);let c=s/e>.3?"dominated":"popular",p=new Uo(c,l,o,e,a);this._errorHandler(p)}return()=>{let o=this._stacks.get(t.value)||0;this._stacks.set(t.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[n,r]of this._stacks)(!t||e<r)&&(t=[n,r],e=r);return t}},ar=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(`
`))}},Uo=class i extends Error{constructor(t,e,n,r,o){super(o?`[${o}] potential listener LEAK detected, ${t}`:`potential listener LEAK detected, ${t}`),this.name="ListenerLeakError",this.kind=t,this.listenerCount=r,this.details=e,this.stack=n}static is(t){return t instanceof i||t instanceof Error&&typeof t.kind=="string"&&typeof t.listenerCount=="number"}},nl=class extends Uo{constructor(t,e,n,r,o){super(t,e,n,r,o),this.name="ListenerRefusalError"}},Og=0,sr=class{constructor(t){this.value=t;this.id=Og++}},Lg=2,Fg=(i,t)=>{if(i instanceof sr)t(i);else for(let e=0;e<i.length;e++){let n=i[e];n&&t(n)}},_=class{constructor(t){this._size=0;this._options=t,this._leakageMon=Xd>0||this._options?.leakWarningThreshold?new tl(t?.onListenerError??ve,this._options?.leakWarningThreshold??Xd,this._options?.leakWarningName):void 0,this._perfMon=this._options?._profName?new el(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(Jd){let t=this._listeners;queueMicrotask(()=>{Fg(t,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(t,e,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let l=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(l);let c=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],p=c[1]/this._size>.3?"dominated":"popular",u=new nl(p,`${l}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||ve)(u),L.None}if(this._disposed)return L.None;e&&(t=t.bind(e));let r=new sr(t),o,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=ar.create(),o=this._leakageMon.check(r.stack,this._size+1)),Jd&&(r.stack=s??ar.create()),this._listeners?this._listeners instanceof sr?(this._deliveryQueue??=new rl,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=A(()=>{o?.(),this._removeListener(r)});return il(a,n),a},this._event}_removeListener(t){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let e=this._listeners,n=e.indexOf(t);if(n===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,e[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*Lg<=e.length){let o=0;for(let s=0;s<e.length;s++)e[s]?e[o++]=e[s]:r&&o<this._deliveryQueue.end&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);e.length=o}}_deliver(t,e){if(!t)return;let n=this._options?.onListenerError||ve;if(!n){t.value(e);return}try{t.value(e)}catch(r){n(r)}}_deliverQueue(t){let e=t.current._listeners;for(;t.i<t.end;)this._deliver(e[t.i++],t.value);t.reset()}fire(t){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof sr)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 rl=class{constructor(){this.i=-1;this.end=0}enqueue(t,e,n){this.i=0,this.end=n,this.current=t,this.value=e}reset(){this.i=this.end,this.current=void 0,this.value=void 0}};var No=class{constructor(){this.hasListeners=!1;this.events=[];this.emitter=new _({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){let e={event:t,listener:null};return this.events.push(e),this.hasListeners&&this.hook(e),A(er(()=>{this.hasListeners&&this.unhook(e);let r=this.events.indexOf(e);this.events.splice(r,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(t=>this.hook(t))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(t=>this.unhook(t))}hook(t){t.listener=t.event(e=>this.emitter.fire(e))}unhook(t){t.listener?.dispose(),t.listener=null}dispose(){this.emitter.dispose();for(let t of this.events)t.listener?.dispose();this.events=[]}};var Si=class{constructor(){this.listening=!1;this.inputEvent=X.None;this.inputEventListener=L.None;this.emitter=new _({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}});this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}};function il(i,t){t instanceof M?t.add(i):Array.isArray(t)&&t.push(i)}function Zd(i,t){if(t instanceof M)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var eu=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),nt;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof lr?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:X.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:eu})})(nt||={});var lr=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?eu:(this._emitter||(this._emitter=new _),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 lr),this._token}cancel(){this._token?this._token instanceof lr&&this._token.cancel():this._token=nt.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof lr&&this._token.dispose():this._token=nt.None}};var Ug=65,Ng=97,Mg=90,Wg=122,kn=46,Fe=47,Xe=92,Dt=58,Bg=63,Mo=class extends Error{constructor(t,e,n){let r;typeof e=="string"&&e.indexOf("not ")===0?(r="must not be",e=e.replace(/^not /,"")):r="must be";let o=t.indexOf(".")!==-1?"property":"argument",s=`The "${t}" ${o} ${r} of type ${e}`;s+=`. Received type ${typeof n}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}};function Vg(i,t){if(i===null||typeof i!="object")throw new Mo(t,"Object",i)}function Ie(i,t){if(typeof i!="string")throw new Mo(t,"string",i)}var Ze=Lo==="win32";function j(i){return i===Fe||i===Xe}function ol(i){return i===Fe}function Ot(i){return i>=Ug&&i<=Mg||i>=Ng&&i<=Wg}function Wo(i,t,e,n){let r="",o=0,s=-1,a=0,l=0;for(let c=0;c<=i.length;++c){if(c<i.length)l=i.charCodeAt(c);else{if(n(l))break;l=Fe}if(n(l)){if(!(s===c-1||a===1))if(a===2){if(r.length<2||o!==2||r.charCodeAt(r.length-1)!==kn||r.charCodeAt(r.length-2)!==kn){if(r.length>2){let p=r.lastIndexOf(e);p===-1?(r="",o=0):(r=r.slice(0,p),o=r.length-1-r.lastIndexOf(e)),s=c,a=0;continue}else if(r.length!==0){r="",o=0,s=c,a=0;continue}}t&&(r+=r.length>0?`${e}..`:"..",o=2)}else r.length>0?r+=`${e}${i.slice(s+1,c)}`:r=i.slice(s+1,c),o=c-s-1;s=c,a=0}else l===kn&&a!==-1?++a:a=-1}return r}function $g(i){return i?`${i[0]==="."?"":"."}${i}`:""}function tu(i,t){Vg(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${$g(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var be={resolve(...i){let t="",e="",n=!1;for(let r=i.length-1;r>=-1;r--){let o;if(r>=0){if(o=i[r],Ie(o,`paths[${r}]`),o.length===0)continue}else t.length===0?o=or():(o=Ce[`=${t}`]||or(),(o===void 0||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===Xe)&&(o=`${t}\\`));let s=o.length,a=0,l="",c=!1,p=o.charCodeAt(0);if(s===1)j(p)&&(a=1,c=!0);else if(j(p))if(c=!0,j(o.charCodeAt(1))){let u=2,f=u;for(;u<s&&!j(o.charCodeAt(u));)u++;if(u<s&&u!==f){let g=o.slice(f,u);for(f=u;u<s&&j(o.charCodeAt(u));)u++;if(u<s&&u!==f){for(f=u;u<s&&!j(o.charCodeAt(u));)u++;(u===s||u!==f)&&(l=`\\\\${g}\\${o.slice(f,u)}`,a=u)}}}else a=1;else Ot(p)&&o.charCodeAt(1)===Dt&&(l=o.slice(0,2),a=2,s>2&&j(o.charCodeAt(2))&&(c=!0,a=3));if(l.length>0)if(t.length>0){if(l.toLowerCase()!==t.toLowerCase())continue}else t=l;if(n){if(t.length>0)break}else if(e=`${o.slice(a)}\\${e}`,n=c,c&&t.length>0)break}return e=Wo(e,!n,"\\",j),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){Ie(i,"path");let t=i.length;if(t===0)return".";let e=0,n,r=!1,o=i.charCodeAt(0);if(t===1)return ol(o)?"\\":i;if(j(o))if(r=!0,j(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!j(i.charCodeAt(a));)a++;if(a<t&&a!==l){let c=i.slice(l,a);for(l=a;a<t&&j(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!j(i.charCodeAt(a));)a++;if(a===t)return`\\\\${c}\\${i.slice(l)}\\`;a!==l&&(n=`\\\\${c}\\${i.slice(l,a)}`,e=a)}}}else e=1;else Ot(o)&&i.charCodeAt(1)===Dt&&(n=i.slice(0,2),e=2,t>2&&j(i.charCodeAt(2))&&(r=!0,e=3));let s=e<t?Wo(i.slice(e),!r,"\\",j):"";if(s.length===0&&!r&&(s="."),s.length>0&&j(i.charCodeAt(t-1))&&(s+="\\"),!r&&n===void 0&&i.includes(":")){if(s.length>=2&&Ot(s.charCodeAt(0))&&s.charCodeAt(1)===Dt)return`.\\${s}`;let a=i.indexOf(":");do if(a===t-1||j(i.charCodeAt(a+1)))return`.\\${s}`;while((a=i.indexOf(":",a+1))!==-1)}return n===void 0?r?`\\${s}`:s:r?`${n}\\${s}`:`${n}${s}`},isAbsolute(i){Ie(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return j(e)||t>2&&Ot(e)&&i.charCodeAt(1)===Dt&&j(i.charCodeAt(2))},join(...i){if(i.length===0)return".";let t,e;for(let o=0;o<i.length;++o){let s=i[o];Ie(s,"path"),s.length>0&&(t===void 0?t=e=s:t+=`\\${s}`)}if(t===void 0)return".";let n=!0,r=0;if(typeof e=="string"&&j(e.charCodeAt(0))){++r;let o=e.length;o>1&&j(e.charCodeAt(1))&&(++r,o>2&&(j(e.charCodeAt(2))?++r:n=!1))}if(n){for(;r<t.length&&j(t.charCodeAt(r));)r++;r>=2&&(t=`\\${t.slice(r)}`)}return be.normalize(t)},relative(i,t){if(Ie(i,"from"),Ie(t,"to"),i===t)return"";let e=be.resolve(i),n=be.resolve(t);if(e===n||(i=e.toLowerCase(),t=n.toLowerCase(),i===t))return"";if(e.length!==i.length||n.length!==t.length){let b=e.split("\\"),v=n.split("\\");b[b.length-1]===""&&b.pop(),v[v.length-1]===""&&v.pop();let y=b.length,S=v.length,I=y<S?y:S,T;for(T=0;T<I&&b[T].toLowerCase()===v[T].toLowerCase();T++);return T===0?n:T===I?S>I?v.slice(T).join("\\"):y>I?"..\\".repeat(y-1-T)+"..":"":"..\\".repeat(y-T)+v.slice(T).join("\\")}let r=0;for(;r<i.length&&i.charCodeAt(r)===Xe;)r++;let o=i.length;for(;o-1>r&&i.charCodeAt(o-1)===Xe;)o--;let s=o-r,a=0;for(;a<t.length&&t.charCodeAt(a)===Xe;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===Xe;)l--;let c=l-a,p=s<c?s:c,u=-1,f=0;for(;f<p;f++){let b=i.charCodeAt(r+f);if(b!==t.charCodeAt(a+f))break;b===Xe&&(u=f)}if(f!==p){if(u===-1)return n}else{if(c>p){if(t.charCodeAt(a+f)===Xe)return n.slice(a+f+1);if(f===2)return n.slice(a+f)}s>p&&(i.charCodeAt(r+f)===Xe?u=f:f===2&&(u=3)),u===-1&&(u=0)}let g="";for(f=r+u+1;f<=o;++f)(f===o||i.charCodeAt(f)===Xe)&&(g+=g.length===0?"..":"\\..");return a+=u,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===Xe&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=be.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===Xe){if(t.charCodeAt(1)===Xe){let e=t.charCodeAt(2);if(e!==Bg&&e!==kn)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Ot(t.charCodeAt(0))&&t.charCodeAt(1)===Dt&&t.charCodeAt(2)===Xe)return`\\\\?\\${t}`;return t},dirname(i){Ie(i,"path");let t=i.length;if(t===0)return".";let e=-1,n=0,r=i.charCodeAt(0);if(t===1)return j(r)?i:".";if(j(r)){if(e=n=1,j(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!j(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&j(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!j(i.charCodeAt(a));)a++;if(a===t)return i;a!==l&&(e=n=a+1)}}}}else Ot(r)&&i.charCodeAt(1)===Dt&&(e=t>2&&j(i.charCodeAt(2))?3:2,n=e);let o=-1,s=!0;for(let a=t-1;a>=n;--a)if(j(i.charCodeAt(a))){if(!s){o=a;break}}else s=!1;if(o===-1){if(e===-1)return".";o=e}return i.slice(0,o)},basename(i,t){t!==void 0&&Ie(t,"suffix"),Ie(i,"path");let e=0,n=-1,r=!0,o;if(i.length>=2&&Ot(i.charCodeAt(0))&&i.charCodeAt(1)===Dt&&(e=2),t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(o=i.length-1;o>=e;--o){let l=i.charCodeAt(o);if(j(l)){if(!r){e=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=o):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(o=i.length-1;o>=e;--o)if(j(i.charCodeAt(o))){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){Ie(i,"path");let t=0,e=-1,n=0,r=-1,o=!0,s=0;i.length>=2&&i.charCodeAt(1)===Dt&&Ot(i.charCodeAt(0))&&(t=n=2);for(let a=i.length-1;a>=t;--a){let l=i.charCodeAt(a);if(j(l)){if(!o){n=a+1;break}continue}r===-1&&(o=!1,r=a+1),l===kn?e===-1?e=a:s!==1&&(s=1):e!==-1&&(s=-1)}return e===-1||r===-1||s===0||s===1&&e===r-1&&e===n+1?"":i.slice(e,r)},format:tu.bind(null,"\\"),parse(i){Ie(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.length,n=0,r=i.charCodeAt(0);if(e===1)return j(r)?(t.root=t.dir=i,t):(t.base=t.name=i,t);if(j(r)){if(n=1,j(i.charCodeAt(1))){let u=2,f=u;for(;u<e&&!j(i.charCodeAt(u));)u++;if(u<e&&u!==f){for(f=u;u<e&&j(i.charCodeAt(u));)u++;if(u<e&&u!==f){for(f=u;u<e&&!j(i.charCodeAt(u));)u++;u===e?n=u:u!==f&&(n=u+1)}}}}else if(Ot(r)&&i.charCodeAt(1)===Dt){if(e<=2)return t.root=t.dir=i,t;if(n=2,j(i.charCodeAt(2))){if(e===3)return t.root=t.dir=i,t;n=3}}n>0&&(t.root=i.slice(0,n));let o=-1,s=n,a=-1,l=!0,c=i.length-1,p=0;for(;c>=n;--c){if(r=i.charCodeAt(c),j(r)){if(!l){s=c+1;break}continue}a===-1&&(l=!1,a=c+1),r===kn?o===-1?o=c:p!==1&&(p=1):o!==-1&&(p=-1)}return a!==-1&&(o===-1||p===0||p===1&&o===a-1&&o===s+1?t.base=t.name=i.slice(s,a):(t.name=i.slice(s,o),t.base=i.slice(s,a),t.ext=i.slice(o,a))),s>0&&s!==n?t.dir=i.slice(0,s-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},qg=(()=>{if(Ze){let i=/\\/g;return()=>{let t=or().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>or()})(),z={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let r=i[n];Ie(r,`paths[${n}]`),r.length!==0&&(t=`${r}/${t}`,e=r.charCodeAt(0)===Fe)}if(!e){let n=qg();t=`${n}/${t}`,e=n.charCodeAt(0)===Fe}return t=Wo(t,!e,"/",ol),e?`/${t}`:t.length>0?t:"."},normalize(i){if(Ie(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Fe,e=i.charCodeAt(i.length-1)===Fe;return i=Wo(i,!t,"/",ol),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return Ie(i,"path"),i.length>0&&i.charCodeAt(0)===Fe},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];Ie(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":z.normalize(t.join("/"))},relative(i,t){if(Ie(i,"from"),Ie(t,"to"),i===t||(i=z.resolve(i),t=z.resolve(t),i===t))return"";let e=1,n=i.length,r=n-e,o=1,s=t.length-o,a=r<s?r:s,l=-1,c=0;for(;c<a;c++){let u=i.charCodeAt(e+c);if(u!==t.charCodeAt(o+c))break;u===Fe&&(l=c)}if(c===a)if(s>a){if(t.charCodeAt(o+c)===Fe)return t.slice(o+c+1);if(c===0)return t.slice(o+c)}else r>a&&(i.charCodeAt(e+c)===Fe?l=c:c===0&&(l=0));let p="";for(c=e+l+1;c<=n;++c)(c===n||i.charCodeAt(c)===Fe)&&(p+=p.length===0?"..":"/..");return`${p}${t.slice(o+l)}`},toNamespacedPath(i){return i},dirname(i){if(Ie(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Fe,e=-1,n=!0;for(let r=i.length-1;r>=1;--r)if(i.charCodeAt(r)===Fe){if(!n){e=r;break}}else n=!1;return e===-1?t?"/":".":t&&e===1?"//":i.slice(0,e)},basename(i,t){t!==void 0&&Ie(t,"suffix"),Ie(i,"path");let e=0,n=-1,r=!0,o;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t===i)return"";let s=t.length-1,a=-1;for(o=i.length-1;o>=0;--o){let l=i.charCodeAt(o);if(l===Fe){if(!r){e=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===t.charCodeAt(s)?--s===-1&&(n=o):(s=-1,n=a))}return e===n?n=a:n===-1&&(n=i.length),i.slice(e,n)}for(o=i.length-1;o>=0;--o)if(i.charCodeAt(o)===Fe){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){Ie(i,"path");let t=-1,e=0,n=-1,r=!0,o=0;for(let s=i.length-1;s>=0;--s){let a=i[s];if(a==="/"){if(!r){e=s+1;break}continue}n===-1&&(r=!1,n=s+1),a==="."?t===-1?t=s:o!==1&&(o=1):t!==-1&&(o=-1)}return t===-1||n===-1||o===0||o===1&&t===n-1&&t===e+1?"":i.slice(t,n)},format:tu.bind(null,"/"),parse(i){Ie(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===Fe,n;e?(t.root="/",n=1):n=0;let r=-1,o=0,s=-1,a=!0,l=i.length-1,c=0;for(;l>=n;--l){let p=i.charCodeAt(l);if(p===Fe){if(!a){o=l+1;break}continue}s===-1&&(a=!1,s=l+1),p===kn?r===-1?r=l:c!==1&&(c=1):r!==-1&&(c=-1)}if(s!==-1){let p=o===0&&e?1:o;r===-1||c===0||c===1&&r===s-1&&r===o+1?t.base=t.name=i.slice(p,s):(t.name=i.slice(p,r),t.base=i.slice(p,s),t.ext=i.slice(r,s))}return o>0?t.dir=i.slice(0,o-1):e&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};z.win32=be.win32=be;z.posix=be.posix=z;var ct=Ze?be.normalize:z.normalize,cr=Ze?be.isAbsolute:z.isAbsolute,W=Ze?be.join:z.join,Dn=Ze?be.resolve:z.resolve,nu=Ze?be.relative:z.relative,ye=Ze?be.dirname:z.dirname,he=Ze?be.basename:z.basename,ru=Ze?be.extname:z.extname,jI=Ze?be.format:z.format,iu=Ze?be.parse:z.parse,KI=Ze?be.toNamespacedPath:z.toNamespacedPath,Te=Ze?be.sep:z.sep,sl=Ze?be.delimiter:z.delimiter;function Hg(i){return i}var Bo=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=Hg):(this._fn=e,this._computeKey=t.getCacheKey)}get(t){let e=this._computeKey(t);return this.lastArgKey!==e&&(this.lastArgKey=e,this.lastCache=this._fn(t)),this.lastCache}};var Ge=class{constructor(t){this.executor=t;this._state=0}get hasValue(){return this._state===2}get value(){if(this._state===0){this._state=1;try{this._value=this.executor()}catch(t){this._error=t}finally{this._state=2}}else if(this._state===1)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}};function cu(i){return!i||typeof i!="string"?!0:i.trim().length===0}var jg=/{(\d+)}/g;function On(i,...t){return t.length===0?i:i.replace(jg,function(e,n){let r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]})}function Lt(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function al(i,t){if(!i||!t)return i;let e=t.length,n=0;if(e===1){let r=t.charCodeAt(0);for(;n<i.length&&i.charCodeAt(n)===r;)n++}else for(;i.startsWith(t,n);)n+=e;return i.substring(n)}function ur(i,t){if(!i||!t)return i;let e=t.length,n=i.length;if(e===1){let o=n,s=t.charCodeAt(0);for(;o>0&&i.charCodeAt(o-1)===s;)o--;return i.substring(0,o)}let r=n;for(;r>0&&i.endsWith(t,r);)r-=e;return i.substring(0,r)}function du(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function Ti(i,t){return i<t?-1:i>t?1:0}function Vo(i,t,e=0,n=i.length,r=0,o=t.length){for(;e<n&&r<o;e++,r++){let l=i.charCodeAt(e),c=t.charCodeAt(r);if(l<c)return-1;if(l>c)return 1}let s=n-e,a=o-r;return s<a?-1:s>a?1:0}function ll(i,t){return Ln(i,t,0,i.length,0,t.length)}function Ln(i,t,e=0,n=i.length,r=0,o=t.length){for(;e<n&&r<o;e++,r++){let l=i.charCodeAt(e),c=t.charCodeAt(r);if(l===c)continue;if(l>=128||c>=128)return Vo(i.toLowerCase(),t.toLowerCase(),e,n,r,o);ou(l)&&(l-=32),ou(c)&&(c-=32);let p=l-c;if(p!==0)return p}let s=n-e,a=o-r;return s<a?-1:s>a?1:0}function ou(i){return i>=97&&i<=122}function cl(i){return i>=65&&i<=90}function Fn(i,t){return i.length===t.length&&Ln(i,t)===0}function rn(i,t){let e=t.length;return e<=i.length&&Ln(i,t,0,e)===0}function uu(i,t){let e=i.length,n=e-t.length;return n>=0&&Ln(i,t,n,e)===0}function pu(i){return 55296<=i&&i<=56319}function dl(i){return 56320<=i&&i<=57343}function fu(i,t){return(i-55296<<10)+(t-56320)+65536}var Kg=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,zg=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,Gg=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,Jg=new RegExp("(?:"+[Kg.source,zg.source,Gg.source].join("|")+")","g");function mu(i){return i&&(i=i.replace(Jg,"")),i}var rS=String.fromCharCode(65279);var su=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=Qg()}getGraphemeBreakType(t){if(t<32)return t===10?3:t===13?2:4;if(t<127)return 0;let e=this._data,n=e.length/3,r=1;for(;r<=n;)if(t<e[3*r])r=2*r;else if(t>e[3*r+1])r=2*r+1;else return e[3*r+2];return 0}};function Qg(){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 au=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new Ge(()=>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 Bo(t=>{let e=t.split(",");function n(u){let f=new Map;for(let g=0;g<u.length;g+=2)f.set(u[g],u[g+1]);return f}function r(u,f){let g=new Map(u);for(let[b,v]of f)g.set(b,v);return g}function o(u,f){if(!u)return f;let g=new Map;for(let[b,v]of u)f.has(b)&&g.set(b,v);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 f=n(s[u]);l=o(l,f)}let c=n(s._common),p=r(c,l);return new i(p)})}static getInstance(t){return i.cache.get(Array.from(t).join(","))}static{this._locales=new Ge(()=>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())}},lu=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 on(i){return i===47||i===92}function $o(i){return i.replace(/[\\/]/g,z.sep)}function gu(i){return i.indexOf("/")===-1&&(i=$o(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function pl(i,t=z.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(on(n)){if(on(i.charCodeAt(1))&&!on(i.charCodeAt(2))){let o=3,s=o;for(;o<e&&!on(i.charCodeAt(o));o++);if(s!==o&&!on(i.charCodeAt(o+1))){for(o+=1;o<e;o++)if(on(i.charCodeAt(o)))return i.slice(0,o+1).replace(/[\\/]/g,t)}}return t}else if(hu(n)&&i.charCodeAt(1)===58)return on(i.charCodeAt(2))?i.slice(0,2)+t:i.slice(0,2);let r=i.indexOf("://");if(r!==-1){for(r+=3;r<e;r++)if(on(i.charCodeAt(r)))return i.slice(0,r+1)}return""}function pr(i,t,e){let n=i===t;return!e||n?n:!i||!t?!1:Fn(i,t)}function Ft(i,t,e,n=Te){if(i===t)return!0;if(!i||!t||t.length>i.length)return!1;if(e){if(!rn(i,t))return!1;if(t.length===i.length)return!0;let o=t.length;return t.charAt(t.length-1)===n&&o--,i.charAt(o)===n}return t.charAt(t.length-1)!==n&&(t+=n),i.indexOf(t)===0}function hu(i){return i>=65&&i<=90||i>=97&&i<=122}function vu(i){return B?(i=ur(i,Te),i.endsWith(":")&&(i+=Te)):(i=ur(i,Te),i||(i=Te)),i}function fl(i){let t=ct(i);return B?i.length>3?!1:bu(t)&&(i.length===2||t.charCodeAt(2)===92):t===z.sep}function bu(i,t=B){return t?hu(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}var Yg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Xg="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function yu(i,t,e=8){let n="";for(let o=0;o<e;o++){let s;o===0&&B&&!t&&(e===3||e===4)?s=Xg:s=Yg,n+=s.charAt(Math.floor(Math.random()*s.length))}let r;return t?r=`${t}-${n}`:r=n,i?W(i,r):r}var eh=/^\w[\w\d+.-]*$/,th=/^\//,nh=/^\/\//;function rh(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&&!eh.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(!th.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(nh.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 ih(i,t){return!i&&!t?"file":i}function oh(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==mt&&(t=mt+t):t=mt;break}return t}var se="",mt="/",sh=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,h=class i{static isUri(t){return t instanceof i?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,e,n,r,o,s=!1){typeof t=="object"?(this.scheme=t.scheme||se,this.authority=t.authority||se,this.path=t.path||se,this.query=t.query||se,this.fragment=t.fragment||se):(this.scheme=ih(t,s),this.authority=e||se,this.path=oh(this.scheme,n||se),this.query=r||se,this.fragment=o||se,rh(this,s))}get fsPath(){return xi(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:n,path:r,query:o,fragment:s}=t;return e===void 0?e=this.scheme:e===null&&(e=se),n===void 0?n=this.authority:n===null&&(n=se),r===void 0?r=this.path:r===null&&(r=se),o===void 0?o=this.query:o===null&&(o=se),s===void 0?s=this.fragment:s===null&&(s=se),e===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&s===this.fragment?this:new sn(e,n,r,o,s)}static parse(t,e=!1){let n=sh.exec(t);return n?new sn(n[2]||se,qo(n[4]||se),qo(n[5]||se),qo(n[7]||se),qo(n[9]||se),e):new sn(se,se,se,se,se)}static file(t){let e=se;if(B&&(t=t.replace(/\\/g,mt)),t[0]===mt&&t[1]===mt){let n=t.indexOf(mt,2);n===-1?(e=t.substring(2),t=mt):(e=t.substring(2,n),t=t.substring(n)||mt)}return new sn("file",e,t,se,se)}static from(t,e){return new sn(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 B&&t.scheme==="file"?n=i.file(be.join(xi(t,!0),...e)).path:n=z.join(t.path,...e),t.with({path:n})}toString(t=!1){return ml(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new sn(t);return e._formatted=t.external??null,e._fsPath=t._sep===xu?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};var xu=B?1:void 0,sn=class extends h{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=xi(this,!1)),this._fsPath}toString(e=!1){return e?ml(this,!0):(this._formatted||(this._formatted=ml(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=xu),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}},_u={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 Iu(i,t,e){let n,r=-1;for(let o=0;o<i.length;o++){let s=i.charCodeAt(o);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||t&&s===47||e&&s===91||e&&s===93||e&&s===58)r!==-1&&(n+=encodeURIComponent(i.substring(r,o)),r=-1),n!==void 0&&(n+=i.charAt(o));else{n===void 0&&(n=i.substr(0,o));let a=_u[s];a!==void 0?(r!==-1&&(n+=encodeURIComponent(i.substring(r,o)),r=-1),n+=a):r===-1&&(r=o)}}return r!==-1&&(n+=encodeURIComponent(i.substring(r))),n!==void 0?n:i}function ah(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+=_u[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function xi(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,B&&(e=e.replace(/\//g,"\\")),e}function ml(i,t){let e=t?ah:Iu,n="",{scheme:r,authority:o,path:s,query:a,fragment:l}=i;if(r&&(n+=r,n+=":"),(o||r==="file")&&(n+=mt,n+=mt),o){let c=o.indexOf("@");if(c!==-1){let p=o.substr(0,c);o=o.substr(c+1),c=p.lastIndexOf(":"),c===-1?n+=e(p,!1,!1):(n+=e(p.substr(0,c),!1,!1),n+=":",n+=e(p.substr(c+1),!1,!0)),n+="@"}o=o.toLowerCase(),c=o.lastIndexOf(":"),c===-1?n+=e(o,!1,!0):(n+=e(o.substr(0,c),!1,!0),n+=o.substr(c))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let c=s.charCodeAt(1);c>=65&&c<=90&&(s=`/${String.fromCharCode(c+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let c=s.charCodeAt(0);c>=65&&c<=90&&(s=`${String.fromCharCode(c+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l:Iu(l,!1,!1)),n}function wu(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+wu(i.substr(3)):i}}var Su=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function qo(i){return i.match(Su)?i.replace(Su,t=>wu(t)):i}var ne;(q=>(q.inMemory="inmemory",q.vscode="vscode",q.internal="private",q.walkThrough="walkThrough",q.walkThroughSnippet="walkThroughSnippet",q.http="http",q.https="https",q.file="file",q.mailto="mailto",q.untitled="untitled",q.data="data",q.command="command",q.vscodeRemote="vscode-remote",q.vscodeRemoteResource="vscode-remote-resource",q.vscodeManagedRemoteResource="vscode-managed-remote-resource",q.vscodeUserData="vscode-userdata",q.vscodeCustomEditor="vscode-custom-editor",q.vscodeNotebookCell="vscode-notebook-cell",q.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",q.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",q.vscodeNotebookCellOutput="vscode-notebook-cell-output",q.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",q.vscodeNotebookMetadata="vscode-notebook-metadata",q.vscodeInteractiveInput="vscode-interactive-input",q.vscodeSettings="vscode-settings",q.vscodeWorkspaceTrust="vscode-workspace-trust",q.vscodeTerminal="vscode-terminal",q.vscodeImageCarousel="vscode-image-carousel",q.vscodeChatCodeBlock="vscode-chat-code-block",q.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",q.vscodeChatEditor="vscode-chat-editor",q.vscodeChatInput="chatSessionInput",q.vscodeLocalChatSession="vscode-chat-session",q.webviewPanel="webview-panel",q.vscodeWebview="vscode-webview",q.vscodeBrowser="vscode-browser",q.extension="extension",q.vscodeFileResource="vscode-file",q.tmp="tmp",q.vsls="vsls",q.vscodeSourceControl="vscode-scm",q.commentsInput="comment",q.codeSetting="code-setting",q.outputChannel="output",q.accessibleView="accessible-view",q.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",q.chatEditingModel="chat-editing-text-model",q.copilotPr="copilot-pr"))(ne||={});var vl="tkn",gl=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=z.join(e??"/",ch(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return z.join(this._serverRootPath,ne.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 ve(a),t}let e=t.authority,n=this._hosts[e];n&&n.indexOf(":")!==-1&&n.indexOf("[")===-1&&(n=`[${n}]`);let r=this._ports[e],o=this._connectionTokens[e],s=`path=${encodeURIComponent(t.path)}`;return typeof o=="string"&&(s+=`&${vl}=${encodeURIComponent(o)}`),h.from({scheme:rr?this._preferredWebSchema:ne.vscodeRemoteResource,authority:`${n}:${r}`,path:this._remoteResourcesPath,query:s})}},lh=new gl;function ch(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var dh="vscode-app",hl=class i{static{this.FALLBACK_AUTHORITY=dh}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===ne.vscodeRemote?lh.rewrite(t):t.scheme===ne.file&&(qd||Hd===`${ne.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:ne.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===ne.vscodeFileResource?t.with({scheme:ne.file,authority:t.authority!==i.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(h.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return h.joinPath(h.parse(e,!0),t);let n=W(e,t);return h.file(n)}throw new Error("Cannot determine URI for module id!")}},et=new hl,hS=Object.freeze({"Cache-Control":"no-cache, no-store"}),vS=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),uh;(o=>{let i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);o.CoopAndCoep=Object.freeze(i.get("3"));let e="vscode-coi";function n(s){let a;typeof s=="string"?a=new URL(s).searchParams:s instanceof URL?a=s.searchParams:h.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);let l=a?.get(e);if(l)return i.get(l)}o.getHeadersFromQuery=n;function r(s,a,l){if(!globalThis.crossOriginIsolated)return;let c=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,c):s[e]=c}o.addSearchParam=r})(uh||={});function Ut(i){return xi(i,!0)}var _i=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:Ti(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===ne.file)return Ft(Ut(t),Ut(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(Cu(t.authority,e.authority))return Ft(t.path,e.path,this._ignorePathCasing(t),"/")&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return h.joinPath(t,...e)}basenameOrAuthority(t){return Ee(t)||t.authority}basename(t,e){return z.basename(t.path,e)}extname(t){return z.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===ne.file?e=h.file(ye(Ut(t))).path:(e=z.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===ne.file?e=h.file(ct(Ut(t))).path:e=z.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!Cu(t.authority,e.authority))return;if(t.scheme===ne.file){let o=nu(Ut(t),Ut(e));return B?$o(o):o}let n=t.path||"/",r=e.path||"/";if(this._ignorePathCasing(t)){let o=0;for(let s=Math.min(n.length,r.length);o<s&&!(n.charCodeAt(o)!==r.charCodeAt(o)&&n.charAt(o).toLowerCase()!==r.charAt(o).toLowerCase());o++);n=r.substr(0,o)+n.substr(o)}return z.relative(n,r)}resolvePath(t,e){if(t.scheme===ne.file){let n=h.file(Dn(Ut(t),e));return t.with({authority:n.authority,path:n.path})}return e=gu(e),t.with({path:z.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&Fn(t,e)}hasTrailingPathSeparator(t,e=Te){if(t.scheme===ne.file){let n=Ut(t);return n.length>pl(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=Te){return Ru(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=Te){let n=!1;if(t.scheme===ne.file){let r=Ut(t);n=r!==void 0&&r.length===pl(r).length&&r[r.length-1]===e}else{e="/";let r=t.path;n=r.length===1&&r.charCodeAt(r.length-1)===47}return!n&&!Ru(t,e)?t.with({path:t.path+"/"}):t}},G=new _i(()=>!1),gt=new _i(i=>i.scheme===ne.file?!ge:!0),bl=new _i(i=>!0),ph=G.isEqual.bind(G),Eu=G.isEqualOrParent.bind(G),_S=G.getComparisonKey.bind(G),wS=G.basenameOrAuthority.bind(G),Ee=G.basename.bind(G),yl=G.extname.bind(G),an=G.dirname.bind(G),re=G.joinPath.bind(G),ln=G.normalizePath.bind(G),CS=G.relativePath.bind(G),RS=G.resolvePath.bind(G),Pu=G.isAbsolutePath.bind(G),Cu=G.isEqualAuthority.bind(G),Ru=G.hasTrailingPathSeparator.bind(G),ES=G.removeTrailingPathSeparator.bind(G),PS=G.addTrailingPathSeparator.bind(G);var fh;(o=>{o.META_DATA_LABEL="label",o.META_DATA_DESCRIPTION="description",o.META_DATA_SIZE="size",o.META_DATA_MIME="mime";function r(s){let a=new Map;s.path.substring(s.path.indexOf(";")+1,s.path.lastIndexOf(";")).split(";").forEach(p=>{let[u,f]=p.split(":");u&&f&&a.set(u,f)});let c=s.path.substring(0,s.path.indexOf(";"));return c&&a.set(o.META_DATA_MIME,c),a}o.parseMetaData=r})(fh||={});var Au=Symbol("MicrotaskDelay");function Go(i){return!!i&&typeof i.then=="function"}function hr(i){let t=new Re,e=i(t.token),n=!1,r=new Promise((o,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new Oe)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?ko(l)&&l.dispose():o(l)},l=>{a.dispose(),t.dispose(),s(l)})});return new class{cancel(){t.cancel(),t.dispose()}then(o,s){return r.then(o,s)}catch(o){return this.then(void 0,o)}finally(o){return r.finally(o)}}}function Ou(i){let t=-1,e=i.map((r,o)=>r.then(s=>(t=o,s))),n=Promise.race(e);return n.cancel=()=>{i.forEach((r,o)=>{o!==t&&r.cancel&&r.cancel()})},n.finally(()=>{n.cancel()}),n}var Il=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(r=>{this.activePromise=null,e(r)},r=>{this.activePromise=null,n(r)})})}dispose(){this.cancellationTokenSource.cancel()}};var ht=class{constructor(){this.promiseMap=new Map}queue(t,e){let r=(this.promiseMap.get(t)??Promise.resolve()).catch(()=>{}).then(e).finally(()=>{this.promiseMap.get(t)===r&&this.promiseMap.delete(t)});return this.promiseMap.set(t,r),r}peek(t){return this.promiseMap.get(t)||void 0}keys(){return this.promiseMap.keys()}},gh=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},hh=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},wi=class{constructor(t){this.defaultDelay=t;this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(t,e=this.defaultDelay){this.task=t,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((r,o)=>{this.doResolve=r,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){let r=this.task;return this.task=null,r()}}));let n=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=e===Au?hh(n):gh(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new Oe),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},Un=class{constructor(t){this.delayer=new wi(t),this.throttler=new Il}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()}},jo=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 Nt(i,t){return t?new Promise((e,n)=>{let r=setTimeout(()=>{o.dispose(),e()},i),o=t.onCancellationRequested(()=>{clearTimeout(r),o.dispose(),n(new Oe)})}):hr(e=>Nt(i,e))}function Lu(i,t=0,e){let n=setTimeout(()=>{i(),e&&r.dispose()},t),r=A(()=>{clearTimeout(n),e?.delete(r)});return e?.add(r),r}var Ci=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new _}whenIdle(){return this.size>0?X.toPromise(this.onDrained):Promise.resolve()}get onDrained(){return this._onDrained.event}get size(){return this._size}queue(t){if(this._isDisposed)throw new Error("Object has been disposed");return this._size++,new Promise((e,n)=>{this.outstandingPromises.push({factory:t,c:e,e:n}),this.consume()})}consume(){for(;this.outstandingPromises.length&&this.runningPromises<this.maxDegreeOfParalellism;){let t=this.outstandingPromises.shift();this.runningPromises++;let e=t.factory();e.then(t.c,t.e),e.then(()=>this.consumed(),()=>this.consumed())}}consumed(){this._isDisposed||(this.runningPromises--,--this._size===0&&this._onDrained.fire(),this.outstandingPromises.length>0&&this.consume())}clear(){if(this._isDisposed)throw new Error("Object has been disposed");this.outstandingPromises.length=0,this._size=this.runningPromises}dispose(){this._isDisposed=!0,this.outstandingPromises.length=0,this._size=0,this._onDrained.dispose()}},Sl=class extends Ci{constructor(){super(1)}};var fr=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 $e;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=G){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=G){let r=n.getComparisonKey(t),o=this.queues.get(r);if(!o){o=new Sl;let s=this.drainListenerCount++,a=X.once(o.onDrained)(()=>{o?.dispose(),this.queues.delete(r),this.onDidQueueDrain(),this.drainListeners?.deleteAndDispose(s),this.drainListeners?.size===0&&(this.drainListeners.dispose(),this.drainListeners=void 0)});this.drainListeners||(this.drainListeners=new lt),this.drainListeners.set(s,a),this.queues.set(r,o)}return o.queue(e)}onDidQueueDrain(){this.isDrained()&&this.releaseDrainers()}releaseDrainers(){for(let t of this.drainers)t.complete();this.drainers.clear()}dispose(){for(let[,t]of this.queues)t.dispose();this.queues.clear(),this.releaseDrainers(),this.drainListeners?.dispose()}};var mr=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 Ko=class extends mr{constructor(e,n){super(e,n);this.units=[]}work(e){this.units.push(e),this.isScheduled()||this.schedule()}doRun(){let e=this.units;this.units=[],this.runner?.(e)}dispose(){this.units=[],super.dispose()}},gr=class extends L{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new Xt);this.disposed=!1;this.lastExecutionTime=0}get pending(){return this.pendingWork.length}work(e){if(this.disposed)return!1;if(typeof this.options.maxBufferedWork=="number"){if(this.throttler.value){if(this.pending+e.length>this.options.maxBufferedWork)return!1}else if(this.pending+e.length-this.options.maxWorkChunkSize>this.options.maxBufferedWork)return!1}for(let r of e)this.pendingWork.push(r);let n=Date.now()-this.lastExecutionTime;return!this.throttler.value&&(!this.options.waitThrottleDelayBetweenWorkUnits||n>=this.options.throttleDelay)?this.doWork():!this.throttler.value&&this.options.waitThrottleDelayBetweenWorkUnits&&this.scheduleThrottler(Math.max(this.options.throttleDelay-n,0)),!0}doWork(){this.lastExecutionTime=Date.now(),this.handler(this.pendingWork.splice(0,this.options.maxWorkChunkSize)),this.pendingWork.length>0&&this.scheduleThrottler()}scheduleThrottler(e=this.options.throttleDelay){this.throttler.value=new mr(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},vh,Ho;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?Ho=(t,e,n)=>{jd(()=>{if(r)return;let o=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,o-Date.now())}}))});let r=!1;return{dispose(){r||(r=!0)}}}:Ho=(t,e,n)=>{let r=t.requestIdleCallback(e,typeof n=="number"?{timeout:n}:void 0),o=!1;return{dispose(){o||(o=!0,t.cancelIdleCallback(r))}}},vh=(t,e)=>Ho(globalThis,t,e)})();var Tl=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=Ho(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}},zo=class extends Tl{constructor(t){super(globalThis,t)}};async function Fu(i,t,e){let n;for(let r=0;r<e;r++)try{return await i()}catch(o){n=o,await Nt(t)}throw n}var $e=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 Oe)}},Nn;(e=>{async function i(n){let r,o=await Promise.all(n.map(s=>s.then(a=>a,a=>{r||(r=a)})));if(typeof r<"u")throw r;return o}e.settled=i;function t(n){return new Promise(async(r,o)=>{try{await n(r,o)}catch(s){o(s)}})}e.withAsyncBody=t})(Nn||={});var ku=class i{static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new _,queueMicrotask(async()=>{let n={emitOne:r=>this.emitOne(r),emitMany:r=>this.emitMany(r),reject:r=>this.reject(r)};try{await Promise.resolve(t(n)),this.resolve()}catch(r){this.reject(r)}finally{n.emitOne=void 0,n.emitMany=void 0,n.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await X.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}map(t){return i.map(this,t)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static async toPromise(t){let e=[];for await(let n of t)e.push(n);return e}toPromise(){return i.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};var xl=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 ae("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 $e;return this._unsatisfiedConsumers.push(t),t.p}}},Du=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new xl;this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async t=>(this._finishError(t),{done:!0,value:void 0})};queueMicrotask(async()=>{let n=t({emitOne:r=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:r}}),emitMany:r=>{for(let o of r)this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}})},reject:r=>this._finishError(r)});if(!this._producerConsumer.hasFinalValue)try{await n,this._finishOk()}catch(r){this._finishError(r)}})}static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}static tee(t){let e,n,r=new $e,o=async()=>{if(!(!e||!n))try{for await(let l of t)e.emitOne(l),n.emitOne(l)}catch(l){e.reject(l),n.reject(l)}finally{r.complete()}},s=new i(async l=>(e=l,o(),r.p)),a=new i(async l=>(n=l,o(),r.p));return[s,a]}map(t){return i.map(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(t){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:t})}[Symbol.asyncIterator](){return this._iterator}};function Ri(i){let t=i;return t?[t.on,t.pause,t.resume,t.destroy].every(e=>typeof e=="function"):!1}function Jo(i){let t=i;return t?Ri(t.stream)&&Array.isArray(t.buffer)&&typeof t.ended=="boolean":!1}function Mt(i,t){return new _l(i,t)}var _l=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?ve(t):this.listeners.error.slice(0).forEach(e=>e(t))}emitEnd(){this.listeners.end.slice(0).forEach(t=>t())}on(t,e){if(!this.state.destroyed)switch(t){case"data":this.listeners.data.push(e),this.resume();break;case"end":this.listeners.end.push(e),this.state.flowing&&this.flowEnd()&&this.destroy();break;case"error":this.listeners.error.push(e),this.state.flowing&&this.flowErrors();break}}removeListener(t,e){if(this.state.destroyed)return;let n;switch(t){case"data":n=this.listeners.data;break;case"end":n=this.listeners.end;break;case"error":n=this.listeners.error;break}if(n){let r=n.indexOf(e);r>=0&&n.splice(r,1)}}flowData(){if(this.buffer.data.length===0)return;if(typeof this.reducer=="function"){let e=this.reducer(this.buffer.data);this.emitData(e)}else for(let e of this.buffer.data)this.emitData(e);this.buffer.data.length=0;let t=[...this.pendingWritePromises];this.pendingWritePromises.length=0,t.forEach(e=>e())}flowErrors(){if(this.listeners.error.length>0){for(let t of this.buffer.error)this.emitError(t);this.buffer.error.length=0}}flowEnd(){return this.state.ended?(this.emitEnd(),this.listeners.end.length>0):!1}destroy(){this.state.destroyed||(this.state.destroyed=!0,this.state.ended=!0,this.buffer.data.length=0,this.buffer.error.length=0,this.listeners.data.length=0,this.listeners.error.length=0,this.listeners.end.length=0,this.pendingWritePromises.length=0)}};function Uu(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function Nu(i,t,e){let n=[],r;for(;(r=i.read())!==null&&n.length<e;)n.push(r);return r===null&&n.length>0?t(n):{read:()=>{if(n.length>0)return n.shift();if(typeof r<"u"){let o=r;return r=void 0,o}return i.read()}}}function Qo(i,t){return new Promise((e,n)=>{let r=[];Yo(i,{onData:o=>{t&&r.push(o)},onError:o=>{t?n(o):e(void 0)},onEnd:()=>{e(t?t(r):void 0)}})})}function Yo(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 Mu(i,t){return new Promise((e,n)=>{let r=new M,o=[],s=c=>{if(o.push(c),o.length>t)return r.dispose(),i.pause(),e({stream:i,buffer:o,ended:!1})},a=c=>(r.dispose(),n(c)),l=()=>(r.dispose(),e({stream:i,buffer:o,ended:!0}));r.add(A(()=>i.removeListener("error",a))),i.on("error",a),r.add(A(()=>i.removeListener("end",l))),i.on("end",l),r.add(A(()=>i.removeListener("data",s))),i.on("data",s)})}function Wu(i){let t=!1;return{read:()=>t?null:(t=!0,i)}}function wl(i,t,e){let n=Mt(e);return Yo(i,{onData:r=>n.write(t.data(r)),onError:r=>n.error(t.error?t.error(r):r),onEnd:()=>n.end()}),n}var Ei=typeof Buffer<"u",yh=new Ge(()=>new Uint8Array(256)),Cl,Rl,w=class i{static alloc(t){return Ei?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return Ei&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&Ei?new i(Buffer.from(t)):(Cl||(Cl=new TextEncoder),new i(Cl.encode(t)))}static fromByteArray(t){let e=i.alloc(t.length);for(let n=0,r=t.length;n<r;n++)e.buffer[n]=t[n];return e}static concat(t,e){if(typeof e>"u"){e=0;for(let o=0,s=t.length;o<s;o++)e+=t[o].byteLength}let n=i.alloc(e),r=0;for(let o=0,s=t.length;o<s;o++){let a=t[o];n.set(a,r),r+=a.byteLength}return n}static isNativeBuffer(t){return Ei&&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 Ei?this.buffer.toString():(Rl||(Rl=new TextDecoder(void 0,{ignoreBOM:!0})),Rl.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 Sh(this.buffer,t)}writeUInt32BE(t,e){Th(this.buffer,t,e)}readUInt32LE(t){return xh(this.buffer,t)}writeUInt32LE(t,e){_h(this.buffer,t,e)}readUInt8(t){return wh(this.buffer,t)}writeUInt8(t,e){Ch(this.buffer,t,e)}indexOf(t,e=0){return Ih(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 Ih(i,t,e=0){let n=t.byteLength,r=i.byteLength;if(n===0)return 0;if(n===1)return i.indexOf(t[0],e);if(n>r-e)return-1;let o=yh.value;o.fill(t.length);for(let c=0;c<t.length;c++)o[t[c]]=t.length-c-1;let s=e+t.length-1,a=s,l=-1;for(;s<r;)if(i[s]===t[a]){if(a===0){l=s;break}s--,a--}else s+=Math.max(t.length-a,o[i[s]]),a=t.length-1;return l}function Sh(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function Th(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 xh(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function _h(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 wh(i,t){return i[t]}function Ch(i,t,e){i[e]=t}function $u(i){return Uu(i,t=>w.concat(t))}function qu(i){return Wu(i)}function Pi(i){return Qo(i,t=>w.concat(t))}async function Hu(i){return i.ended?w.concat(i.buffer):w.concat([...i.buffer,await Pi(i.stream)])}function ju(i){return Mt(t=>w.concat(t),i)}function Xo(i){let t=0,e=0,n=0,r=new Uint8Array(Math.floor(i.length/4*3)),o=a=>{switch(e){case 3:r[n++]=t|a,e=0;break;case 2:r[n++]=t|a>>>2,t=a<<6,e=3;break;case 1:r[n++]=t|a>>>4,t=a<<4,e=2;break;default:t=a<<2,e=1}};for(let a=0;a<i.length;a++){let l=i.charCodeAt(a);if(l>=65&&l<=90)o(l-65);else if(l>=97&&l<=122)o(l-97+26);else if(l>=48&&l<=57)o(l-48+52);else if(l===43||l===45)o(62);else if(l===47||l===95)o(63);else{if(l===61)break;throw new SyntaxError(`Unexpected base64 character ${i[a]}`)}}let s=n;for(;e>0;)o(0);return w.wrap(r).slice(0,s)}var Bu="0123456789abcdef";function vt({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=Bu[n>>>4],t+=Bu[n&15]}return t}function vr(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]=Vu(i,e++)<<4|Vu(i,e++);return w.wrap(t)}function Vu(i,t){let e=i.charCodeAt(t);if(e>=48&&e<=57)return e-48;if(e>=97&&e<=102)return e-87;if(e>=65&&e<=70)return e-55;throw new SyntaxError(`Invalid hex character at position ${t}`)}function J(i,t,e){let n=null,r=null;if(typeof e.value=="function"?(n="value",r=e.value,r.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof e.get=="function"&&(n="get",r=e.get),!r)throw new Error("not supported");let o=`$memoize$${t}`;e[n]=function(...s){return this.hasOwnProperty(o)||Object.defineProperty(this,o,{configurable:!1,enumerable:!1,writable:!1,value:r.apply(this,s)}),this[o]}}function Ai(i,t=0){if(!i||t>200)return i;if(typeof i=="object"){switch(i.$mid){case 1:return h.revive(i);case 2:return new RegExp(i.source,i.flags);case 17:return new Date(i.source)}if(i instanceof w||i instanceof Uint8Array)return i;if(Array.isArray(i))for(let e=0;e<i.length;++e)i[e]=Ai(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=Ai(i[e],t+1))}return i}function Ir(i){switch(i){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function Zo(i){switch(i){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function br(i){let t=0;for(let e=0;;e+=7){let n=i.read(1);if(t|=(n.buffer[0]&127)<<e,!(n.buffer[0]&128))return t}}var Rh=cn(0);function yr(i,t){if(t===0){i.write(Rh);return}let e=0;for(let r=t;r!==0;r=r>>>7)e++;let n=w.alloc(e);for(let r=0;t!==0;r++)n.buffer[r]=t&127,t=t>>>7,t>0&&(n.buffer[r]|=128);i.write(n)}var ki=class{constructor(t){this.buffer=t;this.pos=0}read(t){let e=this.buffer.slice(this.pos,this.pos+t);return this.pos+=e.byteLength,e}},es=class{constructor(){this.buffers=[]}get buffer(){return w.concat(this.buffers)}write(t){this.buffers.push(t)}};function cn(i){let t=w.alloc(1);return t.writeUInt8(i,0),t}var Mn={Undefined:cn(0),String:cn(1),Buffer:cn(2),VSBuffer:cn(3),Array:cn(4),Object:cn(5),Uint:cn(6)};function Di(i,t){if(typeof t>"u")i.write(Mn.Undefined);else if(typeof t=="string"){let e=w.fromString(t);i.write(Mn.String),yr(i,e.byteLength),i.write(e)}else if(w.isNativeBuffer(t)){let e=w.wrap(t);i.write(Mn.Buffer),yr(i,e.byteLength),i.write(e)}else if(t instanceof w)i.write(Mn.VSBuffer),yr(i,t.byteLength),i.write(t);else if(Array.isArray(t)){i.write(Mn.Array),yr(i,t.length);for(let e of t)Di(i,e)}else if(typeof t=="number"&&(t|0)===t)i.write(Mn.Uint),yr(i,t);else{let e=w.fromString(JSON.stringify(t));i.write(Mn.Object),yr(i,e.byteLength),i.write(e)}}function Tr(i){switch(i.read(1).readUInt8(0)){case 0:return;case 1:return i.read(br(i)).toString();case 2:return i.read(br(i)).buffer;case 3:return i.read(br(i));case 4:{let e=br(i),n=[];for(let r=0;r<e;r++)n.push(Tr(i));return n}case 5:return JSON.parse(i.read(br(i)).toString());case 6:return br(i)}}var Oi=class{constructor(t,e,n=null,r=1e3){this.protocol=t;this.ctx=e;this.logger=n;this.timeoutDelay=r;this.channels=new Map;this.activeRequests=new Map;this.pendingRequests=new Map;this.protocolListener=this.protocol.onMessage(o=>this.onRawMessage(o)),this.sendResponse({type:200})}registerChannel(t,e){this.channels.set(t,e),setTimeout(()=>this.flushPendingRequests(t),0)}sendResponse(t){switch(t.type){case 200:{let e=this.send([t.type]);this.logger?.logOutgoing(e,0,1,Zo(t.type));return}case 201:case 202:case 204:case 203:{let e=this.send([t.type,t.id],t.data);this.logger?.logOutgoing(e,t.id,1,Zo(t.type),t.data);return}}}send(t,e=void 0){let n=new es;return Di(n,t),Di(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onRawMessage(t){let e=new ki(t),n=Tr(e),r=Tr(e),o=n[0];switch(o){case 100:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ir(o)}: ${n[2]}.${n[3]}`,r),this.onPromise({type:o,id:n[1],channelName:n[2],name:n[3],arg:r});case 102:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ir(o)}: ${n[2]}.${n[3]}`,r),this.onEventListen({type:o,id:n[1],channelName:n[2],name:n[3],arg:r});case 101:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ir(o)}`),this.disposeActiveRequest({type:o,id:n[1]});case 103:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ir(o)}`),this.disposeActiveRequest({type:o,id:n[1]})}}onPromise(t){let e=this.channels.get(t.channelName);if(!e){this.collectPendingRequest(t);return}let n=new Re,r;try{r=e.call(this.ctx,t.name,t.arg,n.token)}catch(a){r=Promise.reject(a)}let o=t.id;r.then(a=>{this.sendResponse({id:o,data:a,type:201})},a=>{a instanceof Error?this.sendResponse({id:o,data:{message:a.message,name:a.name,stack:a.stack?a.stack.split(`
`):void 0},type:202}):this.sendResponse({id:o,data:a,type:203})}).finally(()=>{s.dispose(),this.activeRequests.delete(t.id)});let s=A(()=>n.cancel());this.activeRequests.set(t.id,s)}onEventListen(t){let e=this.channels.get(t.channelName);if(!e){this.collectPendingRequest(t);return}let n=t.id,o=e.listen(this.ctx,t.name,t.arg)(s=>this.sendResponse({id:n,data:s,type:204}));this.activeRequests.set(t.id,o)}disposeActiveRequest(t){let e=this.activeRequests.get(t.id);e&&(e.dispose(),this.activeRequests.delete(t.id))}collectPendingRequest(t){let e=this.pendingRequests.get(t.channelName);e||(e=[],this.pendingRequests.set(t.channelName,e));let n=setTimeout(()=>{console.error(`Unknown channel: ${t.channelName}`),t.type===100&&this.sendResponse({id:t.id,data:{name:"Unknown channel",message:`Channel name '${t.channelName}' timed out after ${this.timeoutDelay}ms`,stack:void 0},type:202})},this.timeoutDelay);e.push({request:t,timeoutTimer:n})}flushPendingRequests(t){let e=this.pendingRequests.get(t);if(e){for(let n of e)switch(clearTimeout(n.timeoutTimer),n.request.type){case 100:this.onPromise(n.request);break;case 102:this.onEventListen(n.request);break}this.pendingRequests.delete(t)}}dispose(){this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),je(this.activeRequests.values()),this.activeRequests.clear()}};var Sr=class{constructor(t,e=null){this.protocol=t;this.isDisposed=!1;this.state=0;this.activeRequests=new Set;this.handlers=new Map;this.lastRequestId=0;this._onDidInitialize=new _;this.onDidInitialize=this._onDidInitialize.event;this.protocolListener=this.protocol.onMessage(n=>this.onBuffer(n)),this.logger=e}getChannel(t){let e=this;return{call(n,r,o){return e.isDisposed?Promise.reject(new Oe):e.requestPromise(t,n,r,o)},listen(n,r){return e.isDisposed?X.None:e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=nt.None){let o=this.lastRequestId++,a={id:o,type:100,channelName:t,name:e,arg:n};if(r.isCancellationRequested)return Promise.reject(new Oe);let l,c;return new Promise((u,f)=>{if(r.isCancellationRequested)return f(new Oe);let g=()=>{let y=S=>{switch(S.type){case 201:this.handlers.delete(o),u(S.data);break;case 202:{this.handlers.delete(o);let I=new Error(S.data.message);I.stack=Array.isArray(S.data.stack)?S.data.stack.join(`
`):S.data.stack,I.name=S.data.name,f(I);break}case 203:this.handlers.delete(o),f(S.data);break}};this.handlers.set(o,y),this.sendRequest(a)},b=null;this.state===1?g():(b=hr(y=>this.whenInitialized()),b.then(()=>{b=null,g()}));let v=()=>{b?(b.cancel(),b=null):this.sendRequest({id:o,type:101}),f(new Oe)};l=r.onCancellationRequested(v),c={dispose:er(()=>{v(),l.dispose()})},this.activeRequests.add(c)}).finally(()=>{l?.dispose(),this.activeRequests.delete(c)})}requestEvent(t,e,n){let r=this.lastRequestId++,s={id:r,type:102,channelName:t,name:e,arg:n},a=null,l=new _({onWillAddFirstListener:()=>{let p=()=>{this.activeRequests.add(l),this.sendRequest(s)};this.state===1?p():(a=hr(u=>this.whenInitialized()),a.then(()=>{a=null,p()}))},onDidRemoveLastListener:()=>{a?(a.cancel(),a=null):(this.activeRequests.delete(l),this.sendRequest({id:r,type:103})),this.handlers.delete(r)}}),c=p=>l.fire(p.data);return this.handlers.set(r,c),l.event}sendRequest(t){switch(t.type){case 100:case 102:{let e=this.send([t.type,t.id,t.channelName,t.name],t.arg);this.logger?.logOutgoing(e,t.id,0,`${Ir(t.type)}: ${t.channelName}.${t.name}`,t.arg);return}case 101:case 103:{let e=this.send([t.type,t.id]);this.logger?.logOutgoing(e,t.id,0,Ir(t.type));return}}}send(t,e=void 0){let n=new es;return Di(n,t),Di(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new ki(t),n=Tr(e),r=Tr(e),o=n[0];switch(o){case 200:return this.logger?.logIncoming(t.byteLength,0,0,Zo(o)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,Zo(o),r),this.onResponse({type:n[0],id:n[1],data:r})}}onResponse(t){if(t.type===200){this.state=1,this._onDidInitialize.fire();return}this.handlers.get(t.id)?.(t)}get onDidInitializePromise(){return X.toPromise(this.onDidInitialize)}whenInitialized(){return this.state===1?Promise.resolve():this.onDidInitializePromise}dispose(){this.isDisposed=!0,this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),je(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};R([J],Sr.prototype,"onDidInitializePromise",1);var ts=class{constructor(t,e,n){this.channels=new Map;this._connections=new Set;this._onDidAddConnection=new _;this.onDidAddConnection=this._onDidAddConnection.event;this._onDidRemoveConnection=new _;this.onDidRemoveConnection=this._onDidRemoveConnection.event;this.disposables=new M;this.disposables.add(t(({protocol:r,onDidClientDisconnect:o})=>{let s=X.once(r.onMessage);this.disposables.add(s(a=>{let l=new ki(a),c=Tr(l),p=new Oi(r,c,e,n),u=new Sr(r,e);this.channels.forEach((g,b)=>p.registerChannel(b,g));let f={channelServer:p,channelClient:u,ctx:c};this._connections.add(f),this._onDidAddConnection.fire(f),this.disposables.add(o(()=>{p.dispose(),u.dispose(),this._connections.delete(f),this._onDidRemoveConnection.fire(f)}))}))}))}get connections(){let t=[];return this._connections.forEach(e=>t.push(e)),t}getChannel(t,e){let n=this;return{call(r,o,s){let a;if(mi(e)){let c=Id(n.connections.filter(e));a=c?Promise.resolve(c):X.toPromise(X.filter(n.onDidAddConnection,e))}else a=e.routeCall(n,r,o);let l=a.then(c=>c.channelClient.getChannel(t));return Ku(l).call(r,o,s)},listen(r,o){if(mi(e))return n.getMulticastEvent(t,e,r,o);let s=e.routeEvent(n,r,o).then(a=>a.channelClient.getChannel(t));return Ku(s).listen(r,o)}}}getMulticastEvent(t,e,n,r){let o=this,s,a=new _({onWillAddFirstListener:()=>{s=new M;let l=new No,c=new Map,p=f=>{let b=f.channelClient.getChannel(t).listen(n,r),v=l.add(b);c.set(f,v)},u=f=>{let g=c.get(f);g&&(g.dispose(),c.delete(f))};o.connections.filter(e).forEach(p),X.filter(o.onDidAddConnection,e)(p,void 0,s),o.onDidRemoveConnection(u,void 0,s),l.event(a.fire,a,s),s.add(l)},onDidRemoveLastListener:()=>{s?.dispose(),s=void 0}});return o.disposables.add(a),a.event}registerChannel(t,e){this.channels.set(t,e);for(let n of this._connections)n.channelServer.registerChannel(t,e)}dispose(){this.disposables.dispose();for(let t of this._connections)t.channelClient.dispose(),t.channelServer.dispose();this._connections.clear(),this.channels.clear(),this._onDidAddConnection.dispose(),this._onDidRemoveConnection.dispose()}};function Ku(i){return{call(t,e,n){return i.then(r=>r.call(t,e,n))},listen(t,e){let n=new Si;return i.then(r=>n.input=r.listen(t,e)),n.event}}}function zu(i){let t=!1;return{call(e,n,r){return t?i.call(e,n,r):Nt(0).then(()=>t=!0).then(()=>i.call(e,n,r))},listen(e,n){if(t)return i.listen(e,n);let r=new Si;return Nt(0).then(()=>t=!0).then(()=>r.input=i.listen(e,n)),r.event}}}var xr;(r=>{function i(o,s,a){let l=o,c=a?.disableMarshalling,p=new Map;for(let u in l)e(u)&&p.set(u,X.buffer(l[u],u,!0,void 0,s));return new class{listen(u,f,g){let b=p.get(f);if(b)return b;let v=l[f];if(typeof v=="function"){if(n(f))return v.call(l,g);if(e(f))return p.set(f,X.buffer(l[f],f,!0,void 0,s)),p.get(f)}throw new xt(`Event not found: ${f}`)}call(u,f,g){let b=l[f];if(typeof b=="function"){if(!c&&Array.isArray(g))for(let y=0;y<g.length;y++)g[y]=Ai(g[y]);let v=b.apply(l,g);return v instanceof Promise||(v=Promise.resolve(v)),v}throw new xt(`Method not found: ${f}`)}}}r.fromService=i;function t(o,s){let a=s?.disableMarshalling;return new Proxy({},{get(l,c){if(typeof c=="string")return s?.properties?.has(c)?s.properties.get(c):n(c)?function(p){return o.listen(c,p)}:e(c)?o.listen(c):async function(...p){let u;s&&!fi(s.context)?u=[s.context,...p]:u=p;let f=await o.call(c,u);return a?f:Ai(f)};throw new xt(`Property not found: ${String(c)}`)}})}r.toService=t;function e(o){return o[0]==="o"&&o[1]==="n"&&cl(o.charCodeAt(2))}function n(o){return/^onDynamic/.test(o)&&cl(o.charCodeAt(9))}})(xr||={});import{fork as ev}from"child_process";function Gu(i){let t=i;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function Eh(i){let t=[],e;try{let n=JSON.parse(i.arguments),r=n[n.length-1];r&&r.__$stack&&(n.pop(),e=r.__$stack),t.push(...n)}catch{t.push("Unable to log remote console arguments",i.arguments)}return{args:t,stack:e}}function Ph(i){if(!i)return i;let t=i.indexOf(`
`);return t===-1?i:i.substring(0,t)}function Ju(i,t){let{args:e,stack:n}=Eh(i),r=typeof e[0]=="string"&&e.length===1,o=Ph(n);o&&(o=`(${o.trim()})`);let s=[];if(typeof e[0]=="string"?o&&r?s=[`%c[${t}] %c${e[0]} %c${o}`,_r("blue"),_r(""),_r("grey")]:s=[`%c[${t}] %c${e[0]}`,_r("blue"),_r(""),...e.slice(1)]:s=[`%c[${t}]%`,_r("blue"),...e],o&&!r&&s.push(o),typeof console[i.severity]!="function")throw new Error("Unknown console method");console[i.severity].apply(console,s)}function _r(i){return`color: ${i}`}function Pl(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"?Pl(n):n}),t}var Ah=Object.prototype.hasOwnProperty;function Al(i,t){return El(i,t,new Set)}function El(i,t,e){if(fi(i))return i;let n=t(i);if(typeof n<"u")return n;if(Array.isArray(i)){let r=[];for(let o of i)r.push(El(o,t,e));return r}if(Po(i)){if(e.has(i))throw new Error("Cannot clone recursive data-structure");e.add(i);let r={};for(let o in i)Ah.call(i,o)&&(r[o]=El(i[o],t,e));return e.delete(i),r}return i}function Wt(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(!Wt(i[e],t[e]))return!1}else{let r=[];for(n in i)r.push(n);r.sort();let o=[];for(n in t)o.push(n);if(o.sort(),!Wt(r,o))return!1;for(e=0;e<r.length;e++)if(!Wt(i[r[e]],t[r[e]]))return!1}return!0}import*as Xh from"child_process";import{promises as eT}from"fs";function Qu(i){i&&(delete i.DEBUG,ge&&delete i.LD_PRELOAD)}import*as V from"fs";import{tmpdir as Uh}from"os";import{promisify as Fi}from"util";var kh=new _t(1e4);function Li(i){return Yu(i,"NFC",kh)}var Dh=new _t(1e4);function Oh(i){return Yu(i,"NFD",Dh)}var Lh=/[^\u0000-\u0080]/;function Yu(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let r;return Lh.test(i)?r=i.normalize(t):r=i,e.set(i,r),r}var Fh=(function(){let i=new _t(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let r=Oh(e).replace(t,""),o=(r.length===e.length?r:e).toLowerCase();return i.set(e,o),o}})();async function ep(i,t=0,e){if(fl(i))throw new Error("rimraf - will refuse to recursively delete root");return t===0?kl(i):Nh(i,e)}async function Nh(i,t=yu(Uh())){try{try{await V.promises.rename(i,t)}catch(e){return e.code==="ENOENT"?void 0:kl(i)}kl(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function kl(i){return V.promises.rm(i,{recursive:!0,force:!0,maxRetries:3})}async function ns(i,t){try{return await Xu(i,t)}catch(e){if(e.code==="ENOENT"&&B&&fl(i))try{return await Xu(`${i}.`,t)}catch{}throw e}}async function Xu(i,t){return Wh(await(t?Mh(i):V.promises.readdir(i)))}async function Mh(i){try{return await V.promises.readdir(i,{withFileTypes:!0})}catch(n){n.code!=="ENOENT"&&console.warn("[node.js fs] readdir with filetypes failed with error: ",n)}let t=[],e=await ns(i);for(let n of e){let r=!1,o=!1,s=!1;try{let a=await V.promises.lstat(W(i,n));r=a.isFile(),o=a.isDirectory(),s=a.isSymbolicLink()}catch(a){a.code!=="ENOENT"&&console.warn("[node.js fs] unexpected error from lstat after readdir: ",a)}t.push({name:n,isFile:()=>r,isDirectory:()=>o,isSymbolicLink:()=>s})}return t}function Wh(i){return i.map(t=>typeof t=="string"?Le?Li(t):t:(t.name=Le?Li(t.name):t.name,t))}async function Bh(i){let t=await ns(i),e=[];for(let n of t)await Je.existsDirectory(W(i,n))&&e.push(n);return e}var Je;(n=>{async function i(r){let o;try{if(o=await V.promises.lstat(r),!o.isSymbolicLink())return{stat:o}}catch{}try{return{stat:await V.promises.stat(r),symbolicLink:o?.isSymbolicLink()?{dangling:!1}:void 0}}catch(s){if(s.code==="ENOENT"&&o)return{stat:o,symbolicLink:{dangling:!0}};if(B&&s.code==="EACCES")try{return{stat:await V.promises.stat(await V.promises.readlink(r)),symbolicLink:{dangling:!1}}}catch(a){if(a.code==="ENOENT"&&o)return{stat:o,symbolicLink:{dangling:!0}};throw a}throw s}}n.stat=i;async function t(r){try{let{stat:o,symbolicLink:s}=await n.stat(r);return o.isFile()&&s?.dangling!==!0}catch{}return!1}n.existsFile=t;async function e(r){try{let{stat:o,symbolicLink:s}=await n.stat(r);return o.isDirectory()&&s?.dangling!==!0}catch{}return!1}n.existsDirectory=e})(Je||={});var Vh=new fr;function $h(i,t,e){return Vh.queueFor(h.file(i),()=>{let n=jh(e);return new Promise((r,o)=>Hh(i,t,n,s=>s?o(s):r()))},gt)}var tp=!0;function qh(i){tp=i}function Hh(i,t,e,n){if(!tp)return V.writeFile(i,t,{mode:e.mode,flag:e.flag},n);V.open(i,e.flag,e.mode,(r,o)=>{if(r)return n(r);V.writeFile(o,t,s=>{if(s)return V.close(o,()=>n(s));V.fdatasync(o,a=>(a&&(console.warn("[node.js fs] fdatasync is now disabled for this session because it failed: ",a),qh(!1)),V.close(o,l=>n(l))))})})}function jh(i){return i?{mode:typeof i.mode=="number"?i.mode:438,flag:typeof i.flag=="string"?i.flag:"w"}:{mode:438,flag:"w"}}async function Kh(i,t,e=6e4){if(i!==t)try{B&&typeof e=="number"?await np(i,t,Date.now(),e):await V.promises.rename(i,t)}catch(n){if(i.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||i.endsWith("."))await rp(i,t,{preserveSymlinks:!1}),await ep(i,1);else throw n}}async function np(i,t,e,n,r=0){try{return await V.promises.rename(i,t)}catch(o){if(o.code!=="EACCES"&&o.code!=="EPERM"&&o.code!=="EBUSY")throw o;if(Date.now()-e>=n)throw console.error(`[node.js fs] rename failed after ${r} retries with error: ${o}`),o;if(r===0){let s=!1;try{let{stat:a}=await Je.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw o}return await Nt(Math.min(100,r*10)),np(i,t,e,n,r+1)}}async function rp(i,t,e){return ip(i,t,{root:{source:i,target:t},options:e,handledSourcePaths:new Set})}var Zu=511;async function ip(i,t,e){if(e.handledSourcePaths.has(i))return;e.handledSourcePaths.add(i);let{stat:n,symbolicLink:r}=await Je.stat(i);if(r){if(e.options.preserveSymlinks)try{return await Jh(i,t,e)}catch{}if(r.dangling)return}return n.isDirectory()?zh(i,t,n.mode&Zu,e):Gh(i,t,n.mode&Zu)}async function zh(i,t,e,n){await V.promises.mkdir(t,{recursive:!0,mode:e});let r=await ns(i);for(let o of r)await ip(W(i,o),W(t,o),n)}async function Gh(i,t,e){await V.promises.copyFile(i,t),await V.promises.chmod(t,e)}async function Jh(i,t,e){let n=await V.promises.readlink(i);Ft(n,e.root.source,!ge)&&(n=W(e.root.target,n.substr(e.root.source.length+1))),await V.promises.symlink(n,t)}async function Qh(i){try{return await Fi(V.realpath)(i)}catch{let t=Yh(i);return await V.promises.access(t,V.constants.R_OK),t}}function Yh(i){return ur(ct(i),Te)}var ce=new class{get read(){return(i,t,e,n,r)=>new Promise((o,s)=>{V.read(i,t,e,n,r,(a,l,c)=>a?s(a):o({bytesRead:l,buffer:c}))})}get write(){return(i,t,e,n,r)=>new Promise((o,s)=>{V.write(i,t,e,n,r,(a,l,c)=>a?s(a):o({bytesWritten:l,buffer:c}))})}get fdatasync(){return Fi(V.fdatasync)}get open(){return Fi(V.open)}get close(){return Fi(V.close)}get ftruncate(){return Fi(V.ftruncate)}async exists(i){try{return await V.promises.access(i),!0}catch{return!1}}get readdir(){return ns}get readDirsInDir(){return Bh}get writeFile(){return $h}get rm(){return ep}get rename(){return Kh}get copy(){return rp}get realpath(){return Qh}};function sp(i=Ce){return i.comspec||"cmd.exe"}function ap(i){let t=[],e=!1,n=function(r){if(e){t.push(r);return}(!i.send(r,s=>{if(s&&console.error(s),e=!1,t.length>0){let a=t.slice(0);t=[],a.forEach(l=>n(l))}})||B)&&(e=!0)};return{send:n}}var rs=class extends Oi{constructor(t){super({send:e=>{try{process.send?.(e.buffer.toString("base64"))}catch{}},onMessage:X.fromNodeEventEmitter(process,"message",e=>w.wrap(Buffer.from(e,"base64")))},t),process.once("disconnect",()=>this.dispose())}},is=class{constructor(t,e){this.modulePath=t;this.options=e;this.activeRequests=new Set;this.channels=new Map;this._onDidProcessExit=new _;this.onDidProcessExit=this._onDidProcessExit.event;let n=e.timeout||6e4;this.disposeDelayer=new wi(n),this.child=null,this._client=null}getChannel(t){let e=this;return{call(n,r,o){return e.requestPromise(t,n,r,o)},listen(n,r){return e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=nt.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(r.isCancellationRequested)return Promise.reject(xo());this.disposeDelayer.cancel();let o=this.getCachedChannel(t),s=hr(c=>o.call(e,n,c)),a=r.onCancellationRequested(()=>s.cancel()),l=A(()=>s.cancel());return this.activeRequests.add(l),s.finally(()=>{a.dispose(),this.activeRequests.delete(l),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}),s}requestEvent(t,e,n){if(!this.disposeDelayer)return X.None;this.disposeDelayer.cancel();let r,o=new _({onWillAddFirstListener:()=>{r=this.getCachedChannel(t).listen(e,n)(o.fire,o),this.activeRequests.add(r)},onDidRemoveLastListener:()=>{this.activeRequests.delete(r),r.dispose(),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}});return o.event}get client(){if(!this._client){let t=this.options.args||[],e=Object.create(null);e.env={...Pl(process.env),VSCODE_PARENT_PID:String(process.pid)},this.options.env&&(e.env={...e.env,...this.options.env}),this.options.freshExecArgv&&(e.execArgv=[]),typeof this.options.debug=="number"&&(e.execArgv=["--nolazy","--inspect="+this.options.debug]),typeof this.options.debugBrk=="number"&&(e.execArgv=["--nolazy","--inspect-brk="+this.options.debugBrk]),e.execArgv===void 0&&(e.execArgv=process.execArgv.filter(u=>!/^--inspect(-brk)?=/.test(u)).filter(u=>!u.startsWith("--vscode-"))),Qu(e.env),this.child=ev(this.modulePath,t,e);let n=new _,o=X.fromNodeEventEmitter(this.child,"message",u=>u)(u=>{if(Gu(u)){Ju(u,`IPC Library: ${this.options.serverName}`);return}n.fire(w.wrap(Buffer.from(u,"base64")))}),s=this.options.useQueue?ap(this.child):this.child,a=u=>this.child?.connected&&s.send(u.buffer.toString("base64")),l=n.event,c={send:a,onMessage:l};this._client=new Sr(c);let p=()=>this.disposeClient();process.once("exit",p),this.child.on("error",u=>console.warn('IPC "'+this.options.serverName+'" errored with '+u)),this.child.on("exit",(u,f)=>{process.removeListener("exit",p),o.dispose(),this.activeRequests.forEach(g=>je(g)),this.activeRequests.clear(),u!==0&&f!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+u+" and signal "+f),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:u,signal:f})})}return this._client}getCachedChannel(t){let e=this.channels.get(t);return e||(e=this.client.getChannel(t),this.channels.set(t,e)),e}disposeClient(){this._client&&(this.child&&(this.child.kill(),this.child=null),this._client=null,this.channels.clear())}dispose(){this._onDidProcessExit.dispose(),this.disposeDelayer?.cancel(),this.disposeDelayer=void 0,this.disposeClient(),this.activeRequests.clear()}};function os(i){return!!i.parentPort}var Dl=class{constructor(t){this.port=t;this.onMessage=X.fromNodeEventEmitter(this.port,"message",e=>e.data?w.wrap(e.data):w.alloc(0)),t.start()}send(t){this.port.postMessage(t.buffer)}disconnect(){this.port.close()}},ss=class i extends ts{static getOnDidClientConnect(t){Ld(os(process),"Electron Utility Process");let e=new _;return process.parentPort.on("message",n=>{if(t?.handledClientConnection(n))return;let r=n.ports.at(0);r&&e.fire(r)}),X.map(e.event,n=>({protocol:new Dl(n),onDidClientDisconnect:X.fromNodeEventEmitter(n,"close")}))}constructor(t){super(i.getOnDidClientConnect(t))}};var ee=(function(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let i=new Uint8Array(16),t=[];for(let e=0;e<256;e++)t.push(e.toString(16).padStart(2,"0"));return function(){crypto.getRandomValues(i),i[6]=i[6]&15|64,i[8]=i[8]&63|128;let n=0,r="";return r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+="-",r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r+=t[i[n++]],r}})();import*as So from"os";import*as Io from"inspector";var bt;(r=>{r.serviceIds=new Map,r.DI_TARGET="$di$target",r.DI_DEPENDENCIES="$di$dependencies";function n(o){return o[r.DI_DEPENDENCIES]||[]}r.getServiceDependencies=n})(bt||={});var dn=ie("instantiationService");function tv(i,t,e){t[bt.DI_TARGET]===t?t[bt.DI_DEPENDENCIES].push({id:i,index:e}):(t[bt.DI_DEPENDENCIES]=[{id:i,index:e}],t[bt.DI_TARGET]=t)}function ie(i){if(bt.serviceIds.has(i))return bt.serviceIds.get(i);let t=function(e,n,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");tv(t,e,r)};return t.toString=()=>i,bt.serviceIds.set(i,t),t}var de;(n=>{function i(r,o){return h.from({scheme:r,path:`/${o}`})}n.uri=i;function t(r){return(typeof r=="string"?h.parse(r):r).path.substring(1)}n.id=t;function e(r){return(typeof r=="string"?h.parse(r):r).scheme||void 0}n.provider=e})(de||={});var BT=ie("agentService"),VT=ie("agentHostService");function Ol(i,t){return t&&(i.stack||i.stacktrace)?m(116,null,cp(i),lp(i.stack)||lp(i.stacktrace)):cp(i)}function lp(i){return Array.isArray(i)?i.join(`
`):i}function cp(i){return i.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${i.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof i.code=="string"&&typeof i.errno=="number"&&typeof i.syscall=="string"?m(115,null,i.message):i.message||m(113,null)}function Wn(i=null,t=!1){if(!i)return m(113,null);if(Array.isArray(i)){let e=wo(i),n=Wn(e[0],t);return e.length>1?m(114,null,n,e.length):n}if(Be(i))return i;if(i.detail){let e=i.detail;if(e.error)return Ol(e.error,t);if(e.exception)return Ol(e.exception,t)}return i.stack?Ol(i,t):i.message?i.message:m(113,null)}var Ke=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return fp(t,this)}},dp=new Map,Ll=new WeakMap;function fp(i,t){let e=Ll.get(i);if(e)return e;let n=nv(i,t);if(n){let r=dp.get(n)??0;r++,dp.set(n,r);let o=r===1?n:`${n}#${r}`;return Ll.set(i,o),o}}function nv(i,t){let e=Ll.get(i);if(e)return e;let n=t.owner?iv(t.owner)+".":"",r,o=t.debugNameSource;if(o!==void 0)if(typeof o=="function"){if(r=o(),r!==void 0)return n+r}else return n+o;let s=t.referenceFn;if(s!==void 0&&(r=Ui(s),r!==void 0))return n+r;if(t.owner!==void 0){let a=rv(t.owner,i);if(a!==void 0)return n+a}}function rv(i,t){for(let e in i)if(i[e]===t)return e}var up=new Map,pp=new WeakMap;function iv(i){let t=pp.get(i);if(t)return t;let e=Fl(i)??"Object",n=up.get(e)??0;n++,up.set(e,n);let r=n===1?e:`${e}#${n}`;return pp.set(i,r),r}function Fl(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function Ui(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function dt(i,t){return i===t}function ov(){return(i,t)=>i===t}function sv(i,t,e){return di(i,t,e??dt)}function av(i){return(t,e)=>di(t,e,i??dt)}function as(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(!as(i[e],t[e]))return!1;return!0}if(i&&typeof i=="object"&&t&&typeof t=="object"&&Object.getPrototypeOf(i)===Object.prototype&&Object.getPrototypeOf(t)===Object.prototype){let e=i,n=t,r=Object.keys(e),o=Object.keys(n),s=new Set(o);if(r.length!==o.length)return!1;for(let a of r)if(!s.has(a)||!as(e[a],n[a]))return!1;return!0}return!1}function lv(){return(i,t)=>as(i,t)}function cv(i,t){return JSON.stringify(i)===JSON.stringify(t)}function dv(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function uv(){return(i,t)=>i.equals(t)}function pv(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function fv(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var mv;(u=>(u.strict=dt,u.strictC=ov,u.array=sv,u.arrayC=av,u.structural=as,u.structuralC=lv,u.jsonStringify=cv,u.jsonStringifyC=dv,u.thisC=uv,u.ifDefined=pv,u.ifDefinedC=fv))(mv||={});function Ul(i){let t=new Error("BugIndicatingErrorRecovery: "+i);ve(t),console.error("recovered from an error that indicates a bug",t)}var Bn;function Ni(i){Bn?Bn instanceof ls?Bn.loggers.push(i):Bn=new ls([Bn,i]):Bn=i}function ue(){return Bn}var Nl;function mp(i){Nl=i}function gp(i){Nl&&Nl(i)}var ls=class{constructor(t){this.loggers=t}handleObservableCreated(t,e){for(let n of this.loggers)n.handleObservableCreated(t,e)}handleOnListenerCountChanged(t,e){for(let n of this.loggers)n.handleOnListenerCountChanged(t,e)}handleObservableUpdated(t,e){for(let n of this.loggers)n.handleObservableUpdated(t,e)}handleAutorunCreated(t,e){for(let n of this.loggers)n.handleAutorunCreated(t,e)}handleAutorunDisposed(t){for(let e of this.loggers)e.handleAutorunDisposed(t)}handleAutorunDependencyChanged(t,e,n){for(let r of this.loggers)r.handleAutorunDependencyChanged(t,e,n)}handleAutorunStarted(t){for(let e of this.loggers)e.handleAutorunStarted(t)}handleAutorunFinished(t){for(let e of this.loggers)e.handleAutorunFinished(t)}handleDerivedDependencyChanged(t,e,n){for(let r of this.loggers)r.handleDerivedDependencyChanged(t,e,n)}handleDerivedCleared(t){for(let e of this.loggers)e.handleDerivedCleared(t)}handleBeginTransaction(t){for(let e of this.loggers)e.handleBeginTransaction(t)}handleEndTransaction(t){for(let e of this.loggers)e.handleEndTransaction(t)}};function wr(i,t){let e=new Vn(i,t);try{i(e)}finally{e.finish()}}function Ml(i,t,e){i?t(i):wr(t,e)}var Vn=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];ue()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():Ui(this._fn)}updateObserver(t,e){if(!this._updatingObservers){Ul("Transaction already finished!"),wr(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){Ul("transaction.finish() has already been called!");return}for(let e=0;e<t.length;e++){let{observer:n,observable:r}=t[e];n.endUpdate(r)}this._updatingObservers=null,ue()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var _e;(n=>{let i=!1;function t(){i=!0}n.enable=t;function e(){if(!i)return;let r=Error,o=r.stackTraceLimit;r.stackTraceLimit=3;let s=new Error().stack;return r.stackTraceLimit=o,Wl.fromStack(s,2)}n.ofCaller=e})(_e||={});var Wl=class i{constructor(t,e,n,r){this.fileName=t;this.line=e;this.column=n;this.id=r}static fromStack(t,e){let n=t.split(`
`),r=gv(n[e+1]);if(r)return new i(r.fileName,r.line,r.column,r.id)}};function gv(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 Bl;function hp(i){Bl=i}var vp;function bp(i){vp=i}var yp;function Ip(i){yp=i}var Vl;function Sp(i){Vl=i}var cs=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=_e.ofCaller()){let r=e===void 0?void 0:t,o=e===void 0?t:e;return Bl({owner:r,debugName:()=>{let s=Ui(o);if(s!==void 0)return s;let l=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(o.toString());if(l)return`${this.debugName}.${l[2]}`;if(!r)return`${this.debugName} (mapped)`},debugReferenceFn:o},s=>o(this.read(s),s),n)}flatten(){return Bl({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(vp(this,e)),this}keepObserved(t){return t.add(yp(this)),this}get debugValue(){return this.get()}get debug(){return new $l(this)}},$l=class{constructor(t){this.observable=t}getDependencyGraph(){return Vl(this.observable,{type:"dependencies"})}getObserverGraph(){return Vl(this.observable,{type:"observers"})}},yt=class extends cs{constructor(e){super();this._observers=new Set;ue()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&ue()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&ue()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!ue();return gp(this),e||ue()?.handleObservableCreated(this,_e.ofCaller()),this}debugGetObservers(){return this._observers}};function $n(i,t,e=_e.ofCaller()){let n;return typeof i=="string"?n=new Ke(void 0,i,void 0):n=new Ke(i,void 0,void 0),new Bt(n,t,dt,e)}var Bt=class extends yt{constructor(e,n,r,o){super(o);this._debugNameData=e;this._equalityComparator=r;this._value=n,ue()?.handleObservableUpdated(this,{hadValue:!1,newValue:n,change:void 0,didChange:!0,oldValue:void 0})}get debugName(){return this._debugNameData.getDebugName(this)??"ObservableValue"}get(){return this._value}set(e,n,r){if(r===void 0&&this._equalityComparator(this._value,e))return;let o;n||(n=o=new Vn(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),ue()?.handleObservableUpdated(this,{oldValue:s,newValue:e,change:r,didChange:!0,hadValue:!0});for(let a of this._observers)n.updateObserver(a,this),a.handleChange(this,r)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}};function hv(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Vt=class{constructor(t,e,n,r){this._debugNameData=t;this._runFn=e;this._changeTracker=n;this._state=2;this._updateCount=0;this._disposed=!1;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._isRunning=!1;this._iteration=0;this._store=void 0;this._delayedStore=void 0;this._changeSummary=this._changeTracker?.createChangeSummary(void 0),ue()?.handleAutorunCreated(this,r),this._run(),Zt(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(),ue()?.handleAutorunDisposed(this),en(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){ue()?.handleAutorunStarted(this);let e=this._changeSummary,n=this._delayedStore;n!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&(this._changeTracker.beforeUpdate?.(this,e),this._changeSummary=this._changeTracker.createChangeSummary(e)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,e)}catch(r){Yt(r)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||ue()?.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--}ui(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){ue()?.handleAutorunDependencyChanged(this,t,e);try{(!this._changeTracker||this._changeTracker.handleChange({changedObservable:t,change:e,didChange:r=>r===t},this._changeSummary))&&(this._checkIterations(),this._state=2)}catch(n){Yt(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new ae("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 ae("Cannot access store after dispose");return this._store===void 0&&(this._store=new M),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new ae("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new M),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:hv(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?(Yt(new ae(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function Cr(i,t=_e.ofCaller()){return new Vt(new Ke(void 0,void 0,i),i,void 0,t)}function vv(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Ue=class extends yt{constructor(e,n,r,o=void 0,s,a){super(a);this._debugNameData=e;this._computeFn=n;this._changeTracker=r;this._handleLastObserverRemoved=o;this._equalityComparator=s;this._state=0;this._value=void 0;this._updateCount=0;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._changeSummary=void 0;this._isUpdating=!1;this._isComputing=!1;this._didReportChange=!1;this._isInBeforeUpdate=!1;this._isReaderValid=!1;this._store=void 0;this._delayedStore=void 0;this._removedObserverToCallEndUpdateOn=null;this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}onLastObserverRemoved(){this._state=0,this._value=void 0,ue()?.handleDerivedCleared(this);for(let e of this._dependencies)e.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),this._handleLastObserverRemoved?.()}get(){if(this._isComputing,this._observers.size===0){let n;try{this._isReaderValid=!0;let r;this._changeTracker&&(r=this._changeTracker.createChangeSummary(void 0),this._changeTracker.beforeUpdate?.(this,r)),n=this._computeFn(this,r)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),n}else{do{if(this._state===1){for(let n of this._dependencies)if(n.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){let e=!1;this._isComputing=!0,this._didReportChange=!1;let n=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=n;try{let r=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,this._changeTracker.beforeUpdate?.(this,r),this._isInBeforeUpdate=!1,this._changeSummary=this._changeTracker?.createChangeSummary(r));let o=this._state!==0,s=this._value;this._state=3;let a=this._delayedStore;a!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,r)}finally{this._isReaderValid=!1;for(let l of this._dependenciesToBeRemoved)l.removeObserver(this);this._dependenciesToBeRemoved.clear(),a!==void 0&&a.dispose()}e=this._didReportChange||o&&!this._equalityComparator(s,this._value),ue()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:o})}catch(r){Yt(r)}if(this._isComputing=!1,!this._didReportChange&&e)for(let r of this._observers)r.handleChange(this,void 0);else this._didReportChange=!1}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){if(this._isUpdating)throw new ae("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{let n=this._updateCount===1;if(this._state===3&&(this._state=1,!n))for(let r of this._observers)r.handlePossibleChange(this);if(n)for(let r of this._observers)r.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){let n=[...this._observers];for(let r of n)r.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){let r=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(let o of r)o.endUpdate(this)}}ui(()=>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){ue()?.handleDerivedDependencyChanged(this,e,n);let r=!1;try{r=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:n,didChange:s=>s===e},this._changeSummary):!0}catch(s){Yt(s)}let o=this._state===3;if(r&&(this._state===1||o)&&(this._state=2,o))for(let s of this._observers)s.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new ae("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 M),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new M),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:vv(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this.beginUpdate(this);try{this._isComputing?this._state=2:this._recompute()}finally{this.endUpdate(this)}}setValue(e,n,r){this._value=e;let o=this._observers;n.updateObserver(this,this);for(let s of o)s.handleChange(this,r)}};function ql(i,t,e=_e.ofCaller()){return new Ue(new Ke(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??dt,e)}hp(ql);function Rr(...i){let t,e,n,r;return i.length===2?[e,n]=i:[t,e,n,r]=i,new ut(new Ke(t,void 0,n),e,n,()=>ut.globalTransaction,dt,r??_e.ofCaller())}var ut=class extends yt{constructor(e,n,r,o,s,a){super(a);this._debugNameData=e;this.event=n;this._getValue=r;this._getTransaction=o;this._equalityComparator=s;this._hasValue=!1;this.handleEvent=e=>{let n=this._getValue(e),r=this._value,o=!this._hasValue||!this._equalityComparator(r,n),s=!1;o&&(this._value=n,this._hasValue&&(s=!0,Ml(this._getTransaction(),a=>{ue()?.handleObservableUpdated(this,{oldValue:r,newValue:n,change:void 0,didChange:o,hadValue:this._hasValue});for(let l of this._observers)a.updateObserver(l,this),l.handleChange(this,void 0)},()=>{let a=this.getDebugName();return"Event fired"+(a?`: ${a}`:"")})),this._hasValue=!0),s||ue()?.handleObservableUpdated(this,{oldValue:r,newValue:n,change:void 0,didChange:o,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){let e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this._subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this._subscription.dispose(),this._subscription=void 0,this._hasValue=!1,this._value=void 0}get(){return this._subscription?(this._hasValue||this.handleEvent(void 0),this._value):this._getValue(void 0)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}};(e=>{e.Observer=ut;function t(n,r){let o=!1;ut.globalTransaction===void 0&&(ut.globalTransaction=n,o=!0);try{r()}finally{o&&(ut.globalTransaction=void 0)}}e.batchEventsGlobally=t})(Rr||={});function xp(i){let t=new ds(!1,void 0);return i.addObserver(t),A(()=>{i.removeObserver(t)})}Ip(xp);function _p(i,t){let e=new ds(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return A(()=>{i.removeObserver(e)})}bp(_p);var ds=class{constructor(t,e){this._forceRecompute=t;this._handleValue=e;this._counter=0}beginUpdate(t){this._counter++}endUpdate(t){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(t.get()):t.reportChanges()),this._counter--}handlePossibleChange(t){}handleChange(t,e){}};var us;function Cp(i){us||(us=new Mi,Ni(us)),us.addFilteredObj(i)}var Mi=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 xv([Er(Cv("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[Er(" "),pt(rt(t.oldValue,70),{color:"red",strikeThrough:!0}),Er(" "),pt(rt(t.newValue,60),{color:"green"})]:[Er(" (unchanged)")]:[Er(" "),pt(rt(t.newValue,60),{color:"green"}),Er(" (initial)")]}handleObservableCreated(t){if(t instanceof Ue){let e=t;if(this.changedObservablesSets.set(e,new Set),!1){let r=[];e.__debugUpdating=r;let o=e.beginUpdate;e.beginUpdate=a=>(r.push(a),o.apply(e,[a]));let s=e.endUpdate;e.endUpdate=a=>{let l=r.indexOf(a);return l===-1&&console.error("endUpdate called without beginUpdate",e.debugName,a.debugName),r.splice(l,1),s.apply(e,[a])}}}}handleOnListenerCountChanged(t,e){}handleObservableUpdated(t,e){if(this._isIncluded(t)){if(t instanceof Ue){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Pr("observable value changed"),pt(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return pt(" (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([Pr("derived recomputed"),pt(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([Pr("derived cleared"),pt(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Pr("observable from event triggered"),pt(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([Pr("autorun"),pt(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([Pr("transaction"),pt(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function xv(i){let t=new Array,e=[],n="";function r(s){if("length"in s)for(let a of s)a&&r(a);else"text"in s?(n+=`%c${s.text}`,t.push(s.style),s.data&&e.push(...s.data)):"data"in s&&e.push(...s.data)}r(i);let o=[n,...t];return o.push(...e),o}function Er(i){return pt(i,{color:"black"})}function Pr(i){return pt(Rv(`${i}: `,10),{color:"black",bold:!0})}function pt(i,t={color:"black"}){function e(r){return Object.entries(r).reduce((o,[s,a])=>`${o}${s}:${a};`,"")}let n={color:t.color};return t.strikeThrough&&(n["text-decoration"]="line-through"),t.bold&&(n["font-weight"]="bold"),{text:i,style:e(n)}}function rt(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)?_v(i,t):wv(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function _v(i,t){let e="[ ",n=!0;for(let r of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${rt(r,t-e.length)}`}return e+=" ]",e}function wv(i,t){if(typeof i.toString=="function"&&i.toString!==Object.prototype.toString){let o=i.toString();return o.length<=t?o:o.substring(0,t-3)+"..."}let e=Fl(i),n=e?e+"(":"{ ",r=!0;for(let[o,s]of Object.entries(i)){if(r||(n+=", "),n.length-5>t){n+="...";break}r=!1,n+=`${o}: ${rt(s,t-n.length)}`}return n+=e?")":" }",n}function Cv(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function Rv(i,t){for(;i.length<t;)i+=" ";return i}var ps=class i{constructor(t,e){this._channelFactory=t;this._getHandler=e;this._channel=this._channelFactory({handleNotification:o=>{let s=o,a=this._getHandler().notifications[s[0]];if(!a)throw new Error(`Unknown notification "${s[0]}"!`);a(...s[1])},handleRequest:o=>{let s=o;try{return{type:"result",value:this._getHandler().requests[s[0]](...s[1])}}catch(a){return{type:"error",value:a}}}});let n=new Proxy({},{get:(o,s)=>async(...a)=>{let l=await this._channel.sendRequest([s,a]);if(l.type==="error")throw l.value;return l.value}}),r=new Proxy({},{get:(o,s)=>(...a)=>{this._channel.sendNotification([s,a])}});this.api={notifications:r,requests:n}}static createHost(t,e){return new i(t,e)}static createClient(t,e){return new i(t,e)}};function Rp(i,t){let e=globalThis,n=[],r,{channel:o,handler:s}=Ev({sendNotification:l=>{r?r.sendNotification(l):n.push(l)}}),a;return(e.$$debugValueEditor_debugChannels??(e.$$debugValueEditor_debugChannels={}))[i]=l=>{a=t(),r=l;for(let c of n)l.sendNotification(c);return n=[],s},ps.createClient(o,()=>{if(!a)throw new Error("Not supported");return a})}function Ev(i){let t;return{channel:n=>(t=n,{sendNotification:r=>{i.sendNotification(r)},sendRequest:r=>{throw new Error("not supported")}}),handler:{handleRequest:n=>n.type==="notification"?t?.handleNotification(n.data):t?.handleRequest(n.data)}}}var fs=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 Hl(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?Hl(i[e],t[e]):i[e]=t[e]}function jl(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"?jl(i[e],t[e]):i[e]=t[e]}var ms=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=Rp("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(tr)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(tr),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(tr)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(tr)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof Ue)n.debugSetValue(e);else if(n instanceof Bt)n.debugSetValue(e);else if(n instanceof ut)n.debugSetValue(e);else throw new ae("Observable is not supported");let r=[...n.debugGetObservers()];for(let o of r)o.beginUpdate(n);for(let o of r)o.handleChange(n,void 0);for(let o of r)o.endUpdate(n)},getValue:t=>{let e=this._aliveInstances.get(t);if(e instanceof Ue)return rt(e.debugGetState().value,200);if(e instanceof Bt)return rt(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 ae("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof Ue)e.debugRecompute();else if(e instanceof Vt)e.debugRerun();else throw new ae("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new fs;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};_e.enable()}static{this._instance=void 0}static getInstance(){return i._instance===void 0&&(i._instance=new i),i._instance}getTransactionState(){let t=[],e=[...this._activeTransactions];if(e.length===0)return;let n=e.flatMap(o=>o.debugGetUpdatingObservers()??[]).map(o=>o.observer),r=new Set;for(;n.length>0;){let o=n.shift();if(r.has(o))continue;r.add(o);let s=this._getInfo(o,a=>{r.has(a)||n.push(a)});s&&t.push(s)}return{names:e.map(o=>o.getDebugName()??"tx"),affected:t}}_getObservableInfo(t){let e=this._instanceInfos.get(t);if(!e){ve(new ae("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){ve(new ae("No info found"));return}return e}_getInfo(t,e){if(t instanceof Ue){let n=[...t.debugGetObservers()];for(let l of n)e(l);let r=this._getObservableInfo(t);if(!r)return;let o=t.debugGetState(),s={name:t.debugName,instanceId:r.instanceId,updateCount:o.updateCount},a=[...r.changedObservables].map(l=>this._instanceInfos.get(l)?.instanceId).filter(tr);if(o.isComputing)return{...s,type:"observable/derived",state:"updating",changedDependencies:a,initialComputation:!1};switch(o.state){case 0:return{...s,type:"observable/derived",state:"noValue"};case 3:return{...s,type:"observable/derived",state:"upToDate"};case 2:return{...s,type:"observable/derived",state:"stale",changedDependencies:a};case 1:return{...s,type:"observable/derived",state:"possiblyStale"}}}else if(t instanceof Vt){let n=this._getAutorunInfo(t);if(!n)return;let r={name:t.debugName,instanceId:n.instanceId,updateCount:n.updateCount},o=[...n.changedObservables].map(s=>this._instanceInfos.get(s).instanceId);if(t.debugGetState().isRunning)return{...r,type:"autorun",state:"updating",changedDependencies:o};switch(t.debugGetState().state){case 3:return{...r,type:"autorun",state:"upToDate"};case 2:return{...r,type:"autorun",state:"stale",changedDependencies:o};case 1:return{...r,type:"autorun",state:"possiblyStale"}}}}_formatObservable(t){let e=this._getObservableInfo(t);if(e)return{name:t.debugName,instanceId:e.instanceId}}_formatObserver(t){if(t instanceof Ue)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){jl(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:Hl(this._pendingChanges,t),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(t,e){if(!e)return-1;let n=this._declarations.get(e.id);return n===void 0&&(n={id:this._declarationId++,type:t,url:e.fileName,line:e.line,column:e.column},this._declarations.set(e.id,n),this._handleChange({decls:{[n.id]:n}})),n.id}handleObservableCreated(t,e){let r={declarationId:this._getDeclarationId("observable/value",e),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,r)}handleOnListenerCountChanged(t,e){let n=this._getObservableInfo(t);if(n){if(n.listenerCount===0&&e>0){let r=t instanceof Ue?"observable/derived":"observable/value";this._aliveInstances.set(n.instanceId,t),this._handleChange({instances:{[n.instanceId]:{instanceId:n.instanceId,declarationId:n.declarationId,formattedValue:n.lastValue,type:r,name:t.debugName}}})}else n.listenerCount>0&&e===0&&(this._handleChange({instances:{[n.instanceId]:null}}),this._aliveInstances.delete(n.instanceId));n.listenerCount=e}}handleObservableUpdated(t,e){if(t instanceof Ue){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=rt(e.newValue,30),n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:n.lastValue}}}))}handleAutorunCreated(t,e){let r={declarationId:this._getDeclarationId("autorun",e),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(t,r),this._aliveInstances.set(r.instanceId,t),r&&this._handleChange({instances:{[r.instanceId]:{instanceId:r.instanceId,declarationId:r.declarationId,runCount:0,type:"autorun",name:t.debugName}}})}handleAutorunDisposed(t){let e=this._getAutorunInfo(t);e&&(this._handleChange({instances:{[e.instanceId]:null}}),this._instanceInfos.delete(t),this._aliveInstances.delete(e.instanceId))}handleAutorunDependencyChanged(t,e,n){let r=this._getAutorunInfo(t);r&&r.changedObservables.add(e)}handleAutorunStarted(t){}handleAutorunFinished(t){let e=this._getAutorunInfo(t);e&&(e.changedObservables.clear(),e.updateCount++,this._handleChange({instances:{[e.instanceId]:{runCount:e.updateCount}}}))}handleDerivedDependencyChanged(t,e,n){let r=this._getObservableInfo(t);r&&r.changedObservables.add(e)}_handleDerivedRecomputed(t,e){let n=this._getObservableInfo(t);if(!n)return;let r=rt(e.newValue,30);n.updateCount++,n.changedObservables.clear(),n.lastValue=r,n.listenerCount>0&&this._handleChange({instances:{[n.instanceId]:{formattedValue:r,recomputationCount:n.updateCount}}})}handleDerivedCleared(t){let e=this._getObservableInfo(t);e&&(e.lastValue=void 0,e.changedObservables.clear(),e.listenerCount>0&&this._handleChange({instances:{[e.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(t){this._activeTransactions.add(t)}handleEndTransaction(t){this._activeTransactions.delete(t)}};function Ep(i,t){let e=t?.debugNamePostProcessor??(o=>o),n=qn.from(i,e);if(!n)return"";let r=new Set;return t.type==="observers"?Ap(n,0,r,t).trim():Pp(n,0,r,t).trim()}function Pp(i,t,e,n){let r="		".repeat(t),o=[];if(e.has(i.sourceObj))return o.push(`${r}* ${i.type} ${i.name} (already listed)`),o.join(`
`);if(e.add(i.sourceObj),o.push(`${r}* ${i.type} ${i.name}:`),o.push(`${r}  value: ${rt(i.value,50)}`),o.push(`${r}  state: ${i.state}`),i.dependencies.length>0){o.push(`${r}  dependencies:`);for(let a of i.dependencies){let l=qn.from(a,n.debugNamePostProcessor??(c=>c))??qn.unknown(a);o.push(Pp(l,t+1,e,n))}}return o.join(`
`)}function Ap(i,t,e,n){let r="		".repeat(t),o=[];if(e.has(i.sourceObj))return o.push(`${r}* ${i.type} ${i.name} (already listed)`),o.join(`
`);if(e.add(i.sourceObj),o.push(`${r}* ${i.type} ${i.name}:`),o.push(`${r}  value: ${rt(i.value,50)}`),o.push(`${r}  state: ${i.state}`),i.observers.length>0){o.push(`${r}  observers:`);for(let a of i.observers){let l=qn.from(a,n.debugNamePostProcessor??(c=>c))??qn.unknown(a);o.push(Ap(l,t+1,e,n))}}return o.join(`
`)}var qn=class i{constructor(t,e,n,r,o,s,a){this.sourceObj=t;this.name=e;this.type=n;this.value=r;this.state=o;this.dependencies=s;this.observers=a}static from(t,e){if(t instanceof Vt){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof Ue){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 Bt){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof ut){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",[],[])}};Sp(Ep);mp(Cp);var Pv=!1;Pv&&Ni(new Mi);Ce&&Ce.VSCODE_DEV_DEBUG_OBSERVABLES&&Ni(ms.getInstance());var Kl=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]}},zl=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?Vo(t,this._value,0,t.length,this._from,this._to):Ln(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},gs=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?Vo(t,this._value,0,t.length,this._from,this._to):Ln(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var Gl=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 gs(!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 ll(t,this._value.scheme);if(this._states[this._stateIdx]===2)return ll(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return Ti(t,this._value.query);if(this._states[this._stateIdx]===5)return Ti(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}},$t=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}},Ar=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 un=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new Gl(t,e))}static forPaths(t=!1){return new i(new gs(void 0,!t))}static forStrings(){return new i(new Kl)}static forConfigKeys(){return new i(new zl)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);Va(n);for(let r of n)this.set(r,t)}else{let n=t.slice(0);Va(n);for(let r of n)this.set(r[0],r[1])}}set(t,e){let n=this._iter.reset(t),r;this._root||(this._root=new Ar,this._root.segment=n.value());let o=[];for(r=this._root;;){let a=n.cmp(r.segment);if(a>0)r.left||(r.left=new Ar,r.left.segment=n.value()),o.push([-1,r]),r=r.left;else if(a<0)r.right||(r.right=new Ar,r.right.segment=n.value()),o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),r.mid||(r.mid=new Ar,r.mid.segment=n.value()),o.push([0,r]),r=r.mid;else break}let s=$t.unwrap(r.value);r.value=$t.wrap(e),r.key=t;for(let a=o.length-1;a>=0;a--){let l=o[a][1];l.updateHeight();let c=l.balanceFactor();if(c<-1||c>1){let p=o[a][0],u=o[a+1][0];if(p===1&&u===1)o[a][1]=l.rotateLeft();else if(p===-1&&u===-1)o[a][1]=l.rotateRight();else if(p===1&&u===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(p===-1&&u===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return s}get(t){return $t.unwrap(this._getNode(t)?.value)}_getNode(t){let e=this._iter.reset(t),n=this._root;for(;n;){let r=e.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else if(e.hasNext())e.next(),n=n.mid;else break}return n}has(t){let e=this._getNode(t);return!(e?.value===void 0&&e?.mid===void 0)}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,e){let n=this._iter.reset(t),r=[],o=this._root;for(;o;){let s=n.cmp(o.segment);if(s>0)r.push([-1,o]),o=o.left;else if(s<0)r.push([1,o]),o=o.right;else if(n.hasNext())n.next(),r.push([0,o]),o=o.mid;else break}if(o){if(e?(o.left=void 0,o.mid=void 0,o.right=void 0,o.height=1):(o.key=void 0,o.value=void 0),!o.mid&&!o.value)if(o.left&&o.right){let s=[[1,o]],a=this._min(o.right,s);if(a.key){o.key=a.key,o.value=a.value,o.segment=a.segment;let l=a.right;if(s.length>1){let[p,u]=s[s.length-1];switch(p){case-1:u.left=l;break;case 0:Eo(!1);case 1:Eo(!1)}}else o.right=l;let c=this._balanceByStack(s);if(r.length>0){let[p,u]=r[r.length-1];switch(p){case-1:u.left=c;break;case 0:u.mid=c;break;case 1:u.right=c;break}}else this._root=c}}else{let s=o.left??o.right;if(r.length>0){let[a,l]=r[r.length-1];switch(a){case-1:l.left=s;break;case 0:l.mid=s;break;case 1:l.right=s;break}}else this._root=s}this._root=this._balanceByStack(r)??this._root}}_min(t,e){for(;t.left;)e.push([-1,t]),t=t.left;return t}_balanceByStack(t){for(let e=t.length-1;e>=0;e--){let n=t[e][1];n.updateHeight();let r=n.balanceFactor();if(r>1?(n.right.balanceFactor()>=0||(n.right=n.right.rotateRight()),t[e][1]=n.rotateLeft()):r<-1&&(n.left.balanceFactor()<=0||(n.left=n.left.rotateLeft()),t[e][1]=n.rotateRight()),e>0)switch(t[e-1][0]){case-1:t[e-1][1].left=t[e][1];break;case 1:t[e-1][1].right=t[e][1];break;case 0:t[e-1][1].mid=t[e][1];break}else return t[0][1]}}findSubstr(t){let e=this._iter.reset(t),n=this._root,r;for(;n;){let o=e.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else if(e.hasNext())e.next(),r=$t.unwrap(n.value)||r,n=n.mid;else break}return n&&$t.unwrap(n.value)||r}findSuperstr(t){return this._findSuperstrOrElement(t,!1)}_findSuperstrOrElement(t,e){let n=this._iter.reset(t),r=this._root;for(;r;){let o=n.cmp(r.segment);if(o>0)r=r.left;else if(o<0)r=r.right;else if(n.hasNext())n.next(),r=r.mid;else return r.mid?this._entries(r.mid):e?$t.unwrap(r.value):void 0}}hasElementOrSubtree(t){return this._findSuperstrOrElement(t,!0)!==void 0}forEach(t){for(let[e,n]of this)t(n,e)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(t){let e=[];return this._dfsEntries(t,e),e[Symbol.iterator]()}_dfsEntries(t,e){t&&(t.left&&this._dfsEntries(t.left,e),t.value!==void 0&&e.push([t.key,$t.unwrap(t.value)]),t.mid&&this._dfsEntries(t.mid,e),t.right&&this._dfsEntries(t.right,e))}_isBalanced(){let t=e=>{if(!e)return!0;let n=e.balanceFactor();return n<-1||n>1?!1:t(e.left)&&t(e.right)};return t(this._root)}};var Qe=ie("fileService");function Ht(i){return i.create===!0}function it(i){return!!(i.capabilities&2)}function kp(i){return!!(i.capabilities&524288)}function Jl(i){return!!(i.capabilities&8)}function Dp(i){return!!(i.capabilities&131072)}function Op(i){return!!(i.capabilities&262144)}function jt(i){return!!(i.capabilities&4)}function bs(i){return!!(i.capabilities&16)}function ys(i){return it(i)?!!(i.capabilities&16384):!1}function Ql(i){return it(i)?!!(i.capabilities&32768):!1}function Lp(i){return!!(i.capabilities&65536)}var kr=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let r=new i(e.toString(),n);return Av(r,n),r}};function Z(i,t){return kr.create(i,t)}function Kt(i){return i||Z(m(2191,null),"Unknown")}function Av(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function Ct(i){if(!i)return"Unknown";if(i instanceof kr)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 Yl(i){if(i instanceof Pe)return i.fileOperationResult;switch(Ct(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 qt=class{constructor(t,e,n){this.resource=t;this.operation=e;this.target=n}isOperation(t){return this.operation===t}};var hs=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new Ge(()=>{let t=un.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new Ge(()=>{let t=un.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new Ge(()=>{let t=un.forUris(()=>this.ignorePathCasing);return t.fill(this.rawDeleted.map(e=>[e,!0])),t});this.rawAdded=[];this.rawUpdated=[];this.rawDeleted=[];for(let n of t){switch(n.type){case 1:this.rawAdded.push(n.resource);break;case 0:this.rawUpdated.push(n.resource);break;case 2:this.rawDeleted.push(n.resource);break}this.correlationId!==i.MIXED_CORRELATION&&(typeof n.cId=="number"?this.correlationId===void 0?this.correlationId=n.cId:this.correlationId!==n.cId&&(this.correlationId=i.MIXED_CORRELATION):this.correlationId!==void 0&&(this.correlationId=i.MIXED_CORRELATION))}}static{this.MIXED_CORRELATION=null}contains(t,...e){return this.doContains(t,{includeChildren:!1},...e)}affects(t,...e){return this.doContains(t,{includeChildren:!0},...e)}doContains(t,e,...n){if(!t)return!1;let r=n.length>0;return!!((!r||n.includes(1))&&(this.added.value.get(t)||e.includeChildren&&this.added.value.findSuperstr(t))||(!r||n.includes(0))&&(this.updated.value.get(t)||e.includeChildren&&this.updated.value.findSuperstr(t))||(!r||n.includes(2))&&(this.deleted.value.findSubstr(t)||e.includeChildren&&this.deleted.value.findSuperstr(t)))}gotAdded(){return this.rawAdded.length>0}gotDeleted(){return this.rawDeleted.length>0}gotUpdated(){return this.rawUpdated.length>0}correlates(t){return this.correlationId===t}hasCorrelation(){return typeof this.correlationId=="number"}};function Fp(i,t,e){return!i||!t||i===t||t.length>i.length?!1:(t.charAt(t.length-1)!==Te&&(t+=Te),e?rn(i,t):i.indexOf(t)===0)}var Pe=class extends Error{constructor(e,n,r){super(e);this.fileOperationResult=n;this.options=r}},Dr=class extends Pe{constructor(e,n,r,o){super(e,n,o);this.fileOperationResult=n;this.size=r}},Or=class extends Pe{constructor(e,n,r){super(e,2,r);this.stat=n}};var Is="";function Xl(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var vs=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 pi(t)||(t=0),t<i.KB?m(2186,null,t.toFixed(0)):t<i.MB?m(2188,null,(t/i.KB).toFixed(2)):t<i.GB?m(2189,null,(t/i.MB).toFixed(2)):t<i.TB?m(2187,null,(t/i.GB).toFixed(2)):m(2190,null,(t/i.TB).toFixed(2))}};var zt=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var Zl=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},Wi=class{constructor(t){this._hashFn=t;this._nodes=new Map}roots(){let t=[];for(let e of this._nodes.values())e.outgoing.size===0&&t.push(e);return t}insertEdge(t,e){let n=this.lookupOrInsertNode(t),r=this.lookupOrInsertNode(e);n.outgoing.set(r.key,r),r.incoming.set(n.key,n)}removeNode(t){let e=this._hashFn(t);this._nodes.delete(e);for(let n of this._nodes.values())n.outgoing.delete(e),n.incoming.delete(e)}lookupOrInsertNode(t){let e=this._hashFn(t),n=this._nodes.get(e);return n||(n=new Zl(e,t),this._nodes.set(e,n)),n}lookup(t){return this._nodes.get(this._hashFn(t))}isEmpty(){return this._nodes.size===0}toString(){let t=[];for(let[e,n]of this._nodes)t.push(`${e}
	(-> incoming)[${[...n.incoming.keys()].join(", ")}]
	(outgoing ->)[${[...n.outgoing.keys()].join(",")}]
`);return t.join(`
`)}findCycleSlow(){for(let[t,e]of this._nodes){let n=new Set([t]),r=this._findCycle(e,n);if(r)return r}}_findCycle(t,e){for(let[n,r]of t.outgoing){if(e.has(n))return[...e,n].join(" -> ");e.add(n);let o=this._findCycle(r,e);if(o)return o;e.delete(n)}}};var pn=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 kv=!1,Ss=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},Lr=class i{constructor(t=new pn,e=!1,n,r=kv){this._services=t;this._strict=e;this._parent=n;this._enableTracing=r;this._isDisposed=!1;this._servicesToMaybeDispose=new Set;this._children=new Set;this._activeInstantiations=new Set;this._services.set(dn,this),this._globalGraph=r?n?._globalGraph??new Wi(o=>o):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,je(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)ko(t)&&t.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(t,e){this._throwIfDisposed();let n=this,r=new class extends i{dispose(){n._children.delete(r),super.dispose()}}(t,this._strict,this,this._enableTracing);return this._children.add(r),e?.add(r),r}invokeFunction(t,...e){this._throwIfDisposed();let n=Bi.traceInvocation(this._enableTracing,t),r=!1;try{return t({get:s=>{if(r)throw _o("service accessor is only valid during the invocation of its target method");let a=this._getOrCreateServiceInstance(s,n);return a||this._throwIfStrict(`[invokeFunction] unknown service '${s}'`,!1),a}},...e)}finally{r=!0,n.stop()}}createInstance(t,...e){this._throwIfDisposed();let n,r;return t instanceof zt?(n=Bi.traceCreation(this._enableTracing,t.ctor),r=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=Bi.traceCreation(this._enableTracing,t),r=this._createInstance(t,e,n)),n.stop(),r}_createInstance(t,e=[],n){let r=bt.getServiceDependencies(t).sort((a,l)=>a.index-l.index),o=[];for(let a of r){let l=this._getOrCreateServiceInstance(a.id,n);l||this._throwIfStrict(`[createInstance] ${t.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}let s=r.length>0?r[0].index:e.length;if(e.length!==s){console.trace(`[createInstance] First service dependency of ${t.name} at position ${s+1} conflicts with ${e.length} static arguments`);let a=s-e.length;a>0?e=e.concat(new Array(a)):e=e.slice(0,s)}return Reflect.construct(t,e.concat(o))}_setCreatedServiceInstance(t,e){if(this._services.get(t)instanceof zt)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 zt?this._safeCreateAndCacheServiceInstance(t,n,e.branch(t,!0)):(e.branch(t,!1),n)}_safeCreateAndCacheServiceInstance(t,e,n){if(this._activeInstantiations.has(t))throw new Error(`illegal state - RECURSIVELY instantiating service '${t}'`);this._activeInstantiations.add(t);try{return this._createAndCacheServiceInstance(t,e,n)}finally{this._activeInstantiations.delete(t)}}_createAndCacheServiceInstance(t,e,n){let r=new Wi(l=>l.id.toString()),o=0,s=[{id:t,desc:e,_trace:n}],a=new Set;for(;s.length;){let l=s.pop();if(!a.has(String(l.id))){if(a.add(String(l.id)),r.lookupOrInsertNode(l),o++>1e3)throw new Ss(r);for(let c of bt.getServiceDependencies(l.desc.ctor)){let p=this._getServiceInstanceOrDescriptor(c.id);if(p||this._throwIfStrict(`[createInstance] ${t} depends on ${c.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(c.id)),p instanceof zt){let u={id:c.id,desc:p,_trace:l._trace.branch(c.id,!0)};r.insertEdge(l,u),s.push(u)}}}}for(;;){let l=r.roots();if(l.length===0){if(!r.isEmpty())throw new Ss(r);break}for(let{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof zt){let u=this._createServiceInstanceWithOwner(c.id,c.desc.ctor,c.desc.staticArguments,c.desc.supportsDelayedInstantiation,c._trace);this._setCreatedServiceInstance(c.id,u)}r.removeNode(c)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,e,n=[],r,o){if(this._services.get(t)instanceof zt)return this._createServiceInstance(t,e,n,r,o,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(t,e,n,r,o);throw new Error(`illegalState - creating UNKNOWN service instance ${e.name}`)}_createServiceInstance(t,e,n=[],r,o,s){if(r){let a=new i(void 0,this._strict,this,this._enableTracing);a._globalGraphImplicitDependency=String(t);let l=new Map,c=new zo(()=>{let p=a._createInstance(e,n,o);for(let[u,f]of l){let g=p[u];if(typeof g=="function")for(let b of f)b.disposable=g.apply(p,b.listener)}return l.clear(),s.add(p),p});return new Proxy(Object.create(null),{get(p,u){if(!c.isInitialized&&typeof u=="string"&&(u.startsWith("onDid")||u.startsWith("onWill"))){let b=l.get(u);return b||(b=new hi,l.set(u,b)),(y,S,I)=>{if(c.isInitialized)return c.value[u](y,S,I);{let T={listener:[y,S,I],disposable:void 0},K=b.push(T);return A(()=>{K(),T.disposable?.dispose()})}}}if(u in p)return p[u];let f=c.value,g=f[u];return typeof g!="function"||(g=g.bind(f),p[u]=g),g},set(p,u,f){return c.value[u]=f,!0},getPrototypeOf(p){return e.prototype}})}else{let a=this._createInstance(e,n,o);return s.add(a),a}}_throwIfStrict(t,e){if(e&&console.warn(t),this._strict)throw new Error(t)}};var Bi=class i{constructor(t,e){this.type=t;this.name=e;this._start=Date.now();this._dep=[]}static{this.all=new Set}static{this._None=new class extends i{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(t,e){return t?new i(2,e.name||new Error().stack.split(`
`).slice(3,4).join(`
`)):i._None}static traceCreation(t,e){return t?new i(1,e.name):i._None}static{this._totals=0}branch(t,e){let n=new i(3,t.toString());return this._dep.push([t,e,n]),n}stop(){let t=Date.now()-this._start;i._totals+=t;let e=!1;function n(o,s){let a=[],l=new Array(o+1).join("	");for(let[c,p,u]of s._dep)if(p&&u){e=!0,a.push(`${l}CREATES -> ${c}`);let f=n(o+1,u);f&&a.push(f)}else a.push(`${l}uses -> ${c}`);return a.join(`
`)}let r=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${n(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${i._totals.toFixed(2)}ms)`];(t>2||e)&&i.all.add(r.join(`
`))}};function fn(i){return tc(i,0)}function tc(i,t){switch(typeof i){case"object":return i===null?Gt(349,t):Array.isArray(i)?Ov(i,t):Lv(i,t);case"string":return Np(i,t);case"boolean":return Dv(i,t);case"number":return Gt(i,t);case"undefined":return Gt(937,t);default:return Gt(617,t)}}function Gt(i,t){return(t<<5)-t+i|0}function Dv(i,t){return Gt(i?433:863,t)}function Np(i,t){t=Gt(149417,t);for(let e=0,n=i.length;e<n;e++)t=Gt(i.charCodeAt(e),t);return t}function Ov(i,t){return t=Gt(104579,t),i.reduce((e,n)=>tc(n,e),t)}function Lv(i,t){return t=Gt(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=Np(n,e),tc(i[n],e)),t)}function ec(i,t,e=32){let n=e-t,r=~((1<<n)-1);return(i<<t|(r&i)>>>n)>>>0}function Vi(i,t=32){return i instanceof ArrayBuffer?vt(w.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var Up=class i{constructor(){this._h0=1732584193;this._h1=4023233417;this._h2=2562383102;this._h3=271733878;this._h4=3285377520;this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}static{this._bigBlock32=new DataView(new ArrayBuffer(320))}update(t){let e=t.length;if(e===0)return;let n=this._buff,r=this._buffLen,o=this._leftoverHighSurrogate,s,a;for(o!==0?(s=o,a=-1,o=0):(s=t.charCodeAt(0),a=0);;){let l=s;if(pu(s))if(a+1<e){let c=t.charCodeAt(a+1);dl(c)?(a++,l=fu(s,c)):l=65533}else{o=s;break}else dl(s)&&(l=65533);if(r=this._push(n,r,l),a++,a<e)s=t.charCodeAt(a);else break}this._buffLen=r,this._leftoverHighSurrogate=o}_push(t,e,n){return n<128?t[e++]=n:n<2048?(t[e++]=192|(n&1984)>>>6,t[e++]=128|(n&63)>>>0):n<65536?(t[e++]=224|(n&61440)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0):(t[e++]=240|(n&1835008)>>>18,t[e++]=128|(n&258048)>>>12,t[e++]=128|(n&4032)>>>6,t[e++]=128|(n&63)>>>0),e>=64&&(this._step(),e-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),e}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),Vi(this._h0)+Vi(this._h1)+Vi(this._h2)+Vi(this._h3)+Vi(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,ec(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,r=this._h1,o=this._h2,s=this._h3,a=this._h4,l,c,p;for(let u=0;u<80;u++)u<20?(l=r&o|~r&s,c=1518500249):u<40?(l=r^o^s,c=1859775393):u<60?(l=r&o|r&s|o&s,c=2400959708):(l=r^o^s,c=3395469782),p=ec(n,5)+l+a+c+t.getUint32(u*4,!1)&4294967295,a=s,s=o,o=ec(r,30),r=n,n=p;this._h0=this._h0+n&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}};function nc(...i){switch(i.length){case 1:return m(1989,null,i[0]);case 2:return m(1990,null,i[0],i[1]);case 3:return m(1991,null,i[0],i[1],i[2]);default:return}}var Fv=m(1988,null),Uv=m(1987,null),mn=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 _o(`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(nc("==","=~"));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(nc("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(nc("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(t){return this._isAtEnd()||this._input.charCodeAt(this._current)!==t?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(t){this._tokens.push({type:t,offset:this._start})}_error(t){let e=this._start,n=this._input.substring(this._start,this._current),r={type:19,offset:this._start,lexeme:n};this._errors.push({offset:e,lexeme:n,additionalInfo:t}),this._tokens.push(r)}_string(){this.stringRe.lastIndex=this._start;let t=this.stringRe.exec(this._input);if(t){this._current=this._start+t[0].length;let e=this._input.substring(this._start,this._current),n=i._keywords.get(e);n?this._addToken(n):this._tokens.push({type:17,lexeme:e,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(Fv);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(Uv);return}let o=this._input.charCodeAt(t);if(e)e=!1;else if(o===47&&!n){t++;break}else o===91?n=!0:o===92?e=!0:o===93&&(n=!1);t++}for(;t<this._input.length&&i._regexFlags.has(this._input.charCodeAt(t));)t++;this._current=t;let r=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:r,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};var Ae=new Map;Ae.set("false",!1);Ae.set("true",!0);Ae.set("isMac",Le);Ae.set("isLinux",ge);Ae.set("isWindows",B);Ae.set("isWeb",rr);Ae.set("isMacNative",Le&&!rr);Ae.set("isEdge",Gd);Ae.set("isFirefox",Kd);Ae.set("isChrome",Ya);Ae.set("isSafari",zd);var Mv=Object.prototype.hasOwnProperty;var Wv={regexParsingWithErrorRecovery:!0},Bv=m(1968,null),Vv=m(1969,null),$v=m(1971,null),Mp=m(1967,null),qv=m(1974,null),Hv=m(1975,null),jv=m(1972,null),Kv=m(1973,null),rc=class i{constructor(t=Wv){this._config=t;this._scanner=new mn;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:Bv,offset:0,lexeme:"",additionalInfo:Vv});return}this._tokens=this._scanner.reset(t).scan(),this._current=0,this._parsingErrors=[];try{let e=this._expr();if(!this._isAtEnd()){let n=this._peek(),r=n.type===17?Hv:void 0;throw this._parsingErrors.push({message:qv,offset:n.offset,lexeme:mn.getLexeme(n),additionalInfo:r}),i._parseError}return e}catch(e){if(e!==i._parseError)throw e;return}}_expr(){return this._or()}_or(){let t=[this._and()];for(;this._matchOne(16);){let e=this._and();t.push(e)}return t.length===1?t[0]:Ne.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:Ne.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),qe.INSTANCE;case 12:return this._advance(),ze.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,Mp),e?.negate()}case 17:return this._advance(),jn.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(),Ne.true();case 12:return this._advance(),Ne.false();case 0:{this._advance();let e=this._expr();return this._consume(1,Mp),e}case 17:{let e=t.lexeme;if(this._advance(),this._matchOne(9)){let r=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),r.type!==10)throw this._errExpectedButGot("REGEX",r);let o=r.lexeme,s=o.lastIndexOf("/"),a=s===o.length-1?void 0:this._removeFlagsGY(o.substring(s+1)),l;try{l=new RegExp(o.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",r)}return Gi.create(e,l)}switch(r.type){case 10:case 19:{let o=[r.lexeme];this._advance();let s=this._peek(),a=0;for(let f=0;f<r.lexeme.length;f++)r.lexeme.charCodeAt(f)===40?a++:r.lexeme.charCodeAt(f)===41&&a--;for(;!this._isAtEnd()&&s.type!==15&&s.type!==16;){switch(s.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let f=0;f<s.lexeme.length;f++)s.lexeme.charCodeAt(f)===40?a++:r.lexeme.charCodeAt(f)===41&&a--}if(a<0)break;o.push(mn.getLexeme(s)),this._advance(),s=this._peek()}let l=o.join(""),c=l.lastIndexOf("/"),p=c===l.length-1?void 0:this._removeFlagsGY(l.substring(c+1)),u;try{u=new RegExp(l.substring(1,c),p)}catch{throw this._errExpectedButGot("REGEX",r)}return Ne.regex(e,u)}case 18:{let o=r.lexeme;this._advance();let s=null;if(!cu(o)){let a=o.indexOf("/"),l=o.lastIndexOf("/");if(a!==l&&a>=0){let c=o.slice(a+1,l),p=o[l+1]==="i"?"i":"";try{s=new RegExp(c,p)}catch{throw this._errExpectedButGot("REGEX",r)}}}if(s===null)throw this._errExpectedButGot("REGEX",r);return Gi.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,$v);let r=this._value();return Ne.notIn(e,r)}switch(this._peek().type){case 3:{this._advance();let r=this._value();if(this._previous().type===18)return Ne.equals(e,r);switch(r){case"true":return Ne.has(e);case"false":return Ne.not(e);default:return Ne.equals(e,r)}}case 4:{this._advance();let r=this._value();if(this._previous().type===18)return Ne.notEquals(e,r);switch(r){case"true":return Ne.not(e);case"false":return Ne.has(e);default:return Ne.notEquals(e,r)}}case 5:return this._advance(),Ki.create(e,this._value());case 6:return this._advance(),zi.create(e,this._value());case 7:return this._advance(),Fr.create(e,this._value());case 8:return this._advance(),ji.create(e,this._value());case 13:return this._advance(),Ne.in(e,this._value());default:return Ne.has(e)}}case 20:throw this._parsingErrors.push({message:jv,offset:t.offset,lexeme:"",additionalInfo:Kv}),i._parseError;default:throw this._errExpectedButGot(`true | false | KEY 
	| KEY '=~' REGEX 
	| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){let t=this._peek();switch(t.type){case 17:case 18:return this._advance(),t.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(t){return t.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(t){return this._check(t)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(t,e){if(this._check(t))return this._advance();throw this._errExpectedButGot(e,this._peek())}_errExpectedButGot(t,e,n){let r=m(1970,null,t,mn.getLexeme(e)),o=e.offset,s=mn.getLexeme(e);return this._parsingErrors.push({message:r,offset:o,lexeme:s,additionalInfo:n}),i._parseError}_check(t){return this._peek().type===t}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},Ne=class{static false(){return qe.INSTANCE}static true(){return ze.INSTANCE}static has(t){return Hn.create(t)}static equals(t,e){return qi.create(t,e)}static notEquals(t,e){return Hi.create(t,e)}static regex(t,e){return Gi.create(t,e)}static in(t,e){return Ts.create(t,e)}static notIn(t,e){return xs.create(t,e)}static not(t){return jn.create(t)}static and(...t){return _s.create(t,null,!0)}static or(...t){return Ji.create(t,null,!0)}static greater(t,e){return Fr.create(t,e)}static greaterEquals(t,e){return ji.create(t,e)}static smaller(t,e){return Ki.create(t,e)}static smallerEquals(t,e){return zi.create(t,e)}static{this._parser=new rc({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function $i(i,t){return i.cmp(t)}var qe=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 ze.INSTANCE}},ze=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 qe.INSTANCE}},Hn=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=Ae.get(t);return typeof n=="boolean"?n?ze.INSTANCE:qe.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Vp(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Ae.get(this.key);return typeof t=="boolean"?t?ze.INSTANCE:qe.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=jn.create(this.key,this)),this.negated}},qi=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?Hn.create(t,n):jn.create(t,n);let r=Ae.get(t);return typeof r=="boolean"?e===(r?"true":"false")?ze.INSTANCE:qe.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=Ae.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?ze.INSTANCE:qe.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=Hi.create(this.key,this.value,this)),this.negated}},Ts=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:Kn(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(B&&typeof n=="string"&&n.startsWith("file:///")){let r=n.toLowerCase();return e.some(o=>typeof o=="string"&&o.toLowerCase()===r)}return!1}if(typeof n=="string"&&typeof e=="object"&&e!==null){if(Mv.call(e,n))return!0;if(B&&n.startsWith("file:///")){let r=n.toLowerCase();return Object.keys(e).some(o=>o.toLowerCase()===r)}return!1}return!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}map(t){return t.mapIn(this.key,this.valueKey)}negate(){return this.negated||(this.negated=xs.create(this.key,this.valueKey)),this.negated}},xs=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=Ts.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}},Hi=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?jn.create(t,n):Hn.create(t,n);let r=Ae.get(t);return typeof r=="boolean"?e===(r?"true":"false")?qe.INSTANCE:ze.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=Ae.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?qe.INSTANCE:ze.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=qi.create(this.key,this.value,this)),this.negated}},jn=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=Ae.get(t);return typeof n=="boolean"?n?qe.INSTANCE:ze.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Vp(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Ae.get(this.key);return typeof t=="boolean"?t?qe.INSTANCE:ze.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=Hn.create(this.key,this)),this.negated}};function Cs(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):qe.INSTANCE}var Fr=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 Cs(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=zi.create(this.key,this.value,this)),this.negated}},ji=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 Cs(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=Ki.create(this.key,this.value,this)),this.negated}},Ki=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 Cs(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=ji.create(this.key,this.value,this)),this.negated}},zi=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 Cs(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:Kn(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=Fr.create(this.key,this.value,this)),this.negated}},Gi=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=ic.create(this)),this.negated}},ic=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 Bp(i){let t=null;for(let e=0,n=i.length;e<n;e++){let r=i[e].substituteConstants();if(i[e]!==r&&t===null){t=[];for(let o=0;o<e;o++)t[o]=i[o]}t!==null&&(t[e]=r)}return t===null?i:t}var _s=class i{constructor(t,e){this.expr=t;this.negated=e;this.type=6}static create(t,e,n){return i._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let r=$i(this.expr[e],t.expr[e]);if(r!==0)return r}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=Bp(this.expr);return t===this.expr?this:i.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].evaluate(t))return!1;return!0}static _normalizeArr(t,e,n){let r=[],o=!1;for(let s of t)if(s){if(s.type===1){o=!0;continue}if(s.type===0)return qe.INSTANCE;if(s.type===6){r.push(...s.expr);continue}r.push(s)}if(r.length===0&&o)return ze.INSTANCE;if(r.length!==0){if(r.length===1)return r[0];r.sort($i);for(let s=1;s<r.length;s++)r[s-1].equals(r[s])&&(r.splice(s,1),s--);if(r.length===1)return r[0];for(;r.length>1;){let s=r[r.length-1];if(s.type!==9)break;r.pop();let a=r.pop(),l=r.length===0,c=Ji.create(s.expr.map(p=>i.create([p,a],null,n)),null,l);c&&(r.push(c),r.sort($i))}if(r.length===1)return r[0];if(n){for(let s=0;s<r.length;s++)for(let a=s+1;a<r.length;a++)if(r[s].negate().equals(r[a]))return qe.INSTANCE;if(r.length===1)return r[0]}return new i(r,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" && ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new i(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());this.negated=Ji.create(t,this,!0)}return this.negated}},Ji=class i{constructor(t,e){this.expr=t;this.negated=e;this.type=9}static create(t,e,n){return i._normalizeArr(t,e,n)}cmp(t){if(t.type!==this.type)return this.type-t.type;if(this.expr.length<t.expr.length)return-1;if(this.expr.length>t.expr.length)return 1;for(let e=0,n=this.expr.length;e<n;e++){let r=$i(this.expr[e],t.expr[e]);if(r!==0)return r}return 0}equals(t){if(t.type===this.type){if(this.expr.length!==t.expr.length)return!1;for(let e=0,n=this.expr.length;e<n;e++)if(!this.expr[e].equals(t.expr[e]))return!1;return!0}return!1}substituteConstants(){let t=Bp(this.expr);return t===this.expr?this:i.create(t,this.negated,!1)}evaluate(t){for(let e=0,n=this.expr.length;e<n;e++)if(this.expr[e].evaluate(t))return!0;return!1}static _normalizeArr(t,e,n){let r=[],o=!1;if(t){for(let s=0,a=t.length;s<a;s++){let l=t[s];if(l){if(l.type===0){o=!0;continue}if(l.type===1)return ze.INSTANCE;if(l.type===9){r=r.concat(l.expr);continue}r.push(l)}}if(r.length===0&&o)return qe.INSTANCE;r.sort($i)}if(r.length!==0){if(r.length===1)return r[0];for(let s=1;s<r.length;s++)r[s-1].equals(r[s])&&(r.splice(s,1),s--);if(r.length===1)return r[0];if(n){for(let s=0;s<r.length;s++)for(let a=s+1;a<r.length;a++)if(r[s].negate().equals(r[a]))return ze.INSTANCE;if(r.length===1)return r[0]}return new i(r,e)}}serialize(){return this.expr.map(t=>t.serialize()).join(" || ")}keys(){let t=[];for(let e of this.expr)t.push(...e.keys());return t}map(t){return new i(this.expr.map(e=>e.map(t)),null)}negate(){if(!this.negated){let t=[];for(let e of this.expr)t.push(e.negate());for(;t.length>1;){let e=t.shift(),n=t.shift(),r=[];for(let o of Wp(e))for(let s of Wp(n))r.push(_s.create([o,s],null,!1));t.unshift(i.create(r,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},ws=class i extends Hn{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 qi.create(this.key,t)}notEqualsTo(t){return Hi.create(this.key,t)}greater(t){return Fr.create(this.key,t)}},ER=ie("contextKeyService");function Vp(i,t){return i<t?-1:i>t?1:0}function Kn(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function Wp(i){return i.type===9?i.expr:[i]}var te=ie("logService"),HR=ie("loggerService");function oc(i){return pi(i)}var $p=3;function zv(i,t){return i!==0&&i<=t}function Ur(i,t=!1){let e="";for(let n=0;n<i.length;n++){let r=i[n];if(r instanceof Error&&(r=Wn(r,t)),typeof r=="object")try{r=JSON.stringify(r)}catch{}e+=(n>0?" ":"")+r}return e}var Rs=class extends L{constructor(){super(...arguments);this.level=$p;this._onDidChangeLogLevel=this._register(new _)}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 zv(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},Qi=class extends Rs{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,Ur([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,Ur([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,Ur([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,Ur([e,...n]))}error(e,...n){if(this.canLog(5))if(e instanceof Error){let r=Array.prototype.slice.call(arguments);r[0]=e.stack,this.log(5,Ur(r))}else this.log(5,Ur([e,...n]))}flush(){}};var Es=class extends Rs{constructor(e){super();this.loggers=e;e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(let n of this.loggers)n.setLevel(e);super.setLevel(e)}trace(e,...n){for(let r of this.loggers)r.trace(e,...n)}debug(e,...n){for(let r of this.loggers)r.debug(e,...n)}info(e,...n){for(let r of this.loggers)r.info(e,...n)}warn(e,...n){for(let r of this.loggers)r.warn(e,...n)}error(e,...n){for(let r of this.loggers)r.error(e,...n)}flush(){for(let e of this.loggers)e.flush()}dispose(){for(let e of this.loggers)e.dispose();super.dispose()}},Yi=class extends L{constructor(e,n,r){super();this.logLevel=e;this.logsHome=n;this._loggers=new ft;this._onDidChangeLoggers=this._register(new _);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new _);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new _);this.onDidChangeVisibility=this._onDidChangeVisibility.event;if(r)for(let o of r)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(e){return Be(e)?[...this._loggers.values()].find(n=>n.info.id===e):this._loggers.get(e)}getLogger(e){return this.getLoggerEntry(e)?.logger}createLogger(e,n){let r=this.toResource(e),o=Be(e)?e:n?.id??fn(r.toString()).toString(16),s=this._loggers.get(r)?.logger,a=n?.logLevel==="always"?1:n?.logLevel;s||(s=this.doCreateLogger(r,a??this.getLogLevel(r)??this.logLevel,{...n,id:o}));let l={logger:s,info:{resource:r,id:o,logLevel:a,name:n?.name,hidden:n?.hidden,group:n?.group,extensionId:n?.extensionId,when:n?.when}};return this.registerLogger(l.info),this._loggers.set(r,l),s}toResource(e){return Be(e)?re(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(h.isUri(e)){let r=e,o=n,s=this._loggers.get(r);s&&o!==s.info.logLevel&&(s.info.logLevel=o===this.logLevel?void 0:o,s.logger?.setLevel(o),this._loggers.set(s.info.resource,s),this._onDidChangeLogLevel.fire([r,o]))}else{this.logLevel=e;for(let[r,o]of this._loggers.entries())this._loggers.get(r)?.info.logLevel===void 0&&o.logger?.setLevel(this.logLevel);this._onDidChangeLogLevel.fire(this.logLevel)}}setVisibility(e,n){let r=this.getLoggerEntry(e);r&&n!==!r.info.hidden&&(r.info.hidden=!n,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,n]))}getLogLevel(e){let n;return e&&(n=this._loggers.get(e)?.info.logLevel),n??this.logLevel}registerLogger(e){let n=this._loggers.get(e.resource);n?n.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}deregisterLogger(e){let n=this.toResource(e),r=this._loggers.get(n);r&&(r.logger&&r.logger.dispose(),this._loggers.delete(n),this._onDidChangeLoggers.fire({added:[],removed:[r.info]}))}*getRegisteredLoggers(){for(let e of this._loggers.values())yield e.info}getRegisteredLogger(e){return this._loggers.get(e)?.info}dispose(){this._loggers.forEach(e=>e.logger?.dispose()),this._loggers.clear(),super.dispose()}};function qp(i){if(i.verbose)return 1;if(typeof i.logLevel=="string"){let t=Jv(i.logLevel.toLowerCase());if(t!==void 0)return t}return $p}function Gv(i){switch(i){case 1:return"trace";case 2:return"debug";case 3:return"info";case 4:return"warn";case 5:return"error";case 0:return"off"}}function Jv(i){switch(i){case"trace":return 1;case"debug":return 2;case"info":return 3;case"warn":return 4;case"error":return 5;case"critical":return 5;case"off":return 0}}var jR=new ws("logLevel",Gv(3));function Hp(i){return i.type.startsWith("root/")}function Nr(i){return i.type.startsWith("session/")}function Ps(i){return i.type.startsWith("terminal/")}var gn={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603},xe={SessionNotFound:-32001,ProviderNotFound:-32002,SessionAlreadyExists:-32003,TurnInProgress:-32004,UnsupportedProtocolVersion:-32005,ContentNotFound:-32006,AuthRequired:-32007,NotFound:-32008,PermissionDenied:-32009,AlreadyExists:-32010};var Kp=-32700,Mr=-32603,hn=-32001,zp=-32002;var Gp=-32005;var As=-32007;function Jp(i){return"method"in i&&"id"in i}function Qp(i){return"method"in i&&!("id"in i)}var $=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}};var Os="agenthost:/root";function Zp(i){if(!i.content||i.content.length===0)return[];let t=[];for(let e of i.content)Ve(e,{type:!0})&&e.type==="fileEdit"&&t.push(e);return t}function Zi(i,t){return`${i.endsWith("/")?i.slice(0,-1):i}/subagent/${t}`}function eo(i){let t=i.lastIndexOf("/subagent/");if(t<0)return;let e=i.substring(t+10);if(e)return{parentSession:i.substring(0,t),toolCallId:e}}function ef(){return{agents:[],activeSessions:0}}function dc(i){return{summary:i,lifecycle:"creating",turns:[],activeTurn:void 0}}var sc="git";function uc(i){let t=i?.[sc];if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};return typeof e.hasGitHubRemote=="boolean"&&(n.hasGitHubRemote=e.hasGitHubRemote),typeof e.branchName=="string"&&(n.branchName=e.branchName),typeof e.baseBranchName=="string"&&(n.baseBranchName=e.baseBranchName),typeof e.upstreamBranchName=="string"&&(n.upstreamBranchName=e.upstreamBranchName),typeof e.incomingChanges=="number"&&(n.incomingChanges=e.incomingChanges),typeof e.outgoingChanges=="number"&&(n.outgoingChanges=e.outgoingChanges),typeof e.uncommittedChanges=="number"&&(n.uncommittedChanges=e.uncommittedChanges),n}function tf(i,t){let e={...i};return t!==void 0?e[sc]=t:delete e[sc],Object.keys(e).length>0?e:void 0}var Ls=ie("agentConfigurationService"),Br=class extends L{constructor(e,n){super();this._stateManager=e;this._logService=n}getEffectiveValue(e,n,r){for(let o of this._effectiveChain(e)){let s=o[r];if(s!==void 0)try{return n.assertValid(r,s),s}catch(a){let l=a instanceof $?a.message:String(a);this._logService.warn(`[AgentConfigurationService] Value for '${r}' on ${e} failed schema validation, falling back: ${l}`)}}}getEffectiveWorkingDirectory(e){let n=this._stateManager.getSessionState(e)?.summary.workingDirectory;if(n!==void 0)return n;let r=eo(e);if(r)return this._stateManager.getSessionState(r.parentSession)?.summary.workingDirectory}updateSessionConfig(e,n){this._stateManager.dispatchServerAction({type:"session/configChanged",session:e,config:n})}*_effectiveChain(e){let n=this._stateManager.getSessionState(e)?.config?.values;n&&(yield n);let r=eo(e);if(r){let s=this._stateManager.getSessionState(r.parentSession)?.config?.values;s&&(yield s)}let o=this._stateManager.rootState.config?.values;o&&(yield o)}};Br=R([U(1,te)],Br);var Fs=class{constructor(){this._currentMarkdownPartId=new Map;this._currentReasoningPartId=new Map}reset(t){this._currentMarkdownPartId.delete(t),this._currentReasoningPartId.delete(t)}mapProgressEventToActions(t,e,n){switch(t.type){case"delta":{let r=t,o=this._currentMarkdownPartId.get(e);if(!o){let s=ee();return this._currentMarkdownPartId.set(e,s),{type:"session/responsePart",session:e,turnId:n,part:{kind:"markdown",id:s,content:r.content}}}return{type:"session/delta",session:e,turnId:n,partId:o,content:r.content}}case"tool_start":{this._currentMarkdownPartId.delete(e);let r=t,o={toolKind:r.toolKind,language:r.language};r.subagentDescription&&(o.subagentDescription=r.subagentDescription),r.subagentAgentName&&(o.subagentAgentName=r.subagentAgentName);let s={type:"session/toolCallStart",session:e,turnId:n,toolCallId:r.toolCallId,toolName:r.toolName,displayName:r.displayName,toolClientId:r.toolClientId,_meta:o};if(r.toolClientId)return s;let a={type:"session/toolCallReady",session:e,turnId:n,toolCallId:r.toolCallId,invocationMessage:r.invocationMessage,toolInput:r.toolInput,confirmed:"not-needed"};return[s,a]}case"tool_ready":{let r=t;return{type:"session/toolCallReady",session:e,turnId:n,toolCallId:r.toolCallId,invocationMessage:r.invocationMessage,toolInput:r.toolInput,confirmationTitle:r.confirmationTitle,edits:r.edits,...r.confirmationTitle?{}:{confirmed:"not-needed"}}}case"tool_complete":{let r=t;return{type:"session/toolCallComplete",session:e,turnId:n,toolCallId:r.toolCallId,result:r.result}}case"tool_content_changed":{let r=t;return{type:"session/toolCallContentChanged",session:e,turnId:n,toolCallId:r.toolCallId,content:r.content}}case"idle":return{type:"session/turnComplete",session:e,turnId:n};case"error":{let r=t;return{type:"session/error",session:e,turnId:n,error:{errorType:r.errorType,message:r.message,stack:r.stack}}}case"usage":{let r=t;return{type:"session/usage",session:e,turnId:n,usage:{inputTokens:r.inputTokens,outputTokens:r.outputTokens,model:r.model,cacheReadTokens:r.cacheReadTokens}}}case"title_changed":return{type:"session/titleChanged",session:e,title:t.title};case"reasoning":{let r=t,o=this._currentReasoningPartId.get(e);if(!o){let s=ee();return this._currentReasoningPartId.set(e,s),{type:"session/responsePart",session:e,turnId:n,part:{kind:"reasoning",id:s,content:r.content}}}return{type:"session/reasoning",session:e,turnId:n,partId:o,content:r.content}}case"message":{let r=t;if(r.role!=="assistant"||!r.content||this._currentMarkdownPartId.get(e))return;let s=ee();return this._currentMarkdownPartId.set(e,s),{type:"session/responsePart",session:e,turnId:n,part:{kind:"markdown",id:s,content:r.content}}}case"user_input_request":{let r=t;return{type:"session/inputRequested",session:e,request:r.request}}default:return}}};import*as pc from"child_process";var nb=ie("environmentService"),Vr=nb;var nf="git-blob";function rf(i,t,e){return h.from({scheme:nf,authority:vt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${vt(w.fromString(e))}/${he(e)}`}).toString()}function of(i){let t;try{t=h.parse(i)}catch{return}if(t.scheme!==nf)return;let[,e,n]=t.path.split("/");if(!(!e||!n))try{return{sessionUri:vr(t.authority).toString(),sha:decodeURIComponent(e),repoRelativePath:vr(n).toString()}}catch{return}}var vn=ie("agentHostGitService"),Us="agentHost.diffBaseBranch";function sf(i){return i==="main"?0:i==="master"?1:2}function rb(i,t){let e=t?.query?.toLowerCase(),n=e?i.filter(r=>r.toLowerCase().includes(e)):[...i];return n.sort((r,o)=>sf(r)-sf(o)),t?.limit?n.slice(0,t.limit):n}var $r=class{constructor(t,e){this._fileService=t;this._environmentService=e}async isInsideWorkTree(t){return(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()==="true"}async getCurrentBranch(t){return(await this._runGit(t,["branch","--show-current"]))?.trim()||(await this._runGit(t,["rev-parse","--short","HEAD"]))?.trim()||void 0}async getDefaultBranch(t){let e=(await this._runGit(t,["symbolic-ref","refs/remotes/origin/HEAD"]))?.trim();if(e){if(!e.startsWith("refs/remotes/origin/"))return e;let n=e.substring(20);return await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${n}`])!==void 0?n:`origin/${n}`}}async getBranches(t,e){let n=["for-each-ref","--format=%(refname:short)","--sort=-committerdate"];n.push("refs/heads");let r=await this._runGit(t,n);if(!r)return[];let o=r.split(/\r?\n/g).map(s=>s.trim()).filter(s=>s.length>0);return rb(o,e)}async getRepositoryRoot(t){let e=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();return e?h.file(e):void 0}async getWorktreeRoots(t){let e=await this._runGit(t,["worktree","list","--porcelain"]);return e?e.split(/\r?\n/g).filter(n=>n.startsWith("worktree ")).map(n=>h.file(n.substring(9))):[]}async addWorktree(t,e,n,r){await this._runGit(t,["worktree","add","-b",n,e.fsPath,r],{timeout:3e4,throwOnError:!0})}async removeWorktree(t,e){await this._runGit(t,["worktree","remove","--force",e.fsPath],{timeout:3e4,throwOnError:!0})}async computeSessionFileDiffs(t,e){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let r=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!r)return;let o=h.file(r),s;e.baseBranch&&(s=(await this._runGit(o,["merge-base","HEAD",e.baseBranch]))?.trim()),s||(s=(await this._runGit(o,["rev-parse","HEAD"]))?.trim()),s||(s=af);let a=await this._runGit(o,["status","--porcelain=v1","-z","--untracked-files=all"]),l=ib(a),c;if(l.length===0?c=await this._runGit(o,["diff","--raw","--numstat","--diff-filter=ADMR","-z",s,"--"]):c=await this._runWithTempIndex(o,s),c!==void 0)return ob(c,o,e.sessionUri,s)}async _runWithTempIndex(t,e){let n=h.joinPath(this._environmentService.tmpDir,`agent-host-git-diff-${ee()}`);await this._fileService.createFolder(n);let o={GIT_INDEX_FILE:h.joinPath(n,"index").fsPath};o.COMMAND_HOOK_LOCK="1";try{return await this._runGit(t,["read-tree","HEAD"],{env:o})===void 0&&await this._runGit(t,["read-tree",af],{env:o}),await this._runGit(t,["add","-A","--",":/"],{env:o}),await this._runGit(t,["diff","--cached","--raw","--numstat","--diff-filter=ADMR","-z",e,"--"],{env:o})}finally{try{await this._fileService.del(n,{recursive:!0,useTrash:!1})}catch{}}}async showBlob(t,e,n){if(!(!/^[0-9a-f]{4,64}$/.test(e)||(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true"))return new Promise(o=>{pc.execFile("git",["show",`${e}:${n}`],{cwd:t.fsPath,timeout:5e3,encoding:"buffer",maxBuffer:32*1024*1024},(s,a)=>{if(s){o(void 0);return}o(w.wrap(a))})})}async getSessionGitState(t){return this._computeSessionGitState(t)}async _computeSessionGitState(t){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let[n,r,o]=await Promise.all([this._runGit(t,["status","-b","--porcelain=v2"]),this._runGit(t,["remote","-v"]),this._runGit(t,["symbolic-ref","--quiet","refs/remotes/origin/HEAD"])]),s=sb(n),a=ab(r),l=lb(o),c=s.outgoingChanges;if(c===void 0&&l&&s.branchName&&s.branchName!==l){let u=await this._runGit(t,["rev-list","--count",`${l}..HEAD`]),f=u===void 0?NaN:Number(u.trim());Number.isFinite(f)&&(c=f)}let p={hasGitHubRemote:a,branchName:s.branchName,baseBranchName:l,upstreamBranchName:s.upstreamBranchName,incomingChanges:s.incomingChanges,outgoingChanges:c,uncommittedChanges:s.uncommittedChanges};return cb(p)}_runGit(t,e,n){return new Promise((r,o)=>{let s=n?.env?{...process.env,...n.env}:void 0;pc.execFile("git",[...e],{cwd:t.fsPath,timeout:n?.timeout??5e3,env:s,maxBuffer:n?.maxBuffer??32*1024*1024},(a,l,c)=>{if(a){if(n?.throwOnError){o(new Error(c||a.message));return}r(void 0);return}r(l)})})}};$r=R([U(0,Qe),U(1,Vr)],$r);var af="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function ib(i){if(!i)return[];let t=[],e=i.split("\0");for(let n=0;n<e.length;n++){let r=e[n];if(!r)continue;let o=r.substring(0,2),s=r.substring(3);o==="??"?t.push(s):(o[0]==="R"||o[0]==="C")&&n++}return t}function ob(i,t,e,n){let r=i.split("\0"),o=[],s=new Map,a=0;for(;a<r.length;){let l=r[a++];if(l)if(l.startsWith(":")){let p=l.split(" ")[4]??"",u=r[a++];if(!u)continue;switch(p[0]){case"A":o.push({kind:"create",newPath:u});break;case"M":o.push({kind:"edit",oldPath:u,newPath:u});break;case"D":o.push({kind:"delete",oldPath:u});break;case"R":{let f=r[a++];if(!f)continue;o.push({kind:"rename",oldPath:u,newPath:f});break}default:break}}else{let[c,p,u]=l.split("	"),f;if(u===""||u===void 0){let g=r[a++];f=r[a++]??g??""}else f=u;if(!f)continue;s.set(f,{added:c==="-"?0:Number(c)||0,removed:p==="-"?0:Number(p)||0})}}return o.map(l=>{let c=s.get(l.newPath??l.oldPath??""),p=l.kind!=="create",u=l.kind!=="delete";return{...p&&l.oldPath?{before:{uri:h.joinPath(t,l.oldPath).toString(),content:{uri:rf(e,n,l.oldPath)}}}:{},...u&&l.newPath?{after:{uri:h.joinPath(t,l.newPath).toString(),content:{uri:h.joinPath(t,l.newPath).toString()}}}:{},diff:{added:c?.added??0,removed:c?.removed??0}}})}function sb(i){if(!i)return{};let t,e,n,r,o=0;for(let s of i.split(/\r?\n/g)){let a=s.trimEnd();if(a)if(a.startsWith("# branch.head ")){let l=a.substring(14).trim();t=l==="(detached)"?void 0:l}else if(a.startsWith("# branch.upstream "))e=a.substring(18).trim();else if(a.startsWith("# branch.ab ")){let l=/^# branch\.ab \+(\d+) -(\d+)$/.exec(a);l&&(n=Number(l[1]),r=Number(l[2]))}else a.startsWith("#")||o++}return{branchName:t,upstreamBranchName:e,outgoingChanges:n,incomingChanges:r,uncommittedChanges:o}}function ab(i){if(i!==void 0)return i.trim()?/github\.com[:\/]/i.test(i):!1}function lb(i){let t=i?.trim();if(!t)return;let e="refs/remotes/origin/";return t.startsWith(e)?t.substring(e.length):t}function cb(i){let t={};for(let[e,n]of Object.entries(i))n!==void 0&&(t[e]=n);return t}import{Worker as db}from"worker_threads";var Ns=ie("diffComputeService"),cf=5e3;var bn=class extends L{constructor(e){super();this._logService=e;this._workerFailures=0;this._nextId=1;this._pending=new Map}async computeDiffCounts(e,n,r=cf){let o=this._ensureWorker(),s=this._nextId++;return new Promise((a,l)=>{this._pending.set(s,{resolve:a,reject:l});try{o.postMessage({id:s,fn:"computeDiffCounts",args:[e,n,r]})}catch(c){this._pending.delete(s),l(c instanceof Error?c:new Error(String(c)))}})}_ensureWorker(){if(this._workerFailures>=3)throw new Error("Diff compute worker failed too many times");if(!this._worker){let e=et.asFileUri("vs/platform/agentHost/node/diffWorkerMain.js").fsPath,n=new db(e,{name:"Diff compute worker"});n.on("message",r=>{let o=this._pending.get(r.id);if(o)if(this._pending.delete(r.id),r.err){let s=new Error(r.err.message);r.err.stack&&(s.stack=r.err.stack),o.reject(s)}else o.resolve(r.res)}),n.on("error",r=>{this._logService.error("[DiffComputeService] Worker error",r);for(let[,o]of this._pending)o.reject(r);this._pending.clear(),this._worker=void 0,this._workerFailures++}),this._worker=n}return this._worker}dispose(){this._worker&&(this._worker.terminate(),this._worker=void 0);for(let[,e]of this._pending)e.reject(new Error("DiffComputeService disposed"));this._pending.clear(),super.dispose()}};bn=R([U(0,te)],bn);var df="session-db";function yn(i,t,e,n){return h.from({scheme:df,authority:vt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${vt(w.fromString(e))}/${n}/${he(e)}`}).toString()}function uf(i){let t=h.parse(i);if(t.scheme!==df)return;let[,e,n,r]=t.path.split("/");if(!(!e||!n||r!=="before"&&r!=="after"))try{return{sessionUri:vr(t.authority).toString(),toolCallId:decodeURIComponent(e),filePath:vr(n).toString(),part:r}}catch{return}}var qr=class{constructor(t,e,n,r,o){this._sessionUri=t;this._db=e;this._fileService=n;this._logService=r;this._diffComputeService=o;this._pendingEdits=new Map;this._completedEdits=new Map}async trackEditStart(t){let e=this._readFile(t),n={beforeContent:w.fromString(""),snapshotDone:e.then(r=>{n.beforeContent=r})};this._pendingEdits.set(t,n),await n.snapshotDone}async completeEdit(t){let e=this._pendingEdits.get(t);if(!e)return;this._pendingEdits.delete(t),await e.snapshotDone;let n=await this._readFile(t);this._completedEdits.set(t,{beforeContent:e.beforeContent,afterContent:n})}async takeCompletedEdit(t,e,n){let r=this._completedEdits.get(n);if(!r)return;this._completedEdits.delete(n);let o=r.beforeContent.buffer,s=r.afterContent.buffer,a=r.beforeContent.toString(),l=r.afterContent.toString(),c,p;try{let u=await this._diffComputeService.computeDiffCounts(a,l);c=u.added,p=u.removed}catch(u){this._logService.warn(`[FileEditTracker] Failed to compute diff counts: ${n}`,u)}try{await this._db.storeFileEdit({turnId:t,toolCallId:e,filePath:n,kind:"edit",beforeContent:o,afterContent:s,addedLines:c,removedLines:p})}catch(u){this._logService.warn(`[FileEditTracker] Failed to persist file edit to database: ${n}`,u)}return{type:"fileEdit",before:{uri:h.file(n).toString(),content:{uri:yn(this._sessionUri,e,n,"before")}},after:{uri:h.file(n).toString(),content:{uri:yn(this._sessionUri,e,n,"after")}},diff:c!==void 0?{added:c,removed:p}:void 0}}async _readFile(t){try{return(await this._fileService.readFile(h.file(t))).value}catch(e){return this._logService.trace(`[FileEditTracker] Could not read file for snapshot: ${t}`,e),w.fromString("")}}};qr=R([U(2,Qe),U(3,te),U(4,Ns)],qr);function pf(i){return i.after?.uri??i.before?.uri}function ub(i,t,e,n){let r=t.firstKind!=="create",o=t.lastKind!=="delete";return{...r?{before:{uri:h.file(t.firstFilePath).toString(),content:{uri:yn(i,t.firstToolCallId,t.firstFilePath,"before")}}}:{},...o?{after:{uri:h.file(t.terminalPath).toString(),content:{uri:yn(i,t.lastToolCallId,t.lastFilePath,"after")}}}:{},diff:{added:e,removed:n}}}async function ff(i,t,e,n){let r,o=!1;if(n){let f=await t.getFileEditsByTurn(n.changedTurnId);if(f.length===0)return[...n.previousDiffs];let g=new Set(n.previousDiffs.map(pf));f.some(v=>v.kind==="rename"||g.has(h.file(v.filePath).toString()))?r=await t.getAllFileEdits():(r=f,o=!0)}else r=await t.getAllFileEdits();if(r.length===0)return[];let s=new Map,a=new Map,l=n&&!o?new Set:void 0;for(let f of r){let g;f.kind==="rename"&&f.originalPath?(g=s.get(f.originalPath)??f.originalPath,s.set(f.filePath,g),s.delete(f.originalPath)):(g=s.get(f.filePath)??f.filePath,s.set(f.filePath,g)),l&&f.turnId===n.changedTurnId&&l.add(g);let b=a.get(g);b?(b.terminalPath=f.filePath,b.lastToolCallId=f.toolCallId,b.lastFilePath=f.filePath,b.lastKind=f.kind):a.set(g,{terminalPath:f.filePath,firstToolCallId:f.toolCallId,firstFilePath:f.kind==="rename"&&f.originalPath?f.originalPath:f.filePath,firstKind:f.kind,lastToolCallId:f.toolCallId,lastFilePath:f.filePath,lastKind:f.kind})}let c=n&&!o?new Map(n.previousDiffs.map(f=>[pf(f),f])):void 0,p=[],u=[];for(let[f,g]of a){if(l&&!l.has(f)){let b=h.file(g.terminalPath).toString(),v=c.get(b);v&&p.push(v);continue}u.push((async()=>{let b;if(g.firstKind==="create")b="";else{let S=await t.readFileEditContent(g.firstToolCallId,g.firstFilePath);b=S?.beforeContent?new TextDecoder().decode(S.beforeContent):""}let v;if(g.lastKind==="delete")v="";else{let S=await t.readFileEditContent(g.lastToolCallId,g.lastFilePath);v=S?.afterContent?new TextDecoder().decode(S.afterContent):""}if(b===v)return;let y=await e.computeDiffCounts(b,v);p.push(ub(i,g,y.added,y.removed))})())}return await Promise.allSettled(u),o&&p.push(...n.previousDiffs),p}var Hr="**",mf="/",Ms="[/\\\\]",Ws="[^/\\\\]",pb=/\//g;function gf(i,t){switch(i){case 0:return"";case 1:return`${Ws}*?`;default:return`(?:${Ms}|${Ws}+${Ms}${t?`|${Ms}${Ws}+`:""})*?`}}function hf(i,t){if(!i)return[];let e=[],n=!1,r=!1,o="";for(let s of i){switch(s){case t:if(!n&&!r){e.push(o),o="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":r=!0;break;case"]":r=!1;break}o+=s}return o&&e.push(o),e}function Sf(i){if(!i)return"";let t="",e=hf(i,mf);if(e.every(n=>n===Hr))t=".*";else{let n=!1;e.forEach((r,o)=>{if(r===Hr){if(n)return;t+=gf(2,o===e.length-1)}else{let s=!1,a="",l=!1,c="";for(let p of r){if(p!=="}"&&s){a+=p;continue}if(l&&(p!=="]"||!c)){let u;p==="-"?u=p:(p==="^"||p==="!")&&!c?u="^":p===mf?u="":u=Lt(p),c+=u;continue}switch(p){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let f=`(?:${hf(a,",").map(g=>Sf(g)).join("|")})`;t+=f,s=!1,a="";break}case"]":{t+="["+c+"]",l=!1,c="";break}case"?":t+=Ws;continue;case"*":t+=gf(1);continue;default:t+=Lt(p)}}o<e.length-1&&(e[o+1]!==Hr||o+2<e.length)&&(t+=Ms)}n=r===Hr})}return t}var fb=/^\*\*\/\*\.[\w\.-]+$/,mb=/^\*\*\/([\w\.-]+)\/?$/,gb=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,hb=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,vb=/^\*\*((\/[\w\.-]+)+)\/?$/,bb=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,vf=new _t(1e4),bf=function(){return!1},Rt=function(){return null};function mc(i,t){if(!i)return Rt;let e;typeof i!="string"?e=i.pattern:e=i,e=e.trim();let n=t.ignoreCase??!1,r={...t,equals:n?Fn:(l,c)=>l===c,endsWith:n?uu:(l,c)=>l.endsWith(c),isEqualOrParent:(l,c)=>Ft(l,c,t.ignoreCase??!ge)},o=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=vf.get(o);if(s)return yf(s,i,r);let a;return fb.test(e)?s=yb(e.substring(4),e,r):(a=mb.exec(fc(e,r)))?s=Ib(a[1],e,r):(t.trimForExclusions?hb:gb).test(e)?s=Sb(e,r):(a=vb.exec(fc(e,r)))?s=If(a[1].substring(1),e,!0,r):(a=bb.exec(fc(e,r)))?s=If(a[1],e,!1,r):s=Tb(e,r),vf.set(o,s),yf(s,i,r)}function yf(i,t,e){if(typeof t=="string")return i;let n=function(r,o){return e.isEqualOrParent(r,t.base)?i(al(r.substring(t.base.length),Te),o):null};return n.allBasenames=i.allBasenames,n.allPaths=i.allPaths,n.basenames=i.basenames,n.patterns=i.patterns,n}function fc(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function yb(i,t,e){return function(n,r){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function Ib(i,t,e){let n=`/${i}`,r=`\\${i}`,o=function(a,l){return typeof a!="string"?null:l?e.equals(l,i)?t:null:e.equals(a,i)||e.endsWith(a,n)||e.endsWith(a,r)?t:null},s=[i];return o.basenames=s,o.patterns=[t],o.allBasenames=s,o}function Sb(i,t){let e=xf(i.slice(1,-1).split(",").map(a=>mc(a,t)).filter(a=>a!==Rt),i),n=e.length;if(!n)return Rt;if(n===1)return e[0];let r=function(a,l){for(let c=0,p=e.length;c<p;c++)if(e[c](a,l))return i;return null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function If(i,t,e,n){let r=Te===z.sep,o=r?i:i.replace(pb,Te),s=Te+o,a=z.sep+i,l;return e?l=function(c,p){return typeof c=="string"&&(n.equals(c,o)||n.endsWith(c,s)||!r&&(n.equals(c,i)||n.endsWith(c,a)))?t:null}:l=function(c,p){return typeof c=="string"&&(n.equals(c,o)||!r&&n.equals(c,i))?t:null},l.allPaths=[(e?"*/":"./")+i],l}function Tb(i,t){try{let e=new RegExp(`^${Sf(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return Rt}}function Tf(i,t,e){return!i||typeof t!="string"?!1:gc(i,e)(t)}function gc(i,t={}){if(!i)return bf;if(typeof i=="string"||xb(i)){let e=mc(i,t);if(e===Rt)return bf;let n=function(r,o){return!!e(r,o)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return _b(i,t)}function xb(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function _b(i,t){let e=xf(Object.getOwnPropertyNames(i).map(a=>wb(a,i[a],t)).filter(a=>a!==Rt)),n=e.length;if(!n)return Rt;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(p,u){let f;for(let g=0,b=e.length;g<b;g++){let v=e[g](p,u);if(typeof v=="string")return v;Go(v)&&(f||(f=[]),f.push(v))}return f?(async()=>{for(let g of f){let b=await g;if(typeof b=="string")return b}return null})():null},l=e.find(p=>!!p.allBasenames);l&&(a.allBasenames=l.allBasenames);let c=e.reduce((p,u)=>u.allPaths?p.concat(u.allPaths):p,[]);return c.length&&(a.allPaths=c),a}let r=function(a,l,c){let p,u;for(let f=0,g=e.length;f<g;f++){let b=e[f];b.requiresSiblings&&c&&(l||(l=he(a)),p||(p=l.substring(0,l.length-ru(a).length)));let v=b(a,l,p,c);if(typeof v=="string")return v;Go(v)&&(u||(u=[]),u.push(v))}return u?(async()=>{for(let f of u){let g=await f;if(typeof g=="string")return g}return null})():null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function wb(i,t,e){if(t===!1)return Rt;let n=mc(i,e);if(n===Rt)return Rt;if(typeof t=="boolean")return n;if(t){let r=t.when;if(typeof r=="string"){let o=(s,a,l,c)=>{if(!c||!n(s,a))return null;let p=r.replace("$(basename)",()=>l),u=c(p);return Go(u)?u.then(f=>f?i:null):u?i:null};return o.requiresSiblings=!0,o}}return n}function xf(i,t){let e=i.filter(a=>!!a.basenames);if(e.length<2)return i;let n=e.reduce((a,l)=>{let c=l.basenames;return c?a.concat(c):a},[]),r;if(t){r=[];for(let a=0,l=n.length;a<l;a++)r.push(t)}else r=e.reduce((a,l)=>{let c=l.patterns;return c?a.concat(c):a},[]);let o=function(a,l){if(typeof a!="string")return null;if(!l){let p;for(p=a.length;p>0;p--){let u=a.charCodeAt(p-1);if(u===47||u===92)break}l=a.substring(p)}let c=n.indexOf(l);return c!==-1?r[c]:null};o.basenames=n,o.patterns=r,o.allBasenames=n;let s=i.filter(a=>!a.basenames);return s.push(o),s}function hc(i,t){return di(i,t,(e,n)=>typeof e=="string"&&typeof n=="string"?e===n:typeof e!="string"&&typeof n!="string"?e.base===n.base&&e.pattern===n.pattern:!1)}function to(i){let t=vc(i);return{protocol:i,validate:r=>{try{return t(r,""),!0}catch{return!1}},assertValid:(r,o="")=>t(r,o)}}function Bs(i){return{definition:i,toProtocol(){let t={};for(let e of Object.keys(i))t[e]=i[e].protocol;return{type:"object",properties:t}},values(t){let e=t;for(let n of Object.keys(i)){let r=e[n];if(r===void 0)continue;i[n].assertValid(r,n)}return{...e}},validate(t,e){let n=i[t];return n?n.validate(e):!1},assertValid(t,e){let n=i[t];if(!n)throw new $(gn.InvalidParams,`Unknown schema key '${t}'`);n.assertValid(e,t)},validateOrDefault(t,e){let n={},r=t??{};for(let o of Object.keys(i)){let s=i[o],a=r[o];a!==void 0&&s.validate(a)?n[o]=a:Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n}}}function vc(i){if(i.type==="object"&&i.properties){let t={};for(let n of Object.keys(i.properties))t[n]=vc(i.properties[n]);let e=new Set(i.required??[]);return(n,r)=>{if(typeof n!="object"||n===null||Array.isArray(n))throw zn(r,"object",n);let o=n;for(let s of Object.keys(t)){let a=Rb(r,s);if(o[s]===void 0){if(e.has(s))throw new $(gn.InvalidParams,`Missing required property at '${a}'`);continue}t[s](o[s],a)}}}if(i.type==="array"&&i.items){let t=vc(i.items);return(e,n)=>{if(!Array.isArray(e))throw zn(n,"array",e);for(let r=0;r<e.length;r++)t(e[r],`${n}[${r}]`)}}return Cb(i)}function Cb(i){let t=i.enumDynamic===!0;return(e,n)=>{switch(i.type){case"string":if(typeof e!="string")throw zn(n,"string",e);break;case"number":if(typeof e!="number")throw zn(n,"number",e);break;case"boolean":if(typeof e!="boolean")throw zn(n,"boolean",e);break;case"array":if(!Array.isArray(e))throw zn(n,"array",e);break;case"object":if(typeof e!="object"||e===null||Array.isArray(e))throw zn(n,"object",e);break}if(i.enum&&!t&&!i.enum.includes(e))throw new $(gn.InvalidParams,`Invalid value at '${n||"<root>"}': ${_f(e)} is not one of [${i.enum.map(r=>JSON.stringify(r)).join(", ")}]`)}}function zn(i,t,e){return new $(gn.InvalidParams,`Invalid value at '${i||"<root>"}': expected ${t}, got ${_f(e)}`)}function Rb(i,t){return i?`${i}.${t}`:t}function _f(i){try{return JSON.stringify(i)}catch{return String(i)}}var wf=to({type:"object",title:m(1845,null),description:m(1849,null),properties:{allow:{type:"array",title:m(1846,null),items:{type:"string",title:m(1848,null)}},deny:{type:"array",title:m(1847,null),items:{type:"string",title:m(1848,null)}}},default:{allow:[],deny:[]},sessionMutable:!0}),jr=Bs({autoApprove:to({type:"string",title:m(1837,null),description:m(1844,null),enum:["default","autoApprove","autopilot"],enumLabels:[m(1842,null),m(1840,null),m(1838,null)],enumDescriptions:[m(1843,null),m(1841,null),m(1839,null)],default:"default",sessionMutable:!0}),permissions:wf}),yc=Bs({permissions:wf});import*as Rf from"fs";var Eb=/&&|\|\||[;|]|`|\$\(/,Ic=/(?!.*)/,Cf=/^[A-Z_][A-Z0-9_]*=/i,Vs=class extends L{constructor(e){super();this._logService=e;this._initPromise=this._initTreeSitter()}initialize(){return this._initPromise}shouldAutoApprove(e){let n=e.trimStart();if(n.length===0)return"approved";this._ensureRules();let r=this._extractSubCommands(n);return r&&r.length>0?this._matchSubCommands(r):Eb.test(n)?(this._logService.trace("[CommandAutoApprover] Compound command without tree-sitter, requiring confirmation"),"noMatch"):this._matchCommandLine(n)}_matchSubCommands(e){let n=!0;for(let r of e){if(Cf.test(r))return"denied";let o=this._matchSingleCommand(r);if(o==="denied")return"denied";o!=="approved"&&(n=!1)}return n?"approved":"noMatch"}_matchCommandLine(e){return Cf.test(e)?"denied":this._matchSingleCommand(e)}_matchSingleCommand(e){for(let n of this._denyRules)if(n.regex.test(e))return"denied";for(let n of this._allowRules)if(n.regex.test(e))return"approved";return"noMatch"}_extractSubCommands(e){if(!(!this._parser||!this._bashLanguage||!this._queryClass))try{this._parser.setLanguage(this._bashLanguage);let n=this._parser.parse(e);if(!n)return;try{let r=new this._queryClass(this._bashLanguage,"(command) @command"),s=r.captures(n.rootNode).map(a=>a.node.text);return r.delete(),s.length>0?s:void 0}finally{n.delete()}}catch(n){this._logService.warn("[CommandAutoApprover] Tree-sitter parsing failed",n);return}}async _initTreeSitter(){try{let{default:e}=await import("@vscode/tree-sitter-wasm");if(this._store.isDisposed)return;let n=h.joinPath(et.asFileUri(""),"..","node_modules","@vscode","tree-sitter-wasm","wasm"),r=h.joinPath(n,"tree-sitter.wasm").fsPath;if(await e.Parser.init({locateFile(){return r}}),this._store.isDisposed)return;let o=new e.Parser;this._register(A(()=>{try{o.delete()}catch{}}));let s=h.joinPath(n,"tree-sitter-bash.wasm").fsPath,a=await Rf.promises.readFile(s);if(this._store.isDisposed)return;let l=await e.Language.load(new Uint8Array(a.buffer,a.byteOffset,a.byteLength));if(this._store.isDisposed)return;this._parser=o,this._bashLanguage=l,this._queryClass=e.Query,this._logService.info("[CommandAutoApprover] Tree-sitter initialized successfully")}catch(e){this._logService.warn("[CommandAutoApprover] Failed to initialize tree-sitter",e)}}_ensureRules(){if(this._allowRules&&this._denyRules)return;let e=[],n=[];for(let[r,o]of Object.entries(Ab)){let s=Pb(r);o===!0?e.push({regex:s}):o===!1&&n.push({regex:s})}this._allowRules=e,this._denyRules=n}};function Pb(i){let t=i.match(/^\/(?<pattern>.+)\/(?<flags>[dgimsuvy]*)$/),e=t?.groups?.pattern;if(e){let r=t.groups?.flags;if(r&&(r=r.replaceAll("g","")),e===".*")return new RegExp(e);try{let o=new RegExp(e,r||void 0);return du(o)?Ic:o}catch{return Ic}}if(i==="")return Ic;let n;if(i.includes("/")||i.includes("\\")){let r=i.replace(/[/\\]/g,"%%PATH_SEP%%");r=Lt(r),r=r.replace(/%%PATH_SEP%%*/g,"[/\\\\]"),n=`^(?:\\.[/\\\\])?${r}`}else n=Lt(i);return new RegExp(`^${n}\\b`)}var Ab={cd:!0,echo:!0,ls:!0,dir:!0,pwd:!0,cat:!0,head:!0,tail:!0,findstr:!0,wc:!0,tr:!0,cut:!0,cmp:!0,which:!0,basename:!0,dirname:!0,realpath:!0,readlink:!0,stat:!0,file:!0,od:!0,du:!0,df:!0,sleep:!0,nl:!0,grep:!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+status\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+log\\b.*\\s--output(=|\\s|$)/":!1,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+show\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+diff\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+ls-files\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+grep\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b/":!0,"/^git(\\s+(-C\\s+\\S+|--no-pager))*\\s+branch\\b.*\\s-(d|D|m|M|-delete|-force)\\b/":!1,"/^docker\\s+(ps|images|info|version|inspect|logs|top|stats|port|diff|search|events)\\b/":!0,"/^docker\\s+(container|image|network|volume|context|system)\\s+(ls|ps|inspect|history|show|df|info)\\b/":!0,"/^docker\\s+compose\\s+(ps|ls|top|logs|images|config|version|port|events)\\b/":!0,"Get-ChildItem":!0,"Get-Content":!0,"Get-Date":!0,"Get-Random":!0,"Get-Location":!0,"Set-Location":!0,"Write-Host":!0,"Write-Output":!0,"Out-String":!0,"Split-Path":!0,"Join-Path":!0,"Start-Sleep":!0,"Where-Object":!0,"/^Select-[a-z0-9]/i":!0,"/^Measure-[a-z0-9]/i":!0,"/^Compare-[a-z0-9]/i":!0,"/^Format-[a-z0-9]/i":!0,"/^Sort-[a-z0-9]/i":!0,"/^npm\\s+(ls|list|outdated|view|info|show|explain|why|root|prefix|bin|search|doctor|fund|repo|bugs|docs|home|help(-search)?)\\b/":!0,"/^npm\\s+config\\s+(list|get)\\b/":!0,"/^npm\\s+pkg\\s+get\\b/":!0,"/^npm\\s+audit$/":!0,"/^npm\\s+cache\\s+verify\\b/":!0,"/^yarn\\s+(list|outdated|info|why|bin|help|versions)\\b/":!0,"/^yarn\\s+licenses\\b/":!0,"/^yarn\\s+audit\\b(?!.*\\bfix\\b)/":!0,"/^yarn\\s+config\\s+(list|get)\\b/":!0,"/^yarn\\s+cache\\s+dir\\b/":!0,"/^pnpm\\s+(ls|list|outdated|why|root|bin|doctor)\\b/":!0,"/^pnpm\\s+licenses\\b/":!0,"/^pnpm\\s+audit\\b(?!.*\\bfix\\b)/":!0,"/^pnpm\\s+config\\s+(list|get)\\b/":!0,"npm ci":!0,"/^yarn\\s+install\\s+--frozen-lockfile\\b/":!0,"/^pnpm\\s+install\\s+--frozen-lockfile\\b/":!0,column:!0,"/^column\\b.*\\s-c\\s+[0-9]{4,}/":!1,date:!0,"/^date\\b.*\\s(-s|--set)\\b/":!1,find:!0,"/^find\\b.*\\s-(delete|exec|execdir|fprint|fprintf|fls|ok|okdir)\\b/":!1,rg:!0,"/^rg\\b.*\\s(--pre|--hostname-bin)\\b/":!1,sed:!0,"/^sed\\b.*\\s(-[a-zA-Z]*(e|f)[a-zA-Z]*|--expression|--file)\\b/":!1,"/^sed\\b.*s\\/.*\\/.*\\/[ew]/":!1,"/^sed\\b.*;W/":!1,sort:!0,"/^sort\\b.*\\s-(o|S)\\b/":!1,tree:!0,"/^tree\\b.*\\s-o\\b/":!1,"/^xxd$/":!0,"/^xxd\\b(\\s+-\\S+)*\\s+[^-\\s]\\S*$/":!0,rm:!1,rmdir:!1,del:!1,"Remove-Item":!1,ri:!1,rd:!1,erase:!1,dd:!1,kill:!1,ps:!1,top:!1,"Stop-Process":!1,spps:!1,taskkill:!1,"taskkill.exe":!1,curl:!1,wget:!1,"Invoke-RestMethod":!1,"Invoke-WebRequest":!1,irm:!1,iwr:!1,chmod:!1,chown:!1,"Set-ItemProperty":!1,sp:!1,"Set-Acl":!1,jq:!1,xargs:!1,eval:!1,"Invoke-Expression":!1,iex:!1};var Ef="allow-session",kb=[{id:Ef,label:m(1935,null),kind:"approve",group:1},{id:"allow-once",label:m(1934,null),kind:"approve"},{id:"skip",label:m(1936,null),kind:"deny",group:2}],Db={"**/*":!0,"**/.vscode/*.json":!1,"**/.git/**":!1,"**/{package.json,server.xml,build.rs,web.config,.gitattributes,.env}":!1,"**/*.{code-workspace,csproj,fsproj,vbproj,vcxproj,proj,targets,props}":!1,"**/*.lock":!1,"**/*-lock.{yaml,json}":!1},Kr=class extends L{constructor(e,n,r){super();this._stateManager=e;this._configService=n;this._logService=r;this._commandAutoApprover=this._register(new Vs(this._logService))}initialize(){return this._commandAutoApprover.initialize()}getAutoApproval(e,n){let r=this._configService.getEffectiveValue(n,jr,"autoApprove"),o=this._configService.getEffectiveWorkingDirectory(n);if(r==="autoApprove"||r==="autopilot")return this._logService.trace(`[SessionPermissionManager] Auto-approving tool call (session autoApprove=${r})`),"setting";if(this._isToolAllowedByPermissions(n,e.toolCallId))return"setting";if(e.permissionKind==="read"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)?(this._logService.trace(`[SessionPermissionManager] Auto-approving read of ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="write"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)&&this._isEditAutoApproved(e.permissionPath)?(this._logService.trace(`[SessionPermissionManager] Auto-approving write to ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="shell"&&e.toolInput){let s=this._commandAutoApprover.shouldAutoApprove(e.toolInput);if(s==="approved")return this._logService.trace("[SessionPermissionManager] Auto-approving shell command"),"not-needed";s==="denied"&&this._logService.trace("[SessionPermissionManager] Shell command denied by rule");return}}createToolReadyAction(e,n,r){return e.confirmationTitle?{type:"session/toolCallReady",session:n,turnId:r,toolCallId:e.toolCallId,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmationTitle:e.confirmationTitle,edits:e.edits,options:kb.slice()}:{type:"session/toolCallReady",session:n,turnId:r,toolCallId:e.toolCallId,invocationMessage:e.invocationMessage,toolInput:e.toolInput,confirmed:"not-needed"}}handleToolCallConfirmed(e,n,r){if(r===Ef){let o=this._getToolNameForToolCall(e,n);o&&this._addToolToSessionPermissions(e,o)}}_isPathInWorkingDirectory(e,n){if(!n)return!1;let r=h.parse(n);return gt.isEqualOrParent(ln(h.file(e)),r)}_isEditAutoApproved(e){let n=!0;for(let[r,o]of Object.entries(Db))o!==n&&Tf(r,e)&&(n=o);return n}_isToolAllowedByPermissions(e,n){let r=this._getToolNameForToolCall(e,n);if(!r)return!1;let s=this._configService.getEffectiveValue(e,jr,"permissions")?.allow.includes(r)??!1;return s&&this._logService.trace(`[SessionPermissionManager] Auto-approving "${r}" via permissions`),s}_getToolNameForToolCall(e,n){let o=this._stateManager.getSessionState(e)?.activeTurn?.responseParts;if(o){for(let s of o)if(s.kind==="toolCall"&&s.toolCall.toolCallId===n)return s.toolCall.toolName}}_addToolToSessionPermissions(e,n){let r=this._configService.getEffectiveValue(e,jr,"permissions")??{allow:[],deny:[]};r.allow.includes(n)||(this._configService.updateSessionConfig(e,{permissions:{allow:[...r.allow,n],deny:[...r.deny]}}),this._logService.info(`[SessionPermissionManager] Added "${n}" to session permissions for ${e}`))}};Kr=R([U(1,Ls),U(2,te)],Kr);var In=class extends L{constructor(e,n,r,o,s){super();this._stateManager=e;this._options=n;this._logService=o;this._gitService=s;this._toolCallAgents=new Map;this._eventMappers=new Map;this._diffComputationSequencer=new ht;this._lastAgentInfos=[];this._debouncedDiffTimers=this._register(new lt);this._subagentSessions=new Map;this._pendingSubagentEvents=new Map;this._diffComputeService=this._register(new bn(this._logService)),this._permissionManager=this._register(r.createInstance(Kr,this._stateManager)),this._register(Cr(a=>{let l=this._options.agents.read(a);this._publishAgentInfos(l,a)}))}static{this._DIFF_DEBOUNCE_MS=5e3}_publishAgentInfos(e,n){let r=e.map(o=>{let s=o.getDescriptor(),a=o.getProtectedResources();return{provider:s.provider,displayName:s.displayName,description:s.description,models:o.models.read(n).map(l=>({id:l.id,provider:l.provider,name:l.name,maxContextWindow:l.maxContextWindow,supportsVision:l.supportsVision,policyState:l.policyState,configSchema:l.configSchema})),protectedResources:a.length>0?a:void 0}});Wt(this._lastAgentInfos,r)||(this._lastAgentInfos=r,this._stateManager.dispatchServerAction({type:"root/agentsChanged",agents:r}))}initialize(){return this._permissionManager.initialize()}registerProgressListener(e){let n=new M,r=this._eventMappers.get(e.id);r||(r=new Fs,this._eventMappers.set(e.id,r));let o=r;return n.add(e.onDidSessionProgress(s=>{this._handleAgentProgress(e,o,s)})),n}_handleAgentProgress(e,n,r){let o=r.session.toString();if(r.type==="tool_start"&&!this._getParentToolCallId(r)&&this._toolCallAgents.set(`${o}:${r.toolCallId}`,e.id),r.type==="subagent_started"){this._handleSubagentStarted(o,r.toolCallId,r.agentName,r.agentDisplayName,r.agentDescription),this._drainPendingSubagentEvents(o,r.toolCallId);return}let s=this._getParentToolCallId(r);if(s){let l=`${o}:${s}`,c=this._subagentSessions.get(l);if(c){r.type==="tool_start"&&this._toolCallAgents.set(`${c}:${r.toolCallId}`,e.id);let u=this._stateManager.getActiveTurnId(c);u&&(r.type==="tool_ready"?this._handleToolReady(r,c,u,e):this._dispatchProgressActions(n,r,c,u));return}this._logService.trace(`[AgentSideEffects] Buffering ${r.type} for pending subagent ${l}`);let p=this._pendingSubagentEvents.get(l);p||(p=[],this._pendingSubagentEvents.set(l,p)),p.push({event:r,agent:e,agentMapper:n});return}if(r.type==="tool_ready"){let l=this._findSubagentSessionForToolCall(o,r.toolCallId);if(l){let c=this._stateManager.getActiveTurnId(l);c&&this._handleToolReady(r,l,c,e);return}}let a=this._stateManager.getActiveTurnId(o);if(a){if(r.type==="tool_ready"){this._handleToolReady(r,o,a,e);return}if(r.type==="tool_complete"){let l=`${o}:${r.toolCallId}`;if(this._subagentSessions.get(l)){let p=this._stateManager.getSessionState(o),f=this._getRunningToolCallContent(p,a,r.toolCallId).find(g=>Ve(g,{type:!0})&&g.type==="subagent");if(f){let g=[...r.result.content??[],f];r={...r,result:{...r.result,content:g}}}}}this._dispatchProgressActions(n,r,o,a),r.type==="tool_complete"&&(this.completeSubagentSession(o,r.toolCallId),Zp(r.result).length>0&&this._scheduleDebouncedDiffComputation(o,a))}r.type==="idle"&&(this._cancelDebouncedDiffComputation(o),this._computeSessionDiffs(o,a),this._tryConsumeNextQueuedMessage(o),this._options.onTurnComplete(o)),r.type==="steering_consumed"&&this._stateManager.dispatchServerAction({type:"session/pendingMessageRemoved",session:o,kind:"steering",id:r.id})}_drainPendingSubagentEvents(e,n){let r=`${e}:${n}`,o=this._pendingSubagentEvents.get(r);if(o){this._pendingSubagentEvents.delete(r),this._logService.trace(`[AgentSideEffects] Draining ${o.length} buffered event(s) for subagent ${r}`);for(let{event:s,agent:a,agentMapper:l}of o)this._handleAgentProgress(a,l,s)}}_handleSubagentStarted(e,n,r,o,s){let a=Zi(e,n),l=`${e}:${n}`;if(this._subagentSessions.has(l))return;this._logService.info(`[AgentSideEffects] Creating subagent session: ${a} (parent=${e}, toolCallId=${n})`);let c=this._stateManager.getSessionState(e);this._stateManager.restoreSession({resource:a,provider:"subagent",title:o,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...c?.summary.project?{project:c.summary.project}:{}},[]);let p=ee();this._stateManager.dispatchServerAction({type:"session/turnStarted",session:a,turnId:p,userMessage:{text:""}}),this._subagentSessions.set(l,a);let u=this._stateManager.getActiveTurnId(e);if(u){let f=this._stateManager.getSessionState(e),b=[...this._getRunningToolCallContent(f,u,n),{type:"subagent",resource:a,title:o,agentName:r,description:s}];this._stateManager.dispatchServerAction({type:"session/toolCallContentChanged",session:e,turnId:u,toolCallId:n,content:b})}}_getRunningToolCallContent(e,n,r){if(!e?.activeTurn||e.activeTurn.id!==n)return[];for(let o of e.activeTurn.responseParts)if(o.kind==="toolCall"&&o.toolCall.toolCallId===r&&o.toolCall.status==="running")return o.toolCall.content?[...o.toolCall.content]:[];return[]}cancelSubagentSessions(e){for(let[n,r]of this._subagentSessions)if(n.startsWith(`${e}:`)){let o=this._stateManager.getActiveTurnId(r);o&&this._stateManager.dispatchServerAction({type:"session/turnCancelled",session:r,turnId:o}),this._subagentSessions.delete(n)}for(let n of[...this._pendingSubagentEvents.keys()])n.startsWith(`${e}:`)&&this._pendingSubagentEvents.delete(n)}completeSubagentSession(e,n){let r=`${e}:${n}`;this._pendingSubagentEvents.delete(r);let o=this._subagentSessions.get(r);if(!o)return;let s=this._stateManager.getActiveTurnId(o);s&&this._stateManager.dispatchServerAction({type:"session/turnComplete",session:o,turnId:s}),this._subagentSessions.delete(r)}removeSubagentSessions(e){let n=[];for(let[o,s]of this._subagentSessions)o.startsWith(`${e}:`)&&(this._stateManager.removeSession(s),n.push(o));for(let o of n)this._subagentSessions.delete(o);let r=`${e}/subagent/`;for(let o of this._stateManager.getSessionUrisWithPrefix(r))this._stateManager.removeSession(o);for(let o of[...this._pendingSubagentEvents.keys()])o.startsWith(`${e}:`)&&this._pendingSubagentEvents.delete(o)}_getParentToolCallId(e){switch(e.type){case"delta":case"message":case"tool_start":case"tool_complete":return e.parentToolCallId;default:return}}_findSubagentSessionForToolCall(e,n){let r=`${e}:`;for(let[o,s]of this._subagentSessions)if(o.startsWith(r)&&this._toolCallAgents.has(`${s}:${n}`))return s}_dispatchProgressActions(e,n,r,o){let s=e.mapProgressEventToActions(n,r,o);if(s)if(Array.isArray(s))for(let a of s)this._stateManager.dispatchServerAction(a);else this._stateManager.dispatchServerAction(s)}_handleToolReady(e,n,r,o){if(this._permissionManager.getAutoApproval(e,n)!==void 0){this._toolCallAgents.delete(`${n}:${e.toolCallId}`),o.respondToPermissionRequest(e.toolCallId,!0);return}this._stateManager.dispatchServerAction(this._permissionManager.createToolReadyAction(e,n,r))}handleAction(e){switch(e.type){case"session/turnStarted":{for(let a of this._eventMappers.values())a.reset(e.session);let n=this._stateManager.getSessionState(e.session),r=e.userMessage.text.trim().replace(/\s+/g," ").slice(0,200);n&&n.turns.length===0&&!n.summary.title&&r.length>0&&this._stateManager.dispatchServerAction({type:"session/titleChanged",session:e.session,title:r});let o=this._options.getAgent(e.session);if(!o){this._stateManager.dispatchServerAction({type:"session/error",session:e.session,turnId:e.turnId,error:{errorType:"noAgent",message:"No agent found for session"}});return}let s=e.userMessage.attachments?.map(a=>({type:a.type,uri:h.parse(a.uri),displayName:a.displayName}));o.sendMessage(h.parse(e.session),e.userMessage.text,s,e.turnId).catch(a=>{let l=a?.code;this._logService.error(`[AgentSideEffects] sendMessage failed for session=${e.session}: code=${l}, message=${a instanceof Error?a.message:String(a)}, type=${a?.constructor?.name}`,a),this._stateManager.dispatchServerAction({type:"session/error",session:e.session,turnId:e.turnId,error:{errorType:"sendFailed",message:String(a)}})});break}case"session/toolCallConfirmed":{let n=`${e.session}:${e.toolCallId}`,r=this._toolCallAgents.get(n);r?(this._toolCallAgents.delete(n),this._options.agents.get().find(s=>s.id===r)?.respondToPermissionRequest(e.toolCallId,e.approved)):this._logService.warn(`[AgentSideEffects] No agent for tool call confirmation: ${e.toolCallId}`),e.approved&&this._permissionManager.handleToolCallConfirmed(e.session,e.toolCallId,e.selectedOptionId);break}case"session/inputCompleted":{this._options.getAgent(e.session)?.respondToUserInputRequest(e.requestId,e.response,e.answers);break}case"session/turnCancelled":{this.cancelSubagentSessions(e.session),this._options.getAgent(e.session)?.abortSession(h.parse(e.session)).catch(r=>{this._logService.error("[AgentSideEffects] abortSession failed",r)});break}case"session/modelChanged":{this._options.getAgent(e.session)?.changeModel?.(h.parse(e.session),e.model).catch(r=>{this._logService.error("[AgentSideEffects] changeModel failed",r)});break}case"session/titleChanged":{this._persistTitle(e.session,e.title);break}case"session/pendingMessageSet":case"session/pendingMessageRemoved":case"session/queuedMessagesReordered":{this._syncPendingMessages(e.session);break}case"session/truncated":{this._options.getAgent(e.session)?.truncateSession?.(h.parse(e.session),e.turnId).catch(r=>{this._logService.error("[AgentSideEffects] truncateSession failed",r)}),this._computeSessionDiffs(e.session);break}case"session/activeClientChanged":{let n=this._options.getAgent(e.session);if(!n)break;let r=e.activeClient?.clientId??"";n.setClientTools(h.parse(e.session),r,e.activeClient?.tools??[]);let o=e.activeClient?.customizations;if(!o?.length)break;let s=o.map(a=>({customization:a,enabled:!0,status:"loading"}));this._stateManager.dispatchServerAction({type:"session/customizationsChanged",session:e.session,customizations:s}),n.setClientCustomizations(e.activeClient.clientId,o,a=>{let l=a.map(c=>c.customization);this._stateManager.dispatchServerAction({type:"session/customizationsChanged",session:e.session,customizations:l})}).then(a=>{let l=a.map(c=>c.customization);this._stateManager.dispatchServerAction({type:"session/customizationsChanged",session:e.session,customizations:l})}).catch(a=>{this._logService.error("[AgentSideEffects] setClientCustomizations failed",a)});break}case"session/activeClientToolsChanged":{let n=this._options.getAgent(e.session);if(n){let o=this._stateManager.getSessionState(e.session)?.activeClient?.clientId;o&&n.setClientTools(h.parse(e.session),o,e.tools)}break}case"session/customizationToggled":{this._options.getAgent(e.session)?.setCustomizationEnabled?.(e.uri,e.enabled);break}case"session/isReadChanged":{this._persistSessionFlag(e.session,"isRead",e.isRead?"true":"");break}case"session/isArchivedChanged":{this._persistSessionFlag(e.session,"isArchived",e.isArchived?"true":"");break}case"session/configChanged":{let r=this._stateManager.getSessionState(e.session)?.config?.values;r&&this._persistSessionFlag(e.session,"configValues",JSON.stringify(r));break}case"session/toolCallComplete":{this._options.getAgent(e.session)?.onClientToolCallComplete(h.parse(e.session),e.toolCallId,e.result);break}}}_persistTitle(e,n){let r=this._options.sessionDataService.openDatabase(h.parse(e));r.object.setMetadata("customTitle",n).catch(o=>{this._logService.warn("[AgentSideEffects] Failed to persist session title",o)}).finally(()=>{r.dispose()})}_persistSessionFlag(e,n,r){let o=this._options.sessionDataService.openDatabase(h.parse(e));o.object.setMetadata(n,r).catch(s=>{this._logService.warn(`[AgentSideEffects] Failed to persist ${n}`,s)}).finally(()=>{o.dispose()})}_syncPendingMessages(e){let n=this._stateManager.getSessionState(e);if(!n)return;this._options.getAgent(e)?.setPendingMessages?.(h.parse(e),n.steeringMessage,[]),this._tryConsumeNextQueuedMessage(e)}_tryConsumeNextQueuedMessage(e){if(this._stateManager.getActiveTurnId(e))return;let n=this._stateManager.getSessionState(e);if(!n?.queuedMessages?.length)return;let r=n.queuedMessages[0],o=ee();for(let l of this._eventMappers.values())l.reset(e);this._stateManager.dispatchServerAction({type:"session/turnStarted",session:e,turnId:o,userMessage:r.userMessage,queuedMessageId:r.id});let s=this._options.getAgent(e);if(!s){this._stateManager.dispatchServerAction({type:"session/error",session:e,turnId:o,error:{errorType:"noAgent",message:"No agent found for session"}});return}let a=r.userMessage.attachments?.map(l=>({type:l.type,uri:h.parse(l.uri),displayName:l.displayName}));s.sendMessage(h.parse(e),r.userMessage.text,a,o).catch(l=>{this._logService.error("[AgentSideEffects] sendMessage failed (queued)",l),this._stateManager.dispatchServerAction({type:"session/error",session:e,turnId:o,error:{errorType:"sendFailed",message:String(l)}})})}_scheduleDebouncedDiffComputation(e,n){this._debouncedDiffTimers.set(e,Lu(()=>{this._debouncedDiffTimers.deleteAndDispose(e),this._computeSessionDiffs(e,n)},In._DIFF_DEBOUNCE_MS))}_cancelDebouncedDiffComputation(e){this._debouncedDiffTimers.deleteAndDispose(e)}_computeSessionDiffs(e,n){this._diffComputationSequencer.queue(e,()=>this._doComputeSessionDiffs(e,n))}async _doComputeSessionDiffs(e,n){let r;try{r=this._options.sessionDataService.openDatabase(h.parse(e))}catch(o){this._logService.warn(`[AgentSideEffects] Failed to open session database for diff computation: ${e}`,o);return}try{let o=await this._tryComputeGitDiffs(e,r.object);if(!o){let s;if(n){let a=this._stateManager.getSessionState(e)?.summary.diffs;a&&(s={changedTurnId:n,previousDiffs:a})}o=await ff(e,r.object,this._diffComputeService,s)}this._stateManager.dispatchServerAction({type:"session/diffsChanged",session:e,diffs:[...o]}),r.object.setMetadata("diffs",JSON.stringify(o)).catch(s=>{this._logService.warn("[AgentSideEffects] Failed to persist session diffs",s)})}catch(o){this._logService.warn("[AgentSideEffects] Failed to compute session diffs",o)}finally{r.dispose()}}async _tryComputeGitDiffs(e,n){let r=this._stateManager.getSessionState(e)?.summary.workingDirectory;if(!r)return;let o;try{o=h.parse(r)}catch{return}let s=await n.getMetadata(Us)??void 0;try{return await this._gitService.computeSessionFileDiffs(o,{sessionUri:e,baseBranch:s})}catch(a){this._logService.warn("[AgentSideEffects] git-driven diff computation failed; falling back to edit-tracker",a);return}}dispose(){this._toolCallAgents.clear(),super.dispose()}};In=R([U(2,dn),U(3,te),U(4,vn)],In);import*as Qs from"fs";import{userInfo as Vb}from"os";import*as Sc from"os";var Pf=/^\d+$/,Ob=/^Microsoft.PowerShell_.*/,Lb=/^Microsoft.PowerShellPreview_.*/;var no;switch(process.arch){case"ia32":no=1;break;case"arm":case"arm64":no=2;break;default:no=0;break}var zr;process.env.PROCESSOR_ARCHITEW6432?zr=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?zr=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?zr=1:zr=0;var Gn=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await Je.existsFile(this.exePath)),this.knownToExist}};function Fb({useAlternateBitness:i=!1}={}){return i?no===0?process.env["ProgramFiles(x86)"]||null:zr===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function $s({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=Fb({useAlternateBitness:i});if(!e)return null;let n=W(e,"PowerShell");if(!await Je.existsDirectory(n))return null;let r=-1,o=null;for(let l of await ce.readdir(n)){let c=-1;if(t){let u=l.indexOf("-");if(u<0)continue;let f=l.substring(0,u);if(!Pf.test(f)||l.substring(u+1)!=="preview")continue;c=parseInt(f,10)}else{if(!Pf.test(l))continue;c=parseInt(l,10)}if(c<=r)continue;let p=W(n,l,"pwsh.exe");await Je.existsFile(p)&&(o=p,r=c)}if(!o)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new Gn(o,`PowerShell${a}${s}`,!0)}async function Af({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=W(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await Je.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=i?{pwshMsixDirRegex:Lb,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:Ob,pwshMsixName:"PowerShell (Store)"};for(let r of await ce.readdir(t))if(e.test(r)){let o=W(t,r,"pwsh.exe");return new Gn(o,n)}return null}function Ub(){let i=W(Sc.homedir(),".dotnet","tools","pwsh.exe");return new Gn(i,".NET Core PowerShell Global Tool")}function Nb(){let i=W(Sc.homedir(),"scoop","apps"),t=W(i,"pwsh","current","pwsh.exe");return new Gn(t,"PowerShell (Scoop)")}function Mb(){let i=W(process.env.windir,no===1&&zr!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new Gn(i,"Windows PowerShell",!0)}async function*Wb(){let i=await $s();i&&(yield i),i=await $s({useAlternateBitness:!0}),i&&(yield i),i=await Af(),i&&(yield i),i=Ub(),i&&(yield i),i=await $s({findPreview:!0}),i&&(yield i),i=await Af({findPreview:!0}),i&&(yield i),i=await $s({useAlternateBitness:!0,findPreview:!0}),i&&(yield i),i=await Nb(),i&&(yield i),i=Mb(),i&&(yield i)}async function*Bb(){for await(let i of Wb())await i.exists()&&(yield i)}async function kf(){for await(let i of Bb())return i;return null}async function Of(i,t){return i===1?B?qb():sp(t):$b(i,t)}var Tc=null;function $b(i,t){if(ge&&i===2||Le&&i===3)return"/bin/bash";if(!Tc){let e;if(B)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=Vb().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}Tc=e}return Tc}var xc=null;async function qb(){return xc||(xc=(await kf()).exePath),xc}var Lf=ie("productService");import*as Gr from"os";var _c=class{constructor(){this.data=new Map}add(t,e){Ro(Be(t)),Ro(Po(e)),Ro(!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=>{mi(t.dispose)&&t.dispose()}),this.data.clear()}},Ff=new _c;var _4=ie("ptyService");var Hb={Backend:"workbench.contributions.terminal.processBackend"},wc=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()??""}};Ff.add(Hb.Backend,new wc);var w4=ie("localPtyService"),C4=ie("terminalLogService");function jb(i){return new Map(i)}function Kb(i){return new Map(i??[])}function Uf(i){return new Map(i.map(t=>[t[0],{map:jb(t[1]),descriptionMap:Kb(t[2])}]))}var Gb=new Map([[2,"APPEND"],[3,"PREPEND"],[1,"REPLACE"]]),Jb=/^VSCODE_PYTHON_(PWSH|ZSH|BASH|FISH)_ACTIVATE/,Qb="ms-python.vscode-python-envs",qs=class{constructor(t){this.collections=t;this.map=new Map;this.descriptionMap=new Map;t.forEach((e,n)=>{this.populateDescriptionMap(e,n);let r=e.map.entries(),o=r.next();for(;!o.done;){let s=o.value[1],a=o.value[0];if(this.blockPythonActivationVar(a,n)){o=r.next();continue}let l=this.map.get(a);if(l||(l=[],this.map.set(a,l)),l.length>0&&l[0].type===1){o=r.next();continue}let c={extensionIdentifier:n,value:s.value,type:s.type,scope:s.scope,variable:s.variable,options:s.options};c.scope||delete c.scope,l.unshift(c),o=r.next()}})}async applyToProcessEnvironment(t,e,n){let r;B&&(r={},Object.keys(t).forEach(o=>r[o.toLowerCase()]=o));for(let[o,s]of this.getVariableMap(e)){let a=B&&r[o.toLowerCase()]||o;for(let l of s){let c=n?await n(l.value):l.value;if(!this.blockPythonActivationVar(l.variable,l.extensionIdentifier)){if(l.options?.applyAtProcessCreation??!0)switch(l.type){case 2:t[a]=(t[a]||"")+c;break;case 3:t[a]=c+(t[a]||"");break;case 1:t[a]=c;break}if(l.options?.applyAtShellIntegration??!1){let p=`VSCODE_ENV_${Gb.get(l.type)}`;t[p]=(t[p]?t[p]+":":"")+o+"="+this._encodeColons(c)}}}}}_encodeColons(t){return t.replaceAll(":","\\x3a")}blockPythonActivationVar(t,e){return!!(Jb.test(t)&&Qb!==e)}diff(t,e){let n=new Map,r=new Map,o=new Map;if(t.getVariableMap(e).forEach((s,a)=>{let l=this.getVariableMap(e).get(a),c=Mf(s,l);c&&n.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=Mf(s,l);c&&o.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=Yb(s,l);c&&r.set(a,c)}),!(n.size===0&&r.size===0&&o.size===0))return{added:n,changed:r,removed:o}}getVariableMap(t){let e=new Map;for(let n of this.map.values()){let r=n.filter(o=>Nf(o,t));r.length>0&&e.set(r[0].variable,r)}return e}getDescriptionMap(t){let e=new Map;for(let n of this.descriptionMap.values()){let r=n.filter(o=>Nf(o,t,!0));for(let o of r)e.set(o.extensionIdentifier,o.description)}return e}populateDescriptionMap(t,e){if(!t.descriptionMap)return;let n=t.descriptionMap.entries(),r=n.next();for(;!r.done;){let o=r.value[1],s=r.value[0],a=this.descriptionMap.get(s);a||(a=[],this.descriptionMap.set(s,a));let l={extensionIdentifier:e,scope:o.scope,description:o.description};l.scope||delete l.scope,a.push(l),r=n.next()}}};function Nf(i,t,e=!1){return i.scope?!!(i.scope.workspaceFolder&&t?.workspaceFolder&&i.scope.workspaceFolder.index===t.workspaceFolder.index):e?t===i.scope:!0}function Mf(i,t){if(!t)return i;let e=new Set;t.forEach(r=>e.add(r.extensionIdentifier));let n=[];return i.forEach(r=>{e.has(r.extensionIdentifier)||n.push(r)}),n.length===0?void 0:n}function Yb(i,t){if(!t)return;let e=new Map;t.forEach(r=>e.set(r.extensionIdentifier,r));let n=[];return i.forEach(r=>{let o=e.get(r.extensionIdentifier);o&&(r.type!==o.type||r.value!==o.value||r.scope?.workspaceFolder?.index!==o.scope?.workspaceFolder?.index)&&n.push(o)}),n.length===0?void 0:n}import{chmod as Bf,realpathSync as ey,mkdirSync as ty}from"fs";import{promisify as Vf}from"util";import*as Hs from"os";var ro;async function Xb(){if(ro)return;if(!B){ro={release:Hs.release(),buildNumber:0};return}let i,t;try{let e=await import("@vscode/windows-registry"),n="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",r=e.GetStringRegKey("HKEY_LOCAL_MACHINE",n,"CurrentBuild");r!==void 0&&(i=parseInt(r,10),isNaN(i)&&(i=void 0));let o=e.GetDWORDRegKey("HKEY_LOCAL_MACHINE",n,"CurrentMajorVersionNumber"),s=e.GetDWORDRegKey("HKEY_LOCAL_MACHINE",n,"CurrentMinorVersionNumber");o!==void 0&&s!==void 0&&r!==void 0&&(t=`${o}.${s}.${r}`)}catch{}finally{ro={release:t||Hs.release(),buildNumber:i||Zb()}}}async function Wf(){return ro||await Xb(),ro.buildNumber}function Zb(){let i=/(\d+)\.(\d+)\.(\d+)/g.exec(Hs.release());return i&&i.length===4?parseInt(i[3],10):0}async function jf(i,t,e,n,r,o=!1){if(!t.shellIntegration.enabled)return{type:"failure",reason:"injectionSettingDisabled"};if(!i.executable)return{type:"failure",reason:"noExecutable"};if(i.isFeatureTerminal&&!i.forceShellIntegration)return{type:"failure",reason:"featureTerminal"};if(i.ignoreShellIntegration)return{type:"failure",reason:"ignoreShellIntegrationFlag"};let s=B?await Wf():0;if(B&&s<18309)return{type:"failure",reason:"unsupportedWindowsBuild"};let a=i.args,l=Lo==="win32"?he(i.executable).toLowerCase():he(i.executable),c=ye(et.asFileUri("").fsPath),p="injection",u,f={VSCODE_INJECTION:"1"};t.shellIntegration.nonce&&(f.VSCODE_NONCE=t.shellIntegration.nonce);let g=["PATH","VIRTUAL_ENV","HOME","SHELL","PWD"];if(i.shellIntegrationEnvironmentReporting&&(B?(t.windowsUseConptyDll||s>=22631&&l!=="bash.exe")&&(f.VSCODE_SHELL_ENV_REPORTING=g.join(",")):f.VSCODE_SHELL_ENV_REPORTING=g.join(",")),B)return l==="pwsh.exe"||l==="powershell.exe"?(f.VSCODE_A11Y_MODE=t.isScreenReaderOptimized?"1":"0",!a||Hf(a)?u=fe.get("windows-pwsh"):qf(a)&&(u=fe.get("windows-pwsh-login")),u?(u=[...u],u[u.length-1]=On(u[u.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):l==="bash.exe"?(!a||a.length===0?u=fe.get("bash"):zs(a)&&(f.VSCODE_SHELL_LOGIN="1",js(t,f,l),u=fe.get("bash")),u?(u=[...u],u[u.length-1]=On(u[u.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):(n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"});switch(l){case"bash":return!a||a.length===0?u=fe.get("bash"):zs(a)&&(f.VSCODE_SHELL_LOGIN="1",js(t,f,l),u=fe.get("bash")),u?(u=[...u],u[u.length-1]=On(u[u.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"fish":return!a||a.length===0?u=fe.get("fish"):zs(a)?u=fe.get("fish-login"):(a===fe.get("fish")||a===fe.get("fish-login"))&&(u=a),u?(js(t,f,l),u=[...u],u[u.length-1]=On(u[u.length-1],c),{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"pwsh":return!a||Hf(a)?u=fe.get("pwsh"):qf(a)&&(u=fe.get("pwsh-login")),u?(u=[...u],u[u.length-1]=On(u[u.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"zsh":{if(!a||a.length===0?u=fe.get("zsh"):zs(a)?(u=fe.get("zsh-login"),js(t,f,l)):(a===fe.get("zsh")||a===fe.get("zsh-login"))&&(u=a),!u)return{type:"failure",reason:"unsupportedArgs"};u=[...u],u[u.length-1]=On(u[u.length-1],c);let b;try{b=Gr.userInfo().username}catch{b="unknown"}let v=ey(Gr.tmpdir()),y=W(v,`${b}-${r.applicationName}-zsh`);if(!o)try{await Vf(Bf)(y,960)}catch(T){if(T.message.includes("ENOENT")){try{ty(y)}catch(K){return n.error(`Failed to create zdotdir at ${y}: ${K}`),{type:"failure",reason:"failedToCreateTmpDir"}}try{await Vf(Bf)(y,960)}catch{return n.error(`Failed to set sticky bit on ${y}: ${T}`),{type:"failure",reason:"failedToSetStickyBit"}}}return n.error(`Failed to set sticky bit on ${y}: ${T}`),{type:"failure",reason:"failedToSetStickyBit"}}f.ZDOTDIR=y;let S=e?.ZDOTDIR??Gr.homedir()??"~";f.USER_ZDOTDIR=S;let I=[];return I.push({source:W(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh"),dest:W(y,".zshrc")}),I.push({source:W(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh"),dest:W(y,".zprofile")}),I.push({source:W(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh"),dest:W(y,".zshenv")}),I.push({source:W(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh"),dest:W(y,".zlogin")}),{type:p,newArgs:u,envMixin:f,filesToCopy:I}}}return n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"}}function js(i,t,e){if((Le||e==="fish")&&i.environmentVariableCollections){let n=Uf(i.environmentVariableCollections),o=new qs(n).getVariableMap({workspaceFolder:i.workspaceFolder}).get("PATH"),s=[];if(o)for(let a of o)a.type===3&&s.push(a.value);s.length>0&&(t.VSCODE_PATH_PREFIX=s.join(""))}}var fe=new Map;fe.set("windows-pwsh",["-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);fe.set("windows-pwsh-login",["-l","-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);fe.set("pwsh",["-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"{1}']);fe.set("pwsh-login",["-l","-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"']);fe.set("zsh",["-i"]);fe.set("zsh-login",["-il"]);fe.set("bash",["--init-file","{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh"]);fe.set("fish",["--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);fe.set("fish-login",["-l","--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);var Ks=["-login","-l"],$f=["--login","-l"],ny=["-i","--interactive"],Gs=["-nol","-nologo"];function qf(i){return Be(i)?Ks.includes(i.toLowerCase()):i.length===1&&Ks.includes(i[0].toLowerCase())||i.length===2&&(Ks.includes(i[0].toLowerCase())||Ks.includes(i[1].toLowerCase()))&&(Gs.includes(i[0].toLowerCase())||Gs.includes(i[1].toLowerCase()))}function Hf(i){return Be(i)?Gs.includes(i.toLowerCase()):i.length===0||i?.length===1&&Gs.includes(i[0].toLowerCase())}function zs(i){return Be(i)||(i=i.filter(t=>!ny.includes(t.toLowerCase()))),Be(i)&&$f.includes(i.toLowerCase())||!Be(i)&&i.length===1&&$f.includes(i[0].toLowerCase())}function Kf(i){return i.indexOf("\\")===-1?i:i.replaceAll(/\\(\\|x([0-9a-f]{2}))/gi,(t,e,n)=>n?String.fromCharCode(parseInt(n,16)):e)}function ry(i){let t=i.indexOf(";");if((t===-1?i.length:t)!==1)return;let e=i[0],n=t===-1?"":i.substring(t+1);switch(e){case"A":return{type:0};case"B":return{type:1};case"C":return{type:2};case"D":{let r=n.length>0?parseInt(n,10):void 0;return{type:3,exitCode:r!==void 0&&!isNaN(r)?r:void 0}}case"E":{let r=n.indexOf(";"),o=Kf(r===-1?n:n.substring(0,r)),s=r===-1?void 0:n.substring(r+1);return{type:4,commandLine:o,nonce:s}}case"P":{let r=Kf(n),o=r.indexOf("=");return o===-1?void 0:{type:5,key:r.substring(0,o),value:r.substring(o+1)}}default:return}}var Ec="\x1B",Cc=Ec+"]",Rc="\x07",zf=Ec+"\\",Js=class{constructor(){this._pendingOsc="";this._inOsc=!1;this._pendingEscInOsc=!1}parse(t){let e=[];if(!this._inOsc&&t.indexOf(Cc)===-1)return{cleanedData:t,events:e};let n="",r=0;for(;r<t.length;){if(this._inOsc){if(this._pendingEscInOsc){if(this._pendingEscInOsc=!1,t[r]==="\\"){r++,this._inOsc=!1;let c=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(c,e,{value:n,append(p){n=p}},zf);continue}this._inOsc=!1;let l=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(l,e,{value:n,append(c){n=c}});continue}let a=this._consumeOscBody(t,r);if(r=a.nextIndex,a.complete){this._inOsc=!1;let l=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(l,e,{value:n,append(c){n=c}},a.terminator)}else a.pendingEsc&&(this._pendingEscInOsc=!0);continue}let o=t.indexOf(Cc,r);if(o===-1){n+=t.substring(r),r=t.length;continue}n+=t.substring(r,o),r=o+2,this._pendingOsc="",this._inOsc=!0;let s=this._consumeOscBody(t,r);if(r=s.nextIndex,s.complete){this._inOsc=!1;let a=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(a,e,{value:n,append(l){n=l}},s.terminator)}else s.pendingEsc&&(this._pendingEscInOsc=!0)}return{cleanedData:n,events:e}}_consumeOscBody(t,e){let n=t.indexOf(Rc,e),r=t.indexOf(Ec,e);return n!==-1&&(r===-1||n<r)?(this._pendingOsc+=t.substring(e,n),{nextIndex:n+1,complete:!0,terminator:Rc}):r!==-1?r+1>=t.length?(this._pendingOsc+=t.substring(e,r),{nextIndex:t.length,complete:!1,pendingEsc:!0}):(this._pendingOsc+=t.substring(e,r),t[r+1]==="\\"?{nextIndex:r+2,complete:!0,terminator:zf}:{nextIndex:r,complete:!0}):(this._pendingOsc+=t.substring(e),{nextIndex:t.length,complete:!1})}_handleOscPayload(t,e,n,r=Rc){if(t.startsWith("633;")){let o=t.substring(4),s=ry(o);s&&e.push(s)}else n&&n.append(n.value+Cc+t+r)}};var oy=1e4,Qr=ie("agentHostTerminalManager"),Pc;async function sy(){return Pc||(Pc=await import("node-pty")),Pc}var Jr=class extends L{constructor(e,n,r){super();this._stateManager=e;this._logService=n;this._productService=r;this._terminals=new Map;this._register(this._stateManager.onDidEmitEnvelope(o=>{let s=o.action;if(Ps(s))switch(s.type){case"terminal/input":this._writeInput(s.terminal,s.data);break;case"terminal/resized":this._resize(s.terminal,s.cols,s.rows);break;case"terminal/claimed":this._setClaim(s.terminal,s.claim);break;case"terminal/titleChanged":this._setTitle(s.terminal,s.title);break;case"terminal/cleared":this._clearContent(s.terminal);break}}))}getTerminalInfos(){return[...this._terminals.values()].map(e=>({resource:e.uri,title:e.title,claim:e.claim,exitCode:e.exitCode}))}getTerminalState(e){let n=this._terminals.get(e);if(n)return{title:n.title,cwd:n.cwd,cols:n.cols,rows:n.rows,content:n.content,exitCode:n.exitCode,claim:n.claim,supportsCommandDetection:n.commandTracker?.detectionAvailableEmitted}}async createTerminal(e,n){let r=e.terminal;if(this._terminals.has(r))throw new Error(`Terminal already exists: ${r}`);let o=await sy(),s=await this._resolveCwd(e.cwd,r),a=e.cols??80,l=e.rows??24,c=n?.shell??await this._getDefaultShell(),p=B?"cmd":"xterm-256color";this._logService.info(`[TerminalManager] Creating terminal ${r}: shell=${c}, cwd=${s}, cols=${a}, rows=${l}`);let u=ee(),f={...process.env};n?.preventShellHistory&&(f.VSCODE_PREVENT_SHELL_HISTORY="1"),n?.nonInteractive&&(f.LC_ALL="C.UTF-8",f.PAGER="",f.GIT_PAGER="",f.GH_PAGER="",f.GIT_TERMINAL_PROMPT="0",f.DEBIAN_FRONTEND="noninteractive");let g=[];Le&&iu(c).name.match(/(zsh|bash)/)&&(g=["--login"]);let b=await jf({executable:c,args:g,forceShellIntegration:!0},{shellIntegration:{enabled:!0,suggestEnabled:!1,nonce:u},windowsUseConptyDll:!1,environmentVariableCollections:void 0,workspaceFolder:void 0,isScreenReaderOptimized:!1},void 0,this._logService,this._productService),v;if(b.type==="injection"){if(this._logService.info(`[TerminalManager] Shell integration injected for ${r}`),b.envMixin)for(let[pe,Me]of Object.entries(b.envMixin))Me!==void 0&&(f[pe]=Me);if(b.newArgs&&(g=b.newArgs),b.filesToCopy)for(let pe of b.filesToCopy)try{await Qs.promises.mkdir(ye(pe.dest),{recursive:!0}),await Qs.promises.copyFile(pe.source,pe.dest)}catch{}v={parser:new Js,nonce:u,commandCounter:0,detectionAvailableEmitted:!1}}else this._logService.info(`[TerminalManager] Shell integration not available for ${r}: ${b.reason}`);let y=o.spawn(c,g,{name:p,cwd:s,env:f,cols:a,rows:l}),S=new M,I=e.claim??{kind:"client",clientId:""},T=S.add(new _),K=S.add(new _),we=S.add(new _),at=S.add(new _),E={uri:r,store:S,pty:y,onDataEmitter:T,onExitEmitter:K,onClaimChangedEmitter:we,onCommandFinishedEmitter:at,title:e.name??c,cwd:s,cols:a,rows:l,content:[],contentSize:0,claim:I,commandTracker:v};this._terminals.set(r,E),S.add(A(()=>{try{y.kill()}catch{}}));let F=new $e,k=y.onData(pe=>{this._handlePtyData(E,pe),F.complete()});S.add(A(()=>k.dispose()));let Y=y.onExit(pe=>{E.exitCode=pe.exitCode,E.onExitEmitter.fire(pe.exitCode),F.complete(),this._stateManager.dispatchServerAction({type:"terminal/exited",terminal:r,exitCode:pe.exitCode}),this._broadcastTerminalList()});if(S.add(A(()=>Y.dispose())),!B){let pe=setInterval(()=>{let Me=y.process;Me&&Me!==E.title&&(E.title=Me,this._stateManager.dispatchServerAction({type:"terminal/titleChanged",terminal:r,title:Me}),this._broadcastTerminalList())},200);S.add(A(()=>clearInterval(pe)))}await Ou([F.p,Nt(oy)]),this._broadcastTerminalList()}_writeInput(e,n){this.writeInput(e,n)}writeInput(e,n){let r=this._terminals.get(e);r&&r.exitCode===void 0&&r.pty.write(n)}onData(e,n){let r=this._terminals.get(e);return r?r.onDataEmitter.event(n):A(()=>{})}onExit(e,n){let r=this._terminals.get(e);return r?r.onExitEmitter.event(n):A(()=>{})}onClaimChanged(e,n){let r=this._terminals.get(e);return r?r.onClaimChangedEmitter.event(n):A(()=>{})}onCommandFinished(e,n){let r=this._terminals.get(e);return r?r.onCommandFinishedEmitter.event(n):A(()=>{})}getContent(e){let n=this._terminals.get(e);if(n)return n.content.map(r=>r.type==="command"?r.output:r.value).join("")}getClaim(e){return this._terminals.get(e)?.claim}hasTerminal(e){return this._terminals.has(e)}supportsCommandDetection(e){return this._terminals.get(e)?.commandTracker?.detectionAvailableEmitted??!1}getExitCode(e){return this._terminals.get(e)?.exitCode}_resize(e,n,r){let o=this._terminals.get(e);o&&o.exitCode===void 0&&(o.cols=n,o.rows=r,o.pty.resize(n,r))}_setClaim(e,n){let r=this._terminals.get(e);r&&(r.claim=n,r.onClaimChangedEmitter.fire(n),this._broadcastTerminalList())}_setTitle(e,n){let r=this._terminals.get(e);r&&(r.title=n,this._broadcastTerminalList())}_clearContent(e){let n=this._terminals.get(e);n&&(n.content=[],n.contentSize=0)}_handlePtyData(e,n){let r=e.commandTracker,o;if(r){let s=r.parser.parse(n);o=s.cleanedData;for(let a of s.events)this._handleOsc633Event(e,r,a)}else o=n;o.length>0&&this._appendToContent(e,o),this._trimContent(e),o.length>0&&(e.onDataEmitter.fire(o),this._stateManager.dispatchServerAction({type:"terminal/data",terminal:e.uri,data:o}))}_handleOsc633Event(e,n,r){switch(n.detectionAvailableEmitted||(n.detectionAvailableEmitted=!0,this._stateManager.dispatchServerAction({type:"terminal/commandDetectionAvailable",terminal:e.uri})),r.type){case 4:{r.nonce===n.nonce&&(n.pendingCommandLine=r.commandLine);break}case 2:{let o=`cmd-${++n.commandCounter}`,s=n.pendingCommandLine??"",a=Date.now();n.pendingCommandLine=void 0,n.activeCommandId=o,n.activeCommandTimestamp=a,e.content.push({type:"command",commandId:o,commandLine:s,output:"",timestamp:a,isComplete:!1}),this._stateManager.dispatchServerAction({type:"terminal/commandExecuted",terminal:e.uri,commandId:o,commandLine:s,timestamp:a});break}case 3:{let o=n.activeCommandId;if(!o)break;let s=n.activeCommandTimestamp!==void 0?Date.now()-n.activeCommandTimestamp:void 0,a="",l="";for(let c of e.content)if(c.type==="command"&&c.commandId===o){c.isComplete=!0,c.exitCode=r.exitCode,c.durationMs=s,a=c.commandLine,l=c.output;break}n.activeCommandId=void 0,n.activeCommandTimestamp=void 0,e.onCommandFinishedEmitter.fire({commandId:o,exitCode:r.exitCode,command:a,output:l}),this._stateManager.dispatchServerAction({type:"terminal/commandFinished",terminal:e.uri,commandId:o,exitCode:r.exitCode,durationMs:s});break}case 5:{r.key==="Cwd"&&(e.cwd=r.value,this._stateManager.dispatchServerAction({type:"terminal/cwdChanged",terminal:e.uri,cwd:r.value}));break}}}_appendToContent(e,n){let r=e.content.length>0?e.content[e.content.length-1]:void 0;r&&r.type==="command"&&!r.isComplete?(r.output+=n,e.contentSize+=n.length):r&&r.type==="unclassified"?(r.value+=n,e.contentSize+=n.length):(e.content.push({type:"unclassified",value:n}),e.contentSize+=n.length)}_getContentPartSize(e){return e.type==="command"?e.output.length:e.value.length}_trimContent(e){if(!(e.contentSize<=1e5)){for(;e.contentSize>8e4&&e.content.length>1;){let o=e.content.shift();e.contentSize-=this._getContentPartSize(o)}if(e.contentSize>8e4&&e.content.length>0){let o=e.content[0],s=e.contentSize-8e4;o.type==="command"?o.output=o.output.slice(s):o.value=o.value.slice(s),e.contentSize-=s}}}disposeTerminal(e){let n=this._terminals.get(e);n&&(this._terminals.delete(e),n.store.dispose(),this._broadcastTerminalList())}_getDefaultShell(){return Of(ir,process.env)}async _resolveCwd(e,n){let r=e;if(e){let s=h.parse(e);s.scheme==="file"&&s.fsPath&&s.fsPath!=="/"?r=s.fsPath:this._logService.warn(`[TerminalManager] Ignoring non-file cwd for ${n}: ${e}`)}try{if(r&&(await Qs.promises.stat(r)).isDirectory())return r}catch{}let o=process.env.HOME||process.env.USERPROFILE||process.cwd();return this._logService.warn(`[TerminalManager] cwd '${r}' is not accessible, falling back to ${o}`),o}_broadcastTerminalList(){this._stateManager.dispatchServerAction({type:"root/terminalsChanged",terminals:this.getTerminalInfos()})}dispose(){for(let e of this._terminals.values())e.store.dispose();this._terminals.clear(),super.dispose()}};Jr=R([U(1,te),U(2,Lf)],Jr);var ay={"root/agentsChanged":!1,"root/activeSessionsChanged":!1,"root/terminalsChanged":!1,"root/configChanged":!0,"session/ready":!1,"session/creationFailed":!1,"session/turnStarted":!0,"session/delta":!1,"session/responsePart":!1,"session/toolCallStart":!1,"session/toolCallDelta":!1,"session/toolCallReady":!1,"session/toolCallConfirmed":!0,"session/toolCallComplete":!0,"session/toolCallResultConfirmed":!0,"session/toolCallContentChanged":!0,"session/turnComplete":!1,"session/turnCancelled":!0,"session/error":!1,"session/titleChanged":!0,"session/usage":!1,"session/reasoning":!1,"session/modelChanged":!0,"session/serverToolsChanged":!1,"session/activeClientChanged":!0,"session/activeClientToolsChanged":!0,"session/pendingMessageSet":!0,"session/pendingMessageRemoved":!0,"session/queuedMessagesReordered":!0,"session/inputRequested":!1,"session/inputAnswerChanged":!0,"session/inputCompleted":!0,"session/customizationsChanged":!1,"session/customizationToggled":!0,"session/truncated":!0,"session/isReadChanged":!0,"session/isArchivedChanged":!0,"session/activityChanged":!1,"session/diffsChanged":!1,"session/configChanged":!0,"session/metaChanged":!1,"terminal/data":!1,"terminal/input":!0,"terminal/resized":!0,"terminal/claimed":!0,"terminal/titleChanged":!0,"terminal/cwdChanged":!1,"terminal/exited":!1,"terminal/cleared":!0,"terminal/commandDetectionAvailable":!1,"terminal/commandExecuted":!1,"terminal/commandFinished":!1};function kc(i,t){let e=`Unhandled action type: ${JSON.stringify(i)}`;(t??console.warn)(e)}function io(i){return{toolCallId:i.toolCallId,toolName:i.toolName,displayName:i.displayName,toolClientId:i.toolClientId,_meta:i._meta}}function ly(i,t){if(!(!t||!i))return i.find(e=>e.id===t)}function cy(i){return i.activeTurn?i.activeTurn.responseParts.some(t=>t.kind==="toolCall"&&(t.toolCall.status==="pending-confirmation"||t.toolCall.status==="pending-result-confirmation")):!1}var dy=31;function Xs(i,t,e){return e?i|t:i&~t}function Xr(i,t){let e;return t?e=t:(i.inputRequests?.length??0)>0||cy(i)?e=24:i.activeTurn?e=8:e=1,i.summary.status&~dy|e}function Ys(i){let t=Xr(i);return t===i.summary.status?i:{...i,summary:{...i.summary,status:t}}}function Ac(i,t,e,n,r){if(!i.activeTurn||i.activeTurn.id!==t)return i;let o=i.activeTurn,s=o.responseParts.map(c=>{if(c.kind!=="toolCall")return c;let p=c.toolCall;return p.status==="completed"||p.status==="cancelled"?c:{kind:"toolCall",toolCall:{status:"cancelled",...io(p),invocationMessage:p.status==="streaming"?p.invocationMessage??"":p.invocationMessage,toolInput:p.status==="streaming"?void 0:p.toolInput,reason:"skipped"}}}),a={id:o.id,userMessage:o.userMessage,responseParts:s,usage:o.usage,state:e,error:r},l={...i,turns:[...i.turns,a],activeTurn:void 0,summary:{...i.summary,modifiedAt:Date.now()}};return delete l.inputRequests,{...l,summary:{...l.summary,status:Xr(l,n)}}}function uy(i,t){let e=i.inputRequests??[],n=e.findIndex(s=>s.id===t.id),r=[...e];if(n>=0){let s=t.answers??r[n].answers;r[n]={...t,answers:s}}else r.push(t);let o={...i,inputRequests:r};return{...o,summary:{...o.summary,status:Xs(Xr(o),32,!1),modifiedAt:Date.now()}}}function Yr(i,t,e,n){let r=i.activeTurn;if(!r||r.id!==t)return i;let o=!1,s=r.responseParts.map(a=>{if(a.kind==="toolCall"&&a.toolCall.toolCallId===e){let l=n(a.toolCall);return l===a.toolCall?a:(o=!0,{...a,toolCall:l})}return a});return o?{...i,activeTurn:{...r,responseParts:s}}:i}function Gf(i,t,e,n){let r=i.activeTurn;if(!r||r.id!==t)return i;let o=!1,s=r.responseParts.map(a=>!o&&(a.kind==="toolCall"?a.toolCall.toolCallId:"id"in a?a.id:void 0)===e?(o=!0,n(a)):a);return o?{...i,activeTurn:{...r,responseParts:s}}:i}function Dc(i,t,e){switch(t.type){case"root/agentsChanged":return{...i,agents:t.agents};case"root/activeSessionsChanged":return{...i,activeSessions:t.activeSessions};case"root/terminalsChanged":return{...i,terminals:t.terminals};case"root/configChanged":return i.config?{...i,config:{...i.config,values:t.replace?{...t.config}:{...i.config.values,...t.config}}}:i;default:return kc(t,e),i}}function Oc(i,t,e){switch(t.type){case"session/ready":return{...i,lifecycle:"ready",summary:{...i.summary,status:1}};case"session/creationFailed":return{...i,lifecycle:"creationFailed",creationError:t.error};case"session/turnStarted":{let n={...i,activeTurn:{id:t.turnId,userMessage:t.userMessage,responseParts:[],usage:void 0}};if(n={...n,summary:{...n.summary,status:Xs(Xr(n),32,!1),modifiedAt:Date.now()}},t.queuedMessageId&&(n.steeringMessage?.id===t.queuedMessageId&&(n={...n,steeringMessage:void 0}),n.queuedMessages)){let r=n.queuedMessages.filter(o=>o.id!==t.queuedMessageId);n={...n,queuedMessages:r.length>0?r:void 0}}return n}case"session/delta":return Gf(i,t.turnId,t.partId,n=>n.kind==="markdown"?{...n,content:n.content+t.content}:n);case"session/responsePart":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,responseParts:[...i.activeTurn.responseParts,t.part]}};case"session/turnComplete":return Ac(i,t.turnId,"complete");case"session/turnCancelled":return Ac(i,t.turnId,"cancelled");case"session/error":return Ac(i,t.turnId,"error",2,t.error);case"session/toolCallStart":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,responseParts:[...i.activeTurn.responseParts,{kind:"toolCall",toolCall:{toolCallId:t.toolCallId,toolName:t.toolName,displayName:t.displayName,toolClientId:t.toolClientId,_meta:t._meta,status:"streaming"}}]}};case"session/toolCallDelta":return Yr(i,t.turnId,t.toolCallId,n=>n.status!=="streaming"?n:{...n,partialInput:(n.partialInput??"")+t.content,invocationMessage:t.invocationMessage??n.invocationMessage});case"session/toolCallReady":return Ys(Yr(i,t.turnId,t.toolCallId,n=>{if(n.status!=="streaming"&&n.status!=="running")return n;let r=io(n);return t.confirmed?{status:"running",...r,invocationMessage:t.invocationMessage,toolInput:t.toolInput,confirmed:t.confirmed}:{status:"pending-confirmation",...r,invocationMessage:t.invocationMessage,toolInput:t.toolInput,confirmationTitle:t.confirmationTitle,edits:t.edits,editable:t.editable,...t.options?{options:t.options}:{}}}));case"session/toolCallConfirmed":return Ys(Yr(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-confirmation")return n;let r=io(n),o=ly(n.options,t.selectedOptionId);return t.approved?{status:"running",...r,invocationMessage:n.invocationMessage,toolInput:t.editedToolInput??n.toolInput,confirmed:t.confirmed,...o?{selectedOption:o}:{}}:{status:"cancelled",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,reason:t.reason,reasonMessage:t.reasonMessage,userSuggestion:t.userSuggestion,...o?{selectedOption:o}:{}}}));case"session/toolCallComplete":return Ys(Yr(i,t.turnId,t.toolCallId,n=>{if(n.status!=="running"&&n.status!=="pending-confirmation")return n;let r=io(n),o=n.status==="running"?n.confirmed:"not-needed",s=n.status==="running"?n.selectedOption:void 0;return t.requiresResultConfirmation?{status:"pending-result-confirmation",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:o,...s?{selectedOption:s}:{},...t.result}:{status:"completed",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:o,...s?{selectedOption:s}:{},...t.result}}));case"session/toolCallResultConfirmed":return Ys(Yr(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-result-confirmation")return n;let r=io(n);return t.approved?{status:"completed",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,confirmed:n.confirmed,...n.selectedOption?{selectedOption:n.selectedOption}:{},success:n.success,pastTenseMessage:n.pastTenseMessage,content:n.content,structuredContent:n.structuredContent,error:n.error}:{status:"cancelled",...r,invocationMessage:n.invocationMessage,toolInput:n.toolInput,reason:"result-denied",...n.selectedOption?{selectedOption:n.selectedOption}:{}}}));case"session/toolCallContentChanged":return Yr(i,t.turnId,t.toolCallId,n=>n.status!=="running"?n:{...n,content:t.content});case"session/titleChanged":return{...i,summary:{...i.summary,title:t.title,modifiedAt:Date.now()}};case"session/usage":return!i.activeTurn||i.activeTurn.id!==t.turnId?i:{...i,activeTurn:{...i.activeTurn,usage:t.usage}};case"session/reasoning":return Gf(i,t.turnId,t.partId,n=>n.kind==="reasoning"?{...n,content:n.content+t.content}:n);case"session/modelChanged":return{...i,summary:{...i.summary,model:t.model,modifiedAt:Date.now()}};case"session/isReadChanged":return{...i,summary:{...i.summary,status:Xs(i.summary.status,32,t.isRead)}};case"session/isArchivedChanged":return{...i,summary:{...i.summary,status:Xs(i.summary.status,64,t.isArchived)}};case"session/activityChanged":return{...i,summary:{...i.summary,activity:t.activity}};case"session/diffsChanged":return{...i,summary:{...i.summary,diffs:t.diffs}};case"session/configChanged":return i.config?{...i,config:{...i.config,values:t.replace?{...t.config}:{...i.config.values,...t.config}},summary:{...i.summary,modifiedAt:Date.now()}}:i;case"session/metaChanged":return{...i,_meta:t._meta};case"session/serverToolsChanged":return{...i,serverTools:t.tools};case"session/activeClientChanged":return{...i,activeClient:t.activeClient??void 0};case"session/activeClientToolsChanged":return i.activeClient?{...i,activeClient:{...i.activeClient,tools:t.tools}}:i;case"session/customizationsChanged":return{...i,customizations:t.customizations};case"session/customizationToggled":{let n=i.customizations;if(!n)return i;let r=n.findIndex(s=>s.customization.uri===t.uri);if(r<0)return i;let o=[...n];return o[r]={...n[r],enabled:t.enabled},{...i,customizations:o}}case"session/truncated":{let n;if(t.turnId===void 0)n=[];else{let o=i.turns.findIndex(s=>s.id===t.turnId);if(o<0)return i;n=i.turns.slice(0,o+1)}let r={...i,turns:n,activeTurn:void 0,summary:{...i.summary,modifiedAt:Date.now()}};return delete r.inputRequests,{...r,summary:{...r.summary,status:Xr(r)}}}case"session/inputRequested":return uy(i,t.request);case"session/inputAnswerChanged":{let n=i.inputRequests,r=n?.findIndex(l=>l.id===t.requestId)??-1;if(!n||r<0)return i;let o=n[r],s={...o.answers??{}};t.answer===void 0?delete s[t.questionId]:s[t.questionId]=t.answer;let a=[...n];return a[r]={...o,answers:Object.keys(s).length>0?s:void 0},{...i,inputRequests:a,summary:{...i.summary,modifiedAt:Date.now()}}}case"session/inputCompleted":{let n=i.inputRequests;if(!n?.some(s=>s.id===t.requestId))return i;let r=n.filter(s=>s.id!==t.requestId),o={...i};return r.length>0?o.inputRequests=r:delete o.inputRequests,{...o,summary:{...o.summary,status:Xr(o),modifiedAt:Date.now()}}}case"session/pendingMessageSet":{let n={id:t.id,userMessage:t.userMessage};if(t.kind==="steering")return{...i,steeringMessage:n};let r=i.queuedMessages??[],o=r.findIndex(s=>s.id===t.id);if(o>=0){let s=[...r];return s[o]=n,{...i,queuedMessages:s}}return{...i,queuedMessages:[...r,n]}}case"session/pendingMessageRemoved":{if(t.kind==="steering")return!i.steeringMessage||i.steeringMessage.id!==t.id?i:{...i,steeringMessage:void 0};let n=i.queuedMessages;if(!n)return i;let r=n.filter(o=>o.id!==t.id);return r.length===n.length?i:{...i,queuedMessages:r.length>0?r:void 0}}case"session/queuedMessagesReordered":{let n=i.queuedMessages;if(!n)return i;let r=new Map(n.map(a=>[a.id,a])),o=new Set,s=t.order.filter(a=>r.has(a)&&!o.has(a)?(o.add(a),!0):!1).map(a=>r.get(a));for(let a of n)o.has(a.id)||s.push(a);return{...i,queuedMessages:s}}default:return kc(t,e),i}}var Zr=class extends L{constructor(e){super();this._logService=e;this._serverSeq=0;this._sessionStates=new Map;this._activeTurnToSession=new Map;this._lastNotifiedSummaries=new Map;this._dirtySummaries=new Set;this._summaryNotifyScheduler=this._register(new mr(()=>this._flushSummaryNotifications(),100));this._onDidEmitEnvelope=this._register(new _);this.onDidEmitEnvelope=this._onDidEmitEnvelope.event;this._onDidEmitNotification=this._register(new _);this.onDidEmitNotification=this._onDidEmitNotification.event;this._log=e=>this._logService.warn(`[AgentHostStateManager] ${e}`);this._rootState=ef(),this._rootState={...this._rootState,config:{schema:yc.toProtocol(),values:yc.validateOrDefault({},{permissions:{allow:[],deny:[]}})}}}get hasActiveSessions(){return this._activeTurnToSession.size>0}get rootState(){return this._rootState}getSessionState(e){return this._sessionStates.get(e)}get serverSeq(){return this._serverSeq}getSessionUrisWithPrefix(e){let n=[];for(let r of this._sessionStates.keys())r.startsWith(e)&&n.push(r);return n}getSnapshot(e){if(e===Os)return{resource:e,state:this._rootState,fromSeq:this._serverSeq};let n=this._sessionStates.get(e);if(n)return{resource:e,state:n,fromSeq:this._serverSeq}}createSession(e){let n=e.resource;if(this._sessionStates.has(n))return this._logService.warn(`[AgentHostStateManager] Session already exists: ${n}`),this._sessionStates.get(n);let r=dc(e);return this._sessionStates.set(n,r),this._logService.trace(`[AgentHostStateManager] Created session: ${n}`),this._lastNotifiedSummaries.set(n,e),this._onDidEmitNotification.fire({type:"notify/sessionAdded",summary:e}),r}restoreSession(e,n){let r=e.resource;if(this._sessionStates.has(r))return this._logService.warn(`[AgentHostStateManager] Session already exists (restore): ${r}`),this._sessionStates.get(r);let o={...dc(e),lifecycle:"ready",turns:n};return this._sessionStates.set(r,o),this._lastNotifiedSummaries.set(r,e),this._logService.trace(`[AgentHostStateManager] Restored session: ${r} (${n.length} turns)`),o}removeSession(e){let n=this._sessionStates.get(e);n&&(n.activeTurn&&this._activeTurnToSession.delete(n.activeTurn.id),this._sessionStates.delete(e),this._lastNotifiedSummaries.delete(e),this._dirtySummaries.delete(e),this._logService.trace(`[AgentHostStateManager] Removed session: ${e}`))}deleteSession(e){this.removeSession(e),this._onDidEmitNotification.fire({type:"notify/sessionRemoved",session:e})}setSessionMeta(e,n){this.dispatchServerAction({type:"session/metaChanged",session:e,_meta:n})}getActiveTurnId(e){return this._sessionStates.get(e)?.activeTurn?.id}dispatchServerAction(e){this._applyAndEmit(e,void 0)}dispatchClientAction(e,n){return this._applyAndEmit(e,n)}_applyAndEmit(e,n){let r;if(Hp(e)&&(this._rootState=Dc(this._rootState,e,this._log),r=this._rootState),Nr(e)){let s=e,a=s.session,l=this._sessionStates.get(a);if(l){let c=Oc(l,s,this._log);this._sessionStates.set(a,c),l.summary!==c.summary&&(this._dirtySummaries.add(a),this._summaryNotifyScheduler.schedule()),s.type==="session/turnStarted"?(this._activeTurnToSession.set(s.turnId,a),this.dispatchServerAction({type:"root/activeSessionsChanged",activeSessions:this._activeTurnToSession.size})):(s.type==="session/turnComplete"||s.type==="session/turnCancelled"||s.type==="session/error")&&(this._activeTurnToSession.delete(s.turnId),this.dispatchServerAction({type:"root/activeSessionsChanged",activeSessions:this._activeTurnToSession.size})),r=c}else this._logService.warn(`[AgentHostStateManager] Action for unknown session: ${a}, type=${e.type}`)}let o={action:e,serverSeq:++this._serverSeq,origin:n};return this._logService.trace(`[AgentHostStateManager] Emitting envelope: seq=${o.serverSeq}, type=${e.type}${n?`, origin=${n.clientId}:${n.clientSeq}`:""}`),this._onDidEmitEnvelope.fire(o),r}_flushSummaryNotifications(){for(let e of this._dirtySummaries){let n=this._sessionStates.get(e),r=this._lastNotifiedSummaries.get(e);if(!n||!r||n.summary===r)continue;let o=n.summary,s={};o.title!==r.title&&(s.title=o.title),o.status!==r.status&&(s.status=o.status),o.modifiedAt!==r.modifiedAt&&(s.modifiedAt=o.modifiedAt),o.project!==r.project&&(s.project=o.project),o.model!==r.model&&(s.model=o.model),o.workingDirectory!==r.workingDirectory&&(s.workingDirectory=o.workingDirectory),o.diffs!==r.diffs&&(s.diffs=o.diffs),this._lastNotifiedSummaries.set(e,o),Object.keys(s).length>0&&this._onDidEmitNotification.fire({type:"notify/sessionSummaryChanged",session:e,changes:s})}this._dirtySummaries.clear()}};Zr=R([U(0,te)],Zr);function Jf(i){return i?{subagentDescription:i.subagentDescription,subagentAgentName:i.subagentAgentName}:{}}var Zs=class extends L{constructor(e,n,r,o,s){super();this._logService=e;this._fileService=n;this._sessionDataService=r;this._productService=o;this._gitService=s;this._onDidAction=this._register(new _);this.onDidAction=this._onDidAction.event;this._onDidNotification=this._register(new _);this.onDidNotification=this._onDidNotification.event;this._providers=new Map;this._sessionToProvider=new Map;this._providerSubscriptions=this._register(new M);this._agents=$n("agents",[]);this._logService.info("AgentService initialized"),this._stateManager=this._register(new Zr(e)),this._register(this._stateManager.onDidEmitEnvelope(p=>this._onDidAction.fire(p))),this._register(this._stateManager.onDidEmitNotification(p=>this._onDidNotification.fire(p)));let a=this._register(new Br(this._stateManager,this._logService)),l=new pn([te,this._logService],[Ls,a],[vn,this._gitService]),c=this._register(new Lr(l,!0));this._sideEffects=this._register(c.createInstance(In,this._stateManager,{getAgent:p=>this._findProviderForSession(p),sessionDataService:this._sessionDataService,agents:this._agents,onTurnComplete:p=>{let u=this._stateManager.getSessionState(p)?.summary.workingDirectory;this._attachGitState(h.parse(p),u?h.parse(u):void 0)}})),this._terminalManager=this._register(new Jr(this._stateManager,this._logService,this._productService))}get stateManager(){return this._stateManager}get terminalManager(){return this._terminalManager}registerProvider(e){if(this._providers.has(e.id))throw new Error(`Agent provider already registered: ${e.id}`);this._logService.info(`Registering agent provider: ${e.id}`),this._providers.set(e.id,e),this._providerSubscriptions.add(this._sideEffects.registerProgressListener(e)),this._defaultProvider||(this._defaultProvider=e.id),this._updateAgents()}async authenticate(e){this._logService.trace(`[AgentService] authenticate called: resource=${e.resource}`);for(let n of this._providers.values())if(n.getProtectedResources().some(o=>o.resource===e.resource)&&await n.authenticate(e.resource,e.token))return{authenticated:!0};return{authenticated:!1}}async listSessions(){this._logService.trace("[AgentService] listSessions called");let n=(await Promise.all([...this._providers.values()].map(s=>s.listSessions()))).flat(),o=(await Promise.all(n.map(async s=>{try{let a=await this._sessionDataService.tryOpenDatabase(s.session);if(!a)return s;try{let l=await a.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0}),c=s;if(l.customTitle&&(c={...c,summary:l.customTitle}),l.isRead!==void 0&&(c={...c,isRead:l.isRead==="true"}),l.isArchived!==void 0?c={...c,isArchived:l.isArchived==="true"}:l.isDone!==void 0&&(c={...c,isArchived:l.isDone==="true"}),l.diffs)try{c={...c,diffs:JSON.parse(l.diffs)}}catch{}return c}finally{a.dispose()}}catch(a){this._logService.warn(`[AgentService] Failed to read session metadata overlay for ${s.session}`,a)}return s}))).map(s=>{let a=this._stateManager.getSessionState(s.session.toString());return a?{...s,summary:a.summary.title||s.summary,status:a.summary.status,model:a.summary.model??s.model}:s});return this._logService.trace(`[AgentService] listSessions returned ${o.length} sessions`),o}async createSession(e){let n=e?.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);if(e?.fork){let l=this._stateManager.getSessionState(e.fork.session.toString());if(l){let c=l.turns.slice(0,e.fork.turnIndex+1),p=new Map;for(let u of c)p.set(u.id,ee());e={...e,fork:{...e.fork,turnIdMapping:p}}}}this._logService.trace("[AgentService] createSession: initializing auto-approver and creating session...");let[,o]=await Promise.all([this._sideEffects.initialize(),r.createSession(e)]),s=o.session;this._logService.trace("[AgentService] createSession: initialization complete"),this._logService.trace(`[AgentService] createSession: provider=${r.id} model=${e?.model?.id??"(default)"}`),this._sessionToProvider.set(s.toString(),r.id),this._logService.trace(`[AgentService] createSession returned: ${s.toString()}`);let a=await this._resolveCreatedSessionConfig(r,e);if(e?.fork){let l=this._stateManager.getSessionState(e.fork.session.toString()),c=[];l&&e.fork.turnIdMapping&&(c=l.turns.slice(0,e.fork.turnIndex+1).map(f=>({...f,id:e.fork.turnIdMapping.get(f.id)??ee()})));let p={resource:s.toString(),provider:r.id,title:l?.summary.title??"Forked Session",status:1,createdAt:Date.now(),modifiedAt:Date.now(),...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:e?.model,workingDirectory:(o.workingDirectory??e.workingDirectory)?.toString()},u=this._stateManager.createSession(p);u.config=a,u.turns=c,u.activeClient=e.activeClient}else{let l={resource:s.toString(),provider:r.id,title:"",status:1,createdAt:Date.now(),modifiedAt:Date.now(),...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:e?.model,workingDirectory:(o.workingDirectory??e?.workingDirectory)?.toString()},c=this._stateManager.createSession(l);c.config=a,c.activeClient=e?.activeClient}return a?.values&&Object.keys(a.values).length>0&&this._persistConfigValues(s,a.values),this._stateManager.dispatchServerAction({type:"session/ready",session:s.toString()}),this._attachGitState(s,o.workingDirectory??e?.workingDirectory),s}_attachGitState(e,n){n&&this._gitService.getSessionGitState(n).then(r=>{if(!r)return;let o=e.toString(),s=this._stateManager.getSessionState(o)?._meta;if(Wt(uc(s),r))return;let a=tf(s,r);this._stateManager.setSessionMeta(o,a)},r=>{this._logService.warn(`[AgentService] Failed to compute git state for ${e}`,r)})}_persistConfigValues(e,n){let r;try{r=this._sessionDataService.openDatabase(e)}catch(o){this._logService.warn(`[AgentService] Failed to open session database to persist configValues for ${e.toString()}: ${Wn(o)}`);return}r.object.setMetadata("configValues",JSON.stringify(n)).catch(o=>{this._logService.warn(`[AgentService] Failed to persist configValues for ${e.toString()}: ${Wn(o)}`)}).finally(()=>{r.dispose()})}async _resolveCreatedSessionConfig(e,n){if(!(!n?.config&&!n?.workingDirectory))try{let r=await e.resolveSessionConfig({provider:e.id,workingDirectory:n.workingDirectory,config:n.config});return{schema:r.schema,values:r.values}}catch(r){return this._logService.error(`[AgentService] Failed to resolve created session config for provider ${e.id}`,r),n.config?{schema:{type:"object",properties:{}},values:n.config}:void 0}}async resolveSessionConfig(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.resolveSessionConfig(e)}async sessionConfigCompletions(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.sessionConfigCompletions(e)}async disposeSession(e){this._logService.trace(`[AgentService] disposeSession: ${e.toString()}`);let n=this._findProviderForSession(e);n&&(await n.disposeSession(e),this._sessionToProvider.delete(e.toString())),this._sideEffects.removeSubagentSessions(e.toString()),this._stateManager.deleteSession(e.toString())}async createTerminal(e){await this._terminalManager.createTerminal(e)}async disposeTerminal(e){this._terminalManager.disposeTerminal(e.toString())}async subscribe(e){this._logService.trace(`[AgentService] subscribe: ${e.toString()}`);let n=e.toString(),r=this._terminalManager.getTerminalState(n);if(r)return{resource:n,state:r,fromSeq:this._stateManager.serverSeq};let o=this._stateManager.getSnapshot(n);if(!o){let a=eo(n);a?await this._restoreSubagentSession(n,a.parentSession,a.toolCallId):await this.restoreSession(e),o=this._stateManager.getSnapshot(n)}if(!o)throw new Error(`Cannot subscribe to unknown resource: ${n}`);let s=this._stateManager.getSessionState(n);if(s&&uc(s._meta)===void 0){let a=s.summary?.workingDirectory;this._attachGitState(e,a?h.parse(a):void 0)}return o}unsubscribe(e){this._logService.trace(`[AgentService] unsubscribe: ${e.toString()}`)}dispatchAction(e,n,r){this._logService.trace(`[AgentService] dispatchAction: type=${e.type}, clientId=${n}, clientSeq=${r}`,e);let o={clientId:n,clientSeq:r};Nr(e)?(this._stateManager.dispatchClientAction(e,o),this._sideEffects.handleAction(e)):this._stateManager.dispatchClientAction(e,o)}async resourceList(e){let n;try{n=await this._fileService.resolve(e)}catch{throw new $(xe.NotFound,`Directory not found: ${e.toString()}`)}if(!n.isDirectory)throw new $(xe.NotFound,`Not a directory: ${e.toString()}`);return{entries:(n.children??[]).map(o=>({name:o.name,type:o.isDirectory?"directory":"file"}))}}async restoreSession(e){let n=e.toString();if(this._stateManager.getSessionState(n))return;let r=this._findProviderForSession(e);if(!r)throw new $(hn,`No agent for session: ${n}`);let o;try{o=await r.listSessions()}catch(I){if(I instanceof $)throw I;let T=I instanceof Error?I.message:String(I);throw new $(Mr,`Failed to list sessions for ${n}: ${T}`)}let s=o.find(I=>I.session.toString()===n);if(!s)throw new $(hn,`Session not found on backend: ${n}`);let a;try{a=await r.getSessionMessages(e)}catch(I){if(I instanceof $)throw I;let T=I instanceof Error?I.message:String(I);throw new $(Mr,`Failed to restore session ${n}: ${T}`)}let l=this._buildTurnsFromMessages(a),c=s.summary??"Session",p,u,f,g,b=this._sessionDataService.tryOpenDatabase?.(e);if(b)try{let I=await b;if(I)try{let T=await I.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0,configValues:!0});if(T.customTitle&&(c=T.customTitle),T.isRead!==void 0&&(p=T.isRead==="true"),T.isArchived!==void 0?u=T.isArchived==="true":T.isDone!==void 0&&(u=T.isDone==="true"),T.diffs)try{f=JSON.parse(T.diffs)}catch{}if(T.configValues)try{g=JSON.parse(T.configValues)}catch(K){this._logService.warn(`[AgentService] Failed to parse persisted configValues for ${n}: ${Wn(K)}`)}}finally{I.dispose()}}catch{}let v=1;p&&(v|=32),u&&(v|=64);let y={resource:n,provider:r.id,title:c,status:v,createdAt:s.startTime,modifiedAt:s.modifiedTime,...s.project?{project:{uri:s.project.uri.toString(),displayName:s.project.displayName}}:{},model:s.model,workingDirectory:s.workingDirectory?.toString(),diffs:f};this._stateManager.restoreSession(y,l),s._meta&&this._stateManager.setSessionMeta(n,s._meta);let S=await this._resolveCreatedSessionConfig(r,{workingDirectory:s.workingDirectory,config:g});if(S){let I=this._stateManager.getSessionState(n);I&&(I.config=S)}this._logService.info(`[AgentService] Restored session ${n} with ${l.length} turns`),this._attachGitState(e,s.workingDirectory)}async resourceRead(e){let n=uf(e.toString());if(n)return this._fetchSessionDbContent(n);let r=of(e.toString());if(r)return this._fetchGitBlobContent(r);try{return{data:(await this._fileService.readFile(e)).value.toString(),encoding:"utf-8",contentType:"text/plain"}}catch{throw new $(xe.NotFound,`Content not found: ${e.toString()}`)}}async resourceWrite(e){let n=typeof e.uri=="string"?h.parse(e.uri):h.revive(e.uri),r;e.encoding==="base64"?r=Xo(e.data):r=w.fromString(e.data);try{return e.createOnly?await this._fileService.createFile(n,r,{overwrite:!1}):await this._fileService.writeFile(n,r),{}}catch(o){let s=Ct(o);throw s==="EntryExists"?new $(xe.AlreadyExists,`File already exists: ${n.toString()}`):s==="NoPermissions"?new $(xe.PermissionDenied,`Permission denied: ${n.toString()}`):new $(xe.NotFound,`Failed to write file: ${n.toString()}`)}}async resourceCopy(e){let n=h.parse(e.source),r=h.parse(e.destination);try{return await this._fileService.copy(n,r,!e.failIfExists),{}}catch(o){let s=Ct(o);throw s==="EntryExists"?new $(xe.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new $(xe.PermissionDenied,`Permission denied: ${n.toString()}`):new $(xe.NotFound,`Source not found: ${n.toString()}`)}}async resourceDelete(e){let n=h.parse(e.uri);try{return await this._fileService.del(n,{recursive:e.recursive}),{}}catch(r){throw Ct(r)==="NoPermissions"?new $(xe.PermissionDenied,`Permission denied: ${n.toString()}`):new $(xe.NotFound,`Resource not found: ${n.toString()}`)}}async resourceMove(e){let n=h.parse(e.source),r=h.parse(e.destination);try{return await this._fileService.move(n,r,!e.failIfExists),{}}catch(o){let s=Ct(o);throw s==="EntryExists"?new $(xe.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new $(xe.PermissionDenied,`Permission denied: ${n.toString()}`):new $(xe.NotFound,`Source not found: ${n.toString()}`)}}async shutdown(){this._logService.info("AgentService: shutting down all providers...");let e=[];for(let n of this._providers.values())e.push(n.shutdown());await Promise.all(e),this._sessionToProvider.clear()}_buildTurnsFromMessages(e){let n=[],r=new Map,o,s=(l,c)=>{n.push({id:l.id,userMessage:l.userMessage,responseParts:l.responseParts,usage:void 0,state:c})},a=(l,c)=>({id:l,userMessage:{text:c},responseParts:[],pendingTools:new Map});for(let l of e)if(l.type==="message"&&l.role==="user")o&&s(o,"cancelled"),o=a(l.messageId,l.content);else if(l.type==="message"&&l.role==="assistant"){if(l.parentToolCallId)continue;o||(o=a(l.messageId,"")),l.reasoningText&&o.responseParts.push({kind:"reasoning",id:ee(),content:l.reasoningText}),l.content&&o.responseParts.push({kind:"markdown",id:ee(),content:l.content}),(!l.toolRequests||l.toolRequests.length===0)&&(s(o,"complete"),o=void 0)}else if(l.type==="subagent_started")r.set(l.toolCallId,l);else if(l.type==="tool_start"){if(l.parentToolCallId)continue;o?.pendingTools.set(l.toolCallId,l)}else if(l.type==="tool_complete"){if(l.parentToolCallId)continue;if(o){let c=o.pendingTools.get(l.toolCallId);o.pendingTools.delete(l.toolCallId);let p=r.get(l.toolCallId),u=l.result.content?[...l.result.content]:[];if(p){let g=l.session.toString();u.push({type:"subagent",resource:Zi(g,l.toolCallId),title:p.agentDisplayName,agentName:p.agentName,description:p.agentDescription})}let f={status:"completed",toolCallId:l.toolCallId,toolName:c?.toolName??"unknown",displayName:c?.displayName??"Unknown Tool",invocationMessage:c?.invocationMessage??"Unknown tool",toolInput:c?.toolInput,success:l.result.success,pastTenseMessage:l.result.pastTenseMessage,content:u.length>0?u:void 0,error:l.result.error,confirmed:"not-needed",_meta:{toolKind:c?.toolKind,language:c?.language,...Jf(c)}};o.responseParts.push({kind:"toolCall",toolCall:f})}}return o&&s(o,"cancelled"),n}_buildSubagentTurns(e,n,r){let o=new Set;for(let p of e)(p.type==="tool_start"||p.type==="tool_complete")&&p.parentToolCallId===n&&o.add(p.toolCallId);let s=new Map;for(let p of e)p.type==="subagent_started"&&o.has(p.toolCallId)&&s.set(p.toolCallId,p);let a=e.filter(p=>p.type==="tool_start"||p.type==="tool_complete"||p.type==="message"?p.parentToolCallId===n:!1);if(a.length===0)return[];let l=[],c=new Map;for(let p of a)if(p.type==="tool_start")c.set(p.toolCallId,p);else if(p.type==="tool_complete"){let u=c.get(p.toolCallId);c.delete(p.toolCallId);let f=s.get(p.toolCallId),g=p.result.content?[...p.result.content]:[];f&&g.push({type:"subagent",resource:Zi(r,p.toolCallId),title:f.agentDisplayName,agentName:f.agentName,description:f.agentDescription});let b={status:"completed",toolCallId:p.toolCallId,toolName:u?.toolName??"unknown",displayName:u?.displayName??"Unknown Tool",invocationMessage:u?.invocationMessage??"Unknown tool",toolInput:u?.toolInput,success:p.result.success,pastTenseMessage:p.result.pastTenseMessage,content:g.length>0?g:void 0,error:p.result.error,confirmed:"not-needed",_meta:{toolKind:u?.toolKind,language:u?.language,...Jf(u)}};l.push({kind:"toolCall",toolCall:b})}else p.type==="message"&&p.role==="assistant"&&(p.reasoningText&&l.push({kind:"reasoning",id:ee(),content:p.reasoningText}),p.content&&l.push({kind:"markdown",id:ee(),content:p.content}));return l.length===0?[]:[{id:ee(),userMessage:{text:""},responseParts:l,usage:void 0,state:"complete"}]}async _fetchSessionDbContent(e){let n=h.parse(e.sessionUri),r=this._sessionDataService.openDatabase(n);try{let o=await r.object.readFileEditContent(e.toolCallId,e.filePath);if(!o)throw new $(xe.NotFound,`File edit not found: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);let s=e.part==="before"?o.beforeContent:o.afterContent;if(!s)throw new $(xe.NotFound,`No ${e.part} content for: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);return{data:new TextDecoder().decode(s),encoding:"utf-8",contentType:"text/plain"}}finally{r.dispose()}}async _fetchGitBlobContent(e){if(!this._gitService)throw new $(xe.NotFound,`git service unavailable for: ${e.repoRelativePath}`);let n=this._stateManager.getSessionState(e.sessionUri)?.summary.workingDirectory;if(!n)throw new $(xe.NotFound,`Session has no working directory for git-blob URI: ${e.sessionUri}`);let r=await this._gitService.showBlob(h.parse(n),e.sha,e.repoRelativePath);if(!r)throw new $(xe.NotFound,`git blob not found: ${e.sha}:${e.repoRelativePath}`);return{data:r.toString(),encoding:"utf-8",contentType:"text/plain"}}async _restoreSubagentSession(e,n,r){let o=h.parse(n);if(!this._stateManager.getSessionState(n))try{await this.restoreSession(o)}catch{this._logService.warn(`[AgentService] Cannot restore parent session for subagent: ${n}`);return}let s=this._stateManager.getSessionState(n);if(!s)return;let a=[...s.turns];s.activeTurn&&a.push(s.activeTurn);let l;for(let f of a){for(let g of f.responseParts)if(g.kind==="toolCall"){let b=g.toolCall,v=b.status==="completed"||b.status==="running"?b.content:void 0;if(v){for(let y of v)if(y.type==="subagent"&&y.resource===e){l=y;break}}}if(l)break}let c=[],p=this._findProviderForSession(o);if(p)try{let f=await p.getSessionMessages(o);c=this._buildSubagentTurns(f,r,e)}catch(f){this._logService.warn(`[AgentService] Failed to load parent messages for subagent restore: ${e}`,f)}let u=l?.title??"Subagent";this._stateManager.restoreSession({resource:e,provider:"subagent",title:u,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...s?.summary.project?{project:s.summary.project}:{}},c),this._logService.info(`[AgentService] Restored subagent session: ${e} with ${c.length} turn(s)`)}_findProviderForSession(e){let n=typeof e=="string"?e:e.toString(),r=this._sessionToProvider.get(n);if(r)return this._providers.get(r);let o=de.provider(e);if(o)return this._providers.get(o);if(this._defaultProvider)return this._providers.get(this._defaultProvider)}_updateAgents(){this._agents.set([...this._providers.values()],void 0)}dispose(){for(let e of this._providers.values())e.dispose();this._providers.clear(),super.dispose()}};import{CopilotClient as v1}from"@github/copilot-sdk";import{rgPath as b1}from"@vscode/ripgrep";import*as Qc from"fs/promises";var JA=new Uint32Array(10);var QA=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),YA=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),XA=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]),ZA=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function Yf(...i){return function(t,e){for(let n=0,r=i.length;n<r;n++){let o=i[n](t,e);if(o)return o}return null}}var lk=Zf.bind(void 0,!1),Xf=Zf.bind(void 0,!0);function Zf(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=rn(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function py(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 fy(i,t){return i.length>t.length?null:Lc(i.toLowerCase(),t.toLowerCase(),0,0)}function Lc(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]===t[n]){let r=null;return(r=Lc(i,t,e+1,n+1))?tm({start:n,end:n+1},r):null}return Lc(i,t,e,n+1)}function Uc(i){return 97<=i&&i<=122}function ta(i){return 65<=i&&i<=90}function Nc(i){return 48<=i&&i<=57}function my(i){return i===32||i===9||i===10||i===13}var gy=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>gy.add(i.charCodeAt(0)));function em(i){return Uc(i)||ta(i)||Nc(i)}function tm(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function nm(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if(ta(n)||Nc(n)||e>0&&!em(i.charCodeAt(e-1)))return e}return i.length}function Fc(i,t,e,n){if(e===i.length)return[];if(n===t.length)return null;if(i[e]!==t[n].toLowerCase())return null;{let r=null,o=n+1;for(r=Fc(i,t,e+1,n+1);!r&&(o=nm(t,o))<t.length;)r=Fc(i,t,e+1,o),o++;return r===null?null:tm({start:n,end:n+1},r)}}function hy(i){let t=0,e=0,n=0,r=0,o=0;for(let p=0;p<i.length;p++)o=i.charCodeAt(p),ta(o)&&t++,Uc(o)&&e++,em(o)&&n++,Nc(o)&&r++;let s=t/i.length,a=e/i.length,l=n/i.length,c=r/i.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:c}}function vy(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function by(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:r}=i;return e>.2&&t<.8&&n>.6&&r<.2}function yy(i){let t=0,e=0,n=0,r=0;for(let o=0;o<i.length;o++)n=i.charCodeAt(o),ta(n)&&t++,Uc(n)&&e++,my(n)&&r++;return(t===0||e===0)&&r===0?i.length<=30:t<=5}function rm(i,t){if(!t||(t=t.trim(),t.length===0)||!yy(i))return null;t.length>60&&(t=t.substring(0,60));let e=hy(t);if(!by(e)){if(!vy(e))return null;t=t.toLowerCase()}let n=null,r=0;for(i=i.toLowerCase();r<t.length&&(n=Fc(i,t,0,r))===null;)r=nm(t,r+1);return n}var ck=Yf(Xf,rm,py),dk=Yf(Xf,rm,fy),uk=new _t(1e4);var ea=128;function Mc(){let i=[],t=[];for(let e=0;e<=ea;e++)t[e]=0;for(let e=0;e<=ea;e++)i.push(t.slice(0));return i}function im(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var pk=im(2*ea),fk=im(2*ea),mk=Mc(),gk=Mc(),hk=Mc();var Iy;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(Iy||={});var Qf=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var om=Object.create(null);function d(i,t){if(Be(t)){let e=om[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return om[i]=t,{id:i}}var sm={add:d("add",6e4),plus:d("plus",6e4),gistNew:d("gist-new",6e4),repoCreate:d("repo-create",6e4),lightbulb:d("lightbulb",60001),lightBulb:d("light-bulb",60001),repo:d("repo",60002),repoDelete:d("repo-delete",60002),gistFork:d("gist-fork",60003),repoForked:d("repo-forked",60003),gitPullRequest:d("git-pull-request",60004),gitPullRequestAbandoned:d("git-pull-request-abandoned",60004),recordKeys:d("record-keys",60005),keyboard:d("keyboard",60005),tag:d("tag",60006),gitPullRequestLabel:d("git-pull-request-label",60006),tagAdd:d("tag-add",60006),tagRemove:d("tag-remove",60006),person:d("person",60007),personFollow:d("person-follow",60007),personOutline:d("person-outline",60007),personFilled:d("person-filled",60007),sourceControl:d("source-control",60008),mirror:d("mirror",60009),mirrorPublic:d("mirror-public",60009),star:d("star",60010),starAdd:d("star-add",60010),starDelete:d("star-delete",60010),starEmpty:d("star-empty",60010),comment:d("comment",60011),commentAdd:d("comment-add",60011),alert:d("alert",60012),warning:d("warning",60012),search:d("search",60013),searchSave:d("search-save",60013),logOut:d("log-out",60014),signOut:d("sign-out",60014),logIn:d("log-in",60015),signIn:d("sign-in",60015),eye:d("eye",60016),eyeUnwatch:d("eye-unwatch",60016),eyeWatch:d("eye-watch",60016),circleFilled:d("circle-filled",60017),primitiveDot:d("primitive-dot",60017),closeDirty:d("close-dirty",60017),debugBreakpoint:d("debug-breakpoint",60017),debugBreakpointDisabled:d("debug-breakpoint-disabled",60017),debugHint:d("debug-hint",60017),terminalDecorationSuccess:d("terminal-decoration-success",60017),primitiveSquare:d("primitive-square",60018),edit:d("edit",60019),pencil:d("pencil",60019),info:d("info",60020),issueOpened:d("issue-opened",60020),gistPrivate:d("gist-private",60021),gitForkPrivate:d("git-fork-private",60021),lock:d("lock",60021),mirrorPrivate:d("mirror-private",60021),close:d("close",60022),removeClose:d("remove-close",60022),x:d("x",60022),repoSync:d("repo-sync",60023),sync:d("sync",60023),clone:d("clone",60024),desktopDownload:d("desktop-download",60024),beaker:d("beaker",60025),microscope:d("microscope",60025),vm:d("vm",60026),deviceDesktop:d("device-desktop",60026),file:d("file",60027),more:d("more",60028),ellipsis:d("ellipsis",60028),kebabHorizontal:d("kebab-horizontal",60028),mailReply:d("mail-reply",60029),reply:d("reply",60029),organization:d("organization",60030),organizationFilled:d("organization-filled",60030),organizationOutline:d("organization-outline",60030),newFile:d("new-file",60031),fileAdd:d("file-add",60031),newFolder:d("new-folder",60032),fileDirectoryCreate:d("file-directory-create",60032),trash:d("trash",60033),trashcan:d("trashcan",60033),history:d("history",60034),clock:d("clock",60034),folder:d("folder",60035),fileDirectory:d("file-directory",60035),symbolFolder:d("symbol-folder",60035),logoGithub:d("logo-github",60036),markGithub:d("mark-github",60036),github:d("github",60036),terminal:d("terminal",60037),console:d("console",60037),repl:d("repl",60037),zap:d("zap",60038),symbolEvent:d("symbol-event",60038),error:d("error",60039),stop:d("stop",60039),variable:d("variable",60040),symbolVariable:d("symbol-variable",60040),array:d("array",60042),symbolArray:d("symbol-array",60042),symbolModule:d("symbol-module",60043),symbolPackage:d("symbol-package",60043),symbolNamespace:d("symbol-namespace",60043),symbolObject:d("symbol-object",60043),symbolMethod:d("symbol-method",60044),symbolFunction:d("symbol-function",60044),symbolConstructor:d("symbol-constructor",60044),symbolBoolean:d("symbol-boolean",60047),symbolNull:d("symbol-null",60047),symbolNumeric:d("symbol-numeric",60048),symbolNumber:d("symbol-number",60048),symbolStructure:d("symbol-structure",60049),symbolStruct:d("symbol-struct",60049),symbolParameter:d("symbol-parameter",60050),symbolTypeParameter:d("symbol-type-parameter",60050),symbolKey:d("symbol-key",60051),symbolText:d("symbol-text",60051),symbolReference:d("symbol-reference",60052),goToFile:d("go-to-file",60052),symbolEnum:d("symbol-enum",60053),symbolValue:d("symbol-value",60053),symbolRuler:d("symbol-ruler",60054),symbolUnit:d("symbol-unit",60054),activateBreakpoints:d("activate-breakpoints",60055),archive:d("archive",60056),arrowBoth:d("arrow-both",60057),arrowDown:d("arrow-down",60058),arrowLeft:d("arrow-left",60059),arrowRight:d("arrow-right",60060),arrowSmallDown:d("arrow-small-down",60061),arrowSmallLeft:d("arrow-small-left",60062),arrowSmallRight:d("arrow-small-right",60063),arrowSmallUp:d("arrow-small-up",60064),arrowUp:d("arrow-up",60065),bell:d("bell",60066),bold:d("bold",60067),book:d("book",60068),bookmark:d("bookmark",60069),debugBreakpointConditionalUnverified:d("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:d("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:d("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:d("debug-breakpoint-data-unverified",60072),debugBreakpointData:d("debug-breakpoint-data",60073),debugBreakpointDataDisabled:d("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:d("debug-breakpoint-log-unverified",60074),debugBreakpointLog:d("debug-breakpoint-log",60075),debugBreakpointLogDisabled:d("debug-breakpoint-log-disabled",60075),briefcase:d("briefcase",60076),broadcast:d("broadcast",60077),browser:d("browser",60078),bug:d("bug",60079),calendar:d("calendar",60080),caseSensitive:d("case-sensitive",60081),check:d("check",60082),checklist:d("checklist",60083),chevronDown:d("chevron-down",60084),chevronLeft:d("chevron-left",60085),chevronRight:d("chevron-right",60086),chevronUp:d("chevron-up",60087),chromeClose:d("chrome-close",60088),chromeMaximize:d("chrome-maximize",60089),chromeMinimize:d("chrome-minimize",60090),chromeRestore:d("chrome-restore",60091),circleOutline:d("circle-outline",60092),circle:d("circle",60092),debugBreakpointUnverified:d("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:d("terminal-decoration-incomplete",60092),circleSlash:d("circle-slash",60093),circuitBoard:d("circuit-board",60094),clearAll:d("clear-all",60095),clippy:d("clippy",60096),closeAll:d("close-all",60097),cloudDownload:d("cloud-download",60098),cloudUpload:d("cloud-upload",60099),code:d("code",60100),collapseAll:d("collapse-all",60101),colorMode:d("color-mode",60102),commentDiscussion:d("comment-discussion",60103),creditCard:d("credit-card",60105),dash:d("dash",60108),dashboard:d("dashboard",60109),database:d("database",60110),debugContinue:d("debug-continue",60111),debugDisconnect:d("debug-disconnect",60112),debugPause:d("debug-pause",60113),debugRestart:d("debug-restart",60114),debugStart:d("debug-start",60115),debugStepInto:d("debug-step-into",60116),debugStepOut:d("debug-step-out",60117),debugStepOver:d("debug-step-over",60118),debugStop:d("debug-stop",60119),debug:d("debug",60120),deviceCameraVideo:d("device-camera-video",60121),deviceCamera:d("device-camera",60122),deviceMobile:d("device-mobile",60123),diffAdded:d("diff-added",60124),diffIgnored:d("diff-ignored",60125),diffModified:d("diff-modified",60126),diffRemoved:d("diff-removed",60127),diffRenamed:d("diff-renamed",60128),diff:d("diff",60129),diffSidebyside:d("diff-sidebyside",60129),discard:d("discard",60130),editorLayout:d("editor-layout",60131),emptyWindow:d("empty-window",60132),exclude:d("exclude",60133),extensions:d("extensions",60134),eyeClosed:d("eye-closed",60135),fileBinary:d("file-binary",60136),fileCode:d("file-code",60137),fileMedia:d("file-media",60138),filePdf:d("file-pdf",60139),fileSubmodule:d("file-submodule",60140),fileSymlinkDirectory:d("file-symlink-directory",60141),fileSymlinkFile:d("file-symlink-file",60142),fileZip:d("file-zip",60143),files:d("files",60144),filter:d("filter",60145),flame:d("flame",60146),foldDown:d("fold-down",60147),foldUp:d("fold-up",60148),fold:d("fold",60149),folderActive:d("folder-active",60150),folderOpened:d("folder-opened",60151),gear:d("gear",60152),gift:d("gift",60153),gistSecret:d("gist-secret",60154),gist:d("gist",60155),gitCommit:d("git-commit",60156),gitCompare:d("git-compare",60157),compareChanges:d("compare-changes",60157),gitMerge:d("git-merge",60158),githubAction:d("github-action",60159),githubAlt:d("github-alt",60160),globe:d("globe",60161),grabber:d("grabber",60162),graph:d("graph",60163),gripper:d("gripper",60164),heart:d("heart",60165),home:d("home",60166),horizontalRule:d("horizontal-rule",60167),hubot:d("hubot",60168),inbox:d("inbox",60169),issueReopened:d("issue-reopened",60171),issues:d("issues",60172),italic:d("italic",60173),jersey:d("jersey",60174),json:d("json",60175),bracket:d("bracket",60175),kebabVertical:d("kebab-vertical",60176),key:d("key",60177),law:d("law",60178),lightbulbAutofix:d("lightbulb-autofix",60179),linkExternal:d("link-external",60180),link:d("link",60181),listOrdered:d("list-ordered",60182),listUnordered:d("list-unordered",60183),liveShare:d("live-share",60184),loading:d("loading",60185),location:d("location",60186),mailRead:d("mail-read",60187),mail:d("mail",60188),markdown:d("markdown",60189),megaphone:d("megaphone",60190),mention:d("mention",60191),milestone:d("milestone",60192),gitPullRequestMilestone:d("git-pull-request-milestone",60192),mortarBoard:d("mortar-board",60193),move:d("move",60194),multipleWindows:d("multiple-windows",60195),mute:d("mute",60196),noNewline:d("no-newline",60197),note:d("note",60198),octoface:d("octoface",60199),openPreview:d("open-preview",60200),package:d("package",60201),paintcan:d("paintcan",60202),pin:d("pin",60203),play:d("play",60204),run:d("run",60204),plug:d("plug",60205),preserveCase:d("preserve-case",60206),preview:d("preview",60207),project:d("project",60208),pulse:d("pulse",60209),question:d("question",60210),quote:d("quote",60211),radioTower:d("radio-tower",60212),reactions:d("reactions",60213),references:d("references",60214),refresh:d("refresh",60215),regex:d("regex",60216),remoteExplorer:d("remote-explorer",60217),remote:d("remote",60218),remove:d("remove",60219),replaceAll:d("replace-all",60220),replace:d("replace",60221),repoClone:d("repo-clone",60222),repoForcePush:d("repo-force-push",60223),repoPull:d("repo-pull",60224),repoPush:d("repo-push",60225),report:d("report",60226),requestChanges:d("request-changes",60227),rocket:d("rocket",60228),rootFolderOpened:d("root-folder-opened",60229),rootFolder:d("root-folder",60230),rss:d("rss",60231),ruby:d("ruby",60232),saveAll:d("save-all",60233),saveAs:d("save-as",60234),save:d("save",60235),screenFull:d("screen-full",60236),screenNormal:d("screen-normal",60237),searchStop:d("search-stop",60238),server:d("server",60240),settingsGear:d("settings-gear",60241),settings:d("settings",60242),shield:d("shield",60243),smiley:d("smiley",60244),sortPrecedence:d("sort-precedence",60245),splitHorizontal:d("split-horizontal",60246),splitVertical:d("split-vertical",60247),squirrel:d("squirrel",60248),starFull:d("star-full",60249),starHalf:d("star-half",60250),symbolClass:d("symbol-class",60251),symbolColor:d("symbol-color",60252),symbolConstant:d("symbol-constant",60253),symbolEnumMember:d("symbol-enum-member",60254),symbolField:d("symbol-field",60255),symbolFile:d("symbol-file",60256),symbolInterface:d("symbol-interface",60257),symbolKeyword:d("symbol-keyword",60258),symbolMisc:d("symbol-misc",60259),symbolOperator:d("symbol-operator",60260),symbolProperty:d("symbol-property",60261),wrench:d("wrench",60261),wrenchSubaction:d("wrench-subaction",60261),symbolSnippet:d("symbol-snippet",60262),tasklist:d("tasklist",60263),telescope:d("telescope",60264),textSize:d("text-size",60265),threeBars:d("three-bars",60266),thumbsdown:d("thumbsdown",60267),thumbsup:d("thumbsup",60268),tools:d("tools",60269),triangleDown:d("triangle-down",60270),triangleLeft:d("triangle-left",60271),triangleRight:d("triangle-right",60272),triangleUp:d("triangle-up",60273),twitter:d("twitter",60274),unfold:d("unfold",60275),unlock:d("unlock",60276),unmute:d("unmute",60277),unverified:d("unverified",60278),verified:d("verified",60279),versions:d("versions",60280),vmActive:d("vm-active",60281),vmOutline:d("vm-outline",60282),vmRunning:d("vm-running",60283),watch:d("watch",60284),whitespace:d("whitespace",60285),wholeWord:d("whole-word",60286),window:d("window",60287),wordWrap:d("word-wrap",60288),zoomIn:d("zoom-in",60289),zoomOut:d("zoom-out",60290),listFilter:d("list-filter",60291),listFlat:d("list-flat",60292),listSelection:d("list-selection",60293),selection:d("selection",60293),listTree:d("list-tree",60294),debugBreakpointFunctionUnverified:d("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:d("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:d("debug-breakpoint-function-disabled",60296),debugStackframeActive:d("debug-stackframe-active",60297),circleSmallFilled:d("circle-small-filled",60298),debugStackframeDot:d("debug-stackframe-dot",60298),terminalDecorationMark:d("terminal-decoration-mark",60298),debugStackframe:d("debug-stackframe",60299),debugStackframeFocused:d("debug-stackframe-focused",60299),debugBreakpointUnsupported:d("debug-breakpoint-unsupported",60300),symbolString:d("symbol-string",60301),debugReverseContinue:d("debug-reverse-continue",60302),debugStepBack:d("debug-step-back",60303),debugRestartFrame:d("debug-restart-frame",60304),debugAlt:d("debug-alt",60305),callIncoming:d("call-incoming",60306),callOutgoing:d("call-outgoing",60307),menu:d("menu",60308),expandAll:d("expand-all",60309),feedback:d("feedback",60310),gitPullRequestReviewer:d("git-pull-request-reviewer",60310),groupByRefType:d("group-by-ref-type",60311),ungroupByRefType:d("ungroup-by-ref-type",60312),account:d("account",60313),gitPullRequestAssignee:d("git-pull-request-assignee",60313),bellDot:d("bell-dot",60314),debugConsole:d("debug-console",60315),library:d("library",60316),output:d("output",60317),runAll:d("run-all",60318),syncIgnored:d("sync-ignored",60319),pinned:d("pinned",60320),githubInverted:d("github-inverted",60321),serverProcess:d("server-process",60322),serverEnvironment:d("server-environment",60323),pass:d("pass",60324),issueClosed:d("issue-closed",60324),stopCircle:d("stop-circle",60325),playCircle:d("play-circle",60326),record:d("record",60327),debugAltSmall:d("debug-alt-small",60328),vmConnect:d("vm-connect",60329),cloud:d("cloud",60330),merge:d("merge",60331),export:d("export",60332),graphLeft:d("graph-left",60333),magnet:d("magnet",60334),notebook:d("notebook",60335),redo:d("redo",60336),checkAll:d("check-all",60337),pinnedDirty:d("pinned-dirty",60338),passFilled:d("pass-filled",60339),circleLargeFilled:d("circle-large-filled",60340),circleLarge:d("circle-large",60341),circleLargeOutline:d("circle-large-outline",60341),combine:d("combine",60342),gather:d("gather",60342),table:d("table",60343),variableGroup:d("variable-group",60344),typeHierarchy:d("type-hierarchy",60345),typeHierarchySub:d("type-hierarchy-sub",60346),typeHierarchySuper:d("type-hierarchy-super",60347),gitPullRequestCreate:d("git-pull-request-create",60348),runAbove:d("run-above",60349),runBelow:d("run-below",60350),notebookTemplate:d("notebook-template",60351),debugRerun:d("debug-rerun",60352),workspaceTrusted:d("workspace-trusted",60353),workspaceUntrusted:d("workspace-untrusted",60354),workspaceUnknown:d("workspace-unknown",60355),terminalCmd:d("terminal-cmd",60356),terminalDebian:d("terminal-debian",60357),terminalLinux:d("terminal-linux",60358),terminalPowershell:d("terminal-powershell",60359),terminalTmux:d("terminal-tmux",60360),terminalUbuntu:d("terminal-ubuntu",60361),terminalBash:d("terminal-bash",60362),arrowSwap:d("arrow-swap",60363),copy:d("copy",60364),personAdd:d("person-add",60365),filterFilled:d("filter-filled",60366),wand:d("wand",60367),debugLineByLine:d("debug-line-by-line",60368),inspect:d("inspect",60369),layers:d("layers",60370),layersDot:d("layers-dot",60371),layersActive:d("layers-active",60372),compass:d("compass",60373),compassDot:d("compass-dot",60374),compassActive:d("compass-active",60375),azure:d("azure",60376),issueDraft:d("issue-draft",60377),gitPullRequestClosed:d("git-pull-request-closed",60378),gitPullRequestDraft:d("git-pull-request-draft",60379),debugAll:d("debug-all",60380),debugCoverage:d("debug-coverage",60381),runErrors:d("run-errors",60382),folderLibrary:d("folder-library",60383),debugContinueSmall:d("debug-continue-small",60384),beakerStop:d("beaker-stop",60385),graphLine:d("graph-line",60386),graphScatter:d("graph-scatter",60387),pieChart:d("pie-chart",60388),bracketDot:d("bracket-dot",60389),bracketError:d("bracket-error",60390),lockSmall:d("lock-small",60391),azureDevops:d("azure-devops",60392),verifiedFilled:d("verified-filled",60393),newline:d("newline",60394),layout:d("layout",60395),layoutActivitybarLeft:d("layout-activitybar-left",60396),layoutActivitybarRight:d("layout-activitybar-right",60397),layoutPanelLeft:d("layout-panel-left",60398),layoutPanelCenter:d("layout-panel-center",60399),layoutPanelJustify:d("layout-panel-justify",60400),layoutPanelRight:d("layout-panel-right",60401),layoutPanel:d("layout-panel",60402),layoutSidebarLeft:d("layout-sidebar-left",60403),layoutSidebarRight:d("layout-sidebar-right",60404),layoutStatusbar:d("layout-statusbar",60405),layoutMenubar:d("layout-menubar",60406),layoutCentered:d("layout-centered",60407),target:d("target",60408),indent:d("indent",60409),recordSmall:d("record-small",60410),errorSmall:d("error-small",60411),terminalDecorationError:d("terminal-decoration-error",60411),arrowCircleDown:d("arrow-circle-down",60412),arrowCircleLeft:d("arrow-circle-left",60413),arrowCircleRight:d("arrow-circle-right",60414),arrowCircleUp:d("arrow-circle-up",60415),layoutSidebarRightOff:d("layout-sidebar-right-off",60416),layoutPanelOff:d("layout-panel-off",60417),layoutSidebarLeftOff:d("layout-sidebar-left-off",60418),blank:d("blank",60419),heartFilled:d("heart-filled",60420),map:d("map",60421),mapHorizontal:d("map-horizontal",60421),foldHorizontal:d("fold-horizontal",60421),mapFilled:d("map-filled",60422),mapHorizontalFilled:d("map-horizontal-filled",60422),foldHorizontalFilled:d("fold-horizontal-filled",60422),circleSmall:d("circle-small",60423),bellSlash:d("bell-slash",60424),bellSlashDot:d("bell-slash-dot",60425),commentUnresolved:d("comment-unresolved",60426),gitPullRequestGoToChanges:d("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:d("git-pull-request-new-changes",60428),searchFuzzy:d("search-fuzzy",60429),commentDraft:d("comment-draft",60430),send:d("send",60431),sparkle:d("sparkle",60432),insert:d("insert",60433),mic:d("mic",60434),thumbsdownFilled:d("thumbsdown-filled",60435),thumbsupFilled:d("thumbsup-filled",60436),coffee:d("coffee",60437),snake:d("snake",60438),game:d("game",60439),vr:d("vr",60440),chip:d("chip",60441),piano:d("piano",60442),music:d("music",60443),micFilled:d("mic-filled",60444),repoFetch:d("repo-fetch",60445),copilot:d("copilot",60446),lightbulbSparkle:d("lightbulb-sparkle",60447),robot:d("robot",60448),sparkleFilled:d("sparkle-filled",60449),diffSingle:d("diff-single",60450),diffMultiple:d("diff-multiple",60451),surroundWith:d("surround-with",60452),share:d("share",60453),gitStash:d("git-stash",60454),gitStashApply:d("git-stash-apply",60455),gitStashPop:d("git-stash-pop",60456),vscode:d("vscode",60457),vscodeInsiders:d("vscode-insiders",60458),codeOss:d("code-oss",60459),runCoverage:d("run-coverage",60460),runAllCoverage:d("run-all-coverage",60461),coverage:d("coverage",60462),githubProject:d("github-project",60463),mapVertical:d("map-vertical",60464),foldVertical:d("fold-vertical",60464),mapVerticalFilled:d("map-vertical-filled",60465),foldVerticalFilled:d("fold-vertical-filled",60465),goToSearch:d("go-to-search",60466),percentage:d("percentage",60467),sortPercentage:d("sort-percentage",60467),attach:d("attach",60468),goToEditingSession:d("go-to-editing-session",60469),editSession:d("edit-session",60470),codeReview:d("code-review",60471),copilotWarning:d("copilot-warning",60472),python:d("python",60473),copilotLarge:d("copilot-large",60474),copilotWarningLarge:d("copilot-warning-large",60475),keyboardTab:d("keyboard-tab",60476),copilotBlocked:d("copilot-blocked",60477),copilotNotConnected:d("copilot-not-connected",60478),flag:d("flag",60479),lightbulbEmpty:d("lightbulb-empty",60480),symbolMethodArrow:d("symbol-method-arrow",60481),copilotUnavailable:d("copilot-unavailable",60482),repoPinned:d("repo-pinned",60483),keyboardTabAbove:d("keyboard-tab-above",60484),keyboardTabBelow:d("keyboard-tab-below",60485),gitPullRequestDone:d("git-pull-request-done",60486),mcp:d("mcp",60487),extensionsLarge:d("extensions-large",60488),layoutPanelDock:d("layout-panel-dock",60489),layoutSidebarLeftDock:d("layout-sidebar-left-dock",60490),layoutSidebarRightDock:d("layout-sidebar-right-dock",60491),copilotInProgress:d("copilot-in-progress",60492),copilotError:d("copilot-error",60493),copilotSuccess:d("copilot-success",60494),chatSparkle:d("chat-sparkle",60495),searchSparkle:d("search-sparkle",60496),editSparkle:d("edit-sparkle",60497),copilotSnooze:d("copilot-snooze",60498),sendToRemoteAgent:d("send-to-remote-agent",60499),commentDiscussionSparkle:d("comment-discussion-sparkle",60500),chatSparkleWarning:d("chat-sparkle-warning",60501),chatSparkleError:d("chat-sparkle-error",60502),collection:d("collection",60503),newCollection:d("new-collection",60504),thinking:d("thinking",60505),build:d("build",60506),commentDiscussionQuote:d("comment-discussion-quote",60507),cursor:d("cursor",60508),eraser:d("eraser",60509),fileText:d("file-text",60510),quotes:d("quotes",60512),rename:d("rename",60513),runWithDeps:d("run-with-deps",60514),debugConnected:d("debug-connected",60515),strikethrough:d("strikethrough",60516),openInProduct:d("open-in-product",60517),indexZero:d("index-zero",60518),agent:d("agent",60519),editCode:d("edit-code",60520),repoSelected:d("repo-selected",60521),skip:d("skip",60522),mergeInto:d("merge-into",60523),gitBranchChanges:d("git-branch-changes",60524),gitBranchStagedChanges:d("git-branch-staged-changes",60525),gitBranchConflicts:d("git-branch-conflicts",60526),gitBranch:d("git-branch",60527),gitBranchCreate:d("git-branch-create",60527),gitBranchDelete:d("git-branch-delete",60527),searchLarge:d("search-large",60528),terminalGitBash:d("terminal-git-bash",60529),windowActive:d("window-active",60530),forward:d("forward",60531),download:d("download",60532),clockface:d("clockface",60533),unarchive:d("unarchive",60534),sessionInProgress:d("session-in-progress",60535),collectionSmall:d("collection-small",60536),vmSmall:d("vm-small",60537),cloudSmall:d("cloud-small",60538),addSmall:d("add-small",60539),removeSmall:d("remove-small",60540),worktreeSmall:d("worktree-small",60541),worktree:d("worktree",60542),screenCut:d("screen-cut",60543),ask:d("ask",60544),openai:d("openai",60545),claude:d("claude",60546),openInWindow:d("open-in-window",60547),newSession:d("new-session",60548),terminalSecure:d("terminal-secure",60549)};var Sy={dialogError:d("dialog-error","error"),dialogWarning:d("dialog-warning","warning"),dialogInfo:d("dialog-info","info"),dialogClose:d("dialog-close","close"),treeItemExpanded:d("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:d("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:d("tree-filter-on-type-off","list-selection"),treeFilterClear:d("tree-filter-clear","close"),treeItemLoading:d("tree-item-loading","loading"),menuSelection:d("menu-selection","check"),menuSubmenu:d("menu-submenu","chevron-right"),menuBarMore:d("menubar-more","more"),scrollbarButtonLeft:d("scrollbar-button-left","triangle-left"),scrollbarButtonRight:d("scrollbar-button-right","triangle-right"),scrollbarButtonUp:d("scrollbar-button-up","triangle-up"),scrollbarButtonDown:d("scrollbar-button-down","triangle-down"),toolBarMore:d("toolbar-more","more"),quickInputBack:d("quick-input-back","arrow-left"),dropDownButton:d("drop-down-button",60084),symbolCustomColor:d("symbol-customcolor",60252),exportIcon:d("export",60332),workspaceUnspecified:d("workspace-unspecified",60355),newLine:d("newline",60394),thumbsDownFilled:d("thumbsdown-filled",60435),thumbsUpFilled:d("thumbsup-filled",60436),gitFetch:d("git-fetch",60445),lightbulbSparkleAutofix:d("lightbulb-sparkle-autofix",60447),debugBreakpointPending:d("debug-breakpoint-pending",60377),chatImport:d("chat-import",60550),chatExport:d("chat-export",60551)},na={...sm,...Sy};var am;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(am||={});var so;(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 r=new RegExp(`^(${S.iconNameExpression})(${S.iconModifierExpression})?$`);function o(I){let T=r.exec(I.id);if(!T)return o(na.error);let[,K,we]=T,at=["codicon","codicon-"+K];return we&&at.push("codicon-modifier-"+we.substring(1)),at}S.asClassNameArray=o;function s(I){return o(I).join(" ")}S.asClassName=s;function a(I){return"."+o(I).join(".")}S.asCSSSelector=a;function l(I){return!!I&&typeof I=="object"&&typeof I.id=="string"&&(typeof I.color>"u"||am.isThemeColor(I.color))}S.isThemeIcon=l;let c=new RegExp(`^\\$\\((${S.iconNameExpression}(?:${S.iconModifierExpression})?)\\)$`);function p(I){let T=c.exec(I);if(!T)return;let[,K]=T;return{id:K}}S.fromString=p;function u(I){return{id:I}}S.fromId=u;function f(I,T){let K=I.id,we=K.lastIndexOf("~");return we!==-1&&(K=K.substring(0,we)),T&&(K=`${K}~${T}`),{id:K}}S.modify=f;function g(I){let T=I.id.lastIndexOf("~");if(T!==-1)return I.id.substring(T+1)}S.getModifier=g;function b(I,T){return I.id===T.id&&I.color?.id===T.color?.id}S.isEqual=b;function v(I){return I?.id===na.file.id}S.isFile=v;function y(I){return I?.id===na.folder.id}S.isFolder=y})(so||={});var Wc=new RegExp(`\\$\\(${so.iconNameExpression}(?:${so.iconModifierExpression})?\\)`,"g"),Dk=new RegExp(`(\\\\)?${Wc.source}`,"g");var Ok=new RegExp(`\\\\${Wc.source}`,"g");var Lk=new RegExp(`(\\s)?(\\\\)?${Wc.source}(\\s)?`,"g");var Fk=new RegExp(`\\$\\(${so.iconNameCharacter}+\\)`,"g");function lm(i){return i.replace(/[\\\]]/g,"\\$&")}function ot(i){let t=Math.max(0,...(i.match(/`+/g)??[]).map(o=>o.length)),e="`".repeat(t+1),r=i.startsWith("`")||i.endsWith("`")?` ${i} `:i;return`${e}${r}${e}`}var Vc;(t=>t.DEFAULT={allowTrailingComma:!0})(Vc||={});function Ty(i,t=!1){let e=0,n=i.length,r="",o=0,s=16,a=0;function l(v){let y=0,S=0;for(;y<v;){let I=i.charCodeAt(e);if(I>=48&&I<=57)S=S*16+I-48;else if(I>=65&&I<=70)S=S*16+I-65+10;else if(I>=97&&I<=102)S=S*16+I-97+10;else break;e++,y++}return y<v&&(S=-1),S}function c(v){e=v,r="",o=0,s=16,a=0}function p(){let v=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&ei(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&ei(i.charCodeAt(e)))for(e++;e<i.length&&ei(i.charCodeAt(e));)e++;else return a=3,i.substring(v,e);let y=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&&ei(i.charCodeAt(e))){for(e++;e<i.length&&ei(i.charCodeAt(e));)e++;y=e}else a=3;return i.substring(v,y)}function u(){let v="",y=e;for(;;){if(e>=n){v+=i.substring(y,e),a=2;break}let S=i.charCodeAt(e);if(S===34){v+=i.substring(y,e),e++;break}if(S===92){if(v+=i.substring(y,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:v+='"';break;case 92:v+="\\";break;case 47:v+="/";break;case 98:v+="\b";break;case 102:v+="\f";break;case 110:v+=`
`;break;case 114:v+="\r";break;case 116:v+="	";break;case 117:{let T=l(4);T>=0?v+=String.fromCharCode(T):a=4;break}default:a=5}y=e;continue}if(S>=0&&S<=31)if(ra(S)){v+=i.substring(y,e),a=2;break}else a=6;e++}return v}function f(){if(r="",a=0,o=e,e>=n)return o=n,s=17;let v=i.charCodeAt(e);if(Bc(v)){do e++,r+=String.fromCharCode(v),v=i.charCodeAt(e);while(Bc(v));return s=15}if(ra(v))return e++,r+=String.fromCharCode(v),v===13&&i.charCodeAt(e)===10&&(e++,r+=`
`),s=14;switch(v){case 123:return e++,s=1;case 125:return e++,s=2;case 91:return e++,s=3;case 93:return e++,s=4;case 58:return e++,s=6;case 44:return e++,s=5;case 34:return e++,r=u(),s=10;case 47:{let y=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!ra(i.charCodeAt(e));)e++;return r=i.substring(y,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let S=n-1,I=!1;for(;e<S;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,I=!0;break}e++}return I||(e++,a=1),r=i.substring(y,e),s=13}return r+=String.fromCharCode(v),e++,s=16}case 45:if(r+=String.fromCharCode(v),e++,e===n||!ei(i.charCodeAt(e)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return r+=p(),s=11;default:for(;e<n&&g(v);)e++,v=i.charCodeAt(e);if(o!==e){switch(r=i.substring(o,e),r){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return r+=String.fromCharCode(v),e++,s=16}}function g(v){if(Bc(v)||ra(v))return!1;switch(v){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function b(){let v;do v=f();while(v>=12&&v<=15);return v}return{setPosition:c,getPosition:()=>e,scan:t?b:f,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>e-o,getTokenError:()=>a}}function Bc(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 ra(i){return i===10||i===13||i===8232||i===8233}function ei(i){return i>=48&&i<=57}function cm(i,t=[],e=Vc.DEFAULT){let n=null,r=[],o=[];function s(l){Array.isArray(r)?r.push(l):n!==null&&(r[n]=l)}return xy(i,{onObjectBegin:()=>{let l={};s(l),o.push(r),r=l,n=null},onObjectProperty:l=>{n=l},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let l=[];s(l),o.push(r),r=l,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:s,onError:(l,c,p)=>{t.push({error:l,offset:c,length:p})}},e),r[0]}function xy(i,t,e=Vc.DEFAULT){let n=Ty(i,!1);function r(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength()):()=>!0}function o(k){return k?Y=>k(Y,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=r(t.onObjectBegin),a=o(t.onObjectProperty),l=r(t.onObjectEnd),c=r(t.onArrayBegin),p=r(t.onArrayEnd),u=o(t.onLiteralValue),f=o(t.onSeparator),g=r(t.onComment),b=o(t.onError),v=e&&e.disallowComments,y=e&&e.allowTrailingComma;function S(){for(;;){let k=n.scan();switch(n.getTokenError()){case 4:I(14);break;case 5:I(15);break;case 3:I(13);break;case 1:v||I(11);break;case 2:I(12);break;case 6:I(16);break}switch(k){case 12:case 13:v?I(10):g();break;case 16:I(1);break;case 15:case 14:break;default:return k}}}function I(k,Y=[],pe=[]){if(b(k),Y.length+pe.length>0){let Me=n.getToken();for(;Me!==17;){if(Y.indexOf(Me)!==-1){S();break}else if(pe.indexOf(Me)!==-1)break;Me=S()}}}function T(k){let Y=n.getTokenValue();return k?u(Y):a(Y),S(),!0}function K(){switch(n.getToken()){case 11:{let k=0;try{k=JSON.parse(n.getTokenValue()),typeof k!="number"&&(I(2),k=0)}catch{I(2)}u(k);break}case 7:u(null);break;case 8:u(!0);break;case 9:u(!1);break;default:return!1}return S(),!0}function we(){return n.getToken()!==10?(I(3,[],[2,5]),!1):(T(!1),n.getToken()===6?(f(":"),S(),F()||I(4,[],[2,5])):I(5,[],[2,5]),!0)}function at(){s(),S();let k=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(k||I(4,[],[]),f(","),S(),n.getToken()===2&&y)break}else k&&I(6,[],[]);we()||I(4,[],[2,5]),k=!0}return l(),n.getToken()!==2?I(7,[2],[]):S(),!0}function E(){c(),S();let k=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(k||I(4,[],[]),f(","),S(),n.getToken()===4&&y)break}else k&&I(6,[],[]);F()||I(4,[],[4,5]),k=!0}return p(),n.getToken()!==4?I(8,[4],[]):S(),!0}function F(){switch(n.getToken()){case 3:return E();case 1:return at();case 10:return T(!0);default:return K()}}return S(),n.getToken()===17?e.allowEmptyContent?!0:(I(4,[],[]),!1):F()?(n.getToken()!==17&&I(9,[],[]),!0):(I(4,[],[]),!1)}function dm(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}var wy={format:0,manifestPath:"plugin.json",hookConfigPath:"hooks.json",pluginRootToken:void 0,pluginRootEnvVar:void 0,parseHooks(i,t,e,n,r){return pm(i,t,n,r)}},Cy={format:1,manifestPath:".claude-plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${CLAUDE_PLUGIN_ROOT}",pluginRootEnvVar:"CLAUDE_PLUGIN_ROOT",parseHooks(i,t,e,n,r){return fm(i,t,e,n,r,"${CLAUDE_PLUGIN_ROOT}","CLAUDE_PLUGIN_ROOT")}},Ry={format:2,manifestPath:".plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${PLUGIN_ROOT}",pluginRootEnvVar:"PLUGIN_ROOT",parseHooks(i,t,e,n,r){return fm(i,t,e,n,r,"${PLUGIN_ROOT}","PLUGIN_ROOT")}};async function Ey(i,t){return await ao(re(i,".plugin","plugin.json"),t)?Ry:i.path.split("/").includes(".claude")||await ao(re(i,".claude-plugin","plugin.json"),t)?Cy:wy}var $c={paths:[],exclusive:!1};function ia(i){if(i==null)return $c;if(typeof i=="string"){let t=i.trim();return t?{paths:[t],exclusive:!1}:$c}if(Array.isArray(i))return{paths:i.filter(e=>typeof e=="string").map(e=>e.trim()).filter(e=>e.length>0),exclusive:!1};if(typeof i=="object"){let t=i;if(Array.isArray(t.paths)){let e=t.paths.filter(r=>typeof r=="string").map(r=>r.trim()).filter(r=>r.length>0),n=t.exclusive===!0;return{paths:e,exclusive:n}}}return $c}function oa(i,t,e){let n=[];e.exclusive||n.push(re(i,t));for(let r of e.paths){let o=ln(re(i,r));Eu(o,i)&&n.push(o)}return n}function Py(i){if(!i||typeof i!="object"||Array.isArray(i))return;let t=i;return Object.hasOwn(t,"mcpServers")?t.mcpServers:t}function Ay(i){if(!i||typeof i!="object")return;let t=i,e=typeof t.type=="string"?t.type:void 0,n=typeof t.command=="string"?t.command:void 0,r=typeof t.url=="string"?t.url:void 0,o=Array.isArray(t.args)?t.args.filter(u=>typeof u=="string"):void 0,s=t.env&&typeof t.env=="object"?Object.fromEntries(Object.entries(t.env).filter(([,u])=>typeof u=="string"||typeof u=="number"||u===null).map(([u,f])=>[u,f])):void 0,a=typeof t.envFile=="string"?t.envFile:void 0,l=typeof t.cwd=="string"?t.cwd:void 0,c=t.headers&&typeof t.headers=="object"?Object.fromEntries(Object.entries(t.headers).filter(([,u])=>typeof u=="string").map(([u,f])=>[u,f])):void 0,p=t.dev&&typeof t.dev=="object"?t.dev:void 0;if(e!=="ws"){if(e==="stdio"||!e&&n)return n?{type:"stdio",command:n,args:o,env:s,envFile:a,cwd:l,dev:p}:void 0;if(e==="http"||e==="sse"||!e&&r)return r?{type:"http",url:r,headers:c,dev:p}:void 0}}var ky=/[\s&|<>()^;!`"']/;function Dy(i,t,e){if(!i.includes(e))return i;if(!ky.test(t))return i.replaceAll(e,t);let n=Lt(e),r=new RegExp(`(["']?)`+n+"([\\w./\\\\~:-]*)","g");return i.replace(r,(o,s,a)=>{let l=t+a;return s?s+l:'"'+l.replace(/"/g,'\\"')+'"'})}function Oy(i,t,e,n){let r=a=>a.replaceAll(e,t),o=i.configuration,s;if(o.type==="stdio"){let a={...o};a.command=r(a.command),a.args&&(a.args=a.args.map(r)),a.cwd&&(a.cwd=r(a.cwd)),a.env={...a.env};for(let[l,c]of Object.entries(a.env))typeof c=="string"&&(a.env[l]=r(c));a.env[n]=t,a.envFile&&(a.envFile=r(a.envFile)),s=a}else{let a={...o};a.url=r(a.url),a.headers&&(a.headers=Object.fromEntries(Object.entries(a.headers).map(([l,c])=>[l,r(c)]))),s=a}return{name:i.name,configuration:s,uri:i.uri}}var Ly=/\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;function Fy(i){return Al(i,t=>{if(h.isUri(t))return t;if(typeof t=="string"){let e=t.replace(Ly,"${env:$1}");return e!==t?e:void 0}})}var Uy={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 Ny(i){if(i.type!==void 0&&i.type!=="command")return;let t=typeof i.command=="string"&&i.command.length>0,e=typeof i.bash=="string"&&i.bash.length>0,n=typeof i.powershell=="string"&&i.powershell.length>0,r=typeof i.windows=="string"&&i.windows.length>0,o=typeof i.linux=="string"&&i.linux.length>0,s=typeof i.osx=="string"&&i.osx.length>0;if(!t&&!e&&!n&&!r&&!o&&!s)return;let a=r?i.windows:n?i.powershell:void 0,l=o?i.linux:e?i.bash:void 0,c=s?i.osx:e?i.bash:void 0,p=typeof i.timeout=="number"?i.timeout:typeof i.timeoutSec=="number"?i.timeoutSec:void 0;return{...t&&{command:i.command},...a&&{windows:a},...l&&{linux:l},...c&&{osx:c},...typeof i.env=="object"&&i.env!==null&&{env:i.env},...p!==void 0&&{timeout:p}}}function um(i,t,e){let n=Ny(i);if(!n)return;let r,o=typeof i.cwd=="string"?i.cwd:void 0;if(o){let s=dm(o,e);cr(s)?r=h.file(s):t&&(r=re(t,s))}else r=t;return{...n,cwd:r}}function My(i,t,e){if(!i||typeof i!="object")return[];let n=i,r=[],o=n.hooks;if(o!==void 0&&Array.isArray(o))for(let s of o){if(!s||typeof s!="object")continue;let a=um(s,t,e);a&&r.push(a)}else{let s=um(n,t,e);s&&r.push(s)}return r}function pm(i,t,e,n){if(!t||typeof t!="object")return[];let r=t;if(r.disableAllHooks===!0)return[];let o=r.hooks;if(!o||typeof o!="object")return[];let s=o,a=[];for(let l of Object.keys(s)){let c=Uy[l];if(!c)continue;let p=s[l];if(!Array.isArray(p))continue;let u=[];for(let f of p)u.push(...My(f,e,n));u.length>0&&a.push({type:c,commands:u,uri:i,originalId:l})}return a}function fm(i,t,e,n,r,o,s){let a=e.fsPath,l=t,c=u=>{for(let f of["command","windows","linux","osx"])typeof u[f]=="string"&&(u[f]=Dy(u[f],a,o));(!u.env||typeof u.env!="object")&&(u.env={}),u.env[s]=a};for(let u of Object.values(l.hooks??{}))if(Array.isArray(u))for(let f of u){if(!f||typeof f!="object")continue;let g=f;if(Array.isArray(g.hooks))for(let b of g.hooks)c(b);else c(g)}return pm(i,Al(t,u=>typeof u=="string"?u.replaceAll(o,e.fsPath):void 0),n,r)}async function qc(i,t){try{let e=await t.readFile(i);return cm(e.value.toString())}catch{return}}async function ao(i,t){try{return await t.resolve(i),!0}catch{return!1}}var sa=".md";async function Wy(i,t,e){let n=new Set,r=[],o=(s,a)=>{n.has(s)||(n.add(s),r.push({uri:a,name:s}))};for(let s of t){let a=h.joinPath(s,"SKILL.md");if(await ao(a,e)){o(Ee(s),a);continue}let l;try{l=await e.resolve(s)}catch{continue}if(!(!l.isDirectory||!l.children))for(let c of l.children){let p=h.joinPath(c.resource,"SKILL.md");await ao(p,e)&&o(Ee(c.resource),p)}}if(r.length===0){let s=h.joinPath(i,"SKILL.md");await ao(s,e)&&o(Ee(i),s)}return r.sort((s,a)=>s.name.localeCompare(a.name)),r}async function By(i,t){let e=new Set,n=[],r=(o,s)=>{e.has(o)||(e.add(o),n.push({uri:s,name:o}))};for(let o of i){let s;try{s=await t.resolve(o)}catch{continue}if(s.isFile&&yl(o).toLowerCase()===sa){r(Ee(o).slice(0,-sa.length),o);continue}if(!(!s.isDirectory||!s.children))for(let a of s.children)!a.isFile||yl(a.resource).toLowerCase()!==sa||r(Ee(a.resource).slice(0,-sa.length),a.resource)}return n.sort((o,s)=>o.name.localeCompare(s.name)),n}async function Vy(i,t,e,n,r,o){for(let s of t){let a=await qc(s,n);if(a)return e.parseHooks(s,a,i,r,o)}return[]}async function $y(i,t,e,n){let r=new Map;for(let o of i){let s=await qc(o,n);for(let a of mm(o,s,t,e))r.has(a.name)||r.set(a.name,a)}return[...r.values()].sort((o,s)=>o.name.localeCompare(s.name))}function mm(i,t,e,n){let r=Py(t);if(!r)return[];let o=[];for(let[s,a]of Object.entries(r)){let l=Ay(a);if(!l)continue;let c={name:s,configuration:l,uri:i};n.pluginRootToken&&n.pluginRootEnvVar&&(c=Oy(c,e,n.pluginRootToken,n.pluginRootEnvVar)),c=Fy(c),o.push(c)}return o}async function gm(i,t,e,n){let r=await Ey(i,t),o=await qc(re(i,r.manifestPath),t),s=o&&typeof o=="object"?o:void 0,a=oa(i,r.hookConfigPath,ia(s?.hooks)),l=oa(i,".mcp.json",ia(s?.mcpServers)),c=oa(i,"skills",ia(s?.skills)),p=oa(i,"agents",ia(s?.agents)),u=[],f=s?.mcpServers;f&&typeof f=="object"&&!Array.isArray(f)&&!Ve(f,{paths:!0})&&(u=mm(re(i,r.manifestPath),{mcpServers:f},i.fsPath,r));let g=[],b=s?.hooks;if(b&&typeof b=="object"&&!Array.isArray(b)&&!Ve(b,{paths:!0})){let T=re(i,r.manifestPath);g=r.parseHooks(T,{hooks:b},i,e,n)}let[v,y,S,I]=await Promise.all([g.length>0?Promise.resolve(g):Vy(i,a,r,t,e,n),u.length>0?Promise.resolve(u):$y(l,i.fsPath,r,t),Wy(i,c,t),By(p,t)]);return{hooks:v,mcpServers:y,skills:S,agents:I}}var aa=ie("agentPluginManager");var ti=ie("sessionDataService"),lo="session.db";function qy(i,t){let e=i.match(t?/^(?:cd(?: \/d)?|Set-Location(?: -Path)?) (?<dir>"[^"]*"|[^\s]+) ?(?:&&|;)\s+(?<suffix>.+)$/i:/^cd (?<dir>"[^"]*"|[^\s]+) &&\s+(?<suffix>.+)$/),n=e?.groups?.dir,r=e?.groups?.suffix;if(n&&r){let o=n;return o.startsWith('"')&&o.endsWith('"')&&(o=o.slice(1,-1)),{directory:o,command:r}}}function Jn(i,t,e){if(!e||!t)return!1;let n=i==="bash",r=i==="powershell";if(!n&&!r)return!1;let o=t.command;if(typeof o!="string")return!1;let s=qy(o,r);return!s||!Hy(s.directory,e)?!1:(t.command=s.command,!0)}function Hy(i,t){if(!i)return!1;let e=a=>a.replace(/[\\/]+$/,""),n=e(i),r=e(t.fsPath);if(!n||!r)return!1;let o,s;try{o=h.file(n),s=h.file(r)}catch{return!1}return gt.isEqual(o,s)}function hm(i){if(!Array.isArray(i)||i.length!==2)return;let[t,e]=i;if(!(!Number.isInteger(t)||!Number.isInteger(e))&&!(t<0)&&!(e!==-1&&e<t))return{startLine:t,endLine:e}}var jy=new Set(["edit","create","apply_patch","git_apply_patch"]);function ri(i){return jy.has(i)}function la(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{return}return i?.path}var co=new Set(["bash","powershell"]),Hc=new Set(["write_bash","write_powershell"]),vm=new Set(["read_bash","read_powershell"]),Ky=new Set(["task"]),zy=new Set(["report_intent","skill"]);function uo(i){return zy.has(i)}function jc(i){return co.has(i)}function Tn(i,t){return i.length>t?i.substring(0,t-3)+"...":i}function ni(i){let t=h.file(i);return`[${Ee(t)}](${t})`}function me(i){return{markdown:i}}function Qt(i){switch(i){case"bash":return m(1919,null);case"powershell":return m(1927,null);case"read_bash":case"read_powershell":return m(1928,null);case"write_bash":case"write_powershell":return m(1933,null);case"bash_shutdown":return m(1920,null);case"list_bash":case"list_powershell":return m(1925,null);case"view":return m(1930,null);case"edit":return m(1922,null);case"create":return m(1921,null);case"grep":return m(1924,null);case"glob":return m(1923,null);case"apply_patch":case"git_apply_patch":return m(1926,null);case"web_search":return m(1932,null);case"web_fetch":return m(1931,null);case"ask_user":return m(1918,null);default:return i}}function xn(i,t,e){if(co.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return me(m(1908,null,ot(Tn(r,80))))}return m(1907,null,t)}if(Hc.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return me(m(1917,null,ot(Tn(r,80))))}return m(1916,null)}if(vm.has(i))return m(1906,null);switch(i){case"view":{let n=e;if(n?.path){let r=ni(n.path),o=hm(n.view_range);return o?o.endLine===-1?me(m(1913,null,r,o.startLine)):o.endLine!==o.startLine?me(m(1915,null,r,o.startLine,o.endLine)):me(m(1914,null,r,o.startLine)):me(m(1912,null,r))}return m(1911,null)}case"edit":{let n=e;return n?.path?me(m(1900,null,ni(n.path))):m(1899,null)}case"create":{let n=e;return n?.path?me(m(1898,null,ni(n.path))):m(1897,null)}case"grep":{let n=e;return n?.pattern?me(m(1905,null,ot(Tn(n.pattern,80)))):m(1904,null)}case"glob":{let n=e;return n?.pattern?me(m(1903,null,ot(Tn(n.pattern,80)))):m(1902,null)}default:return m(1901,null,t)}}function ca(i,t,e,n){if(!n)return m(1879,null,t);if(co.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return me(m(1887,null,ot(Tn(o,80))))}return m(1886,null,t)}if(Hc.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return me(m(1896,null,ot(Tn(o,80))))}return m(1895,null)}if(vm.has(i))return m(1885,null);switch(i){case"view":{let r=e;if(r?.path){let o=ni(r.path),s=hm(r.view_range);return s?s.endLine===-1?me(m(1892,null,o,s.startLine)):s.endLine!==s.startLine?me(m(1894,null,o,s.startLine,s.endLine)):me(m(1893,null,o,s.startLine)):me(m(1891,null,o))}return m(1890,null)}case"edit":{let r=e;return r?.path?me(m(1878,null,ni(r.path))):m(1877,null)}case"create":{let r=e;return r?.path?me(m(1876,null,ni(r.path))):m(1875,null)}case"grep":{let r=e;return r?.pattern?me(m(1884,null,ot(Tn(r.pattern,80)))):m(1883,null)}case"glob":{let r=e;return r?.pattern?me(m(1882,null,ot(Tn(r.pattern,80)))):m(1881,null)}default:return m(1880,null,t)}}function Gy(i,t){if(i)return`synth-skill-${i}`;let e=t.path??t.name;return`synth-skill-${fn(e).toString(16)}`}function da(i,t,e){let n=Gy(e,t),r=m(1929,null),o=lm(t.name),s=t.path?`[${o}](${h.file(t.path)})`:void 0,a=s?me(m(1909,null,s)):m(1910,null,t.name),l=s?me(m(1888,null,s)):m(1889,null,t.name);return{start:{session:i,type:"tool_start",toolCallId:n,toolName:"skill",displayName:r,invocationMessage:a},complete:{session:i,type:"tool_complete",toolCallId:n,result:{success:!0,pastTenseMessage:l}}}}function ua(i,t,e){if(!(!t&&!e)){if(co.has(i)||Hc.has(i)){let n=t,r=n?.command??n?.args;return typeof r=="string"?r:typeof r=="object"&&r!==null&&Ve(r,{command:!0})?r.command:e}switch(i){case"grep":return t?.pattern??e;default:if(t)try{return JSON.stringify(t,null,2)}catch{return e}return e}}}function pa(i){if(co.has(i))return"terminal";if(Ky.has(i))return"subagent"}function fa(i){if(!i)return{};let t=typeof i.agent_type=="string"&&i.agent_type.length>0?i.agent_type:void 0,e=typeof i.description=="string"&&i.description.length>0?i.description:void 0;return{agentName:t,description:e}}function ma(i){switch(i){case"powershell":case"write_powershell":case"read_powershell":return"powershell";default:return"shellscript"}}function It(i){try{return JSON.stringify(i)}catch{return}}function Sn(i){return typeof i=="string"?i:void 0}function bm(i,t){let e=Sn(i.path)??Sn(i.fileName),n=Sn(i.fullCommandText),r=Sn(i.intention),o=Sn(i.serverName),s=Sn(i.toolName);switch(i.kind){case"shell":{let a=n?{command:n}:void 0;Jn("bash",a,t);let l=typeof a?.command=="string"?a.command:n;return{confirmationTitle:m(1871,null),invocationMessage:r??xn("bash",Qt("bash"),l?{command:l}:void 0),toolInput:l,permissionKind:"shell",permissionPath:e}}case"custom-tool":{let a=typeof i.args=="object"&&i.args!==null?i.args:void 0,l=Sn(i.toolName);if(a&&l&&jc(l)&&typeof a.command=="string"){Jn(l,a,t);let c=a.command;return{confirmationTitle:m(1871,null),invocationMessage:xn(l,Qt(l),{command:c}),toolInput:c,permissionKind:"shell",permissionPath:e}}return{confirmationTitle:m(1867,null),invocationMessage:me(m(1866,null,ot(s??i.kind))),toolInput:It(a||i),permissionKind:i.kind,permissionPath:e}}case"write":return{confirmationTitle:m(1874,null),invocationMessage:xn("edit",Qt("edit"),e?{path:e}:void 0),toolInput:It(e?{path:e}:i)??void 0,permissionKind:"write",permissionPath:e};case"mcp":{let a=s??m(1868,null);return{confirmationTitle:o?m(1869,null,o):m(1867,null),invocationMessage:o?`${o}: ${a}`:a,toolInput:It({serverName:o,toolName:s})??void 0,permissionKind:"mcp",permissionPath:e}}case"read":return{confirmationTitle:m(1870,null),invocationMessage:r??xn("view",Qt("view"),e?{path:e}:void 0),toolInput:It(e?{path:e,intention:r}:i)??void 0,permissionKind:"read",permissionPath:e};case"url":{let a=Sn(i.url),l=a?URL.canParse(a)?new URL(a).href:a:void 0;return{confirmationTitle:m(1873,null),invocationMessage:me(m(1872,null)),toolInput:l?JSON.stringify({url:l}):void 0,permissionKind:"url"}}default:return{confirmationTitle:m(1867,null),invocationMessage:me(m(1866,null,ot(s??i.kind))),toolInput:It(i)??void 0,permissionKind:i.kind,permissionPath:e}}}function po(i){try{return JSON.stringify(i)}catch{return}}function Jy(i){if(i.type!=="user.message")return!1;let t=i.data?.source;return!!t&&t.toLowerCase()!=="user"}async function ym(i,t,e,n){let r=[],o=new Map,s=[];for(let c of e)if(c.type==="tool.execution_start"){let p=c.data;if(uo(p.toolName))continue;let u=p.arguments!==void 0?po(p.arguments):void 0,f;if(u)try{f=JSON.parse(u)}catch{}let g=Jn(p.toolName,f,n)?po(f):void 0;o.set(p.toolCallId,{toolName:p.toolName,parameters:f,rewrittenArgs:g}),ri(p.toolName)&&s.push(p.toolCallId)}let a;if(t&&s.length>0)try{let c=await t.getFileEdits(s);if(c.length>0){a=new Map;for(let p of c){let u=a.get(p.toolCallId);u||(u=[],a.set(p.toolCallId,u)),u.push(p)}}}catch{}let l=i.toString();for(let c of e)if(c.type==="assistant.message"||c.type==="user.message"){if(Jy(c))continue;let p=c.data;r.push({session:i,type:"message",role:c.type==="user.message"?"user":"assistant",messageId:p?.messageId??p?.interactionId??"",content:p?.content??"",toolRequests:p?.toolRequests?.map(u=>({toolCallId:u.toolCallId,name:u.name,arguments:u.arguments!==void 0?po(u.arguments):void 0,type:u.type})),reasoningOpaque:p?.reasoningOpaque,reasoningText:p?.reasoningText,encryptedContent:p?.encryptedContent,parentToolCallId:p?.parentToolCallId})}else if(c.type==="tool.execution_start"){let p=c.data;if(uo(p.toolName))continue;let u=o.get(p.toolCallId),f=Qt(p.toolName),g=pa(p.toolName),b=u?.rewrittenArgs??(p.arguments!==void 0?po(p.arguments):void 0),v=g==="subagent"?fa(u?.parameters):void 0;r.push({session:i,type:"tool_start",toolCallId:p.toolCallId,toolName:p.toolName,displayName:f,invocationMessage:xn(p.toolName,f,u?.parameters),toolInput:ua(p.toolName,u?.parameters,b),toolKind:g,language:g==="terminal"?ma(p.toolName):void 0,toolArguments:b,subagentAgentName:v?.agentName,subagentDescription:v?.description,mcpServerName:p.mcpServerName,mcpToolName:p.mcpToolName,parentToolCallId:p.parentToolCallId})}else if(c.type==="tool.execution_complete"){let p=c.data,u=o.get(p.toolCallId);if(!u)continue;o.delete(p.toolCallId);let f=Qt(u.toolName),g=p.error?.message??p.result?.content,b=[];g!==void 0&&b.push({type:"text",text:g});let v=a?.get(p.toolCallId);if(v)for(let y of v){let S=y.kind==="rename"&&y.originalPath?h.file(y.originalPath).toString():h.file(y.filePath).toString(),I=h.file(y.filePath).toString(),T=y.kind!=="create",K=y.kind!=="delete";b.push({type:"fileEdit",before:T?{uri:S,content:{uri:yn(l,y.toolCallId,y.filePath,"before")}}:void 0,after:K?{uri:I,content:{uri:yn(l,y.toolCallId,y.filePath,"after")}}:void 0,diff:y.addedLines!==void 0||y.removedLines!==void 0?{added:y.addedLines,removed:y.removedLines}:void 0})}r.push({session:i,type:"tool_complete",toolCallId:p.toolCallId,result:{success:p.success,pastTenseMessage:ca(u.toolName,f,u.parameters,p.success),content:b.length>0?b:void 0,error:p.error},isUserRequested:p.isUserRequested,toolTelemetry:p.toolTelemetry!==void 0?po(p.toolTelemetry):void 0,parentToolCallId:p.parentToolCallId})}else if(c.type==="subagent.started"){let p=c.data;r.push({session:i,type:"subagent_started",toolCallId:p.toolCallId,agentName:p.agentName,agentDisplayName:p.agentDisplayName,agentDescription:p.agentDescription})}else if(c.type==="skill.invoked"){let p=c,{start:u,complete:f}=da(i,p.data,p.id);r.push(u,f)}return r}var fo=class{constructor(t){this.type=1,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t}},_n=class{constructor(t){this.type=2,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t,this.entries=new Map}},ga=class extends L{constructor(){super(...arguments);this.memoryFdCounter=0;this.fdMemory=new Map;this._onDidChangeCapabilities=this._register(new _);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._capabilities=525318;this.root=new _n("");this._onDidChangeFile=this._register(new _);this.onDidChangeFile=this._onDidChangeFile.event;this._bufferedChanges=[]}get capabilities(){return this._capabilities}setReadOnly(e){let n=!!(this._capabilities&2048);e!==n&&(this._capabilities=525314|(e?2048:0),this._onDidChangeCapabilities.fire())}async stat(e){return this._lookup(e,!1)}async readdir(e){let n=this._lookupAsDirectory(e,!1),r=[];return n.entries.forEach((o,s)=>r.push([s,o.type])),r}async readFile(e){let n=this._lookupAsFile(e,!1).data;if(n)return n;throw Z("file not found","EntryNotFound")}readFileStream(e){let n=this._lookupAsFile(e,!1).data,r=Mt(o=>w.concat(o.map(s=>w.wrap(s))).buffer);return r.end(n),r}async writeFile(e,n,r){let o=Ee(e),s=this._lookupParentDirectory(e),a=s.entries.get(o);if(a instanceof _n)throw Z("file is directory","EntryIsADirectory");if(!a&&!r.create)throw Z("file not found","EntryNotFound");if(a&&r.create&&!r.overwrite)throw Z("file exists already","EntryExists");if(a||(a=new fo(o),s.entries.set(o,a),this._fireSoon({type:1,resource:e})),a.mtime=Date.now(),r.append){a.size+=n.byteLength;let l=a.data??new Uint8Array(0),c=new Uint8Array(l.byteLength+n.byteLength);c.set(l,0),c.set(n,l.byteLength),a.data=c}else a.size=n.byteLength,a.data=n;this._fireSoon({type:0,resource:e})}open(e,n){let r=this._lookup(e,!0),o=Ht(n),s=o&&!!n.append;if(r){if(r instanceof _n)throw Z("file is directory","EntryIsADirectory")}else{if(!o)throw Z("file not found","EntryNotFound");let l=Ee(e),c=this._lookupParentDirectory(e);r=new fo(l),r.data=new Uint8Array(0),c.entries.set(l,r),this._fireSoon({type:1,resource:e})}r.data||(r.data=new Uint8Array(0));let a=this.memoryFdCounter++;return this.fdMemory.set(a,{file:r,resource:e,write:o,append:s}),Promise.resolve(a)}close(e){let n=this.fdMemory.get(e);return n?.write&&(n.file.mtime=Date.now(),n.file.size=n.file.data?.byteLength??0,this._fireSoon({type:0,resource:n.resource})),this.fdMemory.delete(e),Promise.resolve()}read(e,n,r,o,s){let a=this.fdMemory.get(e);if(!a)throw Z("No file with that descriptor open","Unavailable");if(!a.file.data)return Promise.resolve(0);let l=w.wrap(a.file.data).slice(n,n+s);return r.set(l.buffer,o),Promise.resolve(l.byteLength)}write(e,n,r,o,s){let a=this.fdMemory.get(e);if(!a)throw Z("No file with that descriptor open","Unavailable");let l=w.wrap(r).slice(o,o+s);a.file.data??=new Uint8Array(0);let c=a.append?a.file.data.byteLength:n,p=c+l.byteLength;if(p>a.file.data.byteLength){let u=new Uint8Array(p);u.set(a.file.data,0),a.file.data=u}return a.file.data.set(l.buffer,c),Promise.resolve(l.byteLength)}async rename(e,n,r){if(!r.overwrite&&this._lookup(n,!0))throw Z("file exists already","EntryExists");let o=this._lookup(e,!1),s=this._lookupParentDirectory(e),a=this._lookupParentDirectory(n),l=Ee(n);s.entries.delete(o.name),o.name=l,a.entries.set(l,o),this._fireSoon({type:2,resource:e},{type:1,resource:n})}async delete(e,n){let r=an(e),o=Ee(e),s=this._lookupAsDirectory(r,!1);s.entries.delete(o)&&(s.mtime=Date.now(),s.size-=1,this._fireSoon({type:0,resource:r},{resource:e,type:2}))}async mkdir(e){if(this._lookup(e,!0))throw Z("file exists already","EntryExists");let n=Ee(e),r=an(e),o=this._lookupAsDirectory(r,!1),s=new _n(n);o.entries.set(s.name,s),o.mtime=Date.now(),o.size+=1,this._fireSoon({type:0,resource:r},{type:1,resource:e})}_lookup(e,n){let r=e.path.split("/"),o=this.root;for(let s of r){if(!s)continue;let a;if(o instanceof _n&&(a=o.entries.get(s)),!a){if(n)return;throw Z("file not found","EntryNotFound")}o=a}return o}_lookupAsDirectory(e,n){let r=this._lookup(e,n);if(r instanceof _n)return r;throw Z("file not a directory","EntryNotADirectory")}_lookupAsFile(e,n){let r=this._lookup(e,n);if(r instanceof fo)return r;throw Z("file is a directory","EntryIsADirectory")}_lookupParentDirectory(e){let n=an(e);return this._lookupAsDirectory(n,!1)}watch(e,n){return L.None}_fireSoon(...e){this._bufferedChanges.push(...e),this._fireSoonHandle&&clearTimeout(this._fireSoonHandle),this._fireSoonHandle=setTimeout(()=>{this._onDidChangeFile.fire(this._bufferedChanges),this._bufferedChanges.length=0},5)}dispose(){super.dispose(),this.fdMemory.clear()}};var Im="pending-edit-content";function Sm(i,t,e){return h.from({scheme:Im,authority:vt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${vt(w.fromString(e))}`})}function Tm(i){let t=new ga,e=i.registerProvider(Im,t);return{dispose(){e.dispose(),t.dispose()}}}var Qy=".copilot",xm=W(Qy,"session-state");function Yy(i){let t=process.env.XDG_STATE_HOME;return t?W(t,xm):W(i,xm)}var ii=class extends L{constructor(e,n,r,o,s,a){super();this._instantiationService=n;this._logService=r;this._fileService=s;this._environmentService=a;this._activeToolCalls=new Map;this._pendingPermissions=new Map;this._pendingUserInputs=new Map;this._turnId="";this._pendingClientToolCalls=new Map;this._pendingEditContentUris=new Map;this.sessionId=e.rawSessionId,this.sessionUri=e.sessionUri,this._onDidSessionProgress=e.onDidSessionProgress,this._wrapperFactory=e.wrapperFactory,this._shellManager=e.shellManager,this._workingDirectory=e.workingDirectory,this._appliedSnapshot=e.clientSnapshot??{clientId:"",tools:[],plugins:[]},this._clientToolNames=new Set(this._appliedSnapshot.tools.map(l=>l.name)),this._databaseRef=o.openDatabase(e.sessionUri),this._register(A(()=>this._databaseRef.dispose())),this._editTracker=this._instantiationService.createInstance(qr,e.sessionUri.toString(),this._databaseRef.object),this._register(A(()=>this._denyPendingPermissions())),this._register(A(()=>this._shellManager?.dispose())),this._register(A(()=>this._cancelPendingUserInputs())),this._shellManager&&this._register(this._shellManager.onDidAssociateTerminal(({toolCallId:l,terminalUri:c,displayName:p})=>{let u=this._activeToolCalls.get(l);u&&(u.content.push({type:"terminal",resource:c,title:p}),this._onDidSessionProgress.fire({session:this.sessionUri,type:"tool_content_changed",toolCallId:l,content:u.content}))})),this._register(A(()=>this._cancelPendingClientToolCalls()))}get appliedSnapshot(){return this._appliedSnapshot}createClientSdkTools(){let e=this._appliedSnapshot.tools;return e.length===0?[]:e.map(n=>({name:n.name,description:n.description??"",parameters:n.inputSchema??{type:"object",properties:{}},handler:async(r,{toolCallId:o})=>{try{let s=this._pendingClientToolCalls.get(o);s||(s=new $e,this._pendingClientToolCalls.set(o,s));let a=await s.p;return this._pendingClientToolCalls.delete(o),a}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed in client tool handler: tool=${n.name}, toolCallId=${o}`),s}}}))}handleClientToolCallComplete(e,n){let r=this._pendingClientToolCalls.get(e);r||(r=new $e,this._pendingClientToolCalls.set(e,r));let o=n.content?.filter(a=>a.type==="text").map(a=>a.text).join(`
`)??"",s=n.content?.filter(a=>a.type==="embeddedResource").map(a=>({data:a.data,mimeType:a.contentType,type:a.contentType}));n.success?r.complete({textResultForLlm:o,resultType:"success",binaryResultsForLlm:s?.length?s:void 0}):r.complete({textResultForLlm:o||n.error?.message||"Tool call failed",resultType:"failure",error:n.error?.message,binaryResultsForLlm:s?.length?s:void 0})}async initializeSession(){this._wrapper=this._register(await this._wrapperFactory({onPermissionRequest:e=>this.handlePermissionRequest(e),onUserInputRequest:(e,n)=>this.handleUserInputRequest(e,n),clientTools:this.createClientSdkTools(),hooks:{onPreToolUse:e=>this._handlePreToolUse(e),onPostToolUse:e=>this._handlePostToolUse(e)}})),this._subscribeToEvents(),this._subscribeForLogging()}async send(e,n,r){r&&(this._turnId=r),this._logService.info(`[Copilot:${this.sessionId}] sendMessage called: "${e.substring(0,100)}${e.length>100?"...":""}" (${n?.length??0} attachments)`);let o=n?.map(s=>{let a=s.uri.scheme==="file"?s.uri.fsPath:s.uri.toString();return s.type==="selection"?{type:"selection",filePath:a,displayName:s.displayName??a,text:s.text,selection:s.selection}:{type:s.type,path:a,displayName:s.displayName}});o?.length&&this._logService.trace(`[Copilot:${this.sessionId}] Attachments: ${JSON.stringify(o.map(s=>({type:s.type,path:s.type==="selection"?s.filePath:s.path})))}`),await this._wrapper.session.send({prompt:e,attachments:o}),this._logService.info(`[Copilot:${this.sessionId}] session.send() returned`)}async sendSteering(e){this._logService.info(`[Copilot:${this.sessionId}] Sending steering message: "${e.userMessage.text.substring(0,100)}"`);try{await this._wrapper.session.send({prompt:e.userMessage.text,mode:"immediate"}),this._onDidSessionProgress.fire({session:this.sessionUri,type:"steering_consumed",id:e.id})}catch(n){this._logService.error(`[Copilot:${this.sessionId}] Steering message failed`,n)}}async getMessages(){let e=await this._wrapper.session.getMessages(),n;try{n=this._databaseRef.object}catch{}return ym(this.sessionUri,n,e,this._workingDirectory)}async abort(){this._logService.info(`[Copilot:${this.sessionId}] Aborting session...`),this._denyPendingPermissions(),await this._wrapper.session.abort()}async destroySession(){await this._wrapper.session.destroy()}async setModel(e,n){this._logService.info(`[Copilot:${this.sessionId}] Changing model to: ${e}`),await this._wrapper.session.setModel(e,{reasoningEffort:n})}async handlePermissionRequest(e){this._logService.info(`[Copilot:${this.sessionId}] Permission request: kind=${e.kind}`);try{let n=e.toolCallId;if(!n)return this._logService.warn(`[Copilot:${this.sessionId}] Permission request without toolCallId, auto-denying: kind=${e.kind}`),{kind:"denied-interactively-by-user"};let r=this._getInternalSessionResourcePath(e);if(r)return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving internal session resource ${r}`),{kind:"approved"};this._logService.info(`[Copilot:${this.sessionId}] Requesting confirmation for tool call: ${n}`);let o=new $e;this._pendingPermissions.set(n,o);let{confirmationTitle:s,invocationMessage:a,toolInput:l,permissionKind:c,permissionPath:p}=bm(e,this._workingDirectory),u=await this._buildEditsForPermission(e,n);if(!this._pendingPermissions.has(n))return{kind:"denied-interactively-by-user"};this._onDidSessionProgress.fire({session:this.sessionUri,type:"tool_ready",toolCallId:n,invocationMessage:a,toolInput:l,confirmationTitle:s,permissionKind:c,permissionPath:p,edits:u});let f=await o.p;return this._logService.info(`[Copilot:${this.sessionId}] Permission response: toolCallId=${n}, approved=${f}`),{kind:f?"approved":"denied-interactively-by-user"}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed to handle permission request: kind=${e.kind}, toolCallId=${e.toolCallId??"missing"}`),n}}_getInternalSessionResourcePath(e){let n;if(e.kind==="read"?n=typeof e.path=="string"?e.path:void 0:e.kind==="write"&&(n=typeof e.fileName=="string"?e.fileName:void 0),!n)return;let r=ln(h.file(Yy(this._environmentService.userHome.fsPath))),o=ln(h.joinPath(r,this.sessionId));if(!gt.isEqualOrParent(o,r))return;let s=ln(h.file(n));return gt.isEqualOrParent(s,o)?n:void 0}async _buildEditsForPermission(e,n){if(e.kind!=="write")return;let r=typeof e.fileName=="string"?e.fileName:void 0,o=typeof e.newFileContents=="string"?e.newFileContents:void 0;if(!r||o===void 0)return;let s=h.file(r),a=s.toString(),l=!1;try{l=await this._fileService.exists(s)}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to check file for edit preview: ${r}`,f)}let c=Sm(this.sessionUri.toString(),n,r);try{await this._fileService.writeFile(c,w.fromString(o))}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to write pending edit content for ${r}`,f);return}if(!this._pendingPermissions.has(n)){this._fileService.del(c).catch(f=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete orphaned pending edit content: ${c.toString()}`,f)});return}this._pendingEditContentUris.set(n,c);let p=typeof e.diff=="string"?Xy(e.diff):void 0;return{items:[{...l?{before:{uri:a,content:{uri:a}}}:{},after:{uri:a,content:{uri:c.toString()}},...p?{diff:p}:{}}]}}respondToPermissionRequest(e,n){let r=this._pendingPermissions.get(e);return r?(this._pendingPermissions.delete(e),this._deletePendingEditContent(e),r.complete(n),!0):!1}async handleUserInputRequest(e,n){let r=e.question.substring(0,100);try{let o=ee(),s=ee();this._logService.info(`[Copilot:${this.sessionId}] User input request: requestId=${o}, question="${r}"`);let a=new $e;this._pendingUserInputs.set(o,{deferred:a,questionId:s});let l={id:o,message:e.question,questions:[e.choices&&e.choices.length>0?{kind:"single-select",id:s,message:e.question,required:!0,options:e.choices.map(f=>({id:f,label:f})),allowFreeformInput:e.allowFreeform??!0}:{kind:"text",id:s,message:e.question,required:!0}]};this._onDidSessionProgress.fire({session:this.sessionUri,type:"user_input_request",request:l});let c=await a.p;if(this._logService.info(`[Copilot:${this.sessionId}] User input response: requestId=${o}, response=${c.response}`),c.response!=="accept"||!c.answers)return{answer:"",wasFreeform:!0};let p=c.answers[s];if(!p||p.state==="skipped")return{answer:"",wasFreeform:!0};let{value:u}=p;if(u.kind==="text")return{answer:u.value,wasFreeform:!0};if(u.kind==="selected"){let f=!e.choices?.includes(u.value);return{answer:u.value,wasFreeform:f}}return{answer:"",wasFreeform:!0}}catch(o){throw this._logService.error(o,`[Copilot:${this.sessionId}] Failed to handle user input request: question="${r}"`),o}}respondToUserInputRequest(e,n,r){let o=this._pendingUserInputs.get(e);return o?(this._pendingUserInputs.delete(e),o.deferred.complete({response:n,answers:r}),!0):!1}async _handlePreToolUse(e){try{if(ri(e.toolName)){let n=la(e.toolArgs);n&&await this._editTracker.trackEditStart(n)}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPreToolUse: tool=${e.toolName}`),n}}async _handlePostToolUse(e){try{if(ri(e.toolName)){let n=la(e.toolArgs);n&&await this._editTracker.completeEdit(n)}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPostToolUse: tool=${e.toolName}`),n}}_subscribeToEvents(){let e=this._wrapper,n=this.sessionId,r=this.sessionUri;this._register(e.onUserMessage(o=>{this._turnId&&this._databaseRef.object.setTurnEventId(this._turnId,o.id)})),this._register(e.onMessageDelta(o=>{this._logService.trace(`[Copilot:${n}] delta: ${o.data.deltaContent}`),this._onDidSessionProgress.fire({session:r,type:"delta",messageId:o.data.messageId,content:o.data.deltaContent,parentToolCallId:o.data.parentToolCallId})})),this._register(e.onMessage(o=>{this._logService.info(`[Copilot:${n}] Full message received: ${o.data.content.length} chars`),this._onDidSessionProgress.fire({session:r,type:"message",role:"assistant",messageId:o.data.messageId,content:o.data.content,toolRequests:o.data.toolRequests?.map(s=>({toolCallId:s.toolCallId,name:s.name,arguments:s.arguments!==void 0?It(s.arguments):void 0,type:s.type})),reasoningOpaque:o.data.reasoningOpaque,reasoningText:o.data.reasoningText,encryptedContent:o.data.encryptedContent,parentToolCallId:o.data.parentToolCallId})})),this._register(e.onToolStart(o=>{if(uo(o.data.toolName)){this._logService.trace(`[Copilot:${n}] Tool started (hidden): ${o.data.toolName}`);return}this._logService.info(`[Copilot:${n}] Tool started: ${o.data.toolName}`);let s=o.data.arguments!==void 0?It(o.data.arguments):void 0,a;if(s)try{a=JSON.parse(s)}catch{}Jn(o.data.toolName,a,this._workingDirectory)&&(s=It(a));let l=Qt(o.data.toolName);this._activeToolCalls.set(o.data.toolCallId,{toolName:o.data.toolName,displayName:l,parameters:a,content:[]});let c=pa(o.data.toolName),p=c==="subagent"?fa(a):void 0;this._onDidSessionProgress.fire({session:r,type:"tool_start",toolCallId:o.data.toolCallId,toolName:o.data.toolName,displayName:l,invocationMessage:xn(o.data.toolName,l,a),toolInput:ua(o.data.toolName,a,s),toolKind:c,language:c==="terminal"?ma(o.data.toolName):void 0,toolArguments:s,subagentAgentName:p?.agentName,subagentDescription:p?.description,mcpServerName:o.data.mcpServerName,mcpToolName:o.data.mcpToolName,parentToolCallId:o.data.parentToolCallId,toolClientId:this._clientToolNames.has(o.data.toolName)?this._appliedSnapshot.clientId:void 0})})),this._register(e.onToolComplete(async o=>{let s=this._activeToolCalls.get(o.data.toolCallId);if(!s)return;this._logService.info(`[Copilot:${n}] Tool completed: ${o.data.toolCallId}`),this._activeToolCalls.delete(o.data.toolCallId);let a=s.displayName,l=o.data.error?.message??o.data.result?.content,c=[...s.content];l!==void 0&&c.push({type:"text",text:l});let p=ri(s.toolName)?la(s.parameters):void 0;if(p)try{let u=await this._editTracker.takeCompletedEdit(this._turnId,o.data.toolCallId,p);u&&c.push(u)}catch(u){this._logService.warn(`[Copilot:${n}] Failed to take completed edit`,u)}if(jc(s.toolName)&&this._shellManager){let u=this._shellManager.getTerminalUriForToolCall(o.data.toolCallId);u&&!c.some(f=>f.type==="terminal"&&f.resource===u)&&c.push({type:"terminal",resource:u,title:s.displayName})}this._onDidSessionProgress.fire({session:r,type:"tool_complete",toolCallId:o.data.toolCallId,result:{success:o.data.success,pastTenseMessage:ca(s.toolName,a,s.parameters,o.data.success),content:c.length>0?c:void 0,error:o.data.error},isUserRequested:o.data.isUserRequested,toolTelemetry:o.data.toolTelemetry!==void 0?It(o.data.toolTelemetry):void 0,parentToolCallId:o.data.parentToolCallId})})),this._register(e.onIdle(()=>{this._logService.info(`[Copilot:${n}] Session idle`),this._onDidSessionProgress.fire({session:r,type:"idle"})})),this._register(e.onSkillInvoked(o=>{this._logService.info(`[Copilot:${n}] Skill invoked: ${o.data.name} (${o.data.path})`);let{start:s,complete:a}=da(r,o.data,o.id);this._onDidSessionProgress.fire(s),this._onDidSessionProgress.fire(a)})),this._register(e.onSubagentStarted(o=>{this._logService.info(`[Copilot:${n}] Subagent started: toolCallId=${o.data.toolCallId}, agent=${o.data.agentName}`),this._onDidSessionProgress.fire({session:r,type:"subagent_started",toolCallId:o.data.toolCallId,agentName:o.data.agentName,agentDisplayName:o.data.agentDisplayName,agentDescription:o.data.agentDescription})})),this._register(e.onSessionError(o=>{this._logService.error(`[Copilot:${n}] Session error: ${o.data.errorType} - ${o.data.message}`),this._onDidSessionProgress.fire({session:r,type:"error",errorType:o.data.errorType,message:o.data.message,stack:o.data.stack})})),this._register(e.onUsage(o=>{this._logService.trace(`[Copilot:${n}] Usage: model=${o.data.model}, in=${o.data.inputTokens??"?"}, out=${o.data.outputTokens??"?"}, cacheRead=${o.data.cacheReadTokens??"?"}`),this._onDidSessionProgress.fire({session:r,type:"usage",inputTokens:o.data.inputTokens,outputTokens:o.data.outputTokens,model:o.data.model,cacheReadTokens:o.data.cacheReadTokens})})),this._register(e.onReasoningDelta(o=>{this._logService.trace(`[Copilot:${n}] Reasoning delta: ${o.data.deltaContent.length} chars`),this._onDidSessionProgress.fire({session:r,type:"reasoning",content:o.data.deltaContent})}))}_subscribeForLogging(){let e=this._wrapper,n=this.sessionId;this._register(e.onSessionStart(r=>{this._logService.trace(`[Copilot:${n}] Session started: model=${r.data.selectedModel??"default"}, producer=${r.data.producer}`)})),this._register(e.onSessionResume(r=>{this._logService.trace(`[Copilot:${n}] Session resumed: eventCount=${r.data.eventCount}`)})),this._register(e.onSessionInfo(r=>{this._logService.trace(`[Copilot:${n}] Session info [${r.data.infoType}]: ${r.data.message}`)})),this._register(e.onSessionModelChange(r=>{this._logService.trace(`[Copilot:${n}] Model changed: ${r.data.previousModel??"(none)"} -> ${r.data.newModel}`)})),this._register(e.onSessionHandoff(r=>{this._logService.trace(`[Copilot:${n}] Session handoff: sourceType=${r.data.sourceType}, remoteSessionId=${r.data.remoteSessionId??"(none)"}`)})),this._register(e.onSessionTruncation(r=>{this._logService.trace(`[Copilot:${n}] Session truncation: removed ${r.data.tokensRemovedDuringTruncation} tokens, ${r.data.messagesRemovedDuringTruncation} messages`)})),this._register(e.onSessionSnapshotRewind(r=>{this._logService.trace(`[Copilot:${n}] Snapshot rewind: upTo=${r.data.upToEventId}, eventsRemoved=${r.data.eventsRemoved}`)})),this._register(e.onSessionShutdown(r=>{this._logService.trace(`[Copilot:${n}] Session shutdown: type=${r.data.shutdownType}, premiumRequests=${r.data.totalPremiumRequests}, apiDuration=${r.data.totalApiDurationMs}ms`)})),this._register(e.onSessionUsageInfo(r=>{this._logService.trace(`[Copilot:${n}] Usage info: ${r.data.currentTokens}/${r.data.tokenLimit} tokens, ${r.data.messagesLength} messages`)})),this._register(e.onSessionCompactionStart(()=>{this._logService.trace(`[Copilot:${n}] Compaction started`)})),this._register(e.onSessionCompactionComplete(r=>{this._logService.trace(`[Copilot:${n}] Compaction complete: success=${r.data.success}, tokensRemoved=${r.data.tokensRemoved??"?"}`)})),this._register(e.onUserMessage(r=>{this._logService.trace(`[Copilot:${n}] User message: ${r.data.content.length} chars, ${r.data.attachments?.length??0} attachments`)})),this._register(e.onPendingMessagesModified(()=>{this._logService.trace(`[Copilot:${n}] Pending messages modified`)})),this._register(e.onTurnStart(r=>{this._logService.trace(`[Copilot:${n}] Turn started: ${r.data.turnId}`)})),this._register(e.onIntent(r=>{this._logService.trace(`[Copilot:${n}] Intent: ${r.data.intent}`)})),this._register(e.onReasoning(r=>{this._logService.trace(`[Copilot:${n}] Reasoning: ${r.data.content.length} chars`)})),this._register(e.onTurnEnd(r=>{this._logService.trace(`[Copilot:${n}] Turn ended: ${r.data.turnId}`)})),this._register(e.onAbort(r=>{this._logService.trace(`[Copilot:${n}] Aborted: ${r.data.reason}`)})),this._register(e.onToolUserRequested(r=>{this._logService.trace(`[Copilot:${n}] Tool user-requested: ${r.data.toolName} (${r.data.toolCallId})`)})),this._register(e.onToolPartialResult(r=>{this._logService.trace(`[Copilot:${n}] Tool partial result: ${r.data.toolCallId} (${r.data.partialOutput.length} chars)`)})),this._register(e.onToolProgress(r=>{this._logService.trace(`[Copilot:${n}] Tool progress: ${r.data.toolCallId} - ${r.data.progressMessage}`)})),this._register(e.onSkillInvoked(r=>{this._logService.trace(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`)})),this._register(e.onSubagentStarted(r=>{this._logService.trace(`[Copilot:${n}] Subagent started: ${r.data.agentName} (${r.data.agentDisplayName})`)})),this._register(e.onSubagentCompleted(r=>{this._logService.trace(`[Copilot:${n}] Subagent completed: ${r.data.agentName}`)})),this._register(e.onSubagentFailed(r=>{this._logService.error(`[Copilot:${n}] Subagent failed: ${r.data.agentName} - ${r.data.error}`)})),this._register(e.onSubagentSelected(r=>{this._logService.trace(`[Copilot:${n}] Subagent selected: ${r.data.agentName}`)})),this._register(e.onHookStart(r=>{this._logService.trace(`[Copilot:${n}] Hook started: ${r.data.hookType} (${r.data.hookInvocationId})`)})),this._register(e.onHookEnd(r=>{this._logService.trace(`[Copilot:${n}] Hook ended: ${r.data.hookType} (${r.data.hookInvocationId}), success=${r.data.success}`)})),this._register(e.onSystemMessage(r=>{this._logService.trace(`[Copilot:${n}] System message [${r.data.role}]: ${r.data.content.length} chars`)}))}getNextTurnEventId(e){return this._databaseRef.object.getNextTurnEventId(e)}getFirstTurnEventId(){return this._databaseRef.object.getFirstTurnEventId()}async truncateAtEventId(e,n){this._logService.info(`[Copilot:${this.sessionId}] Truncating via SDK RPC at eventId=${e}`);let r=await this._wrapper.session.rpc.history.truncate({eventId:e});this._logService.info(`[Copilot:${this.sessionId}] SDK truncation removed ${r.eventsRemoved} events`),n?await this._databaseRef.object.deleteTurnsAfter(n):await this._databaseRef.object.deleteAllTurns()}async remapTurnIds(e){await this._databaseRef.object.remapTurnIds(e)}_denyPendingPermissions(){for(let[e,n]of this._pendingPermissions)this._deletePendingEditContent(e),n.complete(!1);this._pendingPermissions.clear()}_deletePendingEditContent(e){let n=this._pendingEditContentUris.get(e);n&&(this._pendingEditContentUris.delete(e),this._fileService.del(n).catch(r=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete pending edit content: ${n.toString()}`,r)}))}_cancelPendingUserInputs(){for(let[,e]of this._pendingUserInputs)e.deferred.complete({response:"cancel"});this._pendingUserInputs.clear()}_cancelPendingClientToolCalls(){for(let[,e]of this._pendingClientToolCalls)e.complete({textResultForLlm:"Tool call cancelled: session ended",resultType:"failure",error:"Session ended"});this._pendingClientToolCalls.clear()}};ii=R([U(1,dn),U(2,te),U(3,ti),U(4,Qe),U(5,Vr)],ii);function Xy(i){let t=0,e=0;for(let n of i.split(`
`))n.startsWith("+++")||n.startsWith("---")||(n.startsWith("+")?t++:n.startsWith("-")&&e++);if(!(t===0&&e===0))return{added:t,removed:e}}async function Zy(i,t){if(!i||i.scheme!==ne.file||!await t.isInsideWorkTree(i))return;let e=(await t.getWorktreeRoots(i))[0]??await t.getRepositoryRoot(i);if(e)return{uri:e,displayName:he(e.fsPath)||e.toString()}}function e1(i){let t=i.includes("://")?h.parse(i):h.parse(`https://github.com/${i}`),e=he(t.path)||i.split("/").filter(Boolean).pop()||i,n=e.endsWith(".git")?e.slice(0,-4):e;return{uri:t,displayName:n}}async function ha(i,t){let e=typeof i?.cwd=="string"?h.file(i.cwd):typeof i?.gitRoot=="string"?h.file(i.gitRoot):void 0,n=await Zy(e,t);if(n)return n;if(i?.repository)return e1(i.repository)}import{spawn as t1}from"child_process";function wm(i){let t={};for(let e of i){let n=e.configuration;n.type==="stdio"?t[e.name]={type:"local",command:n.command,args:n.args?[...n.args]:[],tools:["*"],...n.env&&{env:n1(n.env)},...n.cwd&&{cwd:n.cwd}}:t[e.name]={type:"http",url:n.url,tools:["*"],...n.headers&&{headers:{...n.headers}}}}return t}function n1(i){let t={};for(let[e,n]of Object.entries(i))n!==null&&(t[e]=String(n));return t}async function Cm(i,t){let e=[];for(let n of i)try{let r=await t.readFile(n.uri);e.push({name:n.name,prompt:r.value.toString()})}catch{}return e}function Rm(i){let t=new Set,e=[];for(let n of i){let r=ye(n.uri.fsPath);t.has(r)||(t.add(r),e.push(r))}return e}function r1(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}function mo(i,t){let e=r1(i,ir);if(!e)return Promise.resolve("");let n=(i.timeout??30)*1e3,r=i.cwd?.fsPath;return new Promise((o,s)=>{let a=ir===1,p=t1(a?"cmd.exe":"/bin/sh",a?["/c",e]:["-c",e],{cwd:r,env:{...process.env,...i.env},stdio:["pipe","pipe","pipe"],timeout:n}),u="",f="";p.stdout.on("data",g=>{u+=g.toString()}),p.stderr.on("data",g=>{f+=g.toString()}),t&&p.stdin.write(t),p.stdin.end(),p.on("error",s),p.on("close",g=>{g===0?o(u):s(new Error(`Hook command exited with code ${g}: ${f||u}`))})})}async function _m(i,t){if(!i)return;let e=JSON.stringify(t);for(let n of i)try{let r=await mo(n,e);if(r.trim())try{let o=JSON.parse(r);if(o&&typeof o=="object")return o}catch{}}catch{}}var i1={PreToolUse:"onPreToolUse",PostToolUse:"onPostToolUse",UserPromptSubmit:"onUserPromptSubmitted",SessionStart:"onSessionStart",SessionEnd:"onSessionEnd",ErrorOccurred:"onErrorOccurred"};function Em(i,t){let e=new Map;for(let p of i){let u=i1[p.type];if(!u)continue;let f=e.get(u)??[];f.push(...p.commands),e.set(u,f)}let n={},r=e.get("onPreToolUse");(r?.length||t)&&(n.onPreToolUse=async p=>(await t?.onPreToolUse(p),_m(r,p)));let o=e.get("onPostToolUse");(o?.length||t)&&(n.onPostToolUse=async p=>(await t?.onPostToolUse(p),_m(o,p)));let s=e.get("onUserPromptSubmitted");s?.length&&(n.onUserPromptSubmitted=async p=>{let u=JSON.stringify(p);for(let f of s)try{await mo(f,u)}catch{}});let a=e.get("onSessionStart");a?.length&&(n.onSessionStart=async p=>{let u=JSON.stringify(p);for(let f of a)try{await mo(f,u)}catch{}});let l=e.get("onSessionEnd");l?.length&&(n.onSessionEnd=async p=>{let u=JSON.stringify(p);for(let f of l)try{await mo(f,u)}catch{}});let c=e.get("onErrorOccurred");return c?.length&&(n.onErrorOccurred=async p=>{let u=JSON.stringify(p);for(let f of c)try{await mo(f,u)}catch{}}),n}function Pm(i,t){let e=n=>JSON.stringify(n.map(r=>({hooks:r.hooks.map(o=>({type:o.type,commands:o.commands.map(s=>({command:s.command,windows:s.windows,linux:s.linux,osx:s.osx,cwd:s.cwd?.toString(),env:s.env,timeout:s.timeout}))})),mcpServers:r.mcpServers.map(o=>({name:o.name,configuration:o.configuration})),skills:r.skills.map(o=>({uri:o.uri.toString(),name:o.name})),agents:r.agents.map(o=>({uri:o.uri.toString(),name:o.name}))})));return e(i)===e(t)}var oi=class extends L{constructor(e){super();this.session=e;this._register(A(()=>{e.destroy().catch(()=>{})}))}get sessionId(){return this.session.sessionId}get onMessageDelta(){return this._onMessageDelta??=this._sdkEvent("assistant.message_delta")}get onMessage(){return this._onMessage??=this._sdkEvent("assistant.message")}get onToolStart(){return this._onToolStart??=this._sdkEvent("tool.execution_start")}get onToolComplete(){return this._onToolComplete??=this._sdkEvent("tool.execution_complete")}get onIdle(){return this._onIdle??=this._sdkEvent("session.idle")}get onSessionStart(){return this._onSessionStart??=this._sdkEvent("session.start")}get onSessionResume(){return this._onSessionResume??=this._sdkEvent("session.resume")}get onSessionError(){return this._onSessionError??=this._sdkEvent("session.error")}get onSessionInfo(){return this._onSessionInfo??=this._sdkEvent("session.info")}get onSessionModelChange(){return this._onSessionModelChange??=this._sdkEvent("session.model_change")}get onSessionHandoff(){return this._onSessionHandoff??=this._sdkEvent("session.handoff")}get onSessionTruncation(){return this._onSessionTruncation??=this._sdkEvent("session.truncation")}get onSessionSnapshotRewind(){return this._onSessionSnapshotRewind??=this._sdkEvent("session.snapshot_rewind")}get onSessionShutdown(){return this._onSessionShutdown??=this._sdkEvent("session.shutdown")}get onSessionUsageInfo(){return this._onSessionUsageInfo??=this._sdkEvent("session.usage_info")}get onSessionCompactionStart(){return this._onSessionCompactionStart??=this._sdkEvent("session.compaction_start")}get onSessionCompactionComplete(){return this._onSessionCompactionComplete??=this._sdkEvent("session.compaction_complete")}get onUserMessage(){return this._onUserMessage??=this._sdkEvent("user.message")}get onPendingMessagesModified(){return this._onPendingMessagesModified??=this._sdkEvent("pending_messages.modified")}get onTurnStart(){return this._onTurnStart??=this._sdkEvent("assistant.turn_start")}get onIntent(){return this._onIntent??=this._sdkEvent("assistant.intent")}get onReasoning(){return this._onReasoning??=this._sdkEvent("assistant.reasoning")}get onReasoningDelta(){return this._onReasoningDelta??=this._sdkEvent("assistant.reasoning_delta")}get onTurnEnd(){return this._onTurnEnd??=this._sdkEvent("assistant.turn_end")}get onUsage(){return this._onUsage??=this._sdkEvent("assistant.usage")}get onAbort(){return this._onAbort??=this._sdkEvent("abort")}get onToolUserRequested(){return this._onToolUserRequested??=this._sdkEvent("tool.user_requested")}get onToolPartialResult(){return this._onToolPartialResult??=this._sdkEvent("tool.execution_partial_result")}get onToolProgress(){return this._onToolProgress??=this._sdkEvent("tool.execution_progress")}get onSkillInvoked(){return this._onSkillInvoked??=this._sdkEvent("skill.invoked")}get onSubagentStarted(){return this._onSubagentStarted??=this._sdkEvent("subagent.started")}get onSubagentCompleted(){return this._onSubagentCompleted??=this._sdkEvent("subagent.completed")}get onSubagentFailed(){return this._onSubagentFailed??=this._sdkEvent("subagent.failed")}get onSubagentSelected(){return this._onSubagentSelected??=this._sdkEvent("subagent.selected")}get onHookStart(){return this._onHookStart??=this._sdkEvent("hook.start")}get onHookEnd(){return this._onHookEnd??=this._sdkEvent("hook.end")}get onSystemMessage(){return this._onSystemMessage??=this._sdkEvent("system.message")}_sdkEvent(e){let n=this._register(new _),r=this.session.on(e,o=>n.fire(o));return this._register(A(r)),n.event}};var Am=8e4,o1=12e4,Jc="<<<COPILOT_SENTINEL_";function s1(i){return i==="powershell"?"powershell.exe":process.env.SHELL||"/bin/bash"}var Qn=class{constructor(t,e,n,r){this._sessionUri=t;this._workingDirectory=e;this._terminalManager=n;this._logService=r;this._shells=new Map;this._toolCallShells=new Map;this._onDidAssociateTerminal=new _;this.onDidAssociateTerminal=this._onDidAssociateTerminal.event}async getOrCreateShell(t,e,n,r){for(let p of this._shells.values())if(p.shellType===t&&this._terminalManager.hasTerminal(p.terminalUri)){if(this._terminalManager.getExitCode(p.terminalUri)===void 0)return this._trackToolCall(n,p.id),p;this._shells.delete(p.id)}let o=ee(),s=`agenthost-terminal://shell/${o}`,a={kind:"session",session:this._sessionUri.toString(),turnId:e,toolCallId:n},l=t==="bash"?"Bash":"PowerShell";await this._terminalManager.createTerminal({terminal:s,claim:a,name:l,cwd:r??this._workingDirectory?.fsPath},{shell:s1(t),preventShellHistory:!0,nonInteractive:!0});let c={id:o,terminalUri:s,shellType:t};return this._shells.set(o,c),this._trackToolCall(n,o),this._logService.info(`[ShellManager] Created ${t} shell ${o} (terminal=${s})`),c}_trackToolCall(t,e){this._toolCallShells.set(t,e);let n=this._shells.get(e);if(n){let r=n.shellType==="bash"?"Bash":"PowerShell";this._onDidAssociateTerminal.fire({toolCallId:t,terminalUri:n.terminalUri,displayName:r})}}getTerminalUriForToolCall(t){let e=this._toolCallShells.get(t);if(e)return this._shells.get(e)?.terminalUri}getShell(t){return this._shells.get(t)}listShells(){let t=[];for(let e of this._shells.values())this._terminalManager.hasTerminal(e.terminalUri)&&t.push(e);return t}shutdownShell(t){let e=this._shells.get(t);return e?(this._terminalManager.disposeTerminal(e.terminalUri),this._shells.delete(t),this._logService.info(`[ShellManager] Shut down shell ${t}`),!0):!1}dispose(){for(let t of this._shells.values())this._terminalManager.hasTerminal(t.terminalUri)&&this._terminalManager.disposeTerminal(t.terminalUri);this._shells.clear(),this._toolCallShells.clear()}};Qn=R([U(2,Qr),U(3,te)],Qn);function a1(){return ee().replace(/-/g,"")}function l1(i,t){return t==="powershell"?`Write-Output "${Jc}${i}_EXIT_$LASTEXITCODE>>>"`:`echo "${Jc}${i}_EXIT_$?>>>"`}function km(i){return i==="powershell"?"":" "}function c1(i,t){let e=`${Jc}${t}_EXIT_`,n=i.indexOf(e);if(n===-1)return{found:!1,exitCode:-1,outputBeforeSentinel:i};let r=i.substring(0,n),o=i.substring(n+e.length),s=o.indexOf(">>>"),a=s>=0?o.substring(0,s):o.trim(),l=parseInt(a,10);return{found:!0,exitCode:isNaN(l)?-1:l,outputBeforeSentinel:r}}function Yn(i){let t=mu(i).trim();return t.length>Am&&(t=t.substring(t.length-Am)),t}function St(i){return{textResultForLlm:i,resultType:"success"}}function Et(i,t){return{textResultForLlm:i,resultType:"failure",error:t}}async function d1(i,t,e,n,r){let o=n.supportsCommandDetection(i.terminalUri)?await u1(i,t,e,n,r):await p1(i,t,e,n,r);return{...o,textResultForLlm:`Shell ID: ${i.id}
${o.textResultForLlm}`}}async function u1(i,t,e,n,r){let o=new M;return n.writeInput(i.terminalUri,`${km(i.shellType)}${t}\r`),new Promise(s=>{let a=!1,l=p=>{a||(a=!0,o.dispose(),s(p))};o.add(n.onCommandFinished(i.terminalUri,p=>{let u=Yn(p.output),f=p.exitCode??0;r.info(`[ShellTool] Command completed (shell integration) with exit code ${f}`),l(f===0?St(`Exit code: ${f}
${u}`):Et(`Exit code: ${f}
${u}`))})),o.add(n.onExit(i.terminalUri,p=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${p}`);let u=n.getContent(i.terminalUri)??"",f=Yn(u);l(Et(`Shell exited with code ${p}
${f}`))})),o.add(n.onClaimChanged(i.terminalUri,p=>{p.kind==="session"&&!p.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),l(St("The user chose to continue this command in the background. The terminal is still running.")))}));let c=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let p=n.getContent(i.terminalUri)??"",u=Yn(p);l(Et(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${u}`,"timeout"))},e);o.add(A(()=>clearTimeout(c)))})}async function p1(i,t,e,n,r){let o=a1(),s=l1(o,i.shellType),a=new M,c=(n.getContent(i.terminalUri)??"").length,p=`${km(i.shellType)}${t}\r${s}\r`;return n.writeInput(i.terminalUri,p),new Promise(u=>{let f=!1,g=y=>{f||(f=!0,a.dispose(),u(y))},b=()=>{let y=n.getContent(i.terminalUri)??"",S=Math.min(c,y.length),I=y.substring(S),T=c1(I,o);if(T.found){let K=Yn(T.outputBeforeSentinel);r.info(`[ShellTool] Command completed with exit code ${T.exitCode}`),T.exitCode===0?g(St(`Exit code: ${T.exitCode}
${K}`)):g(Et(`Exit code: ${T.exitCode}
${K}`))}};a.add(n.onData(i.terminalUri,()=>{b()})),a.add(n.onExit(i.terminalUri,y=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${y}`);let I=(n.getContent(i.terminalUri)??"").substring(c),T=Yn(I);g(Et(`Shell exited with code ${y}
${T}`))})),a.add(n.onClaimChanged(i.terminalUri,y=>{y.kind==="session"&&!y.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),g(St("The user chose to continue this command in the background. The terminal is still running.")))}));let v=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let S=(n.getContent(i.terminalUri)??"").substring(c),I=Yn(S);g(Et(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${I}`,"timeout"))},e);a.add(A(()=>clearTimeout(v))),b()})}function Dm(i,t,e){let n=B?"powershell":"bash",r={name:n,description:n==="bash"?h1(!1):m1(n,"pwsh.exe",!1),parameters:{type:"object",properties:{command:{type:"string",description:"The command to execute"},timeout:{type:"number",description:"Timeout in milliseconds (default 120000)"}},required:["command"]},overridesBuiltInTool:!0,handler:async(c,p)=>{let u=await i.getOrCreateShell(n,p.toolCallId,p.toolCallId),f=c.timeout??o1;return d1(u,c.command,f,t,e)}},o={name:`read_${n}`,description:`Read the latest output from a running ${n} shell.`,parameters:{type:"object",properties:{shell_id:{type:"string",description:"Shell ID to read from (optional; uses latest shell if omitted)"}}},overridesBuiltInTool:!0,skipPermission:!0,handler:c=>{let p=i.listShells(),u=c.shell_id?i.getShell(c.shell_id):p[p.length-1];if(!u)return Et("No active shell found.","no_shell");let f=t.getContent(u.terminalUri);return St(f?Yn(f):"(no output)")}},s={name:`write_${n}`,description:`Send input to a running ${n} shell (e.g. answering a prompt, sending Ctrl+C).`,parameters:{type:"object",properties:{command:{type:"string",description:"Text to write to the shell stdin"}},required:["command"]},overridesBuiltInTool:!0,skipPermission:!0,handler:c=>{let p=i.listShells(),u=p[p.length-1];return u?(t.writeInput(u.terminalUri,c.command),St("Input sent to shell.")):Et("No active shell found.","no_shell")}},a={name:n==="bash"?"bash_shutdown":`${n}_shutdown`,description:`Stop a ${n} shell.`,parameters:{type:"object",properties:{shell_id:{type:"string",description:"Shell ID to stop (optional; stops latest shell if omitted)"}}},overridesBuiltInTool:!0,skipPermission:!0,handler:c=>{if(c.shell_id)return i.shutdownShell(c.shell_id)?St("Shell stopped."):Et("Shell not found.","not_found");let p=i.listShells(),u=p[p.length-1];return u?(i.shutdownShell(u.id),St("Shell stopped.")):Et("No active shell to stop.","no_shell")}},l={name:`list_${n}`,description:`List active ${n} shell instances.`,parameters:{type:"object",properties:{}},overridesBuiltInTool:!0,skipPermission:!0,handler:()=>{let c=i.listShells();if(c.length===0)return St("No active shells.");let p=c.map(u=>{let f=t.getExitCode(u.terminalUri),g=f!==void 0?`exited (${f})`:"running";return`- ${u.id}: ${u.shellType} [${g}]`});return St(p.join(`
`))}};return[r,o,s,a,l]}function f1(i){return i.endsWith("System32\\WindowsPowerShell\\v1.0\\powershell.exe")}function m1(i,t,e,n){let r=f1(t),o=[`This tool allows you to execute ${r?"Windows PowerShell 5.1":"PowerShell"} commands in a persistent terminal session, preserving environment variables, working directory, and other context across multiple commands.`,"","Command Execution:",r?"- Use semicolons ; to chain commands on one line, NEVER use && even when asked explicitly":"- Prefer ; when chaining commands on one line","- Prefer pipelines | for object-based data flow",'- Never create a sub-shell (eg. powershell -c "command") unless explicitly asked',"","Directory Management:","- Prefer relative paths when navigating directories, only use absolute when the path is far away or the current cwd is not expected","- By default (mode=sync), shell and cwd are reused by subsequent sync commands","- Use $PWD or Get-Location for current directory","- Use Push-Location/Pop-Location for directory stack","","Program Execution:","- Supports .NET, Python, Node.js, and other executables","- Install modules via Install-Module, Install-Package","- Use Get-Command to verify cmdlet/function availability","","Async Mode:","- For long-running tasks (e.g., servers), use mode=async","- Returns a terminal ID for checking status and runtime later","- Use Start-Job for background PowerShell jobs","",`Use write_${i} to send commands or input to a terminal session.`];return e&&o.push(...Om(n)),o.push("","Output Management:","- Output is automatically truncated if longer than 60KB to prevent context overflow","- Use Select-Object, Where-Object, Format-Table to filter output","- Use -First/-Last parameters to limit results","- For pager commands, add | Out-String or | Format-List","","Best Practices:","- Use proper cmdlet names instead of aliases in scripts",'- Quote paths with spaces: "C:\\Path With Spaces"',"- Prefer PowerShell cmdlets over external commands when available","- Prefer idiomatic PowerShell like Get-ChildItem instead of dir or ls for file listings","- Use Test-Path to check file/directory existence","- Be specific with Select-Object properties to avoid excessive output","- Avoid printing credentials unless absolutely required","","Interactive Input Handling:","- When a terminal command is waiting for interactive input, do NOT suggest alternatives or ask the user whether to proceed. Instead, use the ask_user tool to collect the needed values from the user, then send them.",`- Send exactly one answer per prompt using write_${i}. Never send multiple answers in a single send.`,`- After each send, call read_${i} to read the next prompt before sending the next answer.`,"- Continue one prompt at a time until the command finishes."),o.join(`
`)}function Om(i){let t=["","Sandboxing:","- ATTENTION: Terminal sandboxing is enabled, commands run in a sandbox by default","- When executing commands within the sandboxed environment, all operations requiring a temporary directory must utilize the $TMPDIR environment variable. The /tmp directory is not guaranteed to be accessible or writable and must be avoided","- Tools and scripts should respect the TMPDIR environment variable, which is automatically set to an appropriate path within the sandbox","- When a command fails due to sandbox restrictions, immediately re-run it with requestUnsandboxedExecution=true. Do NOT ask the user for permission \u2014 setting this flag automatically shows a confirmation prompt to the user","- Only set requestUnsandboxedExecution=true when there is evidence of failures caused by the sandbox, e.g. 'Operation not permitted' errors, network failures, or file access errors, etc","- Do NOT set requestUnsandboxedExecution=true without first executing the command in sandbox mode. Always try the command in the sandbox first, and only set requestUnsandboxedExecution=true when retrying after that sandboxed execution failed due to sandbox restrictions.","- When setting requestUnsandboxedExecution=true, also provide requestUnsandboxedExecutionReason explaining why the command needs unsandboxed access"];if(i){let e=new Set(i.deniedDomains),n=i.allowedDomains.filter(r=>!e.has(r));n.length===0?t.push("- All network access is blocked in the sandbox"):t.push(`- Only the following domains are accessible in the sandbox (all other network access is blocked): ${n.join(", ")}`),i.deniedDomains.length>0&&t.push(`- The following domains are explicitly blocked in the sandbox: ${i.deniedDomains.join(", ")}`)}return t}function g1(i,t,e){let n=[`
Command Execution:
- Use && to chain simple commands on one line
- Prefer pipelines | over temporary files for data flow
- Never create a sub-shell (eg. bash -c "command") unless explicitly asked

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

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

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

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

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

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

Interactive Input Handling:
- When a terminal command is waiting for interactive input, do NOT suggest alternatives or ask the user whether to proceed. Instead, use the ask_user tool to collect the needed values from the user, then send them.
- Send exactly one answer per prompt using write_${i}. Never send multiple answers in a single send.
- After each send, call read_${i} to read the next prompt before sending the next answer.
- Continue one prompt at a time until the command finishes.`),n.join("")}function h1(i,t){return["This tool allows you to execute shell commands in a persistent bash terminal session, preserving environment variables, working directory, and other context across multiple commands.",g1("bash",i,t),"- Use [[ ]] for conditional tests instead of [ ]","- Prefer $() over backticks for command substitution","- Use set -e at start of complex commands to exit on errors"].join(`
`)}var Lm="thinkingLevel",y1=["low","medium","high","xhigh"];function I1(i){return y1.some(t=>t===i)}function S1(i){return h.joinPath(i,"..",`${he(i.fsPath)}.worktrees`)}function T1(i){return i.replace(/\//g,"-")}function x1(i,t){return`agents/${t?`${t}-${i.substring(0,8)}`:i}`}function Fm(i){return m(1865,null,ot(i))+`

`}function _1(i,t){let e=i.findIndex(o=>o.type==="message"&&o.role==="assistant"&&!o.parentToolCallId);if(e===-1)return i;let n=i[e],r={...n,content:t+n.content};return[...i.slice(0,e),r,...i.slice(e+1)]}var Se=class extends L{constructor(e,n,r,o,s,a){super();this._logService=e;this._instantiationService=n;this._fileService=r;this._sessionDataService=o;this._gitService=s;this._terminalManager=a;this.id="copilotcli";this._onDidSessionProgress=this._register(new _);this.onDidSessionProgress=this._onDidSessionProgress.event;this._models=$n(this,[]);this.models=this._models;this._sessions=this._register(new lt);this._createdWorktrees=new Map;this._pendingFirstTurnAnnouncements=new Map;this._sessionSequencer=new ht;this._activeClients=new ft;this._plugins=this._instantiationService.createInstance(go)}static{this._BRANCH_COMPLETION_LIMIT=25}_createCopilotClient(e){return new v1(e)}getDescriptor(){return{provider:"copilotcli",displayName:"Copilot CLI",description:"Copilot SDK agent running in a dedicated process"}}getProtectedResources(){return[{resource:"https://api.github.com",resource_name:"GitHub Copilot",authorization_servers:["https://github.com/login/oauth"],scopes_supported:["read:user","user:email"],required:!0}]}async authenticate(e,n){if(e!=="https://api.github.com")return!1;let r=this._githubToken!==n;return this._githubToken=n,this._logService.info(`[Copilot] Auth token ${r?"updated":"unchanged"}`),r&&this._client&&this._sessions.size===0&&(this._logService.info("[Copilot] Restarting CopilotClient with new token"),await this._stopClient()),r&&this._refreshModels(),!0}async _refreshModels(){let e=this._githubToken;if(!e){this._models.set([],void 0);return}try{let n=await this._listModels();this._githubToken===e&&this._models.set(n,void 0)}catch(n){this._logService.error(n,"[Copilot] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}async _stopClient(){let e=this._client;this._client=void 0,this._clientStarting=void 0,await e?.stop()}async _ensureClient(){let e=this._githubToken;if(!e)throw new $(As,"Authentication is required to use Copilot");if(this._client)return this._client;if(this._clientStarting)return this._clientStarting;let n=(async()=>{this._logService.info("[Copilot] Starting CopilotClient... (with token)");let r=Object.assign({},process.env,{ELECTRON_RUN_AS_NODE:"1"});delete r.NODE_OPTIONS,delete r.VSCODE_INSPECTOR_OPTIONS,delete r.VSCODE_ESM_ENTRYPOINT,delete r.VSCODE_HANDLES_UNCAUGHT_ERRORS;for(let u of Object.keys(r))u!=="ELECTRON_RUN_AS_NODE"&&(u.startsWith("VSCODE_")||u.startsWith("ELECTRON_"))&&delete r[u];r.COPILOT_CLI_RUN_AS_NODE="1",r.USE_BUILTIN_RIPGREP="false";let o=h.joinPath(et.asFileUri(""),"..","node_modules","@github","copilot","index.js").fsPath,s=b1.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),a=ye(s),l=Object.keys(r).find(u=>u.toUpperCase()==="PATH")??"PATH",c=r[l];r[l]=c?`${c}${sl}${a}`:a,this._logService.info(`[Copilot] Resolved CLI path: ${o}`);let p=this._createCopilotClient({githubToken:e,useLoggedInUser:!1,useStdio:!0,autoStart:!0,env:r,cliPath:o});if(await p.start(),this._githubToken!==e)throw await p.stop(),new Error("Copilot authentication changed while the client was starting");return this._logService.info("[Copilot] CopilotClient started successfully"),this._client=p,this._clientStarting=void 0,p})();return this._clientStarting=n,n.catch(()=>{this._clientStarting=void 0}),n}_createThinkingLevelConfigSchema(e,n){if(!e?.length)return;let r=e.map(o=>{switch(o){case"low":return m(1861,null);case"medium":return m(1862,null);case"high":return m(1860,null);case"xhigh":return m(1864,null);default:return o}});return{type:"object",properties:{[Lm]:{type:"string",title:m(1863,null),description:m(1859,null),default:n,enum:[...e],enumLabels:r}}}}_getReasoningEffort(e){let n=e?.config?.[Lm];return I1(n)?n:void 0}_serializeModelSelection(e){return JSON.stringify(e)}_parseModelSelection(e){if(e){try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.id=="string"){let r={id:n.id};if(n.config&&typeof n.config=="object"){let o={};for(let[s,a]of Object.entries(n.config))typeof a=="string"&&(o[s]=a);Object.keys(o).length>0&&(r.config=o)}return r}}catch{}return{id:e}}}async listSessions(){this._logService.info("[Copilot] Listing sessions...");let n=await(await this._ensureClient()).listSessions(),r=new Ci(4),o=new Map,a=(await Promise.all(n.map(async l=>{let c=de.uri(this.id,l.sessionId),p=await this._readStoredSessionMetadata(c);if(!p)return;let{project:u,resolved:f}=p;f||(u=await this._resolveSessionProject(l.context,r,o),this._storeSessionProjectResolution(c,u));let g=p.workingDirectory??(typeof l.context?.cwd=="string"?h.file(l.context.cwd):void 0);return{session:c,startTime:l.startTime.getTime(),modifiedTime:l.modifiedTime.getTime(),project:u,summary:l.summary,model:p.model,workingDirectory:g}}))).filter(l=>l!==void 0);return this._logService.info(`[Copilot] Found ${a.length} sessions`),a}async _listModels(){this._logService.info("[Copilot] Listing models...");let r=(await(await this._ensureClient()).listModels()).map(o=>({provider:this.id,id:o.id,name:o.name,maxContextWindow:o.capabilities?.limits?.max_context_window_tokens,supportsVision:!!o.capabilities?.supports?.vision,configSchema:this._createThinkingLevelConfigSchema(o.supportedReasoningEfforts,o.defaultReasoningEffort),policyState:o.policy?.state}));return this._logService.info(`[Copilot] Found ${r.length} models`),r}async createSession(e){if(!e?.workingDirectory)throw new Error("workingDirectory is required to create a Copilot session");this._logService.info(`[Copilot] Creating session... ${e?.model?`model=${e.model.id}`:""}`);let n=await this._ensureClient();if(e?.fork){let y=de.id(e.fork.session);return this._sessionSequencer.queue(y,async()=>{this._logService.info(`[Copilot] Forking session ${y} at turnId=${e.fork.turnId}`);let I=await(this._sessions.get(y)??await this._resumeSession(y)).getNextTurnEventId(e.fork.turnId),K=(await n.rpc.sessions.fork({sessionId:y,...I?{toEventId:I}:{}})).sessionId,we=this._sessionDataService.getSessionDataDirById(K),at=h.joinPath(we,lo);try{let Y=await this._sessionDataService.tryOpenDatabase(e.fork.session);if(Y)try{await Qc.mkdir(we.fsPath,{recursive:!0}),await Y.object.vacuumInto(at.fsPath)}finally{Y.dispose()}}catch(Y){this._logService.warn(`[Copilot] Failed to copy session database for fork: ${Y instanceof Error?Y.message:String(Y)}`)}let E=await this._resumeSession(K);e.fork.turnIdMapping&&await E.remapTurnIds(e.fork.turnIdMapping);let F=E.sessionUri;this._logService.info(`[Copilot] Forked session created: ${F.toString()}`);let k=await ha({cwd:e.workingDirectory?.fsPath},this._gitService);return await this._storeSessionMetadata(F,e.model,e.workingDirectory,k,!0),{session:F,workingDirectory:e.workingDirectory,...k?{project:k}:{}}})}let r=e?.session?de.id(e.session):ee(),o=de.uri(this.id,r),s=!1;if(e?.activeClient){let y=this._getOrCreateActiveClient(o);s=!0,y.updateTools(e.activeClient.clientId,e.activeClient.tools),e.activeClient.customizations!==void 0&&await this._plugins.sync(e.activeClient.clientId,e.activeClient.customizations)}let a=this._activeClients.get(o),l=a?await a.snapshot():void 0,c=await this._resolveSessionWorkingDirectory(e,r),p=this._instantiationService.createInstance(Qn,o,c),u=this._buildSessionConfig(l,p),f=async y=>{let S=await n.createSession({model:e?.model?.id,reasoningEffort:this._getReasoningEffort(e?.model),sessionId:r,streaming:!0,workingDirectory:c?.fsPath,...await u(y)});return new oi(S)},g;try{g=this._createAgentSession(f,r,p,c,l),await g.initializeSession()}catch(y){throw s&&this._activeClients.delete(o),await this._removeCreatedWorktree(r),y}let b=g.sessionUri;this._logService.info(`[Copilot] Session created: ${b.toString()}`);let v=await ha({cwd:c?.fsPath},this._gitService);return await this._storeSessionMetadata(g.sessionUri,e?.model,c,v,!0),{session:b,workingDirectory:c,...v?{project:v}:{}}}async resolveSessionConfig(e){let n=e.workingDirectory?await this._getGitInfo(e.workingDirectory):void 0,r=to({type:"string",title:m(1853,null),description:m(1858,null),enum:n?["folder","worktree"]:["folder"],enumLabels:n?[m(1854,null),m(1856,null)]:[m(1854,null)],enumDescriptions:n?[m(1855,null),m(1857,null)]:[m(1855,null)],default:n?"worktree":"folder",readOnly:!n}),o=n?"worktree":"folder",s=r.validate(e.config?.isolation)?e.config.isolation:o,a,l;if(n){let u=s==="folder";l=s==="worktree"?n.defaultBranch:n.currentBranch,a=to({type:"string",title:m(1851,null),description:m(1852,null),enum:[l],enumLabels:[l],default:l,enumDynamic:!u,readOnly:u})}let c=Bs({isolation:r,...jr.definition,...a?{branch:a}:{}}),p=c.validateOrDefault(e.config,{isolation:s,autoApprove:"default",...l!==void 0?{branch:l}:{}});return{schema:c.toProtocol(),values:p}}async sessionConfigCompletions(e){return e.property!=="branch"||!e.workingDirectory?{items:[]}:{items:(await this._getBranches(e.workingDirectory,e.query)).map(r=>({value:r,label:r}))}}async setClientCustomizations(e,n,r){return this._plugins.sync(e,n,r)}setClientTools(e,n,r){let o=de.id(e),s=this._getOrCreateActiveClient(e),a=this._sessions.has(o);this._logService.info(`[Copilot:${o}] setClientTools: clientId=${n}, tools=[${r.map(l=>l.name).join(", ")||"(none)"}], hasCachedSdkSession=${a}`),s.updateTools(n,r)}onClientToolCallComplete(e,n,r){this._sessions.get(de.id(e))?.handleClientToolCallComplete(n,r)}setCustomizationEnabled(e,n){this._plugins.setEnabled(e,n)}async sendMessage(e,n,r,o){let s=de.id(e);await this._sessionSequencer.queue(s,async()=>{let a=this._sessions.get(s),l=this._activeClients.get(e),c=!!a;this._logService.info(`[Copilot:${s}] sendMessage: cachedEntry=${c}, hasActiveClient=${!!l}, activeClientId=${l?"(set)":"(none)"}`),a&&l&&await l.isOutdated(a.appliedSnapshot)&&(this._logService.info(`[Copilot:${s}] Session config changed (isOutdated=true), refreshing session. snapshotClientId=${a.appliedSnapshot.clientId}`),this._sessions.deleteAndDispose(s),a=void 0),a||this._logService.info(`[Copilot:${s}] No cached entry${c?" (was evicted by isOutdated)":""}, calling _resumeSession`),a??=await this._resumeSession(s);let p=this._pendingFirstTurnAnnouncements.get(s);if(p){this._pendingFirstTurnAnnouncements.delete(s);let u=`copilot-announcement-${ee()}`,f={type:"delta",session:e,messageId:u,content:p};this._onDidSessionProgress.fire(f)}try{await a.send(n,r,o)}catch(u){let f=u?.code,g=u instanceof Error?u.message:String(u);throw this._logService.error(`[Copilot:${s}] entry.send() failed: code=${f}, message=${g}, hadCachedEntry=${c}, errorType=${u?.constructor?.name}`),u}})}setPendingMessages(e,n,r){let o=de.id(e),s=this._sessions.get(o);if(!s){this._logService.warn(`[Copilot:${o}] setPendingMessages: session not found`);return}n&&s.sendSteering(n)}async getSessionMessages(e){let n=de.id(e),r=this._sessions.get(n)??await this._resumeSession(n).catch(a=>{this._logService.warn(`[Copilot:${n}] Failed to resume session for message lookup`,a)});if(!r)return[];let o=await r.getMessages(),s=await this._readWorktreeBranchMetadata(e).catch(a=>{this._logService.warn(`[Copilot:${n}] Failed to read worktree branch metadata`,a)});return s?[..._1(o,Fm(s))]:o}async disposeSession(e){let n=de.id(e);await this._sessionSequencer.queue(n,async()=>{await this._destroyAndDisposeSession(n)})}async abortSession(e){let n=de.id(e);await this._sessionSequencer.queue(n,async()=>{let r=this._sessions.get(n);r&&await r.abort()})}async truncateSession(e,n){let r=de.id(e);await this._sessionSequencer.queue(r,async()=>{this._logService.info(`[Copilot:${r}] Truncating session${n!==void 0?` at turnId=${n}`:" (all turns)"}`);let o=this._sessions.get(r)??await this._resumeSession(r),s;n?s=await o.getNextTurnEventId(n):s=await o.getFirstTurnEventId(),s?await o.truncateAtEventId(s,n):this._logService.info(`[Copilot:${r}] No event ID found for truncation, nothing to truncate`),this._logService.info(`[Copilot:${r}] Session truncated`)})}async changeModel(e,n){let r=de.id(e),o=this._sessions.get(r);o&&await o.setModel(n.id,this._getReasoningEffort(n)),await this._storeSessionMetadata(e,n,void 0,void 0)}async shutdown(){return this._shutdownPromise??=(async()=>{this._logService.info("[Copilot] Shutting down...");let e=new Set([...this._sessions.keys(),...this._createdWorktrees.keys()]);for(let n of e)await this._sessionSequencer.queue(n,()=>this._destroyAndDisposeSession(n));await this._client?.stop(),this._client=void 0})(),this._shutdownPromise}respondToPermissionRequest(e,n){for(let[,r]of this._sessions)if(r.respondToPermissionRequest(e,n))return}respondToUserInputRequest(e,n,r){for(let[,o]of this._sessions)if(o.respondToUserInputRequest(e,n,r))return}hasSession(e){return this._sessions.has(de.id(e))}_getOrCreateActiveClient(e){let n=this._activeClients.get(e);return n||(n=new Yc(()=>this._plugins.getAppliedPlugins()),this._activeClients.set(e,n)),n}_createAgentSession(e,n,r,o,s){let a=de.uri(this.id,n),l=this._instantiationService.createInstance(ii,{sessionUri:a,rawSessionId:n,onDidSessionProgress:this._onDidSessionProgress,wrapperFactory:e,shellManager:r,workingDirectory:o,clientSnapshot:s});return this._sessions.set(n,l),l}async _destroyAndDisposeSession(e){let n=this._sessions.get(e);if(n)try{await n.destroySession()}catch(r){this._logService.warn(`[Copilot:${e}] Failed to destroy session before cleanup: ${r instanceof Error?r.message:String(r)}`)}this._sessions.deleteAndDispose(e),await this._removeCreatedWorktree(e)}_buildSessionConfig(e,n){let r=Dm(n,this._terminalManager,this._logService),o=e?.plugins??[];return async s=>{let a=await Cm(o.flatMap(l=>l.agents),this._fileService);return{onPermissionRequest:s.onPermissionRequest,onUserInputRequest:s.onUserInputRequest,hooks:Em(o.flatMap(l=>l.hooks),s.hooks),mcpServers:wm(o.flatMap(l=>l.mcpServers)),customAgents:a,skillDirectories:Rm(o.flatMap(l=>l.skills)),tools:[...r,...s.clientTools]}}}async _resumeSession(e){this._logService.info(`[Copilot:${e}] _resumeSession called \u2014 session not in memory, resuming...`);let n=await this._ensureClient(),r=de.uri(this.id,e),o=this._activeClients.get(r),s=o?await o.snapshot():void 0,a=await this._readSessionMetadata(r),l=await n.getSessionMetadata(e).catch(b=>{this._logService.warn(`[Copilot:${e}] getSessionMetadata failed`,b)}),c=a.workingDirectory??(typeof l?.context?.cwd=="string"?h.file(l.context.cwd):void 0);if(!c)throw new Error(`workingDirectory is required to resume Copilot session '${e}'`);let p=this._instantiationService.createInstance(Qn,r,c),u=this._buildSessionConfig(s,p),f=async b=>{let v=await u(b);try{this._logService.info(`[Copilot:${e}] Calling SDK resumeSession...`);let y=await n.resumeSession(e,{...v,workingDirectory:c?.fsPath});return this._logService.info(`[Copilot:${e}] SDK resumeSession succeeded`),new oi(y)}catch(y){let S=y?.code,I=y instanceof Error?y.message:String(y);if(this._logService.warn(`[Copilot:${e}] SDK resumeSession failed: code=${S}, message=${I}`),!y||S!==-32603)throw y;this._logService.warn(`[Copilot:${e}] Resume failed (code=-32603), falling back to createSession with same ID`);let T=await n.createSession({...v,sessionId:e,streaming:!0,model:a.model?.id,reasoningEffort:this._getReasoningEffort(a.model),workingDirectory:c?.fsPath});return this._logService.info(`[Copilot:${e}] Fallback createSession succeeded`),new oi(T)}},g=this._createAgentSession(f,e,p,c,s);return await g.initializeSession(),g}async _getGitInfo(e){if(!await this._gitService.isInsideWorkTree(e))return;let n=await this._gitService.getCurrentBranch(e)??"HEAD",r=await this._gitService.getDefaultBranch(e)??n;return{currentBranch:n,defaultBranch:r}}async _getBranches(e,n){return this._gitService.getBranches(e,{query:n,limit:Se._BRANCH_COMPLETION_LIMIT})}async _resolveSessionWorkingDirectory(e,n){if(e?.config?.isolation!=="worktree"||!e.workingDirectory||typeof e.config.branch!="string")return e?.workingDirectory;let r=await this._gitService.getRepositoryRoot(e.workingDirectory);if(!r)return e.workingDirectory;let o=S1(r),s=e.config.branchNameHint,l=x1(n,typeof s=="string"?s:void 0),c=h.joinPath(o,T1(l));await Qc.mkdir(o.fsPath,{recursive:!0});let p=typeof e.config.branch=="string"?e.config.branch:void 0;await this._gitService.addWorktree(r,c,l,p),this._createdWorktrees.set(n,{repositoryRoot:r,worktree:c}),this._pendingFirstTurnAnnouncements.set(n,Fm(l));let u=de.uri(this.id,n);try{await this._writeWorktreeBranchMetadata(u,l,p)}catch(f){this._logService.warn(`[Copilot:${n}] Failed to persist worktree branch metadata: ${f instanceof Error?f.message:String(f)}`)}return c}async _removeCreatedWorktree(e){let n=this._createdWorktrees.get(e);if(n)try{await this._gitService.removeWorktree(n.repositoryRoot,n.worktree)}catch(r){this._logService.warn(`[Copilot:${e}] Failed to remove worktree '${n.worktree.fsPath}': ${r instanceof Error?r.message:String(r)}`)}finally{this._createdWorktrees.delete(e)}}static{this._META_MODEL="copilot.model"}static{this._META_CWD="copilot.workingDirectory"}static{this._META_PROJECT_RESOLVED="copilot.project.resolved"}static{this._META_PROJECT_URI="copilot.project.uri"}static{this._META_PROJECT_DISPLAY_NAME="copilot.project.displayName"}static{this._META_WORKTREE_BRANCH="copilot.worktree.branchName"}async _writeWorktreeBranchMetadata(e,n,r){let o=this._sessionDataService.openDatabase(e);try{let s=[o.object.setMetadata(Se._META_WORKTREE_BRANCH,n)];r&&s.push(o.object.setMetadata(Us,r)),await Promise.all(s)}finally{o.dispose()}}async _readWorktreeBranchMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{return await n.object.getMetadata(Se._META_WORKTREE_BRANCH)??void 0}finally{n.dispose()}}async _storeSessionMetadata(e,n,r,o,s=o!==void 0){let a=this._sessionDataService.openDatabase(e),l=a.object;try{let c=[];n&&c.push(l.setMetadata(Se._META_MODEL,this._serializeModelSelection(n))),r&&c.push(l.setMetadata(Se._META_CWD,r.toString())),s&&c.push(l.setMetadata(Se._META_PROJECT_RESOLVED,"true")),o&&(c.push(l.setMetadata(Se._META_PROJECT_URI,o.uri.toString())),c.push(l.setMetadata(Se._META_PROJECT_DISPLAY_NAME,o.displayName))),await Promise.all(c)}finally{a.dispose()}}async _readSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(!n)return{};try{let[r,o]=await Promise.all([n.object.getMetadata(Se._META_MODEL),n.object.getMetadata(Se._META_CWD)]);return{model:this._parseModelSelection(r),workingDirectory:o?h.parse(o):void 0}}finally{n.dispose()}}async _readStoredSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s,a,l]=await Promise.all([n.object.getMetadata(Se._META_MODEL),n.object.getMetadata(Se._META_CWD),n.object.getMetadata(Se._META_PROJECT_RESOLVED),n.object.getMetadata(Se._META_PROJECT_URI),n.object.getMetadata(Se._META_PROJECT_DISPLAY_NAME)]),c=o?h.parse(o):void 0,p=a&&l?{uri:h.parse(a),displayName:l}:void 0;return{model:this._parseModelSelection(r),workingDirectory:c,project:p,resolved:s==="true"||p!==void 0}}finally{n.dispose()}}async _storeSessionProjectResolution(e,n){await this._storeSessionMetadata(e,void 0,void 0,n,!0)}_resolveSessionProject(e,n,r){let o=this._projectContextKey(e);if(!o)return Promise.resolve(void 0);let s=r.get(o);return s||(s=n.queue(()=>ha(e,this._gitService)),r.set(o,s)),s}_projectContextKey(e){if(e?.cwd)return`cwd:${e.cwd}`;if(e?.gitRoot)return`gitRoot:${e.gitRoot}`;if(e?.repository)return`repository:${e.repository}`}dispose(){this.shutdown().catch(e=>{this._logService.warn("[Copilot] Shutdown failed during dispose",e)}).finally(()=>super.dispose())}};Se=R([U(0,te),U(1,dn),U(2,Qe),U(3,ti),U(4,vn),U(5,Qr)],Se);var go=class{constructor(t,e,n){this._pluginManager=t;this._logService=e;this._fileService=n;this._enablement=new Map;this._lastSynced=Promise.resolve({synced:[],parsed:[]})}async getAppliedPlugins(){let{parsed:t}=await this._lastSynced;return t}setEnabled(t,e){this._enablement.set(t,e)}sync(t,e,n){let r=this._lastSynced;return(this._lastSynced=r.catch(s=>{this._logService.warn("[Copilot:PluginController] Previous customization sync failed",s)}).then(async()=>{let s=await this._pluginManager.syncCustomizations(t,e,c=>{n?.(c.map(p=>({customization:p})))}),a=[],l=[];for(let c of s)if(c.pluginDir)try{a.push(await gm(c.pluginDir,this._fileService,void 0,this._getUserHome())),l.push(c)}catch(p){this._logService.warn(`[Copilot:PluginController] Error parsing plugin: ${p}`),l.push({customization:{...c.customization,status:"error",statusMessage:`Error parsing plugin: ${p}`}})}else l.push(c);return{synced:l,parsed:a}})).then(s=>s.synced)}_getUserHome(){return process.env.HOME??process.env.USERPROFILE??""}};go=R([U(0,aa),U(1,te),U(2,Qe)],go);var Yc=class{constructor(t){this._resolvePlugins=t;this._tools=[];this._clientId=""}updateTools(t,e){this._clientId=t,this._tools=e}async snapshot(){return{clientId:this._clientId,tools:this._tools,plugins:await this._resolvePlugins()}}async isOutdated(t){let e=await this._resolvePlugins();if(!Pm(t.plugins,e)||t.tools.length!==this._tools.length)return!0;let n=new Map(t.tools.map(r=>[r.name,r]));for(let r of this._tools){let o=n.get(r.name);if(!o||o.description!==r.description||!Wt(o.inputSchema,r.inputSchema))return!0}return!1}};var va=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}},Um=class i extends L{constructor(e,n){super();this._send=e;this._handlers=n;this._nextRequestId=1;this._pendingRequests=new Map}static{this.ParseError=-32700}static{this.MethodNotFound=-32601}static{this.InternalError=-32603}sendNotification(e){this._send({jsonrpc:"2.0",...e})}sendRequest(e,n=nt.None,r){if(this._store.isDisposed)return Promise.reject(new Oe);let o=this._nextRequestId++,s=new $e,a=new Re;this._pendingRequests.set(o,{promise:s,cts:a});let l=n.onCancellationRequested(()=>{s.isSettled||(this._pendingRequests.delete(o),a.cancel(),r?.(o),s.cancel()),l.dispose()});return this._send({jsonrpc:"2.0",id:o,...e}),s.p.finally(()=>{l.dispose(),this._pendingRequests.delete(o),a.dispose(!0)})}async handleMessage(e){if(Array.isArray(e)){let r=[];for(let o of e){let s=await this._handleMessage(o);s&&r.push(s)}return r}let n=await this._handleMessage(e);return n?[n]:[]}cancelPendingRequest(e){let n=this._pendingRequests.get(e);n&&(this._pendingRequests.delete(e),n.cts.cancel(),n.promise.cancel(),n.cts.dispose(!0))}cancelAllRequests(){for(let[e,n]of this._pendingRequests)this._pendingRequests.delete(e),n.cts.cancel(),n.promise.cancel(),n.cts.dispose(!0)}async _handleMessage(e){if(Xc(e)){Ve(e,{result:!0})?this._handleResult(e):this._handleError(e);return}if(w1(e))return this._handleRequest(e);C1(e)&&this._handlers.handleNotification?.(e)}_handleResult(e){let n=this._pendingRequests.get(e.id);n&&(this._pendingRequests.delete(e.id),n.promise.complete(e.result),n.cts.dispose(!0))}_handleError(e){if(e.id===void 0)return;let n=this._pendingRequests.get(e.id);n&&(this._pendingRequests.delete(e.id),n.promise.error(new va(e.error.code,e.error.message,e.error.data)),n.cts.dispose(!0))}async _handleRequest(e){if(!this._handlers.handleRequest){let r={jsonrpc:"2.0",id:e.id,error:{code:i.MethodNotFound,message:`Method not found: ${e.method}`}};return this._send(r),r}let n=new Re;this._register(A(()=>n.dispose(!0)));try{let r=this._handlers.handleRequest(e,n.token),o=R1(r)?await r:r,s={jsonrpc:"2.0",id:e.id,result:o};return this._send(s),s}catch(r){let o;return r instanceof va?o={jsonrpc:"2.0",id:e.id,error:{code:r.code,message:r.message,data:r.data}}:o={jsonrpc:"2.0",id:e.id,error:{code:i.InternalError,message:r instanceof Error?r.message:"Internal error"}},this._send(o),o}finally{n.dispose(!0)}}dispose(){this.cancelAllRequests(),super.dispose()}static createParseError(e,n){return{jsonrpc:"2.0",error:{code:i.ParseError,message:e,data:n}}}};function w1(i){return"method"in i&&"id"in i&&(typeof i.id=="string"||typeof i.id=="number")}function Xc(i){return Ve(i,{id:!0,result:!0})||Ve(i,{id:!0,error:!0})}function C1(i){return Ve(i,{method:!0})&&!Ve(i,{id:!0})}function R1(i){return typeof i=="object"&&i!==null&&"then"in i&&typeof i.then=="function"}var E1=1e3;function ba(i,t){return{jsonrpc:"2.0",id:i,result:t}}function Zc(i,t,e,n){return{jsonrpc:"2.0",id:i,error:{code:t,message:e,...n!==void 0?{data:n}:{}}}}function ya(i,t){if(t instanceof $)return Zc(i,t.code,t.message,t.data);let e=t instanceof Error?t.stack??t.message:String(t);return Zc(i,Mr,e)}var Xn=class extends L{constructor(e,n,r,o,s,a){super();this._agentService=e;this._stateManager=n;this._server=r;this._config=o;this._clientFileSystemProvider=s;this._logService=a;this._clients=new Map;this._replayBuffer=[];this._onDidChangeConnectionCount=this._register(new _);this.onDidChangeConnectionCount=this._onDidChangeConnectionCount.event;this._requestHandlers={subscribe:async(e,n)=>{try{let r=await this._agentService.subscribe(h.parse(n.resource));return e.subscriptions.add(n.resource),{snapshot:r}}catch(r){throw r instanceof $?r:new $(hn,`Resource not found: ${n.resource}`)}},createSession:async(e,n)=>{let r,o;if(n.fork){let s=this._stateManager.getSessionState(n.fork.session);if(!s)throw new $(hn,`Fork source session not found: ${n.fork.session}`);let a=s.turns.findIndex(l=>l.id===n.fork.turnId);if(a<0)throw new $(hn,`Fork turn ID ${n.fork.turnId} not found in session ${n.fork.session}`);o={session:h.parse(n.fork.session),turnIndex:a,turnId:n.fork.turnId}}if(n.activeClient&&n.activeClient.clientId!==e.clientId)throw new $(gn.InvalidParams,"createSession.activeClient.clientId must match the connection's clientId");try{r=await this._agentService.createSession({provider:n.provider,model:n.model,workingDirectory:n.workingDirectory?h.parse(n.workingDirectory):void 0,session:h.parse(n.session),fork:o,config:n.config,activeClient:n.activeClient})}catch(s){throw s instanceof $?s:new $(zp,s instanceof Error?s.message:String(s))}return r.toString()!==h.parse(n.session).toString()&&this._logService.warn(`[ProtocolServer] createSession: provider returned URI ${r.toString()} but client requested ${n.session}`),null},disposeSession:async(e,n)=>(await this._agentService.disposeSession(h.parse(n.session)),null),resourceWrite:async(e,n)=>this._agentService.resourceWrite(n),listSessions:async()=>({items:(await this._agentService.listSessions()).map(r=>{let o=de.provider(r.session);if(!o)throw new Error(`Agent session URI has no provider scheme: ${r.session.toString()}`);let s=r.status??1;return r.isRead&&(s|=32),r.isArchived&&(s|=64),{resource:r.session.toString(),provider:o,title:r.summary??"Session",status:s,createdAt:r.startTime,modifiedAt:r.modifiedTime,...r.project?{project:{uri:r.project.uri.toString(),displayName:r.project.displayName}}:{},model:r.model,workingDirectory:r.workingDirectory?.toString(),diffs:r.diffs?[...r.diffs]:void 0}})}),resolveSessionConfig:async(e,n)=>this._agentService.resolveSessionConfig({provider:n.provider,workingDirectory:n.workingDirectory?h.parse(n.workingDirectory):void 0,config:n.config}),sessionConfigCompletions:async(e,n)=>this._agentService.sessionConfigCompletions({provider:n.provider,workingDirectory:n.workingDirectory?h.parse(n.workingDirectory):void 0,config:n.config,property:n.property,query:n.query}),fetchTurns:async(e,n)=>{let r=this._stateManager.getSessionState(n.session);if(!r)throw new $(hn,`Session not found: ${n.session}`);let o=r.turns,s=Math.min(n.limit??50,100),a=o.length;if(n.before){let c=o.findIndex(p=>p.id===n.before);c!==-1&&(a=c)}let l=Math.max(0,a-s);return{turns:o.slice(l,a),hasMore:l>0}},resourceList:async(e,n)=>this._agentService.resourceList(h.parse(n.uri)),resourceRead:async(e,n)=>this._agentService.resourceRead(h.parse(n.uri)),resourceCopy:async(e,n)=>this._agentService.resourceCopy(n),resourceDelete:async(e,n)=>this._agentService.resourceDelete(n),resourceMove:async(e,n)=>this._agentService.resourceMove(n),authenticate:async(e,n)=>{if(!(await this._agentService.authenticate(n)).authenticated)throw new $(As,"Authentication failed for resource: "+n.resource);return{}},createTerminal:async(e,n)=>(await this._agentService.createTerminal(n),null),disposeTerminal:async(e,n)=>(await this._agentService.disposeTerminal(h.parse(n.terminal)),null)};this._reverseRequestId=0;this._pendingReverseRequests=new Map;this._register(this._server.onConnection(l=>{this._handleNewConnection(l)})),this._register(this._stateManager.onDidEmitEnvelope(l=>{this._replayBuffer.push(l),this._replayBuffer.length>E1&&this._replayBuffer.shift(),this._broadcastAction(l)})),this._register(this._stateManager.onDidEmitNotification(l=>{this._broadcastNotification(l)}))}_handleNewConnection(e){let n=new M,r;n.add(e.onMessage(o=>{if(Jp(o)){if(this._logService.trace(`[ProtocolServer] request: method=${o.method} id=${o.id}`),!r&&o.method==="initialize"){try{let s=this._handleInitialize(o.params,e,n);r=s.client,e.send(ba(o.id,s.response))}catch(s){e.send(ya(o.id,s))}return}if(!r&&o.method==="reconnect"){try{let s=this._handleReconnect(o.params,e,n);r=s.client,e.send(ba(o.id,s.response))}catch(s){e.send(ya(o.id,s))}return}if(!r)return;this._handleRequest(r,o.method,o.params,o.id)}else if(Qp(o))switch(this._logService.trace(`[ProtocolServer] notification: method=${o.method}`),o.method){case"unsubscribe":r&&r.subscriptions.delete(o.params.resource);break;case"dispatchAction":if(r){this._logService.trace(`[ProtocolServer] dispatchAction: ${JSON.stringify(o.params.action.type)}`);let s=o.params.action;this._agentService.dispatchAction(s,r.clientId,o.params.clientSeq)}break}else if(Xc(o)){let s=this._pendingReverseRequests.get(o.id);s&&(this._pendingReverseRequests.delete(o.id),Ve(o,{error:!0})?s.reject(new Error(o.error?.message??"Reverse RPC error")):s.resolve(o.result))}})),n.add(e.onClose(()=>{r&&this._clients.get(r.clientId)===r&&(this._logService.info(`[ProtocolServer] Client disconnected: ${r.clientId}, subscriptions=${r.subscriptions.size}`),this._clients.delete(r.clientId),this._rejectPendingReverseRequests(r.clientId),this._onDidChangeConnectionCount.fire(this._clients.size)),n.dispose()})),n.add(e)}_handleInitialize(e,n,r){if(this._logService.info(`[ProtocolServer] Initialize: clientId=${e.clientId}, version=${e.protocolVersion}`),e.protocolVersion<1)throw new $(Gp,`Client protocol version ${e.protocolVersion} is below minimum ${1}`);let o={clientId:e.clientId,protocolVersion:e.protocolVersion,transport:n,subscriptions:new Set,disposables:r};this._clients.set(e.clientId,o),this._onDidChangeConnectionCount.fire(this._clients.size),r.add(this._clientFileSystemProvider.registerAuthority(e.clientId,{resourceList:a=>this._sendReverseRequest(e.clientId,"resourceList",{uri:a.toString()}),resourceRead:a=>this._sendReverseRequest(e.clientId,"resourceRead",{uri:a.toString()}),resourceWrite:a=>this._sendReverseRequest(e.clientId,"resourceWrite",a),resourceDelete:a=>this._sendReverseRequest(e.clientId,"resourceDelete",a),resourceMove:a=>this._sendReverseRequest(e.clientId,"resourceMove",a)}));let s=[];if(e.initialSubscriptions)for(let a of e.initialSubscriptions){let l=this._stateManager.getSnapshot(a);l&&(s.push(l),o.subscriptions.add(a.toString()))}return{client:o,response:{protocolVersion:1,serverSeq:this._stateManager.serverSeq,snapshots:s,defaultDirectory:this._config.defaultDirectory}}}_handleReconnect(e,n,r){this._logService.info(`[ProtocolServer] Reconnect: clientId=${e.clientId}, lastSeenSeq=${e.lastSeenServerSeq}`);let o={clientId:e.clientId,protocolVersion:1,transport:n,subscriptions:new Set,disposables:r};this._clients.set(e.clientId,o),this._onDidChangeConnectionCount.fire(this._clients.size);let s=this._replayBuffer.length>0?this._replayBuffer[0].serverSeq:this._stateManager.serverSeq;if(e.lastSeenServerSeq>=s){let l=[];for(let c of e.subscriptions)o.subscriptions.add(c.toString());for(let c of this._replayBuffer)c.serverSeq>e.lastSeenServerSeq&&this._isRelevantToClient(o,c)&&l.push(c);return{client:o,response:{type:"replay",actions:l}}}else{let l=[];for(let c of e.subscriptions){let p=this._stateManager.getSnapshot(c);p&&(l.push(p),o.subscriptions.add(c))}return{client:o,response:{type:"snapshot",snapshots:l}}}}_sendReverseRequest(e,n,r){let o=this._clients.get(e);if(!o)return Promise.reject(new Error(`Client ${e} is not connected`));let s=++this._reverseRequestId;return new Promise((a,l)=>{this._pendingReverseRequests.set(s,{clientId:e,resolve:a,reject:l});let c={jsonrpc:"2.0",id:s,method:n,params:r};o.transport.send(c)})}_rejectPendingReverseRequests(e){for(let[n,r]of this._pendingReverseRequests)r.clientId===e&&(this._pendingReverseRequests.delete(n),r.reject(new Error(`Client ${e} disconnected`)))}_handleRequest(e,n,r,o){let s=this._requestHandlers.hasOwnProperty(n)?this._requestHandlers[n]:void 0;if(s){s(e,r).then(l=>{this._logService.trace(`[ProtocolServer] Request '${n}' id=${o} succeeded`),e.transport.send(ba(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Request '${n}' failed`,l),e.transport.send(ya(o,l))});return}let a=this._handleExtensionRequest(n,r);if(a){a.then(l=>{e.transport.send(ba(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Extension request '${n}' failed`,l),e.transport.send(ya(o,l))});return}e.transport.send(Zc(o,Mr,`Unknown method: ${n}`))}_handleExtensionRequest(e,n){if(e==="shutdown")return this._agentService.shutdown()}_broadcastAction(e){this._logService.trace(`[ProtocolServer] Broadcasting action: ${e.action.type}`);let n={jsonrpc:"2.0",method:"action",params:e};for(let r of this._clients.values())this._isRelevantToClient(r,e)&&r.transport.send(n)}_broadcastNotification(e){let n={jsonrpc:"2.0",method:"notification",params:{notification:e}};for(let r of this._clients.values())r.transport.send(n)}_isRelevantToClient(e,n){let r=n.action;return r.type.startsWith("root/")?e.subscriptions.has(Os):Nr(r)?e.subscriptions.has(r.session):Ps(r)?e.subscriptions.has(r.terminal):!1}dispose(){for(let e of this._clients.values())e.disposables.dispose();this._clients.clear();for(let[,e]of this._pendingReverseRequests)e.reject(new Error("ProtocolServerHandler disposed"));this._pendingReverseRequests.clear(),this._replayBuffer.length=0,super.dispose()}};Xn=R([U(5,te)],Xn);var ed=class extends L{constructor(e,n){super();this._ws=e;this._WebSocket=n;this._onMessage=this._register(new _);this.onMessage=this._onMessage.event;this._onClose=this._register(new _);this.onClose=this._onClose.event;this._ws.on("message",r=>{try{let o=typeof r=="string"?r:r.toString("utf-8"),s=JSON.parse(o);this._onMessage.fire(s)}catch{this.send({jsonrpc:"2.0",id:null,error:{code:Kp,message:"Parse error"}})}}),this._ws.on("close",()=>{this._onClose.fire()}),this._ws.on("error",()=>{this._onClose.fire()})}send(e){this._ws.readyState===this._WebSocket.OPEN&&this._ws.send(JSON.stringify(e))}dispose(){this._ws.close(),super.dispose()}},ho=class i extends L{constructor(e,n,r,o,s){super();this._logService=n;this._onConnection=this._register(new _);this.onConnection=this._onConnection.event;this._WebSocket=r.WebSocket;let a=typeof e=="number"?{port:e}:e,l=a.host??"127.0.0.1",c=a.connectionTokenValidate?(p,u)=>{let g=s.parse(p.req.url??"",!0).query[vl];if(!a.connectionTokenValidate(g)){this._logService.warn("[WebSocketProtocol] Connection rejected: invalid connection token"),u(!1,403,"Forbidden");return}u(!0)}:void 0;a.socketPath?(this._httpServer=o.createServer(),this._wss=new r.WebSocketServer({server:this._httpServer,verifyClient:c}),this._httpServer.listen(a.socketPath,()=>{this._logService.info(`[WebSocketProtocol] Server listening on socket ${a.socketPath}`)})):(this._wss=new r.WebSocketServer({port:a.port,host:l,verifyClient:c}),this._logService.info(`[WebSocketProtocol] Server listening on ${l}:${a.port}`)),this._wss.on("connection",p=>{this._logService.trace("[WebSocketProtocol] New client connection");let u=new ed(p,this._WebSocket);this._onConnection.fire(u)}),this._wss.on("error",p=>{this._logService.error("[WebSocketProtocol] Server error",p)})}get address(){let e=this._wss.address();return!e||typeof e=="string"?e??void 0:`${e.address}:${e.port}`}static async create(e,n){let[r,o,s]=await Promise.all([import("ws"),import("http"),import("url")]);return new i(e,n,r,o,s)}dispose(){this._wss.close(),this._httpServer?.close(),super.dispose()}};import{homedir as N1,tmpdir as M1}from"os";var P1=60,A1=P1*60,td=A1*24,D8=td*7,O8=td*30,L8=td*365;function Wm(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 Bm=/^([^.]+\..+)[:=](.+)$/,Q=class{constructor(t,e,n){this._args=t;this.paths=e;this.productService=n}get appRoot(){return ye(et.asFileUri("").fsPath)}get userHome(){return h.file(this.paths.homeDir)}get userDataPath(){return this.paths.userDataDir}get appSettingsHome(){return h.file(W(this.userDataPath,"User"))}get tmpDir(){return h.file(this.paths.tmpDir)}get cacheHome(){return h.file(this.userDataPath)}get stateResource(){return re(this.appSettingsHome,"globalStorage","storage.json")}get userRoamingDataHome(){return this.appSettingsHome.with({scheme:ne.vscodeUserData})}get userDataSyncHome(){return re(this.appSettingsHome,"sync")}get logsHome(){if(!this.args.logsPath){let t=Wm(new Date).replace(/-|:|\.\d+Z$/g,"");this.args.logsPath=W(this.userDataPath,"logs",t)}return h.file(this.args.logsPath)}get sync(){return this.args.sync}get workspaceStorageHome(){return re(this.appSettingsHome,"workspaceStorage")}get localHistoryHome(){return re(this.appSettingsHome,"History")}get keyboardLayoutResource(){return re(this.userRoamingDataHome,"keyboardLayout.json")}get argvResource(){let t=Ce.VSCODE_PORTABLE;return t?h.file(W(t,"argv.json")):re(this.userHome,this.productService.dataFolderName,"argv.json")}get isExtensionDevelopment(){return!!this.args.extensionDevelopmentPath}get untitledWorkspacesHome(){return h.file(W(this.userDataPath,"Workspaces"))}get builtinExtensionsPath(){let t=this.args["builtin-extensions-dir"];return t?Dn(t):ct(W(et.asFileUri("").fsPath,"..","extensions"))}get extensionsDownloadLocation(){let t=this.args["extensions-download-dir"];return t?h.file(Dn(t)):h.file(W(this.userDataPath,"CachedExtensionVSIXs"))}get extensionsPath(){let t=this.args["extensions-dir"];if(t)return Dn(t);let e=Ce.VSCODE_EXTENSIONS;if(e)return e;let n=Ce.VSCODE_PORTABLE;return n?W(n,"extensions"):re(this.userHome,this.productService.dataFolderName,"extensions").fsPath}get appSharedDataHome(){let t=this.args["shared-data-dir"];if(t)return h.file(Dn(t));let e=Ce.VSCODE_PORTABLE;return e?h.file(W(e,"shared-data")):re(this.userHome,this.productService.sharedDataFolderName)}get extensionDevelopmentLocationURI(){let t=this.args.extensionDevelopmentPath;if(Array.isArray(t))return t.map(e=>/^[^:/?#]+?:\/\//.test(e)?h.parse(e):h.file(ct(e)))}get extensionDevelopmentKind(){return this.args.extensionDevelopmentKind?.map(t=>t==="ui"||t==="workspace"||t==="web"?t:"workspace")}get extensionTestsLocationURI(){let t=this.args.extensionTestsPath;if(t)return/^[^:/?#]+?:\/\//.test(t)?h.parse(t):h.file(ct(t))}get disableExtensions(){if(this.args["disable-extensions"])return!0;let t=this.args["disable-extension"];if(t){if(typeof t=="string")return[t];if(Array.isArray(t)&&t.length>0)return t}return!1}get skipBuiltinExtensions(){let t=Ce.VSCODE_SKIP_BUILTIN_EXTENSIONS;return t?t.split(",").map(e=>e.trim()).filter(e=>e):[]}get debugExtensionHost(){return k1(this.args,this.isBuilt)}get debugRenderer(){return!!this.args.debugRenderer}get isBuilt(){return!Ce.VSCODE_DEV}get verbose(){return!!this.args.verbose}get logLevel(){return this.args.log?.find(t=>!Bm.test(t))}get extensionLogLevel(){let t=[];for(let e of this.args.log||[]){let n=Bm.exec(e);n?.[1]&&n[2]&&t.push([n[1],n[2]])}return t.length?t:void 0}get serviceMachineIdResource(){return re(h.file(this.userDataPath),"machineid")}get crashReporterId(){return this.args["crash-reporter-id"]}get crashReporterDirectory(){return this.args["crash-reporter-directory"]}get disableTelemetry(){return!!this.args["disable-telemetry"]}get disableExperiments(){return!!this.args["disable-experiments"]}get disableWorkspaceTrust(){return!!this.args["disable-workspace-trust"]}get useInMemorySecretStorage(){return!!this.args["use-inmemory-secretstorage"]}get policyFile(){if(this.args["__enable-file-policy"]){let t=Ce.VSCODE_PORTABLE;return t?h.file(W(t,"policy.json")):re(this.userHome,this.productService.dataFolderName,"policy.json")}}get agentSessionsWorkspace(){return re(this.appSettingsHome,"agent-sessions.code-workspace")}get editSessionId(){return this.args.editSessionId}get exportPolicyData(){return this.args["export-policy-data"]}get exportDefaultKeybindings(){return this.args["export-default-keybindings"]}get continueOn(){return this.args.continueOn}set continueOn(t){this.args.continueOn=t}get args(){return this._args}};R([J],Q.prototype,"appRoot",1),R([J],Q.prototype,"userHome",1),R([J],Q.prototype,"userDataPath",1),R([J],Q.prototype,"appSettingsHome",1),R([J],Q.prototype,"tmpDir",1),R([J],Q.prototype,"cacheHome",1),R([J],Q.prototype,"stateResource",1),R([J],Q.prototype,"userRoamingDataHome",1),R([J],Q.prototype,"userDataSyncHome",1),R([J],Q.prototype,"sync",1),R([J],Q.prototype,"workspaceStorageHome",1),R([J],Q.prototype,"localHistoryHome",1),R([J],Q.prototype,"keyboardLayoutResource",1),R([J],Q.prototype,"argvResource",1),R([J],Q.prototype,"isExtensionDevelopment",1),R([J],Q.prototype,"untitledWorkspacesHome",1),R([J],Q.prototype,"builtinExtensionsPath",1),R([J],Q.prototype,"extensionsDownloadLocation",1),R([J],Q.prototype,"extensionsPath",1),R([J],Q.prototype,"appSharedDataHome",1),R([J],Q.prototype,"extensionDevelopmentLocationURI",1),R([J],Q.prototype,"extensionDevelopmentKind",1),R([J],Q.prototype,"extensionTestsLocationURI",1),R([J],Q.prototype,"debugExtensionHost",1),R([J],Q.prototype,"logLevel",1),R([J],Q.prototype,"extensionLogLevel",1),R([J],Q.prototype,"serviceMachineIdResource",1),R([J],Q.prototype,"disableTelemetry",1),R([J],Q.prototype,"disableExperiments",1),R([J],Q.prototype,"disableWorkspaceTrust",1),R([J],Q.prototype,"useInMemorySecretStorage",1),R([J],Q.prototype,"policyFile",1),R([J],Q.prototype,"agentSessionsWorkspace",1);function k1(i,t){return Vm(i["inspect-extensions"],i["inspect-brk-extensions"],5870,t,i.debugId,i.extensionEnvironment)}function Vm(i,t,e,n,r,o){let a=Number(t||i)||(n?null:e),l=a?!!t:!1,c;if(o)try{c=JSON.parse(o)}catch{}return{port:a,break:l,debugId:r,env:c}}import{homedir as $m}from"os";import{resolve as D1,isAbsolute as O1,join as si}from"path";var L1=process.env.VSCODE_CWD||process.cwd();function nd(i,t){let e=F1(i,t),n=[e];return O1(e)||n.unshift(L1),D1(...n)}function F1(i,t){process.env.VSCODE_DEV&&(process.isEmbeddedApp?t="agents-oss-dev":t="code-oss-dev");let e=process.env.VSCODE_PORTABLE;if(e)return si(e,"user-data");let n=process.env.VSCODE_APPDATA;if(n)return si(n,t);let r=i["user-data-dir"];return r||U1(t)}function U1(i){let t;switch(process.platform){case"win32":if(t=process.env.APPDATA,!t){let e=process.env.USERPROFILE;if(typeof e!="string")throw new Error("Windows: Unexpected undefined %USERPROFILE% environment variable");t=si(e,"AppData","Roaming")}break;case"darwin":t=si($m(),"Library","Application Support");break;case"linux":t=process.env.XDG_CONFIG_HOME||si($m(),".config");break;default:throw new Error("Platform not supported")}return si(t,i)}var vo=class extends Q{constructor(t,e){super(t,{homeDir:N1(),tmpDir:M1(),userDataDir:nd(t,e.nameShort)},e)}get hostUserRoamingDataHome(){if(!process.isEmbeddedApp||!this.isBuilt)return;let t=this.productService.quality,e;if(t==="stable")e="Code";else if(t==="insider")e="Code - Insiders";else if(t==="exploration")e="Code - Exploration";else return;let n=nd(this.args,e);return re(h.file(n),"User").with({scheme:ne.vscodeUserData})}};R([J],vo.prototype,"hostUserRoamingDataHome",1);import W1 from"minimist";var s6={o:m(2039,null),e:m(2023,null),t:m(2053,null),m:m(2034,null)};var qm={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:m(2043,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:m(2011,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:m(2006,null)},maximize:{type:"boolean",cat:"o",description:m(2010,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2046,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2037,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2042,null)},help:{type:"boolean",alias:"h",description:m(2025,null)}}},"serve-web":{type:"subcommand",description:"Run a server that displays the editor UI in browsers.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2012,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},"agent-host":{type:"subcommand",description:"Run a server that hosts agents.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2012,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},tunnel:{type:"subcommand",description:"Make the current machine accessible from vscode.dev or other machines through a secure tunnel.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2012,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"},user:{type:"subcommand",options:{login:{type:"subcommand",options:{provider:{type:"string"},"access-token":{type:"string"}}}}}}},diff:{type:"boolean",cat:"o",alias:"d",args:["file","file"],description:m(2015,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:m(2035,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:m(2005,null)},remove:{type:"boolean",cat:"o",args:"folder",description:m(2044,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:m(2024,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2036,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2045,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:m(2008,null)},wait:{type:"boolean",cat:"o",alias:"w",description:m(2063,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:m(2031,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:m(2060,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2042,null)},help:{type:"boolean",cat:"o",alias:"h",description:m(2025,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:m(2022,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:m(2030,null)},"agent-plugins-dir":{type:"string"},"agents-user-data-dir":{type:"string"},"agents-extensions-dir":{type:"string"},"show-versions":{type:"boolean",cat:"e",description:m(2047,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:m(2009,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:m(2029,null)},"pre-release":{type:"boolean",cat:"e",description:m(2028,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:m(2055,null)},"update-extensions":{type:"boolean",cat:"e",description:m(2058,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:m(2021,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:m(2007,null)},version:{type:"boolean",cat:"t",alias:"v",description:m(2062,null)},verbose:{type:"boolean",cat:"t",global:!0,description:m(2061,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:m(2033,null)},status:{type:"boolean",alias:"s",cat:"t",description:m(2048,null)},"prof-startup":{type:"boolean",cat:"t",description:m(2041,null)},"prof-append-timers":{type:"string"},"prof-duration-markers":{type:"string[]"},"prof-duration-markers-file":{type:"string"},"no-cached-data":{type:"boolean"},"prof-startup-prefix":{type:"string"},"prof-v8-extensions":{type:"boolean"},"disable-extensions":{type:"boolean",deprecates:["disableExtensions"],cat:"t",description:m(2018,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:m(2017,null)},sync:{type:"string",cat:"t",description:m(2054,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:m(2027,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:m(2026,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:m(2020,null)},"disable-gpu":{type:"boolean",cat:"t",description:m(2019,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:m(2016,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:m(2032,null)},telemetry:{type:"boolean",cat:"t",description:m(2051,null)},remote:{type:"string",allowEmptyValue:!0},"folder-uri":{type:"string[]",cat:"o",args:"uri"},"file-uri":{type:"string[]",cat:"o",args:"uri"},"locate-extension":{type:"string[]"},extensionDevelopmentPath:{type:"string[]"},extensionDevelopmentKind:{type:"string[]"},extensionTestsPath:{type:"string"},extensionEnvironment:{type:"string"},debugId:{type:"string"},debugRenderer:{type:"boolean"},"inspect-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-brk-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-agenthost":{type:"string",allowEmptyValue:!0},"inspect-brk-agenthost":{type:"string",allowEmptyValue:!0},"inspect-search":{type:"string",deprecates:["debugSearch"],allowEmptyValue:!0},"inspect-brk-search":{type:"string",deprecates:["debugBrkSearch"],allowEmptyValue:!0},"inspect-sharedprocess":{type:"string",allowEmptyValue:!0},"inspect-brk-sharedprocess":{type:"string",allowEmptyValue:!0},"export-default-configuration":{type:"string"},"export-policy-data":{type:"string",allowEmptyValue:!0},"export-default-keybindings":{type:"string",allowEmptyValue:!0},"install-source":{type:"string"},"enable-smoke-test-driver":{type:"boolean"},"skip-sessions-welcome":{type:"boolean"},logExtensionHostCommunication:{type:"boolean"},"skip-release-notes":{type:"boolean"},"skip-welcome":{type:"boolean"},"disable-telemetry":{type:"boolean"},"disable-updates":{type:"boolean"},"share-secrets-with-agents-app":{type:"boolean"},transient:{type:"boolean",cat:"t",description:m(2052,null)},"use-inmemory-secretstorage":{type:"boolean",deprecates:["disable-keytar"]},"password-store":{type:"string"},"disable-workspace-trust":{type:"boolean"},"disable-crash-reporter":{type:"boolean"},"crash-reporter-directory":{type:"string"},"crash-reporter-id":{type:"string"},"skip-add-to-recently-opened":{type:"boolean"},"open-url":{type:"boolean"},"open-chat-session":{type:"string"},"file-write":{type:"boolean"},"file-chmod":{type:"boolean"},"install-builtin-extension":{type:"string[]"},force:{type:"boolean"},"do-not-sync":{type:"boolean"},"do-not-include-pack-dependencies":{type:"boolean"},trace:{type:"boolean"},"trace-memory-infra":{type:"boolean"},"trace-category-filter":{type:"string"},"trace-options":{type:"string"},"preserve-env":{type:"boolean"},"force-user-env":{type:"boolean"},"force-disable-user-env":{type:"boolean"},"open-devtools":{type:"boolean"},"disable-gpu-sandbox":{type:"boolean"},logsPath:{type:"string"},"__enable-file-policy":{type:"boolean"},editSessionId:{type:"string"},continueOn:{type:"string"},"enable-coi":{type:"boolean"},"unresponsive-sample-interval":{type:"string"},"unresponsive-sample-period":{type:"string"},"enable-rdp-display-tracking":{type:"boolean"},"disable-layout-restore":{type:"boolean"},"disable-experiments":{type:"boolean"},"no-proxy-server":{type:"boolean"},"no-sandbox":{type:"boolean",alias:"sandbox"},"proxy-server":{type:"string"},"proxy-bypass-list":{type:"string"},"proxy-pac-url":{type:"string"},"js-flags":{type:"string"},inspect:{type:"string",allowEmptyValue:!0},"inspect-brk":{type:"string",allowEmptyValue:!0},nolazy:{type:"boolean"},"force-device-scale-factor":{type:"string"},"force-renderer-accessibility":{type:"boolean"},"ignore-certificate-errors":{type:"boolean"},"allow-insecure-localhost":{type:"boolean"},"log-net-log":{type:"string"},vmodule:{type:"string"},_urls:{type:"string[]"},"disable-dev-shm-usage":{type:"boolean"},"profile-temp":{type:"boolean"},"ozone-platform":{type:"string"},"enable-tracing":{type:"string"},"trace-startup-format":{type:"string"},"trace-startup-file":{type:"string"},"trace-startup-duration":{type:"string"},"xdg-portal-required-version":{type:"string"},_:{type:"string[]"}},B1={onUnknownOption:()=>{},onMultipleValues:()=>{},onEmptyValue:()=>{},onDeprecatedOption:()=>{}};function rd(i,t,e=B1){let n=i.find((f,g)=>f.length>0&&f[0]!=="-"&&t.hasOwnProperty(f)&&t[f].type==="subcommand"),r={},o=["_"],s=[],a={},l;for(let f in t){let g=t[f];g.type==="subcommand"?f===n&&(l=g):(g.alias&&(r[f]=g.alias),g.type==="string"||g.type==="string[]"?(o.push(f),g.deprecates&&o.push(...g.deprecates)):g.type==="boolean"&&(s.push(f),g.deprecates&&s.push(...g.deprecates)),g.global&&(a[f]=g))}if(l&&n){let f=a;for(let y in l.options)f[y]=l.options[y];let g=i.filter(y=>y!==n),b=e.getSubcommandReporter?e.getSubcommandReporter(n):void 0,v=rd(g,f,b);return{[n]:v,_:[]}}let c=W1(i,{string:o,boolean:s,alias:r}),p={},u=c;p._=c._.map(f=>String(f)).filter(f=>f.length>0),delete u._;for(let f in t){let g=t[f];if(g.type==="subcommand")continue;g.alias&&delete u[g.alias];let b=u[f];if(g.deprecates)for(let v of g.deprecates)u.hasOwnProperty(v)&&(b||(b=u[v],b&&e.onDeprecatedOption(v,g.deprecationMessage||m(2014,null,f))),delete u[v]);if(typeof b<"u"){if(g.type==="string[]"){if(Array.isArray(b)||(b=[b]),!g.allowEmptyValue){let v=b.filter(y=>y.length>0);v.length!==b.length&&(e.onEmptyValue(f),b=v.length>0?v:void 0)}}else g.type==="string"&&(Array.isArray(b)?(b=b.pop(),e.onMultipleValues(f,b)):!b&&!g.allowEmptyValue&&(e.onEmptyValue(f),b=void 0));p[f]=b,g.deprecationMessage&&e.onDeprecatedOption(f,g.deprecationMessage)}delete u[f]}for(let f in u)e.onUnknownOption(f);return p}var Ia=class extends L{constructor(t,e=[]){super(),this.logger=new Es([t,...e]),this._register(t.onDidChangeLogLevel(n=>this.setLevel(n)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(t){this.logger.setLevel(t)}getLevel(){return this.logger.getLevel()}trace(t,...e){this.logger.trace(t,...e)}debug(t,...e){this.logger.debug(t,...e)}info(t,...e){this.logger.info(t,...e)}warn(t,...e){this.logger.warn(t,...e)}error(t,...e){this.logger.error(t,...e)}flush(){this.logger.flush()}};async function $1(i,t,e,n,r){try{let o=await import("@vscode/spdlog");o.setFlushOn(0);let s=await o.createAsyncRotatingLogger(i,t,e,n);return r?s.clearFormatters():s.setPattern("%Y-%m-%d %H:%M:%S.%e [%l] %v"),s}catch(o){console.error(o)}return null}function Hm(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 jm(i,t){switch(t){case 1:i.setLevel(0);break;case 2:i.setLevel(1);break;case 3:i.setLevel(2);break;case 4:i.setLevel(3);break;case 5:i.setLevel(4);break;case 0:i.setLevel(6);break;default:throw new Error(`Invalid log level ${t}`)}}var Sa=class extends Qi{constructor(e,n,r,o,s){super();this.buffer=[];this.setLevel(s),this._loggerCreationPromise=this._createSpdLogLogger(e,n,r,o),this._register(this.onDidChangeLogLevel(a=>{this._logger&&jm(this._logger,a)}))}async _createSpdLogLogger(e,n,r,o){let s=r?6:1,a=30/s*vs.MB,l=await $1(e,n,a,s,o);if(l){this._logger=l,jm(this._logger,this.getLevel());for(let{level:c,message:p}of this.buffer)Hm(this._logger,c,p);this.buffer=[]}}log(e,n){this._logger?Hm(this._logger,e,n):this.getLevel()<=e&&this.buffer.push({level:e,message:n})}flush(){this._logger?this.flushLogger():this._loggerCreationPromise.then(()=>this.flushLogger())}dispose(){this._logger?this.disposeLogger():this._loggerCreationPromise.then(()=>this.disposeLogger()),super.dispose()}flushLogger(){this._logger&&this._logger.flush()}disposeLogger(){this._logger&&(this._logger.drop(),this._logger=void 0)}};var Ta=class extends Yi{doCreateLogger(t,e,n){return new Sa(ee(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e)}};var xa=class{constructor(t,e){this.loggerService=t;this.getUriTransformer=e}listen(t,e){let n=this.getUriTransformer(t);switch(e){case"onDidChangeLoggers":return X.map(this.loggerService.onDidChangeLoggers,r=>({added:[...r.added].map(o=>this.transformLogger(o,n)),removed:[...r.removed].map(o=>this.transformLogger(o,n))}));case"onDidChangeVisibility":return X.map(this.loggerService.onDidChangeVisibility,r=>[n.transformOutgoingURI(r[0]),r[1]]);case"onDidChangeLogLevel":return X.map(this.loggerService.onDidChangeLogLevel,r=>oc(r)?r:[n.transformOutgoingURI(r[0]),r[1]])}throw new Error(`Event not found: ${e}`)}async call(t,e,n){let r=this.getUriTransformer(t);switch(e){case"setLogLevel":return oc(n[0])?this.loggerService.setLogLevel(n[0]):this.loggerService.setLogLevel(h.revive(r.transformIncoming(n[0][0])),n[0][1]);case"getRegisteredLoggers":return Promise.resolve([...this.loggerService.getRegisteredLoggers()].map(o=>this.transformLogger(o,r)))}throw new Error(`Call not found: ${e}`)}transformLogger(t,e){return{...t,resource:e.transformOutgoingURI(t.resource)}}};var Km=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};var tt,id=globalThis.vscode;if(typeof id<"u"&&typeof id.context<"u"){let i=id.context.configuration();if(i)tt=i.product;else throw new Error("Sandbox: unable to resolve product configuration from preload script.")}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(tt=globalThis._VSCODE_PRODUCT_JSON,Ce.VSCODE_DEV&&Object.assign(tt,{nameShort:`${tt.nameShort} Dev`,nameLong:`${tt.nameLong} Dev`,dataFolderName:`${tt.dataFolderName}-dev`,serverDataFolderName:tt.serverDataFolderName?`${tt.serverDataFolderName}-dev`:void 0}),!tt.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(tt,{version:i.version})}}else tt={nameShort:"Code",nameLong:"Visual Studio Code",applicationName:"code",win32x64AppId:"{{EA457B21-F73E-494C-ACAB-524FDE069978}",win32arm64AppId:"{{A5270FC5-65AD-483E-AC30-2C276B63D0AC}",win32x64UserAppId:"{{771FD6B0-FA20-440A-A002-3B3BAC16DC50}",win32arm64UserAppId:"{{D9E514E7-1A56-452D-9337-2990C0DC4310}",win32NameVersion:"Microsoft Visual Studio Code",win32DirName:"Microsoft VS Code",win32SetupExeBasename:"VSCodeSetup",win32AppUserModelId:"Microsoft.VisualStudioCode",win32ShellNameShort:"Code",win32MutexName:"vscode",win32RegValueName:"VSCode",win32VersionedUpdate:!0,darwinCredits:"resources/darwin/Credits.rtf",darwinBundleIdentifier:"com.microsoft.VSCode",darwinSharedKeychainServiceName:"com.microsoft.VSCode.shared-secrets",darwinProfileUUID:"EBAE60D6-C8A2-4419-92FF-24F8AD5077AB",darwinProfilePayloadUUID:"C6B5723A-6539-4F31-8A4E-3CC96E51F48C",darwinExecutable:"VSCode",linuxIconName:"vscode",licenseFileName:"LICENSE.rtf",licenseName:"Multiple, see https://code.visualstudio.com/license",serverGreeting:[],serverLicense:["*","* Visual Studio Code Server","*","* By using the software, you agree to","* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and","* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).","*"],serverLicensePrompt:"Do you accept the terms in the License Agreement (Y/n)?",serverApplicationName:"code-server",urlProtocol:"vscode",dataFolderName:".vscode",sharedDataFolderName:".vscode-shared",serverDataFolderName:".vscode-server",downloadUrl:"https://code.visualstudio.com",updateUrl:"https://update.code.visualstudio.com",webUrl:"https://vscode.dev",webEndpointUrl:"https://main.vscode-cdn.net",webEndpointUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}",nlsCoreBaseUrl:"https://www.vscode-unpkg.net/nls/",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}/out/vs/workbench/contrib/webview/browser/pre/",quality:"stable",embedded:{nameShort:"Agents",nameLong:"Visual Studio Code Agents",applicationName:"agents",telemetryAppName:"agents",win32AppUserModelId:"Microsoft.VisualStudioCodeAgents",win32MutexName:"vscodeagents",win32RegValueName:"VSCodeAgents",win32NameVersion:"Microsoft Visual Studio Code Agents",win32VersionedUpdate:!0,darwinBundleIdentifier:"com.microsoft.VSCodeAgents",dataFolderName:".vscode-agents",urlProtocol:"vscode-agents",inheritAuthAccountPreference:{"github.copilot":["github.copilot-chat"],"vscode.github":["github.copilot-chat"]}},extensionsGallery:{nlsBaseUrl:"https://www.vscode-unpkg.net/_lp/",serviceUrl:"https://marketplace.visualstudio.com/_apis/public/gallery",itemUrl:"https://marketplace.visualstudio.com/items",publisherUrl:"https://marketplace.visualstudio.com/publishers",resourceUrlTemplate:"https://{publisher}.vscode-unpkg.net/{publisher}/{name}/{version}/{path}",extensionUrlTemplate:"https://www.vscode-unpkg.net/_gallery/{publisher}/{name}/latest",controlUrl:"https://main.vscode-cdn.net/extensions/marketplace.json",mcpUrl:"https://main.vscode-cdn.net/mcp/servers.json",accessSKUs:["copilot_enterprise_seat","copilot_enterprise_seat_quota","copilot_enterprise_seat_multi_quota","copilot_enterprise_seat_assignment","copilot_enterprise_seat_assignment_quota","copilot_enterprise_seat_assignment_multi_quota","copilot_enterprise_trial_seat","copilot_enterprise_trial_seat_quota","copilot_for_business_seat","copilot_for_business_seat_quota","copilot_for_business_seat_multi_quota","copilot_for_business_seat_assignment","copilot_for_business_seat_assignment_quota","copilot_for_business_seat_assignment_multi_quota","copilot_for_business_trial_seat","copilot_for_business_trial_seat_quota"]},mcpGallery:{serviceUrl:"https://api.mcp.github.com",itemWebUrl:"https://github.com/mcp/{name}",publisherUrl:"https://github.com/{name}",supportUrl:"https://support.github.com",privacyPolicyUrl:"https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement",termsOfServiceUrl:"https://docs.github.com/site-policy/github-terms/github-terms-of-service",reportUrl:"https://docs.github.com/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam"},extensionProperties:{"github.copilot-chat":{hasPrereleaseVersion:!1,excludeVersionRange:"<=0.16.1"},"github.copilot":{hasPrereleaseVersion:!0}},extensionsForceVersionByQuality:["github.copilot-chat","github.copilot"],builtInExtensions:[{name:"ms-vscode.js-debug-companion",version:"1.1.3",sha256:"7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",repo:"https://github.com/microsoft/vscode-js-debug-companion",metadata:{id:"99cb0b7f-7354-4278-b8da-6cc79972169d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.js-debug",version:"1.117.0",sha256:"854eeb8a785b1f41ba2bd02d7ccd4fdbe10021b61473293973c7e96d036c7fb8",repo:"https://github.com/microsoft/vscode-js-debug",metadata:{id:"25629058-ddac-4e17-abba-74678e126c5d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.vscode-js-profile-table",version:"1.0.10",sha256:"7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",repo:"https://github.com/microsoft/vscode-js-profile-visualizer",metadata:{id:"7e52b41b-71ad-457b-ab7e-0620f1fc4feb",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"TypeScriptTeam.jsts-chat-features",version:"0.0.2",sha256:"288d8bc26a6e3a752c0971bc93078736c3d818384b27989c1e05ec49a28e1c29",metadata:{id:"7d881d23-233c-448d-9700-cf11a0de79c2",publisherId:{publisherId:"4f0355d2-4a53-4ab1-a8ea-507f4a333a6f",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}}],profileTemplatesUrl:"https://main.vscode-cdn.net/core/profile-templates.json",emergencyAlertUrl:"https://main.vscode-cdn.net/core/stable.json",extensionPublisherOrgs:["microsoft"],trustedExtensionPublishers:["microsoft","github","openai"],extensionRecommendations:{"ms-dotnettools.csdevkit":{onFileOpen:[{pathGlob:"{**/*.cs,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln}",important:!0},{languages:["csharp"],important:!0},{pathGlob:"{**/project.json,**/appsettings.json}"}]},"microsoft-aspire.aspire-vscode":{onFileOpen:[{pathGlob:"{**/apphost.cs,**/apphost.js,**/apphost.ts,**/apphost.py,**/AppHost.java,**/aspire.config.json,**/.aspire/settings.json}",important:!0}]},"ms-python.python":{onFileOpen:[{pathGlob:"{**/*.py}",important:!0},{languages:["python"],important:!0},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.jupyter":{onFileOpen:[{pathGlob:"{**/*.py}",contentPattern:"^#\\s*%%$",important:!0,whenInstalled:["ms-python.python"]},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.datawrangler":{onFileOpen:[{pathGlob:"{**/*.ipynb}",contentPattern:"import\\s*pandas|from\\s*pandas",whenInstalled:["ms-toolsai.jupyter"]}]},"golang.Go":{onFileOpen:[{pathGlob:"**/*.go",important:!0},{languages:["go"],important:!0}]},"vscjava.vscode-java-pack":{onFileOpen:[{pathGlob:"{**/*.java}",important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},{languages:["java"],important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}]},"ms-vscode.PowerShell":{onFileOpen:[{pathGlob:"{**/*.ps1,**/*.psd1,**/*.psm1}",important:!0},{languages:["powershell"],important:!0},{pathGlob:"{**/*.ps.config,**/*.ps1.config}"}]},"ms-toolsai.prompty":{onFileOpen:[{pathGlob:"{**/*.prompty}",important:!1}]},"quantum.qsharp-lang-vscode":{onFileOpen:[{pathGlob:"{**/*.qs,**/*.qsc,**/*.qasm}",important:!0}]},"typespec.typespec-vscode":{onFileOpen:[{pathGlob:"{**/*.tsp,**/tspconfig.yaml}",important:!0}]},"ms-vscode.cpptools-extension-pack":{onFileOpen:[{pathGlob:"{**/*.c,**/*.cpp,**/*.cc,**/.cxx,**/*.hh,**/*.hpp,**/*.hxx,**/*.h}",important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]},{languages:["c","cpp"],important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]}]},"ms-azuretools.vscode-containers":{onFileOpen:[{pathGlob:"{**/dockerfile,**/Dockerfile,**/docker-compose.yml,**/docker-compose.*.yml}",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{languages:["dockerfile"],important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{pathGlob:"{**/*.cs,**/project.json,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln,**/appsettings.json,**/*.py,**/*.ipynb,**/*.js,**/*.ts,**/package.json}",whenNotInstalled:["ms-azuretools.vscode-docker"]}]},"vue.volar":{onFileOpen:[{pathGlob:"{**/*.vue}",important:!0},{languages:["vue"],important:!0}]},"ms-vscode.makefile-tools":{onFileOpen:[{pathGlob:"{**/makefile,**/Makefile}",important:!0},{languages:["makefile"],important:!0}]},"ms-vscode.cmake-tools":{onFileOpen:[{pathGlob:"{**/CMakeLists.txt}",important:!0}]},"ms-azure-devops.azure-pipelines":{onFileOpen:[{pathGlob:"{**/azure-pipelines.yaml}",important:!0}]},"msazurermtools.azurerm-vscode-tools":{onFileOpen:[{pathGlob:"{**/azuredeploy.json}",important:!0}]},"ms-vscode-remote.remote-containers":{onFileOpen:[{pathGlob:"{**/devcontainer.json}",important:!0}]},"ms-azuretools.vscode-bicep":{onFileOpen:[{pathGlob:"{**/*.bicep}",important:!0,whenNotInstalled:["ms-azuretools.rad-vscode-bicep"]}]},"svelte.svelte-vscode":{onFileOpen:[{pathGlob:"{**/*.svelte}",important:!0}]},"ms-vscode.vscode-github-issue-notebooks":{onFileOpen:[{pathGlob:"{**/*.github-issues}",important:!0}]},"ms-playwright.playwright":{onFileOpen:[{pathGlob:"{**/*playwright*.config.ts,**/*playwright*.config.js,**/*playwright*.config.mjs}",important:!0}]},"vscjava.vscode-gradle":{onFileOpen:[{pathGlob:"{**/gradlew,**/gradlew.bat,**/build.gradle,**/build.gradle.kts,**/settings.gradle,**/settings.gradle.kts}",important:!0}]},"REditorSupport.r":{onFileOpen:[{pathGlob:"{**/*.r}",important:!0},{languages:["r"],important:!0}]},"firefox-devtools.vscode-firefox-debug":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/.babelrc}"}]},"ms-edgedevtools.vscode-edge-devtools":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.css,**/*.html}"}]},"Ionide.Ionide-fsharp":{onFileOpen:[{pathGlob:"{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}"}]},"dbaeumer.vscode-eslint":{onFileOpen:[{pathGlob:"{**/*.js,**/*.jsx,**/*.es6,**/.eslintrc.*,**/.eslintrc,**/.babelrc,**/jsconfig.json}"}]},"bmewburn.vscode-intelephense-client":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"xdebug.php-debug":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"rust-lang.rust-analyzer":{onFileOpen:[{pathGlob:"{**/*.rs,**/*.rslib}"}]},"DavidAnson.vscode-markdownlint":{onFileOpen:[{pathGlob:"{**/*.md}"}]},"EditorConfig.EditorConfig":{onFileOpen:[{pathGlob:"{**/.editorconfig}"}]},"HookyQR.beautify":{onFileOpen:[{pathGlob:"{**/.jsbeautifyrc}"}]},"donjayamanne.githistory":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"eamodio.gitlens":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"Shopify.ruby-lsp":{onFileOpen:[{pathGlob:"{**/*.rb,**/*.erb,**/*.reek,**/.fasterer.yml,**/ruby-lint.yml,**/.rubocop.yml}"}]},"swiftlang.swift-vscode":{onFileOpen:[{pathGlob:"{**/*.swift,**/*.swiftinterface}",important:!0}]},"DotJoshJohnson.xml":{onFileOpen:[{pathGlob:"{**/*.xml}"}]},"stylelint.vscode-stylelint":{onFileOpen:[{pathGlob:"{**/.stylelintrc,**/stylelint.config.js}"}]},"ms-mssql.mssql":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"mtxr.sqltools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"usqlextpublisher.usql-vscode-ext":{onFileOpen:[{pathGlob:"{**/*.usql}"}]},"ms-vscode.sublime-keybindings":{onFileOpen:[{pathGlob:"{**/.sublime-project,**/.sublime-workspace}"}]},"k--kato.intellij-idea-keybindings":{onFileOpen:[{pathGlob:"{**/.idea}"}]},"christian-kohler.npm-intellisense":{onFileOpen:[{pathGlob:"{**/package.json}"}]},"cake-build.cake-vscode":{onFileOpen:[{pathGlob:"{**/build.cake}"}]},"Angular.ng-template":{onFileOpen:[{pathGlob:"{**/.angular-cli.json,**/angular.json,**/*.ng.html,**/*.ng,**/*.ngml}"}]},"vscjava.vscode-maven":{onFileOpen:[{pathGlob:"**/pom.xml"}]},"ms-azuretools.vscode-azureterraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"HashiCorp.terraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"vsciot-vscode.vscode-arduino":{onFileOpen:[{pathGlob:"**/*.ino"}]},"ms-kubernetes-tools.vscode-kubernetes-tools":{onFileOpen:[{pathGlob:"{**/Chart.yaml}"}]},"Oracle.oracledevtools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"betterthantomorrow.calva":{onFileOpen:[{pathGlob:"{**/*.clj,**/*.cljs}"}]},"vmware.vscode-boot-dev-pack":{onFileOpen:[{pathGlob:"{**/application.properties}"}]},"GitHub.copilot":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rb,**/*.html,**/*.css,**/*.php,**/*.cpp,**/*.vue,**/*.c,**/*.sql,**/*.java,**/*.cs,**/*.rs,**/*.dart,**/*.ps,**/*.ps1,**/*.tex}"}]},"GitHub.copilot-chat":{onSettingsEditorOpen:{descriptionOverride:"GitHub Copilot is an AI-powered coding assistant that helps you write code faster and smarter."}},"GitHub.vscode-github-actions":{onFileOpen:[{pathGlob:"{**/.github/workflows/*.yml}",important:!0}]},"circleci.circleci":{onFileOpen:[{pathGlob:"{**/.circleci/config.yml}"}]},"mechatroner.rainbow-csv":{onFileOpen:[{pathGlob:"**/*.csv",important:!0}]},"tomoki1207.pdf":{onFileOpen:[{pathGlob:"**/*.pdf",important:!0}]},"Redis.redis-for-vscode":{onFileOpen:[{pathGlob:"{**/redis.*,**/redis-server.*,**/redis_*,**/redisinsight.*}",important:!0}]},"SonarSource.sonarlint-vscode":{onFileOpen:[{pathGlob:"{**/sonar-project.properties,**/sonarcloud.properties,**/sonarlint.*}",important:!0}]}},onboardingKeymaps:[{id:"vscode",label:"VS Code",description:"Default keyboard mapping"},{id:"sublime",label:"Sublime Text",extensionId:"ms-vscode.sublime-keybindings",description:"Keyboard mapping from Sublime Text"},{id:"intellij",label:"IntelliJ / JetBrains",extensionId:"k--kato.intellij-idea-keybindings",description:"Keyboard mapping from IntelliJ IDEA"},{id:"vim",label:"Vim",extensionId:"vscodevim.vim",description:"Vim modal editing"},{id:"eclipse",label:"Eclipse",extensionId:"alphabotsec.vscode-eclipse-keybindings",description:"Keyboard mapping from Eclipse"},{id:"notepadpp",label:"Notepad++",extensionId:"ms-vscode.notepadplusplus-keybindings",description:"Keyboard mapping from Notepad++"}],onboardingThemes:[{id:"dark-2026",label:"Dark 2026",themeId:"Dark 2026",type:"dark"},{id:"hc-dark",label:"Dark High Contrast",themeId:"Default High Contrast",type:"hcDark"},{id:"solarized-dark",label:"Solarized Dark",themeId:"Solarized Dark",type:"dark"},{id:"light-2026",label:"Light 2026",themeId:"Light 2026",type:"light"},{id:"hc-light",label:"Light High Contrast",themeId:"Default High Contrast Light",type:"hcLight"},{id:"solarized-light",label:"Solarized Light",themeId:"Solarized Light",type:"light"}],keymapExtensionTips:["vscodevim.vim","ms-vscode.sublime-keybindings","ms-vscode.atom-keybindings","ms-vscode.brackets-keybindings","ms-vscode.vs-keybindings","ms-vscode.notepadplusplus-keybindings","k--kato.intellij-idea-keybindings","lfs.vscode-emacs-friendly","alphabotsec.vscode-eclipse-keybindings","alefragnani.delphi-keybindings"],languageExtensionTips:["ms-python.python","ms-vscode.cpptools-extension-pack","ms-dotnettools.csdevkit","ms-toolsai.jupyter","vscjava.vscode-java-pack","ecmel.vscode-html-css","vue.volar","bmewburn.vscode-intelephense-client","dsznajder.es7-react-js-snippets","golang.go","ms-vscode.powershell","dart-code.dart-code","rust-lang.rust-analyzer","Shopify.ruby-lsp","GitHub.copilot"],configBasedExtensionTips:{git:{configPath:".git/config",configName:"Git",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",contentPattern:"^\\s*url\\s*=\\s*https:\\/\\/github\\.com.*$"},"eamodio.gitlens":{name:"GitLens"}}},devContainer:{configPath:".devcontainer/devcontainer.json",configName:"Dev Container",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0}}},maven:{configPath:"pom.xml",configName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},"vmware.vscode-boot-dev-pack":{name:"Spring Boot Extension Pack",isExtensionPack:!0}}},gradle:{configPath:"build.gradle",configName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},"github-pull-request":{configPath:".vscode/.github-pull-request.rec",configName:"GitHub",configScheme:"vscode-vfs",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",important:!0}}},"pyproject-formatter":{configPath:"pyproject.toml",configName:"Python Formatter",recommendations:{"ms-python.black-formatter":{name:"Black Formatter",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?black"?\\s*[\\].])|("black\\s*["[(<=>!~;@])'},"ms-python.autopep8":{name:"Autopep8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?autopep8"?\\s*[\\].])|("autopep8\\s*["[(<=>!~;@])'}}},"pep8-formatter":{configPath:".pep8",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8"}}},"python-setup-cgf-formatter":{configPath:"setup.cfg",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"tox-ini-formatter":{configPath:"tox.ini",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"pyproject-linter":{configPath:"pyproject.toml",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?pylint"?\\s*[\\].])|("pylint\\s*["[(<=>!~;@])'},"charliermarsh.ruff":{name:"Ruff",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?ruff"?\\s*[\\].])|("ruff\\s*["[(<=>!~;@])'},"ms-python.mypy-type-checker":{name:"Mypy Type Checker",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?mypy"?\\s*[\\].])|("mypy\\s*["[(<=>!~;@])'},"ms-python.flake8":{name:"Flake8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?flake8"?\\s*[\\].])|("flake8\\s*["[(<=>!~;@])'}}},".pylintrc-linter":{configPath:".pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"pylintrc-linter":{configPath:"pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"mypy-ini-linter":{configPath:".mypy.ini",configName:"Python Linter",recommendations:{"ms-python.mypy-type-checker":{name:"Mypy Type Checker"}}},"tox-ini-linter":{configPath:"tox.ini",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}},".flake8-linter":{configPath:".flake8",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8"}}},"python-setup-cgf-linter":{configPath:"setup.cfg",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}}},exeBasedExtensionTips:{az:{friendlyName:"Azure CLI",windowsPath:"%ProgramFiles(x86)%\\Microsoft SDKs\\Azure\\CLI2\\wbin\\az.cmd",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},azd:{friendlyName:"Azure Dev CLI",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azd-user":{friendlyName:"Azure Dev CLI",windowsPath:"%ProgramFiles%\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azure-powershell":{friendlyName:"Azure PowerShell",windowsPath:"%USERPROFILE%\\.Azure",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"}}},heroku:{friendlyName:"Heroku CLI",windowsPath:"%ProgramFiles%\\Heroku\\bin\\heroku.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"pkosta2005.heroku-command":{name:"heroku-cli"}}},mongo:{friendlyName:"Mongo",windowsPath:"%ProgramFiles%\\MongoDB\\Server\\3.6\\bin\\mongod.exe",recommendations:{"ms-azuretools.vscode-cosmosdb":{name:"Azure Databases"}}},serverless:{friendlyName:"Serverless framework",windowsPath:"%APPDATA%\\npm\\serverless.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},func:{friendlyName:"Azure Function SDK",windowsPath:"%APPDATA%\\npm\\func.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},mysql:{friendlyName:"MySQL",windowsPath:"%ProgramFiles%\\MySQL\\MySQL Server 8.0\\bin\\mysqld.exe",recommendations:{"mtxr.sqltools":{name:"SQLTools"}}},postgres:{friendlyName:"PostgreSQL",windowsPath:"%ProgramFiles%\\PostgreSQL\\11\\bin\\psql.exe",recommendations:{"ms-ossdata.vscode-postgresql":{name:"PostgreSQL"},"mtxr.sqltools":{name:"SQLTools"}}},sqlcmd:{friendlyName:"SQL CLI",recommendations:{"ms-mssql.mssql":{name:"SQL Server (mssql)"}}},now:{friendlyName:"Now CLI",windowsPath:"%APPDATA%\\npm\\now.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"ms-azuretools.vscode-containers":{name:"Docker"}}},docker:{friendlyName:"Docker",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\docker.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},kubectl:{friendlyName:"Kubernetes",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\kubectl.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},ng:{friendlyName:"Angular CLI",windowsPath:"%APPDATA%\\npmexit\\ng.cmd",recommendations:{"johnpapa.Angular2":{name:"Angular Snippets"}}},"create-react-app":{friendlyName:"Create React App",windowsPath:"%APPDATA%\\npm\\create-react-app.cmd",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},"react-native":{friendlyName:"React Native",windowsPath:"%APPDATA%\\npm\\react-native-cli",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},p4:{friendlyName:"Perforce",recommendations:{"slevesque.perforce":{name:"Perforce for VS Code"}}},hg:{friendlyName:"Mercurial",recommendations:{"mrcrowl.hg":{name:"Hg"}}},git:{friendlyName:"Git",windowsPath:"%ProgramFiles%\\Git\\git-bash.exe",recommendations:{"eamodio.gitlens":{name:"GitLens"}}},svn:{friendlyName:"Subversion",windowsPath:"%ProgramFiles%\\TortoiseSVN\\bin\\TortoiseProc.exe",recommendations:{"johnstoncode.svn-scm":{name:"SVN"}}},subl:{friendlyName:"Sublime",windowsPath:"%ProgramFiles%\\Sublime Text3\\sublime_text.exe",recommendations:{"ms-vscode.sublime-keybindings":{name:"Sublime Text Keymap and Settings Importer"}}},atom:{friendlyName:"Atom",windowsPath:"%USERPROFILE%\\AppData\\Local\\atom\\bin\\atom.cmd",recommendations:{"ms-vscode.atom-keybindings":{name:"Atom Keymap"}}},brackets:{friendlyName:"Brackets",windowsPath:"%ProgramFiles(x86)%\\Brackets\\Brackets.exe",recommendations:{"ms-vscode.brackets-keybindings":{name:"Brackets Keymap"}}},notepadplusplus:{friendlyName:"Notepad++",windowsPath:"%ProgramFiles%\\Notepad++\\Notepad++.exe",recommendations:{"ms-vscode.notepadplusplus-keybindings":{name:"Notepad++ keymap"}}},vi:{friendlyName:"VIM",windowsPath:"%ProgramFiles(x86)%\\Vim\\vim80\\gvim.exe",recommendations:{"vscodevim.vim":{name:"Vim"}}},mvn:{friendlyName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},gradle:{friendlyName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},ollama:{friendlyName:"Ollama",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Ollama\\ollama.exe",recommendations:{"ms-windows-ai-studio.windows-ai-studio":{name:"AI Toolkit for Visual Studio Code"}}},"Microsoft Edge":{friendlyName:"Microsoft Edge",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Dev":{friendlyName:"Microsoft Edge Dev",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Dev\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Beta":{friendlyName:"Microsoft Edge Beta",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Beta\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Canary":{friendlyName:"Microsoft Edge Canary",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Mozilla Firefox (x86)":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles(x86)%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition (x86)":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles(x86)%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},cordova:{friendlyName:"Cordova",windowsPath:"%APPDATA%\\npm\\cordova",recommendations:{"msjsdiag.cordova-tools":{name:"Cordova Tools"}}},gcloud:{friendlyName:"Google GCloud CLI",windowsPath:"%ProgramFiles(x86)%\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd",recommendations:{"GoogleCloudTools.cloudcode":{name:"Cloud Code"}}},skaffold:{friendlyName:"Skaffold Code to Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},minikube:{friendlyName:"MiniKube Local Kubernetes Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},podman:{friendlyName:"Podman",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},wsl:{friendlyName:"Windows Subsystem for Linux (WSL)",windowsPath:"%WINDIR%\\system32\\lxss\\LxssManager.dll",recommendations:{"ms-vscode-remote.remote-wsl":{name:"WSL"}}}},webExtensionTips:["tyriar.luna-paint","codespaces-contrib.codeswing","ms-vscode.vscode-github-issue-notebooks","esbenp.prettier-vscode","hediet.vscode-drawio"],virtualWorkspaceExtensionTips:{"vscode-vfs":{friendlyName:"Remote Repositories",extensionId:"ms-vscode.remote-repositories",startEntry:{helpLink:"https://aka.ms/vscode-remote/remote-repositories",startConnectLabel:"Remote Repository",startCommand:"remoteHub.continueOn.openRepository",priority:5}}},remoteExtensionTips:{wsl:{friendlyName:"WSL",extensionId:"ms-vscode-remote.remote-wsl",supportedPlatforms:["Windows","Web"],startEntry:{helpLink:"https://aka.ms/vscode-remote/wsl",startConnectLabel:"WSL",startCommand:"remote-wsl.connect",priority:3}},"ssh-remote":{friendlyName:"Remote - SSH",extensionId:"ms-vscode-remote.remote-ssh",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/ssh",startConnectLabel:"SSH ",startCommand:"opensshremotes.openEmptyWindowInCurrentWindow",priority:1}},"dev-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/containers",startConnectLabel:"Dev Container",startCommand:"remote-containers.reopenInContainer",priority:2}},"attached-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers"},codespaces:{friendlyName:"GitHub Codespaces",extensionId:"github.codespaces",startEntry:{helpLink:"https://aka.ms/vscode-remote-codespaces",startConnectLabel:"GitHub Codespace ",startCommand:"github.codespaces.connect",priority:4}},tunnel:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server",startEntry:{helpLink:"https://aka.ms/remote-tunnels-doc",startConnectLabel:"Tunnel",startCommand:"remote-tunnels.connectCurrentWindowToTunnel",priority:0}},amlext:{friendlyName:"Azure Machine Learning",extensionId:"ms-toolsai.vscode-ai-remote"}},commandPaletteSuggestedCommandIds:["workbench.action.files.openFile","workbench.action.files.openFileFolder","workbench.action.files.openFolder","workbench.action.remote.showMenu","editor.action.formatDocument","editor.action.commentLine","workbench.action.tasks.runTask","workbench.action.openSettings2","workbench.action.selectTheme","workbench.action.openWalkthrough","workbench.action.openIssueReporter"],extensionKeywords:{md:["Markdown"],js:["JavaScript"],jsx:["JavaScript"],es6:["JavaScript"],html:["Html"],ts:["TypeScript"],tsx:["TypeScript"],css:["CSS"],scss:["SASS"],txt:["Text"],php:["PHP"],php3:["PHP"],php4:["PHP"],ph3:["PHP"],ph4:["PHP"],xml:["XML"],py:["Python"],pyc:["Python"],pyd:["Python"],pyo:["Python"],pyw:["Python"],pyz:["Python"],java:["Java"],class:["Java"],jar:["Java"],c:["c","objective c","objective-c"],m:["objective c","objective-c"],mm:["objective c","objective-c"],cpp:["cpp","c plus plus","c","c++"],cc:["cpp","c plus plus","c","c++"],cxx:["cpp","c plus plus","c++"],hh:["cpp","c plus plus","c++"],hpp:["cpp","c++"],h:["cpp","c plus plus","c++","c","objective c","objective-c"],sql:["sql"],sh:["bash"],bash:["bash"],zsh:["bash","zshell"],cs:["c#","csharp"],csproj:["c#","csharp"],sln:["c#","csharp"],go:["go"],sty:["latex"],tex:["latex"],ps:["powershell"],ps1:["powershell"],rs:["rust"],rslib:["rust"],hs:["haskell"],lhs:["haskell"],scm:["scheme"],ss:["scheme"],clj:["clojure"],cljs:["clojure"],cljc:["clojure"],edn:["clojure"],erl:["erlang"],hrl:["erlang"],scala:["scala"],sc:["scala"],pl:["perl"],pm:["perl"],t:["perl"],pod:["perl"],groovy:["groovy"],swift:["swift"],rb:["ruby"],rbw:["ruby"],jl:["julia"],f:["fortran"],for:["fortran"],f90:["fortran"],f95:["fortran"],coffee:["CoffeeScript"],litcoffee:["CoffeeScript"],yaml:["yaml"],yml:["yaml"],dart:["dart"],json:["json"]},extensionAllowedBadgeProviders:["api.travis-ci.com","app.fossa.io","badge.buildkite.com","badge.fury.io","badgen.net","badges.frapsoft.com","badges.gitter.im","cdn.travis-ci.com","ci.appveyor.com","circleci.com","cla.opensource.microsoft.com","codacy.com","codeclimate.com","codecov.io","coveralls.io","david-dm.org","deepscan.io","dev.azure.com","docs.rs","flat.badgen.net","gitlab.com","godoc.org","goreportcard.com","img.shields.io","isitmaintained.com","marketplace.visualstudio.com","nodesecurity.io","opencollective.com","snyk.io","travis-ci.com","travis-ci.org","visualstudio.com","vsmarketplacebadge.apphb.com"],extensionAllowedBadgeProvidersRegex:["^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"],crashReporter:{productName:"VSCode",companyName:"Microsoft"},appCenter:{"win32-x64":"appcenter://code?aid=a4e3233c-699c-46ec-b4f4-9c2a77254662","win32-arm64":"appcenter://code?aid=3712d786-7cc8-4f11-8b08-cc12eab6d4f7","linux-x64":"appcenter://code?aid=fba07a4d-84bd-4fc8-a125-9640fc8ce171",darwin:"appcenter://code?aid=860d6632-f65b-490b-85a8-3e72944f7774","darwin-arm64":"appcenter://code?aid=be71415d-3893-4ae5-b453-e537b9668a10","darwin-universal":"appcenter://code?aid=de75e3cc-e22f-4f42-a03f-1409c21d8af8"},enableTelemetry:!0,aiConfig:{ariaKey:"5bbf946d11a54f6783919c455abaddaf-fd62977b-c92d-4714-a45d-649d06980372-7168"},msftInternalDomains:["redmond.corp.microsoft.com","northamerica.corp.microsoft.com","fareast.corp.microsoft.com","ntdev.corp.microsoft.com","wingroup.corp.microsoft.com","southpacific.corp.microsoft.com","wingroup.windeploy.ntdev.microsoft.com","ddnet.microsoft.com","europe.corp.microsoft.com"],documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#vscode",serverDocumentationUrl:"https://aka.ms/vscode-server-doc",releaseNotesUrl:"https://go.microsoft.com/fwlink/?LinkID=533483#vscode",keyboardShortcutsUrlMac:"https://go.microsoft.com/fwlink/?linkid=832143",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",keyboardShortcutsUrlWin:"https://go.microsoft.com/fwlink/?linkid=832145",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",newsletterSignupUrl:"https://www.research.net/r/vsc-newsletter",youTubeUrl:"https://aka.ms/vscode-youtube",requestFeatureUrl:"https://go.microsoft.com/fwlink/?LinkID=533482",reportIssueUrl:"https://github.com/Microsoft/vscode/issues/new",reportMarketplaceIssueUrl:"https://github.com/microsoft/vsmarketplace/issues/new",licenseUrl:"https://go.microsoft.com/fwlink/?LinkID=533485",serverLicenseUrl:"https://aka.ms/vscode-server-license",privacyStatementUrl:"https://go.microsoft.com/fwlink/?LinkId=521839",showTelemetryOptOut:!0,npsSurveyUrl:"https://aka.ms/vscode-nps",checksumFailMoreInfoUrl:"https://go.microsoft.com/fwlink/?LinkId=828886",electronRepository:"Microsoft/vscode-electron-prebuilt",nodejsRepository:"Microsoft/vscode-node",settingsSearchUrl:"https://bingsettingssearch.trafficmanager.net/api/Search",surveys:[{surveyId:"cpp.1",surveyUrl:"https://www.research.net/r/VBVV6C6",languageId:"cpp",editCount:10,userProbability:.15},{surveyId:"java.2",surveyUrl:"https://www.research.net/r/vscodejava",languageId:"java",editCount:10,userProbability:.3},{surveyId:"javascript.1",surveyUrl:"https://www.research.net/r/vscode-js",languageId:"javascript",editCount:10,userProbability:.05},{surveyId:"typescript.1",surveyUrl:"https://www.research.net/r/vscode-ts",languageId:"typescript",editCount:10,userProbability:.05},{surveyId:"csharp.1",surveyUrl:"https://www.research.net/r/8KGJ9V8",languageId:"csharp",editCount:10,userProbability:.1}],extensionsEnabledWithApiProposalVersion:["GitHub.copilot-chat","ms-vscode.vscode-commander","ms-vscode.vscode-copilot-vision","GitHub.vscode-pull-request-github"],extensionEnabledApiProposals:{"mrleemurray.theme-2026":["css"],"ms-azuretools.vscode-containers":["authenticationChallenges"],"ms-azuretools.vscode-azureresourcegroups":["authenticationChallenges"],"ms-azuretools.vscode-azure-github-copilot":["authenticationChallenges"],"ms-azuretools.vscode-dev-azurecloudshell":["contribEditSessions","authenticationChallenges"],"ms-toolsai.vscode-ai":["authenticationChallenges"],"TeamsDevApp.vscode-ai-foundry":["authenticationChallenges"],"ms-vscode.vscode-selfhost-test-provider":["testObserver","testRelatedCode"],"VisualStudioExptTeam.vscodeintellicode-completions":["inlineCompletionsAdditions"],"ms-vsliveshare.vsliveshare":["contribMenuBarHome","contribShareMenu","contribStatusBarItems","diffCommand","documentFiltersExclusive","fileSearchProvider","findTextInFiles","notebookLiveShare","terminalDimensions","terminalDataWriteEvent","textSearchProvider"],"ms-vscode.js-debug":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-toolsai.vscode-ai-remote":["resolvers","authenticationChallenges"],"ms-python.python":["codeActionAI","contribEditorContentMenu","quickPickSortByLabel","portsAttributes","testObserver","quickPickItemTooltip","terminalDataWriteEvent","terminalExecuteCommandEvent","notebookReplDocument","notebookVariableProvider","terminalShellEnv"],"ms-python.vscode-python-envs":["terminalShellEnv","terminalDataWriteEvent","taskExecutionTerminal"],"ms-dotnettools.dotnet-interactive-vscode":["notebookMessaging"],"GitHub.codespaces":["contribEditSessions","contribMenuBarHome","contribRemoteHelp","contribViewsRemote","resolvers","tunnels","terminalDataWriteEvent","treeViewReveal","notebookKernelSource"],"ms-vscode.azure-repos":["extensionRuntime","fileSearchProvider","textSearchProvider"],"ms-vscode.remote-repositories":["canonicalUriProvider","contribEditSessions","contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","contribShareMenu","documentFiltersExclusive","editSessionIdentityProvider","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","shareProvider","scmActionButton","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-vscode-remote.remote-wsl":["resolvers","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode-remote.remote-ssh":["resolvers","tunnels","terminalDataWriteEvent","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode.remote-server":["resolvers","tunnels","contribViewsWelcome"],"ms-vscode.remote-explorer":["contribRemoteHelp","contribViewsRemote","extensionsAny"],"ms-vscode-remote.remote-containers":["contribEditSessions","resolvers","portsAttributes","tunnels","workspaceTrust","terminalDimensions","contribRemoteHelp","contribViewsRemote"],"ms-vscode.js-debug-nightly":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-vscode.lsif-browser":["documentFiltersExclusive"],"ms-vscode.vscode-speech":["speech"],"GitHub.vscode-pull-request-github":["activeComment","chatContextProvider","chatParticipantAdditions","chatParticipantPrivate","chatSessionsProvider","codiconDecoration","codeActionRanges","commentingRangeHint","commentReactor","commentReveal","commentsDraftState","commentThreadApplicability","contribAccessibilityHelpContent","contribCommentEditorActionsMenu","contribCommentPeekContext","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribEditorContentMenu","contribMultiDiffEditorMenus","contribShareMenu","diffCommand","languageModelToolResultAudience","markdownAlertSyntax","quickDiffProvider","remoteCodingAgents","shareProvider","tabInputMultiDiff","tabInputTextMerge","tokenInformation","treeItemMarkdownLabel","treeViewMarkdownMessage"],"GitHub.copilot":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-nightly":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-chat":["agentSessionsWorkspace","interactive","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","chatParticipantAdditions","defaultChatParticipant","embeddings","chatProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","codeActionAI","findTextInFiles","findTextInFiles2","textSearchProvider","textSearchProvider2","activeComment","commentReveal","contribSourceControlInputBoxMenu","contribCommentEditorActionsMenu","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","extensionAffinity","newSymbolNamesProvider","findFiles2","chatReferenceDiagnostic","extensionsAny","authLearnMore","testObserver","aiTextSearchProvider","documentFiltersExclusive","chatParticipantPrivate","contribDebugCreateConfiguration","inlineCompletionsAdditions","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelThinkingPart","languageModelToolSupportsModel","chatStatusItem","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","chatSessionsProvider","chatSessionCustomizationProvider","devDeviceId","contribEditorContentMenu","tokenInformation","toolInvocationApproveCombination","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","chatHooks","chatDebug","environmentPower","terminalTitle"],"GitHub.remotehub":["contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","documentFiltersExclusive","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-python.vscode-pylance":["terminalShellEnv","portsAttributes","codeActionAI"],"ms-python.debugpy":["contribViewsWelcome","debugVisualization","portsAttributes"],"ms-toolsai.jupyter-renderers":["contribNotebookStaticPreloads"],"ms-toolsai.jupyter":["notebookDeprecated","notebookMessaging","notebookMime","portsAttributes","quickPickSortByLabel","notebookKernelSource","interactiveWindow","notebookControllerAffinityHidden","contribNotebookStaticPreloads","quickPickItemTooltip","notebookExecution","notebookCellExecution","notebookVariableProvider","notebookReplDocument"],"donjayamanne.kusto":["notebookVariableProvider"],"ms-toolsai.tensorboard":["portsAttributes"],"dbaeumer.vscode-eslint":[],"ms-vscode.azure-sphere-tools-ui":["tunnels"],"ms-azuretools.vscode-azureappservice":["terminalDataWriteEvent"],"ms-vscode.anycode":["extensionsAny"],"ms-vscode.cpptools":["terminalDataWriteEvent","chatParticipantAdditions"],"vscjava.vscode-java-pack":[],"ms-dotnettools.csdevkit":["inlineCompletionsAdditions"],"ms-dotnettools.vscodeintellicode-csharp":["inlineCompletionsAdditions"],"ms-dotnettools.vscode-dotnet-modernize":["chatParticipantAdditions","chatPromptFiles"],"microsoft-IsvExpTools.powerplatform-vscode":["fileSearchProvider","textSearchProvider"],"microsoft-IsvExpTools.powerplatform-vscode-preview":["fileSearchProvider","textSearchProvider"],"TeamsDevApp.ms-teams-vscode-extension":["chatParticipantAdditions","languageModelSystem","mcpServerDefinitions"],"ms-toolsai.datawrangler":[],"ms-vscode.vscode-commander":[],"ms-vscode.vscode-websearchforcopilot":[],"ms-vscode.vscode-copilot-vision":["chatReferenceBinaryData","codeActionAI"],"ms-autodev.vscode-autodev":["chatParticipantAdditions"],"vscjava.migrate-java-to-azure":["chatParticipantAdditions","chatParticipantPrivate"],"vscjava.vscode-java-upgrade":["chatParticipantAdditions","chatParticipantPrivate"],"FoundryLocal.foundry-local-chat":["chatProvider"],"Microsoft.foundry-local-chat":["chatProvider"],"ms-wmcp.windows-mcp-server-extension":["mcpToolDefinitions"],"openai.chatgpt":["languageModelProxy","chatSessionsProvider"],"TypeScriptTeam.native-preview":["editorHoverVerbosityLevel","multiDocumentHighlightProvider"],"ms-vscode.vscode-eng-codereview":["chatContextProvider"],"ms-vscode.vscode-chat-customizations-evaluations":["chatSessionCustomizationProvider","contribEditorContentMenu"]},tasConfig:{endpoint:"https://default.exp-tas.com/vscode/ab",telemetryEventName:"query-expfeature",assignmentContextTelemetryPropertyName:"abexp.assignmentcontext"},extensionKind:{"Shan.code-settings-sync":["ui"],"shalldie.background":["ui"],"techer.open-in-browser":["ui"],"CoenraadS.bracket-pair-colorizer-2":["ui"],"CoenraadS.bracket-pair-colorizer":["ui","workspace"],"hiro-sun.vscode-emacs":["ui","workspace"],"hnw.vscode-auto-open-markdown-preview":["ui","workspace"],"wayou.vscode-todo-highlight":["ui","workspace"],"aaron-bond.better-comments":["ui","workspace"],"vscodevim.vim":["ui"],"ollyhayes.colmak-vim":["ui"]},extensionPointExtensionKind:{typescriptServerPlugins:["workspace"]},extensionSyncedKeys:{"ritwickdey.liveserver":["liveServer.setup.version"]},extensionVirtualWorkspacesSupport:{"esbenp.prettier-vscode":{default:!1},"msjsdiag.debugger-for-chrome":{default:!1},"redhat.java":{default:!1},"HookyQR.beautify":{default:!1},"ritwickdey.LiveServer":{default:!1},"VisualStudioExptTeam.vscodeintellicode":{default:!1},"octref.vetur":{default:!1},"formulahendry.code-runner":{default:!1},"xdebug.php-debug":{default:!1},"ms-mssql.mssql":{default:!1},"christian-kohler.path-intellisense":{default:!1},"eg2.tslint":{default:!1},"eg2.vscode-npm-script":{default:!1},"donjayamanne.githistory":{default:!1},"Zignd.html-css-class-completion":{default:!1},"christian-kohler.npm-intellisense":{default:!1},"EditorConfig.EditorConfig":{default:!1},"austin.code-gnu-global":{default:!1},"johnpapa.Angular2":{default:!1},"ms-vscode.vscode-typescript-tslint-plugin":{default:!1},"DotJoshJohnson.xml":{default:!1},"techer.open-in-browser":{default:!1},"tht13.python":{default:!1},"bmewburn.vscode-intelephense-client":{default:!1},"Angular.ng-template":{default:!1},"xdebug.php-pack":{default:!1},"dbaeumer.jshint":{default:!1},"yzhang.markdown-all-in-one":{default:!1},"Dart-Code.flutter":{default:!1},"streetsidesoftware.code-spell-checker":{default:!1},"rebornix.Ruby":{default:!1},"ms-vscode.sublime-keybindings":{default:!1},"mitaki28.vscode-clang":{default:!1},"steoates.autoimport":{default:!1},"donjayamanne.python-extension-pack":{default:!1},"shd101wyy.markdown-preview-enhanced":{default:!1},"mikestead.dotenv":{default:!1},"pranaygp.vscode-css-peek":{default:!1},"ikappas.phpcs":{default:!1},"platformio.platformio-ide":{default:!1},"jchannon.csharpextensions":{default:!1},"gruntfuggly.todo-tree":{default:!1}},linkProtectionTrustedDomains:["https://*.visualstudio.com","https://*.microsoft.com","https://aka.ms","https://*.gallerycdn.vsassets.io","https://*.github.com","https://login.microsoftonline.com","https://*.vscode.dev","https://*.github.dev","https://gh.io","https://portal.azure.com","https://raw.githubusercontent.com","https://private-user-images.githubusercontent.com","https://avatars.githubusercontent.com","https://auth.openai.com"],trustedExtensionAuthAccess:{github:["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],"github-enterprise":["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],microsoft:["github.copilot-chat","ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"microsoft-sovereign-cloud":["ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"__GitHub.copilot-chat":["ms-azuretools.vscode-azure-github-copilot","github.vscode-pull-request-github"]},trustedExtensionProtocolHandlers:["vscode.git","vscode.github-authentication","vscode.microsoft-authentication","github.vscode-pull-request-github"],authClientIdMetadataUrl:"https://vscode.dev/oauth/client-metadata.json",inheritAuthAccountPreference:{"github.copilot":["github.copilot-chat"]},auth:{loginUrl:"https://login.microsoftonline.com/common/oauth2/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/token",redirectUrl:"https://vscode-redirect.azurewebsites.net/",clientId:"aebc6443-996d-45c2-90f0-388ff96faa56"},"configurationSync.store":{url:"https://vscode-sync.trafficmanager.net/",stableUrl:"https://vscode-sync.trafficmanager.net/",insidersUrl:"https://vscode-sync-insiders.trafficmanager.net/",canSwitch:!1,authenticationProviders:{github:{scopes:["user:email"]},microsoft:{scopes:["openid","profile","email","offline_access"]}}},"editSessions.store":{url:"https://vscode-sync.trafficmanager.net/",authenticationProviders:{microsoft:{scopes:["openid","profile","email","offline_access"]},github:{scopes:["user:email"]}}},tunnelServerQualities:{stable:{serverApplicationName:"code-server"},exploration:{serverApplicationName:"code-server-exploration"},insider:{serverApplicationName:"code-server-insiders"}},tunnelApplicationName:"code-tunnel",tunnelApplicationConfig:{editorWebUrl:"https://vscode.dev",extension:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server"},authenticationProviders:{github:{scopes:["user:email","read:org"]},microsoft:{scopes:["46da2f7e-b5ef-422a-88d4-2a7f9de6a0b2/.default","profile","openid"]}}},win32TunnelServiceMutex:"vscode-tunnelservice",win32TunnelMutex:"vscode-tunnel",aiGeneratedWorkspaceTrust:{title:"This workspace was generated by GitHub Copilot",checkboxText:"Trust the contents of all files in this workspace",trustOption:"Yes, I trust the contents",dontTrustOption:"No, I don't trust the contents",startupTrustRequestLearnMore:"If you don't trust the contents of the files generated by GitHub Copilot, we recommend continuing in restricted mode. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more. "},defaultChatAgent:{providerExtensionId:"vscode.github-authentication",extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",manageSettingsUrl:"https://aka.ms/github-copilot-settings",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",manageOverageUrl:"https://aka.ms/github-copilot-manage-overage",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE.com"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},chatParticipantRegistry:"https://main.vscode-cdn.net/extensions/chat.json",remoteDefaultExtensionsIfInstalledLocally:["GitHub.copilot","GitHub.copilot-chat","GitHub.vscode-pull-request-github"],extensionConfigurationPolicy:{"github.copilot.nextEditSuggestions.enabled":{name:"CopilotNextEditSuggestions",minimumVersion:"1.99",category:"InteractiveSession",description:"Whether to enable next edit suggestions (NES). NES can propose a next edit based on your recent changes."},"github.copilot.chat.reviewSelection.enabled":{name:"CopilotReviewSelection",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables code review on current selection."},"github.copilot.chat.reviewAgent.enabled":{name:"CopilotReviewAgent",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables the code review agent."},"github.copilot.chat.claudeAgent.enabled":{name:"Claude3PIntegration",minimumVersion:"1.113",category:"InteractiveSession",description:"Enable Claude Agent sessions in VS Code. Start and resume agentic coding sessions powered by Anthropic Claude Agent SDK directly in the editor. Uses your existing Copilot subscription."}},win32ContextMenu:{x64:{clsid:"1C6DF0C0-192A-4451-BE36-6A59A86A692E"},arm64:{clsid:"F5EA5883-1DA8-4A05-864A-D5DE2D2B2854"}},chatSessionRecommendations:[{extensionId:"openai.chatgpt",extensionName:"Codex - OpenAI's coding agent",displayName:"Codex Agent",name:"codex",description:"Codex is OpenAI's coding agent that helps you write, review, and ship code faster.",postInstallCommand:"chatgpt.newCodexPanel"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Background Agent",name:"cli",description:"Delegate tasks to a background agent.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilotcli"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Cloud Agent",name:"cloud",description:"Delegate tasks to the GitHub Copilot Cloud Agent. The agent works asynchronously in the cloud to implement changes, iterates via chat, and can create or update pull requests as needed.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilot-cloud-agent"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],version:"1.118.0",commit:"9b8ae15a8cf95b9bce1b590b42954530f440e816",date:"2026-04-28T15:54:22-07:00"},Object.keys(tt).length===0&&Object.assign(tt,{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 zm=tt;function od(i){let t=[];typeof i=="number"&&t.push("code/timeOrigin",i);function e(o,s){t.push(o,s?.startTime??Date.now())}function n(){let o=[];for(let s=0;s<t.length;s+=2)o.push({name:t[s],startTime:t[s+1]});return o}function r(o){if(typeof o>"u"){let s=t.length>=2&&t[0]==="code/timeOrigin",a=s?t[1]:void 0;t.length=0,s&&t.push("code/timeOrigin",a)}else for(let s=t.length-2;s>=0;s-=2)t[s]===o&&t.splice(s,2)}return{mark:e,getMarks:n,clearMarks:r}}function q1(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?od():{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 od(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),od()}function H1(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=q1()),i.MonacoPerformanceMarks}var sd=H1(globalThis),Gm=sd.mark,K6=sd.clearMarks,z6=sd.getMarks;async function _a(i,t,e,n,r,o){let s;try{await j1(i,t,e,n,r,o)}catch(a){s=a}finally{s&&r.errorTransformer&&(s=r.errorTransformer(s)),typeof s<"u"&&e.error(s),e.end()}}async function j1(i,t,e,n,r,o){ad(o);let s=await i.open(t,{create:!1});try{ad(o);let a=0,l=0,c=r&&typeof r.length=="number"?r.length:void 0,p=w.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),u=r&&typeof r.position=="number"?r.position:0,f=0;do l=await i.read(s,u,p.buffer,f,p.byteLength-f),u+=l,f+=l,a+=l,typeof c=="number"&&(c-=l),f===p.byteLength&&(await e.write(n(p)),p=w.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),f=0);while(l>0&&(typeof c!="number"||c>0)&&ad(o)&&K1(a,r));if(f>0){let g=f;typeof c=="number"&&(g=Math.min(f,c)),e.write(n(p.slice(0,g)))}}catch(a){throw Kt(a)}finally{await i.close(s)}}function ad(i){if(i.isCancellationRequested)throw xo();return!0}function K1(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw Z(m(2219,null),"EntryTooLarge");return!0}var wn=class extends L{constructor(e){super();this.logService=e;this.BUFFER_SIZE=256*1024;this._onDidChangeFileSystemProviderRegistrations=this._register(new _);this.onDidChangeFileSystemProviderRegistrations=this._onDidChangeFileSystemProviderRegistrations.event;this._onWillActivateFileSystemProvider=this._register(new _);this.onWillActivateFileSystemProvider=this._onWillActivateFileSystemProvider.event;this._onDidChangeFileSystemProviderCapabilities=this._register(new _);this.onDidChangeFileSystemProviderCapabilities=this._onDidChangeFileSystemProviderCapabilities.event;this.provider=new Map;this._onDidRunOperation=this._register(new _);this.onDidRunOperation=this._onDidRunOperation.event;this.internalOnDidFilesChange=this._register(new _);this._onDidUncorrelatedFilesChange=this._register(new _);this.onDidFilesChange=this._onDidUncorrelatedFilesChange.event;this._onDidWatchError=this._register(new _);this.onDidWatchError=this._onDidWatchError.event;this.activeWatchers=new Map;this.writeQueue=this._register(new fr)}registerProvider(e,n){if(this.provider.has(e))throw new Error(`A filesystem provider for the scheme '${e}' is already registered.`);Gm(`code/registerFilesystem/${e}`);let r=new M;return this.provider.set(e,n),this._onDidChangeFileSystemProviderRegistrations.fire({added:!0,scheme:e,provider:n}),r.add(n.onDidChangeFile(o=>{let s=new hs(o,!this.isPathCaseSensitive(n));this.internalOnDidFilesChange.fire(s),s.hasCorrelation()||this._onDidUncorrelatedFilesChange.fire(s)})),typeof n.onDidWatchError=="function"&&r.add(n.onDidWatchError(o=>this._onDidWatchError.fire(new Error(o)))),r.add(n.onDidChangeCapabilities(()=>this._onDidChangeFileSystemProviderCapabilities.fire({provider:n,scheme:e}))),A(()=>{this._onDidChangeFileSystemProviderRegistrations.fire({added:!1,scheme:e,provider:n}),this.provider.delete(e),je(r)})}getProvider(e){return this.provider.get(e)}async activateProvider(e){let n=[];this._onWillActivateFileSystemProvider.fire({scheme:e,join(r){n.push(r)}}),!this.provider.has(e)&&await Nn.settled(n)}async canHandleResource(e){return await this.activateProvider(e.scheme),this.hasProvider(e)}hasProvider(e){return this.provider.has(e.scheme)}hasCapability(e,n){let r=this.provider.get(e.scheme);return!!(r&&r.capabilities&n)}listCapabilities(){return gi.map(this.provider,([e,n])=>({scheme:e,capabilities:n.capabilities}))}async withProvider(e){if(!Pu(e))throw new Pe(m(2208,null,this.resourceForError(e)),8);await this.activateProvider(e.scheme);let n=this.provider.get(e.scheme);if(!n){let r=new xt;throw r.message=m(2210,null,e.toString()),r}return n}async withReadProvider(e){let n=await this.withProvider(e);if(jt(n)||it(n)||bs(n))return n;throw new Error(`Filesystem provider for scheme '${e.scheme}' neither has FileReadWrite, FileReadStream nor FileOpenReadWriteClose capability which is needed for the read operation.`)}async withWriteProvider(e){let n=await this.withProvider(e);if(jt(n)||it(n))return n;throw new Error(`Filesystem provider for scheme '${e.scheme}' neither has FileReadWrite nor FileOpenReadWriteClose capability which is needed for the write operation.`)}async resolve(e,n){try{return await this.doResolveFile(e,n)}catch(r){throw Ct(r)==="EntryNotFound"?new Pe(m(2205,null,this.resourceForError(e)),1):Kt(r)}}async doResolveFile(e,n){let r=await this.withProvider(e),o=this.isPathCaseSensitive(r),s=n?.resolveTo,a=n?.resolveSingleChildDescendants,l=n?.resolveMetadata,c=await r.stat(e),p;return this.toFileStat(r,e,c,void 0,!!l,(u,f)=>(p||(p=un.forUris(()=>!o),p.set(e,!0),s&&p.fill(!0,s)),p.get(u.resource)||p.findSuperstr(u.resource.with({query:null,fragment:null}))?!0:u.isDirectory&&a?f===1:!1))}async toFileStat(e,n,r,o,s,a){let{providerExtUri:l}=this.getExtUri(e),c={resource:n,name:l.basename(n),isFile:(r.type&1)!==0,isDirectory:(r.type&2)!==0,isSymbolicLink:(r.type&64)!==0,mtime:r.mtime,ctime:r.ctime,size:r.size,readonly:!!((r.permissions??0)&1)||!!(e.capabilities&2048),locked:!!((r.permissions??0)&2),executable:!!((r.permissions??0)&4),etag:Xl({mtime:r.mtime,size:r.size}),children:void 0};if(c.isDirectory&&a(c,o)){try{let p=await e.readdir(n),u=await Nn.settled(p.map(async([f,g])=>{try{let b=l.joinPath(n,f),v=s?await e.stat(b):{type:g};return await this.toFileStat(e,b,v,p.length,s,a)}catch(b){return this.logService.trace(b),null}}));c.children=wo(u)}catch(p){this.logService.trace(p),c.children=[]}return c}return c}async resolveAll(e){return Nn.settled(e.map(async n=>{try{return{stat:await this.doResolveFile(n.resource,n.options),success:!0}}catch(r){return this.logService.trace(r),{stat:void 0,success:!1}}}))}async stat(e){let n=await this.withProvider(e),r=await n.stat(e);return this.toFileStat(n,e,r,void 0,!0,()=>!1)}async realpath(e){let n=await this.withProvider(e);if(Op(n)){let r=await n.realpath(e);return e.with({path:r})}}async exists(e){let n=await this.withProvider(e);try{return!!await n.stat(e)}catch{return!1}}async canCreateFile(e,n){try{await this.doValidateCreateFile(e,n)}catch(r){return r}return!0}async doValidateCreateFile(e,n){if(!n?.overwrite&&await this.exists(e))throw new Pe(m(2201,null,this.resourceForError(e)),3,n)}async createFile(e,n=w.fromString(""),r){await this.doValidateCreateFile(e,r);let o=await this.writeFile(e,n);return this._onDidRunOperation.fire(new qt(e,0,o)),o}async writeFile(e,n,r){let o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e),{providerExtUri:s}=this.getExtUri(o),a=r;if(Ql(o)&&!a?.atomic){let l=o.enforceAtomicWriteFile?.(e);l&&(a={...r,atomic:l})}try{let{stat:l,buffer:c}=await this.validateWriteFile(o,e,n,a);l||await this.mkdirp(o,s.dirname(e)),c||(c=await this.peekBufferForWriting(o,n)),!jt(o)||it(o)&&c instanceof w||it(o)&&Ql(o)&&a?.atomic?await this.doWriteUnbuffered(o,e,a,c):await this.doWriteBuffered(o,e,a,c instanceof w?qu(c):c),this._onDidRunOperation.fire(new qt(e,4))}catch(l){throw new Pe(m(2200,null,this.resourceForError(e),Kt(l).toString()),Yl(l),a)}return this.resolve(e,{resolveMetadata:!0})}async peekBufferForWriting(e,n){let r;if(it(e)&&!(n instanceof w))if(Ri(n)){let o=await Mu(n,3);o.ended?r=w.concat(o.buffer):r=o}else r=Nu(n,o=>w.concat(o),3);else r=n;return r}async validateWriteFile(e,n,r,o){let s=!!o?.unlock;if(s&&!(e.capabilities&8192))throw new Error(m(2218,null,this.resourceForError(n)));if(o?.append&&!kp(e))throw new Pe(m(2197,null,this.resourceForError(n)),6);if(!!o?.atomic){if(!(e.capabilities&32768))throw new Error(m(2216,null,this.resourceForError(n)));if(!(e.capabilities&2))throw new Error(m(2217,null,this.resourceForError(n)));if(s)throw new Error(m(2215,null,this.resourceForError(n)))}let l;try{l=await e.stat(n)}catch{return Object.create(null)}if((l.type&2)!==0)throw new Pe(m(2203,null,this.resourceForError(n)),0,o);this.throwIfFileIsReadonly(n,l);let c;if(typeof o?.mtime=="number"&&typeof o.etag=="string"&&o.etag!==Is&&typeof l.mtime=="number"&&typeof l.size=="number"&&o.mtime<l.mtime&&o.etag!==Xl({mtime:o.mtime,size:l.size})){if(c=await this.peekBufferForWriting(e,r),c instanceof w&&c.byteLength===l.size)try{let{value:p}=await this.readFile(n,{limits:{size:l.size}});if(c.equals(p))return{stat:l,buffer:c}}catch{}throw new Pe(m(2204,null),3,o)}return{stat:l,buffer:c}}async readFile(e,n,r){let o=await this.withReadProvider(e);return n?.atomic?this.doReadFileAtomic(o,e,n,r):this.doReadFile(o,e,n,r)}async doReadFileAtomic(e,n,r,o){return new Promise((s,a)=>{this.writeQueue.queueFor(n,async()=>{try{let l=await this.doReadFile(e,n,r,o);s(l)}catch(l){a(l)}},this.getExtUri(e).providerExtUri)})}async doReadFile(e,n,r,o){let s=await this.doReadFileStream(e,n,{...r,preferUnbuffered:!0},o);return{...s,value:await Pi(s.value)}}async readFileStream(e,n,r){let o=await this.withReadProvider(e);return this.doReadFileStream(o,e,n,r)}async doReadFileStream(e,n,r,o){let s=new Re(o),a=r;ys(e)&&e.enforceAtomicReadFile?.(n)&&(a={...r,atomic:!0});let l=this.validateReadFile(n,a).then(p=>p,p=>{throw s.dispose(!0),p}),c;try{return typeof a?.etag=="string"&&a.etag!==Is&&await l,a?.atomic&&ys(e)||!(jt(e)||bs(e))||it(e)&&a?.preferUnbuffered?c=this.readFileUnbuffered(e,n,a):bs(e)?c=this.readFileStreamed(e,n,s.token,a):c=this.readFileBuffered(e,n,s.token,a),c.on("end",()=>s.dispose()),c.on("error",()=>s.dispose()),{...await l,value:c}}catch(p){throw c&&await Qo(c),this.restoreReadError(p,n,a)}}restoreReadError(e,n,r){let o=m(2198,null,this.resourceForError(n),Kt(e).toString());return e instanceof Or?new Or(o,e.stat,r):e instanceof Dr?new Dr(o,e.fileOperationResult,e.size,e.options):new Pe(o,Yl(e),r)}readFileStreamed(e,n,r,o=Object.create(null)){let s=e.readFileStream(n,o,r);return wl(s,{data:a=>a instanceof w?a:w.wrap(a),error:a=>this.restoreReadError(a,n,o)},a=>w.concat(a))}readFileBuffered(e,n,r,o=Object.create(null)){let s=ju();return _a(e,n,s,a=>a,{...o,bufferSize:this.BUFFER_SIZE,errorTransformer:a=>this.restoreReadError(a,n,o)},r),s}readFileUnbuffered(e,n,r){let o=Mt(s=>w.concat(s));return(async()=>{try{let s;r?.atomic&&ys(e)?s=await e.readFile(n,{atomic:!0}):s=await e.readFile(n),typeof r?.position=="number"&&(s=s.slice(r.position)),typeof r?.length=="number"&&(s=s.slice(0,r.length)),this.validateReadFileLimits(n,s.byteLength,r),o.end(w.wrap(s))}catch(s){o.error(s),o.end()}})(),o}async validateReadFile(e,n){let r=await this.resolve(e,{resolveMetadata:!0});if(r.isDirectory)throw new Pe(m(2202,null,this.resourceForError(e)),0,n);if(typeof n?.etag=="string"&&n.etag!==Is&&n.etag===r.etag)throw new Or(m(2206,null),r,n);return this.validateReadFileLimits(e,r.size,n),r}validateReadFileLimits(e,n,r){if(typeof r?.limits?.size=="number"&&n>r.limits.size)throw new Dr(m(2207,null,this.resourceForError(e)),7,n,r)}async canMove(e,n,r){return this.doCanMoveCopy(e,n,"move",r)}async canCopy(e,n,r){return this.doCanMoveCopy(e,n,"copy",r)}async doCanMoveCopy(e,n,r,o){if(e.toString()!==n.toString())try{let s=r==="move"?this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e):await this.withReadProvider(e),a=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n);await this.doValidateMoveCopy(s,e,a,n,r,o)}catch(s){return s}return!0}async move(e,n,r){let o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(e),e),s=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n),a=await this.doMoveCopy(o,e,s,n,"move",!!r),l=await this.resolve(n,{resolveMetadata:!0});return this._onDidRunOperation.fire(new qt(e,a==="move"?2:3,l)),l}async copy(e,n,r){let o=await this.withReadProvider(e),s=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n),a=await this.doMoveCopy(o,e,s,n,"copy",!!r),l=await this.resolve(n,{resolveMetadata:!0});return this._onDidRunOperation.fire(new qt(e,a==="copy"?3:2,l)),l}async doMoveCopy(e,n,r,o,s,a){if(n.toString()===o.toString())return s;let{exists:l,isSameResourceWithDifferentPathCase:c}=await this.doValidateMoveCopy(e,n,r,o,s,a);if(l&&!c&&a&&await this.del(o,{recursive:!0}),await this.mkdirp(r,this.getExtUri(r).providerExtUri.dirname(o)),s==="copy"){if(e===r&&Jl(e))await e.copy(n,o,{overwrite:a});else{let p=await this.resolve(n);p.isDirectory?await this.doCopyFolder(e,p,r,o):await this.doCopyFile(e,n,r,o)}return s}else return e===r?(await e.rename(n,o,{overwrite:a}),s):(await this.doMoveCopy(e,n,r,o,"copy",a),await this.del(n,{recursive:!0}),"copy")}async doCopyFile(e,n,r,o){if(jt(e)&&jt(r))return this.doPipeBuffered(e,n,r,o);if(jt(e)&&it(r))return this.doPipeBufferedToUnbuffered(e,n,r,o);if(it(e)&&jt(r))return this.doPipeUnbufferedToBuffered(e,n,r,o);if(it(e)&&it(r))return this.doPipeUnbuffered(e,n,r,o)}async doCopyFolder(e,n,r,o){await r.mkdir(o),Array.isArray(n.children)&&await Nn.settled(n.children.map(async s=>{let a=this.getExtUri(r).providerExtUri.joinPath(o,s.name);return s.isDirectory?this.doCopyFolder(e,await this.resolve(s.resource),r,a):this.doCopyFile(e,s.resource,r,a)}))}async doValidateMoveCopy(e,n,r,o,s,a){let l=!1;if(e===r){let{providerExtUri:p,isPathCaseSensitive:u}=this.getExtUri(e);if(u||(l=p.isEqual(n,o)),l&&s==="copy")throw new Error(m(2211,null,this.resourceForError(n),this.resourceForError(o)));if(!l&&p.isEqualOrParent(o,n))throw new Error(m(2212,null,this.resourceForError(n),this.resourceForError(o)))}let c=await this.exists(o);if(c&&!l){if(!a)throw new Pe(m(2213,null,this.resourceForError(n),this.resourceForError(o)),4);if(e===r){let{providerExtUri:p}=this.getExtUri(e);if(p.isEqualOrParent(n,o))throw new Error(m(2214,null,this.resourceForError(n),this.resourceForError(o)))}}return{exists:c,isSameResourceWithDifferentPathCase:l}}getExtUri(e){let n=this.isPathCaseSensitive(e);return{providerExtUri:n?G:bl,isPathCaseSensitive:n}}isPathCaseSensitive(e){return!!(e.capabilities&1024)}async createFolder(e){let n=this.throwIfFileSystemIsReadonly(await this.withProvider(e),e);await this.mkdirp(n,e);let r=await this.resolve(e,{resolveMetadata:!0});return this._onDidRunOperation.fire(new qt(e,0,r)),r}async mkdirp(e,n){let r=[],{providerExtUri:o}=this.getExtUri(e);for(;!o.isEqual(n,o.dirname(n));)try{if(((await e.stat(n)).type&2)===0)throw new Error(m(2209,null,this.resourceForError(n)));break}catch(s){if(Ct(s)!=="EntryNotFound")throw s;r.push(o.basename(n)),n=o.dirname(n)}for(let s=r.length-1;s>=0;s--){n=o.joinPath(n,r[s]);try{await e.mkdir(n)}catch(a){if(Ct(a)!=="EntryExists")throw a}}}async canDelete(e,n){try{await this.doValidateDelete(e,n)}catch(r){return r}return!0}async doValidateDelete(e,n){let r=this.throwIfFileSystemIsReadonly(await this.withProvider(e),e),o=!!n?.useTrash;if(o&&!(r.capabilities&4096))throw new Error(m(2196,null,this.resourceForError(e)));let s=n?.atomic;if(s&&!(r.capabilities&65536))throw new Error(m(2192,null,this.resourceForError(e)));if(o&&s)throw new Error(m(2195,null,this.resourceForError(e)));let a;try{a=await r.stat(e)}catch{}if(a)this.throwIfFileIsReadonly(e,a);else throw new Pe(m(2194,null,this.resourceForError(e)),1);if(!!!n?.recursive){let c=await this.resolve(e);if(c.isDirectory&&Array.isArray(c.children)&&c.children.length>0)throw new Error(m(2193,null,this.resourceForError(e)))}return r}async del(e,n){let r=await this.doValidateDelete(e,n),o=n;if(Lp(r)&&!o?.atomic){let c=r.enforceAtomicDelete?.(e);c&&(o={...n,atomic:c})}let s=!!o?.useTrash,a=!!o?.recursive,l=o?.atomic??!1;await r.delete(e,{recursive:a,useTrash:s,atomic:l}),this._onDidRunOperation.fire(new qt(e,1))}async cloneFile(e,n){let r=await this.withProvider(e),o=this.throwIfFileSystemIsReadonly(await this.withWriteProvider(n),n);if(!(r===o&&this.getExtUri(r).providerExtUri.isEqual(e,n)))return r===o&&Dp(r)?r.cloneFile(e,n):(await this.mkdirp(o,this.getExtUri(o).providerExtUri.dirname(n)),r===o&&Jl(r)?this.writeQueue.queueFor(e,()=>r.copy(e,n,{overwrite:!0}),this.getExtUri(r).providerExtUri):this.writeQueue.queueFor(e,()=>this.doCopyFile(r,e,o,n),this.getExtUri(r).providerExtUri))}static{this.WATCHER_CORRELATION_IDS=0}createWatcher(e,n){return this.watch(e,{...n,correlationId:wn.WATCHER_CORRELATION_IDS++})}watch(e,n={recursive:!1,excludes:[]}){let r=new M,o=!1,s=()=>{o=!0};r.add(A(()=>s())),(async()=>{try{let l=await this.doWatch(e,n);o?je(l):s=()=>je(l)}catch(l){this.logService.error(l)}})();let a=n.correlationId;if(typeof a=="number"){let l=r.add(new _);return r.add(this.internalOnDidFilesChange.event(p=>{p.correlates(a)&&l.fire(p)})),{onDidChange:l.event,dispose:()=>r.dispose()}}return r}async doWatch(e,n){let r=await this.withProvider(e),o=fn([this.getExtUri(r).providerExtUri.getComparisonKey(e),n]),s=this.activeWatchers.get(o);return s||(s={count:0,disposable:r.watch(e,n)},this.activeWatchers.set(o,s)),s.count+=1,A(()=>{s&&(s.count--,s.count===0&&(je(s.disposable),this.activeWatchers.delete(o)))})}dispose(){super.dispose();for(let[,e]of this.activeWatchers)je(e.disposable);this.activeWatchers.clear()}async doWriteBuffered(e,n,r,o){return this.writeQueue.queueFor(n,async()=>{let s=await e.open(n,{create:!0,unlock:r?.unlock??!1,append:r?.append??!1});try{Ri(o)||Jo(o)?await this.doWriteStreamBufferedQueued(e,s,o):await this.doWriteReadableBufferedQueued(e,s,o)}catch(a){throw Kt(a)}finally{await e.close(s)}},this.getExtUri(e).providerExtUri)}async doWriteStreamBufferedQueued(e,n,r){let o=0,s;if(Jo(r)){if(r.buffer.length>0){let a=w.concat(r.buffer);await this.doWriteBuffer(e,n,a,a.byteLength,o,0),o+=a.byteLength}if(r.ended)return;s=r.stream}else s=r;return new Promise((a,l)=>{Yo(s,{onData:async c=>{s.pause();try{await this.doWriteBuffer(e,n,c,c.byteLength,o,0)}catch(p){return l(p)}o+=c.byteLength,setTimeout(()=>s.resume())},onError:c=>l(c),onEnd:()=>a()})})}async doWriteReadableBufferedQueued(e,n,r){let o=0,s;for(;(s=r.read())!==null;)await this.doWriteBuffer(e,n,s,s.byteLength,o,0),o+=s.byteLength}async doWriteBuffer(e,n,r,o,s,a){let l=0;for(;l<o;){let c=await e.write(n,s+l,r.buffer,a+l,o-l);l+=c}}async doWriteUnbuffered(e,n,r,o){return this.writeQueue.queueFor(n,()=>this.doWriteUnbufferedQueued(e,n,r,o),this.getExtUri(e).providerExtUri)}async doWriteUnbufferedQueued(e,n,r,o){let s;o instanceof w?s=o:Ri(o)?s=await Pi(o):Jo(o)?s=await Hu(o):s=$u(o),await e.writeFile(n,s.buffer,{create:!0,overwrite:!0,unlock:r?.unlock??!1,atomic:r?.atomic??!1,append:r?.append??!1})}async doPipeBuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeBufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeBufferedQueued(e,n,r,o){let s,a;try{s=await e.open(n,{create:!1}),a=await r.open(o,{create:!0,unlock:!1});let l=w.alloc(this.BUFFER_SIZE),c=0,p=0,u=0;do u=await e.read(s,c,l.buffer,p,l.byteLength-p),await this.doWriteBuffer(r,a,l,u,c,p),c+=u,p+=u,p===l.byteLength&&(p=0);while(u>0)}catch(l){throw Kt(l)}finally{await Nn.settled([typeof s=="number"?e.close(s):Promise.resolve(),typeof a=="number"?r.close(a):Promise.resolve()])}}async doPipeUnbuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeUnbufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeUnbufferedQueued(e,n,r,o){return r.writeFile(o,await e.readFile(n),{create:!0,overwrite:!0,unlock:!1,atomic:!1})}async doPipeUnbufferedToBuffered(e,n,r,o){return this.writeQueue.queueFor(o,()=>this.doPipeUnbufferedToBufferedQueued(e,n,r,o),this.getExtUri(r).providerExtUri)}async doPipeUnbufferedToBufferedQueued(e,n,r,o){let s=await r.open(o,{create:!0,unlock:!1});try{let a=await e.readFile(n);await this.doWriteBuffer(r,s,w.wrap(a),a.byteLength,0,0)}catch(a){throw Kt(a)}finally{await r.close(s)}}async doPipeBufferedToUnbuffered(e,n,r,o){let s=await Pi(this.readFileBuffered(e,n,nt.None));await this.doWriteUnbuffered(r,o,void 0,s)}throwIfFileSystemIsReadonly(e,n){if(e.capabilities&2048)throw new Pe(m(2199,null,this.resourceForError(n)),6);return e}throwIfFileIsReadonly(e,n){if((n.permissions??0)&1)throw new Pe(m(2199,null,this.resourceForError(e)),6)}resourceForError(e){return e.scheme===ne.file?e.fsPath:e.toString(!0)}};wn=R([U(0,te)],wn);import{constants as ud,promises as Zn}from"fs";function Ea(i){return typeof i.correlationId=="number"}function Qm(i){return i.recursive===!0}var wa=class i extends L{constructor(e,n,r,o){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=r;this.options=o;this.watcherDisposables=this._register(new Xt);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new M;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()}},Ca=class extends wa{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},Ra=class extends wa{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function cd(i){return i.map(t=>({type:t.type,resource:h.revive(t.resource),cId:t.cId}))}function Ym(i){let t=new ld;for(let e of i)t.processEvent(e);return t.coalesce()}function z1(i,t){return typeof t=="string"&&!t.startsWith(Hr)&&!cr(t)?{base:i,pattern:t}:t}function dd(i,t,e){let n=[];for(let r of t)n.push(gc(z1(i,r),{ignoreCase:e}));return n}var ld=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return ge?t.resource.fsPath:t.resource.fsPath.toLowerCase()}processEvent(t){let e=this.mapPathToChange.get(this.toKey(t)),n=!1;if(e){let r=e.type,o=t.type;e.resource.fsPath!==t.resource.fsPath&&(t.type===2||t.type===1)?n=!0:r===1&&o===2?(this.mapPathToChange.delete(this.toKey(t)),this.coalesced.delete(e)):r===2&&o===1?e.type=0:r===1&&o===0||(e.type=o)}else n=!0;n&&(this.coalesced.add(t),this.mapPathToChange.set(this.toKey(t),t))}coalesce(){let t=[],e=[];return Array.from(this.coalesced).filter(n=>n.type!==2?(t.push(n),!1):!0).sort((n,r)=>n.resource.fsPath.length-r.resource.fsPath.length).filter(n=>e.some(r=>Fp(n.resource.fsPath,r,!ge))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function Xm(i,t){if(typeof t=="number")switch(i.type){case 1:return(t&4)===0;case 2:return(t&8)===0;case 0:return(t&2)===0}return!1}function Zm(i){if(typeof i=="number"){let t=[];return i&4&&t.push("Added"),i&8&&t.push("Deleted"),i&2&&t.push("Updated"),t.length===0?"<all>":`[${t.join(", ")}]`}return"<none>"}var Pa=class extends L{constructor(e,n){super();this.logService=e;this.options=n;this._onDidChangeFile=this._register(new _);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidWatchError=this._register(new _);this.onDidWatchError=this._onDidWatchError.event;this.universalWatchRequests=[];this.universalWatchRequestDelayer=this._register(new Un(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new Un(this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)))}watch(e,n){return n.recursive||this.options?.watcher?.forceUniversal?this.watchUniversal(e,n):this.watchNonRecursive(e,n)}getRefreshWatchersDelay(e){return e>200?500:0}watchUniversal(e,n){let r=this.toWatchRequest(e,n),o=Ba(this.universalWatchRequests,r);return this.refreshUniversalWatchers(),A(()=>{o(),this.refreshUniversalWatchers()})}toWatchRequest(e,n){let r={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:n.recursive,filter:n.filter,correlationId:n.correlationId};if(Qm(r)){let o=this.options?.watcher?.recursive?.usePolling;o===!0?r.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3:Array.isArray(o)&&o.includes(r.path)&&(r.pollingInterval=this.options?.watcher?.recursive?.pollingInterval??5e3)}return r}refreshUniversalWatchers(){this.universalWatchRequestDelayer.trigger(()=>this.doRefreshUniversalWatchers(),this.getRefreshWatchersDelay(this.universalWatchRequests.length)).catch(e=>ve(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire(cd(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.universalWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.universalWatcher.watch(this.universalWatchRequests)}watchNonRecursive(e,n){let r={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:!1,filter:n.filter,correlationId:n.correlationId},o=Ba(this.nonRecursiveWatchRequests,r);return this.refreshNonRecursiveWatchers(),A(()=>{o(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>ve(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire(cd(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.nonRecursiveWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.nonRecursiveWatcher.watch(this.nonRecursiveWatchRequests)}onWatcherLogMessage(e){e.type==="error"&&this._onDidWatchError.fire(e.message),this.logWatcherMessage(e)}logWatcherMessage(e){this.logService[e.type](e.message)}toFilePath(e){return ct(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return vu(n)}};var Aa=class extends Ra{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new is(et.asFileUri("bootstrap-fork").fsPath,{serverName:"File Watcher",args:["--type=fileWatcher"],env:{VSCODE_ESM_ENTRYPOINT:"vs/platform/files/node/watcher/watcherMain",VSCODE_PIPE_LOGGING:"true",VSCODE_VERBOSE_LOGGING:"true"}}));return t.add(e.onDidProcessExit(({code:n,signal:r})=>this.onError(`terminated by itself with code ${n}, signal: ${r} (ETERM)`))),xr.toService(zu(e.getChannel("watcher")))}};import{watchFile as G1,unwatchFile as J1}from"fs";var ka=class extends L{constructor(){super();this._onDidChangeFile=this._register(new _);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidLogMessage=this._register(new _);this.onDidLogMessage=this._onDidLogMessage.event;this._onDidWatchFail=this._register(new _);this.onDidWatchFail=this._onDidWatchFail.event;this.correlatedWatchRequests=new Map;this.nonCorrelatedWatchRequests=new Map;this.suspendedWatchRequests=this._register(new lt);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new Un(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new $e;this.verboseLogging=!1;this._register(this.onDidWatchFail(e=>this.suspendWatchRequest({id:this.computeId(e),correlationId:this.isCorrelated(e)?e.correlationId:void 0,path:e.path})))}isCorrelated(e){return Ea(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:fn(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new $e;try{this.correlatedWatchRequests.clear(),this.nonCorrelatedWatchRequests.clear();for(let n of e)this.isCorrelated(n)?this.correlatedWatchRequests.set(n.correlationId,n):this.nonCorrelatedWatchRequests.set(this.computeId(n),n);for(let[n]of this.suspendedWatchRequests)!this.nonCorrelatedWatchRequests.has(n)&&!this.correlatedWatchRequests.has(n)&&(this.suspendedWatchRequests.deleteAndDispose(n),this.suspendedWatchRequestsWithPolling.delete(n));return await this.updateWatchers(!1)}finally{this.joinWatch.complete()}}updateWatchers(e){let n=[];for(let[r,o]of[...this.nonCorrelatedWatchRequests,...this.correlatedWatchRequests])this.suspendedWatchRequests.has(r)||n.push(o);return this.updateWatchersDelayer.trigger(()=>this.doWatch(n),e?this.getUpdateWatchersDelay():0).catch(r=>ve(r))}getUpdateWatchersDelay(){return 800}isSuspended(e){let n=this.computeId(e);return this.suspendedWatchRequestsWithPolling.has(n)?"polling":this.suspendedWatchRequests.has(n)}async suspendWatchRequest(e){if(this.suspendedWatchRequests.has(e.id))return;let n=new M;this.suspendedWatchRequests.set(e.id,n),await this.joinWatch.p,!n.isDisposed&&(this.monitorSuspendedWatchRequest(e,n),this.updateWatchers(!0))}resumeWatchRequest(e){this.suspendedWatchRequests.deleteAndDispose(e.id),this.suspendedWatchRequestsWithPolling.delete(e.id),this.updateWatchers(!1)}monitorSuspendedWatchRequest(e,n){this.doMonitorWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher to monitor ${e.path}`),this.suspendedWatchRequestsWithPolling.delete(e.id)):(this.doMonitorWithNodeJS(e,n),this.suspendedWatchRequestsWithPolling.add(e.id))}doMonitorWithExistingWatcher(e,n){let r=this.recursiveWatcher?.subscribe(e.path,(o,s)=>{n.isDisposed||(o?this.monitorSuspendedWatchRequest(e,n):s?.type===1&&this.onMonitoredPathAdded(e))});return r?(n.add(r),!0):!1}doMonitorWithNodeJS(e,n){let r=!1,o=(s,a)=>{if(n.isDisposed)return;let l=this.isPathNotFound(s),c=this.isPathNotFound(a),p=r;r=l,!l&&(c||p)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{G1(e.path,{persistent:!1,interval:this.suspendedWatchRequestPollingInterval},o)}catch(s){this.warn(`fs.watchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}n.add(A(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{J1(e.path,o)}catch(s){this.warn(`fs.unwatchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}}))}onMonitoredPathAdded(e){this.trace(`detected ${e.path} exists again, resuming watcher (correlationId: ${e.correlationId})`);let n={resource:h.file(e.path),type:1,cId:e.correlationId};this._onDidChangeFile.fire([n]),this.traceEvent(n,e),this.resumeWatchRequest(e)}isPathNotFound(e){return e.ctimeMs===0&&e.ino===0}async stop(){this.suspendedWatchRequests.clearAndDisposeAll(),this.suspendedWatchRequestsWithPolling.clear()}traceEvent(e,n){if(this.verboseLogging){let r=` >> normalized ${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`;this.traceWithCorrelation(r,n)}}traceWithCorrelation(e,n){this.verboseLogging&&this.trace(`${e}${typeof n.correlationId=="number"?` <${n.correlationId}> `:""}`)}requestToString(e){return`${e.path} (excludes: ${e.excludes.length>0?e.excludes:"<none>"}, includes: ${e.includes&&e.includes.length>0?JSON.stringify(e.includes):"<all>"}, filter: ${Zm(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as Q1,promises as Y1}from"fs";var Da=class i extends L{constructor(e,n,r,o,s,a){super();this.request=e;this.recursiveWatcher=n;this.onDidFilesChange=r;this.onDidWatchFail=o;this.onLogMessage=s;this.verboseLogging=a;this.throttledFileChangesEmitter=this._register(new gr({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new Ko(e=>this.handleFileChanges(e),i.FILE_CHANGES_HANDLER_DELAY));this.cts=new Re;this.realPath=new Ge(async()=>{let e=this.request.path;try{e=await ce.realpath(this.request.path),this.request.path!==e&&this.trace(`correcting a path to watch that seems to be a symbolic link (original: ${this.request.path}, real: ${e})`)}catch{}return e});this._isReusingRecursiveWatcher=!1;this.didFail=!1;let l=!ge;this.excludes=dd(this.request.path,this.request.excludes,l),this.includes=this.request.includes?dd(this.request.path,this.request.includes,l):void 0,this.filter=Ea(this.request)?this.request.filter:void 0,this.ready=this.watch()}static{this.FILE_DELETE_HANDLER_DELAY=100}static{this.FILE_CHANGES_HANDLER_DELAY=75}get isReusingRecursiveWatcher(){return this._isReusingRecursiveWatcher}get failed(){return this.didFail}async watch(){try{let e=await Y1.stat(this.request.path);if(this.cts.token.isCancellationRequested)return;this._register(await this.doWatch(e.isDirectory()))}catch(e){e.code!=="ENOENT"?this.error(e):this.trace(`ignoring a path for watching who's stat info failed to resolve: ${this.request.path} (error: ${e})`),this.notifyWatchFailed()}}notifyWatchFailed(){this.didFail=!0,this.onDidWatchFail?.()}async doWatch(e){let n=new M;return this.doWatchWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher for ${this.request.path}`),this._isReusingRecursiveWatcher=!0):(this._isReusingRecursiveWatcher=!1,await this.doWatchWithNodeJS(e,n)),n}doWatchWithExistingWatcher(e,n){if(e)return!1;let r=h.file(this.request.path),o=this.recursiveWatcher?.subscribe(this.request.path,async(s,a)=>{n.isDisposed||(s?await Nd(this.doWatch(e),n):a&&(typeof a.cId=="number"||typeof this.request.correlationId=="number")&&this.onFileChange({resource:r,type:a.type,cId:this.request.correlationId},!0))});return o?(n.add(o),!0):!1}async doWatchWithNodeJS(e,n){let r=await this.realPath.value;if(this.cts.token.isCancellationRequested)return;if(Le&&Ft(r,"/Volumes/",!0)){this.error(`Refusing to watch ${r} for changes using fs.watch() for possibly being a network share where watching is unreliable and unstable.`);return}let o=new Re(this.cts.token);n.add(A(()=>o.dispose(!0)));let s=new M;n.add(s);try{let a=h.file(this.request.path),l=he(r),c=Q1(r);s.add(A(()=>{c.removeAllListeners(),c.close()})),this.trace(`Started watching: '${r}'`);let p=new Set;if(e)try{for(let f of await ce.readdir(r))p.add(f)}catch(f){this.error(f)}if(o.token.isCancellationRequested)return;let u=new Map;s.add(A(()=>{for(let[,f]of u)f.dispose();u.clear()})),c.on("error",(f,g)=>{o.token.isCancellationRequested||(this.error(`Failed to watch ${r} for changes using fs.watch() (${f}, ${g})`),this.notifyWatchFailed())}),c.on("change",(f,g)=>{if(o.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${f}"] ${g}`);let b="";if(g&&(b=g.toString(),Le&&(b=Li(b))),!(!b||f!=="change"&&f!=="rename"))if(e)if(f==="rename"){u.get(b)?.dispose();let v=setTimeout(async()=>{if(u.delete(b),pr(b,l,!ge)&&!await ce.exists(r)){this.onWatchedPathDeleted(a);return}if(o.token.isCancellationRequested)return;let y=await this.existsChildStrictCase(W(r,b));if(o.token.isCancellationRequested)return;let S;y?p.has(b)?S=0:(S=1,p.add(b)):(p.delete(b),S=2),this.onFileChange({resource:re(a,b),type:S,cId:this.request.correlationId})},i.FILE_DELETE_HANDLER_DELAY);u.set(b,A(()=>clearTimeout(v)))}else{let v;p.has(b)?v=0:(v=1,p.add(b)),this.onFileChange({resource:re(a,b),type:v,cId:this.request.correlationId})}else if(f==="rename"||!pr(b,l,!ge)){let v=setTimeout(async()=>{let y=await ce.exists(r);o.token.isCancellationRequested||(y?(this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0),s.add(await this.doWatch(!1))):this.onWatchedPathDeleted(a))},i.FILE_DELETE_HANDLER_DELAY);s.clear(),s.add(A(()=>clearTimeout(v)))}else this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0)})}catch(a){if(o.token.isCancellationRequested)return;this.error(`Failed to watch ${r} for changes using fs.watch() (${a.toString()})`),this.notifyWatchFailed()}}onWatchedPathDeleted(e){this.warn("Watcher shutdown because watched path got deleted"),this.onFileChange({resource:e,type:2,cId:this.request.correlationId},!0),this.fileChangesAggregator.flush(),this.notifyWatchFailed()}onFileChange(e,n=!1){this.cts.token.isCancellationRequested||(this.verboseLogging&&this.traceWithCorrelation(`${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`),!n&&this.excludes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (excluded) ${e.resource.fsPath}`):!n&&this.includes&&this.includes.length>0&&!this.includes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (not included) ${e.resource.fsPath}`):this.fileChangesAggregator.work(e))}handleFileChanges(e){let n=Ym(e),r=[];for(let s of n){if(Xm(s,this.filter)){this.verboseLogging&&this.traceWithCorrelation(` >> ignored (filtered) ${s.resource.fsPath}`);continue}r.push(s)}if(r.length===0)return;if(this.verboseLogging)for(let s of r)this.traceWithCorrelation(` >> normalized ${s.type===1?"[ADDED]":s.type===2?"[DELETED]":"[CHANGED]"} ${s.resource.fsPath}`);this.throttledFileChangesEmitter.work(r)?this.throttledFileChangesEmitter.pending>0&&this.trace(`started throttling events due to large amount of file change events at once (pending: ${this.throttledFileChangesEmitter.pending}, most recent change: ${r[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`):this.warn(`started ignoring events due to too many file change events at once (incoming: ${r.length}, most recent change: ${r[0].resource.fsPath}). Use 'files.watcherExclude' setting to exclude folders with lots of changing files (e.g. compilation output).`)}async existsChildStrictCase(e){if(ge)return ce.exists(e);try{let n=he(e);return(await ce.readdir(ye(e))).some(o=>o===n)}catch(n){return this.trace(n),!1}}setVerboseLogging(e){this.verboseLogging=e}error(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"error",message:`[File Watcher (node.js)] ${e}`})}warn(e){this.cts.token.isCancellationRequested||this.onLogMessage?.({type:"warn",message:`[File Watcher (node.js)] ${e}`})}trace(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.onLogMessage?.({type:"trace",message:`[File Watcher (node.js)] ${e}`})}traceWithCorrelation(e){!this.cts.token.isCancellationRequested&&this.verboseLogging&&this.trace(`${e}${typeof this.request.correlationId=="number"?` <${this.request.correlationId}> `:""}`)}dispose(){this.cts.dispose(!0),super.dispose()}};var Oa=class extends ka{constructor(e){super();this.recursiveWatcher=e;this.onDidError=X.None;this._watchers=new Map;this.worker=this._register(new Xt)}get watchers(){return this._watchers.values()}async doWatch(e){e=this.removeDuplicateRequests(e);let n=[],r=new Set(Array.from(this.watchers));for(let o of e){let s=this._watchers.get(this.requestToWatcherKey(o));s&&hc(s.request.excludes,o.excludes)&&hc(s.request.includes,o.includes)?r.delete(s):n.push(o)}n.length&&this.trace(`Request to start watching: ${n.map(o=>this.requestToString(o)).join(",")}`),r.size&&this.trace(`Request to stop watching: ${Array.from(r).map(o=>this.requestToString(o.request)).join(",")}`),this.worker.clear();for(let o of r)this.stopWatching(o);this.createWatchWorker().work(n)}createWatchWorker(){return this.worker.value=new gr({maxWorkChunkSize:100,throttleDelay:100,maxBufferedWork:Number.MAX_VALUE},e=>{for(let n of e)this.startWatching(n)}),this.worker.value}requestToWatcherKey(e){return typeof e.correlationId=="number"?e.correlationId:this.pathToWatcherKey(e.path)}pathToWatcherKey(e){return ge?e:e.toLowerCase()}startWatching(e){let n=new Da(e,this.recursiveWatcher,o=>this._onDidChangeFile.fire(o),()=>this._onDidWatchFail.fire(e),o=>this._onDidLogMessage.fire(o),this.verboseLogging),r={request:e,instance:n};this._watchers.set(this.requestToWatcherKey(e),r)}async stop(){await super.stop();for(let e of this.watchers)this.stopWatching(e)}stopWatching(e){this.trace("stopping file watcher",e),this._watchers.delete(this.requestToWatcherKey(e.request)),e.instance.dispose()}removeDuplicateRequests(e){let n=new Map;for(let r of e){let o=n.get(r.correlationId);o||(o=new Map,n.set(r.correlationId,o));let s=this.pathToWatcherKey(r.path);o.has(s)&&this.trace(`ignoring a request for watching who's path is already watched: ${this.requestToString(r)}`),o.set(s,r)}return Array.from(n.values()).flatMap(r=>Array.from(r.values()))}async setVerboseLogging(e){super.setVerboseLogging(e);for(let n of this.watchers)n.instance.setVerboseLogging(e)}trace(e,n){this.verboseLogging&&this._onDidLogMessage.fire({type:"trace",message:this.toMessage(e,n)})}warn(e){this._onDidLogMessage.fire({type:"warn",message:this.toMessage(e)})}toMessage(e,n){return n?`[File Watcher (node.js)] ${e} (${this.requestToString(n.request)})`:`[File Watcher (node.js)] ${e}`}};var La=class extends Ca{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new Oa(void 0))}};var Fa=class i extends Pa{constructor(){super(...arguments);this.onDidChangeCapabilities=X.None;this.resourceLocks=new ft(e=>gt.getComparisonKey(e));this.mapHandleToPos=new Map;this.mapHandleToLock=new Map;this.writeHandles=new Map}static{this.TRACE_LOG_RESOURCE_LOCKS=!1}get capabilities(){return this._capabilities||(this._capabilities=1040414,ge&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:r}=await Je.stat(this.toFilePath(e)),o;return(n.mode&128)===0&&(o=2),(n.mode&ud.S_IXUSR||n.mode&ud.S_IXGRP||n.mode&ud.S_IXOTH)&&(o=(o??0)|4),{type:this.toType(n,r),ctime:n.birthtime.getTime(),mtime:n.mtime.getTime(),size:n.size,permissions:o}}catch(n){throw this.toFileSystemProviderError(n)}}async statIgnoreError(e){try{return await this.stat(e)}catch{return}}async realpath(e){let n=this.toFilePath(e);return ce.realpath(n)}async readdir(e){try{let n=await ce.readdir(this.toFilePath(e),{withFileTypes:!0}),r=[];return await Promise.all(n.map(async o=>{try{let s;o.isSymbolicLink()?s=(await this.stat(re(e,o.name))).type:s=this.toType(o),r.push([o.name,s])}catch(s){this.logService.trace(s)}})),r}catch(n){throw this.toFileSystemProviderError(n)}}toType(e,n){let r;return n?.dangling?r=0:e.isFile()?r=1:e.isDirectory()?r=2:r=0,n&&(r|=64),r}async createResourceLock(e){let n=this.toFilePath(e);this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - request to acquire resource lock (${n})`);let r;for(;r=this.resourceLocks.get(e);)this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - waiting for resource lock to be released (${n})`),await r.wait();let o=new jo;return this.resourceLocks.set(e,o),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),A(()=>{this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock dispose() (${n})`),this.resourceLocks.get(e)===o&&(this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock removed from resource-lock map (${n})`),this.resourceLocks.delete(e)),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock barrier open() (${n})`),o.open()})}async readFile(e,n){let r;try{n?.atomic&&(this.traceLock(`[Disk FileSystemProvider]: atomic read operation started (${this.toFilePath(e)})`),r=await this.createResourceLock(e));let o=this.toFilePath(e);return await Zn.readFile(o)}catch(o){throw this.toFileSystemProviderError(o)}finally{r?.dispose()}}traceLock(e){i.TRACE_LOG_RESOURCE_LOCKS&&this.logService.trace(e)}readFileStream(e,n,r){let o=Mt(s=>w.concat(s.map(a=>w.wrap(a))).buffer);return _a(this,e,o,s=>s.buffer,{...n,bufferSize:256*1024},r),o}async writeFile(e,n,r){return r?.atomic!==!1&&r?.atomic?.postfix&&await this.canWriteFileAtomic(e)?this.doWriteFileAtomic(e,re(an(e),`${Ee(e)}${r.atomic.postfix}`),n,r):this.doWriteFile(e,n,r)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:r}=await Je.stat(n);if(r)return!1}catch{}return!0}async doWriteFileAtomic(e,n,r,o){let s=new M;try{s.add(await this.createResourceLock(e)),s.add(await this.createResourceLock(n)),await this.doWriteFile(n,r,{...o,create:!0,overwrite:!0},!0);try{await this.rename(n,e,{overwrite:!0})}catch(a){try{await this.delete(n,{recursive:!1,useTrash:!1,atomic:!1})}catch{}throw a}}finally{s.dispose()}}async doWriteFile(e,n,r,o){let s;try{let a=this.toFilePath(e);if(!r.create||!r.overwrite){if(await ce.exists(a)){if(!r.overwrite)throw Z(m(2224,null),"EntryExists")}else if(!r.create)throw Z(m(2227,null),"EntryNotFound")}s=await this.open(e,{create:!0,append:r.append,unlock:r.unlock},o),await this.write(s,0,n,0,n.byteLength)}catch(a){throw await this.toFileSystemProviderWriteError(e,a)}finally{typeof s=="number"&&await this.close(s)}}static{this.canFlush=!0}static configureFlushOnWrite(e){i.canFlush=e}async open(e,n,r){let o=this.toFilePath(e),s;Ht(n)&&!r&&(s=await this.createResourceLock(e));let a;try{if(Ht(n)&&n.unlock)try{let{stat:l}=await Je.stat(o);l.mode&128||await Zn.chmod(o,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(B&&Ht(n)&&!n.append)try{a=await ce.open(o,"r+"),await ce.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await ce.close(a)}catch(c){this.logService.trace(c)}a=void 0}}typeof a!="number"&&(a=await ce.open(o,Ht(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),Ht(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),Ht(n)&&this.writeHandles.set(a,e),s){let l=this.mapHandleToLock.get(a);this.traceLock(`[Disk FileSystemProvider]: open() - storing lock for handle ${a} (${o})`),this.mapHandleToLock.set(a,s),l&&(this.traceLock(`[Disk FileSystemProvider]: open() - disposing a previous lock that was still stored on same handle ${a} (${o})`),l.dispose())}return a}async close(e){let n=this.mapHandleToLock.get(e);try{if(this.mapHandleToPos.delete(e),this.writeHandles.delete(e)&&i.canFlush)try{await ce.fdatasync(e)}catch(r){i.configureFlushOnWrite(!1),this.logService.error(r)}return await ce.close(e)}catch(r){throw this.toFileSystemProviderError(r)}finally{n&&(this.mapHandleToLock.get(e)===n&&(this.traceLock(`[Disk FileSystemProvider]: close() - resource lock removed from handle-lock map ${e}`),this.mapHandleToLock.delete(e)),this.traceLock(`[Disk FileSystemProvider]: close() - disposing lock for handle ${e}`),n.dispose())}}async read(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await ce.read(e,r,o,s,a)).bytesRead}catch(c){throw this.toFileSystemProviderError(c)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,r){let o=this.mapHandleToPos.get(e);typeof o=="number"&&(typeof n=="number"||(typeof r=="number"?this.mapHandleToPos.set(e,o+r):this.mapHandleToPos.delete(e)))}async write(e,n,r,o,s){return Fu(()=>this.doWrite(e,n,r,o,s),100,3)}async doWrite(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await ce.write(e,r,o,s,a)).bytesWritten}catch(c){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),c)}finally{this.updatePos(e,a,l)}return l}async mkdir(e){try{await Zn.mkdir(this.toFilePath(e))}catch(n){throw this.toFileSystemProviderError(n)}}async delete(e,n){try{let r=this.toFilePath(e);if(n.recursive){let o;n?.atomic!==!1&&n.atomic.postfix&&(o=W(ye(r),`${he(r)}${n.atomic.postfix}`)),await ce.rm(r,1,o)}else try{await Zn.unlink(r)}catch(o){if(o.code==="EPERM"||o.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await Je.stat(r);s=a.isDirectory()&&!l}catch{}if(s)await Zn.rmdir(r);else throw o}else throw o}}catch(r){throw this.toFileSystemProviderError(r)}}async rename(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"move",r.overwrite),await ce.rename(o,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2228,null,he(o),he(ye(s)),a.toString()))),this.toFileSystemProviderError(a)}}async copy(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"copy",r.overwrite),await ce.copy(o,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2222,null,he(o),he(ye(s)),a.toString()))),this.toFileSystemProviderError(a)}}async validateMoveCopy(e,n,r,o){let s=this.toFilePath(e),a=this.toFilePath(n),l=!1;if(this.capabilities&1024||(l=pr(s,a,!0)),l){if(r==="copy")throw Z(m(2223,null),"EntryExists");if(r==="move")return}let p=await this.statIgnoreError(e);if(!p)throw Z(m(2226,null),"EntryNotFound");let u=await this.statIgnoreError(n);if(u){if(!o)throw Z(m(2225,null),"EntryExists");(p.type&1)!==0&&(u.type&1)!==0||await this.delete(n,{recursive:!0,useTrash:!1,atomic:!1})}}async cloneFile(e,n){return this.doCloneFile(e,n,!1)}async doCloneFile(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n),a=!!(this.capabilities&1024);if(pr(o,s,!a))return;let l=new M;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),r&&await Zn.mkdir(ye(s),{recursive:!0}),await Zn.copyFile(o,s)}catch(c){if(c.code==="ENOENT"&&!r)return this.doCloneFile(e,n,!0);throw this.toFileSystemProviderError(c)}finally{l.dispose()}}createUniversalWatcher(e,n,r){return new Aa(o=>e(o),o=>n(o),r)}createNonRecursiveWatcher(e,n,r){return new La(o=>e(o),o=>n(o),r)}toFileSystemProviderError(e){if(e instanceof kr)return e;let n=e,r;switch(e.code){case"ENOENT":r="EntryNotFound";break;case"EISDIR":r="EntryIsADirectory";break;case"ENOTDIR":r="EntryNotADirectory";break;case"EEXIST":r="EntryExists";break;case"EPERM":case"EACCES":r="NoPermissions";break;case"ERR_UNC_HOST_NOT_ALLOWED":n=`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`,r="Unknown";break;default:r="Unknown"}return Z(n,r)}async toFileSystemProviderWriteError(e,n){let r=this.toFileSystemProviderError(n);if(e&&r.code==="NoPermissions")try{let{stat:o}=await Je.stat(this.toFilePath(e));o.mode&128||(r=Z(n,"EntryWriteLocked"))}catch(o){this.logService.trace(o)}return r}};import*as rg from"fs";var eg=[{version:1,sql:[`CREATE TABLE IF NOT EXISTS turns (
				id TEXT PRIMARY KEY NOT NULL
			)`,`CREATE TABLE IF NOT EXISTS file_edits (
				turn_id        TEXT    NOT NULL REFERENCES turns(id) ON DELETE CASCADE,
				tool_call_id   TEXT    NOT NULL,
				file_path      TEXT    NOT NULL,
				before_content BLOB   NOT NULL,
				after_content  BLOB   NOT NULL,
				added_lines    INTEGER,
				removed_lines  INTEGER,
				PRIMARY KEY (tool_call_id, file_path)
			)`].join(`;
`)},{version:2,sql:`CREATE TABLE IF NOT EXISTS session_metadata (
			key   TEXT PRIMARY KEY NOT NULL,
			value TEXT NOT NULL
		)`},{version:3,sql:[`CREATE TABLE file_edits_v3 (
				turn_id        TEXT    NOT NULL REFERENCES turns(id) ON DELETE CASCADE,
				tool_call_id   TEXT    NOT NULL,
				file_path      TEXT    NOT NULL,
				edit_type      TEXT    NOT NULL DEFAULT 'edit',
				original_path  TEXT,
				before_content BLOB,
				after_content  BLOB,
				added_lines    INTEGER,
				removed_lines  INTEGER,
				PRIMARY KEY (tool_call_id, file_path)
			)`,`INSERT INTO file_edits_v3 (turn_id, tool_call_id, file_path, edit_type, before_content, after_content, added_lines, removed_lines)
				SELECT turn_id, tool_call_id, file_path, 'edit', before_content, after_content, added_lines, removed_lines FROM file_edits`,"DROP TABLE file_edits","ALTER TABLE file_edits_v3 RENAME TO file_edits"].join(`;
`)},{version:4,sql:["ALTER TABLE turns ADD COLUMN event_id TEXT","CREATE INDEX IF NOT EXISTS idx_turns_event_id ON turns(event_id)"].join(`;
`)}];function Tt(i,t){return new Promise((e,n)=>{i.exec(t,r=>r?n(r):e())})}function st(i,t,e){return new Promise((n,r)=>{i.run(t,e,function(o){if(o)return r(o);n({changes:this.changes,lastID:this.lastID})})})}function ai(i,t,e){return new Promise((n,r)=>{i.get(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function bo(i,t,e){return new Promise((n,r)=>{i.all(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function tg(i){return new Promise((t,e)=>{i.close(n=>n?e(n):t())})}function X1(i){return new Promise((t,e)=>{import("@vscode/sqlite3").then(n=>{let r=new n.default.Database(i,o=>{if(o)return e(o);t(r)})},e)})}async function Z1(i,t){await Tt(i,"PRAGMA foreign_keys = ON");let n=(await ai(i,"PRAGMA user_version",[]))?.user_version??0,r=t.filter(o=>o.version>n).sort((o,s)=>o.version-s.version);if(r.length!==0){await Tt(i,"BEGIN TRANSACTION");try{for(let o of r)await Tt(i,o.sql),await Tt(i,`PRAGMA user_version = ${o.version}`);await Tt(i,"COMMIT")}catch(o){throw await Tt(i,"ROLLBACK"),o}}}var Ua=class i{constructor(t,e=eg){this._path=t;this._migrations=e;this._fileEditSequencer=new ht;this._metadataSequencer=new ht;this._pendingWrites=new Set}static async open(t,e=eg){let n=new i(t,e);return await n._ensureDb(),n}_ensureDb(){return this._closed?Promise.reject(new Error("SessionDatabase has been disposed")):(this._dbPromise||(this._dbPromise=(async()=>{await rg.promises.mkdir(ye(this._path),{recursive:!0});let t=await X1(this._path);try{await Z1(t,this._migrations)}catch(e){throw await tg(t),this._dbPromise=void 0,e}if(this._closed)throw await tg(t),new Error("SessionDatabase has been disposed");return t})()),this._dbPromise)}async getAllTables(){let t=await this._ensureDb();return(await bo(t,"SELECT name FROM sqlite_master WHERE type='table' ORDER BY name",[])).map(n=>n.name)}createTurn(t){return this._track(async()=>{let e=await this._ensureDb();await st(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t])})}deleteTurn(t){return this._track(async()=>{let e=await this._ensureDb();await st(e,"DELETE FROM turns WHERE id = ?",[t])})}setTurnEventId(t,e){return this._track(async()=>{let n=await this._ensureDb();await st(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await st(n,"UPDATE turns SET event_id = ? WHERE id = ? AND event_id IS NULL",[e,t])})}async getTurnEventId(t){let e=await this._ensureDb();return(await ai(e,"SELECT event_id FROM turns WHERE id = ?",[t]))?.event_id??void 0}async getNextTurnEventId(t){let e=await this._ensureDb();return(await ai(e,"SELECT event_id FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?) ORDER BY rowid LIMIT 1",[t]))?.event_id??void 0}async getFirstTurnEventId(){let t=await this._ensureDb();return(await ai(t,"SELECT event_id FROM turns ORDER BY rowid LIMIT 1",[]))?.event_id??void 0}truncateFromTurn(t){return this._track(async()=>{let e=await this._ensureDb();await st(e,"DELETE FROM turns WHERE rowid >= (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteTurnsAfter(t){return this._track(async()=>{let e=await this._ensureDb();await st(e,"DELETE FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteAllTurns(){return this._track(async()=>{let t=await this._ensureDb();await Tt(t,"DELETE FROM turns")})}storeFileEdit(t){return this._track(()=>this._fileEditSequencer.queue(t.filePath,async()=>{let e=await this._ensureDb();await st(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t.turnId]),await st(e,`INSERT OR REPLACE INTO file_edits
					(turn_id, tool_call_id, file_path, edit_type, original_path, before_content, after_content, added_lines, removed_lines)
				VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[t.turnId,t.toolCallId,t.filePath,t.kind,t.originalPath??null,t.beforeContent?Buffer.from(t.beforeContent):null,t.afterContent?Buffer.from(t.afterContent):null,t.addedLines??null,t.removedLines??null])}))}async getFileEdits(t){if(t.length===0)return[];let e=await this._ensureDb(),n=t.map(()=>"?").join(",");return(await bo(e,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				WHERE tool_call_id IN (${n})
				ORDER BY rowid`,t)).map(o=>({turnId:o.turn_id,toolCallId:o.tool_call_id,filePath:o.file_path,kind:o.edit_type??"edit",originalPath:o.original_path??void 0,addedLines:o.added_lines??void 0,removedLines:o.removed_lines??void 0}))}async getAllFileEdits(){let t=await this._ensureDb();return(await bo(t,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				ORDER BY rowid`,[])).map(n=>({turnId:n.turn_id,toolCallId:n.tool_call_id,filePath:n.file_path,kind:n.edit_type??"edit",originalPath:n.original_path??void 0,addedLines:n.added_lines??void 0,removedLines:n.removed_lines??void 0}))}async getFileEditsByTurn(t){let e=await this._ensureDb();return(await bo(e,`SELECT turn_id, tool_call_id, file_path, edit_type, original_path, added_lines, removed_lines
				FROM file_edits
				WHERE turn_id = ?
				ORDER BY rowid`,[t])).map(r=>({turnId:r.turn_id,toolCallId:r.tool_call_id,filePath:r.file_path,kind:r.edit_type??"edit",originalPath:r.original_path??void 0,addedLines:r.added_lines??void 0,removedLines:r.removed_lines??void 0}))}async readFileEditContent(t,e){return this._fileEditSequencer.queue(e,async()=>{let n=await this._ensureDb(),r=await ai(n,`SELECT before_content, after_content
					FROM file_edits
					WHERE tool_call_id = ? AND file_path = ?`,[t,e]);if(r)return{beforeContent:r.before_content?ng(r.before_content):void 0,afterContent:r.after_content?ng(r.after_content):void 0}})}async getMetadata(t){let e=await this._ensureDb();return(await ai(e,"SELECT value FROM session_metadata WHERE key = ?",[t]))?.value}async getMetadataObject(t){let e=Object.keys(t),n={};if(e.length===0)return n;let r=await this._ensureDb(),o=e.map(()=>"?").join(","),s=await bo(r,`SELECT key, value FROM session_metadata WHERE key IN (${o})`,e);for(let a of e)n[a]=void 0;for(let a of s)n[a.key]=a.value;return n}setMetadata(t,e){return this._track(()=>this._metadataSequencer.queue(t,async()=>{let n=await this._ensureDb();await st(n,"INSERT OR REPLACE INTO session_metadata (key, value) VALUES (?, ?)",[t,e])}))}remapTurnIds(t){return this._track(async()=>{let e=await this._ensureDb();await Tt(e,"PRAGMA defer_foreign_keys = ON"),await Tt(e,"BEGIN TRANSACTION");try{let n=[...t.keys()];if(n.length>0){let r=n.map(()=>"?").join(",");await st(e,`DELETE FROM turns WHERE id NOT IN (${r})`,n)}for(let[r,o]of t)await st(e,"UPDATE turns SET id = ? WHERE id = ?",[o,r]),await st(e,"UPDATE file_edits SET turn_id = ? WHERE turn_id = ?",[o,r]);await Tt(e,"COMMIT")}catch(n){throw await Tt(e,"ROLLBACK"),n}})}async whenIdle(){for(;this._pendingWrites.size>0;)await Promise.allSettled([...this._pendingWrites])}async vacuumInto(t){let e=await this._ensureDb();await st(e,"VACUUM INTO ?",[t])}_track(t){let e=t();this._pendingWrites.add(e);let n=()=>{this._pendingWrites.delete(e)};return e.then(n,n),e}async close(){await(this._closed??=this._dbPromise?.then(t=>t.close()).catch(()=>{})||!0)}dispose(){this.close()}};function ng(i){return i instanceof Buffer?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):i instanceof Uint8Array?i:typeof i=="string"?new TextEncoder().encode(i):new Uint8Array(0)}var pd=class extends Ao{constructor(e,n){super();this._getDbPath=e;this._logService=n;this.liveDatabases=new Set}createReferencedObject(e){let n=this._getDbPath(e);this._logService.trace(`[SessionDataService] Opening database: ${n}`);let r=new Ua(n);return this.liveDatabases.add(r),r}destroyReferencedObject(e,n){this.liveDatabases.delete(n),n.dispose()}},li=class{constructor(t,e,n,r){this._fileService=e;this._logService=n;this._basePath=h.joinPath(t,"agentSessionData"),this._databases=new pd(r??(o=>h.joinPath(this._basePath,o,lo).fsPath),this._logService)}getSessionDataDir(t){return this.getSessionDataDirById(de.id(t))}getSessionDataDirById(t){let e=t.replace(/[^a-zA-Z0-9_.-]/g,"-");return h.joinPath(this._basePath,e)}_sanitizedSessionKey(t){return de.id(t).replace(/[^a-zA-Z0-9_.-]/g,"-")}openDatabase(t){return this._databases.acquire(this._sanitizedSessionKey(t))}async tryOpenDatabase(t){let e=this._sanitizedSessionKey(t),n=h.joinPath(this._basePath,e,lo);if(await this._fileService.exists(n))return this._databases.acquire(e)}async deleteSessionData(t){let e=this.getSessionDataDir(t);try{await this._fileService.exists(e)&&(await this._fileService.del(e,{recursive:!0}),this._logService.trace(`[SessionDataService] Deleted session data: ${e.toString()}`))}catch(n){this._logService.warn(`[SessionDataService] Failed to delete session data: ${e.toString()}`,n)}}async cleanupOrphanedData(t){try{if(!await this._fileService.exists(this._basePath))return;let n=await this._fileService.resolve(this._basePath);if(!n.children)return;let r=[];for(let o of n.children){if(!o.isDirectory)continue;let s=o.name;t.has(s)||(this._logService.trace(`[SessionDataService] Cleaning up orphaned session data: ${s}`),r.push(this._fileService.del(o.resource,{recursive:!0}).catch(a=>{this._logService.warn(`[SessionDataService] Failed to clean up orphaned data: ${s}`,a)})))}await Promise.all(r)}catch(e){this._logService.warn("[SessionDataService] Failed to run orphan cleanup",e)}}async whenIdle(){for(;;){let t=[...this._databases.liveDatabases];if(t.length===0||(await Promise.all(t.map(n=>n.whenIdle())),[...this._databases.liveDatabases].filter(n=>!t.includes(n)).length===0))return}}};li=R([U(1,Qe),U(2,te)],li);var Na=class extends L{constructor(){super(...arguments);this.capabilities=1026;this._onDidChangeCapabilities=this._register(new _);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._onDidChangeFile=this._register(new _);this.onDidChangeFile=this._onDidChangeFile.event;this._authorityToConnection=new Map}registerAuthority(e,n){return this._authorityToConnection.set(e,n),A(()=>this._authorityToConnection.delete(e))}watch(){return L.None}async stat(e){let n=e.path;if(n==="/"||n==="")return{type:2,mtime:0,ctime:0,size:0,permissions:1};let r=this._decodeUri(e);if(r.scheme==="session-db"||r.scheme==="git-blob")return{type:1,mtime:0,ctime:0,size:0,permissions:1};if(r.path==="/"||r.path==="")return{type:2,mtime:0,ctime:0,size:0,permissions:1};let o=an(e),s=Ee(e),l=(await this._listDirectory(e.authority,o)).find(c=>c.name===s);if(!l)throw Z(`File not found: ${n}`,"EntryNotFound");return{type:l.type==="directory"?2:1,mtime:0,ctime:0,size:0,permissions:1}}async readdir(e){return(await this._listDirectory(e.authority,e)).map(r=>[r.name,r.type==="directory"?2:1])}async readFile(e){let n=this._getConnection(e.authority);try{let r=this._decodeUri(e),o=await n.resourceRead(r);return o.encoding==="base64"?Xo(o.data).buffer:w.fromString(o.data).buffer}catch(r){throw Z(r instanceof Error?r.message:String(r),"EntryNotFound")}}async writeFile(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e);await o.resourceWrite({uri:s.toString(),data:w.wrap(n).toString(),encoding:"utf-8"})}catch(s){throw Z(s instanceof Error?s.message:String(s),"NoPermissions")}}async mkdir(){throw Z("mkdir not supported on remote filesystem","NoPermissions")}async delete(e,n){let r=this._getConnection(e.authority);try{let o=this._decodeUri(e);await r.resourceDelete({uri:o.toString(),recursive:n.recursive})}catch(o){throw Z(o instanceof Error?o.message:String(o),"NoPermissions")}}async rename(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e),a=this._decodeUri(n);await o.resourceMove({source:s.toString(),destination:a.toString(),failIfExists:!r.overwrite})}catch(s){throw Z(s instanceof Error?s.message:String(s),"NoPermissions")}}_getConnection(e){let n=this._authorityToConnection.get(e);if(!n)throw Z(`No connection for authority: ${e}`,"Unavailable");return n}async _listDirectory(e,n){let r=this._getConnection(e);try{let o=this._decodeUri(n);return(await r.resourceList(o)).entries}catch(o){throw Z(o instanceof Error?o.message:String(o),"Unavailable")}}};var Ma="vscode-agent-client";function ig(i,t){let e=i.authority||"-";return h.from({scheme:Ma,authority:t,path:`/${i.scheme}/${e}${i.path}`})}function og(i){let t=i.path,e=t.indexOf("/",1);if(e===-1)return h.from({scheme:"file",path:t});let n=t.substring(1,e),r=t.indexOf("/",e+1);if(r===-1){let a=t.substring(e+1);return h.from({scheme:n,authority:a==="-"?"":a,path:"/"})}let o=t.substring(e+1,r);o==="-"&&(o="");let s=t.substring(r);return h.from({scheme:n,authority:o||void 0,path:s})}var yo=class extends Na{_decodeUri(t){return og(t)}};var eI=20,ci=class{constructor(t,e,n,r=eI){this._fileService=e;this._logService=n;this._sequencer=new ht;this._cachedNonces=new Map;this._lruOrder=[];this._cacheLoaded=!1;this._basePath=h.joinPath(t,"agentPlugins"),this._cachePath=h.joinPath(this._basePath,"cache.json"),this._maxPlugins=r}async syncCustomizations(t,e,n){await this._ensureCacheLoaded();let r=e.map(s=>({customization:s,enabled:!0,status:"loading"}));return n?.([...r]),await Promise.all(e.map((s,a)=>this._sequencer.queue(s.uri,async()=>{try{let l=await this._syncPlugin(t,s);return r[a]={customization:s,enabled:!0,status:"loaded"},n?.([...r]),{customization:r[a],pluginDir:l}}catch(l){let c=l instanceof Error?l.message:String(l);return this._logService.error(`[AgentPluginManager] Failed to sync plugin ${s.uri}: ${c}`),r[a]={customization:s,enabled:!0,status:"error",statusMessage:c},n?.([...r]),{customization:r[a]}}})))}async _syncPlugin(t,e){let n=ig(h.parse(e.uri),t),r=this._keyForUri(e.uri),o=h.joinPath(this._basePath,r);return e.nonce&&this._cachedNonces.get(e.uri)===e.nonce?(this._touchLru(e.uri),this._logService.trace(`[AgentPluginManager] Nonce match for ${e.uri}, skipping copy`),o):(this._logService.info(`[AgentPluginManager] Syncing plugin: ${e.uri} \u2192 ${o.toString()}`),await this._fileService.copy(n,o,!0),e.nonce&&this._cachedNonces.set(e.uri,e.nonce),this._touchLru(e.uri),await this._evictIfNeeded(),await this._persistCache(),o)}_keyForUri(t){return t.replace(/[^a-zA-Z0-9]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").substring(0,128)}_touchLru(t){let e=this._lruOrder.indexOf(t);e!==-1&&this._lruOrder.splice(e,1),this._lruOrder.push(t)}async _evictIfNeeded(){for(;this._lruOrder.length>this._maxPlugins;){let t=this._lruOrder.shift();if(!t)break;this._cachedNonces.delete(t);let e=this._keyForUri(t),n=h.joinPath(this._basePath,e);this._logService.info(`[AgentPluginManager] Evicting plugin: ${t}`);try{await this._fileService.del(n,{recursive:!0})}catch(r){this._logService.warn(`[AgentPluginManager] Failed to evict plugin: ${t}`,r)}}}async _ensureCacheLoaded(){if(!this._cacheLoaded){this._cacheLoaded=!0;try{if(!await this._fileService.exists(this._cachePath))return;let t=await this._fileService.readFile(this._cachePath),e=JSON.parse(t.value.toString());if(!Array.isArray(e))return;for(let n of e)typeof n.uri=="string"&&typeof n.nonce=="string"&&(this._cachedNonces.set(n.uri,n.nonce),this._lruOrder.push(n.uri));this._logService.trace(`[AgentPluginManager] Loaded ${e.length} cache entries from disk`)}catch(t){this._logService.warn("[AgentPluginManager] Failed to load cache from disk",t)}}}async _persistCache(){try{let t=[];for(let e of this._lruOrder){let n=this._cachedNonces.get(e);n&&t.push({uri:e,nonce:n})}await this._fileService.createFolder(this._basePath),await this._fileService.writeFile(this._cachePath,w.fromString(JSON.stringify(t)))}catch(t){this._logService.warn("[AgentPluginManager] Failed to persist cache to disk",t)}}};ci=R([U(1,Qe),U(2,te)],ci);tI();function tI(){let i;os(process)?i=new ss:i=new rs("agentHost");let t=new M,e={_serviceBrand:void 0,...zm},n=new vo(rd(process.argv,qm),e),r=new Ta(qp(n),n.logsHome);i.registerChannel("agentHostLogger",new xa(r,()=>Km));let o=r.createLogger("agenthost",{name:m(1850,null)}),s=new Ia(o);s.info("Agent Host process started successfully");let a=t.add(new wn(s));t.add(a.registerProvider(ne.file,t.add(new Fa(s)))),t.add(Tm(a));let l=new li(h.file(n.userDataPath),a,s),c;try{let v=new pn;v.set(Vr,n),v.set(te,s),v.set(Qe,a),v.set(ti,l);let y=new Lr(v),S=y.createInstance($r);v.set(vn,S),c=new Zs(s,a,l,e,S);let I=new ci(h.file(n.userDataPath),a,s);v.set(aa,I);let T=t.add(new bn(s));v.set(Ns,T),v.set(Qr,c.terminalManager),c.registerProvider(y.createInstance(Se))}catch(v){throw s.error("Failed to create AgentService",v),v}let p=xr.fromService(c,t);i.registerChannel("agentHost",p);let u=t.add(new _),f,g={onDidChangeConnectionCount:u.event,async startWebSocketServer(){if(f)return f;let v=B?`\\\\.\\pipe\\vscode-agent-host-${ee().replace(/-/g,"")}`:W(So.tmpdir(),`vscode-agent-host-${ee().replace(/-/g,"")}.sock`),y=t.add(await ho.create({socketPath:v},s)),S=t.add(new yo);t.add(a.registerProvider(Ma,S));let I=t.add(new Xn(c,c.stateManager,y,{defaultDirectory:h.file(So.homedir()).toString()},S,s));return t.add(I.onDidChangeConnectionCount(T=>u.fire(T))),s.info(`[AgentHost] Dynamic WebSocket server listening on ${v}`),f={socketPath:v},f},async getInspectInfo(v){let y=Io.url();if(!y&&v){try{Io.open(0,"127.0.0.1",!1)}catch(S){s.error("[AgentHost] Failed to open inspector",S);return}y=Io.url()}if(y)try{let S=new URL(y);if(S.protocol!=="ws:"){s.warn(`[AgentHost] Unexpected inspector URL: ${y}`);return}let I=Number(S.port),T=S.pathname.replace(/^\/+/,"");if(!Number.isInteger(I)||!T){s.warn(`[AgentHost] Unexpected inspector URL: ${y}`);return}let K=S.hostname==="0.0.0.0"?"127.0.0.1":S.hostname==="::"?"::1":S.hostname,we=K.includes(":")?`[${K}]`:K;return{host:K,port:I,devtoolsUrl:`devtools://devtools/bundled/js_app.html?v8only=true&ws=${we}:${S.port}/${T}`}}catch{s.warn(`[AgentHost] Unexpected inspector URL: ${y}`);return}}},b=xr.fromService(g,t);i.registerChannel("agentHostConnectionTracker",b),nI(c,a,s,t,v=>u.fire(v)).catch(v=>{s.error("Failed to start WebSocket server",v)}),process.once("exit",()=>{c.dispose(),s.dispose(),t.dispose()})}async function nI(i,t,e,n,r){let o=process.env.VSCODE_AGENT_HOST_PORT,s=process.env.VSCODE_AGENT_HOST_SOCKET_PATH;if(!o&&!s)return;let a=process.env.VSCODE_AGENT_HOST_CONNECTION_TOKEN,l=process.env.VSCODE_AGENT_HOST_HOST||"localhost",c=n.add(await ho.create(s?{socketPath:s,connectionTokenValidate:a?g=>g===a:void 0}:{port:parseInt(o,10),host:l,connectionTokenValidate:a?g=>g===a:void 0},e)),p=n.add(new yo);n.add(t.registerProvider(Ma,p));let u=n.add(new Xn(i,i.stateManager,c,{defaultDirectory:h.file(So.homedir()).toString()},p,e));n.add(u.onDidChangeConnectionCount(r));let f=s??`${l}:${o}`;e.info(`[AgentHost] WebSocket server listening on ${f}`),console.log(`Agent host server listening on ${f}`)}
//# sourceMappingURL=https://main.vscode-cdn.net/sourcemaps/9b8ae15a8cf95b9bce1b590b42954530f440e816/core/vs/platform/agentHost/node/agentHostMain.js.map
