/*!--------------------------------------------------------
 * 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 Hg=Object.defineProperty;var jg=Object.getOwnPropertyDescriptor;var C=(i,t,e,n)=>{for(var r=n>1?void 0:n?jg(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&&Hg(t,e,r),r},D=(i,t)=>(e,n)=>t(e,n,i);function Kg(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 Bd=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=Kg(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};var ol=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?Ct.isErrorNoTelemetry(t)?new Ct(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 ol;function sn(i){Vd.onUnexpectedError(i)}function Ie(i){Gg(i)||Vd.onUnexpectedError(i)}var Vo="Canceled";function Gg(i){return i instanceof Fe?!0:i instanceof Error&&i.name===Vo&&i.message===Vo}var Fe=class extends Error{constructor(){super(Vo),this.name=this.message}},$d=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 qo(){let i=new Error(Vo);return i.name=i.message,i}function zo(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}var Ct=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"}},ue=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function Pi(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 Ho(i){return i.filter(t=>!!t)}function sl(i,t){return i.push(t),()=>Jg(i,t)}function Jg(i,t){let e=i.indexOf(t);if(e>-1)return i.splice(e,1),t}function al(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 Hd(i){return i[Math.floor(Math.random()*i.length)]}var jd;(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})(jd||={});function Kd(i,t){return(e,n)=>t(i(e),i(n))}var Gd=(i,t)=>i-t;var zd=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||jd.isGreaterThan(t(r,e)))&&(n=!1,e=r),!0)),e}};function Zd(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 Yd,Xd,Qd=class{constructor(t,e){this.toKey=e;this._map=new Map;this[Yd]="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))}[(Xd=Symbol.iterator,Yd=Symbol.toStringTag,Xd)](){return this.values()}};function pr(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 ll=class{constructor(t,e){this.uri=t;this.value=e}};function Qg(i){return Array.isArray(i)}var tu,Ze=class i{constructor(t,e){this[tu]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(Qg(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 ll(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]}*[(tu=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},nu,eu=class{constructor(t,e){this[nu]="ResourceSet";!t||typeof t=="function"?this._map=new Ze(t):(this._map=new Ze(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()}[(nu=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var ru,cl=class{constructor(){this[ru]="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}[(ru=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)}},dl=class extends cl{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))}},Rt=class extends dl{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var jo=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 Ko(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function Go(i,t="unexpected state"){if(!i)throw typeof t=="string"?new ue(`Assertion Failed: ${t}`):t}function Ai(i){if(!i()){debugger;i(),Ie(new ue("Assertion Failed"))}}function qe(i){return typeof i=="string"}function Jo(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function ki(i){return typeof i=="number"&&!isNaN(i)}function iu(i){return!!i&&typeof i[Symbol.iterator]=="function"}function Xg(i){return typeof i>"u"}function fr(i){return!Di(i)}function Di(i){return Xg(i)||i===null}function ou(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}function Oi(i){return typeof i=="function"}function Re(i,t){for(let e in t)if(!(e in i))return!1;return!0}var Li;(se=>{function i(R){return!!R&&typeof R=="object"&&typeof R[Symbol.iterator]=="function"}se.is=i;let t=Object.freeze([]);function e(){return t}se.empty=e;function*n(R){yield R}se.single=n;function r(R){return i(R)?R:n(R)}se.wrap=r;function o(R){return R??t}se.from=o;function*s(R){for(let U=R.length-1;U>=0;U--)yield R[U]}se.reverse=s;function a(R){return!R||R[Symbol.iterator]().next().done===!0}se.isEmpty=a;function l(R){return R[Symbol.iterator]().next().value}se.first=l;function c(R,U){let F=0;for(let ae of R)if(U(ae,F++))return!0;return!1}se.some=c;function p(R,U){let F=0;for(let ae of R)if(!U(ae,F++))return!1;return!0}se.every=p;function u(R,U){for(let F of R)if(U(F))return F}se.find=u;function*f(R,U){for(let F of R)U(F)&&(yield F)}se.filter=f;function*g(R,U){let F=0;for(let ae of R)yield U(ae,F++)}se.map=g;function*b(R,U){let F=0;for(let ae of R)yield*U(ae,F++)}se.flatMap=b;function*y(...R){for(let U of R)iu(U)?yield*U:yield U}se.concat=y;function I(R,U,F){let ae=F;for(let he of R)ae=U(ae,he);return ae}se.reduce=I;function v(R){let U=0;for(let F of R)U++;return U}se.length=v;function*S(R,U,F=R.length){for(U<-R.length&&(U=0),U<0&&(U+=R.length),F<0?F+=R.length:F>R.length&&(F=R.length);U<F;U++)yield R[U]}se.slice=S;function T(R,U=Number.POSITIVE_INFINITY){let F=[];if(U===0)return[F,R];let ae=R[Symbol.iterator]();for(let he=0;he<U;he++){let $e=ae.next();if($e.done)return[F,se.empty()];F.push($e.value)}return[F,{[Symbol.iterator](){return ae}}]}se.consume=T;async function $(R){let U=[];for await(let F of R)U.push(F);return U}se.asyncToArray=$;async function ge(R){let U=[];for await(let F of R)U=U.concat(F);return U}se.asyncToArrayFlat=ge})(Li||={});var Zg=!1,mr=null;var su=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 jo;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(Kd(l=>l.idx,Gd));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(`
`)),y=Zd([...b].map(I=>r(I)[u]),I=>I);delete y[c[u]];for(let[I,v]of Object.entries(y))v&&p.unshift(`    - stacktraces of ${v.length} other leaks continue with ${I}`);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 eh(i){mr=i}if(Zg){let i="__is_disposable_tracked__";eh(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!==k.None)try{t[i]=!0}catch{}}markAsDisposed(t){if(t&&t!==k.None)try{t[i]=!0}catch{}}markAsSingleton(t){}})}function ln(i){return mr?.trackDisposable(i),i}function cn(i){mr?.markAsDisposed(i)}function Un(i,t){mr?.setParent(i,t)}function th(i,t){if(mr)for(let e of i)mr.setParent(e,t)}function Xo(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function je(i){if(Li.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 au(...i){let t=P(()=>je(i));return th(i,t),t}var pl=class{constructor(t){this._isDisposed=!1,this._fn=t,ln(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,cn(this),this._fn()}}};function P(i){return new pl(i)}var B=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;ln(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(cn(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===k.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return Un(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)&&Un(t,null)}assertNotDisposed(){this._isDisposed&&Ie(new ue("Object disposed"))}},k=class{constructor(){this._store=new B;ln(this),Un(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){cn(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},an=class{constructor(){this._isDisposed=!1;ln(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&Un(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,cn(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&Un(t,null),t}};var Qo=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=pr(()=>{--n.counter===0&&(this.destroyReferencedObject(t,n.object),this.references.delete(t))});return n.counter++,{object:r,dispose:o}}};var ot=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,ln(this)}dispose(){cn(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),Un(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&Un(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 lu(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var Yo=class extends ot{constructor(){super(new Ze)}};var pe=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},Fi=class{constructor(){this._first=pe.Undefined;this._last=pe.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===pe.Undefined}clear(){let t=this._first;for(;t!==pe.Undefined;){let e=t.next;t.prev=pe.Undefined,t.next=pe.Undefined,t=e}this._first=pe.Undefined,this._last=pe.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new pe(t);if(this._first===pe.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!==pe.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==pe.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==pe.Undefined)return this._last.element}_remove(t){if(t.prev!==pe.Undefined&&t.next!==pe.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===pe.Undefined&&t.next===pe.Undefined?(this._first=pe.Undefined,this._last=pe.Undefined):t.next===pe.Undefined?(this._last=this._last.prev,this._last.next=pe.Undefined):t.prev===pe.Undefined&&(this._first=this._first.next,this._first.prev=pe.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==pe.Undefined;)yield t.element,t=t.next}};function nh(){return globalThis._VSCODE_NLS_MESSAGES}function fl(){return globalThis._VSCODE_NLS_LANGUAGE}var rh=fl()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function cu(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}),rh&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function m(i,t,...e){return cu(typeof i=="number"?ih(i,t):t,e)}function ih(i,t){let e=nh()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}var Mn="en",Mi=!1,Ni=!1,Ui=!1,oh=!1,uu=!1,hl=!1,sh=!1,pu=!1,ah=!1,lh=!1,Zo,es=Mn,du=Mn,ch,Wt,Bt=globalThis,et;typeof Bt.vscode<"u"&&typeof Bt.vscode.process<"u"?et=Bt.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(et=process);var fu=typeof et?.versions?.electron=="string",dh=fu&&et?.type==="renderer";if(typeof et=="object"){Mi=et.platform==="win32",Ni=et.platform==="darwin",Ui=et.platform==="linux",oh=Ui&&!!et.env.SNAP&&!!et.env.SNAP_REVISION,sh=fu,ah=!!et.env.CI||!!et.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!et.env.GITHUB_WORKSPACE,Zo=Mn,es=Mn;let i=et.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);Zo=t.userLocale,du=t.osLocale,es=t.resolvedLanguage||Mn,ch=t.languagePack?.translationsConfigFile}catch{}uu=!0}else typeof navigator=="object"&&!dh?(Wt=navigator.userAgent,Mi=Wt.indexOf("Windows")>=0,Ni=Wt.indexOf("Macintosh")>=0,pu=(Wt.indexOf("Macintosh")>=0||Wt.indexOf("iPad")>=0||Wt.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Ui=Wt.indexOf("Linux")>=0,lh=Wt?.indexOf("Mobi")>=0,hl=!0,es=fl()||Mn,Zo=navigator.language.toLowerCase(),du=Zo):console.error("Unable to resolve platform.");var gl=0;Ni?gl=1:Mi?gl=3:Ui&&(gl=2);var V=Mi,Ue=Ni,ye=Ui;var mu=uu;var gr=hl,uh=hl&&typeof Bt.importScripts=="function",gu=uh?Bt.origin:void 0;var Et=Wt,dn=es,ph;(n=>{function i(){return dn}n.value=i;function t(){return dn.length===2?dn==="en":dn.length>=3?dn[0]==="e"&&dn[1]==="n"&&dn[2]==="-":!1}n.isDefaultVariant=t;function e(){return dn==="en"}n.isDefault=e})(ph||={});var fh=typeof Bt.postMessage=="function"&&!Bt.importScripts,hu=(()=>{if(fh){let i=[];Bt.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}),Bt.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var hr=Ni||pu?2:Mi?1:3;var vl=!!(Et&&Et.indexOf("Chrome")>=0),vu=!!(Et&&Et.indexOf("Firefox")>=0),bu=!!(!vl&&Et&&Et.indexOf("Safari")>=0),yu=!!(Et&&Et.indexOf("Edg/")>=0),GI=!!(Et&&Et.indexOf("Android")>=0);var Nn,bl=globalThis.vscode;if(typeof bl<"u"&&typeof bl.process<"u"){let i=bl.process;Nn={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"?Nn={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:Nn={get platform(){return V?"win32":Ue?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var vr=Nn.cwd,_e=Nn.env,ts=Nn.platform,YI=Nn.arch;var mh=globalThis.performance.now.bind(globalThis.performance),ns=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:mh,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 Su=!1,gh=!1,hh=100,Iu=6e4;function Tu(){return!!_e.VSCODE_DEV}var Z;(Ln=>{Ln.None=()=>k.None;function t(O){if(gh){let{onDidAddListener:x}=O,E=yr.create(),A=0;O.onDidAddListener=()=>{++A===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),E.print()),x?.()}}}function e(O,x,E){return g(O,()=>{},0,void 0,x??!0,void 0,E)}Ln.defer=e;function n(O){return(x,E=null,A)=>{let L=!1,W;return W=O(H=>{if(!L)return W?W.dispose():L=!0,x.call(E,H)},null,A),L&&W.dispose(),W}}Ln.once=n;function r(O,x){return Ln.once(Ln.filter(O,x))}Ln.onceIf=r;function o(O,x,E){return u((A,L=null,W)=>O(H=>A.call(L,x(H)),null,W),E)}Ln.map=o;function s(O,x,E){return u((A,L=null,W)=>O(H=>{x(H),A.call(L,H)},null,W),E)}Ln.forEach=s;function a(O,x,E){return u((A,L=null,W)=>O(H=>x(H)&&A.call(L,H),null,W),E)}Ln.filter=a;function l(O){return O}Ln.signal=l;function c(...O){return(x,E=null,A)=>{let L=au(...O.map(W=>W(H=>x.call(E,H))));return f(L,A)}}Ln.any=c;function p(O,x,E,A){let L=E;return o(O,W=>(L=x(L,W),L),A)}Ln.reduce=p;function u(O,x){let E,A={onWillAddFirstListener(){E=O(L.fire,L)},onDidRemoveLastListener(){E?.dispose()}};x||t(A);let L=new _(A);return x?.add(L),L.event}function f(O,x){return x instanceof Array?x.push(O):x&&x.add(O),O}function g(O,x,E=100,A=!1,L=!1,W,H){let Oe,le,Ve,Le=0,He,Nt={leakWarningThreshold:W,onWillAddFirstListener(){Oe=O(Nd=>{Le++,le=x(le,Nd),A&&!Ve&&(Fn.fire(le),le=void 0),He=()=>{let Wd=le;le=void 0,Ve=void 0,(!A||Le>1)&&Fn.fire(Wd),Le=0},typeof E=="number"?(Ve&&clearTimeout(Ve),Ve=setTimeout(He,E)):Ve===void 0&&(Ve=null,queueMicrotask(He))})},onWillRemoveListener(){L&&Le>0&&He?.()},onDidRemoveLastListener(){He=void 0,Oe.dispose()}};H||t(Nt);let Fn=new _(Nt);return H?.add(Fn),Fn.event}Ln.debounce=g;function b(O,x=0,E,A){return Ln.debounce(O,(L,W)=>L?(L.push(W),L):[W],x,void 0,E??!0,void 0,A)}Ln.accumulate=b;function y(O,x,E=100,A=!0,L=!0,W,H){let Oe,le,Ve,Le=0,He={leakWarningThreshold:W,onWillAddFirstListener(){Oe=O(Fn=>{Le++,le=x(le,Fn),Ve===void 0&&(A&&(Nt.fire(le),le=void 0,Le=0),typeof E=="number"?Ve=setTimeout(()=>{L&&Le>0&&Nt.fire(le),le=void 0,Ve=void 0,Le=0},E):(Ve=0,queueMicrotask(()=>{L&&Le>0&&Nt.fire(le),le=void 0,Ve=void 0,Le=0})))})},onDidRemoveLastListener(){Oe.dispose()}};H||t(He);let Nt=new _(He);return H?.add(Nt),Nt.event}Ln.throttle=y;function I(O,x=(A,L)=>A===L,E){let A=!0,L;return a(O,W=>{let H=A||!x(W,L);return A=!1,L=W,H},E)}Ln.latch=I;function v(O,x,E){return[Ln.filter(O,x,E),Ln.filter(O,A=>!x(A),E)]}Ln.split=v;function S(O,x,E=!1,A=[],L){let W=A.slice(),H;Tu()&&(H={stack:yr.create(),timerId:setTimeout(()=>{W&&W.length>0&&H&&!H.warned&&(H.warned=!0,console.warn(`[Event.buffer][${x}] potential LEAK detected: ${W.length} events buffered for ${Iu/1e3}s without being consumed. Buffered here:`),H.stack.print())},Iu),warned:!1},L&&L.add(P(()=>clearTimeout(H.timerId))));let Oe=()=>{H&&clearTimeout(H.timerId)},le=O(He=>{W?(W.push(He),Tu()&&H&&!H.warned&&W.length>=hh&&(H.warned=!0,console.warn(`[Event.buffer][${x}] potential LEAK detected: ${W.length} events buffered without being consumed. Buffered here:`),H.stack.print())):Le.fire(He)});L&&L.add(le);let Ve=()=>{W?.forEach(He=>Le.fire(He)),W=null,Oe()},Le=new _({onWillAddFirstListener(){le||(le=O(He=>Le.fire(He)),L&&L.add(le))},onDidAddFirstListener(){W&&(E?setTimeout(Ve):Ve())},onDidRemoveLastListener(){le&&le.dispose(),le=null,Oe()}});return L&&L.add(Le),Le.event}Ln.buffer=S;function T(O,x){return(A,L,W)=>{let H=x(new ge);return O(function(Oe){let le=H.evaluate(Oe);le!==$&&A.call(L,le)},void 0,W)}}Ln.chain=T;let $=Symbol("HaltChainable");class ge{constructor(){this.steps=[]}map(x){return this.steps.push(x),this}forEach(x){return this.steps.push(E=>(x(E),E)),this}filter(x){return this.steps.push(E=>x(E)?E:$),this}reduce(x,E){let A=E;return this.steps.push(L=>(A=x(A,L),A)),this}latch(x=(E,A)=>E===A){let E=!0,A;return this.steps.push(L=>{let W=E||!x(L,A);return E=!1,A=L,W?L:$}),this}evaluate(x){for(let E of this.steps)if(x=E(x),x===$)break;return x}}function se(O,x,E=A=>A){let A=(...Oe)=>H.fire(E(...Oe)),L=()=>O.on(x,A),W=()=>O.removeListener(x,A),H=new _({onWillAddFirstListener:L,onDidRemoveLastListener:W});return H.event}Ln.fromNodeEventEmitter=se;function R(O,x,E=A=>A){let A=(...Oe)=>H.fire(E(...Oe)),L=()=>O.addEventListener(x,A),W=()=>O.removeEventListener(x,A),H=new _({onWillAddFirstListener:L,onDidRemoveLastListener:W});return H.event}Ln.fromDOMEventEmitter=R;function U(O,x){let E,A,L=new Promise(W=>{A=n(O)(W),xl(A,x),E=()=>{xu(A,x)}});return L.cancel=E,x&&L.finally(()=>xu(A,x)),L}Ln.toPromise=U;function F(O,x){return O(E=>x.fire(E))}Ln.forward=F;function ae(O,x,E){return x(E),O(A=>x(A))}Ln.runAndSubscribe=ae;class he{constructor(x,E){this._observable=x;this._counter=0;this._hasChanged=!1;let A={onWillAddFirstListener:()=>{x.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{x.removeObserver(this)}};E||t(A),this.emitter=new _(A),E&&E.add(this.emitter)}beginUpdate(x){this._counter++}handlePossibleChange(x){}handleChange(x,E){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 $e(O,x){return new he(O,x).emitter.event}Ln.fromObservable=$e;function zg(O){return(x,E,A)=>{let L=0,W=!1,H={beginUpdate(){L++},endUpdate(){L--,L===0&&(O.reportChanges(),W&&(W=!1,x.call(E)))},handlePossibleChange(){},handleChange(){W=!0}};O.addObserver(H),O.reportChanges();let Oe={dispose(){O.removeObserver(H)}};return xl(Oe,A),Oe}}Ln.fromObservableLight=zg})(Z||={});var Sl=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 ns,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}}},_u=-1;var Il=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 rs(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}},yr=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(`
`))}},rs=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"}},Tl=class extends rs{constructor(t,e,n,r,o){super(t,e,n,r,o),this.name="ListenerRefusalError"}},vh=0,br=class{constructor(t){this.value=t;this.id=vh++}},bh=2,yh=(i,t)=>{if(i instanceof br)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=_u>0||this._options?.leakWarningThreshold?new Il(t?.onListenerError??Ie,this._options?.leakWarningThreshold??_u,this._options?.leakWarningName):void 0,this._perfMon=this._options?._profName?new Sl(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(Su){let t=this._listeners;queueMicrotask(()=>{yh(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 Tl(p,`${l}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||Ie)(u),k.None}if(this._disposed)return k.None;e&&(t=t.bind(e));let r=new br(t),o,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=yr.create(),o=this._leakageMon.check(r.stack,this._size+1)),Su&&(r.stack=s??yr.create()),this._listeners?this._listeners instanceof br?(this._deliveryQueue??=new _l,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=P(()=>{o?.(),this._removeListener(r)});return xl(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*bh<=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||Ie;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 br)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 _l=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 is=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),P(pr(()=>{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 Bi=class{constructor(){this.listening=!1;this.inputEvent=Z.None;this.inputEventListener=k.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 xl(i,t){t instanceof B?t.add(i):Array.isArray(t)&&t.push(i)}function xu(i,t){if(t instanceof B)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var wu=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),st;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof Sr?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Z.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:wu})})(st||={});var Sr=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?wu:(this._emitter||(this._emitter=new _),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},Pe=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 Sr),this._token}cancel(){this._token?this._token instanceof Sr&&this._token.cancel():this._token=st.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof Sr&&this._token.dispose():this._token=st.None}};var Sh=65,Ih=97,Th=90,_h=122,Wn=46,Me=47,tt=92,$t=58,xh=63,os=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 wh(i,t){if(i===null||typeof i!="object")throw new os(t,"Object",i)}function xe(i,t){if(typeof i!="string")throw new os(t,"string",i)}var nt=ts==="win32";function j(i){return i===Me||i===tt}function wl(i){return i===Me}function Vt(i){return i>=Sh&&i<=Th||i>=Ih&&i<=_h}function ss(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=Me}if(n(l)){if(!(s===c-1||a===1))if(a===2){if(r.length<2||o!==2||r.charCodeAt(r.length-1)!==Wn||r.charCodeAt(r.length-2)!==Wn){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===Wn&&a!==-1?++a:a=-1}return r}function Ch(i){return i?`${i[0]==="."?"":"."}${i}`:""}function Cu(i,t){wh(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${Ch(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var Te={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],xe(o,`paths[${r}]`),o.length===0)continue}else t.length===0?o=vr():(o=_e[`=${t}`]||vr(),(o===void 0||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===tt)&&(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 Vt(p)&&o.charCodeAt(1)===$t&&(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=ss(e,!n,"\\",j),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){xe(i,"path");let t=i.length;if(t===0)return".";let e=0,n,r=!1,o=i.charCodeAt(0);if(t===1)return wl(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 Vt(o)&&i.charCodeAt(1)===$t&&(n=i.slice(0,2),e=2,t>2&&j(i.charCodeAt(2))&&(r=!0,e=3));let s=e<t?ss(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&&Vt(s.charCodeAt(0))&&s.charCodeAt(1)===$t)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){xe(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return j(e)||t>2&&Vt(e)&&i.charCodeAt(1)===$t&&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];xe(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 Te.normalize(t)},relative(i,t){if(xe(i,"from"),xe(t,"to"),i===t)return"";let e=Te.resolve(i),n=Te.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("\\"),y=n.split("\\");b[b.length-1]===""&&b.pop(),y[y.length-1]===""&&y.pop();let I=b.length,v=y.length,S=I<v?I:v,T;for(T=0;T<S&&b[T].toLowerCase()===y[T].toLowerCase();T++);return T===0?n:T===S?v>S?y.slice(T).join("\\"):I>S?"..\\".repeat(I-1-T)+"..":"":"..\\".repeat(I-T)+y.slice(T).join("\\")}let r=0;for(;r<i.length&&i.charCodeAt(r)===tt;)r++;let o=i.length;for(;o-1>r&&i.charCodeAt(o-1)===tt;)o--;let s=o-r,a=0;for(;a<t.length&&t.charCodeAt(a)===tt;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===tt;)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===tt&&(u=f)}if(f!==p){if(u===-1)return n}else{if(c>p){if(t.charCodeAt(a+f)===tt)return n.slice(a+f+1);if(f===2)return n.slice(a+f)}s>p&&(i.charCodeAt(r+f)===tt?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)===tt)&&(g+=g.length===0?"..":"\\..");return a+=u,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===tt&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=Te.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===tt){if(t.charCodeAt(1)===tt){let e=t.charCodeAt(2);if(e!==xh&&e!==Wn)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Vt(t.charCodeAt(0))&&t.charCodeAt(1)===$t&&t.charCodeAt(2)===tt)return`\\\\?\\${t}`;return t},dirname(i){xe(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 Vt(r)&&i.charCodeAt(1)===$t&&(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&&xe(t,"suffix"),xe(i,"path");let e=0,n=-1,r=!0,o;if(i.length>=2&&Vt(i.charCodeAt(0))&&i.charCodeAt(1)===$t&&(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){xe(i,"path");let t=0,e=-1,n=0,r=-1,o=!0,s=0;i.length>=2&&i.charCodeAt(1)===$t&&Vt(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===Wn?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:Cu.bind(null,"\\"),parse(i){xe(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(Vt(r)&&i.charCodeAt(1)===$t){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===Wn?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},Rh=(()=>{if(nt){let i=/\\/g;return()=>{let t=vr().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>vr()})(),Q={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let r=i[n];xe(r,`paths[${n}]`),r.length!==0&&(t=`${r}/${t}`,e=r.charCodeAt(0)===Me)}if(!e){let n=Rh();t=`${n}/${t}`,e=n.charCodeAt(0)===Me}return t=ss(t,!e,"/",wl),e?`/${t}`:t.length>0?t:"."},normalize(i){if(xe(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Me,e=i.charCodeAt(i.length-1)===Me;return i=ss(i,!t,"/",wl),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return xe(i,"path"),i.length>0&&i.charCodeAt(0)===Me},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];xe(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":Q.normalize(t.join("/"))},relative(i,t){if(xe(i,"from"),xe(t,"to"),i===t||(i=Q.resolve(i),t=Q.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===Me&&(l=c)}if(c===a)if(s>a){if(t.charCodeAt(o+c)===Me)return t.slice(o+c+1);if(c===0)return t.slice(o+c)}else r>a&&(i.charCodeAt(e+c)===Me?l=c:c===0&&(l=0));let p="";for(c=e+l+1;c<=n;++c)(c===n||i.charCodeAt(c)===Me)&&(p+=p.length===0?"..":"/..");return`${p}${t.slice(o+l)}`},toNamespacedPath(i){return i},dirname(i){if(xe(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===Me,e=-1,n=!0;for(let r=i.length-1;r>=1;--r)if(i.charCodeAt(r)===Me){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&&xe(t,"suffix"),xe(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===Me){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)===Me){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){xe(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:Cu.bind(null,"/"),parse(i){xe(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===Me,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===Me){if(!a){o=l+1;break}continue}s===-1&&(a=!1,s=l+1),p===Wn?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};Q.win32=Te.win32=Te;Q.posix=Te.posix=Q;var dt=nt?Te.normalize:Q.normalize,Ir=nt?Te.isAbsolute:Q.isAbsolute,M=nt?Te.join:Q.join,Bn=nt?Te.resolve:Q.resolve,Ru=nt?Te.relative:Q.relative,ve=nt?Te.dirname:Q.dirname,Se=nt?Te.basename:Q.basename,Eu=nt?Te.extname:Q.extname,m0=nt?Te.format:Q.format,Pu=nt?Te.parse:Q.parse,g0=nt?Te.toNamespacedPath:Q.toNamespacedPath,we=nt?Te.sep:Q.sep,Cl=nt?Te.delimiter:Q.delimiter;function Eh(i){return i}var as=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=Eh):(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 Je=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 Lu(i){return!i||typeof i!="string"?!0:i.trim().length===0}var Ph=/{(\d+)}/g;function $n(i,...t){return t.length===0?i:i.replace(Ph,function(e,n){let r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]})}function qt(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function Rl(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 _r(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 Fu(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function $i(i,t){return i<t?-1:i>t?1:0}function ls(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 El(i,t){return Vn(i,t,0,i.length,0,t.length)}function Vn(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 ls(i.toLowerCase(),t.toLowerCase(),e,n,r,o);Au(l)&&(l-=32),Au(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 Au(i){return i>=97&&i<=122}function Pl(i){return i>=65&&i<=90}function qn(i,t){return i.length===t.length&&Vn(i,t)===0}function pn(i,t){let e=t.length;return e<=i.length&&Vn(i,t,0,e)===0}function Uu(i,t){let e=i.length,n=e-t.length;return n>=0&&Vn(i,t,n,e)===0}function Mu(i){return 55296<=i&&i<=56319}function Al(i){return 56320<=i&&i<=57343}function Nu(i,t){return(i-55296<<10)+(t-56320)+65536}var Ah=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,kh=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,Dh=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,Oh=new RegExp("(?:"+[Ah.source,kh.source,Dh.source].join("|")+")","g");function Wu(i){return i&&(i=i.replace(Oh,"")),i}var C0=String.fromCharCode(65279);var ku=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=Lh()}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 Lh(){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 Du=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new Je(()=>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 as(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,y]of f)g.set(b,y);return g}function o(u,f){if(!u)return f;let g=new Map;for(let[b,y]of u)f.has(b)&&g.set(b,y);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 Je(()=>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())}},Ou=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 fn(i){return i===47||i===92}function cs(i){return i.replace(/[\\/]/g,Q.sep)}function Bu(i){return i.indexOf("/")===-1&&(i=cs(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function Dl(i,t=Q.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(fn(n)){if(fn(i.charCodeAt(1))&&!fn(i.charCodeAt(2))){let o=3,s=o;for(;o<e&&!fn(i.charCodeAt(o));o++);if(s!==o&&!fn(i.charCodeAt(o+1))){for(o+=1;o<e;o++)if(fn(i.charCodeAt(o)))return i.slice(0,o+1).replace(/[\\/]/g,t)}}return t}else if($u(n)&&i.charCodeAt(1)===58)return fn(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(fn(i.charCodeAt(r)))return i.slice(0,r+1)}return""}function xr(i,t,e){let n=i===t;return!e||n?n:!i||!t?!1:qn(i,t)}function zt(i,t,e,n=we){if(i===t)return!0;if(!i||!t||t.length>i.length)return!1;if(e){if(!pn(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 $u(i){return i>=65&&i<=90||i>=97&&i<=122}function Vu(i){return V?(i=_r(i,we),i.endsWith(":")&&(i+=we)):(i=_r(i,we),i||(i=we)),i}function Ol(i){let t=dt(i);return V?i.length>3?!1:qu(t)&&(i.length===2||t.charCodeAt(2)===92):t===Q.sep}function qu(i,t=V){return t?$u(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}var Fh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Uh="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function zu(i,t,e=8){let n="";for(let o=0;o<e;o++){let s;o===0&&V&&!t&&(e===3||e===4)?s=Uh:s=Fh,n+=s.charAt(Math.floor(Math.random()*s.length))}let r;return t?r=`${t}-${n}`:r=n,i?M(i,r):r}var Nh=/^\w[\w\d+.-]*$/,Wh=/^\//,Bh=/^\/\//;function $h(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&&!Nh.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(!Wh.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(Bh.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 Vh(i,t){return!i&&!t?"file":i}function qh(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==ht&&(t=ht+t):t=ht;break}return t}var ce="",ht="/",zh=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,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||ce,this.authority=t.authority||ce,this.path=t.path||ce,this.query=t.query||ce,this.fragment=t.fragment||ce):(this.scheme=Vh(t,s),this.authority=e||ce,this.path=qh(this.scheme,n||ce),this.query=r||ce,this.fragment=o||ce,$h(this,s))}get fsPath(){return Vi(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=ce),n===void 0?n=this.authority:n===null&&(n=ce),r===void 0?r=this.path:r===null&&(r=ce),o===void 0?o=this.query:o===null&&(o=ce),s===void 0?s=this.fragment:s===null&&(s=ce),e===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&s===this.fragment?this:new mn(e,n,r,o,s)}static parse(t,e=!1){let n=zh.exec(t);return n?new mn(n[2]||ce,ds(n[4]||ce),ds(n[5]||ce),ds(n[7]||ce),ds(n[9]||ce),e):new mn(ce,ce,ce,ce,ce)}static file(t){let e=ce;if(V&&(t=t.replace(/\\/g,ht)),t[0]===ht&&t[1]===ht){let n=t.indexOf(ht,2);n===-1?(e=t.substring(2),t=ht):(e=t.substring(2,n),t=t.substring(n)||ht)}return new mn("file",e,t,ce,ce)}static from(t,e){return new mn(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 V&&t.scheme==="file"?n=i.file(Te.join(Vi(t,!0),...e)).path:n=Q.join(t.path,...e),t.with({path:n})}toString(t=!1){return Ll(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new mn(t);return e._formatted=t.external??null,e._fsPath=t._sep===Gu?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};var Gu=V?1:void 0,mn=class extends h{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=Vi(this,!1)),this._fsPath}toString(e=!1){return e?Ll(this,!0):(this._formatted||(this._formatted=Ll(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=Gu),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}},Ju={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 Hu(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=Ju[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 Hh(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+=Ju[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function Vi(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,V&&(e=e.replace(/\//g,"\\")),e}function Ll(i,t){let e=t?Hh:Hu,n="",{scheme:r,authority:o,path:s,query:a,fragment:l}=i;if(r&&(n+=r,n+=":"),(o||r==="file")&&(n+=ht,n+=ht),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:Hu(l,!1,!1)),n}function Qu(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+Qu(i.substr(3)):i}}var ju=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ds(i){return i.match(ju)?i.replace(ju,t=>Qu(t)):i}var re;(z=>(z.inMemory="inmemory",z.vscode="vscode",z.internal="private",z.walkThrough="walkThrough",z.walkThroughSnippet="walkThroughSnippet",z.http="http",z.https="https",z.file="file",z.mailto="mailto",z.untitled="untitled",z.data="data",z.command="command",z.vscodeRemote="vscode-remote",z.vscodeRemoteResource="vscode-remote-resource",z.vscodeManagedRemoteResource="vscode-managed-remote-resource",z.vscodeUserData="vscode-userdata",z.vscodeCustomEditor="vscode-custom-editor",z.vscodeNotebookCell="vscode-notebook-cell",z.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",z.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",z.vscodeNotebookCellOutput="vscode-notebook-cell-output",z.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",z.vscodeNotebookMetadata="vscode-notebook-metadata",z.vscodeInteractiveInput="vscode-interactive-input",z.vscodeSettings="vscode-settings",z.vscodeWorkspaceTrust="vscode-workspace-trust",z.vscodeTerminal="vscode-terminal",z.vscodeImageCarousel="vscode-image-carousel",z.vscodeChatCodeBlock="vscode-chat-code-block",z.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",z.vscodeChatEditor="vscode-chat-editor",z.vscodeChatInput="chatSessionInput",z.vscodeLocalChatSession="vscode-chat-session",z.webviewPanel="webview-panel",z.vscodeWebview="vscode-webview",z.vscodeBrowser="vscode-browser",z.extension="extension",z.vscodeFileResource="vscode-file",z.tmp="tmp",z.vsls="vsls",z.vscodeSourceControl="vscode-scm",z.commentsInput="comment",z.codeSetting="code-setting",z.outputChannel="output",z.accessibleView="accessible-view",z.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",z.chatEditingModel="chat-editing-text-model",z.copilotPr="copilot-pr"))(re||={});var Ml="tkn",Fl=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=Q.join(e??"/",Kh(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return Q.join(this._serverRootPath,re.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 Ie(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+=`&${Ml}=${encodeURIComponent(o)}`),h.from({scheme:gr?this._preferredWebSchema:re.vscodeRemoteResource,authority:`${n}:${r}`,path:this._remoteResourcesPath,query:s})}},jh=new Fl;function Kh(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var Gh="vscode-app",Ul=class i{static{this.FALLBACK_AUTHORITY=Gh}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===re.vscodeRemote?jh.rewrite(t):t.scheme===re.file&&(mu||gu===`${re.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:re.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===re.vscodeFileResource?t.with({scheme:re.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=M(e,t);return h.file(n)}throw new Error("Cannot determine URI for module id!")}},rt=new Ul,W0=Object.freeze({"Cache-Control":"no-cache, no-store"}),B0=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),Jh;(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})(Jh||={});function Ht(i){return Vi(i,!0)}var qi=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:$i(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===re.file)return zt(Ht(t),Ht(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(Yu(t.authority,e.authority))return zt(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 Ae(t)||t.authority}basename(t,e){return Q.basename(t.path,e)}extname(t){return Q.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===re.file?e=h.file(ve(Ht(t))).path:(e=Q.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===re.file?e=h.file(dt(Ht(t))).path:e=Q.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!Yu(t.authority,e.authority))return;if(t.scheme===re.file){let o=Ru(Ht(t),Ht(e));return V?cs(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 Q.relative(n,r)}resolvePath(t,e){if(t.scheme===re.file){let n=h.file(Bn(Ht(t),e));return t.with({authority:n.authority,path:n.path})}return e=Bu(e),t.with({path:Q.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&qn(t,e)}hasTrailingPathSeparator(t,e=we){if(t.scheme===re.file){let n=Ht(t);return n.length>Dl(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=we){return Xu(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=we){let n=!1;if(t.scheme===re.file){let r=Ht(t);n=r!==void 0&&r.length===Dl(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&&!Xu(t,e)?t.with({path:t.path+"/"}):t}},X=new qi(()=>!1),ut=new qi(i=>i.scheme===re.file?!ye:!0),Nl=new qi(i=>!0),Qh=X.isEqual.bind(X),Wl=X.isEqualOrParent.bind(X),K0=X.getComparisonKey.bind(X),G0=X.basenameOrAuthority.bind(X),Ae=X.basename.bind(X),Bl=X.extname.bind(X),gn=X.dirname.bind(X),ne=X.joinPath.bind(X),vt=X.normalizePath.bind(X),J0=X.relativePath.bind(X),Q0=X.resolvePath.bind(X),Zu=X.isAbsolutePath.bind(X),Yu=X.isEqualAuthority.bind(X),Xu=X.hasTrailingPathSeparator.bind(X),Y0=X.removeTrailingPathSeparator.bind(X),X0=X.addTrailingPathSeparator.bind(X);var Yh;(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})(Yh||={});var ep=Symbol("MicrotaskDelay");function gs(i){return!!i&&typeof i.then=="function"}function Pr(i){let t=new Pe,e=i(t.token),n=!1,r=new Promise((o,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new Fe)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?Xo(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 rp(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 $l=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new Pe}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 bt=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()}},Zh=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},ev=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},zi=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===ep?ev(n):Zh(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new Fe),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},zn=class{constructor(t){this.delayer=new zi(t),this.throttler=new $l}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()}},ps=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 jt(i,t){return t?new Promise((e,n)=>{let r=setTimeout(()=>{o.dispose(),e()},i),o=t.onCancellationRequested(()=>{clearTimeout(r),o.dispose(),n(new Fe)})}):Pr(e=>jt(i,e))}function hs(i,t=0,e){let n=setTimeout(()=>{i(),e&&r.dispose()},t),r=P(()=>{clearTimeout(n),e?.delete(r)});return e?.add(r),r}var wr=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?Z.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()}},Vl=class extends wr{constructor(){super(1)}};var Cr=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 Ne;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=X){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=X){let r=n.getComparisonKey(t),o=this.queues.get(r);if(!o){o=new Vl;let s=this.drainListenerCount++,a=Z.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 ot),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 Rr=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 fs=class extends Rr{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()}},Er=class extends k{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new an);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 Rr(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},tv,us;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?us=(t,e,n)=>{hu(()=>{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)}}}:us=(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))}}},tv=(t,e)=>us(globalThis,t,e)})();var ql=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=us(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}},ms=class extends ql{constructor(t){super(globalThis,t)}};async function ip(i,t,e){let n;for(let r=0;r<e;r++)try{return await i()}catch(o){n=o,await jt(t)}throw n}var Ne=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 Fe)}},Hn;(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})(Hn||={});var tp=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 Z.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 zl=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 ue("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 Ne;return this._unsatisfiedConsumers.push(t),t.p}}},np=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new zl;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 Ne,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 Hi(i){let t=i;return t?[t.on,t.pause,t.resume,t.destroy].every(e=>typeof e=="function"):!1}function vs(i){let t=i;return t?Hi(t.stream)&&Array.isArray(t.buffer)&&typeof t.ended=="boolean":!1}function Kt(i,t){return new Hl(i,t)}var Hl=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?Ie(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 op(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function sp(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 bs(i,t){return new Promise((e,n)=>{let r=[];ys(i,{onData:o=>{t&&r.push(o)},onError:o=>{t?n(o):e(void 0)},onEnd:()=>{e(t?t(r):void 0)}})})}function ys(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 ap(i,t){return new Promise((e,n)=>{let r=new B,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(P(()=>i.removeListener("error",a))),i.on("error",a),r.add(P(()=>i.removeListener("end",l))),i.on("end",l),r.add(P(()=>i.removeListener("data",s))),i.on("data",s)})}function lp(i){let t=!1;return{read:()=>t?null:(t=!0,i)}}function jl(i,t,e){let n=Kt(e);return ys(i,{onData:r=>n.write(t.data(r)),onError:r=>n.error(t.error?t.error(r):r),onEnd:()=>n.end()}),n}var ji=typeof Buffer<"u",rv=new Je(()=>new Uint8Array(256)),Kl,Gl,w=class i{static alloc(t){return ji?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return ji&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&ji?new i(Buffer.from(t)):(Kl||(Kl=new TextEncoder),new i(Kl.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 ji&&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 ji?this.buffer.toString():(Gl||(Gl=new TextDecoder(void 0,{ignoreBOM:!0})),Gl.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 ov(this.buffer,t)}writeUInt32BE(t,e){sv(this.buffer,t,e)}readUInt32LE(t){return av(this.buffer,t)}writeUInt32LE(t,e){lv(this.buffer,t,e)}readUInt8(t){return cv(this.buffer,t)}writeUInt8(t,e){dv(this.buffer,t,e)}indexOf(t,e=0){return iv(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 iv(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=rv.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 ov(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function sv(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 av(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function lv(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 cv(i,t){return i[t]}function dv(i,t,e){i[e]=t}function up(i){return op(i,t=>w.concat(t))}function pp(i){return lp(i)}function Ki(i){return bs(i,t=>w.concat(t))}async function fp(i){return i.ended?w.concat(i.buffer):w.concat([...i.buffer,await Ki(i.stream)])}function mp(i){return Kt(t=>w.concat(t),i)}function Gi(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 cp="0123456789abcdef";function yt({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=cp[n>>>4],t+=cp[n&15]}return t}function Ar(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]=dp(i,e++)<<4|dp(i,e++);return w.wrap(t)}function dp(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 G(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 Ji(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]=Ji(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=Ji(i[e],t+1))}return i}function Or(i){switch(i){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function Ss(i){switch(i){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function kr(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 uv=hn(0);function Dr(i,t){if(t===0){i.write(uv);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 Qi=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}},Is=class{constructor(){this.buffers=[]}get buffer(){return w.concat(this.buffers)}write(t){this.buffers.push(t)}};function hn(i){let t=w.alloc(1);return t.writeUInt8(i,0),t}var jn={Undefined:hn(0),String:hn(1),Buffer:hn(2),VSBuffer:hn(3),Array:hn(4),Object:hn(5),Uint:hn(6)};function Yi(i,t){if(typeof t>"u")i.write(jn.Undefined);else if(typeof t=="string"){let e=w.fromString(t);i.write(jn.String),Dr(i,e.byteLength),i.write(e)}else if(w.isNativeBuffer(t)){let e=w.wrap(t);i.write(jn.Buffer),Dr(i,e.byteLength),i.write(e)}else if(t instanceof w)i.write(jn.VSBuffer),Dr(i,t.byteLength),i.write(t);else if(Array.isArray(t)){i.write(jn.Array),Dr(i,t.length);for(let e of t)Yi(i,e)}else if(typeof t=="number"&&(t|0)===t)i.write(jn.Uint),Dr(i,t);else{let e=w.fromString(JSON.stringify(t));i.write(jn.Object),Dr(i,e.byteLength),i.write(e)}}function Fr(i){switch(i.read(1).readUInt8(0)){case 0:return;case 1:return i.read(kr(i)).toString();case 2:return i.read(kr(i)).buffer;case 3:return i.read(kr(i));case 4:{let e=kr(i),n=[];for(let r=0;r<e;r++)n.push(Fr(i));return n}case 5:return JSON.parse(i.read(kr(i)).toString());case 6:return kr(i)}}var Xi=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,Ss(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,Ss(t.type),t.data);return}}}send(t,e=void 0){let n=new Is;return Yi(n,t),Yi(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onRawMessage(t){let e=new Qi(t),n=Fr(e),r=Fr(e),o=n[0];switch(o){case 100:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Or(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,`${Or(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,`${Or(o)}`),this.disposeActiveRequest({type:o,id:n[1]});case 103:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Or(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 Pe,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=P(()=>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 Lr=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 Fe):e.requestPromise(t,n,r,o)},listen(n,r){return e.isDisposed?Z.None:e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=st.None){let o=this.lastRequestId++,a={id:o,type:100,channelName:t,name:e,arg:n};if(r.isCancellationRequested)return Promise.reject(new Fe);let l,c;return new Promise((u,f)=>{if(r.isCancellationRequested)return f(new Fe);let g=()=>{let I=v=>{switch(v.type){case 201:this.handlers.delete(o),u(v.data);break;case 202:{this.handlers.delete(o);let S=new Error(v.data.message);S.stack=Array.isArray(v.data.stack)?v.data.stack.join(`
`):v.data.stack,S.name=v.data.name,f(S);break}case 203:this.handlers.delete(o),f(v.data);break}};this.handlers.set(o,I),this.sendRequest(a)},b=null;this.state===1?g():(b=Pr(I=>this.whenInitialized()),b.then(()=>{b=null,g()}));let y=()=>{b?(b.cancel(),b=null):this.sendRequest({id:o,type:101}),f(new Fe)};l=r.onCancellationRequested(y),c={dispose:pr(()=>{y(),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=Pr(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,`${Or(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,Or(t.type));return}}}send(t,e=void 0){let n=new Is;return Yi(n,t),Yi(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new Qi(t),n=Fr(e),r=Fr(e),o=n[0];switch(o){case 200:return this.logger?.logIncoming(t.byteLength,0,0,Ss(o)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,Ss(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 Z.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()}};C([G],Lr.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 B;this.disposables.add(t(({protocol:r,onDidClientDisconnect:o})=>{let s=Z.once(r.onMessage),a=new B,l=s(c=>{let p=new Qi(c),u=Fr(p),f=new Xi(r,u,e,n),g=new Lr(r,e);this.channels.forEach((y,I)=>f.registerChannel(I,y));let b={channelServer:f,channelClient:g,ctx:u};this._connections.add(b),this._onDidAddConnection.fire(b),a.add(o(()=>{f.dispose(),g.dispose(),this._connections.delete(b),this._onDidRemoveConnection.fire(b),this.disposables.delete(a),a.dispose()}))});a.add(l),this.disposables.add(a)}))}get connections(){let t=[];return this._connections.forEach(e=>t.push(e)),t}getChannel(t,e){let n=this;return{call(r,o,s){let a;if(Oi(e)){let c=Hd(n.connections.filter(e));a=c?Promise.resolve(c):Z.toPromise(Z.filter(n.onDidAddConnection,e))}else a=e.routeCall(n,r,o);let l=a.then(c=>c.channelClient.getChannel(t));return gp(l).call(r,o,s)},listen(r,o){if(Oi(e))return n.getMulticastEvent(t,e,r,o);let s=e.routeEvent(n,r,o).then(a=>a.channelClient.getChannel(t));return gp(s).listen(r,o)}}}getMulticastEvent(t,e,n,r){let o=this,s,a=new _({onWillAddFirstListener:()=>{s=new B;let l=new is,c=new Map,p=f=>{let b=f.channelClient.getChannel(t).listen(n,r),y=l.add(b);c.set(f,y)},u=f=>{let g=c.get(f);g&&(g.dispose(),c.delete(f))};o.connections.filter(e).forEach(p),Z.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 gp(i){return{call(t,e,n){return i.then(r=>r.call(t,e,n))},listen(t,e){let n=new Bi;return i.then(r=>n.input=r.listen(t,e)),n.event}}}function hp(i){let t=!1;return{call(e,n,r){return t?i.call(e,n,r):jt(0).then(()=>t=!0).then(()=>i.call(e,n,r))},listen(e,n){if(t)return i.listen(e,n);let r=new Bi;return jt(0).then(()=>t=!0).then(()=>r.input=i.listen(e,n)),r.event}}}var Ur;(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,Z.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 y=l[f];if(typeof y=="function"){if(n(f))return y.call(l,g);if(e(f))return p.set(f,Z.buffer(l[f],f,!0,void 0,s)),p.get(f)}throw new Ct(`Event not found: ${f}`)}call(u,f,g){let b=l[f];if(typeof b=="function"){if(!c&&Array.isArray(g))for(let I=0;I<g.length;I++)g[I]=Ji(g[I]);let y=b.apply(l,g);return y instanceof Promise||(y=Promise.resolve(y)),y}throw new Ct(`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&&!Di(s.context)?u=[s.context,...p]:u=p;let f=await o.call(c,u);return a?f:Ji(f)};throw new Ct(`Property not found: ${String(c)}`)}})}r.toService=t;function e(o){return o[0]==="o"&&o[1]==="n"&&Pl(o.charCodeAt(2))}function n(o){return/^onDynamic/.test(o)&&Pl(o.charCodeAt(9))}})(Ur||={});import{fork as Nv}from"child_process";function vp(i){let t=i;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function pv(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 fv(i){if(!i)return i;let t=i.indexOf(`
`);return t===-1?i:i.substring(0,t)}function bp(i,t){let{args:e,stack:n}=pv(i),r=typeof e[0]=="string"&&e.length===1,o=fv(n);o&&(o=`(${o.trim()})`);let s=[];if(typeof e[0]=="string"?o&&r?s=[`%c[${t}] %c${e[0]} %c${o}`,Mr("blue"),Mr(""),Mr("grey")]:s=[`%c[${t}] %c${e[0]}`,Mr("blue"),Mr(""),...e.slice(1)]:s=[`%c[${t}]%`,Mr("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 Mr(i){return`color: ${i}`}function Ql(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"?Ql(n):n}),t}var mv=Object.prototype.hasOwnProperty;function Yl(i,t){return Jl(i,t,new Set)}function Jl(i,t,e){if(Di(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(Jl(o,t,e));return r}if(Jo(i)){if(e.has(i))throw new Error("Cannot clone recursive data-structure");e.add(i);let r={};for(let o in i)mv.call(i,o)&&(r[o]=Jl(i[o],t,e));return e.delete(i),r}return i}function Pt(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(!Pt(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(),!Pt(r,o))return!1;for(e=0;e<r.length;e++)if(!Pt(i[r[e]],t[r[e]]))return!1}return!0}import*as Uv from"child_process";import{promises as __}from"fs";function yp(i){i&&(delete i.DEBUG,ye&&delete i.LD_PRELOAD)}import*as q from"fs";import{tmpdir as Sv}from"os";import{promisify as eo}from"util";var gv=new Rt(1e4);function Zi(i){return Sp(i,"NFC",gv)}var hv=new Rt(1e4);function vv(i){return Sp(i,"NFD",hv)}var bv=/[^\u0000-\u0080]/;function Sp(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let r;return bv.test(i)?r=i.normalize(t):r=i,e.set(i,r),r}var yv=(function(){let i=new Rt(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let r=vv(e).replace(t,""),o=(r.length===e.length?r:e).toLowerCase();return i.set(e,o),o}})();async function _p(i,t=0,e){if(Ol(i))throw new Error("rimraf - will refuse to recursively delete root");return t===0?Xl(i):Iv(i,e)}async function Iv(i,t=zu(Sv())){try{try{await q.promises.rename(i,t)}catch(e){return e.code==="ENOENT"?void 0:Xl(i)}Xl(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function Xl(i){return q.promises.rm(i,{recursive:!0,force:!0,maxRetries:3})}async function _s(i,t){try{return await Ip(i,t)}catch(e){if(e.code==="ENOENT"&&V&&Ol(i))try{return await Ip(`${i}.`,t)}catch{}throw e}}async function Ip(i,t){return _v(await(t?Tv(i):q.promises.readdir(i)))}async function Tv(i){try{return await q.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 _s(i);for(let n of e){let r=!1,o=!1,s=!1;try{let a=await q.promises.lstat(M(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 _v(i){return i.map(t=>typeof t=="string"?Ue?Zi(t):t:(t.name=Ue?Zi(t.name):t.name,t))}async function xv(i){let t=await _s(i),e=[];for(let n of t)await Qe.existsDirectory(M(i,n))&&e.push(n);return e}var Qe;(n=>{async function i(r){let o;try{if(o=await q.promises.lstat(r),!o.isSymbolicLink())return{stat:o}}catch{}try{return{stat:await q.promises.stat(r),symbolicLink:o?.isSymbolicLink()?{dangling:!1}:void 0}}catch(s){if(s.code==="ENOENT"&&o)return{stat:o,symbolicLink:{dangling:!0}};if(V&&s.code==="EACCES")try{return{stat:await q.promises.stat(await q.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})(Qe||={});var wv=new Cr;function Cv(i,t,e){return wv.queueFor(h.file(i),()=>{let n=Pv(e);return new Promise((r,o)=>Ev(i,t,n,s=>s?o(s):r()))},ut)}var xp=!0;function Rv(i){xp=i}function Ev(i,t,e,n){if(!xp)return q.writeFile(i,t,{mode:e.mode,flag:e.flag},n);q.open(i,e.flag,e.mode,(r,o)=>{if(r)return n(r);q.writeFile(o,t,s=>{if(s)return q.close(o,()=>n(s));q.fdatasync(o,a=>(a&&(console.warn("[node.js fs] fdatasync is now disabled for this session because it failed: ",a),Rv(!1)),q.close(o,l=>n(l))))})})}function Pv(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 Av(i,t,e=6e4){if(i!==t)try{V&&typeof e=="number"?await wp(i,t,Date.now(),e):await q.promises.rename(i,t)}catch(n){if(i.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||i.endsWith("."))await Cp(i,t,{preserveSymlinks:!1}),await _p(i,1);else throw n}}async function wp(i,t,e,n,r=0){try{return await q.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 Qe.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw o}return await jt(Math.min(100,r*10)),wp(i,t,e,n,r+1)}}async function Cp(i,t,e){return Rp(i,t,{root:{source:i,target:t},options:e,handledSourcePaths:new Set})}var Tp=511;async function Rp(i,t,e){if(e.handledSourcePaths.has(i))return;e.handledSourcePaths.add(i);let{stat:n,symbolicLink:r}=await Qe.stat(i);if(r){if(e.options.preserveSymlinks)try{return await Ov(i,t,e)}catch{}if(r.dangling)return}return n.isDirectory()?kv(i,t,n.mode&Tp,e):Dv(i,t,n.mode&Tp)}async function kv(i,t,e,n){await q.promises.mkdir(t,{recursive:!0,mode:e});let r=await _s(i);for(let o of r)await Rp(M(i,o),M(t,o),n)}async function Dv(i,t,e){await q.promises.copyFile(i,t),await q.promises.chmod(t,e)}async function Ov(i,t,e){let n=await q.promises.readlink(i);zt(n,e.root.source,!ye)&&(n=M(e.root.target,n.substr(e.root.source.length+1))),await q.promises.symlink(n,t)}async function Lv(i){try{return await eo(q.realpath)(i)}catch{let t=Fv(i);return await q.promises.access(t,q.constants.R_OK),t}}function Fv(i){return _r(dt(i),we)}var fe=new class{get read(){return(i,t,e,n,r)=>new Promise((o,s)=>{q.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)=>{q.write(i,t,e,n,r,(a,l,c)=>a?s(a):o({bytesWritten:l,buffer:c}))})}get fdatasync(){return eo(q.fdatasync)}get open(){return eo(q.open)}get close(){return eo(q.close)}get ftruncate(){return eo(q.ftruncate)}async exists(i){try{return await q.promises.access(i),!0}catch{return!1}}get readdir(){return _s}get readDirsInDir(){return xv}get writeFile(){return Cv}get rm(){return _p}get rename(){return Av}get copy(){return Cp}get realpath(){return Lv}};function Pp(i=_e){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))}})||V)&&(e=!0)};return{send:n}}var xs=class extends Xi{constructor(t){super({send:e=>{try{process.send?.(e.buffer.toString("base64"))}catch{}},onMessage:Z.fromNodeEventEmitter(process,"message",e=>w.wrap(Buffer.from(e,"base64")))},t),process.once("disconnect",()=>this.dispose())}},ws=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 zi(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=st.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(r.isCancellationRequested)return Promise.reject(qo());this.disposeDelayer.cancel();let o=this.getCachedChannel(t),s=Pr(c=>o.call(e,n,c)),a=r.onCancellationRequested(()=>s.cancel()),l=P(()=>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 Z.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={...Ql(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-"))),yp(e.env),this.child=Nv(this.modulePath,t,e);let n=new _,o=Z.fromNodeEventEmitter(this.child,"message",u=>u)(u=>{if(vp(u)){bp(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 Lr(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 Cs(i){return!!i.parentPort}var Zl=class{constructor(t){this.port=t;this.onMessage=Z.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()}},to=class i extends Ts{static getOnDidClientConnect(t){ou(Cs(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)}),Z.map(e.event,n=>({protocol:new Zl(n),onDidClientDisconnect:Z.fromNodeEventEmitter(n,"close")}))}constructor(t){super(i.getOnDidClientConnect(t))}};var J=(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 $o from"os";import*as Bo from"inspector";var St;(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})(St||={});var vn=ee("instantiationService");function Bv(i,t,e){t[St.DI_TARGET]===t?t[St.DI_DEPENDENCIES].push({id:i,index:e}):(t[St.DI_DEPENDENCIES]=[{id:i,index:e}],t[St.DI_TARGET]=t)}function ee(i){if(St.serviceIds.has(i))return St.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");Bv(t,e,r)};return t.toString=()=>i,St.serviceIds.set(i,t),t}var kp="VSCODE_AGENT_HOST_ENABLE_CLAUDE",Nr={resource:"https://api.github.com",resource_name:"GitHub Copilot",authorization_servers:["https://github.com/login/oauth"],scopes_supported:["read:user","user:email"],required:!0},ie;(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})(ie||={});var lx=ee("agentService"),cx=ee("agentHostService");function ec(i,t){return t&&(i.stack||i.stacktrace)?m(116,null,Op(i),Dp(i.stack)||Dp(i.stacktrace)):Op(i)}function Dp(i){return Array.isArray(i)?i.join(`
`):i}function Op(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 Kn(i=null,t=!1){if(!i)return m(113,null);if(Array.isArray(i)){let e=Ho(i),n=Kn(e[0],t);return e.length>1?m(114,null,n,e.length):n}if(qe(i))return i;if(i.detail){let e=i.detail;if(e.error)return ec(e.error,t);if(e.exception)return ec(e.exception,t)}return i.stack?ec(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 Mp(t,this)}},Lp=new Map,tc=new WeakMap;function Mp(i,t){let e=tc.get(i);if(e)return e;let n=$v(i,t);if(n){let r=Lp.get(n)??0;r++,Lp.set(n,r);let o=r===1?n:`${n}#${r}`;return tc.set(i,o),o}}function $v(i,t){let e=tc.get(i);if(e)return e;let n=t.owner?qv(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=no(s),r!==void 0))return n+r;if(t.owner!==void 0){let a=Vv(t.owner,i);if(a!==void 0)return n+a}}function Vv(i,t){for(let e in i)if(i[e]===t)return e}var Fp=new Map,Up=new WeakMap;function qv(i){let t=Up.get(i);if(t)return t;let e=nc(i)??"Object",n=Fp.get(e)??0;n++,Fp.set(e,n);let r=n===1?e:`${e}#${n}`;return Up.set(i,r),r}function nc(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function no(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function pt(i,t){return i===t}function zv(){return(i,t)=>i===t}function Hv(i,t,e){return Pi(i,t,e??pt)}function jv(i){return(t,e)=>Pi(t,e,i??pt)}function Rs(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(!Rs(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)||!Rs(e[a],n[a]))return!1;return!0}return!1}function Kv(){return(i,t)=>Rs(i,t)}function Gv(i,t){return JSON.stringify(i)===JSON.stringify(t)}function Jv(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function Qv(){return(i,t)=>i.equals(t)}function Yv(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function Xv(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var Zv;(u=>(u.strict=pt,u.strictC=zv,u.array=Hv,u.arrayC=jv,u.structural=Rs,u.structuralC=Kv,u.jsonStringify=Gv,u.jsonStringifyC=Jv,u.thisC=Qv,u.ifDefined=Yv,u.ifDefinedC=Xv))(Zv||={});function rc(i){let t=new Error("BugIndicatingErrorRecovery: "+i);Ie(t),console.error("recovered from an error that indicates a bug",t)}var Gn;function ro(i){Gn?Gn instanceof Es?Gn.loggers.push(i):Gn=new Es([Gn,i]):Gn=i}function me(){return Gn}var ic;function Np(i){ic=i}function Wp(i){ic&&ic(i)}var Es=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 Qn(i,t){let e=new Jn(i,t);try{i(e)}finally{e.finish()}}function oc(i,t,e){i?t(i):Qn(t,e)}var Jn=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];me()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():no(this._fn)}updateObserver(t,e){if(!this._updatingObservers){rc("Transaction already finished!"),Qn(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){rc("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,me()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var Ee;(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,sc.fromStack(s,2)}n.ofCaller=e})(Ee||={});var sc=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=eb(n[e+1]);if(r)return new i(r.fileName,r.line,r.column,r.id)}};function eb(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 ac;function Bp(i){ac=i}var $p;function Vp(i){$p=i}var qp;function zp(i){qp=i}var lc;function Hp(i){lc=i}var Ps=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=Ee.ofCaller()){let r=e===void 0?void 0:t,o=e===void 0?t:e;return ac({owner:r,debugName:()=>{let s=no(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 ac({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add($p(this,e)),this}keepObserved(t){return t.add(qp(this)),this}get debugValue(){return this.get()}get debug(){return new cc(this)}},cc=class{constructor(t){this.observable=t}getDependencyGraph(){return lc(this.observable,{type:"dependencies"})}getObserverGraph(){return lc(this.observable,{type:"observers"})}},It=class extends Ps{constructor(e){super();this._observers=new Set;me()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&me()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&me()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!me();return Wp(this),e||me()?.handleObservableCreated(this,Ee.ofCaller()),this}debugGetObservers(){return this._observers}};function At(i,t,e=Ee.ofCaller()){let n;return typeof i=="string"?n=new Ke(void 0,i,void 0):n=new Ke(i,void 0,void 0),new Gt(n,t,pt,e)}var Gt=class extends It{constructor(e,n,r,o){super(o);this._debugNameData=e;this._equalityComparator=r;this._value=n,me()?.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 Jn(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),me()?.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 tb(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Jt=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),me()?.handleAutorunCreated(this,r),this._run(),ln(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(),me()?.handleAutorunDisposed(this),cn(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){me()?.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){sn(r)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||me()?.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--}Ai(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){me()?.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){sn(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new ue("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 ue("Cannot access store after dispose");return this._store===void 0&&(this._store=new B),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new ue("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new B),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:tb(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?(sn(new ue(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function Wr(i,t=Ee.ofCaller()){return new Jt(new Ke(void 0,void 0,i),i,void 0,t)}function nb(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var We=class extends It{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,me()?.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),me()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:o})}catch(r){sn(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 ue("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)}}Ai(()=>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){me()?.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){sn(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 ue("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 B),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new B),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:nb(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 dc(i,t,e=Ee.ofCaller()){return new We(new Ke(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??pt,e)}Bp(dc);function Br(...i){let t,e,n,r;return i.length===2?[e,n]=i:[t,e,n,r]=i,new ft(new Ke(t,void 0,n),e,n,()=>ft.globalTransaction,pt,r??Ee.ofCaller())}var ft=class extends It{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,oc(this._getTransaction(),a=>{me()?.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||me()?.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=ft;function t(n,r){let o=!1;ft.globalTransaction===void 0&&(ft.globalTransaction=n,o=!0);try{r()}finally{o&&(ft.globalTransaction=void 0)}}e.batchEventsGlobally=t})(Br||={});function Kp(i){let t=new As(!1,void 0);return i.addObserver(t),P(()=>{i.removeObserver(t)})}zp(Kp);function Gp(i,t){let e=new As(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return P(()=>{i.removeObserver(e)})}Vp(Gp);var As=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 ks;function Qp(i){ks||(ks=new io,ro(ks)),ks.addFilteredObj(i)}var io=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 lb([$r(ub("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[$r(" "),mt(at(t.oldValue,70),{color:"red",strikeThrough:!0}),$r(" "),mt(at(t.newValue,60),{color:"green"})]:[$r(" (unchanged)")]:[$r(" "),mt(at(t.newValue,60),{color:"green"}),$r(" (initial)")]}handleObservableCreated(t){if(t instanceof We){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 We){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([Vr("observable value changed"),mt(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return mt(" (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([Vr("derived recomputed"),mt(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([Vr("derived cleared"),mt(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([Vr("observable from event triggered"),mt(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([Vr("autorun"),mt(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([Vr("transaction"),mt(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function lb(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 $r(i){return mt(i,{color:"black"})}function Vr(i){return mt(pb(`${i}: `,10),{color:"black",bold:!0})}function mt(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 at(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)?cb(i,t):db(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function cb(i,t){let e="[ ",n=!0;for(let r of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${at(r,t-e.length)}`}return e+=" ]",e}function db(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=nc(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}: ${at(s,t-n.length)}`}return n+=e?")":" }",n}function ub(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function pb(i,t){for(;i.length<t;)i+=" ";return i}var Ds=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 Yp(i,t){let e=globalThis,n=[],r,{channel:o,handler:s}=fb({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},Ds.createClient(o,()=>{if(!a)throw new Error("Not supported");return a})}function fb(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 Os=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 uc(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?uc(i[e],t[e]):i[e]=t[e]}function pc(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"?pc(i[e],t[e]):i[e]=t[e]}var Ls=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=Yp("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(fr)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(fr),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(fr)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(fr)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof We)n.debugSetValue(e);else if(n instanceof Gt)n.debugSetValue(e);else if(n instanceof ft)n.debugSetValue(e);else throw new ue("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 We)return at(e.debugGetState().value,200);if(e instanceof Gt)return at(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 ue("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof We)e.debugRecompute();else if(e instanceof Jt)e.debugRerun();else throw new ue("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new Os;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};Ee.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){Ie(new ue("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){Ie(new ue("No info found"));return}return e}_getInfo(t,e){if(t instanceof We){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(fr);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 Jt){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 We)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){pc(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:uc(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 We?"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 We){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=at(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=at(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 Xp(i,t){let e=t?.debugNamePostProcessor??(o=>o),n=Yn.from(i,e);if(!n)return"";let r=new Set;return t.type==="observers"?ef(n,0,r,t).trim():Zp(n,0,r,t).trim()}function Zp(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: ${at(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=Yn.from(a,n.debugNamePostProcessor??(c=>c))??Yn.unknown(a);o.push(Zp(l,t+1,e,n))}}return o.join(`
`)}function ef(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: ${at(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=Yn.from(a,n.debugNamePostProcessor??(c=>c))??Yn.unknown(a);o.push(ef(l,t+1,e,n))}}return o.join(`
`)}var Yn=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 Jt){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof We){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 Gt){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof ft){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",[],[])}};Hp(Xp);Np(Qp);var mb=!1;mb&&ro(new io);_e&&_e.VSCODE_DEV_DEBUG_OBSERVABLES&&ro(Ls.getInstance());var fc=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]}},mc=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?ls(t,this._value,0,t.length,this._from,this._to):Vn(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},Fs=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?ls(t,this._value,0,t.length,this._from,this._to):Vn(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var gc=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 Fs(!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 El(t,this._value.scheme);if(this._states[this._stateIdx]===2)return El(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return $i(t,this._value.query);if(this._states[this._stateIdx]===5)return $i(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}},Qt=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}},qr=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 kt=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new gc(t,e))}static forPaths(t=!1){return new i(new Fs(void 0,!t))}static forStrings(){return new i(new fc)}static forConfigKeys(){return new i(new mc)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);al(n);for(let r of n)this.set(r,t)}else{let n=t.slice(0);al(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 qr,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 qr,r.left.segment=n.value()),o.push([-1,r]),r=r.left;else if(a<0)r.right||(r.right=new qr,r.right.segment=n.value()),o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),r.mid||(r.mid=new qr,r.mid.segment=n.value()),o.push([0,r]),r=r.mid;else break}let s=Qt.unwrap(r.value);r.value=Qt.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 Qt.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:Go(!1);case 1:Go(!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=Qt.unwrap(n.value)||r,n=n.mid;else break}return n&&Qt.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?Qt.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,Qt.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 Ye=ee("fileService");function Xt(i){return i.create===!0}function lt(i){return!!(i.capabilities&2)}function tf(i){return!!(i.capabilities&524288)}function hc(i){return!!(i.capabilities&8)}function nf(i){return!!(i.capabilities&131072)}function rf(i){return!!(i.capabilities&262144)}function Zt(i){return!!(i.capabilities&4)}function Ns(i){return!!(i.capabilities&16)}function Ws(i){return lt(i)?!!(i.capabilities&16384):!1}function vc(i){return lt(i)?!!(i.capabilities&32768):!1}function of(i){return!!(i.capabilities&65536)}var zr=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let r=new i(e.toString(),n);return gb(r,n),r}};function te(i,t){return zr.create(i,t)}function en(i){return i||te(m(2221,null),"Unknown")}function gb(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function Dt(i){if(!i)return"Unknown";if(i instanceof zr)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 bc(i){if(i instanceof ke)return i.fileOperationResult;switch(Dt(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 Yt=class{constructor(t,e,n){this.resource=t;this.operation=e;this.target=n}isOperation(t){return this.operation===t}};var Us=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new Je(()=>{let t=kt.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new Je(()=>{let t=kt.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new Je(()=>{let t=kt.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 sf(i,t,e){return!i||!t||i===t||t.length>i.length?!1:(t.charAt(t.length-1)!==we&&(t+=we),e?pn(i,t):i.indexOf(t)===0)}var ke=class extends Error{constructor(e,n,r){super(e);this.fileOperationResult=n;this.options=r}},Hr=class extends ke{constructor(e,n,r,o){super(e,n,o);this.fileOperationResult=n;this.size=r}},jr=class extends ke{constructor(e,n,r){super(e,2,r);this.stat=n}};var Bs="";function yc(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var Ms=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 ki(t)||(t=0),t<i.KB?m(2216,null,t.toFixed(0)):t<i.MB?m(2218,null,(t/i.KB).toFixed(2)):t<i.GB?m(2219,null,(t/i.MB).toFixed(2)):t<i.TB?m(2217,null,(t/i.GB).toFixed(2)):m(2220,null,(t/i.TB).toFixed(2))}};var tn=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var Sc=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},oo=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 Sc(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 bn=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 hb=!1,$s=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},Kr=class i{constructor(t=new bn,e=!1,n,r=hb){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(vn,this),this._globalGraph=r?n?._globalGraph??new oo(o=>o):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,je(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)Xo(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=so.traceInvocation(this._enableTracing,t),r=!1;try{return t({get:s=>{if(r)throw zo("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 tn?(n=so.traceCreation(this._enableTracing,t.ctor),r=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=so.traceCreation(this._enableTracing,t),r=this._createInstance(t,e,n)),n.stop(),r}_createInstance(t,e=[],n){let r=St.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 tn)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 tn?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 oo(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 $s(r);for(let c of St.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 tn){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 $s(r);break}for(let{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof tn){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 tn)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 ms(()=>{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 Fi,l.set(u,b)),(I,v,S)=>{if(c.isInitialized)return c.value[u](I,v,S);{let T={listener:[I,v,S],disposable:void 0},$=b.push(T);return P(()=>{$(),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 so=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 yn(i){return Tc(i,0)}function Tc(i,t){switch(typeof i){case"object":return i===null?nn(349,t):Array.isArray(i)?bb(i,t):yb(i,t);case"string":return lf(i,t);case"boolean":return vb(i,t);case"number":return nn(i,t);case"undefined":return nn(937,t);default:return nn(617,t)}}function nn(i,t){return(t<<5)-t+i|0}function vb(i,t){return nn(i?433:863,t)}function lf(i,t){t=nn(149417,t);for(let e=0,n=i.length;e<n;e++)t=nn(i.charCodeAt(e),t);return t}function bb(i,t){return t=nn(104579,t),i.reduce((e,n)=>Tc(n,e),t)}function yb(i,t){return t=nn(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=lf(n,e),Tc(i[n],e)),t)}function Ic(i,t,e=32){let n=e-t,r=~((1<<n)-1);return(i<<t|(r&i)>>>n)>>>0}function ao(i,t=32){return i instanceof ArrayBuffer?yt(w.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var af=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(Mu(s))if(a+1<e){let c=t.charCodeAt(a+1);Al(c)?(a++,l=Nu(s,c)):l=65533}else{o=s;break}else Al(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()),ao(this._h0)+ao(this._h1)+ao(this._h2)+ao(this._h3)+ao(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,Ic(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=Ic(n,5)+l+a+c+t.getUint32(u*4,!1)&4294967295,a=s,s=o,o=Ic(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 _c(...i){switch(i.length){case 1:return m(2019,null,i[0]);case 2:return m(2020,null,i[0],i[1]);case 3:return m(2021,null,i[0],i[1],i[2]);default:return}}var Sb=m(2018,null),Ib=m(2017,null),Sn=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 zo(`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(_c("==","=~"));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(_c("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(_c("||"));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(Sb);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(Ib);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 De=new Map;De.set("false",!1);De.set("true",!0);De.set("isMac",Ue);De.set("isLinux",ye);De.set("isWindows",V);De.set("isWeb",gr);De.set("isMacNative",Ue&&!gr);De.set("isEdge",yu);De.set("isFirefox",vu);De.set("isChrome",vl);De.set("isSafari",bu);var _b=Object.prototype.hasOwnProperty;var xb={regexParsingWithErrorRecovery:!0},wb=m(1998,null),Cb=m(1999,null),Rb=m(2001,null),cf=m(1997,null),Eb=m(2004,null),Pb=m(2005,null),Ab=m(2002,null),kb=m(2003,null),xc=class i{constructor(t=xb){this._config=t;this._scanner=new Sn;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:wb,offset:0,lexeme:"",additionalInfo:Cb});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?Pb:void 0;throw this._parsingErrors.push({message:Eb,offset:n.offset,lexeme:Sn.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]:Be.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:Be.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),ze.INSTANCE;case 12:return this._advance(),Ge.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,cf),e?.negate()}case 17:return this._advance(),Zn.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(),Be.true();case 12:return this._advance(),Be.false();case 0:{this._advance();let e=this._expr();return this._consume(1,cf),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 go.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(Sn.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 Be.regex(e,u)}case 18:{let o=r.lexeme;this._advance();let s=null;if(!Lu(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 go.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,Rb);let r=this._value();return Be.notIn(e,r)}switch(this._peek().type){case 3:{this._advance();let r=this._value();if(this._previous().type===18)return Be.equals(e,r);switch(r){case"true":return Be.has(e);case"false":return Be.not(e);default:return Be.equals(e,r)}}case 4:{this._advance();let r=this._value();if(this._previous().type===18)return Be.notEquals(e,r);switch(r){case"true":return Be.not(e);case"false":return Be.has(e);default:return Be.notEquals(e,r)}}case 5:return this._advance(),fo.create(e,this._value());case 6:return this._advance(),mo.create(e,this._value());case 7:return this._advance(),Gr.create(e,this._value());case 8:return this._advance(),po.create(e,this._value());case 13:return this._advance(),Be.in(e,this._value());default:return Be.has(e)}}case 20:throw this._parsingErrors.push({message:Ab,offset:t.offset,lexeme:"",additionalInfo:kb}),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(2000,null,t,Sn.getLexeme(e)),o=e.offset,s=Sn.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}},Be=class{static false(){return ze.INSTANCE}static true(){return Ge.INSTANCE}static has(t){return Xn.create(t)}static equals(t,e){return co.create(t,e)}static notEquals(t,e){return uo.create(t,e)}static regex(t,e){return go.create(t,e)}static in(t,e){return Vs.create(t,e)}static notIn(t,e){return qs.create(t,e)}static not(t){return Zn.create(t)}static and(...t){return zs.create(t,null,!0)}static or(...t){return ho.create(t,null,!0)}static greater(t,e){return Gr.create(t,e)}static greaterEquals(t,e){return po.create(t,e)}static smaller(t,e){return fo.create(t,e)}static smallerEquals(t,e){return mo.create(t,e)}static{this._parser=new xc({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function lo(i,t){return i.cmp(t)}var ze=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 Ge.INSTANCE}},Ge=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 ze.INSTANCE}},Xn=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=De.get(t);return typeof n=="boolean"?n?Ge.INSTANCE:ze.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:pf(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=De.get(this.key);return typeof t=="boolean"?t?Ge.INSTANCE:ze.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=Zn.create(this.key,this)),this.negated}},co=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?Xn.create(t,n):Zn.create(t,n);let r=De.get(t);return typeof r=="boolean"?e===(r?"true":"false")?Ge.INSTANCE:ze.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:er(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=De.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?Ge.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.mapEquals(this.key,this.value)}negate(){return this.negated||(this.negated=uo.create(this.key,this.value,this)),this.negated}},Vs=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:er(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(V&&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(_b.call(e,n))return!0;if(V&&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=qs.create(this.key,this.valueKey)),this.negated}},qs=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=Vs.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}},uo=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?Zn.create(t,n):Xn.create(t,n);let r=De.get(t);return typeof r=="boolean"?e===(r?"true":"false")?ze.INSTANCE:Ge.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:er(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=De.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?ze.INSTANCE:Ge.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=co.create(this.key,this.value,this)),this.negated}},Zn=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=De.get(t);return typeof n=="boolean"?n?ze.INSTANCE:Ge.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:pf(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=De.get(this.key);return typeof t=="boolean"?t?ze.INSTANCE:Ge.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=Xn.create(this.key,this)),this.negated}};function js(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):ze.INSTANCE}var Gr=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 js(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:er(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=mo.create(this.key,this.value,this)),this.negated}},po=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 js(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:er(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=fo.create(this.key,this.value,this)),this.negated}},fo=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 js(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:er(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=po.create(this.key,this.value,this)),this.negated}},mo=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 js(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:er(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=Gr.create(this.key,this.value,this)),this.negated}},go=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=wc.create(this)),this.negated}},wc=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 uf(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 zs=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=lo(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=uf(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 ze.INSTANCE;if(s.type===6){r.push(...s.expr);continue}r.push(s)}if(r.length===0&&o)return Ge.INSTANCE;if(r.length!==0){if(r.length===1)return r[0];r.sort(lo);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=ho.create(s.expr.map(p=>i.create([p,a],null,n)),null,l);c&&(r.push(c),r.sort(lo))}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());this.negated=ho.create(t,this,!0)}return this.negated}},ho=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=lo(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=uf(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 Ge.INSTANCE;if(l.type===9){r=r.concat(l.expr);continue}r.push(l)}}if(r.length===0&&o)return ze.INSTANCE;r.sort(lo)}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 Ge.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 df(e))for(let s of df(n))r.push(zs.create([o,s],null,!1));t.unshift(i.create(r,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},Hs=class i extends Xn{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 co.create(this.key,t)}notEqualsTo(t){return uo.create(this.key,t)}greater(t){return Gr.create(this.key,t)}},ZE=ee("contextKeyService");function pf(i,t){return i<t?-1:i>t?1:0}function er(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function df(i){return i.type===9?i.expr:[i]}var Y=ee("logService"),gP=ee("loggerService");function Cc(i){return ki(i)}var ff=3;function Db(i,t){return i!==0&&i<=t}function Jr(i,t=!1){let e="";for(let n=0;n<i.length;n++){let r=i[n];if(r instanceof Error&&(r=Kn(r,t)),typeof r=="object")try{r=JSON.stringify(r)}catch{}e+=(n>0?" ":"")+r}return e}var Ks=class extends k{constructor(){super(...arguments);this.level=ff;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 Db(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},vo=class extends Ks{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,Jr([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,Jr([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,Jr([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,Jr([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,Jr(r))}else this.log(5,Jr([e,...n]))}flush(){}};var Gs=class extends Ks{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()}},bo=class extends k{constructor(e,n,r){super();this.logLevel=e;this.logsHome=n;this._loggers=new Ze;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 qe(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=qe(e)?e:n?.id??yn(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 qe(e)?ne(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 mf(i){if(i.verbose)return 1;if(typeof i.logLevel=="string"){let t=Lb(i.logLevel.toLowerCase());if(t!==void 0)return t}return ff}function Ob(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 Lb(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 hP=new Hs("logLevel",Ob(3));function gf(i){return i.type.startsWith("root/")}function tr(i){return i.type.startsWith("session/")}function yo(i){return i.type.startsWith("terminal/")}var In={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603},Ce={SessionNotFound:-32001,ProviderNotFound:-32002,SessionAlreadyExists:-32003,TurnInProgress:-32004,UnsupportedProtocolVersion:-32005,ContentNotFound:-32006,AuthRequired:-32007,NotFound:-32008,PermissionDenied:-32009,AlreadyExists:-32010};var hf=-32700,Qr=-32603,Tn=-32001,vf=-32002;var bf=-32005;var Js=-32007;function yf(i){return"method"in i&&"id"in i}function Sf(i){return"method"in i&&!("id"in i)}var N=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}};var Ys="agenthost:/root";function xf(i){if(!i.content||i.content.length===0)return[];let t=[];for(let e of i.content)Re(e,{type:!0})&&e.type==="fileEdit"&&t.push(e);return t}function Xs(i,t){return`${i.endsWith("/")?i.slice(0,-1):i}/subagent/${t}`}function Lt(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 wf(){return{agents:[],activeSessions:0}}function Ac(i){return{summary:i,lifecycle:"creating",turns:[],activeTurn:void 0}}var Ec="git";function kc(i){let t=i?.[Ec];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 Cf(i,t){let e={...i};return t!==void 0?e[Ec]=t:delete e[Ec],Object.keys(e).length>0?e:void 0}import*as To from"fs";function xn(i){let t=Dc(i);return{protocol:i,validate:r=>{try{return t(r,""),!0}catch{return!1}},assertValid:(r,o="")=>t(r,o)}}function Xr(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 N(In.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 Dc(i){if(i.type==="object"&&i.properties){let t={};for(let n of Object.keys(i.properties))t[n]=Dc(i.properties[n]);let e=new Set(i.required??[]);return(n,r)=>{if(typeof n!="object"||n===null||Array.isArray(n))throw rr(r,"object",n);let o=n;for(let s of Object.keys(t)){let a=Vb(r,s);if(o[s]===void 0){if(e.has(s))throw new N(In.InvalidParams,`Missing required property at '${a}'`);continue}t[s](o[s],a)}}}if(i.type==="array"&&i.items){let t=Dc(i.items);return(e,n)=>{if(!Array.isArray(e))throw rr(n,"array",e);for(let r=0;r<e.length;r++)t(e[r],`${n}[${r}]`)}}return $b(i)}function $b(i){let t=i.enumDynamic===!0;return(e,n)=>{switch(i.type){case"string":if(typeof e!="string")throw rr(n,"string",e);break;case"number":if(typeof e!="number")throw rr(n,"number",e);break;case"boolean":if(typeof e!="boolean")throw rr(n,"boolean",e);break;case"array":if(!Array.isArray(e))throw rr(n,"array",e);break;case"object":if(typeof e!="object"||e===null||Array.isArray(e))throw rr(n,"object",e);break}if(i.enum&&!t&&!i.enum.includes(e))throw new N(In.InvalidParams,`Invalid value at '${n||"<root>"}': ${Rf(e)} is not one of [${i.enum.map(r=>JSON.stringify(r)).join(", ")}]`)}}function rr(i,t,e){return new N(In.InvalidParams,`Invalid value at '${i||"<root>"}': expected ${t}, got ${Rf(e)}`)}function Vb(i,t){return i?`${i}.${t}`:t}function Rf(i){try{return JSON.stringify(i)}catch{return String(i)}}var Ef=xn({type:"object",title:m(1857,null),description:m(1861,null),properties:{allow:{type:"array",title:m(1858,null),items:{type:"string",title:m(1860,null)}},deny:{type:"array",title:m(1859,null),items:{type:"string",title:m(1860,null)}}},default:{allow:[],deny:[]},sessionMutable:!0}),Tt=Xr({autoApprove:xn({type:"string",title:m(1843,null),description:m(1850,null),enum:["default","autoApprove","autopilot"],enumLabels:[m(1848,null),m(1846,null),m(1844,null)],enumDescriptions:[m(1849,null),m(1847,null),m(1845,null)],default:"default",sessionMutable:!0}),permissions:Ef,mode:xn({type:"string",title:m(1851,null),description:m(1856,null),enum:["interactive","plan"],enumLabels:[m(1852,null),m(1854,null)],enumDescriptions:[m(1853,null),m(1855,null)],default:"interactive",sessionMutable:!0})}),Oc=Xr({permissions:Ef});var Io=Xr({customizations:xn({type:"array",title:m(1841,null),description:m(1837,null),default:[],items:{type:"object",title:m(1840,null),properties:{uri:{type:"string",title:m(1842,null)},displayName:{type:"string",title:m(1839,null)},description:{type:"string",title:m(1838,null)}},required:["uri","displayName"]}})}),Pf={customizations:[]};var _t=ee("agentConfigurationService"),Zr=class extends k{constructor(e,n,r){super();this._stateManager=e;this._logService=n;this._rootConfigResource=r;this._rootConfigWrite=Promise.resolve();this._onDidRootConfigChange=this._register(new _);this.onDidRootConfigChange=this._onDidRootConfigChange.event;let o=this._stateManager.rootState.config,s=Io.toProtocol();this._stateManager.rootState.config={schema:{type:"object",properties:{...o?.schema.properties,...s.properties}},values:{...o?.values,...this._loadPersistedRootConfig()}},this._register(this._stateManager.onDidEmitEnvelope(a=>{a.action.type==="root/configChanged"&&this._onDidRootConfigChange.fire()}))}getEffectiveValue(e,n,r){for(let o of this._effectiveChain(e)){let s=o[r];if(s!==void 0)try{return n.assertValid(r,s),s}catch(a){let l=a instanceof N?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=Lt(e);if(r)return this._stateManager.getSessionState(r.parentSession)?.summary.workingDirectory}updateSessionConfig(e,n){this._stateManager.dispatchServerAction({type:"session/configChanged",session:e,config:n})}getSessionConfigValues(e){return this._stateManager.getSessionState(e)?.config?.values}getRootValue(e,n){let o=this._stateManager.rootState.config?.values?.[n];if(o!==void 0)try{return e.assertValid(n,o),o}catch(s){let a=s instanceof N?s.message:String(s);this._logService.warn(`[AgentConfigurationService] Host value for '${n}' failed schema validation, ignoring: ${a}`);return}}updateRootConfig(e,n=!1){this._stateManager.dispatchServerAction({type:"root/configChanged",config:e,replace:n}),this.persistRootConfig()}persistRootConfig(){if(!this._rootConfigResource)return;let e=this._stateManager.rootState.config?.values??{customizations:[]},n=JSON.stringify(e,void 0,"	"),r=this._rootConfigResource;this._rootConfigWrite=this._rootConfigWrite.catch(o=>{this._logService.warn("[AgentConfigurationService] Previous host config write failed",o)}).then(async()=>{await To.promises.mkdir(ve(r.fsPath),{recursive:!0}),await To.promises.writeFile(r.fsPath,`${n}
`,"utf8")}).catch(o=>{this._logService.error(`[AgentConfigurationService] Failed to persist host config to ${r.fsPath}`,o)})}*_effectiveChain(e){let n=this._stateManager.getSessionState(e)?.config?.values;n&&(yield n);let r=Lt(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)}_loadPersistedRootConfig(){let e=Pf;if(!this._rootConfigResource)return{...e};try{let n=To.readFileSync(this._rootConfigResource.fsPath,"utf8"),r=JSON.parse(n);return Io.validateOrDefault(r,e)}catch(n){return(n&&typeof n=="object"&&Re(n,{code:!0})?String(n.code):void 0)!=="ENOENT"&&this._logService.warn(`[AgentConfigurationService] Failed to read host config from ${this._rootConfigResource.fsPath}: ${n instanceof Error?n.message:String(n)}`),{...e}}}};Zr=C([D(1,Y)],Zr);import*as Lc from"child_process";var zb=ee("environmentService"),ei=zb;var Af="git-blob";function kf(i,t,e){return h.from({scheme:Af,authority:yt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${yt(w.fromString(e))}/${Se(e)}`}).toString()}function Df(i){let t;try{t=h.parse(i)}catch{return}if(t.scheme!==Af)return;let[,e,n]=t.path.split("/");if(!(!e||!n))try{return{sessionUri:Ar(t.authority).toString(),sha:decodeURIComponent(e),repoRelativePath:Ar(n).toString()}}catch{return}}var wn=ee("agentHostGitService"),ea="agentHost.diffBaseBranch";function Of(i){return i==="main"?0:i==="master"?1:2}function Hb(i,t){let e=t?.query?.toLowerCase(),n=e?i.filter(r=>r.toLowerCase().includes(e)):[...i];return n.sort((r,o)=>Of(r)-Of(o)),t?.limit?n.slice(0,t.limit):n}var ti=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 Hb(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 addExistingWorktree(t,e,n){await this._runGit(t,["worktree","add",e.fsPath,n],{timeout:3e4,throwOnError:!0})}async removeWorktree(t,e){await this._runGit(t,["worktree","remove","--force",e.fsPath],{timeout:3e4,throwOnError:!0})}async branchExists(t,e){return await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${e}`])!==void 0}async hasUncommittedChanges(t){let e=await this._runGit(t,["status","--porcelain"]);return!!e&&e.trim().length>0}async computeSessionFileDiffs(t,e){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let r=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!r)return;let o=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=Lf);let a=await this._runGit(o,["status","--porcelain=v1","-z","--untracked-files=all"]),l=jb(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 Kb(c,o,e.sessionUri,s)}async _runWithTempIndex(t,e){let n=h.joinPath(this._environmentService.tmpDir,`agent-host-git-diff-${J()}`);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",Lf],{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=>{Lc.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=Gb(n),a=Jb(r),l=Qb(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 Yb(p)}_runGit(t,e,n){return new Promise((r,o)=>{let s=n?.env?{...process.env,...n.env}:void 0;Lc.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)})})}};ti=C([D(0,Ye),D(1,ei)],ti);var Lf="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function jb(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 Kb(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:kf(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 Gb(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 Jb(i){if(i!==void 0)return i.trim()?/github\.com[:\/]/i.test(i):!1}function Qb(i){let t=i?.trim();if(!t)return;let e="refs/remotes/origin/";return t.startsWith(e)?t.substring(e.length):t}function Yb(i){let t={};for(let[e,n]of Object.entries(i))n!==void 0&&(t[e]=n);return t}import{Worker as Xb}from"worker_threads";var ta=ee("diffComputeService"),Uf=5e3;var Cn=class extends k{constructor(e){super();this._logService=e;this._workerFailures=0;this._nextId=1;this._pending=new Map}async computeDiffCounts(e,n,r=Uf){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=rt.asFileUri("vs/platform/agentHost/node/diffWorkerMain.js").fsPath,n=new Xb(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()}};Cn=C([D(0,Y)],Cn);var Mf="session-db";function Rn(i,t,e,n){return h.from({scheme:Mf,authority:yt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${yt(w.fromString(e))}/${n}/${Se(e)}`}).toString()}function Nf(i){let t=h.parse(i);if(t.scheme!==Mf)return;let[,e,n,r]=t.path.split("/");if(!(!e||!n||r!=="before"&&r!=="after"))try{return{sessionUri:Ar(t.authority).toString(),toolCallId:decodeURIComponent(e),filePath:Ar(n).toString(),part:r}}catch{return}}var ni=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:Rn(this._sessionUri,e,n,"before")}},after:{uri:h.file(n).toString(),content:{uri:Rn(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("")}}};ni=C([D(2,Ye),D(3,Y),D(4,ta)],ni);function Wf(i){return i.after?.uri??i.before?.uri}function Zb(i,t,e,n){let r=t.firstKind!=="create",o=t.lastKind!=="delete";return{...r?{before:{uri:h.file(t.firstFilePath).toString(),content:{uri:Rn(i,t.firstToolCallId,t.firstFilePath,"before")}}}:{},...o?{after:{uri:h.file(t.terminalPath).toString(),content:{uri:Rn(i,t.lastToolCallId,t.lastFilePath,"after")}}}:{},diff:{added:e,removed:n}}}async function Bf(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(Wf));f.some(y=>y.kind==="rename"||g.has(h.file(y.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=>[Wf(f),f])):void 0,p=[],u=[];for(let[f,g]of a){if(l&&!l.has(f)){let b=h.file(g.terminalPath).toString(),y=c.get(b);y&&p.push(y);continue}u.push((async()=>{let b;if(g.firstKind==="create")b="";else{let v=await t.readFileEditContent(g.firstToolCallId,g.firstFilePath);b=v?.beforeContent?new TextDecoder().decode(v.beforeContent):""}let y;if(g.lastKind==="delete")y="";else{let v=await t.readFileEditContent(g.lastToolCallId,g.lastFilePath);y=v?.afterContent?new TextDecoder().decode(v.afterContent):""}if(b===y)return;let I=await e.computeDiffCounts(b,y);p.push(Zb(i,g,I.added,I.removed))})())}return await Promise.allSettled(u),o&&p.push(...n.previousDiffs),p}var ri="**",$f="/",na="[/\\\\]",ra="[^/\\\\]",ey=/\//g;function Vf(i,t){switch(i){case 0:return"";case 1:return`${ra}*?`;default:return`(?:${na}|${ra}+${na}${t?`|${na}${ra}+`:""})*?`}}function qf(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 Gf(i){if(!i)return"";let t="",e=qf(i,$f);if(e.every(n=>n===ri))t=".*";else{let n=!1;e.forEach((r,o)=>{if(r===ri){if(n)return;t+=Vf(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===$f?u="":u=qt(p),c+=u;continue}switch(p){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let f=`(?:${qf(a,",").map(g=>Gf(g)).join("|")})`;t+=f,s=!1,a="";break}case"]":{t+="["+c+"]",l=!1,c="";break}case"?":t+=ra;continue;case"*":t+=Vf(1);continue;default:t+=qt(p)}}o<e.length-1&&(e[o+1]!==ri||o+2<e.length)&&(t+=na)}n=r===ri})}return t}var ty=/^\*\*\/\*\.[\w\.-]+$/,ny=/^\*\*\/([\w\.-]+)\/?$/,ry=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,iy=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,oy=/^\*\*((\/[\w\.-]+)+)\/?$/,sy=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,zf=new Rt(1e4),Hf=function(){return!1},Ft=function(){return null};function Uc(i,t){if(!i)return Ft;let e;typeof i!="string"?e=i.pattern:e=i,e=e.trim();let n=t.ignoreCase??!1,r={...t,equals:n?qn:(l,c)=>l===c,endsWith:n?Uu:(l,c)=>l.endsWith(c),isEqualOrParent:(l,c)=>zt(l,c,t.ignoreCase??!ye)},o=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=zf.get(o);if(s)return jf(s,i,r);let a;return ty.test(e)?s=ay(e.substring(4),e,r):(a=ny.exec(Fc(e,r)))?s=ly(a[1],e,r):(t.trimForExclusions?iy:ry).test(e)?s=cy(e,r):(a=oy.exec(Fc(e,r)))?s=Kf(a[1].substring(1),e,!0,r):(a=sy.exec(Fc(e,r)))?s=Kf(a[1],e,!1,r):s=dy(e,r),zf.set(o,s),jf(s,i,r)}function jf(i,t,e){if(typeof t=="string")return i;let n=function(r,o){return e.isEqualOrParent(r,t.base)?i(Rl(r.substring(t.base.length),we),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 ay(i,t,e){return function(n,r){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function ly(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 cy(i,t){let e=Qf(i.slice(1,-1).split(",").map(a=>Uc(a,t)).filter(a=>a!==Ft),i),n=e.length;if(!n)return Ft;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 Kf(i,t,e,n){let r=we===Q.sep,o=r?i:i.replace(ey,we),s=we+o,a=Q.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 dy(i,t){try{let e=new RegExp(`^${Gf(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return Ft}}function Jf(i,t,e){return!i||typeof t!="string"?!1:Mc(i,e)(t)}function Mc(i,t={}){if(!i)return Hf;if(typeof i=="string"||uy(i)){let e=Uc(i,t);if(e===Ft)return Hf;let n=function(r,o){return!!e(r,o)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return py(i,t)}function uy(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function py(i,t){let e=Qf(Object.getOwnPropertyNames(i).map(a=>fy(a,i[a],t)).filter(a=>a!==Ft)),n=e.length;if(!n)return Ft;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 y=e[g](p,u);if(typeof y=="string")return y;gs(y)&&(f||(f=[]),f.push(y))}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=Se(a)),p||(p=l.substring(0,l.length-Eu(a).length)));let y=b(a,l,p,c);if(typeof y=="string")return y;gs(y)&&(u||(u=[]),u.push(y))}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 fy(i,t,e){if(t===!1)return Ft;let n=Uc(i,e);if(n===Ft)return Ft;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 gs(u)?u.then(f=>f?i:null):u?i:null};return o.requiresSiblings=!0,o}}return n}function Qf(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 Nc(i,t){return Pi(i,t,(e,n)=>typeof e=="string"&&typeof n=="string"?e===n:typeof e!="string"&&typeof n!="string"?e.base===n.base&&e.pattern===n.pattern:!1)}import*as Xf from"fs";var my=/&&|\|\||[;|]|`|\$\(/,Wc=/(?!.*)/,Yf=/^[A-Z_][A-Z0-9_]*=/i,ia=class extends k{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):my.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(Yf.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 Yf.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(rt.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(P(()=>{try{o.delete()}catch{}}));let s=h.joinPath(n,"tree-sitter-bash.wasm").fsPath,a=await Xf.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(hy)){let s=gy(r);o===!0?e.push({regex:s}):o===!1&&n.push({regex:s})}this._allowRules=e,this._denyRules=n}};function gy(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 Fu(o)?Wc:o}catch{return Wc}}if(i==="")return Wc;let n;if(i.includes("/")||i.includes("\\")){let r=i.replace(/[/\\]/g,"%%PATH_SEP%%");r=qt(r),r=r.replace(/%%PATH_SEP%%*/g,"[/\\\\]"),n=`^(?:\\.[/\\\\])?${r}`}else n=qt(i);return new RegExp(`^${n}\\b`)}var hy={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 Zf="allow-session",vy=[{id:Zf,label:m(1965,null),kind:"approve",group:1},{id:"allow-once",label:m(1964,null),kind:"approve"},{id:"skip",label:m(1966,null),kind:"deny",group:2}],by={"**/*":!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},ii=class extends k{constructor(e,n,r){super();this._stateManager=e;this._configService=n;this._logService=r;this._commandAutoApprover=this._register(new ia(this._logService))}initialize(){return this._commandAutoApprover.initialize()}getAutoApproval(e,n){let r=this._configService.getEffectiveValue(n,Tt,"autoApprove"),o=this._configService.getEffectiveWorkingDirectory(n);if(r==="autoApprove"||r==="autopilot")return this._logService.trace(`[SessionPermissionManager] Auto-approving tool call (session autoApprove=${r})`),"setting";if(this._isToolAllowedByPermissions(n,e.toolCallId))return"setting";if(e.permissionKind==="read"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)?(this._logService.trace(`[SessionPermissionManager] Auto-approving read of ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="write"&&e.permissionPath)return this._isPathInWorkingDirectory(e.permissionPath,o)&&this._isEditAutoApproved(e.permissionPath)?(this._logService.trace(`[SessionPermissionManager] Auto-approving write to ${e.permissionPath}`),"not-needed"):void 0;if(e.permissionKind==="shell"&&e.toolInput){let s=this._commandAutoApprover.shouldAutoApprove(e.toolInput);if(s==="approved")return this._logService.trace("[SessionPermissionManager] Auto-approving shell command"),"not-needed";s==="denied"&&this._logService.trace("[SessionPermissionManager] Shell command denied by rule");return}}createToolReadyAction(e,n,r){let o=e.state;return o.confirmationTitle?{type:"session/toolCallReady",session:n,turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmationTitle:o.confirmationTitle,edits:o.edits,editable:o.editable,options:vy.slice()}:{type:"session/toolCallReady",session:n,turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmed:"not-needed"}}handleToolCallConfirmed(e,n,r){if(r===Zf){let o=this._getToolNameForToolCall(e,n);o&&this._addToolToSessionPermissions(e,o)}}_isPathInWorkingDirectory(e,n){if(!n)return!1;let r=h.parse(n);return ut.isEqualOrParent(vt(h.file(e)),r)}_isEditAutoApproved(e){let n=!0;for(let[r,o]of Object.entries(by))o!==n&&Jf(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,Tt,"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,Tt,"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}`))}};ii=C([D(1,_t),D(2,Y)],ii);var En=class extends k{constructor(e,n,r,o,s){super();this._stateManager=e;this._options=n;this._logService=o;this._gitService=s;this._toolCallAgents=new Map;this._diffComputationSequencer=new bt;this._lastAgentInfos=[];this._debouncedDiffTimers=this._register(new ot);this._subagentSessions=new Map;this._pendingSubagentSignals=new Map;this._diffComputeService=this._register(new Cn(this._logService)),this._permissionManager=this._register(r.createInstance(ii,this._stateManager)),this._register(Wr(a=>{let l=this._options.agents.read(a);this._publishAgentInfos(l,a)})),this._register(this._stateManager.onDidEmitEnvelope(a=>{if(!a.origin&&a.action.type==="session/toolCallComplete"){let l=a.action;this._options.getAgent(l.session)?.onClientToolCallComplete(h.parse(l.session),l.toolCallId,l.result)}}))}static{this._DIFF_DEBOUNCE_MS=5e3}_publishAgentInfos(e,n){let r=e.map(o=>{let s=o.getDescriptor(),a=o.getProtectedResources(),l=n?o.models.read(n):o.models.get(),c=o.getCustomizations?.();return{provider:s.provider,displayName:s.displayName,description:s.description,models:l.map(p=>({id:p.id,provider:p.provider,name:p.name,maxContextWindow:p.maxContextWindow,supportsVision:p.supportsVision,policyState:p.policyState,configSchema:p.configSchema})),customizations:c?.length?[...c]:void 0,protectedResources:a.length>0?a:void 0}});Pt(this._lastAgentInfos,r)||(this._lastAgentInfos=r,this._stateManager.dispatchServerAction({type:"root/agentsChanged",agents:r}))}async _publishSessionCustomizations(e,n){if(!e.getSessionCustomizations)return;let r=await e.getSessionCustomizations(h.parse(n));this._stateManager.dispatchServerAction({type:"session/customizationsChanged",session:n,customizations:[...r]})}_publishSessionCustomizationsSoon(e,n){this._publishSessionCustomizations(e,n).catch(r=>{this._logService.error("[AgentSideEffects] getSessionCustomizations failed",r)})}_publishSessionCustomizationsForAgent(e){for(let n of this._stateManager.getSessionUris())this._options.getAgent(n)===e&&this._publishSessionCustomizationsSoon(e,n)}_publishAllSessionCustomizations(){for(let e of this._stateManager.getSessionUris()){let n=this._options.getAgent(e);n&&this._publishSessionCustomizationsSoon(n,e)}}initialize(){return this._permissionManager.initialize()}registerProgressListener(e){let n=new B;return n.add(e.onDidSessionProgress(r=>{this._handleAgentSignal(e,r)})),e.onDidCustomizationsChange&&n.add(e.onDidCustomizationsChange(()=>{this._publishAgentInfos(this._options.agents.get()),this._publishSessionCustomizationsForAgent(e)})),n}_handleAgentSignal(e,n){let r=n.session.toString();if(n.kind==="action"&&n.action.type==="session/toolCallStart"&&!n.parentToolCallId&&this._toolCallAgents.set(`${r}:${n.action.toolCallId}`,e.id),n.kind==="subagent_started"){this._handleSubagentStarted(r,n.toolCallId,n.agentName,n.agentDisplayName,n.agentDescription),this._drainPendingSubagentSignals(r,n.toolCallId);return}if(n.kind==="steering_consumed"){this._stateManager.dispatchServerAction({type:"session/pendingMessageRemoved",session:r,kind:"steering",id:n.id});return}let o=n.kind==="action"||n.kind==="pending_confirmation"?n.parentToolCallId:void 0;if(o){let a=`${r}:${o}`,l=this._subagentSessions.get(a);if(l){n.kind==="action"&&n.action.type==="session/toolCallStart"&&this._toolCallAgents.set(`${l}:${n.action.toolCallId}`,e.id);let p=this._stateManager.getActiveTurnId(l);p&&this._dispatchActionForSession(n,l,p,e);return}this._logService.trace(`[AgentSideEffects] Buffering ${this._describeSignal(n)} for pending subagent ${a}`);let c=this._pendingSubagentSignals.get(a);c||(c=[],this._pendingSubagentSignals.set(a,c)),c.push({signal:n,agent:e});return}if(n.kind==="pending_confirmation"){let a=this._findSubagentSessionForToolCall(r,n.state.toolCallId);if(a){let l=this._stateManager.getActiveTurnId(a);l&&this._handleToolReady(n,a,l,e);return}}let s=this._stateManager.getActiveTurnId(r);if(s){this._dispatchActionForSession(n,r,s,e);return}n.kind==="action"&&n.action.type==="session/turnComplete"&&this._runTurnCompleteSideEffects(r,void 0)}_dispatchActionForSession(e,n,r,o){if(e.kind==="pending_confirmation"){o&&this._handleToolReady(e,n,r,o);return}if(e.kind!=="action")return;let s=e.action;if(tr(s)&&s.session!==n&&(s={...s,session:n}),Re(s,{turnId:!0})&&s.turnId!==r&&(s={...s,turnId:r}),s.type==="session/toolCallComplete"){let a=`${n}:${s.toolCallId}`;if(this._subagentSessions.get(a)){let c=this._stateManager.getSessionState(n),u=this._getRunningToolCallContent(c,r,s.toolCallId).find(f=>Re(f,{type:!0})&&f.type==="subagent");if(u){let f=[...s.result.content??[],u];s={...s,result:{...s.result,content:f}}}}}this._stateManager.dispatchServerAction(s),s.type==="session/toolCallComplete"&&(this.completeSubagentSession(n,s.toolCallId),xf(s.result).length>0&&this._scheduleDebouncedDiffComputation(n,r)),s.type==="session/turnComplete"&&this._runTurnCompleteSideEffects(n,r)}_runTurnCompleteSideEffects(e,n){this._cancelDebouncedDiffComputation(e),this._computeSessionDiffs(e,n),this._tryConsumeNextQueuedMessage(e),this._options.onTurnComplete(e)}_describeSignal(e){return e.kind==="action"?`action(${e.action.type})`:e.kind}_drainPendingSubagentSignals(e,n){let r=`${e}:${n}`,o=this._pendingSubagentSignals.get(r);if(o){this._pendingSubagentSignals.delete(r),this._logService.trace(`[AgentSideEffects] Draining ${o.length} buffered signal(s) for subagent ${r}`);for(let{signal:s,agent:a}of o)this._handleAgentSignal(a,s)}}_handleSubagentStarted(e,n,r,o,s){let a=Xs(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=J();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._pendingSubagentSignals.keys()])n.startsWith(`${e}:`)&&this._pendingSubagentSignals.delete(n)}completeSubagentSession(e,n){let r=`${e}:${n}`;this._pendingSubagentSignals.delete(r);let o=this._subagentSessions.get(r);if(!o)return;let s=this._stateManager.getActiveTurnId(o);s&&this._stateManager.dispatchServerAction({type:"session/turnComplete",session:o,turnId:s}),this._subagentSessions.delete(r)}removeSubagentSessions(e){let n=[];for(let[o,s]of this._subagentSessions)o.startsWith(`${e}:`)&&(this._stateManager.removeSession(s),n.push(o));for(let o of n)this._subagentSessions.delete(o);let r=`${e}/subagent/`;for(let o of this._stateManager.getSessionUrisWithPrefix(r))this._stateManager.removeSession(o);for(let o of[...this._pendingSubagentSignals.keys()])o.startsWith(`${e}:`)&&this._pendingSubagentSignals.delete(o)}_findSubagentSessionForToolCall(e,n){let r=`${e}:`;for(let[o,s]of this._subagentSessions)if(o.startsWith(r)&&this._toolCallAgents.has(`${s}:${n}`))return s}_handleToolReady(e,n,r,o){let s={toolCallId:e.state.toolCallId,session:e.session,permissionKind:e.permissionKind,permissionPath:e.permissionPath,toolInput:e.state.toolInput},a=this._permissionManager.getAutoApproval(s,n),l=e;a!==void 0&&(this._toolCallAgents.delete(`${n}:${e.state.toolCallId}`),o.respondToPermissionRequest(e.state.toolCallId,!0),l={...e,state:{...e.state,confirmationTitle:void 0}}),this._stateManager.dispatchServerAction(this._permissionManager.createToolReadyAction(l,n,r))}handleAction(e){switch(e.type){case"session/turnStarted":{let n=this._stateManager.getSessionState(e.session),r=e.userMessage.text.trim().replace(/\s+/g," ").slice(0,200);n&&n.turns.length===0&&!n.summary.title&&r.length>0&&this._stateManager.dispatchServerAction({type:"session/titleChanged",session:e.session,title:r});let o=this._options.getAgent(e.session);if(!o){this._stateManager.dispatchServerAction({type:"session/error",session:e.session,turnId:e.turnId,error:{errorType:"noAgent",message:"No agent found for session"}});return}let s=e.userMessage.attachments?.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._persistSessionFlag(e.session,"customTitle",e.title);break}case"session/pendingMessageSet":case"session/pendingMessageRemoved":case"session/queuedMessagesReordered":{this._syncPendingMessages(e.session);break}case"session/truncated":{this._options.getAgent(e.session)?.truncateSession?.(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??[];n.setClientCustomizations(r,o,()=>{this._publishSessionCustomizationsSoon(n,e.session)}).then(()=>{this._publishSessionCustomizationsSoon(n,e.session)}).catch(s=>{this._logService.error("[AgentSideEffects] setClientCustomizations failed",s)});break}case"root/configChanged":{this._publishAgentInfos(this._options.agents.get()),this._publishAllSessionCustomizations();break}case"session/activeClientToolsChanged":{let n=this._options.getAgent(e.session);if(n){let o=this._stateManager.getSessionState(e.session)?.activeClient?.clientId;o&&n.setClientTools(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":""),this._options.getAgent(e.session)?.onArchivedChanged?.(h.parse(e.session),e.isArchived).catch(r=>{this._logService.warn(`[AgentSideEffects] onArchivedChanged failed for ${e.session}`,r)});break}case"session/configChanged":{let r=this._stateManager.getSessionState(e.session)?.config?.values;r&&this._persistSessionFlag(e.session,"configValues",JSON.stringify(r));break}case"session/toolCallComplete":{this._options.getAgent(e.session)?.onClientToolCallComplete(h.parse(e.session),e.toolCallId,e.result);break}}}_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=J();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,hs(()=>{this._debouncedDiffTimers.deleteAndDispose(e),this._computeSessionDiffs(e,n)},En._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 Bf(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(ea)??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()}};En=C([D(2,vn),D(3,Y),D(4,wn)],En);import*as fa from"fs";import{userInfo as Ry}from"os";import*as Bc from"os";var em=/^\d+$/,yy=/^Microsoft.PowerShell_.*/,Sy=/^Microsoft.PowerShellPreview_.*/;var _o;switch(process.arch){case"ia32":_o=1;break;case"arm":case"arm64":_o=2;break;default:_o=0;break}var oi;process.env.PROCESSOR_ARCHITEW6432?oi=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?oi=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?oi=1:oi=0;var ir=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await Qe.existsFile(this.exePath)),this.knownToExist}};function Iy({useAlternateBitness:i=!1}={}){return i?_o===0?process.env["ProgramFiles(x86)"]||null:oi===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function oa({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=Iy({useAlternateBitness:i});if(!e)return null;let n=M(e,"PowerShell");if(!await Qe.existsDirectory(n))return null;let r=-1,o=null;for(let l of await fe.readdir(n)){let c=-1;if(t){let u=l.indexOf("-");if(u<0)continue;let f=l.substring(0,u);if(!em.test(f)||l.substring(u+1)!=="preview")continue;c=parseInt(f,10)}else{if(!em.test(l))continue;c=parseInt(l,10)}if(c<=r)continue;let p=M(n,l,"pwsh.exe");await Qe.existsFile(p)&&(o=p,r=c)}if(!o)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new ir(o,`PowerShell${a}${s}`,!0)}async function tm({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=M(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await Qe.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=i?{pwshMsixDirRegex:Sy,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:yy,pwshMsixName:"PowerShell (Store)"};for(let r of await fe.readdir(t))if(e.test(r)){let o=M(t,r,"pwsh.exe");return new ir(o,n)}return null}function Ty(){let i=M(Bc.homedir(),".dotnet","tools","pwsh.exe");return new ir(i,".NET Core PowerShell Global Tool")}function _y(){let i=M(Bc.homedir(),"scoop","apps"),t=M(i,"pwsh","current","pwsh.exe");return new ir(t,"PowerShell (Scoop)")}function xy(){let i=M(process.env.windir,_o===1&&oi!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new ir(i,"Windows PowerShell",!0)}async function*wy(){let i=await oa();i&&(yield i),i=await oa({useAlternateBitness:!0}),i&&(yield i),i=await tm(),i&&(yield i),i=Ty(),i&&(yield i),i=await oa({findPreview:!0}),i&&(yield i),i=await tm({findPreview:!0}),i&&(yield i),i=await oa({useAlternateBitness:!0,findPreview:!0}),i&&(yield i),i=await _y(),i&&(yield i),i=xy(),i&&(yield i)}async function*Cy(){for await(let i of wy())await i.exists()&&(yield i)}async function nm(){for await(let i of Cy())return i;return null}async function im(i,t){return i===1?V?Py():Pp(t):Ey(i,t)}var $c=null;function Ey(i,t){if(ye&&i===2||Ue&&i===3)return"/bin/bash";if(!$c){let e;if(V)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=Ry().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}$c=e}return $c}var Vc=null;async function Py(){return Vc||(Vc=(await nm()).exePath),Vc}var si=ee("productService");import*as ai from"os";var qc=class{constructor(){this.data=new Map}add(t,e){Ko(qe(t)),Ko(Jo(e)),Ko(!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=>{Oi(t.dispose)&&t.dispose()}),this.data.clear()}},om=new qc;var XA=ee("ptyService");var Ay={Backend:"workbench.contributions.terminal.processBackend"},zc=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()??""}};om.add(Ay.Backend,new zc);var ZA=ee("localPtyService"),ek=ee("terminalLogService");function ky(i){return new Map(i)}function Dy(i){return new Map(i??[])}function sm(i){return new Map(i.map(t=>[t[0],{map:ky(t[1]),descriptionMap:Dy(t[2])}]))}var Ly=new Map([[2,"APPEND"],[3,"PREPEND"],[1,"REPLACE"]]),Fy=/^VSCODE_PYTHON_(PWSH|ZSH|BASH|FISH)_ACTIVATE/,Uy="ms-python.vscode-python-envs",sa=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;V&&(r={},Object.keys(t).forEach(o=>r[o.toLowerCase()]=o));for(let[o,s]of this.getVariableMap(e)){let a=V&&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_${Ly.get(l.type)}`;t[p]=(t[p]?t[p]+":":"")+o+"="+this._encodeColons(c)}}}}}_encodeColons(t){return t.replaceAll(":","\\x3a")}blockPythonActivationVar(t,e){return!!(Fy.test(t)&&Uy!==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=lm(s,l);c&&n.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=lm(s,l);c&&o.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=My(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=>am(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=>am(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 am(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 lm(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 My(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 dm,realpathSync as By,mkdirSync as $y}from"fs";import{promisify as um}from"util";import*as aa from"os";var xo;async function Ny(){if(xo)return;if(!V){xo={release:aa.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{xo={release:t||aa.release(),buildNumber:i||Wy()}}}async function cm(){return xo||await Ny(),xo.buildNumber}function Wy(){let i=/(\d+)\.(\d+)\.(\d+)/g.exec(aa.release());return i&&i.length===4?parseInt(i[3],10):0}async function gm(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=V?await cm():0;if(V&&s<18309)return{type:"failure",reason:"unsupportedWindowsBuild"};let a=i.args,l=ts==="win32"?Se(i.executable).toLowerCase():Se(i.executable),c=ve(rt.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&&(V?(t.windowsUseConptyDll||s>=22631&&l!=="bash.exe")&&(f.VSCODE_SHELL_ENV_REPORTING=g.join(",")):f.VSCODE_SHELL_ENV_REPORTING=g.join(",")),V)return l==="pwsh.exe"||l==="powershell.exe"?(f.VSCODE_A11Y_MODE=t.isScreenReaderOptimized?"1":"0",!a||mm(a)?u=be.get("windows-pwsh"):fm(a)&&(u=be.get("windows-pwsh-login")),u?(u=[...u],u[u.length-1]=$n(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=be.get("bash"):da(a)&&(f.VSCODE_SHELL_LOGIN="1",la(t,f,l),u=be.get("bash")),u?(u=[...u],u[u.length-1]=$n(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=be.get("bash"):da(a)&&(f.VSCODE_SHELL_LOGIN="1",la(t,f,l),u=be.get("bash")),u?(u=[...u],u[u.length-1]=$n(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=be.get("fish"):da(a)?u=be.get("fish-login"):(a===be.get("fish")||a===be.get("fish-login"))&&(u=a),u?(la(t,f,l),u=[...u],u[u.length-1]=$n(u[u.length-1],c),{type:p,newArgs:u,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"pwsh":return!a||mm(a)?u=be.get("pwsh"):fm(a)&&(u=be.get("pwsh-login")),u?(u=[...u],u[u.length-1]=$n(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=be.get("zsh"):da(a)?(u=be.get("zsh-login"),la(t,f,l)):(a===be.get("zsh")||a===be.get("zsh-login"))&&(u=a),!u)return{type:"failure",reason:"unsupportedArgs"};u=[...u],u[u.length-1]=$n(u[u.length-1],c);let b;try{b=ai.userInfo().username}catch{b="unknown"}let y=By(ai.tmpdir()),I=M(y,`${b}-${r.applicationName}-zsh`);if(!o)try{await um(dm)(I,960)}catch(T){if(T.message.includes("ENOENT")){try{$y(I)}catch($){return n.error(`Failed to create zdotdir at ${I}: ${$}`),{type:"failure",reason:"failedToCreateTmpDir"}}try{await um(dm)(I,960)}catch{return n.error(`Failed to set sticky bit on ${I}: ${T}`),{type:"failure",reason:"failedToSetStickyBit"}}}return n.error(`Failed to set sticky bit on ${I}: ${T}`),{type:"failure",reason:"failedToSetStickyBit"}}f.ZDOTDIR=I;let v=e?.ZDOTDIR??ai.homedir()??"~";f.USER_ZDOTDIR=v;let S=[];return S.push({source:M(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh"),dest:M(I,".zshrc")}),S.push({source:M(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh"),dest:M(I,".zprofile")}),S.push({source:M(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh"),dest:M(I,".zshenv")}),S.push({source:M(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh"),dest:M(I,".zlogin")}),{type:p,newArgs:u,envMixin:f,filesToCopy:S}}}return n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"}}function la(i,t,e){if((Ue||e==="fish")&&i.environmentVariableCollections){let n=sm(i.environmentVariableCollections),o=new sa(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 be=new Map;be.set("windows-pwsh",["-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);be.set("windows-pwsh-login",["-l","-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);be.set("pwsh",["-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"{1}']);be.set("pwsh-login",["-l","-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"']);be.set("zsh",["-i"]);be.set("zsh-login",["-il"]);be.set("bash",["--init-file","{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh"]);be.set("fish",["--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);be.set("fish-login",["-l","--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);var ca=["-login","-l"],pm=["--login","-l"],Vy=["-i","--interactive"],ua=["-nol","-nologo"];function fm(i){return qe(i)?ca.includes(i.toLowerCase()):i.length===1&&ca.includes(i[0].toLowerCase())||i.length===2&&(ca.includes(i[0].toLowerCase())||ca.includes(i[1].toLowerCase()))&&(ua.includes(i[0].toLowerCase())||ua.includes(i[1].toLowerCase()))}function mm(i){return qe(i)?ua.includes(i.toLowerCase()):i.length===0||i?.length===1&&ua.includes(i[0].toLowerCase())}function da(i){return qe(i)||(i=i.filter(t=>!Vy.includes(t.toLowerCase()))),qe(i)&&pm.includes(i.toLowerCase())||!qe(i)&&i.length===1&&pm.includes(i[0].toLowerCase())}function hm(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 qy(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=hm(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=hm(n),o=r.indexOf("=");return o===-1?void 0:{type:5,key:r.substring(0,o),value:r.substring(o+1)}}default:return}}var Kc="\x1B",Hc=Kc+"]",jc="\x07",vm=Kc+"\\",pa=class{constructor(){this._pendingOsc="";this._inOsc=!1;this._pendingEscInOsc=!1}parse(t){let e=[];if(!this._inOsc&&t.indexOf(Hc)===-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}},vm);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(Hc,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(jc,e),r=t.indexOf(Kc,e);return n!==-1&&(r===-1||n<r)?(this._pendingOsc+=t.substring(e,n),{nextIndex:n+1,complete:!0,terminator:jc}):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:vm}:{nextIndex:r,complete:!0}):(this._pendingOsc+=t.substring(e),{nextIndex:t.length,complete:!1})}_handleOscPayload(t,e,n,r=jc){if(t.startsWith("633;")){let o=t.substring(4),s=qy(o);s&&e.push(s)}else n&&n.append(n.value+Hc+t+r)}};var Hy=1e4,ci=ee("agentHostTerminalManager"),Gc;async function jy(){return Gc||(Gc=await import("node-pty")),Gc}var li=class extends k{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(yo(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 jy(),s=await this._resolveCwd(e.cwd,r),a=e.cols??80,l=e.rows??24,c=n?.shell??await this._getDefaultShell(),p=V?"cmd":"xterm-256color";this._logService.info(`[TerminalManager] Creating terminal ${r}: shell=${c}, cwd=${s}, cols=${a}, rows=${l}`);let u=J(),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=[];Ue&&Pu(c).name.match(/(zsh|bash)/)&&(g=["--login"]);let b=await gm({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),y;if(b.type==="injection"){if(this._logService.info(`[TerminalManager] Shell integration injected for ${r}`),b.envMixin)for(let[he,$e]of Object.entries(b.envMixin))$e!==void 0&&(f[he]=$e);if(b.newArgs&&(g=b.newArgs),b.filesToCopy)for(let he of b.filesToCopy)try{await fa.promises.mkdir(ve(he.dest),{recursive:!0}),await fa.promises.copyFile(he.source,he.dest)}catch{}y={parser:new pa,nonce:u,commandCounter:0,detectionAvailableEmitted:!1}}else this._logService.info(`[TerminalManager] Shell integration not available for ${r}: ${b.reason}`);let I=o.spawn(c,g,{name:p,cwd:s,env:f,cols:a,rows:l}),v=new B,S=e.claim??{kind:"client",clientId:""},T=v.add(new _),$=v.add(new _),ge=v.add(new _),se=v.add(new _),R={uri:r,store:v,pty:I,onDataEmitter:T,onExitEmitter:$,onClaimChangedEmitter:ge,onCommandFinishedEmitter:se,title:e.name??c,cwd:s,cols:a,rows:l,content:[],contentSize:0,claim:S,commandTracker:y};this._terminals.set(r,R),v.add(P(()=>{try{I.kill()}catch{}}));let U=new Ne,F=I.onData(he=>{this._handlePtyData(R,he),U.complete()});v.add(P(()=>F.dispose()));let ae=I.onExit(he=>{R.exitCode=he.exitCode,R.onExitEmitter.fire(he.exitCode),U.complete(),this._stateManager.dispatchServerAction({type:"terminal/exited",terminal:r,exitCode:he.exitCode}),this._broadcastTerminalList()});if(v.add(P(()=>ae.dispose())),!V){let he=setInterval(()=>{let $e=I.process;$e&&$e!==R.title&&(R.title=$e,this._stateManager.dispatchServerAction({type:"terminal/titleChanged",terminal:r,title:$e}),this._broadcastTerminalList())},200);v.add(P(()=>clearInterval(he)))}await rp([U.p,jt(Hy)]),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):P(()=>{})}onExit(e,n){let r=this._terminals.get(e);return r?r.onExitEmitter.event(n):P(()=>{})}onClaimChanged(e,n){let r=this._terminals.get(e);return r?r.onClaimChangedEmitter.event(n):P(()=>{})}onCommandFinished(e,n){let r=this._terminals.get(e);return r?r.onCommandFinishedEmitter.event(n):P(()=>{})}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 im(hr,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 fa.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()}};li=C([D(1,Y),D(2,si)],li);var Ky={"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 Qc(i,t){let e=`Unhandled action type: ${JSON.stringify(i)}`;(t??console.warn)(e)}function wo(i){return{toolCallId:i.toolCallId,toolName:i.toolName,displayName:i.displayName,toolClientId:i.toolClientId,_meta:i._meta}}function Gy(i,t){if(!(!t||!i))return i.find(e=>e.id===t)}function Jy(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 Qy=31;function ga(i,t,e){return e?i|t:i&~t}function ui(i,t){let e;return t?e=t:(i.inputRequests?.length??0)>0||Jy(i)?e=24:i.activeTurn?e=8:e=1,i.summary.status&~Qy|e}function ma(i){let t=ui(i);return t===i.summary.status?i:{...i,summary:{...i.summary,status:t}}}function Jc(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",...wo(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:ui(l,n)}}}function Yy(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:ga(ui(o),32,!1),modifiedAt:Date.now()}}}function di(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 bm(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 Yc(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 Qc(t,e),i}}function Xc(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:ga(ui(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 bm(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 Jc(i,t.turnId,"complete");case"session/turnCancelled":return Jc(i,t.turnId,"cancelled");case"session/error":return Jc(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 di(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 ma(di(i,t.turnId,t.toolCallId,n=>{if(n.status!=="streaming"&&n.status!=="running")return n;let r=wo(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 ma(di(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-confirmation")return n;let r=wo(n),o=Gy(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 ma(di(i,t.turnId,t.toolCallId,n=>{if(n.status!=="running"&&n.status!=="pending-confirmation")return n;let r=wo(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 ma(di(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-result-confirmation")return n;let r=wo(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 di(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 bm(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:ga(i.summary.status,32,t.isRead)}};case"session/isArchivedChanged":return{...i,summary:{...i.summary,status:ga(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:ui(r)}}}case"session/inputRequested":return Yy(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:ui(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 Qc(t,e),i}}var pi=class extends k{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 Rr(()=>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=wf(),this._rootState={...this._rootState,config:{schema:Oc.toProtocol(),values:Oc.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}getSessionUris(){return[...this._sessionStates.keys()]}getSessionUrisWithPrefix(e){let n=[];for(let r of this._sessionStates.keys())r.startsWith(e)&&n.push(r);return n}getSnapshot(e){if(e===Ys)return{resource:e,state:this._rootState,fromSeq:this._serverSeq};let n=this._sessionStates.get(e);if(n)return{resource:e,state:n,fromSeq:this._serverSeq}}createSession(e,n){let r=e.resource;if(this._sessionStates.has(r))return this._logService.warn(`[AgentHostStateManager] Session already exists: ${r}`),this._sessionStates.get(r);let o=Ac(e);return this._sessionStates.set(r,o),this._logService.trace(`[AgentHostStateManager] Created session: ${r}`),n?.emitNotification!==!1&&(this._lastNotifiedSummaries.set(r,e),this._onDidEmitNotification.fire({type:"notify/sessionAdded",summary:e})),o}markSessionPersisted(e,n){let r=e.toString(),o=this._sessionStates.get(r);if(!o){this._logService.warn(`[AgentHostStateManager] markSessionPersisted: unknown session ${r}`);return}this._lastNotifiedSummaries.has(r)||(o.summary=n,this._lastNotifiedSummaries.set(r,n),this._onDidEmitNotification.fire({type:"notify/sessionAdded",summary:n}))}restoreSession(e,n){let r=e.resource;if(this._sessionStates.has(r))return this._logService.warn(`[AgentHostStateManager] Session already exists (restore): ${r}`),this._sessionStates.get(r);let o={...Ac(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){let n=this._lastNotifiedSummaries.has(e);this.removeSession(e),n&&this._onDidEmitNotification.fire({type:"notify/sessionRemoved",session:e})}setSessionMeta(e,n){this.dispatchServerAction({type:"session/metaChanged",session:e,_meta:n})}getActiveTurnId(e){return this._sessionStates.get(e)?.activeTurn?.id}dispatchServerAction(e){this._applyAndEmit(e,void 0)}dispatchClientAction(e,n){return this._applyAndEmit(e,n)}_applyAndEmit(e,n){let r;if(gf(e)&&(this._rootState=Yc(this._rootState,e,this._log),r=this._rootState),tr(e)){let s=e,a=s.session,l=this._sessionStates.get(a);if(l){let c=Xc(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.activity!==r.activity&&(s.activity=o.activity),o.modifiedAt!==r.modifiedAt&&(s.modifiedAt=o.modifiedAt),o.project!==r.project&&(s.project=o.project),o.model!==r.model&&(s.model=o.model),o.workingDirectory!==r.workingDirectory&&(s.workingDirectory=o.workingDirectory),o.diffs!==r.diffs&&(s.diffs=o.diffs),this._lastNotifiedSummaries.set(e,o),Object.keys(s).length>0&&this._onDidEmitNotification.fire({type:"notify/sessionSummaryChanged",session:e,changes:s})}this._dirtySummaries.clear()}};pi=C([D(0,Y)],pi);var Xy=3e4,ha=class extends k{constructor(e,n,r,o,s,a){super();this._logService=e;this._fileService=n;this._sessionDataService=r;this._productService=o;this._gitService=s;this._rootConfigResource=a;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 B);this._agents=At("agents",[]);this._resourceSubscribers=new Ze;this._pendingSessionGc=this._register(new Yo);this._logService.info("AgentService initialized"),this._stateManager=this._register(new pi(e)),this._register(this._stateManager.onDidEmitEnvelope(u=>this._onDidAction.fire(u))),this._register(this._stateManager.onDidEmitNotification(u=>this._onDidNotification.fire(u)));let l=this._register(new Zr(this._stateManager,this._logService,this._rootConfigResource));this._configurationService=l;let c=new bn([Y,this._logService],[_t,l],[wn,this._gitService]),p=this._register(new Kr(c,!0));this._sideEffects=this._register(p.createInstance(En,this._stateManager,{getAgent:u=>this._findProviderForSession(u),sessionDataService:this._sessionDataService,agents:this._agents,onTurnComplete:u=>{let f=this._stateManager.getSessionState(u)?.summary.workingDirectory;this._attachGitState(h.parse(u),f?h.parse(f):void 0)}})),this._terminalManager=this._register(new li(this._stateManager,this._logService,this._productService))}get stateManager(){return this._stateManager}get configurationService(){return this._configurationService}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)),e.onDidMaterializeSession&&this._providerSubscriptions.add(e.onDidMaterializeSession(n=>this._onDidMaterializeSession(n))),this._defaultProvider||(this._defaultProvider=e.id),this._updateAgents()}async authenticate(e){this._logService.trace(`[AgentService] authenticate called: resource=${e.resource}`);let n=[...this._providers.values()].filter(s=>s.getProtectedResources().some(a=>a.resource===e.resource)),r=await Promise.allSettled(n.map(s=>s.authenticate(e.resource,e.token))),o=!1;for(let s=0;s<r.length;s++){let a=r[s];a.status==="fulfilled"?o||=a.value:this._logService.error(a.reason,`[AgentService] Provider '${n[s].id}' authenticate threw for resource=${e.resource}`)}return{authenticated:o}}async listSessions(){this._logService.trace("[AgentService] listSessions called");let n=(await Promise.all([...this._providers.values()].map(s=>s.listSessions()))).flat(),o=(await Promise.all(n.map(async s=>{try{let a=await this._sessionDataService.tryOpenDatabase(s.session);if(!a)return s;try{let l=await a.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0}),c=s;if(l.customTitle&&(c={...c,summary:l.customTitle}),l.isRead!==void 0&&(c={...c,isRead:l.isRead==="true"}),l.isArchived!==void 0?c={...c,isArchived:l.isArchived==="true"}:l.isDone!==void 0&&(c={...c,isArchived:l.isDone==="true"}),l.diffs)try{c={...c,diffs:JSON.parse(l.diffs)}}catch{}return c}finally{a.dispose()}}catch(a){this._logService.warn(`[AgentService] Failed to read session metadata overlay for ${s.session}`,a)}return s}))).map(s=>{let a=this._stateManager.getSessionState(s.session.toString());return a?{...s,summary:a.summary.title||s.summary,status:a.summary.status,activity:a.summary.activity,model:a.summary.model??s.model}:s});return this._logService.trace(`[AgentService] listSessions returned ${o.length} sessions`),o}async createSession(e){let n=e?.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);if(e?.fork){let c=this._stateManager.getSessionState(e.fork.session.toString())?.turns.slice(0,e.fork.turnIndex+1)??[];if(c.length===0)e={...e,fork:void 0};else{let p=new Map;for(let u of c)p.set(u.id,J());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._cancelPendingSessionGc(s),this._logService.trace(`[AgentService] createSession: provider=${r.id} model=${e?.model?.id??"(default)"}`),this._sessionToProvider.set(s.toString(),r.id),this._logService.trace(`[AgentService] createSession returned: ${s.toString()}`);let a=await this._resolveCreatedSessionConfig(r,e);if(e?.fork){let l=this._stateManager.getSessionState(e.fork.session.toString()),c=[];l&&e.fork.turnIdMapping&&(c=l.turns.slice(0,e.fork.turnIndex+1).map(f=>({...f,id:e.fork.turnIdMapping.get(f.id)??J()})));let p=this._buildInitialSummary(r,s,e,o,l?.summary.title??"Forked Session"),u=this._stateManager.createSession(p);u.config=a,u.turns=c,u.activeClient=e.activeClient}else{let l=this._buildInitialSummary(r,s,e,o,""),c=this._stateManager.createSession(l,{emitNotification:!o.provisional});c.config=a,c.activeClient=e?.activeClient}return a?.values&&Object.keys(a.values).length>0&&!o.provisional&&this._persistConfigValues(s,a.values),o.provisional||(this._stateManager.dispatchServerAction({type:"session/ready",session:s.toString()}),this._attachGitState(s,o.workingDirectory??e?.workingDirectory)),s}_buildInitialSummary(e,n,r,o,s){let a=Date.now();return{resource:n.toString(),provider:e.id,title:s,status:1,createdAt:a,modifiedAt:a,...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:r?.model,workingDirectory:(o.workingDirectory??r?.workingDirectory)?.toString()}}_onDidMaterializeSession(e){let n=e.session.toString(),r=this._stateManager.getSessionState(n);if(!r){this._logService.warn(`[AgentService] onDidMaterializeSession for unknown session: ${n}`);return}let o={...r.summary,...e.project?{project:{uri:e.project.uri.toString(),displayName:e.project.displayName}}:{},workingDirectory:e.workingDirectory?.toString()??r.summary.workingDirectory,modifiedAt:Date.now()},s=r.config?.values;s&&Object.keys(s).length>0&&this._persistConfigValues(e.session,s),this._stateManager.markSessionPersisted(n,o),this._stateManager.dispatchServerAction({type:"session/ready",session:n}),this._attachGitState(e.session,e.workingDirectory)}_attachGitState(e,n){n&&this._gitService.getSessionGitState(n).then(r=>{if(!r)return;let o=e.toString(),s=this._stateManager.getSessionState(o)?._meta;if(Pt(kc(s),r))return;let a=Cf(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()}: ${Kn(o)}`);return}r.object.setMetadata("configValues",JSON.stringify(n)).catch(o=>{this._logService.warn(`[AgentService] Failed to persist configValues for ${e.toString()}: ${Kn(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,n){this._logService.trace(`[AgentService] subscribe: ${e.toString()}`);let r=e.toString();this.addSubscriber(e,n);try{let o=this._terminalManager.getTerminalState(r);if(o)return{resource:r,state:o,fromSeq:this._stateManager.serverSeq};let s=this._stateManager.getSnapshot(r);if(!s){let l=Lt(r);l?await this._restoreSubagentSession(r,l.parentSession,l.toolCallId):await this.restoreSession(e),s=this._stateManager.getSnapshot(r)}if(!s)throw new Error(`Cannot subscribe to unknown resource: ${r}`);let a=this._stateManager.getSessionState(r);if(a&&kc(a._meta)===void 0){let l=a.summary?.workingDirectory;this._attachGitState(e,l?h.parse(l):void 0)}return s}catch(o){throw this.unsubscribe(e,n),o}}addSubscriber(e,n){let r=this._resourceSubscribers.get(e);r||(r=new Set,this._resourceSubscribers.set(e,r)),r.add(n),this._cancelPendingSessionGc(e)}unsubscribe(e,n){let r=this._resourceSubscribers.get(e);r&&(r.delete(n),!(r.size>0)&&(this._resourceSubscribers.delete(e),!this._maybeScheduleSessionGc(e)&&this._maybeEvictIdleSession(e)))}_maybeScheduleSessionGc(e){let n=e.toString();if(Lt(n))return!1;let r=this._stateManager.getSessionState(n);return!r||r.turns.length>0||r.activeTurn!==void 0?!1:(this._pendingSessionGc.set(e,hs(()=>{this._pendingSessionGc.deleteAndDispose(e),this._runSessionGc(e).catch(o=>{this._logService.error(o,`[AgentService] GC failed for ${n}`)})},Xy)),!0)}_cancelPendingSessionGc(e){this._pendingSessionGc.deleteAndDispose(e)}async _runSessionGc(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=this._stateManager.getSessionState(n);r&&(r.turns.length>0||r.activeTurn!==void 0)||(this._logService.info(`[AgentService] GC: disposing empty unsubscribed session ${n}`),await this.disposeSession(e))}_maybeEvictIdleSession(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=Lt(n),o;if(r){if(o=r.parentSession,this._resourceSubscribers.has(h.parse(o)))return;let l=r.parentSession+"/subagent/";for(let c of this._resourceSubscribers.keys())if(c.toString().startsWith(l))return}else{o=n;let l=n+"/subagent/";for(let c of this._resourceSubscribers.keys())if(c.toString().startsWith(l))return}let s=this._stateManager.getSessionState(o);if(!s||s.activeTurn!==void 0)return;this._logService.trace(`[AgentService] Evicting idle session: ${o} (triggered by unsubscribe of ${n})`);let a=o+"/subagent/";for(let l of this._stateManager.getSessionUrisWithPrefix(a))this._stateManager.removeSession(l);this._stateManager.removeSession(o)}dispatchAction(e,n,r){this._logService.trace(`[AgentService] dispatchAction: type=${e.type}, clientId=${n}, clientSeq=${r}`,e);let o={clientId:n,clientSeq:r};this._stateManager.dispatchClientAction(e,o),e.type==="root/configChanged"&&this._configurationService.persistRootConfig(),this._sideEffects.handleAction(e)}async resourceList(e){let n;try{n=await this._fileService.resolve(e)}catch{throw new N(Ce.NotFound,`Directory not found: ${e.toString()}`)}if(!n.isDirectory)throw new N(Ce.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 N(Tn,`No agent for session: ${n}`);let o=await this._getSessionMetadataForRestore(r,e);if(!o)throw new N(Tn,`Session not found on backend: ${n}`);let s;try{s=await r.getSessionMessages(e)}catch(I){if(I instanceof N)throw I;let v=I instanceof Error?I.message:String(I);throw new N(Qr,`Failed to restore session ${n}: ${v}`)}let a=o.summary??"Session",l,c,p,u,f=this._sessionDataService.tryOpenDatabase?.(e);if(f)try{let I=await f;if(I)try{let v=await I.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,diffs:!0,configValues:!0});if(v.customTitle&&(a=v.customTitle),v.isRead!==void 0&&(l=v.isRead==="true"),v.isArchived!==void 0?c=v.isArchived==="true":v.isDone!==void 0&&(c=v.isDone==="true"),v.diffs)try{p=JSON.parse(v.diffs)}catch{}if(v.configValues)try{u=JSON.parse(v.configValues)}catch(S){this._logService.warn(`[AgentService] Failed to parse persisted configValues for ${n}: ${Kn(S)}`)}}finally{I.dispose()}}catch{}let g=1;l&&(g|=32),c&&(g|=64);let b={resource:n,provider:r.id,title:a,status:g,createdAt:o.startTime,modifiedAt:o.modifiedTime,...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:o.model,workingDirectory:o.workingDirectory?.toString(),diffs:p};this._stateManager.restoreSession(b,[...s]),o._meta&&this._stateManager.setSessionMeta(n,o._meta);let y=await this._resolveCreatedSessionConfig(r,{workingDirectory:o.workingDirectory,config:u});if(y){let I=this._stateManager.getSessionState(n);I&&(I.config=y)}this._logService.info(`[AgentService] Restored session ${n} with ${s.length} turns`),this._attachGitState(e,o.workingDirectory)}async _getSessionMetadataForRestore(e,n){let r=n.toString();if(e.getSessionMetadata)try{return await e.getSessionMetadata(n)}catch(o){if(o instanceof N)throw o;try{return await this._getSessionMetadataFromCatalog(e,n)}catch(s){if(s instanceof N){let a=o instanceof Error?o.message:String(o);throw new N(s.code,`Failed to get session metadata for ${r}: ${a}; ${s.message}`,s.data)}throw s}}return this._getSessionMetadataFromCatalog(e,n)}async _getSessionMetadataFromCatalog(e,n){let r=n.toString(),o;try{o=await e.listSessions()}catch(s){if(s instanceof N)throw s;let a=s instanceof Error?s.message:String(s);throw new N(Qr,`Failed to list sessions for ${r}: ${a}`)}return o.find(s=>s.session.toString()===r)}async resourceRead(e){let n=Nf(e.toString());if(n)return this._fetchSessionDbContent(n);let r=Df(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 N(Ce.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=Gi(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=Dt(o);throw s==="EntryExists"?new N(Ce.AlreadyExists,`File already exists: ${n.toString()}`):s==="NoPermissions"?new N(Ce.PermissionDenied,`Permission denied: ${n.toString()}`):new N(Ce.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=Dt(o);throw s==="EntryExists"?new N(Ce.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new N(Ce.PermissionDenied,`Permission denied: ${n.toString()}`):new N(Ce.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 Dt(r)==="NoPermissions"?new N(Ce.PermissionDenied,`Permission denied: ${n.toString()}`):new N(Ce.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=Dt(o);throw s==="EntryExists"?new N(Ce.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new N(Ce.PermissionDenied,`Permission denied: ${n.toString()}`):new N(Ce.NotFound,`Source not found: ${n.toString()}`)}}async shutdown(){this._logService.info("AgentService: shutting down all providers...");let e=[];for(let n of this._providers.values())e.push(n.shutdown());await Promise.all(e),this._sessionToProvider.clear()}async _fetchSessionDbContent(e){let n=h.parse(e.sessionUri),r=this._sessionDataService.openDatabase(n);try{let o=await r.object.readFileEditContent(e.toolCallId,e.filePath);if(!o)throw new N(Ce.NotFound,`File edit not found: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);let s=e.part==="before"?o.beforeContent:o.afterContent;if(!s)throw new N(Ce.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 N(Ce.NotFound,`git service unavailable for: ${e.repoRelativePath}`);let n=this._stateManager.getSessionState(e.sessionUri)?.summary.workingDirectory;if(!n)throw new N(Ce.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 N(Ce.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,y=b.status==="completed"||b.status==="running"?b.content:void 0;if(y){for(let I of y)if(I.type==="subagent"&&I.resource===e){l=I;break}}}if(l)break}let c=[],p=this._findProviderForSession(o);if(p)try{c=await p.getSessionMessages(h.parse(e))}catch(f){this._logService.warn(`[AgentService] Failed to load subagent turns for ${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=ie.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 dS}from"@github/copilot-sdk";import{rgPath as uS}from"@vscode/ripgrep";import*as lr from"fs/promises";var _D=new Uint32Array(10);var xD=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),wD=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),CD=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]),RD=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 Sm(...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 UD=Tm.bind(void 0,!1),Im=Tm.bind(void 0,!0);function Tm(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=pn(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function Zy(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 e1(i,t){return i.length>t.length?null:Zc(i.toLowerCase(),t.toLowerCase(),0,0)}function Zc(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=Zc(i,t,e+1,n+1))?xm({start:n,end:n+1},r):null}return Zc(i,t,e,n+1)}function td(i){return 97<=i&&i<=122}function ba(i){return 65<=i&&i<=90}function nd(i){return 48<=i&&i<=57}function t1(i){return i===32||i===9||i===10||i===13}var n1=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>n1.add(i.charCodeAt(0)));function _m(i){return td(i)||ba(i)||nd(i)}function xm(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function wm(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if(ba(n)||nd(n)||e>0&&!_m(i.charCodeAt(e-1)))return e}return i.length}function ed(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=ed(i,t,e+1,n+1);!r&&(o=wm(t,o))<t.length;)r=ed(i,t,e+1,o),o++;return r===null?null:xm({start:n,end:n+1},r)}}function r1(i){let t=0,e=0,n=0,r=0,o=0;for(let p=0;p<i.length;p++)o=i.charCodeAt(p),ba(o)&&t++,td(o)&&e++,_m(o)&&n++,nd(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 i1(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function o1(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:r}=i;return e>.2&&t<.8&&n>.6&&r<.2}function s1(i){let t=0,e=0,n=0,r=0;for(let o=0;o<i.length;o++)n=i.charCodeAt(o),ba(n)&&t++,td(n)&&e++,t1(n)&&r++;return(t===0||e===0)&&r===0?i.length<=30:t<=5}function Cm(i,t){if(!t||(t=t.trim(),t.length===0)||!s1(i))return null;t.length>60&&(t=t.substring(0,60));let e=r1(t);if(!o1(e)){if(!i1(e))return null;t=t.toLowerCase()}let n=null,r=0;for(i=i.toLowerCase();r<t.length&&(n=ed(i,t,0,r))===null;)r=wm(t,r+1);return n}var MD=Sm(Im,Cm,Zy),ND=Sm(Im,Cm,e1),WD=new Rt(1e4);var va=128;function rd(){let i=[],t=[];for(let e=0;e<=va;e++)t[e]=0;for(let e=0;e<=va;e++)i.push(t.slice(0));return i}function Rm(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var BD=Rm(2*va),$D=Rm(2*va),VD=rd(),qD=rd(),zD=rd();var a1;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(a1||={});var ym=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var Em=Object.create(null);function d(i,t){if(qe(t)){let e=Em[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return Em[i]=t,{id:i}}var Pm={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),chatImport:d("chat-import",60550),chatExport:d("chat-export",60551),shareWindow:d("share-window",60552)};var l1={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)},ya={...Pm,...l1};var Am;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(Am||={});var Ro;(v=>{v.iconNameSegment="[A-Za-z0-9]+",v.iconNameExpression="[A-Za-z0-9-]+",v.iconModifierExpression="~[A-Za-z]+",v.iconNameCharacter="[A-Za-z0-9~-]";let r=new RegExp(`^(${v.iconNameExpression})(${v.iconModifierExpression})?$`);function o(S){let T=r.exec(S.id);if(!T)return o(ya.error);let[,$,ge]=T,se=["codicon","codicon-"+$];return ge&&se.push("codicon-modifier-"+ge.substring(1)),se}v.asClassNameArray=o;function s(S){return o(S).join(" ")}v.asClassName=s;function a(S){return"."+o(S).join(".")}v.asCSSSelector=a;function l(S){return!!S&&typeof S=="object"&&typeof S.id=="string"&&(typeof S.color>"u"||Am.isThemeColor(S.color))}v.isThemeIcon=l;let c=new RegExp(`^\\$\\((${v.iconNameExpression}(?:${v.iconModifierExpression})?)\\)$`);function p(S){let T=c.exec(S);if(!T)return;let[,$]=T;return{id:$}}v.fromString=p;function u(S){return{id:S}}v.fromId=u;function f(S,T){let $=S.id,ge=$.lastIndexOf("~");return ge!==-1&&($=$.substring(0,ge)),T&&($=`${$}~${T}`),{id:$}}v.modify=f;function g(S){let T=S.id.lastIndexOf("~");if(T!==-1)return S.id.substring(T+1)}v.getModifier=g;function b(S,T){return S.id===T.id&&S.color?.id===T.color?.id}v.isEqual=b;function y(S){return S?.id===ya.file.id}v.isFile=y;function I(S){return S?.id===ya.folder.id}v.isFolder=I})(Ro||={});var id=new RegExp(`\\$\\(${Ro.iconNameExpression}(?:${Ro.iconModifierExpression})?\\)`,"g"),s7=new RegExp(`(\\\\)?${id.source}`,"g");var a7=new RegExp(`\\\\${id.source}`,"g");var l7=new RegExp(`(\\s)?(\\\\)?${id.source}(\\s)?`,"g");var c7=new RegExp(`\\$\\(${Ro.iconNameCharacter}+\\)`,"g");function km(i){return i.replace(/[\\\]]/g,"\\$&")}function Xe(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 sd;(t=>t.DEFAULT={allowTrailingComma:!0})(sd||={});function c1(i,t=!1){let e=0,n=i.length,r="",o=0,s=16,a=0;function l(y){let I=0,v=0;for(;I<y;){let S=i.charCodeAt(e);if(S>=48&&S<=57)v=v*16+S-48;else if(S>=65&&S<=70)v=v*16+S-65+10;else if(S>=97&&S<=102)v=v*16+S-97+10;else break;e++,I++}return I<y&&(v=-1),v}function c(y){e=y,r="",o=0,s=16,a=0}function p(){let y=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&fi(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&fi(i.charCodeAt(e)))for(e++;e<i.length&&fi(i.charCodeAt(e));)e++;else return a=3,i.substring(y,e);let I=e;if(e<i.length&&(i.charCodeAt(e)===69||i.charCodeAt(e)===101))if(e++,(e<i.length&&i.charCodeAt(e)===43||i.charCodeAt(e)===45)&&e++,e<i.length&&fi(i.charCodeAt(e))){for(e++;e<i.length&&fi(i.charCodeAt(e));)e++;I=e}else a=3;return i.substring(y,I)}function u(){let y="",I=e;for(;;){if(e>=n){y+=i.substring(I,e),a=2;break}let v=i.charCodeAt(e);if(v===34){y+=i.substring(I,e),e++;break}if(v===92){if(y+=i.substring(I,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:y+='"';break;case 92:y+="\\";break;case 47:y+="/";break;case 98:y+="\b";break;case 102:y+="\f";break;case 110:y+=`
`;break;case 114:y+="\r";break;case 116:y+="	";break;case 117:{let T=l(4);T>=0?y+=String.fromCharCode(T):a=4;break}default:a=5}I=e;continue}if(v>=0&&v<=31)if(Sa(v)){y+=i.substring(I,e),a=2;break}else a=6;e++}return y}function f(){if(r="",a=0,o=e,e>=n)return o=n,s=17;let y=i.charCodeAt(e);if(od(y)){do e++,r+=String.fromCharCode(y),y=i.charCodeAt(e);while(od(y));return s=15}if(Sa(y))return e++,r+=String.fromCharCode(y),y===13&&i.charCodeAt(e)===10&&(e++,r+=`
`),s=14;switch(y){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 I=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!Sa(i.charCodeAt(e));)e++;return r=i.substring(I,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let v=n-1,S=!1;for(;e<v;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,S=!0;break}e++}return S||(e++,a=1),r=i.substring(I,e),s=13}return r+=String.fromCharCode(y),e++,s=16}case 45:if(r+=String.fromCharCode(y),e++,e===n||!fi(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(y);)e++,y=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(y),e++,s=16}}function g(y){if(od(y)||Sa(y))return!1;switch(y){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function b(){let y;do y=f();while(y>=12&&y<=15);return y}return{setPosition:c,getPosition:()=>e,scan:t?b:f,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>e-o,getTokenError:()=>a}}function od(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 Sa(i){return i===10||i===13||i===8232||i===8233}function fi(i){return i>=48&&i<=57}function Dm(i,t=[],e=sd.DEFAULT){let n=null,r=[],o=[];function s(l){Array.isArray(r)?r.push(l):n!==null&&(r[n]=l)}return d1(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 d1(i,t,e=sd.DEFAULT){let n=c1(i,!1);function r(F){return F?()=>F(n.getTokenOffset(),n.getTokenLength()):()=>!0}function o(F){return F?ae=>F(ae,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),y=e&&e.disallowComments,I=e&&e.allowTrailingComma;function v(){for(;;){let F=n.scan();switch(n.getTokenError()){case 4:S(14);break;case 5:S(15);break;case 3:S(13);break;case 1:y||S(11);break;case 2:S(12);break;case 6:S(16);break}switch(F){case 12:case 13:y?S(10):g();break;case 16:S(1);break;case 15:case 14:break;default:return F}}}function S(F,ae=[],he=[]){if(b(F),ae.length+he.length>0){let $e=n.getToken();for(;$e!==17;){if(ae.indexOf($e)!==-1){v();break}else if(he.indexOf($e)!==-1)break;$e=v()}}}function T(F){let ae=n.getTokenValue();return F?u(ae):a(ae),v(),!0}function $(){switch(n.getToken()){case 11:{let F=0;try{F=JSON.parse(n.getTokenValue()),typeof F!="number"&&(S(2),F=0)}catch{S(2)}u(F);break}case 7:u(null);break;case 8:u(!0);break;case 9:u(!1);break;default:return!1}return v(),!0}function ge(){return n.getToken()!==10?(S(3,[],[2,5]),!1):(T(!1),n.getToken()===6?(f(":"),v(),U()||S(4,[],[2,5])):S(5,[],[2,5]),!0)}function se(){s(),v();let F=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(F||S(4,[],[]),f(","),v(),n.getToken()===2&&I)break}else F&&S(6,[],[]);ge()||S(4,[],[2,5]),F=!0}return l(),n.getToken()!==2?S(7,[2],[]):v(),!0}function R(){c(),v();let F=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(F||S(4,[],[]),f(","),v(),n.getToken()===4&&I)break}else F&&S(6,[],[]);U()||S(4,[],[4,5]),F=!0}return p(),n.getToken()!==4?S(8,[4],[]):v(),!0}function U(){switch(n.getToken()){case 3:return R();case 1:return se();case 10:return T(!0);default:return $()}}return v(),n.getToken()===17?e.allowEmptyContent?!0:(S(4,[],[]),!1):U()?(n.getToken()!==17&&S(9,[],[]),!0):(S(4,[],[]),!1)}function Om(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}var p1={format:0,manifestPath:"plugin.json",hookConfigPath:"hooks.json",pluginRootToken:void 0,pluginRootEnvVar:void 0,parseHooks(i,t,e,n,r){return Fm(i,t,n,r)}},f1={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 Um(i,t,e,n,r,"${CLAUDE_PLUGIN_ROOT}","CLAUDE_PLUGIN_ROOT")}},m1={format:2,manifestPath:".plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${PLUGIN_ROOT}",pluginRootEnvVar:"PLUGIN_ROOT",parseHooks(i,t,e,n,r){return Um(i,t,e,n,r,"${PLUGIN_ROOT}","PLUGIN_ROOT")}};async function g1(i,t){return await Eo(ne(i,".plugin","plugin.json"),t)?m1:i.path.split("/").includes(".claude")||await Eo(ne(i,".claude-plugin","plugin.json"),t)?f1:p1}var ad={paths:[],exclusive:!1};function Ia(i){if(i==null)return ad;if(typeof i=="string"){let t=i.trim();return t?{paths:[t],exclusive:!1}:ad}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 ad}function Ta(i,t,e,n){let r=n&&Wl(i,n)?n:i,o=[];e.exclusive||o.push(ne(i,t));for(let s of e.paths){let a=vt(ne(i,s));Wl(a,r)&&o.push(a)}return o}function h1(i){if(!i||typeof i!="object"||Array.isArray(i))return;let t=i;return Object.hasOwn(t,"mcpServers")?t.mcpServers:t}function v1(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 b1=/[\s&|<>()^;!`"']/;function y1(i,t,e){if(!i.includes(e))return i;if(!b1.test(t))return i.replaceAll(e,t);let n=qt(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 S1(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 I1=/\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;function T1(i){return Yl(i,t=>{if(h.isUri(t))return t;if(typeof t=="string"){let e=t.replace(I1,"${env:$1}");return e!==t?e:void 0}})}var _1={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 x1(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 Lm(i,t,e){let n=x1(i);if(!n)return;let r,o=typeof i.cwd=="string"?i.cwd:void 0;if(o){let s=Om(o,e);Ir(s)?r=h.file(s):t&&(r=ne(t,s))}else r=t;return{...n,cwd:r}}function w1(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=Lm(s,t,e);a&&r.push(a)}else{let s=Lm(n,t,e);s&&r.push(s)}return r}function Fm(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=_1[l];if(!c)continue;let p=s[l];if(!Array.isArray(p))continue;let u=[];for(let f of p)u.push(...w1(f,e,n));u.length>0&&a.push({type:c,commands:u,uri:i,originalId:l})}return a}function Um(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]=y1(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 Fm(i,Yl(t,u=>typeof u=="string"?u.replaceAll(o,e.fsPath):void 0),n,r)}async function ld(i,t){try{let e=await t.readFile(i);return Dm(e.value.toString())}catch{return}}async function Eo(i,t){try{return await t.resolve(i),!0}catch{return!1}}var _a=".md";async function C1(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 Eo(a,e)){o(Ae(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 Eo(p,e)&&o(Ae(c.resource),p)}}if(r.length===0){let s=h.joinPath(i,"SKILL.md");await Eo(s,e)&&o(Ae(i),s)}return r.sort((s,a)=>s.name.localeCompare(a.name)),r}async function R1(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&&Bl(o).toLowerCase()===_a){r(Ae(o).slice(0,-_a.length),o);continue}if(!(!s.isDirectory||!s.children))for(let a of s.children)!a.isFile||Bl(a.resource).toLowerCase()!==_a||r(Ae(a.resource).slice(0,-_a.length),a.resource)}return n.sort((o,s)=>o.name.localeCompare(s.name)),n}async function E1(i,t,e,n,r,o){for(let s of t){let a=await ld(s,n);if(a)return e.parseHooks(s,a,i,r,o)}return[]}async function P1(i,t,e,n){let r=new Map;for(let o of i){let s=await ld(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=h1(t);if(!r)return[];let o=[];for(let[s,a]of Object.entries(r)){let l=v1(a);if(!l)continue;let c={name:s,configuration:l,uri:i};n.pluginRootToken&&n.pluginRootEnvVar&&(c=S1(c,e,n.pluginRootToken,n.pluginRootEnvVar)),c=T1(c),o.push(c)}return o}async function Nm(i,t,e,n,r){let o=await g1(i,t),s=await ld(ne(i,o.manifestPath),t),a=s&&typeof s=="object"?s:void 0,l=Ta(i,o.hookConfigPath,Ia(a?.hooks),r),c=Ta(i,".mcp.json",Ia(a?.mcpServers),r),p=Ta(i,"skills",Ia(a?.skills),r),u=Ta(i,"agents",Ia(a?.agents),r),f=[],g=a?.mcpServers;g&&typeof g=="object"&&!Array.isArray(g)&&!Re(g,{paths:!0})&&(f=Mm(ne(i,o.manifestPath),{mcpServers:g},i.fsPath,o));let b=[],y=a?.hooks;if(y&&typeof y=="object"&&!Array.isArray(y)&&!Re(y,{paths:!0})){let $=ne(i,o.manifestPath);b=o.parseHooks($,{hooks:y},i,e,n)}let[I,v,S,T]=await Promise.all([b.length>0?Promise.resolve(b):E1(i,l,o,t,e,n),f.length>0?Promise.resolve(f):P1(c,i.fsPath,o,t),C1(i,p,t),R1(u,t)]);return{hooks:I,mcpServers:v,skills:S,agents:T}}var xa=ee("agentPluginManager");var mi=ee("sessionDataService"),Po="session.db";function A1(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 or(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=A1(o,r);return!s||!k1(s.directory,e)?!1:(t.command=s.command,!0)}function k1(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 ut.isEqual(o,s)}function Wm(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 D1=new Set(["edit","create","apply_patch","git_apply_patch"]);function hi(i){return D1.has(i)}function wa(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{return}return i?.path}var Ao=new Set(["bash","powershell"]),cd=new Set(["write_bash","write_powershell"]),Bm=new Set(["read_bash","read_powershell"]),O1=new Set(["task"]),L1=new Set(["grep","rg"]),F1=new Set(["report_intent","skill"]);function Ca(i){return F1.has(i)}function dd(i){return Ao.has(i)}function Ut(i,t){return i.length>t?i.substring(0,t-3)+"...":i}function gi(i){let t=h.file(i);return`[${Ae(t)}](${t})`}function de(i){return{markdown:i}}function on(i){switch(i){case"bash":return m(1948,null);case"powershell":return m(1957,null);case"read_bash":case"read_powershell":return m(1958,null);case"write_bash":case"write_powershell":return m(1963,null);case"bash_shutdown":return m(1949,null);case"list_bash":case"list_powershell":return m(1955,null);case"view":return m(1960,null);case"edit":return m(1951,null);case"create":return m(1950,null);case"grep":case"rg":return m(1954,null);case"glob":return m(1953,null);case"apply_patch":case"git_apply_patch":return m(1956,null);case"web_search":return m(1962,null);case"web_fetch":return m(1961,null);case"ask_user":return m(1947,null);case"exit_plan_mode":return m(1952,null);default:return i}}function An(i,t,e){if(Ao.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return de(m(1937,null,Xe(Ut(r,80))))}return m(1936,null,t)}if(cd.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return de(m(1946,null,Xe(Ut(r,80))))}return m(1945,null)}if(Bm.has(i))return m(1935,null);switch(i){case"view":{let n=e;if(n?.path){let r=gi(n.path),o=Wm(n.view_range);return o?o.endLine===-1?de(m(1942,null,r,o.startLine)):o.endLine!==o.startLine?de(m(1944,null,r,o.startLine,o.endLine)):de(m(1943,null,r,o.startLine)):de(m(1941,null,r))}return m(1940,null)}case"edit":{let n=e;return n?.path?de(m(1928,null,gi(n.path))):m(1927,null)}case"create":{let n=e;return n?.path?de(m(1926,null,gi(n.path))):m(1925,null)}case"grep":{let n=e;return n?.pattern?de(m(1934,null,Xe(Ut(n.pattern,80)))):m(1933,null)}case"rg":{let n=e;return n?.pattern?de(m(1934,null,Xe(Ut(n.pattern,80)))):m(1933,null)}case"glob":{let n=e;return n?.pattern?de(m(1932,null,Xe(Ut(n.pattern,80)))):m(1931,null)}case"exit_plan_mode":return m(1929,null);default:return m(1930,null,t)}}function Ra(i,t,e,n){if(!n)return m(1907,null,t);if(Ao.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return de(m(1915,null,Xe(Ut(o,80))))}return m(1914,null,t)}if(cd.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return de(m(1924,null,Xe(Ut(o,80))))}return m(1923,null)}if(Bm.has(i))return m(1913,null);switch(i){case"view":{let r=e;if(r?.path){let o=gi(r.path),s=Wm(r.view_range);return s?s.endLine===-1?de(m(1920,null,o,s.startLine)):s.endLine!==s.startLine?de(m(1922,null,o,s.startLine,s.endLine)):de(m(1921,null,o,s.startLine)):de(m(1919,null,o))}return m(1918,null)}case"edit":{let r=e;return r?.path?de(m(1905,null,gi(r.path))):m(1904,null)}case"create":{let r=e;return r?.path?de(m(1903,null,gi(r.path))):m(1902,null)}case"grep":{let r=e;return r?.pattern?de(m(1912,null,Xe(Ut(r.pattern,80)))):m(1911,null)}case"rg":{let r=e;return r?.pattern?de(m(1912,null,Xe(Ut(r.pattern,80)))):m(1911,null)}case"glob":{let r=e;return r?.pattern?de(m(1910,null,Xe(Ut(r.pattern,80)))):m(1909,null)}case"exit_plan_mode":return m(1906,null);default:return m(1908,null,t)}}function U1(i,t){if(i)return`synth-skill-${i}`;let e=t.path??t.name;return`synth-skill-${yn(e).toString(16)}`}function Ea(i,t){let e=U1(t,i),n=m(1959,null),r=km(i.name),o=i.path?`[${r}](${h.file(i.path)})`:void 0,s=o?de(m(1938,null,o)):m(1939,null,i.name),a=o?de(m(1916,null,o)):m(1917,null,i.name);return{toolCallId:e,toolName:"skill",displayName:n,invocationMessage:s,pastTenseMessage:a}}function Pa(i,t,e){if(!(!t&&!e)){if(Ao.has(i)||cd.has(i)){let n=t,r=n?.command??n?.args;return typeof r=="string"?r:typeof r=="object"&&r!==null&&Re(r,{command:!0})?r.command:e}switch(i){case"grep":return t?.pattern??e;case"rg":return t?.pattern??e;default:if(t)try{return JSON.stringify(t,null,2)}catch{return e}return e}}}function Aa(i){if(Ao.has(i))return"terminal";if(O1.has(i))return"subagent";if(L1.has(i))return"search"}function ka(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 Da(i){switch(i){case"powershell":case"write_powershell":case"read_powershell":return"powershell";default:return"shellscript"}}function rn(i){try{return JSON.stringify(i)}catch{return}}function Pn(i){return typeof i=="string"?i:void 0}function $m(i,t){let e=Pn(i.path)??Pn(i.fileName),n=Pn(i.fullCommandText),r=Pn(i.intention),o=Pn(i.serverName),s=Pn(i.toolName);switch(i.kind){case"shell":{let a=n?{command:n}:void 0;or("bash",a,t);let l=typeof a?.command=="string"?a.command:n;return{confirmationTitle:m(1898,null),invocationMessage:r??An("bash",on("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=Pn(i.toolName);if(a&&l&&dd(l)&&typeof a.command=="string"){or(l,a,t);let c=a.command;return{confirmationTitle:m(1898,null),invocationMessage:An(l,on(l),{command:c}),toolInput:c,permissionKind:"shell",permissionPath:e}}return{confirmationTitle:m(1894,null),invocationMessage:de(m(1893,null,Xe(s??i.kind))),toolInput:rn(a||i),permissionKind:i.kind,permissionPath:e}}case"write":return{confirmationTitle:m(1901,null),invocationMessage:An("edit",on("edit"),e?{path:e}:void 0),toolInput:rn(e?{path:e}:i)??void 0,permissionKind:"write",permissionPath:e};case"mcp":{let a=s??m(1895,null);return{confirmationTitle:o?m(1896,null,o):m(1894,null),invocationMessage:o?`${o}: ${a}`:a,toolInput:rn({serverName:o,toolName:s})??void 0,permissionKind:"mcp",permissionPath:e}}case"read":return{confirmationTitle:m(1897,null),invocationMessage:r??An("view",on("view"),e?{path:e}:void 0),toolInput:rn(e?{path:e,intention:r}:i)??void 0,permissionKind:"read",permissionPath:e};case"url":{let a=Pn(i.url),l=a?URL.canParse(a)?new URL(a).href:a:void 0;return{confirmationTitle:m(1900,null),invocationMessage:de(m(1899,null)),toolInput:l?JSON.stringify({url:l}):void 0,permissionKind:"url"}}default:return{confirmationTitle:m(1894,null),invocationMessage:de(m(1893,null,Xe(s??i.kind))),toolInput:rn(i)??void 0,permissionKind:i.kind,permissionPath:e}}}function Vm(i){try{return JSON.stringify(i)}catch{return}}function M1(i){if(i.type!=="user.message")return!1;let t=i.data?.source;return!!t&&t.toLowerCase()!=="user"}function Oa(i,t){return{id:i,userMessage:{text:t},responseParts:[],pendingTools:new Map}}function La(i,t){return{id:i.id,userMessage:i.userMessage,responseParts:i.responseParts,usage:void 0,state:t}}async function ud(i,t,e,n){let r=new Map,o=[];for(let I of e){if(I.type!=="tool.execution_start")continue;let v=I.data;if(Ca(v.toolName))continue;let S=v.arguments!==void 0?Vm(v.arguments):void 0,T;if(S)try{T=JSON.parse(S)}catch{}let ge=(or(v.toolName,T,n)?Vm(T):void 0)??S,se=Aa(v.toolName),R=se==="subagent"?ka(T):void 0,U=on(v.toolName);r.set(v.toolCallId,{toolName:v.toolName,displayName:U,invocationMessage:An(v.toolName,U,T),toolInput:Pa(v.toolName,T,ge),toolKind:se,language:se==="terminal"?Da(v.toolName):void 0,subagentAgentName:R?.agentName,subagentDescription:R?.description,parameters:T,parentToolCallId:v.parentToolCallId}),hi(v.toolName)&&o.push(v.toolCallId)}let s;if(t&&o.length>0)try{let I=await t.getFileEdits(o);if(I.length>0){s=new Map;for(let v of I){let S=s.get(v.toolCallId);S||(S=[],s.set(v.toolCallId,S)),S.push(v)}}}catch{}let a=i.toString(),l=[],c=new Map,p=new Map,u=new Map,f,g=I=>{let v=c.get(I);if(!v||(c.delete(I),v.responseParts.length===0))return;let S=p.get(I)??[];S.push(La(v,"complete")),p.set(I,S)},b=I=>{let v=c.get(I);return v||(v=Oa(J(),""),c.set(I,v)),v},y=I=>I?b(I):f;for(let I of e)switch(I.type){case"user.message":{if(M1(I))continue;let v=I.data,S=v?.messageId??v?.interactionId??"",T=v?.content??"";if(v?.parentToolCallId){let $=b(v.parentToolCallId);T&&$.responseParts.push({kind:"markdown",id:J(),content:T})}else f&&l.push(La(f,"cancelled")),f=Oa(S,T);break}case"assistant.message":{let v=I.data,S=v?.messageId??v?.interactionId??"",T=v?.content??"",$=v?.reasoningText,ge=!!v?.toolRequests&&v.toolRequests.length>0,se=y(v?.parentToolCallId)??(f=Oa(S,""));$&&se.responseParts.push({kind:"reasoning",id:J(),content:$}),T&&se.responseParts.push({kind:"markdown",id:J(),content:T}),!v?.parentToolCallId&&!ge&&se===f&&(l.push(La(f,"complete")),f=void 0);break}case"subagent.started":{let v=I.data;u.set(v.toolCallId,{agentName:v.agentName,agentDisplayName:v.agentDisplayName,agentDescription:v.agentDescription});break}case"tool.execution_start":break;case"tool.execution_complete":{let v=I.data,S=r.get(v.toolCallId);if(!S)continue;r.delete(v.toolCallId);let T=y(v.parentToolCallId);if(!T)continue;let $=N1(v,S,a,s,u.get(v.toolCallId));T.responseParts.push($),!v.parentToolCallId&&u.has(v.toolCallId)&&g(v.toolCallId);break}case"skill.invoked":{let v=I,S=Ea(v.data,v.id);(f??(f=Oa(J(),""))).responseParts.push({kind:"toolCall",toolCall:{status:"completed",toolCallId:S.toolCallId,toolName:S.toolName,displayName:S.displayName,invocationMessage:S.invocationMessage,success:!0,pastTenseMessage:S.pastTenseMessage,confirmed:"not-needed"}});break}default:break}f&&(l.push(La(f,"cancelled")),f=void 0);for(let I of[...c.keys()])g(I);return{turns:l,subagentTurnsByToolCallId:p}}function N1(i,t,e,n,r){let o=i.error?.message??i.result?.content,s=[];o!==void 0&&s.push({type:"text",text:o});let a=n?.get(i.toolCallId);if(a)for(let c of a){let p=c.kind==="rename"&&c.originalPath?h.file(c.originalPath).toString():h.file(c.filePath).toString(),u=h.file(c.filePath).toString(),f=c.kind!=="create",g=c.kind!=="delete";s.push({type:"fileEdit",before:f?{uri:p,content:{uri:Rn(e,c.toolCallId,c.filePath,"before")}}:void 0,after:g?{uri:u,content:{uri:Rn(e,c.toolCallId,c.filePath,"after")}}:void 0,diff:c.addedLines!==void 0||c.removedLines!==void 0?{added:c.addedLines,removed:c.removedLines}:void 0})}r&&s.push({type:"subagent",resource:Xs(e,i.toolCallId),title:r.agentDisplayName,agentName:r.agentName,description:r.agentDescription});let l={status:"completed",toolCallId:i.toolCallId,toolName:t.toolName,displayName:t.displayName,invocationMessage:t.invocationMessage,toolInput:t.toolInput,success:i.success,pastTenseMessage:Ra(t.toolName,t.displayName,t.parameters,i.success),content:s.length>0?s:void 0,error:i.error,confirmed:"not-needed",_meta:{toolKind:t.toolKind,language:t.language,subagentDescription:t.subagentDescription,subagentAgentName:t.subagentAgentName}};return{kind:"toolCall",toolCall:l}}var ko=class{constructor(t){this.type=1,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t}},kn=class{constructor(t){this.type=2,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t,this.entries=new Map}},Fa=class extends k{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 kn("");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 te("file not found","EntryNotFound")}readFileStream(e){let n=this._lookupAsFile(e,!1).data,r=Kt(o=>w.concat(o.map(s=>w.wrap(s))).buffer);return r.end(n),r}async writeFile(e,n,r){let o=Ae(e),s=this._lookupParentDirectory(e),a=s.entries.get(o);if(a instanceof kn)throw te("file is directory","EntryIsADirectory");if(!a&&!r.create)throw te("file not found","EntryNotFound");if(a&&r.create&&!r.overwrite)throw te("file exists already","EntryExists");if(a||(a=new ko(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=Xt(n),s=o&&!!n.append;if(r){if(r instanceof kn)throw te("file is directory","EntryIsADirectory")}else{if(!o)throw te("file not found","EntryNotFound");let l=Ae(e),c=this._lookupParentDirectory(e);r=new ko(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 te("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 te("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 te("file exists already","EntryExists");let o=this._lookup(e,!1),s=this._lookupParentDirectory(e),a=this._lookupParentDirectory(n),l=Ae(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=gn(e),o=Ae(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 te("file exists already","EntryExists");let n=Ae(e),r=gn(e),o=this._lookupAsDirectory(r,!1),s=new kn(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 kn&&(a=o.entries.get(s)),!a){if(n)return;throw te("file not found","EntryNotFound")}o=a}return o}_lookupAsDirectory(e,n){let r=this._lookup(e,n);if(r instanceof kn)return r;throw te("file not a directory","EntryNotADirectory")}_lookupAsFile(e,n){let r=this._lookup(e,n);if(r instanceof ko)return r;throw te("file is a directory","EntryIsADirectory")}_lookupParentDirectory(e){let n=gn(e);return this._lookupAsDirectory(n,!1)}watch(e,n){return k.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 qm="pending-edit-content";function zm(i,t,e){return h.from({scheme:qm,authority:yt(w.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${yt(w.fromString(e))}`})}function Hm(i){let t=new Fa,e=i.registerProvider(qm,t);return{dispose(){e.dispose(),t.dispose()}}}var W1=".copilot",jm=M(W1,"session-state");function B1(i){switch(i){case"autopilot":return{label:m(1882,null),description:m(1881,null)};case"autopilot_fleet":return{label:m(1884,null),description:m(1883,null)};case"interactive":return{label:m(1889,null),description:m(1888,null)};case"exit_only":return{label:m(1886,null),description:m(1885,null)};default:return}}function $1(i){let t=process.env.XDG_STATE_HOME;return t?M(t,jm):M(i,jm)}var V1=/^(?:\d{10,}-copilot-tool-output-[a-z0-9]{6}|copilot-tool-output-\d{10,}-[a-z0-9]{6})\.txt$/i;function q1(i,t){let e=vt(h.file(i)),n=vt(h.file(t)),r=vt(h.joinPath(e,".."));if(!ut.isEqual(r,n))return!1;let o=Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\")),s=o>=0?i.substring(o+1):i;return V1.test(s)}var vi=class extends k{constructor(e,n,r,o,s,a,l){super();this._instantiationService=n;this._logService=r;this._fileService=s;this._environmentService=a;this._configurationService=l;this._activeToolCalls=new Map;this._pendingPermissions=new Map;this._pendingUserInputs=new Map;this._pendingPlanReviews=new Map;this._turnId="";this._pendingClientToolCalls=new Map;this._pendingEditContentUris=new Map;this._hasReportedActivity=!1;this.sessionId=e.rawSessionId,this.sessionUri=e.sessionUri,this._onDidSessionProgress=e.onDidSessionProgress,this._wrapperFactory=e.wrapperFactory,this._shellManager=e.shellManager,this._workingDirectory=e.workingDirectory,this._customizationDirectory=e.customizationDirectory,this._appliedSnapshot=e.clientSnapshot??{clientId:"",tools:[],plugins:[]},this._clientToolNames=new Set(this._appliedSnapshot.tools.map(c=>c.name)),this._databaseRef=o.openDatabase(e.sessionUri),this._register(P(()=>this._databaseRef.dispose())),this._editTracker=this._instantiationService.createInstance(ni,e.sessionUri.toString(),this._databaseRef.object),this._register(P(()=>this._denyPendingPermissions())),this._register(P(()=>this._shellManager?.dispose())),this._register(P(()=>this._cancelPendingUserInputs())),this._register(P(()=>this._cancelPendingPlanReviews())),this._shellManager&&this._register(this._shellManager.onDidAssociateTerminal(({toolCallId:c,terminalUri:p,displayName:u})=>{let f=this._activeToolCalls.get(c);f&&(f.content.push({type:"terminal",resource:p,title:u}),this._emitAction({type:"session/toolCallContentChanged",session:this._protocolSession(),turnId:this._turnId,toolCallId:c,content:f.content}))})),this._register(P(()=>this._cancelPendingClientToolCalls()))}_protocolSession(){return this.sessionUri.toString()}_emitAction(e,n){this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:e,parentToolCallId:n})}resetTurnState(e){this._turnId=e,this._currentMarkdownPartId=void 0,this._currentReasoningPartId=void 0}emitInitialMarkdown(e){this._emitMarkdownDelta(e)}_emitMarkdownDelta(e,n){let r=this._protocolSession(),o=this._currentMarkdownPartId;if(!o){o=J(),this._currentMarkdownPartId=o,this._emitAction({type:"session/responsePart",session:r,turnId:this._turnId,part:{kind:"markdown",id:o,content:e}},n);return}this._emitAction({type:"session/delta",session:r,turnId:this._turnId,partId:o,content:e},n)}_emitReasoningDelta(e){let n=this._protocolSession(),r=this._currentReasoningPartId;if(!r){r=J(),this._currentReasoningPartId=r,this._emitAction({type:"session/responsePart",session:n,turnId:this._turnId,part:{kind:"reasoning",id:r,content:e}});return}this._emitAction({type:"session/reasoning",session:n,turnId:this._turnId,partId:r,content:e})}get appliedSnapshot(){return this._appliedSnapshot}get customizationDirectory(){return this._customizationDirectory}createClientSdkTools(){let e=this._appliedSnapshot.tools;return e.length===0?[]:e.map(n=>({name:n.name,description:n.description??"",parameters:n.inputSchema??{type:"object",properties:{}},handler:async(r,{toolCallId:o})=>{try{let s=this._pendingClientToolCalls.get(o);s||(s=new Ne,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 Ne,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,o){r&&(this._turnId=r),this._logService.info(`[Copilot:${this.sessionId}] sendMessage called: "${e.substring(0,100)}${e.length>100?"...":""}" (${n?.length??0} attachments)`);let s=n?.map(a=>{let l=a.uri.scheme==="file"?a.uri.fsPath:a.uri.toString();return a.type==="selection"?{type:"selection",filePath:l,displayName:a.displayName??l,text:a.text,selection:a.selection}:{type:a.type,path:l,displayName:a.displayName}});s?.length&&this._logService.trace(`[Copilot:${this.sessionId}] Attachments: ${JSON.stringify(s.map(a=>({type:a.type,path:a.type==="selection"?a.filePath:a.path})))}`),await this.applyMode(o),await this._wrapper.session.send({prompt:e,attachments:s}),this._logService.info(`[Copilot:${this.sessionId}] session.send() returned`)}async applyMode(e){if(!(!e||e===this._lastAppliedMode))try{await this._wrapper.session.rpc.mode.set({mode:e}),this._lastAppliedMode=e,this._logService.info(`[Copilot:${this.sessionId}] rpc.mode.set succeeded: mode=${e}`)}catch(n){this._logService.error(n,`[Copilot:${this.sessionId}] rpc.mode.set failed: mode=${e}`)}}async sendSteering(e){this._logService.info(`[Copilot:${this.sessionId}] Sending steering message: "${e.userMessage.text.substring(0,100)}"`);try{await this._wrapper.session.send({prompt:e.userMessage.text,mode:"immediate"}),this._onDidSessionProgress.fire({kind:"steering_consumed",session:this.sessionUri,id:e.id})}catch(n){this._logService.error(`[Copilot:${this.sessionId}] Steering message failed`,n)}}async getMessages(){let e=await this._wrapper.session.getMessages(),n;try{n=this._databaseRef.object}catch{}return(await ud(this.sessionUri,n,e,this._workingDirectory)).turns}async getSubagentMessages(e,n){let r=await this._wrapper.session.getMessages(),o;try{o=this._databaseRef.object}catch{}return(await ud(this.sessionUri,o,r,this._workingDirectory)).subagentTurnsByToolCallId.get(e)??[]}async abort(){this._logService.info(`[Copilot:${this.sessionId}] Aborting session...`),this._denyPendingPermissions(),await this._wrapper.session.abort()}async destroySession(){await this._wrapper.session.destroy()}async setModel(e,n){this._logService.info(`[Copilot:${this.sessionId}] Changing model to: ${e}`),await this._wrapper.session.setModel(e,{reasoningEffort:n})}async handlePermissionRequest(e){this._logService.info(`[Copilot:${this.sessionId}] Permission request: kind=${e.kind}`);try{let n=e.toolCallId;if(!n)return this._logService.warn(`[Copilot:${this.sessionId}] Permission request without toolCallId, auto-denying: kind=${e.kind}`),{kind:"reject"};let r=this._getInternalSessionResourcePath(e);if(r)return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving internal session resource ${r}`),{kind:"approve-once"};if(e.kind==="read"&&typeof e.path=="string"&&q1(e.path,this._environmentService.tmpDir.fsPath))return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving Copilot SDK tool-output temp file ${e.path}`),{kind:"approve-once"};this._logService.info(`[Copilot:${this.sessionId}] Requesting confirmation for tool call: ${n}`);let o=new Ne;this._pendingPermissions.set(n,o);let{confirmationTitle:s,invocationMessage:a,toolInput:l,permissionKind:c,permissionPath:p}=$m(e,this._workingDirectory),u=await this._buildEditsForPermission(e,n);if(!this._pendingPermissions.has(n))return{kind:"reject"};let f=e.toolName??e.kind,g=this._activeToolCalls.get(n)?.parentToolCallId;this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:{status:"pending-confirmation",toolCallId:n,toolName:f,displayName:on(f),invocationMessage:a,toolInput:l,confirmationTitle:s,edits:u},permissionKind:c,permissionPath:p,parentToolCallId:g});let b=await o.p;return this._logService.info(`[Copilot:${this.sessionId}] Permission response: toolCallId=${n}, approved=${b}`),{kind:b?"approve-once":"reject"}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed to handle permission request: kind=${e.kind}, toolCallId=${e.toolCallId??"missing"}`),n}}_getInternalSessionResourcePath(e){let n;if(e.kind==="read"?n=typeof e.path=="string"?e.path:void 0:e.kind==="write"&&(n=typeof e.fileName=="string"?e.fileName:void 0),!n)return;let r=vt(h.file($1(this._environmentService.userHome.fsPath))),o=vt(h.joinPath(r,this.sessionId));if(!ut.isEqualOrParent(o,r))return;let s=vt(h.file(n));return ut.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=zm(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"?H1(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){if(this._configurationService.getEffectiveValue(this.sessionUri.toString(),Tt,"autoApprove")==="autopilot")return{answer:"The user is not available to answer your question. Choose a pragmatic option best aligned with the context of the request.",wasFreeform:!0};let o=e.question.substring(0,100);try{let s=J(),a=J();this._logService.info(`[Copilot:${this.sessionId}] User input request: requestId=${s}, question="${o}"`);let l=new Ne;this._pendingUserInputs.set(s,{deferred:l,questionId:a});let c={id:s,questions:[e.choices&&e.choices.length>0?{kind:"single-select",id:a,message:e.question,required:!0,options:e.choices.map(g=>({id:g,label:g})),allowFreeformInput:e.allowFreeform??!0}:{kind:"text",id:a,message:e.question,required:!0}]};this._emitAction({type:"session/inputRequested",session:this._protocolSession(),request:c});let p=await l.p;if(this._logService.info(`[Copilot:${this.sessionId}] User input response: requestId=${s}, response=${p.response}`),p.response!=="accept"||!p.answers)return{answer:"",wasFreeform:!0};let u=p.answers[a];if(!u||u.state==="skipped")return{answer:"",wasFreeform:!0};let{value:f}=u;if(f.kind==="text")return{answer:f.value,wasFreeform:!0};if(f.kind==="selected"){let g=!e.choices?.includes(f.value);return{answer:f.value,wasFreeform:g}}return{answer:"",wasFreeform:!0}}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed to handle user input request: question="${o}"`),s}}respondToUserInputRequest(e,n,r){let o=this._pendingPlanReviews.get(e);if(o)return this._pendingPlanReviews.delete(e),o.deferred.complete(this._resolveExitPlanMode(o,n,r)),!0;let s=this._pendingUserInputs.get(e);return s?(this._pendingUserInputs.delete(e),s.deferred.complete({response:n,answers:r}),!0):!1}_resolveExitPlanMode(e,n,r){if(n!=="accept")return{approved:!1};let o=r?.[e.questionId];if(!o||o.state==="skipped")return{approved:!1};let s=o.value,a,l;if(s.kind==="selected")a=s.value,l=s.freeformValues?.find(f=>f.trim().length>0)?.trim();else if(s.kind==="text")l=s.value.trim()||void 0;else return{approved:!1};let c=a&&e.actions.includes(a)?a:e.actions.includes(e.recommendedAction)?e.recommendedAction:void 0;return l?{approved:!1,feedback:l,...c?{selectedAction:c}:{}}:c?{approved:!0,selectedAction:c,...c==="autopilot"||c==="autopilot_fleet"?{autoApproveEdits:!0}:{}}:{approved:!1}}async _handlePreToolUse(e){try{if(hi(e.toolName)){let n=wa(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(hi(e.toolName)){let n=wa(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;this._register(e.onUserMessage(r=>{this._turnId&&this._databaseRef.object.setTurnEventId(this._turnId,r.id)})),this._register(e.onMessageDelta(r=>{this._logService.trace(`[Copilot:${n}] delta: ${r.data.deltaContent}`),this._emitMarkdownDelta(r.data.deltaContent,r.data.parentToolCallId)})),this._register(e.onMessage(r=>{if(this._logService.info(`[Copilot:${n}] Full message received: ${r.data.content.length} chars`),!r.data.content||this._currentMarkdownPartId)return;let o=J();this._currentMarkdownPartId=o,this._emitAction({type:"session/responsePart",session:this._protocolSession(),turnId:this._turnId,part:{kind:"markdown",id:o,content:r.data.content}},r.data.parentToolCallId)})),this._register(e.onToolStart(r=>{if(Ca(r.data.toolName)){if(this._logService.trace(`[Copilot:${n}] Tool started (hidden): ${r.data.toolName}`),r.data.toolName==="report_intent"){let b=r.data.arguments?.intent;typeof b=="string"&&b.length>0&&(this._hasReportedActivity=!0,this._emitAction({type:"session/activityChanged",session:this._protocolSession(),activity:b}))}return}this._logService.info(`[Copilot:${n}] Tool started: ${r.data.toolName}`);let o=r.data.arguments!==void 0?rn(r.data.arguments):void 0,s;if(o)try{s=JSON.parse(o)}catch{}or(r.data.toolName,s,this._workingDirectory)&&(o=rn(s));let a=on(r.data.toolName);this._activeToolCalls.set(r.data.toolCallId,{toolName:r.data.toolName,displayName:a,parameters:s,content:[],parentToolCallId:r.data.parentToolCallId});let l=Aa(r.data.toolName),c=l==="subagent"?ka(s):void 0,p=this._clientToolNames.has(r.data.toolName)?this._appliedSnapshot.clientId:void 0,u=r.data.parentToolCallId;this._currentMarkdownPartId=void 0,this._currentReasoningPartId=void 0;let f={toolKind:l,language:l==="terminal"?Da(r.data.toolName):void 0};c?.description&&(f.subagentDescription=c.description),c?.agentName&&(f.subagentAgentName=c.agentName),o!==void 0&&(f.toolArguments=o),r.data.mcpServerName&&(f.mcpServerName=r.data.mcpServerName),r.data.mcpToolName&&(f.mcpToolName=r.data.mcpToolName);let g=this._protocolSession();this._emitAction({type:"session/toolCallStart",session:g,turnId:this._turnId,toolCallId:r.data.toolCallId,toolName:r.data.toolName,displayName:a,toolClientId:p,_meta:f},u),!p&&this._emitAction({type:"session/toolCallReady",session:g,turnId:this._turnId,toolCallId:r.data.toolCallId,invocationMessage:An(r.data.toolName,a,s),toolInput:Pa(r.data.toolName,s,o),confirmed:"not-needed"},u)})),this._register(e.onToolComplete(async r=>{let o=this._activeToolCalls.get(r.data.toolCallId);if(!o)return;this._logService.info(`[Copilot:${n}] Tool completed: ${r.data.toolCallId}`),this._activeToolCalls.delete(r.data.toolCallId);let s=o.displayName,a=r.data.error?.message??r.data.result?.content,l=[...o.content];a!==void 0&&l.push({type:"text",text:a});let c=hi(o.toolName)?wa(o.parameters):void 0;if(c)try{let p=await this._editTracker.takeCompletedEdit(this._turnId,r.data.toolCallId,c);p&&l.push(p)}catch(p){this._logService.warn(`[Copilot:${n}] Failed to take completed edit`,p)}if(dd(o.toolName)&&this._shellManager){let p=this._shellManager.getTerminalUriForToolCall(r.data.toolCallId);p&&!l.some(u=>u.type==="terminal"&&u.resource===p)&&l.push({type:"terminal",resource:p,title:o.displayName})}this._emitAction({type:"session/toolCallComplete",session:this._protocolSession(),turnId:this._turnId,toolCallId:r.data.toolCallId,result:{success:r.data.success,pastTenseMessage:Ra(o.toolName,s,o.parameters,r.data.success),content:l.length>0?l:void 0,error:r.data.error}},r.data.parentToolCallId)})),this._register(e.onIdle(()=>{this._logService.info(`[Copilot:${n}] Session idle`),this._hasReportedActivity&&(this._hasReportedActivity=!1,this._emitAction({type:"session/activityChanged",session:this._protocolSession(),activity:void 0})),this._emitAction({type:"session/turnComplete",session:this._protocolSession(),turnId:this._turnId})})),this._register(e.onSkillInvoked(r=>{this._logService.info(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`);let o=Ea(r.data,r.id),s=this._protocolSession();this._emitAction({type:"session/toolCallStart",session:s,turnId:this._turnId,toolCallId:o.toolCallId,toolName:o.toolName,displayName:o.displayName}),this._emitAction({type:"session/toolCallReady",session:s,turnId:this._turnId,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,confirmed:"not-needed"}),this._emitAction({type:"session/toolCallComplete",session:s,turnId:this._turnId,toolCallId:o.toolCallId,result:{success:!0,pastTenseMessage:o.pastTenseMessage}})})),this._register(e.onSubagentStarted(r=>{this._logService.info(`[Copilot:${n}] Subagent started: toolCallId=${r.data.toolCallId}, agent=${r.data.agentName}`),this._onDidSessionProgress.fire({kind:"subagent_started",session:this.sessionUri,toolCallId:r.data.toolCallId,agentName:r.data.agentName,agentDisplayName:r.data.agentDisplayName,agentDescription:r.data.agentDescription})})),this._register(e.onSessionError(r=>{this._logService.error(`[Copilot:${n}] Session error: ${r.data.errorType} - ${r.data.message}`),this._emitAction({type:"session/error",session:this._protocolSession(),turnId:this._turnId,error:{errorType:r.data.errorType,message:r.data.message,stack:r.data.stack}})})),this._register(e.onUsage(r=>{this._logService.trace(`[Copilot:${n}] Usage: model=${r.data.model}, in=${r.data.inputTokens??"?"}, out=${r.data.outputTokens??"?"}, cacheRead=${r.data.cacheReadTokens??"?"}`),this._emitAction({type:"session/usage",session:this._protocolSession(),turnId:this._turnId,usage:{inputTokens:r.data.inputTokens,outputTokens:r.data.outputTokens,model:r.data.model,cacheReadTokens:r.data.cacheReadTokens}})})),this._register(e.onReasoningDelta(r=>{this._logService.trace(`[Copilot:${n}] Reasoning delta: ${r.data.deltaContent.length} chars`),this._emitReasoningDelta(r.data.deltaContent)})),this._register(e.onSessionModeChanged(r=>{this._logService.info(`[Copilot:${n}] session.mode_changed: ${r.data.previousMode} -> ${r.data.newMode}`);let o=r.data.newMode;o!=="interactive"&&o!=="plan"&&o!=="autopilot"||(this._lastAppliedMode=o,this._syncAhpConfigFromSdkMode(o))}))}_syncAhpConfigFromSdkMode(e){let n=this.sessionUri.toString(),r={};switch(e){case"plan":r.mode="plan";break;case"autopilot":r.mode="interactive",r.autoApprove="autopilot";break;case"interactive":r.mode="interactive";break}this._configurationService.updateSessionConfig(n,r)}async handleExitPlanModeRequest(e){let n=J(),r=J();if(this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request: rpcId=${n}, actions=[${e.actions.join(",")}], recommended=${e.recommendedAction}`),this._configurationService.getEffectiveValue(this.sessionUri.toString(),Tt,"autoApprove")==="autopilot"){let u=z1(e);return this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request auto-accepted (autoApprove=autopilot): selectedAction=${u.selectedAction??"(none)"}`),u}let s=null;try{s=(await this._wrapper.session.rpc.plan.read()).path??null}catch(u){this._logService.warn(`[Copilot:${this.sessionId}] rpc.plan.read failed for exit_plan_mode: ${u instanceof Error?u.message:String(u)}`)}let a=e.summary||m(1887,null);if(s){let u=h.file(s);a+=`

[${m(1892,null)}](${u.toString()})`}this._emitMarkdownDelta(a);let l=e.actions.map(u=>{let f=B1(u);return{id:u,label:f?.label??u,description:f?.description,recommended:u===e.recommendedAction}}),c={id:n,questions:[{kind:"single-select",id:r,title:m(1891,null),message:m(1890,null),required:!0,options:l,allowFreeformInput:!0}]},p=new Ne;this._pendingPlanReviews.set(n,{actions:e.actions,recommendedAction:e.recommendedAction,questionId:r,deferred:p}),this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:{type:"session/inputRequested",session:this.sessionUri.toString(),request:c}});try{return await p.p}catch(u){return this._logService.error(u,`[Copilot:${this.sessionId}] exitPlanMode.request handler failed: rpcId=${n}`),{approved:!1}}}_subscribeForLogging(){let e=this._wrapper,n=this.sessionId;this._register(e.onSessionStart(r=>{this._logService.trace(`[Copilot:${n}] Session started: model=${r.data.selectedModel??"default"}, producer=${r.data.producer}`)})),this._register(e.onSessionResume(r=>{this._logService.trace(`[Copilot:${n}] Session resumed: eventCount=${r.data.eventCount}`)})),this._register(e.onSessionInfo(r=>{this._logService.trace(`[Copilot:${n}] Session info [${r.data.infoType}]: ${r.data.message}`)})),this._register(e.onSessionModelChange(r=>{this._logService.trace(`[Copilot:${n}] Model changed: ${r.data.previousModel??"(none)"} -> ${r.data.newModel}`)})),this._register(e.onSessionHandoff(r=>{this._logService.trace(`[Copilot:${n}] Session handoff: sourceType=${r.data.sourceType}, remoteSessionId=${r.data.remoteSessionId??"(none)"}`)})),this._register(e.onSessionTruncation(r=>{this._logService.trace(`[Copilot:${n}] Session truncation: removed ${r.data.tokensRemovedDuringTruncation} tokens, ${r.data.messagesRemovedDuringTruncation} messages`)})),this._register(e.onSessionSnapshotRewind(r=>{this._logService.trace(`[Copilot:${n}] Snapshot rewind: upTo=${r.data.upToEventId}, eventsRemoved=${r.data.eventsRemoved}`)})),this._register(e.onSessionShutdown(r=>{this._logService.trace(`[Copilot:${n}] Session shutdown: type=${r.data.shutdownType}, premiumRequests=${r.data.totalPremiumRequests}, apiDuration=${r.data.totalApiDurationMs}ms`)})),this._register(e.onSessionUsageInfo(r=>{this._logService.trace(`[Copilot:${n}] Usage info: ${r.data.currentTokens}/${r.data.tokenLimit} tokens, ${r.data.messagesLength} messages`)})),this._register(e.onSessionCompactionStart(()=>{this._logService.trace(`[Copilot:${n}] Compaction started`)})),this._register(e.onSessionCompactionComplete(r=>{this._logService.trace(`[Copilot:${n}] Compaction complete: success=${r.data.success}, tokensRemoved=${r.data.tokensRemoved??"?"}`)})),this._register(e.onUserMessage(r=>{this._logService.trace(`[Copilot:${n}] User message: ${r.data.content.length} chars, ${r.data.attachments?.length??0} attachments`)})),this._register(e.onPendingMessagesModified(()=>{this._logService.trace(`[Copilot:${n}] Pending messages modified`)})),this._register(e.onTurnStart(r=>{this._logService.trace(`[Copilot:${n}] Turn started: ${r.data.turnId}`)})),this._register(e.onIntent(r=>{this._logService.trace(`[Copilot:${n}] Intent: ${r.data.intent}`)})),this._register(e.onReasoning(r=>{this._logService.trace(`[Copilot:${n}] Reasoning: ${r.data.content.length} chars`)})),this._register(e.onTurnEnd(r=>{this._logService.trace(`[Copilot:${n}] Turn ended: ${r.data.turnId}`)})),this._register(e.onAbort(r=>{this._logService.trace(`[Copilot:${n}] Aborted: ${r.data.reason}`)})),this._register(e.onToolUserRequested(r=>{this._logService.trace(`[Copilot:${n}] Tool user-requested: ${r.data.toolName} (${r.data.toolCallId})`)})),this._register(e.onToolPartialResult(r=>{this._logService.trace(`[Copilot:${n}] Tool partial result: ${r.data.toolCallId} (${r.data.partialOutput.length} chars)`)})),this._register(e.onToolProgress(r=>{this._logService.trace(`[Copilot:${n}] Tool progress: ${r.data.toolCallId} - ${r.data.progressMessage}`)})),this._register(e.onSkillInvoked(r=>{this._logService.trace(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`)})),this._register(e.onSubagentStarted(r=>{this._logService.trace(`[Copilot:${n}] Subagent started: ${r.data.agentName} (${r.data.agentDisplayName})`)})),this._register(e.onSubagentCompleted(r=>{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()}_cancelPendingPlanReviews(){for(let[,e]of this._pendingPlanReviews)e.deferred.complete({approved:!1});this._pendingPlanReviews.clear()}_cancelPendingClientToolCalls(){for(let[,e]of this._pendingClientToolCalls)e.complete({textResultForLlm:"Tool call cancelled: session ended",resultType:"failure",error:"Session ended"});this._pendingClientToolCalls.clear()}};vi=C([D(1,vn),D(2,Y),D(3,mi),D(4,Ye),D(5,ei),D(6,_t)],vi);function z1(i){let t=i.actions??[],e=n=>n==="autopilot"||n==="autopilot_fleet";if(i.recommendedAction&&t.includes(i.recommendedAction)){let n=i.recommendedAction;return{approved:!0,selectedAction:n,...e(n)?{autoApproveEdits:!0}:{}}}for(let n of["autopilot","autopilot_fleet","interactive","exit_only"])if(t.includes(n))return{approved:!0,selectedAction:n,...e(n)?{autoApproveEdits:!0}:{}};return{approved:!0,autoApproveEdits:!0}}function H1(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 j1(i,t){if(!i||i.scheme!==re.file||!await t.isInsideWorkTree(i))return;let e=(await t.getWorktreeRoots(i))[0]??await t.getRepositoryRoot(i);if(e)return{uri:e,displayName:Se(e.fsPath)||e.toString()}}function K1(i){let t=i.includes("://")?h.parse(i):h.parse(`https://github.com/${i}`),e=Se(t.path)||i.split("/").filter(Boolean).pop()||i,n=e.endsWith(".git")?e.slice(0,-4):e;return{uri:t,displayName:n}}async function bi(i,t){let e=typeof i?.cwd=="string"?h.file(i.cwd):typeof i?.gitRoot=="string"?h.file(i.gitRoot):void 0,n=await j1(e,t);if(n)return n;if(i?.repository)return K1(i.repository)}import{spawn as G1}from"child_process";function Gm(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:J1(n.env)},...n.cwd&&{cwd:n.cwd}}:t[e.name]={type:"http",url:n.url,tools:["*"],...n.headers&&{headers:{...n.headers}}}}return t}function J1(i){let t={};for(let[e,n]of Object.entries(i))n!==null&&(t[e]=String(n));return t}async function Jm(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 Qm(i){let t=new Set,e=[];for(let n of i){let r=ve(n.uri.fsPath);t.has(r)||(t.add(r),e.push(r))}return e}function Q1(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}function Do(i,t){let e=Q1(i,hr);if(!e)return Promise.resolve("");let n=(i.timeout??30)*1e3,r=i.cwd?.fsPath;return new Promise((o,s)=>{let a=hr===1,p=G1(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 Km(i,t){if(!i)return;let e=JSON.stringify(t);for(let n of i)try{let r=await Do(n,e);if(r.trim())try{let o=JSON.parse(r);if(o&&typeof o=="object")return o}catch{}}catch{}}var Y1={PreToolUse:"onPreToolUse",PostToolUse:"onPostToolUse",UserPromptSubmit:"onUserPromptSubmitted",SessionStart:"onSessionStart",SessionEnd:"onSessionEnd",ErrorOccurred:"onErrorOccurred"};function Ym(i,t){let e=new Map;for(let p of i){let u=Y1[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),Km(r,p)));let o=e.get("onPostToolUse");(o?.length||t)&&(n.onPostToolUse=async p=>(await t?.onPostToolUse(p),Km(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 Do(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 Do(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 Do(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 Do(f,u)}catch{}}),n}function Xm(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 yi=class extends k{constructor(e){super();this.session=e;this._register(P(()=>{e.destroy().catch(()=>{})}))}get sessionId(){return this.session.sessionId}get onMessageDelta(){return this._onMessageDelta??=this._sdkEvent("assistant.message_delta")}get onMessage(){return this._onMessage??=this._sdkEvent("assistant.message")}get onToolStart(){return this._onToolStart??=this._sdkEvent("tool.execution_start")}get onToolComplete(){return this._onToolComplete??=this._sdkEvent("tool.execution_complete")}get onIdle(){return this._onIdle??=this._sdkEvent("session.idle")}get onSessionStart(){return this._onSessionStart??=this._sdkEvent("session.start")}get onSessionResume(){return this._onSessionResume??=this._sdkEvent("session.resume")}get onSessionError(){return this._onSessionError??=this._sdkEvent("session.error")}get onSessionInfo(){return this._onSessionInfo??=this._sdkEvent("session.info")}get onSessionModelChange(){return this._onSessionModelChange??=this._sdkEvent("session.model_change")}get onSessionHandoff(){return this._onSessionHandoff??=this._sdkEvent("session.handoff")}get onSessionTruncation(){return this._onSessionTruncation??=this._sdkEvent("session.truncation")}get onSessionSnapshotRewind(){return this._onSessionSnapshotRewind??=this._sdkEvent("session.snapshot_rewind")}get onSessionShutdown(){return this._onSessionShutdown??=this._sdkEvent("session.shutdown")}get onSessionUsageInfo(){return this._onSessionUsageInfo??=this._sdkEvent("session.usage_info")}get onSessionCompactionStart(){return this._onSessionCompactionStart??=this._sdkEvent("session.compaction_start")}get onSessionCompactionComplete(){return this._onSessionCompactionComplete??=this._sdkEvent("session.compaction_complete")}get onUserMessage(){return this._onUserMessage??=this._sdkEvent("user.message")}get onPendingMessagesModified(){return this._onPendingMessagesModified??=this._sdkEvent("pending_messages.modified")}get onTurnStart(){return this._onTurnStart??=this._sdkEvent("assistant.turn_start")}get onIntent(){return this._onIntent??=this._sdkEvent("assistant.intent")}get onReasoning(){return this._onReasoning??=this._sdkEvent("assistant.reasoning")}get onReasoningDelta(){return this._onReasoningDelta??=this._sdkEvent("assistant.reasoning_delta")}get onTurnEnd(){return this._onTurnEnd??=this._sdkEvent("assistant.turn_end")}get onUsage(){return this._onUsage??=this._sdkEvent("assistant.usage")}get onAbort(){return this._onAbort??=this._sdkEvent("abort")}get onToolUserRequested(){return this._onToolUserRequested??=this._sdkEvent("tool.user_requested")}get onToolPartialResult(){return this._onToolPartialResult??=this._sdkEvent("tool.execution_partial_result")}get onToolProgress(){return this._onToolProgress??=this._sdkEvent("tool.execution_progress")}get onSkillInvoked(){return this._onSkillInvoked??=this._sdkEvent("skill.invoked")}get onSubagentStarted(){return this._onSubagentStarted??=this._sdkEvent("subagent.started")}get onSubagentCompleted(){return this._onSubagentCompleted??=this._sdkEvent("subagent.completed")}get onSubagentFailed(){return this._onSubagentFailed??=this._sdkEvent("subagent.failed")}get onSubagentSelected(){return this._onSubagentSelected??=this._sdkEvent("subagent.selected")}get onHookStart(){return this._onHookStart??=this._sdkEvent("hook.start")}get onHookEnd(){return this._onHookEnd??=this._sdkEvent("hook.end")}get onSystemMessage(){return this._onSystemMessage??=this._sdkEvent("system.message")}get onSessionModeChanged(){return this._onSessionModeChanged??=this._sdkEvent("session.mode_changed")}_sdkEvent(e){let n=this._register(new _),r=this.session.on(e,o=>n.fire(o));return this._register(P(r)),n.event}};var Zm=8e4,X1=12e4,gd="<<<COPILOT_SENTINEL_";function Z1(i){return i==="powershell"?"powershell.exe":process.env.SHELL||"/bin/bash"}var sr=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._busyShellIds=new Set;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))continue;if(this._terminalManager.getExitCode(p.terminalUri)!==void 0){this._shells.delete(p.id);continue}if(!this._busyShellIds.has(p.id))return this._busyShellIds.add(p.id),this._trackToolCall(n,p.id),this._makeReference(p)}let o=J(),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:Z1(t),preventShellHistory:!0,nonInteractive:!0});let c={id:o,terminalUri:s,shellType:t};return this._shells.set(o,c),this._busyShellIds.add(o),this._trackToolCall(n,o),this._logService.info(`[ShellManager] Created ${t} shell ${o} (terminal=${s})`),this._makeReference(c)}_makeReference(t){let e=!1;return{object:t,dispose:()=>{e||(e=!0,this._busyShellIds.delete(t.id))}}}_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._busyShellIds.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(),this._busyShellIds.clear()}};sr=C([D(2,ci),D(3,Y)],sr);function eS(){return J().replace(/-/g,"")}function tS(i,t){return t==="powershell"?`Write-Output "${gd}${i}_EXIT_$LASTEXITCODE>>>"`:`echo "${gd}${i}_EXIT_$?>>>"`}function eg(i){return i==="powershell"?"":" "}function nS(i,t){let e=`${gd}${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 ar(i){let t=Wu(i).trim();return t.length>Zm&&(t=t.substring(t.length-Zm)),t}function xt(i){return{textResultForLlm:i,resultType:"success"}}function Mt(i,t){return{textResultForLlm:i,resultType:"failure",error:t}}async function rS(i,t,e,n,r){let o=n.supportsCommandDetection(i.terminalUri)?await iS(i,t,e,n,r):await oS(i,t,e,n,r);return{...o,textResultForLlm:`Shell ID: ${i.id}
${o.textResultForLlm}`}}async function iS(i,t,e,n,r){let o=new B;return n.writeInput(i.terminalUri,`${eg(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=ar(p.output),f=p.exitCode??0;r.info(`[ShellTool] Command completed (shell integration) with exit code ${f}`),l(f===0?xt(`Exit code: ${f}
${u}`):Mt(`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=ar(u);l(Mt(`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(xt("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=ar(p);l(Mt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${u}`,"timeout"))},e);o.add(P(()=>clearTimeout(c)))})}async function oS(i,t,e,n,r){let o=eS(),s=tS(o,i.shellType),a=new B,c=(n.getContent(i.terminalUri)??"").length,p=`${eg(i.shellType)}${t}\r${s}\r`;return n.writeInput(i.terminalUri,p),new Promise(u=>{let f=!1,g=I=>{f||(f=!0,a.dispose(),u(I))},b=()=>{let I=n.getContent(i.terminalUri)??"",v=Math.min(c,I.length),S=I.substring(v),T=nS(S,o);if(T.found){let $=ar(T.outputBeforeSentinel);r.info(`[ShellTool] Command completed with exit code ${T.exitCode}`),T.exitCode===0?g(xt(`Exit code: ${T.exitCode}
${$}`)):g(Mt(`Exit code: ${T.exitCode}
${$}`))}};a.add(n.onData(i.terminalUri,()=>{b()})),a.add(n.onExit(i.terminalUri,I=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${I}`);let S=(n.getContent(i.terminalUri)??"").substring(c),T=ar(S);g(Mt(`Shell exited with code ${I}
${T}`))})),a.add(n.onClaimChanged(i.terminalUri,I=>{I.kind==="session"&&!I.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),g(xt("The user chose to continue this command in the background. The terminal is still running.")))}));let y=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let v=(n.getContent(i.terminalUri)??"").substring(c),S=ar(v);g(Mt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${S}`,"timeout"))},e);a.add(P(()=>clearTimeout(y))),b()})}function tg(i,t,e){let n=V?"powershell":"bash",r={name:n,description:n==="bash"?cS(!1):aS(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=c.timeout??X1,f=await i.getOrCreateShell(n,p.toolCallId,p.toolCallId);try{return await rS(f.object,c.command,u,t,e)}finally{f.dispose()}}},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 Mt("No active shell found.","no_shell");let f=t.getContent(u.terminalUri);return xt(f?ar(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),xt("Input sent to shell.")):Mt("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)?xt("Shell stopped."):Mt("Shell not found.","not_found");let p=i.listShells(),u=p[p.length-1];return u?(i.shutdownShell(u.id),xt("Shell stopped.")):Mt("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 xt("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 xt(p.join(`
`))}};return[r,o,s,a,l]}function sS(i){return i.endsWith("System32\\WindowsPowerShell\\v1.0\\powershell.exe")}function aS(i,t,e,n){let r=sS(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(...ng(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 ng(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 lS(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(ng(e).join(`
`)),n.push(`

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

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

Interactive Input Handling:
- When a terminal command is waiting for interactive input, do NOT suggest alternatives or ask the user whether to proceed. Instead, use the ask_user tool to collect the needed values from the user, then send them.
- Send exactly one answer per prompt using write_${i}. Never send multiple answers in a single send.
- After each send, call read_${i} to read the next prompt before sending the next answer.
- Continue one prompt at a time until the command finishes.`),n.join("")}function cS(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.",lS("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 rg="thinkingLevel",pS=["low","medium","high","xhigh"];function fS(i){return pS.some(t=>t===i)}function mS(i){return h.joinPath(i,"..",`${Se(i.fsPath)}.worktrees`)}function gS(i){return i.replace(/\//g,"-")}function hS(i,t){return`agents/${t?`${t}-${i.substring(0,8)}`:i}`}function ig(i){return m(1880,null,Xe(i))+`

`}function vS(i,t){if(i.length===0)return i;let e=i.slice(),n=e[0],r=n.responseParts.findIndex(o=>o.kind==="markdown");if(r>=0){let o=n.responseParts[r],s=o.kind==="markdown"?{...o,content:t+o.content}:o,a=n.responseParts.slice();a[r]=s,e[0]={...n,responseParts:a}}else{let o=[{kind:"markdown",id:J(),content:t},...n.responseParts];e[0]={...n,responseParts:o}}return e}var oe=class extends k{constructor(e,n,r,o,s,a,l){super();this._logService=e;this._instantiationService=n;this._fileService=r;this._sessionDataService=o;this._gitService=s;this._terminalManager=a;this._configurationService=l;this.id="copilotcli";this._onDidSessionProgress=this._register(new _);this.onDidSessionProgress=this._onDidSessionProgress.event;this._onDidMaterializeSession=this._register(new _);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._models=At(this,[]);this.models=this._models;this._sessions=this._register(new ot);this._provisionalSessions=new Map;this._createdWorktrees=new Map;this._pendingFirstTurnAnnouncements=new Map;this._sessionSequencer=new bt;this._activeClients=new Ze;this._plugins=this._register(this._instantiationService.createInstance(Oo)),this.onDidCustomizationsChange=this._plugins.onDidChange}static{this._BRANCH_COMPLETION_LIMIT=25}_createCopilotClient(e){return new dS(e)}getDescriptor(){return{provider:"copilotcli",displayName:"Copilot CLI",description:"Copilot SDK agent running in a dedicated process"}}getProtectedResources(){return[Nr]}getCustomizations(){return this._plugins.getConfiguredHostCustomizations()}async getSessionCustomizations(e){let n=ie.id(e),r=this._provisionalSessions.get(n);if(r)return this._plugins.getSessionCustomizations(r.workingDirectory);let o=this._sessions.get(n),s=o?void 0:await this._readSessionMetadata(e);return this._plugins.getSessionCustomizations(o?.customizationDirectory??s?.customizationDirectory??s?.workingDirectory)}async authenticate(e,n){if(e!==Nr.resource)return!1;let r=this._githubToken!==n;return this._githubToken=n,this._logService.info(`[Copilot] Auth token ${r?"updated":"unchanged"}`),r&&this._client&&this._sessions.size===0&&(this._logService.info("[Copilot] Restarting CopilotClient with new token"),await this._stopClient()),r&&this._refreshModels(),!0}async _refreshModels(){let e=this._githubToken;if(!e){this._models.set([],void 0);return}try{let n=await this._listModels();this._githubToken===e&&this._models.set(n,void 0)}catch(n){this._logService.error(n,"[Copilot] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}async _stopClient(){let e=this._client;this._client=void 0,this._clientStarting=void 0,await e?.stop()}_enablePlanModeOnClient(e){let n=e.connection;if(!n){this._logService.warn("[Copilot] Could not enable plan mode: client.connection is null");return}if(typeof n.sendRequest!="function"){this._logService.warn(`[Copilot] Could not enable plan mode: client.connection.sendRequest is ${typeof n.sendRequest}`);return}if(typeof n.onRequest!="function"){this._logService.warn(`[Copilot] Could not enable plan mode: client.connection.onRequest is ${typeof n.onRequest}`);return}let r=n.sendRequest.bind(n);n.sendRequest=(s,a)=>(s==="session.create"||s==="session.resume")&&a&&typeof a=="object"?r(s,{...a,requestExitPlanMode:!0}):r(s,a);let o=n.onRequest("exitPlanMode.request",async s=>{let a=this._sessions.get(s.sessionId);return a?a.handleExitPlanModeRequest(s):(this._logService.warn(`[Copilot] exitPlanMode.request for unknown session ${s.sessionId}`),{approved:!1})});this._register(P(()=>o.dispose()))}async _ensureClient(){let e=this._githubToken;if(!e)throw new N(Js,"Authentication is required to use Copilot",this.getProtectedResources());if(this._client)return this._client;if(this._clientStarting)return this._clientStarting;let n=(async()=>{this._logService.info("[Copilot] Starting CopilotClient... (with token)");let r=Object.assign({},process.env,{ELECTRON_RUN_AS_NODE:"1"});delete r.NODE_OPTIONS,delete r.VSCODE_INSPECTOR_OPTIONS,delete r.VSCODE_ESM_ENTRYPOINT,delete r.VSCODE_HANDLES_UNCAUGHT_ERRORS;for(let 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(rt.asFileUri(""),"..","node_modules","@github","copilot","index.js").fsPath,s=uS.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"),a=ve(s),l=Object.keys(r).find(u=>u.toUpperCase()==="PATH")??"PATH",c=r[l];r[l]=c?`${c}${Cl}${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._enablePlanModeOnClient(p),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(1875,null);case"medium":return m(1876,null);case"high":return m(1874,null);case"xhigh":return m(1878,null);default:return o}});return{type:"object",properties:{[rg]:{type:"string",title:m(1877,null),description:m(1873,null),default:n,enum:[...e],enumLabels:r}}}}_getReasoningEffort(e){let n=e?.config?.[rg];return fS(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 wr(4),o=new Map,a=(await Promise.all(n.map(async l=>{let c=ie.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,customizationDirectory:p.customizationDirectory}}))).filter(l=>l!==void 0);return this._logService.info(`[Copilot] Found ${a.length} sessions`),a}async getSessionMetadata(e){let n=ie.id(e),r=await this._readStoredSessionMetadata(e);if(!r)return;let s=await(await this._ensureClient()).getSessionMetadata(n);if(!s)return;let a=r?.project;if(r&&!r.resolved){let c=new wr(1);a=await this._resolveSessionProject(s?.context,c,new Map),this._storeSessionProjectResolution(e,a)}let l=r?.workingDirectory??(typeof s?.context?.cwd=="string"?h.file(s.context.cwd):void 0);return{session:e,startTime:s?.startTime.getTime()??Date.now(),modifiedTime:s?.modifiedTime.getTime()??Date.now(),project:a,summary:s?.summary,model:r?.model,workingDirectory:l,customizationDirectory:r?.customizationDirectory}}async _listModels(){this._logService.info("[Copilot] Listing models...");let r=(await(await this._ensureClient()).listModels()).map(o=>({provider:this.id,id:o.id,name:o.name,maxContextWindow:o.capabilities?.limits?.max_context_window_tokens,supportsVision:!!o.capabilities?.supports?.vision,configSchema:this._createThinkingLevelConfigSchema(o.supportedReasoningEfforts,o.defaultReasoningEffort),policyState:o.policy?.state}));return this._logService.info(`[Copilot] Found ${r.length} models`),r}async createSession(e){if(!e?.workingDirectory)throw new Error("workingDirectory is required to create a Copilot session");this._logService.info(`[Copilot] Creating session... ${e?.model?`model=${e.model.id}`:""}`);let n=await this._ensureClient();if(e?.fork){let l=ie.id(e.fork.session);return this._sessionSequencer.queue(l,async()=>{this._logService.info(`[Copilot] Forking session ${l} at turnId=${e.fork.turnId}`);let p=await(this._sessions.get(l)??await this._resumeSession(l)).getNextTurnEventId(e.fork.turnId),f=(await n.rpc.sessions.fork({sessionId:l,...p?{toEventId:p}:{}})).sessionId,g=this._sessionDataService.getSessionDataDirById(f),b=h.joinPath(g,Po);try{let S=await this._sessionDataService.tryOpenDatabase(e.fork.session);if(S)try{await lr.mkdir(g.fsPath,{recursive:!0}),await S.object.vacuumInto(b.fsPath)}finally{S.dispose()}}catch(S){this._logService.warn(`[Copilot] Failed to copy session database for fork: ${S instanceof Error?S.message:String(S)}`)}let y=await this._resumeSession(f);e.fork.turnIdMapping&&await y.remapTurnIds(e.fork.turnIdMapping);let I=y.sessionUri;this._logService.info(`[Copilot] Forked session created: ${I.toString()}`);let v=await bi({cwd:e.workingDirectory?.fsPath},this._gitService);return await this._storeSessionMetadata(I,e.model,e.workingDirectory,e.workingDirectory,v,!0),{session:I,workingDirectory:e.workingDirectory,...v?{project:v}:{}}})}let r=e.session?ie.id(e.session):J(),o=ie.uri(this.id,r);if(this._sessions.has(r)){this._logService.info(`[Copilot] createSession is a no-op: session already materialized: ${o.toString()}`);let l=await bi({cwd:e.workingDirectory.fsPath},this._gitService);return{session:o,workingDirectory:e.workingDirectory,...l?{project:l}:{}}}let s=this._provisionalSessions.has(r);e.activeClient&&(this._getOrCreateActiveClient(o).updateTools(e.activeClient.clientId,e.activeClient.tools),e.activeClient.customizations!==void 0&&await this._plugins.sync(e.activeClient.clientId,e.activeClient.customizations));let a=await bi({cwd:e.workingDirectory.fsPath},this._gitService);return s||this._provisionalSessions.set(r,{sessionId:r,sessionUri:o,workingDirectory:e.workingDirectory,model:e.model,project:a}),this._logService.info(`[Copilot] Session created (provisional): ${o.toString()}`),{session:o,workingDirectory:e.workingDirectory,provisional:!0,...a?{project:a}:{}}}async _materializeProvisional(e){let n=this._provisionalSessions.get(e);if(!n)throw new Error(`Cannot materialize unknown provisional session: ${e}`);let r=await this._ensureClient(),o=n.sessionUri,s=this._configurationService.getSessionConfigValues(o.toString()),a={provider:this.id,session:o,workingDirectory:n.workingDirectory,model:n.model,config:s},l=n.workingDirectory,c=this._activeClients.get(o),p=c?await c.snapshot(l):void 0,u=await this._resolveSessionWorkingDirectory(a,e),f=this._instantiationService.createInstance(sr,o,u),g=this._buildSessionConfig(p,f),b=async v=>{let S=await r.createSession({model:n.model?.id,reasoningEffort:this._getReasoningEffort(n.model),sessionId:e,streaming:!0,workingDirectory:u?.fsPath,...await g(v)});return new yi(S)},y;try{y=this._createAgentSession(b,e,f,u,l,p),await y.initializeSession()}catch(v){throw await this._removeCreatedWorktree(e),v}let I=await bi({cwd:u?.fsPath},this._gitService);return this._provisionalSessions.delete(e),await this._storeSessionMetadata(o,n.model,u,l,I,!0),this._logService.info(`[Copilot] Session materialized: ${o.toString()}`),this._onDidMaterializeSession.fire({session:o,workingDirectory:u,project:I}),y}async resolveSessionConfig(e){let n=e.workingDirectory?await this._getGitInfo(e.workingDirectory):void 0,r=xn({type:"string",title:m(1867,null),description:m(1872,null),enum:n?["folder","worktree"]:["folder"],enumLabels:n?[m(1868,null),m(1870,null)]:[m(1868,null)],enumDescriptions:n?[m(1869,null),m(1871,null)]:[m(1869,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=xn({type:"string",title:m(1865,null),description:m(1866,null),enum:[l],enumLabels:[l],default:l,enumDynamic:!u,readOnly:u})}let c=Xr({isolation:r,...Tt.definition,...a?{branch:a}:{}}),p=c.validateOrDefault(e.config,{isolation:s,autoApprove:"default",mode:"interactive",...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=ie.id(e),s=this._getOrCreateActiveClient(e),a=this._sessions.has(o);this._logService.info(`[Copilot:${o}] setClientTools: clientId=${n}, tools=[${r.map(l=>l.name).join(", ")||"(none)"}], hasCachedSdkSession=${a}`),s.updateTools(n,r)}onClientToolCallComplete(e,n,r){let o=ie.id(Lt(e.toString())?.parentSession||e);this._sessions.get(o)?.handleClientToolCallComplete(n,r)}setCustomizationEnabled(e,n){this._plugins.setEnabled(e,n)}async sendMessage(e,n,r,o){let s=ie.id(e);await this._sessionSequencer.queue(s,async()=>{let a;this._provisionalSessions.has(s)?a=await this._materializeProvisional(s):a=this._sessions.get(s);let l=this._activeClients.get(e),c=!!a;this._logService.info(`[Copilot:${s}] sendMessage: cachedEntry=${c}, hasActiveClient=${!!l}, activeClientId=${l?"(set)":"(none)"}`),a&&l&&await l.isOutdated(a.appliedSnapshot,a.customizationDirectory)&&(this._logService.info(`[Copilot:${s}] Session config changed (isOutdated=true), refreshing session. snapshotClientId=${a.appliedSnapshot.clientId}`),this._sessions.deleteAndDispose(s),a=void 0),a||this._logService.info(`[Copilot:${s}] No cached entry${c?" (was evicted by isOutdated)":""}, calling _resumeSession`),a??=await this._resumeSession(s),o&&a.resetTurnState(o);let p=this._pendingFirstTurnAnnouncements.get(s);p!==void 0&&(this._pendingFirstTurnAnnouncements.delete(s),a.emitInitialMarkdown(p));try{let u=this._resolveSdkMode(e);await a.send(n,r,o,u)}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}})}_resolveSdkMode(e){let n=e.toString(),r=this._configurationService.getEffectiveValue(n,Tt,"mode");if(r==="plan")return"plan";if(r==="interactive")return this._configurationService.getEffectiveValue(n,Tt,"autoApprove")==="autopilot"?"autopilot":"interactive"}setPendingMessages(e,n,r){let o=ie.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=Lt(e.toString());if(n){let l=h.parse(n.parentSession),c=ie.id(l),p=this._sessions.get(c)??await this._resumeSession(c).catch(u=>{this._logService.warn(`[Copilot:${c}] Failed to resume parent for subagent restore`,u)});return p?p.getSubagentMessages(n.toolCallId,e.toString()):[]}let r=ie.id(e);if(this._provisionalSessions.has(r))return[];let o=this._sessions.get(r)??await this._resumeSession(r).catch(l=>{this._logService.warn(`[Copilot:${r}] Failed to resume session for message lookup`,l)});if(!o)return[];let s=await o.getMessages(),a=await this._readWorktreeMetadata(e).catch(l=>{this._logService.warn(`[Copilot:${r}] Failed to read worktree branch metadata`,l)});return a?.branchName?vS(s,ig(a.branchName)):s}async disposeSession(e){let n=ie.id(e);await this._sessionSequencer.queue(n,async()=>{await this._destroyAndDisposeSession(n)})}async onArchivedChanged(e,n){let r=ie.id(e);await this._sessionSequencer.queue(r,async()=>{n?await this._cleanupWorktreeOnArchive(e,r):await this._recreateWorktreeOnUnarchive(e,r)})}async _cleanupWorktreeOnArchive(e,n){let r=await this._readWorktreeMetadata(e).catch(()=>{});if(!r?.worktreePath||!r.repositoryRoot)return;let{branchName:o,worktreePath:s,repositoryRoot:a}=r;try{await lr.access(s.fsPath)}catch{this._createdWorktrees.delete(n);return}if(!await this._gitService.branchExists(a,o).catch(()=>!1)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: branch '${o}' is missing`);return}if(await this._gitService.hasUncommittedChanges(s).catch(()=>!0)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: '${s.fsPath}' has uncommitted changes`);return}try{await this._gitService.removeWorktree(a,s),this._logService.info(`[Copilot:${n}] Removed worktree '${s.fsPath}' on archive`)}catch(p){this._logService.warn(`[Copilot:${n}] Failed to remove worktree '${s.fsPath}' on archive: ${p instanceof Error?p.message:String(p)}`)}finally{this._createdWorktrees.delete(n)}}async _recreateWorktreeOnUnarchive(e,n){let r=await this._readWorktreeMetadata(e).catch(()=>{});if(!r?.worktreePath||!r.repositoryRoot)return;let{branchName:o,worktreePath:s,repositoryRoot:a}=r;try{await lr.access(s.fsPath);return}catch{}if(!await this._gitService.branchExists(a,o).catch(()=>!1)){this._logService.info(`[Copilot:${n}] Skipping worktree recreation: branch '${o}' is missing`);return}try{await lr.mkdir(h.joinPath(s,"..").fsPath,{recursive:!0}),await this._gitService.addExistingWorktree(a,s,o),this._createdWorktrees.set(n,{repositoryRoot:a,worktree:s}),this._logService.info(`[Copilot:${n}] Recreated worktree '${s.fsPath}' on unarchive`)}catch(c){this._logService.warn(`[Copilot:${n}] Failed to recreate worktree '${s.fsPath}' on unarchive: ${c instanceof Error?c.message:String(c)}`)}}async abortSession(e){let n=ie.id(e);await this._sessionSequencer.queue(n,async()=>{let r=this._sessions.get(n);r&&await r.abort()})}async truncateSession(e,n){let r=ie.id(e);this._provisionalSessions.has(r)||await this._sessionSequencer.queue(r,async()=>{this._logService.info(`[Copilot:${r}] Truncating session${n!==void 0?` at turnId=${n}`:" (all turns)"}`);let o=this._sessions.get(r)??await this._resumeSession(r),s;n?s=await o.getNextTurnEventId(n):s=await o.getFirstTurnEventId(),s?await o.truncateAtEventId(s,n):this._logService.info(`[Copilot:${r}] No event ID found for truncation, nothing to truncate`),this._logService.info(`[Copilot:${r}] Session truncated`)})}async changeModel(e,n){let r=ie.id(e),o=this._provisionalSessions.get(r);if(o){o.model=n;return}let s=this._sessions.get(r);s&&await s.setModel(n.id,this._getReasoningEffort(n)),await this._storeSessionMetadata(e,n,void 0,void 0,void 0)}async shutdown(){return this._shutdownPromise??=(async()=>{this._logService.info("[Copilot] Shutting down...");let e=new Set([...this._sessions.keys(),...this._createdWorktrees.keys()]);for(let n of e)await this._sessionSequencer.queue(n,()=>this._destroyAndDisposeSession(n));await this._client?.stop(),this._client=void 0})(),this._shutdownPromise}respondToPermissionRequest(e,n){for(let[,r]of this._sessions)if(r.respondToPermissionRequest(e,n))return}respondToUserInputRequest(e,n,r){for(let[,o]of this._sessions)if(o.respondToUserInputRequest(e,n,r))return}hasSession(e){let n=ie.id(e);return this._sessions.has(n)||this._provisionalSessions.has(n)}_getOrCreateActiveClient(e){let n=this._activeClients.get(e);return n||(n=new hd(r=>this._plugins.getAppliedPlugins(r)),this._activeClients.set(e,n)),n}_createAgentSession(e,n,r,o,s,a){let l=ie.uri(this.id,n),c=this._instantiationService.createInstance(vi,{sessionUri:l,rawSessionId:n,onDidSessionProgress:this._onDidSessionProgress,wrapperFactory:e,shellManager:r,workingDirectory:o,customizationDirectory:s,clientSnapshot:a});return this._sessions.set(n,c),c}async _destroyAndDisposeSession(e){let n=this._provisionalSessions.get(e);if(n){this._provisionalSessions.delete(e),this._activeClients.delete(n.sessionUri);return}let r=this._sessions.get(e);if(r)try{await r.destroySession()}catch(o){this._logService.warn(`[Copilot:${e}] Failed to destroy session before cleanup: ${o instanceof Error?o.message:String(o)}`)}this._sessions.deleteAndDispose(e),await this._removeCreatedWorktree(e)}_buildSessionConfig(e,n){let r=tg(n,this._terminalManager,this._logService),o=e?.plugins??[];return async s=>{let a=await Jm(o.flatMap(l=>l.agents),this._fileService);return{onPermissionRequest:s.onPermissionRequest,onUserInputRequest:s.onUserInputRequest,hooks:Ym(o.flatMap(l=>l.hooks),s.hooks),mcpServers:Gm(o.flatMap(l=>l.mcpServers)),customAgents:a,skillDirectories:Qm(o.flatMap(l=>l.skills)),tools:[...r,...s.clientTools],infiniteSessions:{enabled:!0}}}}async _resumeSession(e){this._logService.info(`[Copilot:${e}] _resumeSession called \u2014 session not in memory, resuming...`);let n=await this._ensureClient(),r=ie.uri(this.id,e),o=await this._readSessionMetadata(r),s=o.customizationDirectory??o.workingDirectory,a=this._activeClients.get(r),l=a?await a.snapshot(s):void 0,c=await n.getSessionMetadata(e).catch(y=>{this._logService.warn(`[Copilot:${e}] getSessionMetadata failed`,y)}),p=o.workingDirectory??(typeof c?.context?.cwd=="string"?h.file(c.context.cwd):void 0);if(!p)throw new Error(`workingDirectory is required to resume Copilot session '${e}'`);let u=this._instantiationService.createInstance(sr,r,p),f=this._buildSessionConfig(l,u),g=async y=>{let I=await f(y);try{this._logService.info(`[Copilot:${e}] Calling SDK resumeSession...`);let v=await n.resumeSession(e,{...I,workingDirectory:p?.fsPath});return this._logService.info(`[Copilot:${e}] SDK resumeSession succeeded`),new yi(v)}catch(v){let S=v?.code,T=v instanceof Error?v.message:String(v);if(this._logService.warn(`[Copilot:${e}] SDK resumeSession failed: code=${S}, message=${T}`),!v||S!==-32603)throw v;this._logService.warn(`[Copilot:${e}] Resume failed (code=-32603), falling back to createSession with same ID`);let $=await n.createSession({...I,sessionId:e,streaming:!0,model:o.model?.id,reasoningEffort:this._getReasoningEffort(o.model),workingDirectory:p?.fsPath});return this._logService.info(`[Copilot:${e}] Fallback createSession succeeded`),new yi($)}},b=this._createAgentSession(g,e,u,p,s,l);return await b.initializeSession(),b}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:oe._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=mS(r),s=e.config.branchNameHint,l=hS(n,typeof s=="string"?s:void 0),c=h.joinPath(o,gS(l));await lr.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,ig(l));let u=ie.uri(this.id,n);try{await this._writeWorktreeMetadata(u,{branchName:l,baseBranch:p,worktreePath:c,repositoryRoot:r})}catch(f){this._logService.warn(`[Copilot:${n}] Failed to persist worktree branch metadata: ${f instanceof Error?f.message:String(f)}`)}return c}async _removeCreatedWorktree(e){let n=this._createdWorktrees.get(e);if(n)try{await this._gitService.removeWorktree(n.repositoryRoot,n.worktree)}catch(r){this._logService.warn(`[Copilot:${e}] Failed to remove worktree '${n.worktree.fsPath}': ${r instanceof Error?r.message:String(r)}`)}finally{this._createdWorktrees.delete(e)}}static{this._META_MODEL="copilot.model"}static{this._META_CWD="copilot.workingDirectory"}static{this._META_CUSTOMIZATION_DIRECTORY="copilot.customizationDirectory"}static{this._META_PROJECT_RESOLVED="copilot.project.resolved"}static{this._META_PROJECT_URI="copilot.project.uri"}static{this._META_PROJECT_DISPLAY_NAME="copilot.project.displayName"}static{this._META_WORKTREE_BRANCH="copilot.worktree.branchName"}static{this._META_WORKTREE_PATH="copilot.worktree.path"}static{this._META_WORKTREE_REPOSITORY_ROOT="copilot.worktree.repositoryRoot"}async _writeWorktreeMetadata(e,n){let r=this._sessionDataService.openDatabase(e);try{let o=[r.object.setMetadata(oe._META_WORKTREE_BRANCH,n.branchName),r.object.setMetadata(oe._META_WORKTREE_PATH,n.worktreePath.toString()),r.object.setMetadata(oe._META_WORKTREE_REPOSITORY_ROOT,n.repositoryRoot.toString())];n.baseBranch&&o.push(r.object.setMetadata(ea,n.baseBranch)),await Promise.all(o)}finally{r.dispose()}}async _readWorktreeMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s]=await Promise.all([n.object.getMetadata(oe._META_WORKTREE_BRANCH),n.object.getMetadata(oe._META_WORKTREE_PATH),n.object.getMetadata(oe._META_WORKTREE_REPOSITORY_ROOT)]);if(!r)return;let a=o?h.parse(o):void 0,l=s?h.parse(s):void 0;return{branchName:r,worktreePath:a,repositoryRoot:l}}finally{n.dispose()}}async _storeSessionMetadata(e,n,r,o,s,a=s!==void 0){let l=this._sessionDataService.openDatabase(e),c=l.object;try{let p=[];n&&p.push(c.setMetadata(oe._META_MODEL,this._serializeModelSelection(n))),r&&p.push(c.setMetadata(oe._META_CWD,r.toString())),o&&p.push(c.setMetadata(oe._META_CUSTOMIZATION_DIRECTORY,o.toString())),a&&p.push(c.setMetadata(oe._META_PROJECT_RESOLVED,"true")),s&&(p.push(c.setMetadata(oe._META_PROJECT_URI,s.uri.toString())),p.push(c.setMetadata(oe._META_PROJECT_DISPLAY_NAME,s.displayName))),await Promise.all(p)}finally{l.dispose()}}async _readSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(!n)return{};try{let[r,o,s]=await Promise.all([n.object.getMetadata(oe._META_MODEL),n.object.getMetadata(oe._META_CWD),n.object.getMetadata(oe._META_CUSTOMIZATION_DIRECTORY)]);return{model:this._parseModelSelection(r),workingDirectory:o?h.parse(o):void 0,customizationDirectory:s?h.parse(s):void 0}}finally{n.dispose()}}async _readStoredSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s,a,l,c]=await Promise.all([n.object.getMetadata(oe._META_MODEL),n.object.getMetadata(oe._META_CWD),n.object.getMetadata(oe._META_CUSTOMIZATION_DIRECTORY),n.object.getMetadata(oe._META_PROJECT_RESOLVED),n.object.getMetadata(oe._META_PROJECT_URI),n.object.getMetadata(oe._META_PROJECT_DISPLAY_NAME)]),p=o?h.parse(o):void 0,u=l&&c?{uri:h.parse(l),displayName:c}:void 0;return{model:this._parseModelSelection(r),workingDirectory:p,customizationDirectory:s?h.parse(s):void 0,project:u,resolved:a==="true"||u!==void 0}}finally{n.dispose()}}async _storeSessionProjectResolution(e,n){await this._storeSessionMetadata(e,void 0,void 0,void 0,n,!0)}_resolveSessionProject(e,n,r){let o=this._projectContextKey(e);if(!o)return Promise.resolve(void 0);let s=r.get(o);return s||(s=n.queue(()=>bi(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())}};oe=C([D(0,Y),D(1,vn),D(2,Ye),D(3,mi),D(4,wn),D(5,ci),D(6,_t)],oe);var Oo=class extends k{constructor(e,n,r,o){super();this._pluginManager=e;this._logService=n;this._fileService=r;this._configurationService=o;this._onDidChange=this._register(new _);this.onDidChange=this._onDidChange.event;this._enablement=new Map;this._clientCustomizations=[];this._hostCustomizations=[];this._clientSync=Promise.resolve([]);this._hostSync=Promise.resolve([]);this._clientRevision=0;this._hostRevision=0;this._lastAppliedRefs=[];this._applyHostCustomizations(),this._register(this._configurationService.onDidRootConfigChange(()=>{this._applyHostCustomizations()}))}getConfiguredHostCustomizations(){return this._hostCustomizations.map(e=>e.customization.customization)}getSessionCustomizations(e){return[...this._hostCustomizations.map(n=>this._applyEnablement(n.customization)),...this._clientCustomizations.map(n=>this._applyEnablement(n.customization))]}async getAppliedPlugins(e){let[n,r]=await Promise.all([this._hostSync.catch(o=>(this._logService.warn("[Copilot:PluginController] Host customization update failed",o),this._hostCustomizations)),this._clientSync.catch(o=>(this._logService.warn("[Copilot:PluginController] Customization sync failed",o),this._clientCustomizations))]);return[...n.filter(o=>!!o.plugin&&this._isEnabled(o.customization)).map(o=>o.plugin),...r.filter(o=>!!o.plugin&&this._isEnabled(o.customization)).map(o=>o.plugin)]}setEnabled(e,n){this._enablement.set(e,n)}_applyHostCustomizations(){let e=this._configurationService.getRootValue(Io,"customizations")??[];if(Pt(e,this._lastAppliedRefs))return;this._lastAppliedRefs=e;let n=++this._hostRevision;this._hostCustomizations=e.map(r=>({customization:{customization:r,enabled:!0,status:"loading"}})),this._onDidChange.fire(),this._hostSync=Promise.all(e.map(r=>this._resolveConfiguredCustomization(r))).then(r=>(n===this._hostRevision&&(this._hostCustomizations=r),r)).finally(()=>{n===this._hostRevision&&this._onDidChange.fire()})}sync(e,n,r){let o=++this._clientRevision;this._clientCustomizations=n.map(l=>({customization:{customization:l,clientId:e,enabled:!0,status:"loading"}})),r?.(this._clientCustomizations.map(l=>({customization:this._applyEnablement(l.customization)})));let s=this._clientSync;return(this._clientSync=s.catch(l=>{this._logService.warn("[Copilot:PluginController] Previous customization sync failed",l)}).then(async()=>{let l=await this._pluginManager.syncCustomizations(e,n,p=>{o===this._clientRevision&&(this._clientCustomizations=p.map(u=>({customization:{...u,clientId:e}})),r?.(this._clientCustomizations.map(u=>({customization:this._applyEnablement(u.customization)}))))}),c=await Promise.all(l.map(p=>this._resolveSyncedCustomization(p,e)));return o===this._clientRevision&&(this._clientCustomizations=c),c})).then(l=>l.map(c=>({customization:this._applyEnablement(c.customization),...c.pluginDir?{pluginDir:c.pluginDir}:{}})))}_isEnabled(e){return this._enablement.get(e.customization.uri)??e.enabled}_applyEnablement(e){let n=this._isEnabled(e);return e.enabled===n?e:{...e,enabled:n}}async _resolveConfiguredCustomization(e){let n=h.parse(e.uri),r=await this._tryParsePlugin(n);return r?{customization:{customization:e,enabled:!0,status:"loaded"},pluginDir:n,plugin:r}:{customization:{customization:e,enabled:!0,status:"error",statusMessage:m(1879,null)}}}async _resolveSyncedCustomization(e,n){if(!e.pluginDir)return{customization:{...e.customization,clientId:n}};let r=await this._tryParsePlugin(e.pluginDir);return r?{customization:{...e.customization,clientId:n},pluginDir:e.pluginDir,plugin:r}:{customization:{...e.customization,clientId:n,status:"error",statusMessage:m(1879,null)}}}async _tryParsePlugin(e){try{return await Nm(e,this._fileService,void 0,this._getUserHome())}catch(n){this._logService.warn(`[Copilot:PluginController] Error parsing plugin '${e.toString()}': ${n instanceof Error?n.message:String(n)}`);return}}_getUserHome(){return process.env.HOME??process.env.USERPROFILE??""}};Oo=C([D(0,xa),D(1,Y),D(2,Ye),D(3,_t)],Oo);var hd=class{constructor(t){this._resolvePlugins=t;this._tools=[];this._clientId=""}updateTools(t,e){this._clientId=t,this._tools=e}async snapshot(t){return{clientId:this._clientId,tools:this._tools,plugins:await this._resolvePlugins(t)}}async isOutdated(t,e){let n=await this._resolvePlugins(e);if(!Xm(t.plugins,n)||t.tools.length!==this._tools.length)return!0;let r=new Map(t.tools.map(o=>[o.name,o]));for(let o of this._tools){let s=r.get(o.name);if(!s||s.description!==o.description||!Pt(s.inputSchema,o.inputSchema))return!0}return!1}};import{CAPIClient as _S,RequestType as lg}from"@vscode/copilot-api";import{networkInterfaces as IS}from"os";import{networkInterfaces as bS}from"os";var yS=new Set(["00:00:00:00:00:00","ff:ff:ff:ff:ff:ff","ac:de:48:00:11:22"]);function SS(i){let t=i.replace(/\-/g,":").toLowerCase();return!yS.has(t)}function og(){let i=bS();for(let t in i){let e=i[t];if(e){for(let{mac:n}of e)if(SS(n))return n}}throw new Error("Unable to retrieve mac address (unexpected format)")}var q6=new class{_isVirtualMachineMacAddress(i){return this._virtualMachineOUIs||(this._virtualMachineOUIs=kt.forStrings(),this._virtualMachineOUIs.set("00-50-56",!0),this._virtualMachineOUIs.set("00-0C-29",!0),this._virtualMachineOUIs.set("00-05-69",!0),this._virtualMachineOUIs.set("00-03-FF",!0),this._virtualMachineOUIs.set("00-1C-42",!0),this._virtualMachineOUIs.set("00-16-3E",!0),this._virtualMachineOUIs.set("08-00-27",!0),this._virtualMachineOUIs.set("00:50:56",!0),this._virtualMachineOUIs.set("00:0C:29",!0),this._virtualMachineOUIs.set("00:05:69",!0),this._virtualMachineOUIs.set("00:03:FF",!0),this._virtualMachineOUIs.set("00:1C:42",!0),this._virtualMachineOUIs.set("00:16:3E",!0),this._virtualMachineOUIs.set("08:00:27",!0)),!!this._virtualMachineOUIs.findSubstr(i)}value(){if(this._value===void 0){let i=0,t=0,e=IS();for(let n in e){let r=e[n];if(r)for(let{mac:o,internal:s}of r)s||(t+=1,this._isVirtualMachineMacAddress(o.toUpperCase())&&(i+=1))}this._value=t>0?i/t:0}return this._value}},vd;async function sg(i){return vd||(vd=(async()=>await TS(i)||J())()),vd}async function TS(i){try{let t=await import("crypto"),e=og();return t.createHash("sha256").update(e,"utf8").digest("hex")}catch(t){i(t);return}}async function ag(i){try{return await(await import("@vscode/deviceid")).getDeviceId()}catch(t){return i(t),J()}}var bd=520,cg=300,xS="2025-04-01",cr=class extends Error{constructor(e,n,r){super(r??n.error.message);this.status=e;this.envelope=n;this.name="CopilotApiError"}};function dg(i,t,e,n="CAPI request failed"){let r;if(e)try{let o=JSON.parse(e);if(o&&typeof o=="object"&&o.type==="error"){let s=o.error;s&&typeof s=="object"&&typeof s.type=="string"&&typeof s.message=="string"&&(r=o)}}catch{}return r||(r={type:"error",error:{type:"api_error",message:e||`${i} ${t}`},request_id:null}),new cr(i,r,`${n}: ${i} ${t} \u2014 ${r.error.message}`)}var Ii=ee("copilotApiService"),Si=class{constructor(t,e,n){this._logService=e;this._productService=n;this._capiInitPromise=null;this._cachedToken=null;this._pendingTokenMints=new Map;this._fetch=t??globalThis.fetch}messages(t,e,n){return e.stream?this._messagesStreaming(t,e,n):this._messagesNonStreaming(t,e,n)}async countTokens(t,e,n){throw new Error("countTokens not supported by CAPI")}async models(t,e){let{capiClient:n,tokenUrl:r}=await this._getCapiInit(),o=await this._getCopilotToken(t,n,r);this._logService.debug("[CopilotApiService] GET models");let s=await n.makeRequest({method:"GET",headers:{...e?.headers,Authorization:`Bearer ${o}`},signal:e?.signal},{type:lg.Models});if(!s.ok){(s.status===401||s.status===403)&&this._invalidateCachedToken(t);let l=await s.text().catch(()=>"");throw dg(s.status,s.statusText,l,"CAPI models request failed")}return(await s.json()).data??[]}_getCapiInit(){return this._capiInitPromise||(this._capiInitPromise=this._buildCapiInit().catch(t=>{throw this._capiInitPromise=null,this._cachedToken=null,t})),this._capiInitPromise}async _buildCapiInit(){let[t,e]=await Promise.all([sg(a=>this._logService.warn("[CopilotApiService] getMachineId failed",a)),ag(a=>this._logService.warn("[CopilotApiService] getDevDeviceId failed",a))]),n={name:"agent-host",sessionId:J(),machineId:t,deviceId:e,vscodeVersion:this._productService.version,version:this._productService.version,buildType:this._productService.quality==="stable"?"prod":"dev"},r=this._fetch,o=new _S(n,void 0,{fetch:(a,l)=>r(a,{method:l.method??"GET",headers:l.headers,body:l.body,signal:l.signal})}),s=this._productService.defaultChatAgent.tokenEntitlementUrl;return{capiClient:o,tokenUrl:s}}async*_messagesStreaming(t,e,n){let r=await this._sendRequest(t,e,!0,n);if(!r.body)throw new Error("CAPI response has no body");yield*this._readSSE(r.body)}async _messagesNonStreaming(t,e,n){return(await this._sendRequest(t,e,!1,n)).json()}async _sendRequest(t,e,n,r){let{capiClient:o,tokenUrl:s}=await this._getCapiInit(),a=await this._getCopilotToken(t,o,s),l=J();this._logService.debug("[CopilotApiService] POST messages",`model=${e.model} stream=${n} requestId=${l}`);let{system:c,...p}=e,u=JSON.stringify({...p,stream:n,...c!==void 0?{system:typeof c=="string"?[{type:"text",text:c}]:c}:{}}),f=await o.makeRequest({method:"POST",headers:{...r?.headers,"Content-Type":"application/json",Authorization:`Bearer ${a}`,"X-Request-Id":l,"OpenAI-Intent":"conversation"},body:u,signal:r?.signal},{type:lg.ChatMessages});if(!f.ok){(f.status===401||f.status===403)&&this._invalidateCachedToken(t);let g=await f.text().catch(()=>"");throw dg(f.status,f.statusText,g)}return f}async _getCopilotToken(t,e,n){let r=Date.now()/1e3;if(this._cachedToken&&this._cachedToken.githubToken===t&&this._cachedToken.expiresAt-r>cg)return this._cachedToken.copilotToken;if(!this._pendingTokenMints.has(t)){let o=this._mintToken(t,e,n).finally(()=>{this._pendingTokenMints.delete(t)});this._pendingTokenMints.set(t,o)}return this._pendingTokenMints.get(t)}_invalidateCachedToken(t){this._cachedToken?.githubToken===t&&(this._cachedToken=null)}async _mintToken(t,e,n){this._logService.debug("[CopilotApiService] Minting new Copilot token");let r=await this._fetch(n,{method:"GET",headers:{Authorization:`token ${t}`,"X-GitHub-Api-Version":xS}});if(!r.ok){let l=await r.text().catch(()=>"");throw new Error(`Copilot token minting failed: ${r.status} ${r.statusText} \u2014 ${l}`)}let o=await r.json();e.updateDomains({endpoints:o.endpoints??{},sku:o.sku??""},void 0);let s=Date.now()/1e3,a=typeof o.refresh_in=="number"?s+o.refresh_in+cg:o.expires_at;return this._cachedToken={githubToken:t,copilotToken:o.token,expiresAt:a},this._logService.debug("[CopilotApiService] Token minted, cacheValidUntil:",a,"serverExpiresAt:",o.expires_at),o.token}async*_readSSE(t){let e=t.getReader(),n=new TextDecoder,r="";try{for(;;){let{done:o,value:s}=await e.read();if(o)break;r+=n.decode(s,{stream:!0});let a=r.split(`
`);r=a.pop()??"";for(let l of a){let c=this._parseDataLine(l);if(c!==void 0&&(yield c,c.type==="message_stop"))return}}if(r.trim()){let o=this._parseDataLine(r);if(o!==void 0&&(yield o,o.type==="message_stop"))return}}finally{try{await e.cancel()}catch{}e.releaseLock()}}_parseDataLine(t){if(!t.startsWith("data: "))return;let e=t.slice(6).trim(),n;try{n=JSON.parse(e)}catch{this._logService.warn("[CopilotApiService] Failed to parse SSE data:",e);return}if(typeof n!="object"||n===null)return;let o=n.type;if(typeof o=="string"){if(o==="error"){let s=n.error,a;if(s&&typeof s=="object"&&typeof s.type=="string"&&typeof s.message=="string")a=n;else{let l;typeof s=="string"?l=s:typeof s?.message=="string"?l=s.message:l="Unknown streaming error",a={type:"error",error:{type:"api_error",message:l},request_id:null}}throw new cr(bd,a)}if(wS.has(o))return n}}};Si=C([D(1,Y),D(2,si)],Si);var wS=new Set(["message_start","message_delta","message_stop","content_block_start","content_block_delta","content_block_stop"]);var CS=new Map([["opus",new Set(["1m"])]]),yd=new Map;function Ti(i){let t=i.toLowerCase();if(yd.has(t))return yd.get(t);let e=ES(t);return yd.set(t,e),e}var RS=/^(?<base>.*)-(?<date>\d{8})$/;function ES(i){let t="",e=i,n=RS.exec(i);n?.groups&&(e=n.groups.base,t=n.groups.date);let r=e.match(/^claude-(?<name>\w+)-(?<major>\d+)-(?<minor>\d+)(?:-(?<mod>.+))?$/);if(r?.groups)return Fo(r.groups.name,r.groups.major,r.groups.minor,Lo(r.groups.mod,t));let o=e.match(/^claude-(?<major>\d+)-(?<minor>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(o?.groups)return Fo(o.groups.name,o.groups.major,o.groups.minor,Lo(o.groups.mod,t));let s=e.match(/^claude-(?<name>\w+)-(?<major>\d+)\.(?<minor>\d+)(?:-(?<mod>.+))?$/);if(s?.groups)return Fo(s.groups.name,s.groups.major,s.groups.minor,Lo(s.groups.mod,t));let a=e.match(/^claude-(?<name>\w+)-(?<major>\d+)(?:-(?<mod>.+))?$/);if(a?.groups)return Fo(a.groups.name,a.groups.major,void 0,Lo(a.groups.mod,t));let l=e.match(/^claude-(?<major>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(l?.groups)return Fo(l.groups.name,l.groups.major,void 0,Lo(l.groups.mod,t));let c=e.match(/^(?<name>\w+)$/);if(c?.groups)return PS(c.groups.name)}function Lo(i,t){return i&&t?`${i}-${t}`:i||t}function ug(i,t,e,n,r){let o=e!==void 0?`claude-${i}-${t}${n}${e}`:`claude-${i}-${t}`;return r?`${o}-${r}`:o}function PS(i){return{name:i,version:"",modifiers:"",toSdkModelId:()=>i,toEndpointModelId:()=>i}}function Fo(i,t,e,n){let r=e!==void 0?`${t}.${e}`:t,o=AS(i,n);return{name:i,version:r,modifiers:n,toSdkModelId:()=>ug(i,t,e,"-",o),toEndpointModelId:()=>ug(i,t,e,".",o)}}function AS(i,t){if(!t)return"";let e=CS.get(i);if(!e)return"";if(e.has(t))return t;let n=t.split("-")[0];return e.has(n)?n:""}import{once as DS}from"events";var kS=["interleaved-thinking","context-management","advanced-tool-use"];function pg(i){let t=i.split(",").map(e=>e.trim()).filter(e=>e&&kS.some(n=>e.startsWith(n+"-")));return t.length>0?t.join(","):void 0}function Sd(i,t){return{type:"error",error:{type:i,message:t},request_id:null}}function gt(i,t,e,n){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(Sd(e,n)))}function fg(i,t,e){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(e))}function mg(i){return`event: error
data: ${JSON.stringify(i)}

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

`;if(!n.write(g))try{await DS(n,"drain",{signal:r.ac.signal})}catch{return!1}return!0};try{if(!c.done&&!await p(c.value))return;for(;;){let u;try{u=await l.next()}catch(g){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}let b=g instanceof cr?g.envelope:Sd("api_error",Uo(g));if(!n.writableEnded){try{n.write(mg(b))}catch{}try{n.end()}catch{}}return}if(u.done)break;if(!await p(u.value))return}n.writableEnded||n.end()}catch(u){if(this._logService.warn(`[${Dn}] stream loop unexpected error: ${Uo(u)}`),!n.writableEnded)try{n.end()}catch{}}}_writeUpstreamErrorResponse(t,e){if(t.headersSent){if(this._logService.warn(`[${Dn}] cannot write upstream error after headers sent: ${Uo(e)}`),!t.writableEnded)try{t.end()}catch{}return}if(e instanceof cr){let n=e.status===bd?502:e.status;fg(t,n,e.envelope);return}gt(t,502,"api_error",e instanceof Error?e.message:String(e))}};_i=C([D(0,Y),D(1,Ii)],_i);function US(i){return OS.has(i.vendor.toLowerCase())?Array.isArray(i.supported_endpoints)&&i.supported_endpoints.includes(LS):!1}function hg(i,t){let e=Ti(i);if(!e){t.warn(`[${Dn}] outbound model ID could not be parsed for SDK rewrite: ${i}`);return}return e.toSdkModelId()}function MS(i,t){if(i.type!=="message_start")return i;let e=hg(i.message.model,t);return e===void 0||e===i.message.model?i:{...i,message:{...i.message,model:e}}}function NS(i){let t={},e=i["anthropic-version"];typeof e=="string"&&e.length>0&&(t["anthropic-version"]=e);let n=i["anthropic-beta"];if(typeof n=="string"&&n.length>0){let r=pg(n);r!==void 0&&(t["anthropic-beta"]=r)}return t}function WS(i){return new Promise((t,e)=>{let n=[];i.on("data",r=>n.push(Buffer.isBuffer(r)?r:Buffer.from(r))),i.on("end",()=>t(Buffer.concat(n).toString("utf8"))),i.on("error",e)})}function BS(i){let t=i.socket;if(t&&typeof t.setNoDelay=="function")try{t.setNoDelay(!0)}catch{}}function Uo(i){return i instanceof Error?i.message:String(i)}function $S(i){return i.vendor==="Anthropic"&&!!i.supported_endpoints?.includes("/v1/messages")&&!!i.model_picker_enabled&&!!i.capabilities?.supports?.tool_calls&&Ti(i.id)!==void 0}function VS(i,t){return{provider:t,id:i.id,name:i.name,maxContextWindow:i.capabilities?.limits?.max_context_window_tokens,supportsVision:!!i.capabilities?.supports?.vision}}var xi=class extends k{constructor(e,n,r){super();this._logService=e;this._copilotApiService=n;this._claudeProxyService=r;this.id="claude";this._onDidSessionProgress=this._register(new _);this.onDidSessionProgress=this._onDidSessionProgress.event;this._models=At(this,[]);this.models=this._models}getDescriptor(){return{provider:this.id,displayName:m(1864,null),description:m(1863,null)}}getProtectedResources(){return[Nr]}async authenticate(e,n){if(e!==Nr.resource)return!1;if(!(this._githubToken!==n))return this._logService.info("[Claude] Auth token unchanged"),!0;let o=await this._claudeProxyService.start(n),s=this._proxyHandle;return this._proxyHandle=o,this._githubToken=n,this._logService.info("[Claude] Auth token updated"),s?.dispose(),this._refreshModels(),!0}async _refreshModels(){let e=this._githubToken;if(!e){this._models.set([],void 0);return}try{let n=await this._copilotApiService.models(e);if(this._githubToken!==e)return;let r=n.filter($S).map(o=>VS(o,this.id));this._models.set(r,void 0)}catch(n){this._logService.error(n,"[Claude] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}createSession(e){throw new Error("TODO: Phase 5")}disposeSession(e){throw new Error("TODO: Phase 5")}getSessionMessages(e){throw new Error("TODO: Phase 5")}listSessions(){throw new Error("TODO: Phase 5")}resolveSessionConfig(e){throw new Error("TODO: Phase 5")}sessionConfigCompletions(e){throw new Error("TODO: Phase 5")}shutdown(){throw new Error("TODO: Phase 5")}sendMessage(e,n,r,o){throw new Error("TODO: Phase 6")}respondToPermissionRequest(e,n){throw new Error("TODO: Phase 7")}respondToUserInputRequest(e,n,r){throw new Error("TODO: Phase 7")}abortSession(e){throw new Error("TODO: Phase 9")}changeModel(e,n){throw new Error("TODO: Phase 9")}setClientTools(e,n,r){throw new Error("TODO: Phase 10")}onClientToolCallComplete(e,n,r){throw new Error("TODO: Phase 10")}setClientCustomizations(e,n,r){throw new Error("TODO: Phase 11")}setCustomizationEnabled(e,n){throw new Error("TODO: Phase 11")}dispose(){this._proxyHandle?.dispose(),this._proxyHandle=void 0,this._githubToken=void 0,this._models.set([],void 0),super.dispose()}};xi=C([D(0,Y),D(1,Ii),D(2,Ua)],xi);var Ma=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}},vg=class i extends k{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=st.None,r){if(this._store.isDisposed)return Promise.reject(new Fe);let o=this._nextRequestId++,s=new Ne,a=new Pe;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(Td(e)){Re(e,{result:!0})?this._handleResult(e):this._handleError(e);return}if(qS(e))return this._handleRequest(e);zS(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 Ma(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 Pe;this._register(P(()=>n.dispose(!0)));try{let r=this._handlers.handleRequest(e,n.token),o=HS(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 Ma?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 qS(i){return"method"in i&&"id"in i&&(typeof i.id=="string"||typeof i.id=="number")}function Td(i){return Re(i,{id:!0,result:!0})||Re(i,{id:!0,error:!0})}function zS(i){return Re(i,{method:!0})&&!Re(i,{id:!0})}function HS(i){return typeof i=="object"&&i!==null&&"then"in i&&typeof i.then=="function"}var jS=1e3,KS=3e4;function Na(i,t){return{jsonrpc:"2.0",id:i,result:t}}function _d(i,t,e,n){return{jsonrpc:"2.0",id:i,error:{code:t,message:e,...n!==void 0?{data:n}:{}}}}function Mo(i,t){if(t instanceof N)return _d(i,t.code,t.message,t.data);let e=t instanceof Error?t.stack??t.message:String(t);return _d(i,Qr,e)}var dr=class extends k{constructor(e,n,r,o,s,a){super();this._agentService=e;this._stateManager=n;this._server=r;this._config=o;this._clientFileSystemProvider=s;this._logService=a;this._clients=new Map;this._replayBuffer=[];this._clientToolCallDisconnectTimeouts=new Map;this._onDidChangeConnectionCount=this._register(new _);this.onDidChangeConnectionCount=this._onDidChangeConnectionCount.event;this._requestHandlers={subscribe:async(e,n)=>{try{let r=await this._agentService.subscribe(h.parse(n.resource),e.clientId);return e.subscriptions.add(n.resource),this._clearClientToolCallDisconnectTimeout(e.clientId,n.resource),{snapshot:r}}catch(r){throw r instanceof N?r:new N(Tn,`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 N(Tn,`Fork source session not found: ${n.fork.session}`);let a=s.turns.findIndex(l=>l.id===n.fork.turnId);if(a<0)throw new N(Tn,`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 N(In.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 N?s:new N(vf,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=ie.provider(r.session);if(!o)throw new Error(`Agent session URI has no provider scheme: ${r.session.toString()}`);let s=r.status??1;return r.isRead&&(s|=32),r.isArchived&&(s|=64),{resource:r.session.toString(),provider:o,title:r.summary??"Session",status:s,activity:r.activity,createdAt:r.startTime,modifiedAt:r.modifiedTime,...r.project?{project:{uri:r.project.uri.toString(),displayName:r.project.displayName}}:{},model:r.model,workingDirectory:r.workingDirectory?.toString(),diffs:r.diffs?[...r.diffs]:void 0}})}),resolveSessionConfig:async(e,n)=>this._agentService.resolveSessionConfig({provider:n.provider,workingDirectory:n.workingDirectory?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 N(Tn,`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 N(Js,"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>jS&&this._replayBuffer.shift(),this._broadcastAction(l)})),this._register(this._stateManager.onDidEmitNotification(l=>{this._broadcastNotification(l)}))}_handleNewConnection(e){let n=new B,r;n.add(e.onMessage(o=>{if(yf(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(Na(o.id,s.response))}catch(s){e.send(Mo(o.id,s))}return}if(!r&&o.method==="reconnect"){let s;try{let a=this._handleReconnect(o.params,e,n);r=a.client,s=a.responsePromise}catch(a){e.send(Mo(o.id,a));return}s.then(a=>e.send(Na(o.id,a)),a=>e.send(Mo(o.id,a)));return}if(!r)return;this._handleRequest(r,o.method,o.params,o.id)}else if(Sf(o))switch(this._logService.trace(`[ProtocolServer] notification: method=${o.method}`),o.method){case"unsubscribe":if(r){let s=o.params.resource;r.subscriptions.delete(s)&&this._agentService.unsubscribe(h.parse(s),r.clientId)}break;case"dispatchAction":if(r){this._logService.trace(`[ProtocolServer] dispatchAction: ${JSON.stringify(o.params.action.type)}`);let s=o.params.action;(tr(s)||yo(s)||s.type==="root/configChanged")&&this._agentService.dispatchAction(s,r.clientId,o.params.clientSeq)}break}else if(Td(o)){let s=this._pendingReverseRequests.get(o.id);s&&(this._pendingReverseRequests.delete(o.id),Re(o,{error:!0})?s.reject(new Error(o.error?.message??"Reverse RPC error")):s.resolve(o.result))}})),n.add(e.onClose(()=>{if(r&&this._clients.get(r.clientId)===r){this._logService.info(`[ProtocolServer] Client disconnected: ${r.clientId}, subscriptions=${r.subscriptions.size}`);for(let o of r.subscriptions)this._agentService.unsubscribe(h.parse(o),r.clientId);r.subscriptions.clear(),this._clients.delete(r.clientId),this._rejectPendingReverseRequests(r.clientId),this._handleClientDisconnected(r.clientId),this._onDidChangeConnectionCount.fire(this._clients.size)}n.dispose()})),n.add(e)}_handleInitialize(e,n,r){if(this._logService.info(`[ProtocolServer] Initialize: clientId=${e.clientId}, version=${e.protocolVersion}`),e.protocolVersion<1)throw new N(bf,`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);if(l){s.push(l);let c=a.toString();o.subscriptions.add(c),this._agentService.addSubscriber(h.parse(c),o.clientId),this._clearClientToolCallDisconnectTimeout(e.clientId,c)}}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,a=e.lastSeenServerSeq>=s,l=this._restoreReconnectSubscriptions(o,e,a);return{client:o,responsePromise:l}}async _restoreReconnectSubscriptions(e,n,r){let o=[],s=await Promise.all(n.subscriptions.map(async a=>{let l=a.toString();try{let c=await this._agentService.subscribe(h.parse(l),e.clientId);return e.subscriptions.add(l),this._clearClientToolCallDisconnectTimeout(e.clientId,l),c}catch(c){this._logService.info(`[ProtocolServer] Reconnect: failed to restore subscription ${l}: ${c instanceof Error?c.message:String(c)}`),o.push(a);return}}));if(r){let a=[];for(let l of this._replayBuffer)l.serverSeq>n.lastSeenServerSeq&&this._isRelevantToClient(e,l)&&a.push(l);return{type:"replay",actions:a,missing:o}}return{type:"snapshot",snapshots:s.filter(a=>a!==void 0)}}_handleClientDisconnected(e){for(let n of this._stateManager.getSessionUris()){let r=this._stateManager.getSessionState(n),o=r?this._hasPendingClientToolCall(r,e):!1;r?.activeClient?.clientId===e&&this._stateManager.dispatchServerAction({type:"session/activeClientChanged",session:n,activeClient:null}),(r?.activeClient?.clientId===e||o)&&this._startClientToolCallDisconnectTimeout(e,n)}}_hasPendingClientToolCall(e,n){let r=e?.activeTurn;return r?r.responseParts.some(o=>o.kind==="toolCall"&&o.toolCall.toolClientId===n&&(o.toolCall.status==="streaming"||o.toolCall.status==="running"||o.toolCall.status==="pending-confirmation")):!1}_hasReplacementActiveClientTool(e,n,r){let o=e.activeClient;return o!==void 0&&o.clientId!==n&&o.tools.some(s=>s.name===r)}_startClientToolCallDisconnectTimeout(e,n){this._clearClientToolCallDisconnectTimeout(e,n);let r=this._clientToolCallDisconnectTimeoutKey(e,n);this._clientToolCallDisconnectTimeouts.set(r,setTimeout(()=>{this._clientToolCallDisconnectTimeouts.delete(r),this._completeDisconnectedClientToolCalls(e,n)},KS))}_clearClientToolCallDisconnectTimeout(e,n){let r=this._clientToolCallDisconnectTimeoutKey(e,n),o=this._clientToolCallDisconnectTimeouts.get(r);o&&(clearTimeout(o),this._clientToolCallDisconnectTimeouts.delete(r))}_clientToolCallDisconnectTimeoutKey(e,n){return`${e}
${n}`}_completeDisconnectedClientToolCalls(e,n){let r=this._stateManager.getSessionState(n),o=r?.activeTurn;if(o)for(let s of o.responseParts){if(s.kind!=="toolCall")continue;let a=s.toolCall;if(a.toolClientId===e&&(a.status==="streaming"||a.status==="running"||a.status==="pending-confirmation")){let l=this._hasReplacementActiveClientTool(r,e,a.toolName);a.status==="streaming"&&this._stateManager.dispatchServerAction({type:"session/toolCallReady",session:n,turnId:o.id,toolCallId:a.toolCallId,invocationMessage:a.invocationMessage??a.displayName,confirmed:"not-needed"}),this._stateManager.dispatchServerAction({type:"session/toolCallComplete",session:n,turnId:o.id,toolCallId:a.toolCallId,result:{success:!1,pastTenseMessage:`${a.displayName} failed`,...l?{content:[{type:"text",text:`The client that was running ${a.displayName} disconnected, but another active client now provides ${a.displayName}. You may try calling the tool again.`}]}:{},error:{message:`Client ${e} disconnected before completing ${a.displayName}`}}})}}}_sendReverseRequest(e,n,r){let o=this._clients.get(e);if(!o)return Promise.reject(new Error(`Client ${e} is not connected`));let s=++this._reverseRequestId;return new Promise((a,l)=>{this._pendingReverseRequests.set(s,{clientId:e,resolve:a,reject:l});let c={jsonrpc:"2.0",id:s,method:n,params:r};o.transport.send(c)})}_rejectPendingReverseRequests(e){for(let[n,r]of this._pendingReverseRequests)r.clientId===e&&(this._pendingReverseRequests.delete(n),r.reject(new Error(`Client ${e} disconnected`)))}_handleRequest(e,n,r,o){let s=this._requestHandlers.hasOwnProperty(n)?this._requestHandlers[n]:void 0;if(s){s(e,r).then(l=>{this._logService.trace(`[ProtocolServer] Request '${n}' id=${o} succeeded`),e.transport.send(Na(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Request '${n}' failed`,l),e.transport.send(Mo(o,l))});return}let a=this._handleExtensionRequest(n,r);if(a){a.then(l=>{e.transport.send(Na(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Extension request '${n}' failed`,l),e.transport.send(Mo(o,l))});return}e.transport.send(_d(o,Qr,`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(Ys):tr(r)?e.subscriptions.has(r.session):yo(r)?e.subscriptions.has(r.terminal):!1}dispose(){for(let e of this._clients.values())e.disposables.dispose();this._clients.clear();for(let[,e]of this._pendingReverseRequests)e.reject(new Error("ProtocolServerHandler disposed"));this._pendingReverseRequests.clear();for(let e of this._clientToolCallDisconnectTimeouts.values())clearTimeout(e);this._clientToolCallDisconnectTimeouts.clear(),this._replayBuffer.length=0,super.dispose()}};dr=C([D(5,Y)],dr);var xd=class extends k{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:hf,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()}},No=class i extends k{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[Ml];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 xd(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 nI,tmpdir as rI}from"os";var GS=60,JS=GS*60,wd=JS*24,g3=wd*7,h3=wd*30,v3=wd*365;function Sg(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 Ig=/^([^.]+\..+)[:=](.+)$/,K=class{constructor(t,e,n,r=!1){this._args=t;this.paths=e;this.productService=n;this.isEmbeddedApp=r}get appRoot(){return ve(rt.asFileUri("").fsPath)}get userHome(){return h.file(this.paths.homeDir)}get userDataPath(){return this.paths.userDataDir}get appSettingsHome(){return h.file(M(this.userDataPath,"User"))}get tmpDir(){return h.file(this.paths.tmpDir)}get cacheHome(){return h.file(this.userDataPath)}get stateResource(){return ne(this.appSettingsHome,"globalStorage","storage.json")}get userRoamingDataHome(){return this.appSettingsHome.with({scheme:re.vscodeUserData})}get userDataSyncHome(){return ne(this.appSettingsHome,"sync")}get logsHome(){if(!this.args.logsPath){let t=Sg(new Date).replace(/-|:|\.\d+Z$/g,"");this.args.logsPath=M(this.userDataPath,"logs",t)}return h.file(this.args.logsPath)}get sync(){return this.args.sync}get workspaceStorageHome(){return ne(this.appSettingsHome,"workspaceStorage")}get localHistoryHome(){return ne(this.appSettingsHome,"History")}get keyboardLayoutResource(){return ne(this.userRoamingDataHome,"keyboardLayout.json")}get argvResource(){let t=_e.VSCODE_PORTABLE;return t?h.file(M(t,"argv.json")):ne(this.userHome,this.productService.dataFolderName,"argv.json")}get isExtensionDevelopment(){return!!this.args.extensionDevelopmentPath}get untitledWorkspacesHome(){return h.file(M(this.userDataPath,"Workspaces"))}get builtinExtensionsPath(){let t=this.args["builtin-extensions-dir"];return t?Bn(t):dt(M(rt.asFileUri("").fsPath,"..","extensions"))}get extensionsDownloadLocation(){let t=this.args["extensions-download-dir"];return t?h.file(Bn(t)):h.file(M(this.userDataPath,"CachedExtensionVSIXs"))}get extensionsPath(){let t=this.args["extensions-dir"];if(t)return Bn(t);let e=_e.VSCODE_EXTENSIONS;if(e)return e;let n=_e.VSCODE_PORTABLE;return n?M(n,"extensions"):ne(this.userHome,this.productService.dataFolderName,"extensions").fsPath}get appSharedDataHome(){let t=this.args["shared-data-dir"];if(t)return h.file(Bn(t));let e=_e.VSCODE_PORTABLE;return e?h.file(M(e,"shared-data")):ne(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(dt(e)))}get extensionDevelopmentKind(){return this.args.extensionDevelopmentKind?.map(t=>t==="ui"||t==="workspace"||t==="web"?t:"workspace")}get extensionTestsLocationURI(){let t=this.args.extensionTestsPath;if(t)return/^[^:/?#]+?:\/\//.test(t)?h.parse(t):h.file(dt(t))}get disableExtensions(){if(this.args["disable-extensions"])return!0;let t=this.args["disable-extension"];if(t){if(typeof t=="string")return[t];if(Array.isArray(t)&&t.length>0)return t}return!1}get skipBuiltinExtensions(){let t=_e.VSCODE_SKIP_BUILTIN_EXTENSIONS;return t?t.split(",").map(e=>e.trim()).filter(e=>e):[]}get debugExtensionHost(){return QS(this.args,this.isBuilt)}get debugRenderer(){return!!this.args.debugRenderer}get isBuilt(){return!_e.VSCODE_DEV}get verbose(){return!!this.args.verbose}get logLevel(){return this.args.log?.find(t=>!Ig.test(t))}get extensionLogLevel(){let t=[];for(let e of this.args.log||[]){let n=Ig.exec(e);n?.[1]&&n[2]&&t.push([n[1],n[2]])}return t.length?t:void 0}get serviceMachineIdResource(){return ne(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=_e.VSCODE_PORTABLE;return t?h.file(M(t,"policy.json")):ne(this.userHome,this.productService.dataFolderName,"policy.json")}}get agentSessionsWorkspace(){return ne(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 parentAppUserRoamingDataHome(){return this.paths.parentAppUserDataDir?h.file(this.paths.parentAppUserDataDir).with({scheme:re.vscodeUserData}):void 0}get parentAppUserHome(){return this.paths.parentAppUserHomeDir?h.file(this.paths.parentAppUserHomeDir):void 0}get parentAppExtensionsHome(){if(this.parentAppUserHome)return ne(this.parentAppUserHome,"extensions")}get parentAppNameShort(){return Tg(this.productService,this.isEmbeddedApp,"short")}get parentAppNameLong(){return Tg(this.productService,this.isEmbeddedApp,"long")}get args(){return this._args}};C([G],K.prototype,"appRoot",1),C([G],K.prototype,"userHome",1),C([G],K.prototype,"userDataPath",1),C([G],K.prototype,"appSettingsHome",1),C([G],K.prototype,"tmpDir",1),C([G],K.prototype,"cacheHome",1),C([G],K.prototype,"stateResource",1),C([G],K.prototype,"userRoamingDataHome",1),C([G],K.prototype,"userDataSyncHome",1),C([G],K.prototype,"sync",1),C([G],K.prototype,"workspaceStorageHome",1),C([G],K.prototype,"localHistoryHome",1),C([G],K.prototype,"keyboardLayoutResource",1),C([G],K.prototype,"argvResource",1),C([G],K.prototype,"isExtensionDevelopment",1),C([G],K.prototype,"untitledWorkspacesHome",1),C([G],K.prototype,"builtinExtensionsPath",1),C([G],K.prototype,"extensionsDownloadLocation",1),C([G],K.prototype,"extensionsPath",1),C([G],K.prototype,"appSharedDataHome",1),C([G],K.prototype,"extensionDevelopmentLocationURI",1),C([G],K.prototype,"extensionDevelopmentKind",1),C([G],K.prototype,"extensionTestsLocationURI",1),C([G],K.prototype,"debugExtensionHost",1),C([G],K.prototype,"logLevel",1),C([G],K.prototype,"extensionLogLevel",1),C([G],K.prototype,"serviceMachineIdResource",1),C([G],K.prototype,"disableTelemetry",1),C([G],K.prototype,"disableExperiments",1),C([G],K.prototype,"disableWorkspaceTrust",1),C([G],K.prototype,"useInMemorySecretStorage",1),C([G],K.prototype,"policyFile",1),C([G],K.prototype,"agentSessionsWorkspace",1),C([G],K.prototype,"parentAppUserRoamingDataHome",1),C([G],K.prototype,"parentAppUserHome",1),C([G],K.prototype,"parentAppExtensionsHome",1),C([G],K.prototype,"parentAppNameShort",1),C([G],K.prototype,"parentAppNameLong",1);function QS(i,t){return _g(i["inspect-extensions"],i["inspect-brk-extensions"],5870,t,i.debugId,i.extensionEnvironment)}function _g(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}}function Tg(i,t,e){if(!t)return;let n=i.quality;if(n==="stable")return e==="short"?"VS Code":"Visual Studio Code";if(n==="insider")return e==="short"?"VS Code Insiders":"Visual Studio Code Insiders";if(n==="exploration")return e==="short"?"VS Code Exploration":"Visual Studio Code Exploration"}import{homedir as xg}from"os";import{resolve as YS,isAbsolute as XS,join as wi}from"path";var ZS=process.env.VSCODE_CWD||process.cwd();function Cd(i,t){let e=eI(i,t),n=[e];return XS(e)||n.unshift(ZS),YS(...n)}function eI(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 wi(e,"user-data");let n=process.env.VSCODE_APPDATA;if(n)return wi(n,t);let r=i["user-data-dir"];return r||tI(t)}function tI(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=wi(e,"AppData","Roaming")}break;case"darwin":t=wi(xg(),"Library","Application Support");break;case"linux":t=process.env.XDG_CONFIG_HOME||wi(xg(),".config");break;default:throw new Error("Platform not supported")}return wi(t,i)}var Wa=class extends K{constructor(t,e){let n=nI();super(t,{homeDir:n,tmpDir:rI(),userDataDir:Cd(t,e.nameShort),parentAppUserDataDir:iI(t,e),parentAppUserHomeDir:oI(n,e)},e,sI())}};function iI(i,t){if(!process.isEmbeddedApp||_e.VSCODE_DEV)return;let e=t.quality,n;if(e==="stable")n="Code";else if(e==="insider")n="Code - Insiders";else if(e==="exploration")n="Code - Exploration";else return;let r=Cd(i,n);return M(r,"User")}function oI(i,t){if(!process.isEmbeddedApp||_e.VSCODE_DEV)return;let e=t.quality,n;if(e==="stable")n=".vscode";else if(e==="insider")n=".vscode-insiders";else if(e==="exploration")n=".vscode-exploration";else return;return M(i,n)}function sI(){return!!process.isEmbeddedApp}import aI from"minimist";var B3={o:m(2069,null),e:m(2053,null),t:m(2083,null),m:m(2064,null)};var wg={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:m(2073,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:m(2041,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:m(2036,null)},maximize:{type:"boolean",cat:"o",description:m(2040,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2076,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2067,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2072,null)},help:{type:"boolean",alias:"h",description:m(2055,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(2042,null)},"disable-telemetry":{type:"boolean"},"telemetry-level":{type:"string"}}},agent:{type:"subcommand",description:"Start and interact with AI agent hosts.",options:{"cli-data-dir":{type:"string",args:"dir",description:m(2042,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(2042,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(2045,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:m(2065,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:m(2035,null)},remove:{type:"boolean",cat:"o",args:"folder",description:m(2074,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:m(2054,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2066,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2075,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:m(2038,null)},wait:{type:"boolean",cat:"o",alias:"w",description:m(2093,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:m(2061,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:m(2090,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2072,null)},help:{type:"boolean",cat:"o",alias:"h",description:m(2055,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:m(2052,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:m(2060,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(2077,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:m(2039,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:m(2059,null)},"pre-release":{type:"boolean",cat:"e",description:m(2058,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:m(2085,null)},"update-extensions":{type:"boolean",cat:"e",description:m(2088,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:m(2051,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:m(2037,null)},version:{type:"boolean",cat:"t",alias:"v",description:m(2092,null)},verbose:{type:"boolean",cat:"t",global:!0,description:m(2091,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:m(2063,null)},status:{type:"boolean",alias:"s",cat:"t",description:m(2078,null)},"prof-startup":{type:"boolean",cat:"t",description:m(2071,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(2048,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:m(2047,null)},sync:{type:"string",cat:"t",description:m(2084,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:m(2057,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:m(2056,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:m(2050,null)},"disable-gpu":{type:"boolean",cat:"t",description:m(2049,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:m(2046,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:m(2062,null)},telemetry:{type:"boolean",cat:"t",description:m(2081,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(2082,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[]"}},lI={onUnknownOption:()=>{},onMultipleValues:()=>{},onEmptyValue:()=>{},onDeprecatedOption:()=>{}};function Rd(i,t,e=lI){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 I in l.options)f[I]=l.options[I];let g=i.filter(I=>I!==n),b=e.getSubcommandReporter?e.getSubcommandReporter(n):void 0,y=Rd(g,f,b);return{[n]:y,_:[]}}let c=aI(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 y of g.deprecates)u.hasOwnProperty(y)&&(b||(b=u[y],b&&e.onDeprecatedOption(y,g.deprecationMessage||m(2044,null,f))),delete u[y]);if(typeof b<"u"){if(g.type==="string[]"){if(Array.isArray(b)||(b=[b]),!g.allowEmptyValue){let y=b.filter(I=>I.length>0);y.length!==b.length&&(e.onEmptyValue(f),b=y.length>0?y: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 Ba=class extends k{constructor(t,e=[]){super(),this.logger=new Gs([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 dI(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 Cg(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 Rg(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 $a=class extends vo{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&&Rg(this._logger,a)}))}async _createSpdLogLogger(e,n,r,o){let s=r?6:1,a=30/s*Ms.MB,l=await dI(e,n,a,s,o);if(l){this._logger=l,Rg(this._logger,this.getLevel());for(let{level:c,message:p}of this.buffer)Cg(this._logger,c,p);this.buffer=[]}}log(e,n){this._logger?Cg(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 Va=class extends bo{doCreateLogger(t,e,n){return new $a(J(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e)}};var qa=class{constructor(t,e){this.loggerService=t;this.getUriTransformer=e}listen(t,e){let n=this.getUriTransformer(t);switch(e){case"onDidChangeLoggers":return Z.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 Z.map(this.loggerService.onDidChangeVisibility,r=>[n.transformOutgoingURI(r[0]),r[1]]);case"onDidChangeLogLevel":return Z.map(this.loggerService.onDidChangeLogLevel,r=>Cc(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 Cc(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 Eg=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};var it,Ed=globalThis.vscode;if(typeof Ed<"u"&&typeof Ed.context<"u"){let i=Ed.context.configuration();if(i)it=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(it=globalThis._VSCODE_PRODUCT_JSON,_e.VSCODE_DEV&&Object.assign(it,{nameShort:`${it.nameShort} Dev`,nameLong:`${it.nameLong} Dev`,dataFolderName:`${it.dataFolderName}-dev`,serverDataFolderName:it.serverDataFolderName?`${it.serverDataFolderName}-dev`:void 0}),!it.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(it,{version:i.version})}}else it={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-vscode.vscode-chat-customizations-evaluations":{onFileOpen:[{pathGlob:"{**/*prompt.md, **/*skill.md, **/*instructions.md, **/*agent.md}",important:!0},{languages:["prompt","chatagent","skill","instructions"],important:!0}]},"ms-dotnettools.csdevkit":{onFileOpen:[{pathGlob:"{**/*.cs,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln}",important:!0},{languages:["csharp"],important:!0},{pathGlob:"{**/project.json,**/appsettings.json}"}]},"microsoft-aspire.aspire-vscode":{onFileOpen:[{pathGlob:"{**/apphost.cs,**/apphost.js,**/apphost.ts,**/apphost.py,**/AppHost.java,**/aspire.config.json,**/.aspire/settings.json}",important:!0}]},"ms-python.python":{onFileOpen:[{pathGlob:"{**/*.py}",important:!0},{languages:["python"],important:!0},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.jupyter":{onFileOpen:[{pathGlob:"{**/*.py}",contentPattern:"^#\\s*%%$",important:!0,whenInstalled:["ms-python.python"]},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.datawrangler":{onFileOpen:[{pathGlob:"{**/*.ipynb}",contentPattern:"import\\s*pandas|from\\s*pandas",whenInstalled:["ms-toolsai.jupyter"]}]},"golang.Go":{onFileOpen:[{pathGlob:"**/*.go",important:!0},{languages:["go"],important:!0}]},"vscjava.vscode-java-pack":{onFileOpen:[{pathGlob:"{**/*.java}",important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},{languages:["java"],important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}]},"ms-vscode.PowerShell":{onFileOpen:[{pathGlob:"{**/*.ps1,**/*.psd1,**/*.psm1}",important:!0},{languages:["powershell"],important:!0},{pathGlob:"{**/*.ps.config,**/*.ps1.config}"}]},"ms-toolsai.prompty":{onFileOpen:[{pathGlob:"{**/*.prompty}",important:!1}]},"quantum.qsharp-lang-vscode":{onFileOpen:[{pathGlob:"{**/*.qs,**/*.qsc,**/*.qasm}",important:!0}]},"typespec.typespec-vscode":{onFileOpen:[{pathGlob:"{**/*.tsp,**/tspconfig.yaml}",important:!0}]},"ms-vscode.cpptools-extension-pack":{onFileOpen:[{pathGlob:"{**/*.c,**/*.cpp,**/*.cc,**/.cxx,**/*.hh,**/*.hpp,**/*.hxx,**/*.h}",important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]},{languages:["c","cpp"],important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]}]},"ms-azuretools.vscode-containers":{onFileOpen:[{pathGlob:"{**/dockerfile,**/Dockerfile,**/docker-compose.yml,**/docker-compose.*.yml}",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{languages:["dockerfile"],important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{pathGlob:"{**/*.cs,**/project.json,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln,**/appsettings.json,**/*.py,**/*.ipynb,**/*.js,**/*.ts,**/package.json}",whenNotInstalled:["ms-azuretools.vscode-docker"]}]},"vue.volar":{onFileOpen:[{pathGlob:"{**/*.vue}",important:!0},{languages:["vue"],important:!0}]},"ms-vscode.makefile-tools":{onFileOpen:[{pathGlob:"{**/makefile,**/Makefile}",important:!0},{languages:["makefile"],important:!0}]},"ms-vscode.cmake-tools":{onFileOpen:[{pathGlob:"{**/CMakeLists.txt}",important:!0}]},"ms-azure-devops.azure-pipelines":{onFileOpen:[{pathGlob:"{**/azure-pipelines.yaml}",important:!0}]},"msazurermtools.azurerm-vscode-tools":{onFileOpen:[{pathGlob:"{**/azuredeploy.json}",important:!0}]},"ms-vscode-remote.remote-containers":{onFileOpen:[{pathGlob:"{**/devcontainer.json}",important:!0}]},"ms-azuretools.vscode-bicep":{onFileOpen:[{pathGlob:"{**/*.bicep}",important:!0,whenNotInstalled:["ms-azuretools.rad-vscode-bicep"]}]},"svelte.svelte-vscode":{onFileOpen:[{pathGlob:"{**/*.svelte}",important:!0}]},"ms-vscode.vscode-github-issue-notebooks":{onFileOpen:[{pathGlob:"{**/*.github-issues}",important:!0}]},"ms-playwright.playwright":{onFileOpen:[{pathGlob:"{**/*playwright*.config.ts,**/*playwright*.config.js,**/*playwright*.config.mjs}",important:!0}]},"vscjava.vscode-gradle":{onFileOpen:[{pathGlob:"{**/gradlew,**/gradlew.bat,**/build.gradle,**/build.gradle.kts,**/settings.gradle,**/settings.gradle.kts}",important:!0}]},"REditorSupport.r":{onFileOpen:[{pathGlob:"{**/*.r}",important:!0},{languages:["r"],important:!0}]},"firefox-devtools.vscode-firefox-debug":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/.babelrc}"}]},"ms-edgedevtools.vscode-edge-devtools":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.css,**/*.html}"}]},"Ionide.Ionide-fsharp":{onFileOpen:[{pathGlob:"{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}"}]},"dbaeumer.vscode-eslint":{onFileOpen:[{pathGlob:"{**/*.js,**/*.jsx,**/*.es6,**/.eslintrc.*,**/.eslintrc,**/.babelrc,**/jsconfig.json}"}]},"bmewburn.vscode-intelephense-client":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"xdebug.php-debug":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"rust-lang.rust-analyzer":{onFileOpen:[{pathGlob:"{**/*.rs,**/*.rslib}"}]},"DavidAnson.vscode-markdownlint":{onFileOpen:[{pathGlob:"{**/*.md}"}]},"EditorConfig.EditorConfig":{onFileOpen:[{pathGlob:"{**/.editorconfig}"}]},"HookyQR.beautify":{onFileOpen:[{pathGlob:"{**/.jsbeautifyrc}"}]},"donjayamanne.githistory":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"eamodio.gitlens":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"Shopify.ruby-lsp":{onFileOpen:[{pathGlob:"{**/*.rb,**/*.erb,**/*.reek,**/.fasterer.yml,**/ruby-lint.yml,**/.rubocop.yml}"}]},"swiftlang.swift-vscode":{onFileOpen:[{pathGlob:"{**/*.swift,**/*.swiftinterface}",important:!0}]},"DotJoshJohnson.xml":{onFileOpen:[{pathGlob:"{**/*.xml}"}]},"stylelint.vscode-stylelint":{onFileOpen:[{pathGlob:"{**/.stylelintrc,**/stylelint.config.js}"}]},"ms-mssql.mssql":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"mtxr.sqltools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"usqlextpublisher.usql-vscode-ext":{onFileOpen:[{pathGlob:"{**/*.usql}"}]},"ms-vscode.sublime-keybindings":{onFileOpen:[{pathGlob:"{**/.sublime-project,**/.sublime-workspace}"}]},"k--kato.intellij-idea-keybindings":{onFileOpen:[{pathGlob:"{**/.idea}"}]},"christian-kohler.npm-intellisense":{onFileOpen:[{pathGlob:"{**/package.json}"}]},"cake-build.cake-vscode":{onFileOpen:[{pathGlob:"{**/build.cake}"}]},"Angular.ng-template":{onFileOpen:[{pathGlob:"{**/.angular-cli.json,**/angular.json,**/*.ng.html,**/*.ng,**/*.ngml}"}]},"vscjava.vscode-maven":{onFileOpen:[{pathGlob:"**/pom.xml"}]},"ms-azuretools.vscode-azureterraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"HashiCorp.terraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"vsciot-vscode.vscode-arduino":{onFileOpen:[{pathGlob:"**/*.ino"}]},"ms-kubernetes-tools.vscode-kubernetes-tools":{onFileOpen:[{pathGlob:"{**/Chart.yaml}"}]},"Oracle.oracledevtools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"betterthantomorrow.calva":{onFileOpen:[{pathGlob:"{**/*.clj,**/*.cljs}"}]},"vmware.vscode-boot-dev-pack":{onFileOpen:[{pathGlob:"{**/application.properties}"}]},"GitHub.copilot":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rb,**/*.html,**/*.css,**/*.php,**/*.cpp,**/*.vue,**/*.c,**/*.sql,**/*.java,**/*.cs,**/*.rs,**/*.dart,**/*.ps,**/*.ps1,**/*.tex}"}]},"GitHub.copilot-chat":{onSettingsEditorOpen:{descriptionOverride:"GitHub Copilot is an AI-powered coding assistant that helps you write code faster and smarter."}},"GitHub.vscode-github-actions":{onFileOpen:[{pathGlob:"{**/.github/workflows/*.yml}",important:!0}]},"circleci.circleci":{onFileOpen:[{pathGlob:"{**/.circleci/config.yml}"}]},"mechatroner.rainbow-csv":{onFileOpen:[{pathGlob:"**/*.csv",important:!0}]},"tomoki1207.pdf":{onFileOpen:[{pathGlob:"**/*.pdf",important:!0}]},"Redis.redis-for-vscode":{onFileOpen:[{pathGlob:"{**/redis.*,**/redis-server.*,**/redis_*,**/redisinsight.*}",important:!0}]},"SonarSource.sonarlint-vscode":{onFileOpen:[{pathGlob:"{**/sonar-project.properties,**/sonarcloud.properties,**/sonarlint.*}",important:!0}]}},onboardingKeymaps:[{id:"vscode",label:"VS Code",description:"Default keyboard mapping"},{id:"sublime",label:"Sublime Text",extensionId:"ms-vscode.sublime-keybindings",description:"Keyboard mapping from Sublime Text"},{id:"intellij",label:"IntelliJ / JetBrains",extensionId:"k--kato.intellij-idea-keybindings",description:"Keyboard mapping from IntelliJ IDEA"},{id:"vim",label:"Vim",extensionId:"vscodevim.vim",description:"Vim modal editing"},{id:"eclipse",label:"Eclipse",extensionId:"alphabotsec.vscode-eclipse-keybindings",description:"Keyboard mapping from Eclipse"},{id:"notepadpp",label:"Notepad++",extensionId:"ms-vscode.notepadplusplus-keybindings",description:"Keyboard mapping from Notepad++"}],onboardingThemes:[{id:"dark-2026",label:"Dark 2026",themeId:"Dark 2026",type:"dark"},{id:"hc-dark",label:"Dark High Contrast",themeId:"Default High Contrast",type:"hcDark"},{id:"solarized-dark",label:"Solarized Dark",themeId:"Solarized Dark",type:"dark"},{id:"light-2026",label:"Light 2026",themeId:"Light 2026",type:"light"},{id:"hc-light",label:"Light High Contrast",themeId:"Default High Contrast Light",type:"hcLight"},{id:"solarized-light",label:"Solarized Light",themeId:"Solarized Light",type:"light"}],keymapExtensionTips:["vscodevim.vim","ms-vscode.sublime-keybindings","ms-vscode.atom-keybindings","ms-vscode.brackets-keybindings","ms-vscode.vs-keybindings","ms-vscode.notepadplusplus-keybindings","k--kato.intellij-idea-keybindings","lfs.vscode-emacs-friendly","alphabotsec.vscode-eclipse-keybindings","alefragnani.delphi-keybindings"],languageExtensionTips:["ms-python.python","ms-vscode.cpptools-extension-pack","ms-dotnettools.csdevkit","ms-toolsai.jupyter","vscjava.vscode-java-pack","ecmel.vscode-html-css","vue.volar","bmewburn.vscode-intelephense-client","dsznajder.es7-react-js-snippets","golang.go","ms-vscode.powershell","dart-code.dart-code","rust-lang.rust-analyzer","Shopify.ruby-lsp","GitHub.copilot"],configBasedExtensionTips:{git:{configPath:".git/config",configName:"Git",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",contentPattern:"^\\s*url\\s*=\\s*https:\\/\\/github\\.com.*$"},"eamodio.gitlens":{name:"GitLens"}}},devContainer:{configPath:".devcontainer/devcontainer.json",configName:"Dev Container",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0}}},maven:{configPath:"pom.xml",configName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},"vmware.vscode-boot-dev-pack":{name:"Spring Boot Extension Pack",isExtensionPack:!0}}},gradle:{configPath:"build.gradle",configName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},"github-pull-request":{configPath:".vscode/.github-pull-request.rec",configName:"GitHub",configScheme:"vscode-vfs",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",important:!0}}},"pyproject-formatter":{configPath:"pyproject.toml",configName:"Python Formatter",recommendations:{"ms-python.black-formatter":{name:"Black Formatter",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?black"?\\s*[\\].])|("black\\s*["[(<=>!~;@])'},"ms-python.autopep8":{name:"Autopep8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?autopep8"?\\s*[\\].])|("autopep8\\s*["[(<=>!~;@])'}}},"pep8-formatter":{configPath:".pep8",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8"}}},"python-setup-cgf-formatter":{configPath:"setup.cfg",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"tox-ini-formatter":{configPath:"tox.ini",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"pyproject-linter":{configPath:"pyproject.toml",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?pylint"?\\s*[\\].])|("pylint\\s*["[(<=>!~;@])'},"charliermarsh.ruff":{name:"Ruff",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?ruff"?\\s*[\\].])|("ruff\\s*["[(<=>!~;@])'},"ms-python.mypy-type-checker":{name:"Mypy Type Checker",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?mypy"?\\s*[\\].])|("mypy\\s*["[(<=>!~;@])'},"ms-python.flake8":{name:"Flake8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?flake8"?\\s*[\\].])|("flake8\\s*["[(<=>!~;@])'}}},".pylintrc-linter":{configPath:".pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"pylintrc-linter":{configPath:"pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"mypy-ini-linter":{configPath:".mypy.ini",configName:"Python Linter",recommendations:{"ms-python.mypy-type-checker":{name:"Mypy Type Checker"}}},"tox-ini-linter":{configPath:"tox.ini",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}},".flake8-linter":{configPath:".flake8",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8"}}},"python-setup-cgf-linter":{configPath:"setup.cfg",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}}},exeBasedExtensionTips:{az:{friendlyName:"Azure CLI",windowsPath:"%ProgramFiles(x86)%\\Microsoft SDKs\\Azure\\CLI2\\wbin\\az.cmd",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},azd:{friendlyName:"Azure Dev CLI",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azd-user":{friendlyName:"Azure Dev CLI",windowsPath:"%ProgramFiles%\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azure-powershell":{friendlyName:"Azure PowerShell",windowsPath:"%USERPROFILE%\\.Azure",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"}}},heroku:{friendlyName:"Heroku CLI",windowsPath:"%ProgramFiles%\\Heroku\\bin\\heroku.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"pkosta2005.heroku-command":{name:"heroku-cli"}}},mongo:{friendlyName:"Mongo",windowsPath:"%ProgramFiles%\\MongoDB\\Server\\3.6\\bin\\mongod.exe",recommendations:{"ms-azuretools.vscode-cosmosdb":{name:"Azure Databases"}}},serverless:{friendlyName:"Serverless framework",windowsPath:"%APPDATA%\\npm\\serverless.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},func:{friendlyName:"Azure Function SDK",windowsPath:"%APPDATA%\\npm\\func.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},mysql:{friendlyName:"MySQL",windowsPath:"%ProgramFiles%\\MySQL\\MySQL Server 8.0\\bin\\mysqld.exe",recommendations:{"mtxr.sqltools":{name:"SQLTools"}}},postgres:{friendlyName:"PostgreSQL",windowsPath:"%ProgramFiles%\\PostgreSQL\\11\\bin\\psql.exe",recommendations:{"ms-ossdata.vscode-postgresql":{name:"PostgreSQL"},"mtxr.sqltools":{name:"SQLTools"}}},sqlcmd:{friendlyName:"SQL CLI",recommendations:{"ms-mssql.mssql":{name:"SQL Server (mssql)"}}},now:{friendlyName:"Now CLI",windowsPath:"%APPDATA%\\npm\\now.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"ms-azuretools.vscode-containers":{name:"Docker"}}},docker:{friendlyName:"Docker",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\docker.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},kubectl:{friendlyName:"Kubernetes",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\kubectl.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},ng:{friendlyName:"Angular CLI",windowsPath:"%APPDATA%\\npmexit\\ng.cmd",recommendations:{"johnpapa.Angular2":{name:"Angular Snippets"}}},"create-react-app":{friendlyName:"Create React App",windowsPath:"%APPDATA%\\npm\\create-react-app.cmd",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},"react-native":{friendlyName:"React Native",windowsPath:"%APPDATA%\\npm\\react-native-cli",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},p4:{friendlyName:"Perforce",recommendations:{"slevesque.perforce":{name:"Perforce for VS Code"}}},hg:{friendlyName:"Mercurial",recommendations:{"mrcrowl.hg":{name:"Hg"}}},git:{friendlyName:"Git",windowsPath:"%ProgramFiles%\\Git\\git-bash.exe",recommendations:{"eamodio.gitlens":{name:"GitLens"}}},svn:{friendlyName:"Subversion",windowsPath:"%ProgramFiles%\\TortoiseSVN\\bin\\TortoiseProc.exe",recommendations:{"johnstoncode.svn-scm":{name:"SVN"}}},subl:{friendlyName:"Sublime",windowsPath:"%ProgramFiles%\\Sublime Text3\\sublime_text.exe",recommendations:{"ms-vscode.sublime-keybindings":{name:"Sublime Text Keymap and Settings Importer"}}},atom:{friendlyName:"Atom",windowsPath:"%USERPROFILE%\\AppData\\Local\\atom\\bin\\atom.cmd",recommendations:{"ms-vscode.atom-keybindings":{name:"Atom Keymap"}}},brackets:{friendlyName:"Brackets",windowsPath:"%ProgramFiles(x86)%\\Brackets\\Brackets.exe",recommendations:{"ms-vscode.brackets-keybindings":{name:"Brackets Keymap"}}},notepadplusplus:{friendlyName:"Notepad++",windowsPath:"%ProgramFiles%\\Notepad++\\Notepad++.exe",recommendations:{"ms-vscode.notepadplusplus-keybindings":{name:"Notepad++ keymap"}}},vi:{friendlyName:"VIM",windowsPath:"%ProgramFiles(x86)%\\Vim\\vim80\\gvim.exe",recommendations:{"vscodevim.vim":{name:"Vim"}}},mvn:{friendlyName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},gradle:{friendlyName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},ollama:{friendlyName:"Ollama",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Ollama\\ollama.exe",recommendations:{"ms-windows-ai-studio.windows-ai-studio":{name:"AI Toolkit for Visual Studio Code"}}},"Microsoft Edge":{friendlyName:"Microsoft Edge",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Dev":{friendlyName:"Microsoft Edge Dev",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Dev\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Beta":{friendlyName:"Microsoft Edge Beta",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Beta\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Canary":{friendlyName:"Microsoft Edge Canary",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Mozilla Firefox (x86)":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles(x86)%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition (x86)":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles(x86)%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},cordova:{friendlyName:"Cordova",windowsPath:"%APPDATA%\\npm\\cordova",recommendations:{"msjsdiag.cordova-tools":{name:"Cordova Tools"}}},gcloud:{friendlyName:"Google GCloud CLI",windowsPath:"%ProgramFiles(x86)%\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd",recommendations:{"GoogleCloudTools.cloudcode":{name:"Cloud Code"}}},skaffold:{friendlyName:"Skaffold Code to Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},minikube:{friendlyName:"MiniKube Local Kubernetes Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},podman:{friendlyName:"Podman",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},wsl:{friendlyName:"Windows Subsystem for Linux (WSL)",windowsPath:"%WINDIR%\\system32\\lxss\\LxssManager.dll",recommendations:{"ms-vscode-remote.remote-wsl":{name:"WSL"}}}},webExtensionTips:["tyriar.luna-paint","codespaces-contrib.codeswing","ms-vscode.vscode-github-issue-notebooks","esbenp.prettier-vscode","hediet.vscode-drawio"],virtualWorkspaceExtensionTips:{"vscode-vfs":{friendlyName:"Remote Repositories",extensionId:"ms-vscode.remote-repositories",startEntry:{helpLink:"https://aka.ms/vscode-remote/remote-repositories",startConnectLabel:"Remote Repository",startCommand:"remoteHub.continueOn.openRepository",priority:5}}},remoteExtensionTips:{wsl:{friendlyName:"WSL",extensionId:"ms-vscode-remote.remote-wsl",supportedPlatforms:["Windows","Web"],startEntry:{helpLink:"https://aka.ms/vscode-remote/wsl",startConnectLabel:"WSL",startCommand:"remote-wsl.connect",priority:3}},"ssh-remote":{friendlyName:"Remote - SSH",extensionId:"ms-vscode-remote.remote-ssh",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/ssh",startConnectLabel:"SSH ",startCommand:"opensshremotes.openEmptyWindowInCurrentWindow",priority:1}},"dev-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/containers",startConnectLabel:"Dev Container",startCommand:"remote-containers.reopenInContainer",priority:2}},"attached-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers"},codespaces:{friendlyName:"GitHub Codespaces",extensionId:"github.codespaces",startEntry:{helpLink:"https://aka.ms/vscode-remote-codespaces",startConnectLabel:"GitHub Codespace ",startCommand:"github.codespaces.connect",priority:4}},tunnel:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server",startEntry:{helpLink:"https://aka.ms/remote-tunnels-doc",startConnectLabel:"Tunnel",startCommand:"remote-tunnels.connectCurrentWindowToTunnel",priority:0}},amlext:{friendlyName:"Azure Machine Learning",extensionId:"ms-toolsai.vscode-ai-remote"}},commandPaletteSuggestedCommandIds:["workbench.action.files.openFile","workbench.action.files.openFileFolder","workbench.action.files.openFolder","workbench.action.remote.showMenu","editor.action.formatDocument","editor.action.commentLine","workbench.action.tasks.runTask","workbench.action.openSettings2","workbench.action.selectTheme","workbench.action.openWalkthrough","workbench.action.openIssueReporter"],extensionKeywords:{md:["Markdown"],js:["JavaScript"],jsx:["JavaScript"],es6:["JavaScript"],html:["Html"],ts:["TypeScript"],tsx:["TypeScript"],css:["CSS"],scss:["SASS"],txt:["Text"],php:["PHP"],php3:["PHP"],php4:["PHP"],ph3:["PHP"],ph4:["PHP"],xml:["XML"],py:["Python"],pyc:["Python"],pyd:["Python"],pyo:["Python"],pyw:["Python"],pyz:["Python"],java:["Java"],class:["Java"],jar:["Java"],c:["c","objective c","objective-c"],m:["objective c","objective-c"],mm:["objective c","objective-c"],cpp:["cpp","c plus plus","c","c++"],cc:["cpp","c plus plus","c","c++"],cxx:["cpp","c plus plus","c++"],hh:["cpp","c plus plus","c++"],hpp:["cpp","c++"],h:["cpp","c plus plus","c++","c","objective c","objective-c"],sql:["sql"],sh:["bash"],bash:["bash"],zsh:["bash","zshell"],cs:["c#","csharp"],csproj:["c#","csharp"],sln:["c#","csharp"],go:["go"],sty:["latex"],tex:["latex"],ps:["powershell"],ps1:["powershell"],rs:["rust"],rslib:["rust"],hs:["haskell"],lhs:["haskell"],scm:["scheme"],ss:["scheme"],clj:["clojure"],cljs:["clojure"],cljc:["clojure"],edn:["clojure"],erl:["erlang"],hrl:["erlang"],scala:["scala"],sc:["scala"],pl:["perl"],pm:["perl"],t:["perl"],pod:["perl"],groovy:["groovy"],swift:["swift"],rb:["ruby"],rbw:["ruby"],jl:["julia"],f:["fortran"],for:["fortran"],f90:["fortran"],f95:["fortran"],coffee:["CoffeeScript"],litcoffee:["CoffeeScript"],yaml:["yaml"],yml:["yaml"],dart:["dart"],json:["json"]},extensionAllowedBadgeProviders:["api.travis-ci.com","app.fossa.io","badge.buildkite.com","badge.fury.io","badgen.net","badges.frapsoft.com","badges.gitter.im","cdn.travis-ci.com","ci.appveyor.com","circleci.com","cla.opensource.microsoft.com","codacy.com","codeclimate.com","codecov.io","coveralls.io","david-dm.org","deepscan.io","dev.azure.com","docs.rs","flat.badgen.net","gitlab.com","godoc.org","goreportcard.com","img.shields.io","isitmaintained.com","marketplace.visualstudio.com","nodesecurity.io","opencollective.com","snyk.io","travis-ci.com","travis-ci.org","visualstudio.com","vsmarketplacebadge.apphb.com"],extensionAllowedBadgeProvidersRegex:["^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"],crashReporter:{productName:"VSCode",companyName:"Microsoft"},appCenter:{"win32-x64":"appcenter://code?aid=a4e3233c-699c-46ec-b4f4-9c2a77254662","win32-arm64":"appcenter://code?aid=3712d786-7cc8-4f11-8b08-cc12eab6d4f7","linux-x64":"appcenter://code?aid=fba07a4d-84bd-4fc8-a125-9640fc8ce171",darwin:"appcenter://code?aid=860d6632-f65b-490b-85a8-3e72944f7774","darwin-arm64":"appcenter://code?aid=be71415d-3893-4ae5-b453-e537b9668a10","darwin-universal":"appcenter://code?aid=de75e3cc-e22f-4f42-a03f-1409c21d8af8"},enableTelemetry:!0,aiConfig:{ariaKey:"5bbf946d11a54f6783919c455abaddaf-fd62977b-c92d-4714-a45d-649d06980372-7168"},msftInternalDomains:["redmond.corp.microsoft.com","northamerica.corp.microsoft.com","fareast.corp.microsoft.com","ntdev.corp.microsoft.com","wingroup.corp.microsoft.com","southpacific.corp.microsoft.com","wingroup.windeploy.ntdev.microsoft.com","ddnet.microsoft.com","europe.corp.microsoft.com"],documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#vscode",serverDocumentationUrl:"https://aka.ms/vscode-server-doc",releaseNotesUrl:"https://go.microsoft.com/fwlink/?LinkID=533483#vscode",keyboardShortcutsUrlMac:"https://go.microsoft.com/fwlink/?linkid=832143",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",keyboardShortcutsUrlWin:"https://go.microsoft.com/fwlink/?linkid=832145",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",newsletterSignupUrl:"https://www.research.net/r/vsc-newsletter",youTubeUrl:"https://aka.ms/vscode-youtube",requestFeatureUrl:"https://go.microsoft.com/fwlink/?LinkID=533482",reportIssueUrl:"https://github.com/Microsoft/vscode/issues/new",reportMarketplaceIssueUrl:"https://github.com/microsoft/vsmarketplace/issues/new",licenseUrl:"https://go.microsoft.com/fwlink/?LinkID=533485",serverLicenseUrl:"https://aka.ms/vscode-server-license",privacyStatementUrl:"https://go.microsoft.com/fwlink/?LinkId=521839",showTelemetryOptOut:!0,npsSurveyUrl:"https://aka.ms/vscode-nps",checksumFailMoreInfoUrl:"https://go.microsoft.com/fwlink/?LinkId=828886",electronRepository:"Microsoft/vscode-electron-prebuilt",nodejsRepository:"Microsoft/vscode-node",settingsSearchUrl:"https://bingsettingssearch.trafficmanager.net/api/Search",surveys:[{surveyId:"cpp.1",surveyUrl:"https://www.research.net/r/VBVV6C6",languageId:"cpp",editCount:10,userProbability:.15},{surveyId:"java.2",surveyUrl:"https://www.research.net/r/vscodejava",languageId:"java",editCount:10,userProbability:.3},{surveyId:"javascript.1",surveyUrl:"https://www.research.net/r/vscode-js",languageId:"javascript",editCount:10,userProbability:.05},{surveyId:"typescript.1",surveyUrl:"https://www.research.net/r/vscode-ts",languageId:"typescript",editCount:10,userProbability:.05},{surveyId:"csharp.1",surveyUrl:"https://www.research.net/r/8KGJ9V8",languageId:"csharp",editCount:10,userProbability:.1}],extensionsEnabledWithApiProposalVersion:["GitHub.copilot-chat","ms-vscode.vscode-commander","ms-vscode.vscode-copilot-vision","GitHub.vscode-pull-request-github"],extensionEnabledApiProposals:{"mrleemurray.theme-2026":["css"],"ms-azuretools.vscode-containers":["authenticationChallenges"],"ms-azuretools.vscode-azureresourcegroups":["authenticationChallenges"],"ms-azuretools.vscode-azure-github-copilot":["authenticationChallenges"],"ms-azuretools.vscode-dev-azurecloudshell":["contribEditSessions","authenticationChallenges"],"ms-toolsai.vscode-ai":["authenticationChallenges"],"TeamsDevApp.vscode-ai-foundry":["authenticationChallenges"],"ms-vscode.vscode-selfhost-test-provider":["testObserver","testRelatedCode"],"VisualStudioExptTeam.vscodeintellicode-completions":["inlineCompletionsAdditions"],"ms-vsliveshare.vsliveshare":["contribMenuBarHome","contribShareMenu","contribStatusBarItems","diffCommand","documentFiltersExclusive","fileSearchProvider","findTextInFiles","notebookLiveShare","terminalDimensions","terminalDataWriteEvent","textSearchProvider"],"ms-vscode.js-debug":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-toolsai.vscode-ai-remote":["resolvers","authenticationChallenges"],"ms-python.python":["codeActionAI","contribEditorContentMenu","quickPickSortByLabel","portsAttributes","testObserver","quickPickItemTooltip","terminalDataWriteEvent","terminalExecuteCommandEvent","notebookReplDocument","notebookVariableProvider","terminalShellEnv"],"ms-python.vscode-python-envs":["terminalShellEnv","terminalDataWriteEvent","taskExecutionTerminal"],"ms-dotnettools.dotnet-interactive-vscode":["notebookMessaging"],"GitHub.codespaces":["contribEditSessions","contribMenuBarHome","contribRemoteHelp","contribViewsRemote","resolvers","tunnels","terminalDataWriteEvent","treeViewReveal","notebookKernelSource"],"ms-vscode.azure-repos":["extensionRuntime","fileSearchProvider","textSearchProvider"],"ms-vscode.remote-repositories":["canonicalUriProvider","contribEditSessions","contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","contribShareMenu","documentFiltersExclusive","editSessionIdentityProvider","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","shareProvider","scmActionButton","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-vscode-remote.remote-wsl":["resolvers","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode-remote.remote-ssh":["resolvers","tunnels","terminalDataWriteEvent","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode.remote-server":["resolvers","tunnels","contribViewsWelcome"],"ms-vscode.remote-explorer":["contribRemoteHelp","contribViewsRemote","extensionsAny"],"ms-vscode-remote.remote-containers":["contribEditSessions","resolvers","portsAttributes","tunnels","workspaceTrust","terminalDimensions","contribRemoteHelp","contribViewsRemote"],"ms-vscode.js-debug-nightly":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-vscode.lsif-browser":["documentFiltersExclusive"],"ms-vscode.vscode-speech":["speech"],"GitHub.vscode-pull-request-github":["activeComment","chatContextProvider","chatParticipantAdditions","chatParticipantPrivate","chatSessionsProvider","codiconDecoration","codeActionRanges","commentingRangeHint","commentReactor","commentReveal","commentsDraftState","commentThreadApplicability","contribAccessibilityHelpContent","contribCommentEditorActionsMenu","contribCommentPeekContext","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribEditorContentMenu","contribMultiDiffEditorMenus","contribShareMenu","diffCommand","languageModelToolResultAudience","markdownAlertSyntax","quickDiffProvider","remoteCodingAgents","shareProvider","tabInputMultiDiff","tabInputTextMerge","tokenInformation","treeItemMarkdownLabel","treeViewMarkdownMessage"],"GitHub.copilot":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-nightly":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-chat":["agentSessionsWorkspace","interactive","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","chatParticipantAdditions","defaultChatParticipant","embeddings","chatProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","codeActionAI","findTextInFiles","findTextInFiles2","textSearchProvider","textSearchProvider2","activeComment","commentReveal","contribSourceControlInputBoxMenu","contribCommentEditorActionsMenu","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","extensionAffinity","newSymbolNamesProvider","findFiles2","chatReferenceDiagnostic","extensionsAny","authLearnMore","testObserver","aiTextSearchProvider","documentFiltersExclusive","chatParticipantPrivate","contribDebugCreateConfiguration","inlineCompletionsAdditions","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelThinkingPart","languageModelToolSupportsModel","chatStatusItem","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","chatSessionsProvider","chatSessionCustomizationProvider","devDeviceId","contribEditorContentMenu","tokenInformation","toolInvocationApproveCombination","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","chatHooks","chatDebug","environmentPower","terminalTitle","languageModelPricing","chatInputNotification"],"GitHub.remotehub":["contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","documentFiltersExclusive","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-python.vscode-pylance":["terminalShellEnv","portsAttributes","codeActionAI"],"ms-python.debugpy":["contribViewsWelcome","debugVisualization","portsAttributes"],"ms-toolsai.jupyter-renderers":["contribNotebookStaticPreloads"],"ms-toolsai.jupyter":["notebookDeprecated","notebookMessaging","notebookMime","portsAttributes","quickPickSortByLabel","notebookKernelSource","interactiveWindow","notebookControllerAffinityHidden","contribNotebookStaticPreloads","quickPickItemTooltip","notebookExecution","notebookCellExecution","notebookVariableProvider","notebookReplDocument"],"donjayamanne.kusto":["notebookVariableProvider"],"ms-toolsai.tensorboard":["portsAttributes"],"dbaeumer.vscode-eslint":[],"ms-vscode.azure-sphere-tools-ui":["tunnels"],"ms-azuretools.vscode-azureappservice":["terminalDataWriteEvent"],"ms-vscode.anycode":["extensionsAny"],"ms-vscode.cpptools":["terminalDataWriteEvent","chatParticipantAdditions"],"vscjava.vscode-java-pack":[],"ms-dotnettools.csdevkit":["inlineCompletionsAdditions"],"ms-dotnettools.vscodeintellicode-csharp":["inlineCompletionsAdditions"],"ms-dotnettools.vscode-dotnet-modernize":["chatParticipantAdditions","chatPromptFiles"],"microsoft-IsvExpTools.powerplatform-vscode":["fileSearchProvider","textSearchProvider"],"microsoft-IsvExpTools.powerplatform-vscode-preview":["fileSearchProvider","textSearchProvider"],"TeamsDevApp.ms-teams-vscode-extension":["chatParticipantAdditions","languageModelSystem","mcpServerDefinitions"],"ms-toolsai.datawrangler":[],"ms-vscode.vscode-commander":[],"ms-vscode.vscode-websearchforcopilot":[],"ms-vscode.vscode-copilot-vision":["chatReferenceBinaryData","codeActionAI"],"ms-autodev.vscode-autodev":["chatParticipantAdditions"],"vscjava.migrate-java-to-azure":["chatParticipantAdditions","chatParticipantPrivate"],"vscjava.vscode-java-upgrade":["chatParticipantAdditions","chatParticipantPrivate"],"FoundryLocal.foundry-local-chat":["chatProvider"],"Microsoft.foundry-local-chat":["chatProvider"],"ms-wmcp.windows-mcp-server-extension":["mcpToolDefinitions"],"openai.chatgpt":["languageModelProxy","chatSessionsProvider"],"TypeScriptTeam.native-preview":["editorHoverVerbosityLevel","multiDocumentHighlightProvider"],"ms-vscode.vscode-eng-codereview":["chatContextProvider"],"ms-vscode.vscode-chat-customizations-evaluations":["chatSessionCustomizationProvider","contribEditorContentMenu"]},tasConfig:{endpoint:"https://default.exp-tas.com/vscode/ab",telemetryEventName:"query-expfeature",assignmentContextTelemetryPropertyName:"abexp.assignmentcontext"},extensionKind:{"Shan.code-settings-sync":["ui"],"shalldie.background":["ui"],"techer.open-in-browser":["ui"],"CoenraadS.bracket-pair-colorizer-2":["ui"],"CoenraadS.bracket-pair-colorizer":["ui","workspace"],"hiro-sun.vscode-emacs":["ui","workspace"],"hnw.vscode-auto-open-markdown-preview":["ui","workspace"],"wayou.vscode-todo-highlight":["ui","workspace"],"aaron-bond.better-comments":["ui","workspace"],"vscodevim.vim":["ui"],"ollyhayes.colmak-vim":["ui"]},extensionPointExtensionKind:{typescriptServerPlugins:["workspace"]},extensionSyncedKeys:{"ritwickdey.liveserver":["liveServer.setup.version"]},extensionVirtualWorkspacesSupport:{"esbenp.prettier-vscode":{default:!1},"msjsdiag.debugger-for-chrome":{default:!1},"redhat.java":{default:!1},"HookyQR.beautify":{default:!1},"ritwickdey.LiveServer":{default:!1},"VisualStudioExptTeam.vscodeintellicode":{default:!1},"octref.vetur":{default:!1},"formulahendry.code-runner":{default:!1},"xdebug.php-debug":{default:!1},"ms-mssql.mssql":{default:!1},"christian-kohler.path-intellisense":{default:!1},"eg2.tslint":{default:!1},"eg2.vscode-npm-script":{default:!1},"donjayamanne.githistory":{default:!1},"Zignd.html-css-class-completion":{default:!1},"christian-kohler.npm-intellisense":{default:!1},"EditorConfig.EditorConfig":{default:!1},"austin.code-gnu-global":{default:!1},"johnpapa.Angular2":{default:!1},"ms-vscode.vscode-typescript-tslint-plugin":{default:!1},"DotJoshJohnson.xml":{default:!1},"techer.open-in-browser":{default:!1},"tht13.python":{default:!1},"bmewburn.vscode-intelephense-client":{default:!1},"Angular.ng-template":{default:!1},"xdebug.php-pack":{default:!1},"dbaeumer.jshint":{default:!1},"yzhang.markdown-all-in-one":{default:!1},"Dart-Code.flutter":{default:!1},"streetsidesoftware.code-spell-checker":{default:!1},"rebornix.Ruby":{default:!1},"ms-vscode.sublime-keybindings":{default:!1},"mitaki28.vscode-clang":{default:!1},"steoates.autoimport":{default:!1},"donjayamanne.python-extension-pack":{default:!1},"shd101wyy.markdown-preview-enhanced":{default:!1},"mikestead.dotenv":{default:!1},"pranaygp.vscode-css-peek":{default:!1},"ikappas.phpcs":{default:!1},"platformio.platformio-ide":{default:!1},"jchannon.csharpextensions":{default:!1},"gruntfuggly.todo-tree":{default:!1}},linkProtectionTrustedDomains:["https://*.visualstudio.com","https://*.microsoft.com","https://aka.ms","https://*.gallerycdn.vsassets.io","https://*.github.com","https://login.microsoftonline.com","https://*.vscode.dev","https://*.github.dev","https://gh.io","https://portal.azure.com","https://raw.githubusercontent.com","https://private-user-images.githubusercontent.com","https://avatars.githubusercontent.com","https://auth.openai.com"],trustedExtensionAuthAccess:{github:["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],"github-enterprise":["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],microsoft:["github.copilot-chat","ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"microsoft-sovereign-cloud":["ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"__GitHub.copilot-chat":["ms-azuretools.vscode-azure-github-copilot","github.vscode-pull-request-github"]},trustedExtensionProtocolHandlers:["vscode.git","vscode.github-authentication","vscode.microsoft-authentication","github.vscode-pull-request-github"],authClientIdMetadataUrl:"https://vscode.dev/oauth/client-metadata.json",inheritAuthAccountPreference:{"github.copilot":["github.copilot-chat"]},auth:{loginUrl:"https://login.microsoftonline.com/common/oauth2/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/token",redirectUrl:"https://vscode-redirect.azurewebsites.net/",clientId:"aebc6443-996d-45c2-90f0-388ff96faa56"},"configurationSync.store":{url:"https://vscode-sync.trafficmanager.net/",stableUrl:"https://vscode-sync.trafficmanager.net/",insidersUrl:"https://vscode-sync-insiders.trafficmanager.net/",canSwitch:!1,authenticationProviders:{github:{scopes:["user:email"]},microsoft:{scopes:["openid","profile","email","offline_access"]}}},"editSessions.store":{url:"https://vscode-sync.trafficmanager.net/",authenticationProviders:{microsoft:{scopes:["openid","profile","email","offline_access"]},github:{scopes:["user:email"]}}},tunnelServerQualities:{stable:{serverApplicationName:"code-server"},exploration:{serverApplicationName:"code-server-exploration"},insider:{serverApplicationName:"code-server-insiders"}},tunnelApplicationName:"code-tunnel",tunnelApplicationConfig:{editorWebUrl:"https://vscode.dev",extension:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server"},authenticationProviders:{github:{scopes:["user:email","read:org"]},microsoft:{scopes:["46da2f7e-b5ef-422a-88d4-2a7f9de6a0b2/.default","profile","openid"]}}},win32TunnelServiceMutex:"vscode-tunnelservice",win32TunnelMutex:"vscode-tunnel",aiGeneratedWorkspaceTrust:{title:"This workspace was generated by GitHub Copilot",checkboxText:"Trust the contents of all files in this workspace",trustOption:"Yes, I trust the contents",dontTrustOption:"No, I don't trust the contents",startupTrustRequestLearnMore:"If you don't trust the contents of the files generated by GitHub Copilot, we recommend continuing in restricted mode. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more. "},defaultChatAgent:{providerExtensionId:"vscode.github-authentication",extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",manageSettingsUrl:"https://aka.ms/github-copilot-settings",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",manageOverageUrl:"https://aka.ms/github-copilot-manage-overage",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE.com"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},chatParticipantRegistry:"https://main.vscode-cdn.net/extensions/chat.json",remoteDefaultExtensionsIfInstalledLocally:["GitHub.copilot","GitHub.copilot-chat","GitHub.vscode-pull-request-github"],extensionConfigurationPolicy:{"github.copilot.nextEditSuggestions.enabled":{name:"CopilotNextEditSuggestions",minimumVersion:"1.99",category:"InteractiveSession",description:"Whether to enable next edit suggestions (NES). NES can propose a next edit based on your recent changes."},"github.copilot.chat.reviewSelection.enabled":{name:"CopilotReviewSelection",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables code review on current selection."},"github.copilot.chat.reviewAgent.enabled":{name:"CopilotReviewAgent",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables the code review agent."},"github.copilot.chat.claudeAgent.enabled":{name:"Claude3PIntegration",minimumVersion:"1.113",category:"InteractiveSession",description:"Enable Claude Agent sessions in VS Code. Start and resume agentic coding sessions powered by Anthropic Claude Agent SDK directly in the editor. Uses your existing Copilot subscription."}},win32ContextMenu:{x64:{clsid:"1C6DF0C0-192A-4451-BE36-6A59A86A692E"},arm64:{clsid:"F5EA5883-1DA8-4A05-864A-D5DE2D2B2854"}},chatSessionRecommendations:[{extensionId:"openai.chatgpt",extensionName:"Codex - OpenAI's coding agent",displayName:"Codex Agent",name:"codex",description:"Codex is OpenAI's coding agent that helps you write, review, and ship code faster.",postInstallCommand:"chatgpt.newCodexPanel"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Background Agent",name:"cli",description:"Delegate tasks to a background agent.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilotcli"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Cloud Agent",name:"cloud",description:"Delegate tasks to the GitHub Copilot Cloud Agent. The agent works asynchronously in the cloud to implement changes, iterates via chat, and can create or update pull requests as needed.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilot-cloud-agent"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],version:"1.119.0",commit:"8b640eef5a6c6089c029249d48efa5c99adf7d51",date:"2026-05-05T11:23:50-07:00"},Object.keys(it).length===0&&Object.assign(it,{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 Pg=it;function Pd(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 uI(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?Pd():{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 Pd(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),Pd()}function pI(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=uI()),i.MonacoPerformanceMarks}var Ad=pI(globalThis),Ag=Ad.mark,CL=Ad.clearMarks,RL=Ad.getMarks;async function za(i,t,e,n,r,o){let s;try{await fI(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 fI(i,t,e,n,r,o){kd(o);let s=await i.open(t,{create:!1});try{kd(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)&&kd(o)&&mI(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 en(a)}finally{await i.close(s)}}function kd(i){if(i.isCancellationRequested)throw qo();return!0}function mI(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw te(m(2249,null),"EntryTooLarge");return!0}var On=class extends k{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 Cr)}registerProvider(e,n){if(this.provider.has(e))throw new Error(`A filesystem provider for the scheme '${e}' is already registered.`);Ag(`code/registerFilesystem/${e}`);let r=new B;return this.provider.set(e,n),this._onDidChangeFileSystemProviderRegistrations.fire({added:!0,scheme:e,provider:n}),r.add(n.onDidChangeFile(o=>{let s=new Us(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}))),P(()=>{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 Hn.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 Li.map(this.provider,([e,n])=>({scheme:e,capabilities:n.capabilities}))}async withProvider(e){if(!Zu(e))throw new ke(m(2238,null,this.resourceForError(e)),8);await this.activateProvider(e.scheme);let n=this.provider.get(e.scheme);if(!n){let r=new Ct;throw r.message=m(2240,null,e.toString()),r}return n}async withReadProvider(e){let n=await this.withProvider(e);if(Zt(n)||lt(n)||Ns(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(Zt(n)||lt(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 Dt(r)==="EntryNotFound"?new ke(m(2235,null,this.resourceForError(e)),1):en(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=kt.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:yc({mtime:r.mtime,size:r.size}),children:void 0};if(c.isDirectory&&a(c,o)){try{let p=await e.readdir(n),u=await Hn.settled(p.map(async([f,g])=>{try{let b=l.joinPath(n,f),y=s?await e.stat(b):{type:g};return await this.toFileStat(e,b,y,p.length,s,a)}catch(b){return this.logService.trace(b),null}}));c.children=Ho(u)}catch(p){this.logService.trace(p),c.children=[]}return c}return c}async resolveAll(e){return Hn.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(rf(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 ke(m(2231,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 Yt(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(vc(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)),!Zt(o)||lt(o)&&c instanceof w||lt(o)&&vc(o)&&a?.atomic?await this.doWriteUnbuffered(o,e,a,c):await this.doWriteBuffered(o,e,a,c instanceof w?pp(c):c),this._onDidRunOperation.fire(new Yt(e,4))}catch(l){throw new ke(m(2230,null,this.resourceForError(e),en(l).toString()),bc(l),a)}return this.resolve(e,{resolveMetadata:!0})}async peekBufferForWriting(e,n){let r;if(lt(e)&&!(n instanceof w))if(Hi(n)){let o=await ap(n,3);o.ended?r=w.concat(o.buffer):r=o}else r=sp(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(2248,null,this.resourceForError(n)));if(o?.append&&!tf(e))throw new ke(m(2227,null,this.resourceForError(n)),6);if(!!o?.atomic){if(!(e.capabilities&32768))throw new Error(m(2246,null,this.resourceForError(n)));if(!(e.capabilities&2))throw new Error(m(2247,null,this.resourceForError(n)));if(s)throw new Error(m(2245,null,this.resourceForError(n)))}let l;try{l=await e.stat(n)}catch{return Object.create(null)}if((l.type&2)!==0)throw new ke(m(2233,null,this.resourceForError(n)),0,o);this.throwIfFileIsReadonly(n,l);let c;if(typeof o?.mtime=="number"&&typeof o.etag=="string"&&o.etag!==Bs&&typeof l.mtime=="number"&&typeof l.size=="number"&&o.mtime<l.mtime&&o.etag!==yc({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 ke(m(2234,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 Ki(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 Pe(o),a=r;Ws(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!==Bs&&await l,a?.atomic&&Ws(e)||!(Zt(e)||Ns(e))||lt(e)&&a?.preferUnbuffered?c=this.readFileUnbuffered(e,n,a):Ns(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 bs(c),this.restoreReadError(p,n,a)}}restoreReadError(e,n,r){let o=m(2228,null,this.resourceForError(n),en(e).toString());return e instanceof jr?new jr(o,e.stat,r):e instanceof Hr?new Hr(o,e.fileOperationResult,e.size,e.options):new ke(o,bc(e),r)}readFileStreamed(e,n,r,o=Object.create(null)){let s=e.readFileStream(n,o,r);return jl(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=mp();return za(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=Kt(s=>w.concat(s));return(async()=>{try{let s;r?.atomic&&Ws(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 ke(m(2232,null,this.resourceForError(e)),0,n);if(typeof n?.etag=="string"&&n.etag!==Bs&&n.etag===r.etag)throw new jr(m(2236,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 Hr(m(2237,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 Yt(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 Yt(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&&hc(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(Zt(e)&&Zt(r))return this.doPipeBuffered(e,n,r,o);if(Zt(e)&&lt(r))return this.doPipeBufferedToUnbuffered(e,n,r,o);if(lt(e)&&Zt(r))return this.doPipeUnbufferedToBuffered(e,n,r,o);if(lt(e)&&lt(r))return this.doPipeUnbuffered(e,n,r,o)}async doCopyFolder(e,n,r,o){await r.mkdir(o),Array.isArray(n.children)&&await Hn.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(2241,null,this.resourceForError(n),this.resourceForError(o)));if(!l&&p.isEqualOrParent(o,n))throw new Error(m(2242,null,this.resourceForError(n),this.resourceForError(o)))}let c=await this.exists(o);if(c&&!l){if(!a)throw new ke(m(2243,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(2244,null,this.resourceForError(n),this.resourceForError(o)))}}return{exists:c,isSameResourceWithDifferentPathCase:l}}getExtUri(e){let n=this.isPathCaseSensitive(e);return{providerExtUri:n?X:Nl,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 Yt(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(2239,null,this.resourceForError(n)));break}catch(s){if(Dt(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(Dt(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(2226,null,this.resourceForError(e)));let s=n?.atomic;if(s&&!(r.capabilities&65536))throw new Error(m(2222,null,this.resourceForError(e)));if(o&&s)throw new Error(m(2225,null,this.resourceForError(e)));let a;try{a=await r.stat(e)}catch{}if(a)this.throwIfFileIsReadonly(e,a);else throw new ke(m(2224,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(2223,null,this.resourceForError(e)))}return r}async del(e,n){let r=await this.doValidateDelete(e,n),o=n;if(of(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 Yt(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&&nf(r)?r.cloneFile(e,n):(await this.mkdirp(o,this.getExtUri(o).providerExtUri.dirname(n)),r===o&&hc(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:On.WATCHER_CORRELATION_IDS++})}watch(e,n={recursive:!1,excludes:[]}){let r=new B,o=!1,s=()=>{o=!0};r.add(P(()=>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=yn([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,P(()=>{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{Hi(o)||vs(o)?await this.doWriteStreamBufferedQueued(e,s,o):await this.doWriteReadableBufferedQueued(e,s,o)}catch(a){throw en(a)}finally{await e.close(s)}},this.getExtUri(e).providerExtUri)}async doWriteStreamBufferedQueued(e,n,r){let o=0,s;if(vs(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)=>{ys(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:Hi(o)?s=await Ki(o):vs(o)?s=await fp(o):s=up(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 en(l)}finally{await Hn.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 en(a)}finally{await r.close(s)}}async doPipeBufferedToUnbuffered(e,n,r,o){let s=await Ki(this.readFileBuffered(e,n,st.None));await this.doWriteUnbuffered(r,o,void 0,s)}throwIfFileSystemIsReadonly(e,n){if(e.capabilities&2048)throw new ke(m(2229,null,this.resourceForError(n)),6);return e}throwIfFileIsReadonly(e,n){if((n.permissions??0)&1)throw new ke(m(2229,null,this.resourceForError(e)),6)}resourceForError(e){return e.scheme===re.file?e.fsPath:e.toString(!0)}};On=C([D(0,Y)],On);import{constants as Fd,promises as ur}from"fs";function Ga(i){return typeof i.correlationId=="number"}function Dg(i){return i.recursive===!0}var Ha=class i extends k{constructor(e,n,r,o){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=r;this.options=o;this.watcherDisposables=this._register(new an);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new B;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()}},ja=class extends Ha{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},Ka=class extends Ha{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function Od(i){return i.map(t=>({type:t.type,resource:h.revive(t.resource),cId:t.cId}))}function Og(i){let t=new Dd;for(let e of i)t.processEvent(e);return t.coalesce()}function gI(i,t){return typeof t=="string"&&!t.startsWith(ri)&&!Ir(t)?{base:i,pattern:t}:t}function Ld(i,t,e){let n=[];for(let r of t)n.push(Mc(gI(i,r),{ignoreCase:e}));return n}var Dd=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return ye?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=>sf(n.resource.fsPath,r,!ye))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function Lg(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 Fg(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 Ja=class extends k{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 zn(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new zn(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=sl(this.universalWatchRequests,r);return this.refreshUniversalWatchers(),P(()=>{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(Dg(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=>Ie(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire(Od(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=sl(this.nonRecursiveWatchRequests,r);return this.refreshNonRecursiveWatchers(),P(()=>{o(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>Ie(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire(Od(e)),e=>this.onWatcherLogMessage(e),this.logService.getLevel()===1)),this._register(this.logService.onDidChangeLogLevel(()=>{this.nonRecursiveWatcher?.setVerboseLogging(this.logService.getLevel()===1)}))),this.nonRecursiveWatcher.watch(this.nonRecursiveWatchRequests)}onWatcherLogMessage(e){e.type==="error"&&this._onDidWatchError.fire(e.message),this.logWatcherMessage(e)}logWatcherMessage(e){this.logService[e.type](e.message)}toFilePath(e){return dt(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return Vu(n)}};var Qa=class extends Ka{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new ws(rt.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)`))),Ur.toService(hp(e.getChannel("watcher")))}};import{watchFile as hI,unwatchFile as vI}from"fs";var Ya=class extends k{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 ot);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new zn(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new Ne;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 Ga(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:yn(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new Ne;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=>Ie(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 B;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{hI(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(P(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{vI(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: ${Fg(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as bI,promises as yI}from"fs";var Xa=class i extends k{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 Er({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new fs(e=>this.handleFileChanges(e),i.FILE_CHANGES_HANDLER_DELAY));this.cts=new Pe;this.realPath=new Je(async()=>{let e=this.request.path;try{e=await fe.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=!ye;this.excludes=Ld(this.request.path,this.request.excludes,l),this.includes=this.request.includes?Ld(this.request.path,this.request.includes,l):void 0,this.filter=Ga(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 yI.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 B;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 lu(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(Ue&&zt(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 Pe(this.cts.token);n.add(P(()=>o.dispose(!0)));let s=new B;n.add(s);try{let a=h.file(this.request.path),l=Se(r),c=bI(r);s.add(P(()=>{c.removeAllListeners(),c.close()})),this.trace(`Started watching: '${r}'`);let p=new Set;if(e)try{for(let f of await fe.readdir(r))p.add(f)}catch(f){this.error(f)}if(o.token.isCancellationRequested)return;let u=new Map;s.add(P(()=>{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(),Ue&&(b=Zi(b))),!(!b||f!=="change"&&f!=="rename"))if(e)if(f==="rename"){u.get(b)?.dispose();let y=setTimeout(async()=>{if(u.delete(b),xr(b,l,!ye)&&!await fe.exists(r)){this.onWatchedPathDeleted(a);return}if(o.token.isCancellationRequested)return;let I=await this.existsChildStrictCase(M(r,b));if(o.token.isCancellationRequested)return;let v;I?p.has(b)?v=0:(v=1,p.add(b)):(p.delete(b),v=2),this.onFileChange({resource:ne(a,b),type:v,cId:this.request.correlationId})},i.FILE_DELETE_HANDLER_DELAY);u.set(b,P(()=>clearTimeout(y)))}else{let y;p.has(b)?y=0:(y=1,p.add(b)),this.onFileChange({resource:ne(a,b),type:y,cId:this.request.correlationId})}else if(f==="rename"||!xr(b,l,!ye)){let y=setTimeout(async()=>{let I=await fe.exists(r);o.token.isCancellationRequested||(I?(this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0),s.add(await this.doWatch(!1))):this.onWatchedPathDeleted(a))},i.FILE_DELETE_HANDLER_DELAY);s.clear(),s.add(P(()=>clearTimeout(y)))}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=Og(e),r=[];for(let s of n){if(Lg(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(ye)return fe.exists(e);try{let n=Se(e);return(await fe.readdir(ve(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 Za=class extends Ya{constructor(e){super();this.recursiveWatcher=e;this.onDidError=Z.None;this._watchers=new Map;this.worker=this._register(new an)}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&&Nc(s.request.excludes,o.excludes)&&Nc(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 Er({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 ye?e:e.toLowerCase()}startWatching(e){let n=new Xa(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 el=class extends ja{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new Za(void 0))}};var tl=class i extends Ja{constructor(){super(...arguments);this.onDidChangeCapabilities=Z.None;this.resourceLocks=new Ze(e=>ut.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,ye&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:r}=await Qe.stat(this.toFilePath(e)),o;return(n.mode&128)===0&&(o=2),(n.mode&Fd.S_IXUSR||n.mode&Fd.S_IXGRP||n.mode&Fd.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 fe.realpath(n)}async readdir(e){try{let n=await fe.readdir(this.toFilePath(e),{withFileTypes:!0}),r=[];return await Promise.all(n.map(async o=>{try{let s;o.isSymbolicLink()?s=(await this.stat(ne(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 ps;return this.resourceLocks.set(e,o),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),P(()=>{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 ur.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=Kt(s=>w.concat(s.map(a=>w.wrap(a))).buffer);return za(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,ne(gn(e),`${Ae(e)}${r.atomic.postfix}`),n,r):this.doWriteFile(e,n,r)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:r}=await Qe.stat(n);if(r)return!1}catch{}return!0}async doWriteFileAtomic(e,n,r,o){let s=new B;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 fe.exists(a)){if(!r.overwrite)throw te(m(2254,null),"EntryExists")}else if(!r.create)throw te(m(2257,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;Xt(n)&&!r&&(s=await this.createResourceLock(e));let a;try{if(Xt(n)&&n.unlock)try{let{stat:l}=await Qe.stat(o);l.mode&128||await ur.chmod(o,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(V&&Xt(n)&&!n.append)try{a=await fe.open(o,"r+"),await fe.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await fe.close(a)}catch(c){this.logService.trace(c)}a=void 0}}typeof a!="number"&&(a=await fe.open(o,Xt(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),Xt(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),Xt(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 fe.fdatasync(e)}catch(r){i.configureFlushOnWrite(!1),this.logService.error(r)}return await fe.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 fe.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 ip(()=>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 fe.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 ur.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=M(ve(r),`${Se(r)}${n.atomic.postfix}`)),await fe.rm(r,1,o)}else try{await ur.unlink(r)}catch(o){if(o.code==="EPERM"||o.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await Qe.stat(r);s=a.isDirectory()&&!l}catch{}if(s)await ur.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 fe.rename(o,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2258,null,Se(o),Se(ve(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 fe.copy(o,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2252,null,Se(o),Se(ve(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=xr(s,a,!0)),l){if(r==="copy")throw te(m(2253,null),"EntryExists");if(r==="move")return}let p=await this.statIgnoreError(e);if(!p)throw te(m(2256,null),"EntryNotFound");let u=await this.statIgnoreError(n);if(u){if(!o)throw te(m(2255,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(xr(o,s,!a))return;let l=new B;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),r&&await ur.mkdir(ve(s),{recursive:!0}),await ur.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 Qa(o=>e(o),o=>n(o),r)}createNonRecursiveWatcher(e,n,r){return new el(o=>e(o),o=>n(o),r)}toFileSystemProviderError(e){if(e instanceof zr)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 te(n,r)}async toFileSystemProviderWriteError(e,n){let r=this.toFileSystemProviderError(n);if(e&&r.code==="NoPermissions")try{let{stat:o}=await Qe.stat(this.toFilePath(e));o.mode&128||(r=te(n,"EntryWriteLocked"))}catch(o){this.logService.trace(o)}return r}};import*as Wg from"fs";var Ug=[{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 wt(i,t){return new Promise((e,n)=>{i.exec(t,r=>r?n(r):e())})}function ct(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 Ci(i,t,e){return new Promise((n,r)=>{i.get(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function Wo(i,t,e){return new Promise((n,r)=>{i.all(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function Mg(i){return new Promise((t,e)=>{i.close(n=>n?e(n):t())})}function SI(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 II(i,t){await wt(i,"PRAGMA foreign_keys = ON");let n=(await Ci(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 wt(i,"BEGIN TRANSACTION");try{for(let o of r)await wt(i,o.sql),await wt(i,`PRAGMA user_version = ${o.version}`);await wt(i,"COMMIT")}catch(o){throw await wt(i,"ROLLBACK"),o}}}var nl=class i{constructor(t,e=Ug){this._path=t;this._migrations=e;this._fileEditSequencer=new bt;this._metadataSequencer=new bt;this._pendingWrites=new Set}static async open(t,e=Ug){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 Wg.promises.mkdir(ve(this._path),{recursive:!0});let t=await SI(this._path);try{await II(t,this._migrations)}catch(e){throw await Mg(t),this._dbPromise=void 0,e}if(this._closed)throw await Mg(t),new Error("SessionDatabase has been disposed");return t})()),this._dbPromise)}async getAllTables(){let t=await this._ensureDb();return(await Wo(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 ct(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t])})}deleteTurn(t){return this._track(async()=>{let e=await this._ensureDb();await ct(e,"DELETE FROM turns WHERE id = ?",[t])})}setTurnEventId(t,e){return this._track(async()=>{let n=await this._ensureDb();await ct(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await ct(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 Ci(e,"SELECT event_id FROM turns WHERE id = ?",[t]))?.event_id??void 0}async getNextTurnEventId(t){let e=await this._ensureDb();return(await Ci(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 Ci(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 ct(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 ct(e,"DELETE FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteAllTurns(){return this._track(async()=>{let t=await this._ensureDb();await wt(t,"DELETE FROM turns")})}storeFileEdit(t){return this._track(()=>this._fileEditSequencer.queue(t.filePath,async()=>{let e=await this._ensureDb();await ct(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t.turnId]),await ct(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 Wo(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 Wo(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 Wo(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 Ci(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 Ci(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 Wo(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 ct(n,"INSERT OR REPLACE INTO session_metadata (key, value) VALUES (?, ?)",[t,e])}))}remapTurnIds(t){return this._track(async()=>{let e=await this._ensureDb();await wt(e,"PRAGMA defer_foreign_keys = ON"),await wt(e,"BEGIN TRANSACTION");try{let n=[...t.keys()];if(n.length>0){let r=n.map(()=>"?").join(",");await ct(e,`DELETE FROM turns WHERE id NOT IN (${r})`,n)}for(let[r,o]of t)await ct(e,"UPDATE turns SET id = ? WHERE id = ?",[o,r]),await ct(e,"UPDATE file_edits SET turn_id = ? WHERE turn_id = ?",[o,r]);await wt(e,"COMMIT")}catch(n){throw await wt(e,"ROLLBACK"),n}})}async whenIdle(){for(;this._pendingWrites.size>0;)await Promise.allSettled([...this._pendingWrites])}async vacuumInto(t){let e=await this._ensureDb();await ct(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 Ud=class extends Qo{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 nl(n);return this.liveDatabases.add(r),r}destroyReferencedObject(e,n){this.liveDatabases.delete(n),n.dispose()}},Ri=class{constructor(t,e,n,r){this._fileService=e;this._logService=n;this._basePath=h.joinPath(t,"agentSessionData"),this._databases=new Ud(r??(o=>h.joinPath(this._basePath,o,Po).fsPath),this._logService)}getSessionDataDir(t){return this.getSessionDataDirById(ie.id(t))}getSessionDataDirById(t){let e=t.replace(/[^a-zA-Z0-9_.-]/g,"-");return h.joinPath(this._basePath,e)}_sanitizedSessionKey(t){return ie.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,Po);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}}};Ri=C([D(1,Ye),D(2,Y)],Ri);var rl=class extends k{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),P(()=>this._authorityToConnection.delete(e))}watch(){return k.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=gn(e),s=Ae(e),l=(await this._listDirectory(e.authority,o)).find(c=>c.name===s);if(!l)throw te(`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"?Gi(o.data).buffer:w.fromString(o.data).buffer}catch(r){throw te(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 te(s instanceof Error?s.message:String(s),"NoPermissions")}}async mkdir(){throw te("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 te(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 te(s instanceof Error?s.message:String(s),"NoPermissions")}}_getConnection(e){let n=this._authorityToConnection.get(e);if(!n)throw te(`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 te(o instanceof Error?o.message:String(o),"Unavailable")}}};var Md="vscode-agent-client";function Bg(i,t){let e=i.authority||"-";return h.from({scheme:Md,authority:t,path:`/${i.scheme}/${e}${i.path}`})}function $g(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 il=class extends rl{_decodeUri(t){return $g(t)}};var Vg="agentHostClientResource";function qg(i){return{resourceList:t=>i.call("resourceList",{uri:t.toString()}),resourceRead:t=>i.call("resourceRead",{uri:t.toString()}),resourceWrite:t=>i.call("resourceWrite",{...t,uri:t.uri.toString()}),resourceDelete:t=>i.call("resourceDelete",{...t,uri:t.uri.toString()}),resourceMove:t=>i.call("resourceMove",{...t,source:t.source.toString(),destination:t.destination.toString()})}}var _I=20,Ei=class{constructor(t,e,n,r=_I){this._fileService=e;this._logService=n;this._sequencer=new bt;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=Bg(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)}}};Ei=C([D(1,Ye),D(2,Y)],Ei);xI();function xI(){let i;Cs(process)?i=new to:i=new xs("agentHost");let t=new B,e={_serviceBrand:void 0,...Pg},n=new Wa(Rd(process.argv,wg),e),r=new Va(mf(n),n.logsHome);i.registerChannel("agentHostLogger",new qa(r,()=>Eg));let o=r.createLogger("agenthost",{name:m(1862,null)}),s=new Ba(o);s.info("Agent Host process started successfully");let a=t.add(new On(s));t.add(a.registerProvider(re.file,t.add(new tl(s)))),t.add(Hm(a));let l=new Ri(h.file(n.userDataPath),a,s),c=ne(n.appSettingsHome,"globalStorage","agent-host-config.json"),p;try{let v=new bn;v.set(ei,n),v.set(Y,s),v.set(Ye,a),v.set(mi,l),v.set(si,e);let S=new Kr(v),T=S.createInstance(ti);v.set(wn,T);let $=S.createInstance(Si,void 0);v.set(Ii,$);let ge=t.add(S.createInstance(_i));v.set(Ua,ge),p=new ha(s,a,l,e,T,c);let se=new Ei(h.file(n.userDataPath),a,s);v.set(xa,se);let R=t.add(new Cn(s));v.set(ta,R),v.set(ci,p.terminalManager),v.set(_t,p.configurationService),p.registerProvider(S.createInstance(oe)),process.env[kp]==="1"&&p.registerProvider(S.createInstance(xi))}catch(v){throw s.error("Failed to create AgentService",v),v}let u=Ur.fromService(p,t);i.registerChannel("agentHost",u);let f=t.add(new il);if(t.add(a.registerProvider(Md,f)),i instanceof to){let v=new Map;t.add(i.onDidAddConnection(S=>{let T=S.ctx;if(typeof T!="string"||!T)return;let $=i.getChannel(Vg,se=>se.ctx===T),ge=qg($);v.set(S,f.registerAuthority(T,ge))})),t.add(i.onDidRemoveConnection(S=>{let T=v.get(S);T&&(T.dispose(),v.delete(S))}))}let g=t.add(new _),b,y={onDidChangeConnectionCount:g.event,async startWebSocketServer(){if(b)return b;let v=V?`\\\\.\\pipe\\vscode-agent-host-${J().replace(/-/g,"")}`:M($o.tmpdir(),`vscode-agent-host-${J().replace(/-/g,"")}.sock`),S=t.add(await No.create({socketPath:v},s)),T=t.add(new dr(p,p.stateManager,S,{defaultDirectory:h.file($o.homedir()).toString()},f,s));return t.add(T.onDidChangeConnectionCount($=>g.fire($))),s.info(`[AgentHost] Dynamic WebSocket server listening on ${v}`),b={socketPath:v},b},async getInspectInfo(v){let S=Bo.url();if(!S&&v){try{Bo.open(0,"127.0.0.1",!1)}catch(T){s.error("[AgentHost] Failed to open inspector",T);return}S=Bo.url()}if(S)try{let T=new URL(S);if(T.protocol!=="ws:"){s.warn(`[AgentHost] Unexpected inspector URL: ${S}`);return}let $=Number(T.port),ge=T.pathname.replace(/^\/+/,"");if(!Number.isInteger($)||!ge){s.warn(`[AgentHost] Unexpected inspector URL: ${S}`);return}let se=T.hostname==="0.0.0.0"?"127.0.0.1":T.hostname==="::"?"::1":T.hostname,R=se.includes(":")?`[${se}]`:se;return{host:se,port:$,devtoolsUrl:`devtools://devtools/bundled/js_app.html?v8only=true&ws=${R}:${T.port}/${ge}`}}catch{s.warn(`[AgentHost] Unexpected inspector URL: ${S}`);return}}},I=Ur.fromService(y,t);i.registerChannel("agentHostConnectionTracker",I),wI(p,f,s,t,v=>g.fire(v)).catch(v=>{s.error("Failed to start WebSocket server",v)}),process.once("exit",()=>{p.dispose(),s.dispose(),t.dispose()})}async function wI(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 No.create(s?{socketPath:s,connectionTokenValidate:a?f=>f===a:void 0}:{port:parseInt(o,10),host:l,connectionTokenValidate:a?f=>f===a:void 0},e)),p=n.add(new dr(i,i.stateManager,c,{defaultDirectory:h.file($o.homedir()).toString()},t,e));n.add(p.onDidChangeConnectionCount(r));let u=s??`${l}:${o}`;e.info(`[AgentHost] WebSocket server listening on ${u}`),console.log(`Agent host server listening on ${u}`)}
//# sourceMappingURL=https://main.vscode-cdn.net/sourcemaps/8b640eef5a6c6089c029249d48efa5c99adf7d51/core/vs/platform/agentHost/node/agentHostMain.js.map
