/*!--------------------------------------------------------
 * 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 T1=Object.defineProperty;var x1=Object.getOwnPropertyDescriptor;var w=(i,t,e,n)=>{for(var r=n>1?void 0:n?x1(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&&T1(t,e,r),r},C=(i,t)=>(e,n)=>t(e,n,i);function w1(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 Kg=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=w1(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};var rp=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?un.isErrorNoTelemetry(t)?new un(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)}},ip=new rp;function cr(i){ip.onUnexpectedError(i)}function Le(i){Kr(i)||ip.onUnexpectedError(i)}function Jg(i){Kr(i)||ip.onUnexpectedExternalError(i)}var tl="Canceled";function Kr(i){return i instanceof le?!0:i instanceof Error&&i.name===tl&&i.message===tl}var le=class extends Error{constructor(){super(tl),this.name=this.message}},Gg=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 nl(){let i=new Error(tl);return i.name=i.message,i}function op(i){return i?new Error(`Illegal argument: ${i}`):new Error("Illegal argument")}function rl(i){return i?new Error(`Illegal state: ${i}`):new Error("Illegal state")}function il(i){return i?i.message?i.message:i.stack?i.stack.split(`
`)[0]:String(i):"Error"}var un=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"}},Te=class i extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function Zt(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 Ei(i){return i.filter(t=>!!t)}function Mn(i,t=e=>e){let e=new Set;return i.filter(n=>{let r=t(n);return e.has(r)?!1:(e.add(r),!0)})}function sp(i,t){return i.push(t),()=>R1(i,t)}function R1(i,t){let e=i.indexOf(t);if(e>-1)return i.splice(e,1),t}function ap(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 Xg(i){return i[Math.floor(Math.random()*i.length)]}var Zg;(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})(Zg||={});function eh(i,t){return(e,n)=>t(i(e),i(n))}var th=(i,t)=>i-t;var Yg=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||Zg.isGreaterThan(t(r,e)))&&(n=!1,e=r),!0)),e}};function oh(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 rh,ih,nh=class{constructor(t,e){this.toKey=e;this._map=new Map;this[rh]="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))}[(ih=Symbol.iterator,rh=Symbol.toStringTag,ih)](){return this.values()}};function Pi(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 cp=class{constructor(t,e){this.uri=t;this.value=e}};function E1(i){return Array.isArray(i)}var ah,Re=class i{constructor(t,e){this[ah]="ResourceMap";if(t instanceof i)this.map=new Map(t.map),this.toKey=e??i.defaultToKey;else if(E1(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 cp(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]}*[(ah=Symbol.toStringTag,Symbol.iterator)](){for(let[,t]of this.map)yield[t.uri,t.value]}},lh,sh=class{constructor(t,e){this[lh]="ResourceSet";!t||typeof t=="function"?this._map=new Re(t):(this._map=new Re(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()}[(lh=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var ch,Ts=class{constructor(){this[ch]="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}[(ch=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)}},dp=class extends Ts{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))}},pn=class extends dp{constructor(t,e=1){super(t,e)}trim(t){this.trimOld(t)}set(t,e){return super.set(t,e),this.checkTrim(),this}};var ol=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 sl(i,t){if(!i)throw new Error(t?`Assertion failed (${t})`:"Assertion Failed")}function al(i,t="unexpected state"){if(!i)throw typeof t=="string"?new Te(`Assertion Failed: ${t}`):t}function xs(i){if(!i()){debugger;i(),Le(new Te("Assertion Failed"))}}function Ee(i){return typeof i=="string"}function Ae(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function dh(i){let t=Object.getPrototypeOf(Uint8Array);return typeof i=="object"&&i instanceof t}function ws(i){return typeof i=="number"&&!isNaN(i)}function uh(i){return!!i&&typeof i[Symbol.iterator]=="function"}function ki(i){return typeof i>"u"}function dr(i){return!en(i)}function en(i){return ki(i)||i===null}function ph(i,t){if(!i)throw new Error(t?`Unexpected type, expected '${t}'`:"Unexpected type")}var k1=Object.prototype.hasOwnProperty;function ll(i){if(!Ae(i))return!1;for(let t in i)if(k1.call(i,t))return!1;return!0}function Rs(i){return typeof i=="function"}function De(i,t){for(let e in t)if(!(e in i))return!1;return!0}var Di;(J=>{function i(E){return!!E&&typeof E=="object"&&typeof E[Symbol.iterator]=="function"}J.is=i;let t=Object.freeze([]);function e(){return t}J.empty=e;function*n(E){yield E}J.single=n;function r(E){return i(E)?E:n(E)}J.wrap=r;function o(E){return E??t}J.from=o;function*s(E){for(let L=E.length-1;L>=0;L--)yield E[L]}J.reverse=s;function a(E){return!E||E[Symbol.iterator]().next().done===!0}J.isEmpty=a;function l(E){return E[Symbol.iterator]().next().value}J.first=l;function c(E,L){let O=0;for(let K of E)if(L(K,O++))return!0;return!1}J.some=c;function u(E,L){let O=0;for(let K of E)if(!L(K,O++))return!1;return!0}J.every=u;function d(E,L){for(let O of E)if(L(O))return O}J.find=d;function*f(E,L){for(let O of E)L(O)&&(yield O)}J.filter=f;function*g(E,L){let O=0;for(let K of E)yield L(K,O++)}J.map=g;function*h(E,L){let O=0;for(let K of E)yield*L(K,O++)}J.flatMap=h;function*v(...E){for(let L of E)uh(L)?yield*L:yield L}J.concat=v;function S(E,L,O){let K=O;for(let te of E)K=L(K,te);return K}J.reduce=S;function _(E){let L=0;for(let O of E)L++;return L}J.length=_;function*b(E,L,O=E.length){for(L<-E.length&&(L=0),L<0&&(L+=E.length),O<0?O+=E.length:O>E.length&&(O=E.length);L<O;L++)yield E[L]}J.slice=b;function I(E,L=Number.POSITIVE_INFINITY){let O=[];if(L===0)return[O,E];let K=E[Symbol.iterator]();for(let te=0;te<L;te++){let ge=K.next();if(ge.done)return[O,J.empty()];O.push(ge.value)}return[O,{[Symbol.iterator](){return K}}]}J.consume=I;async function R(E){let L=[];for await(let O of E)L.push(O);return L}J.asyncToArray=R;async function P(E){let L=[];for await(let O of E)L=L.concat(O);return L}J.asyncToArrayFlat=P})(Di||={});var A1=!1,Oi=null;var fh=class i{constructor(){this.livingDisposables=new Map}static{this.idx=0}getDisposableData(t){let e=this.livingDisposables.get(t);return e||(e={parent:null,source:null,isSingleton:!1,value:t,idx:i.idx++},this.livingDisposables.set(t,e)),e}trackDisposable(t){let e=this.getDisposableData(t);e.source||(e.source=new Error().stack)}setParent(t,e){let n=this.getDisposableData(t);n.parent=e}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,e){let n=e.get(t);if(n)return n;let r=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,r),r}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,t).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(t=10,e){let n;if(e)n=e;else{let l=new Map,c=[...this.livingDisposables.values()].filter(d=>d.source!==null&&!this.getRootParent(d,l).isSingleton);if(c.length===0)return;let u=new Set(c.map(d=>d.value));if(n=c.filter(d=>!(d.parent&&u.has(d.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(l){function c(d,f){for(;d.length>0&&f.some(g=>typeof g=="string"?g===d[0]:d[0].match(g));)d.shift()}let u=l.source.split(`
`).map(d=>d.trim().replace("at ","")).filter(d=>d!=="");return c(u,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),u.reverse()}let o=new ol;for(let l of n){let c=r(l);for(let u=0;u<=c.length;u++)o.add(c.slice(0,u).join(`
`),l)}n.sort(eh(l=>l.idx,th));let s="",a=0;for(let l of n.slice(0,t)){a++;let c=r(l),u=[];for(let d=0;d<c.length;d++){let f=c[d];f=`(shared with ${o.get(c.slice(0,d+1).join(`
`)).size}/${n.length} leaks) at ${f}`;let h=o.get(c.slice(0,d).join(`
`)),v=oh([...h].map(S=>r(S)[d]),S=>S);delete v[c[d]];for(let[S,_]of Object.entries(v))_&&u.unshift(`    - stacktraces of ${_.length} other leaks continue with ${S}`);u.unshift(f)}s+=`


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

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


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

`),{leaks:n,details:s}}};function D1(i){Oi=i}if(A1){let i="__is_disposable_tracked__";D1(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!==T.None)try{t[i]=!0}catch{}}markAsDisposed(t){if(t&&t!==T.None)try{t[i]=!0}catch{}}markAsSingleton(t){}})}function pr(i){return Oi?.trackDisposable(i),i}function fr(i){Oi?.markAsDisposed(i)}function Gr(i,t){Oi?.setParent(i,t)}function O1(i,t){if(Oi)for(let e of i)Oi.setParent(e,t)}function Li(i){return typeof i=="object"&&i!==null&&typeof i.dispose=="function"&&i.dispose.length===0}function ut(i){if(Di.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 mh(...i){let t=A(()=>ut(i));return O1(i,t),t}var up=class{constructor(t){this._isDisposed=!1,this._fn=t,pr(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,fr(this),this._fn()}}};function A(i){return new up(i)}var z=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;pr(this)}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(fr(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{ut(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t||t===T.None)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return Gr(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)&&Gr(t,null)}assertNotDisposed(){this._isDisposed&&Le(new Te("Object disposed"))}},T=class{constructor(){this._store=new z;pr(this),Gr(this._store,this)}static{this.None=Object.freeze({dispose(){}})}dispose(){fr(this),this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}},ur=class{constructor(){this._isDisposed=!1;pr(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&Gr(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,fr(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&Gr(t,null),t}};var cl=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=Pi(()=>{--n.counter===0&&(this.destroyReferencedObject(t,n.object),this.references.delete(t))});return n.counter++,{object:r,dispose:o}}};var dt=class{constructor(t=new Map){this._isDisposed=!1;this._store=t,pr(this)}dispose(){fr(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{ut(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),Gr(e,this)}deleteAndDispose(t){this._store.get(t)?.dispose(),this._store.delete(t)}deleteAndLeak(t){let e=this._store.get(t);return e&&Gr(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 gh(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var dl=class extends dt{constructor(){super(new Re)}};var xe=class i{static{this.Undefined=new i(void 0)}constructor(t){this.element=t,this.next=i.Undefined,this.prev=i.Undefined}},Es=class{constructor(){this._first=xe.Undefined;this._last=xe.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===xe.Undefined}clear(){let t=this._first;for(;t!==xe.Undefined;){let e=t.next;t.prev=xe.Undefined,t.next=xe.Undefined,t=e}this._first=xe.Undefined,this._last=xe.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let n=new xe(t);if(this._first===xe.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!==xe.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==xe.Undefined){let t=this._last.element;return this._remove(this._last),t}}peek(){if(this._last!==xe.Undefined)return this._last.element}_remove(t){if(t.prev!==xe.Undefined&&t.next!==xe.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===xe.Undefined&&t.next===xe.Undefined?(this._first=xe.Undefined,this._last=xe.Undefined):t.next===xe.Undefined?(this._last=this._last.prev,this._last.next=xe.Undefined):t.prev===xe.Undefined&&(this._first=this._first.next,this._first.prev=xe.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==xe.Undefined;)yield t.element,t=t.next}};function L1(){return globalThis._VSCODE_NLS_MESSAGES}function pp(){return globalThis._VSCODE_NLS_LANGUAGE}var M1=pp()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&document.location.hash.indexOf("pseudo=true")>=0;function hh(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}),M1&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function m(i,t,...e){return hh(typeof i=="number"?N1(i,t):t,e)}function N1(i,t){let e=L1()?.[i];if(typeof e!="string"){if(typeof t=="string")return t;throw new Error(`!!! NLS MISSING: ${i} !!!`)}return e}var gr="en",ks=!1,As=!1,Ps=!1,vh=!1,bh=!1,fp=!1,U1=!1,Sh=!1,F1=!1,W1=!1,pl,fl=gr,yh=gr,$1,Nn,Un=globalThis,Ct;typeof Un.vscode<"u"&&typeof Un.vscode.process<"u"?Ct=Un.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(Ct=process);var Ih=typeof Ct?.versions?.electron=="string",V1=Ih&&Ct?.type==="renderer";if(typeof Ct=="object"){ks=Ct.platform==="win32",As=Ct.platform==="darwin",Ps=Ct.platform==="linux",vh=Ps&&!!Ct.env.SNAP&&!!Ct.env.SNAP_REVISION,U1=Ih,F1=!!Ct.env.CI||!!Ct.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!Ct.env.GITHUB_WORKSPACE,pl=gr,fl=gr;let i=Ct.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);pl=t.userLocale,yh=t.osLocale,fl=t.resolvedLanguage||gr,$1=t.languagePack?.translationsConfigFile}catch{}bh=!0}else typeof navigator=="object"&&!V1?(Nn=navigator.userAgent,ks=Nn.indexOf("Windows")>=0,As=Nn.indexOf("Macintosh")>=0,Sh=(Nn.indexOf("Macintosh")>=0||Nn.indexOf("iPad")>=0||Nn.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Ps=Nn.indexOf("Linux")>=0,W1=Nn?.indexOf("Mobi")>=0,fp=!0,fl=pp()||gr,pl=navigator.language.toLowerCase(),yh=pl):console.error("Unable to resolve platform.");function _h(i){switch(i){case 0:return"Web";case 1:return"Mac";case 2:return"Linux";case 3:return"Windows"}}var ml=0;As?ml=1:ks?ml=3:Ps&&(ml=2);var H=ks,qe=As,he=Ps,Ch=vh,Th=bh;var Tt=fp,B1=fp&&typeof Un.importScripts=="function",xh=B1?Un.origin:void 0;var mp=ml,fn=Nn,mr=fl,H1;(n=>{function i(){return mr}n.value=i;function t(){return mr.length===2?mr==="en":mr.length>=3?mr[0]==="e"&&mr[1]==="n"&&mr[2]==="-":!1}n.isDefaultVariant=t;function e(){return mr==="en"}n.isDefault=e})(H1||={});var q1=typeof Un.postMessage=="function"&&!Un.importScripts,wh=(()=>{if(q1){let i=[];Un.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}),Un.postMessage({vscodeScheduleAsyncWork:n},"*")}}return i=>setTimeout(i)})();var pt=As||Sh?2:ks?1:3;var gp=!!(fn&&fn.indexOf("Chrome")>=0),Rh=!!(fn&&fn.indexOf("Firefox")>=0),Eh=!!(!gp&&fn&&fn.indexOf("Safari")>=0),Ph=!!(fn&&fn.indexOf("Edg/")>=0),zA=!!(fn&&fn.indexOf("Android")>=0);var Qr,hp=globalThis.vscode;if(typeof hp<"u"&&typeof hp.process<"u"){let i=hp.process;Qr={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"?Qr={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:Qr={get platform(){return H?"win32":qe?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};var Yr=Qr.cwd,Ue=Qr.env,Mi=Qr.platform,kh=Qr.arch;var z1=globalThis.performance.now.bind(globalThis.performance),gl=class i{static create(t){return new i(t)}constructor(t){this._now=t===!1?Date.now:z1,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 Ah=!1,j1=!1,K1=100,Dh=6e4;function Oh(){return!!Ue.VSCODE_DEV}var X;(zr=>{zr.None=()=>T.None;function t(F){if(j1){let{onDidAddListener:D}=F,N=Ui.create(),U=0;F.onDidAddListener=()=>{++U===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),N.print()),D?.()}}}function e(F,D,N){return g(F,()=>{},0,void 0,D??!0,void 0,N)}zr.defer=e;function n(F){return(D,N=null,U)=>{let W=!1,G;return G=F(ne=>{if(!W)return G?G.dispose():W=!0,D.call(N,ne)},null,U),W&&G.dispose(),G}}zr.once=n;function r(F,D){return zr.once(zr.filter(F,D))}zr.onceIf=r;function o(F,D,N){return d((U,W=null,G)=>F(ne=>U.call(W,D(ne)),null,G),N)}zr.map=o;function s(F,D,N){return d((U,W=null,G)=>F(ne=>{D(ne),U.call(W,ne)},null,G),N)}zr.forEach=s;function a(F,D,N){return d((U,W=null,G)=>F(ne=>D(ne)&&U.call(W,ne),null,G),N)}zr.filter=a;function l(F){return F}zr.signal=l;function c(...F){return(D,N=null,U)=>{let W=mh(...F.map(G=>G(ne=>D.call(N,ne))));return f(W,U)}}zr.any=c;function u(F,D,N,U){let W=N;return o(F,G=>(W=D(W,G),W),U)}zr.reduce=u;function d(F,D){let N,U={onWillAddFirstListener(){N=F(W.fire,W)},onDidRemoveLastListener(){N?.dispose()}};D||t(U);let W=new x(U);return D?.add(W),W.event}function f(F,D){return D instanceof Array?D.push(F):D&&D.add(F),F}function g(F,D,N=100,U=!1,W=!1,G,ne){let Xe,ve,at,Ze=0,ct,Ln={leakWarningThreshold:G,onWillAddFirstListener(){Xe=F(zg=>{Ze++,ve=D(ve,zg),U&&!at&&(jr.fire(ve),ve=void 0),ct=()=>{let jg=ve;ve=void 0,at=void 0,(!U||Ze>1)&&jr.fire(jg),Ze=0},typeof N=="number"?(at&&clearTimeout(at),at=setTimeout(ct,N)):at===void 0&&(at=null,queueMicrotask(ct))})},onWillRemoveListener(){W&&Ze>0&&ct?.()},onDidRemoveLastListener(){ct=void 0,Xe.dispose()}};ne||t(Ln);let jr=new x(Ln);return ne?.add(jr),jr.event}zr.debounce=g;function h(F,D=0,N,U){return zr.debounce(F,(W,G)=>W?(W.push(G),W):[G],D,void 0,N??!0,void 0,U)}zr.accumulate=h;function v(F,D,N=100,U=!0,W=!0,G,ne){let Xe,ve,at,Ze=0,ct={leakWarningThreshold:G,onWillAddFirstListener(){Xe=F(jr=>{Ze++,ve=D(ve,jr),at===void 0&&(U&&(Ln.fire(ve),ve=void 0,Ze=0),typeof N=="number"?at=setTimeout(()=>{W&&Ze>0&&Ln.fire(ve),ve=void 0,at=void 0,Ze=0},N):(at=0,queueMicrotask(()=>{W&&Ze>0&&Ln.fire(ve),ve=void 0,at=void 0,Ze=0})))})},onDidRemoveLastListener(){Xe.dispose()}};ne||t(ct);let Ln=new x(ct);return ne?.add(Ln),Ln.event}zr.throttle=v;function S(F,D=(U,W)=>U===W,N){let U=!0,W;return a(F,G=>{let ne=U||!D(G,W);return U=!1,W=G,ne},N)}zr.latch=S;function _(F,D,N){return[zr.filter(F,D,N),zr.filter(F,U=>!D(U),N)]}zr.split=_;function b(F,D,N=!1,U=[],W){let G=U.slice(),ne;Oh()&&(ne={stack:Ui.create(),timerId:setTimeout(()=>{G&&G.length>0&&ne&&!ne.warned&&(ne.warned=!0,console.warn(`[Event.buffer][${D}] potential LEAK detected: ${G.length} events buffered for ${Dh/1e3}s without being consumed. Buffered here:`),ne.stack.print())},Dh),warned:!1},W&&W.add(A(()=>clearTimeout(ne.timerId))));let Xe=()=>{ne&&clearTimeout(ne.timerId)},ve=F(ct=>{G?(G.push(ct),Oh()&&ne&&!ne.warned&&G.length>=K1&&(ne.warned=!0,console.warn(`[Event.buffer][${D}] potential LEAK detected: ${G.length} events buffered without being consumed. Buffered here:`),ne.stack.print())):Ze.fire(ct)});W&&W.add(ve);let at=()=>{G?.forEach(ct=>Ze.fire(ct)),G=null,Xe()},Ze=new x({onWillAddFirstListener(){ve||(ve=F(ct=>Ze.fire(ct)),W&&W.add(ve))},onDidAddFirstListener(){G&&(N?setTimeout(at):at())},onDidRemoveLastListener(){ve&&ve.dispose(),ve=null,Xe()}});return W&&W.add(Ze),Ze.event}zr.buffer=b;function I(F,D){return(U,W,G)=>{let ne=D(new P);return F(function(Xe){let ve=ne.evaluate(Xe);ve!==R&&U.call(W,ve)},void 0,G)}}zr.chain=I;let R=Symbol("HaltChainable");class P{constructor(){this.steps=[]}map(D){return this.steps.push(D),this}forEach(D){return this.steps.push(N=>(D(N),N)),this}filter(D){return this.steps.push(N=>D(N)?N:R),this}reduce(D,N){let U=N;return this.steps.push(W=>(U=D(U,W),U)),this}latch(D=(N,U)=>N===U){let N=!0,U;return this.steps.push(W=>{let G=N||!D(W,U);return N=!1,U=W,G?W:R}),this}evaluate(D){for(let N of this.steps)if(D=N(D),D===R)break;return D}}function J(F,D,N=U=>U){let U=(...Xe)=>ne.fire(N(...Xe)),W=()=>F.on(D,U),G=()=>F.removeListener(D,U),ne=new x({onWillAddFirstListener:W,onDidRemoveLastListener:G});return ne.event}zr.fromNodeEventEmitter=J;function E(F,D,N=U=>U){let U=(...Xe)=>ne.fire(N(...Xe)),W=()=>F.addEventListener(D,U),G=()=>F.removeEventListener(D,U),ne=new x({onWillAddFirstListener:W,onDidRemoveLastListener:G});return ne.event}zr.fromDOMEventEmitter=E;function L(F,D){let N,U,W=new Promise(G=>{U=n(F)(G),_p(U,D),N=()=>{Mh(U,D)}});return W.cancel=N,D&&W.finally(()=>Mh(U,D)),W}zr.toPromise=L;function O(F,D){return F(N=>D.fire(N))}zr.forward=O;function K(F,D,N){return D(N),F(U=>D(U))}zr.runAndSubscribe=K;class te{constructor(D,N){this._observable=D;this._counter=0;this._hasChanged=!1;let U={onWillAddFirstListener:()=>{D.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{D.removeObserver(this)}};N||t(U),this.emitter=new x(U),N&&N.add(this.emitter)}beginUpdate(D){this._counter++}handlePossibleChange(D){}handleChange(D,N){this._hasChanged=!0}endUpdate(D){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ge(F,D){return new te(F,D).emitter.event}zr.fromObservable=ge;function Cs(F){return(D,N,U)=>{let W=0,G=!1,ne={beginUpdate(){W++},endUpdate(){W--,W===0&&(F.reportChanges(),G&&(G=!1,D.call(N)))},handlePossibleChange(){},handleChange(){G=!0}};F.addObserver(ne),F.reportChanges();let Xe={dispose(){F.removeObserver(ne)}};return _p(Xe,U),Xe}}zr.fromObservableLight=Cs})(X||={});var vp=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 gl,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}}},Lh=-1;var bp=class i{constructor(t,e,n=(i._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t;this.threshold=e;this.name=n;this._warnCountdown=0}static{this._idPool=1}dispose(){this._stacks?.clear()}check(t,e){let n=this.threshold;if(n<=0||e<n)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[o,s]=this.getMostFrequentStack(),a=/^[0-9a-f]+$/i.test(this.name)?void 0:this.name,l=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${s}):`;console.warn(l),console.warn(o);let c=s/e>.3?"dominated":"popular",u=new hl(c,l,o,e,a);this._errorHandler(u)}return()=>{let o=this._stacks.get(t.value)||0;this._stacks.set(t.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[n,r]of this._stacks)(!t||e<r)&&(t=[n,r],e=r);return t}},Ui=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(`
`))}},hl=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"}},Sp=class extends hl{constructor(t,e,n,r,o){super(t,e,n,r,o),this.name="ListenerRefusalError"}},G1=0,Ni=class{constructor(t){this.value=t;this.id=G1++}},J1=2,Q1=(i,t)=>{if(i instanceof Ni)t(i);else for(let e=0;e<i.length;e++){let n=i[e];n&&t(n)}},x=class{constructor(t){this._size=0;this._options=t,this._leakageMon=Lh>0||this._options?.leakWarningThreshold?new bp(t?.onListenerError??Le,this._options?.leakWarningThreshold??Lh,this._options?.leakWarningName):void 0,this._perfMon=this._options?._profName?new vp(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(Ah){let t=this._listeners;queueMicrotask(()=>{Q1(t,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(t,e,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let l=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(l);let c=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],u=c[1]/this._size>.3?"dominated":"popular",d=new Sp(u,`${l}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||Le)(d),T.None}if(this._disposed)return T.None;e&&(t=t.bind(e));let r=new Ni(t),o,s;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=Ui.create(),o=this._leakageMon.check(r.stack,this._size+1)),Ah&&(r.stack=s??Ui.create()),this._listeners?this._listeners instanceof Ni?(this._deliveryQueue??=new Ip,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=A(()=>{o?.(),this._removeListener(r)});return _p(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*J1<=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||Le;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 Ni)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 Ip=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 yl=class{constructor(){this.hasListeners=!1;this.events=[];this.emitter=new x({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(t){let e={event:t,listener:null};return this.events.push(e),this.hasListeners&&this.hook(e),A(Pi(()=>{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 Ds=class{constructor(){this.listening=!1;this.inputEvent=X.None;this.inputEventListener=T.None;this.emitter=new x({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}});this.event=this.emitter.event}set input(t){this.inputEvent=t,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=t(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}};function _p(i,t){t instanceof z?t.add(i):Array.isArray(t)&&t.push(i)}function Mh(i,t){if(t instanceof z)t.delete(i);else if(Array.isArray(t)){let e=t.indexOf(i);e!==-1&&t.splice(e,1)}i.dispose()}var Nh=Object.freeze(function(i,t){let e=setTimeout(i.bind(t),0);return{dispose(){clearTimeout(e)}}}),$e;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof Fi?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:X.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Nh})})($e||={});var Fi=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?Nh:(this._emitter||(this._emitter=new x),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},Ke=class{constructor(t){this._token=void 0;this._parentListener=void 0;this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new Fi),this._token}cancel(){this._token?this._token instanceof Fi&&this._token.cancel():this._token=$e.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof Fi&&this._token.dispose():this._token=$e.None}};var Y1=65,X1=97,Z1=90,eC=122,Xr=46,et=47,xt=92,Fn=58,tC=63,vl=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 nC(i,t){if(i===null||typeof i!="object")throw new vl(t,"Object",i)}function Fe(i,t){if(typeof i!="string")throw new vl(t,"string",i)}var wt=Mi==="win32";function re(i){return i===et||i===xt}function Cp(i){return i===et}function Wn(i){return i>=Y1&&i<=Z1||i>=X1&&i<=eC}function bl(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=et}if(n(l)){if(!(s===c-1||a===1))if(a===2){if(r.length<2||o!==2||r.charCodeAt(r.length-1)!==Xr||r.charCodeAt(r.length-2)!==Xr){if(r.length>2){let u=r.lastIndexOf(e);u===-1?(r="",o=0):(r=r.slice(0,u),o=r.length-1-r.lastIndexOf(e)),s=c,a=0;continue}else if(r.length!==0){r="",o=0,s=c,a=0;continue}}t&&(r+=r.length>0?`${e}..`:"..",o=2)}else r.length>0?r+=`${e}${i.slice(s+1,c)}`:r=i.slice(s+1,c),o=c-s-1;s=c,a=0}else l===Xr&&a!==-1?++a:a=-1}return r}function rC(i){return i?`${i[0]==="."?"":"."}${i}`:""}function Uh(i,t){nC(t,"pathObject");let e=t.dir||t.root,n=t.base||`${t.name||""}${rC(t.ext)}`;return e?e===t.root?`${e}${n}`:`${e}${i}${n}`:n}var se={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],Fe(o,`paths[${r}]`),o.length===0)continue}else t.length===0?o=Yr():(o=Ue[`=${t}`]||Yr(),(o===void 0||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===xt)&&(o=`${t}\\`));let s=o.length,a=0,l="",c=!1,u=o.charCodeAt(0);if(s===1)re(u)&&(a=1,c=!0);else if(re(u))if(c=!0,re(o.charCodeAt(1))){let d=2,f=d;for(;d<s&&!re(o.charCodeAt(d));)d++;if(d<s&&d!==f){let g=o.slice(f,d);for(f=d;d<s&&re(o.charCodeAt(d));)d++;if(d<s&&d!==f){for(f=d;d<s&&!re(o.charCodeAt(d));)d++;(d===s||d!==f)&&(l=`\\\\${g}\\${o.slice(f,d)}`,a=d)}}}else a=1;else Wn(u)&&o.charCodeAt(1)===Fn&&(l=o.slice(0,2),a=2,s>2&&re(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=bl(e,!n,"\\",re),n?`${t}\\${e}`:`${t}${e}`||"."},normalize(i){Fe(i,"path");let t=i.length;if(t===0)return".";let e=0,n,r=!1,o=i.charCodeAt(0);if(t===1)return Cp(o)?"\\":i;if(re(o))if(r=!0,re(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!re(i.charCodeAt(a));)a++;if(a<t&&a!==l){let c=i.slice(l,a);for(l=a;a<t&&re(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!re(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 Wn(o)&&i.charCodeAt(1)===Fn&&(n=i.slice(0,2),e=2,t>2&&re(i.charCodeAt(2))&&(r=!0,e=3));let s=e<t?bl(i.slice(e),!r,"\\",re):"";if(s.length===0&&!r&&(s="."),s.length>0&&re(i.charCodeAt(t-1))&&(s+="\\"),!r&&n===void 0&&i.includes(":")){if(s.length>=2&&Wn(s.charCodeAt(0))&&s.charCodeAt(1)===Fn)return`.\\${s}`;let a=i.indexOf(":");do if(a===t-1||re(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){Fe(i,"path");let t=i.length;if(t===0)return!1;let e=i.charCodeAt(0);return re(e)||t>2&&Wn(e)&&i.charCodeAt(1)===Fn&&re(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];Fe(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"&&re(e.charCodeAt(0))){++r;let o=e.length;o>1&&re(e.charCodeAt(1))&&(++r,o>2&&(re(e.charCodeAt(2))?++r:n=!1))}if(n){for(;r<t.length&&re(t.charCodeAt(r));)r++;r>=2&&(t=`\\${t.slice(r)}`)}return se.normalize(t)},relative(i,t){if(Fe(i,"from"),Fe(t,"to"),i===t)return"";let e=se.resolve(i),n=se.resolve(t);if(e===n||(i=e.toLowerCase(),t=n.toLowerCase(),i===t))return"";if(e.length!==i.length||n.length!==t.length){let h=e.split("\\"),v=n.split("\\");h[h.length-1]===""&&h.pop(),v[v.length-1]===""&&v.pop();let S=h.length,_=v.length,b=S<_?S:_,I;for(I=0;I<b&&h[I].toLowerCase()===v[I].toLowerCase();I++);return I===0?n:I===b?_>b?v.slice(I).join("\\"):S>b?"..\\".repeat(S-1-I)+"..":"":"..\\".repeat(S-I)+v.slice(I).join("\\")}let r=0;for(;r<i.length&&i.charCodeAt(r)===xt;)r++;let o=i.length;for(;o-1>r&&i.charCodeAt(o-1)===xt;)o--;let s=o-r,a=0;for(;a<t.length&&t.charCodeAt(a)===xt;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===xt;)l--;let c=l-a,u=s<c?s:c,d=-1,f=0;for(;f<u;f++){let h=i.charCodeAt(r+f);if(h!==t.charCodeAt(a+f))break;h===xt&&(d=f)}if(f!==u){if(d===-1)return n}else{if(c>u){if(t.charCodeAt(a+f)===xt)return n.slice(a+f+1);if(f===2)return n.slice(a+f)}s>u&&(i.charCodeAt(r+f)===xt?d=f:f===2&&(d=3)),d===-1&&(d=0)}let g="";for(f=r+d+1;f<=o;++f)(f===o||i.charCodeAt(f)===xt)&&(g+=g.length===0?"..":"\\..");return a+=d,g.length>0?`${g}${n.slice(a,l)}`:(n.charCodeAt(a)===xt&&++a,n.slice(a,l))},toNamespacedPath(i){if(typeof i!="string"||i.length===0)return i;let t=se.resolve(i);if(t.length<=2)return i;if(t.charCodeAt(0)===xt){if(t.charCodeAt(1)===xt){let e=t.charCodeAt(2);if(e!==tC&&e!==Xr)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Wn(t.charCodeAt(0))&&t.charCodeAt(1)===Fn&&t.charCodeAt(2)===xt)return`\\\\?\\${t}`;return t},dirname(i){Fe(i,"path");let t=i.length;if(t===0)return".";let e=-1,n=0,r=i.charCodeAt(0);if(t===1)return re(r)?i:".";if(re(r)){if(e=n=1,re(i.charCodeAt(1))){let a=2,l=a;for(;a<t&&!re(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&re(i.charCodeAt(a));)a++;if(a<t&&a!==l){for(l=a;a<t&&!re(i.charCodeAt(a));)a++;if(a===t)return i;a!==l&&(e=n=a+1)}}}}else Wn(r)&&i.charCodeAt(1)===Fn&&(e=t>2&&re(i.charCodeAt(2))?3:2,n=e);let o=-1,s=!0;for(let a=t-1;a>=n;--a)if(re(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&&Fe(t,"suffix"),Fe(i,"path");let e=0,n=-1,r=!0,o;if(i.length>=2&&Wn(i.charCodeAt(0))&&i.charCodeAt(1)===Fn&&(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(re(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(re(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){Fe(i,"path");let t=0,e=-1,n=0,r=-1,o=!0,s=0;i.length>=2&&i.charCodeAt(1)===Fn&&Wn(i.charCodeAt(0))&&(t=n=2);for(let a=i.length-1;a>=t;--a){let l=i.charCodeAt(a);if(re(l)){if(!o){n=a+1;break}continue}r===-1&&(o=!1,r=a+1),l===Xr?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:Uh.bind(null,"\\"),parse(i){Fe(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 re(r)?(t.root=t.dir=i,t):(t.base=t.name=i,t);if(re(r)){if(n=1,re(i.charCodeAt(1))){let d=2,f=d;for(;d<e&&!re(i.charCodeAt(d));)d++;if(d<e&&d!==f){for(f=d;d<e&&re(i.charCodeAt(d));)d++;if(d<e&&d!==f){for(f=d;d<e&&!re(i.charCodeAt(d));)d++;d===e?n=d:d!==f&&(n=d+1)}}}}else if(Wn(r)&&i.charCodeAt(1)===Fn){if(e<=2)return t.root=t.dir=i,t;if(n=2,re(i.charCodeAt(2))){if(e===3)return t.root=t.dir=i,t;n=3}}n>0&&(t.root=i.slice(0,n));let o=-1,s=n,a=-1,l=!0,c=i.length-1,u=0;for(;c>=n;--c){if(r=i.charCodeAt(c),re(r)){if(!l){s=c+1;break}continue}a===-1&&(l=!1,a=c+1),r===Xr?o===-1?o=c:u!==1&&(u=1):o!==-1&&(u=-1)}return a!==-1&&(o===-1||u===0||u===1&&o===a-1&&o===s+1?t.base=t.name=i.slice(s,a):(t.name=i.slice(s,o),t.base=i.slice(s,a),t.ext=i.slice(o,a))),s>0&&s!==n?t.dir=i.slice(0,s-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},iC=(()=>{if(wt){let i=/\\/g;return()=>{let t=Yr().replace(i,"/");return t.slice(t.indexOf("/"))}}return()=>Yr()})(),Z={resolve(...i){let t="",e=!1;for(let n=i.length-1;n>=0&&!e;n--){let r=i[n];Fe(r,`paths[${n}]`),r.length!==0&&(t=`${r}/${t}`,e=r.charCodeAt(0)===et)}if(!e){let n=iC();t=`${n}/${t}`,e=n.charCodeAt(0)===et}return t=bl(t,!e,"/",Cp),e?`/${t}`:t.length>0?t:"."},normalize(i){if(Fe(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===et,e=i.charCodeAt(i.length-1)===et;return i=bl(i,!t,"/",Cp),i.length===0?t?"/":e?"./":".":(e&&(i+="/"),t?`/${i}`:i)},isAbsolute(i){return Fe(i,"path"),i.length>0&&i.charCodeAt(0)===et},join(...i){if(i.length===0)return".";let t=[];for(let e=0;e<i.length;++e){let n=i[e];Fe(n,"path"),n.length>0&&t.push(n)}return t.length===0?".":Z.normalize(t.join("/"))},relative(i,t){if(Fe(i,"from"),Fe(t,"to"),i===t||(i=Z.resolve(i),t=Z.resolve(t),i===t))return"";let e=1,n=i.length,r=n-e,o=1,s=t.length-o,a=r<s?r:s,l=-1,c=0;for(;c<a;c++){let d=i.charCodeAt(e+c);if(d!==t.charCodeAt(o+c))break;d===et&&(l=c)}if(c===a)if(s>a){if(t.charCodeAt(o+c)===et)return t.slice(o+c+1);if(c===0)return t.slice(o+c)}else r>a&&(i.charCodeAt(e+c)===et?l=c:c===0&&(l=0));let u="";for(c=e+l+1;c<=n;++c)(c===n||i.charCodeAt(c)===et)&&(u+=u.length===0?"..":"/..");return`${u}${t.slice(o+l)}`},toNamespacedPath(i){return i},dirname(i){if(Fe(i,"path"),i.length===0)return".";let t=i.charCodeAt(0)===et,e=-1,n=!0;for(let r=i.length-1;r>=1;--r)if(i.charCodeAt(r)===et){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&&Fe(t,"suffix"),Fe(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===et){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)===et){if(!r){e=o+1;break}}else n===-1&&(r=!1,n=o+1);return n===-1?"":i.slice(e,n)},extname(i){Fe(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:Uh.bind(null,"/"),parse(i){Fe(i,"path");let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;let e=i.charCodeAt(0)===et,n;e?(t.root="/",n=1):n=0;let r=-1,o=0,s=-1,a=!0,l=i.length-1,c=0;for(;l>=n;--l){let u=i.charCodeAt(l);if(u===et){if(!a){o=l+1;break}continue}s===-1&&(a=!1,s=l+1),u===Xr?r===-1?r=l:c!==1&&(c=1):r!==-1&&(c=-1)}if(s!==-1){let u=o===0&&e?1:o;r===-1||c===0||c===1&&r===s-1&&r===o+1?t.base=t.name=i.slice(u,s):(t.name=i.slice(u,r),t.base=i.slice(u,s),t.ext=i.slice(r,s))}return o>0?t.dir=i.slice(0,o-1):e&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};Z.win32=se.win32=se;Z.posix=se.posix=Z;var Ht=wt?se.normalize:Z.normalize,qt=wt?se.isAbsolute:Z.isAbsolute,B=wt?se.join:Z.join,tn=wt?se.resolve:Z.resolve,Fh=wt?se.relative:Z.relative,de=wt?se.dirname:Z.dirname,be=wt?se.basename:Z.basename,Sl=wt?se.extname:Z.extname,dD=wt?se.format:Z.format,Wh=wt?se.parse:Z.parse,uD=wt?se.toNamespacedPath:Z.toNamespacedPath,Se=wt?se.sep:Z.sep,Wi=wt?se.delimiter:Z.delimiter;function oC(i){return i}var Il=class{constructor(t,e){this.lastCache=void 0;this.lastArgKey=void 0;typeof t=="function"?(this._fn=t,this._computeKey=oC):(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 we=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 qh(i){return!i||typeof i!="string"?!0:i.trim().length===0}var sC=/{(\d+)}/g;function ei(i,...t){return t.length===0?i:i.replace(sC,function(e,n){let r=parseInt(n,10);return isNaN(r)||r<0||r>=t.length?e:t[r]})}function Mt(i){return i.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function Vn(i,t,e=fC){return i.length<=t?i:`${i.substr(0,t)}${e}`}function Tp(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 $i(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 zh(i){return i.source==="^"||i.source==="^$"||i.source==="$"||i.source==="^\\s*$"?!1:!!(i.exec("")&&i.lastIndex===0)}function jh(i){let t=[],e=i.split(/(\r\n|\r|\n)/);for(let n=0;n<Math.ceil(e.length/2);n++)t.push(e[2*n]+(e[2*n+1]??""));return t}function Os(i,t){return i<t?-1:i>t?1:0}function _l(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 xp(i,t){return ti(i,t,0,i.length,0,t.length)}function ti(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 _l(i.toLowerCase(),t.toLowerCase(),e,n,r,o);$h(l)&&(l-=32),$h(c)&&(c-=32);let u=l-c;if(u!==0)return u}let s=n-e,a=o-r;return s<a?-1:s>a?1:0}function $h(i){return i>=97&&i<=122}function wp(i){return i>=65&&i<=90}function Bn(i,t){return i.length===t.length&&ti(i,t)===0}function hr(i,t){let e=t.length;return e<=i.length&&ti(i,t,0,e)===0}function Kh(i,t){let e=i.length,n=e-t.length;return n>=0&&ti(i,t,n,e)===0}function Gh(i){return 55296<=i&&i<=56319}function Rp(i){return 56320<=i&&i<=57343}function Jh(i,t){return(i-55296<<10)+(t-56320)+65536}var aC=/(?:\x1b\[|\x9b)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~]/,lC=/(?:\x1b\]|\x9d).*?(?:\x1b\\|\x07|\x9c)/,cC=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,dC=new RegExp("(?:"+[aC.source,lC.source,cC.source].join("|")+")","g");function Qh(i){return i&&(i=i.replace(dC,"")),i}var _D=String.fromCharCode(65279);function uC(i){return!!(i&&i.length>0&&i.charCodeAt(0)===65279)}function Yh(i){return uC(i)?i.substr(1):i}var Vh=class i{static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=pC()}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 pC(){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 Bh=class i{constructor(t){this.confusableDictionary=t}static{this.ambiguousCharacterData=new we(()=>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 Il(t=>{let e=t.split(",");function n(d){let f=new Map;for(let g=0;g<d.length;g+=2)f.set(d[g],d[g+1]);return f}function r(d,f){let g=new Map(d);for(let[h,v]of f)g.set(h,v);return g}function o(d,f){if(!d)return f;let g=new Map;for(let[h,v]of d)f.has(h)&&g.set(h,v);return g}let s=this.ambiguousCharacterData.value,a=e.filter(d=>!d.startsWith("_")&&Object.hasOwn(s,d));a.length===0&&(a=["_default"]);let l;for(let d of a){let f=n(s[d]);l=o(l,f)}let c=n(s._common),u=r(c,l);return new i(u)})}static getInstance(t){return i.cache.get(Array.from(t).join(","))}static{this._locales=new we(()=>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())}},Hh=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()}},fC="\u2026";function yr(i){return i===47||i===92}function Cl(i){return i.replace(/[\\/]/g,Z.sep)}function Xh(i){return i.indexOf("/")===-1&&(i=Cl(i)),/^[a-zA-Z]:(\/|$)/.test(i)&&(i="/"+i),i}function Pp(i,t=Z.sep){if(!i)return"";let e=i.length,n=i.charCodeAt(0);if(yr(n)){if(yr(i.charCodeAt(1))&&!yr(i.charCodeAt(2))){let o=3,s=o;for(;o<e&&!yr(i.charCodeAt(o));o++);if(s!==o&&!yr(i.charCodeAt(o+1))){for(o+=1;o<e;o++)if(yr(i.charCodeAt(o)))return i.slice(0,o+1).replace(/[\\/]/g,t)}}return t}else if(Zh(n)&&i.charCodeAt(1)===58)return yr(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(yr(i.charCodeAt(r)))return i.slice(0,r+1)}return""}function Vi(i,t,e){let n=i===t;return!e||n?n:!i||!t?!1:Bn(i,t)}function Hn(i,t,e,n=Se){if(i===t)return!0;if(!i||!t||t.length>i.length)return!1;if(e){if(!hr(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 Zh(i){return i>=65&&i<=90||i>=97&&i<=122}function ey(i){return H?(i=$i(i,Se),i.endsWith(":")&&(i+=Se)):(i=$i(i,Se),i||(i=Se)),i}function kp(i){let t=Ht(i);return H?i.length>3?!1:ty(t)&&(i.length===2||t.charCodeAt(2)===92):t===Z.sep}function ty(i,t=H){return t?Zh(i.charCodeAt(0))&&i.charCodeAt(1)===58:!1}var mC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",gC="BDEFGHIJKMOQRSTUVWXYZbdefghijkmoqrstuvwxyz0123456789";function ny(i,t,e=8){let n="";for(let o=0;o<e;o++){let s;o===0&&H&&!t&&(e===3||e===4)?s=gC:s=mC,n+=s.charAt(Math.floor(Math.random()*s.length))}let r;return t?r=`${t}-${n}`:r=n,i?B(i,r):r}var yC=/^\w[\w\d+.-]*$/,vC=/^\//,bC=/^\/\//;function SC(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&&!yC.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(!vC.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(bC.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 IC(i,t){return!i&&!t?"file":i}function _C(i,t){switch(i){case"https":case"http":case"file":t?t[0]!==nn&&(t=nn+t):t=nn;break}return t}var Ie="",nn="/",CC=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,y=class i{static isUri(t){return t instanceof i?!0:!t||typeof t!="object"?!1:typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function"}constructor(t,e,n,r,o,s=!1){typeof t=="object"?(this.scheme=t.scheme||Ie,this.authority=t.authority||Ie,this.path=t.path||Ie,this.query=t.query||Ie,this.fragment=t.fragment||Ie):(this.scheme=IC(t,s),this.authority=e||Ie,this.path=_C(this.scheme,n||Ie),this.query=r||Ie,this.fragment=o||Ie,SC(this,s))}get fsPath(){return Ls(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=Ie),n===void 0?n=this.authority:n===null&&(n=Ie),r===void 0?r=this.path:r===null&&(r=Ie),o===void 0?o=this.query:o===null&&(o=Ie),s===void 0?s=this.fragment:s===null&&(s=Ie),e===this.scheme&&n===this.authority&&r===this.path&&o===this.query&&s===this.fragment?this:new vr(e,n,r,o,s)}static parse(t,e=!1){let n=CC.exec(t);return n?new vr(n[2]||Ie,Tl(n[4]||Ie),Tl(n[5]||Ie),Tl(n[7]||Ie),Tl(n[9]||Ie),e):new vr(Ie,Ie,Ie,Ie,Ie)}static file(t){let e=Ie;if(H&&(t=t.replace(/\\/g,nn)),t[0]===nn&&t[1]===nn){let n=t.indexOf(nn,2);n===-1?(e=t.substring(2),t=nn):(e=t.substring(2,n),t=t.substring(n)||nn)}return new vr("file",e,t,Ie,Ie)}static from(t,e){return new vr(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 H&&t.scheme==="file"?n=i.file(se.join(Ls(t,!0),...e)).path:n=Z.join(t.path,...e),t.with({path:n})}toString(t=!1){return Ap(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof i)return t;{let e=new vr(t);return e._formatted=t.external??null,e._fsPath=t._sep===sy?t.fsPath??null:null,e}}else return t}[Symbol.for("debug.description")](){return`URI(${this.toString()})`}};var sy=H?1:void 0,vr=class extends y{constructor(){super(...arguments);this._formatted=null;this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=Ls(this,!1)),this._fsPath}toString(e=!1){return e?Ap(this,!0):(this._formatted||(this._formatted=Ap(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=sy),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}},ay={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 ry(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=ay[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 TC(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+=ay[n]):t!==void 0&&(t+=i[e])}return t!==void 0?t:i}function Ls(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,H&&(e=e.replace(/\//g,"\\")),e}function Ap(i,t){let e=t?TC:ry,n="",{scheme:r,authority:o,path:s,query:a,fragment:l}=i;if(r&&(n+=r,n+=":"),(o||r==="file")&&(n+=nn,n+=nn),o){let c=o.indexOf("@");if(c!==-1){let u=o.substr(0,c);o=o.substr(c+1),c=u.lastIndexOf(":"),c===-1?n+=e(u,!1,!1):(n+=e(u.substr(0,c),!1,!1),n+=":",n+=e(u.substr(c+1),!1,!0)),n+="@"}o=o.toLowerCase(),c=o.lastIndexOf(":"),c===-1?n+=e(o,!1,!0):(n+=e(o.substr(0,c),!1,!0),n+=o.substr(c))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let c=s.charCodeAt(1);c>=65&&c<=90&&(s=`/${String.fromCharCode(c+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let c=s.charCodeAt(0);c>=65&&c<=90&&(s=`${String.fromCharCode(c+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l:ry(l,!1,!1)),n}function ly(i){try{return decodeURIComponent(i)}catch{return i.length>3?i.substr(0,3)+ly(i.substr(3)):i}}var iy=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Tl(i){return i.match(iy)?i.replace(iy,t=>ly(t)):i}var ie;(Y=>(Y.inMemory="inmemory",Y.vscode="vscode",Y.internal="private",Y.walkThrough="walkThrough",Y.walkThroughSnippet="walkThroughSnippet",Y.http="http",Y.https="https",Y.file="file",Y.mailto="mailto",Y.untitled="untitled",Y.data="data",Y.command="command",Y.vscodeRemote="vscode-remote",Y.vscodeRemoteResource="vscode-remote-resource",Y.vscodeManagedRemoteResource="vscode-managed-remote-resource",Y.vscodeUserData="vscode-userdata",Y.vscodeCustomEditor="vscode-custom-editor",Y.vscodeNotebookCell="vscode-notebook-cell",Y.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",Y.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",Y.vscodeNotebookCellOutput="vscode-notebook-cell-output",Y.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",Y.vscodeNotebookMetadata="vscode-notebook-metadata",Y.vscodeInteractiveInput="vscode-interactive-input",Y.vscodeSettings="vscode-settings",Y.vscodeWorkspaceTrust="vscode-workspace-trust",Y.vscodeTerminal="vscode-terminal",Y.vscodeImageCarousel="vscode-image-carousel",Y.vscodeChatCodeBlock="vscode-chat-code-block",Y.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",Y.vscodeChatEditor="vscode-chat-editor",Y.vscodeChatInput="chatSessionInput",Y.vscodeLocalChatSession="vscode-chat-session",Y.webviewPanel="webview-panel",Y.vscodeWebview="vscode-webview",Y.vscodeBrowser="vscode-browser",Y.extension="extension",Y.vscodeFileResource="vscode-file",Y.tmp="tmp",Y.vsls="vsls",Y.vscodeSourceControl="vscode-scm",Y.commentsInput="comment",Y.codeSetting="code-setting",Y.outputChannel="output",Y.accessibleView="accessible-view",Y.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",Y.chatEditingModel="chat-editing-text-model",Y.copilotPr="copilot-pr"))(ie||={});var Lp="tkn",Dp=class{constructor(){this._hosts=Object.create(null);this._ports=Object.create(null);this._connectionTokens=Object.create(null);this._preferredWebSchema="http";this._delegate=null;this._serverRootPath="/"}setPreferredWebSchema(t){this._preferredWebSchema=t}setDelegate(t){this._delegate=t}setServerRootPath(t,e){this._serverRootPath=Z.join(e??"/",wC(t))}getServerRootPath(){return this._serverRootPath}get _remoteResourcesPath(){return Z.join(this._serverRootPath,ie.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 Jg(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+=`&${Lp}=${encodeURIComponent(o)}`),y.from({scheme:Tt?this._preferredWebSchema:ie.vscodeRemoteResource,authority:`${n}:${r}`,path:this._remoteResourcesPath,query:s})}},xC=new Dp;function wC(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var cy="vs/../../node_modules",dy="vs/../../node_modules.asar";var Mp="vscode-app",Op=class i{static{this.FALLBACK_AUTHORITY=Mp}asBrowserUri(t){let e=this.toUri(t);return this.uriToBrowserUri(e)}uriToBrowserUri(t){return t.scheme===ie.vscodeRemote?xC.rewrite(t):t.scheme===ie.file&&(Th||xh===`${ie.vscodeFileResource}://${i.FALLBACK_AUTHORITY}`)?t.with({scheme:ie.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===ie.vscodeFileResource?t.with({scheme:ie.file,authority:t.authority!==i.FALLBACK_AUTHORITY?t.authority:null,query:null,fragment:null}):t}toUri(t){if(y.isUri(t))return t;if(globalThis._VSCODE_FILE_ROOT){let e=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(e))return y.joinPath(y.parse(e,!0),t);let n=B(e,t);return y.file(n)}throw new Error("Cannot determine URI for module id!")}},tt=new Op,MD=Object.freeze({"Cache-Control":"no-cache, no-store"}),ND=Object.freeze({"Document-Policy":"include-js-call-stacks-in-crash-reports"}),RC;(o=>{let i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);o.CoopAndCoep=Object.freeze(i.get("3"));let e="vscode-coi";function n(s){let a;typeof s=="string"?a=new URL(s).searchParams:s instanceof URL?a=s.searchParams:y.isUri(s)&&(a=new URL(s.toString(!0)).searchParams);let l=a?.get(e);if(l)return i.get(l)}o.getHeadersFromQuery=n;function r(s,a,l){if(!globalThis.crossOriginIsolated)return;let c=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,c):s[e]=c}o.addSearchParam=r})(RC||={});function qn(i){return Ls(i,!0)}var Ms=class{constructor(t){this._ignorePathCasing=t}compare(t,e,n=!1){return t===e?0:Os(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===ie.file)return Hn(qn(t),qn(e),this._ignorePathCasing(t))&&t.query===e.query&&(n||t.fragment===e.fragment);if(uy(t.authority,e.authority))return Hn(t.path,e.path,this._ignorePathCasing(t),"/")&&t.query===e.query&&(n||t.fragment===e.fragment)}return!1}joinPath(t,...e){return y.joinPath(t,...e)}basenameOrAuthority(t){return _e(t)||t.authority}basename(t,e){return Z.basename(t.path,e)}extname(t){return Z.extname(t.path)}dirname(t){if(t.path.length===0)return t;let e;return t.scheme===ie.file?e=y.file(de(qn(t))).path:(e=Z.dirname(t.path),t.authority&&e.length&&e.charCodeAt(0)!==47&&(console.error(`dirname("${t.toString})) resulted in a relative path`),e="/")),t.with({path:e})}normalizePath(t){if(!t.path.length)return t;let e;return t.scheme===ie.file?e=y.file(Ht(qn(t))).path:e=Z.normalize(t.path),t.with({path:e})}relativePath(t,e){if(t.scheme!==e.scheme||!uy(t.authority,e.authority))return;if(t.scheme===ie.file){let o=Fh(qn(t),qn(e));return H?Cl(o):o}let n=t.path||"/",r=e.path||"/";if(this._ignorePathCasing(t)){let o=0;for(let s=Math.min(n.length,r.length);o<s&&!(n.charCodeAt(o)!==r.charCodeAt(o)&&n.charAt(o).toLowerCase()!==r.charAt(o).toLowerCase());o++);n=r.substr(0,o)+n.substr(o)}return Z.relative(n,r)}resolvePath(t,e){if(t.scheme===ie.file){let n=y.file(tn(qn(t),e));return t.with({authority:n.authority,path:n.path})}return e=Xh(e),t.with({path:Z.resolve(t.path,e)})}isAbsolutePath(t){return!!t.path&&t.path[0]==="/"}isEqualAuthority(t,e){return t===e||t!==void 0&&e!==void 0&&Bn(t,e)}hasTrailingPathSeparator(t,e=Se){if(t.scheme===ie.file){let n=qn(t);return n.length>Pp(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=Se){return py(t,e)?t.with({path:t.path.substr(0,t.path.length-1)}):t}addTrailingPathSeparator(t,e=Se){let n=!1;if(t.scheme===ie.file){let r=qn(t);n=r!==void 0&&r.length===Pp(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&&!py(t,e)?t.with({path:t.path+"/"}):t}},oe=new Ms(()=>!1),vt=new Ms(i=>i.scheme===ie.file?!he:!0),Np=new Ms(i=>!0),Up=oe.isEqual.bind(oe),Fp=oe.isEqualOrParent.bind(oe),HD=oe.getComparisonKey.bind(oe),qD=oe.basenameOrAuthority.bind(oe),_e=oe.basename.bind(oe),Ns=oe.extname.bind(oe),mn=oe.dirname.bind(oe),ee=oe.joinPath.bind(oe),Nt=oe.normalizePath.bind(oe),Wp=oe.relativePath.bind(oe),zD=oe.resolvePath.bind(oe),fy=oe.isAbsolutePath.bind(oe),uy=oe.isEqualAuthority.bind(oe),py=oe.hasTrailingPathSeparator.bind(oe),jD=oe.removeTrailingPathSeparator.bind(oe),KD=oe.addTrailingPathSeparator.bind(oe);var EC;(o=>{o.META_DATA_LABEL="label",o.META_DATA_DESCRIPTION="description",o.META_DATA_SIZE="size",o.META_DATA_MIME="mime";function r(s){let a=new Map;s.path.substring(s.path.indexOf(";")+1,s.path.lastIndexOf(";")).split(";").forEach(u=>{let[d,f]=u.split(":");d&&f&&a.set(d,f)});let c=s.path.substring(0,s.path.indexOf(";"));return c&&a.set(o.META_DATA_MIME,c),a}o.parseMetaData=r})(EC||={});var my=Symbol("MicrotaskDelay");function Pl(i){return!!i&&typeof i.then=="function"}function zi(i){let t=new Ke,e=i(t.token),n=!1,r=new Promise((o,s)=>{let a=t.token.onCancellationRequested(()=>{n=!0,a.dispose(),s(new le)});Promise.resolve(e).then(l=>{a.dispose(),t.dispose(),n?Li(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 yy(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 $p=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new Ke}queue(t){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=t,!this.queuedPromise){let e=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;let n=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,n};this.queuedPromise=new Promise(n=>{this.activePromise.then(e,e).then(n)})}return new Promise((e,n)=>{this.queuedPromise.then(e,n)})}return this.activePromise=t(this.cancellationTokenSource.token),new Promise((e,n)=>{this.activePromise.then(r=>{this.activePromise=null,e(r)},r=>{this.activePromise=null,n(r)})})}dispose(){this.cancellationTokenSource.cancel()}};var ft=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()}},kC=(i,t)=>{let e=!0,n=setTimeout(()=>{e=!1,t()},i);return{isTriggered:()=>e,dispose:()=>{clearTimeout(n),e=!1}}},AC=i=>{let t=!0;return queueMicrotask(()=>{t&&(t=!1,i())}),{isTriggered:()=>t,dispose:()=>{t=!1}}},ni=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===my?AC(n):kC(e,n),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new le),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}},ri=class{constructor(t){this.delayer=new ni(t),this.throttler=new $p}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()}},wl=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 zn(i,t){return t?new Promise((e,n)=>{let r=setTimeout(()=>{o.dispose(),e()},i),o=t.onCancellationRequested(()=>{clearTimeout(r),o.dispose(),n(new le)})}):zi(e=>zn(i,e))}function Us(i,t=0,e){let n=setTimeout(()=>{i(),e&&r.dispose()},t),r=A(()=>{clearTimeout(n),e?.delete(r)});return e?.add(r),r}var Bi=class{constructor(t){this._size=0;this._isDisposed=!1;this.maxDegreeOfParalellism=t,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new x}whenIdle(){return this.size>0?X.toPromise(this.onDrained):Promise.resolve()}get onDrained(){return this._onDrained.event}get size(){return this._size}queue(t){if(this._isDisposed)throw new Error("Object has been disposed");return this._size++,new Promise((e,n)=>{this.outstandingPromises.push({factory:t,c:e,e:n}),this.consume()})}consume(){for(;this.outstandingPromises.length&&this.runningPromises<this.maxDegreeOfParalellism;){let t=this.outstandingPromises.shift();this.runningPromises++;let e=t.factory();e.then(t.c,t.e),e.then(()=>this.consumed(),()=>this.consumed())}}consumed(){this._isDisposed||(this.runningPromises--,--this._size===0&&this._onDrained.fire(),this.outstandingPromises.length>0&&this.consume())}clear(){if(this._isDisposed)throw new Error("Object has been disposed");this.outstandingPromises.length=0,this._size=this.runningPromises}dispose(){this._isDisposed=!0,this.outstandingPromises.length=0,this._size=0,this._onDrained.dispose()}},br=class extends Bi{constructor(){super(1)}};var Hi=class{constructor(){this.queues=new Map;this.drainers=new Set;this.drainListeners=void 0;this.drainListenerCount=0}async whenDrained(){if(this.isDrained())return;let t=new pe;return this.drainers.add(t),t.p}isDrained(){for(let[,t]of this.queues)if(t.size>0)return!1;return!0}queueSize(t,e=oe){let n=e.getComparisonKey(t);return this.queues.get(n)?.size??0}queueFor(t,e,n=oe){let r=n.getComparisonKey(t),o=this.queues.get(r);if(!o){o=new br;let s=this.drainListenerCount++,a=X.once(o.onDrained)(()=>{o?.dispose(),this.queues.delete(r),this.onDidQueueDrain(),this.drainListeners?.deleteAndDispose(s),this.drainListeners?.size===0&&(this.drainListeners.dispose(),this.drainListeners=void 0)});this.drainListeners||(this.drainListeners=new dt),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 Sr=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 Rl=class extends Sr{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()}},qi=class extends T{constructor(e,n){super();this.options=e;this.handler=n;this.pendingWork=[];this.throttler=this._register(new ur);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 Sr(()=>{this.throttler.clear(),this.doWork()},e),this.throttler.value.schedule()}dispose(){super.dispose(),this.pendingWork.length=0,this.disposed=!0}},DC,xl;(function(){let i=globalThis;typeof i.requestIdleCallback!="function"||typeof i.cancelIdleCallback!="function"?xl=(t,e,n)=>{wh(()=>{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)}}}:xl=(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))}}},DC=(t,e)=>xl(globalThis,t,e)})();var Vp=class{constructor(t,e){this._didRun=!1;this._executor=()=>{try{this._value=e()}catch(n){this._error=n}finally{this._didRun=!0}},this._handle=xl(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}},El=class extends Vp{constructor(t){super(globalThis,t)}};async function vy(i,t,e){let n;for(let r=0;r<e;r++)try{return await i()}catch(o){n=o,await zn(t)}throw n}var pe=class i{static fromPromise(t){let e=new i;return e.settleWith(t),e}get isRejected(){return this.outcome?.outcome===1}get isResolved(){return this.outcome?.outcome===0}get isSettled(){return!!this.outcome}get value(){return this.outcome?.outcome===0?this.outcome?.value:void 0}constructor(){this.p=new Promise((t,e)=>{this.completeCallback=t,this.errorCallback=e})}complete(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.completeCallback(t),this.outcome={outcome:0,value:t},e()})}error(t){return this.isSettled?Promise.resolve():new Promise(e=>{this.errorCallback(t),this.outcome={outcome:1,value:t},e()})}settleWith(t){return t.then(e=>this.complete(e),e=>this.error(e))}cancel(){return this.error(new le)}},ii;(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})(ii||={});var gy=class i{static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new x,queueMicrotask(async()=>{let n={emitOne:r=>this.emitOne(r),emitMany:r=>this.emitMany(r),reject:r=>this.reject(r)};try{await Promise.resolve(t(n)),this.resolve()}catch(r){this.reject(r)}finally{n.emitOne=void 0,n.emitMany=void 0,n.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await X.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}map(t){return i.map(this,t)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static async toPromise(t){let e=[];for await(let n of t)e.push(n);return e}toPromise(){return i.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};var Bp=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 Te("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(t,e){e.ok?t.complete(e.value):t.error(e.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let t=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return t.ok?Promise.resolve(t.value):Promise.reject(t.error)}else{let t=new pe;return this._unsatisfiedConsumers.push(t),t.p}}},hy=class i{constructor(t,e){this._onReturn=e;this._producerConsumer=new Bp;this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async t=>(this._finishError(t),{done:!0,value:void 0})};queueMicrotask(async()=>{let n=t({emitOne:r=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:r}}),emitMany:r=>{for(let o of r)this._producerConsumer.produce({ok:!0,value:{done:!1,value:o}})},reject:r=>this._finishError(r)});if(!this._producerConsumer.hasFinalValue)try{await n,this._finishOk()}catch(r){this._finishError(r)}})}static fromArray(t){return new i(e=>{e.emitMany(t)})}static fromPromise(t){return new i(async e=>{e.emitMany(await t)})}static fromPromisesResolveOrder(t){return new i(async e=>{await Promise.all(t.map(async n=>e.emitOne(await n)))})}static merge(t){return new i(async e=>{await Promise.all(t.map(async n=>{for await(let r of n)e.emitOne(r)}))})}static{this.EMPTY=i.fromArray([])}static map(t,e){return new i(async n=>{for await(let r of t)n.emitOne(e(r))})}static tee(t){let e,n,r=new pe,o=async()=>{if(!(!e||!n))try{for await(let l of t)e.emitOne(l),n.emitOne(l)}catch(l){e.reject(l),n.reject(l)}finally{r.complete()}},s=new i(async l=>(e=l,o(),r.p)),a=new i(async l=>(n=l,o(),r.p));return[s,a]}map(t){return i.map(this,t)}static coalesce(t){return i.filter(t,e=>!!e)}coalesce(){return i.coalesce(this)}static filter(t,e){return new i(async n=>{for await(let r of t)e(r)&&n.emitOne(r)})}filter(t){return i.filter(this,t)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(t){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:t})}[Symbol.asyncIterator](){return this._iterator}};function Fs(i){let t=i;return t?[t.on,t.pause,t.resume,t.destroy].every(e=>typeof e=="function"):!1}function kl(i){let t=i;return t?Fs(t.stream)&&Array.isArray(t.buffer)&&typeof t.ended=="boolean":!1}function jn(i,t){return new Hp(i,t)}var Hp=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?Le(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 by(i,t){let e=[],n;for(;(n=i.read())!==null;)e.push(n);return t(e)}function Sy(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 Al(i,t){return new Promise((e,n)=>{let r=[];Dl(i,{onData:o=>{t&&r.push(o)},onError:o=>{t?n(o):e(void 0)},onEnd:()=>{e(t?t(r):void 0)}})})}function Dl(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 Iy(i,t){return new Promise((e,n)=>{let r=new z,o=[],s=c=>{if(o.push(c),o.length>t)return r.dispose(),i.pause(),e({stream:i,buffer:o,ended:!1})},a=c=>(r.dispose(),n(c)),l=()=>(r.dispose(),e({stream:i,buffer:o,ended:!0}));r.add(A(()=>i.removeListener("error",a))),i.on("error",a),r.add(A(()=>i.removeListener("end",l))),i.on("end",l),r.add(A(()=>i.removeListener("data",s))),i.on("data",s)})}function _y(i){let t=!1;return{read:()=>t?null:(t=!0,i)}}function qp(i,t,e){let n=jn(e);return Dl(i,{onData:r=>n.write(t.data(r)),onError:r=>n.error(t.error?t.error(r):r),onEnd:()=>n.end()}),n}var Ws=typeof Buffer<"u",LC=new we(()=>new Uint8Array(256)),zp,jp,k=class i{static alloc(t){return Ws?new i(Buffer.allocUnsafe(t)):new i(new Uint8Array(t))}static wrap(t){return Ws&&!Buffer.isBuffer(t)&&(t=Buffer.from(t.buffer,t.byteOffset,t.byteLength)),new i(t)}static fromString(t,e){return!(e?.dontUseNodeBuffer||!1)&&Ws?new i(Buffer.from(t)):(zp||(zp=new TextEncoder),new i(zp.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 Ws&&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 Ws?this.buffer.toString():(jp||(jp=new TextDecoder(void 0,{ignoreBOM:!0})),jp.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 NC(this.buffer,t)}writeUInt32BE(t,e){UC(this.buffer,t,e)}readUInt32LE(t){return FC(this.buffer,t)}writeUInt32LE(t,e){WC(this.buffer,t,e)}readUInt8(t){return $C(this.buffer,t)}writeUInt8(t,e){VC(this.buffer,t,e)}indexOf(t,e=0){return MC(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 MC(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=LC.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 NC(i,t){return i[t]*2**24+i[t+1]*2**16+i[t+2]*2**8+i[t+3]}function UC(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 FC(i,t){return i[t+0]<<0>>>0|i[t+1]<<8>>>0|i[t+2]<<16>>>0|i[t+3]<<24>>>0}function WC(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 $C(i,t){return i[t]}function VC(i,t,e){i[e]=t}function xy(i){return by(i,t=>k.concat(t))}function wy(i){return _y(i)}function Ir(i){return Al(i,t=>k.concat(t))}async function Ry(i){return i.ended?k.concat(i.buffer):k.concat([...i.buffer,await Ir(i.stream)])}function Ey(i){return jn(t=>k.concat(t),i)}function _r(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 k.wrap(r).slice(0,s)}var BC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",HC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function Ol({buffer:i},t=!0,e=!1){let n=e?HC:BC,r="",o=i.byteLength%3,s=0;for(;s<i.byteLength-o;s+=3){let a=i[s+0],l=i[s+1],c=i[s+2];r+=n[a>>>2],r+=n[(a<<4|l>>>4)&63],r+=n[(l<<2|c>>>6)&63],r+=n[c&63]}if(o===1){let a=i[s+0];r+=n[a>>>2],r+=n[a<<4&63],t&&(r+="==")}else if(o===2){let a=i[s+0],l=i[s+1];r+=n[a>>>2],r+=n[(a<<4|l>>>4)&63],r+=n[l<<2&63],t&&(r+="=")}return r}var Cy="0123456789abcdef";function rn({buffer:i}){let t="";for(let e=0;e<i.length;e++){let n=i[e];t+=Cy[n>>>4],t+=Cy[n&15]}return t}function ji(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]=Ty(i,e++)<<4|Ty(i,e++);return k.wrap(t)}function Ty(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 ce(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 $s(i,t=0){if(!i||t>200)return i;if(typeof i=="object"){switch(i.$mid){case 1:return y.revive(i);case 2:return new RegExp(i.source,i.flags);case 17:return new Date(i.source)}if(i instanceof k||i instanceof Uint8Array)return i;if(Array.isArray(i))for(let e=0;e<i.length;++e)i[e]=$s(i[e],t+1);else for(let e in i)Object.hasOwnProperty.call(i,e)&&(i[e]=$s(i[e],t+1))}return i}function Ji(i){switch(i){case 100:return"req";case 101:return"cancel";case 102:return"subscribe";case 103:return"unsubscribe"}}function Ll(i){switch(i){case 200:return"init";case 201:return"reply:";case 202:case 203:return"replyErr:";case 204:return"event:"}}function Ki(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 qC=Cr(0);function Gi(i,t){if(t===0){i.write(qC);return}let e=0;for(let r=t;r!==0;r=r>>>7)e++;let n=k.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 Vs=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}},Ml=class{constructor(){this.buffers=[]}get buffer(){return k.concat(this.buffers)}write(t){this.buffers.push(t)}};function Cr(i){let t=k.alloc(1);return t.writeUInt8(i,0),t}var oi={Undefined:Cr(0),String:Cr(1),Buffer:Cr(2),VSBuffer:Cr(3),Array:Cr(4),Object:Cr(5),Uint:Cr(6)};function Bs(i,t){if(typeof t>"u")i.write(oi.Undefined);else if(typeof t=="string"){let e=k.fromString(t);i.write(oi.String),Gi(i,e.byteLength),i.write(e)}else if(k.isNativeBuffer(t)){let e=k.wrap(t);i.write(oi.Buffer),Gi(i,e.byteLength),i.write(e)}else if(t instanceof k)i.write(oi.VSBuffer),Gi(i,t.byteLength),i.write(t);else if(Array.isArray(t)){i.write(oi.Array),Gi(i,t.length);for(let e of t)Bs(i,e)}else if(typeof t=="number"&&(t|0)===t)i.write(oi.Uint),Gi(i,t);else{let e=k.fromString(JSON.stringify(t));i.write(oi.Object),Gi(i,e.byteLength),i.write(e)}}function Yi(i){switch(i.read(1).readUInt8(0)){case 0:return;case 1:return i.read(Ki(i)).toString();case 2:return i.read(Ki(i)).buffer;case 3:return i.read(Ki(i));case 4:{let e=Ki(i),n=[];for(let r=0;r<e;r++)n.push(Yi(i));return n}case 5:return JSON.parse(i.read(Ki(i)).toString());case 6:return Ki(i)}}var Hs=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,Ll(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,Ll(t.type),t.data);return}}}send(t,e=void 0){let n=new Ml;return Bs(n,t),Bs(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onRawMessage(t){let e=new Vs(t),n=Yi(e),r=Yi(e),o=n[0];switch(o){case 100:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ji(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,`${Ji(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,`${Ji(o)}`),this.disposeActiveRequest({type:o,id:n[1]});case 103:return this.logger?.logIncoming(t.byteLength,n[1],1,`${Ji(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 Ke,r;try{r=e.call(this.ctx,t.name,t.arg,n.token)}catch(a){r=Promise.reject(a)}let o=t.id;r.then(a=>{this.sendResponse({id:o,data:a,type:201})},a=>{a instanceof Error?this.sendResponse({id:o,data:{message:a.message,name:a.name,stack:a.stack?a.stack.split(`
`):void 0},type:202}):this.sendResponse({id:o,data:a,type:203})}).finally(()=>{s.dispose(),this.activeRequests.delete(t.id)});let s=A(()=>n.cancel());this.activeRequests.set(t.id,s)}onEventListen(t){let e=this.channels.get(t.channelName);if(!e){this.collectPendingRequest(t);return}let n=t.id,o=e.listen(this.ctx,t.name,t.arg)(s=>this.sendResponse({id:n,data:s,type:204}));this.activeRequests.set(t.id,o)}disposeActiveRequest(t){let e=this.activeRequests.get(t.id);e&&(e.dispose(),this.activeRequests.delete(t.id))}collectPendingRequest(t){let e=this.pendingRequests.get(t.channelName);e||(e=[],this.pendingRequests.set(t.channelName,e));let n=setTimeout(()=>{console.error(`Unknown channel: ${t.channelName}`),t.type===100&&this.sendResponse({id:t.id,data:{name:"Unknown channel",message:`Channel name '${t.channelName}' timed out after ${this.timeoutDelay}ms`,stack:void 0},type:202})},this.timeoutDelay);e.push({request:t,timeoutTimer:n})}flushPendingRequests(t){let e=this.pendingRequests.get(t);if(e){for(let n of e)switch(clearTimeout(n.timeoutTimer),n.request.type){case 100:this.onPromise(n.request);break;case 102:this.onEventListen(n.request);break}this.pendingRequests.delete(t)}}dispose(){this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),ut(this.activeRequests.values()),this.activeRequests.clear()}};var Qi=class{constructor(t,e=null){this.protocol=t;this.isDisposed=!1;this.state=0;this.activeRequests=new Set;this.handlers=new Map;this.lastRequestId=0;this._onDidInitialize=new x;this.onDidInitialize=this._onDidInitialize.event;this.protocolListener=this.protocol.onMessage(n=>this.onBuffer(n)),this.logger=e}getChannel(t){let e=this;return{call(n,r,o){return e.isDisposed?Promise.reject(new le):e.requestPromise(t,n,r,o)},listen(n,r){return e.isDisposed?X.None:e.requestEvent(t,n,r)}}}requestPromise(t,e,n,r=$e.None){let o=this.lastRequestId++,a={id:o,type:100,channelName:t,name:e,arg:n};if(r.isCancellationRequested)return Promise.reject(new le);let l,c;return new Promise((d,f)=>{if(r.isCancellationRequested)return f(new le);let g=()=>{let S=_=>{switch(_.type){case 201:this.handlers.delete(o),d(_.data);break;case 202:{this.handlers.delete(o);let b=new Error(_.data.message);b.stack=Array.isArray(_.data.stack)?_.data.stack.join(`
`):_.data.stack,b.name=_.data.name,f(b);break}case 203:this.handlers.delete(o),f(_.data);break}};this.handlers.set(o,S),this.sendRequest(a)},h=null;this.state===1?g():(h=zi(S=>this.whenInitialized()),h.then(()=>{h=null,g()}));let v=()=>{h?(h.cancel(),h=null):this.sendRequest({id:o,type:101}),f(new le)};l=r.onCancellationRequested(v),c={dispose:Pi(()=>{v(),l.dispose()})},this.activeRequests.add(c)}).finally(()=>{l?.dispose(),this.activeRequests.delete(c)})}requestEvent(t,e,n){let r=this.lastRequestId++,s={id:r,type:102,channelName:t,name:e,arg:n},a=null,l=new x({onWillAddFirstListener:()=>{let u=()=>{this.activeRequests.add(l),this.sendRequest(s)};this.state===1?u():(a=zi(d=>this.whenInitialized()),a.then(()=>{a=null,u()}))},onDidRemoveLastListener:()=>{a?(a.cancel(),a=null):(this.activeRequests.delete(l),this.sendRequest({id:r,type:103})),this.handlers.delete(r)}}),c=u=>l.fire(u.data);return this.handlers.set(r,c),l.event}sendRequest(t){switch(t.type){case 100:case 102:{let e=this.send([t.type,t.id,t.channelName,t.name],t.arg);this.logger?.logOutgoing(e,t.id,0,`${Ji(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,Ji(t.type));return}}}send(t,e=void 0){let n=new Ml;return Bs(n,t),Bs(n,e),this.sendBuffer(n.buffer)}sendBuffer(t){try{return this.protocol.send(t),t.byteLength}catch{return 0}}onBuffer(t){let e=new Vs(t),n=Yi(e),r=Yi(e),o=n[0];switch(o){case 200:return this.logger?.logIncoming(t.byteLength,0,0,Ll(o)),this.onResponse({type:n[0]});case 201:case 202:case 204:case 203:return this.logger?.logIncoming(t.byteLength,n[1],0,Ll(o),r),this.onResponse({type:n[0],id:n[1],data:r})}}onResponse(t){if(t.type===200){this.state=1,this._onDidInitialize.fire();return}this.handlers.get(t.id)?.(t)}get onDidInitializePromise(){return X.toPromise(this.onDidInitialize)}whenInitialized(){return this.state===1?Promise.resolve():this.onDidInitializePromise}dispose(){this.isDisposed=!0,this.protocolListener&&(this.protocolListener.dispose(),this.protocolListener=null),ut(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};w([ce],Qi.prototype,"onDidInitializePromise",1);var Nl=class{constructor(t,e,n){this.channels=new Map;this._connections=new Set;this._onDidAddConnection=new x;this.onDidAddConnection=this._onDidAddConnection.event;this._onDidRemoveConnection=new x;this.onDidRemoveConnection=this._onDidRemoveConnection.event;this.disposables=new z;this.disposables.add(t(({protocol:r,onDidClientDisconnect:o})=>{let s=X.once(r.onMessage),a=new z,l=s(c=>{let u=new Vs(c),d=Yi(u),f=new Hs(r,d,e,n),g=new Qi(r,e);this.channels.forEach((v,S)=>f.registerChannel(S,v));let h={channelServer:f,channelClient:g,ctx:d};this._connections.add(h),this._onDidAddConnection.fire(h),a.add(o(()=>{f.dispose(),g.dispose(),this._connections.delete(h),this._onDidRemoveConnection.fire(h),this.disposables.delete(a),a.dispose()}))});a.add(l),this.disposables.add(a)}))}get connections(){let t=[];return this._connections.forEach(e=>t.push(e)),t}getChannel(t,e){let n=this;return{call(r,o,s){let a;if(Rs(e)){let c=Xg(n.connections.filter(e));a=c?Promise.resolve(c):X.toPromise(X.filter(n.onDidAddConnection,e))}else a=e.routeCall(n,r,o);let l=a.then(c=>c.channelClient.getChannel(t));return Py(l).call(r,o,s)},listen(r,o){if(Rs(e))return n.getMulticastEvent(t,e,r,o);let s=e.routeEvent(n,r,o).then(a=>a.channelClient.getChannel(t));return Py(s).listen(r,o)}}}getMulticastEvent(t,e,n,r){let o=this,s,a=new x({onWillAddFirstListener:()=>{s=new z;let l=new yl,c=new Map,u=f=>{let h=f.channelClient.getChannel(t).listen(n,r),v=l.add(h);c.set(f,v)},d=f=>{let g=c.get(f);g&&(g.dispose(),c.delete(f))};o.connections.filter(e).forEach(u),X.filter(o.onDidAddConnection,e)(u,void 0,s),o.onDidRemoveConnection(d,void 0,s),l.event(a.fire,a,s),s.add(l)},onDidRemoveLastListener:()=>{s?.dispose(),s=void 0}});return o.disposables.add(a),a.event}registerChannel(t,e){this.channels.set(t,e);for(let n of this._connections)n.channelServer.registerChannel(t,e)}dispose(){this.disposables.dispose();for(let t of this._connections)t.channelClient.dispose(),t.channelServer.dispose();this._connections.clear(),this.channels.clear(),this._onDidAddConnection.dispose(),this._onDidRemoveConnection.dispose()}};function Py(i){return{call(t,e,n){return i.then(r=>r.call(t,e,n))},listen(t,e){let n=new Ds;return i.then(r=>n.input=r.listen(t,e)),n.event}}}function ky(i){let t=!1;return{call(e,n,r){return t?i.call(e,n,r):zn(0).then(()=>t=!0).then(()=>i.call(e,n,r))},listen(e,n){if(t)return i.listen(e,n);let r=new Ds;return zn(0).then(()=>t=!0).then(()=>r.input=i.listen(e,n)),r.event}}}var Xi;(r=>{function i(o,s,a){let l=o,c=a?.disableMarshalling,u=new Map;for(let d in l)e(d)&&u.set(d,X.buffer(l[d],d,!0,void 0,s));return new class{listen(d,f,g){let h=u.get(f);if(h)return h;let v=l[f];if(typeof v=="function"){if(n(f))return v.call(l,g);if(e(f))return u.set(f,X.buffer(l[f],f,!0,void 0,s)),u.get(f)}throw new un(`Event not found: ${f}`)}call(d,f,g){let h=l[f];if(typeof h=="function"){if(!c&&Array.isArray(g))for(let S=0;S<g.length;S++)g[S]=$s(g[S]);let v=h.apply(l,g);return v instanceof Promise||(v=Promise.resolve(v)),v}throw new un(`Method not found: ${f}`)}}}r.fromService=i;function t(o,s){let a=s?.disableMarshalling;return new Proxy({},{get(l,c){if(typeof c=="string")return s?.properties?.has(c)?s.properties.get(c):n(c)?function(u){return o.listen(c,u)}:e(c)?o.listen(c):async function(...u){let d;s&&!en(s.context)?d=[s.context,...u]:d=u;let f=await o.call(c,d);return a?f:$s(f)};throw new un(`Property not found: ${String(c)}`)}})}r.toService=t;function e(o){return o[0]==="o"&&o[1]==="n"&&wp(o.charCodeAt(2))}function n(o){return/^onDynamic/.test(o)&&wp(o.charCodeAt(9))}})(Xi||={});import{fork as vT}from"child_process";function Ay(i){let t=i;return t&&typeof t.type=="string"&&typeof t.severity=="string"}function zC(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 jC(i){if(!i)return i;let t=i.indexOf(`
`);return t===-1?i:i.substring(0,t)}function Dy(i,t){let{args:e,stack:n}=zC(i),r=typeof e[0]=="string"&&e.length===1,o=jC(n);o&&(o=`(${o.trim()})`);let s=[];if(typeof e[0]=="string"?o&&r?s=[`%c[${t}] %c${e[0]} %c${o}`,Zi("blue"),Zi(""),Zi("grey")]:s=[`%c[${t}] %c${e[0]}`,Zi("blue"),Zi(""),...e.slice(1)]:s=[`%c[${t}]%`,Zi("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 Zi(i){return`color: ${i}`}function zt(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"?zt(n):n}),t}function Oy(i){if(!i||typeof i!="object")return i;let t=[i];for(;t.length>0;){let e=t.shift();Object.freeze(e);for(let n in e)if(Ly.call(e,n)){let r=e[n];typeof r=="object"&&!Object.isFrozen(r)&&!dh(r)&&t.push(r)}}return i}var Ly=Object.prototype.hasOwnProperty;function qs(i,t){return Kp(i,t,new Set)}function Kp(i,t,e){if(en(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(Kp(o,t,e));return r}if(Ae(i)){if(e.has(i))throw new Error("Cannot clone recursive data-structure");e.add(i);let r={};for(let o in i)Ly.call(i,o)&&(r[o]=Kp(i[o],t,e));return e.delete(i),r}return i}function eo(i,t,e=!0){return Ae(i)?(Ae(t)&&Object.keys(t).forEach(n=>{n in i?e&&(Ae(i[n])&&Ae(t[n])?eo(i[n],t[n],e):i[n]=t[n]):i[n]=t[n]}),i):t}function Oe(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(!Oe(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(),!Oe(r,o))return!1;for(e=0;e<r.length;e++)if(!Oe(i[r[e]],t[r[e]]))return!1}return!0}function Gp(i){let t=new Set;return JSON.stringify(i,(e,n)=>{if(Ae(n)||Array.isArray(n)){if(t.has(n))return"[Circular]";t.add(n)}return typeof n=="bigint"?`[BigInt ${n.toString()}]`:n})}function gn(i,t){let e=t.toLowerCase(),n=Object.keys(i).find(r=>r.toLowerCase()===e);return n?i[n]:i[t]}import*as gT from"child_process";import{promises as zy}from"fs";function My(i){i&&(delete i.DEBUG,delete i.NODE_OPTIONS,he&&delete i.LD_PRELOAD)}import*as Q from"fs";import{tmpdir as ZC}from"os";import{promisify as js}from"util";var GC=new pn(1e4);function zs(i){return Ny(i,"NFC",GC)}var JC=new pn(1e4);function QC(i){return Ny(i,"NFD",JC)}var YC=/[^\u0000-\u0080]/;function Ny(i,t,e){if(!i)return i;let n=e.get(i);if(n)return n;let r;return YC.test(i)?r=i.normalize(t):r=i,e.set(i,r),r}var XC=(function(){let i=new pn(1e4),t=/[\u0300-\u036f]/g;return function(e){let n=i.get(e);if(n)return n;let r=QC(e).replace(t,""),o=(r.length===e.length?r:e).toLowerCase();return i.set(e,o),o}})();async function Wy(i,t=0,e){if(kp(i))throw new Error("rimraf - will refuse to recursively delete root");return t===0?Jp(i):eT(i,e)}async function eT(i,t=ny(ZC())){try{try{await Q.promises.rename(i,t)}catch(e){return e.code==="ENOENT"?void 0:Jp(i)}Jp(t).catch(()=>{})}catch(e){if(e.code!=="ENOENT")throw e}}async function Jp(i){return Q.promises.rm(i,{recursive:!0,force:!0,maxRetries:3})}async function Ul(i,t){try{return await Uy(i,t)}catch(e){if(e.code==="ENOENT"&&H&&kp(i))try{return await Uy(`${i}.`,t)}catch{}throw e}}async function Uy(i,t){return nT(await(t?tT(i):Q.promises.readdir(i)))}async function tT(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 Ul(i);for(let n of e){let r=!1,o=!1,s=!1;try{let a=await Q.promises.lstat(B(i,n));r=a.isFile(),o=a.isDirectory(),s=a.isSymbolicLink()}catch(a){a.code!=="ENOENT"&&console.warn("[node.js fs] unexpected error from lstat after readdir: ",a)}t.push({name:n,isFile:()=>r,isDirectory:()=>o,isSymbolicLink:()=>s})}return t}function nT(i){return i.map(t=>typeof t=="string"?qe?zs(t):t:(t.name=qe?zs(t.name):t.name,t))}async function rT(i){let t=await Ul(i),e=[];for(let n of t)await bt.existsDirectory(B(i,n))&&e.push(n);return e}var bt;(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(H&&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})(bt||={});var iT=new Hi;function oT(i,t,e){return iT.queueFor(y.file(i),()=>{let n=lT(e);return new Promise((r,o)=>aT(i,t,n,s=>s?o(s):r()))},vt)}var $y=!0;function sT(i){$y=i}function aT(i,t,e,n){if(!$y)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),sT(!1)),Q.close(o,l=>n(l))))})})}function lT(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 cT(i,t,e=6e4){if(i!==t)try{H&&typeof e=="number"?await Vy(i,t,Date.now(),e):await Q.promises.rename(i,t)}catch(n){if(i.toLowerCase()!==t.toLowerCase()&&n.code==="EXDEV"||i.endsWith("."))await By(i,t,{preserveSymlinks:!1}),await Wy(i,1);else throw n}}async function Vy(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 bt.stat(t);a.isFile()||(s=!0)}catch{}if(s)throw o}return await zn(Math.min(100,r*10)),Vy(i,t,e,n,r+1)}}async function By(i,t,e){return Hy(i,t,{root:{source:i,target:t},options:e,handledSourcePaths:new Set})}var Fy=511;async function Hy(i,t,e){if(e.handledSourcePaths.has(i))return;e.handledSourcePaths.add(i);let{stat:n,symbolicLink:r}=await bt.stat(i);if(r){if(e.options.preserveSymlinks)try{return await pT(i,t,e)}catch{}if(r.dangling)return}return n.isDirectory()?dT(i,t,n.mode&Fy,e):uT(i,t,n.mode&Fy)}async function dT(i,t,e,n){await Q.promises.mkdir(t,{recursive:!0,mode:e});let r=await Ul(i);for(let o of r)await Hy(B(i,o),B(t,o),n)}async function uT(i,t,e){await Q.promises.copyFile(i,t),await Q.promises.chmod(t,e)}async function pT(i,t,e){let n=await Q.promises.readlink(i);Hn(n,e.root.source,!he)&&(n=B(e.root.target,n.substr(e.root.source.length+1))),await Q.promises.symlink(n,t)}async function fT(i){try{return await js(Q.realpath)(i)}catch{let t=mT(i);return await Q.promises.access(t,Q.constants.R_OK),t}}function mT(i){return $i(Ht(i),Se)}var Ce=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 js(Q.fdatasync)}get open(){return js(Q.open)}get close(){return js(Q.close)}get ftruncate(){return js(Q.ftruncate)}async exists(i){try{return await Q.promises.access(i),!0}catch{return!1}}get readdir(){return Ul}get readDirsInDir(){return rT}get writeFile(){return oT}get rm(){return Wy}get rename(){return cT}get copy(){return By}get realpath(){return fT}};function jy(i=Ue){return i.comspec||"cmd.exe"}function Ky(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))}})||H)&&(e=!0)};return{send:n}}async function hT(i){if(await Ce.exists(i)){let t;try{t=await zy.stat(i)}catch(e){e.message.startsWith("EACCES")&&(t=await zy.lstat(i))}return t?!t.isDirectory():!1}return!1}async function Fl(i,t,e,n=Ue,r=hT){if(qt(i))return await r(i)?i:void 0;if(t===void 0&&(t=Yr()),de(i)!=="."){let l=B(t,i);return await r(l)?l:void 0}let s=gn(n,"PATH");if(e===void 0&&Ee(s)&&(e=s.split(Wi)),e===void 0||e.length===0){let l=B(t,i);return await r(l)?l:void 0}for(let l of e){let c;if(qt(l)?c=B(l,i):c=B(t,l,i),H){let d=(gn(n,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(async f=>{let g=c+f;return await r(g)?g:void 0});for(let f of d){let g=await f;if(g)return g}}if(await r(c))return c}let a=B(t,i);return await r(a)?a:void 0}var Wl=class extends Hs{constructor(t){super({send:e=>{try{process.send?.(e.buffer.toString("base64"))}catch{}},onMessage:X.fromNodeEventEmitter(process,"message",e=>k.wrap(Buffer.from(e,"base64")))},t),process.once("disconnect",()=>this.dispose())}},$l=class{constructor(t,e){this.modulePath=t;this.options=e;this.activeRequests=new Set;this.channels=new Map;this._onDidProcessExit=new x;this.onDidProcessExit=this._onDidProcessExit.event;let n=e.timeout||6e4;this.disposeDelayer=new ni(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=$e.None){if(!this.disposeDelayer)return Promise.reject(new Error("disposed"));if(r.isCancellationRequested)return Promise.reject(nl());this.disposeDelayer.cancel();let o=this.getCachedChannel(t),s=zi(c=>o.call(e,n,c)),a=r.onCancellationRequested(()=>s.cancel()),l=A(()=>s.cancel());return this.activeRequests.add(l),s.finally(()=>{a.dispose(),this.activeRequests.delete(l),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}),s}requestEvent(t,e,n){if(!this.disposeDelayer)return X.None;this.disposeDelayer.cancel();let r,o=new x({onWillAddFirstListener:()=>{r=this.getCachedChannel(t).listen(e,n)(o.fire,o),this.activeRequests.add(r)},onDidRemoveLastListener:()=>{this.activeRequests.delete(r),r.dispose(),this.activeRequests.size===0&&this.disposeDelayer&&this.disposeDelayer.trigger(()=>this.disposeClient())}});return o.event}get client(){if(!this._client){let t=this.options.args||[],e=Object.create(null);e.env={...zt(process.env),VSCODE_PARENT_PID:String(process.pid)},this.options.env&&(e.env={...e.env,...this.options.env}),this.options.freshExecArgv&&(e.execArgv=[]),typeof this.options.debug=="number"&&(e.execArgv=["--nolazy","--inspect="+this.options.debug]),typeof this.options.debugBrk=="number"&&(e.execArgv=["--nolazy","--inspect-brk="+this.options.debugBrk]),e.execArgv===void 0&&(e.execArgv=process.execArgv.filter(d=>!/^--inspect(-brk)?=/.test(d)).filter(d=>!d.startsWith("--vscode-"))),My(e.env),this.child=vT(this.modulePath,t,e);let n=new x,o=X.fromNodeEventEmitter(this.child,"message",d=>d)(d=>{if(Ay(d)){Dy(d,`IPC Library: ${this.options.serverName}`);return}n.fire(k.wrap(Buffer.from(d,"base64")))}),s=this.options.useQueue?Ky(this.child):this.child,a=d=>this.child?.connected&&s.send(d.buffer.toString("base64")),l=n.event,c={send:a,onMessage:l};this._client=new Qi(c);let u=()=>this.disposeClient();process.once("exit",u),this.child.on("error",d=>console.warn('IPC "'+this.options.serverName+'" errored with '+d)),this.child.on("exit",(d,f)=>{process.removeListener("exit",u),o.dispose(),this.activeRequests.forEach(g=>ut(g)),this.activeRequests.clear(),d!==0&&f!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+d+" and signal "+f),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:d,signal:f})})}return this._client}getCachedChannel(t){let e=this.channels.get(t);return e||(e=this.client.getChannel(t),this.channels.set(t,e)),e}disposeClient(){this._client&&(this.child&&(this.child.kill(),this.child=null),this._client=null,this.channels.clear())}dispose(){this._onDidProcessExit.dispose(),this.disposeDelayer?.cancel(),this.disposeDelayer=void 0,this.disposeClient(),this.activeRequests.clear()}};function Vl(i){return!!i.parentPort}var Qp=class{constructor(t){this.port=t;this.onMessage=X.fromNodeEventEmitter(this.port,"message",e=>e.data?k.wrap(e.data):k.alloc(0)),t.start()}send(t){this.port.postMessage(t.buffer)}disconnect(){this.port.close()}},Ks=class i extends Nl{static getOnDidClientConnect(t){ph(Vl(process),"Electron Utility Process");let e=new x;return process.parentPort.on("message",n=>{if(t?.handledClientConnection(n))return;let r=n.ports.at(0);r&&e.fire(r)}),X.map(e.event,n=>({protocol:new Qp(n),onDidClientDisconnect:X.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 el from"os";import*as Za from"inspector";var on;(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})(on||={});var Ve=$("instantiationService");function ST(i,t,e){t[on.DI_TARGET]===t?t[on.DI_DEPENDENCIES].push({id:i,index:e}):(t[on.DI_DEPENDENCIES]=[{id:i,index:e}],t[on.DI_TARGET]=t)}function $(i){if(on.serviceIds.has(i))return on.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");ST(t,e,r)};return t.toString=()=>i,on.serviceIds.set(i,t),t}var Gs="VSCODE_AGENT_HOST_CLAUDE_SDK_PATH";var Gy="agent-host/otel/agent-host-traces.db",eL=Object.freeze({Enabled:"COPILOT_OTEL_ENABLED",ExporterType:"COPILOT_OTEL_EXPORTER_TYPE",OtlpEndpoint:"OTEL_EXPORTER_OTLP_ENDPOINT",OtlpEndpointAlt:"COPILOT_OTEL_ENDPOINT",OtlpProtocol:"OTEL_EXPORTER_OTLP_PROTOCOL",OtlpHeaders:"OTEL_EXPORTER_OTLP_HEADERS",CaptureContent:"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT",FilePath:"COPILOT_OTEL_FILE_EXPORTER_PATH",SourceName:"COPILOT_OTEL_SOURCE_NAME",DbSpanExporterEnabled:"COPILOT_OTEL_DB_SPAN_EXPORTER_ENABLED"});var to={resource:"https://api.github.com",resource_name:"GitHub Copilot",authorization_servers:["https://github.com/login/oauth"],scopes_supported:["read:user","user:email"],required:!0},q;(n=>{function i(r,o){return y.from({scheme:r,path:`/${o}`})}n.uri=i;function t(r){return(typeof r=="string"?y.parse(r):r).path.substring(1)}n.id=t;function e(r){return(typeof r=="string"?y.parse(r):r).scheme||void 0}n.provider=e})(q||={});var tL=$("agentService"),nL=$("agentHostService");function Yp(i,t){return t&&(i.stack||i.stacktrace)?m(116,null,Qy(i),Jy(i.stack)||Jy(i.stacktrace)):Qy(i)}function Jy(i){return Array.isArray(i)?i.join(`
`):i}function Qy(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 St(i=null,t=!1){if(!i)return m(113,null);if(Array.isArray(i)){let e=Ei(i),n=St(e[0],t);return e.length>1?m(114,null,n,e.length):n}if(Ee(i))return i;if(i.detail){let e=i.detail;if(e.error)return Yp(e.error,t);if(e.exception)return Yp(e.exception,t)}return i.stack?Yp(i,t):i.message?i.message:m(113,null)}var sL=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list",html:"text/html"});var Xp={".aac":"audio/x-aac",".avi":"video/x-msvideo",".bmp":"image/bmp",".flv":"video/x-flv",".gif":"image/gif",".ico":"image/x-icon",".jpe":["image/jpg","image/jpeg"],".jpeg":["image/jpg","image/jpeg"],".jpg":["image/jpg","image/jpeg"],".m1v":"video/mpeg",".m2a":"audio/mpeg",".m2v":"video/mpeg",".m3a":"audio/mpeg",".mid":"audio/midi",".midi":"audio/midi",".mk3d":"video/x-matroska",".mks":"video/x-matroska",".mkv":"video/x-matroska",".mov":"video/quicktime",".movie":"video/x-sgi-movie",".mp2":"audio/mpeg",".mp2a":"audio/mpeg",".mp3":"audio/mpeg",".mp4":"video/mp4",".mp4a":"audio/mp4",".mp4v":"video/mp4",".mpe":"video/mpeg",".mpeg":"video/mpeg",".mpg":"video/mpeg",".mpg4":"video/mp4",".mpga":"audio/mpeg",".oga":"audio/ogg",".ogg":"audio/ogg",".opus":"audio/opus",".ogv":"video/ogg",".png":"image/png",".psd":"image/vnd.adobe.photoshop",".qt":"video/quicktime",".spx":"audio/ogg",".svg":"image/svg+xml",".tga":"image/x-tga",".tif":"image/tiff",".tiff":"image/tiff",".wav":"audio/x-wav",".webm":"video/webm",".webp":"image/webp",".wma":"audio/x-ms-wma",".wmv":"video/x-ms-wmv",".woff":"application/font-woff"};function Bl(i){let t=Sl(i),e=Xp[t.toLowerCase()];return Array.isArray(e)?e[0]:e}function Yy(i){for(let t in Xp){let e=Xp[t];if(Array.isArray(e)?e.includes(i):e===i)return t}}var nt=class{constructor(t,e,n){this.owner=t;this.debugNameSource=e;this.referenceFn=n}getDebugName(t){return tv(t,this)}},Xy=new Map,Zp=new WeakMap;function tv(i,t){let e=Zp.get(i);if(e)return e;let n=IT(i,t);if(n){let r=Xy.get(n)??0;r++,Xy.set(n,r);let o=r===1?n:`${n}#${r}`;return Zp.set(i,o),o}}function IT(i,t){let e=Zp.get(i);if(e)return e;let n=t.owner?CT(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=Js(s),r!==void 0))return n+r;if(t.owner!==void 0){let a=_T(t.owner,i);if(a!==void 0)return n+a}}function _T(i,t){for(let e in i)if(i[e]===t)return e}var Zy=new Map,ev=new WeakMap;function CT(i){let t=ev.get(i);if(t)return t;let e=ef(i)??"Object",n=Zy.get(e)??0;n++,Zy.set(e,n);let r=n===1?e:`${e}#${n}`;return ev.set(i,r),r}function ef(i){let t=i.constructor;if(t)return t.name==="Object"?void 0:t.name}function Js(i){let t=i.toString(),n=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t);return(n?n[1]:void 0)?.trim()}function Rt(i,t){return i===t}function TT(){return(i,t)=>i===t}function xT(i,t,e){return Zt(i,t,e??Rt)}function wT(i){return(t,e)=>Zt(t,e,i??Rt)}function Hl(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(!Hl(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)||!Hl(e[a],n[a]))return!1;return!0}return!1}function RT(){return(i,t)=>Hl(i,t)}function ET(i,t){return JSON.stringify(i)===JSON.stringify(t)}function PT(){return(i,t)=>JSON.stringify(i)===JSON.stringify(t)}function kT(){return(i,t)=>i.equals(t)}function AT(i,t,e){return i==null||t===void 0||t===null?t===i:e(i,t)}function DT(i){return(t,e)=>t==null||e===void 0||e===null?e===t:i(t,e)}var OT;(d=>(d.strict=Rt,d.strictC=TT,d.array=xT,d.arrayC=wT,d.structural=Hl,d.structuralC=RT,d.jsonStringify=ET,d.jsonStringifyC=PT,d.thisC=kT,d.ifDefined=AT,d.ifDefinedC=DT))(OT||={});function tf(i){let t=new Error("BugIndicatingErrorRecovery: "+i);Le(t),console.error("recovered from an error that indicates a bug",t)}var si;function Qs(i){si?si instanceof ql?si.loggers.push(i):si=new ql([si,i]):si=i}function ye(){return si}var nf;function nv(i){nf=i}function rv(i){nf&&nf(i)}var ql=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 ai(i,t){let e=new Tr(i,t);try{i(e)}finally{e.finish()}}function rf(i,t,e){i?t(i):ai(t,e)}var Tr=class{constructor(t,e){this._fn=t;this._getDebugName=e;this._updatingObservers=[];ye()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():Js(this._fn)}updateObserver(t,e){if(!this._updatingObservers){tf("Transaction already finished!"),ai(n=>{n.updateObserver(t,e)});return}this._updatingObservers.push({observer:t,observable:e}),t.beginUpdate(e)}finish(){let t=this._updatingObservers;if(!t){tf("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,ye()?.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}};var Be;(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,of.fromStack(s,2)}n.ofCaller=e})(Be||={});var of=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=LT(n[e+1]);if(r)return new i(r.fileName,r.line,r.column,r.id)}};function LT(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 sf;function iv(i){sf=i}var ov;function sv(i){ov=i}var av;function lv(i){av=i}var af;function cv(i){af=i}var zl=class{get TChange(){return null}reportChanges(){this.get()}read(t){return t?t.readObservable(this):this.get()}map(t,e,n=Be.ofCaller()){let r=e===void 0?void 0:t,o=e===void 0?t:e;return sf({owner:r,debugName:()=>{let s=Js(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 sf({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},t=>this.read(t).read(t))}recomputeInitiallyAndOnChange(t,e){return t.add(ov(this,e)),this}keepObserved(t){return t.add(av(this)),this}get debugValue(){return this.get()}get debug(){return new lf(this)}},lf=class{constructor(t){this.observable=t}getDependencyGraph(){return af(this.observable,{type:"dependencies"})}getObserverGraph(){return af(this.observable,{type:"observers"})}},jt=class extends zl{constructor(e){super();this._observers=new Set;ye()?.handleObservableCreated(this,e)}addObserver(e){let n=this._observers.size;this._observers.add(e),n===0&&this.onFirstObserverAdded(),n!==this._observers.size&&ye()?.handleOnListenerCountChanged(this,this._observers.size)}removeObserver(e){let n=this._observers.delete(e);n&&this._observers.size===0&&this.onLastObserverRemoved(),n&&ye()?.handleOnListenerCountChanged(this,this._observers.size)}onFirstObserverAdded(){}onLastObserverRemoved(){}log(){let e=!!ye();return rv(this),e||ye()?.handleObservableCreated(this,Be.ofCaller()),this}debugGetObservers(){return this._observers}};function yn(i,t,e=Be.ofCaller()){let n;return typeof i=="string"?n=new nt(void 0,i,void 0):n=new nt(i,void 0,void 0),new hn(n,t,Rt,e)}var hn=class extends jt{constructor(e,n,r,o){super(o);this._debugNameData=e;this._equalityComparator=r;this._value=n,ye()?.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 Tr(()=>{},()=>`Setting ${this.debugName}`));try{let s=this._value;this._setValue(e),ye()?.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}};var jl=class extends jt{constructor(e,n,r,o){super(o);this._debugNameData=e;this._equalityComparator=r;this._isUpToDate=!0;this._deltas=[];this._updateCounter=0;this._value=n}get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(let e of this._deltas){ye()?.handleObservableUpdated(this,{change:e,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(let n of this._observers)n.handleChange(this,e)}this._deltas.length=0}else{ye()?.handleObservableUpdated(this,{change:void 0,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(let e of this._observers)e.handleChange(this,void 0)}}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(let e of this._observers)e.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();let e=[...this._observers];for(let n of e)n.endUpdate(this)}}addObserver(e){let n=!this._observers.has(e)&&this._updateCounter>0;super.addObserver(e),n&&e.beginUpdate(this)}removeObserver(e){let n=this._observers.has(e)&&this._updateCounter>0;super.removeObserver(e),n&&e.endUpdate(this)}set(e,n,r){if(r===void 0&&this._equalityComparator(this._value,e))return;let o;n||(n=o=new Tr(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(e),r!==void 0&&this._deltas.push(r),n.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(s,a)=>{},handlePossibleChange:s=>{}},this),this._updateCounter>1)for(let s of this._observers)s.handlePossibleChange(this)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}};function Ys(i,t,e=Be.ofCaller()){return i.lazy?new jl(new nt(i.owner,i.debugName,void 0),t,i.equalsFn??Rt,e):new hn(new nt(i.owner,i.debugName,void 0),t,i.equalsFn??Rt,e)}function MT(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var Kn=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),ye()?.handleAutorunCreated(this,r),this._run(),pr(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(),ye()?.handleAutorunDisposed(this),fr(this)}}_run(){let t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t,this._state=3;try{if(!this._disposed){ye()?.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){cr(r)}finally{this._isRunning=!1,n!==void 0&&n.dispose()}}}finally{this._disposed||ye()?.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--}xs(()=>this._updateCount>=0)}handlePossibleChange(t){this._state===3&&this._isDependency(t)&&(this._checkIterations(),this._state=1)}handleChange(t,e){if(this._isDependency(t)){ye()?.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){cr(n)}}}_isDependency(t){return this._dependencies.has(t)&&!this._dependenciesToBeRemoved.has(t)}_ensureNoRunning(){if(!this._isRunning)throw new Te("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 Te("Cannot access store after dispose");return this._store===void 0&&(this._store=new z),this._store}get delayedStore(){if(this._ensureNoRunning(),this._disposed)throw new Te("Cannot access store after dispose");return this._delayedStore===void 0&&(this._delayedStore=new z),this._delayedStore}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:MT(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}_checkIterations(){return this._iteration>100?(cr(new Te(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function xr(i,t=Be.ofCaller()){return new Kn(new nt(void 0,void 0,i),i,void 0,t)}function NT(i){switch(i){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var rt=class extends jt{constructor(e,n,r,o=void 0,s,a){super(a);this._debugNameData=e;this._computeFn=n;this._changeTracker=r;this._handleLastObserverRemoved=o;this._equalityComparator=s;this._state=0;this._value=void 0;this._updateCount=0;this._dependencies=new Set;this._dependenciesToBeRemoved=new Set;this._changeSummary=void 0;this._isUpdating=!1;this._isComputing=!1;this._didReportChange=!1;this._isInBeforeUpdate=!1;this._isReaderValid=!1;this._store=void 0;this._delayedStore=void 0;this._removedObserverToCallEndUpdateOn=null;this._changeSummary=this._changeTracker?.createChangeSummary(void 0)}get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}onLastObserverRemoved(){this._state=0,this._value=void 0,ye()?.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),ye()?.handleObservableUpdated(this,{oldValue:s,newValue:this._value,change:void 0,didChange:e,hadValue:o})}catch(r){cr(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 Te("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)}}xs(()=>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){ye()?.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){cr(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 Te("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);let n=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),n}reportChange(e){this._ensureReaderValid(),this._didReportChange=!0;for(let n of this._observers)n.handleChange(this,e)}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new z),this._store}get delayedStore(){return this._ensureReaderValid(),this._delayedStore===void 0&&(this._delayedStore=new z),this._delayedStore}addObserver(e){let n=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),n&&(this._removedObserverToCallEndUpdateOn?.delete(e)||e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:NT(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 cf(i,t,e=Be.ofCaller()){return new rt(new nt(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??Rt,e)}iv(cf);function no(...i){let t,e,n,r;return i.length===2?[e,n]=i:[t,e,n,r]=i,new Kt(new nt(t,void 0,n),e,n,()=>Kt.globalTransaction,Rt,r??Be.ofCaller())}var Kt=class extends jt{constructor(e,n,r,o,s,a){super(a);this._debugNameData=e;this.event=n;this._getValue=r;this._getTransaction=o;this._equalityComparator=s;this._hasValue=!1;this.handleEvent=e=>{let n=this._getValue(e),r=this._value,o=!this._hasValue||!this._equalityComparator(r,n),s=!1;o&&(this._value=n,this._hasValue&&(s=!0,rf(this._getTransaction(),a=>{ye()?.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||ye()?.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=Kt;function t(n,r){let o=!1;Kt.globalTransaction===void 0&&(Kt.globalTransaction=n,o=!0);try{r()}finally{o&&(Kt.globalTransaction=void 0)}}e.batchEventsGlobally=t})(no||={});function uv(i){let t=new Kl(!1,void 0);return i.addObserver(t),A(()=>{i.removeObserver(t)})}lv(uv);function pv(i,t){let e=new Kl(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return A(()=>{i.removeObserver(e)})}sv(pv);var Kl=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 Gl;function fv(i){Gl||(Gl=new Xs,Qs(Gl)),Gl.addFilteredObj(i)}var Xs=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 BT([ro(zT("|  ",this.indentation)),t])}formatInfo(t){return t.hadValue?t.didChange?[ro(" "),Gt(Ut(t.oldValue,70),{color:"red",strikeThrough:!0}),ro(" "),Gt(Ut(t.newValue,60),{color:"green"})]:[ro(" (unchanged)")]:[ro(" "),Gt(Ut(t.newValue,60),{color:"green"}),ro(" (initial)")]}handleObservableCreated(t){if(t instanceof rt){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 rt){this._handleDerivedRecomputed(t,e);return}console.log(...this.textToConsoleArgs([io("observable value changed"),Gt(t.debugName,{color:"BlueViolet"}),...this.formatInfo(e)]))}}formatChanges(t){if(t.size!==0)return Gt(" (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([io("derived recomputed"),Gt(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([io("derived cleared"),Gt(t.debugName,{color:"BlueViolet"})]))}handleFromEventObservableTriggered(t,e){this._isIncluded(t)&&console.log(...this.textToConsoleArgs([io("observable from event triggered"),Gt(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([io("autorun"),Gt(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([io("transaction"),Gt(e,{color:"BlueViolet"}),{data:[{fn:t._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}};function BT(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 ro(i){return Gt(i,{color:"black"})}function io(i){return Gt(jT(`${i}: `,10),{color:"black",bold:!0})}function Gt(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 Ut(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)?HT(i,t):qT(i,t);case"symbol":return i.toString();case"function":return`[[Function${i.name?" "+i.name:""}]]`;default:return""+i}}function HT(i,t){let e="[ ",n=!0;for(let r of i){if(n||(e+=", "),e.length-5>t){e+="...";break}n=!1,e+=`${Ut(r,t-e.length)}`}return e+=" ]",e}function qT(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=ef(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}: ${Ut(s,t-n.length)}`}return n+=e?")":" }",n}function zT(i,t){let e="";for(let n=1;n<=t;n++)e+=i;return e}function jT(i,t){for(;i.length<t;)i+=" ";return i}var Jl=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 mv(i,t){let e=globalThis,n=[],r,{channel:o,handler:s}=KT({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},Jl.createClient(o,()=>{if(!a)throw new Error("Not supported");return a})}function KT(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 Ql=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 df(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?df(i[e],t[e]):i[e]=t[e]}function uf(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"?uf(i[e],t[e]):i[e]=t[e]}var Yl=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=mv("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(dr)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(dr),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(dr)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(dr)}),getTransactionState:()=>this.getTransactionState(),setValue:(t,e)=>{let n=this._aliveInstances.get(t);if(n instanceof rt)n.debugSetValue(e);else if(n instanceof hn)n.debugSetValue(e);else if(n instanceof Kt)n.debugSetValue(e);else throw new Te("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 rt)return Ut(e.debugGetState().value,200);if(e instanceof hn)return Ut(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 Te("Observable is not supported")},rerun:t=>{let e=this._aliveInstances.get(t);if(e instanceof rt)e.debugRecompute();else if(e instanceof Kn)e.debugRerun();else throw new Te("Observable is not supported")}}}));this._pendingChanges=null;this._changeThrottler=new Ql;this._fullState={};this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)};Be.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){Le(new Te("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){Le(new Te("No info found"));return}return e}_getInfo(t,e){if(t instanceof rt){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(dr);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 Kn){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 rt)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){uf(this._fullState,t),this._pendingChanges===null?this._pendingChanges=t:df(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 rt?"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 rt){this._handleDerivedRecomputed(t,e);return}let n=this._getObservableInfo(t);n&&e.didChange&&(n.lastValue=Ut(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=Ut(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 gv(i,t){let e=t?.debugNamePostProcessor??(o=>o),n=li.from(i,e);if(!n)return"";let r=new Set;return t.type==="observers"?yv(n,0,r,t).trim():hv(n,0,r,t).trim()}function hv(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: ${Ut(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=li.from(a,n.debugNamePostProcessor??(c=>c))??li.unknown(a);o.push(hv(l,t+1,e,n))}}return o.join(`
`)}function yv(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: ${Ut(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=li.from(a,n.debugNamePostProcessor??(c=>c))??li.unknown(a);o.push(yv(l,t+1,e,n))}}return o.join(`
`)}var li=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 Kn){let n=t.debugGetState();return new i(t,e(t.debugName),"autorun",void 0,n.stateStr,Array.from(n.dependencies),[])}else if(t instanceof rt){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 hn){let n=t.debugGetState();return new i(t,e(t.debugName),"observableValue",n.value,"upToDate",[],Array.from(t.debugGetObservers()))}else if(t instanceof Kt){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",[],[])}};cv(gv);nv(fv);var GT=!1;GT&&Qs(new Xs);Ue&&Ue.VSCODE_DEV_DEBUG_OBSERVABLES&&Qs(Yl.getInstance());var pf=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]}},ff=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?_l(t,this._value,0,t.length,this._from,this._to):ti(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}},Xl=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?_l(t,this._value,0,t.length,this._from,this._to):ti(t,this._value,0,t.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}};var mf=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 Xl(!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 xp(t,this._value.scheme);if(this._states[this._stateIdx]===2)return xp(t,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(t);if(this._states[this._stateIdx]===4)return Os(t,this._value.query);if(this._states[this._stateIdx]===5)return Os(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}},Gn=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}},oo=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 vn=class i{static forUris(t=()=>!1,e=()=>!1){return new i(new mf(t,e))}static forPaths(t=!1){return new i(new Xl(void 0,!t))}static forStrings(){return new i(new pf)}static forConfigKeys(){return new i(new ff)}constructor(t){this._iter=t}clear(){this._root=void 0}fill(t,e){if(e){let n=e.slice(0);ap(n);for(let r of n)this.set(r,t)}else{let n=t.slice(0);ap(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 oo,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 oo,r.left.segment=n.value()),o.push([-1,r]),r=r.left;else if(a<0)r.right||(r.right=new oo,r.right.segment=n.value()),o.push([1,r]),r=r.right;else if(n.hasNext())n.next(),r.mid||(r.mid=new oo,r.mid.segment=n.value()),o.push([0,r]),r=r.mid;else break}let s=Gn.unwrap(r.value);r.value=Gn.wrap(e),r.key=t;for(let a=o.length-1;a>=0;a--){let l=o[a][1];l.updateHeight();let c=l.balanceFactor();if(c<-1||c>1){let u=o[a][0],d=o[a+1][0];if(u===1&&d===1)o[a][1]=l.rotateLeft();else if(u===-1&&d===-1)o[a][1]=l.rotateRight();else if(u===1&&d===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(u===-1&&d===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return s}get(t){return Gn.unwrap(this._getNode(t)?.value)}_getNode(t){let e=this._iter.reset(t),n=this._root;for(;n;){let r=e.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else if(e.hasNext())e.next(),n=n.mid;else break}return n}has(t){let e=this._getNode(t);return!(e?.value===void 0&&e?.mid===void 0)}delete(t){return this._delete(t,!1)}deleteSuperstr(t){return this._delete(t,!0)}_delete(t,e){let n=this._iter.reset(t),r=[],o=this._root;for(;o;){let s=n.cmp(o.segment);if(s>0)r.push([-1,o]),o=o.left;else if(s<0)r.push([1,o]),o=o.right;else if(n.hasNext())n.next(),r.push([0,o]),o=o.mid;else break}if(o){if(e?(o.left=void 0,o.mid=void 0,o.right=void 0,o.height=1):(o.key=void 0,o.value=void 0),!o.mid&&!o.value)if(o.left&&o.right){let s=[[1,o]],a=this._min(o.right,s);if(a.key){o.key=a.key,o.value=a.value,o.segment=a.segment;let l=a.right;if(s.length>1){let[u,d]=s[s.length-1];switch(u){case-1:d.left=l;break;case 0:al(!1);case 1:al(!1)}}else o.right=l;let c=this._balanceByStack(s);if(r.length>0){let[u,d]=r[r.length-1];switch(u){case-1:d.left=c;break;case 0:d.mid=c;break;case 1:d.right=c;break}}else this._root=c}}else{let s=o.left??o.right;if(r.length>0){let[a,l]=r[r.length-1];switch(a){case-1:l.left=s;break;case 0:l.mid=s;break;case 1:l.right=s;break}}else this._root=s}this._root=this._balanceByStack(r)??this._root}}_min(t,e){for(;t.left;)e.push([-1,t]),t=t.left;return t}_balanceByStack(t){for(let e=t.length-1;e>=0;e--){let n=t[e][1];n.updateHeight();let r=n.balanceFactor();if(r>1?(n.right.balanceFactor()>=0||(n.right=n.right.rotateRight()),t[e][1]=n.rotateLeft()):r<-1&&(n.left.balanceFactor()<=0||(n.left=n.left.rotateLeft()),t[e][1]=n.rotateRight()),e>0)switch(t[e-1][0]){case-1:t[e-1][1].left=t[e][1];break;case 1:t[e-1][1].right=t[e][1];break;case 0:t[e-1][1].mid=t[e][1];break}else return t[0][1]}}findSubstr(t){let e=this._iter.reset(t),n=this._root,r;for(;n;){let o=e.cmp(n.segment);if(o>0)n=n.left;else if(o<0)n=n.right;else if(e.hasNext())e.next(),r=Gn.unwrap(n.value)||r,n=n.mid;else break}return n&&Gn.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?Gn.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,Gn.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 Me=$("fileService");function Qn(i){return i.create===!0}function Ft(i){return!!(i.capabilities&2)}function vv(i){return!!(i.capabilities&524288)}function gf(i){return!!(i.capabilities&8)}function bv(i){return!!(i.capabilities&131072)}function Sv(i){return!!(i.capabilities&262144)}function Yn(i){return!!(i.capabilities&4)}function tc(i){return!!(i.capabilities&16)}function nc(i){return Ft(i)?!!(i.capabilities&16384):!1}function hf(i){return Ft(i)?!!(i.capabilities&32768):!1}function Iv(i){return!!(i.capabilities&65536)}var so=class i extends Error{constructor(e,n){super(e);this.code=n}static create(e,n){let r=new i(e.toString(),n);return JT(r,n),r}};function fe(i,t){return so.create(i,t)}function Xn(i){return i||fe(m(2395,null),"Unknown")}function JT(i,t){return i.name=t?`${t} (FileSystemError)`:"FileSystemError",i}function bn(i){if(!i)return"Unknown";if(i instanceof so)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 yf(i){if(i instanceof Ge)return i.fileOperationResult;switch(bn(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 Jn=class{constructor(t,e,n){this.resource=t;this.operation=e;this.target=n}isOperation(t){return this.operation===t}};var Zl=class i{constructor(t,e){this.ignorePathCasing=e;this.correlationId=void 0;this.added=new we(()=>{let t=vn.forUris(()=>this.ignorePathCasing);return t.fill(this.rawAdded.map(e=>[e,!0])),t});this.updated=new we(()=>{let t=vn.forUris(()=>this.ignorePathCasing);return t.fill(this.rawUpdated.map(e=>[e,!0])),t});this.deleted=new we(()=>{let t=vn.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 _v(i,t,e){return!i||!t||i===t||t.length>i.length?!1:(t.charAt(t.length-1)!==Se&&(t+=Se),e?hr(i,t):i.indexOf(t)===0)}var Ge=class extends Error{constructor(e,n,r){super(e);this.fileOperationResult=n;this.options=r}},ao=class extends Ge{constructor(e,n,r,o){super(e,n,o);this.fileOperationResult=n;this.size=r}},lo=class extends Ge{constructor(e,n,r){super(e,2,r);this.stat=n}};var rc="";function vf(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var ec=class i{static{this.KB=1024}static{this.MB=i.KB*i.KB}static{this.GB=i.MB*i.KB}static{this.TB=i.GB*i.KB}static formatSize(t){return ws(t)||(t=0),t<i.KB?m(2390,null,t.toFixed(0)):t<i.MB?m(2392,null,(t/i.KB).toFixed(2)):t<i.GB?m(2393,null,(t/i.MB).toFixed(2)):t<i.TB?m(2391,null,(t/i.GB).toFixed(2)):m(2394,null,(t/i.TB).toFixed(2))}};var Zn=class{constructor(t,e=[],n=!1){this.ctor=t,this.staticArguments=e,this.supportsDelayedInstantiation=n}};var bf=class{constructor(t,e){this.key=t;this.data=e;this.incoming=new Map;this.outgoing=new Map}},Zs=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 bf(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 wr=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 QT=!1,ic=class extends Error{constructor(t){super("cyclic dependency between services"),this.message=t.findCycleSlow()??`UNABLE to detect cycle, dumping graph: 
${t.toString()}`}},co=class i{constructor(t=new wr,e=!1,n,r=QT){this._services=t;this._strict=e;this._parent=n;this._enableTracing=r;this._isDisposed=!1;this._servicesToMaybeDispose=new Set;this._children=new Set;this._activeInstantiations=new Set;this._services.set(Ve,this),this._globalGraph=r?n?._globalGraph??new Zs(o=>o):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,ut(this._children),this._children.clear();for(let t of this._servicesToMaybeDispose)Li(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=ea.traceInvocation(this._enableTracing,t),r=!1;try{return t({get:s=>{if(r)throw rl("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 Zn?(n=ea.traceCreation(this._enableTracing,t.ctor),r=this._createInstance(t.ctor,t.staticArguments.concat(e),n)):(n=ea.traceCreation(this._enableTracing,t),r=this._createInstance(t,e,n)),n.stop(),r}_createInstance(t,e=[],n){let r=on.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 Zn)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 Zn?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 Zs(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 ic(r);for(let c of on.getServiceDependencies(l.desc.ctor)){let u=this._getServiceInstanceOrDescriptor(c.id);if(u||this._throwIfStrict(`[createInstance] ${t} depends on ${c.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(c.id)),u instanceof Zn){let d={id:c.id,desc:u,_trace:l._trace.branch(c.id,!0)};r.insertEdge(l,d),s.push(d)}}}}for(;;){let l=r.roots();if(l.length===0){if(!r.isEmpty())throw new ic(r);break}for(let{data:c}of l){if(this._getServiceInstanceOrDescriptor(c.id)instanceof Zn){let d=this._createServiceInstanceWithOwner(c.id,c.desc.ctor,c.desc.staticArguments,c.desc.supportsDelayedInstantiation,c._trace);this._setCreatedServiceInstance(c.id,d)}r.removeNode(c)}}return this._getServiceInstanceOrDescriptor(t)}_createServiceInstanceWithOwner(t,e,n=[],r,o){if(this._services.get(t)instanceof Zn)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 El(()=>{let u=a._createInstance(e,n,o);for(let[d,f]of l){let g=u[d];if(typeof g=="function")for(let h of f)h.disposable=g.apply(u,h.listener)}return l.clear(),s.add(u),u});return new Proxy(Object.create(null),{get(u,d){if(!c.isInitialized&&typeof d=="string"&&(d.startsWith("onDid")||d.startsWith("onWill"))){let h=l.get(d);return h||(h=new Es,l.set(d,h)),(S,_,b)=>{if(c.isInitialized)return c.value[d](S,_,b);{let I={listener:[S,_,b],disposable:void 0},R=h.push(I);return A(()=>{R(),I.disposable?.dispose()})}}}if(d in u)return u[d];let f=c.value,g=f[d];return typeof g!="function"||(g=g.bind(f),u[d]=g),g},set(u,d,f){return c.value[d]=f,!0},getPrototypeOf(u){return e.prototype}})}else{let a=this._createInstance(e,n,o);return s.add(a),a}}_throwIfStrict(t,e){if(e&&console.warn(t),this._strict)throw new Error(t)}};var ea=class i{constructor(t,e){this.type=t;this.name=e;this._start=Date.now();this._dep=[]}static{this.all=new Set}static{this._None=new class extends i{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(t,e){return t?new i(2,e.name||new Error().stack.split(`
`).slice(3,4).join(`
`)):i._None}static traceCreation(t,e){return t?new i(1,e.name):i._None}static{this._totals=0}branch(t,e){let n=new i(3,t.toString());return this._dep.push([t,e,n]),n}stop(){let t=Date.now()-this._start;i._totals+=t;let e=!1;function n(o,s){let a=[],l=new Array(o+1).join("	");for(let[c,u,d]of s._dep)if(u&&d){e=!0,a.push(`${l}CREATES -> ${c}`);let f=n(o+1,d);f&&a.push(f)}else a.push(`${l}uses -> ${c}`);return a.join(`
`)}let r=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${n(1,this)}`,`DONE, took ${t.toFixed(2)}ms (grand total ${i._totals.toFixed(2)}ms)`];(t>2||e)&&i.all.add(r.join(`
`))}};function Wt(i){return If(i,0)}function If(i,t){switch(typeof i){case"object":return i===null?er(349,t):Array.isArray(i)?XT(i,t):ZT(i,t);case"string":return Tv(i,t);case"boolean":return YT(i,t);case"number":return er(i,t);case"undefined":return er(937,t);default:return er(617,t)}}function er(i,t){return(t<<5)-t+i|0}function YT(i,t){return er(i?433:863,t)}function Tv(i,t){t=er(149417,t);for(let e=0,n=i.length;e<n;e++)t=er(i.charCodeAt(e),t);return t}function XT(i,t){return t=er(104579,t),i.reduce((e,n)=>If(n,e),t)}function ZT(i,t){return t=er(181387,t),Object.keys(i).sort().reduce((e,n)=>(e=Tv(n,e),If(i[n],e)),t)}function Sf(i,t,e=32){let n=e-t,r=~((1<<n)-1);return(i<<t|(r&i)>>>n)>>>0}function ta(i,t=32){return i instanceof ArrayBuffer?rn(k.wrap(new Uint8Array(i))):(i>>>0).toString(16).padStart(t/4,"0")}var Cv=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(Gh(s))if(a+1<e){let c=t.charCodeAt(a+1);Rp(c)?(a++,l=Jh(s,c)):l=65533}else{o=s;break}else Rp(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()),ta(this._h0)+ta(this._h1)+ta(this._h2)+ta(this._h3)+ta(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=i._bigBlock32,e=this._buffDV;for(let d=0;d<64;d+=4)t.setUint32(d,e.getUint32(d,!1),!1);for(let d=64;d<320;d+=4)t.setUint32(d,Sf(t.getUint32(d-12,!1)^t.getUint32(d-32,!1)^t.getUint32(d-56,!1)^t.getUint32(d-64,!1),1),!1);let n=this._h0,r=this._h1,o=this._h2,s=this._h3,a=this._h4,l,c,u;for(let d=0;d<80;d++)d<20?(l=r&o|~r&s,c=1518500249):d<40?(l=r^o^s,c=1859775393):d<60?(l=r&o|r&s|o&s,c=2400959708):(l=r^o^s,c=3395469782),u=Sf(n,5)+l+a+c+t.getUint32(d*4,!1)&4294967295,a=s,s=o,o=Sf(r,30),r=n,n=u;this._h0=this._h0+n&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}};function _f(...i){switch(i.length){case 1:return m(2193,null,i[0]);case 2:return m(2194,null,i[0],i[1]);case 3:return m(2195,null,i[0],i[1],i[2]);default:return}}var ex=m(2192,null),tx=m(2191,null),Rr=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 rl(`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(_f("==","=~"));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(_f("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(_f("||"));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(ex);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(tx);return}let o=this._input.charCodeAt(t);if(e)e=!1;else if(o===47&&!n){t++;break}else o===91?n=!0:o===92?e=!0:o===93&&(n=!1);t++}for(;t<this._input.length&&i._regexFlags.has(this._input.charCodeAt(t));)t++;this._current=t;let r=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:r,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};var Je=new Map;Je.set("false",!1);Je.set("true",!0);Je.set("isMac",qe);Je.set("isLinux",he);Je.set("isWindows",H);Je.set("isWeb",Tt);Je.set("isMacNative",qe&&!Tt);Je.set("isEdge",Ph);Je.set("isFirefox",Rh);Je.set("isChrome",gp);Je.set("isSafari",Eh);var nx=Object.prototype.hasOwnProperty;var rx={regexParsingWithErrorRecovery:!0},ix=m(2172,null),ox=m(2173,null),sx=m(2175,null),xv=m(2171,null),ax=m(2178,null),lx=m(2179,null),cx=m(2176,null),dx=m(2177,null),Cf=class i{constructor(t=rx){this._config=t;this._scanner=new Rr;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:ix,offset:0,lexeme:"",additionalInfo:ox});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?lx:void 0;throw this._parsingErrors.push({message:ax,offset:n.offset,lexeme:Rr.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]:it.or(...t)}_and(){let t=[this._term()];for(;this._matchOne(15);){let e=this._term();t.push(e)}return t.length===1?t[0]:it.and(...t)}_term(){if(this._matchOne(2)){let t=this._peek();switch(t.type){case 11:return this._advance(),lt.INSTANCE;case 12:return this._advance(),mt.INSTANCE;case 0:{this._advance();let e=this._expr();return this._consume(1,xv),e?.negate()}case 17:return this._advance(),di.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(),it.true();case 12:return this._advance(),it.false();case 0:{this._advance();let e=this._expr();return this._consume(1,xv),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 la.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(Rr.getLexeme(s)),this._advance(),s=this._peek()}let l=o.join(""),c=l.lastIndexOf("/"),u=c===l.length-1?void 0:this._removeFlagsGY(l.substring(c+1)),d;try{d=new RegExp(l.substring(1,c),u)}catch{throw this._errExpectedButGot("REGEX",r)}return it.regex(e,d)}case 18:{let o=r.lexeme;this._advance();let s=null;if(!qh(o)){let a=o.indexOf("/"),l=o.lastIndexOf("/");if(a!==l&&a>=0){let c=o.slice(a+1,l),u=o[l+1]==="i"?"i":"";try{s=new RegExp(c,u)}catch{throw this._errExpectedButGot("REGEX",r)}}}if(s===null)throw this._errExpectedButGot("REGEX",r);return la.create(e,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,sx);let r=this._value();return it.notIn(e,r)}switch(this._peek().type){case 3:{this._advance();let r=this._value();if(this._previous().type===18)return it.equals(e,r);switch(r){case"true":return it.has(e);case"false":return it.not(e);default:return it.equals(e,r)}}case 4:{this._advance();let r=this._value();if(this._previous().type===18)return it.notEquals(e,r);switch(r){case"true":return it.not(e);case"false":return it.has(e);default:return it.notEquals(e,r)}}case 5:return this._advance(),sa.create(e,this._value());case 6:return this._advance(),aa.create(e,this._value());case 7:return this._advance(),uo.create(e,this._value());case 8:return this._advance(),oa.create(e,this._value());case 13:return this._advance(),it.in(e,this._value());default:return it.has(e)}}case 20:throw this._parsingErrors.push({message:cx,offset:t.offset,lexeme:"",additionalInfo:dx}),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(2174,null,t,Rr.getLexeme(e)),o=e.offset,s=Rr.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}},it=class{static false(){return lt.INSTANCE}static true(){return mt.INSTANCE}static has(t){return ci.create(t)}static equals(t,e){return ra.create(t,e)}static notEquals(t,e){return ia.create(t,e)}static regex(t,e){return la.create(t,e)}static in(t,e){return oc.create(t,e)}static notIn(t,e){return sc.create(t,e)}static not(t){return di.create(t)}static and(...t){return ac.create(t,null,!0)}static or(...t){return ca.create(t,null,!0)}static greater(t,e){return uo.create(t,e)}static greaterEquals(t,e){return oa.create(t,e)}static smaller(t,e){return sa.create(t,e)}static smallerEquals(t,e){return aa.create(t,e)}static{this._parser=new Cf({regexParsingWithErrorRecovery:!1})}static deserialize(t){return t==null?void 0:this._parser.parse(t)}};function na(i,t){return i.cmp(t)}var lt=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 mt.INSTANCE}},mt=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 lt.INSTANCE}},ci=class i{constructor(t,e){this.key=t;this.negated=e;this.type=2}static create(t,e=null){let n=Je.get(t);return typeof n=="boolean"?n?mt.INSTANCE:lt.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Ev(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Je.get(this.key);return typeof t=="boolean"?t?mt.INSTANCE:lt.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=di.create(this.key,this)),this.negated}},ra=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?ci.create(t,n):di.create(t,n);let r=Je.get(t);return typeof r=="boolean"?e===(r?"true":"false")?mt.INSTANCE:lt.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:ui(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=Je.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?mt.INSTANCE:lt.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=ia.create(this.key,this.value,this)),this.negated}},oc=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:ui(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(H&&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(nx.call(e,n))return!0;if(H&&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=sc.create(this.key,this.valueKey)),this.negated}},sc=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=oc.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}},ia=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?di.create(t,n):ci.create(t,n);let r=Je.get(t);return typeof r=="boolean"?e===(r?"true":"false")?lt.INSTANCE:mt.INSTANCE:new i(t,e,n)}cmp(t){return t.type!==this.type?this.type-t.type:ui(this.key,this.value,t.key,t.value)}equals(t){return t.type===this.type?this.key===t.key&&this.value===t.value:!1}substituteConstants(){let t=Je.get(this.key);if(typeof t=="boolean"){let e=t?"true":"false";return this.value===e?lt.INSTANCE:mt.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=ra.create(this.key,this.value,this)),this.negated}},di=class i{constructor(t,e){this.key=t;this.negated=e;this.type=3}static create(t,e=null){let n=Je.get(t);return typeof n=="boolean"?n?lt.INSTANCE:mt.INSTANCE:new i(t,e)}cmp(t){return t.type!==this.type?this.type-t.type:Ev(this.key,t.key)}equals(t){return t.type===this.type?this.key===t.key:!1}substituteConstants(){let t=Je.get(this.key);return typeof t=="boolean"?t?lt.INSTANCE:mt.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=ci.create(this.key,this)),this.negated}};function cc(i,t){if(typeof i=="string"){let e=parseFloat(i);isNaN(e)||(i=e)}return typeof i=="string"||typeof i=="number"?t(i):lt.INSTANCE}var uo=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 cc(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:ui(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=aa.create(this.key,this.value,this)),this.negated}},oa=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 cc(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:ui(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=sa.create(this.key,this.value,this)),this.negated}},sa=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 cc(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:ui(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=oa.create(this.key,this.value,this)),this.negated}},aa=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 cc(e,r=>new i(t,r,n))}cmp(t){return t.type!==this.type?this.type-t.type:ui(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=uo.create(this.key,this.value,this)),this.negated}},la=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=Tf.create(this)),this.negated}},Tf=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 Rv(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 ac=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=na(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=Rv(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 lt.INSTANCE;if(s.type===6){r.push(...s.expr);continue}r.push(s)}if(r.length===0&&o)return mt.INSTANCE;if(r.length!==0){if(r.length===1)return r[0];r.sort(na);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=ca.create(s.expr.map(u=>i.create([u,a],null,n)),null,l);c&&(r.push(c),r.sort(na))}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 lt.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=ca.create(t,this,!0)}return this.negated}},ca=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=na(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=Rv(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 mt.INSTANCE;if(l.type===9){r=r.concat(l.expr);continue}r.push(l)}}if(r.length===0&&o)return lt.INSTANCE;r.sort(na)}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 mt.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 wv(e))for(let s of wv(n))r.push(ac.create([o,s],null,!1));t.unshift(i.create(r,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},lc=class i extends ci{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 ra.create(this.key,t)}notEqualsTo(t){return ia.create(this.key,t)}greater(t){return uo.create(this.key,t)}},J7=$("contextKeyService");function Ev(i,t){return i<t?-1:i>t?1:0}function ui(i,t,e,n){return i<e?-1:i>e?1:t<n?-1:t>n?1:0}function wv(i){return i.type===9?i.expr:[i]}var M=$("logService"),kv=$("loggerService");function wf(i){return ws(i)}var Av=3;function ux(i,t){return i!==0&&i<=t}function px(i,t,e){switch(t){case 1:i.trace(e);break;case 2:i.debug(e);break;case 3:i.info(e);break;case 4:i.warn(e);break;case 5:i.error(e);break;case 0:break;default:throw new Error(`Invalid log level ${t}`)}}var Dv=!1,Pv=!1,fx=!1;function da(i,t){switch(i){case"debug":console.debug=t;break;case"error":console.error=t;break;case"info":console.info=t;break;case"log":console.log=t;break;case"warn":console.warn=t;break}}function Ov(i){let t={debug:console.debug,error:console.error,info:console.info,log:console.log,warn:console.warn},e=(r,o,s)=>{if(!fx){Pv=!0;try{px(i,o,pi(s))}catch{}finally{Pv=!1}}t[r].apply(console,s)},n={debug:(...r)=>e("debug",2,r),error:(...r)=>e("error",5,r),info:(...r)=>e("info",3,r),log:(...r)=>e("log",3,r),warn:(...r)=>e("warn",4,r)};return da("debug",n.debug),da("error",n.error),da("info",n.info),da("log",n.log),da("warn",n.warn),A(()=>{console.debug===n.debug&&(console.debug=t.debug),console.error===n.error&&(console.error=t.error),console.info===n.info&&(console.info=t.info),console.log===n.log&&(console.log=t.log),console.warn===n.warn&&(console.warn=t.warn)})}function pi(i,t=!1){let e="";for(let n=0;n<i.length;n++){let r=i[n];if(r instanceof Error&&(r=St(r,t)),typeof r=="object")try{r=JSON.stringify(r)}catch{}e+=(n>0?" ":"")+r}return e}var dc=class extends T{constructor(){super(...arguments);this.level=Av;this._onDidChangeLogLevel=this._register(new x)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return ux(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}},fi=class extends dc{constructor(e){super();this.logAlways=e}checkLogLevel(e){return this.logAlways||super.checkLogLevel(e)}trace(e,...n){this.canLog(1)&&this.log(1,pi([e,...n],!0))}debug(e,...n){this.canLog(2)&&this.log(2,pi([e,...n]))}info(e,...n){this.canLog(3)&&this.log(3,pi([e,...n]))}warn(e,...n){this.canLog(4)&&this.log(4,pi([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,pi(r))}else this.log(5,pi([e,...n]))}flush(){}};var uc=class extends dc{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()}},ua=class extends T{constructor(e,n,r){super();this.logLevel=e;this.logsHome=n;this._loggers=new Re;this._onDidChangeLoggers=this._register(new x);this.onDidChangeLoggers=this._onDidChangeLoggers.event;this._onDidChangeLogLevel=this._register(new x);this.onDidChangeLogLevel=this._onDidChangeLogLevel.event;this._onDidChangeVisibility=this._register(new x);this.onDidChangeVisibility=this._onDidChangeVisibility.event;if(r)for(let o of r)this._loggers.set(o.resource,{logger:void 0,info:o})}getLoggerEntry(e){return Ee(e)?[...this._loggers.values()].find(n=>n.info.id===e):this._loggers.get(e)}getLogger(e){return this.getLoggerEntry(e)?.logger}createLogger(e,n){let r=this.toResource(e),o=Ee(e)?e:n?.id??Wt(r.toString()).toString(16),s=this._loggers.get(r)?.logger,a=n?.logLevel==="always"?1:n?.logLevel;s||(s=this.doCreateLogger(r,a??this.getLogLevel(r)??this.logLevel,{...n,id:o}));let l={logger:s,info:{resource:r,id:o,logLevel:a,name:n?.name,hidden:n?.hidden,group:n?.group,extensionId:n?.extensionId,when:n?.when}};return this.registerLogger(l.info),this._loggers.set(r,l),s}toResource(e){return Ee(e)?ee(this.logsHome,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`):e}setLogLevel(e,n){if(y.isUri(e)){let r=e,o=n,s=this._loggers.get(r);s&&o!==s.info.logLevel&&(s.info.logLevel=o===this.logLevel?void 0:o,s.logger?.setLevel(o),this._loggers.set(s.info.resource,s),this._onDidChangeLogLevel.fire([r,o]))}else{this.logLevel=e;for(let[r,o]of this._loggers.entries())this._loggers.get(r)?.info.logLevel===void 0&&o.logger?.setLevel(this.logLevel);this._onDidChangeLogLevel.fire(this.logLevel)}}setVisibility(e,n){let r=this.getLoggerEntry(e);r&&n!==!r.info.hidden&&(r.info.hidden=!n,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,n]))}getLogLevel(e){let n;return e&&(n=this._loggers.get(e)?.info.logLevel),n??this.logLevel}registerLogger(e){let n=this._loggers.get(e.resource);n?n.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}deregisterLogger(e){let n=this.toResource(e),r=this._loggers.get(n);r&&(r.logger&&r.logger.dispose(),this._loggers.delete(n),this._onDidChangeLoggers.fire({added:[],removed:[r.info]}))}*getRegisteredLoggers(){for(let e of this._loggers.values())yield e.info}getRegisteredLogger(e){return this._loggers.get(e)?.info}dispose(){this._loggers.forEach(e=>e.logger?.dispose()),this._loggers.clear(),super.dispose()}},xf=class{constructor(){this.onDidChangeLogLevel=new x().event}setLevel(t){}getLevel(){return 3}trace(t,...e){}debug(t,...e){}info(t,...e){}warn(t,...e){}error(t,...e){}critical(t,...e){}dispose(){}flush(){}},pc=class extends xf{};function Lv(i){if(i.verbose)return 1;if(typeof i.logLevel=="string"){let t=gx(i.logLevel.toLowerCase());if(t!==void 0)return t}return Av}function mx(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 gx(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 uU=new lc("logLevel",mx(3));var gt=$("sessionDataService"),pa="session.db",fc="attachments";var Mv="session",Nv="uncommitted",mc="turn/",Uv="{turnId}",Rf="compare/",hx="{originalTurnId}",yx="{modifiedTurnId}",Ef=()=>m(1885,null),Pf=()=>m(1888,null),kf=()=>m(1887,null),Af=()=>m(1886,null);function Fv(i,t){return!i||!t||i===t?i:`${i} \u2192 ${t}`}var mi="/changeset/";function sn(i){return`${i}${mi}${Mv}`}function Sn(i){return`${i}${mi}${Nv}`}function Df(i){return`${i}${mi}${mc}${Uv}`}function Wv(i,t){if(!t||t.includes("/"))throw new Error(`buildTurnChangesetUri: turnId must be non-empty and not contain '/' (got ${JSON.stringify(t)})`);return`${i}${mi}${mc}${t}`}function $v(i,t,e){if(!t||t.includes("/"))throw new Error(`buildCompareTurnsChangesetUri: originalTurnId must be non-empty and not contain '/' (got ${JSON.stringify(t)})`);if(!e||e.includes("/"))throw new Error(`buildCompareTurnsChangesetUri: modifiedTurnId must be non-empty and not contain '/' (got ${JSON.stringify(e)})`);return`${i}${mi}${Rf}${t}/${e}`}function In(i){let t=i.lastIndexOf(mi);if(t<0)return;let e=i.slice(t+mi.length);if(!e)return;let n=i.slice(0,t);if(e===Mv)return{sessionUri:n,changesetId:e,kind:"session"};if(e===Nv)return{sessionUri:n,changesetId:e,kind:"uncommitted"};if(e.startsWith(mc)){let r=e.slice(mc.length);return!r||r.includes("/")||r===Uv?void 0:{sessionUri:n,changesetId:e,kind:"turn",turnId:r}}if(e.startsWith(Rf)){let o=e.slice(Rf.length).split("/");if(o.length!==2)return;let[s,a]=o;return!s||!a||s===hx||a===yx?void 0:{sessionUri:n,changesetId:e,kind:"compare",originalTurnId:s,modifiedTurnId:a}}if(!e.includes("/"))return{sessionUri:n,changesetId:e,kind:"unknown"}}function Of(i){return[{label:Ef(),uriTemplate:sn(i)},{label:Pf(),uriTemplate:Sn(i),description:kf()},{label:Af(),uriTemplate:Df(i)}]}function Vv(i){return i.type.startsWith("root/")}function gc(i){return i.type.startsWith("session/")}function hc(i){return i.type.startsWith("terminal/")}function Bv(i){return i.type.startsWith("changeset/")}var Jt={ParseError:-32700,InvalidRequest:-32600,MethodNotFound:-32601,InvalidParams:-32602,InternalError:-32603},Ne={SessionNotFound:-32001,ProviderNotFound:-32002,SessionAlreadyExists:-32003,TurnInProgress:-32004,UnsupportedProtocolVersion:-32005,ContentNotFound:-32006,AuthRequired:-32007,NotFound:-32008,PermissionDenied:-32009,AlreadyExists:-32010};var Hv=-32700,po=-32603,tr=-32001,qv=-32002;var zv=-32005;var fo=-32007;function jv(i){return"method"in i&&"id"in i}function Kv(i){return"method"in i&&!("id"in i)}var V=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}};var je="ahp-root://",Sx="ahp-root";function ma(i){if(i===je)return!0;try{return y.parse(i).scheme===Sx}catch{return!1}}function Zv(i){if(!i.content||i.content.length===0)return[];let t=[];for(let e of i.content)De(e,{type:!0})&&e.type==="fileEdit"&&t.push(e);return t}var Ix="subagent",_x=`/${Ix}/`,Cx=/^(?<parentPath>.+)\/subagent\/(?<toolCallId>.+)$/;function eb(i){return typeof i=="string"?y.parse(i):i}function tb(i){let t=eb(i),e=t.path.endsWith("/")?t.path.slice(0,-1):t.path;return{parent:t,path:`${e}${_x}`}}function mo(i,t){let{parent:e,path:n}=tb(i);return e.with({path:`${n}${t}`}).toString()}function Qe(i){let t=eb(i),e=Cx.exec(t.path);if(e?.groups)return{parentSession:t.with({path:e.groups.parentPath}),toolCallId:e.groups.toolCallId}}function vc(i){return Qe(i)!==void 0}function nb(i){let{parent:t,path:e}=tb(i);return t.with({path:e}).toString()}function rb(){return{agents:[],activeSessions:0}}function $f(i){return{summary:i,lifecycle:"creating",turns:[],activeTurn:void 0}}var Mf="git";function Vf(i){let t=i?.[Mf];if(!t||typeof t!="object"||Array.isArray(t))return;let e=t,n={};return typeof e.hasGitHubRemote=="boolean"&&(n.hasGitHubRemote=e.hasGitHubRemote),typeof e.branchName=="string"&&(n.branchName=e.branchName),typeof e.baseBranchName=="string"&&(n.baseBranchName=e.baseBranchName),typeof e.upstreamBranchName=="string"&&(n.upstreamBranchName=e.upstreamBranchName),typeof e.incomingChanges=="number"&&(n.incomingChanges=e.incomingChanges),typeof e.outgoingChanges=="number"&&(n.outgoingChanges=e.outgoingChanges),typeof e.uncommittedChanges=="number"&&(n.uncommittedChanges=e.uncommittedChanges),typeof e.githubOwner=="string"&&(n.githubOwner=e.githubOwner),typeof e.githubRepo=="string"&&(n.githubRepo=e.githubRepo),n}function ib(i,t){let e={...i};return t!==void 0?e[Mf]=t:delete e[Mf],Object.keys(e).length>0?e:void 0}var Et=$("productService");import*as Sa from"fs";var Pr=$("telemetryService");var v9=$("customEndpointTelemetryService");var ob="telemetry",go="telemetry.telemetryLevel",bc="telemetry.enableCrashReporter",ga="telemetry.enableTelemetry";function ht(i){let t=Bf(i);return{protocol:i,validate:r=>{try{return t(r,""),!0}catch{return!1}},assertValid:(r,o="")=>t(r,o)}}function _n(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 V(Jt.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 Bf(i){if(i.type==="object"&&i.properties){let t={};for(let n of Object.keys(i.properties))t[n]=Bf(i.properties[n]);let e=new Set(i.required??[]);return(n,r)=>{if(typeof n!="object"||n===null||Array.isArray(n))throw hi(r,"object",n);let o=n;for(let s of Object.keys(t)){let a=xx(r,s);if(o[s]===void 0){if(e.has(s))throw new V(Jt.InvalidParams,`Missing required property at '${a}'`);continue}t[s](o[s],a)}}}if(i.type==="array"&&i.items){let t=Bf(i.items);return(e,n)=>{if(!Array.isArray(e))throw hi(n,"array",e);for(let r=0;r<e.length;r++)t(e[r],`${n}[${r}]`)}}return Tx(i)}function Tx(i){let t=i.enumDynamic===!0;return(e,n)=>{switch(i.type){case"string":if(typeof e!="string")throw hi(n,"string",e);break;case"number":if(typeof e!="number")throw hi(n,"number",e);break;case"boolean":if(typeof e!="boolean")throw hi(n,"boolean",e);break;case"array":if(!Array.isArray(e))throw hi(n,"array",e);break;case"object":if(typeof e!="object"||e===null||Array.isArray(e))throw hi(n,"object",e);break}if(i.enum&&!t&&!i.enum.includes(e))throw new V(Jt.InvalidParams,`Invalid value at '${n||"<root>"}': ${ab(e)} is not one of [${i.enum.map(r=>JSON.stringify(r)).join(", ")}]`)}}function hi(i,t,e){return new V(Jt.InvalidParams,`Invalid value at '${i||"<root>"}': expected ${t}, got ${ab(e)}`)}function xx(i,t){return i?`${i}.${t}`:t}function ab(i){try{return JSON.stringify(i)}catch{return String(i)}}var lb=ht({type:"object",title:m(1880,null),description:m(1884,null),properties:{allow:{type:"array",title:m(1881,null),items:{type:"string",title:m(1883,null)}},deny:{type:"array",title:m(1882,null),items:{type:"string",title:m(1883,null)}}},default:{allow:[],deny:[]},sessionMutable:!0}),Pt=_n({autoApprove:ht({type:"string",title:m(1866,null),description:m(1873,null),enum:["default","autoApprove","autopilot"],enumLabels:[m(1871,null),m(1869,null),m(1867,null)],enumDescriptions:[m(1872,null),m(1870,null),m(1868,null)],default:"default",sessionMutable:!0}),permissions:lb,mode:ht({type:"string",title:m(1874,null),description:m(1879,null),enum:["interactive","plan"],enumLabels:[m(1875,null),m(1877,null)],enumDescriptions:[m(1876,null),m(1878,null)],default:"interactive",sessionMutable:!0})}),ya="telemetryLevel",Hf="sessionSyncEnabled";function cb(i){switch(i){case 0:return"off";case 1:return"crash";case 2:return"error";case 3:return"all"}}function db(i){switch(i){case"off":return 0;case"crash":return 1;case"error":return 2;case"all":return 3;default:return}}var va=_n({permissions:lb,[ya]:ht({type:"string",title:m(1865,null),description:m(1864,null),enum:["all","error","crash","off"],default:"all"}),[Hf]:ht({type:"boolean",title:m(1863,null),description:m(1862,null),default:!1})});var Cn=_n({customizations:ht({type:"array",title:m(1856,null),description:m(1852,null),default:[],items:{type:"object",title:m(1855,null),properties:{uri:{type:"string",title:m(1857,null)},displayName:{type:"string",title:m(1854,null)},description:{type:"string",title:m(1853,null)}},required:["uri","displayName"]}}),defaultShell:ht({type:"string",title:m(1859,null),description:m(1858,null)}),disableCustomTerminalTool:ht({type:"boolean",title:m(1861,null),description:m(1860,null),default:!1})}),ub={customizations:[]};var ba=_n({sandbox:ht({type:"object",title:m(1906,null),properties:{enabled:{type:"string",title:m(1903,null),enum:["off","on","allowNetwork"]},"enabled.windows":{type:"string",title:m(1907,null),enum:["off","on","allowNetwork"]},allowUnsandboxedCommands:{type:"boolean",title:m(1899,null)},autoApproveUnsandboxedCommands:{type:"boolean",title:m(1900,null)},"fileSystem.linux":{type:"object",title:m(1904,null)},"fileSystem.mac":{type:"object",title:m(1905,null)},"fileSystem.windows":{type:"object",title:m(1908,null)},"advanced.runtime":{type:"object",title:m(1896,null)},allowedNetworkDomains:{type:"array",title:m(1898,null),items:{type:"string",title:m(1897,null)}},deniedNetworkDomains:{type:"array",title:m(1902,null),items:{type:"string",title:m(1901,null)}}}})}),pb={"chat.agent.sandbox.enabled":"enabled","chat.agent.sandbox.enabledWindows":"enabled.windows","chat.agent.sandbox.allowUnsandboxedCommands":"allowUnsandboxedCommands","chat.agent.sandbox.autoApproveUnsandboxedCommands":"autoApproveUnsandboxedCommands","chat.agent.sandbox.fileSystem.linux":"fileSystem.linux","chat.agent.sandbox.fileSystem.mac":"fileSystem.mac","chat.agent.sandbox.fileSystem.windows":"fileSystem.windows","chat.agent.sandbox.advanced.runtime":"advanced.runtime","chat.agent.allowedNetworkDomains":"allowedNetworkDomains","chat.agent.deniedNetworkDomains":"deniedNetworkDomains"};var Ye=$("agentConfigurationService"),ho=class extends T{constructor(e,n,r){super();this._stateManager=e;this._logService=n;this._rootConfigResource=r;this._rootConfigWrite=Promise.resolve();this._onDidRootConfigChange=this._register(new x);this.onDidRootConfigChange=this._onDidRootConfigChange.event;let o=this._stateManager.rootState.config,s=Cn.toProtocol(),a=ba.toProtocol();this._stateManager.rootState.config={schema:{type:"object",properties:{...o?.schema.properties,...s.properties,...a.properties}},values:{...o?.values,...this._loadPersistedRootConfig()}},this._register(this._stateManager.onDidEmitEnvelope(l=>{l.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 V?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=Qe(e);if(r)return this._stateManager.getSessionState(r.parentSession.toString())?.summary.workingDirectory}updateSessionConfig(e,n){this._stateManager.dispatchServerAction(e,{type:"session/configChanged",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 V?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(je,{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 Sa.promises.mkdir(de(r.fsPath),{recursive:!0}),await Sa.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=Qe(e);if(r){let s=this._stateManager.getSessionState(r.parentSession.toString())?.config?.values;s&&(yield s)}let o=this._stateManager.rootState.config?.values;o&&(yield o)}_loadPersistedRootConfig(){let e=ub;if(!this._rootConfigResource)return{...e};try{let n=Sa.readFileSync(this._rootConfigResource.fsPath,"utf8"),r=JSON.parse(n);return{...Cn.validateOrDefault(r,e),...ba.validateOrDefault(r,{})}}catch(n){return(n&&typeof n=="object"&&De(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}}}};ho=w([C(1,M)],ho);import*as bi from"fs";import{userInfo as Ux}from"os";import*as zf from"os";var fb=/^\d+$/,Px=/^Microsoft.PowerShell_.*/,kx=/^Microsoft.PowerShellPreview_.*/;var Ia;switch(process.arch){case"ia32":Ia=1;break;case"arm":case"arm64":Ia=2;break;default:Ia=0;break}var yo;process.env.PROCESSOR_ARCHITEW6432?yo=process.env.PROCESSOR_ARCHITEW6432==="ARM64"?2:0:process.env.PROCESSOR_ARCHITECTURE==="ARM64"?yo=2:process.env.PROCESSOR_ARCHITECTURE==="X86"?yo=1:yo=0;var yi=class{constructor(t,e,n){this.exePath=t;this.displayName=e;this.knownToExist=n}async exists(){return this.knownToExist===void 0&&(this.knownToExist=await bt.existsFile(this.exePath)),this.knownToExist}};function Ax({useAlternateBitness:i=!1}={}){return i?Ia===0?process.env["ProgramFiles(x86)"]||null:yo===0&&process.env.ProgramW6432||null:process.env.ProgramFiles||null}async function Ic({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=Ax({useAlternateBitness:i});if(!e)return null;let n=B(e,"PowerShell");if(!await bt.existsDirectory(n))return null;let r=-1,o=null;for(let l of await Ce.readdir(n)){let c=-1;if(t){let d=l.indexOf("-");if(d<0)continue;let f=l.substring(0,d);if(!fb.test(f)||l.substring(d+1)!=="preview")continue;c=parseInt(f,10)}else{if(!fb.test(l))continue;c=parseInt(l,10)}if(c<=r)continue;let u=B(n,l,"pwsh.exe");await bt.existsFile(u)&&(o=u,r=c)}if(!o)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new yi(o,`PowerShell${a}${s}`,!0)}async function mb({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=B(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await bt.existsDirectory(t))return null;let{pwshMsixDirRegex:e,pwshMsixName:n}=i?{pwshMsixDirRegex:kx,pwshMsixName:"PowerShell Preview (Store)"}:{pwshMsixDirRegex:Px,pwshMsixName:"PowerShell (Store)"};for(let r of await Ce.readdir(t))if(e.test(r)){let o=B(t,r,"pwsh.exe");return new yi(o,n)}return null}function Dx(){let i=B(zf.homedir(),".dotnet","tools","pwsh.exe");return new yi(i,".NET Core PowerShell Global Tool")}function Ox(){let i=B(zf.homedir(),"scoop","apps"),t=B(i,"pwsh","current","pwsh.exe");return new yi(t,"PowerShell (Scoop)")}function Lx(){let i=B(process.env.windir,Ia===1&&yo!==1?"SysNative":"System32","WindowsPowerShell","v1.0","powershell.exe");return new yi(i,"Windows PowerShell",!0)}async function*Mx(){let i=await Ic();i&&(yield i),i=await Ic({useAlternateBitness:!0}),i&&(yield i),i=await mb(),i&&(yield i),i=Dx(),i&&(yield i),i=await Ic({findPreview:!0}),i&&(yield i),i=await mb({findPreview:!0}),i&&(yield i),i=await Ic({useAlternateBitness:!0,findPreview:!0}),i&&(yield i),i=await Ox(),i&&(yield i),i=Lx(),i&&(yield i)}async function*Nx(){for await(let i of Mx())await i.exists()&&(yield i)}async function gb(){for await(let i of Nx())return i;return null}async function hb(i,t){return i===1?H?Wx():jy(t):Fx(i,t)}var jf=null;function Fx(i,t){if(he&&i===2||qe&&i===3)return"/bin/bash";if(!jf){let e;if(H)e="/bin/bash";else{if(e=t.SHELL,!e)try{e=Ux().shell}catch{}e||(e="sh"),e==="/bin/false"&&(e="/bin/bash")}jf=e}return jf}var Kf=null;async function Wx(){return Kf||(Kf=(await gb()).exePath),Kf}import*as vo from"os";var Gf=class{constructor(){this.data=new Map}add(t,e){sl(Ee(t)),sl(Ae(e)),sl(!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=>{Rs(t.dispose)&&t.dispose()}),this.data.clear()}},ot=new Gf;var nF=$("ptyService");var Vx={Backend:"workbench.contributions.terminal.processBackend"},Jf=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()??""}};ot.add(Vx.Backend,new Jf);var rF=$("localPtyService"),iF=$("terminalLogService");function Bx(i){return new Map(i)}function Hx(i){return new Map(i??[])}function yb(i){return new Map(i.map(t=>[t[0],{map:Bx(t[1]),descriptionMap:Hx(t[2])}]))}var zx=new Map([[2,"APPEND"],[3,"PREPEND"],[1,"REPLACE"]]),jx=/^VSCODE_PYTHON_(PWSH|ZSH|BASH|FISH)_ACTIVATE/,Kx="ms-python.vscode-python-envs",_c=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;H&&(r={},Object.keys(t).forEach(o=>r[o.toLowerCase()]=o));for(let[o,s]of this.getVariableMap(e)){let a=H&&r[o.toLowerCase()]||o;for(let l of s){let c=n?await n(l.value):l.value;if(!this.blockPythonActivationVar(l.variable,l.extensionIdentifier)){if(l.options?.applyAtProcessCreation??!0)switch(l.type){case 2:t[a]=(t[a]||"")+c;break;case 3:t[a]=c+(t[a]||"");break;case 1:t[a]=c;break}if(l.options?.applyAtShellIntegration??!1){let u=`VSCODE_ENV_${zx.get(l.type)}`;t[u]=(t[u]?t[u]+":":"")+o+"="+this._encodeColons(c)}}}}}_encodeColons(t){return t.replaceAll(":","\\x3a")}blockPythonActivationVar(t,e){return!!(jx.test(t)&&Kx!==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=bb(s,l);c&&n.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=bb(s,l);c&&o.set(a,c)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),c=Gx(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=>vb(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=>vb(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 vb(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 bb(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 Gx(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 Ib,realpathSync as Yx,mkdirSync as Xx}from"fs";import{promisify as _b}from"util";import*as Cc from"os";var _a;async function Jx(){if(_a)return;if(!H){_a={release:Cc.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{_a={release:t||Cc.release(),buildNumber:i||Qx()}}}async function Sb(){return _a||await Jx(),_a.buildNumber}function Qx(){let i=/(\d+)\.(\d+)\.(\d+)/g.exec(Cc.release());return i&&i.length===4?parseInt(i[3],10):0}async function wb(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=H?await Sb():0;if(H&&s<18309)return{type:"failure",reason:"unsupportedWindowsBuild"};let a=i.args,l=Mi==="win32"?be(i.executable).toLowerCase():be(i.executable),c=de(tt.asFileUri("").fsPath),u="injection",d,f={VSCODE_INJECTION:"1"};t.shellIntegration.nonce&&(f.VSCODE_NONCE=t.shellIntegration.nonce);let g=["PATH","VIRTUAL_ENV","HOME","SHELL","PWD"];if(i.shellIntegrationEnvironmentReporting&&(H?(t.windowsUseConptyDll||s>=22631&&l!=="bash.exe")&&(f.VSCODE_SHELL_ENV_REPORTING=g.join(",")):f.VSCODE_SHELL_ENV_REPORTING=g.join(",")),H)return l==="pwsh.exe"||l==="powershell.exe"?(f.VSCODE_A11Y_MODE=t.isScreenReaderOptimized?"1":"0",!a||xb(a)?d=Pe.get("windows-pwsh"):Tb(a)&&(d=Pe.get("windows-pwsh-login")),d?(d=[...d],d[d.length-1]=ei(d[d.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):l==="bash.exe"?(!a||a.length===0?d=Pe.get("bash"):wc(a)&&(f.VSCODE_SHELL_LOGIN="1",Tc(t,f,l),d=Pe.get("bash")),d?(d=[...d],d[d.length-1]=ei(d[d.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):(n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"});switch(l){case"bash":return!a||a.length===0?d=Pe.get("bash"):wc(a)&&(f.VSCODE_SHELL_LOGIN="1",Tc(t,f,l),d=Pe.get("bash")),d?(d=[...d],d[d.length-1]=ei(d[d.length-1],c),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"fish":return!a||a.length===0?d=Pe.get("fish"):wc(a)?d=Pe.get("fish-login"):(a===Pe.get("fish")||a===Pe.get("fish-login"))&&(d=a),d?(Tc(t,f,l),d=[...d],d[d.length-1]=ei(d[d.length-1],c),{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"pwsh":return!a||xb(a)?d=Pe.get("pwsh"):Tb(a)&&(d=Pe.get("pwsh-login")),d?(d=[...d],d[d.length-1]=ei(d[d.length-1],c,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:d,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"zsh":{if(!a||a.length===0?d=Pe.get("zsh"):wc(a)?(d=Pe.get("zsh-login"),Tc(t,f,l)):(a===Pe.get("zsh")||a===Pe.get("zsh-login"))&&(d=a),!d)return{type:"failure",reason:"unsupportedArgs"};d=[...d],d[d.length-1]=ei(d[d.length-1],c);let h;try{h=vo.userInfo().username}catch{h="unknown"}let v=Yx(vo.tmpdir()),S=B(v,`${h}-${r.applicationName}-zsh`);if(!o)try{await _b(Ib)(S,960)}catch(I){if(I.message.includes("ENOENT")){try{Xx(S)}catch(R){return n.error(`Failed to create zdotdir at ${S}: ${R}`),{type:"failure",reason:"failedToCreateTmpDir"}}try{await _b(Ib)(S,960)}catch{return n.error(`Failed to set sticky bit on ${S}: ${I}`),{type:"failure",reason:"failedToSetStickyBit"}}}return n.error(`Failed to set sticky bit on ${S}: ${I}`),{type:"failure",reason:"failedToSetStickyBit"}}f.ZDOTDIR=S;let _=e?.ZDOTDIR??vo.homedir()??"~";f.USER_ZDOTDIR=_;let b=[];return b.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh"),dest:B(S,".zshrc")}),b.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh"),dest:B(S,".zprofile")}),b.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh"),dest:B(S,".zshenv")}),b.push({source:B(c,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh"),dest:B(S,".zlogin")}),{type:u,newArgs:d,envMixin:f,filesToCopy:b}}}return n.warn(`Shell integration cannot be enabled for executable "${i.executable}" and args`,i.args),{type:"failure",reason:"unsupportedShell"}}function Tc(i,t,e){if((qe||e==="fish")&&i.environmentVariableCollections){let n=yb(i.environmentVariableCollections),o=new _c(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 Pe=new Map;Pe.set("windows-pwsh",["-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);Pe.set("windows-pwsh-login",["-l","-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);Pe.set("pwsh",["-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"{1}']);Pe.set("pwsh-login",["-l","-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"']);Pe.set("zsh",["-i"]);Pe.set("zsh-login",["-il"]);Pe.set("bash",["--init-file","{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh"]);Pe.set("fish",["--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);Pe.set("fish-login",["-l","--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);var xc=["-login","-l"],Cb=["--login","-l"],Zx=["-i","--interactive"],Rc=["-nol","-nologo"];function Tb(i){return Ee(i)?xc.includes(i.toLowerCase()):i.length===1&&xc.includes(i[0].toLowerCase())||i.length===2&&(xc.includes(i[0].toLowerCase())||xc.includes(i[1].toLowerCase()))&&(Rc.includes(i[0].toLowerCase())||Rc.includes(i[1].toLowerCase()))}function xb(i){return Ee(i)?Rc.includes(i.toLowerCase()):i.length===0||i?.length===1&&Rc.includes(i[0].toLowerCase())}function wc(i){return Ee(i)||(i=i.filter(t=>!Zx.includes(t.toLowerCase()))),Ee(i)&&Cb.includes(i.toLowerCase())||!Ee(i)&&i.length===1&&Cb.includes(i[0].toLowerCase())}import ew from"@xterm/headless";var{Terminal:tw}=ew,Ec=class extends T{constructor(e){super();this._onResponseData=this._register(new x);this.onResponseData=this._onResponseData.event;this._writeBarrier=Promise.resolve();this._isDisposed=!1;this._logService=e.logService;let n={cols:e.cols,rows:e.rows,scrollback:e.scrollback,allowProposedApi:!0};this._terminal=e.terminalFactory?.(n)??new tw(n),this._register(this._terminal.onData(r=>{this._isCursorPositionReportResponse(r)?(this._logService.debug(`[AgentHostHeadlessTerminal] Forwarding terminal response ${JSON.stringify(r)}`),this._onResponseData.fire(r)):this._logService.debug(`[AgentHostHeadlessTerminal] Dropping terminal response ${JSON.stringify(r)}`)})),this._register({dispose:()=>{this._isDisposed=!0,this._terminal.dispose()}})}writePtyData(e){return this._writeBarrier=this._writeBarrier.catch(()=>{}).then(()=>{if(!this._isDisposed)return new Promise(n=>{try{this._terminal.write(e,n)}catch{n()}})}),this._writeBarrier}whenPtyDataFlushed(){return this._writeBarrier.catch(()=>{})}resize(e,n){this._terminal.resize(e,n)}isBracketedPasteMode(){return this._terminal.modes.bracketedPasteMode}isInAltBuffer(){return this._terminal.buffer.active===this._terminal.buffer.alternate}createAltBufferPromise(e){let n=new pe,r=()=>{n.isSettled||(this._logService.debug("[AgentHostHeadlessTerminal] Detected alternate buffer entry"),n.complete())};return this.isInAltBuffer()?r():e.add(this._terminal.buffer.onBufferChange(()=>{this.isInAltBuffer()&&r()})),n.p}clear(){this.writePtyData("\x1B[2J\x1B[3J\x1B[H")}dispose(){this._isDisposed=!0,super.dispose()}_isCursorPositionReportResponse(e){return/^(?:\x1b\[\??\d+;\d+R)+$/.test(e)}};function Pc(i){return pt===1?/^zsh(?:\.exe)?$/i.test(se.basename(i)):/^zsh$/.test(Z.basename(i))}function Rb(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 nw(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=Rb(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=Rb(n),o=r.indexOf("=");return o===-1?void 0:{type:5,key:r.substring(0,o),value:r.substring(o+1)}}default:return}}var Xf="\x1B",Qf=Xf+"]",Yf="\x07",Eb=Xf+"\\",kc=class{constructor(){this._pendingOsc="";this._inOsc=!1;this._pendingEscInOsc=!1}parse(t){let e=[];if(!this._inOsc&&t.indexOf(Qf)===-1)return{cleanedData:t,events:e};let n="",r=0;for(;r<t.length;){if(this._inOsc){if(this._pendingEscInOsc){if(this._pendingEscInOsc=!1,t[r]==="\\"){r++,this._inOsc=!1;let c=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(c,e,{value:n,append(u){n=u}},Eb);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(Qf,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(Yf,e),r=t.indexOf(Xf,e);return n!==-1&&(r===-1||n<r)?(this._pendingOsc+=t.substring(e,n),{nextIndex:n+1,complete:!0,terminator:Yf}):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:Eb}:{nextIndex:r,complete:!0}):(this._pendingOsc+=t.substring(e),{nextIndex:t.length,complete:!1})}_handleOscPayload(t,e,n,r=Yf){if(t.startsWith("633;")){let o=t.substring(4),s=nw(o);s&&e.push(s)}else n&&n.append(n.value+Qf+t+r)}};var iw=1e4,ow=0,Zf="\x1B[6n",em="\x1B[?6n",sw=["\x1B[?6","\x1B[?","\x1B[6","\x1B[","\x1B"],So=$("agentHostTerminalManager");function aw(i,t){if(!t.pendingData&&!i.includes(Zf)&&!i.includes(em)&&!Pb(i))return i;let e=t.pendingData+i,n=Pb(e),r=n?e.substring(0,e.length-n.length):e;return t.pendingData=n,!r.includes(Zf)&&!r.includes(em)?r:r.replaceAll(em,"").replaceAll(Zf,"")}function Pb(i){for(let t of sw)if(i.endsWith(t))return t;return""}function lw(i,t){return t.forceBracketedPasteMode&&(i=`\x1B[200~${i}\x1B[201~`),i=i.replace(/\r?\n/g,"\r"),t.shouldExecute&&!i.endsWith("\r")&&(i+="\r"),i}var tm;async function cw(){return tm||(tm=await import("node-pty")),tm}var bo=class extends T{constructor(e,n,r,o){super();this._stateManager=e;this._logService=n;this._productService=r;this._configurationService=o;this._terminals=new Map;this._register(this._stateManager.onDidEmitEnvelope(s=>{let a=s.action;if(!hc(a))return;let l=s.channel;switch(a.type){case"terminal/input":this._writeInput(l,a.data);break;case"terminal/resized":this._resize(l,a.cols,a.rows);break;case"terminal/claimed":this._setClaim(l,a.claim);break;case"terminal/titleChanged":this._setTitle(l,a.title);break;case"terminal/cleared":this._clearContent(l);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.channel;if(this._terminals.has(r))throw new Error(`Terminal already exists: ${r}`);let o=await this._resolveCwd(e.cwd,r),s=e.cols??80,a=e.rows??24,l=n?.shell??await this.getDefaultShell(),c=H?"cmd":"xterm-256color";this._logService.info(`[TerminalManager] Creating terminal ${r}: shell=${l}, cwd=${o}, cols=${s}, rows=${a}`);let u=j(),d={...process.env};n?.preventShellHistory&&(d.VSCODE_PREVENT_SHELL_HISTORY="1"),e.claim?.kind==="session"&&Pc(l)&&(d.VSCODE_AGENT_ZSH_FIXUPS="1"),n?.nonInteractive&&(d.LC_ALL="C.UTF-8",d.PAGER="",d.GIT_PAGER="",d.GH_PAGER="",d.GIT_TERMINAL_PROMPT="0",d.DEBIAN_FRONTEND="noninteractive");let f=[];qe&&Wh(l).name.match(/(zsh|bash)/)&&(f=["--login"]);let g=await wb({executable:l,args:f,forceShellIntegration:!0},{shellIntegration:{enabled:!0,suggestEnabled:!1,nonce:u},windowsUseConptyDll:!1,environmentVariableCollections:void 0,workspaceFolder:void 0,isScreenReaderOptimized:!1},void 0,this._logService,this._productService),h;if(g.type==="injection"){if(this._logService.info(`[TerminalManager] Shell integration injected for ${r}`),g.envMixin)for(let[te,ge]of Object.entries(g.envMixin))ge!==void 0&&(d[te]=ge);if(g.newArgs&&(f=g.newArgs),g.filesToCopy)for(let te of g.filesToCopy)try{await bi.promises.mkdir(de(te.dest),{recursive:!0}),await bi.promises.copyFile(te.source,te.dest)}catch{}h={parser:new kc,nonce:u,commandCounter:0,detectionAvailableEmitted:!1}}else this._logService.info(`[TerminalManager] Shell integration not available for ${r}: ${g.reason}`);let v=await this._spawnPty(l,f,{name:c,cwd:o,env:d,cols:s,rows:a}),S=new z,_=e.claim??{kind:"client",clientId:""},b=S.add(new x),I=S.add(new x),R=S.add(new x),P=S.add(new x),J=S.add(new Ec({cols:s,rows:a,scrollback:ow,logService:this._logService})),E={uri:r,store:S,pty:v,onDataEmitter:b,onExitEmitter:I,onClaimChangedEmitter:R,onCommandFinishedEmitter:P,title:e.name??l,cwd:o,cols:s,rows:a,content:[],contentSize:0,claim:_,commandTracker:h,headlessTerminal:J,terminalQueryFilterState:{pendingData:""}};this._terminals.set(r,E),S.add(J.onResponseData(te=>{this._logService.debug(`[TerminalManager] Writing headless terminal response for ${r}: ${JSON.stringify(te)}`);try{v.write(te)}catch(ge){this._logService.debug(`[TerminalManager] Failed to write headless terminal response for ${r}: ${ge instanceof Error?ge.message:String(ge)}`)}})),S.add(A(()=>{try{v.kill()}catch{}}));let L=new pe,O=v.onData(te=>{E.headlessTerminal?.writePtyData(te),this._handlePtyData(E,te),L.complete()});S.add(A(()=>O.dispose()));let K=v.onExit(te=>{E.exitCode=te.exitCode,E.onExitEmitter.fire(te.exitCode),L.complete(),this._stateManager.dispatchServerAction(r,{type:"terminal/exited",exitCode:te.exitCode}),this._broadcastTerminalList()});if(S.add(A(()=>K.dispose())),!H){let te=setInterval(()=>{let ge=v.process;ge&&ge!==E.title&&(E.title=ge,this._stateManager.dispatchServerAction(r,{type:"terminal/titleChanged",title:ge}),this._broadcastTerminalList())},200);S.add(A(()=>clearInterval(te)))}await yy([L.p,zn(iw)]),this._broadcastTerminalList()}async _spawnPty(e,n,r){return(await cw()).spawn(e,n,r)}_writeInput(e,n){this.writeInput(e,n)}writeInput(e,n){let r=this._terminals.get(e);r&&r.exitCode===void 0&&r.pty.write(n)}async sendText(e,n,r){let o=this._terminals.get(e),s=!1;r.bracketedPasteMode&&(await o?.headlessTerminal?.whenPtyDataFlushed(),s=!!o?.headlessTerminal?.isBracketedPasteMode()),this.writeInput(e,lw(n,{shouldExecute:r.shouldExecute,forceBracketedPasteMode:s}))}onData(e,n){let r=this._terminals.get(e);return r?r.onDataEmitter.event(n):A(()=>{})}onExit(e,n){let r=this._terminals.get(e);return r?r.onExitEmitter.event(n):A(()=>{})}onClaimChanged(e,n){let r=this._terminals.get(e);return r?r.onClaimChangedEmitter.event(n):A(()=>{})}onCommandFinished(e,n){let r=this._terminals.get(e);return r?r.onCommandFinishedEmitter.event(n):A(()=>{})}createAltBufferPromise(e,n){let r=this._terminals.get(e);return r?.headlessTerminal?r.headlessTerminal.createAltBufferPromise(n):new Promise(()=>{})}getContent(e){let n=this._terminals.get(e);if(n)return n.content.map(r=>r.type==="command"?r.output:r.value).join("")}getClaim(e){return this._terminals.get(e)?.claim}hasTerminal(e){return this._terminals.has(e)}supportsCommandDetection(e){return this._terminals.get(e)?.commandTracker?.detectionAvailableEmitted??!1}getExitCode(e){return this._terminals.get(e)?.exitCode}_resize(e,n,r){let o=this._terminals.get(e);o&&o.exitCode===void 0&&(o.cols=n,o.rows=r,o.pty.resize(n,r),o.headlessTerminal?.resize(n,r))}_setClaim(e,n){let r=this._terminals.get(e);r&&(r.claim=n,r.onClaimChangedEmitter.fire(n),this._broadcastTerminalList())}_setTitle(e,n){let r=this._terminals.get(e);r&&(r.title=n,this._broadcastTerminalList())}_clearContent(e){let n=this._terminals.get(e);n&&(n.content=[],n.contentSize=0,n.headlessTerminal?.clear())}_handlePtyData(e,n){let r=e.commandTracker,o;if(r){let s=r.parser.parse(n);o=s.cleanedData;for(let a of s.events)this._handleOsc633Event(e,r,a)}else o=n;o=aw(o,e.terminalQueryFilterState),o.length>0&&this._appendToContent(e,o),this._trimContent(e),o.length>0&&(e.onDataEmitter.fire(o),this._stateManager.dispatchServerAction(e.uri,{type:"terminal/data",data:o}))}_handleOsc633Event(e,n,r){switch(n.detectionAvailableEmitted||(n.detectionAvailableEmitted=!0,this._stateManager.dispatchServerAction(e.uri,{type:"terminal/commandDetectionAvailable"})),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(e.uri,{type:"terminal/commandExecuted",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(e.uri,{type:"terminal/commandFinished",commandId:o,exitCode:r.exitCode,durationMs:s});break}case 5:{r.key==="Cwd"&&(e.cwd=r.value,this._stateManager.dispatchServerAction(e.uri,{type:"terminal/cwdChanged",cwd:r.value}));break}}}_appendToContent(e,n){let r=e.content.length>0?e.content[e.content.length-1]:void 0;r?.type==="command"&&!r.isComplete?(r.output+=n,e.contentSize+=n.length):r?.type==="unclassified"?(r.value+=n,e.contentSize+=n.length):(e.content.push({type:"unclassified",value:n}),e.contentSize+=n.length)}_getContentPartSize(e){return e.type==="command"?e.output.length:e.value.length}_trimContent(e){if(!(e.contentSize<=1e5)){for(;e.contentSize>8e4&&e.content.length>1;){let o=e.content.shift();e.contentSize-=this._getContentPartSize(o)}if(e.contentSize>8e4&&e.content.length>0){let o=e.content[0],s=e.contentSize-8e4;o.type==="command"?o.output=o.output.slice(s):o.value=o.value.slice(s),e.contentSize-=s}}}disposeTerminal(e){let n=this._terminals.get(e);n&&(this._terminals.delete(e),n.store.dispose(),this._broadcastTerminalList())}async getDefaultShell(){let e=this._configurationService.getRootValue(Cn,"defaultShell");if(e)try{return await bi.promises.access(e,bi.constants.X_OK),e}catch(n){this._logService.warn(`[TerminalManager] Configured defaultShell '${e}' is not accessible, falling back to system shell: ${n instanceof Error?n.message:String(n)}`)}return hb(pt,process.env)}async _resolveCwd(e,n){let r=e;if(e){let s=y.parse(e);s.scheme==="file"&&s.fsPath&&s.fsPath!=="/"?r=s.fsPath:this._logService.warn(`[TerminalManager] Ignoring non-file cwd for ${n}: ${e}`)}try{if(r&&(await bi.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(je,{type:"root/terminalsChanged",terminals:this.getTerminalInfos()})}dispose(){for(let e of this._terminals.values())e.store.dispose();this._terminals.clear(),super.dispose()}};bo=w([C(1,M),C(2,Et),C(3,Ye)],bo);var Ac=$("diffComputeService"),kb=5e3;var Db="session-db";function Ar(i,t,e,n){return y.from({scheme:Db,authority:rn(k.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${rn(k.fromString(e))}/${n}/${be(e)}`}).toString()}function Ob(i){let t=y.parse(i);if(t.scheme!==Db)return;let[,e,n,r]=t.path.split("/");if(!(!e||!n||r!=="before"&&r!=="after"))try{return{sessionUri:ji(t.authority).toString(),toolCallId:decodeURIComponent(e),filePath:ji(n).toString(),part:r}}catch{return}}var kr=class{constructor(t,e,n,r,o){this._sessionUri=t;this._db=e;this._fileService=n;this._logService=r;this._diffComputeService=o;this._pendingEdits=new Map;this._completedEdits=new Map}async trackEditStart(t){let e=this._readFileWithExistence(t),n={beforeContent:k.fromString(""),beforeExisted:!1,snapshotDone:e.then(({content:r,existed:o})=>{n.beforeContent=r,n.beforeExisted=o})};this._pendingEdits.set(t,n),await n.snapshotDone}async completeEdit(t){let e=this._pendingEdits.get(t);if(!e)return;this._pendingEdits.delete(t),await e.snapshotDone;let n=await this._readFile(t);this._completedEdits.set(t,{beforeContent:e.beforeContent,beforeExisted:e.beforeExisted,afterContent:n})}async takeCompletedEdit(t,e,n){let r=this._completedEdits.get(n);if(!r)return;this._completedEdits.delete(n);let o=r.beforeContent.buffer,s=r.afterContent.buffer,a=r.beforeContent.toString(),l=r.afterContent.toString(),c=!r.beforeExisted&&s.length>0,u,d;try{let f=await this._diffComputeService.computeDiffCounts(a,l);u=f.added,d=c?0:f.removed}catch(f){this._logService.warn(`[FileEditTracker] Failed to compute diff counts: ${n}`,f)}try{await this._db.storeFileEdit({turnId:t,toolCallId:e,filePath:n,kind:c?"create":"edit",beforeContent:o,afterContent:s,addedLines:u,removedLines:d})}catch(f){this._logService.warn(`[FileEditTracker] Failed to persist file edit to database: ${n}`,f)}return{type:"fileEdit",before:{uri:y.file(n).toString(),content:{uri:Ar(this._sessionUri,e,n,"before")}},after:{uri:y.file(n).toString(),content:{uri:Ar(this._sessionUri,e,n,"after")}},diff:u!==void 0?{added:u,removed:d}:void 0}}async _readFile(t){try{return(await this._fileService.readFile(y.file(t))).value}catch(e){return this._logService.trace(`[FileEditTracker] Could not read file for snapshot: ${t}`,e),k.fromString("")}}async _readFileWithExistence(t){try{return{content:(await this._fileService.readFile(y.file(t))).value,existed:!0}}catch(e){return this._logService.trace(`[FileEditTracker] Could not read file for snapshot: ${t}`,e),{content:k.fromString(""),existed:!1}}}};kr=w([C(2,Me),C(3,M),C(4,Ac)],kr);var Lb="git-blob";function Dc(i,t,e){return y.from({scheme:Lb,authority:rn(k.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${rn(k.fromString(e))}/${be(e)}`}).toString()}function Mb(i){let t;try{t=y.parse(i)}catch{return}if(t.scheme!==Lb)return;let[,e,n]=t.path.split("/");if(!(!e||!n))try{return{sessionUri:ji(t.authority).toString(),sha:decodeURIComponent(e),repoRelativePath:ji(n).toString()}}catch{return}}var dw={"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/agentChanged":!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/customizationUpdated":!1,"session/truncated":!0,"session/isReadChanged":!0,"session/isArchivedChanged":!0,"session/activityChanged":!1,"session/changesetsChanged":!1,"session/configChanged":!0,"session/metaChanged":!1,"changeset/statusChanged":!1,"changeset/fileSet":!1,"changeset/fileRemoved":!1,"changeset/operationsChanged":!1,"changeset/cleared":!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 nr(i,t){let e=`Unhandled action type: ${JSON.stringify(i)}`;(t??console.warn)(e)}function Oc(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 nr(t,e),i}}function Ca(i){return{toolCallId:i.toolCallId,toolName:i.toolName,displayName:i.displayName,toolClientId:i.toolClientId,_meta:i._meta}}function uw(i,t){if(!(!t||!i))return i.find(e=>e.id===t)}function pw(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 fw=31;function Mc(i,t,e){return e?i|t:i&~t}function _o(i,t){let e;return t?e=t:(i.inputRequests?.length??0)>0||pw(i)?e=24:i.activeTurn?e=8:e=1,i.summary.status&~fw|e}function Lc(i){let t=_o(i);return t===i.summary.status?i:{...i,summary:{...i.summary,status:t}}}function nm(i,t,e,n,r){if(!i.activeTurn||i.activeTurn.id!==t)return i;let o=i.activeTurn,s=o.responseParts.map(c=>{if(c.kind!=="toolCall")return c;let u=c.toolCall;return u.status==="completed"||u.status==="cancelled"?c:{kind:"toolCall",toolCall:{status:"cancelled",...Ca(u),invocationMessage:u.status==="streaming"?u.invocationMessage??"":u.invocationMessage,toolInput:u.status==="streaming"?void 0:u.toolInput,reason:"skipped"}}}),a={id:o.id,userMessage:o.userMessage,responseParts:s,usage:o.usage,state:e,error:r},l={...i,turns:[...i.turns,a],activeTurn:void 0,summary:{...i.summary,modifiedAt:Date.now()}};return delete l.inputRequests,{...l,summary:{...l.summary,status:_o(l,n)}}}function mw(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:Mc(_o(o),32,!1),modifiedAt:Date.now()}}}function Io(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 Nb(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 Nc(i,t,e){switch(t.type){case"session/ready":return{...i,lifecycle:"ready"};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:Mc(_o(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 Nb(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 nm(i,t.turnId,"complete");case"session/turnCancelled":return nm(i,t.turnId,"cancelled");case"session/error":return nm(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 Io(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 Lc(Io(i,t.turnId,t.toolCallId,n=>{if(n.status!=="streaming"&&n.status!=="running")return n;let r=Ca(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 Lc(Io(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-confirmation")return n;let r=Ca(n),o=uw(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 Lc(Io(i,t.turnId,t.toolCallId,n=>{if(n.status!=="running"&&n.status!=="pending-confirmation")return n;let r=Ca(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 Lc(Io(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-result-confirmation")return n;let r=Ca(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 Io(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 Nb(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/agentChanged":return{...i,summary:{...i.summary,agent:t.agent,modifiedAt:Date.now()}};case"session/isReadChanged":return{...i,summary:{...i.summary,status:Mc(i.summary.status,32,t.isRead)}};case"session/isArchivedChanged":return{...i,summary:{...i.summary,status:Mc(i.summary.status,64,t.isArchived)}};case"session/activityChanged":return{...i,summary:{...i.summary,activity:t.activity}};case"session/changesetsChanged":{let{changesets:n,...r}=i.summary,o=t.changesets?{...r,changesets:t.changesets}:r;return{...i,summary:o}}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/customizationUpdated":{let n=i.customizations??[],r=n.findIndex(a=>a.customization.uri===t.customization.uri);if(r<0){let a={customization:t.customization,enabled:t.enabled??!1};return t.status!==void 0&&(a.status=t.status),t.statusMessage!==void 0&&(a.statusMessage=t.statusMessage),t.agents!==void 0&&(a.agents=t.agents),{...i,customizations:[...n,a]}}let o=[...n],s={...n[r],customization:t.customization};return t.enabled!==void 0&&(s.enabled=t.enabled),t.status!==void 0&&(s.status=t.status),t.statusMessage!==void 0&&(s.statusMessage=t.statusMessage),t.agents!==void 0&&(s.agents=t.agents),o[r]=s,{...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:_o(r)}}}case"session/inputRequested":return mw(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:_o(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 nr(t,e),i}}function Uc(i,t,e){switch(t.type){case"changeset/statusChanged":{if(t.status==="error")return{...i,status:t.status,error:t.error};let{error:n,...r}=i;return{...r,status:t.status}}case"changeset/fileSet":{let n=i.files.findIndex(o=>o.id===t.file.id);if(n<0)return{...i,files:[...i.files,t.file]};let r=[...i.files];return r[n]=t.file,{...i,files:r}}case"changeset/fileRemoved":{let n=i.files.findIndex(o=>o.id===t.fileId);if(n<0)return i;let r=[...i.files];return r.splice(n,1),{...i,files:r}}case"changeset/operationsChanged":{if(t.operations===void 0){let{operations:n,...r}=i;return r}return{...i,operations:t.operations}}case"changeset/cleared":return i.files.length===0?i:{...i,files:[]};default:return nr(t,e),i}}var hw=500,Fc=class{constructor(t={}){this._states=new Map;this._lru=new Ts;this._softLimit=Math.max(0,t.softLimit??hw),this._canEvict=t.canEvict??(()=>!0)}keys(){return this._states.keys()}has(t){return this._states.has(t)}get(t){return this._touch(t),this._states.get(t)}set(t,e){this._states.set(t,e),this._touch(t),this._evictIfOverLimit()}delete(t){this._states.delete(t),this._lru.delete(t)}register(t,e="computing"){if(this._states.has(t)){this._touch(t);return}this.set(t,{status:e,files:[]})}trimEvictableEntries(){this._evictIfOverLimit()}_touch(t){this._states.has(t)&&this._lru.set(t,!0,2)}_evictIfOverLimit(){if(this._softLimit===0){for(let t of[...this._lru.keys()])this._canEvict(t)&&this.delete(t);return}for(let t of[...this._lru.keys()]){if(this._states.size<=this._softLimit)return;if(!this._states.has(t)){this._lru.delete(t);continue}this._canEvict(t)&&this.delete(t)}}};function yw(i,t){if(i===t)return!0;if(!i||!t||i.length!==t.length)return!1;for(let e=0;e<i.length;e++){let n=i[e],r=t[e];if(n.label!==r.label||n.uriTemplate!==r.uriTemplate||n.description!==r.description||n.additions!==r.additions||n.deletions!==r.deletions||n.files!==r.files)return!1}return!0}var Co=class extends T{constructor(e,n={}){super();this._logService=e;this._serverSeq=0;this._sessionStates=new Map;this._sessionsWithActiveTurn=new Set;this._lastNotifiedSummaries=new Map;this._dirtySummaries=new Set;this._summaryNotifyScheduler=this._register(new Sr(()=>this._flushSummaryNotifications(),100));this._onDidEmitEnvelope=this._register(new x);this.onDidEmitEnvelope=this._onDidEmitEnvelope.event;this._onDidEmitNotification=this._register(new x);this.onDidEmitNotification=this._onDidEmitNotification.event;this._log=e=>this._logService.warn(`[AgentHostStateManager] ${e}`);this._changesets=new Fc(n.changesetStateRetention),this._rootState=rb(),this._rootState={...this._rootState,config:{schema:va.toProtocol(),values:va.validateOrDefault({},{permissions:{allow:[],deny:[]},[ya]:cb(3)})}}}get hasActiveSessions(){return this._sessionsWithActiveTurn.size>0}get rootState(){return this._rootState}getSessionState(e){return this._sessionStates.get(e)}get serverSeq(){return this._serverSeq}getSessionUris(){return[...this._sessionStates.keys()]}getSessionUrisWithPrefix(e){let n=[];for(let r of this._sessionStates.keys())r.startsWith(e)&&n.push(r);return n}getSnapshot(e){if(ma(e))return{resource:je,state:this._rootState,fromSeq:this._serverSeq};let n=this._changesets.get(e);if(n)return{resource:e,state:n,fromSeq:this._serverSeq};let r=this._sessionStates.get(e);if(r)return{resource:e,state:r,fromSeq:this._serverSeq}}getChangesetState(e){return this._changesets.get(e)}onChangesetLivenessChanged(){this._changesets.trimEvictableEntries()}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=$f(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:"root/sessionAdded",channel:je,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:"root/sessionAdded",channel:je,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={...$f(e),lifecycle:"ready",turns:n};return this._sessionStates.set(r,o),this._lastNotifiedSummaries.set(r,e),this._logService.trace(`[AgentHostStateManager] Restored session: ${r} (${n.length} turns)`),o}removeSession(e){this._sessionStates.get(e)&&(this._dirtySummaries.has(e)&&this._flushSummaryNotificationFor(e),this._sessionsWithActiveTurn.delete(e)&&this.dispatchServerAction(je,{type:"root/activeSessionsChanged",activeSessions:this._sessionsWithActiveTurn.size}),this._sessionStates.delete(e),this._lastNotifiedSummaries.delete(e),this._dirtySummaries.delete(e),this._logService.trace(`[AgentHostStateManager] Removed session: ${e}`))}deleteSession(e){let n=this._lastNotifiedSummaries.has(e);this._dirtySummaries.delete(e),this.disposeSessionChangesets(e),this.removeSession(e),n&&this._onDidEmitNotification.fire({type:"root/sessionRemoved",channel:je,session:e})}setSessionMeta(e,n){this.dispatchServerAction(e,{type:"session/metaChanged",_meta:n})}registerChangeset(e,n="computing"){return this._changesets.register(e,n),e}setSessionChangesets(e,n){let r=this._sessionStates.get(e);if(!r){this._logService.warn(`[AgentHostStateManager] setSessionChangesets: unknown session ${e}`);return}if(yw(r.summary.changesets,n))return;let o=n?[...n]:void 0;this.dispatchServerAction(e,{type:"session/changesetsChanged",changesets:o})}disposeChangeset(e){this._changesets.has(e)&&(this.dispatchServerAction(e,{type:"changeset/cleared"}),this._changesets.delete(e))}disposeSessionChangesets(e){let n=[];for(let r of this._changesets.keys()){let o=In(r);o&&o.sessionUri===e&&n.push(r)}for(let r of n)this.disposeChangeset(r)}getActiveTurnId(e){return this._sessionStates.get(e)?.activeTurn?.id}dispatchServerAction(e,n){this._applyAndEmit(e,n,void 0)}dispatchClientAction(e,n,r){return this._applyAndEmit(e,n,r)}_applyAndEmit(e,n,r){let o;if(Vv(n)){if(n.type==="root/configChanged"&&this._rootState.config){let a=this._rootState.config.values,l=n.config;if(n.replace?Oe(a,l):Oe({...a,...l},a))return this._rootState}this._rootState=Oc(this._rootState,n,this._log),o=this._rootState}if(gc(n)){let a=n,l=e,c=this._sessionStates.get(l);if(c){let u=Nc(c,a,this._log);this._sessionStates.set(l,u),c.summary!==u.summary&&(this._dirtySummaries.add(l),this._summaryNotifyScheduler.schedule());let d=!!c.activeTurn,f=!!u.activeTurn;d!==f&&(f?this._sessionsWithActiveTurn.add(l):this._sessionsWithActiveTurn.delete(l),this.dispatchServerAction(je,{type:"root/activeSessionsChanged",activeSessions:this._sessionsWithActiveTurn.size})),o=u}else this._logService.warn(`[AgentHostStateManager] Action for unknown session: ${l}, type=${n.type}`)}if(Bv(n)){let a=n,l=e,c=this._changesets.get(l);if(!c){this._logService.warn(`[AgentHostStateManager] Action for unknown changeset: ${l}, type=${n.type}`);return}let u=Uc(c,a,this._log);u!==c&&this._changesets.set(l,u),o=u}let s={channel:e,action:n,serverSeq:++this._serverSeq,origin:r};return this._logService.trace(`[AgentHostStateManager] Emitting envelope: seq=${s.serverSeq}, type=${n.type}${r?`, origin=${r.clientId}:${r.clientSeq}`:""}`),this._onDidEmitEnvelope.fire(s),o}_flushSummaryNotifications(){for(let e of this._dirtySummaries)this._flushSummaryNotificationFor(e);this._dirtySummaries.clear()}_flushSummaryNotificationFor(e){let n=this._sessionStates.get(e),r=this._lastNotifiedSummaries.get(e);if(!n||!r||n.summary===r)return;let o=n.summary,s={};o.title!==r.title&&(s.title=o.title),o.status!==r.status&&(s.status=o.status),o.activity!==r.activity&&(s.activity=o.activity),o.modifiedAt!==r.modifiedAt&&(s.modifiedAt=o.modifiedAt),o.project!==r.project&&(s.project=o.project),o.model!==r.model&&(s.model=o.model),o.workingDirectory!==r.workingDirectory&&(s.workingDirectory=o.workingDirectory),o.changesets!==r.changesets&&(s.changesets=o.changesets),this._lastNotifiedSummaries.set(e,o),Object.keys(s).length>0&&this._onDidEmitNotification.fire({type:"root/sessionSummaryChanged",channel:je,session:e,changes:s})}};Co=w([C(0,M)],Co);import*as Wc from"child_process";var Ta=$("environmentService"),Dr=Ta;var Qt=$("agentHostGitService"),$c="agentHost.diffBaseBranch";function Ub(i){return i==="main"?0:i==="master"?1:2}function vw(i,t){let e=t?.query?.toLowerCase(),n=e?i.filter(r=>r.toLowerCase().includes(e)):[...i];return n.sort((r,o)=>Ub(r)-Ub(o)),t?.limit?n.slice(0,t.limit):n}var To=class{constructor(t,e,n){this._fileService=t;this._environmentService=e;this._logService=n}async isInsideWorkTree(t){return(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()==="true"}async getCurrentBranch(t){return(await this._runGit(t,["branch","--show-current"]))?.trim()||(await this._runGit(t,["rev-parse","--short","HEAD"]))?.trim()||void 0}async getDefaultBranch(t){let e=(await this._runGit(t,["symbolic-ref","refs/remotes/origin/HEAD"]))?.trim();if(e){if(!e.startsWith("refs/remotes/origin/"))return e;let n=e.substring(20);return await this._runGit(t,["show-ref","--verify","--quiet",`refs/remotes/origin/${n}`])!==void 0?`origin/${n}`:await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${n}`])!==void 0?n:void 0}}async getBranches(t,e){let n=["for-each-ref","--format=%(refname:short)","--sort=-committerdate"];n.push("refs/heads");let r=await this._runGit(t,n);if(!r)return[];let o=r.split(/\r?\n/g).map(s=>s.trim()).filter(s=>s.length>0);return vw(o,e)}async getRepositoryRoot(t){let e=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();return e?y.file(e):void 0}async getWorktreeRoots(t){let e=await this._runGit(t,["worktree","list","--porcelain"]);return e?e.split(/\r?\n/g).filter(n=>n.startsWith("worktree ")).map(n=>y.file(n.substring(9))):[]}async addWorktree(t,e,n,r){let o=await this._resolveRemoteTrackingBranch(t,r)??r;await this._runGit(t,["worktree","add","--no-track","-b",n,e.fsPath,o],{timeout:6e4,throwOnError:!0})}async addExistingWorktree(t,e,n){await this._runGit(t,["worktree","add",e.fsPath,n],{timeout:6e4,throwOnError:!0})}async removeWorktree(t,e){await this._runGit(t,["worktree","remove","--force",e.fsPath],{timeout:6e4,throwOnError:!0})}async branchExists(t,e){return await this._runGit(t,["show-ref","--verify","--quiet",`refs/heads/${e}`])!==void 0}async hasUncommittedChanges(t){let e=await this._runGit(t,["status","--porcelain"]);return!!e&&e.trim().length>0}async computeSessionFileDiffs(t,e){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let r=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!r)return;let o=y.file(r),s;if(e.baseBranch){let u=await this._resolveRemoteTrackingBranch(o,e.baseBranch)??e.baseBranch;s=(await this._runGit(o,["merge-base","HEAD",u]))?.trim()}s||(s=(await this._runGit(o,["rev-parse","HEAD"]))?.trim()),s||(s=rm);let a=await this._runGit(o,["status","--porcelain=v1","-z","--untracked-files=all"]),l=Iw(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 Fb(c,o,e.sessionUri,s)}async _runWithTempIndex(t,e){let n=y.joinPath(this._environmentService.tmpDir,`agent-host-git-diff-${j()}`);await this._fileService.createFolder(n);let o={GIT_INDEX_FILE:y.joinPath(n,"index").fsPath};o.COMMAND_HOOK_LOCK="1";try{return await this._runGit(t,["read-tree","HEAD"],{env:o})===void 0&&await this._runGit(t,["read-tree",rm],{env:o}),await this._runGit(t,["add","-A","--",":/"],{env:o}),await this._runGit(t,["diff","--cached","--raw","--numstat","--diff-filter=ADMR","-z",e,"--"],{env:o})}finally{try{await this._fileService.del(n,{recursive:!0,useTrash:!1})}catch{}}}async _resolveRemoteTrackingBranch(t,e){let n=`origin/${e}`;return await this._runGit(t,["show-ref","--verify","--quiet",`refs/remotes/${n}`])!==void 0?n:void 0}async showBlob(t,e,n){if(!(!/^[0-9a-f]{4,64}$/.test(e)||(await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true"))return new Promise(o=>{Wc.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(k.wrap(a))})})}async getSessionGitState(t){return this._computeSessionGitState(t)}async captureWorkingTreeAsTree(t){if((await this._runGit(t,["rev-parse","--is-inside-work-tree"]))?.trim()!=="true")return;let n=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!n)return;let r=y.file(n),o=y.joinPath(this._environmentService.tmpDir,`agent-host-checkpoint-${j()}`);await this._fileService.createFolder(o);let a={GIT_INDEX_FILE:y.joinPath(o,"index").fsPath,COMMAND_HOOK_LOCK:"1"};try{return await this._runGit(r,["read-tree","HEAD"],{env:a})===void 0&&await this._runGit(r,["read-tree",rm],{env:a}),await this._runGit(r,["add","-A","--",":/"],{env:a}),(await this._runGit(r,["write-tree"],{env:a}))?.trim()||void 0}finally{try{await this._fileService.del(o,{recursive:!0,useTrash:!1})}catch{}}}async commitTree(t,e,n,r){let o=["commit-tree",e];return n&&o.push("-p",n),o.push("-m",r),(await this._runGit(t,o,{throwOnError:!0}))?.trim()||void 0}async updateRef(t,e,n){await this._runGit(t,["update-ref",e,n],{throwOnError:!0})}async deleteRefs(t,e){if(e.length===0)return;let n=e.map(r=>`delete ${r}\0\0`).join("");await new Promise(r=>{Wc.execFile("git",["update-ref","--stdin","-z"],{cwd:t.fsPath,timeout:1e4},()=>{r()}).stdin?.end(n)})}async revParse(t,e){return(await this._runGit(t,["rev-parse","--verify","--quiet",e]))?.trim()||void 0}async computeFileDiffsBetweenRefs(t,e){let n=(await this._runGit(t,["rev-parse","--show-toplevel"]))?.trim();if(!n)return;let r=y.file(n),o=(await this._runGit(r,["rev-parse","--verify","--quiet",e.fromRef]))?.trim(),s=(await this._runGit(r,["rev-parse","--verify","--quiet",e.toRef]))?.trim();if(!o||!s)return;let a=await this._runGit(r,["diff","--raw","--numstat","--diff-filter=ADMR","-z",o,s,"--"]);if(a!==void 0)return Fb(a,r,e.sessionUri,o,s)}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=_w(n),a=Cw(r),l=ww(o),c=Tw(r),u=s.outgoingChanges;if(u===void 0&&l&&s.branchName&&s.branchName!==l){let f=await this._runGit(t,["rev-list","--count",`${l}..HEAD`]),g=f===void 0?NaN:Number(f.trim());Number.isFinite(g)&&(u=g)}let d={hasGitHubRemote:a,branchName:s.branchName,baseBranchName:l,upstreamBranchName:s.upstreamBranchName,incomingChanges:s.incomingChanges,outgoingChanges:u,uncommittedChanges:s.uncommittedChanges,githubOwner:c?.owner,githubRepo:c?.repo};return Rw(d)}_runGit(t,e,n){return new Promise((r,o)=>{let s=n?.env?{...process.env,...n.env}:void 0,a=n?.timeout??5e3,l=!1,c=Wc.execFile("git",[...e],{cwd:t.fsPath,env:s,maxBuffer:n?.maxBuffer??32*1024*1024},(d,f,g)=>{if(d){if(g&&this._logService.warn(`[agentHostGitService] git ${e.join(" ")} failed; full stderr:
${g}`),n?.throwOnError){o(new Error(bw(e,a,l,d,g),{cause:d}));return}r(void 0);return}r(f)}),u=setTimeout(()=>{l=!0,c.kill()},a);c.on("exit",()=>clearTimeout(u))})}};To=w([C(0,Me),C(1,Dr),C(2,M)],To);function bw(i,t,e,n,r){let o=i[0]??"(unknown)",s;e?s=`git ${o} timed out after ${t}ms`:n.killed&&n.signal?s=`git ${o} killed by ${n.signal}`:typeof n.code=="number"?s=`git ${o} exited with code ${n.code}`:s=n.message;let a=Sw(r);return a?`${s}: ${a}`:s}function Sw(i){if(!i)return"";let t=i.split(/[\r\n]+/g).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)return"";let e=t[t.length-1],n=200;return e.length>n?`${e.slice(0,n-1)}\u2026`:e}var rm="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function Iw(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 Fb(i,t,e,n,r){let o=i.split("\0"),s=[],a=new Map,l=0;for(;l<o.length;){let c=o[l++];if(c)if(c.startsWith(":")){let d=c.split(" ")[4]??"",f=o[l++];if(!f)continue;switch(d[0]){case"A":s.push({kind:"create",newPath:f});break;case"M":s.push({kind:"edit",oldPath:f,newPath:f});break;case"D":s.push({kind:"delete",oldPath:f});break;case"R":{let g=o[l++];if(!g)continue;s.push({kind:"rename",oldPath:f,newPath:g});break}default:break}}else{let[u,d,f]=c.split("	"),g;if(f===""||f===void 0){let h=o[l++];g=o[l++]??h??""}else g=f;if(!g)continue;a.set(g,{added:u==="-"?0:Number(u)||0,removed:d==="-"?0:Number(d)||0})}}return s.map(c=>{let u=a.get(c.newPath??c.oldPath??""),d=c.kind!=="create",f=c.kind!=="delete";return{...d&&c.oldPath?{before:{uri:y.joinPath(t,c.oldPath).toString(),content:{uri:Dc(e,n,c.oldPath)}}}:{},...f&&c.newPath?{after:r!==void 0?{uri:Dc(e,r,c.newPath),content:{uri:Dc(e,r,c.newPath)}}:{uri:y.joinPath(t,c.newPath).toString(),content:{uri:y.joinPath(t,c.newPath).toString()}}}:{},diff:{added:u?.added??0,removed:u?.removed??0}}})}function _w(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 Cw(i){if(i!==void 0)return i.trim()?/github\.com[:\/]/i.test(i):!1}function Tw(i){if(!i)return;let t=[];for(let n of i.split(/\r?\n/)){let r=n.trim();if(!r)continue;let o=/^(\S+)\s+(\S+)\s+\(fetch\)$/.exec(r);o&&t.push({name:o[1],url:o[2]})}if(t.length===0)return;let e=[...t.filter(n=>n.name==="origin"),...t.filter(n=>n.name!=="origin")];for(let{url:n}of e){let r=xw(n);if(r)return r}}function xw(i){let t=/^[^@\s]+@github\.com:([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i.exec(i);if(t)return{owner:t[1],repo:t[2]};if(t=/^[a-z+]+:\/\/(?:[^@\/\s]+@)?github\.com(?::\d+)?\/([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i.exec(i),t)return{owner:t[1],repo:t[2]}}function ww(i){let t=i?.trim();if(!t)return;let e="refs/remotes/origin/";return t.startsWith(e)?t.substring(e.length):t}function Rw(i){let t={};for(let[e,n]of Object.entries(i))n!==void 0&&(t[e]=n);return t}var Tn=$("agentHostCheckpointService"),xo="checkpoint.baseRef";function im(i,t){return`refs/agents/${i}/checkpoints/turn/${t}`}var Wb={_serviceBrand:void 0,captureBaseline:async()=>{},captureTurnCheckpoint:async()=>{},getTurnCheckpointPair:async()=>{},disposeSessionData:async()=>{}};import{Worker as Ew}from"worker_threads";var Or=class extends T{constructor(e){super();this._logService=e;this._workerFailures=0;this._nextId=1;this._pending=new Map}async computeDiffCounts(e,n,r=kb){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=tt.asFileUri("vs/platform/agentHost/node/diffWorkerMain.js").fsPath,n=new Ew(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()}};Or=w([C(0,M)],Or);function $b(i){return i.after?.uri??i.before?.uri}function Vb(i,t,e,n){let r=t.firstKind!=="create",o=t.lastKind!=="delete";return{...r?{before:{uri:y.file(t.firstFilePath).toString(),content:{uri:Ar(i,t.firstToolCallId,t.firstFilePath,"before")}}}:{},...o?{after:{uri:y.file(t.terminalPath).toString(),content:{uri:Ar(i,t.lastToolCallId,t.lastFilePath,"after")}}}:{},diff:{added:e,removed:n}}}async function Bb(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($b));f.some(v=>v.kind==="rename"||g.has(y.file(v.filePath).toString()))?r=await t.getAllFileEdits():(r=f,o=!0)}else r=await t.getAllFileEdits();if(r.length===0)return[];let s=new Map,a=new Map,l=n&&!o?new Set:void 0;for(let f of r){let g;f.kind==="rename"&&f.originalPath?(g=s.get(f.originalPath)??f.originalPath,s.set(f.filePath,g),s.delete(f.originalPath)):(g=s.get(f.filePath)??f.filePath,s.set(f.filePath,g)),l&&f.turnId===n.changedTurnId&&l.add(g);let h=a.get(g);h?(h.terminalPath=f.filePath,h.lastToolCallId=f.toolCallId,h.lastFilePath=f.filePath,h.lastKind=f.kind):a.set(g,{terminalPath:f.filePath,firstToolCallId:f.toolCallId,firstFilePath:f.kind==="rename"&&f.originalPath?f.originalPath:f.filePath,firstKind:f.kind,lastToolCallId:f.toolCallId,lastFilePath:f.filePath,lastKind:f.kind})}let c=n&&!o?new Map(n.previousDiffs.map(f=>[$b(f),f])):void 0,u=[],d=[];for(let[f,g]of a){if(l&&!l.has(f)){let h=y.file(g.terminalPath).toString(),v=c.get(h);v&&u.push(v);continue}d.push((async()=>{let h;if(g.firstKind==="create")h="";else{let _=await t.readFileEditContent(g.firstToolCallId,g.firstFilePath);h=_?.beforeContent?new TextDecoder().decode(_.beforeContent):""}let v;if(g.lastKind==="delete")v="";else{let _=await t.readFileEditContent(g.lastToolCallId,g.lastFilePath);v=_?.afterContent?new TextDecoder().decode(_.afterContent):""}if(h===v)return;let S=await e.computeDiffCounts(h,v);u.push(Vb(i,g,S.added,S.removed))})())}return await Promise.allSettled(d),o&&u.push(...n.previousDiffs),u}async function Hb(i,t,e,n){let r=await t.getFileEditsByTurn(n);if(r.length===0)return[];let o=new Map,s=new Map;for(let c of r){let u;c.kind==="rename"&&c.originalPath?(u=o.get(c.originalPath)??c.originalPath,o.set(c.filePath,u),o.delete(c.originalPath)):(u=o.get(c.filePath)??c.filePath,o.set(c.filePath,u));let d=s.get(u);d?(d.terminalPath=c.filePath,d.lastToolCallId=c.toolCallId,d.lastFilePath=c.filePath,d.lastKind=c.kind):s.set(u,{terminalPath:c.filePath,firstToolCallId:c.toolCallId,firstFilePath:c.kind==="rename"&&c.originalPath?c.originalPath:c.filePath,firstKind:c.kind,lastToolCallId:c.toolCallId,lastFilePath:c.filePath,lastKind:c.kind})}let a=[],l=[];for(let c of s.values())l.push((async()=>{let u;if(c.firstKind==="create")u="";else{let g=await t.readFileEditContent(c.firstToolCallId,c.firstFilePath);u=g?.beforeContent?new TextDecoder().decode(g.beforeContent):""}let d;if(c.lastKind==="delete")d="";else{let g=await t.readFileEditContent(c.lastToolCallId,c.lastFilePath);d=g?.afterContent?new TextDecoder().decode(g.afterContent):""}if(u===d)return;let f=await e.computeDiffCounts(u,d);a.push(Vb(i,c,f.added,f.removed))})());return await Promise.allSettled(l),a}var xa="checkpoint.workingDir",wo=class extends T{constructor(e,n,r){super();this._sessionDataService=e;this._gitService=n;this._logService=r;this._sequencer=new ft;this._register(this._sessionDataService.onWillDeleteSessionData(o=>{o.waitUntil(this.disposeSessionData(o.session))}))}captureBaseline(e,n){return this._sequencer.queue(e.toString(),()=>this._captureBaseline(e,n))}async _captureBaseline(e,n){if(!n)return;let r=this._sessionDataService.openDatabase(e);try{let o=await r.object.getMetadata(xo);if(o)return o;let s=this._sanitizedSessionId(e),a=im(s,0),l=await this._writeCheckpointCommit(n,void 0,`Agent host session ${s} - baseline checkpoint`);if(!l)return;let c=await this._gitService.getRepositoryRoot(n);return c?(await this._gitService.updateRef(c,a,l.commitOid),await r.object.setMetadata(xo,a),await r.object.setMetadata(xa,n.toString()),this._logService.trace(`[AgentHostCheckpoint] Captured baseline for ${e.toString()} at ${a}`),a):void 0}catch(o){this._logService.warn(`[AgentHostCheckpoint] Failed to capture baseline for ${e.toString()}`,o);return}finally{r.dispose()}}captureTurnCheckpoint(e,n){return this._sequencer.queue(e.toString(),()=>this._captureTurnCheckpoint(e,n))}async _captureTurnCheckpoint(e,n){let r=this._sessionDataService.openDatabase(e);try{let[o,s,a,l]=await Promise.all([r.object.getMetadata(xo),r.object.getMetadata(xa),r.object.getTurnCheckpointRef(n),r.object.getPreviousCheckpointRef(n)]);if(a)return a;if(!o||!s)return;let c=y.parse(s),u=await this._gitService.getRepositoryRoot(c);if(!u)return;let d=l??o,f=await this._gitService.revParse(u,d);if(!f){this._logService.warn(`[AgentHostCheckpoint] Parent ref ${d} missing for session ${e.toString()}`);return}let g=await this._gitService.captureWorkingTreeAsTree(c);if(!g)return;let h=await this._gitService.revParse(u,`${f}^{tree}`);if(h&&h===g)return await r.object.setTurnCheckpointRef(n,d),this._logService.trace(`[AgentHostCheckpoint] No-op turn ${n} for ${e.toString()}; reusing ${d}`),d;let v=this._sanitizedSessionId(e),S=await this._nextTurnNumber(r.object),_=im(v,S),b=await this._gitService.commitTree(u,g,f,`Agent host session ${v} - turn ${S}`);return b?(await this._gitService.updateRef(u,_,b),await r.object.setTurnCheckpointRef(n,_),this._logService.trace(`[AgentHostCheckpoint] Captured turn ${S} for ${e.toString()} at ${_}`),_):void 0}catch(o){this._logService.warn(`[AgentHostCheckpoint] Failed to capture turn checkpoint for ${e.toString()}/${n}`,o);return}finally{r.dispose()}}async getTurnCheckpointPair(e,n){let r=this._sessionDataService.openDatabase(e);try{let[o,s,a]=await Promise.all([r.object.getTurnCheckpointRef(n),r.object.getPreviousCheckpointRef(n),r.object.getMetadata(xo)]);if(!o)return;let l=s??a;return l?{parent:l,current:o}:void 0}finally{r.dispose()}}async disposeSessionData(e){await this._sequencer.queue(e.toString(),()=>this._disposeSessionData(e))}async _disposeSessionData(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(n)try{let[r,o,s]=await Promise.all([n.object.getMetadata(xa),n.object.getMetadata(xo),n.object.getAllCheckpointRefs()]);if(!r)return;let a=y.parse(r),l=await this._gitService.getRepositoryRoot(a);if(!l)return;let c=new Set;o&&c.add(o);for(let u of s)c.add(u);if(c.size===0)return;await this._gitService.deleteRefs(l,[...c]),this._logService.trace(`[AgentHostCheckpoint] Deleted ${c.size} checkpoint refs for ${e.toString()}`)}catch(r){this._logService.warn(`[AgentHostCheckpoint] Failed to dispose checkpoint refs for ${e.toString()}`,r)}finally{n.dispose()}}async _writeCheckpointCommit(e,n,r){let o=await this._gitService.captureWorkingTreeAsTree(e);if(!o)return;let s=await this._gitService.getRepositoryRoot(e);if(!s)return;let a=await this._gitService.commitTree(s,o,n,r);if(a)return{commitOid:a}}async _nextTurnNumber(e){let n=await e.getAllCheckpointRefs(),r=0;for(let o of n){let s=o.lastIndexOf("/"),a=s>=0?o.substring(s+1):o,l=parseInt(a,10);Number.isFinite(l)&&l>r&&(r=l)}return r+1}_sanitizedSessionId(e){return q.id(e).replace(/[^a-zA-Z0-9_.-]/g,"-")}};wo=w([C(0,gt),C(1,Qt),C(2,M)],wo);var wa="agentHost.changeset.uncommitted",Ra="agentHost.changeset.session",Ea="diffs";function om(i,t){return t==="uncommitted"?Sn(i):sn(i)}function Pw(i){return i==="uncommitted"?wa:Ra}function qb(i,t,e,n){let r=n?{label:i,uriTemplate:t,description:n}:{label:i,uriTemplate:t};if(!e)return r;let o=0,s=0;for(let a of e)o+=a.diff?.added??0,s+=a.diff?.removed??0;return{...r,additions:o,deletions:s,files:e.length}}function zb(i,t,e){return[qb(Ef(),sn(i),e),qb(Pf(),Sn(i),t,kf()),{label:Af(),uriTemplate:Df(i)}]}function jb(i,t,e){let n=t?.status==="ready"?t.files.map(o=>o.edit):void 0,r=e?.status==="ready"?e.files.map(o=>o.edit):void 0;if(!(!n&&!r))return zb(i,n,r)}function Kb(i,t,e){if(!(!t&&!e))return zb(i,t,e)}function sm(i,t,e,n){if(i)try{return JSON.parse(i)}catch(r){n.warn(`[AgentHostChangesetService] Failed to parse persisted ${e} diffs for ${t}: ${St(r)}`);return}}var Vc=$("agentHostChangesetService"),rr=class extends T{constructor(e,n,r,o,s){super();this._stateManager=e;this._logService=n;this._sessionDataService=r;this._gitService=o;this._checkpointService=s;this._diffComputationSequencer=new ft;this._debouncedDiffTimers=this._register(new dt);this._perTurnDebouncedDiffTimers=this._register(new dt);this._activeStaticComputes=new Set;this._hasTurnSubscribers=()=>!1;this._diffComputeService=this._register(new Or(this._logService))}static{this._DIFF_DEBOUNCE_MS=5e3}setTurnSubscriberProbe(e){this._hasTurnSubscribers=e}registerStaticChangesets(e){this._stateManager.registerChangeset(Sn(e)),this._stateManager.registerChangeset(sn(e))}restoreStaticChangeset(e,n,r){let o=this._stateManager.registerChangeset(om(e,n));this._publishChangesetDiffs(e,o,r)}parsePersistedStaticChangesets(e,n){let r=sm(n.uncommittedRaw,e,"uncommitted",this._logService),o=sm(n.sessionRaw,e,"session",this._logService)??sm(n.legacyRaw,e,"session (legacy)",this._logService);return{uncommitted:r,session:o}}applyPersistedStaticChangesets(e,n){this._seedIfEmpty(e,"uncommitted",n.uncommitted),this._seedIfEmpty(e,"session",n.session)}restorePersistedStaticChangesets(e,n){let r=this.parsePersistedStaticChangesets(e,n);return this.applyPersistedStaticChangesets(e,r),r}isStaticChangesetComputeActive(e){return this._activeStaticComputes.has(e)}_seedIfEmpty(e,n,r){if(!r)return;let o=this._stateManager.getChangesetState(om(e,n));o&&o.files.length>0||this.restoreStaticChangeset(e,n,r)}refreshUncommittedChangeset(e){this._scheduleStaticRecompute(e,"uncommitted")}refreshSessionChangeset(e){this._scheduleStaticRecompute(e,"session")}async computeTurnChangeset(e,n){let r=this._stateManager.registerChangeset(Wv(e,n)),o;try{o=this._sessionDataService.openDatabase(y.parse(e))}catch(s){return this._logService.warn(`[AgentHostChangesetService] Failed to open session database for turn diff: ${e}`,s),this._stateManager.dispatchServerAction(r,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:s instanceof Error?s.message:String(s)}}),r}try{let s=await this._computeTurnDiffsPreferCheckpoint(e,o.object,n);this._publishChangesetDiffs(e,r,s)}catch(s){this._logService.warn(`[AgentHostChangesetService] Failed to compute turn diffs for ${e}/${n}`,s),this._stateManager.dispatchServerAction(r,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:s instanceof Error?s.message:String(s)}})}finally{o.dispose()}return r}async computeCompareTurnsChangeset(e,n,r){let o=this._stateManager.registerChangeset($v(e,n,r)),s;try{s=this._sessionDataService.openDatabase(y.parse(e))}catch(a){return this._logService.warn(`[AgentHostChangesetService] Failed to open session database for compare-turns diff: ${e}`,a),this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:a instanceof Error?a.message:String(a)}}),o}try{let a=y.parse(e),[l,c]=await Promise.all([this._checkpointService.getTurnCheckpointPair(a,n),this._checkpointService.getTurnCheckpointPair(a,r)]);if(!l||!c){let f=!l&&!c?"both turns":l?"modified turn":"original turn";return this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:`No checkpoint available for ${f}; compare requires git-backed sessions.`}}),o}if(l.current===c.current)return this._publishChangesetDiffs(e,o,[]),o;let u=await this._resolveWorkingDirectory(s.object);if(!u)return this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:"No working directory recorded for session; compare requires git-backed sessions."}}),o;let d=await this._gitService.computeFileDiffsBetweenRefs(u,{sessionUri:e,fromRef:l.current,toRef:c.current});if(d===void 0)return this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:`Failed to compute compare-turns diff from git (${l.current}..${c.current}).`}}),o;this._publishChangesetDiffs(e,o,d)}catch(a){this._logService.warn(`[AgentHostChangesetService] Failed to compute compare-turns diffs for ${e}/${n}/${r}`,a),this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:a instanceof Error?a.message:String(a)}})}finally{s.dispose()}return o}async _computeTurnDiffsPreferCheckpoint(e,n,r){let o=await this._checkpointService.getTurnCheckpointPair(y.parse(e),r);if(o&&o.parent!==o.current){let s=await this._resolveWorkingDirectory(n);if(s){let a=await this._gitService.computeFileDiffsBetweenRefs(s,{sessionUri:e,fromRef:o.parent,toRef:o.current});if(a)return a}}else if(o&&o.parent===o.current)return[];return Hb(e,n,this._diffComputeService,r)}async _resolveWorkingDirectory(e){let n=await e.getMetadata(xa);return n?y.parse(n):void 0}onToolCallEditsApplied(e,n){this._scheduleDebouncedDiffComputation(e,n),this._hasTurnSubscribers(e,n)&&this._scheduleDebouncedTurnDiffComputation(e,n)}onTurnComplete(e,n){this._cancelDebouncedDiffComputation(e),n!==void 0&&(this._cancelDebouncedTurnDiffComputation(e,n),this._hasTurnSubscribers(e,n)&&this._scheduleTurnRecompute(e,n)),this._scheduleStaticRecompute(e,"session",n),this._scheduleStaticRecompute(e,"uncommitted")}onSessionTruncated(e){this._scheduleStaticRecompute(e,"session")}_scheduleDebouncedDiffComputation(e,n){this._debouncedDiffTimers.set(e,Us(()=>{this._debouncedDiffTimers.deleteAndDispose(e),this._scheduleStaticRecompute(e,"session",n)},rr._DIFF_DEBOUNCE_MS))}_cancelDebouncedDiffComputation(e){this._debouncedDiffTimers.deleteAndDispose(e)}_scheduleDebouncedTurnDiffComputation(e,n){let r=`${e}\0${n}`;this._perTurnDebouncedDiffTimers.set(r,Us(()=>{this._perTurnDebouncedDiffTimers.deleteAndDispose(r),this._scheduleTurnRecompute(e,n)},rr._DIFF_DEBOUNCE_MS))}_cancelDebouncedTurnDiffComputation(e,n){this._perTurnDebouncedDiffTimers.deleteAndDispose(`${e}\0${n}`)}_scheduleTurnRecompute(e,n){this._diffComputationSequencer.queue(`${e}\0turn\0${n}`,()=>this.computeTurnChangeset(e,n).then(()=>{}))}_scheduleStaticRecompute(e,n,r){this._diffComputationSequencer.queue(`${e}\0${n}`,()=>this._doComputeStaticChangeset(e,n,r))}async _doComputeStaticChangeset(e,n,r){let o=om(e,n);this._activeStaticComputes.add(o);let s;try{s=this._sessionDataService.openDatabase(y.parse(e))}catch(a){this._logService.warn(`[AgentHostChangesetService] Failed to open session database for ${n} diff computation: ${e}`,a),this._activeStaticComputes.delete(o),this._stateManager.onChangesetLivenessChanged();return}this._stateManager.registerChangeset(o);try{let a=await this._tryComputeGitDiffs(e,s.object,n);if(!a){if(n==="uncommitted")return;let l;if(r){let c=this._readPreviousChangesetDiffs(o);c&&(l={changedTurnId:r,previousDiffs:[...c]})}a=await Bb(e,s.object,this._diffComputeService,l)}this._publishChangesetDiffs(e,o,a),this._persistSessionFlag(e,Pw(n),JSON.stringify(a)),n==="session"&&this._persistSessionFlag(e,Ea,JSON.stringify(a))}catch(a){this._logService.warn(`[AgentHostChangesetService] Failed to compute ${n} diffs`,a),this._stateManager.dispatchServerAction(o,{type:"changeset/statusChanged",status:"error",error:{errorType:"computeFailed",message:a instanceof Error?a.message:String(a)}})}finally{this._activeStaticComputes.delete(o),this._stateManager.onChangesetLivenessChanged(),s.dispose()}}_readPreviousChangesetDiffs(e){let n=this._stateManager.getChangesetState(e);if(!(!n||n.files.length===0))return n.files.map(r=>r.edit)}_publishChangesetDiffs(e,n,r){let o=this._stateManager.getChangesetState(n),s=new Set(o?.files.map(g=>g.id)??[]),a=new Map;for(let g of r){let h=g.after?.uri??g.before?.uri;if(!h)continue;a.set(h,g);let v={id:h,edit:g};this._stateManager.dispatchServerAction(n,{type:"changeset/fileSet",file:v})}for(let g of s)a.has(g)||this._stateManager.dispatchServerAction(n,{type:"changeset/fileRemoved",fileId:g});this._stateManager.getChangesetState(n)?.status!=="ready"&&this._stateManager.dispatchServerAction(n,{type:"changeset/statusChanged",status:"ready"});let c=this._stateManager.getSessionState(e);if(!c)return;let u=Array.from(a.values()).reduce((g,h)=>(g.additions+=h.diff?.added??0,g.deletions+=h.diff?.removed??0,g),{additions:0,deletions:0}),f=(c.summary.changesets??[]).map(g=>g.uriTemplate===n?{...g,additions:u.additions,deletions:u.deletions,files:a.size}:g);this._stateManager.setSessionChangesets(e,f)}async _tryComputeGitDiffs(e,n,r){let o=this._stateManager.getSessionState(e)?.summary.workingDirectory;if(!o)return;let s;try{s=y.parse(o)}catch{return}let a=r==="session"?await n.getMetadata($c)??void 0:void 0;try{return await this._gitService.computeSessionFileDiffs(s,{sessionUri:e,baseBranch:a})}catch(l){this._logService.warn(`[AgentHostChangesetService] git-driven ${r} diff computation failed; falling back to edit-tracker`,l);return}}_persistSessionFlag(e,n,r){let o=this._sessionDataService.openDatabase(y.parse(e));o.object.setMetadata(n,r).catch(s=>{this._logService.warn(`[AgentHostChangesetService] Failed to persist ${n}`,s)}).finally(()=>{o.dispose()})}};rr=w([C(1,M),C(2,gt),C(3,Qt),C(4,Tn)],rr);import{homedir as Yw}from"os";var Ro="**",Gb="/",Bc="[/\\\\]",Hc="[^/\\\\]",kw=/\//g;function Jb(i,t){switch(i){case 0:return"";case 1:return`${Hc}*?`;default:return`(?:${Bc}|${Hc}+${Bc}${t?`|${Bc}${Hc}+`:""})*?`}}function Qb(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 tS(i){if(!i)return"";let t="",e=Qb(i,Gb);if(e.every(n=>n===Ro))t=".*";else{let n=!1;e.forEach((r,o)=>{if(r===Ro){if(n)return;t+=Jb(2,o===e.length-1)}else{let s=!1,a="",l=!1,c="";for(let u of r){if(u!=="}"&&s){a+=u;continue}if(l&&(u!=="]"||!c)){let d;u==="-"?d=u:(u==="^"||u==="!")&&!c?d="^":u===Gb?d="":d=Mt(u),c+=d;continue}switch(u){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let f=`(?:${Qb(a,",").map(g=>tS(g)).join("|")})`;t+=f,s=!1,a="";break}case"]":{t+="["+c+"]",l=!1,c="";break}case"?":t+=Hc;continue;case"*":t+=Jb(1);continue;default:t+=Mt(u)}}o<e.length-1&&(e[o+1]!==Ro||o+2<e.length)&&(t+=Bc)}n=r===Ro})}return t}var Aw=/^\*\*\/\*\.[\w\.-]+$/,Dw=/^\*\*\/([\w\.-]+)\/?$/,Ow=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,Lw=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,Mw=/^\*\*((\/[\w\.-]+)+)\/?$/,Nw=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,Yb=new pn(1e4),Xb=function(){return!1},xn=function(){return null};function lm(i,t){if(!i)return xn;let e;typeof i!="string"?e=i.pattern:e=i,e=e.trim();let n=t.ignoreCase??!1,r={...t,equals:n?Bn:(l,c)=>l===c,endsWith:n?Kh:(l,c)=>l.endsWith(c),isEqualOrParent:(l,c)=>Hn(l,c,t.ignoreCase??!he)},o=`${n?e.toLowerCase():e}_${!!t.trimForExclusions}_${n}`,s=Yb.get(o);if(s)return Zb(s,i,r);let a;return Aw.test(e)?s=Uw(e.substring(4),e,r):(a=Dw.exec(am(e,r)))?s=Fw(a[1],e,r):(t.trimForExclusions?Lw:Ow).test(e)?s=Ww(e,r):(a=Mw.exec(am(e,r)))?s=eS(a[1].substring(1),e,!0,r):(a=Nw.exec(am(e,r)))?s=eS(a[1],e,!1,r):s=$w(e,r),Yb.set(o,s),Zb(s,i,r)}function Zb(i,t,e){if(typeof t=="string")return i;let n=function(r,o){return e.isEqualOrParent(r,t.base)?i(Tp(r.substring(t.base.length),Se),o):null};return n.allBasenames=i.allBasenames,n.allPaths=i.allPaths,n.basenames=i.basenames,n.patterns=i.patterns,n}function am(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function Uw(i,t,e){return function(n,r){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function Fw(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 Ww(i,t){let e=rS(i.slice(1,-1).split(",").map(a=>lm(a,t)).filter(a=>a!==xn),i),n=e.length;if(!n)return xn;if(n===1)return e[0];let r=function(a,l){for(let c=0,u=e.length;c<u;c++)if(e[c](a,l))return i;return null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function eS(i,t,e,n){let r=Se===Z.sep,o=r?i:i.replace(kw,Se),s=Se+o,a=Z.sep+i,l;return e?l=function(c,u){return typeof c=="string"&&(n.equals(c,o)||n.endsWith(c,s)||!r&&(n.equals(c,i)||n.endsWith(c,a)))?t:null}:l=function(c,u){return typeof c=="string"&&(n.equals(c,o)||!r&&n.equals(c,i))?t:null},l.allPaths=[(e?"*/":"./")+i],l}function $w(i,t){try{let e=new RegExp(`^${tS(i)}$`,t.ignoreCase?"i":void 0);return function(n){return e.lastIndex=0,typeof n=="string"&&e.test(n)?i:null}}catch{return xn}}function nS(i,t,e){return!i||typeof t!="string"?!1:cm(i,e)(t)}function cm(i,t={}){if(!i)return Xb;if(typeof i=="string"||Vw(i)){let e=lm(i,t);if(e===xn)return Xb;let n=function(r,o){return!!e(r,o)};return e.allBasenames&&(n.allBasenames=e.allBasenames),e.allPaths&&(n.allPaths=e.allPaths),n}return Bw(i,t)}function Vw(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function Bw(i,t){let e=rS(Object.getOwnPropertyNames(i).map(a=>Hw(a,i[a],t)).filter(a=>a!==xn)),n=e.length;if(!n)return xn;if(!e.some(a=>!!a.requiresSiblings)){if(n===1)return e[0];let a=function(u,d){let f;for(let g=0,h=e.length;g<h;g++){let v=e[g](u,d);if(typeof v=="string")return v;Pl(v)&&(f||(f=[]),f.push(v))}return f?(async()=>{for(let g of f){let h=await g;if(typeof h=="string")return h}return null})():null},l=e.find(u=>!!u.allBasenames);l&&(a.allBasenames=l.allBasenames);let c=e.reduce((u,d)=>d.allPaths?u.concat(d.allPaths):u,[]);return c.length&&(a.allPaths=c),a}let r=function(a,l,c){let u,d;for(let f=0,g=e.length;f<g;f++){let h=e[f];h.requiresSiblings&&c&&(l||(l=be(a)),u||(u=l.substring(0,l.length-Sl(a).length)));let v=h(a,l,u,c);if(typeof v=="string")return v;Pl(v)&&(d||(d=[]),d.push(v))}return d?(async()=>{for(let f of d){let g=await f;if(typeof g=="string")return g}return null})():null},o=e.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);let s=e.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function Hw(i,t,e){if(t===!1)return xn;let n=lm(i,e);if(n===xn)return xn;if(typeof t=="boolean")return n;if(t){let r=t.when;if(typeof r=="string"){let o=(s,a,l,c)=>{if(!c||!n(s,a))return null;let u=r.replace("$(basename)",()=>l),d=c(u);return Pl(d)?d.then(f=>f?i:null):d?i:null};return o.requiresSiblings=!0,o}}return n}function rS(i,t){let e=i.filter(a=>!!a.basenames);if(e.length<2)return i;let n=e.reduce((a,l)=>{let c=l.basenames;return c?a.concat(c):a},[]),r;if(t){r=[];for(let a=0,l=n.length;a<l;a++)r.push(t)}else r=e.reduce((a,l)=>{let c=l.patterns;return c?a.concat(c):a},[]);let o=function(a,l){if(typeof a!="string")return null;if(!l){let u;for(u=a.length;u>0;u--){let d=a.charCodeAt(u-1);if(d===47||d===92)break}l=a.substring(u)}let c=n.indexOf(l);return c!==-1?r[c]:null};o.basenames=n,o.patterns=r,o.allBasenames=n;let s=i.filter(a=>!a.basenames);return s.push(o),s}function dm(i,t){return Zt(i,t,(e,n)=>typeof e=="string"&&typeof n=="string"?e===n:typeof e!="string"&&typeof n!="string"?e.base===n.base&&e.pattern===n.pattern:!1)}function qc(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}import*as iS from"fs";var qw=new Set(["/dev/null","/dev/stdout","/dev/stderr","/dev/tty"]);function zw(i){let t=i.trim();return t.length===0?!1:((t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"'))&&(t=t.slice(1,-1)),/^&[0-9]+-?$/.test(t)?!0:qw.has(t))}function jw(i){if(!i.includes(">"))return{kind:"read"};let t=i.match(/(?:[0-9]+|&)?>>?\|?\s*(.+)$/);if(!t)return{kind:"unsafeWrite",dest:void 0};let e=t[1].trim();if(zw(e))return{kind:"safeWrite"};let n=e;return(n.startsWith("'")&&n.endsWith("'")||n.startsWith('"')&&n.endsWith('"'))&&(n=n.slice(1,-1)),{kind:"unsafeWrite",dest:n}}var um=/(?!.*)/,Kw=/^[A-Z_][A-Z0-9_]*=/i,zc=class extends T{constructor(e){super();this._logService=e;this._initPromise=this._initTreeSitter()}initialize(){return this._initPromise}shouldAutoApprove(e,n){let r=e.trimStart();if(r.length===0)return"approved";this._ensureRules();let o=this._extractSubCommands(r);if(!o)return this._logService.trace("[CommandAutoApprover] Tree-sitter unavailable, requiring confirmation"),"noMatch";let s=this._matchSubCommands(o.subCommands);if(s==="approved"&&o.unsafeWriteDests.length>0){for(let a of o.unsafeWriteDests)if(a===void 0||!n?.isWriteDestApproved?.(a))return this._logService.trace("[CommandAutoApprover] Write redirection to non-approved destination, requiring confirmation"),"noMatch"}return s}_matchSubCommands(e){let n=!0;for(let r of e){if(Kw.test(r))return"denied";let o=this._matchSingleCommand(r);if(o==="denied")return"denied";o!=="approved"&&(n=!1)}return n?"approved":"noMatch"}_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 (file_redirect) @file_redirect (heredoc_redirect) @heredoc_redirect (herestring_redirect) @herestring_redirect"),o=r.captures(n.rootNode),s=[],a=[];for(let l of o)if(l.name==="command")s.push(l.node.text);else if(l.name==="file_redirect"){let c=jw(l.node.text);c.kind==="unsafeWrite"&&a.push(c.dest)}else l.name==="heredoc_redirect"||l.name;return r.delete(),s.length>0||a.length>0?{subCommands:s,unsafeWriteDests:a}:void 0}finally{n.delete()}}catch(n){this._logService.warn("[CommandAutoApprover] Tree-sitter parsing failed",n);return}}async _initTreeSitter(){try{let{default:e}=await import("@vscode/tree-sitter-wasm");if(this._store.isDisposed)return;let n=y.joinPath(tt.asFileUri(""),"..","node_modules","@vscode","tree-sitter-wasm","wasm"),r=y.joinPath(n,"tree-sitter.wasm").fsPath;if(await e.Parser.init({locateFile(){return r}}),this._store.isDisposed)return;let o=new e.Parser;this._register(A(()=>{try{o.delete()}catch{}}));let s=y.joinPath(n,"tree-sitter-bash.wasm").fsPath,a=await iS.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(Jw)){let s=Gw(r);o===!0?e.push({regex:s}):o===!1&&n.push({regex:s})}this._allowRules=e,this._denyRules=n}};function Gw(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 zh(o)?um:o}catch{return um}}if(i==="")return um;let n;if(i.includes("/")||i.includes("\\")){let r=i.replace(/[/\\]/g,"%%PATH_SEP%%");r=Mt(r),r=r.replace(/%%PATH_SEP%%*/g,"[/\\\\]"),n=`^(?:\\.[/\\\\])?${r}`}else n=Mt(i);return new RegExp(`^${n}\\b`)}var Jw={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 oS="allow-session",Xw=[{id:oS,label:m(2136,null),kind:"approve",group:1},{id:"allow-once",label:m(2135,null),kind:"approve"},{id:"skip",label:m(2137,null),kind:"deny",group:2}],Zw={"**/*":!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},Eo=class extends T{constructor(e,n,r){super();this._stateManager=e;this._configService=n;this._logService=r;this._commandAutoApprover=this._register(new zc(this._logService))}initialize(){return this._commandAutoApprover.initialize()}getAutoApproval(e,n){let r=this._configService.getEffectiveValue(n,Pt,"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,{isWriteDestApproved:a=>this._isShellWriteDestApproved(a,o)});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",turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmationTitle:o.confirmationTitle,edits:o.edits,editable:o.editable,options:o.options?o.options.slice():Xw.slice()}:{type:"session/toolCallReady",turnId:r,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,toolInput:o.toolInput,confirmed:"not-needed"}}handleToolCallConfirmed(e,n,r){if(r===oS){let o=this._getToolNameForToolCall(e,n);o&&this._addToolToSessionPermissions(e,o)}}_isPathInWorkingDirectory(e,n){if(!n)return!1;let r=y.parse(n);return vt.isEqualOrParent(Nt(y.file(e)),r)}_isShellWriteDestApproved(e,n){let r=this._resolveShellRedirectPath(e,n);return r?this._isPathInWorkingDirectory(r,n)&&this._isEditAutoApproved(r):!1}_resolveShellRedirectPath(e,n){let r=qc(e.trim(),Yw());if(r){if(qt(r))return r;if(n)return tn(y.parse(n).fsPath,r)}}_isEditAutoApproved(e){let n=!0;for(let[r,o]of Object.entries(Zw))o!==n&&nS(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,Pt,"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,Pt,"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}`))}};Eo=w([C(1,Ye),C(2,M)],Eo);import{hostname as k0,release as A0}from"os";import{networkInterfaces as r0}from"os";import{networkInterfaces as e0}from"os";var t0=new Set(["00:00:00:00:00:00","ff:ff:ff:ff:ff:ff","ac:de:48:00:11:22"]);function n0(i){let t=i.replace(/\-/g,":").toLowerCase();return!t0.has(t)}function sS(){let i=e0();for(let t in i){let e=i[t];if(e){for(let{mac:n}of e)if(n0(n))return n}}throw new Error("Unable to retrieve mac address (unexpected format)")}var MW=new class{_isVirtualMachineMacAddress(i){return this._virtualMachineOUIs||(this._virtualMachineOUIs=vn.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=r0();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}},pm;async function jc(i){return pm||(pm=(async()=>await i0(i)||j())()),pm}async function i0(i){try{let t=await import("crypto"),e=sS();return t.createHash("sha256").update(e,"utf8").digest("hex")}catch(t){i(t);return}}var o0="Software\\Microsoft\\SQMClient";async function aS(i){if(H){let t=await import("@vscode/windows-registry");try{return t.GetStringRegKey("HKEY_LOCAL_MACHINE",o0,"MachineId")||""}catch(e){return i(e),""}}return""}async function Kc(i){try{let e=await(await import("@vscode/deviceid")).getDeviceId();return Yh(e)}catch(t){return i(t),j()}}var Jc;(t=>t.DEFAULT={allowTrailingComma:!0})(Jc||={});function mm(i,t=!1){let e=0,n=i.length,r="",o=0,s=16,a=0;function l(v){let S=0,_=0;for(;S<v;){let b=i.charCodeAt(e);if(b>=48&&b<=57)_=_*16+b-48;else if(b>=65&&b<=70)_=_*16+b-65+10;else if(b>=97&&b<=102)_=_*16+b-97+10;else break;e++,S++}return S<v&&(_=-1),_}function c(v){e=v,r="",o=0,s=16,a=0}function u(){let v=e;if(i.charCodeAt(e)===48)e++;else for(e++;e<i.length&&Po(i.charCodeAt(e));)e++;if(e<i.length&&i.charCodeAt(e)===46)if(e++,e<i.length&&Po(i.charCodeAt(e)))for(e++;e<i.length&&Po(i.charCodeAt(e));)e++;else return a=3,i.substring(v,e);let S=e;if(e<i.length&&(i.charCodeAt(e)===69||i.charCodeAt(e)===101))if(e++,(e<i.length&&i.charCodeAt(e)===43||i.charCodeAt(e)===45)&&e++,e<i.length&&Po(i.charCodeAt(e))){for(e++;e<i.length&&Po(i.charCodeAt(e));)e++;S=e}else a=3;return i.substring(v,S)}function d(){let v="",S=e;for(;;){if(e>=n){v+=i.substring(S,e),a=2;break}let _=i.charCodeAt(e);if(_===34){v+=i.substring(S,e),e++;break}if(_===92){if(v+=i.substring(S,e),e++,e>=n){a=2;break}switch(i.charCodeAt(e++)){case 34:v+='"';break;case 92:v+="\\";break;case 47:v+="/";break;case 98:v+="\b";break;case 102:v+="\f";break;case 110:v+=`
`;break;case 114:v+="\r";break;case 116:v+="	";break;case 117:{let I=l(4);I>=0?v+=String.fromCharCode(I):a=4;break}default:a=5}S=e;continue}if(_>=0&&_<=31)if(Gc(_)){v+=i.substring(S,e),a=2;break}else a=6;e++}return v}function f(){if(r="",a=0,o=e,e>=n)return o=n,s=17;let v=i.charCodeAt(e);if(fm(v)){do e++,r+=String.fromCharCode(v),v=i.charCodeAt(e);while(fm(v));return s=15}if(Gc(v))return e++,r+=String.fromCharCode(v),v===13&&i.charCodeAt(e)===10&&(e++,r+=`
`),s=14;switch(v){case 123:return e++,s=1;case 125:return e++,s=2;case 91:return e++,s=3;case 93:return e++,s=4;case 58:return e++,s=6;case 44:return e++,s=5;case 34:return e++,r=d(),s=10;case 47:{let S=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!Gc(i.charCodeAt(e));)e++;return r=i.substring(S,e),s=12}if(i.charCodeAt(e+1)===42){e+=2;let _=n-1,b=!1;for(;e<_;){if(i.charCodeAt(e)===42&&i.charCodeAt(e+1)===47){e+=2,b=!0;break}e++}return b||(e++,a=1),r=i.substring(S,e),s=13}return r+=String.fromCharCode(v),e++,s=16}case 45:if(r+=String.fromCharCode(v),e++,e===n||!Po(i.charCodeAt(e)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return r+=u(),s=11;default:for(;e<n&&g(v);)e++,v=i.charCodeAt(e);if(o!==e){switch(r=i.substring(o,e),r){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return r+=String.fromCharCode(v),e++,s=16}}function g(v){if(fm(v)||Gc(v))return!1;switch(v){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function h(){let v;do v=f();while(v>=12&&v<=15);return v}return{setPosition:c,getPosition:()=>e,scan:t?h:f,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>e-o,getTokenError:()=>a}}function fm(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 Gc(i){return i===10||i===13||i===8232||i===8233}function Po(i){return i>=48&&i<=57}function Qc(i,t=[],e=Jc.DEFAULT){let n=null,r=[],o=[];function s(l){Array.isArray(r)?r.push(l):n!==null&&(r[n]=l)}return ko(i,{onObjectBegin:()=>{let l={};s(l),o.push(r),r=l,n=null},onObjectProperty:l=>{n=l},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let l=[];s(l),o.push(r),r=l,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:s,onError:(l,c,u)=>{t.push({error:l,offset:c,length:u})}},e),r[0]}function lS(i,t=[],e=Jc.DEFAULT){let n={type:"array",offset:-1,length:-1,children:[],parent:void 0};function r(l){n.type==="property"&&(n.length=l-n.offset,n=n.parent)}function o(l){return n.children.push(l),l}ko(i,{onObjectBegin:l=>{n=o({type:"object",offset:l,length:-1,parent:n,children:[]})},onObjectProperty:(l,c,u)=>{n=o({type:"property",offset:c,length:-1,parent:n,children:[]}),n.children.push({type:"string",value:l,offset:c,length:u,parent:n})},onObjectEnd:(l,c)=>{n.length=l+c-n.offset,n=n.parent,r(l+c)},onArrayBegin:(l,c)=>{n=o({type:"array",offset:l,length:-1,parent:n,children:[]})},onArrayEnd:(l,c)=>{n.length=l+c-n.offset,n=n.parent,r(l+c)},onLiteralValue:(l,c,u)=>{o({type:s0(l),offset:c,length:u,parent:n,value:l}),r(c+u)},onSeparator:(l,c,u)=>{n.type==="property"&&(l===":"?n.colonOffset=c:l===","&&r(c))},onError:(l,c,u)=>{t.push({error:l,offset:c,length:u})}},e);let a=n.children[0];return a&&delete a.parent,a}function gm(i,t){if(!i)return;let e=i;for(let n of t)if(typeof n=="string"){if(e.type!=="object"||!Array.isArray(e.children))return;let r=!1;for(let o of e.children)if(Array.isArray(o.children)&&o.children[0].value===n){e=o.children[1],r=!0;break}if(!r)return}else{let r=n;if(e.type!=="array"||r<0||!Array.isArray(e.children)||r>=e.children.length)return;e=e.children[r]}return e}function ko(i,t,e=Jc.DEFAULT){let n=mm(i,!1);function r(O){return O?()=>O(n.getTokenOffset(),n.getTokenLength()):()=>!0}function o(O){return O?K=>O(K,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=r(t.onObjectBegin),a=o(t.onObjectProperty),l=r(t.onObjectEnd),c=r(t.onArrayBegin),u=r(t.onArrayEnd),d=o(t.onLiteralValue),f=o(t.onSeparator),g=r(t.onComment),h=o(t.onError),v=e&&e.disallowComments,S=e&&e.allowTrailingComma;function _(){for(;;){let O=n.scan();switch(n.getTokenError()){case 4:b(14);break;case 5:b(15);break;case 3:b(13);break;case 1:v||b(11);break;case 2:b(12);break;case 6:b(16);break}switch(O){case 12:case 13:v?b(10):g();break;case 16:b(1);break;case 15:case 14:break;default:return O}}}function b(O,K=[],te=[]){if(h(O),K.length+te.length>0){let ge=n.getToken();for(;ge!==17;){if(K.indexOf(ge)!==-1){_();break}else if(te.indexOf(ge)!==-1)break;ge=_()}}}function I(O){let K=n.getTokenValue();return O?d(K):a(K),_(),!0}function R(){switch(n.getToken()){case 11:{let O=0;try{O=JSON.parse(n.getTokenValue()),typeof O!="number"&&(b(2),O=0)}catch{b(2)}d(O);break}case 7:d(null);break;case 8:d(!0);break;case 9:d(!1);break;default:return!1}return _(),!0}function P(){return n.getToken()!==10?(b(3,[],[2,5]),!1):(I(!1),n.getToken()===6?(f(":"),_(),L()||b(4,[],[2,5])):b(5,[],[2,5]),!0)}function J(){s(),_();let O=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(O||b(4,[],[]),f(","),_(),n.getToken()===2&&S)break}else O&&b(6,[],[]);P()||b(4,[],[2,5]),O=!0}return l(),n.getToken()!==2?b(7,[2],[]):_(),!0}function E(){c(),_();let O=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(O||b(4,[],[]),f(","),_(),n.getToken()===4&&S)break}else O&&b(6,[],[]);L()||b(4,[],[4,5]),O=!0}return u(),n.getToken()!==4?b(8,[4],[]):_(),!0}function L(){switch(n.getToken()){case 3:return E();case 1:return J();case 10:return I(!0);default:return R()}}return _(),n.getToken()===17?e.allowEmptyContent?!0:(b(4,[],[]),!1):L()?(n.getToken()!==17&&b(9,[],[]),!0):(b(4,[],[]),!1)}function s0(i){switch(typeof i){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(i){if(Array.isArray(i))return"array"}else return"null";return"object"}default:return"null"}}function dS(i,t,e){let n,r,o,s,a;if(t){for(s=t.offset,a=s+t.length,o=s;o>0&&!Pa(i,o-1);)o--;let I=a;for(;I<i.length&&!Pa(i,I);)I++;r=i.substring(o,I),n=a0(r,e)}else r=i,n=0,o=0,s=0,a=i.length;let l=l0(e,i),c=!1,u=0,d;e.insertSpaces?d=hm(" ",e.tabSize||4):d="	";let f=mm(r,!1),g=!1;function h(){return l+hm(d,n+u)}function v(){let I=f.scan();for(c=!1;I===15||I===14;)c=c||I===14,I=f.scan();return g=I===16||f.getTokenError()!==0,I}let S=[];function _(I,R,P){!g&&R<a&&P>s&&i.substring(R,P)!==I&&S.push({offset:R,length:P-R,content:I})}let b=v();if(b!==17){let I=f.getTokenOffset()+o,R=hm(d,n);_(R,o,I)}for(;b!==17;){let I=f.getTokenOffset()+f.getTokenLength()+o,R=v(),P="";for(;!c&&(R===12||R===13);){let E=f.getTokenOffset()+o;_(" ",I,E),I=f.getTokenOffset()+f.getTokenLength()+o,P=R===12?h():"",R=v()}if(R===2)b!==1&&(u--,P=h());else if(R===4)b!==3&&(u--,P=h());else{switch(b){case 3:case 1:u++,P=h();break;case 5:case 12:P=h();break;case 13:c?P=h():P=" ";break;case 6:P=" ";break;case 10:if(R===6){P="";break}case 7:case 8:case 9:case 11:case 2:case 4:R===12||R===13?P=" ":R!==5&&R!==17&&(g=!0);break;case 16:g=!0;break}c&&(R===12||R===13)&&(P=h())}let J=f.getTokenOffset()+o;_(P,I,J),b=R}return S}function hm(i,t){let e="";for(let n=0;n<t;n++)e+=i;return e}function a0(i,t){let e=0,n=0,r=t.tabSize||4;for(;e<i.length;){let o=i.charAt(e);if(o===" ")n++;else if(o==="	")n+=r;else break;e++}return Math.floor(n/r)}function l0(i,t){for(let e=0;e<t.length;e++){let n=t.charAt(e);if(n==="\r")return e+1<t.length&&t.charAt(e+1)===`
`?`\r
`:"\r";if(n===`
`)return`
`}return i&&i.eol||`
`}function Pa(i,t){return`\r
`.indexOf(i.charAt(t))!==-1}function uS(i,t,e,n,r){let o=t.slice(),a=lS(i,[]),l,c;for(;o.length>0&&(c=o.pop(),l=gm(a,o),l===void 0&&e!==void 0);)typeof c=="string"?e={[c]:e}:e=[e];if(l)if(l.type==="object"&&typeof c=="string"&&Array.isArray(l.children)){let u=gm(l,[c]);if(u!==void 0)if(e===void 0){if(!u.parent)throw new Error("Malformed AST");let d=l.children.indexOf(u.parent),f,g=u.parent.offset+u.parent.length;if(d>0){let h=l.children[d-1];f=h.offset+h.length}else f=l.offset+1,l.children.length>1&&(g=l.children[1].offset);return Ao(i,{offset:f,length:g-f,content:""},n)}else return Ao(i,{offset:u.offset,length:u.length,content:JSON.stringify(e)},n);else{if(e===void 0)return[];let d=`${JSON.stringify(c)}: ${JSON.stringify(e)}`,f=r?r(l.children.map(h=>h.children[0].value)):l.children.length,g;if(f>0){let h=l.children[f-1];g={offset:h.offset+h.length,length:0,content:","+d}}else l.children.length===0?g={offset:l.offset+1,length:0,content:d}:g={offset:l.offset+1,length:0,content:d+","};return Ao(i,g,n)}}else if(l.type==="array"&&typeof c=="number"&&Array.isArray(l.children))if(e!==void 0){let u=`${JSON.stringify(e)}`,d;if(l.children.length===0||c===0)d={offset:l.offset+1,length:0,content:l.children.length===0?u:u+","};else{let f=c===-1||c>l.children.length?l.children.length:c,g=l.children[f-1];d={offset:g.offset+g.length,length:0,content:","+u}}return Ao(i,d,n)}else{let u=c,d=l.children[u],f;if(l.children.length===1)f={offset:l.offset+1,length:l.length-2,content:""};else if(l.children.length-1===u){let g=l.children[u-1],h=g.offset+g.length,v=l.offset+l.length;f={offset:h,length:v-2-h,content:""}}else f={offset:d.offset,length:l.children[u+1].offset-d.offset,content:""};return Ao(i,f,n)}else throw new Error(`Can not add ${typeof c!="number"?"index":"property"} to parent of type ${l.type}`);else return e===void 0?[]:Ao(i,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(e)},n)}function Ao(i,t,e){let n=ym(i,t),r=t.offset,o=t.offset+t.content.length;if(t.length===0||t.content.length===0){for(;r>0&&!Pa(n,r-1);)r--;for(;o<n.length&&!Pa(n,o);)o++}let s=dS(n,{offset:r,length:o-r},e);for(let l=s.length-1;l>=0;l--){let c=s[l];n=ym(n,c),r=Math.min(r,c.offset),o=Math.max(o,c.offset+c.length),o+=c.content.length-c.length}let a=i.length-(n.length-o)-r;return[{offset:r,length:a,content:n.substring(r,o)}]}function ym(i,t){return i.substring(0,t.offset)+t.content+i.substring(t.offset+t.length)}function pS(i,t){let e=t.slice(0).sort((r,o)=>{let s=r.offset-o.offset;return s===0?r.length-o.length:s}),n=i.length;for(let r=e.length-1;r>=0;r--){let o=e[r];if(o.offset+o.length<=n)i=ym(i,o);else throw new Error("Overlapping edit");n=o.offset}return i}var fS=$("configurationService");function Yc(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifier||typeof t.overrideIdentifier=="string")&&(!t.resource||t.resource instanceof y)}function mS(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifiers||Array.isArray(t.overrideIdentifiers))&&!t.overrideIdentifier&&(!t.resource||t.resource instanceof y)}function Xc(i,t){let e=Object.create(null);for(let n in i)vm(e,n,i[n],t);return e}function vm(i,t,e,n){let r=t.split("."),o=r.pop(),s=i;for(let a=0;a<r.length;a++){let l=r[a],c=s[l];switch(typeof c){case"undefined":c=s[l]=Object.create(null);break;case"object":if(c===null){n(`Ignoring ${t} as ${r.slice(0,a+1).join(".")} is null`);return}break;default:n(`Ignoring ${t} as ${r.slice(0,a+1).join(".")} is ${JSON.stringify(c)}`);return}s=c}if(typeof s=="object"&&s!==null)try{s[o]=e}catch{n(`Ignoring ${t} as ${r.join(".")} is ${JSON.stringify(s)}`)}else n(`Ignoring ${t} as ${r.join(".")} is ${JSON.stringify(s)}`)}function gS(i,t){let e=t.split(".");hS(i,e)}function hS(i,t){if(!i)return;let e=i,n=t.shift();if(t.length===0){delete e[n];return}if(Object.keys(e).indexOf(n)!==-1){let r=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)&&(hS(r,t),Object.keys(r).length===0&&delete e[n])}}function ka(i,t,e){function n(s,a){let l=s;for(let c of a){if(typeof l!="object"||l===null)return;l=l[c]}return l}let r=t.split("."),o=n(i,r);return typeof o>"u"?e:o}function yS(i){return i.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}function vS(i){let t=!1,e=new Map,n=new Map;if(c0(i,u=>{if(i===u)return!0;let d=JSON.stringify(u);if(d.length<30)return!0;let f=e.get(d);if(!f){let g={schemas:[u]};return e.set(d,g),n.set(u,g),!0}return f.schemas.push(u),n.set(u,f),t=!0,!1}),e.clear(),!t)return JSON.stringify(i);let o="$defs";for(;i.hasOwnProperty(o);)o+="_";let s=[];function a(u){return JSON.stringify(u,(d,f)=>{if(f!==u){let g=n.get(f);if(g&&g.schemas.length>1)return g.id||(g.id=`_${s.length}`,s.push(g.schemas[0])),{$ref:`#/${o}/${g.id}`}}return f})}let l=a(i),c=[];for(let u=0;u<s.length;u++)c.push(`"_${u}":${a(s[u])}`);return c.length?`${l.substring(0,l.length-1)},"${o}":{${c.join(",")}}}`:l}function Do(i){return typeof i=="object"&&i!==null}function c0(i,t){if(!i||typeof i!="object")return;let e=(...l)=>{for(let c of l)Do(c)&&s.push(c)},n=(...l)=>{for(let c of l)if(Do(c))for(let u in c){let d=c[u];Do(d)&&s.push(d)}},r=(...l)=>{for(let c of l)if(Array.isArray(c))for(let u of c)Do(u)&&s.push(u)},o=l=>{if(Array.isArray(l))for(let c of l)Do(c)&&s.push(c);else Do(l)&&s.push(l)},s=[i],a=s.pop();for(;a;)t(a)&&(e(a.additionalItems,a.additionalProperties,a.not,a.contains,a.propertyNames,a.if,a.then,a.else,a.unevaluatedItems,a.unevaluatedProperties),n(a.definitions,a.$defs,a.properties,a.patternProperties,a.dependencies,a.dependentSchemas),r(a.anyOf,a.allOf,a.oneOf,a.prefixItems),o(a.items)),a=s.pop()}var Sm={JSONContribution:"base.contributions.json"};function bS(i){return i.length>0&&i.charAt(i.length-1)==="#"?i.substring(0,i.length-1):i}var bm=class extends T{constructor(){super(...arguments);this.schemasById={};this.schemaAssociations={};this._onDidChangeSchema=this._register(new x);this.onDidChangeSchema=this._onDidChangeSchema.event;this._onDidChangeSchemaAssociations=this._register(new x);this.onDidChangeSchemaAssociations=this._onDidChangeSchemaAssociations.event}registerSchema(e,n,r){let o=bS(e);this.schemasById[o]=n,this._onDidChangeSchema.fire(e),r&&r.add(A(()=>{delete this.schemasById[o],this._onDidChangeSchema.fire(e)}))}registerSchemaAssociation(e,n){let r=bS(e);return this.schemaAssociations[r]||(this.schemaAssociations[r]=[]),this.schemaAssociations[r].includes(n)||(this.schemaAssociations[r].push(n),this._onDidChangeSchemaAssociations.fire()),A(()=>{let o=this.schemaAssociations[r];if(o){let s=o.indexOf(n);s!==-1&&(o.splice(s,1),o.length===0&&delete this.schemaAssociations[r],this._onDidChangeSchemaAssociations.fire())}})}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}getSchemaContributions(){return{schemas:this.schemasById}}getSchemaContent(e){let n=this.schemasById[e];return n?vS(n):void 0}hasSchemaContent(e){return!!this.schemasById[e]}getSchemaAssociations(){return this.schemaAssociations}},d0=new bm;ot.add(Sm.JSONContribution,d0);var kt,Im=globalThis.vscode;if(typeof Im<"u"&&typeof Im.context<"u"){let i=Im.context.configuration();if(i)kt=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(kt=globalThis._VSCODE_PRODUCT_JSON,Ue.VSCODE_DEV&&Object.assign(kt,{nameShort:`${kt.nameShort} Dev`,nameLong:`${kt.nameLong} Dev`,dataFolderName:`${kt.dataFolderName}-dev`,serverDataFolderName:kt.serverDataFolderName?`${kt.serverDataFolderName}-dev`:void 0}),!kt.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(kt,{version:i.version})}}else kt={nameShort:"Code",nameLong:"Visual Studio Code",applicationName:"code",win32x64AppId:"{{EA457B21-F73E-494C-ACAB-524FDE069978}",win32arm64AppId:"{{A5270FC5-65AD-483E-AC30-2C276B63D0AC}",win32x64UserAppId:"{{771FD6B0-FA20-440A-A002-3B3BAC16DC50}",win32arm64UserAppId:"{{D9E514E7-1A56-452D-9337-2990C0DC4310}",win32NameVersion:"Microsoft Visual Studio Code",win32DirName:"Microsoft VS Code",win32SetupExeBasename:"VSCodeSetup",win32AppUserModelId:"Microsoft.VisualStudioCode",win32ShellNameShort:"Code",win32MutexName:"vscode",win32RegValueName:"VSCode",win32VersionedUpdate:!0,darwinCredits:"resources/darwin/Credits.rtf",darwinBundleIdentifier:"com.microsoft.VSCode",darwinSharedKeychainServiceName:"com.microsoft.VSCode.shared-secrets",darwinProfileUUID:"EBAE60D6-C8A2-4419-92FF-24F8AD5077AB",darwinProfilePayloadUUID:"C6B5723A-6539-4F31-8A4E-3CC96E51F48C",darwinExecutable:"VSCode",linuxIconName:"vscode",licenseFileName:"LICENSE.rtf",licenseName:"Multiple, see https://code.visualstudio.com/license",serverGreeting:[],serverLicense:["*","* Visual Studio Code Server","*","* By using the software, you agree to","* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and","* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).","*"],serverLicensePrompt:"Do you accept the terms in the License Agreement (Y/n)?",serverApplicationName:"code-server",urlProtocol:"vscode",dataFolderName:".vscode",sharedDataFolderName:".vscode-shared",serverDataFolderName:".vscode-server",downloadUrl:"https://code.visualstudio.com",updateUrl:"https://update.code.visualstudio.com",webUrl:"https://vscode.dev",webEndpointUrl:"https://main.vscode-cdn.net",webEndpointUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}",nlsCoreBaseUrl:"https://www.vscode-unpkg.net/nls/",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/{{quality}}/{{commit}}/out/vs/workbench/contrib/webview/browser/pre/",quality:"stable",extensionsGallery:{nlsBaseUrl:"https://www.vscode-unpkg.net/_lp/",serviceUrl:"https://marketplace.visualstudio.com/_apis/public/gallery",itemUrl:"https://marketplace.visualstudio.com/items",publisherUrl:"https://marketplace.visualstudio.com/publishers",resourceUrlTemplate:"https://{publisher}.vscode-unpkg.net/{publisher}/{name}/{version}/{path}",extensionUrlTemplate:"https://www.vscode-unpkg.net/_gallery/{publisher}/{name}/latest",controlUrl:"https://main.vscode-cdn.net/extensions/marketplace.json",mcpUrl:"https://main.vscode-cdn.net/mcp/servers.json",accessSKUs:["copilot_enterprise_seat","copilot_enterprise_seat_quota","copilot_enterprise_seat_multi_quota","copilot_enterprise_seat_assignment","copilot_enterprise_seat_assignment_quota","copilot_enterprise_seat_assignment_multi_quota","copilot_enterprise_trial_seat","copilot_enterprise_trial_seat_quota","copilot_for_business_seat","copilot_for_business_seat_quota","copilot_for_business_seat_multi_quota","copilot_for_business_seat_assignment","copilot_for_business_seat_assignment_quota","copilot_for_business_seat_assignment_multi_quota","copilot_for_business_trial_seat","copilot_for_business_trial_seat_quota"]},mcpGallery:{serviceUrl:"https://api.mcp.github.com",itemWebUrl:"https://github.com/mcp/{name}",publisherUrl:"https://github.com/{name}",supportUrl:"https://support.github.com",privacyPolicyUrl:"https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement",termsOfServiceUrl:"https://docs.github.com/site-policy/github-terms/github-terms-of-service",reportUrl:"https://docs.github.com/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam"},extensionProperties:{"github.copilot-chat":{hasPrereleaseVersion:!1,excludeVersionRange:"<=0.16.1"},"github.copilot":{hasPrereleaseVersion:!0}},extensionsForceVersionByQuality:["github.copilot-chat","github.copilot"],builtInExtensions:[{name:"ms-vscode.js-debug-companion",version:"1.1.3",sha256:"7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",repo:"https://github.com/microsoft/vscode-js-debug-companion",metadata:{id:"99cb0b7f-7354-4278-b8da-6cc79972169d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.js-debug",version:"1.117.0",sha256:"854eeb8a785b1f41ba2bd02d7ccd4fdbe10021b61473293973c7e96d036c7fb8",repo:"https://github.com/microsoft/vscode-js-debug",metadata:{id:"25629058-ddac-4e17-abba-74678e126c5d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.vscode-js-profile-table",version:"1.0.10",sha256:"7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",repo:"https://github.com/microsoft/vscode-js-profile-visualizer",metadata:{id:"7e52b41b-71ad-457b-ab7e-0620f1fc4feb",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"TypeScriptTeam.jsts-chat-features",version:"0.0.2",sha256:"288d8bc26a6e3a752c0971bc93078736c3d818384b27989c1e05ec49a28e1c29",metadata:{id:"7d881d23-233c-448d-9700-cf11a0de79c2",publisherId:{publisherId:"4f0355d2-4a53-4ab1-a8ea-507f4a333a6f",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}}],profileTemplatesUrl:"https://main.vscode-cdn.net/core/profile-templates.json",emergencyAlertUrl:"https://main.vscode-cdn.net/core/stable.json",extensionPublisherOrgs:["microsoft"],trustedExtensionPublishers:["microsoft","github","openai"],extensionRecommendations:{"ms-vscode.vscode-chat-customizations-evaluations":{onFileOpen:[{pathGlob:"{**/*prompt.md, **/*skill.md, **/*instructions.md, **/*agent.md}",important:!0},{languages:["prompt","chatagent","skill","instructions"],important:!0}]},"ms-dotnettools.csdevkit":{onFileOpen:[{pathGlob:"{**/*.cs,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln}",important:!0},{languages:["csharp"],important:!0},{pathGlob:"{**/project.json,**/appsettings.json}"}]},"microsoft-aspire.aspire-vscode":{onFileOpen:[{pathGlob:"{**/apphost.cs,**/apphost.js,**/apphost.ts,**/apphost.py,**/AppHost.java,**/aspire.config.json,**/.aspire/settings.json}",important:!0}]},"ms-python.python":{onFileOpen:[{pathGlob:"{**/*.py}",important:!0},{languages:["python"],important:!0},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.jupyter":{onFileOpen:[{pathGlob:"{**/*.py}",contentPattern:"^#\\s*%%$",important:!0,whenInstalled:["ms-python.python"]},{pathGlob:"{**/*.ipynb}"}]},"ms-toolsai.datawrangler":{onFileOpen:[{pathGlob:"{**/*.ipynb}",contentPattern:"import\\s*pandas|from\\s*pandas",whenInstalled:["ms-toolsai.jupyter"]}]},"golang.Go":{onFileOpen:[{pathGlob:"**/*.go",important:!0},{languages:["go"],important:!0}]},"vscjava.vscode-java-pack":{onFileOpen:[{pathGlob:"{**/*.java}",important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},{languages:["java"],important:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}]},"ms-vscode.PowerShell":{onFileOpen:[{pathGlob:"{**/*.ps1,**/*.psd1,**/*.psm1}",important:!0},{languages:["powershell"],important:!0},{pathGlob:"{**/*.ps.config,**/*.ps1.config}"}]},"ms-toolsai.prompty":{onFileOpen:[{pathGlob:"{**/*.prompty}",important:!1}]},"quantum.qsharp-lang-vscode":{onFileOpen:[{pathGlob:"{**/*.qs,**/*.qsc,**/*.qasm}",important:!0}]},"typespec.typespec-vscode":{onFileOpen:[{pathGlob:"{**/*.tsp,**/tspconfig.yaml}",important:!0}]},"ms-vscode.cpptools-extension-pack":{onFileOpen:[{pathGlob:"{**/*.c,**/*.cpp,**/*.cc,**/.cxx,**/*.hh,**/*.hpp,**/*.hxx,**/*.h}",important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]},{languages:["c","cpp"],important:!0,whenNotInstalled:["llvm-vs-code-extensions.vscode-clangd"]}]},"ms-azuretools.vscode-containers":{onFileOpen:[{pathGlob:"{**/dockerfile,**/Dockerfile,**/docker-compose.yml,**/docker-compose.*.yml}",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{languages:["dockerfile"],important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},{pathGlob:"{**/*.cs,**/project.json,**/global.json,**/*.csproj,**/*.cshtml,**/*.sln,**/appsettings.json,**/*.py,**/*.ipynb,**/*.js,**/*.ts,**/package.json}",whenNotInstalled:["ms-azuretools.vscode-docker"]}]},"vue.volar":{onFileOpen:[{pathGlob:"{**/*.vue}",important:!0},{languages:["vue"],important:!0}]},"ms-vscode.makefile-tools":{onFileOpen:[{pathGlob:"{**/makefile,**/Makefile}",important:!0},{languages:["makefile"],important:!0}]},"ms-vscode.cmake-tools":{onFileOpen:[{pathGlob:"{**/CMakeLists.txt}",important:!0}]},"ms-azure-devops.azure-pipelines":{onFileOpen:[{pathGlob:"{**/azure-pipelines.yaml}",important:!0}]},"msazurermtools.azurerm-vscode-tools":{onFileOpen:[{pathGlob:"{**/azuredeploy.json}",important:!0}]},"ms-vscode-remote.remote-containers":{onFileOpen:[{pathGlob:"{**/devcontainer.json}",important:!0}]},"ms-azuretools.vscode-bicep":{onFileOpen:[{pathGlob:"{**/*.bicep}",important:!0,whenNotInstalled:["ms-azuretools.rad-vscode-bicep"]}]},"svelte.svelte-vscode":{onFileOpen:[{pathGlob:"{**/*.svelte}",important:!0}]},"ms-vscode.vscode-github-issue-notebooks":{onFileOpen:[{pathGlob:"{**/*.github-issues}",important:!0}]},"ms-playwright.playwright":{onFileOpen:[{pathGlob:"{**/*playwright*.config.ts,**/*playwright*.config.js,**/*playwright*.config.mjs}",important:!0}]},"vscjava.vscode-gradle":{onFileOpen:[{pathGlob:"{**/gradlew,**/gradlew.bat,**/build.gradle,**/build.gradle.kts,**/settings.gradle,**/settings.gradle.kts}",important:!0}]},"REditorSupport.r":{onFileOpen:[{pathGlob:"{**/*.r}",important:!0},{languages:["r"],important:!0}]},"firefox-devtools.vscode-firefox-debug":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/.babelrc}"}]},"ms-edgedevtools.vscode-edge-devtools":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.css,**/*.html}"}]},"Ionide.Ionide-fsharp":{onFileOpen:[{pathGlob:"{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}"}]},"dbaeumer.vscode-eslint":{onFileOpen:[{pathGlob:"{**/*.js,**/*.jsx,**/*.es6,**/.eslintrc.*,**/.eslintrc,**/.babelrc,**/jsconfig.json}"}]},"bmewburn.vscode-intelephense-client":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"xdebug.php-debug":{onFileOpen:[{pathGlob:"{**/*.php,**/php.ini}"}]},"rust-lang.rust-analyzer":{onFileOpen:[{pathGlob:"{**/*.rs,**/*.rslib}"}]},"DavidAnson.vscode-markdownlint":{onFileOpen:[{pathGlob:"{**/*.md}"}]},"EditorConfig.EditorConfig":{onFileOpen:[{pathGlob:"{**/.editorconfig}"}]},"HookyQR.beautify":{onFileOpen:[{pathGlob:"{**/.jsbeautifyrc}"}]},"donjayamanne.githistory":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"eamodio.gitlens":{onFileOpen:[{pathGlob:"{**/.gitignore,**/.git}"}]},"Shopify.ruby-lsp":{onFileOpen:[{pathGlob:"{**/*.rb,**/*.erb,**/*.reek,**/.fasterer.yml,**/ruby-lint.yml,**/.rubocop.yml}"}]},"swiftlang.swift-vscode":{onFileOpen:[{pathGlob:"{**/*.swift,**/*.swiftinterface}",important:!0}]},"DotJoshJohnson.xml":{onFileOpen:[{pathGlob:"{**/*.xml}"}]},"stylelint.vscode-stylelint":{onFileOpen:[{pathGlob:"{**/.stylelintrc,**/stylelint.config.js}"}]},"ms-mssql.mssql":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"mtxr.sqltools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"usqlextpublisher.usql-vscode-ext":{onFileOpen:[{pathGlob:"{**/*.usql}"}]},"ms-vscode.sublime-keybindings":{onFileOpen:[{pathGlob:"{**/.sublime-project,**/.sublime-workspace}"}]},"k--kato.intellij-idea-keybindings":{onFileOpen:[{pathGlob:"{**/.idea}"}]},"christian-kohler.npm-intellisense":{onFileOpen:[{pathGlob:"{**/package.json}"}]},"cake-build.cake-vscode":{onFileOpen:[{pathGlob:"{**/build.cake}"}]},"Angular.ng-template":{onFileOpen:[{pathGlob:"{**/.angular-cli.json,**/angular.json,**/*.ng.html,**/*.ng,**/*.ngml}"}]},"vscjava.vscode-maven":{onFileOpen:[{pathGlob:"**/pom.xml"}]},"ms-azuretools.vscode-azureterraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"HashiCorp.terraform":{onFileOpen:[{pathGlob:"**/*.tf"}]},"vsciot-vscode.vscode-arduino":{onFileOpen:[{pathGlob:"**/*.ino"}]},"ms-kubernetes-tools.vscode-kubernetes-tools":{onFileOpen:[{pathGlob:"{**/Chart.yaml}"}]},"Oracle.oracledevtools":{onFileOpen:[{pathGlob:"{**/*.sql}"}]},"betterthantomorrow.calva":{onFileOpen:[{pathGlob:"{**/*.clj,**/*.cljs}"}]},"vmware.vscode-boot-dev-pack":{onFileOpen:[{pathGlob:"{**/application.properties}"}]},"GitHub.copilot":{onFileOpen:[{pathGlob:"{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rb,**/*.html,**/*.css,**/*.php,**/*.cpp,**/*.vue,**/*.c,**/*.sql,**/*.java,**/*.cs,**/*.rs,**/*.dart,**/*.ps,**/*.ps1,**/*.tex}"}]},"GitHub.copilot-chat":{onSettingsEditorOpen:{descriptionOverride:"GitHub Copilot is an AI-powered coding assistant that helps you write code faster and smarter."}},"GitHub.vscode-github-actions":{onFileOpen:[{pathGlob:"{**/.github/workflows/*.yml}",important:!0}]},"circleci.circleci":{onFileOpen:[{pathGlob:"{**/.circleci/config.yml}"}]},"mechatroner.rainbow-csv":{onFileOpen:[{pathGlob:"**/*.csv",important:!0}]},"tomoki1207.pdf":{onFileOpen:[{pathGlob:"**/*.pdf",important:!0}]},"Redis.redis-for-vscode":{onFileOpen:[{pathGlob:"{**/redis.*,**/redis-server.*,**/redis_*,**/redisinsight.*}",important:!0}]},"SonarSource.sonarlint-vscode":{onFileOpen:[{pathGlob:"{**/sonar-project.properties,**/sonarcloud.properties,**/sonarlint.*}",important:!0}]}},onboardingKeymaps:[{id:"vscode",label:"VS Code",description:"Default keyboard mapping"},{id:"sublime",label:"Sublime Text",extensionId:"ms-vscode.sublime-keybindings",description:"Keyboard mapping from Sublime Text"},{id:"intellij",label:"IntelliJ / JetBrains",extensionId:"k--kato.intellij-idea-keybindings",description:"Keyboard mapping from IntelliJ IDEA"},{id:"vim",label:"Vim",extensionId:"vscodevim.vim",description:"Vim modal editing"},{id:"eclipse",label:"Eclipse",extensionId:"alphabotsec.vscode-eclipse-keybindings",description:"Keyboard mapping from Eclipse"},{id:"notepadpp",label:"Notepad++",extensionId:"ms-vscode.notepadplusplus-keybindings",description:"Keyboard mapping from Notepad++"}],onboardingThemes:[{id:"dark-2026",label:"Dark 2026",themeId:"Dark 2026",type:"dark"},{id:"hc-dark",label:"Dark High Contrast",themeId:"Default High Contrast",type:"hcDark"},{id:"solarized-dark",label:"Solarized Dark",themeId:"Solarized Dark",type:"dark"},{id:"light-2026",label:"Light 2026",themeId:"Light 2026",type:"light"},{id:"hc-light",label:"Light High Contrast",themeId:"Default High Contrast Light",type:"hcLight"},{id:"solarized-light",label:"Solarized Light",themeId:"Solarized Light",type:"light"}],keymapExtensionTips:["vscodevim.vim","ms-vscode.sublime-keybindings","ms-vscode.atom-keybindings","ms-vscode.brackets-keybindings","ms-vscode.vs-keybindings","ms-vscode.notepadplusplus-keybindings","k--kato.intellij-idea-keybindings","lfs.vscode-emacs-friendly","alphabotsec.vscode-eclipse-keybindings","alefragnani.delphi-keybindings"],languageExtensionTips:["ms-python.python","ms-vscode.cpptools-extension-pack","ms-dotnettools.csdevkit","ms-toolsai.jupyter","vscjava.vscode-java-pack","ecmel.vscode-html-css","vue.volar","bmewburn.vscode-intelephense-client","dsznajder.es7-react-js-snippets","golang.go","ms-vscode.powershell","dart-code.dart-code","rust-lang.rust-analyzer","Shopify.ruby-lsp","GitHub.copilot"],configBasedExtensionTips:{git:{configPath:".git/config",configName:"Git",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",contentPattern:"^\\s*url\\s*=\\s*https:\\/\\/github\\.com.*$"},"eamodio.gitlens":{name:"GitLens"}}},devContainer:{configPath:".devcontainer/devcontainer.json",configName:"Dev Container",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0}}},maven:{configPath:"pom.xml",configName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]},"vmware.vscode-boot-dev-pack":{name:"Spring Boot Extension Pack",isExtensionPack:!0}}},gradle:{configPath:"build.gradle",configName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},"github-pull-request":{configPath:".vscode/.github-pull-request.rec",configName:"GitHub",configScheme:"vscode-vfs",recommendations:{"github.vscode-pull-request-github":{name:"GitHub Pull Request",important:!0}}},"pyproject-formatter":{configPath:"pyproject.toml",configName:"Python Formatter",recommendations:{"ms-python.black-formatter":{name:"Black Formatter",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?black"?\\s*[\\].])|("black\\s*["[(<=>!~;@])'},"ms-python.autopep8":{name:"Autopep8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?autopep8"?\\s*[\\].])|("autopep8\\s*["[(<=>!~;@])'}}},"pep8-formatter":{configPath:".pep8",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8"}}},"python-setup-cgf-formatter":{configPath:"setup.cfg",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"tox-ini-formatter":{configPath:"tox.ini",configName:"Python Formatter",recommendations:{"ms-python.autopep8":{name:"Autopep8",contentPattern:"^\\[pep8\\]"}}},"pyproject-linter":{configPath:"pyproject.toml",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?pylint"?\\s*[\\].])|("pylint\\s*["[(<=>!~;@])'},"charliermarsh.ruff":{name:"Ruff",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?ruff"?\\s*[\\].])|("ruff\\s*["[(<=>!~;@])'},"ms-python.mypy-type-checker":{name:"Mypy Type Checker",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?mypy"?\\s*[\\].])|("mypy\\s*["[(<=>!~;@])'},"ms-python.flake8":{name:"Flake8",contentPattern:'(^\\s*\\[\\[?\\s*"?tool"?\\s*\\.\\s*"?flake8"?\\s*[\\].])|("flake8\\s*["[(<=>!~;@])'}}},".pylintrc-linter":{configPath:".pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"pylintrc-linter":{configPath:"pylintrc",configName:"Python Linter",recommendations:{"ms-python.pylint":{name:"Pylint"}}},"mypy-ini-linter":{configPath:".mypy.ini",configName:"Python Linter",recommendations:{"ms-python.mypy-type-checker":{name:"Mypy Type Checker"}}},"tox-ini-linter":{configPath:"tox.ini",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}},".flake8-linter":{configPath:".flake8",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8"}}},"python-setup-cgf-linter":{configPath:"setup.cfg",configName:"Python Linter",recommendations:{"ms-python.flake8":{name:"Flake8",contentPattern:"^\\[flake8\\]"}}}},exeBasedExtensionTips:{az:{friendlyName:"Azure CLI",windowsPath:"%ProgramFiles(x86)%\\Microsoft SDKs\\Azure\\CLI2\\wbin\\az.cmd",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},azd:{friendlyName:"Azure Dev CLI",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azd-user":{friendlyName:"Azure Dev CLI",windowsPath:"%ProgramFiles%\\Azure Dev CLI\\azd.exe",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"},"ms-azuretools.vscode-azure-github-copilot":{name:"GitHub Copilot for Azure"}}},"azure-powershell":{friendlyName:"Azure PowerShell",windowsPath:"%USERPROFILE%\\.Azure",recommendations:{"ms-vscode.vscode-node-azure-pack":{name:"Azure Tools"}}},heroku:{friendlyName:"Heroku CLI",windowsPath:"%ProgramFiles%\\Heroku\\bin\\heroku.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"pkosta2005.heroku-command":{name:"heroku-cli"}}},mongo:{friendlyName:"Mongo",windowsPath:"%ProgramFiles%\\MongoDB\\Server\\3.6\\bin\\mongod.exe",recommendations:{"ms-azuretools.vscode-cosmosdb":{name:"Azure Databases"}}},serverless:{friendlyName:"Serverless framework",windowsPath:"%APPDATA%\\npm\\serverless.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},func:{friendlyName:"Azure Function SDK",windowsPath:"%APPDATA%\\npm\\func.cmd",recommendations:{"ms-azuretools.vscode-azurefunctions":{name:"Azure Functions"}}},mysql:{friendlyName:"MySQL",windowsPath:"%ProgramFiles%\\MySQL\\MySQL Server 8.0\\bin\\mysqld.exe",recommendations:{"mtxr.sqltools":{name:"SQLTools"}}},postgres:{friendlyName:"PostgreSQL",windowsPath:"%ProgramFiles%\\PostgreSQL\\11\\bin\\psql.exe",recommendations:{"ms-ossdata.vscode-postgresql":{name:"PostgreSQL"},"mtxr.sqltools":{name:"SQLTools"}}},sqlcmd:{friendlyName:"SQL CLI",recommendations:{"ms-mssql.mssql":{name:"SQL Server (mssql)"}}},now:{friendlyName:"Now CLI",windowsPath:"%APPDATA%\\npm\\now.cmd",recommendations:{"ms-azuretools.vscode-azureappservice":{name:"Azure App Service"},"ms-azuretools.vscode-containers":{name:"Docker"}}},docker:{friendlyName:"Docker",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\docker.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker",important:!0,whenNotInstalled:["ms-azuretools.vscode-docker"]},"ms-vscode-remote.remote-containers":{name:"Dev Containers",important:!0},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},kubectl:{friendlyName:"Kubernetes",windowsPath:"%ProgramFiles%\\Docker\\Docker\\Resources\\bin\\kubectl.exe",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},ng:{friendlyName:"Angular CLI",windowsPath:"%APPDATA%\\npmexit\\ng.cmd",recommendations:{"johnpapa.Angular2":{name:"Angular Snippets"}}},"create-react-app":{friendlyName:"Create React App",windowsPath:"%APPDATA%\\npm\\create-react-app.cmd",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},"react-native":{friendlyName:"React Native",windowsPath:"%APPDATA%\\npm\\react-native-cli",recommendations:{"msjsdiag.vscode-react-native":{name:"React Native Tools"}}},p4:{friendlyName:"Perforce",recommendations:{"slevesque.perforce":{name:"Perforce for VS Code"}}},hg:{friendlyName:"Mercurial",recommendations:{"mrcrowl.hg":{name:"Hg"}}},git:{friendlyName:"Git",windowsPath:"%ProgramFiles%\\Git\\git-bash.exe",recommendations:{"eamodio.gitlens":{name:"GitLens"}}},svn:{friendlyName:"Subversion",windowsPath:"%ProgramFiles%\\TortoiseSVN\\bin\\TortoiseProc.exe",recommendations:{"johnstoncode.svn-scm":{name:"SVN"}}},subl:{friendlyName:"Sublime",windowsPath:"%ProgramFiles%\\Sublime Text3\\sublime_text.exe",recommendations:{"ms-vscode.sublime-keybindings":{name:"Sublime Text Keymap and Settings Importer"}}},atom:{friendlyName:"Atom",windowsPath:"%USERPROFILE%\\AppData\\Local\\atom\\bin\\atom.cmd",recommendations:{"ms-vscode.atom-keybindings":{name:"Atom Keymap"}}},brackets:{friendlyName:"Brackets",windowsPath:"%ProgramFiles(x86)%\\Brackets\\Brackets.exe",recommendations:{"ms-vscode.brackets-keybindings":{name:"Brackets Keymap"}}},notepadplusplus:{friendlyName:"Notepad++",windowsPath:"%ProgramFiles%\\Notepad++\\Notepad++.exe",recommendations:{"ms-vscode.notepadplusplus-keybindings":{name:"Notepad++ keymap"}}},vi:{friendlyName:"VIM",windowsPath:"%ProgramFiles(x86)%\\Vim\\vim80\\gvim.exe",recommendations:{"vscodevim.vim":{name:"Vim"}}},mvn:{friendlyName:"Maven",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},gradle:{friendlyName:"Gradle",recommendations:{"vscjava.vscode-java-pack":{name:"Java",important:!0,isExtensionPack:!0,whenNotInstalled:["ASF.apache-netbeans-java","Oracle.oracle-java"]}}},ollama:{friendlyName:"Ollama",windowsPath:"%USERPROFILE%\\AppData\\Local\\Programs\\Ollama\\ollama.exe",recommendations:{"ms-windows-ai-studio.windows-ai-studio":{name:"AI Toolkit for Visual Studio Code"}}},"Microsoft Edge":{friendlyName:"Microsoft Edge",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Dev":{friendlyName:"Microsoft Edge Dev",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Dev\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Beta":{friendlyName:"Microsoft Edge Beta",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge Beta\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Microsoft Edge Canary":{friendlyName:"Microsoft Edge Canary",windowsPath:"%USERPROFILE%\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe",recommendations:{"ms-edgedevtools.vscode-edge-devtools":{name:"Microsoft Edge Developer Tools"}}},"Mozilla Firefox (x86)":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles(x86)%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition (x86)":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles(x86)%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox":{friendlyName:"Mozilla Firefox",windowsPath:"%ProgramFiles%\\Mozilla Firefox\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},"Mozilla Firefox Developer Edition":{friendlyName:"Mozilla Firefox Developer Edition",windowsPath:"%ProgramFiles%\\Firefox Developer Edition\\firefox.exe",recommendations:{"firefox-devtools.vscode-firefox-debug":{name:"Debugger for Firefox"}}},cordova:{friendlyName:"Cordova",windowsPath:"%APPDATA%\\npm\\cordova",recommendations:{"msjsdiag.cordova-tools":{name:"Cordova Tools"}}},gcloud:{friendlyName:"Google GCloud CLI",windowsPath:"%ProgramFiles(x86)%\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd",recommendations:{"GoogleCloudTools.cloudcode":{name:"Cloud Code"}}},skaffold:{friendlyName:"Skaffold Code to Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"}}},minikube:{friendlyName:"MiniKube Local Kubernetes Cluster",recommendations:{"ms-azuretools.vscode-containers":{name:"Docker"},"ms-kubernetes-tools.vscode-kubernetes-tools":{name:"Kubernetes"},"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},podman:{friendlyName:"Podman",recommendations:{"ms-vscode-remote.remote-containers":{name:"Dev Containers"}}},wsl:{friendlyName:"Windows Subsystem for Linux (WSL)",windowsPath:"%WINDIR%\\system32\\lxss\\LxssManager.dll",recommendations:{"ms-vscode-remote.remote-wsl":{name:"WSL"}}}},webExtensionTips:["tyriar.luna-paint","codespaces-contrib.codeswing","ms-vscode.vscode-github-issue-notebooks","esbenp.prettier-vscode","hediet.vscode-drawio"],virtualWorkspaceExtensionTips:{"vscode-vfs":{friendlyName:"Remote Repositories",extensionId:"ms-vscode.remote-repositories",startEntry:{helpLink:"https://aka.ms/vscode-remote/remote-repositories",startConnectLabel:"Remote Repository",startCommand:"remoteHub.continueOn.openRepository",priority:5}}},remoteExtensionTips:{wsl:{friendlyName:"WSL",extensionId:"ms-vscode-remote.remote-wsl",supportedPlatforms:["Windows","Web"],startEntry:{helpLink:"https://aka.ms/vscode-remote/wsl",startConnectLabel:"WSL",startCommand:"remote-wsl.connect",priority:3}},"ssh-remote":{friendlyName:"Remote - SSH",extensionId:"ms-vscode-remote.remote-ssh",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/ssh",startConnectLabel:"SSH ",startCommand:"opensshremotes.openEmptyWindowInCurrentWindow",priority:1}},"dev-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers",supportedPlatforms:["Windows","Linux","Mac"],startEntry:{helpLink:"https://aka.ms/vscode-remote/containers",startConnectLabel:"Dev Container",startCommand:"remote-containers.reopenInContainer",priority:2}},"attached-container":{friendlyName:"Dev Containers",extensionId:"ms-vscode-remote.remote-containers"},codespaces:{friendlyName:"GitHub Codespaces",extensionId:"github.codespaces",startEntry:{helpLink:"https://aka.ms/vscode-remote-codespaces",startConnectLabel:"GitHub Codespace ",startCommand:"github.codespaces.connect",priority:4}},tunnel:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server",startEntry:{helpLink:"https://aka.ms/remote-tunnels-doc",startConnectLabel:"Tunnel",startCommand:"remote-tunnels.connectCurrentWindowToTunnel",priority:0}},amlext:{friendlyName:"Azure Machine Learning",extensionId:"ms-toolsai.vscode-ai-remote"}},commandPaletteSuggestedCommandIds:["workbench.action.files.openFile","workbench.action.files.openFileFolder","workbench.action.files.openFolder","workbench.action.remote.showMenu","editor.action.formatDocument","editor.action.commentLine","workbench.action.tasks.runTask","workbench.action.openSettings2","workbench.action.selectTheme","workbench.action.openWalkthrough","workbench.action.openIssueReporter"],extensionKeywords:{md:["Markdown"],js:["JavaScript"],jsx:["JavaScript"],es6:["JavaScript"],html:["Html"],ts:["TypeScript"],tsx:["TypeScript"],css:["CSS"],scss:["SASS"],txt:["Text"],php:["PHP"],php3:["PHP"],php4:["PHP"],ph3:["PHP"],ph4:["PHP"],xml:["XML"],py:["Python"],pyc:["Python"],pyd:["Python"],pyo:["Python"],pyw:["Python"],pyz:["Python"],java:["Java"],class:["Java"],jar:["Java"],c:["c","objective c","objective-c"],m:["objective c","objective-c"],mm:["objective c","objective-c"],cpp:["cpp","c plus plus","c","c++"],cc:["cpp","c plus plus","c","c++"],cxx:["cpp","c plus plus","c++"],hh:["cpp","c plus plus","c++"],hpp:["cpp","c++"],h:["cpp","c plus plus","c++","c","objective c","objective-c"],sql:["sql"],sh:["bash"],bash:["bash"],zsh:["bash","zshell"],cs:["c#","csharp"],csproj:["c#","csharp"],sln:["c#","csharp"],go:["go"],sty:["latex"],tex:["latex"],ps:["powershell"],ps1:["powershell"],rs:["rust"],rslib:["rust"],hs:["haskell"],lhs:["haskell"],scm:["scheme"],ss:["scheme"],clj:["clojure"],cljs:["clojure"],cljc:["clojure"],edn:["clojure"],erl:["erlang"],hrl:["erlang"],scala:["scala"],sc:["scala"],pl:["perl"],pm:["perl"],t:["perl"],pod:["perl"],groovy:["groovy"],swift:["swift"],rb:["ruby"],rbw:["ruby"],jl:["julia"],f:["fortran"],for:["fortran"],f90:["fortran"],f95:["fortran"],coffee:["CoffeeScript"],litcoffee:["CoffeeScript"],yaml:["yaml"],yml:["yaml"],dart:["dart"],json:["json"]},extensionAllowedBadgeProviders:["api.travis-ci.com","app.fossa.io","badge.buildkite.com","badge.fury.io","badgen.net","badges.frapsoft.com","badges.gitter.im","cdn.travis-ci.com","ci.appveyor.com","circleci.com","cla.opensource.microsoft.com","codacy.com","codeclimate.com","codecov.io","coveralls.io","david-dm.org","deepscan.io","dev.azure.com","docs.rs","flat.badgen.net","gitlab.com","godoc.org","goreportcard.com","img.shields.io","isitmaintained.com","marketplace.visualstudio.com","nodesecurity.io","opencollective.com","snyk.io","travis-ci.com","travis-ci.org","visualstudio.com","vsmarketplacebadge.apphb.com"],extensionAllowedBadgeProvidersRegex:["^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(actions\\/)?workflows\\/.*badge\\.svg"],crashReporter:{productName:"VSCode",companyName:"Microsoft"},appCenter:{"win32-x64":"appcenter://code?aid=a4e3233c-699c-46ec-b4f4-9c2a77254662","win32-arm64":"appcenter://code?aid=3712d786-7cc8-4f11-8b08-cc12eab6d4f7","linux-x64":"appcenter://code?aid=fba07a4d-84bd-4fc8-a125-9640fc8ce171",darwin:"appcenter://code?aid=860d6632-f65b-490b-85a8-3e72944f7774","darwin-arm64":"appcenter://code?aid=be71415d-3893-4ae5-b453-e537b9668a10","darwin-universal":"appcenter://code?aid=de75e3cc-e22f-4f42-a03f-1409c21d8af8"},enableTelemetry:!0,aiConfig:{ariaKey:"5bbf946d11a54f6783919c455abaddaf-fd62977b-c92d-4714-a45d-649d06980372-7168"},msftInternalDomains:["redmond.corp.microsoft.com","northamerica.corp.microsoft.com","fareast.corp.microsoft.com","ntdev.corp.microsoft.com","wingroup.corp.microsoft.com","southpacific.corp.microsoft.com","wingroup.windeploy.ntdev.microsoft.com","ddnet.microsoft.com","europe.corp.microsoft.com"],documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#vscode",serverDocumentationUrl:"https://aka.ms/vscode-server-doc",releaseNotesUrl:"https://go.microsoft.com/fwlink/?LinkID=533483#vscode",keyboardShortcutsUrlMac:"https://go.microsoft.com/fwlink/?linkid=832143",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",keyboardShortcutsUrlWin:"https://go.microsoft.com/fwlink/?linkid=832145",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",newsletterSignupUrl:"https://www.research.net/r/vsc-newsletter",youTubeUrl:"https://aka.ms/vscode-youtube",requestFeatureUrl:"https://go.microsoft.com/fwlink/?LinkID=533482",reportIssueUrl:"https://github.com/Microsoft/vscode/issues/new",reportMarketplaceIssueUrl:"https://github.com/microsoft/vsmarketplace/issues/new",licenseUrl:"https://go.microsoft.com/fwlink/?LinkID=533485",serverLicenseUrl:"https://aka.ms/vscode-server-license",privacyStatementUrl:"https://go.microsoft.com/fwlink/?LinkId=521839",showTelemetryOptOut:!0,npsSurveyUrl:"https://aka.ms/vscode-nps",checksumFailMoreInfoUrl:"https://go.microsoft.com/fwlink/?LinkId=828886",electronRepository:"Microsoft/vscode-electron-prebuilt",nodejsRepository:"Microsoft/vscode-node",settingsSearchUrl:"https://bingsettingssearch.trafficmanager.net/api/Search",surveys:[{surveyId:"cpp.1",surveyUrl:"https://www.research.net/r/VBVV6C6",languageId:"cpp",editCount:10,userProbability:.15},{surveyId:"java.2",surveyUrl:"https://www.research.net/r/vscodejava",languageId:"java",editCount:10,userProbability:.3},{surveyId:"javascript.1",surveyUrl:"https://www.research.net/r/vscode-js",languageId:"javascript",editCount:10,userProbability:.05},{surveyId:"typescript.1",surveyUrl:"https://www.research.net/r/vscode-ts",languageId:"typescript",editCount:10,userProbability:.05},{surveyId:"csharp.1",surveyUrl:"https://www.research.net/r/8KGJ9V8",languageId:"csharp",editCount:10,userProbability:.1}],extensionsEnabledWithApiProposalVersion:["GitHub.copilot-chat","ms-vscode.vscode-commander","ms-vscode.vscode-copilot-vision","GitHub.vscode-pull-request-github"],extensionEnabledApiProposals:{"mrleemurray.theme-2026":["css"],"ms-azuretools.vscode-containers":["authenticationChallenges"],"ms-azuretools.vscode-azureresourcegroups":["authenticationChallenges"],"ms-azuretools.vscode-azure-github-copilot":["authenticationChallenges"],"ms-azuretools.vscode-dev-azurecloudshell":["contribEditSessions","authenticationChallenges"],"ms-toolsai.vscode-ai":["authenticationChallenges"],"TeamsDevApp.vscode-ai-foundry":["authenticationChallenges"],"ms-vscode.vscode-selfhost-test-provider":["testObserver","testRelatedCode"],"VisualStudioExptTeam.vscodeintellicode-completions":["inlineCompletionsAdditions"],"ms-vsliveshare.vsliveshare":["contribMenuBarHome","contribShareMenu","contribStatusBarItems","diffCommand","documentFiltersExclusive","fileSearchProvider","findTextInFiles","notebookLiveShare","terminalDimensions","terminalDataWriteEvent","textSearchProvider"],"ms-vscode.js-debug":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-toolsai.vscode-ai-remote":["resolvers","authenticationChallenges"],"ms-python.python":["codeActionAI","contribEditorContentMenu","quickPickSortByLabel","portsAttributes","testObserver","quickPickItemTooltip","terminalDataWriteEvent","terminalExecuteCommandEvent","notebookReplDocument","notebookVariableProvider","terminalShellEnv"],"ms-python.vscode-python-envs":["terminalShellEnv","terminalDataWriteEvent","taskExecutionTerminal"],"ms-dotnettools.dotnet-interactive-vscode":["notebookMessaging"],"GitHub.codespaces":["contribEditSessions","contribMenuBarHome","contribRemoteHelp","contribViewsRemote","resolvers","tunnels","terminalDataWriteEvent","treeViewReveal","notebookKernelSource"],"ms-vscode.azure-repos":["extensionRuntime","fileSearchProvider","textSearchProvider"],"ms-vscode.remote-repositories":["canonicalUriProvider","contribEditSessions","contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","contribShareMenu","documentFiltersExclusive","editSessionIdentityProvider","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","shareProvider","scmActionButton","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-vscode-remote.remote-wsl":["resolvers","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode-remote.remote-ssh":["resolvers","tunnels","terminalDataWriteEvent","contribRemoteHelp","contribViewsRemote","telemetry"],"ms-vscode.remote-server":["resolvers","tunnels","contribViewsWelcome"],"ms-vscode.remote-explorer":["contribRemoteHelp","contribViewsRemote","extensionsAny"],"ms-vscode-remote.remote-containers":["contribEditSessions","resolvers","portsAttributes","tunnels","workspaceTrust","terminalDimensions","contribRemoteHelp","contribViewsRemote"],"ms-vscode.js-debug-nightly":["portsAttributes","findTextInFiles","workspaceTrust","tunnels","browser"],"ms-vscode.lsif-browser":["documentFiltersExclusive"],"ms-vscode.vscode-speech":["speech"],"GitHub.vscode-pull-request-github":["activeComment","chatContextProvider","chatParticipantAdditions","chatParticipantPrivate","chatSessionsProvider","codiconDecoration","codeActionRanges","commentingRangeHint","commentReactor","commentReveal","commentsDraftState","commentThreadApplicability","contribAccessibilityHelpContent","contribCommentEditorActionsMenu","contribCommentPeekContext","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribEditorContentMenu","contribMultiDiffEditorMenus","contribShareMenu","diffCommand","languageModelToolResultAudience","markdownAlertSyntax","quickDiffProvider","remoteCodingAgents","shareProvider","tabInputMultiDiff","tabInputTextMerge","tokenInformation","treeItemMarkdownLabel","treeViewMarkdownMessage"],"GitHub.copilot":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-nightly":["inlineCompletionsAdditions","devDeviceId"],"GitHub.copilot-chat":["agentSessionsWorkspace","agentsWindowConfiguration","interactive","terminalDataWriteEvent","terminalExecuteCommandEvent","terminalSelection","terminalQuickFixProvider","chatParticipantAdditions","defaultChatParticipant","embeddings","chatProvider","mappedEditsProvider","aiRelatedInformation","aiSettingsSearch","codeActionAI","findTextInFiles","findTextInFiles2","textSearchProvider","textSearchProvider2","activeComment","commentReveal","contribSourceControlInputBoxMenu","contribCommentEditorActionsMenu","contribCommentThreadAdditionalMenu","contribCommentsViewThreadMenus","contribChatEditorInlineGutterMenu","extensionAffinity","newSymbolNamesProvider","findFiles2","chatReferenceDiagnostic","extensionsAny","authLearnMore","testObserver","aiTextSearchProvider","documentFiltersExclusive","chatParticipantPrivate","contribDebugCreateConfiguration","inlineCompletionsAdditions","chatReferenceBinaryData","languageModelSystem","languageModelCapabilities","languageModelThinkingPart","languageModelToolSupportsModel","chatStatusItem","taskProblemMatcherStatus","contribLanguageModelToolSets","textDocumentChangeReason","resolvers","taskExecutionTerminal","dataChannels","chatSessionsProvider","chatSessionCustomizationProvider","devDeviceId","contribEditorContentMenu","tokenInformation","toolInvocationApproveCombination","chatPromptFiles","mcpServerDefinitions","tabInputMultiDiff","workspaceTrust","chatHooks","chatDebug","environmentPower","terminalTitle","languageModelPricing","chatInputNotification"],"GitHub.remotehub":["contribRemoteHelp","contribMenuBarHome","contribViewsRemote","contribViewsWelcome","documentFiltersExclusive","extensionRuntime","fileSearchProvider","quickPickSortByLabel","workspaceTrust","scmSelectedProvider","scmValidation","textSearchProvider","timeline"],"ms-python.vscode-pylance":["terminalShellEnv","portsAttributes","codeActionAI"],"ms-python.debugpy":["contribViewsWelcome","debugVisualization","portsAttributes"],"ms-toolsai.jupyter-renderers":["contribNotebookStaticPreloads"],"ms-toolsai.jupyter":["notebookDeprecated","notebookMessaging","notebookMime","portsAttributes","quickPickSortByLabel","notebookKernelSource","interactiveWindow","notebookControllerAffinityHidden","contribNotebookStaticPreloads","quickPickItemTooltip","notebookExecution","notebookCellExecution","notebookVariableProvider","notebookReplDocument"],"donjayamanne.kusto":["notebookVariableProvider"],"ms-toolsai.tensorboard":["portsAttributes"],"dbaeumer.vscode-eslint":[],"ms-vscode.azure-sphere-tools-ui":["tunnels"],"ms-azuretools.vscode-azureappservice":["terminalDataWriteEvent"],"ms-vscode.anycode":["extensionsAny"],"ms-vscode.cpptools":["terminalDataWriteEvent","chatParticipantAdditions"],"vscjava.vscode-java-pack":[],"ms-dotnettools.csdevkit":["inlineCompletionsAdditions"],"ms-dotnettools.vscodeintellicode-csharp":["inlineCompletionsAdditions"],"ms-dotnettools.vscode-dotnet-modernize":["chatParticipantAdditions","chatPromptFiles"],"microsoft-IsvExpTools.powerplatform-vscode":["fileSearchProvider","textSearchProvider"],"microsoft-IsvExpTools.powerplatform-vscode-preview":["fileSearchProvider","textSearchProvider"],"TeamsDevApp.ms-teams-vscode-extension":["chatParticipantAdditions","languageModelSystem","mcpServerDefinitions"],"ms-toolsai.datawrangler":[],"ms-vscode.vscode-commander":[],"ms-vscode.vscode-websearchforcopilot":[],"ms-vscode.vscode-copilot-vision":["chatReferenceBinaryData","codeActionAI"],"ms-autodev.vscode-autodev":["chatParticipantAdditions"],"vscjava.migrate-java-to-azure":["chatParticipantAdditions","chatParticipantPrivate"],"vscjava.vscode-java-upgrade":["chatParticipantAdditions","chatParticipantPrivate"],"FoundryLocal.foundry-local-chat":["chatProvider"],"Microsoft.foundry-local-chat":["chatProvider"],"ms-wmcp.windows-mcp-server-extension":["mcpToolDefinitions"],"openai.chatgpt":["languageModelProxy","chatSessionsProvider"],"TypeScriptTeam.native-preview":["editorHoverVerbosityLevel","multiDocumentHighlightProvider"],"ms-vscode.vscode-eng-codereview":["chatContextProvider"],"ms-vscode.vscode-chat-customizations-evaluations":["chatSessionCustomizationProvider","contribEditorContentMenu"]},tasConfig:{endpoint:"https://default.exp-tas.com/vscode/ab",telemetryEventName:"query-expfeature",assignmentContextTelemetryPropertyName:"abexp.assignmentcontext"},extensionKind:{"Shan.code-settings-sync":["ui"],"shalldie.background":["ui"],"techer.open-in-browser":["ui"],"CoenraadS.bracket-pair-colorizer-2":["ui"],"CoenraadS.bracket-pair-colorizer":["ui","workspace"],"hiro-sun.vscode-emacs":["ui","workspace"],"hnw.vscode-auto-open-markdown-preview":["ui","workspace"],"wayou.vscode-todo-highlight":["ui","workspace"],"aaron-bond.better-comments":["ui","workspace"],"vscodevim.vim":["ui"],"ollyhayes.colmak-vim":["ui"]},extensionPointExtensionKind:{typescriptServerPlugins:["workspace"]},extensionSyncedKeys:{"ritwickdey.liveserver":["liveServer.setup.version"]},extensionVirtualWorkspacesSupport:{"esbenp.prettier-vscode":{default:!1},"msjsdiag.debugger-for-chrome":{default:!1},"redhat.java":{default:!1},"HookyQR.beautify":{default:!1},"ritwickdey.LiveServer":{default:!1},"VisualStudioExptTeam.vscodeintellicode":{default:!1},"octref.vetur":{default:!1},"formulahendry.code-runner":{default:!1},"xdebug.php-debug":{default:!1},"ms-mssql.mssql":{default:!1},"christian-kohler.path-intellisense":{default:!1},"eg2.tslint":{default:!1},"eg2.vscode-npm-script":{default:!1},"donjayamanne.githistory":{default:!1},"Zignd.html-css-class-completion":{default:!1},"christian-kohler.npm-intellisense":{default:!1},"EditorConfig.EditorConfig":{default:!1},"austin.code-gnu-global":{default:!1},"johnpapa.Angular2":{default:!1},"ms-vscode.vscode-typescript-tslint-plugin":{default:!1},"DotJoshJohnson.xml":{default:!1},"techer.open-in-browser":{default:!1},"tht13.python":{default:!1},"bmewburn.vscode-intelephense-client":{default:!1},"Angular.ng-template":{default:!1},"xdebug.php-pack":{default:!1},"dbaeumer.jshint":{default:!1},"yzhang.markdown-all-in-one":{default:!1},"Dart-Code.flutter":{default:!1},"streetsidesoftware.code-spell-checker":{default:!1},"rebornix.Ruby":{default:!1},"ms-vscode.sublime-keybindings":{default:!1},"mitaki28.vscode-clang":{default:!1},"steoates.autoimport":{default:!1},"donjayamanne.python-extension-pack":{default:!1},"shd101wyy.markdown-preview-enhanced":{default:!1},"mikestead.dotenv":{default:!1},"pranaygp.vscode-css-peek":{default:!1},"ikappas.phpcs":{default:!1},"platformio.platformio-ide":{default:!1},"jchannon.csharpextensions":{default:!1},"gruntfuggly.todo-tree":{default:!1}},linkProtectionTrustedDomains:["https://*.visualstudio.com","https://*.microsoft.com","https://aka.ms","https://*.gallerycdn.vsassets.io","https://*.github.com","https://login.microsoftonline.com","https://*.vscode.dev","https://*.github.dev","https://gh.io","https://portal.azure.com","https://raw.githubusercontent.com","https://private-user-images.githubusercontent.com","https://avatars.githubusercontent.com","https://auth.openai.com"],trustedExtensionAuthAccess:{github:["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],"github-enterprise":["vscode.github","github.remotehub","ms-vscode.remote-server","github.vscode-pull-request-github","github.codespaces","github.copilot","github.copilot-chat","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot"],microsoft:["github.copilot-chat","ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"microsoft-sovereign-cloud":["ms-vscode.azure-repos","ms-vscode.remote-server","ms-vsliveshare.vsliveshare","ms-azuretools.vscode-azure-github-copilot","ms-azuretools.vscode-azureresourcegroups","ms-azuretools.vscode-dev-azurecloudshell","ms-edu.vscode-learning","ms-toolsai.vscode-ai","ms-toolsai.vscode-ai-remote"],"__GitHub.copilot-chat":["ms-azuretools.vscode-azure-github-copilot","github.vscode-pull-request-github"]},trustedExtensionProtocolHandlers:["vscode.git","vscode.github-authentication","vscode.microsoft-authentication","github.vscode-pull-request-github"],authClientIdMetadataUrl:"https://vscode.dev/oauth/client-metadata.json",inheritAuthAccountPreference:{"github.copilot":["github.copilot-chat"]},auth:{loginUrl:"https://login.microsoftonline.com/common/oauth2/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/token",redirectUrl:"https://vscode-redirect.azurewebsites.net/",clientId:"aebc6443-996d-45c2-90f0-388ff96faa56"},"configurationSync.store":{url:"https://vscode-sync.trafficmanager.net/",stableUrl:"https://vscode-sync.trafficmanager.net/",insidersUrl:"https://vscode-sync-insiders.trafficmanager.net/",canSwitch:!1,authenticationProviders:{github:{scopes:["user:email"]},microsoft:{scopes:["openid","profile","email","offline_access"]}}},"editSessions.store":{url:"https://vscode-sync.trafficmanager.net/",authenticationProviders:{microsoft:{scopes:["openid","profile","email","offline_access"]},github:{scopes:["user:email"]}}},tunnelServerQualities:{stable:{serverApplicationName:"code-server"},exploration:{serverApplicationName:"code-server-exploration"},insider:{serverApplicationName:"code-server-insiders"}},tunnelApplicationName:"code-tunnel",tunnelApplicationConfig:{editorWebUrl:"https://vscode.dev",extension:{friendlyName:"Remote - Tunnels",extensionId:"ms-vscode.remote-server"},authenticationProviders:{github:{scopes:["user:email","read:org"]},microsoft:{scopes:["46da2f7e-b5ef-422a-88d4-2a7f9de6a0b2/.default","profile","openid"]}}},win32TunnelServiceMutex:"vscode-tunnelservice",win32TunnelMutex:"vscode-tunnel",aiGeneratedWorkspaceTrust:{title:"This workspace was generated by GitHub Copilot",checkboxText:"Trust the contents of all files in this workspace",trustOption:"Yes, I trust the contents",dontTrustOption:"No, I don't trust the contents",startupTrustRequestLearnMore:"If you don't trust the contents of the files generated by GitHub Copilot, we recommend continuing in restricted mode. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more. "},defaultChatAgent:{providerExtensionId:"vscode.github-authentication",extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",manageSettingsUrl:"https://aka.ms/github-copilot-settings",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",manageOverageUrl:"https://aka.ms/github-copilot-manage-overage",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE.com"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},chatParticipantRegistry:"https://main.vscode-cdn.net/extensions/chat.json",remoteDefaultExtensionsIfInstalledLocally:["GitHub.copilot","GitHub.copilot-chat","GitHub.vscode-pull-request-github"],extensionConfigurationPolicy:{"github.copilot.nextEditSuggestions.enabled":{name:"CopilotNextEditSuggestions",minimumVersion:"1.99",category:"InteractiveSession",description:"Whether to enable next edit suggestions (NES). NES can propose a next edit based on your recent changes."},"github.copilot.chat.reviewSelection.enabled":{name:"CopilotReviewSelection",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables code review on current selection."},"github.copilot.chat.reviewAgent.enabled":{name:"CopilotReviewAgent",minimumVersion:"1.104",category:"InteractiveSession",description:"Enables the code review agent."},"github.copilot.chat.claudeAgent.enabled":{name:"Claude3PIntegration",minimumVersion:"1.113",category:"InteractiveSession",description:"Enable Claude Agent sessions in VS Code. Start and resume agentic coding sessions powered by Anthropic Claude Agent SDK directly in the editor. Uses your existing Copilot subscription."}},win32ContextMenu:{x64:{clsid:"1C6DF0C0-192A-4451-BE36-6A59A86A692E"},arm64:{clsid:"F5EA5883-1DA8-4A05-864A-D5DE2D2B2854"}},chatSessionRecommendations:[{extensionId:"openai.chatgpt",extensionName:"Codex - OpenAI's coding agent",displayName:"Codex Agent",name:"codex",description:"Codex is OpenAI's coding agent that helps you write, review, and ship code faster.",postInstallCommand:"chatgpt.newCodexPanel"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Background Agent",name:"cli",description:"Delegate tasks to a background agent.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilotcli"},{extensionId:"GitHub.copilot-chat",extensionName:"GitHub Copilot Chat",displayName:"Cloud Agent",name:"cloud",description:"Delegate tasks to the GitHub Copilot Cloud Agent. The agent works asynchronously in the cloud to implement changes, iterates via chat, and can create or update pull requests as needed.",postInstallCommand:"workbench.action.chat.openNewSessionSidebar.copilot-cloud-agent"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],sessionsWindowAllowedExtensions:["pkief.material-icon-theme","zhuangtongfa.material-theme","vscode-icons-team.vscode-icons","oderwat.indent-rainbow","formulahendry.auto-close-tag","pranaygp.vscode-css-peek","codezombiech.gitignore","usernamehw.errorlens","wayou.vscode-todo-highlight","bierner.markdown-mermaid","kisstkondoros.vscode-gutter-preview","tomoki1207.pdf","vscodevim.vim","ecmel.vscode-html-css","bradlc.vscode-tailwindcss","xabikos.JavaScriptSnippets","dsznajder.es7-react-js-snippets","formulahendry.auto-rename-tag","naumovs.color-highlight","streetsidesoftware.code-spell-checker","Vue.volar","dbaeumer.vscode-eslint","esbenp.prettier-vscode","redhat.vscode-xml","redhat.java"],version:"1.122.1",commit:"8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e",date:"2026-05-29T09:25:37+02:00"},Object.keys(kt).length===0&&Object.assign(kt,{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 At=kt;var Yt={Configuration:"base.contributions.configuration"};function u0(i,t){return i===t?!0:!i||!t?!1:typeof i=="string"||typeof t=="string"?i===t:i.id===t.id}var Zc={properties:{},patternProperties:{}},ed={properties:{},patternProperties:{}},td={properties:{},patternProperties:{}},nd={properties:{},patternProperties:{}},rd={properties:{},patternProperties:{}},id={properties:{},patternProperties:{}},Aa={properties:{},patternProperties:{}},Si="vscode://schemas/settings/resourceLanguage";var od=ot.as(Sm.JSONContribution),_m=class extends T{constructor(){super();this.registeredConfigurationDefaults=[];this.overrideIdentifiers=new Set;this._onDidSchemaChange=this._register(new x);this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=this._register(new x);this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:m(2167,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},od.registerSchema(Si,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,n=!0){return this.registerConfigurations([e],n),e}registerConfigurations(e,n=!0){let r=new Set;this.doRegisterConfigurations(e,n,r),od.registerSchema(Si,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),od.registerSchema(Si,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n})}updateConfigurations({add:e,remove:n}){let r=new Set;this.doDeregisterConfigurations(n,r),this.doRegisterConfigurations(e,!1,r),od.registerSchema(Si,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}registerDefaultConfigurations(e){let n=new Set;this.doRegisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,n){this.registeredConfigurationDefaults.push(...e);let r=[];for(let{overrides:o,source:s}of e)for(let a in o){n.add(a);let l=this.configurationDefaultsOverrides.get(a)??this.configurationDefaultsOverrides.set(a,{configurationDefaultOverrides:[]}).get(a),c=o[a];if(l.configurationDefaultOverrides.push({value:c,source:s}),wn.test(a)){let u=this.mergeDefaultConfigurationsForOverrideIdentifier(a,c,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u,this.updateDefaultOverrideProperty(a,u,s),r.push(...Oo(a))}else{let u=this.mergeDefaultConfigurationsForConfigurationProperty(a,c,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u;let d=this.configurationProperties[a];d&&(this.updatePropertyDefaultValue(a,d),this.updateSchema(a,d))}}this.doRegisterOverrideIdentifiers(r)}deregisterDefaultConfigurations(e){let n=new Set;this.doDeregisterDefaultConfigurations(e,n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:n,defaultsOverrides:!0})}doDeregisterDefaultConfigurations(e,n){for(let r of e){let o=this.registeredConfigurationDefaults.indexOf(r);o!==-1&&this.registeredConfigurationDefaults.splice(o,1)}for(let{overrides:r,source:o}of e)for(let s in r){let a=this.configurationDefaultsOverrides.get(s);if(!a)continue;let l=a.configurationDefaultOverrides.findIndex(c=>o?u0(c.source,o):c.value===r[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),wn.test(s)){let c;for(let u of a.configurationDefaultOverrides)c=this.mergeDefaultConfigurationsForOverrideIdentifier(s,u.value,u.source,c);c&&!ll(c.value)?(a.configurationDefaultOverrideValue=c,this.updateDefaultOverrideProperty(s,c,o)):(this.configurationDefaultsOverrides.delete(s),delete this.configurationProperties[s],delete this.defaultLanguageConfigurationOverridesNode.properties[s])}else{let c;for(let d of a.configurationDefaultOverrides)c=this.mergeDefaultConfigurationsForConfigurationProperty(s,d.value,d.source,c);a.configurationDefaultOverrideValue=c;let u=this.configurationProperties[s];u&&(this.updatePropertyDefaultValue(s,u),this.updateSchema(s,u))}n.add(s)}}this.updateOverridePropertyPatternKey()}updateDefaultOverrideProperty(e,n,r){let o={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:n.value,description:m(2166,null,yS(e)),$ref:Si,defaultDefaultValue:n.value,source:r,defaultValueSource:r};this.configurationProperties[e]=o,this.defaultLanguageConfigurationOverridesNode.properties[e]=o}mergeDefaultConfigurationsForOverrideIdentifier(e,n,r,o){let s=o?.value||{},a=o?.source??new Map;if(!(a instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(let l of Object.keys(n)){let c=n[l];if(Ae(c)&&(ki(s[l])||Ae(s[l]))){if(s[l]={...s[l]??{},...c},r)for(let d in c)a.set(`${l}.${d}`,r)}else s[l]=c,r?a.set(l,r):a.delete(l)}return{value:s,source:a}}mergeDefaultConfigurationsForConfigurationProperty(e,n,r,o){let s=this.configurationProperties[e],a=o?.value??s?.defaultDefaultValue,l=r;if(Ae(n)&&(s!==void 0&&s.type==="object"||s===void 0&&(ki(a)||Ae(a)))){if(l=o?.source??new Map,!(l instanceof Map)){console.error("defaultValueSource is not a Map");return}for(let u in n)r&&l.set(`${e}.${u}`,r);n={...Ae(a)?a:{},...n}}return{value:n,source:l}}deltaConfiguration(e){let n=!1,r=new Set;e.removedDefaults&&(this.doDeregisterDefaultConfigurations(e.removedDefaults,r),n=!0),e.addedDefaults&&(this.doRegisterDefaultConfigurations(e.addedDefaults,r),n=!0),e.removedConfigurations&&this.doDeregisterConfigurations(e.removedConfigurations,r),e.addedConfigurations&&this.doRegisterConfigurations(e.addedConfigurations,!1,r),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r,defaultsOverrides:n})}notifyConfigurationSchemaUpdated(...e){this._onDidSchemaChange.fire()}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(let n of e)this.overrideIdentifiers.add(n);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,n,r){e.forEach(o=>{this.validateAndRegisterProperties(o,n,o.extensionInfo,o.restrictedProperties,void 0,r),this.configurationContributors.push(o),this.registerJSONConfiguration(o)})}doDeregisterConfigurations(e,n){let r=o=>{if(o.properties)for(let s in o.properties){n.add(s);let a=this.configurationProperties[s];a?.policy?.name&&this.policyConfigurations.delete(a.policy.name),delete this.configurationProperties[s],this.removeFromSchema(s,o.properties[s])}o.allOf?.forEach(s=>r(s))};for(let o of e){r(o);let s=this.configurationContributors.indexOf(o);s!==-1&&this.configurationContributors.splice(s,1)}}validateAndRegisterProperties(e,n=!0,r,o,s=4,a){s=en(e.scope)?s:e.scope;let l=e.properties;if(l)for(let u in l){let d=l[u];if(d.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},n&&f0(u,d,r?.id)){delete l[u];continue}d.source=r,d.defaultDefaultValue=l[u].default,this.updatePropertyDefaultValue(u,d),wn.test(u)?d.scope=void 0:(d.scope=en(d.scope)?s:d.scope,d.restricted=en(d.restricted)?!!o?.includes(u):d.restricted),d.experiment?d.tags?.some(h=>h.toLowerCase()==="onexp")||(d.tags=d.tags??[],d.tags.push("onExP")):d.tags?.some(h=>h.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${u}'. Please use 'experiment' property instead.`),d.experiment={mode:"startup"});let f=l[u].hasOwnProperty("included")&&!l[u].included,g=l[u].policy?.name;f?(this.excludedConfigurationProperties[u]=l[u],g&&(this.policyConfigurations.set(g,u),a.add(u)),delete l[u]):(a.add(u),g&&this.policyConfigurations.set(g,u),this.configurationProperties[u]=l[u],!l[u].deprecationMessage&&l[u].markdownDeprecationMessage&&(l[u].deprecationMessage=l[u].markdownDeprecationMessage))}let c=e.allOf;if(c)for(let u of c)this.validateAndRegisterProperties(u,n,r,o,s,a)}getConfigurations(){return this.configurationContributors}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}getRegisteredDefaultConfigurations(){return[...this.registeredConfigurationDefaults]}getConfigurationDefaultsOverrides(){let e=new Map;for(let[n,r]of this.configurationDefaultsOverrides)r.configurationDefaultOverrideValue&&e.set(n,r.configurationDefaultOverrideValue);return e}registerJSONConfiguration(e){let n=r=>{let o=r.properties;if(o)for(let a in o)this.updateSchema(a,o[a]);r.allOf?.forEach(n)};n(e)}updateSchema(e,n){switch(Zc.properties[e]=n,n.scope){case 1:ed.properties[e]=n;break;case 2:nd.properties[e]=n;break;case 3:td.properties[e]=n;break;case 7:rd.properties[e]=n;break;case 4:id.properties[e]=n;break;case 5:Aa.properties[e]=n;break;case 6:Aa.properties[e]=n,this.resourceLanguageSettingsSchema.properties[e]=n;break}}removeFromSchema(e,n){switch(delete Zc.properties[e],n.scope){case 1:delete ed.properties[e];break;case 2:delete nd.properties[e];break;case 3:delete td.properties[e];break;case 7:delete rd.properties[e];break;case 4:delete id.properties[e];break;case 5:case 6:delete Aa.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}updateOverridePropertyPatternKey(){for(let e of this.overrideIdentifiers.values()){let n=`[${e}]`,r={type:"object",description:m(2168,null),errorMessage:m(2169,null),$ref:Si};this.updatePropertyDefaultValue(n,r),Zc.properties[n]=r,ed.properties[n]=r,td.properties[n]=r,nd.properties[n]=r,rd.properties[n]=r,id.properties[n]=r,Aa.properties[n]=r}}registerOverridePropertyPatternKey(){let e={type:"object",description:m(2168,null),errorMessage:m(2169,null),$ref:Si};Zc.patternProperties[Lr]=e,ed.patternProperties[Lr]=e,td.patternProperties[Lr]=e,nd.patternProperties[Lr]=e,rd.patternProperties[Lr]=e,id.patternProperties[Lr]=e,Aa.patternProperties[Lr]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,n){let r=this.configurationDefaultsOverrides.get(e)?.configurationDefaultOverrideValue,o,s;r&&(!n.disallowConfigurationDefault||!r.source)&&(o=r.value,s=r.source),ki(o)&&(o=n.defaultDefaultValue,s=void 0),ki(o)&&(o=p0(n.type)),n.default=o,n.defaultValueSource=s}},IS="\\[([^\\]]+)\\]",SS=new RegExp(IS,"g"),Lr=`^(${IS})+$`,wn=new RegExp(Lr);function Oo(i){let t=[];if(wn.test(i)){let e=SS.exec(i);for(;e?.length;){let n=e[1].trim();n&&t.push(n),e=SS.exec(i)}}return Mn(t)}function _S(i){return i.reduce((t,e)=>`${t}[${e}]`,"")}function p0(i){switch(Array.isArray(i)?i[0]:i){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}var sd=new _m;ot.add(Yt.Configuration,sd);function f0(i,t,e){return i.trim()?wn.test(i)?m(2165,null,i):sd.getConfigurationProperties()[i]!==void 0&&(!e||!m0.has(e.toLowerCase()))?m(2163,null,i):t.policy?.name&&sd.getPolicyConfigurations().get(t.policy?.name)!==void 0?m(2162,null,i,t.policy?.name,sd.getPolicyConfigurations().get(t.policy?.name)):null:m(2164,null)}var m0=new Set(At.defaultChatAgent?[At.defaultChatAgent.extensionId,At.defaultChatAgent.chatExtensionId].map(i=>i.toLowerCase()):[]);function Da(i){return Object.isFrozen(i)?i:Oy(i)}var ke=class i{constructor(t,e,n,r,o){this._contents=t;this._keys=e;this._overrides=n;this._raw=r;this.logService=o;this.overrideConfigurations=new Map}static createEmptyModel(t){return new i({},[],[],void 0,t)}get rawConfiguration(){if(!this._rawConfiguration)if(this._raw){let t=(Array.isArray(this._raw)?this._raw:[this._raw]).map(e=>{if(e instanceof i)return e;let n=new ad("",this.logService);return n.parseRaw(e),n.configurationModel});this._rawConfiguration=t.reduce((e,n)=>n===e?n:e.merge(n),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}get raw(){if(this._raw&&!(Array.isArray(this._raw)&&this._raw.every(t=>t instanceof i)))return this._raw}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(t){return t?ka(this.contents,t):this.contents}inspect(t,e){let n=this;return{get value(){return Da(n.rawConfiguration.getValue(t))},get override(){return e?Da(n.rawConfiguration.getOverrideValue(t,e)):void 0},get merged(){return Da(e?n.rawConfiguration.override(e).getValue(t):n.rawConfiguration.getValue(t))},get overrides(){let r=[];for(let{contents:o,identifiers:s,keys:a}of n.rawConfiguration.overrides){let l=new i(o,a,[],void 0,n.logService).getValue(t);l!==void 0&&r.push({identifiers:s,value:l})}return r.length?Da(r):void 0}}}getOverrideValue(t,e){let n=this.getContentsForOverrideIdentifer(e);return n?t?ka(n,t):n:void 0}getKeysForOverrideIdentifier(t){let e=[];for(let n of this.overrides)n.identifiers.includes(t)&&e.push(...n.keys);return Mn(e)}getAllOverrideIdentifiers(){let t=[];for(let e of this.overrides)t.push(...e.identifiers);return Mn(t)}override(t){let e=this.overrideConfigurations.get(t);return e||(e=this.createOverrideConfigurationModel(t),this.overrideConfigurations.set(t,e)),e}merge(...t){let e=zt(this.contents),n=zt(this.overrides),r=[...this.keys],o=this._raw?Array.isArray(this._raw)?[...this._raw]:[this._raw]:[this];for(let s of t)if(o.push(...s._raw?Array.isArray(s._raw)?s._raw:[s._raw]:[s]),!s.isEmpty()){this.mergeContents(e,s.contents);for(let a of s.overrides){let[l]=n.filter(c=>Zt(c.identifiers,a.identifiers));l?(this.mergeContents(l.contents,a.contents),l.keys.push(...a.keys),l.keys=Mn(l.keys)):n.push(zt(a))}for(let a of s.keys)r.indexOf(a)===-1&&r.push(a)}return new i(e,r,n,!o.length||o.every(s=>s instanceof i)?void 0:o,this.logService)}createOverrideConfigurationModel(t){let e=this.getContentsForOverrideIdentifer(t);if(!e||typeof e!="object"||!Object.keys(e).length)return this;let n={};for(let r of Mn([...Object.keys(this.contents),...Object.keys(e)])){let o=this.contents[r],s=e[r];s&&(typeof o=="object"&&typeof s=="object"?(o=zt(o),this.mergeContents(o,s)):o=s),n[r]=o}return new i(n,this.keys,this.overrides,void 0,this.logService)}mergeContents(t,e){for(let n of Object.keys(e)){if(n in t&&Ae(t[n])&&Ae(e[n])){this.mergeContents(t[n],e[n]);continue}t[n]=zt(e[n])}}getContentsForOverrideIdentifer(t){let e=null,n=null,r=o=>{o&&(n?this.mergeContents(n,o):n=zt(o))};for(let o of this.overrides)o.identifiers.length===1&&o.identifiers[0]===t?e=o.contents:o.identifiers.includes(t)&&r(o.contents);return r(e),n}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(t,e){this.updateValue(t,e,!0)}setValue(t,e){this.updateValue(t,e,!1)}removeValue(t){let e=this.keys.indexOf(t);e!==-1&&(this.keys.splice(e,1),gS(this.contents,t),wn.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>Zt(n.identifiers,Oo(t))),1))}updateValue(t,e,n){if(vm(this.contents,t,e,r=>this.logService.error(r)),n=n||this.keys.indexOf(t)===-1,n&&this.keys.push(t),wn.test(t)){let r=this.contents[t],o=Oo(t),s={identifiers:o,keys:Object.keys(r),contents:Xc(r,l=>this.logService.error(l))},a=this.overrides.findIndex(l=>Zt(l.identifiers,o));a!==-1?this.overrides[a]=s:this.overrides.push(s)}}},ad=class{constructor(t,e){this._name=t;this.logService=e;this._raw=null;this._configurationModel=null;this._restrictedConfigurations=[];this._parseErrors=[]}get configurationModel(){return this._configurationModel||ke.createEmptyModel(this.logService)}get restrictedConfigurations(){return this._restrictedConfigurations}get errors(){return this._parseErrors}parse(t,e){if(!en(t)){let n=this.doParseContent(t);this.parseRaw(n,e)}}reparse(t){this._raw&&this.parseRaw(this._raw,t)}parseRaw(t,e){this._raw=t;let{contents:n,keys:r,overrides:o,restricted:s,hasExcludedProperties:a}=this.doParseRaw(t,e);this._configurationModel=new ke(n,r,o,a?[t]:void 0,this.logService),this._restrictedConfigurations=s||[]}doParseContent(t){let e={},n=null,r=[],o=[],s=[];function a(c){Array.isArray(r)?r.push(c):n!==null&&(r[n]=c)}let l={onObjectBegin:()=>{let c={};a(c),o.push(r),r=c,n=null},onObjectProperty:c=>{n=c},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let c=[];a(c),o.push(r),r=c,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:a,onError:(c,u,d)=>{s.push({error:c,offset:u,length:d})}};if(t)try{ko(t,l),e=r[0]||{}}catch(c){this.logService.error(`Error while parsing settings file ${this._name}: ${c}`),this._parseErrors=[c]}return e}doParseRaw(t,e){let n=ot.as(Yt.Configuration),r=n.getConfigurationProperties(),o=n.getExcludedConfigurationProperties(),s=this.filter(t,r,o,!0,e);t=s.raw;let a=Xc(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`)),l=Object.keys(t),c=this.toOverrides(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`));return{contents:a,keys:l,overrides:c,restricted:s.restricted,hasExcludedProperties:s.hasExcludedProperties}}filter(t,e,n,r,o){let s=!1;if(!o?.scopes&&!o?.skipRestricted&&!o?.skipUnregistered&&!o?.exclude?.length)return{raw:t,restricted:[],hasExcludedProperties:s};let a={},l=[];for(let c in t)if(wn.test(c)&&r){let u=this.filter(t[c],e,n,!1,o);a[c]=u.raw,s=s||u.hasExcludedProperties,l.push(...u.restricted)}else{let u=e[c];u?.restricted&&l.push(c),this.shouldInclude(c,u,n,o)?a[c]=t[c]:s=!0}return{raw:a,restricted:l,hasExcludedProperties:s}}shouldInclude(t,e,n,r){if(r.exclude?.includes(t))return!1;if(r.include?.includes(t))return!0;if(r.skipRestricted&&e?.restricted||r.skipUnregistered&&!e)return!1;let o=e??n[t],s=o?typeof o.scope<"u"?o.scope:4:void 0;return s===void 0||r.scopes===void 0?!0:r.scopes.includes(s)}toOverrides(t,e){let n=[];for(let r of Object.keys(t))if(wn.test(r)){let o={},s=t[r];for(let a in s)o[a]=s[a];n.push({identifiers:Oo(r),keys:Object.keys(o),contents:Xc(o,e)})}return n}},ld=class extends T{constructor(e,n,r,o,s){super();this.userSettingsResource=e;this.parseOptions=n;this.fileService=o;this.logService=s;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this.parser=new ad(this.userSettingsResource.toString(),s),this._register(this.fileService.watch(r.dirname(this.userSettingsResource))),this._register(this.fileService.watch(this.userSettingsResource)),this._register(X.any(X.filter(this.fileService.onDidFilesChange,a=>a.contains(this.userSettingsResource)),X.filter(this.fileService.onDidRunOperation,a=>(a.isOperation(0)||a.isOperation(3)||a.isOperation(1)||a.isOperation(4))&&r.isEqual(a.resource,e)))(()=>this._onDidChange.fire()))}async loadConfiguration(){try{let e=await this.fileService.readFile(this.userSettingsResource);return this.parser.parse(e.value.toString()||"{}",this.parseOptions),this.parser.configurationModel}catch{return ke.createEmptyModel(this.logService)}}reparse(e){return e&&(this.parseOptions=e),this.parser.reparse(this.parseOptions),this.parser.configurationModel}getRestrictedSettings(){return this.parser.restrictedConfigurations}},Cm=class{constructor(t,e,n,r,o,s,a,l,c,u,d,f,g){this.key=t;this.overrides=e;this._value=n;this.overrideIdentifiers=r;this.defaultConfiguration=o;this.policyConfiguration=s;this.applicationConfiguration=a;this.userConfiguration=l;this.localUserConfiguration=c;this.remoteUserConfiguration=u;this.workspaceConfiguration=d;this.folderConfigurationModel=f;this.memoryConfigurationModel=g}get value(){return Da(this._value)}toInspectValue(t){return t?.value!==void 0||t?.override!==void 0||t?.overrides!==void 0?t:void 0}get defaultInspectValue(){return this._defaultInspectValue||(this._defaultInspectValue=this.defaultConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._defaultInspectValue}get defaultValue(){return this.defaultInspectValue.merged}get default(){return this.toInspectValue(this.defaultInspectValue)}get policyInspectValue(){return this._policyInspectValue===void 0&&(this._policyInspectValue=this.policyConfiguration?this.policyConfiguration.inspect(this.key):null),this._policyInspectValue}get policyValue(){return this.policyInspectValue?.merged}get policy(){return this.policyInspectValue?.value!==void 0?{value:this.policyInspectValue.value}:void 0}get applicationInspectValue(){return this._applicationInspectValue===void 0&&(this._applicationInspectValue=this.applicationConfiguration?this.applicationConfiguration.inspect(this.key):null),this._applicationInspectValue}get applicationValue(){return this.applicationInspectValue?.merged}get application(){return this.toInspectValue(this.applicationInspectValue)}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get userValue(){return this.userInspectValue.merged}get user(){return this.toInspectValue(this.userInspectValue)}get userLocalInspectValue(){return this._userLocalInspectValue||(this._userLocalInspectValue=this.localUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userLocalInspectValue}get userLocalValue(){return this.userLocalInspectValue.merged}get userLocal(){return this.toInspectValue(this.userLocalInspectValue)}get userRemoteInspectValue(){return this._userRemoteInspectValue||(this._userRemoteInspectValue=this.remoteUserConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userRemoteInspectValue}get userRemoteValue(){return this.userRemoteInspectValue.merged}get userRemote(){return this.toInspectValue(this.userRemoteInspectValue)}get workspaceInspectValue(){return this._workspaceInspectValue===void 0&&(this._workspaceInspectValue=this.workspaceConfiguration?this.workspaceConfiguration.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceInspectValue}get workspaceValue(){return this.workspaceInspectValue?.merged}get workspace(){return this.toInspectValue(this.workspaceInspectValue)}get workspaceFolderInspectValue(){return this._workspaceFolderInspectValue===void 0&&(this._workspaceFolderInspectValue=this.folderConfigurationModel?this.folderConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier):null),this._workspaceFolderInspectValue}get workspaceFolderValue(){return this.workspaceFolderInspectValue?.merged}get workspaceFolder(){return this.toInspectValue(this.workspaceFolderInspectValue)}get memoryInspectValue(){return this._memoryInspectValue===void 0&&(this._memoryInspectValue=this.memoryConfigurationModel.inspect(this.key,this.overrides.overrideIdentifier)),this._memoryInspectValue}get memoryValue(){return this.memoryInspectValue.merged}get memory(){return this.toInspectValue(this.memoryInspectValue)}},Lo=class i{constructor(t,e,n,r,o,s,a,l,c,u){this._defaultConfiguration=t;this._policyConfiguration=e;this._applicationConfiguration=n;this._localUserConfiguration=r;this._remoteUserConfiguration=o;this._workspaceConfiguration=s;this._folderConfigurations=a;this._memoryConfiguration=l;this._memoryConfigurationByResource=c;this.logService=u;this._workspaceConsolidatedConfiguration=null;this._foldersConsolidatedConfigurations=new Re;this._userConfiguration=null}getValue(t,e,n){return this.getConsolidatedConfigurationModel(t,e,n).getValue(t)}updateValue(t,e,n={}){let r;n.resource?(r=this._memoryConfigurationByResource.get(n.resource),r||(r=ke.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(n.resource,r))):r=this._memoryConfiguration,e===void 0?r.removeValue(t):r.setValue(t,e),n.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(t,e,n){let r=this.getConsolidatedConfigurationModel(t,e,n),o=this.getFolderConfigurationModelForResource(e.resource,n),s=e.resource?this._memoryConfigurationByResource.get(e.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(let l of r.overrides)for(let c of l.identifiers)r.getOverrideValue(t,c)!==void 0&&a.add(c);return new Cm(t,e,r.getValue(t),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,n?this._workspaceConfiguration:void 0,o||void 0,s)}keys(t){let e=this.getFolderConfigurationModelForResource(void 0,t);return{default:this._defaultConfiguration.keys.slice(0),policy:this._policyConfiguration.keys.slice(0),user:this.userConfiguration.keys.slice(0),workspace:this._workspaceConfiguration.keys.slice(0),workspaceFolder:e?e.keys.slice(0):[]}}updateDefaultConfiguration(t){this._defaultConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updatePolicyConfiguration(t){this._policyConfiguration=t}updateApplicationConfiguration(t){this._applicationConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateLocalUserConfiguration(t){this._localUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateRemoteUserConfiguration(t){this._remoteUserConfiguration=t,this._userConfiguration=null,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateWorkspaceConfiguration(t){this._workspaceConfiguration=t,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations.clear()}updateFolderConfiguration(t,e){this._folderConfigurations.set(t,e),this._foldersConsolidatedConfigurations.delete(t)}deleteFolderConfiguration(t){this.folderConfigurations.delete(t),this._foldersConsolidatedConfigurations.delete(t)}compareAndUpdateDefaultConfiguration(t,e){let n=[];if(!e){let{added:r,updated:o,removed:s}=Mr(this._defaultConfiguration,t);e=[...r,...o,...s]}for(let r of e)for(let o of Oo(r)){let s=this._defaultConfiguration.getKeysForOverrideIdentifier(o),a=t.getKeysForOverrideIdentifier(o),l=[...a.filter(c=>s.indexOf(c)===-1),...s.filter(c=>a.indexOf(c)===-1),...s.filter(c=>!Oe(this._defaultConfiguration.override(o).getValue(c),t.override(o).getValue(c)))];n.push([o,l])}return this.updateDefaultConfiguration(t),{keys:e,overrides:n}}compareAndUpdatePolicyConfiguration(t){let{added:e,updated:n,removed:r}=Mr(this._policyConfiguration,t),o=[...e,...n,...r];return o.length&&this.updatePolicyConfiguration(t),{keys:o,overrides:[]}}compareAndUpdateApplicationConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=Mr(this.applicationConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateApplicationConfiguration(t),{keys:s,overrides:o}}compareAndUpdateLocalUserConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=Mr(this.localUserConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateLocalUserConfiguration(t),{keys:s,overrides:o}}compareAndUpdateRemoteUserConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=Mr(this.remoteUserConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateRemoteUserConfiguration(t),{keys:s,overrides:o}}compareAndUpdateWorkspaceConfiguration(t){let{added:e,updated:n,removed:r,overrides:o}=Mr(this.workspaceConfiguration,t),s=[...e,...n,...r];return s.length&&this.updateWorkspaceConfiguration(t),{keys:s,overrides:o}}compareAndUpdateFolderConfiguration(t,e){let n=this.folderConfigurations.get(t),{added:r,updated:o,removed:s,overrides:a}=Mr(n,e),l=[...r,...o,...s];return(l.length||!n)&&this.updateFolderConfiguration(t,e),{keys:l,overrides:a}}compareAndDeleteFolderConfiguration(t){let e=this.folderConfigurations.get(t);if(!e)throw new Error("Unknown folder");this.deleteFolderConfiguration(t);let{added:n,updated:r,removed:o,overrides:s}=Mr(e,void 0);return{keys:[...n,...r,...o],overrides:s}}get defaults(){return this._defaultConfiguration}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){if(!this._userConfiguration)if(this._remoteUserConfiguration.isEmpty())this._userConfiguration=this._localUserConfiguration;else{let t=this._localUserConfiguration.merge(this._remoteUserConfiguration);this._userConfiguration=new ke(t.contents,t.keys,t.overrides,void 0,this.logService)}return this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}get workspaceConfiguration(){return this._workspaceConfiguration}get folderConfigurations(){return this._folderConfigurations}getConsolidatedConfigurationModel(t,e,n){let r=this.getConsolidatedConfigurationModelForResource(e,n);if(e.overrideIdentifier&&(r=r.override(e.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(t)!==void 0){r=r.merge();for(let o of this._policyConfiguration.keys)r.setValue(o,this._policyConfiguration.getValue(o))}return r}getConsolidatedConfigurationModelForResource({resource:t},e){let n=this.getWorkspaceConsolidatedConfiguration();if(e&&t){let r=e.getFolder(t);r&&(n=this.getFolderConsolidatedConfiguration(r.uri)||n);let o=this._memoryConfigurationByResource.get(t);o&&(n=n.merge(o))}return n}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(t){let e=this._foldersConsolidatedConfigurations.get(t);if(!e){let n=this.getWorkspaceConsolidatedConfiguration(),r=this._folderConfigurations.get(t);r?(e=n.merge(r),this._foldersConsolidatedConfigurations.set(t,e)):e=n}return e}getFolderConfigurationModelForResource(t,e){if(e&&t){let n=e.getFolder(t);if(n)return this._folderConfigurations.get(n.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys,raw:Array.isArray(this.applicationConfiguration.raw)?void 0:this.applicationConfiguration.raw},userLocal:{contents:this.localUserConfiguration.contents,overrides:this.localUserConfiguration.overrides,keys:this.localUserConfiguration.keys,raw:Array.isArray(this.localUserConfiguration.raw)?void 0:this.localUserConfiguration.raw},userRemote:{contents:this.remoteUserConfiguration.contents,overrides:this.remoteUserConfiguration.overrides,keys:this.remoteUserConfiguration.keys,raw:Array.isArray(this.remoteUserConfiguration.raw)?void 0:this.remoteUserConfiguration.raw},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((t,e)=>{let{contents:n,overrides:r,keys:o}=this._folderConfigurations.get(e);return t.push([e,{contents:n,overrides:r,keys:o}]),t},[])}}allKeys(){let t=new Set;return this._defaultConfiguration.keys.forEach(e=>t.add(e)),this.userConfiguration.keys.forEach(e=>t.add(e)),this._workspaceConfiguration.keys.forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.keys.forEach(n=>t.add(n))),[...t.values()]}allOverrideIdentifiers(){let t=new Set;return this._defaultConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this.userConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._workspaceConfiguration.getAllOverrideIdentifiers().forEach(e=>t.add(e)),this._folderConfigurations.forEach(e=>e.getAllOverrideIdentifiers().forEach(n=>t.add(n))),[...t.values()]}getAllKeysForOverrideIdentifier(t){let e=new Set;return this._defaultConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this.userConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._workspaceConfiguration.getKeysForOverrideIdentifier(t).forEach(n=>e.add(n)),this._folderConfigurations.forEach(n=>n.getKeysForOverrideIdentifier(t).forEach(r=>e.add(r))),[...e.values()]}static parse(t,e){let n=this.parseConfigurationModel(t.defaults,e),r=this.parseConfigurationModel(t.policy,e),o=this.parseConfigurationModel(t.application,e),s=this.parseConfigurationModel(t.userLocal,e),a=this.parseConfigurationModel(t.userRemote,e),l=this.parseConfigurationModel(t.workspace,e),c=t.folders.reduce((u,d)=>(u.set(y.revive(d[0]),this.parseConfigurationModel(d[1],e)),u),new Re);return new i(n,r,o,s,a,l,c,ke.createEmptyModel(e),new Re,e)}static parseConfigurationModel(t,e){return new ke(t.contents,t.keys,t.overrides,t.raw,e)}};var cd=class{constructor(t,e,n,r,o){this.change=t;this.previous=e;this.currentConfiguraiton=n;this.currentWorkspace=r;this.logService=o;this._marker=`
`;this._markerCode1=this._marker.charCodeAt(0);this._markerCode2=46;this.affectedKeys=new Set;this._previousConfiguration=void 0;for(let s of t.keys)this.affectedKeys.add(s);for(let[,s]of t.overrides)for(let a of s)this.affectedKeys.add(a);this._affectsConfigStr=this._marker;for(let s of this.affectedKeys)this._affectsConfigStr+=s+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Lo.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(t,e){let n=this._marker+t,r=this._affectsConfigStr.indexOf(n);if(r<0)return!1;let o=r+n.length;if(o>=this._affectsConfigStr.length)return!1;let s=this._affectsConfigStr.charCodeAt(o);if(s!==this._markerCode1&&s!==this._markerCode2)return!1;if(e){let a=this.previousConfiguration?this.previousConfiguration.getValue(t,e,this.previous?.workspace):void 0,l=this.currentConfiguraiton.getValue(t,e,this.currentWorkspace);return!Oe(a,l)}return!0}};function Mr(i,t){let{added:e,removed:n,updated:r}=CS(t?.rawConfiguration,i?.rawConfiguration),o=[],s=i?.getAllOverrideIdentifiers()||[],a=t?.getAllOverrideIdentifiers()||[];if(t){let l=a.filter(c=>!s.includes(c));for(let c of l)o.push([c,t.getKeysForOverrideIdentifier(c)])}if(i){let l=s.filter(c=>!a.includes(c));for(let c of l)o.push([c,i.getKeysForOverrideIdentifier(c)])}if(t&&i){for(let l of s)if(a.includes(l)){let c=CS({contents:i.getOverrideValue(void 0,l)||{},keys:i.getKeysForOverrideIdentifier(l)},{contents:t.getOverrideValue(void 0,l)||{},keys:t.getKeysForOverrideIdentifier(l)});o.push([l,[...c.added,...c.removed,...c.updated]])}}return{added:e,removed:n,updated:r,overrides:o}}function CS(i,t){let e=i?t?i.keys.filter(o=>t.keys.indexOf(o)===-1):[...i.keys]:[],n=t?i?t.keys.filter(o=>i.keys.indexOf(o)===-1):[...t.keys]:[],r=[];if(i&&t){for(let o of t.keys)if(i.keys.indexOf(o)!==-1){let s=ka(t.contents,o),a=ka(i.contents,o);Oe(s,a)||r.push(o)}}return{added:e,removed:n,updated:r}}var xS=$("policy");var Mo=class{constructor(){this.onDidChange=X.None;this.policyDefinitions={}}async updatePolicyDefinitions(){return{}}getPolicyValue(){}serialize(){}};var dd=class extends T{constructor(e){super();this.logService=e;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this._configurationModel=ke.createEmptyModel(e)}get configurationModel(){return this._configurationModel}async initialize(){return this.resetConfigurationModel(),this._register(ot.as(Yt.Configuration).onDidUpdateConfiguration(({properties:e,defaultsOverrides:n})=>this.onDidUpdateConfiguration(Array.from(e),n))),this.configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}onDidUpdateConfiguration(e,n){this.updateConfigurationModel(e,ot.as(Yt.Configuration).getConfigurationProperties()),this._onDidChangeConfiguration.fire({defaults:this.configurationModel,properties:e})}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=ke.createEmptyModel(this.logService);let e=ot.as(Yt.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,n){let r=this.getConfigurationDefaultOverrides();for(let o of e){let s=r[o],a=n[o];s!==void 0?this._configurationModel.setValue(o,s):a?this._configurationModel.setValue(o,this.getDefaultValue(o,a)):this._configurationModel.removeValue(o)}}getDefaultValue(e,n){return zt(n.default)}},ud=class{constructor(){this.onDidChangeConfiguration=X.None;this.configurationModel=ke.createEmptyModel(new pc)}async initialize(){return this.configurationModel}},No=class extends T{constructor(e,n,r){super();this.defaultConfiguration=e;this.policyService=n;this.logService=r;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this._configurationModel=ke.createEmptyModel(this.logService),this.configurationRegistry=ot.as(Yt.Configuration)}get configurationModel(){return this._configurationModel}async initialize(){return this.logService.trace("PolicyConfiguration#initialize"),this.update(await this.updatePolicyDefinitions(this.defaultConfiguration.configurationModel.keys),!1),this.update(await this.updatePolicyDefinitions(Object.keys(this.configurationRegistry.getExcludedConfigurationProperties())),!1),this._register(this.policyService.onDidChange(e=>this.onDidChangePolicies(e))),this._register(this.defaultConfiguration.onDidChangeConfiguration(async({properties:e})=>this.update(await this.updatePolicyDefinitions(e),!0))),this._configurationModel}async updatePolicyDefinitions(e){this.logService.trace("PolicyConfiguration#updatePolicyDefinitions",e);let n={},r=[],o=this.configurationRegistry.getConfigurationProperties(),s=this.configurationRegistry.getExcludedConfigurationProperties();for(let a of e){let l=o[a]??s[a];if(!l){r.push(a);continue}if(l.policy){if(l.type!=="string"&&l.type!=="number"&&l.type!=="array"&&l.type!=="object"&&l.type!=="boolean"){this.logService.warn(`Policy ${l.policy.name} has unsupported type ${l.type}`);continue}let{value:c,restrictedValue:u}=l.policy;r.push(a),n[l.policy.name]={type:l.type==="number"?"number":l.type==="boolean"?"boolean":"string",value:c,restrictedValue:u}}}return ll(n)||await this.policyService.updatePolicyDefinitions(n),r}onDidChangePolicies(e){this.logService.trace("PolicyConfiguration#onDidChangePolicies",e);let n=this.configurationRegistry.getPolicyConfigurations(),r=Ei(e.map(o=>n.get(o)));this.update(r,!0)}update(e,n){this.logService.trace("PolicyConfiguration#update",e);let r=this.configurationRegistry.getConfigurationProperties(),o=this.configurationRegistry.getExcludedConfigurationProperties(),s=[],a=this._configurationModel.isEmpty();for(let l of e){let c=r[l]??o[l],u=c?.policy?.name;if(u){let d=this.policyService.getPolicyValue(u);if(Ee(d)&&c.type!=="string")try{d=this.parse(d)}catch(f){this.logService.error(`Error parsing policy value ${u}:`,il(f));continue}(a?d!==void 0:!Oe(this._configurationModel.getValue(l),d))&&s.push([l,d])}else this._configurationModel.getValue(l)!==void 0&&s.push([l,void 0])}if(s.length){this.logService.trace("PolicyConfiguration#changed",s);let l=this._configurationModel;this._configurationModel=ke.createEmptyModel(this.logService);for(let c of l.keys)this._configurationModel.setValue(c,l.getValue(c));for(let[c,u]of s)u===void 0?this._configurationModel.removeValue(c):this._configurationModel.setValue(c,u);n&&this._onDidChangeConfiguration.fire(this._configurationModel)}}parse(e){let n={},r=null,o=[],s=[],a=[];function l(u){if(Array.isArray(o))o.push(u);else if(r!==null){if(o[r]!==void 0)throw new Error(`Duplicate property found: ${r}`);o[r]=u}}if(e&&(ko(e,{onObjectBegin:()=>{let u={};l(u),s.push(o),o=u,r=null},onObjectProperty:u=>{r=u},onObjectEnd:()=>{o=s.pop()},onArrayBegin:()=>{let u=[];l(u),s.push(o),o=u,r=null},onArrayEnd:()=>{o=s.pop()},onLiteralValue:l,onError:(u,d,f)=>{a.push({error:u,offset:d,length:f})}}),n=o[0]||n),a.length>0)throw new Error(a.map(u=>il(u.error)).join(`
`));return n}};No=w([C(1,xS),C(2,M)],No);var pd=class extends T{constructor(e,n,r,o){super();this.settingsResource=e;this.logService=o;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this.defaultConfiguration=this._register(new dd(o)),this.policyConfiguration=r instanceof Mo?new ud:this._register(new No(this.defaultConfiguration,r,o)),this.userConfiguration=this._register(new ld(this.settingsResource,{},vt,n,o)),this.configuration=new Lo(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,ke.createEmptyModel(o),ke.createEmptyModel(o),ke.createEmptyModel(o),ke.createEmptyModel(o),new Re,ke.createEmptyModel(o),new Re,o),this.configurationEditing=new Tm(e,n,this),this.reloadConfigurationScheduler=this._register(new Sr(()=>this.reloadConfiguration(),50)),this._register(this.defaultConfiguration.onDidChangeConfiguration(({defaults:s,properties:a})=>this.onDidDefaultConfigurationChange(s,a))),this._register(this.policyConfiguration.onDidChangeConfiguration(s=>this.onDidPolicyConfigurationChange(s))),this._register(this.userConfiguration.onDidChange(()=>this.reloadConfigurationScheduler.schedule()))}async initialize(){let[e,n,r]=await Promise.all([this.defaultConfiguration.initialize(),this.policyConfiguration.initialize(),this.userConfiguration.loadConfiguration()]);this.configuration=new Lo(e,n,ke.createEmptyModel(this.logService),r,ke.createEmptyModel(this.logService),ke.createEmptyModel(this.logService),new Re,ke.createEmptyModel(this.logService),new Re,this.logService)}getConfigurationData(){return this.configuration.toData()}getValue(e,n){let r=typeof e=="string"?e:void 0,o=Yc(e)?e:Yc(n)?n:{};return this.configuration.getValue(r,o,void 0)}async updateValue(e,n,r,o,s){let a=mS(r)?r:Yc(r)?{resource:r.resource,overrideIdentifiers:r.overrideIdentifier?[r.overrideIdentifier]:void 0}:void 0,l=a?o:r;if(l!==void 0&&l!==3&&l!==2)throw new Error(`Unable to write ${e} to target ${l}.`);a?.overrideIdentifiers&&(a.overrideIdentifiers=Mn(a.overrideIdentifiers),a.overrideIdentifiers=a.overrideIdentifiers.length?a.overrideIdentifiers:void 0);let c=this.inspect(e,{resource:a?.resource,overrideIdentifier:a?.overrideIdentifiers?a.overrideIdentifiers[0]:void 0});if(c.policyValue!==void 0)throw new Error(`Unable to write ${e} because it is configured in system policy.`);if(Oe(n,c.defaultValue)&&(n=void 0),a?.overrideIdentifiers?.length&&a.overrideIdentifiers.length>1){let d=a.overrideIdentifiers.sort(),f=this.configuration.localUserConfiguration.overrides.find(g=>Zt([...g.identifiers].sort(),d));f&&(a.overrideIdentifiers=f.identifiers)}let u=a?.overrideIdentifiers?.length?[_S(a.overrideIdentifiers),e]:[e];await this.configurationEditing.write(u,n),await this.reloadConfiguration()}inspect(e,n={}){return this.configuration.inspect(e,n,void 0)}keys(){return this.configuration.keys(void 0)}async reloadConfiguration(){let e=await this.userConfiguration.loadConfiguration();this.onDidChangeUserConfiguration(e)}onDidChangeUserConfiguration(e){let n=this.configuration.toData(),r=this.configuration.compareAndUpdateLocalUserConfiguration(e);this.trigger(r,n,2)}onDidDefaultConfigurationChange(e,n){let r=this.configuration.toData(),o=this.configuration.compareAndUpdateDefaultConfiguration(e,n);this.trigger(o,r,7)}onDidPolicyConfigurationChange(e){let n=this.configuration.toData(),r=this.configuration.compareAndUpdatePolicyConfiguration(e);this.trigger(r,n,7)}trigger(e,n,r){let o=new cd(e,{data:n},this.configuration,void 0,this.logService);o.source=r,this._onDidChangeConfiguration.fire(o)}},Tm=class{constructor(t,e,n){this.settingsResource=t;this.fileService=e;this.configurationService=n;this.queue=new br}write(t,e){return this.queue.queue(()=>this.doWriteConfiguration(t,e))}async doWriteConfiguration(t,e){let n;try{n=(await this.fileService.readFile(this.settingsResource)).value.toString()}catch(s){if(s.fileOperationResult===1)n="{}";else throw s}let r=[];if(Qc(n,r,{allowTrailingComma:!0,allowEmptyContent:!0}),r.length>0)throw new Error("Unable to write into the settings file. Please open the file to correct errors/warnings in the file and try again.");let o=this.getEdits(n,t,e);n=pS(n,o),await this.fileService.writeFile(this.settingsResource,k.fromString(n))}getEdits(t,e,n){let{tabSize:r,insertSpaces:o,eol:s}=this.formattingOptions;if(!e.length){let a=JSON.stringify(n,null,o?" ".repeat(r):"	");return[{content:a,length:a.length,offset:0}]}return uS(t,e,n,{tabSize:r,insertSpaces:o,eol:s})}get formattingOptions(){if(!this._formattingOptions){let t=pt===3||pt===2?`
`:`\r
`,e=this.configurationService.getValue("files.eol",{overrideIdentifier:"jsonc"});e&&typeof e=="string"&&e!=="auto"&&(t=e),this._formattingOptions={eol:t,insertSpaces:!!this.configurationService.getValue("editor.insertSpaces",{overrideIdentifier:"jsonc"}),tabSize:this.configurationService.getValue("editor.tabSize",{overrideIdentifier:"jsonc"})}}return this._formattingOptions}};var dB=$("requestService"),ES="NO_FETCH_TELEMETRY";var y0=!1,xm=[],wS,RS;function v0(i=!0,t=!0){if(wS===i&&RS===t)return;wS=i,RS=t;let e=ot.as(Yt.Configuration),n=xm;xm=[{id:"http",order:15,title:m(2599,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:m(2614,null),restricted:!0}}},{id:"http",order:15,title:m(2599,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:m(2597,null),restricted:!0}}},{id:"http",order:15,title:m(2599,null),type:"object",scope:i?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:m(2602,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:m(2610,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:m(2604,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:m(2601,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:m(2603,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[m(2607,null),m(2608,null),m(2606,null),m(2609,null)],default:"override",markdownDescription:m(2605,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:m(2611,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:y0,markdownDescription:m(2612,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:m(2613,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:m(2598,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:m(2615,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:m(2600,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:xm,remove:n})}v0();var b0=!1,Rm=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var Em=class i{constructor(){this._isWebWorker=typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope";this._isRenderer=typeof document=="object";this._defineCalls=[];this._state=1}static{this.INSTANCE=new i}_initialize(){if(this._state===1){if(globalThis.define){this._state=3;return}}else return;this._state=2,globalThis.define=(t,e,n)=>{typeof t!="string"&&(n=e,e=t,t=null),(typeof e!="object"||!Array.isArray(e))&&(n=e,e=null),this._defineCalls.push(new Rm(t,e,n))},globalThis.define.amd=!0,this._isRenderer?this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??window.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){if(t.startsWith(window.location.origin)||t.startsWith(`${ie.vscodeFileResource}://${Mp}`))return t;throw new Error(`[trusted_script_src] Invalid script url: ${t}`)}}):this._isWebWorker&&(this._amdPolicy=globalThis._VSCODE_WEB_PACKAGE_TTP??globalThis.trustedTypes?.createPolicy("amdLoader",{createScriptURL(t){return t}}))}async load(t){if(this._initialize(),this._state===3)return new Promise(s=>{let a=j();globalThis.define(a,[t],function(l){s(l)})});let e=await(this._isWebWorker?this._workerLoadScript(t):this._isRenderer?this._rendererLoadScript(t):this._nodeJSLoadScript(t));if(!e){console.warn(`Did not receive a define call from script ${t}`);return}let n={},r=[],o=[];if(Array.isArray(e.dependencies))for(let s of e.dependencies)s==="exports"?r.push(n):o.push(s);if(o.length>0)throw new Error(`Cannot resolve dependencies for script ${t}. The dependencies are: ${o.join(", ")}`);return typeof e.callback=="function"?e.callback(...r)??n:e.callback}_rendererLoadScript(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("async","async"),r.setAttribute("type","text/javascript");let o=()=>{r.removeEventListener("load",s),r.removeEventListener("error",a)},s=l=>{o(),e(this._defineCalls.pop())},a=l=>{o(),n(l)};r.addEventListener("load",s),r.addEventListener("error",a),this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),r.setAttribute("src",t),window.document.getElementsByTagName("head")[0].appendChild(r)})}async _workerLoadScript(t){return this._amdPolicy&&(t=this._amdPolicy.createScriptURL(t)),await import(t),this._defineCalls.pop()}async _nodeJSLoadScript(t){try{let e=(await import("fs")).default,n=(await import("vm")).default,r=(await import("module")).default,o=y.parse(t).fsPath,s=e.readFileSync(o).toString(),a=r.wrap(s.replace(/^#!.*/,""));return new n.Script(a).runInThisContext().apply(),this._defineCalls.pop()}catch(e){throw e}}},wm=new Map;async function Pm(i,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${i}/${t}`:i;if(wm.has(n))return wm.get(n);let r;if(/^\w[\w\d+.-]*:\/\//.test(n))r=n;else{let l=`${b0&&e&&!Tt?dy:cy}/${n}`;r=tt.asBrowserUri(l).toString(!0)}let o=Em.INSTANCE.load(r);return wm.set(n,o),o}function S0(i){if(mp===2&&/^penguin(\.|$)/i.test(i))return"chromebook"}function PS(i,t,e,n,r,o,s,a,l,c,u){let d=Object.create(null);d["common.machineId"]=o,d["common.sqmId"]=s,d["common.devDeviceId"]=a,d.sessionID=j()+Date.now(),d.commitHash=n,d.version=r,d["common.releaseDate"]=c,d["common.platformVersion"]=(i||"").replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/,"$1$2$3"),d["common.platform"]=_h(mp),d["common.nodePlatform"]=Mi,d["common.nodeArch"]=e,d["common.product"]=u||"desktop",l&&(d["common.msftInternal"]=l);let f=0,g=Date.now();Object.defineProperties(d,{timestamp:{get:()=>new Date,enumerable:!0},"common.timesincesessionstart":{get:()=>Date.now()-g,enumerable:!0},"common.sequence":{get:()=>f++,enumerable:!0}}),Ch&&(d["common.snap"]="true");let h=S0(t);return h&&(d["common.platformDetail"]=h),d}function kS(i){let t=Ue.USERDNSDOMAIN;if(!t)return!1;let e=t.toLowerCase();return i.some(n=>e===n)}var Oa=class{constructor(t){this.value=t;this.isTrustedTelemetryValue=!0}},km=class{constructor(){this.telemetryLevel=0;this.sessionId="someValue.sessionId";this.machineId="someValue.machineId";this.sqmId="someValue.sqmId";this.devDeviceId="someValue.devDeviceId";this.firstSessionDate="someValue.firstSessionDate";this.sendErrorTelemetry=!1}publicLog(){}publicLog2(){}publicLogError(){}publicLogError2(){}setExperimentProperty(){}setCommonProperty(){}},fd=new km;var Am="telemetry",AS={id:Am,name:m(2639,null)};function DS(i,t){return!t.isBuilt&&!t.disableTelemetry?!0:!(t.disableTelemetry||!i.enableTelemetry)}function md(i,t){return t.extensionTestsLocationURI?!0:!(t.isBuilt||t.disableTelemetry||i.enableTelemetry&&i.aiConfig?.ariaKey)}function OS(i){let t=i.getValue(go),e=i.getValue(bc);if(i.getValue(ga)===!1||e===!1)return 0;switch(t??"all"){case"all":return 3;case"error":return 2;case"crash":return 1;case"off":return 0}}function gd(i){let t={},e={},n={};LS(i,n);for(let r in n){r=r.length>150?r.substr(r.length-149):r;let o=n[r];typeof o=="number"?e[r]=o:typeof o=="boolean"?e[r]=o?1:0:typeof o=="string"?(o.length>8192&&console.warn(`Telemetry property: ${r} has been trimmed to 8192, the original length is ${o.length}`),t[r]=o.substring(0,8191)):typeof o<"u"&&o!==null&&(t[r]=String(o))}return{properties:t,measurements:e}}function LS(i,t,e=0,n){if(!i||typeof i!="object"&&typeof i!="function")return;let r=i;for(let o of Object.getOwnPropertyNames(r)){let s=r[o],a=n?n+o:o;Array.isArray(s)?t[a]=Gp(s):s instanceof Date?t[a]=s.toISOString():Ae(s)?e<2?LS(s,t,e+1,a+"."):t[a]=Gp(s):t[a]=s}}function MS(i,t){let e=i.msftInternalDomains||[],n=t.getValue("telemetry.internalTesting");return kS(e)||n}function NS(i){return[i.appRoot,i.extensionsPath,i.userHome.fsPath,i.tmpDir.fsPath,i.userDataPath]}function I0(i,t){if(!i||!i.includes("/")&&!i.includes("\\"))return i;let e=i,n=[];for(let l of t)for(;;){let c=l.exec(i);if(!c)break;n.push([c.index,l.lastIndex])}let r=/(?:^|[\\\/])((node_modules|node_modules\.asar)[\\\/].*)$/,o=/^(.*?)((?:\.vscode(?:-[a-z]+)*|resources[\\\/]app)[\\\/]extensions[\\\/].*)$/i,s=/(file:\/\/)?([a-zA-Z]:(\\\\|\\|\/)|(\\\\|\\|\/))?([\w\-\._@]+(\\\\|\\|\/))+[\w\-\._@]*/g,a=0;for(e="";;){let l=s.exec(i);if(!l)break;if(!n.some(([u,d])=>l.index<d&&u<s.lastIndex)){let u=o.exec(l[0]);if(u)e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+u[2];else{let d=r.exec(l[0]);d?e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+d[1]:e+=i.substring(a,l.index)+"<REDACTED: user-file-path>"}a=s.lastIndex}}return a<i.length&&(e+=i.substr(a)),e}function _0(i){if(!i)return i;let t=[{label:"URL",regex:/[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s]*/},{label:"Google API Key",regex:/AIza[A-Za-z0-9_\\\-]{35}/},{label:"JWT",regex:/eyJ[0eXAiOiJKV1Qi|hbGci|a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+/},{label:"Slack Token",regex:/xox[pbar]\-[A-Za-z0-9]/},{label:"GitHub Token",regex:/(gh[psuro]_[a-zA-Z0-9]{36}|github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59})/},{label:"Generic Secret",regex:/(key|token|sig|secret|signature|password|passwd|pwd|android:value)[^a-zA-Z0-9]/i},{label:"CLI Credentials",regex:/((login|psexec|(certutil|psexec)\.exe).{1,50}(\s-u(ser(name)?)?\s+.{3,100})?\s-(admin|user|vm|root)?p(ass(word)?)?\s+["']?[^$\-\/\s]|(^|[\s\r\n\\])net(\.exe)?.{1,5}(user\s+|share\s+\/user:| user -? secrets ? set) \s + [^ $\s \/])/},{label:"Microsoft Entra ID",regex:/eyJ(?:0eXAiOiJKV1Qi|hbGci|[a-zA-Z0-9\-_]+\.[a-zA-Z0-9\-_]+\.)/},{label:"Email",regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/}];for(let e of t)if(e.regex.test(i))return`<REDACTED: ${e.label}>`;return i}function US(i,t){return i?qs(i,e=>{if(e instanceof Oa||Object.hasOwnProperty.call(e,"isTrustedTelemetryValue"))return e.value;if(typeof e=="string"){let n=e.replaceAll("%20"," ");n=I0(n,t);for(let r of t)n=n.replace(r,"");return n=_0(n),n}}):{}}var FS="https://mobile.events.data.microsoft.com/OneCollector/1.0",C0="https://mobile.events.data.microsoft.com/ping";async function T0(i,t,e){let n=Tt?await Pm("@microsoft/1ds-core-js","bundle/ms.core.min.js"):await import("@microsoft/1ds-core-js"),r=Tt?await Pm("@microsoft/1ds-post-js","bundle/ms.post.min.js"):await import("@microsoft/1ds-post-js"),o=new n.AppInsightsCore,s=new r.PostChannel,a={instrumentationKey:i,endpointUrl:FS,loggingLevelTelemetry:0,loggingLevelConsole:0,disableCookiesUsage:!0,disableDbgExt:!0,disableInstrumentationKeyValidation:!0,channels:[[s]]};if(e){a.extensionConfig={};let l={alwaysUseXhrOverride:!0,ignoreMc1Ms0CookieProcessing:!0,httpXHROverride:e};a.extensionConfig[s.identifier]=l}return o.initialize(a,[]),o.addTelemetryInitializer(l=>{l.ext=l.ext??{},l.ext.web=l.ext.web??{},l.ext.web.consentDetails='{"GPC_DataSharingOptIn":false}',t&&(l.ext.utc=l.ext.utc??{},l.ext.utc.flags=8462029)}),o}var hd=class{constructor(t,e,n,r,o){this._isInternalTelemetry=t;this._eventPrefix=e;this._defaultData=n;this._xhrOverride=o;this.endPointUrl=FS;this.endPointHealthUrl=C0;this._defaultData||(this._defaultData={}),typeof r=="function"?this._aiCoreOrKey=r():this._aiCoreOrKey=r,this._asyncAiCore=null}_withAIClient(t){if(this._aiCoreOrKey){if(typeof this._aiCoreOrKey!="string"){t(this._aiCoreOrKey);return}this._asyncAiCore||(this._asyncAiCore=T0(this._aiCoreOrKey,this._isInternalTelemetry,this._xhrOverride)),this._asyncAiCore.then(e=>{t(e)},e=>{Le(e),console.error(e)})}}log(t,e){if(!this._aiCoreOrKey)return;e=eo(e,this._defaultData);let n=gd(e),r=this._eventPrefix+"/"+t;try{this._withAIClient(o=>{o.pluginVersionString=n?.properties.version??"Unknown",o.track({name:r,baseData:{name:r,properties:n?.properties,measurements:n?.measurements}})})}catch{}}flush(){return this._aiCoreOrKey?new Promise(t=>{this._withAIClient(e=>{e.unload(!0,()=>{this._aiCoreOrKey=void 0,t(void 0)})})}):Promise.resolve(void 0)}};async function x0(i,t){let e=await t.request(i,$e.None),n=(await Ir(e.stream)).toString(),r=e.res.statusCode??200;return{headers:e.res.headers,statusCode:r,responseData:n}}async function w0(i){let t=await import("https"),e={method:i.type,headers:i.headers};return new Promise((r,o)=>{let s=t.request(i.url??"",e,a=>{a.on("data",function(l){r({headers:a.headers,statusCode:a.statusCode??200,responseData:l.toString()})}),a.on("error",function(l){o(l)})});s.write(i.data,a=>{a&&o(a)}),s.end()})}async function R0(i,t,e){let n=typeof t.data=="string"?t.data:new TextDecoder().decode(t.data),r={type:"POST",headers:{...t.headers,"Content-Type":"application/json","Content-Length":Buffer.byteLength(t.data).toString()},url:t.urlString,data:n,callSite:ES};try{let o=i?await x0(r,i):await w0(r);e(o.statusCode,o.headers,o.responseData)}catch{e(0,{})}}var yd=class extends hd{constructor(t,e,n,r,o){let s={sendPOST:(a,l)=>{R0(t,a,l)}};super(e,n,r,o,s)}};var Uo=class extends T{constructor(e,n,r,o,s){super();this.prefix=e;let a=n?"remoteTelemetry":Am,l=r.getLogger(a);if(l)this.logger=this._register(l);else{let u=md(s,o)?" (Not Sent)":"";this.logger=this._register(r.createLogger(a,{name:m(2619,null,u),group:AS,hidden:!0}))}}flush(){return Promise.resolve()}log(e,n){this.logger.trace(`${this.prefix}telemetry/${e}`,gd(n))}};Uo=w([C(2,kv),C(3,Ta),C(4,Et)],Uo);var aH={Extensions:{name:{key:"extensionsConfigurationTitle",value:m(138,null)}},IntegratedTerminal:{name:{key:"terminalIntegratedConfigurationTitle",value:m(141,null)}},InteractiveSession:{name:{key:"interactiveSessionConfigurationTitle",value:m(139,null)}},Telemetry:{name:{key:"telemetryConfigurationTitle",value:m(140,null)}},Update:{name:{key:"updateConfigurationTitle",value:m(142,null)}}};var ir=class{constructor(t,e,n){this._configurationService=e;this._productService=n;this._experimentProperties={};this._pendingEvents=[];this._isExperimentPropertySet=!1;this._disposables=new z;this._cleanupPatterns=[];this._appenders=t.appenders,this._commonProperties=t.commonProperties??Object.create(null),this.sessionId=this._commonProperties.sessionID,this.machineId=this._commonProperties["common.machineId"],this.sqmId=this._commonProperties["common.sqmId"],this.devDeviceId=this._commonProperties["common.devDeviceId"],this.firstSessionDate=this._commonProperties["common.firstSessionDate"],this.msftInternal=this._commonProperties["common.msftInternal"],this._piiPaths=t.piiPaths||[],this._telemetryLevel=3,this._sendErrorTelemetry=!!t.sendErrorTelemetry,this._meteredConnectionService=t.meteredConnectionService,this._cleanupPatterns=[/(vscode-)?file:\/\/.*?\/resources\/app\//gi];for(let r of this._piiPaths)this._cleanupPatterns.push(new RegExp(Mt(r),"gi")),r.indexOf("\\")>=0&&this._cleanupPatterns.push(new RegExp(Mt(r.replace(/\\/g,"/")),"gi"));this._updateTelemetryLevel(),this._disposables.add(this._configurationService.onDidChangeConfiguration(r=>{(r.affectsConfiguration(go)||r.affectsConfiguration(ga)||r.affectsConfiguration(bc))&&this._updateTelemetryLevel()})),t.waitForExperimentProperties?this._flushTimeout=setTimeout(()=>this._flushPendingEvents(),ir.BUFFER_FLUSH_TIMEOUT):this._isExperimentPropertySet=!0}static{this.IDLE_START_EVENT_NAME="UserIdleStart"}static{this.IDLE_STOP_EVENT_NAME="UserIdleStop"}static{this.BUFFER_FLUSH_TIMEOUT=1e4}static{this.MAX_BUFFER_SIZE=1e3}setExperimentProperty(t,e){this._experimentProperties[t]=new Oa(e),this._isExperimentPropertySet||this._flushPendingEvents()}setCommonProperty(t,e){this._commonProperties[t]=e}_flushPendingEvents(){if(!this._isExperimentPropertySet){this._isExperimentPropertySet=!0,this._flushTimeout!==void 0&&(clearTimeout(this._flushTimeout),this._flushTimeout=void 0);for(let t of this._pendingEvents)this._doLog(t.eventName,t.eventLevel,t.data);this._pendingEvents=[]}}_updateTelemetryLevel(){let t=OS(this._configurationService),e=this._productService.enabledTelemetryLevels;if(e){this._sendErrorTelemetry=this.sendErrorTelemetry?e.error:!1;let n=e.usage?3:e.error?2:0;t=Math.min(t,n)}this._telemetryLevel=t}get sendErrorTelemetry(){return this._sendErrorTelemetry}get telemetryLevel(){return this._telemetryLevel}dispose(){this._flushPendingEvents(),this._disposables.dispose()}_log(t,e,n){if(!(this._telemetryLevel<e)&&!this._meteredConnectionService?.isConnectionMetered){if(!this._isExperimentPropertySet){this._pendingEvents.length<ir.MAX_BUFFER_SIZE&&this._pendingEvents.push({eventName:t,eventLevel:e,data:n});return}this._doLog(t,e,n)}}_doLog(t,e,n){n=eo(n,this._experimentProperties),n=US(n,this._cleanupPatterns),n=eo(n,this._commonProperties),e===2&&(n={...n,isError:!0}),this._appenders.forEach(r=>r.log(t,n??{}))}publicLog(t,e){this._log(t,3,e)}publicLog2(t,e){this.publicLog(t,e)}publicLogError(t,e){this._sendErrorTelemetry&&this._log(t,2,e)}publicLogError2(t,e){this.publicLogError(t,e)}};ir=w([C(1,fS),C(2,Et)],ir);function E0(){let i=m(2636,null,At.nameLong),t=At.privacyStatementUrl?m(2622,null,"https://aka.ms/vscode-telemetry",At.privacyStatementUrl):m(2623,null,"https://aka.ms/vscode-telemetry"),e=Tt?"":m(2628,null),n=m(2621,null),r=m(2626,null),o=m(2637,null),s=m(2635,null),a=`
|       | ${n} | ${r} | ${o} |
|:------|:-------------:|:---------------:|:----------:|
| all   |       \u2713       |        \u2713        |     \u2713      |
| error |       \u2713       |        \u2713        |     -      |
| crash |       \u2713       |        -        |     -      |
| off   |       -       |        -        |     -      |
`,l=m(2631,null);return`
${i} ${t} ${e}

&nbsp;

${s}
${a}

&nbsp;

${l}
`}var P0=ot.as(Yt.Configuration);P0.registerConfiguration({id:ob,order:1,type:"object",title:m(2638,null),properties:{[go]:{type:"string",enum:["all","error","crash","off"],enumDescriptions:[m(2630,null),m(2632,null),m(2629,null),m(2633,null)],markdownDescription:E0(),default:"all",restricted:!0,scope:1,tags:["usesOnlineServices","telemetry"],policy:{name:"TelemetryLevel",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.telemetryLevel.policyDescription",value:m(2634,null)},enumDescriptions:[{key:"telemetry.telemetryLevel.default",value:m(2630,null)},{key:"telemetry.telemetryLevel.error",value:m(2632,null)},{key:"telemetry.telemetryLevel.crash",value:m(2629,null)},{key:"telemetry.telemetryLevel.off",value:m(2633,null)}]}}},"telemetry.feedback.enabled":{type:"boolean",default:!0,description:m(2627,null),policy:{name:"EnableFeedback",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.feedback.enabled",value:m(2627,null)}}}},[ga]:{type:"boolean",markdownDescription:At.privacyStatementUrl?m(2625,null,At.nameLong,At.privacyStatementUrl):m(2624,null,At.nameLong),default:!0,restricted:!0,markdownDeprecationMessage:m(2620,null,`\`#${go}#\``),scope:1,tags:["usesOnlineServices","telemetry"]}}});var vd=class extends T{constructor(e){super();this._delegate=e;this._telemetryLevel=3;Li(e)&&this._register(e)}get telemetryLevel(){return Math.min(this._delegate.telemetryLevel,this._telemetryLevel)}get sendErrorTelemetry(){return this.telemetryLevel>=2&&this._delegate.sendErrorTelemetry}get sessionId(){return this._delegate.sessionId}get machineId(){return this._delegate.machineId}get sqmId(){return this._delegate.sqmId}get devDeviceId(){return this._delegate.devDeviceId}get firstSessionDate(){return this._delegate.firstSessionDate}get msftInternal(){return this._delegate.msftInternal}publicLog(e,n){this.telemetryLevel<3||this._delegate.publicLog(e,n)}publicLogError(e,n){this.telemetryLevel<2||this._delegate.publicLogError(e,n)}publicLog2(e,n){this.telemetryLevel<3||this._delegate.publicLog2(e,n)}publicLogError2(e,n){this.telemetryLevel<2||this._delegate.publicLogError2(e,n)}setExperimentProperty(e,n){this._delegate.setExperimentProperty(e,n)}setCommonProperty(e,n){this._delegate.setCommonProperty(e,n)}updateTelemetryLevel(e){this._telemetryLevel=Math.min(this._telemetryLevel,e)}};function bd(i,t){let e=t?.[ya],n=db(e);!D0(i)||n===void 0||i.updateTelemetryLevel(n)}function D0(i){return typeof i.updateTelemetryLevel=="function"}async function WS(i){let{environmentService:t,productService:e,fileService:n,loggerService:r,logService:o,disposables:s}=i;if(i.disableTelemetry||!r||!DS(e,t))return s.add(new vd(fd));let a=s.add(new pd(ee(t.appSettingsHome,"settings.json"),n,new Mo,o));await a.initialize();let l=[s.add(new Uo("",!1,r,t,e))],c=MS(e,a);if(!md(e,t)&&e.aiConfig?.ariaKey){let h=new yd(void 0,c,"monacoworkbench",null,e.aiConfig.ariaKey);s.add(A(()=>{h.flush()})),l.push(h)}let[u,d,f]=await Promise.all([jc(h=>o.error(h)),aS(h=>o.error(h)),Kc(h=>o.error(h))]),g=new ir({appenders:l,sendErrorTelemetry:!0,commonProperties:PS(A0(),k0(),process.arch,e.commit,e.version,u,d,f,c,e.date),piiPaths:NS(t)},a,e);return s.add(new vd(g))}var Sd=class{constructor(t){this._telemetryService=t}userMessageSent(t,e,n,r,o){let s=o?.length??0,a=n?.activeClient;this._telemetryService.publicLog2("agentHost.userMessageSent",{provider:t,agentSessionId:q.id(e),source:r,isSubagentSession:vc(e),turnCount:n?.turns.length??0,...a?{activeClientId:a.clientId,activeClientToolCount:a.tools.length,activeClientCustomizationCount:a.customizations?.length??0}:{},attachmentCount:s})}};var Fo=class extends T{constructor(e,n,r,o,s,a,l){super();this._stateManager=e;this._options=n;this._logService=o;this._changesets=s;this._telemetryService=a;this._checkpointService=l;this._toolCallAgents=new Map;this._lastAgentInfos=[];this._subagentSessions=new Map;this._pendingSubagentSignals=new Map;this._telemetryReporter=new Sd(this._telemetryService),this._permissionManager=this._register(r.createInstance(Eo,this._stateManager)),this._register(xr(c=>{let u=this._options.agents.read(c);this._publishAgentInfos(u,c)})),this._register(this._stateManager.onDidEmitEnvelope(c=>{if(!c.origin&&c.action.type==="session/toolCallComplete"){let u=c.action;this._options.getAgent(c.channel)?.onClientToolCallComplete(y.parse(c.channel),u.toolCallId,u.result)}}))}_publishAgentInfos(e,n){let r=e.map(o=>{let s=o.getDescriptor(),a=o.getProtectedResources(),l=n?o.models.read(n):o.models.get(),c=o.getCustomizations?.();return{provider:s.provider,displayName:s.displayName,description:s.description,models:l.map(u=>({id:u.id,provider:u.provider,name:u.name,maxContextWindow:u.maxContextWindow,supportsVision:u.supportsVision,policyState:u.policyState,configSchema:u.configSchema,_meta:u._meta})),customizations:c?.length?[...c]:void 0,protectedResources:a.length>0?a:void 0}});Oe(this._lastAgentInfos,r)||(this._lastAgentInfos=r,this._stateManager.dispatchServerAction(je,{type:"root/agentsChanged",agents:r}))}async _publishSessionCustomizations(e,n){if(!e.getSessionCustomizations)return;let r=await e.getSessionCustomizations(y.parse(n));this._stateManager.dispatchServerAction(n,{type:"session/customizationsChanged",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 z;return n.add(e.onDidSessionProgress(r=>{this._handleAgentSignal(e,r)})),e.onDidCustomizationsChange&&n.add(e.onDidCustomizationsChange(()=>{this._publishAgentInfos(this._options.agents.get()),this._publishSessionCustomizationsForAgent(e)})),n}_handleAgentSignal(e,n){let r=n.session.toString();if(n.kind==="action"&&n.action.type==="session/toolCallStart"&&!n.parentToolCallId&&this._toolCallAgents.set(`${r}:${n.action.toolCallId}`,e.id),n.kind==="subagent_started"){this._handleSubagentStarted(r,n.toolCallId,n.agentName,n.agentDisplayName,n.agentDescription),this._drainPendingSubagentSignals(r,n.toolCallId);return}if(n.kind==="subagent_completed"){this.completeSubagentSession(r,n.toolCallId);return}if(n.kind==="steering_consumed"){this._stateManager.dispatchServerAction(r,{type:"session/pendingMessageRemoved",kind:"steering",id:n.id});return}let o=n.kind==="action"||n.kind==="pending_confirmation"?n.parentToolCallId:void 0;if(o){let a=`${r}:${o}`,l=this._subagentSessions.get(a);if(l){n.kind==="action"&&n.action.type==="session/toolCallStart"&&this._toolCallAgents.set(`${l}:${n.action.toolCallId}`,e.id);let u=this._stateManager.getActiveTurnId(l);u&&this._dispatchActionForSession(n,l,u,e);return}this._logService.trace(`[AgentSideEffects] Buffering ${this._describeSignal(n)} for pending subagent ${a}`);let c=this._pendingSubagentSignals.get(a);c||(c=[],this._pendingSubagentSignals.set(a,c)),c.push({signal:n,agent:e});return}if(n.kind==="pending_confirmation"){let a=this._findSubagentSessionForToolCall(r,n.state.toolCallId);if(a){let l=this._stateManager.getActiveTurnId(a);l&&this._handleToolReady(n,a,l,e);return}}let s=this._stateManager.getActiveTurnId(r);if(s){this._dispatchActionForSession(n,r,s,e);return}n.kind==="action"&&(this._stateManager.dispatchServerAction(r,n.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(De(s,{turnId:!0})&&s.turnId!==r&&(s={...s,turnId:r}),s.type==="session/toolCallComplete"){let a=`${n}:${s.toolCallId}`;if(this._subagentSessions.get(a)){let c=this._stateManager.getSessionState(n),d=this._getRunningToolCallContent(c,r,s.toolCallId).find(f=>De(f,{type:!0})&&f.type==="subagent");if(d){let f=[...s.result.content??[],d];s={...s,result:{...s.result,content:f}}}}}this._stateManager.dispatchServerAction(n,s),s.type==="session/toolCallComplete"&&(this._pendingSubagentSignals.delete(`${n}:${s.toolCallId}`),Zv(s.result).length>0&&this._changesets.onToolCallEditsApplied(n,r)),s.type==="session/turnComplete"&&this._runTurnCompleteSideEffects(n,r)}_runTurnCompleteSideEffects(e,n){n!==void 0?this._checkpointService.captureTurnCheckpoint(y.parse(e),n).then(()=>{this._changesets.onTurnComplete(e,n)},r=>{this._logService.warn(`[AgentSideEffects] Turn checkpoint capture failed for ${e}/${n}: ${r instanceof Error?r.message:String(r)}`),this._changesets.onTurnComplete(e,n)}):this._changesets.onTurnComplete(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=mo(e,n),l=`${e}:${n}`;if(this._subagentSessions.has(l))return;this._logService.info(`[AgentSideEffects] Creating subagent session: ${a} (parent=${e}, toolCallId=${n})`);let c=this._stateManager.getSessionState(e);this._stateManager.restoreSession({resource:a,provider:"subagent",title:o,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...c?.summary.project?{project:c.summary.project}:{}},[]);let u=j();this._stateManager.dispatchServerAction(a,{type:"session/turnStarted",turnId:u,userMessage:{text:""}}),this._subagentSessions.set(l,a);let d=this._stateManager.getActiveTurnId(e);if(d){let f=this._stateManager.getSessionState(e),h=[...this._getRunningToolCallContent(f,d,n),{type:"subagent",resource:a,title:o,agentName:r,description:s}];this._stateManager.dispatchServerAction(e,{type:"session/toolCallContentChanged",turnId:d,toolCallId:n,content:h})}}_getRunningToolCallContent(e,n,r){if(!e?.activeTurn||e.activeTurn.id!==n)return[];for(let o of e.activeTurn.responseParts)if(o.kind==="toolCall"&&o.toolCall.toolCallId===r&&o.toolCall.status==="running")return o.toolCall.content?[...o.toolCall.content]:[];return[]}cancelSubagentSessions(e){for(let[n,r]of this._subagentSessions)if(n.startsWith(`${e}:`)){let o=this._stateManager.getActiveTurnId(r);o&&this._stateManager.dispatchServerAction(r,{type:"session/turnCancelled",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(o,{type:"session/turnComplete",turnId:s}),this._subagentSessions.delete(r)}removeSubagentSessions(e){let n=[];for(let[o,s]of this._subagentSessions)o.startsWith(`${e}:`)&&(this._stateManager.disposeSessionChangesets(s),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.disposeSessionChangesets(o),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}}):l.state.confirmationTitle&&this._toolCallAgents.set(`${n}:${e.state.toolCallId}`,o.id),this._stateManager.dispatchServerAction(n,this._permissionManager.createToolReadyAction(l,n,r))}handleAction(e,n){switch(n.type){case"session/turnStarted":{let r=this._stateManager.getSessionState(e),o=n.userMessage.text.trim().replace(/\s+/g," ").slice(0,200);r&&r.turns.length===0&&!r.summary.title&&o.length>0&&this._stateManager.dispatchServerAction(e,{type:"session/titleChanged",title:o});let s=this._options.getAgent(e);if(!s){this._stateManager.dispatchServerAction(e,{type:"session/error",turnId:n.turnId,error:{errorType:"noAgent",message:"No agent found for session"}});return}let a=n.userMessage.attachments;this._telemetryReporter.userMessageSent(s.id,e,r,"direct",a),s.sendMessage(y.parse(e),n.userMessage.text,a,n.turnId).catch(l=>{let c=l?.code;this._logService.error(`[AgentSideEffects] sendMessage failed for session=${e}: code=${c}, message=${l instanceof Error?l.message:String(l)}, type=${l?.constructor?.name}`,l),this._stateManager.dispatchServerAction(e,{type:"session/error",turnId:n.turnId,error:{errorType:"sendFailed",message:String(l)}})});break}case"session/toolCallConfirmed":{let r=`${e}:${n.toolCallId}`,o=this._toolCallAgents.get(r);o?(this._toolCallAgents.delete(r),this._options.agents.get().find(a=>a.id===o)?.respondToPermissionRequest(n.toolCallId,n.approved)):this._logService.warn(`[AgentSideEffects] No agent for tool call confirmation: ${n.toolCallId}`),n.approved&&this._permissionManager.handleToolCallConfirmed(e,n.toolCallId,n.selectedOptionId);break}case"session/inputCompleted":{this._options.getAgent(e)?.respondToUserInputRequest(n.requestId,n.response,n.answers);break}case"session/turnCancelled":{this.cancelSubagentSessions(e),this._options.getAgent(e)?.abortSession(y.parse(e)).catch(o=>{this._logService.error("[AgentSideEffects] abortSession failed",o)});break}case"session/modelChanged":{this._options.getAgent(e)?.changeModel?.(y.parse(e),n.model).catch(o=>{this._logService.error("[AgentSideEffects] changeModel failed",o)});break}case"session/agentChanged":{this._options.getAgent(e)?.changeAgent?.(y.parse(e),n.agent).catch(o=>{this._logService.error("[AgentSideEffects] changeAgent failed",o)});break}case"session/titleChanged":{this._persistSessionFlag(e,"customTitle",n.title);break}case"session/pendingMessageSet":case"session/pendingMessageRemoved":case"session/queuedMessagesReordered":{this._syncPendingMessages(e);break}case"session/truncated":{this._options.getAgent(e)?.truncateSession?.(y.parse(e),n.turnId).catch(o=>{this._logService.error("[AgentSideEffects] truncateSession failed",o)}),this._changesets.onSessionTruncated(e);break}case"session/activeClientChanged":{let r=this._options.getAgent(e);if(!r)break;let o=n.activeClient?.clientId??"";r.setClientTools(y.parse(e),o,n.activeClient?.tools??[]);let s=n.activeClient?.customizations??[];r.setClientCustomizations(y.parse(e),o,s).catch(a=>{this._logService.error("[AgentSideEffects] setClientCustomizations failed",a)});break}case"root/configChanged":{bd(this._telemetryService,n.config),this._publishAgentInfos(this._options.agents.get()),this._publishAllSessionCustomizations();break}case"session/activeClientToolsChanged":{let r=this._options.getAgent(e);if(r){let s=this._stateManager.getSessionState(e)?.activeClient?.clientId;s&&r.setClientTools(y.parse(e),s,n.tools)}break}case"session/customizationToggled":{this._options.getAgent(e)?.setCustomizationEnabled?.(n.uri,n.enabled);break}case"session/isReadChanged":{this._persistSessionFlag(e,"isRead",n.isRead?"true":"");break}case"session/isArchivedChanged":{this._persistSessionFlag(e,"isArchived",n.isArchived?"true":""),this._options.getAgent(e)?.onArchivedChanged?.(y.parse(e),n.isArchived).catch(o=>{this._logService.warn(`[AgentSideEffects] onArchivedChanged failed for ${e}`,o)});break}case"session/configChanged":{let o=this._stateManager.getSessionState(e)?.config?.values;o&&this._persistSessionFlag(e,"configValues",JSON.stringify(o));break}case"session/toolCallComplete":{this._options.getAgent(e)?.onClientToolCallComplete(y.parse(e),n.toolCallId,n.result);break}}}_persistSessionFlag(e,n,r){let o=this._options.sessionDataService.openDatabase(y.parse(e));o.object.setMetadata(n,r).catch(s=>{this._logService.warn(`[AgentSideEffects] Failed to persist ${n}`,s)}).finally(()=>{o.dispose()})}_syncPendingMessages(e){let n=this._stateManager.getSessionState(e);if(!n)return;this._options.getAgent(e)?.setPendingMessages?.(y.parse(e),n.steeringMessage,[]),this._tryConsumeNextQueuedMessage(e)}_tryConsumeNextQueuedMessage(e){if(this._stateManager.getActiveTurnId(e))return;let n=this._stateManager.getSessionState(e);if(!n?.queuedMessages?.length)return;let r=n.queuedMessages[0],o=j();this._stateManager.dispatchServerAction(e,{type:"session/turnStarted",turnId:o,userMessage:r.userMessage,queuedMessageId:r.id});let s=this._options.getAgent(e);if(!s){this._stateManager.dispatchServerAction(e,{type:"session/error",turnId:o,error:{errorType:"noAgent",message:"No agent found for session"}});return}let a=r.userMessage.attachments;this._telemetryReporter.userMessageSent(s.id,e,this._stateManager.getSessionState(e),"queued",a),s.sendMessage(y.parse(e),r.userMessage.text,a,o).catch(l=>{this._logService.error("[AgentSideEffects] sendMessage failed (queued)",l),this._stateManager.dispatchServerAction(e,{type:"session/error",turnId:o,error:{errorType:"sendFailed",message:String(l)}})})}dispose(){this._toolCallAgents.clear(),super.dispose()}};Fo=w([C(2,Ve),C(3,M),C(4,Vc),C(5,Pr),C(6,Tn)],Fo);var Dm={[wa]:!0,[Ra]:!0,[Ea]:!0},Id=class extends T{constructor(e,n,r){super();this._stateManager=e;this._changesets=n;this._configurationService=r;this._pendingUncommittedRefreshes=new Set;this._subscribedTurns=new Map;this._changesets.setTurnSubscriberProbe((o,s)=>this.hasTurnSubscribers(o,s))}hasTurnSubscribers(e,n){return this._subscribedTurns.get(e)?.has(n)??!1}onSessionCreated(e){this._changesets.registerStaticChangesets(e)}onSessionRestored(e,n){this._changesets.registerStaticChangesets(e),this._changesets.restorePersistedStaticChangesets(e,{uncommittedRaw:n[wa],sessionRaw:n[Ra],legacyRaw:n[Ea]}),this._drainPendingRefresh(e)}onSessionMaterialized(e){this._drainPendingRefresh(e)}onSessionDisposed(e){this._pendingUncommittedRefreshes.delete(e),this._subscribedTurns.delete(e)}onFirstSubscriber(e){let n=e.toString(),r=In(n);if(r?.kind==="uncommitted"){this._triggerUncommittedRefresh(r.sessionUri);return}if(r?.kind==="session"){this._changesets.refreshSessionChangeset(r.sessionUri);return}if(r?.kind==="turn"&&r.turnId!==void 0){let o=this._subscribedTurns.get(r.sessionUri);o||(o=new Set,this._subscribedTurns.set(r.sessionUri,o)),o.add(r.turnId);return}!r&&this._stateManager.getSessionState(n)&&(this._triggerUncommittedRefresh(n),this._changesets.refreshSessionChangeset(n))}onLastSubscriber(e){let n=In(e.toString());if(n?.kind==="uncommitted"){this._pendingUncommittedRefreshes.delete(n.sessionUri);return}if(n?.kind==="turn"&&n.turnId!==void 0){let r=this._subscribedTurns.get(n.sessionUri);r&&(r.delete(n.turnId),r.size===0&&this._subscribedTurns.delete(n.sessionUri))}}async restoreSessionIfChangesetSubscription(e,n){let r=e.toString(),o=In(r);if(o){if(o.kind==="unknown")throw new Error(`Cannot subscribe to unknown changeset resource: ${r}`);this._stateManager.getSessionState(o.sessionUri)||await n(y.parse(o.sessionUri))}}async tryHandleSubscribe(e,n){let r=e.toString(),o=In(r);if(!o)return!1;if(o.kind==="unknown")throw new Error(`Cannot subscribe to unknown changeset resource: ${r}`);return await this.restoreSessionIfChangesetSubscription(e,n),o.kind==="turn"&&o.turnId?await this._changesets.computeTurnChangeset(o.sessionUri,o.turnId):o.kind==="compare"&&o.originalTurnId&&o.modifiedTurnId?await this._changesets.computeCompareTurnsChangeset(o.sessionUri,o.originalTurnId,o.modifiedTurnId):this._changesets.registerStaticChangesets(o.sessionUri),!0}getListMetadataKeys(e){if(!(this._readyLiveCatalogueExists(e)||this._stateManager.getSessionState(e)?.summary.changesets))return Dm}decorateListEntry(e,n){let r=e.session.toString(),o=this._stateManager.getSessionState(r),s=this._stateManager.getChangesetState(Sn(r)),a=this._stateManager.getChangesetState(sn(r)),l=s?.status==="ready"||a?.status==="ready";if(!o&&l){let g=jb(r,s,a);return g?{...e,changesets:g}:e}let c=n[wa],u=n[Ra],d=n[Ea];if(c===void 0&&u===void 0&&d===void 0)return e;let f=this._changesets.parsePersistedStaticChangesets(r,{uncommittedRaw:c,sessionRaw:u,legacyRaw:d});if(!o){let g=Kb(r,f.uncommitted,f.session);if(g)return{...e,changesets:g}}return e}_readyLiveCatalogueExists(e){return this._stateManager.getChangesetState(Sn(e))?.status==="ready"?!0:this._stateManager.getChangesetState(sn(e))?.status==="ready"}_triggerUncommittedRefresh(e){if(!this._configurationService.getEffectiveWorkingDirectory(e)){this._pendingUncommittedRefreshes.add(e);return}this._changesets.refreshUncommittedChangeset(e)}_drainPendingRefresh(e){this._pendingUncommittedRefreshes.delete(e)&&this._triggerUncommittedRefresh(e)}};var _d=$("agentHostCompletions");var Wo=class extends T{constructor(e){super();this._logService=e;this._providers=new Set}get triggerCharacters(){let e=new Set;for(let n of this._providers)if(n.triggerCharacters)for(let r of n.triggerCharacters)e.add(r);return[...e]}registerProvider(e){return this._providers.add(e),A(()=>this._providers.delete(e))}async completions(e,n=$e.None){let r=[...this._providers].filter(a=>a.kinds.has(e.kind));if(r.length===0)return{items:[]};let o=await Promise.allSettled(r.map(a=>a.provideCompletionItems(e,n))),s=[];for(let a=0;a<o.length;a++){let l=o[a];l.status==="fulfilled"?s.push(...l.value):this._logService.error(l.reason,`[AgentHostCompletions] Provider failed for kind=${e.kind}`)}return{items:s}}};Wo=w([C(0,M)],Wo);var O0=60,L0=O0*60,Om=L0*24,Mq=Om*7,Nq=Om*30,Uq=Om*365;function $S(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 Cd={DateTimeFormat(i,t){return new we(()=>{try{return new Intl.DateTimeFormat(i,t)}catch{return new Intl.DateTimeFormat(void 0,t)}})},Collator(i,t){return new we(()=>{try{return new Intl.Collator(i,t)}catch{return new Intl.Collator(void 0,t)}})},Segmenter(i,t){return new we(()=>{try{return new Intl.Segmenter(i,t)}catch{return new Intl.Segmenter(void 0,t)}})},Locale(i,t){return new we(()=>{try{return new Intl.Locale(i,t)}catch{return new Intl.Locale(gr,t)}})},NumberFormat(i,t){return new we(()=>{try{return new Intl.NumberFormat(i,t)}catch{return new Intl.NumberFormat(void 0,t)}})}};var VS=new we(()=>{let i=Cd.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:i,collatorIsNumeric:i.resolvedOptions().numeric}}),Bq=new we(()=>({collator:Cd.Collator(void 0,{numeric:!0}).value})),Hq=new we(()=>({collator:Cd.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function M0(i,t,e=!1){let n=i||"",r=t||"",o=VS.value.collator.compare(n,r);return VS.value.collatorIsNumeric&&o===0&&n!==r?n<r?-1:1:o}function Td(i,t,e){let n=i.toLowerCase(),r=t.toLowerCase(),o=N0(i,t,e);if(o)return o;let s=n.endsWith(e),a=r.endsWith(e);if(s!==a)return s?-1:1;let l=M0(n,r);return l!==0?l:n.localeCompare(r)}function N0(i,t,e){let n=i.toLowerCase(),r=t.toLowerCase(),o=n.startsWith(e),s=r.startsWith(e);if(o!==s)return o?-1:1;if(o&&s){if(n.length<r.length)return-1;if(n.length>r.length)return 1}return 0}var zq=new Uint32Array(10);var jq=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),Kq=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),Gq=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]),Jq=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 HS(...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 iz=qS.bind(void 0,!1),wd=qS.bind(void 0,!0);function qS(i,t,e){if(!e||e.length<t.length)return null;let n;return i?n=hr(e,t):n=e.indexOf(t)===0,n?t.length>0?[{start:0,end:t.length}]:[]:null}function U0(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 F0(i,t){return i.length>t.length?null:Lm(i.toLowerCase(),t.toLowerCase(),0,0)}function Lm(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=Lm(i,t,e+1,n+1))?jS({start:n,end:n+1},r):null}return Lm(i,t,e,n+1)}function Nm(i){return 97<=i&&i<=122}function $o(i){return 65<=i&&i<=90}function Um(i){return 48<=i&&i<=57}function W0(i){return i===32||i===9||i===10||i===13}var $0=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>$0.add(i.charCodeAt(0)));function zS(i){return Nm(i)||$o(i)||Um(i)}function jS(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function KS(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if($o(n)||Um(n)||e>0&&!zS(i.charCodeAt(e-1)))return e}return i.length}function Mm(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=Mm(i,t,e+1,n+1);!r&&(o=KS(t,o))<t.length;)r=Mm(i,t,e+1,o),o++;return r===null?null:jS({start:n,end:n+1},r)}}function V0(i){let t=0,e=0,n=0,r=0,o=0;for(let u=0;u<i.length;u++)o=i.charCodeAt(u),$o(o)&&t++,Nm(o)&&e++,zS(o)&&n++,Um(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 B0(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function H0(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:r}=i;return e>.2&&t<.8&&n>.6&&r<.2}function q0(i){let t=0,e=0,n=0,r=0;for(let o=0;o<i.length;o++)n=i.charCodeAt(o),$o(n)&&t++,Nm(n)&&e++,W0(n)&&r++;return(t===0||e===0)&&r===0?i.length<=30:t<=5}function GS(i,t){if(!t||(t=t.trim(),t.length===0)||!q0(i))return null;t.length>60&&(t=t.substring(0,60));let e=V0(t);if(!H0(e)){if(!B0(e))return null;t=t.toLowerCase()}let n=null,r=0;for(i=i.toLowerCase();r<t.length&&(n=Mm(i,t,0,r))===null;)r=KS(t,r+1);return n}var oz=HS(wd,GS,U0),sz=HS(wd,GS,F0),az=new pn(1e4);var xd=128;function Fm(){let i=[],t=[];for(let e=0;e<=xd;e++)t[e]=0;for(let e=0;e<=xd;e++)i.push(t.slice(0));return i}function JS(i){let t=[];for(let e=0;e<=i;e++)t[e]=0;return t}var lz=JS(2*xd),cz=JS(2*xd),dz=Fm(),uz=Fm(),pz=Fm();var z0;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(z0||={});var BS=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var Ed=0,QS=[Ed,[]];function YS(i,t,e,n){if(!i||!t)return QS;let r=i.length,o=t.length;if(r<o)return QS;let s=i.toLowerCase();return j0(t,e,o,i,s,r,n)}function j0(i,t,e,n,r,o,s){let a=[],l=[];for(let f=0;f<e;f++){let g=f*o,h=g-o,v=f>0,S=i[f],_=t[f];for(let b=0;b<o;b++){let I=b>0,R=g+b,P=R-1,J=h+b-1,E=I?a[P]:0,L=v&&I?a[J]:0,O=v&&I?l[J]:0,K;!L&&v?K=0:K=K0(S,_,n,r,b,O),K&&L+K>=E&&(s||v||r.startsWith(t,b))?(l[R]=O+1,a[R]=L+K):(l[R]=Ed,a[R]=E)}}let c=[],u=e-1,d=o-1;for(;u>=0&&d>=0;){let f=u*o+d;l[f]===Ed||(c.push(d),u--),d--}return[a[e*o-1],c.reverse()]}function K0(i,t,e,n,r,o){let s=0;if(!G0(t,n[r]))return s;if(s+=1,o>0&&(s+=Math.min(o,3)*6+Math.max(0,o-3)*3),i===e[r]&&(s+=1),r===0)s+=8;else{let a=J0(e.charCodeAt(r-1));a?s+=a:$o(e.charCodeAt(r))&&o===0&&(s+=2)}return s}function G0(i,t){return i===t?!0:i==="/"||i==="\\"?t==="/"||t==="\\":!1}function J0(i){switch(i){case 47:case 92:return 5;case 95:case 45:case 46:case 32:case 39:case 34:case 58:return 4;default:return 0}}var Pd=Object.freeze({score:0}),Rd=1<<18,Wm=1<<17,$m=65536;function Q0(i,t,e,n){let r=n.values?n.values:[n];return Wt({[n.normalized]:{values:r.map(s=>({value:s.normalized,expectContiguousMatch:s.expectContiguousMatch})),label:i,description:t,allowNonContiguousMatches:e}})}function kd(i,t,e,n,r){if(!i||!t.normalized)return Pd;let o=n.getItemLabel(i);if(!o)return Pd;let s=n.getItemDescription(i),a=Q0(o,s,e,t),l=r[a];if(l)return l;let c=Y0(o,s,n.getItemPath(i),t,e);return r[a]=c,c}function Y0(i,t,e,n,r){let o=!e||!n.containsPathSeparator;return e&&(he?n.pathNormalized===e:Bn(n.pathNormalized,e))?{score:Rd,labelMatch:[{start:0,end:i.length}],descriptionMatch:t?[{start:0,end:t.length}]:void 0}:n.values&&n.values.length>1?X0(i,t,e,n.values,o,r):rI(i,t,e,n,o,r)}function X0(i,t,e,n,r,o){let s=0,a=[],l=[];for(let c of n){let{score:u,labelMatch:d,descriptionMatch:f}=rI(i,t,e,c,r,o);if(u===Ed)return Pd;s+=u,d&&a.push(...d),f&&l.push(...f)}return{score:s,labelMatch:ZS(a),descriptionMatch:ZS(l)}}function rI(i,t,e,n,r,o){if(r||!t){let[s,a]=YS(i,n.normalized,n.normalizedLowercase,o&&!n.expectContiguousMatch);if(s){let l=wd(n.normalized,i),c;if(l){c=Wm;let u=Math.round(n.normalized.length/i.length*100);c+=u}else c=$m;return{score:c+s,labelMatch:l||XS(a)}}}if(t){let s=t;e&&(s=`${t}${Se}`);let a=s.length,l=`${s}${i}`,[c,u]=YS(l,n.normalized,n.normalizedLowercase,o&&!n.expectContiguousMatch);if(c){let d=XS(u),f=[],g=[];return d.forEach(h=>{h.start<a&&h.end>a?(f.push({start:0,end:h.end-a}),g.push({start:h.start,end:a})):h.start>=a?f.push({start:h.start-a,end:h.end-a}):g.push(h)}),{score:c,labelMatch:f,descriptionMatch:g}}}return Pd}function XS(i){let t=[];if(!i)return t;let e;for(let n of i)e&&e.end===n?e.end+=1:(e={start:n,end:n+1},t.push(e));return t}function ZS(i){let t=i.sort((r,o)=>r.start-o.start),e=[],n;for(let r of t)!n||!Z0(n,r)?(n=r,e.push(r)):(n.start=Math.min(n.start,r.start),n.end=Math.max(n.end,r.end));return e}function Z0(i,t){return!(i.end<t.start||t.end<i.start)}function iI(i,t,e,n,r,o){let s=kd(i,e,n,r,o),a=kd(t,e,n,r,o),l=s.score,c=a.score;if((l===Rd||c===Rd)&&l!==c)return l===Rd?-1:1;if(l>$m||c>$m){if(l!==c)return l>c?-1:1;if(l<Wm&&c<Wm){let S=eR(s.labelMatch,a.labelMatch);if(S!==0)return S}let h=r.getItemLabel(i)||"",v=r.getItemLabel(t)||"";if(h.length!==v.length)return h.length-v.length}if(l!==c)return l>c?-1:1;let u=Array.isArray(s.labelMatch)&&s.labelMatch.length>0,d=Array.isArray(a.labelMatch)&&a.labelMatch.length>0;if(u&&!d)return-1;if(d&&!u)return 1;let f=eI(i,s,r),g=eI(t,a,r);return f&&g&&f!==g?g>f?-1:1:tR(i,t,e,r)}function eI(i,t,e){let n=-1,r=-1;if(t.descriptionMatch?.length?n=t.descriptionMatch[0].start:t.labelMatch?.length&&(n=t.labelMatch[0].start),t.labelMatch?.length){if(r=t.labelMatch[t.labelMatch.length-1].end,t.descriptionMatch?.length){let o=e.getItemDescription(i);o&&(r+=o.length)}}else t.descriptionMatch?.length&&(r=t.descriptionMatch[t.descriptionMatch.length-1].end);return r-n}function eR(i,t){if(!i&&!t||!i?.length&&!t?.length)return 0;if(!t?.length)return-1;if(!i?.length)return 1;let e=i[0].start,r=i[i.length-1].end-e,o=t[0].start,a=t[t.length-1].end-o;return r===a?0:a<r?1:-1}function tR(i,t,e,n){let r=n.getItemLabel(i)||"",o=n.getItemLabel(t)||"",s=n.getItemDescription(i),a=n.getItemDescription(t),l=r.length+(s?s.length:0),c=o.length+(a?a.length:0);if(l!==c)return l-c;let u=n.getItemPath(i),d=n.getItemPath(t);return u&&d&&u.length!==d.length?u.length-d.length:r!==o?Td(r,o,e.normalized):s&&a&&s!==a?Td(s,a,e.normalized):u&&d&&u!==d?Td(u,d,e.normalized):0}function tI(i){return i.startsWith('"')&&i.endsWith('"')}var nR=" ";function oI(i){typeof i!="string"&&(i="");let t=i.toLowerCase(),{pathNormalized:e,normalized:n,normalizedLowercase:r}=nI(i),o=e.indexOf(Se)>=0,s=tI(i),a,l=i.split(nR);if(l.length>1)for(let c of l){let u=tI(c),{pathNormalized:d,normalized:f,normalizedLowercase:g}=nI(c);f&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:d,normalized:f,normalizedLowercase:g,expectContiguousMatch:u}))}return{original:i,originalLowercase:t,pathNormalized:e,normalized:n,normalizedLowercase:r,values:a,containsPathSeparator:o,expectContiguousMatch:s}}function nI(i){let t;H?t=i.replace(/\//g,Se):t=i.replace(/\\/g,Se);let e=t.replace(/[\*\u2026\s"]/g,"").replace(/(?<=.)#$/,"");return{pathNormalized:t,normalized:e,normalizedLowercase:e.toLowerCase()}}var sI=50;function rR(i,t){if(!(t<0||t>i.length))for(let e=t-1;e>=0;e--){let n=i.charCodeAt(e);if(n===32||n===9||n===10||n===13)return;if(i[e]==="@"){if(e>0){let r=i.charCodeAt(e-1);if(!(r===32||r===9||r===10||r===13))return}return{token:i.slice(e+1,t),rangeStart:e,rangeEnd:t}}}}var Vm=class{constructor(t){this._workingDirectory=t}getItemLabel(t){return _e(t)}getItemDescription(t){let e=Wp(this._workingDirectory,t);if(!e)return;let n=e.lastIndexOf("/");return n>0?e.slice(0,n):void 0}getItemPath(t){return Wp(this._workingDirectory,t)??t.fsPath}},Ad=class{constructor(t,e){this._stateManager=t;this._workspaceFiles=e;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["@"]}async provideCompletionItems(t,e){let n=this._stateManager.getSessionState(t.channel)?.summary.workingDirectory;if(!n)return[];let r=y.parse(n);if(r.scheme!==ie.file)return[];let o=rR(t.text,t.offset);if(!o)return[];let s;try{s=await this._workspaceFiles.getFiles(r,e)}catch(d){if(Kr(d))return[];throw d}if(e.isCancellationRequested||s.length===0)return[];let a=new Vm(r),l=oI(o.token),c=Object.create(null),u;if(!l.normalized)u=s.slice(0,sI);else{let d=s.filter(f=>kd(f,l,!0,a,c).score>0);d.sort((f,g)=>iI(f,g,l,!0,a,c)),u=d.slice(0,sI)}return u.map(d=>{let f=_e(d);return{insertText:"@"+f,rangeStart:o.rangeStart,rangeEnd:o.rangeEnd,attachment:{type:"resource",uri:d.toString(),label:f,displayKind:"document"}}})}};function iR(i,t=[],e={}){let r=new Dd(i).scan();return new Od(r,i,t,e).parse()}function Vo(i,t=[],e={}){let n=new Dd(i).scan();if(n.length===0||n[0].type!==11)return new La(void 0,i);if(!n.slice(1).some(l=>l.type===11))return new La(void 0,i);let o=new Od(n,i,t,e).parse(),s=n[n.length-1],a=s.type===13?i.substring(s.startOffset):"";return new La(o,a)}var La=class{constructor(t,e){this.header=t;this.body=e}getStringValue(t){if(this.header&&this.header.type==="map"){let e=this.header.properties.find(n=>n.key.value===t);if(e&&e.value.type==="scalar")return e.value.value}}getStringArrayValue(t){if(this.header&&this.header.type==="map"){let e=this.header.properties.find(n=>n.key.value===t);if(e&&e.value.type==="sequence")return e.value.items.filter(n=>n.type==="scalar").map(n=>n.value);if(e&&e.value.type==="scalar"&&e.value.format==="none")return oR(e.value.value,0).map(n=>n.value)}}};function oR(i,t=0){let e=iR(`[${i}]`),n=t-1,r=[];if(e&&e.type==="sequence")for(let o of e.items)o.type==="scalar"&&r.push({...o,startOffset:o.startOffset+n,endOffset:o.endOffset+n});else r.push({type:"scalar",value:i,rawValue:i,startOffset:t,endOffset:i.length+t,format:"none"});return r}function He(i,t,e,n){return{type:i,startOffset:t,endOffset:e,rawValue:n?.rawValue??"",value:n?.value??"",format:n?.format??"none",indent:n?.indent??0}}var Dd=class{constructor(t){this.input=t;this.pos=0;this.tokens=[];this.flowDepth=0;this.seenBlockColon=!1;this.seenDocumentStart=0}scan(t=1){for(;this.pos<this.input.length&&(this.scanLine(),!(this.seenDocumentStart>t)););return this.tokens.push(He(13,this.pos,this.pos)),this.tokens}scanLine(){if(this.seenBlockColon=!1,this.peekChar()===`
`){this.tokens.push(He(8,this.pos,this.pos+1)),this.pos++;return}if(this.peekChar()==="\r"){let n=this.pos+(this.input[this.pos+1]===`
`?2:1);this.tokens.push(He(8,this.pos,n)),this.pos=n;return}let t=this.pos,e=0;for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]==="	");)e++,this.pos++;if(e>0&&this.tokens.push(He(9,t,this.pos,{indent:e})),this.pos>=this.input.length||this.peekChar()===`
`||this.peekChar()==="\r"){if(this.pos<this.input.length){let n=this.pos,r=this.peekChar()==="\r"&&this.input[this.pos+1]===`
`?this.pos+2:this.pos+1;this.tokens.push(He(8,n,r)),this.pos=r}return}if(e===0&&this.input.length-this.pos>=3){let n=this.input[this.pos],r=this.input[this.pos+1],o=this.input[this.pos+2],s=this.input[this.pos+3],a=s===void 0||s===" "||s==="	"||s===`
`||s==="\r";if(n==="-"&&r==="-"&&o==="-"&&a){this.tokens.push(He(11,this.pos,this.pos+3)),this.pos+=3,this.scanLineContent(),this.scanNewline(),this.seenDocumentStart++;return}if(n==="."&&r==="."&&o==="."&&a){this.tokens.push(He(12,this.pos,this.pos+3)),this.pos+=3,this.scanLineContent(),this.scanNewline();return}}if(this.peekChar()==="#"){this.scanComment(),this.scanNewline();return}if(this.peekChar()==="%"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.scanNewline();return}this.scanLineContent(),this.scanNewline()}scanLineContent(){for(;this.pos<this.input.length&&this.peekChar()!==`
`&&this.peekChar()!=="\r"&&(this.skipInlineWhitespace(),!(this.pos>=this.input.length||this.peekChar()===`
`||this.peekChar()==="\r"));){let t=this.peekChar();if(t==="#"){this.scanComment();break}else if(t==="{")this.flowDepth++,this.tokens.push(He(4,this.pos,this.pos+1)),this.pos++;else if(t==="}"&&this.flowDepth>0)this.flowDepth--,this.tokens.push(He(5,this.pos,this.pos+1)),this.pos++;else if(t==="[")this.flowDepth++,this.tokens.push(He(6,this.pos,this.pos+1)),this.pos++;else if(t==="]"&&this.flowDepth>0)this.flowDepth--,this.tokens.push(He(7,this.pos,this.pos+1)),this.pos++;else if(t===","&&this.flowDepth>0)this.tokens.push(He(3,this.pos,this.pos+1)),this.pos++;else if(t==="-"&&this.isBlockDash())this.tokens.push(He(2,this.pos,this.pos+1)),this.pos++;else if(t===":"&&this.isBlockColon())this.tokens.push(He(1,this.pos,this.pos+1)),this.pos++,this.flowDepth===0&&(this.seenBlockColon=!0);else if(t===":"&&this.flowDepth>0&&this.lastTokenIsJsonLike())this.tokens.push(He(1,this.pos,this.pos+1)),this.pos++;else if(t==="'"||t==='"')this.scanQuotedScalar(t);else if((t==="|"||t===">")&&this.flowDepth===0&&this.isBlockScalarStart()){this.scanBlockScalar(t);break}else this.scanUnquotedScalar()}}isBlockDash(){let t=this.input[this.pos+1];return t===void 0||t===" "||t==="	"||t===`
`||t==="\r"}isBlockColon(){if(this.seenBlockColon&&this.flowDepth===0)return!1;let t=this.input[this.pos+1];return t===void 0||t===" "||t==="	"||t===`
`||t==="\r"||this.flowDepth>0&&(t===","||t==="}"||t==="]")}lastTokenIsJsonLike(){for(let t=this.tokens.length-1;t>=0;t--){let e=this.tokens[t];if(!(e.type===8||e.type===9||e.type===10))return e.type===0&&e.format!=="none"||e.type===5||e.type===7}return!1}scanQuotedScalar(t){let e=this.pos;this.pos++;let n="",r=0;for(;this.pos<this.input.length;){let s=this.input[this.pos];if(s===t){if(t==="'"&&this.input[this.pos+1]==="'"){n+="'",this.pos+=2,r=0;continue}this.pos++;let a=this.input.substring(e,this.pos);this.tokens.push(He(0,e,this.pos,{rawValue:a,value:n,format:t==="'"?"single":"double"}));return}if(t==='"'&&s==="\\"){let a=this.input[this.pos+1];if(a===`
`||a==="\r"){this.pos++,this.consumeNewline(),this.skipInlineWhitespace(),r=0;continue}switch(a){case"n":n+=`
`;break;case"t":n+="	";break;case"\\":n+="\\";break;case'"':n+='"';break;case"/":n+="/";break;case"r":n+="\r";break;case"0":n+="\0";break;case"a":n+="\x07";break;case"b":n+="\b";break;case"e":n+="\x1B";break;case"v":n+="\v";break;case"f":n+="\f";break;case" ":n+=" ";break;case"_":n+="\xA0";break;case"x":{let l=this.input.substring(this.pos+2,this.pos+4),c=parseInt(l,16);l.length===2&&!isNaN(c)?(n+=String.fromCharCode(c),this.pos+=4):(n+="\\x",this.pos+=2),r=0;continue}case"u":{let l=this.input.substring(this.pos+2,this.pos+6),c=parseInt(l,16);l.length===4&&!isNaN(c)?(n+=String.fromCodePoint(c),this.pos+=6):(n+="\\u",this.pos+=2),r=0;continue}case"U":{let l=this.input.substring(this.pos+2,this.pos+10),c=parseInt(l,16);l.length===8&&!isNaN(c)?(n+=String.fromCodePoint(c),this.pos+=10):(n+="\\U",this.pos+=2),r=0;continue}default:n+="\\"+(a??"");break}this.pos+=2,r=0;continue}if(s===`
`||s==="\r"){r>0&&(n=n.substring(0,n.length-r)),r=0,this.consumeNewline();let a=0;for(;this.pos<this.input.length;){this.skipInlineWhitespace();let l=this.input[this.pos];if(l===`
`||l==="\r")a++,this.consumeNewline();else break}a>0?n+=`
`.repeat(a):n+=" ";continue}s===" "||s==="	"?r++:r=0,n+=s,this.pos++}let o=this.input.substring(e,this.pos);this.tokens.push(He(0,e,this.pos,{rawValue:o,value:n,format:t==="'"?"single":"double"}))}scanUnquotedScalar(){let t=this.pos,e=this.pos;for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r===`
`||r==="\r"||this.flowDepth>0&&(r===","||r==="}"||r==="]")||this.flowDepth>0&&(r==="{"||r==="[")||r===":"&&this.isBlockColon()||r==="#"&&this.pos>t&&(this.input[this.pos-1]===" "||this.input[this.pos-1]==="	"))break;this.pos++,r!==" "&&r!=="	"&&(e=this.pos)}let n=this.input.substring(t,e);this.tokens.push(He(0,t,e,{rawValue:n,value:n,format:"none"}))}isBlockScalarStart(){let t=this.pos+1;for(;t<this.input.length;){let n=this.input[t];if(n>="1"&&n<="9"){t++;continue}if(n==="+"||n==="-"){t++;continue}break}for(;t<this.input.length&&(this.input[t]===" "||this.input[t]==="	");)t++;if(t>=this.input.length)return!0;let e=this.input[t];return e===`
`||e==="\r"||e==="#"}scanBlockScalar(t){let e=this.pos;this.pos++;let n=0,r="clip";for(let f=0;f<2;f++)if(this.pos<this.input.length){let g=this.input[this.pos];g>="1"&&g<="9"&&n===0?(n=parseInt(g,10),this.pos++):g==="-"&&r==="clip"?(r="strip",this.pos++):g==="+"&&r==="clip"&&(r="keep",this.pos++)}for(;this.pos<this.input.length&&(this.input[this.pos]===" "||this.input[this.pos]==="	");)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="#")for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.consumeNewline();let o=this.getParentBlockIndent(e),s=n>0?o+n:0,a=[],l=0;for(;this.pos<this.input.length;){let f=this.pos,g=0;for(;this.pos<this.input.length&&this.input[this.pos]===" ";)g++,this.pos++;if(this.pos>=this.input.length||this.input[this.pos]===`
`||this.input[this.pos]==="\r"){if(s>0&&g>=s){let S=this.input.substring(f+s,this.pos);a.push(S),S===""?l++:l=0}else a.push(""),l++;this.consumeNewline();continue}if(g===0&&this.input.length-this.pos>=3){let S=this.input[this.pos],_=this.input[this.pos+1],b=this.input[this.pos+2],I=this.input[this.pos+3],R=I===void 0||I===" "||I==="	"||I===`
`||I==="\r";if(S==="-"&&_==="-"&&b==="-"&&R||S==="."&&_==="."&&b==="."&&R){this.pos=f;break}}if(s===0){if(g<=o){this.pos=f;break}s=g}if(g<s){this.pos=f;break}let h=f+s;for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;let v=this.input.substring(h,this.pos);a.push(v),l=0,this.consumeNewline()}let c;if(t==="|")c=a.join(`
`);else{c="";let f=!1,g=!1,h=!1;for(let v=0;v<a.length;v++){let S=a[v],_=S.length>0&&(S[0]===" "||S[0]==="	");S===""?(c+=`
`,g=!0):v===0?(c=S,f=_,h=!0):g?((f||_)&&h?c+=`
`+S:c+=S,f=_,g=!1,h=!0):_||f?(c+=`
`+S,f=_,h=!0):(c+=" "+S,f=!1,h=!0)}}if(l>0){let f=c.length;for(;f>0&&c[f-1]===`
`;)f--;c=c.substring(0,f)}let u=a.some(f=>f!=="");switch(r){case"clip":u&&(c+=`
`);break;case"keep":u?c+=`
`.repeat(l+1):c=`
`.repeat(l);break;case"strip":break}let d=this.input.substring(e,this.pos);this.tokens.push(He(0,e,this.pos,{rawValue:d,value:c,format:t==="|"?"literal":"folded"}))}getParentBlockIndent(t){for(let e=this.tokens.length-1;e>=0;e--){let n=this.tokens[e];if(!(n.type===8||n.type===10||n.type===9)){if(n.type===1){for(let r=e-1;r>=0;r--){let o=this.tokens[r];if(!(o.type===8||o.type===10||o.type===9))return this.getColumnAt(o.startOffset)}return 0}if(n.type===2)return this.getColumnAt(n.startOffset);if(n.type===11)return-1;break}}return 0}getColumnAt(t){let e=0,n=t-1;for(;n>=0&&this.input[n]!==`
`&&this.input[n]!=="\r";)e++,n--;return e}scanComment(){let t=this.pos;for(;this.pos<this.input.length&&this.input[this.pos]!==`
`&&this.input[this.pos]!=="\r";)this.pos++;this.tokens.push(He(10,t,this.pos,{rawValue:this.input.substring(t,this.pos),value:this.input.substring(t,this.pos)}))}scanNewline(){let t=this.pos;this.consumeNewline()&&this.tokens.push(He(8,t,this.pos))}skipInlineWhitespace(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t==="	")this.pos++;else break}}consumeNewline(){return this.pos>=this.input.length?!1:this.input[this.pos]==="\r"&&this.input[this.pos+1]===`
`?(this.pos+=2,!0):this.input[this.pos]===`
`||this.input[this.pos]==="\r"?(this.pos++,!0):!1}peekChar(){return this.input[this.pos]}},Od=class{constructor(t,e,n,r){this.tokens=t;this.input=e;this.errors=n;this.options=r;this.pos=0}parse(){return this.skipNewlinesAndComments(),this.currentToken().type===11&&(this.advance(),this.skipNewlinesAndComments()),this.currentToken().type===13||this.currentToken().type===12?void 0:this.parseValue(-1)}currentToken(){return this.tokens[this.pos]}peek(t=0){return this.tokens[Math.min(this.pos+t,this.tokens.length-1)]}advance(){let t=this.tokens[this.pos];return t.type!==13&&this.pos++,t}expect(t){let e=this.currentToken();return e.type===t?this.advance():e}emitError(t,e,n,r){this.errors.push({message:t,startOffset:e,endOffset:n,code:r})}skipNewlinesAndComments(){for(;this.currentToken().type===8||this.currentToken().type===10||this.currentToken().type===9&&this.isFollowedByNewlineOrComment();)this.advance()}isFollowedByNewlineOrComment(){let t=this.peek(1);return t.type===8||t.type===10||t.type===13}currentIndent(){return this.currentToken().type===9?this.currentToken().indent:0}parseValue(t){this.skipNewlinesAndComments();let e=this.currentToken(),n=e.type===9?this.peek(1):e;if(n.type===4||n.type===6)return e.type===9&&this.advance(),n.type===4?this.parseFlowMap():this.parseFlowSeq();let r=this.currentIndent();if(this.peekPastIndent().type===2)return this.parseBlockSequence(r);if(this.looksLikeMapping())return this.parseBlockMapping(r);if(e.type===0||e.type===9)return this.parseScalar(t)}peekPastIndent(){return this.currentToken().type===9?this.peek(1):this.currentToken()}looksLikeMapping(){let t=0;return this.peek(t).type===9&&t++,this.peek(t).type===0&&(t++,this.peek(t).type===1)}parseScalar(t=-1){this.currentToken().type===9&&this.advance();let e=this.expect(0);return e.format!=="none"?this.scalarFromToken(e):this.parsePlainMultiline(e,t)}parsePlainMultiline(t,e){let n=t.value,r=t.endOffset;for(;;){let o=this.pos,s=0,a=!1;for(;this.pos<this.tokens.length;){let c=this.currentToken();if(c.type===10)break;if(c.type===8){this.advance();let u=this.currentToken();if(u.type===8){s++;continue}if(u.type===9){let d=this.peek(1);if(d.type===8||d.type===13){s++,this.advance();continue}if(d.type===10)break;if(u.indent>e){a=!0;break}else break}if(u.type===13||u.type===11||u.type===12)break;if(e<0){a=!0;break}break}if(c.type===9)break;break}if(!a){this.pos=o;break}if(this.currentToken().type===9&&this.advance(),this.currentToken().type!==0){if(this.currentToken().type===2){let c=this.advance(),u="-";if(this.currentToken().type===0){let d=this.advance();u="- "+d.value,r=d.endOffset}else r=c.endOffset;s>0?n+=`
`.repeat(s):n+=" ",n+=u;continue}this.pos=o;break}if(this.peek(1).type===1){this.pos=o;break}let l=this.advance();s>0?n+=`
`.repeat(s):n+=" ",n+=l.value,r=l.endOffset}return{type:"scalar",value:n,rawValue:this.input.substring(t.startOffset,r),startOffset:t.startOffset,endOffset:r,format:"none"}}parseBlockMapping(t,e=!1){let n=this.currentToken().startOffset,r=[],o=new Set;if(e){let a=this.parseMappingEntry(t);a&&(o.add(a.key.value),r.push(a))}for(;this.currentToken().type!==13&&(this.skipNewlinesAndComments(),this.currentToken().type!==13);){let a=this.currentIndent();if(a<t)break;if(a!==t)if(a>t)this.emitError(m(150,null,t,a),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-indentation");else break;if(!this.looksLikeMapping())break;let l=this.parseMappingEntry(t);if(!l)break;!this.options.allowDuplicateKeys&&o.has(l.key.value)&&this.emitError(m(143,null,l.key.value),l.key.startOffset,l.key.endOffset,"duplicate-key"),o.add(l.key.value),r.push(l)}let s=r.length>0?r[r.length-1].value.endOffset:n;return{type:"map",properties:r,style:"block",startOffset:n,endOffset:s}}parseMappingEntry(t){this.currentToken().type===9&&this.advance();let e=this.expect(0),n=this.scalarFromToken(e),r=this.expect(1);if(r.type!==1){this.emitError(m(144,null),r.startOffset,r.endOffset,"expected-colon");return}let o=this.parseMappingValue(t,r);return{key:n,value:o}}parseMappingValue(t,e){let n=this.currentToken();if(n.type===4)return this.parseFlowMap();if(n.type===6)return this.parseFlowSeq();if(n.type===0){this.currentToken().type===9&&this.advance();let s=this.advance();return s.format!=="none"?this.scalarFromToken(s):this.parsePlainMultiline(s,t)}if(this.skipNewlinesAndComments(),this.currentToken().type===13)return this.emitError(m(149,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset);let o=this.currentIndent();return o===t&&this.peekPastIndent().type===2?this.parseValue(t)??this.makeEmptyScalar(e.endOffset):o<=t?(this.emitError(m(149,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.parseValue(t)??this.makeEmptyScalar(e.endOffset)}parseBlockSequence(t){let e=[],n=this.currentToken().startOffset,r=n,o=!0;for(;this.currentToken().type!==13&&(this.skipNewlinesAndComments(),this.currentToken().type!==13);){let s;if(o&&this.currentToken().type===2?s=this.currentToken().startOffset-this.getLineStart(this.currentToken().startOffset):s=this.currentIndent(),o=!1,s<t)break;if(s!==t)if(s>t)this.emitError(m(150,null,t,s),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-indentation");else break;if(this.peekPastIndent().type!==2)break;this.currentToken().type===9&&this.advance();let l=this.advance(),c=this.parseSequenceItemValue(t,l);e.push(c),r=c.endOffset}return{type:"sequence",items:e,style:"block",startOffset:n,endOffset:r}}parseSequenceItemValue(t,e){let n=this.currentToken();if(n.type===10&&this.advance(),n.type===4)return this.parseFlowMap();if(n.type===6)return this.parseFlowSeq();if(n.type===2){let o=n.startOffset-this.getLineStart(n.startOffset);return this.parseBlockSequence(o)}if(n.type===0){if(this.peek(1).type===1){let o=n.startOffset-this.getLineStart(n.startOffset);return this.parseBlockMapping(o,!0)}return this.parseScalar(t)}return this.skipNewlinesAndComments(),this.currentToken().type===13?(this.emitError(m(148,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.currentIndent()<=t?(this.emitError(m(148,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.parseValue(t)??this.makeEmptyScalar(e.endOffset)}getLineStart(t){let e=t-1;for(;e>=0&&this.input[e]!==`
`&&this.input[e]!=="\r";)e--;return e+1}parseFlowMap(){let t=this.advance(),e=[];for(this.skipFlowWhitespace();this.currentToken().type!==5&&this.currentToken().type!==13;){let r;if(this.currentToken().type===0)r=this.parseFlowScalar();else{this.emitError(m(147,null),this.currentToken().startOffset,this.currentToken().endOffset,"expected-key");break}this.skipFlowWhitespace();let o;this.currentToken().type===1?(this.advance(),this.skipFlowWhitespace(),o=this.parseFlowValue()):o=this.makeEmptyScalar(r.endOffset),e.push({key:r,value:o}),this.skipFlowWhitespace(),this.currentToken().type===3&&(this.advance(),this.skipFlowWhitespace())}let n=this.currentToken();return n.type===5?this.advance():this.emitError(m(145,null),n.startOffset,n.endOffset,"expected-flow-map-end"),{type:"map",properties:e,style:"flow",startOffset:t.startOffset,endOffset:n.type===5?n.endOffset:n.startOffset}}parseFlowSeq(){let t=this.advance(),e=[];for(this.skipFlowWhitespace();this.currentToken().type!==7&&this.currentToken().type!==13;){let r;if(this.currentToken().type===4)r=this.parseFlowMap();else if(this.currentToken().type===6)r=this.parseFlowSeq();else if(this.currentToken().type===0)r=this.parseFlowScalar();else{this.emitError(m(151,null),this.currentToken().startOffset,this.currentToken().endOffset,"unexpected-token"),this.advance();continue}e.push(r),this.skipFlowWhitespace(),this.currentToken().type===3&&(this.advance(),this.skipFlowWhitespace())}let n=this.currentToken();return n.type===7?this.advance():this.emitError(m(146,null),n.startOffset,n.endOffset,"expected-flow-seq-end"),{type:"sequence",items:e,style:"flow",startOffset:t.startOffset,endOffset:n.type===7?n.endOffset:n.startOffset}}parseFlowScalar(){let t=this.advance();if(t.format!=="none")return this.scalarFromToken(t);let e=t.value,n=t.endOffset;for(;;){let r=!1,o=this.pos;for(;o<this.tokens.length;){let a=this.tokens[o];if(a.type===8)r=!0,o++;else if(a.type===9||a.type===10)o++;else break}if(!r||o>=this.tokens.length)break;let s=this.tokens[o];if(s.type===0&&s.format==="none")this.pos=o+1,e+=" "+s.value,n=s.endOffset;else break}return{type:"scalar",value:e,rawValue:this.input.substring(t.startOffset,n),startOffset:t.startOffset,endOffset:n,format:"none"}}parseFlowValue(){return this.currentToken().type===4?this.parseFlowMap():this.currentToken().type===6?this.parseFlowSeq():this.currentToken().type===0?this.parseFlowScalar():this.makeEmptyScalar(this.currentToken().startOffset)}skipFlowWhitespace(){for(;;){let t=this.currentToken().type;if(t===8||t===9||t===10)this.advance();else break}}scalarFromToken(t){return{type:"scalar",value:t.value,rawValue:t.rawValue,startOffset:t.startOffset,endOffset:t.endOffset,format:t.format}}makeEmptyScalar(t){return{type:"scalar",value:"",rawValue:"",startOffset:t,endOffset:t,format:"none"}}};var Bm="vscode-agent-client";function Bo(i,t){let e=i.authority||"-";return y.from({scheme:Bm,authority:t,path:`/${i.scheme}/${e}${i.path}`})}function cI(i){let t=i.path,e=t.indexOf("/",1);if(e===-1)return y.from({scheme:"file",path:t});let n=t.substring(1,e),r=t.indexOf("/",e+1);if(r===-1){let a=t.substring(e+1);return y.from({scheme:n,authority:a==="-"?"":a,path:"/"})}let o=t.substring(e+1,r);o==="-"&&(o="");let s=t.substring(r);return y.from({scheme:n,authority:o||void 0,path:s})}var aR={format:0,manifestPath:"plugin.json",hookConfigPath:"hooks.json",pluginRootToken:void 0,pluginRootEnvVar:void 0,parseHooks(i,t,e,n,r){return uI(i,t,n,r)}},lR={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 pI(i,t,e,n,r,"${CLAUDE_PLUGIN_ROOT}","CLAUDE_PLUGIN_ROOT")}},cR={format:2,manifestPath:".plugin/plugin.json",hookConfigPath:"hooks/hooks.json",pluginRootToken:"${PLUGIN_ROOT}",pluginRootEnvVar:"PLUGIN_ROOT",parseHooks(i,t,e,n,r){return pI(i,t,e,n,r,"${PLUGIN_ROOT}","PLUGIN_ROOT")}};async function dR(i,t){return await Ma(ee(i,".plugin","plugin.json"),t)?cR:i.path.split("/").includes(".claude")||await Ma(ee(i,".claude-plugin","plugin.json"),t)?lR:aR}var Hm={paths:[],exclusive:!1};function Ld(i){if(i==null)return Hm;if(typeof i=="string"){let t=i.trim();return t?{paths:[t],exclusive:!1}:Hm}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 Hm}function Md(i,t,e,n){let r=n&&Fp(i,n)?n:i,o=[];e.exclusive||o.push(ee(i,t));for(let s of e.paths){let a=Nt(ee(i,s));Fp(a,r)&&o.push(a)}return o}function uR(i){if(!i||typeof i!="object"||Array.isArray(i))return;let t=i;return Object.hasOwn(t,"mcpServers")?t.mcpServers:t}function pR(i){if(!i||typeof i!="object")return;let t=i,e=typeof t.type=="string"?t.type:void 0,n=typeof t.command=="string"?t.command:void 0,r=typeof t.url=="string"?t.url:void 0,o=Array.isArray(t.args)?t.args.filter(d=>typeof d=="string"):void 0,s=t.env&&typeof t.env=="object"?Object.fromEntries(Object.entries(t.env).filter(([,d])=>typeof d=="string"||typeof d=="number"||d===null).map(([d,f])=>[d,f])):void 0,a=typeof t.envFile=="string"?t.envFile:void 0,l=typeof t.cwd=="string"?t.cwd:void 0,c=t.headers&&typeof t.headers=="object"?Object.fromEntries(Object.entries(t.headers).filter(([,d])=>typeof d=="string").map(([d,f])=>[d,f])):void 0,u=t.dev&&typeof t.dev=="object"?t.dev:void 0;if(e!=="ws"){if(e==="stdio"||!e&&n)return n?{type:"stdio",command:n,args:o,env:s,envFile:a,cwd:l,dev:u}:void 0;if(e==="http"||e==="sse"||!e&&r)return r?{type:"http",url:r,headers:c,dev:u}:void 0}}var fR=/[\s&|<>()^;!`"']/;function mR(i,t,e){if(!i.includes(e))return i;if(!fR.test(t))return i.replaceAll(e,t);let n=Mt(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 gR(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 hR=/\$\{(?![A-Za-z]+:)([A-Z_][A-Z0-9_]*)\}/g;function yR(i){return qs(i,t=>{if(y.isUri(t))return t;if(typeof t=="string"){let e=t.replace(hR,"${env:$1}");return e!==t?e:void 0}})}var vR={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 bR(i){if(i.type!==void 0&&i.type!=="command")return;let t=typeof i.command=="string"&&i.command.length>0,e=typeof i.bash=="string"&&i.bash.length>0,n=typeof i.powershell=="string"&&i.powershell.length>0,r=typeof i.windows=="string"&&i.windows.length>0,o=typeof i.linux=="string"&&i.linux.length>0,s=typeof i.osx=="string"&&i.osx.length>0;if(!t&&!e&&!n&&!r&&!o&&!s)return;let a=r?i.windows:n?i.powershell:void 0,l=o?i.linux:e?i.bash:void 0,c=s?i.osx:e?i.bash:void 0,u=typeof i.timeout=="number"?i.timeout:typeof i.timeoutSec=="number"?i.timeoutSec:void 0;return{...t&&{command:i.command},...a&&{windows:a},...l&&{linux:l},...c&&{osx:c},...typeof i.env=="object"&&i.env!==null&&{env:i.env},...u!==void 0&&{timeout:u}}}function dI(i,t,e){let n=bR(i);if(!n)return;let r,o=typeof i.cwd=="string"?i.cwd:void 0;if(o){let s=qc(o,e);qt(s)?r=y.file(s):t&&(r=ee(t,s))}else r=t;return{...n,cwd:r}}function SR(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=dI(s,t,e);a&&r.push(a)}else{let s=dI(n,t,e);s&&r.push(s)}return r}function uI(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=vR[l];if(!c)continue;let u=s[l];if(!Array.isArray(u))continue;let d=[];for(let f of u)d.push(...SR(f,e,n));d.length>0&&a.push({type:c,commands:d,uri:i,originalId:l})}return a}function pI(i,t,e,n,r,o,s){let a=e.fsPath,l=t,c=d=>{for(let f of["command","windows","linux","osx"])typeof d[f]=="string"&&(d[f]=mR(d[f],a,o));(!d.env||typeof d.env!="object")&&(d.env={}),d.env[s]=a};for(let d of Object.values(l.hooks??{}))if(Array.isArray(d))for(let f of d){if(!f||typeof f!="object")continue;let g=f;if(Array.isArray(g.hooks))for(let h of g.hooks)c(h);else c(g)}return uI(i,qs(t,d=>typeof d=="string"?d.replaceAll(o,e.fsPath):void 0),n,r)}async function qm(i,t){try{let e=await t.readFile(i);return Qc(e.value.toString())}catch{return}}async function Ma(i,t){try{return await t.resolve(i),!0}catch{return!1}}var Nd=".md";async function IR(i,t,e){let n=new Set,r=[],o=(s,a)=>{n.has(s)||(n.add(s),r.push({uri:a,name:s}))};for(let s of t){let a=y.joinPath(s,"SKILL.md");if(await Ma(a,e)){o(_e(s),a);continue}let l;try{l=await e.resolve(s)}catch{continue}if(!(!l.isDirectory||!l.children))for(let c of l.children){let u=y.joinPath(c.resource,"SKILL.md");await Ma(u,e)&&o(_e(c.resource),u)}}if(r.length===0){let s=y.joinPath(i,"SKILL.md");await Ma(s,e)&&o(_e(i),s)}return r.sort((s,a)=>s.name.localeCompare(a.name)),r}async function _R(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&&Ns(o).toLowerCase()===Nd){r(_e(o).slice(0,-Nd.length),o);continue}if(!(!s.isDirectory||!s.children))for(let a of s.children)!a.isFile||Ns(a.resource).toLowerCase()!==Nd||r(_e(a.resource).slice(0,-Nd.length),a.resource)}return n.sort((o,s)=>o.name.localeCompare(s.name)),n}async function CR(i,t){let e=await _R(i,t);if(e.length===0)return e;let n=await Promise.all(e.map(async s=>{try{let a=await t.readFile(s.uri),l=Vo(a.value.toString()),c=l?.getStringValue("name")?.trim(),u=l?.getStringValue("description")?.trim();return{uri:s.uri,name:c||s.name,...u?{description:u}:{}}}catch{return s}})),r=new Set,o=[];for(let s of n)r.has(s.name)||(r.add(s.name),o.push(s));return o.sort((s,a)=>s.name.localeCompare(a.name)),o}async function TR(i,t,e,n,r,o){for(let s of t){let a=await qm(s,n);if(a)return e.parseHooks(s,a,i,r,o)}return[]}async function xR(i,t,e,n){let r=new Map;for(let o of i){let s=await qm(o,n);for(let a of fI(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 fI(i,t,e,n){let r=uR(t);if(!r)return[];let o=[];for(let[s,a]of Object.entries(r)){let l=pR(a);if(!l)continue;let c={name:s,configuration:l,uri:i};n.pluginRootToken&&n.pluginRootEnvVar&&(c=gR(c,e,n.pluginRootToken,n.pluginRootEnvVar)),c=yR(c),o.push(c)}return o}async function Ud(i,t,e,n,r){let o=await dR(i,t),s=await qm(ee(i,o.manifestPath),t),a=s&&typeof s=="object"?s:void 0,l=Md(i,o.hookConfigPath,Ld(a?.hooks),r),c=Md(i,".mcp.json",Ld(a?.mcpServers),r),u=Md(i,"skills",Ld(a?.skills),r),d=Md(i,"agents",Ld(a?.agents),r),f=[],g=a?.mcpServers;g&&typeof g=="object"&&!Array.isArray(g)&&!De(g,{paths:!0})&&(f=fI(ee(i,o.manifestPath),{mcpServers:g},i.fsPath,o));let h=[],v=a?.hooks;if(v&&typeof v=="object"&&!Array.isArray(v)&&!De(v,{paths:!0})){let R=ee(i,o.manifestPath);h=o.parseHooks(R,{hooks:v},i,e,n)}let[S,_,b,I]=await Promise.all([h.length>0?Promise.resolve(h):TR(i,l,o,t,e,n),f.length>0?Promise.resolve(f):xR(c,i.fsPath,o,t),IR(i,u,t),CR(d,t)]);return{hooks:S,mcpServers:_,skills:b,agents:I}}function Fd(i,t){if(i.length===0||i.charCodeAt(0)!==47)return;let e=1;for(;e<i.length;){let r=i.charCodeAt(e);if(r===32||r===9||r===10||r===13)break;e++}if(t<0||t>e)return;let n=i.slice(0,e);return{token:n,typed:n.slice(1),rangeStart:0,rangeEnd:e}}var Wd=class extends T{constructor(e,n,r,o=wR()){super();this._getAgent=e;this._fileService=n;this._logService=r;this._userHome=o;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["/"];this._skillCache=new Map;this._watchedAgents=new Set}async provideCompletionItems(e,n){let r=Fd(e.text,e.offset);if(!r)return[];let o=this._getAgent(e.channel);if(!o)return[];this._watchAgent(o);let s=await this._getCandidates(o,typeof e.channel=="string"?y.parse(e.channel):e.channel);if(n.isCancellationRequested||s.length===0)return[];let a=new Set,l=new Map;for(let c of s){let u=this._resolvePluginRoot(c),d=this._cacheKey(o.id,u,c.customization.nonce);a.add(d);let f=await this._getCachedSkills(o.id,d,u);if(n.isCancellationRequested)return[];for(let g of f)r.typed.length>0&&!g.slashName.startsWith(r.typed)||l.has(g.slashName)||l.set(g.slashName,g)}return this._pruneUnreachableCacheEntries(o.id,a),[...l.values()].map(c=>({insertText:"/"+c.slashName+" ",rangeStart:r.rangeStart,rangeEnd:r.rangeEnd,attachment:{type:"simple",label:"/"+c.slashName,_meta:{uri:c.uri.toString(),name:c.slashName,displayName:c.displayName,...c.description!==void 0?{description:c.description}:{}}}}))}async _getCandidates(e,n){let r=[];if(e.getSessionCustomizations)try{r=await e.getSessionCustomizations(n)}catch(l){this._logService.warn(`[AgentHostSkillCompletionProvider] Error reading session customizations for '${n.toString()}': ${St(l)}`)}let o=new Set,s=[];for(let l of r)o.add(l.customization.uri),s.push({customization:l.customization,enabled:l.enabled,...l.clientId!==void 0?{clientId:l.clientId}:{},...l.status!==void 0?{status:l.status}:{}});let a=e.getCustomizations?.()??[];for(let l of a)o.has(l.uri)||s.push({customization:l,enabled:!0});return s.filter(l=>l.enabled&&l.status!=="loading"&&l.status!=="error")}_watchAgent(e){!e.onDidCustomizationsChange||this._watchedAgents.has(e.id)||(this._watchedAgents.add(e.id),this._register(e.onDidCustomizationsChange(()=>this._clearCache(e.id))))}_resolvePluginRoot(e){let n=y.parse(e.customization.uri);return e.clientId?Bo(n,e.clientId):n}_cacheKey(e,n,r){return r?`${e}::${n.toString()}::${r}`:`${e}::${n.toString()}`}_getCachedSkills(e,n,r){let o=this._skillCache.get(n);return o||(o={agentId:e,value:this._readSkills(r)},this._skillCache.set(n,o)),o.value}async _readSkills(e){try{let n=await Ud(e,this._fileService,void 0,this._userHome);return await Promise.all(n.skills.map(r=>this._readSkillMetadata(r)))}catch(n){return this._logService.warn(`[AgentHostSkillCompletionProvider] Error parsing customization '${e.toString()}': ${St(n)}`),[]}}async _readSkillMetadata(e){let n=e.name,r;try{let o=await this._fileService.readFile(e.uri),s=Vo(o.value.toString());n=s?.getStringValue("name")?.trim()||e.name,r=s?.getStringValue("description")?.trim()||void 0}catch(o){this._logService.trace(`[AgentHostSkillCompletionProvider] Error reading skill metadata '${e.uri.toString()}': ${St(o)}`)}return{uri:e.uri,slashName:e.name,displayName:n,...r!==void 0?{description:r}:{}}}_clearCache(e){for(let[n,r]of this._skillCache)r.agentId===e&&this._skillCache.delete(n)}_pruneUnreachableCacheEntries(e,n){for(let[r,o]of this._skillCache)o.agentId===e&&!n.has(r)&&this._skillCache.delete(r)}};function wR(){return process.env.HOME??process.env.USERPROFILE??""}import*as mI from"child_process";var RR=new we(async()=>(await import("@vscode/ripgrep-universal")).rgPath.replace(/\bnode_modules\.asar\b/,"node_modules.asar.unpacked"));function Ho(){return RR.value}var ER=5e4,PR=3e4,qo=class extends T{constructor(e){super();this._logService=e;this._cache=new Map;this._activeChildren=new Set}dispose(){for(let e of this._activeChildren)try{e.kill()}catch{}this._activeChildren.clear(),this._cache.clear(),super.dispose()}async getFiles(e,n){if(e.scheme!==ie.file)return[];let r=e.toString(),o=Date.now(),s=this._cache.get(r),a;if(s&&s.expiresAt>o)a=s.promise;else{a=this._enumerate(e);let l={promise:a,expiresAt:o+PR};this._cache.set(r,l),a.catch(()=>{this._cache.get(r)===l&&this._cache.delete(r)})}if(n.isCancellationRequested)throw new le;return n===$e.None?a:new Promise((l,c)=>{let u=n.onCancellationRequested(()=>{u.dispose(),c(new le)});a.then(d=>{u.dispose(),l(d)},d=>{u.dispose(),c(d)})})}async _enumerate(e){let n=await Ho();return new Promise(r=>{let o=e.fsPath,s=["--files","--hidden","--no-require-git","--follow","--no-config","--glob","!.git"],a;try{a=mI.spawn(n,s,{cwd:o})}catch(h){this._logService.warn(`[AgentHostWorkspaceFiles] Failed to spawn ripgrep: ${h}`),r([]);return}this._activeChildren.add(a);let l=[],c="",u=!1,d=!1,f=h=>{d||(d=!0,this._activeChildren.delete(a),r(h))};a.stdout.setEncoding("utf8"),a.stdout.on("data",h=>{if(u)return;c+=h;let v;for(;(v=c.indexOf(`
`))>=0;){let S=c.slice(0,v).replace(/\r$/,"");if(c=c.slice(v+1),!!S&&(l.push(y.joinPath(e,S)),l.length>=ER)){u=!0;try{a.kill()}catch{}break}}}),a.stderr.setEncoding("utf8");let g="";a.stderr.on("data",h=>{g+=h}),a.on("error",h=>{this._logService.warn(`[AgentHostWorkspaceFiles] ripgrep error: ${h}`),f([])}),a.on("close",()=>{if(!u&&c.length>0){let h=c.replace(/\r$/,"");h&&l.push(y.joinPath(e,h)),c=""}g&&this._logService.trace(`[AgentHostWorkspaceFiles] ripgrep stderr: ${g}`),f(l)})})}};qo=w([C(0,M)],qo);var kR=3e4,$d=class extends T{constructor(e,n,r,o,s,a=Wb,l,c=fd){super();this._logService=e;this._fileService=n;this._sessionDataService=r;this._productService=o;this._gitService=s;this._checkpointService=a;this._rootConfigResource=l;this._telemetryService=c;this._onDidAction=this._register(new x);this.onDidAction=this._onDidAction.event;this._onDidNotification=this._register(new x);this.onDidNotification=this._onDidNotification.event;this._providers=new Map;this._sessionToProvider=new Map;this._providerSubscriptions=this._register(new z);this._agents=yn("agents",[]);this._skillCompletionProviderRegistered=!1;this._resourceSubscribers=new Re;this._pendingSessionGc=this._register(new dl);this._clientDispatchQueues=new Map;this._logService.info("AgentService initialized"),this._stateManager=this._register(new Co(e,{changesetStateRetention:{canEvict:h=>this._changesets?this._isChangesetEvictable(h):!1}})),this._register(this._stateManager.onDidEmitEnvelope(h=>this._onDidAction.fire(h))),this._register(this._stateManager.onDidEmitNotification(h=>this._onDidNotification.fire(h)));let u=this._register(new ho(this._stateManager,this._logService,this._rootConfigResource));this._configurationService=u,bd(this._telemetryService,this._stateManager.rootState.config?.values);let d=new wr([M,this._logService],[Et,this._productService],[Ye,u],[Qt,this._gitService],[Pr,this._telemetryService],[gt,this._sessionDataService]),f=this._register(new co(d,!0));d.set(Tn,this._checkpointService),this._changesets=this._register(f.createInstance(rr,this._stateManager)),d.set(Vc,this._changesets),this._changesetCoordinator=this._register(new Id(this._stateManager,this._changesets,this._configurationService)),this._completions=this._register(f.createInstance(Wo));let g=this._register(f.createInstance(qo));this._register(this._completions.registerProvider(new Ad(this._stateManager,g))),this._sideEffects=this._register(f.createInstance(Fo,this._stateManager,{getAgent:h=>this._findProviderForSession(h),sessionDataService:this._sessionDataService,agents:this._agents,onTurnComplete:h=>{let v=this._stateManager.getSessionState(h)?.summary.workingDirectory;this._attachGitState(y.parse(h),v?y.parse(v):void 0)}})),this._terminalManager=this._register(f.createInstance(bo,this._stateManager))}get stateManager(){return this._stateManager}get configurationService(){return this._configurationService}get terminalManager(){return this._terminalManager}get completionsService(){return this._completions}get completionTriggerCharacters(){return this._completions.triggerCharacters}registerProvider(e){if(this._providers.has(e.id))throw new Error(`Agent provider already registered: ${e.id}`);this._logService.info(`Registering agent provider: ${e.id}`),this._providers.set(e.id,e),this._providerSubscriptions.add(this._sideEffects.registerProgressListener(e)),e.onDidMaterializeSession&&this._providerSubscriptions.add(e.onDidMaterializeSession(n=>this._onDidMaterializeSession(n))),this._registerSkillCompletionProvider(),this._defaultProvider||(this._defaultProvider=e.id),this._updateAgents()}_registerSkillCompletionProvider(){if(this._skillCompletionProviderRegistered)return;this._skillCompletionProviderRegistered=!0;let e=this._register(new Wd(n=>this._findProviderForSession(n),this._fileService,this._logService));this._register(this._completions.registerProvider(e))}async authenticate(e){this._logService.trace(`[AgentService] authenticate called: resource=${e.resource}`);let n=[...this._providers.values()].filter(s=>s.getProtectedResources().some(a=>a.resource===e.resource)),r=await Promise.allSettled(n.map(s=>s.authenticate(e.resource,e.token))),o=!1;for(let s=0;s<r.length;s++){let a=r[s];a.status==="fulfilled"?o||=a.value:this._logService.error(a.reason,`[AgentService] Provider '${n[s].id}' authenticate threw for resource=${e.resource}`)}return{authenticated:o}}async listSessions(){this._logService.trace("[AgentService] listSessions called");let n=(await Promise.all([...this._providers.values()].map(s=>s.listSessions()))).flat(),o=(await Promise.all(n.map(async s=>{try{let a=await this._sessionDataService.tryOpenDatabase(s.session);if(!a)return s;try{let l=s.session.toString(),c=this._changesetCoordinator.getListMetadataKeys(l),u=c?{customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,...c}:{customTitle:!0,isRead:!0,isArchived:!0,isDone:!0},d=await a.object.getMetadataObject(u),f=s;return d.customTitle&&(f={...f,summary:d.customTitle}),d.isRead!==void 0&&(f={...f,isRead:d.isRead==="true"}),d.isArchived!==void 0?f={...f,isArchived:d.isArchived==="true"}:d.isDone!==void 0&&(f={...f,isArchived:d.isDone==="true"}),this._changesetCoordinator.decorateListEntry(f,d)}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,agent:a.summary.agent??s.agent,changesets:a.summary.changesets??s.changesets}: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 u=this._stateManager.getSessionState(e.fork.session.toString())?.turns.slice(0,e.fork.turnIndex+1)??[];if(u.length===0)e={...e,fork:void 0};else{let d=new Map;for(let f of u)d.set(f.id,j());e={...e,fork:{...e.fork,turnIdMapping:d}}}}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,l]=await Promise.all([this._resolveCreatedSessionConfig(r,e),r.getSessionCustomizations?r.getSessionCustomizations(s).catch(c=>{this._logService.error("[AgentService] createSession: failed to resolve initial customizations",c)}):Promise.resolve(void 0)]);if(e?.fork){let c=this._stateManager.getSessionState(e.fork.session.toString()),u=[];c&&e.fork.turnIdMapping&&(u=c.turns.slice(0,e.fork.turnIndex+1).map(g=>({...g,id:e.fork.turnIdMapping.get(g.id)??j()})));let d=this._buildInitialSummary(r,s,e,o,c?.summary.title??"Forked Session"),f=this._stateManager.createSession(d);f.config=a,f.turns=u,f.activeClient=e.activeClient,l&&l.length>0&&(f.customizations=[...l])}else{let c=this._buildInitialSummary(r,s,e,o,""),u=this._stateManager.createSession(c,{emitNotification:!o.provisional});u.config=a,u.activeClient=e?.activeClient,l&&l.length>0&&(u.customizations=[...l])}return a?.values&&Object.keys(a.values).length>0&&!o.provisional&&this._persistConfigValues(s,a.values),this._changesetCoordinator.onSessionCreated(s.toString()),o.provisional||(this._stateManager.dispatchServerAction(s.toString(),{type:"session/ready"}),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,agent:r?.agent,workingDirectory:(o.workingDirectory??r?.workingDirectory)?.toString(),changesets:Of(n.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(n,{type:"session/ready"}),this._attachGitState(e.session,e.workingDirectory),this._changesetCoordinator.onSessionMaterialized(n)}_attachGitState(e,n){if(!n)return;let r=e.toString();this._gitService.getSessionGitState(n).then(o=>{if(!o){this._stripGitOnlyChangesetEntries(r);return}let s=this._stateManager.getSessionState(r)?._meta;if(Oe(Vf(s),o))return;let a=ib(s,o);this._stateManager.setSessionMeta(r,a),this._updateBranchChangesetDescription(r,o)},o=>{this._logService.warn(`[AgentService] Failed to compute git state for ${e}`,o)})}_stripGitOnlyChangesetEntries(e){let r=this._stateManager.getSessionState(e)?.summary.changesets;if(!r||r.length===0)return;let o=sn(e),s=Sn(e),a=r.filter(l=>l.uriTemplate!==o&&l.uriTemplate!==s);a.length!==r.length&&this._stateManager.setSessionChangesets(e,a)}_updateBranchChangesetDescription(e,n){let r=Fv(n.branchName,n.baseBranchName),s=this._stateManager.getSessionState(e)?.summary.changesets;if(!s||s.length===0)return;let a=sn(e),l=!1,c=s.map(u=>{if(u.uriTemplate!==a||u.description===r)return u;if(l=!0,r===void 0){let{description:d,...f}=u;return f}return{...u,description:r}});l&&this._stateManager.setSessionChangesets(e,c)}_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()}: ${St(o)}`);return}r.object.setMetadata("configValues",JSON.stringify(n)).catch(o=>{this._logService.warn(`[AgentService] Failed to persist configValues for ${e.toString()}: ${St(o)}`)}).finally(()=>{r.dispose()})}async _resolveCreatedSessionConfig(e,n){if(!(!n?.config&&!n?.workingDirectory))try{let r=await e.resolveSessionConfig({provider:e.id,workingDirectory:n.workingDirectory,config:n.config});return{schema:r.schema,values:r.values}}catch(r){return this._logService.error(`[AgentService] Failed to resolve created session config for provider ${e.id}`,r),n.config?{schema:{type:"object",properties:{}},values:n.config}:void 0}}async resolveSessionConfig(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.resolveSessionConfig(e)}async sessionConfigCompletions(e){let n=e.provider??this._defaultProvider,r=n?this._providers.get(n):void 0;if(!r)throw new Error(`No agent provider registered for: ${n??"(none)"}`);return r.sessionConfigCompletions(e)}async completions(e){return this._completions.completions(e)}async getCompletionTriggerCharacters(){return this._completions.triggerCharacters}async disposeSession(e){this._logService.trace(`[AgentService] disposeSession: ${e.toString()}`);let n=this._findProviderForSession(e);n&&(await n.disposeSession(e),this._sessionToProvider.delete(e.toString())),this._changesetCoordinator.onSessionDisposed(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),a=In(r);if(s&&a&&!this._stateManager.getSessionState(a.sessionUri)&&(await this._changesetCoordinator.restoreSessionIfChangesetSubscription(e,c=>this.restoreSession(c)),s=this._stateManager.getSnapshot(r)),!s)if(await this._changesetCoordinator.tryHandleSubscribe(e,u=>this.restoreSession(u)))s=this._stateManager.getSnapshot(r);else{let u=Qe(e);u?await this._restoreSubagentSession(r,u.parentSession):await this.restoreSession(e),s=this._stateManager.getSnapshot(r)}if(!s)throw new Error(`Cannot subscribe to unknown resource: ${r}`);let l=this._stateManager.getSessionState(r);if(l&&Vf(l._meta)===void 0){let c=l.summary?.workingDirectory;this._attachGitState(e,c?y.parse(c):void 0)}return s}catch(o){throw this.unsubscribe(e,n),o}}addSubscriber(e,n){let r=this._resourceSubscribers.get(e),o=!r||r.size===0;r||(r=new Set,this._resourceSubscribers.set(e,r)),r.add(n),this._cancelPendingSessionGc(e),o&&this._changesetCoordinator.onFirstSubscriber(e)}unsubscribe(e,n){let r=this._resourceSubscribers.get(e);r&&(r.delete(n),!(r.size>0)&&(this._resourceSubscribers.delete(e),this._changesetCoordinator.onLastSubscriber(e),this._stateManager.onChangesetLivenessChanged(),!this._maybeScheduleSessionGc(e)&&this._maybeEvictIdleSession(e)))}_maybeScheduleSessionGc(e){if(Qe(e))return!1;let n=e.toString(),r=this._stateManager.getSessionState(n);return!r||r.turns.length>0||r.activeTurn!==void 0?!1:(this._pendingSessionGc.set(e,Us(()=>{this._pendingSessionGc.deleteAndDispose(e),this._runSessionGc(e).catch(o=>{this._logService.error(o,`[AgentService] GC failed for ${n}`)})},kR)),!0)}_cancelPendingSessionGc(e){this._pendingSessionGc.deleteAndDispose(e)}async _runSessionGc(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=this._stateManager.getSessionState(n);r&&(r.turns.length>0||r.activeTurn!==void 0)||(this._logService.info(`[AgentService] GC: disposing empty unsubscribed session ${n}`),await this.disposeSession(e))}_maybeEvictIdleSession(e){let n=e.toString();if(this._resourceSubscribers.has(e))return;let r=e;{let l;for(;l=Qe(r);)r=l.parentSession}if(this._resourceSubscribers.has(r))return;for(let l of this._resourceSubscribers.keys())if(this._isSubagentDescendantOf(l,r))return;let o=r.toString(),s=this._stateManager.getSessionState(o);if(!s||s.activeTurn!==void 0)return;this._logService.trace(`[AgentService] Evicting idle session: ${o} (triggered by unsubscribe of ${n})`);let a=nb(r);for(let l of this._stateManager.getSessionUrisWithPrefix(a))this._stateManager.removeSession(l);this._stateManager.removeSession(o)}_isChangesetEvictable(e){let n=y.parse(e);if(this._resourceSubscribers.has(n))return!1;let r=In(e);if(!r)return!1;let o=y.parse(r.sessionUri);if(this._resourceSubscribers.has(o))return!1;for(let s of this._resourceSubscribers.keys())if(this._isSubagentDescendantOf(s,o))return!1;return!this._changesets.isStaticChangesetComputeActive(e)}_isSubagentDescendantOf(e,n){let r=Qe(e);for(;r;){if(Up(r.parentSession,n))return!0;r=Qe(r.parentSession)}return!1}dispatchAction(e,n,r,o){this._logService.trace(`[AgentService] dispatchAction: type=${n.type}, clientId=${r}, clientSeq=${o}`,n);let s=this._clientDispatchQueues.get(r);if(!s&&!this._needsAsyncRewrite(e,n)){this._dispatchActionNow(e,n,r,o);return}let a=(s??Promise.resolve()).then(async()=>{let l=this._needsAsyncRewrite(e,n)?await this._rewriteUserMessageAttachments(e,n,r):n;this._dispatchActionNow(e,l,r,o)}).catch(l=>{this._logService.error(`[AgentService] async dispatchAction failed: ${St(l)}`)});this._clientDispatchQueues.set(r,a.finally(()=>{this._clientDispatchQueues.get(r)===a&&this._clientDispatchQueues.delete(r)}))}_dispatchActionNow(e,n,r,o){let s={clientId:r,clientSeq:o};this._stateManager.dispatchClientAction(e,n,s),n.type==="root/configChanged"&&this._configurationService.persistRootConfig(),this._sideEffects.handleAction(e,n)}_needsAsyncRewrite(e,n){if(n.type!=="session/turnStarted"&&n.type!=="session/pendingMessageSet")return!1;let r=this._attachmentsRoot(e).toString();return!!n.userMessage.attachments?.some(o=>this._isRewritableAttachment(o,r))}_isRewritableAttachment(e,n){return e.type==="embeddedResource"?!0:e.type==="resource"?!(e.displayKind==="directory"||e.uri.startsWith(n)):!1}_attachmentsRoot(e){return ee(this._sessionDataService.getSessionDataDir(y.parse(e)),fc)}async _rewriteUserMessageAttachments(e,n,r){let o=n.userMessage.attachments;if(!o?.length)return n;let s=this._attachmentsRoot(e),a=s.toString(),l=await Promise.all(o.map(c=>this._rewriteSingleAttachment(c,s,a,r)));return{...n,userMessage:{...n.userMessage,attachments:l}}}async _rewriteSingleAttachment(e,n,r,o){try{if(e.type==="embeddedResource"){let s=_r(e.data).buffer,a=this._attachmentBasename(e.label,e.contentType);return this._writeAndRewrite(e,s,a,n)}if(e.type==="resource"&&this._isRewritableAttachment(e,r)){let s=y.parse(e.uri),a=await this._readClientResource(s,o),l=this._attachmentBasename(e.label,Bl(s.path));return this._writeAndRewrite(e,a,l,n)}}catch(s){this._logService.warn(`[AgentService] Failed to rewrite attachment '${e.label}': ${St(s)}`)}return e}async _readClientResource(e,n){let r=n?Bo(e,n):e;try{return(await this._fileService.readFile(r)).value.buffer}catch(o){if(r!==e)return(await this._fileService.readFile(e)).value.buffer;throw o}}async _writeAndRewrite(e,n,r,o){let s=j(),a=ee(o,s,r);await this._fileService.writeFile(a,k.wrap(n));let l={type:"resource",uri:a.toString(),label:e.label,displayKind:e.displayKind,range:e.range,_meta:e._meta};return e.type==="resource"&&e.selection&&(l.selection=e.selection),l}_attachmentBasename(e,n){let r=(e||"attachment").replace(/[\\/:*?"<>|\u0000-\u001f]/g,"_");if(Ns(y.file(r)))return r;let o=n?Yy(n):void 0;return o?`${r}${o}`:r}async resourceList(e){let n;try{n=await this._fileService.resolve(e)}catch{throw new V(Ne.NotFound,`Directory not found: ${e.toString()}`)}if(!n.isDirectory)throw new V(Ne.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 V(tr,`No agent for session: ${n}`);let o=await this._getSessionMetadataForRestore(r,e);if(!o)throw new V(tr,`Session not found on backend: ${n}`);let s;try{s=await r.getSessionMessages(e)}catch(S){if(S instanceof V)throw S;let _=S instanceof Error?S.message:String(S);throw new V(po,`Failed to restore session ${n}: ${_}`)}let a=o.summary??"Session",l,c,u,d,f=this._sessionDataService.tryOpenDatabase?.(e);if(f)try{let S=await f;if(S)try{let _=await S.object.getMetadataObject({customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,configValues:!0,...Dm});if(_.customTitle&&(a=_.customTitle),_.isRead!==void 0&&(l=_.isRead==="true"),_.isArchived!==void 0?c=_.isArchived==="true":_.isDone!==void 0&&(c=_.isDone==="true"),d=_,_.configValues)try{u=JSON.parse(_.configValues)}catch(b){this._logService.warn(`[AgentService] Failed to parse persisted configValues for ${n}: ${St(b)}`)}}finally{S.dispose()}}catch{}let g=1;l&&(g|=32),c&&(g|=64);let h={resource:n,provider:r.id,title:a,status:g,createdAt:o.startTime,modifiedAt:o.modifiedTime,...o.project?{project:{uri:o.project.uri.toString(),displayName:o.project.displayName}}:{},model:o.model,agent:o.agent,workingDirectory:o.workingDirectory?.toString(),changesets:Of(n)};this._stateManager.restoreSession(h,[...s]),this._changesetCoordinator.onSessionRestored(n,d??{}),o._meta&&this._stateManager.setSessionMeta(n,o._meta);let v=await this._resolveCreatedSessionConfig(r,{workingDirectory:o.workingDirectory,config:u});if(v){let S=this._stateManager.getSessionState(n);S&&(S.config=v)}this._logService.info(`[AgentService] Restored session ${n} with ${s.length} turns`),this._attachGitState(e,o.workingDirectory)}async _getSessionMetadataForRestore(e,n){let r=n.toString();if(e.getSessionMetadata)try{return await e.getSessionMetadata(n)}catch(o){if(o instanceof V)throw o;try{return await this._getSessionMetadataFromCatalog(e,n)}catch(s){if(s instanceof V){let a=o instanceof Error?o.message:String(o);throw new V(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 V)throw s;let a=s instanceof Error?s.message:String(s);throw new V(po,`Failed to list sessions for ${r}: ${a}`)}return o.find(s=>s.session.toString()===r)}async resourceRead(e){let n=Ob(e.toString());if(n)return this._fetchSessionDbContent(n);let r=Mb(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 V(Ne.NotFound,`Content not found: ${e.toString()}`)}}async resourceWrite(e){let n=typeof e.uri=="string"?y.parse(e.uri):y.revive(e.uri),r;e.encoding==="base64"?r=_r(e.data):r=k.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=bn(o);throw s==="EntryExists"?new V(Ne.AlreadyExists,`File already exists: ${n.toString()}`):s==="NoPermissions"?new V(Ne.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ne.NotFound,`Failed to write file: ${n.toString()}`)}}async resourceCopy(e){let n=y.parse(e.source),r=y.parse(e.destination);try{return await this._fileService.copy(n,r,!e.failIfExists),{}}catch(o){let s=bn(o);throw s==="EntryExists"?new V(Ne.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new V(Ne.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ne.NotFound,`Source not found: ${n.toString()}`)}}async resourceDelete(e){let n=y.parse(e.uri);try{return await this._fileService.del(n,{recursive:e.recursive}),{}}catch(r){throw bn(r)==="NoPermissions"?new V(Ne.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ne.NotFound,`Resource not found: ${n.toString()}`)}}async resourceMove(e){let n=y.parse(e.source),r=y.parse(e.destination);try{return await this._fileService.move(n,r,!e.failIfExists),{}}catch(o){let s=bn(o);throw s==="EntryExists"?new V(Ne.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new V(Ne.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ne.NotFound,`Source not found: ${n.toString()}`)}}async shutdown(){this._logService.info("AgentService: shutting down all providers...");let e=[];for(let n of this._providers.values())e.push(n.shutdown());await Promise.all(e),this._sessionToProvider.clear()}async _fetchSessionDbContent(e){let n=y.parse(e.sessionUri),r=this._sessionDataService.openDatabase(n);try{let o=await r.object.readFileEditContent(e.toolCallId,e.filePath);if(!o)throw new V(Ne.NotFound,`File edit not found: toolCallId=${e.toolCallId}, filePath=${e.filePath}`);let s=e.part==="before"?o.beforeContent:o.afterContent;if(!s)throw new V(Ne.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 V(Ne.NotFound,`git service unavailable for: ${e.repoRelativePath}`);let n=this._stateManager.getSessionState(e.sessionUri)?.summary.workingDirectory;if(!n)throw new V(Ne.NotFound,`Session has no working directory for git-blob URI: ${e.sessionUri}`);let r=await this._gitService.showBlob(y.parse(n),e.sha,e.repoRelativePath);if(!r)throw new V(Ne.NotFound,`git blob not found: ${e.sha}:${e.repoRelativePath}`);return{data:r.toString(),encoding:"utf-8",contentType:"text/plain"}}async _restoreSubagentSession(e,n){let r=n.toString();if(!this._stateManager.getSessionState(r))try{await this.restoreSession(n)}catch{this._logService.warn(`[AgentService] Cannot restore parent session for subagent: ${r}`);return}let o=this._stateManager.getSessionState(r);if(!o)return;let s=[...o.turns];o.activeTurn&&s.push(o.activeTurn);let a;for(let d of s){for(let f of d.responseParts)if(f.kind==="toolCall"){let g=f.toolCall,h=g.status==="completed"||g.status==="running"?g.content:void 0;if(h){for(let v of h)if(v.type==="subagent"&&v.resource===e){a=v;break}}}if(a)break}let l=[],c=this._findProviderForSession(n);if(c)try{l=await c.getSessionMessages(y.parse(e))}catch(d){this._logService.warn(`[AgentService] Failed to load subagent turns for ${e}`,d)}let u=a?.title??"Subagent";this._stateManager.restoreSession({resource:e,provider:"subagent",title:u,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...o?.summary.project?{project:o.summary.project}:{}},[...l]),this._logService.info(`[AgentService] Restored subagent session: ${e} with ${l.length} turn(s)`)}_findProviderForSession(e){let n=typeof e=="string"?e:e.toString(),r=this._sessionToProvider.get(n);if(r)return this._providers.get(r);let o=q.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 zE}from"@github/copilot-sdk";import*as Ti from"fs/promises";var gI=Object.create(null);function p(i,t){if(Ee(t)){let e=gI[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return gI[i]=t,{id:i}}var hI={add:p("add",6e4),plus:p("plus",6e4),gistNew:p("gist-new",6e4),repoCreate:p("repo-create",6e4),lightbulb:p("lightbulb",60001),lightBulb:p("light-bulb",60001),repo:p("repo",60002),repoDelete:p("repo-delete",60002),gistFork:p("gist-fork",60003),repoForked:p("repo-forked",60003),gitPullRequest:p("git-pull-request",60004),gitPullRequestAbandoned:p("git-pull-request-abandoned",60004),recordKeys:p("record-keys",60005),keyboard:p("keyboard",60005),tag:p("tag",60006),gitPullRequestLabel:p("git-pull-request-label",60006),tagAdd:p("tag-add",60006),tagRemove:p("tag-remove",60006),person:p("person",60007),personFollow:p("person-follow",60007),personOutline:p("person-outline",60007),personFilled:p("person-filled",60007),sourceControl:p("source-control",60008),mirror:p("mirror",60009),mirrorPublic:p("mirror-public",60009),star:p("star",60010),starAdd:p("star-add",60010),starDelete:p("star-delete",60010),starEmpty:p("star-empty",60010),comment:p("comment",60011),commentAdd:p("comment-add",60011),alert:p("alert",60012),warning:p("warning",60012),search:p("search",60013),searchSave:p("search-save",60013),logOut:p("log-out",60014),signOut:p("sign-out",60014),logIn:p("log-in",60015),signIn:p("sign-in",60015),eye:p("eye",60016),eyeUnwatch:p("eye-unwatch",60016),eyeWatch:p("eye-watch",60016),circleFilled:p("circle-filled",60017),primitiveDot:p("primitive-dot",60017),closeDirty:p("close-dirty",60017),debugBreakpoint:p("debug-breakpoint",60017),debugBreakpointDisabled:p("debug-breakpoint-disabled",60017),debugHint:p("debug-hint",60017),terminalDecorationSuccess:p("terminal-decoration-success",60017),primitiveSquare:p("primitive-square",60018),edit:p("edit",60019),pencil:p("pencil",60019),info:p("info",60020),issueOpened:p("issue-opened",60020),gistPrivate:p("gist-private",60021),gitForkPrivate:p("git-fork-private",60021),lock:p("lock",60021),mirrorPrivate:p("mirror-private",60021),close:p("close",60022),removeClose:p("remove-close",60022),x:p("x",60022),repoSync:p("repo-sync",60023),sync:p("sync",60023),clone:p("clone",60024),desktopDownload:p("desktop-download",60024),beaker:p("beaker",60025),microscope:p("microscope",60025),vm:p("vm",60026),deviceDesktop:p("device-desktop",60026),file:p("file",60027),more:p("more",60028),ellipsis:p("ellipsis",60028),kebabHorizontal:p("kebab-horizontal",60028),mailReply:p("mail-reply",60029),reply:p("reply",60029),organization:p("organization",60030),organizationFilled:p("organization-filled",60030),organizationOutline:p("organization-outline",60030),newFile:p("new-file",60031),fileAdd:p("file-add",60031),newFolder:p("new-folder",60032),fileDirectoryCreate:p("file-directory-create",60032),trash:p("trash",60033),trashcan:p("trashcan",60033),history:p("history",60034),clock:p("clock",60034),folder:p("folder",60035),fileDirectory:p("file-directory",60035),symbolFolder:p("symbol-folder",60035),logoGithub:p("logo-github",60036),markGithub:p("mark-github",60036),github:p("github",60036),terminal:p("terminal",60037),console:p("console",60037),repl:p("repl",60037),zap:p("zap",60038),symbolEvent:p("symbol-event",60038),error:p("error",60039),stop:p("stop",60039),variable:p("variable",60040),symbolVariable:p("symbol-variable",60040),array:p("array",60042),symbolArray:p("symbol-array",60042),symbolModule:p("symbol-module",60043),symbolPackage:p("symbol-package",60043),symbolNamespace:p("symbol-namespace",60043),symbolObject:p("symbol-object",60043),symbolMethod:p("symbol-method",60044),symbolFunction:p("symbol-function",60044),symbolConstructor:p("symbol-constructor",60044),symbolBoolean:p("symbol-boolean",60047),symbolNull:p("symbol-null",60047),symbolNumeric:p("symbol-numeric",60048),symbolNumber:p("symbol-number",60048),symbolStructure:p("symbol-structure",60049),symbolStruct:p("symbol-struct",60049),symbolParameter:p("symbol-parameter",60050),symbolTypeParameter:p("symbol-type-parameter",60050),symbolKey:p("symbol-key",60051),symbolText:p("symbol-text",60051),symbolReference:p("symbol-reference",60052),goToFile:p("go-to-file",60052),symbolEnum:p("symbol-enum",60053),symbolValue:p("symbol-value",60053),symbolRuler:p("symbol-ruler",60054),symbolUnit:p("symbol-unit",60054),activateBreakpoints:p("activate-breakpoints",60055),archive:p("archive",60056),arrowBoth:p("arrow-both",60057),arrowDown:p("arrow-down",60058),arrowLeft:p("arrow-left",60059),arrowRight:p("arrow-right",60060),arrowSmallDown:p("arrow-small-down",60061),arrowSmallLeft:p("arrow-small-left",60062),arrowSmallRight:p("arrow-small-right",60063),arrowSmallUp:p("arrow-small-up",60064),arrowUp:p("arrow-up",60065),bell:p("bell",60066),bold:p("bold",60067),book:p("book",60068),bookmark:p("bookmark",60069),debugBreakpointConditionalUnverified:p("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:p("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:p("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:p("debug-breakpoint-data-unverified",60072),debugBreakpointData:p("debug-breakpoint-data",60073),debugBreakpointDataDisabled:p("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:p("debug-breakpoint-log-unverified",60074),debugBreakpointLog:p("debug-breakpoint-log",60075),debugBreakpointLogDisabled:p("debug-breakpoint-log-disabled",60075),briefcase:p("briefcase",60076),broadcast:p("broadcast",60077),browser:p("browser",60078),bug:p("bug",60079),calendar:p("calendar",60080),caseSensitive:p("case-sensitive",60081),check:p("check",60082),checklist:p("checklist",60083),chevronDown:p("chevron-down",60084),chevronLeft:p("chevron-left",60085),chevronRight:p("chevron-right",60086),chevronUp:p("chevron-up",60087),chromeClose:p("chrome-close",60088),chromeMaximize:p("chrome-maximize",60089),chromeMinimize:p("chrome-minimize",60090),chromeRestore:p("chrome-restore",60091),circleOutline:p("circle-outline",60092),circle:p("circle",60092),debugBreakpointUnverified:p("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:p("terminal-decoration-incomplete",60092),circleSlash:p("circle-slash",60093),circuitBoard:p("circuit-board",60094),clearAll:p("clear-all",60095),clippy:p("clippy",60096),closeAll:p("close-all",60097),cloudDownload:p("cloud-download",60098),cloudUpload:p("cloud-upload",60099),code:p("code",60100),collapseAll:p("collapse-all",60101),colorMode:p("color-mode",60102),commentDiscussion:p("comment-discussion",60103),creditCard:p("credit-card",60105),dash:p("dash",60108),dashboard:p("dashboard",60109),database:p("database",60110),debugContinue:p("debug-continue",60111),debugDisconnect:p("debug-disconnect",60112),debugPause:p("debug-pause",60113),debugRestart:p("debug-restart",60114),debugStart:p("debug-start",60115),debugStepInto:p("debug-step-into",60116),debugStepOut:p("debug-step-out",60117),debugStepOver:p("debug-step-over",60118),debugStop:p("debug-stop",60119),debug:p("debug",60120),deviceCameraVideo:p("device-camera-video",60121),deviceCamera:p("device-camera",60122),deviceMobile:p("device-mobile",60123),diffAdded:p("diff-added",60124),diffIgnored:p("diff-ignored",60125),diffModified:p("diff-modified",60126),diffRemoved:p("diff-removed",60127),diffRenamed:p("diff-renamed",60128),diff:p("diff",60129),diffSidebyside:p("diff-sidebyside",60129),discard:p("discard",60130),editorLayout:p("editor-layout",60131),emptyWindow:p("empty-window",60132),exclude:p("exclude",60133),extensions:p("extensions",60134),eyeClosed:p("eye-closed",60135),fileBinary:p("file-binary",60136),fileCode:p("file-code",60137),fileMedia:p("file-media",60138),filePdf:p("file-pdf",60139),fileSubmodule:p("file-submodule",60140),fileSymlinkDirectory:p("file-symlink-directory",60141),fileSymlinkFile:p("file-symlink-file",60142),fileZip:p("file-zip",60143),files:p("files",60144),filter:p("filter",60145),flame:p("flame",60146),foldDown:p("fold-down",60147),foldUp:p("fold-up",60148),fold:p("fold",60149),folderActive:p("folder-active",60150),folderOpened:p("folder-opened",60151),gear:p("gear",60152),gift:p("gift",60153),gistSecret:p("gist-secret",60154),gist:p("gist",60155),gitCommit:p("git-commit",60156),gitCompare:p("git-compare",60157),compareChanges:p("compare-changes",60157),gitMerge:p("git-merge",60158),githubAction:p("github-action",60159),githubAlt:p("github-alt",60160),globe:p("globe",60161),grabber:p("grabber",60162),graph:p("graph",60163),gripper:p("gripper",60164),heart:p("heart",60165),home:p("home",60166),horizontalRule:p("horizontal-rule",60167),hubot:p("hubot",60168),inbox:p("inbox",60169),issueReopened:p("issue-reopened",60171),issues:p("issues",60172),italic:p("italic",60173),jersey:p("jersey",60174),json:p("json",60175),bracket:p("bracket",60175),kebabVertical:p("kebab-vertical",60176),key:p("key",60177),law:p("law",60178),lightbulbAutofix:p("lightbulb-autofix",60179),linkExternal:p("link-external",60180),link:p("link",60181),listOrdered:p("list-ordered",60182),listUnordered:p("list-unordered",60183),liveShare:p("live-share",60184),loading:p("loading",60185),location:p("location",60186),mailRead:p("mail-read",60187),mail:p("mail",60188),markdown:p("markdown",60189),megaphone:p("megaphone",60190),mention:p("mention",60191),milestone:p("milestone",60192),gitPullRequestMilestone:p("git-pull-request-milestone",60192),mortarBoard:p("mortar-board",60193),move:p("move",60194),multipleWindows:p("multiple-windows",60195),mute:p("mute",60196),noNewline:p("no-newline",60197),note:p("note",60198),octoface:p("octoface",60199),openPreview:p("open-preview",60200),package:p("package",60201),paintcan:p("paintcan",60202),pin:p("pin",60203),play:p("play",60204),run:p("run",60204),plug:p("plug",60205),preserveCase:p("preserve-case",60206),preview:p("preview",60207),project:p("project",60208),pulse:p("pulse",60209),question:p("question",60210),quote:p("quote",60211),radioTower:p("radio-tower",60212),reactions:p("reactions",60213),references:p("references",60214),refresh:p("refresh",60215),regex:p("regex",60216),remoteExplorer:p("remote-explorer",60217),remote:p("remote",60218),remove:p("remove",60219),replaceAll:p("replace-all",60220),replace:p("replace",60221),repoClone:p("repo-clone",60222),repoForcePush:p("repo-force-push",60223),repoPull:p("repo-pull",60224),repoPush:p("repo-push",60225),report:p("report",60226),requestChanges:p("request-changes",60227),rocket:p("rocket",60228),rootFolderOpened:p("root-folder-opened",60229),rootFolder:p("root-folder",60230),rss:p("rss",60231),ruby:p("ruby",60232),saveAll:p("save-all",60233),saveAs:p("save-as",60234),save:p("save",60235),screenFull:p("screen-full",60236),screenNormal:p("screen-normal",60237),searchStop:p("search-stop",60238),server:p("server",60240),settingsGear:p("settings-gear",60241),settings:p("settings",60242),shield:p("shield",60243),smiley:p("smiley",60244),sortPrecedence:p("sort-precedence",60245),splitHorizontal:p("split-horizontal",60246),splitVertical:p("split-vertical",60247),squirrel:p("squirrel",60248),starFull:p("star-full",60249),starHalf:p("star-half",60250),symbolClass:p("symbol-class",60251),symbolColor:p("symbol-color",60252),symbolConstant:p("symbol-constant",60253),symbolEnumMember:p("symbol-enum-member",60254),symbolField:p("symbol-field",60255),symbolFile:p("symbol-file",60256),symbolInterface:p("symbol-interface",60257),symbolKeyword:p("symbol-keyword",60258),symbolMisc:p("symbol-misc",60259),symbolOperator:p("symbol-operator",60260),symbolProperty:p("symbol-property",60261),wrench:p("wrench",60261),wrenchSubaction:p("wrench-subaction",60261),symbolSnippet:p("symbol-snippet",60262),tasklist:p("tasklist",60263),telescope:p("telescope",60264),textSize:p("text-size",60265),threeBars:p("three-bars",60266),thumbsdown:p("thumbsdown",60267),thumbsup:p("thumbsup",60268),tools:p("tools",60269),triangleDown:p("triangle-down",60270),triangleLeft:p("triangle-left",60271),triangleRight:p("triangle-right",60272),triangleUp:p("triangle-up",60273),twitter:p("twitter",60274),unfold:p("unfold",60275),unlock:p("unlock",60276),unmute:p("unmute",60277),unverified:p("unverified",60278),verified:p("verified",60279),versions:p("versions",60280),vmActive:p("vm-active",60281),vmOutline:p("vm-outline",60282),vmRunning:p("vm-running",60283),watch:p("watch",60284),whitespace:p("whitespace",60285),wholeWord:p("whole-word",60286),window:p("window",60287),wordWrap:p("word-wrap",60288),zoomIn:p("zoom-in",60289),zoomOut:p("zoom-out",60290),listFilter:p("list-filter",60291),listFlat:p("list-flat",60292),listSelection:p("list-selection",60293),selection:p("selection",60293),listTree:p("list-tree",60294),debugBreakpointFunctionUnverified:p("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:p("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:p("debug-breakpoint-function-disabled",60296),debugStackframeActive:p("debug-stackframe-active",60297),circleSmallFilled:p("circle-small-filled",60298),debugStackframeDot:p("debug-stackframe-dot",60298),terminalDecorationMark:p("terminal-decoration-mark",60298),debugStackframe:p("debug-stackframe",60299),debugStackframeFocused:p("debug-stackframe-focused",60299),debugBreakpointUnsupported:p("debug-breakpoint-unsupported",60300),symbolString:p("symbol-string",60301),debugReverseContinue:p("debug-reverse-continue",60302),debugStepBack:p("debug-step-back",60303),debugRestartFrame:p("debug-restart-frame",60304),debugAlt:p("debug-alt",60305),callIncoming:p("call-incoming",60306),callOutgoing:p("call-outgoing",60307),menu:p("menu",60308),expandAll:p("expand-all",60309),feedback:p("feedback",60310),gitPullRequestReviewer:p("git-pull-request-reviewer",60310),groupByRefType:p("group-by-ref-type",60311),ungroupByRefType:p("ungroup-by-ref-type",60312),account:p("account",60313),gitPullRequestAssignee:p("git-pull-request-assignee",60313),bellDot:p("bell-dot",60314),debugConsole:p("debug-console",60315),library:p("library",60316),output:p("output",60317),runAll:p("run-all",60318),syncIgnored:p("sync-ignored",60319),pinned:p("pinned",60320),githubInverted:p("github-inverted",60321),serverProcess:p("server-process",60322),serverEnvironment:p("server-environment",60323),pass:p("pass",60324),issueClosed:p("issue-closed",60324),stopCircle:p("stop-circle",60325),playCircle:p("play-circle",60326),record:p("record",60327),debugAltSmall:p("debug-alt-small",60328),vmConnect:p("vm-connect",60329),cloud:p("cloud",60330),merge:p("merge",60331),export:p("export",60332),graphLeft:p("graph-left",60333),magnet:p("magnet",60334),notebook:p("notebook",60335),redo:p("redo",60336),checkAll:p("check-all",60337),pinnedDirty:p("pinned-dirty",60338),passFilled:p("pass-filled",60339),circleLargeFilled:p("circle-large-filled",60340),circleLarge:p("circle-large",60341),circleLargeOutline:p("circle-large-outline",60341),combine:p("combine",60342),gather:p("gather",60342),table:p("table",60343),variableGroup:p("variable-group",60344),typeHierarchy:p("type-hierarchy",60345),typeHierarchySub:p("type-hierarchy-sub",60346),typeHierarchySuper:p("type-hierarchy-super",60347),gitPullRequestCreate:p("git-pull-request-create",60348),runAbove:p("run-above",60349),runBelow:p("run-below",60350),notebookTemplate:p("notebook-template",60351),debugRerun:p("debug-rerun",60352),workspaceTrusted:p("workspace-trusted",60353),workspaceUntrusted:p("workspace-untrusted",60354),workspaceUnknown:p("workspace-unknown",60355),terminalCmd:p("terminal-cmd",60356),terminalDebian:p("terminal-debian",60357),terminalLinux:p("terminal-linux",60358),terminalPowershell:p("terminal-powershell",60359),terminalTmux:p("terminal-tmux",60360),terminalUbuntu:p("terminal-ubuntu",60361),terminalBash:p("terminal-bash",60362),arrowSwap:p("arrow-swap",60363),copy:p("copy",60364),personAdd:p("person-add",60365),filterFilled:p("filter-filled",60366),wand:p("wand",60367),debugLineByLine:p("debug-line-by-line",60368),inspect:p("inspect",60369),layers:p("layers",60370),layersDot:p("layers-dot",60371),layersActive:p("layers-active",60372),compass:p("compass",60373),compassDot:p("compass-dot",60374),compassActive:p("compass-active",60375),azure:p("azure",60376),issueDraft:p("issue-draft",60377),gitPullRequestClosed:p("git-pull-request-closed",60378),gitPullRequestDraft:p("git-pull-request-draft",60379),debugAll:p("debug-all",60380),debugCoverage:p("debug-coverage",60381),runErrors:p("run-errors",60382),folderLibrary:p("folder-library",60383),debugContinueSmall:p("debug-continue-small",60384),beakerStop:p("beaker-stop",60385),graphLine:p("graph-line",60386),graphScatter:p("graph-scatter",60387),pieChart:p("pie-chart",60388),bracketDot:p("bracket-dot",60389),bracketError:p("bracket-error",60390),lockSmall:p("lock-small",60391),azureDevops:p("azure-devops",60392),verifiedFilled:p("verified-filled",60393),newline:p("newline",60394),layout:p("layout",60395),layoutActivitybarLeft:p("layout-activitybar-left",60396),layoutActivitybarRight:p("layout-activitybar-right",60397),layoutPanelLeft:p("layout-panel-left",60398),layoutPanelCenter:p("layout-panel-center",60399),layoutPanelJustify:p("layout-panel-justify",60400),layoutPanelRight:p("layout-panel-right",60401),layoutPanel:p("layout-panel",60402),layoutSidebarLeft:p("layout-sidebar-left",60403),layoutSidebarRight:p("layout-sidebar-right",60404),layoutStatusbar:p("layout-statusbar",60405),layoutMenubar:p("layout-menubar",60406),layoutCentered:p("layout-centered",60407),target:p("target",60408),indent:p("indent",60409),recordSmall:p("record-small",60410),errorSmall:p("error-small",60411),terminalDecorationError:p("terminal-decoration-error",60411),arrowCircleDown:p("arrow-circle-down",60412),arrowCircleLeft:p("arrow-circle-left",60413),arrowCircleRight:p("arrow-circle-right",60414),arrowCircleUp:p("arrow-circle-up",60415),layoutSidebarRightOff:p("layout-sidebar-right-off",60416),layoutPanelOff:p("layout-panel-off",60417),layoutSidebarLeftOff:p("layout-sidebar-left-off",60418),blank:p("blank",60419),heartFilled:p("heart-filled",60420),map:p("map",60421),mapHorizontal:p("map-horizontal",60421),foldHorizontal:p("fold-horizontal",60421),mapFilled:p("map-filled",60422),mapHorizontalFilled:p("map-horizontal-filled",60422),foldHorizontalFilled:p("fold-horizontal-filled",60422),circleSmall:p("circle-small",60423),bellSlash:p("bell-slash",60424),bellSlashDot:p("bell-slash-dot",60425),commentUnresolved:p("comment-unresolved",60426),gitPullRequestGoToChanges:p("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:p("git-pull-request-new-changes",60428),searchFuzzy:p("search-fuzzy",60429),commentDraft:p("comment-draft",60430),send:p("send",60431),sparkle:p("sparkle",60432),insert:p("insert",60433),mic:p("mic",60434),thumbsdownFilled:p("thumbsdown-filled",60435),thumbsupFilled:p("thumbsup-filled",60436),coffee:p("coffee",60437),snake:p("snake",60438),game:p("game",60439),vr:p("vr",60440),chip:p("chip",60441),piano:p("piano",60442),music:p("music",60443),micFilled:p("mic-filled",60444),repoFetch:p("repo-fetch",60445),copilot:p("copilot",60446),lightbulbSparkle:p("lightbulb-sparkle",60447),robot:p("robot",60448),sparkleFilled:p("sparkle-filled",60449),diffSingle:p("diff-single",60450),diffMultiple:p("diff-multiple",60451),surroundWith:p("surround-with",60452),share:p("share",60453),gitStash:p("git-stash",60454),gitStashApply:p("git-stash-apply",60455),gitStashPop:p("git-stash-pop",60456),vscode:p("vscode",60457),vscodeInsiders:p("vscode-insiders",60458),codeOss:p("code-oss",60459),runCoverage:p("run-coverage",60460),runAllCoverage:p("run-all-coverage",60461),coverage:p("coverage",60462),githubProject:p("github-project",60463),mapVertical:p("map-vertical",60464),foldVertical:p("fold-vertical",60464),mapVerticalFilled:p("map-vertical-filled",60465),foldVerticalFilled:p("fold-vertical-filled",60465),goToSearch:p("go-to-search",60466),percentage:p("percentage",60467),sortPercentage:p("sort-percentage",60467),attach:p("attach",60468),goToEditingSession:p("go-to-editing-session",60469),editSession:p("edit-session",60470),codeReview:p("code-review",60471),copilotWarning:p("copilot-warning",60472),python:p("python",60473),copilotLarge:p("copilot-large",60474),copilotWarningLarge:p("copilot-warning-large",60475),keyboardTab:p("keyboard-tab",60476),copilotBlocked:p("copilot-blocked",60477),copilotNotConnected:p("copilot-not-connected",60478),flag:p("flag",60479),lightbulbEmpty:p("lightbulb-empty",60480),symbolMethodArrow:p("symbol-method-arrow",60481),copilotUnavailable:p("copilot-unavailable",60482),repoPinned:p("repo-pinned",60483),keyboardTabAbove:p("keyboard-tab-above",60484),keyboardTabBelow:p("keyboard-tab-below",60485),gitPullRequestDone:p("git-pull-request-done",60486),mcp:p("mcp",60487),extensionsLarge:p("extensions-large",60488),layoutPanelDock:p("layout-panel-dock",60489),layoutSidebarLeftDock:p("layout-sidebar-left-dock",60490),layoutSidebarRightDock:p("layout-sidebar-right-dock",60491),copilotInProgress:p("copilot-in-progress",60492),copilotError:p("copilot-error",60493),copilotSuccess:p("copilot-success",60494),chatSparkle:p("chat-sparkle",60495),searchSparkle:p("search-sparkle",60496),editSparkle:p("edit-sparkle",60497),copilotSnooze:p("copilot-snooze",60498),sendToRemoteAgent:p("send-to-remote-agent",60499),commentDiscussionSparkle:p("comment-discussion-sparkle",60500),chatSparkleWarning:p("chat-sparkle-warning",60501),chatSparkleError:p("chat-sparkle-error",60502),collection:p("collection",60503),newCollection:p("new-collection",60504),thinking:p("thinking",60505),build:p("build",60506),commentDiscussionQuote:p("comment-discussion-quote",60507),cursor:p("cursor",60508),eraser:p("eraser",60509),fileText:p("file-text",60510),quotes:p("quotes",60512),rename:p("rename",60513),runWithDeps:p("run-with-deps",60514),debugConnected:p("debug-connected",60515),strikethrough:p("strikethrough",60516),openInProduct:p("open-in-product",60517),indexZero:p("index-zero",60518),agent:p("agent",60519),editCode:p("edit-code",60520),repoSelected:p("repo-selected",60521),skip:p("skip",60522),mergeInto:p("merge-into",60523),gitBranchChanges:p("git-branch-changes",60524),gitBranchStagedChanges:p("git-branch-staged-changes",60525),gitBranchConflicts:p("git-branch-conflicts",60526),gitBranch:p("git-branch",60527),gitBranchCreate:p("git-branch-create",60527),gitBranchDelete:p("git-branch-delete",60527),searchLarge:p("search-large",60528),terminalGitBash:p("terminal-git-bash",60529),windowActive:p("window-active",60530),forward:p("forward",60531),download:p("download",60532),clockface:p("clockface",60533),unarchive:p("unarchive",60534),sessionInProgress:p("session-in-progress",60535),collectionSmall:p("collection-small",60536),vmSmall:p("vm-small",60537),cloudSmall:p("cloud-small",60538),addSmall:p("add-small",60539),removeSmall:p("remove-small",60540),worktreeSmall:p("worktree-small",60541),worktree:p("worktree",60542),screenCut:p("screen-cut",60543),ask:p("ask",60544),openai:p("openai",60545),claude:p("claude",60546),openInWindow:p("open-in-window",60547),newSession:p("new-session",60548),terminalSecure:p("terminal-secure",60549),chatImport:p("chat-import",60550),chatExport:p("chat-export",60551),shareWindow:p("share-window",60552),circleSlashCompact:p("circle-slash-compact",60553),copilotCompact:p("copilot-compact",60554),folderOpenedCompact:p("folder-opened-compact",60555),folderCompact:p("folder-compact",60556),gearCompact:p("gear-compact",60557),gitBranchCompact:p("git-branch-compact",60558),libraryCompact:p("library-compact",60559),recordKeysCompact:p("record-keys-compact",60560),remoteCompact:p("remote-compact",60561),repoForkedCompact:p("repo-forked-compact",60562),repoCompact:p("repo-compact",60563),shieldCompact:p("shield-compact",60564),sparkleCompact:p("sparkle-compact",60565),symbolColorCompact:p("symbol-color-compact",60566),windowCompact:p("window-compact",60567),errorCompact:p("error-compact",60568),warningCompact:p("warning-compact",60569),passCompact:p("pass-compact",60570),important:p("important",60571),importantCompact:p("important-compact",60572),rocketCompact:p("rocket-compact",60573),unpin:p("unpin",60574),addCompact:p("add-compact",60575),attachCompact:p("attach-compact",60576),beakerCompact:p("beaker-compact",60577),checkCompact:p("check-compact",60578),checklistCompact:p("checklist-compact",60579),chevronDownCompact:p("chevron-down-compact",60580),chevronLeftCompact:p("chevron-left-compact",60581),chevronRightCompact:p("chevron-right-compact",60582),chevronUpCompact:p("chevron-up-compact",60583),circleFilledCompact:p("circle-filled-compact",60584),circleSmallFilledCompact:p("circle-small-filled-compact",60585),closeCompact:p("close-compact",60586),collapseAllCompact:p("collapse-all-compact",60587),commentCompact:p("comment-compact",60588),commentUnresolvedCompact:p("comment-unresolved-compact",60589),debugConnectedCompact:p("debug-connected-compact",60590),debugDisconnectCompact:p("debug-disconnect-compact",60591),editCompact:p("edit-compact",60592),fileMediaCompact:p("file-media-compact",60593),gitFetch:p("git-fetch",60594),lightbulbCompact:p("lightbulb-compact",60595),loadingCompact:p("loading-compact",60596),passFilledCompact:p("pass-filled-compact",60597),projectCompact:p("project-compact",60598),refreshCompact:p("refresh-compact",60599),searchCompact:p("search-compact",60600),sessionInProgressCompact:p("session-in-progress-compact",60601),syncCompact:p("sync-compact",60602),terminalCompact:p("terminal-compact",60603),vmPending:p("vm-pending",60604),worktreeCompact:p("worktree-compact",60605)};var AR={dialogError:p("dialog-error","error"),dialogWarning:p("dialog-warning","warning"),dialogInfo:p("dialog-info","info"),dialogClose:p("dialog-close","close"),treeItemExpanded:p("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:p("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:p("tree-filter-on-type-off","list-selection"),treeFilterClear:p("tree-filter-clear","close"),treeItemLoading:p("tree-item-loading","loading"),menuSelection:p("menu-selection","check"),menuSubmenu:p("menu-submenu","chevron-right"),menuBarMore:p("menubar-more","more"),scrollbarButtonLeft:p("scrollbar-button-left","triangle-left"),scrollbarButtonRight:p("scrollbar-button-right","triangle-right"),scrollbarButtonUp:p("scrollbar-button-up","triangle-up"),scrollbarButtonDown:p("scrollbar-button-down","triangle-down"),toolBarMore:p("toolbar-more","more"),quickInputBack:p("quick-input-back","arrow-left"),dropDownButton:p("drop-down-button",60084),symbolCustomColor:p("symbol-customcolor",60252),exportIcon:p("export",60332),workspaceUnspecified:p("workspace-unspecified",60355),newLine:p("newline",60394),thumbsDownFilled:p("thumbsdown-filled",60435),thumbsUpFilled:p("thumbsup-filled",60436),gitFetch:p("git-fetch",60445),lightbulbSparkleAutofix:p("lightbulb-sparkle-autofix",60447),debugBreakpointPending:p("debug-breakpoint-pending",60377),chatImport:p("chat-import",60550),chatExport:p("chat-export",60551)},Vd={...hI,...AR};var yI;(t=>{function i(e){return!!e&&typeof e=="object"&&typeof e.id=="string"}t.isThemeColor=i})(yI||={});var Ua;(_=>{_.iconNameSegment="[A-Za-z0-9]+",_.iconNameExpression="[A-Za-z0-9-]+",_.iconModifierExpression="~[A-Za-z]+",_.iconNameCharacter="[A-Za-z0-9~-]";let r=new RegExp(`^(${_.iconNameExpression})(${_.iconModifierExpression})?$`);function o(b){let I=r.exec(b.id);if(!I)return o(Vd.error);let[,R,P]=I,J=["codicon","codicon-"+R];return P&&J.push("codicon-modifier-"+P.substring(1)),J}_.asClassNameArray=o;function s(b){return o(b).join(" ")}_.asClassName=s;function a(b){return"."+o(b).join(".")}_.asCSSSelector=a;function l(b){return!!b&&typeof b=="object"&&typeof b.id=="string"&&(typeof b.color>"u"||yI.isThemeColor(b.color))}_.isThemeIcon=l;let c=new RegExp(`^\\$\\((${_.iconNameExpression}(?:${_.iconModifierExpression})?)\\)$`);function u(b){let I=c.exec(b);if(!I)return;let[,R]=I;return{id:R}}_.fromString=u;function d(b){return{id:b}}_.fromId=d;function f(b,I){let R=b.id,P=R.lastIndexOf("~");return P!==-1&&(R=R.substring(0,P)),I&&(R=`${R}~${I}`),{id:R}}_.modify=f;function g(b){let I=b.id.lastIndexOf("~");if(I!==-1)return b.id.substring(I+1)}_.getModifier=g;function h(b,I){return b.id===I.id&&b.color?.id===I.color?.id}_.isEqual=h;function v(b){return b?.id===Vd.file.id}_.isFile=v;function S(b){return b?.id===Vd.folder.id}_.isFolder=S})(Ua||={});var zm=new RegExp(`\\$\\(${Ua.iconNameExpression}(?:${Ua.iconModifierExpression})?\\)`,"g"),DR=new RegExp(`(\\\\)?${zm.source}`,"g");function vI(i){return i.replace(DR,(t,e)=>e?t:`\\${t}`)}var XK=new RegExp(`\\\\${zm.source}`,"g");var ZK=new RegExp(`(\\s)?(\\\\)?${zm.source}(\\s)?`,"g");var eG=new RegExp(`\\$\\(${Ua.iconNameCharacter}+\\)`,"g");var Bd=class i{static lift(t){let e=new i(t.value,t);return e.uris=t.uris,e.baseUri=t.baseUri?y.revive(t.baseUri):void 0,e}constructor(t="",e=!1){if(this.value=t,typeof this.value!="string")throw op("value");typeof e=="boolean"?(this.isTrusted=e,this.supportThemeIcons=!1,this.supportHtml=!1,this.supportAlertSyntax=!1):(this.isTrusted=e.isTrusted??void 0,this.supportThemeIcons=e.supportThemeIcons??!1,this.supportHtml=e.supportHtml??!1,this.supportAlertSyntax=e.supportAlertSyntax??!1)}appendText(t,e=0){return this.value+=OR(this.supportThemeIcons?vI(t):t).replace(/([ \t]+)/g,(n,r)=>"&nbsp;".repeat(r.length)).replace(/\>/gm,"\\>").replace(/\n/g,e===1?`\\
`:`

`),this}appendMarkdown(t){return this.value+=t,this}appendCodeblock(t,e){return this.value+=`
${LR(e,t)}
`,this}appendLink(t,e,n){return this.value+="[",this.value+=this._escape(e,"]"),this.value+="](",this.value+=this._escape(String(t),")"),n&&(this.value+=` "${this._escape(this._escape(n,'"'),")")}"`),this.value+=")",this}_escape(t,e){let n=new RegExp(Mt(e),"g");return t.replace(n,(r,o)=>t.charAt(o-1)!=="\\"?`\\${r}`:r)}};function OR(i){return i.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function zo(i){return i.replace(/[\\\]]/g,"\\$&")}function LR(i,t){let e=i.match(/^`+/gm)?.reduce((r,o)=>r.length>o.length?r:o).length??0,n=e>=3?e+1:3;return[`${"`".repeat(n)}${t}`,i,`${"`".repeat(n)}`].join(`
`)}function We(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 jo=$("agentPluginManager");var Hd=$("agentHostOTelService");function MR(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 Ii(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=MR(o,r);return!s||!NR(s.directory,e)?!1:(t.command=s.command,!0)}function NR(i,t){if(!i)return!1;let e=a=>a.replace(/[\\/]+$/,""),n=e(i),r=e(t.fsPath);if(!n||!r)return!1;let o,s;try{o=y.file(n),s=y.file(r)}catch{return!1}return vt.isEqual(o,s)}var UR=["plan","compact"];function FR(i){switch(i){case"plan":return m(2025,null);case"compact":return m(2024,null)}}function bI(i){let t=/^\/(plan|compact)(?:$|\s+([\s\S]*))/.exec(i);if(t)return{command:t[1],rest:(t[2]??"").trim()}}var qd=class{constructor(t,e){this.copilotcliId=t;this._sessionInfo=e;this.kinds=new Set(["userMessage"]);this.triggerCharacters=["/"]}async provideCompletionItems(t,e){if(q.provider(t.channel)!==this.copilotcliId)return[];let n=Fd(t.text,t.offset);if(!n)return[];let r=q.id(t.channel),o=this._sessionInfo?.hasHistory(r)??!0,s=n.typed,a=[];for(let l of UR)s.length>0&&!l.startsWith(s)||l==="compact"&&!o||a.push({insertText:l==="plan"?"/"+l+" ":"/"+l,rangeStart:0,rangeEnd:n.rangeEnd,attachment:{type:"simple",label:"/"+l,_meta:{command:l,description:FR(l)}}});return a}};function SI(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 WR=[/^\s*\*\*\*\s+Update File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Add File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Delete File:\s*(.+?)\s*$/,/^\s*\*\*\*\s+Move to:\s*(.+?)\s*$/];function jm(i){let t=typeof i=="string"?i:i?.input??i?.patch;if(typeof t!="string"||t.length===0)return[];let e=new Set,n=[];for(let r of t.split(`
`))for(let o of WR){let s=o.exec(r);if(s){let a=s[1];a&&!e.has(a)&&(e.add(a),n.push(a));break}}return n}var $R=new Set(["edit","str_replace","insert","create","apply_patch","git_apply_patch"]),VR=new Set(["edit","str_replace","insert","create"]);function Ko(i,t){return $R.has(i)?!0:i==="str_replace_editor"?t!==void 0&&VR.has(t):!1}function zd(i){if(typeof i=="string"){try{i=JSON.parse(i)}catch{return jm(i)}if(typeof i=="string")return jm(i)}if(!i||typeof i!="object")return[];let t=i;if(typeof t.input=="string"||typeof t.patch=="string")return jm(t);let e=i;return typeof e.path=="string"?[e.path]:[]}var Fa=new Set(["bash","powershell"]),Km=new Set(["write_bash","write_powershell"]),II=new Set(["read_bash","read_powershell"]),BR=new Set(["task"]),HR=new Set(["grep","rg","glob"]),qR=new Set(["report_intent","skill"]);function jd(i){return qR.has(i)}function Kd(i){return Fa.has(i)}function cn(i,t){return i.length>t?i.substring(0,t-3)+"...":i}function Rn(i){let t=y.file(i);return`[${_e(t)}](${t})`}function _I(i){return new Bd().appendLink(i,cn(i,80)).value}function ue(i){return{markdown:i}}function En(i){switch(i){case"str_replace_editor":case"edit":case"str_replace":case"insert":return m(2098,null);case"create":return m(2096,null);case"view":return m(2112,null);case"bash":case"powershell":return m(2120,null);case"read_bash":case"read_powershell":return m(2114,null);case"write_bash":return m(2133,null);case"write_powershell":return m(2134,null);case"stop_bash":case"stop_powershell":case"bash_shutdown":case"powershell_shutdown":return m(2124,null);case"list_bash":case"list_powershell":return m(2105,null);case"grep":case"rg":case"glob":return m(2118,null);case"search_code_subagent":return m(2119,null);case"apply_patch":return m(2092,null);case"git_apply_patch":return m(2110,null);case"codeql_checker":return m(2094,null);case"code_review":return m(2095,null);case"reply_to_comment":return m(2115,null);case"think":return m(2128,null);case"report_intent":return m(2116,null);case"report_progress":return m(2117,null);case"web_search":return m(2131,null);case"web_fetch":return m(2101,null);case"update_todo":return m(2130,null);case"show_file":return m(2121,null);case"fetch_copilot_cli_documentation":return m(2100,null);case"propose_work":return m(2111,null);case"task_complete":return m(2127,null);case"ask_user":return m(2093,null);case"skill":return m(2103,null);case"task":return m(2126,null);case"list_agents":return m(2104,null);case"read_agent":return m(2113,null);case"exit_plan_mode":return m(2099,null);case"sql":return m(2123,null);case"lsp":return m(2106,null);case"create_pull_request":return m(2097,null);case"gh-advisory-database":return m(2102,null);case"store_memory":return m(2125,null);case"parallel_validation":return m(2109,null);case"write_agent":return m(2132,null);case"mcp_reload":return m(2107,null);case"mcp_validate":return m(2108,null);case"tool_search_tool_regex":return m(2129,null);default:return i}}function Ur(i,t,e){if(Fa.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return ue(m(2079,null,We(cn(r,80))))}return m(2078,null,t)}if(Km.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return ue(m(2091,null,We(cn(r,80))))}return m(2090,null)}if(II.has(i))return m(2077,null);switch(i){case"view":{let n=e;if(n?.path){let r=Rn(n.path),o=SI(n.view_range);return o?o.endLine===-1?ue(m(2085,null,r,o.startLine)):o.endLine!==o.startLine?ue(m(2087,null,r,o.startLine,o.endLine)):ue(m(2086,null,r,o.startLine)):ue(m(2084,null,r))}return m(2083,null)}case"edit":{let n=e;return n?.path?ue(m(2067,null,Rn(n.path))):m(2066,null)}case"create":{let n=e;return n?.path?ue(m(2065,null,Rn(n.path))):m(2064,null)}case"grep":{let n=e;return n?.pattern?ue(m(2073,null,We(cn(n.pattern,80)))):m(2072,null)}case"rg":{let n=e;return n?.pattern?ue(m(2073,null,We(cn(n.pattern,80)))):m(2072,null)}case"glob":{let n=e;return n?.pattern?ue(m(2071,null,We(cn(n.pattern,80)))):m(2070,null)}case"apply_patch":case"git_apply_patch":{let n=zd(e);return n.length===1?ue(m(2075,null,Rn(n[0]))):n.length>1?ue(m(2076,null,n.map(Rn).join(", "))):m(2074,null)}case"sql":return e?.description||m(2082,null);case"web_fetch":{let n=e;return n?.url?ue(m(2088,null,_I(n.url))):m(2089,null)}case"exit_plan_mode":return m(2068,null);default:return m(2069,null,t)}}function Gd(i,t,e,n){if(!n)return m(2040,null,t);if(Fa.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return ue(m(2051,null,We(cn(o,80))))}return m(2050,null,t)}if(Km.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return ue(m(2063,null,We(cn(o,80))))}return m(2062,null)}if(II.has(i))return m(2049,null);switch(i){case"view":{let r=e;if(r?.path){let o=Rn(r.path),s=SI(r.view_range);return s?s.endLine===-1?ue(m(2057,null,o,s.startLine)):s.endLine!==s.startLine?ue(m(2059,null,o,s.startLine,s.endLine)):ue(m(2058,null,o,s.startLine)):ue(m(2056,null,o))}return m(2055,null)}case"edit":{let r=e;return r?.path?ue(m(2038,null,Rn(r.path))):m(2037,null)}case"create":{let r=e;return r?.path?ue(m(2036,null,Rn(r.path))):m(2035,null)}case"grep":{let r=e;return r?.pattern?ue(m(2045,null,We(cn(r.pattern,80)))):m(2044,null)}case"rg":{let r=e;return r?.pattern?ue(m(2045,null,We(cn(r.pattern,80)))):m(2044,null)}case"glob":{let r=e;return r?.pattern?ue(m(2043,null,We(cn(r.pattern,80)))):m(2042,null)}case"apply_patch":case"git_apply_patch":{let r=zd(e);return r.length===1?ue(m(2047,null,Rn(r[0]))):r.length>1?ue(m(2048,null,r.map(Rn).join(", "))):m(2046,null)}case"sql":return e?.description||m(2054,null);case"web_fetch":{let r=e;return r?.url?ue(m(2060,null,_I(r.url))):m(2061,null)}case"exit_plan_mode":return m(2039,null);default:return m(2041,null,t)}}function zR(i,t){if(i)return`synth-skill-${i}`;let e=t.path??t.name;return`synth-skill-${Wt(e).toString(16)}`}function Jd(i,t){let e=zR(t,i),n=m(2122,null),r=zo(i.name),o=i.path?`[${r}](${y.file(i.path)})`:void 0,s=o?ue(m(2080,null,o)):m(2081,null,i.name),a=o?ue(m(2052,null,o)):m(2053,null,i.name);return{toolCallId:e,toolName:"skill",displayName:n,invocationMessage:s,pastTenseMessage:a}}function Qd(i,t,e){if(!(!t&&!e)){if(Fa.has(i)||Km.has(i)){let n=t,r=n?.command??n?.args;return typeof r=="string"?r:typeof r=="object"&&r!==null&&De(r,{command:!0})?r.command:e}switch(i){case"grep":return t?.pattern??e;case"rg":return t?.pattern??e;case"web_fetch":return t?.url??e;default:if(t)try{return JSON.stringify(t,null,2)}catch{return e}return e}}}function Yd(i){if(Fa.has(i))return"terminal";if(BR.has(i))return"subagent";if(HR.has(i))return"search"}function Xd(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 Zd(i){switch(i){case"powershell":case"write_powershell":case"read_powershell":return"powershell";default:return"shellscript"}}function or(i){try{return JSON.stringify(i)}catch{return}}function Nr(i){return typeof i=="string"?i:void 0}function CI(i,t){let e=Nr(i.path)??Nr(i.fileName),n=Nr(i.fullCommandText),r=Nr(i.intention),o=Nr(i.serverName),s=Nr(i.toolName);switch(i.kind){case"shell":{let a=n?{command:n}:void 0;Ii("bash",a,t);let l=typeof a?.command=="string"?a.command:n;return{confirmationTitle:m(2031,null),invocationMessage:r??Ur("bash",En("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=Nr(i.toolName);if(a&&l&&Kd(l)&&typeof a.command=="string"){Ii(l,a,t);let c=a.command;return{confirmationTitle:m(2031,null),invocationMessage:Ur(l,En(l),{command:c}),toolInput:c,permissionKind:"shell",permissionPath:e}}return{confirmationTitle:m(2027,null),invocationMessage:ue(m(2026,null,We(s??i.kind))),toolInput:or(a||i),permissionKind:i.kind,permissionPath:e}}case"write":return{confirmationTitle:m(2034,null),invocationMessage:Ur("edit",En("edit"),e?{path:e}:void 0),toolInput:or(e?{path:e}:i)??void 0,permissionKind:"write",permissionPath:e};case"mcp":{let a=s??m(2028,null);return{confirmationTitle:o?m(2029,null,o):m(2027,null),invocationMessage:o?`${o}: ${a}`:a,toolInput:or({serverName:o,toolName:s})??void 0,permissionKind:"mcp",permissionPath:e}}case"read":return{confirmationTitle:m(2030,null),invocationMessage:r??Ur("view",En("view"),e?{path:e}:void 0),toolInput:or(e?{path:e,intention:r}:i)??void 0,permissionKind:"read",permissionPath:e};case"url":{let a=Nr(i.url),l=a?URL.canParse(a)?new URL(a).href:a:void 0;return{confirmationTitle:m(2033,null),invocationMessage:ue(m(2032,null)),toolInput:l?JSON.stringify({url:l}):void 0,permissionKind:"url"}}default:return{confirmationTitle:m(2027,null),invocationMessage:ue(m(2026,null,We(s??i.kind))),toolInput:or(i)??void 0,permissionKind:i.kind,permissionPath:e}}}function TI(i){try{return JSON.stringify(i)}catch{return}}function jR(i){if(i.type!=="user.message")return!1;let t=i.data?.source;return!!t&&t.toLowerCase()!=="user"}function eu(i,t,e){let n=e?.length?{text:t,attachments:e}:{text:t};return{id:i,userMessage:n,responseParts:[],pendingTools:new Map}}function xI(i,t,e,n){if(jd(i))return;let r=t!==void 0?TI(t):void 0,o;if(r)try{o=JSON.parse(r)}catch{}let a=(Ii(i,o,n)?TI(o):void 0)??r,l=Yd(i),c=l==="subagent"?Xd(o):void 0,u=En(i);return{toolName:i,displayName:u,invocationMessage:Ur(i,u,o),toolInput:Qd(i,o,a),toolKind:l,language:l==="terminal"?Zd(i):void 0,subagentAgentName:c?.agentName,subagentDescription:c?.description,parameters:o,parentToolCallId:e}}function tu(i,t){return{id:i.id,userMessage:i.userMessage,responseParts:i.responseParts,usage:void 0,state:t}}async function Gm(i,t,e,n){let r=new Map,o=[],s=new Map;for(let b of e){if(b.type==="tool.execution_complete"){let I=b.data;s.set(I.toolCallId,I)}if(b.type==="tool.execution_start"){let I=b.data,R=xI(I.toolName,I.arguments,I.parentToolCallId,n);if(!R)continue;r.set(I.toolCallId,R);let P=Ee(R.parameters?.command)?R.parameters.command:void 0;Ko(I.toolName,P)&&o.push(I.toolCallId)}}let a;if(t&&o.length>0)try{let b=await t.getFileEdits(o);if(b.length>0){a=new Map;for(let I of b){let R=a.get(I.toolCallId);R||(R=[],a.set(I.toolCallId,R)),R.push(I)}}}catch{}let l=i.toString(),c=[],u=new Map,d=new Map,f=new Map,g,h=b=>{let I=u.get(b);if(!I||(u.delete(b),I.responseParts.length===0))return;let R=d.get(b)??[];R.push(tu(I,"complete")),d.set(b,R)},v=b=>{let I=u.get(b);return I||(I=eu(j(),""),u.set(b,I)),I},S=b=>b?v(b):g;for(let b of e)switch(b.type){case"user.message":{if(jR(b))continue;let I=b.data,R=I?.messageId??I?.interactionId??"",P=I?.content??"",J=KR(I?.attachments);if(I?.parentToolCallId){let E=v(I.parentToolCallId);P&&E.responseParts.push({kind:"markdown",id:j(),content:P}),J?.length&&(E.userMessage={...E.userMessage,attachments:J})}else g&&c.push(tu(g,"cancelled")),g=eu(R,P,J);break}case"assistant.message":{let I=b.data,R=I?.messageId??I?.interactionId??"",P=I?.content??"",J=I?.reasoningText,E=!!I?.toolRequests&&I.toolRequests.length>0,L=S(I?.parentToolCallId)??(g=eu(R,""));J&&L.responseParts.push({kind:"reasoning",id:j(),content:J}),P&&L.responseParts.push({kind:"markdown",id:j(),content:P}),I?.toolRequests?.length&&_(L,I.toolRequests,I.parentToolCallId),!I?.parentToolCallId&&!E&&L===g&&(c.push(tu(g,"complete")),g=void 0);break}case"subagent.started":{let I=b.data;f.set(I.toolCallId,{agentName:I.agentName,agentDisplayName:I.agentDisplayName,agentDescription:I.agentDescription});break}case"tool.execution_start":break;case"tool.execution_complete":{let I=b.data,R=r.get(I.toolCallId);if(!R)continue;r.delete(I.toolCallId);let P=S(I.parentToolCallId);if(!P)continue;let J=wI(I,R,l,a,f.get(I.toolCallId));P.responseParts.push(J),!I.parentToolCallId&&f.has(I.toolCallId)&&h(I.toolCallId);break}case"skill.invoked":{let I=b,R=Jd(I.data,I.id);(g??(g=eu(j(),""))).responseParts.push({kind:"toolCall",toolCall:{status:"completed",toolCallId:R.toolCallId,toolName:R.toolName,displayName:R.displayName,invocationMessage:R.invocationMessage,success:!0,pastTenseMessage:R.pastTenseMessage,confirmed:"not-needed"}});break}default:break}g&&(c.push(tu(g,"cancelled")),g=void 0);for(let b of[...u.keys()])h(b);return{turns:c,subagentTurnsByToolCallId:d};function _(b,I,R){for(let P of I){let J=s.get(P.toolCallId);if(J&&r.has(P.toolCallId))continue;let E=r.get(P.toolCallId)??xI(P.name,P.arguments,R,n);E&&b.responseParts.push(wI(J??{toolCallId:P.toolCallId,success:!0},E,l,a,f.get(P.toolCallId)))}}}function KR(i){if(!i?.length)return;let t=[];for(let e of i){let n=GR(e);n&&t.push(n)}return t.length>0?t:void 0}function GR(i){switch(i.type){case"file":return{type:"resource",uri:y.file(i.path).toString(),label:i.displayName||be(i.path),displayKind:Bl(i.path)?.startsWith("image/")?"image":"document"};case"directory":return{type:"resource",uri:y.file(i.path).toString(),label:i.displayName||be(i.path),displayKind:"directory"};case"selection":return{type:"resource",uri:y.file(i.filePath).toString(),label:i.displayName,displayKind:"selection",selection:{range:i.selection}};case"blob":{if(i.mimeType.startsWith("text/plain"))return{type:"simple",label:i.displayName??"attachment",modelRepresentation:_r(i.data).toString()};let t=i.mimeType.startsWith("image/")?"image":void 0;return{type:"embeddedResource",label:i.displayName??"attachment",data:i.data,contentType:i.mimeType,displayKind:t}}default:return}}function wI(i,t,e,n,r){let o=i.error?.message??i.result?.content,s=[];o!==void 0&&s.push({type:"text",text:o});let a=n?.get(i.toolCallId);if(a)for(let c of a){let u=c.kind==="rename"&&c.originalPath?y.file(c.originalPath).toString():y.file(c.filePath).toString(),d=y.file(c.filePath).toString(),f=c.kind!=="create",g=c.kind!=="delete";s.push({type:"fileEdit",before:f?{uri:u,content:{uri:Ar(e,c.toolCallId,c.filePath,"before")}}:void 0,after:g?{uri:d,content:{uri:Ar(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:mo(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:Gd(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 Wa=class{constructor(t){this.type=1,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t}},Fr=class{constructor(t){this.type=2,this.ctime=Date.now(),this.mtime=Date.now(),this.size=0,this.name=t,this.entries=new Map}},nu=class extends T{constructor(){super(...arguments);this.memoryFdCounter=0;this.fdMemory=new Map;this._onDidChangeCapabilities=this._register(new x);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._capabilities=525318;this.root=new Fr("");this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._bufferedChanges=[]}get capabilities(){return this._capabilities}setReadOnly(e){let n=!!(this._capabilities&2048);e!==n&&(this._capabilities=525314|(e?2048:0),this._onDidChangeCapabilities.fire())}async stat(e){return this._lookup(e,!1)}async readdir(e){let n=this._lookupAsDirectory(e,!1),r=[];return n.entries.forEach((o,s)=>r.push([s,o.type])),r}async readFile(e){let n=this._lookupAsFile(e,!1).data;if(n)return n;throw fe("file not found","EntryNotFound")}readFileStream(e){let n=this._lookupAsFile(e,!1).data,r=jn(o=>k.concat(o.map(s=>k.wrap(s))).buffer);return r.end(n),r}async writeFile(e,n,r){let o=_e(e),s=this._lookupParentDirectory(e),a=s.entries.get(o);if(a instanceof Fr)throw fe("file is directory","EntryIsADirectory");if(!a&&!r.create)throw fe("file not found","EntryNotFound");if(a&&r.create&&!r.overwrite)throw fe("file exists already","EntryExists");if(a||(a=new Wa(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=Qn(n),s=o&&!!n.append;if(r){if(r instanceof Fr)throw fe("file is directory","EntryIsADirectory")}else{if(!o)throw fe("file not found","EntryNotFound");let l=_e(e),c=this._lookupParentDirectory(e);r=new Wa(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 fe("No file with that descriptor open","Unavailable");if(!a.file.data)return Promise.resolve(0);let l=k.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 fe("No file with that descriptor open","Unavailable");let l=k.wrap(r).slice(o,o+s);a.file.data??=new Uint8Array(0);let c=a.append?a.file.data.byteLength:n,u=c+l.byteLength;if(u>a.file.data.byteLength){let d=new Uint8Array(u);d.set(a.file.data,0),a.file.data=d}return a.file.data.set(l.buffer,c),Promise.resolve(l.byteLength)}async rename(e,n,r){if(!r.overwrite&&this._lookup(n,!0))throw fe("file exists already","EntryExists");let o=this._lookup(e,!1),s=this._lookupParentDirectory(e),a=this._lookupParentDirectory(n),l=_e(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=mn(e),o=_e(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 fe("file exists already","EntryExists");let n=_e(e),r=mn(e),o=this._lookupAsDirectory(r,!1),s=new Fr(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 Fr&&(a=o.entries.get(s)),!a){if(n)return;throw fe("file not found","EntryNotFound")}o=a}return o}_lookupAsDirectory(e,n){let r=this._lookup(e,n);if(r instanceof Fr)return r;throw fe("file not a directory","EntryNotADirectory")}_lookupAsFile(e,n){let r=this._lookup(e,n);if(r instanceof Wa)return r;throw fe("file is a directory","EntryIsADirectory")}_lookupParentDirectory(e){let n=mn(e);return this._lookupAsDirectory(n,!1)}watch(e,n){return T.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 RI="pending-edit-content";function EI(i,t,e){return y.from({scheme:RI,authority:rn(k.fromString(i)).toString(),path:`/${encodeURIComponent(t)}/${rn(k.fromString(e))}`})}function PI(i){let t=new nu,e=i.registerProvider(RI,t);return{dispose(){e.dispose(),t.dispose()}}}var JR=".copilot",kI=B(JR,"session-state");function QR(i){switch(i){case"autopilot":return{label:m(2008,null),description:m(2007,null)};case"autopilot_fleet":return{label:m(2010,null),description:m(2009,null)};case"interactive":return{label:m(2015,null),description:m(2014,null)};case"exit_only":return{label:m(2012,null),description:m(2011,null)};default:return}}function AI(i){let t=Ae(i.toolArgs)?Reflect.get(i.toolArgs,"command"):void 0;return Ee(t)?t:void 0}function YR(i,t,e){let n={id:i,title:t.title??i,message:t.description??t.title??i,required:e};switch(t.type){case"boolean":return{...n,kind:"boolean",defaultValue:t.default};case"integer":case"number":return{...n,kind:t.type==="integer"?"integer":"number",min:t.minimum,max:t.maximum,defaultValue:t.default};case"array":{let r=De(t.items,{enum:!0})?t.items.enum.map(o=>({id:o,label:o})):t.items.anyOf.map(o=>({id:o.const,label:o.title}));return{...n,kind:"multi-select",options:r,min:t.minItems,max:t.maxItems}}case"string":{if(De(t,{enum:!0})){let r=t.enumNames,o=t.enum.map((s,a)=>({id:s,label:r?.[a]??s}));return{...n,kind:"single-select",options:o}}if(De(t,{oneOf:!0})){let r=t.oneOf.map(o=>({id:o.const,label:o.title}));return{...n,kind:"single-select",options:r}}return{...n,kind:"text",format:t.format,min:t.minLength,max:t.maxLength,defaultValue:t.default}}}}function XR(i,t){if(!t||t.state==="skipped")return;let e=t.value;if(i.type==="boolean")return e.kind==="boolean"?e.value:e.kind==="text"?e.value==="true"?!0:e.value==="false"?!1:void 0:void 0;if(i.type==="number"||i.type==="integer"){if(e.kind==="number")return i.type==="integer"?Math.trunc(e.value):e.value;if(e.kind==="text"){if(e.value.trim()==="")return;let n=Number(e.value);return Number.isFinite(n)?i.type==="integer"?Math.trunc(n):n:void 0}return}if(i.type==="array")return e.kind==="selected-many"?[...e.value,...e.freeformValues??[]]:e.kind==="selected"?e.value?[e.value,...e.freeformValues??[]]:[...e.freeformValues??[]]:e.kind==="text"?e.value?[e.value]:[]:void 0;if(e.kind==="text"||e.kind==="selected")return e.value}function ZR(i){let t=process.env.XDG_STATE_HOME;return t?B(t,kI):B(i,kI)}var eE=/^(?:\d{10,}-copilot-tool-output-[a-z0-9]{6}|copilot-tool-output-\d{10,}-[a-z0-9]{6})\.txt$/i;function tE(i,t){let e=Nt(y.file(i)),n=Nt(y.file(t)),r=Nt(y.joinPath(e,".."));if(!vt.isEqual(r,n))return!1;let o=Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\")),s=o>=0?i.substring(o+1):i;return eE.test(s)}var Go=class extends T{constructor(e,n,r,o,s,a,l,c){super();this._instantiationService=n;this._logService=r;this._fileService=s;this._environmentService=a;this._configurationService=l;this._telemetryService=c;this._activeToolCalls=new Map;this._parentToolCallIdsByAgentId=new Map;this._pendingPermissions=new Map;this._pendingUserInputs=new Map;this._pendingElicitations=new Map;this._pendingPlanReviews=new Map;this._turnId="";this._turnCopilotUsageTotalNanoAiu=0;this._steeringMessagesInFlight=new Set;this._consumedSteeringMessages=new Set;this._pendingClientToolCalls=new Map;this._pendingEditContentUris=new Map;this._currentMarkdownPartIds=new Map;this._currentReasoningPartIds=new Map;this._hasReportedActivity=!1;this.sessionId=e.rawSessionId,this.sessionUri=e.sessionUri,this._onDidSessionProgress=e.onDidSessionProgress,this._wrapperFactory=e.wrapperFactory,this._shellManager=e.shellManager,this._workingDirectory=e.workingDirectory,this._customizationDirectory=e.customizationDirectory,this._appliedSnapshot=e.clientSnapshot??{clientId:"",tools:[],plugins:[]},this._clientToolNames=new Set(this._appliedSnapshot.tools.map(u=>u.name)),this._databaseRef=o.openDatabase(e.sessionUri),this._register(A(()=>this._databaseRef.dispose())),this._sessionDataDir=o.getSessionDataDir(e.sessionUri),this._editTracker=this._instantiationService.createInstance(kr,e.sessionUri.toString(),this._databaseRef.object),this._register(A(()=>this._denyPendingPermissions())),this._register(A(()=>this._shellManager?.dispose())),this._register(A(()=>this._cancelPendingUserInputs())),this._register(A(()=>this._cancelPendingElicitations())),this._register(A(()=>this._cancelPendingPlanReviews())),this._shellManager&&this._register(this._shellManager.onDidAssociateTerminal(({toolCallId:u,terminalUri:d,displayName:f})=>{let g=this._activeToolCalls.get(u);g&&(g.content.push({type:"terminal",resource:d,title:f}),this._emitAction({type:"session/toolCallContentChanged",turnId:this._turnId,toolCallId:u,content:g.content}))})),this._register(A(()=>this._cancelPendingClientToolCalls()))}_emitAction(e,n){this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:e,parentToolCallId:n}),e.type==="session/toolCallStart"&&!n?this._flushConsumedSteeringMessages():e.type==="session/turnComplete"&&this._flushConsumedSteeringMessages()}_flushConsumedSteeringMessages(){if(this._consumedSteeringMessages.size===0)return;let e=[...this._consumedSteeringMessages];this._consumedSteeringMessages.clear();for(let n of e)this._onDidSessionProgress.fire({kind:"steering_consumed",session:this.sessionUri,id:n})}_parentToolCallIdForSubagentEvent(e){return e.agentId?this._parentToolCallIdsByAgentId.get(e.agentId):void 0}_shouldDropUnmappedSubagentEvent(e,n){return!this._parentToolCallIdForSubagentEvent(e)&&e.agentId?(this._logService.warn(`[Copilot:${this.sessionId}] Dropping ${n} for unknown subagent agentId=${e.agentId}`),!0):!1}resetTurnState(e){this._turnId=e,this._turnCopilotUsageTotalNanoAiu=0,this._currentMarkdownPartIds.clear(),this._currentReasoningPartIds.clear(),this._parentToolCallIdsByAgentId.clear()}_getEditFilePaths(e){return zd(e).map(n=>this._resolveEditFilePath(n))}_resolveEditFilePath(e){return qt(e)||!this._workingDirectory||this._workingDirectory.scheme!==ie.file?e:B(this._workingDirectory.fsPath,e)}_sendToolInvokedTelemetry(e,n,r){let o;e?o="success":n==="rejected"||n==="denied"||n==="cancelled"?o="userCancelled":o="error";let s=this._clientToolNames.has(r.toolName),a=r.mcpServerName?"mcp":s?"client":"agentHost",l=Date.now()-r.startTimeMs;this._telemetryService.publicLog2("languageModelToolInvoked",{result:o,chatSessionId:this.sessionUri.toString(),toolId:r.toolName,toolExtensionId:void 0,toolSourceKind:a,invocationTimeMs:l})}emitInitialMarkdown(e){this._emitMarkdownDelta(e)}_emitMarkdownDelta(e,n){let r=n??"",o=this._currentMarkdownPartIds.get(r);if(!o){o=j(),this._currentMarkdownPartIds.set(r,o),this._emitAction({type:"session/responsePart",turnId:this._turnId,part:{kind:"markdown",id:o,content:e}},n);return}this._emitAction({type:"session/delta",turnId:this._turnId,partId:o,content:e},n)}_emitReasoningDelta(e,n){let r=n??"",o=this._currentReasoningPartIds.get(r);if(!o){o=j(),this._currentReasoningPartIds.set(r,o),this._emitAction({type:"session/responsePart",turnId:this._turnId,part:{kind:"reasoning",id:o,content:e}},n);return}this._emitAction({type:"session/reasoning",turnId:this._turnId,partId:o,content:e},n)}get appliedSnapshot(){return this._appliedSnapshot}get customizationDirectory(){return this._customizationDirectory}createClientSdkTools(){let e=this._appliedSnapshot.tools;return e.length===0?[]:e.map(n=>({name:n.name,description:n.description??"",parameters:n.inputSchema??{type:"object",properties:{}},handler:async(r,{toolCallId:o})=>{try{let s=this._pendingClientToolCalls.get(o);s||(s=new pe,this._pendingClientToolCalls.set(o,s));let a=await s.p;return this._pendingClientToolCalls.delete(o),a}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed in client tool handler: tool=${n.name}, toolCallId=${o}`),s}}}))}handleClientToolCallComplete(e,n){let r=this._pendingClientToolCalls.get(e);r||(r=new pe,this._pendingClientToolCalls.set(e,r));let o=n.content?.filter(a=>a.type==="text").map(a=>a.text).join(`
`)??"",s=n.content?.filter(a=>a.type==="embeddedResource").map(a=>({data:a.data,mimeType:a.contentType,type:/^image(\/|$)/.test(a.contentType)?"image":"resource"}));n.success?r.complete({textResultForLlm:o,resultType:"success",binaryResultsForLlm:s?.length?s:void 0}):r.complete({textResultForLlm:o||n.error?.message||"Tool call failed",resultType:"failure",error:n.error?.message,binaryResultsForLlm:s?.length?s:void 0})}async initializeSession(){this._wrapper=this._register(await this._wrapperFactory({onPermissionRequest:e=>this.handlePermissionRequest(e),onUserInputRequest:(e,n)=>this.handleUserInputRequest(e,n),onElicitationRequest:e=>this.handleElicitationRequest(e),requestUnsandboxedCommandConfirmation:e=>this.requestUnsandboxedCommandConfirmation(e),clientTools:this.createClientSdkTools(),hooks:{onPreToolUse:e=>this._handlePreToolUse(e),onPostToolUse:e=>this._handlePostToolUse(e)}})),this._subscribeToEvents(),this._subscribeForLogging()}async send(e,n,r,o){r&&(this._turnId=r,this._turnCopilotUsageTotalNanoAiu=0),this._logService.info(`[Copilot:${this.sessionId}] sendMessage called: "${e.substring(0,100)}${e.length>100?"...":""}" (${n?.length??0} attachments)`);let s=bI(e);if(s?.command==="compact"){try{await this._wrapper.session.rpc.history.compact()}catch(l){throw this._logService.error(l,`[Copilot:${this.sessionId}] rpc.history.compact failed`),l}return}s?.command==="plan"&&(o="plan",e=s.rest);let a=n?.length?(await Promise.all(n.map(l=>this._toSdkAttachment(l)))).filter(dr):void 0;a?.length&&this._logService.trace(`[Copilot:${this.sessionId}] Attachments: ${JSON.stringify(a.map(l=>({type:l.type})))}`),await this.applyMode(o),await this._wrapper.session.send({prompt:e,attachments:a?.length?a:void 0}),this._logService.info(`[Copilot:${this.sessionId}] session.send() returned`)}async _toSdkAttachment(e){if(e.type==="simple")return e.modelRepresentation?{type:"blob",data:Ol(k.fromString(e.modelRepresentation)),mimeType:"text/plain",displayName:e.label}:void 0;if(e.type==="embeddedResource")return{type:"blob",data:e.data,mimeType:e.contentType,displayName:e.label};if(e.type!=="resource")return;let n=y.parse(e.uri),r=n.scheme==="file"?n.fsPath:n.toString(),o=e.label??r;if(e.displayKind==="selection"&&e.selection)try{let a=await this._readSelectedText(n,e.selection.range);return{type:"selection",filePath:r,displayName:o,text:a,selection:e.selection.range}}catch(a){return this._logService.warn(`[Copilot:${this.sessionId}] Failed to read selected text for ${n.toString()}: ${a}`),{type:"file",path:r,displayName:o}}return e.displayKind==="selection"?{type:"file",path:r,displayName:o}:{type:e.displayKind==="directory"?"directory":"file",path:r,displayName:o}}async _readSelectedText(e,n){let o=(await this._fileService.readFile(e)).value.toString(),s=jh(o),a=this._getOffsetAt(s,n.start),l=this._getOffsetAt(s,n.end);return o.substring(a,Math.max(a,l))}_getOffsetAt(e,n){let r=Math.max(0,Math.min(n.line,e.length-1)),o=0;for(let a=0;a<r;a++)o+=e[a].length;let s=e[r].replace(/\r\n|\r|\n$/,"");return o+Math.max(0,Math.min(n.character,s.length))}async applyMode(e){if(!(!e||e===this._lastAppliedMode))try{await this._wrapper.session.rpc.mode.set({mode:e}),this._lastAppliedMode=e,this._logService.info(`[Copilot:${this.sessionId}] rpc.mode.set succeeded: mode=${e}`)}catch(n){this._logService.error(n,`[Copilot:${this.sessionId}] rpc.mode.set failed: mode=${e}`)}}async sendSteering(e){if(!(this._steeringMessagesInFlight.has(e.id)||this._consumedSteeringMessages.has(e.id))){this._steeringMessagesInFlight.add(e.id),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._consumedSteeringMessages.add(e.id)}catch(n){this._logService.error(`[Copilot:${this.sessionId}] Steering message failed`,n)}finally{this._steeringMessagesInFlight.delete(e.id)}}}async getMessages(){let e=await this._wrapper.session.getMessages(),n;try{n=this._databaseRef.object}catch{}return(await Gm(this.sessionUri,n,e,this._workingDirectory)).turns}async getSubagentMessages(e){let n=await this._wrapper.session.getMessages(),r;try{r=this._databaseRef.object}catch{}return(await Gm(this.sessionUri,r,n,this._workingDirectory)).subagentTurnsByToolCallId.get(e)??[]}async abort(){this._logService.info(`[Copilot:${this.sessionId}] Aborting session...`),this._denyPendingPermissions(),this._flushConsumedSteeringMessages(),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 setAgent(e,n){if(e){let r=n??e.uri;this._logService.info(`[Copilot:${this.sessionId}] Selecting custom agent: ${r}`);try{await this._wrapper.session.rpc.agent.select({name:r})}catch(o){throw this._logService.error(o,`[Copilot:${this.sessionId}] rpc.agent.select failed: name=${r}`),o}}else{this._logService.info(`[Copilot:${this.sessionId}] Clearing custom agent selection`);try{await this._wrapper.session.rpc.agent.deselect()}catch(r){throw this._logService.error(r,`[Copilot:${this.sessionId}] rpc.agent.deselect failed`),r}}}async handlePermissionRequest(e){this._logService.info(`[Copilot:${this.sessionId}] Permission request: kind=${e.kind}`);try{let n=e.toolCallId;if(!n)return this._logService.warn(`[Copilot:${this.sessionId}] Permission request without toolCallId, auto-denying: kind=${e.kind}`),{kind:"reject"};let r=this._getInternalSessionResourcePath(e);if(r)return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving internal session resource ${r}`),{kind:"approve-once"};if(e.kind==="read"&&typeof e.path=="string"&&this._isSessionAttachmentPath(e.path))return this._logService.info(`[Copilot:${this.sessionId}] Auto-approving session attachment ${e.path}`),{kind:"approve-once"};if(e.kind==="read"&&typeof e.path=="string"&&tE(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"};let o=e.kind==="shell"||e.kind==="custom-tool"&&typeof e.toolName=="string"&&Kd(e.toolName);this._logService.info(`[Copilot:${this.sessionId}] Requesting confirmation for tool call: ${n}`);let s=new pe;if(this._pendingPermissions.set(n,s),o&&await this._isShellSandboxedByDefault())return this._pendingPermissions.get(n)===s?(this._pendingPermissions.delete(n),this._logService.info(`[Copilot:${this.sessionId}] Auto-approving sandboxed shell command for tool call ${n}`),{kind:"approve-once"}):{kind:"reject"};let{confirmationTitle:a,invocationMessage:l,toolInput:c,permissionKind:u,permissionPath:d}=CI(e,this._workingDirectory),f=await this._buildEditsForPermission(e,n);if(!this._pendingPermissions.has(n))return{kind:"reject"};let g=e.toolName??e.kind,h=this._activeToolCalls.get(n)?.parentToolCallId;this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:{status:"pending-confirmation",toolCallId:n,toolName:g,displayName:En(g),invocationMessage:l,toolInput:c,confirmationTitle:a,edits:f},permissionKind:u,permissionPath:d,parentToolCallId:h});let v=await s.p;return this._logService.info(`[Copilot:${this.sessionId}] Permission response: toolCallId=${n}, approved=${v}`),{kind:v?"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=Nt(y.file(ZR(this._environmentService.userHome.fsPath))),o=Nt(y.joinPath(r,this.sessionId));if(!vt.isEqualOrParent(o,r))return;let s=Nt(y.file(n));return vt.isEqualOrParent(s,o)?n:void 0}_isSessionAttachmentPath(e){let n=Nt(y.joinPath(this._sessionDataDir,fc)),r=Nt(y.file(e));return vt.isEqualOrParent(r,n)}async _isShellSandboxedByDefault(){return!this._shellManager||this._configurationService.getRootValue(Cn,"disableCustomTerminalTool")===!0?!1:this._shellManager.getOrCreateSandboxEngine().isEnabled()}async _buildEditsForPermission(e,n){if(e.kind!=="write")return;let r=typeof e.fileName=="string"?e.fileName:void 0,o=typeof e.newFileContents=="string"?e.newFileContents:void 0;if(!r||o===void 0)return;let s=y.file(r),a=s.toString(),l=!1;try{l=await this._fileService.exists(s)}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to check file for edit preview: ${r}`,f)}let c=EI(this.sessionUri.toString(),n,r);try{await this._fileService.writeFile(c,k.fromString(o))}catch(f){this._logService.warn(`[Copilot:${this.sessionId}] Failed to write pending edit content for ${r}`,f);return}if(!this._pendingPermissions.has(n)){this._fileService.del(c).catch(f=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete orphaned pending edit content: ${c.toString()}`,f)});return}this._pendingEditContentUris.set(n,c);let u=typeof e.diff=="string"?rE(e.diff):void 0;return{items:[{...l?{before:{uri:a,content:{uri:a}}}:{},after:{uri:a,content:{uri:c.toString()}},...u?{diff:u}:{}}]}}respondToPermissionRequest(e,n){let r=this._pendingPermissions.get(e);return r?(this._pendingPermissions.delete(e),this._deletePendingEditContent(e),r.complete(n),!0):!1}async requestUnsandboxedCommandConfirmation(e){let n=new pe;this._pendingPermissions.set(e.toolCallId,n);let r=En(e.toolName),o=e.blockedDomains?.length?e.blockedDomains.join(", "):void 0,s=o?m(2022,null,o):m(2023,null),a=e.reason?m(2021,null,e.reason):o?m(2019,null,o):m(2020,null);return this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:{status:"pending-confirmation",toolCallId:e.toolCallId,toolName:e.toolName,displayName:r,invocationMessage:a,toolInput:e.command,confirmationTitle:s},parentToolCallId:this._activeToolCalls.get(e.toolCallId)?.parentToolCallId}),n.p}async handleUserInputRequest(e,n){if(this._configurationService.getEffectiveValue(this.sessionUri.toString(),Pt,"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 pe;this._pendingUserInputs.set(s,{deferred:l,questionId:a});let c={id:s,questions:[e.choices&&e.choices.length>0?{kind:"single-select",id:a,message:e.question,required:!0,options:e.choices.map(g=>({id:g,label:g})),allowFreeformInput:e.allowFreeform??!0}:{kind:"text",id:a,message:e.question,required:!0}]};this._emitAction({type:"session/inputRequested",request:c});let u=await l.p;if(this._logService.info(`[Copilot:${this.sessionId}] User input response: requestId=${s}, response=${u.response}`),u.response!=="accept"||!u.answers)return{answer:"",wasFreeform:!0};let d=u.answers[a];if(!d||d.state==="skipped")return{answer:"",wasFreeform:!0};let{value:f}=d;if(f.kind==="text")return{answer:f.value,wasFreeform:!0};if(f.kind==="selected"){let g=!e.choices?.includes(f.value);return{answer:f.value,wasFreeform:g}}return{answer:"",wasFreeform:!0}}catch(s){throw this._logService.error(s,`[Copilot:${this.sessionId}] Failed to handle user input request: question="${o}"`),s}}async handleElicitationRequest(e){if(this._configurationService.getEffectiveValue(this.sessionUri.toString(),Pt,"autoApprove")==="autopilot")return{action:"cancel"};let r=e.message.substring(0,100);try{let o=j();this._logService.info(`[Copilot:${this.sessionId}] Elicitation request: requestId=${o}, mode=${e.mode??"form"}, source=${e.elicitationSource??"<unknown>"}, message="${r}"`);let s=e.mode==="url"?void 0:e.requestedSchema,a=new Set(s?.required??[]),l=s?Object.entries(s.properties).map(([h,v])=>YR(h,v,a.has(h))):void 0,c=new pe;this._pendingElicitations.set(o,{deferred:c,schema:s});let u={id:o,message:e.message,...e.mode==="url"&&e.url?{url:e.url}:{},...l&&l.length>0?{questions:l}:{}};this._emitAction({type:"session/inputRequested",request:u});let d=await c.p;if(this._logService.info(`[Copilot:${this.sessionId}] Elicitation response: requestId=${o}, response=${d.response}`),d.response==="decline")return{action:"decline"};if(d.response!=="accept")return{action:"cancel"};let f=d.answers??{};if(!s){let h=f.answer;return h&&h.state!=="skipped"&&h.value.kind==="text"?{action:"accept",content:{answer:h.value.value}}:{action:"accept"}}let g={};for(let[h,v]of Object.entries(s.properties)){let S=XR(v,f[h]);S!==void 0&&(g[h]=S)}return{action:"accept",content:g}}catch(o){throw this._logService.error(o,`[Copilot:${this.sessionId}] Failed to handle elicitation request: message="${r}"`),o}}respondToUserInputRequest(e,n,r){let o=this._pendingPlanReviews.get(e);if(o)return this._pendingPlanReviews.delete(e),o.deferred.complete(this._resolveExitPlanMode(o,n,r)),!0;let s=this._pendingElicitations.get(e);if(s)return this._pendingElicitations.delete(e),s.deferred.complete({response:n,answers:r}),!0;let a=this._pendingUserInputs.get(e);return a?(this._pendingUserInputs.delete(e),a.deferred.complete({response:n,answers:r}),!0):!1}_resolveExitPlanMode(e,n,r){if(n!=="accept")return{approved:!1};let o=r?.[e.questionId];if(!o||o.state==="skipped")return{approved:!1};let s=o.value,a,l;if(s.kind==="selected")a=s.value,l=s.freeformValues?.find(f=>f.trim().length>0)?.trim();else if(s.kind==="text")l=s.value.trim()||void 0;else return{approved:!1};let c=a&&e.actions.includes(a)?a:e.actions.includes(e.recommendedAction)?e.recommendedAction:void 0;return l?{approved:!1,feedback:l,...c?{selectedAction:c}:{}}:c?{approved:!0,selectedAction:c,...c==="autopilot"||c==="autopilot_fleet"?{autoApproveEdits:!0}:{}}:{approved:!1}}async _handlePreToolUse(e){try{if(Ko(e.toolName,AI(e))){let n=this._getEditFilePaths(e.toolArgs);await Promise.all(n.map(r=>this._editTracker.trackEditStart(r)))}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPreToolUse: tool=${e.toolName}`),n}}async _handlePostToolUse(e){try{if(Ko(e.toolName,AI(e))){let n=this._getEditFilePaths(e.toolArgs);await Promise.all(n.map(r=>this._editTracker.completeEdit(r)))}}catch(n){throw this._logService.error(n,`[Copilot:${this.sessionId}] Failed in onPostToolUse: tool=${e.toolName}`),n}}_subscribeToEvents(){let e=this._wrapper,n=this.sessionId;this._register(e.onUserMessage(r=>{this._turnId&&this._databaseRef.object.setTurnEventId(this._turnId,r.id)})),this._register(e.onMessageDelta(r=>{this._logService.trace(`[Copilot:${n}] delta: ${r.data.deltaContent}`),!this._shouldDropUnmappedSubagentEvent(r,"assistant.message_delta")&&this._emitMarkdownDelta(r.data.deltaContent,this._parentToolCallIdForSubagentEvent(r))})),this._register(e.onMessage(r=>{if(this._logService.info(`[Copilot:${n}] Full message received: ${r.data.content.length} chars`),!r.data.content||this._shouldDropUnmappedSubagentEvent(r,"assistant.message"))return;let o=this._parentToolCallIdForSubagentEvent(r),s=o??"";if(this._currentMarkdownPartIds.has(s))return;let a=j();this._currentMarkdownPartIds.set(s,a),this._emitAction({type:"session/responsePart",turnId:this._turnId,part:{kind:"markdown",id:a,content:r.data.content}},o)})),this._register(e.onToolStart(r=>{if(jd(r.data.toolName)){if(this._logService.trace(`[Copilot:${n}] Tool started (hidden): ${r.data.toolName}`),r.data.toolName==="report_intent"){let g=r.data.arguments?.intent;typeof g=="string"&&g.length>0&&(this._hasReportedActivity=!0,this._emitAction({type:"session/activityChanged",activity:g}))}return}this._logService.info(`[Copilot:${n}] Tool started: ${r.data.toolName}`);let o=r.data.arguments!==void 0?or(r.data.arguments):void 0,s;if(o)try{s=JSON.parse(o)}catch{}Ii(r.data.toolName,s,this._workingDirectory)&&(o=or(s));let a=En(r.data.toolName);if(this._shouldDropUnmappedSubagentEvent(r,"tool.execution_start"))return;let l=this._parentToolCallIdForSubagentEvent(r);this._activeToolCalls.set(r.data.toolCallId,{toolName:r.data.toolName,displayName:a,parameters:s,content:[],parentToolCallId:l,startTimeMs:Date.now(),mcpServerName:r.data.mcpServerName});let c=Yd(r.data.toolName),u=c==="subagent"?Xd(s):void 0,d=this._clientToolNames.has(r.data.toolName)?this._appliedSnapshot.clientId:void 0;this._currentMarkdownPartIds.delete(l??""),this._currentReasoningPartIds.delete(l??"");let f={toolKind:c,language:c==="terminal"?Zd(r.data.toolName):void 0};u?.description&&(f.subagentDescription=u.description),u?.agentName&&(f.subagentAgentName=u.agentName),o!==void 0&&(f.toolArguments=o),r.data.mcpServerName&&(f.mcpServerName=r.data.mcpServerName),r.data.mcpToolName&&(f.mcpToolName=r.data.mcpToolName),this._emitAction({type:"session/toolCallStart",turnId:this._turnId,toolCallId:r.data.toolCallId,toolName:r.data.toolName,displayName:a,toolClientId:d,_meta:f},l),!d&&this._emitAction({type:"session/toolCallReady",turnId:this._turnId,toolCallId:r.data.toolCallId,invocationMessage:Ur(r.data.toolName,a,s),toolInput:Qd(r.data.toolName,s,o),confirmed:"not-needed"},l)})),this._register(e.onToolComplete(async r=>{let o=this._activeToolCalls.get(r.data.toolCallId);if(!o)return;let s=o.parentToolCallId??this._parentToolCallIdForSubagentEvent(r);if(!s&&r.agentId){this._logService.warn(`[Copilot:${this.sessionId}] Dropping tool.execution_complete for unknown subagent agentId=${r.agentId}`);return}this._logService.info(`[Copilot:${n}] Tool completed: ${r.data.toolCallId}`),this._activeToolCalls.delete(r.data.toolCallId);let a=o.displayName,l=r.data.error?.message??r.data.result?.content,c=[...o.content];l!==void 0&&c.push({type:"text",text:l});let u=Ee(o.parameters?.command)?o.parameters.command:void 0,d=Ko(o.toolName,u)?this._getEditFilePaths(o.parameters):[];for(let f of d)try{let g=await this._editTracker.takeCompletedEdit(this._turnId,r.data.toolCallId,f);g&&c.push(g)}catch(g){this._logService.warn(`[Copilot:${n}] Failed to take completed edit`,g)}if(Kd(o.toolName)&&this._shellManager){let f=this._shellManager.getTerminalUriForToolCall(r.data.toolCallId);f&&!c.some(g=>g.type==="terminal"&&g.resource===f)&&c.push({type:"terminal",resource:f,title:o.displayName})}this._sendToolInvokedTelemetry(r.data.success,r.data.error?.code,o),this._emitAction({type:"session/toolCallComplete",turnId:this._turnId,toolCallId:r.data.toolCallId,result:{success:r.data.success,pastTenseMessage:Gd(o.toolName,a,o.parameters,r.data.success),content:c.length>0?c:void 0,error:r.data.error}},s)})),this._register(e.onIdle(()=>{this._logService.info(`[Copilot:${n}] Session idle`),this._hasReportedActivity&&(this._hasReportedActivity=!1,this._emitAction({type:"session/activityChanged",activity:void 0})),this._emitAction({type:"session/turnComplete",turnId:this._turnId})})),this._register(e.onSkillInvoked(r=>{this._logService.info(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`);let o=Jd(r.data,r.id);this._emitAction({type:"session/toolCallStart",turnId:this._turnId,toolCallId:o.toolCallId,toolName:o.toolName,displayName:o.displayName}),this._emitAction({type:"session/toolCallReady",turnId:this._turnId,toolCallId:o.toolCallId,invocationMessage:o.invocationMessage,confirmed:"not-needed"}),this._emitAction({type:"session/toolCallComplete",turnId:this._turnId,toolCallId:o.toolCallId,result:{success:!0,pastTenseMessage:o.pastTenseMessage}})})),this._register(e.onSubagentStarted(r=>{r.agentId&&this._parentToolCallIdsByAgentId.set(r.agentId,r.data.toolCallId),this._logService.info(`[Copilot:${n}] Subagent started: toolCallId=${r.data.toolCallId}, agent=${r.data.agentName}`),this._onDidSessionProgress.fire({kind:"subagent_started",session:this.sessionUri,toolCallId:r.data.toolCallId,agentName:r.data.agentName,agentDisplayName:r.data.agentDisplayName,agentDescription:r.data.agentDescription})})),this._register(e.onSessionError(r=>{this._logService.error(`[Copilot:${n}] Session error: ${r.data.errorType} - ${r.data.message}`),this._emitAction({type:"session/error",turnId:this._turnId,error:{errorType:r.data.errorType,message:r.data.message,stack:r.data.stack}})})),this._register(e.onUsage(r=>{let o={};typeof r.data.cost=="number"&&(o.cost=r.data.cost),typeof r.data.copilotUsage?.totalNanoAiu=="number"&&(this._turnCopilotUsageTotalNanoAiu+=r.data.copilotUsage.totalNanoAiu,o.copilotUsage={...r.data.copilotUsage,totalNanoAiu:this._turnCopilotUsageTotalNanoAiu}),this._logService.trace(`[Copilot:${n}] Usage: model=${r.data.model}, in=${r.data.inputTokens??"?"}, out=${r.data.outputTokens??"?"}, cacheRead=${r.data.cacheReadTokens??"?"}, cost=${r.data.cost??"?"}, totalNanoAiu=${this._turnCopilotUsageTotalNanoAiu||"?"}`);let s={inputTokens:r.data.inputTokens,outputTokens:r.data.outputTokens,model:r.data.model,cacheReadTokens:r.data.cacheReadTokens,...Object.keys(o).length>0?{_meta:o}:{}};this._emitAction({type:"session/usage",turnId:this._turnId,usage:s})})),this._register(e.onReasoningDelta(r=>{this._logService.trace(`[Copilot:${n}] Reasoning delta: ${r.data.deltaContent.length} chars`),!this._shouldDropUnmappedSubagentEvent(r,"assistant.reasoning_delta")&&this._emitReasoningDelta(r.data.deltaContent,this._parentToolCallIdForSubagentEvent(r))})),this._register(e.onSessionModeChanged(r=>{this._logService.info(`[Copilot:${n}] session.mode_changed: ${r.data.previousMode} -> ${r.data.newMode}`);let o=r.data.newMode;o!=="interactive"&&o!=="plan"&&o!=="autopilot"||(this._lastAppliedMode=o,this._syncAhpConfigFromSdkMode(o))}))}_syncAhpConfigFromSdkMode(e){let n=this.sessionUri.toString(),r={};switch(e){case"plan":r.mode="plan";break;case"autopilot":r.mode="interactive",r.autoApprove="autopilot";break;case"interactive":r.mode="interactive";break}this._configurationService.updateSessionConfig(n,r)}async handleExitPlanModeRequest(e){let n=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(),Pt,"autoApprove")==="autopilot"){let d=nE(e);return this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request auto-accepted (autoApprove=autopilot): selectedAction=${d.selectedAction??"(none)"}`),d}let s=null;try{s=(await this._wrapper.session.rpc.plan.read()).path??null}catch(d){this._logService.warn(`[Copilot:${this.sessionId}] rpc.plan.read failed for exit_plan_mode: ${d instanceof Error?d.message:String(d)}`)}let a=e.summary||m(2013,null);if(s){let d=y.file(s);a+=`

[${m(2018,null)}](${d.toString()})`}this._emitMarkdownDelta(a);let l=e.actions.map(d=>{let f=QR(d);return{id:d,label:f?.label??d,description:f?.description,recommended:d===e.recommendedAction}}),c={id:n,questions:[{kind:"single-select",id:r,title:m(2017,null),message:m(2016,null),required:!0,options:l,allowFreeformInput:!0}]},u=new pe;this._pendingPlanReviews.set(n,{actions:e.actions,recommendedAction:e.recommendedAction,questionId:r,deferred:u}),this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:{type:"session/inputRequested",request:c}});try{return await u.p}catch(d){return this._logService.error(d,`[Copilot:${this.sessionId}] exitPlanMode.request handler failed: rpcId=${n}`),{approved:!1}}}_subscribeForLogging(){let e=this._wrapper,n=this.sessionId;this._register(e.onSessionStart(r=>{this._logService.trace(`[Copilot:${n}] Session started: model=${r.data.selectedModel??"default"}, producer=${r.data.producer}`)})),this._register(e.onSessionResume(r=>{this._logService.trace(`[Copilot:${n}] Session resumed: eventCount=${r.data.eventCount}`)})),this._register(e.onSessionInfo(r=>{this._logService.trace(`[Copilot:${n}] Session info [${r.data.infoType}]: ${r.data.message}`)})),this._register(e.onSessionModelChange(r=>{this._logService.trace(`[Copilot:${n}] Model changed: ${r.data.previousModel??"(none)"} -> ${r.data.newModel}`)})),this._register(e.onSessionHandoff(r=>{this._logService.trace(`[Copilot:${n}] Session handoff: sourceType=${r.data.sourceType}, remoteSessionId=${r.data.remoteSessionId??"(none)"}`)})),this._register(e.onSessionTruncation(r=>{this._logService.trace(`[Copilot:${n}] Session truncation: removed ${r.data.tokensRemovedDuringTruncation} tokens, ${r.data.messagesRemovedDuringTruncation} messages`)})),this._register(e.onSessionSnapshotRewind(r=>{this._logService.trace(`[Copilot:${n}] Snapshot rewind: upTo=${r.data.upToEventId}, eventsRemoved=${r.data.eventsRemoved}`)})),this._register(e.onSessionShutdown(r=>{this._logService.trace(`[Copilot:${n}] Session shutdown: type=${r.data.shutdownType}, premiumRequests=${r.data.totalPremiumRequests}, apiDuration=${r.data.totalApiDurationMs}ms`)})),this._register(e.onSessionUsageInfo(r=>{this._logService.trace(`[Copilot:${n}] Usage info: ${r.data.currentTokens}/${r.data.tokenLimit} tokens, ${r.data.messagesLength} messages`)})),this._register(e.onSessionCompactionStart(()=>{this._logService.trace(`[Copilot:${n}] Compaction started`)})),this._register(e.onSessionCompactionComplete(r=>{this._logService.trace(`[Copilot:${n}] Compaction complete: success=${r.data.success}, tokensRemoved=${r.data.tokensRemoved??"?"}`)})),this._register(e.onUserMessage(r=>{this._logService.trace(`[Copilot:${n}] User message: ${r.data.content.length} chars, ${r.data.attachments?.length??0} attachments`)})),this._register(e.onPendingMessagesModified(()=>{this._logService.trace(`[Copilot:${n}] Pending messages modified`)})),this._register(e.onTurnStart(r=>{this._logService.trace(`[Copilot:${n}] Turn started: ${r.data.turnId}`)})),this._register(e.onIntent(r=>{this._logService.trace(`[Copilot:${n}] Intent: ${r.data.intent}`)})),this._register(e.onReasoning(r=>{this._logService.trace(`[Copilot:${n}] Reasoning: ${r.data.content.length} chars`)})),this._register(e.onTurnEnd(r=>{this._logService.trace(`[Copilot:${n}] Turn ended: ${r.data.turnId}`)})),this._register(e.onAbort(r=>{this._logService.trace(`[Copilot:${n}] Aborted: ${r.data.reason}`)})),this._register(e.onToolUserRequested(r=>{this._logService.trace(`[Copilot:${n}] Tool user-requested: ${r.data.toolName} (${r.data.toolCallId})`)})),this._register(e.onToolPartialResult(r=>{this._logService.trace(`[Copilot:${n}] Tool partial result: ${r.data.toolCallId} (${r.data.partialOutput.length} chars)`)})),this._register(e.onToolProgress(r=>{this._logService.trace(`[Copilot:${n}] Tool progress: ${r.data.toolCallId} - ${r.data.progressMessage}`)})),this._register(e.onSkillInvoked(r=>{this._logService.trace(`[Copilot:${n}] Skill invoked: ${r.data.name} (${r.data.path})`)})),this._register(e.onSubagentStarted(r=>{this._logService.trace(`[Copilot:${n}] Subagent started: ${r.data.agentName} (${r.data.agentDisplayName})`)})),this._register(e.onSubagentCompleted(r=>{r.agentId&&this._parentToolCallIdsByAgentId.delete(r.agentId),this._logService.trace(`[Copilot:${n}] Subagent completed: ${r.data.agentName}`),this._onDidSessionProgress.fire({kind:"subagent_completed",session:this.sessionUri,toolCallId:r.data.toolCallId})})),this._register(e.onSubagentFailed(r=>{r.agentId&&this._parentToolCallIdsByAgentId.delete(r.agentId),this._logService.error(`[Copilot:${n}] Subagent failed: ${r.data.agentName} - ${r.data.error}`),this._onDidSessionProgress.fire({kind:"subagent_completed",session:this.sessionUri,toolCallId:r.data.toolCallId})})),this._register(e.onSubagentSelected(r=>{this._logService.trace(`[Copilot:${n}] Subagent selected: ${r.data.agentName}`)})),this._register(e.onHookStart(r=>{this._logService.trace(`[Copilot:${n}] Hook started: ${r.data.hookType} (${r.data.hookInvocationId})`)})),this._register(e.onHookEnd(r=>{this._logService.trace(`[Copilot:${n}] Hook ended: ${r.data.hookType} (${r.data.hookInvocationId}), success=${r.data.success}`)})),this._register(e.onSystemMessage(r=>{this._logService.trace(`[Copilot:${n}] System message [${r.data.role}]: ${r.data.content.length} chars`)}))}getNextTurnEventId(e){return this._databaseRef.object.getNextTurnEventId(e)}getFirstTurnEventId(){return this._databaseRef.object.getFirstTurnEventId()}async truncateAtEventId(e,n){this._logService.info(`[Copilot:${this.sessionId}] Truncating via SDK RPC at eventId=${e}`);let r=await this._wrapper.session.rpc.history.truncate({eventId:e});this._logService.info(`[Copilot:${this.sessionId}] SDK truncation removed ${r.eventsRemoved} events`),n?await this._databaseRef.object.deleteTurnsAfter(n):await this._databaseRef.object.deleteAllTurns()}async remapTurnIds(e){await this._databaseRef.object.remapTurnIds(e)}_denyPendingPermissions(){for(let[e,n]of this._pendingPermissions)this._deletePendingEditContent(e),n.complete(!1);this._pendingPermissions.clear()}_deletePendingEditContent(e){let n=this._pendingEditContentUris.get(e);n&&(this._pendingEditContentUris.delete(e),this._fileService.del(n).catch(r=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete pending edit content: ${n.toString()}`,r)}))}_cancelPendingUserInputs(){for(let[,e]of this._pendingUserInputs)e.deferred.complete({response:"cancel"});this._pendingUserInputs.clear()}_cancelPendingElicitations(){for(let[,e]of this._pendingElicitations)e.deferred.complete({response:"cancel"});this._pendingElicitations.clear()}_cancelPendingPlanReviews(){for(let[,e]of this._pendingPlanReviews)e.deferred.complete({approved:!1});this._pendingPlanReviews.clear()}_cancelPendingClientToolCalls(){for(let[,e]of this._pendingClientToolCalls)e.complete({textResultForLlm:"Tool call cancelled: session ended",resultType:"failure",error:"Session ended"});this._pendingClientToolCalls.clear()}};Go=w([C(1,Ve),C(2,M),C(3,gt),C(4,Me),C(5,Dr),C(6,Ye),C(7,Pr)],Go);function nE(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 rE(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 iE(i,t){if(!i||i.scheme!==ie.file||!await t.isInsideWorkTree(i))return;let e=(await t.getWorktreeRoots(i))[0]??await t.getRepositoryRoot(i);if(e)return{uri:e,displayName:be(e.fsPath)||e.toString()}}function oE(i){let t=i.includes("://")?y.parse(i):y.parse(`https://github.com/${i}`),e=be(t.path)||i.split("/").filter(Boolean).pop()||i,n=e.endsWith(".git")?e.slice(0,-4):e;return{uri:t,displayName:n}}async function sr(i,t){let e=typeof i?.cwd=="string"?y.file(i.cwd):typeof i?.gitRoot=="string"?y.file(i.gitRoot):void 0,n=await iE(e,t);if(n)return n;if(i?.repository)return oE(i.repository)}import{spawn as sE}from"child_process";function OI(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:aE(n.env)},...n.cwd&&{cwd:n.cwd}}:t[e.name]={type:"http",url:n.url,tools:["*"],...n.headers&&{headers:{...n.headers}}}}return t}function aE(i){let t={};for(let[e,n]of Object.entries(i))n!==null&&(t[e]=String(n));return t}async function LI(i,t){let e=[];for(let n of i)try{let o=(await t.readFile(n.uri)).value.toString(),s=Vo(o),a=s?.getStringValue("name")??n.name,l=s?.getStringValue("description"),c=s?.getStringArrayValue("tools"),u=s?.body??o;e.push({name:a,...l?{description:l}:{},tools:c&&c.length>0?c:null,prompt:u})}catch{}return e}function ru(i){return i.map(t=>({uri:t.uri.toString(),name:t.name,...t.description?{description:t.description}:{}}))}function MI(i){let t=new Set,e=[];for(let n of i){let r=de(n.uri.fsPath);t.has(r)||(t.add(r),e.push(r))}return e}function lE(i,t){return t===1&&i.windows?i.windows:t===2&&i.osx?i.osx:t===3&&i.linux?i.linux:i.command}function $a(i,t){let e=lE(i,pt);if(!e)return Promise.resolve("");let n=(i.timeout??30)*1e3,r=i.cwd?.fsPath;return new Promise((o,s)=>{let a=pt===1,u=sE(a?"cmd.exe":"/bin/sh",a?["/c",e]:["-c",e],{cwd:r,env:{...process.env,...i.env},stdio:["pipe","pipe","pipe"],timeout:n}),d="",f="";u.stdout.on("data",g=>{d+=g.toString()}),u.stderr.on("data",g=>{f+=g.toString()}),t&&u.stdin.write(t),u.stdin.end(),u.on("error",s),u.on("close",g=>{g===0?o(d):s(new Error(`Hook command exited with code ${g}: ${f||d}`))})})}async function DI(i,t){if(!i)return;let e=JSON.stringify(t);for(let n of i)try{let r=await $a(n,e);if(r.trim())try{let o=JSON.parse(r);if(o&&typeof o=="object")return o}catch{}}catch{}}var cE={PreToolUse:"onPreToolUse",PostToolUse:"onPostToolUse",UserPromptSubmit:"onUserPromptSubmitted",SessionStart:"onSessionStart",SessionEnd:"onSessionEnd",ErrorOccurred:"onErrorOccurred"};function NI(i,t){let e=new Map;for(let u of i){let d=cE[u.type];if(!d)continue;let f=e.get(d)??[];f.push(...u.commands),e.set(d,f)}let n={},r=e.get("onPreToolUse");(r?.length||t)&&(n.onPreToolUse=async u=>(await t?.onPreToolUse(u),DI(r,u)));let o=e.get("onPostToolUse");(o?.length||t)&&(n.onPostToolUse=async u=>(await t?.onPostToolUse(u),DI(o,u)));let s=e.get("onUserPromptSubmitted");s?.length&&(n.onUserPromptSubmitted=async u=>{let d=JSON.stringify(u);for(let f of s)try{await $a(f,d)}catch{}});let a=e.get("onSessionStart");a?.length&&(n.onSessionStart=async u=>{let d=JSON.stringify(u);for(let f of a)try{await $a(f,d)}catch{}});let l=e.get("onSessionEnd");l?.length&&(n.onSessionEnd=async u=>{let d=JSON.stringify(u);for(let f of l)try{await $a(f,d)}catch{}});let c=e.get("onErrorOccurred");return c?.length&&(n.onErrorOccurred=async u=>{let d=JSON.stringify(u);for(let f of c)try{await $a(f,d)}catch{}}),n}function UI(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 Jo=class extends T{constructor(e){super();this.session=e;this._register(A(()=>{e.destroy().catch(()=>{})}))}get sessionId(){return this.session.sessionId}get onMessageDelta(){return this._onMessageDelta??=this._sdkEvent("assistant.message_delta")}get onMessage(){return this._onMessage??=this._sdkEvent("assistant.message")}get onToolStart(){return this._onToolStart??=this._sdkEvent("tool.execution_start")}get onToolComplete(){return this._onToolComplete??=this._sdkEvent("tool.execution_complete")}get onIdle(){return this._onIdle??=this._sdkEvent("session.idle")}get onSessionStart(){return this._onSessionStart??=this._sdkEvent("session.start")}get onSessionResume(){return this._onSessionResume??=this._sdkEvent("session.resume")}get onSessionError(){return this._onSessionError??=this._sdkEvent("session.error")}get onSessionInfo(){return this._onSessionInfo??=this._sdkEvent("session.info")}get onSessionModelChange(){return this._onSessionModelChange??=this._sdkEvent("session.model_change")}get onSessionHandoff(){return this._onSessionHandoff??=this._sdkEvent("session.handoff")}get onSessionTruncation(){return this._onSessionTruncation??=this._sdkEvent("session.truncation")}get onSessionSnapshotRewind(){return this._onSessionSnapshotRewind??=this._sdkEvent("session.snapshot_rewind")}get onSessionShutdown(){return this._onSessionShutdown??=this._sdkEvent("session.shutdown")}get onSessionUsageInfo(){return this._onSessionUsageInfo??=this._sdkEvent("session.usage_info")}get onSessionCompactionStart(){return this._onSessionCompactionStart??=this._sdkEvent("session.compaction_start")}get onSessionCompactionComplete(){return this._onSessionCompactionComplete??=this._sdkEvent("session.compaction_complete")}get onUserMessage(){return this._onUserMessage??=this._sdkEvent("user.message")}get onPendingMessagesModified(){return this._onPendingMessagesModified??=this._sdkEvent("pending_messages.modified")}get onTurnStart(){return this._onTurnStart??=this._sdkEvent("assistant.turn_start")}get onIntent(){return this._onIntent??=this._sdkEvent("assistant.intent")}get onReasoning(){return this._onReasoning??=this._sdkEvent("assistant.reasoning")}get onReasoningDelta(){return this._onReasoningDelta??=this._sdkEvent("assistant.reasoning_delta")}get onTurnEnd(){return this._onTurnEnd??=this._sdkEvent("assistant.turn_end")}get onUsage(){return this._onUsage??=this._sdkEvent("assistant.usage")}get onAbort(){return this._onAbort??=this._sdkEvent("abort")}get onToolUserRequested(){return this._onToolUserRequested??=this._sdkEvent("tool.user_requested")}get onToolPartialResult(){return this._onToolPartialResult??=this._sdkEvent("tool.execution_partial_result")}get onToolProgress(){return this._onToolProgress??=this._sdkEvent("tool.execution_progress")}get onSkillInvoked(){return this._onSkillInvoked??=this._sdkEvent("skill.invoked")}get onSubagentStarted(){return this._onSubagentStarted??=this._sdkEvent("subagent.started")}get onSubagentCompleted(){return this._onSubagentCompleted??=this._sdkEvent("subagent.completed")}get onSubagentFailed(){return this._onSubagentFailed??=this._sdkEvent("subagent.failed")}get onSubagentSelected(){return this._onSubagentSelected??=this._sdkEvent("subagent.selected")}get onHookStart(){return this._onHookStart??=this._sdkEvent("hook.start")}get onHookEnd(){return this._onHookEnd??=this._sdkEvent("hook.end")}get onSystemMessage(){return this._onSystemMessage??=this._sdkEvent("system.message")}get onSessionModeChanged(){return this._onSessionModeChanged??=this._sdkEvent("session.mode_changed")}_sdkEvent(e){let n=this._register(new x),r=this.session.on(e,o=>n.fire(o));return this._register(A(r)),n.event}};var iu=$("sandboxHelperService");var dE=new Set(["7z","bz2","cjs","class","cpp","cs","css","csv","dll","exe","gif","gz","ico","jar","env","java","jpeg","jpg","js","json","jsx","lock","log","md","mjs","pdf","php","png","py","rar","rs","so","sql","svg","tar","tgz","toml","ts","tsx","txt","wasm","webp","xml","yaml","yml","zip"]),uE=new Set(["ai","cloud","com","dev","io","me","net","org","tech"]);function Va(i,t=!1){if(!i)return;let e=i.trim().toLowerCase().replace(/^[^@]+@/,"").replace(/:\d+$/,"").replace(/\.+$/,"");if(!e||e.includes("/")||e==="."||e==="..")return;if(e==="*")return"*";if(!/^\*?\.?[a-z0-9.;,)!?:-]+$/.test(e))return;let n=e.replace(/[),;:!?]+$/,"");if(!n)return;let r=n.startsWith("*.")?n.slice(2):n;if(!/^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)(?:\.(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?))*$/.test(r))return;let o=n.startsWith("*."),s=o?n.slice(2):n;if(s&&/^[a-z0-9.-]+$/.test(s)){if(!t){let a=s.slice(s.lastIndexOf(".")+1);if(dE.has(a)||!uE.has(a))return}return o?`*.${s}`:s}}function pE(i){let t=i.trim();if(t==="*"||!t.includes("://"))return t;try{return y.parse(t).authority}catch{return t}}function Xm(i,t){let e=Va(pE(t),t.includes("://"));if(!e)return!1;if(e==="*")return!0;if(e.startsWith("*.")){let n=e.slice(2);return i===n||i.endsWith(`.${n}`)}return i===e}var su=$("windowsMxcTerminalSandboxRuntime"),ou=class{constructor(){this._configVersion="0.4.0-alpha"}getExecutablePath(t,e){let n=e==="arm64"?"arm64":"x64";return se.join(t,"node_modules","@microsoft","mxc-sdk","bin",n,"wxc-exec.exe")}getRuntimeReadPaths(t,e){let n=[];return t&&n.push(t),e&&n.push(e,se.dirname(e)),[...new Set(n)]}createConfig(t){let e=this.toWindowsPath(t.tempDir),n=t.shell?this._quoteWindowsCommandLineArgument(t.shell):"pwsh.exe";return{version:this._configVersion,containerId:"vscode-terminal-sandbox",containment:"processcontainer",lifecycle:{destroyOnExit:!0,preservePolicy:!1},process:{commandLine:`${n} -NoProfile -ExecutionPolicy Bypass -Command ${this._quoteWindowsCommandLineArgument(t.command)}`,cwd:t.cwd?this.toWindowsPath(t.cwd):e,env:[...t.env],timeout:0},filesystem:{readwritePaths:[...new Set([...t.allowWritePaths])],readonlyPaths:[...new Set([e,...t.shell&&se.isAbsolute(t.shell)?[se.dirname(t.shell)]:[],...t.allowReadPaths])],deniedPaths:t.denyReadPaths},network:this._createNetworkConfig(t.allowNetwork,t.networkDomains),ui:{disable:!1,clipboard:"none",injection:!1,allowWindows:!0}}}wrapCommand(t,e){return`& ${this._quotePowerShellArgument(t)} ${this._quotePowerShellArgument(e)}`}wrapUnsandboxedCommand(t){return t}toWindowsPath(t){let e;return t.authority&&t.path.length>1&&t.scheme==="file"?e=`\\\\${t.authority}${t.path}`:/^\/[a-zA-Z]:/.test(t.path)?e=t.path.slice(1):e=t.fsPath,e.replace(/\//g,"\\")}_createNetworkConfig(t,e){return t?{defaultPolicy:"allow"}:{defaultPolicy:"block",allowedHosts:e.allowedDomains,blockedHosts:e.deniedDomains}}_quotePowerShellArgument(t){return`'${t.replace(/'/g,"''")}'`}_quoteWindowsCommandLineArgument(t){return`"${t.replace(/(\\*)"/g,'$1$1\\"').replace(/\\+$/g,"$&$&")}"`}};var au=new Set(["-C","-c","--config-env","--exec-path","--git-dir","--html-path","--info-path","--man-path","--namespace","--super-prefix","--work-tree"]);function lu(i,t,e){if(!t.keywords.includes(i.keyword.toLowerCase())||t.condition&&(!e||!t.condition(e)))return!1;if(t.subcommands){let n=fE(i.args,t.optionsWithValue);if(n===void 0||!t.subcommands.includes(n))return!1}return t.when?.(i)??!0}function fE(i,t){for(let e=0;e<i.length;e++){let n=i[e];if(n==="--")return;if(n.startsWith("-")){let r=n.includes("=")?n.substring(0,n.indexOf("=")):n;!n.includes("=")&&t?.has(r)&&e++;continue}return n.toLowerCase()}}var mE=new Map([["git","git"],["gh","git"],["node","node"],["npm","node"],["npx","node"],["pnpm","node"],["yarn","node"],["corepack","node"],["bun","node"],["deno","node"],["nvm","node"],["volta","node"],["fnm","node"],["asdf","node"],["mise","node"],["cargo","rust"],["rustc","rust"],["rustup","rust"],["go","go"],["gofmt","go"],["python","python"],["python3","python"],["pip","python"],["pip3","python"],["poetry","python"],["uv","python"],["pipx","python"],["pyenv","python"],["java","java"],["javac","java"],["jar","java"],["mvn","java"],["mvnw","java"],["gradle","java"],["gradlew","java"],["sdk","java"],["dotnet","dotnet"],["nuget","nuget"],["msbuild","msbuild"],["ruby","ruby"],["gem","ruby"],["bundle","ruby"],["bundler","ruby"],["rake","ruby"],["rbenv","ruby"],["rvm","ruby"],["ccache","nativeBuild"],["sccache","nativeBuild"],["cmake","nativeBuild"],["conan","conan"]]);function WI(i,t){if(t===1)return[];switch(i){case"git":switch(t){case 2:case 3:default:return["~/.gitconfig","~/.config/git/config","~/.gitignore","~/.gitignore_global","~/.config/git/ignore","~/.config/git/attributes"]}case"node":switch(t){case 2:return["~/.npm","~/Library/Caches/node","~/Library/Caches/electron","~/Library/Caches/ms-playwright","~/Library/Caches/Yarn","~/Library/Caches/deno","~/Library/pnpm","~/.electron-gyp","~/.node-gyp","~/.yarn/berry","~/.local/share/pnpm","~/.pnpm-store","~/.bun/install/cache","~/.bun/bin","~/.deno","~/.nvm/versions","~/.nvm/alias","~/.volta/bin","~/.volta/tools","~/.fnm","~/.asdf/installs/nodejs","~/.asdf/shims","~/.local/share/mise/installs/node","~/.local/share/mise/shims"];case 3:default:return["~/.npm","~/.cache/node","~/.cache/node/corepack","~/.cache/electron","~/.cache/ms-playwright","~/.cache/yarn","~/.electron-gyp","~/.node-gyp","~/.yarn/berry","~/.local/share/pnpm","~/.pnpm-store","~/.bun/install/cache","~/.bun/bin","~/.deno","~/.cache/deno","~/.nvm/versions","~/.nvm/alias","~/.volta/bin","~/.volta/tools","~/.fnm","~/.asdf/installs/nodejs","~/.asdf/shims","~/.local/share/mise/installs/node","~/.local/share/mise/shims"]}case"rust":switch(t){case 2:case 3:default:return["~/.cargo/bin","~/.cargo/registry","~/.cargo/git","~/.rustup/toolchains"]}case"go":switch(t){case 2:return["~/go/pkg/mod","~/go/bin","~/Library/Caches/go-build"];case 3:default:return["~/go/pkg/mod","~/go/bin","~/.cache/go-build"]}case"python":switch(t){case 2:return["~/Library/Caches/pip","~/Library/Caches/pypoetry","~/Library/Caches/uv","~/.local/bin","~/.local/share/virtualenv","~/.local/share/pipx","~/.pyenv/versions","~/.pyenv/shims"];case 3:default:return["~/.cache/pip","~/.cache/pypoetry","~/.cache/uv","~/.local/bin","~/.local/share/virtualenv","~/.local/share/pipx","~/.pyenv/versions","~/.pyenv/shims"]}case"java":switch(t){case 2:case 3:default:return["~/.m2/repository","~/.gradle/caches","~/.gradle/wrapper/dists","~/.sdkman/candidates"]}case"dotnet":switch(t){case 2:case 3:default:return["~/.dotnet"]}case"nuget":switch(t){case 2:return["~/.nuget/packages","~/Library/Caches/NuGet/v3-cache"];case 3:default:return["~/.nuget/packages","~/.local/share/NuGet/v3-cache"]}case"msbuild":switch(t){case 2:case 3:default:return[]}case"ruby":switch(t){case 2:return["~/.gem","~/.rbenv/versions","~/.rbenv/shims","~/.rvm/rubies"];case 3:default:return["~/.gem","~/.rbenv/versions","~/.rbenv/shims","~/.rvm/rubies"]}case"nativeBuild":switch(t){case 2:return["~/Library/Caches/ccache","~/Library/Caches/sccache"];case 3:default:return["~/.cache/ccache","~/.cache/sccache"]}case"conan":switch(t){case 2:case 3:default:return["~/.conan2/p","~/.conan2/b"]}case"gnupg":switch(t){case 2:case 3:default:return["~/.gnupg"]}}}function FI(i,t){let e=new Set;for(let r of t)for(let o of gE)lu(r,o,{os:i})&&e.add(o.value);let n=[...e].flatMap(r=>WI(r,i));return[...new Set(n)]}var gE=[{keywords:["gpg","gpg2"],value:"gnupg"},{keywords:["git"],value:"gnupg",subcommands:["commit"],optionsWithValue:au}];function cu(i,t,e=[]){if(t.length===0)return FI(i,e);let n=new Set;for(let o of t){let s=mE.get(o.toLowerCase());s&&n.add(s)}let r=[...n].flatMap(o=>WI(o,i));return[...new Set([...r,...FI(i,e)])]}var hE=[{keywords:["node","npm","npx","pnpm","yarn","corepack","bun","deno","nvm","volta","fnm","asdf","mise"],value:"node"},{keywords:["git"],value:"gnupg",subcommands:["commit"],optionsWithValue:au,condition:({os:i})=>i!==1,when:vE}];function yE(i,t){switch(i){case"gnupg":switch(t){case 1:return{};case 2:case 3:default:return{network:{allowAllUnixSockets:!0},filesystem:{allowRead:["~/.gnupg"],allowWrite:["~/.gnupg"]}}}case"node":switch(t){case 1:return{};case 2:case 3:default:return{filesystem:{allowWrite:["~/.volta/"]}}}}}function du(i,t){let e=new Set;for(let r of t)for(let o of hE)lu(r,o,{os:i})&&e.add(o.value);let n={};for(let r of e)VI(n,yE(r,i));return n}function vE(i){return i.args.some(t=>t==="-S"||t.startsWith("-S")||t==="--gpg-sign"||t.startsWith("--gpg-sign="))}function VI(i,t){for(let[e,n]of Object.entries(t)){if(!Object.prototype.hasOwnProperty.call(i,e)){i[e]=n;continue}let r=i[e];if(Array.isArray(r)&&Array.isArray(n)){i[e]=[...new Set([...r,...n])];continue}$I(r)&&$I(n)&&VI(r,n)}}function $I(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)}var kQ=$("terminalSandboxService");var Vt=class extends T{constructor(e,n,r,o){super();this._host=e;this._fileService=n;this._logService=r;this._windowsMxcRuntime=o;this._sandboxSettingsId=j();this._runtimeResolved=!1;this._runAsNode=!1;this._needsForceUpdateConfigFile=!0;this._commandAllowListKeywords=[];this._commandAllowListCommandDetails=[];this._os=pt;this._defaultWritePaths=[];this._pathJoin=(...e)=>(this._os===1?se:Z).join(...e);this._register(X.runAndSubscribe(this._host.onDidChangeSandboxSettings,()=>{this.setNeedsForceUpdateConfigFile()})),this._register(this._host.onDidChangeRoots(()=>this.setNeedsForceUpdateConfigFile()))}static{this._urlRegex=/(?:https?|wss?):\/\/[^\s'"`|&;<>]+/gi}static{this._sshRemoteRegex=/(?:^|[\s'"`])(?:[^\s@:'"`]+@)?([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(?::[^\s'"`|&;<>]+)(?=$|[\s'"`|&;<>])/gi}static{this._hostRegex=/(?:^|[\s'"`(=])([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(?::\d+)?(?=(?:\/[^\s'"`|&;<>]*)?(?:$|[\s'"`)\]|,;|&<>]))/gi}async isEnabled(e){return this._isSandboxConfiguredEnabled(e)}async isSandboxAllowNetworkEnabled(e){return await this._isSandboxConfiguredEnabled(e)?this._isSandboxAllowNetworkConfigured():!1}areUnsandboxedCommandsAllowed(){return this._areUnsandboxedCommandsAllowed()}isAutoApproveUnsandboxedCommands(){return this._areUnsandboxedCommandsAllowed()&&this._getSettingValue("chat.agent.sandbox.autoApproveUnsandboxedCommands")===!0}async getOS(){return this._os=await this._host.getOS(),this._os}getTempDir(){return this._tempDir}setNeedsForceUpdateConfigFile(){this._needsForceUpdateConfigFile=!0}getResolvedNetworkDomains(){let e=this._getSettingValue("chat.agent.allowedNetworkDomains")??[],n=this._getSettingValue("chat.agent.deniedNetworkDomains")??[];return{allowedDomains:e,deniedDomains:n}}async wrapCommand(e,n,r,o,s){let a=this._normalizeCommandDetails(s??[]),l=this._normalizeCommandKeywords(a.map(I=>I.keyword)),c=cu(this._os,this._commandAllowListKeywords,this._commandAllowListCommandDetails),u=cu(this._os,l,a),d=du(this._os,this._commandAllowListCommandDetails),f=du(this._os,a);if((this._commandAllowListKeywords.length===0||this._needsForceUpdateConfigFile||!this._areStringArraysEqual(this._commandAllowListKeywords,l)||!this._areStringArraysEqual(c,u)||!this._areObjectsEqual(d,f)||this._commandCwd?.toString()!==o?.toString()||this._os===1&&(this._commandLine!==e||this._commandShell!==r))&&(this._commandAllowListKeywords=l,this._commandAllowListCommandDetails=a,this._commandCwd=o,this._commandLine=e,this._commandShell=r,await this.getSandboxConfigPath(!0)),!this._sandboxConfigPath||!this._tempDir)throw new Error("Sandbox config path or temp dir not initialized");let h=this._areUnsandboxedCommandsAllowed(),v=n||!h?{blockedDomains:[],deniedDomains:[]}:this._getBlockedDomains(e);if(!n&&h&&v.blockedDomains.length>0)return{command:this._wrapUnsandboxedCommand(e,r),isSandboxWrapped:!1,blockedDomains:v.blockedDomains,deniedDomains:v.deniedDomains,requiresUnsandboxConfirmation:!0};if(n&&h)return{command:this._wrapUnsandboxedCommand(e,r),isSandboxWrapped:!1};if(this._os===1){if(!this._mxcPath)throw new Error("MXC executable path not resolved");return{command:this._windowsMxcRuntime.wrapCommand(this._mxcPath,this._sandboxConfigPath),isSandboxWrapped:!0}}if(!this._execPath)throw new Error("Executable path not set to run sandbox commands");if(!this._srtPath)throw new Error("Sandbox runtime path not resolved");if(!this._rgPath)throw new Error("Ripgrep path not resolved");let S=this._getSandboxCommandWithPreservedCwd(e,o),_=`PATH="$PATH:${this._pathDirname(this._rgPath)}" TMPDIR="${this._tempDir.path}" CLAUDE_TMPDIR="${this._tempDir.path}" "${this._execPath}" "${this._srtPath}" --settings "${this._sandboxConfigPath}" -c ${this._quoteShellArgument(S)}`,b=this._os===3&&o?.path&&o.path!==this._tempDir.path?`cd ${this._quoteShellArgument(this._tempDir.path)}; ${_}`:_;return this._runAsNode?{command:`ELECTRON_RUN_AS_NODE=1 ${b}`,isSandboxWrapped:!0}:{command:b,isSandboxWrapped:!0}}async checkForSandboxingPrereqs(e=!1,n){if(!await this._isSandboxConfiguredEnabled(n))return{enabled:!1,sandboxConfigPath:void 0,failedCheck:void 0};let r=await this.getSandboxConfigPath(e,n);return r?await this._checkSandboxDependencies(e)?{enabled:!0,sandboxConfigPath:r,failedCheck:void 0}:{enabled:!0,sandboxConfigPath:r,failedCheck:"dependencies",missingDependencies:await this.getMissingSandboxDependencies()}:{enabled:!0,sandboxConfigPath:r,failedCheck:"config"}}async getSandboxConfigPath(e=!1,n){if(await this._isSandboxConfiguredEnabled(n))return await this._resolveRuntimeInfo(),(!this._sandboxConfigPath||e||this._needsForceUpdateConfigFile)&&(this._sandboxConfigPath=await this._createSandboxConfig(),this._needsForceUpdateConfigFile=!1),this._sandboxConfigPath}async getMissingSandboxDependencies(){if(await this.getOS()===1)return[];(!this._sandboxDependencyStatus||!this._sandboxDependencyStatus.bubblewrapInstalled||!this._sandboxDependencyStatus.socatInstalled)&&(this._sandboxDependencyStatus=await this._host.checkSandboxDependencies());let n=[];return this._sandboxDependencyStatus&&!this._sandboxDependencyStatus.bubblewrapInstalled&&n.push("bubblewrap"),this._sandboxDependencyStatus&&!this._sandboxDependencyStatus.socatInstalled&&n.push("socat"),n}async cleanupTempDir(){if(this._tempDir)try{await this._fileService.del(this._tempDir,{recursive:!0,useTrash:!1})}catch(e){this._logService.warn("TerminalSandboxEngine: Failed to delete sandbox temp dir",e)}}async _checkSandboxDependencies(e=!1){if(await this.getOS()===1)return!0;if(!e&&this._sandboxDependencyStatus)return this._sandboxDependencyStatus.bubblewrapInstalled&&this._sandboxDependencyStatus.socatInstalled;let r=await this._host.checkSandboxDependencies();return this._sandboxDependencyStatus=r,r&&!r.bubblewrapInstalled&&this._logService.warn("TerminalSandboxEngine: bubblewrap (bwrap) is not installed"),r&&!r.socatInstalled&&this._logService.warn("TerminalSandboxEngine: socat is not installed"),r?r.bubblewrapInstalled&&r.socatInstalled:!0}_quoteShellArgument(e){return`'${e.replace(/'/g,"'\\''")}'`}_getSandboxCommandWithPreservedCwd(e,n){return this._os!==3||!n?.path||n.path===this._tempDir?.path?e:`cd ${this._quoteShellArgument(n.path)} && ${e}`}_wrapUnsandboxedCommand(e,n){return this._os===1?this._windowsMxcRuntime.wrapUnsandboxedCommand(e):this._tempDir?.path?n?`env TMPDIR="${this._tempDir.path}" ${this._quoteShellArgument(n)} -c ${this._quoteShellArgument(e)}`:`(TMPDIR="${this._tempDir.path}"; export TMPDIR; ${e})`:e}_getBlockedDomains(e){if(this._isSandboxAllowNetworkConfigured())return{blockedDomains:[],deniedDomains:[]};let n=this._extractDomains(e);if(n.length===0)return{blockedDomains:[],deniedDomains:[]};let{allowedDomains:r,deniedDomains:o}=this.getResolvedNetworkDomains(),s=new Set,a=new Set;for(let l of n){if(o.some(c=>Xm(l,c))){s.add(l),a.add(l);continue}r.some(c=>Xm(l,c))||s.add(l)}return{blockedDomains:[...s],deniedDomains:[...a]}}_extractDomains(e){let n=new Set,r;for(Vt._urlRegex.lastIndex=0;(r=Vt._urlRegex.exec(e))!==null;){let o=this._extractDomainFromUrl(r[0]);o&&n.add(o)}for(Vt._sshRemoteRegex.lastIndex=0;(r=Vt._sshRemoteRegex.exec(e))!==null;){let o=Va(r[1],!0);o&&n.add(o)}for(Vt._hostRegex.lastIndex=0;(r=Vt._hostRegex.exec(e))!==null;){let o=Va(r[1]);o&&n.add(o)}return[...n]}_extractDomainFromUrl(e){try{let n=y.parse(e).authority;return Va(n,!0)}catch{return}}_normalizeCommandKeywords(e){return[...new Set(e.map(n=>n.toLowerCase()))].sort()}_normalizeCommandDetails(e){let n=new Set,r=[];for(let o of e){let s={keyword:o.keyword.toLowerCase(),args:[...o.args]},a=JSON.stringify(s);n.has(a)||(n.add(a),r.push(s))}return r.sort((o,s)=>o.keyword.localeCompare(s.keyword)||o.args.join("\0").localeCompare(s.args.join("\0")))}_areStringArraysEqual(e,n){return e.length===n.length&&e.every((r,o)=>r===n[o])}_areObjectsEqual(e,n){return JSON.stringify(e)===JSON.stringify(n)}_isSandboxAllowedByPrecheckInputs(e){return e?.isDefaultApprovalPermissionEnabled!==!1}async _isSandboxConfiguredEnabled(e){if(!this._isSandboxAllowedByPrecheckInputs(e))return!1;if(await this.getOS(),this._os===1)return this._getSandboxConfiguredWindowsEnabledValue()==="allowNetwork";let n=this._getSandboxConfiguredEnabledValue();return n==="on"||n==="allowNetwork"}async _resolveRuntimeInfo(){if(this._runtimeResolved)return;this._runtimeResolved=!0;let e=await this._host.getRuntimeInfo();this._appRoot=e.appRoot,this._execPath=e.execPath,this._runAsNode=e.runAsNode??!1,this._userHome=await this._host.getUserHome(),this._srtPath=this._pathJoin(this._appRoot,"node_modules","@vscode","sandbox-runtime","dist","cli.js");let n=this._os===1?"win32":this._os===2?"darwin":"linux",r=this._os===1?"rg.exe":"rg";this._rgPath=this._pathJoin(this._appRoot,"node_modules","@vscode","ripgrep-universal","bin",`${n}-${kh}`,r),this._mxcPath=this._windowsMxcRuntime.getExecutablePath(this._appRoot,e.arch)}async _createSandboxConfig(){if(await this.isEnabled()&&!this._tempDir&&await this._initTempDir(),!this._tempDir)return;let e=await this.isSandboxAllowNetworkEnabled(),n=this._os===3?this._getSettingValue("chat.agent.sandbox.fileSystem.linux")??{}:{},r=this._os===2?this._getSettingValue("chat.agent.sandbox.fileSystem.mac")??{}:{},o=this._os===1?this._getSettingValue("chat.agent.sandbox.fileSystem.windows")??{}:{},s=this._getSettingValue("chat.agent.sandbox.advanced.runtime")??{},a=du(this._os,this._commandAllowListCommandDetails),l=this._getCommandRuntimeFileSystemPaths(a,"allowRead"),c=this._getCommandRuntimeFileSystemPaths(a,"allowWrite"),u=y.joinPath(this._tempDir,`vscode-sandbox-settings-${this._sandboxSettingsId}.json`),d=[],f=[],g=[],h;if(this._os===1){let S=await this._getWindowsMxcFilesystemPolicy(),_=await this._getWindowsMxcEnvironment();d=await this._resolveFileSystemPaths([...this._updateAllowWritePathsWithWorkspaceFolders(o.allowWrite,c),...S.readwritePaths]),f=await this._resolveFileSystemPaths([...await this._updateAllowReadPathsWithAllowWrite(o.allowRead,d,l),...S.readonlyPaths]),g=await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome(o.denyRead)),this._windowsMxcEnvironment=_}else this._os===2?(d=await this._resolveFileSystemPaths(this._updateAllowWritePathsWithWorkspaceFolders(r.allowWrite,c)),f=await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(r.allowRead,d,l)),g=await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome(r.denyRead)),h=r.denyWrite?await this._resolveFileSystemPaths(r.denyWrite):void 0):this._os===3&&(d=await this._resolveFileSystemPaths(this._updateAllowWritePathsWithWorkspaceFolders(n.allowWrite,c)),f=await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(n.allowRead,d,l)),g=await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome(n.denyRead)),h=await this._resolveFileSystemPaths(n.denyWrite));let v=this._os===1?this._windowsMxcRuntime.createConfig({command:this._commandLine??"",shell:this._commandShell,cwd:this._commandCwd??this._getDefaultWindowsMxcCwd(),tempDir:this._tempDir,allowNetwork:e,networkDomains:this.getResolvedNetworkDomains(),allowReadPaths:f,allowWritePaths:d,denyReadPaths:g,env:this._windowsMxcEnvironment??[]}):{network:e?{allowedDomains:[],deniedDomains:[],enabled:!1}:this.getResolvedNetworkDomains(),filesystem:{denyRead:g,allowRead:f,allowWrite:d,denyWrite:h}};return this._os!==1&&(this._mergeAdditionalSandboxConfigProperties(v,e?this._withoutNetworkRuntimeSetting(s):s),this._mergeAdditionalSandboxConfigProperties(v,a)),this._sandboxConfigPath=this._getUriPath(u),await this._fileService.createFile(u,k.fromString(JSON.stringify(v,null,"	")),{overwrite:!0}),this._sandboxConfigPath}_getCommandRuntimeFileSystemPaths(e,n){let r=e.filesystem;if(!this._isObjectForSandboxConfigMerge(r))return[];let o=r[n];return Array.isArray(o)?o.filter(s=>typeof s=="string"):[]}_withoutNetworkRuntimeSetting(e){let n={...e};return delete n.network,n}_mergeAdditionalSandboxConfigProperties(e,n){for(let[r,o]of Object.entries(n)){if(!Object.prototype.hasOwnProperty.call(e,r)){e[r]=o;continue}let s=e[r];this._isObjectForSandboxConfigMerge(s)&&this._isObjectForSandboxConfigMerge(o)&&this._mergeAdditionalSandboxConfigProperties(s,o)}}_isObjectForSandboxConfigMerge(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async _getWindowsMxcFilesystemPolicy(){return this._windowsMxcFilesystemPolicy||(this._windowsMxcFilesystemPolicy=await this._host.getWindowsMxcFilesystemPolicy()??{readonlyPaths:[],readwritePaths:[]}),this._windowsMxcFilesystemPolicy}async _getWindowsMxcEnvironment(){return this._windowsMxcEnvironment||(this._windowsMxcEnvironment=await this._host.getWindowsMxcEnvironment()??[]),this._windowsMxcEnvironment}_pathDirname(e){return(this._os===1?se:Z).dirname(e)}_getUriPath(e){return this._os===1?this._windowsMxcRuntime.toWindowsPath(e):e.path}async _initTempDir(){await this.isEnabled()&&(this._needsForceUpdateConfigFile=!0,this._tempDir=await this._host.getSandboxTempDir(),this._tempDir?(await this._fileService.createFolder(this._tempDir),this._defaultWritePaths.push(this._getUriPath(this._tempDir))):this._logService.warn("TerminalSandboxEngine: Cannot create sandbox settings file because no tmpDir is available in this environment"))}_updateAllowWritePathsWithWorkspaceFolders(e,n=[]){let r=this._host.getWriteRoots().map(o=>this._getUriPath(o));return[...new Set([...r,...this._defaultWritePaths,...e??[],...n])]}_updateDenyReadPathsWithHome(e){if(this._os===1)return[...new Set(e??[])];let n=this._userHome?this._getUriPath(this._userHome):void 0;return[...new Set([...e??[],...n?[n]:[]])]}async _updateAllowReadPathsWithAllowWrite(e,n,r=[]){return[...new Set([...e??[],...cu(this._os,this._commandAllowListKeywords,this._commandAllowListCommandDetails),...r,...this._getSandboxRuntimeReadPaths(),...await this._getWorkspaceStorageReadPaths(),...n])]}async _resolveFileSystemPaths(e){let n=await Promise.all((e??[]).map(r=>this._resolveFileSystemPath(r)));return[...new Set(n)]}async _resolveFileSystemPath(e){let n=this._os===3?this._expandHomePath(e):e;if(!this._isAbsoluteFileSystemPath(n))return n;try{let r=await this._fileService.realpath(this._toFileSystemResource(n)),o=r?this._getUriPath(r):void 0;return o&&o!==n?o:n}catch{return n}}_isAbsoluteFileSystemPath(e){return(this._os===1?se:Z).isAbsolute(e)}_toFileSystemResource(e){return this._os===1?this._toWindowsFileSystemResource(e):this._userHome?.with({path:e})??this._tempDir?.with({path:e})??this._host.getWriteRoots()[0]?.with({path:e})??y.file(e)}_toWindowsFileSystemResource(e){let n=e.replace(/\\/g,"/");if(/^\/\/[^/]/.test(n)){let r=n.indexOf("/",2);return r===-1?y.from({scheme:"file",authority:n.slice(2),path:"/"}):y.from({scheme:"file",authority:n.slice(2,r),path:n.slice(r)||"/"})}return/^[a-zA-Z]:($|\/)/.test(n)?y.from({scheme:"file",path:`/${n[0].toLowerCase()}${n.slice(1)}`}):/^\/[a-zA-Z]:($|\/)/.test(n)?y.from({scheme:"file",path:`/${n[1].toLowerCase()}${n.slice(2)}`}):y.from({scheme:"file",path:n})}_expandHomePath(e){let n=this._userHome?.path;return n?e==="~"?n:e.startsWith("~/")?this._pathJoin(n,e.slice(2)):e:e}_getSandboxRuntimeReadPaths(){if(!this._appRoot)return[];if(this._os===1)return this._windowsMxcRuntime.getRuntimeReadPaths(this._appRoot,this._mxcPath);let e=[this._appRoot];if(this._execPath)for(let n of[this._execPath,this._pathDirname(this._execPath)])this._isPathUnderAppRoot(n)||e.push(n);return e}_isPathUnderAppRoot(e){return this._appRoot?e===this._appRoot||e.startsWith(`${this._appRoot}${this._os===1?se.sep:Z.sep}`):!1}async _getWorkspaceStorageReadPaths(){let e=await this._host.getWorkspaceStorageReadRoot();return e?[this._getUriPath(e)]:[]}_getDefaultWindowsMxcCwd(){return this._host.getWriteRoots()[0]}_getSandboxConfiguredEnabledValue(){return this._getSettingValue("chat.agent.sandbox.enabled")??"off"}_getSandboxConfiguredWindowsEnabledValue(){return this._getSettingValue("chat.agent.sandbox.enabledWindows")??"off"}_isSandboxAllowNetworkConfigured(){return this._os===1?this._getSandboxConfiguredWindowsEnabledValue()==="allowNetwork":this._getSandboxConfiguredEnabledValue()==="allowNetwork"}_areUnsandboxedCommandsAllowed(){return this._getSettingValue("chat.agent.sandbox.allowUnsandboxedCommands")===!0}_getSettingValue(e){return this._host.getSandboxSetting(e)}};Vt=w([C(1,Me),C(2,M),C(3,su)],Vt);var bE="tmp",Zm=class{constructor(t,e,n,r,o,s){this._sessionId=t;this._workingDirectory=e;this._environmentService=n;this._productService=r;this._agentConfigurationService=o;this.onDidChangeRoots=X.None;this._sandboxHelper=s,this.onDidChangeSandboxSettings=this._agentConfigurationService.onDidRootConfigChange}async getOS(){return pt}async getRuntimeInfo(){let t=de(tt.asFileUri("").path),e=!!process.versions.electron;return{appRoot:t,execPath:process.execPath,runAsNode:e}}async getUserHome(){return this._environmentService.userHome}async getSandboxTempDir(){let t=this._environmentService.userHome;if(!t)return;let e=y.joinPath(t,this._productService.dataFolderName,bE);return y.joinPath(e,`agenthost_${this._sessionId}`)}async getWorkspaceStorageReadRoot(){}getWriteRoots(){return this._workingDirectory?[this._workingDirectory]:[]}async checkSandboxDependencies(){return this._sandboxHelper.checkSandboxDependencies()}async getWindowsMxcFilesystemPolicy(){return this._sandboxHelper.getWindowsMxcFilesystemPolicy()}async getWindowsMxcEnvironment(){return this._sandboxHelper.getWindowsMxcEnvironment()}getSandboxSetting(t){let e=pb[t];return e===void 0?void 0:this._agentConfigurationService.getRootValue(ba,"sandbox")?.[e]}};function BI(i,t,e,n,r,o,s){let a=new Zm(o,s,t,e,n,r);return i.createInstance(Vt,a)}var HI=8e4,SE=12e4,eg="<<<COPILOT_SENTINEL_",IE="The command opened the alternate buffer and is still running in the terminal. It likely launched an interactive terminal UI. Use write_bash/write_powershell to interact with it, or shutdown the shell to stop it.";function _E(i){let t=Math.max(i.lastIndexOf("/"),i.lastIndexOf("\\"));switch(i.slice(t+1).toLowerCase().replace(/\.exe$/,"")){case"pwsh":case"powershell":case"pwsh-preview":return"powershell";case"bash":case"sh":case"zsh":case"fish":case"csh":case"ksh":case"nu":case"xonsh":case"git-cmd":case"wsl":case"ubuntu":case"ubuntu1804":case"kali":case"debian":case"opensuse-42":case"sles-12":return"bash";default:return H?"powershell":"bash"}}var _i=class extends T{constructor(e,n,r,o,s,a,l,c,u){super();this._sessionUri=e;this.workingDirectory=n;this._terminalManager=r;this._logService=o;this._instantiationService=s;this._environmentService=a;this._productService=l;this._agentConfigurationService=c;this._sandboxHelper=u;this._shells=new Map;this._toolCallShells=new Map;this._busyShellIds=new Set;this._heldShellReleaseListeners=new Map;this._onDidAssociateTerminal=this._register(new x);this.onDidAssociateTerminal=this._onDidAssociateTerminal.event;this._register(A(()=>{for(let d of this._heldShellReleaseListeners.values())d.dispose();this._heldShellReleaseListeners.clear();for(let d of this._shells.values())this._terminalManager.hasTerminal(d.terminalUri)&&this._terminalManager.disposeTerminal(d.terminalUri);this._shells.clear(),this._toolCallShells.clear(),this._busyShellIds.clear()}))}getResolvedExecutable(){return this._resolvedExecutable||(this._resolvedExecutable=this._terminalManager.getDefaultShell()),this._resolvedExecutable}getOrCreateSandboxEngine(){if(!this._sandboxEngine){let e=this._sessionUri.path.split("/").pop()??j(),n=BI(this._instantiationService,this._environmentService,this._productService,this._agentConfigurationService,this._sandboxHelper,e,this.workingDirectory);this._register(n),this._register(A(()=>{n.cleanupTempDir().catch(r=>this._logService.warn("[ShellManager] Sandbox temp dir cleanup failed",r))})),this._sandboxEngine=n}return this._sandboxEngine}async getOrCreateShell(e,n,r,o){for(let f of this._shells.values()){if(f.shellType!==e||!this._terminalManager.hasTerminal(f.terminalUri))continue;if(this._terminalManager.getExitCode(f.terminalUri)!==void 0){this._shells.delete(f.id);continue}if(!this._busyShellIds.has(f.id))return this._busyShellIds.add(f.id),this._trackToolCall(r,f.id),this._makeReference(f)}let s=j(),a=`agenthost-terminal://shell/${s}`,l={kind:"session",session:this._sessionUri.toString(),turnId:n,toolCallId:r},c=e==="bash"?"Bash":"PowerShell",u=await this.getResolvedExecutable();await this._terminalManager.createTerminal({channel:a,claim:l,name:c,cwd:o??this.workingDirectory?.fsPath},{shell:u,preventShellHistory:!0,nonInteractive:!0});let d={id:s,terminalUri:a,shellType:e,executable:u};return this._shells.set(s,d),this._busyShellIds.add(s),this._trackToolCall(r,s),this._logService.info(`[ShellManager] Created ${e} shell ${s} (terminal=${a},  executable=${u})`),this._makeReference(d)}_makeReference(e){let n=!1;return{object:e,dispose:()=>{n||(n=!0,this._busyShellIds.delete(e.id))}}}holdShellUntilCommandFinishes(e){if(this._heldShellReleaseListeners.has(e.id))return;let n=new z,r=()=>{this._busyShellIds.delete(e.id),this._heldShellReleaseListeners.delete(e.id),n.dispose()};n.add(this._terminalManager.onCommandFinished(e.terminalUri,r)),n.add(this._terminalManager.onExit(e.terminalUri,r)),this._heldShellReleaseListeners.set(e.id,n)}_trackToolCall(e,n){this._toolCallShells.set(e,n);let r=this._shells.get(n);if(r){let o=r.shellType==="bash"?"Bash":"PowerShell";this._onDidAssociateTerminal.fire({toolCallId:e,terminalUri:r.terminalUri,displayName:o})}}getTerminalUriForToolCall(e){let n=this._toolCallShells.get(e);if(n)return this._shells.get(n)?.terminalUri}getShell(e){return this._shells.get(e)}listShells(){let e=[];for(let n of this._shells.values())this._terminalManager.hasTerminal(n.terminalUri)&&e.push(n);return e}shutdownShell(e){let n=this._shells.get(e);return n?(this._heldShellReleaseListeners.get(e)?.dispose(),this._heldShellReleaseListeners.delete(e),this._terminalManager.disposeTerminal(n.terminalUri),this._shells.delete(e),this._busyShellIds.delete(e),this._logService.info(`[ShellManager] Shut down shell ${e}`),!0):!1}};_i=w([C(2,So),C(3,M),C(4,Ve),C(5,Ta),C(6,Et),C(7,Ye),C(8,iu)],_i);function CE(){return j().replace(/-/g,"")}function TE(i,t){return t==="powershell"?`Write-Output "${eg}${i}_EXIT_$LASTEXITCODE>>>"`:`echo "${eg}${i}_EXIT_$?>>>"`}function qI(i){return i==="powershell"?"":" "}function xE(i){let t=i.replace(/\r\n|\r/g,`
`);return/(?<!\\)\n/.test(t)}function zI(i){return qe||xE(i)}function wE(i,t){let e=`${eg}${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 Ci(i){let t=Qh(i).trim();return t.length>HI&&(t=t.substring(t.length-HI)),t}function Pn(i){return{textResultForLlm:i,resultType:"success"}}function yt(i,t){return{textResultForLlm:i,resultType:"failure",error:t}}function kn(i,t){return{toolResult:i,keepShellBusy:t?.keepShellBusy}}function jI(i){return kn(Pn(i),{keepShellBusy:!0})}function RE(){return kn(yt(IE,"alternateBuffer"),{keepShellBusy:!0})}function KI(i,t,e,n,r){t.createAltBufferPromise(i.terminalUri,n).then(()=>{e.info("[ShellTool] Command entered alternate buffer"),r(RE())})}async function EE(i,t,e,n,r){let o=n.supportsCommandDetection(i.terminalUri)?await PE(i,t,e,n,r):await kE(i,t,e,n,r);return{...o,toolResult:{...o.toolResult,textResultForLlm:`Shell ID: ${i.id}
${o.toolResult.textResultForLlm}`}}}async function PE(i,t,e,n,r){let o=new z,s=new Promise(a=>{let l=!1,c=d=>{l||(l=!0,o.dispose(),a(d))};o.add(n.onCommandFinished(i.terminalUri,d=>{let f=Ci(d.output),g=d.exitCode??0;r.info(`[ShellTool] Command completed (shell integration) with exit code ${g}`),c(kn(g===0?Pn(`Exit code: ${g}
${f}`):yt(`Exit code: ${g}
${f}`)))})),KI(i,n,r,o,c),o.add(n.onExit(i.terminalUri,d=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${d}`);let f=n.getContent(i.terminalUri)??"",g=Ci(f);c(kn(yt(`Shell exited with code ${d}
${g}`)))})),o.add(n.onClaimChanged(i.terminalUri,d=>{d.kind==="session"&&!d.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),c(jI("The user chose to continue this command in the background. The terminal is still running.")))}));let u=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let d=n.getContent(i.terminalUri)??"",f=Ci(d);c(kn(yt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${f}`,"timeout")))},e);o.add(A(()=>clearTimeout(u)))});try{await n.sendText(i.terminalUri,`${qI(i.shellType)}${t}`,{shouldExecute:!0,bracketedPasteMode:zI(t)})}catch(a){throw o.dispose(),a}return s}async function kE(i,t,e,n,r){let o=CE(),s=TE(o,i.shellType),a=new z,c=(n.getContent(i.terminalUri)??"").length,u=new Promise(d=>{let f=!1,g=S=>{f||(f=!0,a.dispose(),d(S))},h=()=>{let S=n.getContent(i.terminalUri)??"",_=Math.min(c,S.length),b=S.substring(_),I=wE(b,o);if(I.found){let R=Ci(I.outputBeforeSentinel);r.info(`[ShellTool] Command completed with exit code ${I.exitCode}`),I.exitCode===0?g(kn(Pn(`Exit code: ${I.exitCode}
${R}`))):g(kn(yt(`Exit code: ${I.exitCode}
${R}`)))}};a.add(n.onData(i.terminalUri,()=>{h()})),KI(i,n,r,a,g),a.add(n.onExit(i.terminalUri,S=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${S}`);let b=(n.getContent(i.terminalUri)??"").substring(c),I=Ci(b);g(kn(yt(`Shell exited with code ${S}
${I}`)))})),a.add(n.onClaimChanged(i.terminalUri,S=>{S.kind==="session"&&!S.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),g(jI("The user chose to continue this command in the background. The terminal is still running.")))}));let v=setTimeout(()=>{r.warn(`[ShellTool] Command timed out after ${e}ms`);let _=(n.getContent(i.terminalUri)??"").substring(c),b=Ci(_);g(kn(yt(`Command timed out after ${Math.round(e/1e3)}s. Partial output:
${b}`,"timeout")))},e);a.add(A(()=>clearTimeout(v))),h()});try{await n.sendText(i.terminalUri,`${qI(i.shellType)}${t}`,{shouldExecute:!0,bracketedPasteMode:zI(t)}),await n.sendText(i.terminalUri,s,{shouldExecute:!0})}catch(d){throw a.dispose(),d}return u}async function GI(i,t,e,n){let r=await i.getResolvedExecutable(),o=_E(r),s=i.getOrCreateSandboxEngine(),a=await s.isEnabled(),l=a?s.getResolvedNetworkDomains():void 0,c={name:o,description:o==="bash"?Pc(r)?LE(a,l):OE(a,l):DE(o,r,a,l),parameters:{type:"object",properties:{command:{type:"string",description:"The command to execute"},timeout:{type:"number",description:"Timeout in milliseconds (default 120000)"},...a?{requestUnsandboxedExecution:{type:"boolean",description:"Request that this command run outside the sandbox. Only set this after first executing the command in the sandbox and observing that sandboxing caused the failure. The user will be prompted before the command runs unsandboxed."},requestUnsandboxedExecutionReason:{type:"string",description:"A short explanation of the sandboxed execution failure or blocked-domain requirement that justifies retrying outside the sandbox. Only provide this when requestUnsandboxedExecution is true."}}:{}},required:["command"]},overridesBuiltInTool:!0,handler:async(_,b)=>{let I=_.timeout??SE,R=await i.getOrCreateShell(o,b.toolCallId,b.toolCallId),P=!0;try{let J=_.command;if(a){if(_.requestUnsandboxedExecution&&!s.areUnsandboxedCommandsAllowed())return yt("Unsandboxed execution is disabled by the chat.agent.sandbox.allowUnsandboxedCommands setting.","unsandboxed_disabled");let L=s.isAutoApproveUnsandboxedCommands(),O=async te=>{if(L)return!0;if(!n){let Cs=te?.join(", ")??"(unknown)";return yt(`Command requires approval to run outside the sandbox. Blocked domains: ${Cs}. Re-run with requestUnsandboxedExecution=true and requestUnsandboxedExecutionReason explaining why unsandboxed access is required.`,"sandbox_blocked")}return await n({toolCallId:b.toolCallId,toolName:b.toolName,shellExecutable:r,command:_.command,reason:_.requestUnsandboxedExecutionReason,blockedDomains:te})},K=await s.wrapCommand(_.command,_.requestUnsandboxedExecution,r,R.object.shellType==="bash"?i.workingDirectory:void 0);if(_.requestUnsandboxedExecution&&!K.isSandboxWrapped){let te=await O(K.blockedDomains);if(typeof te!="boolean")return te;if(!te){let ge=K.blockedDomains?.join(", ")??"(none)";return yt(`User declined to run command outside the sandbox. Blocked domains: ${ge}.`,"sandbox_blocked")}}if(K.requiresUnsandboxConfirmation){let te=await O(K.blockedDomains);if(typeof te!="boolean")return te;if(!te){let ge=K.blockedDomains?.join(", ")??"(unknown)";return yt(`User declined to run command outside the sandbox. Blocked domains: ${ge}.`,"sandbox_blocked")}K=await s.wrapCommand(_.command,!0,r,R.object.shellType==="bash"?i.workingDirectory:void 0)}J=K.command}let E=await EE(R.object,J,I,t,e);return E.keepShellBusy&&(P=!1,i.holdShellUntilCommandFinishes(R.object)),E.toolResult}finally{P&&R.dispose()}}},u={name:`read_${o}`,description:`Read the latest output from a running ${o} 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:_=>{let b=i.listShells(),I=_.shell_id?i.getShell(_.shell_id):b[b.length-1];if(!I)return yt("No active shell found.","no_shell");let R=t.getContent(I.terminalUri);return Pn(R?Ci(R):"(no output)")}},d={name:`write_${o}`,description:`Send input to a running ${o} shell (e.g. answering a prompt, sending Ctrl+C).`,parameters:{type:"object",properties:{command:{type:"string",description:"Text to write to the shell stdin"}},required:["command"]},overridesBuiltInTool:!0,skipPermission:!0,handler:async _=>{let b=i.listShells(),I=b[b.length-1];return I?(await t.sendText(I.terminalUri,_.command,{shouldExecute:!1}),Pn("Input sent to shell.")):yt("No active shell found.","no_shell")}},f={name:o==="bash"?"bash_shutdown":`${o}_shutdown`,description:`Stop a ${o} 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:_=>{if(_.shell_id)return i.shutdownShell(_.shell_id)?Pn("Shell stopped."):yt("Shell not found.","not_found");let b=i.listShells(),I=b[b.length-1];return I?(i.shutdownShell(I.id),Pn("Shell stopped.")):yt("No active shell to stop.","no_shell")}},g={name:`list_${o}`,description:`List active ${o} shell instances.`,parameters:{type:"object",properties:{}},overridesBuiltInTool:!0,skipPermission:!0,handler:()=>{let _=i.listShells();if(_.length===0)return Pn("No active shells.");let b=_.map(I=>{let R=t.getExitCode(I.terminalUri),P=R!==void 0?`exited (${R})`:"running";return`- ${I.id}: ${I.shellType} [${P}]`});return Pn(b.join(`
`))}},h=o==="bash"?"powershell":"bash",v=`This tool is disabled because the configured shell is ${r}. Use the \`${o}\` tool instead.`;return[c,u,d,f,g,{name:h,description:v,parameters:{type:"object",properties:{command:{type:"string",description:"The command to execute"},timeout:{type:"number",description:"Timeout in milliseconds (default 120000)"}},required:["command"]},overridesBuiltInTool:!0,skipPermission:!0,handler:()=>yt(v,"wrong_shell")}]}function AE(i){return i.endsWith("System32\\WindowsPowerShell\\v1.0\\powershell.exe")}function DE(i,t,e,n){let r=AE(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(...JI(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 JI(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 QI(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(JI(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 OE(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.",QI("bash",i,t),"- Use [[ ]] for conditional tests instead of [ ]","- Prefer $() over backticks for command substitution","- Use set -e at start of complex commands to exit on errors"].join(`
`)}function LE(i,t){return["This tool allows you to execute shell commands in a persistent zsh terminal session, preserving environment variables, working directory, and other context across multiple commands.",QI("bash",i,t),"- Use type to check command type (builtin, function, alias)","- Use jobs, fg, bg for job control","- Use [[ ]] for conditional tests instead of [ ]","- Prefer $() over backticks for command substitution","- Take advantage of zsh globbing features (**, extended globs). Note: unmatched globs fail by default (zsh: no matches found) - use a glob qualifier like *(N) or quote the glob if it should be literal","","zsh pitfalls - these WILL cause errors or hangs:","- NEVER use bare == or === as separators (e.g. echo === triggers zsh equals expansion). Quote them: echo '==='","- NEVER use status as a variable name (it is read-only in zsh). Use exit_code or ret instead"].join(`
`)}var ME=".md",YI=".instructions.md",NE=".prompt.md",UE="SKILL.md",FE="skill.md",WE="README.md",$E="copilot-instructions.md";function XI(i,t){return{workspace:[{path:[".github","agents"],type:"agent"},{path:[".agents","agents"],type:"agent"},{path:[".claude","agents"],type:"agent"},{path:[".github","skills"],type:"skill"},{path:[".agents","skills"],type:"skill"},{path:[".claude","skills"],type:"skill"},{path:[".github","instructions"],type:"instruction"}],user:[{path:[".copilot","agents"],type:"agent"},{path:[".agents","skills"],type:"skill"}]}}var VE=100,Qo=class extends T{constructor(e,n,r,o){super();this._workingDirectory=e;this._userHome=n;this._fileService=r;this._logService=o;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this._watchers=this._register(new z);this._refreshDelayer=this._register(new ni(VE));let{workspace:s,user:a}=XI(this._workingDirectory,this._userHome);this._rootUris=[...s.map(l=>ee(this._workingDirectory,...l.path)),...a.map(l=>ee(this._userHome,...l.path))],this._register(this._fileService.onDidFilesChange(l=>{this._rootUris.some(c=>l.affects(c))&&this._scheduleRefresh()}))}files(){return this._cached||(this._cached=this._scan()),this._cached}refresh(){this._cached=void 0,this._watchers.clear()}_scheduleRefresh(){this._refreshDelayer.trigger(()=>{this.refresh(),this._onDidChange.fire()}).catch(()=>{})}async _scan(){this._watchers.clear();let e=new Re,{workspace:n,user:r}=XI(this._workingDirectory,this._userHome);return await Promise.all([...n.map(o=>this._scanRoot(this._workingDirectory,o,e)),...r.map(o=>this._scanRoot(this._userHome,o,e))]),[...e.values()]}async _scanRoot(e,n,r){let o=ee(e,...n.path),s;try{s=await this._fileService.resolve(o,{resolveMetadata:!1})}catch{return}if(!(!s.isDirectory||!s.children)){try{this._watchers.add(this._fileService.watch(o,{recursive:!0,excludes:[]}))}catch(a){this._logService.warn(`[SessionCustomizationDiscovery] Failed to watch '${o.toString()}': ${a instanceof Error?a.message:String(a)}`)}for(let a of s.children)if(n.type==="skill"){if(a.isDirectory){let l=ee(a.resource,UE);try{(await this._fileService.resolve(l,{resolveMetadata:!1})).isFile&&!r.has(l)&&r.set(l,{uri:l,type:"skill"})}catch{}}}else if(a.isFile){let l=a.name.toLowerCase();if(n.type==="agent"){if(!l.endsWith(ME)||r.has(a.resource)||a.name===WE||l===FE||l===$E||l.endsWith(NE)||l.endsWith(YI))continue;r.set(a.resource,{uri:a.resource,type:"agent"})}else{let c=YI;l.endsWith(c)&&!r.has(a.resource)&&r.set(a.resource,{uri:a.resource,type:n.type})}}}}};Qo=w([C(2,Me),C(3,M)],Qo);var ZI="VS Code Synced Data",BE="host-discovery",HE=JSON.stringify({name:ZI,description:"Customization data discovered from this workspace and your home directory"},null,"	");function qE(i){switch(i){case"agent":return"agents";case"skill":return"skills";case"instruction":return"rules"}}var Yo=class extends T{constructor(e,n,r){super();this._fileService=n;let o=`host-${Wt(e.toString())}`;this._rootUri=y.joinPath(r.basePath,BE,o)}get rootUri(){return this._rootUri}get lastNonce(){return this._lastNonce}async bundle(e){if(e.length===0)return;try{await this._fileService.del(this._rootUri,{recursive:!0})}catch{}let n=y.joinPath(this._rootUri,".plugin","plugin.json");await this._fileService.writeFile(n,k.fromString(HE));let r=[];for(let s of e){let a=qE(s.type),l=_e(s.uri),c,u;if(s.type==="skill"){let f=_e(mn(s.uri));c=y.joinPath(this._rootUri,a,f,l),u=`${a}/${f}/${l}`}else c=y.joinPath(this._rootUri,a,l),u=`${a}/${l}`;let d=await this._fileService.readFile(s.uri);await this._fileService.writeFile(c,d.value),r.push(`${u}:${d.value.toString()}`)}r.sort();let o=String(Wt(r.join(`
`)));return this._lastNonce=o,{ref:{uri:this._rootUri.toString(),displayName:ZI,description:`${e.length} customization(s) discovered for this session`,nonce:o}}}};Yo=w([C(1,Me),C(2,jo)],Yo);var e_="thinkingLevel",jE=["low","medium","high","xhigh"],KE={mode:"customize",sections:{identity:{action:"replace",content:"You are an AI assistant using Copilot CLI runtime in VS Code. You help users with software engineering tasks. When asked about your identity, you must state that you are an AI assistant using Copilot CLI runtime in VS Code."}}};function GE(i){return jE.some(t=>t===i)}function JE(i){return y.joinPath(i,"..",`${be(i.fsPath)}.worktrees`)}function QE(i){return i.replace(/\//g,"-")}function YE(i,t){return`agents/${t?`${t}-${i.substring(0,8)}`:i}`}function XE(i){let e=i.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").split("-").filter(n=>n.length>0).slice(0,8).join("-").slice(0,48).replace(/-+$/g,"");return e.length>0?e:void 0}function t_(i){return m(2006,null,We(i))+`

`}function ZE(i,t){if(i.length===0)return i;let e=i.slice(),n=e[0],r=n.responseParts[0];if(r?.kind==="markdown"){let o=n.responseParts.slice();o[0]={...r,content:t+r.content},e[0]={...n,responseParts:o}}else{let o=[{kind:"markdown",id:j(),content:t},...n.responseParts];e[0]={...n,responseParts:o}}return e}var me=class extends T{constructor(e,n,r,o,s,a,l,c,u,d){super();this._logService=e;this._instantiationService=n;this._fileService=r;this._sessionDataService=o;this._gitService=s;this._terminalManager=a;this._configurationService=l;this._otelService=c;this._checkpointService=d;this.id="copilotcli";this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this._onDidMaterializeSession=this._register(new x);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._models=yn(this,[]);this.models=this._models;this._sessions=this._register(new dt);this._provisionalSessions=new Map;this._createdWorktrees=new Map;this._pendingFirstTurnAnnouncements=new Map;this._sessionSequencer=new ft;this._activeClients=new Re;this._lastSessionSyncEnabled=this._isSessionSyncEnabled();this._plugins=this._register(this._instantiationService.createInstance(Ba)),this.onDidCustomizationsChange=this._plugins.onDidChange,this._register(u.registerProvider(new qd(this.id,{hasHistory:f=>!this._provisionalSessions.has(f)&&this._sessions.has(f)}))),this._register(this._configurationService.onDidRootConfigChange(()=>{this._restartClientIfSessionSyncChanged().catch(f=>this._logService.error("[Copilot] Failed to restart client after session sync change",f))}))}static{this._BRANCH_COMPLETION_LIMIT=25}_isSessionSyncEnabled(){return this._configurationService.getRootValue(va,Hf)===!0}async _restartClientIfSessionSyncChanged(){let e=this._isSessionSyncEnabled();this._lastSessionSyncEnabled!==e&&(this._lastSessionSyncEnabled=e,this._client&&this._sessions.size===0&&(this._logService.info(`[Copilot] Session sync changed to ${e}, restarting CopilotClient`),await this._stopClient()))}_createCopilotClient(e){return new zE(e)}getDescriptor(){return{provider:"copilotcli",displayName:"Copilot CLI",description:"Copilot SDK agent running in a dedicated process"}}getProtectedResources(){return[to]}getCustomizations(){return this._plugins.getConfiguredHostCustomizations()}async getSessionCustomizations(e){return this._plugins.getSessionCustomizationsSettled(await this._getSessionCustomizationDirectory(e))}async _getSessionCustomizationDirectory(e){let n=q.id(e),r=this._provisionalSessions.get(n);if(r)return r.workingDirectory;let o=this._sessions.get(n),s=o?void 0:await this._readSessionMetadata(e);return o?.customizationDirectory??s?.customizationDirectory??s?.workingDirectory}async authenticate(e,n){if(e!==to.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(A(()=>o.dispose()))}async _ensureClient(){let e=this._githubToken;if(!e)throw new V(fo,"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 g of Object.keys(r))g!=="ELECTRON_RUN_AS_NODE"&&(g.startsWith("VSCODE_")||g.startsWith("ELECTRON_"))&&delete r[g];r.COPILOT_CLI_RUN_AS_NODE="1",r.USE_BUILTIN_RIPGREP="false";let o=y.joinPath(tt.asFileUri(""),"..","node_modules","@github","copilot","index.js").fsPath,s=await Ho(),a=de(s),l=Object.keys(r).find(g=>g.toUpperCase()==="PATH")??"PATH",c=r[l];r[l]=c?`${c}${Wi}${a}`:a,this._logService.info(`[Copilot] Resolved CLI path: ${o}`);let u=await this._otelService.getSdkTelemetryConfig(),d={gitHubToken:e,useLoggedInUser:!1,useStdio:!0,autoStart:!0,env:r,cliPath:o,telemetry:u,remote:this._isSessionSyncEnabled()},f=this._createCopilotClient(d);if(await f.start(),this._githubToken!==e)throw await f.stop(),new Error("Copilot authentication changed while the client was starting");return this._logService.info("[Copilot] CopilotClient started successfully"),this._enablePlanModeOnClient(f),this._client=f,this._clientStarting=void 0,f})();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(2001,null);case"medium":return m(2002,null);case"high":return m(2000,null);case"xhigh":return m(2004,null);default:return o}});return{type:"object",properties:{[e_]:{type:"string",title:m(2003,null),description:m(1999,null),default:n,enum:[...e],enumLabels:r}}}}_getReasoningEffort(e){let n=e?.config?.[e_];return GE(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}}}_serializeAgentSelection(e){return JSON.stringify({uri:e.uri})}_parseAgentSelection(e){if(e)try{let n=JSON.parse(e);if(n&&typeof n=="object"&&typeof n.uri=="string")return{uri:n.uri}}catch{}}_resolveAgentName(e,n){for(let r of e.plugins){let o=r.agents.find(s=>s.uri.toString()===n.uri);if(o)return o.name}}async listSessions(){this._logService.info("[Copilot] Listing sessions...");let n=await(await this._ensureClient()).listSessions(),r=new Bi(4),o=new Map,a=(await Promise.all(n.map(async l=>{let c=q.uri(this.id,l.sessionId),u=await this._readStoredSessionMetadata(c);if(!u)return;let{project:d,resolved:f}=u;f||(d=await this._resolveSessionProject(l.context,r,o),this._storeSessionProjectResolution(c,d));let g=u.workingDirectory??(typeof l.context?.cwd=="string"?y.file(l.context.cwd):void 0);return{session:c,startTime:l.startTime.getTime(),modifiedTime:l.modifiedTime.getTime(),project:d,summary:l.summary,model:u.model,agent:u.agent,workingDirectory:g,customizationDirectory:u.customizationDirectory}}))).filter(l=>l!==void 0);return this._logService.info(`[Copilot] Found ${a.length} sessions`),a}async getSessionMetadata(e){let n=q.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 Bi(1);a=await this._resolveSessionProject(s?.context,c,new Map),this._storeSessionProjectResolution(e,a)}let l=r?.workingDirectory??(typeof s?.context?.cwd=="string"?y.file(s.context.cwd):void 0);return{session:e,startTime:s?.startTime.getTime()??Date.now(),modifiedTime:s?.modifiedTime.getTime()??Date.now(),project:a,summary:s?.summary,model:r?.model,agent:r?.agent,workingDirectory:l,customizationDirectory:r?.customizationDirectory}}async _listModels(){this._logService.info("[Copilot] Listing models...");let r=(await(await this._ensureClient()).listModels()).map(o=>({provider:this.id,id:o.id,name:o.name,maxContextWindow:o.capabilities?.limits?.max_context_window_tokens,supportsVision:!!o.capabilities?.supports?.vision,configSchema:this._createThinkingLevelConfigSchema(o.supportedReasoningEfforts,o.defaultReasoningEffort),policyState:o.policy?.state,_meta:typeof o.billing?.multiplier=="number"?{multiplierNumeric:o.billing.multiplier}:void 0}));return this._logService.info(`[Copilot] Found ${r.length} models`),r}async createSession(e){if(!e?.workingDirectory)throw new Error("workingDirectory is required to create a Copilot session");this._logService.info(`[Copilot] Creating session... ${e?.model?`model=${e.model.id}`:""}`);let n=await this._ensureClient();if(e?.fork){let l=q.id(e.fork.session);return this._sessionSequencer.queue(l,async()=>{this._logService.info(`[Copilot] Forking session ${l} at turnId=${e.fork.turnId}`);let u=await(this._sessions.get(l)??await this._resumeSession(l)).getNextTurnEventId(e.fork.turnId),f=(await n.rpc.sessions.fork({sessionId:l,...u?{toEventId:u}:{}})).sessionId,g=this._sessionDataService.getSessionDataDirById(f),h=y.joinPath(g,pa);try{let b=await this._sessionDataService.tryOpenDatabase(e.fork.session);if(b)try{await Ti.mkdir(g.fsPath,{recursive:!0}),await b.object.vacuumInto(h.fsPath)}finally{b.dispose()}}catch(b){this._logService.warn(`[Copilot] Failed to copy session database for fork: ${b instanceof Error?b.message:String(b)}`)}let v=await this._resumeSession(f);e.fork.turnIdMapping&&await v.remapTurnIds(e.fork.turnIdMapping);let S=v.sessionUri;this._logService.info(`[Copilot] Forked session created: ${S.toString()}`);let _=await sr({cwd:e.workingDirectory?.fsPath},this._gitService);return await this._storeSessionMetadata(S,e.model,e.workingDirectory,e.workingDirectory,_,!0),e.agent!==void 0&&await this._storeSessionAgentMetadata(S,e.agent),{session:S,workingDirectory:e.workingDirectory,..._?{project:_}:{}}})}let r=e.session?q.id(e.session):j(),o=q.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 sr({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,e.workingDirectory));let a=await sr({cwd:e.workingDirectory.fsPath},this._gitService);return s||this._provisionalSessions.set(r,{sessionId:r,sessionUri:o,workingDirectory:e.workingDirectory,model:e.model,agent:e.agent,project:a}),this._logService.info(`[Copilot] Session created (provisional): ${o.toString()}`),{session:o,workingDirectory:e.workingDirectory,provisional:!0,...a?{project:a}:{}}}async _materializeProvisional(e,n){let r=this._provisionalSessions.get(e);if(!r)throw new Error(`Cannot materialize unknown provisional session: ${e}`);let o=await this._ensureClient(),s=r.sessionUri,a=this._configurationService.getSessionConfigValues(s.toString()),l={provider:this.id,session:s,workingDirectory:r.workingDirectory,model:r.model,config:a},c=r.workingDirectory,d=await this._getOrCreateActiveClient(s).snapshot(c),f=await this._resolveSessionWorkingDirectory(l,e,n),g=this._instantiationService.createInstance(_i,s,f),h=this._buildSessionConfig(d,g),v=async b=>{let I=r.agent?this._resolveAgentName(d,r.agent):void 0,R=await o.createSession({model:r.model?.id,reasoningEffort:this._getReasoningEffort(r.model),...I?{agent:I}:{},sessionId:e,streaming:!0,workingDirectory:f?.fsPath,...await h(b)});return new Jo(R)},S;try{S=this._createAgentSession(v,e,g,f,c,d),await S.initializeSession()}catch(b){throw await this._removeCreatedWorktree(e),b}let _=await sr({cwd:f?.fsPath},this._gitService);return this._provisionalSessions.delete(e),await this._storeSessionMetadata(s,r.model,f,c,_,!0),r.agent!==void 0&&await this._storeSessionAgentMetadata(s,r.agent),this._checkpointService.captureBaseline(s,f).catch(b=>{this._logService.warn(`[Copilot:${e}] Baseline checkpoint capture failed: ${b instanceof Error?b.message:String(b)}`)}),this._logService.info(`[Copilot] Session materialized: ${s.toString()}`),this._onDidMaterializeSession.fire({session:s,workingDirectory:f,project:_}),S}async resolveSessionConfig(e){let n=e.workingDirectory?await this._getGitInfo(e.workingDirectory):void 0,r=ht({type:"string",title:m(1993,null),description:m(1998,null),enum:n?["folder","worktree"]:["folder"],enumLabels:n?[m(1994,null),m(1996,null)]:[m(1994,null)],enumDescriptions:n?[m(1995,null),m(1997,null)]:[m(1995,null)],default:n?"worktree":"folder",readOnly:!n,sessionMutable:!1}),o=n?"worktree":"folder",s=r.validate(e.config?.isolation)?e.config.isolation:o,a,l;if(n){let d=s==="folder";l=s==="worktree"?n.defaultBranch:n.currentBranch,a=ht({type:"string",title:m(1991,null),description:m(1992,null),enum:[l],enumLabels:[l],default:l,enumDynamic:!d,readOnly:d,sessionMutable:!1})}let c=_n({isolation:r,...Pt.definition,...a?{branch:a}:{}}),u=c.validateOrDefault(e.config,{isolation:s,autoApprove:"default",mode:"interactive",...l!==void 0?{branch:l}:{}});return{schema:c.toProtocol(),values:u}}async sessionConfigCompletions(e){return e.property!=="branch"||!e.workingDirectory?{items:[]}:{items:(await this._getBranches(e.workingDirectory,e.query)).map(r=>({value:r,label:r}))}}async setClientCustomizations(e,n,r){let o=await this._getSessionCustomizationDirectory(e);return this._plugins.sync(n,r,o,s=>{this._onDidSessionProgress.fire({kind:"action",session:e,action:s})})}setClientTools(e,n,r){let o=q.id(e),s=this._getOrCreateActiveClient(e),a=this._sessions.has(o);this._logService.info(`[Copilot:${o}] setClientTools: clientId=${n}, tools=[${r.map(l=>l.name).join(", ")||"(none)"}], hasCachedSdkSession=${a}`),s.updateTools(n,r)}onClientToolCallComplete(e,n,r){let o=e,s;for(;s=Qe(o);)o=s.parentSession;let a=q.id(o);this._sessions.get(a)?.handleClientToolCallComplete(n,r)}setCustomizationEnabled(e,n){this._plugins.setEnabled(e,n)}async sendMessage(e,n,r,o){let s=q.id(e);await this._sessionSequencer.queue(s,async()=>{let a;this._provisionalSessions.has(s)?a=await this._materializeProvisional(s,n):a=this._sessions.get(s);let l=this._activeClients.get(e),c=!!a;this._logService.info(`[Copilot:${s}] sendMessage: cachedEntry=${c}, hasActiveClient=${!!l}, activeClientId=${l?"(set)":"(none)"}`),a&&l&&await l.isOutdated(a.appliedSnapshot,a.customizationDirectory)&&(this._logService.info(`[Copilot:${s}] Session config changed (isOutdated=true), refreshing session. snapshotClientId=${a.appliedSnapshot.clientId}`),this._sessions.deleteAndDispose(s),a=void 0),a||this._logService.info(`[Copilot:${s}] No cached entry${c?" (was evicted by isOutdated)":""}, calling _resumeSession`),a??=await this._resumeSession(s),o&&a.resetTurnState(o);let u=this._pendingFirstTurnAnnouncements.get(s);u!==void 0&&(this._pendingFirstTurnAnnouncements.delete(s),a.emitInitialMarkdown(u));try{let d=this._resolveSdkMode(e);await a.send(n,r,o,d)}catch(d){let f=d?.code,g=d instanceof Error?d.message:String(d);throw this._logService.error(`[Copilot:${s}] entry.send() failed: code=${f}, message=${g}, hadCachedEntry=${c}, errorType=${d?.constructor?.name}`),d}})}_resolveSdkMode(e){let n=e.toString(),r=this._configurationService.getEffectiveValue(n,Pt,"mode");if(r==="plan")return"plan";if(r==="interactive")return this._configurationService.getEffectiveValue(n,Pt,"autoApprove")==="autopilot"?"autopilot":"interactive"}setPendingMessages(e,n,r){let o=q.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=Qe(e);if(n){let l=n.parentSession,c;for(;c=Qe(l);)l=c.parentSession;let u=q.id(l),d=this._sessions.get(u)??await this._resumeSession(u).catch(f=>{this._logService.warn(`[Copilot:${u}] Failed to resume root for subagent restore`,f)});return d?d.getSubagentMessages(n.toolCallId):[]}let r=q.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?ZE(s,t_(a.branchName)):s}async disposeSession(e){let n=q.id(e);await this._sessionSequencer.queue(n,async()=>{await this._destroyAndDisposeSession(n)})}async onArchivedChanged(e,n){let r=q.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 Ti.access(s.fsPath)}catch{this._createdWorktrees.delete(n);return}if(!await this._gitService.branchExists(a,o).catch(()=>!1)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: branch '${o}' is missing`);return}if(await this._gitService.hasUncommittedChanges(s).catch(()=>!0)){this._logService.info(`[Copilot:${n}] Skipping worktree cleanup: '${s.fsPath}' has uncommitted changes`);return}try{await this._gitService.removeWorktree(a,s),this._logService.info(`[Copilot:${n}] Removed worktree '${s.fsPath}' on archive`)}catch(u){this._logService.warn(`[Copilot:${n}] Failed to remove worktree '${s.fsPath}' on archive: ${u instanceof Error?u.message:String(u)}`)}finally{this._createdWorktrees.delete(n)}}async _recreateWorktreeOnUnarchive(e,n){let r=await this._readWorktreeMetadata(e).catch(()=>{});if(!r?.worktreePath||!r.repositoryRoot)return;let{branchName:o,worktreePath:s,repositoryRoot:a}=r;try{await Ti.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 Ti.mkdir(y.joinPath(s,"..").fsPath,{recursive:!0}),await this._gitService.addExistingWorktree(a,s,o),this._createdWorktrees.set(n,{repositoryRoot:a,worktree:s}),this._logService.info(`[Copilot:${n}] Recreated worktree '${s.fsPath}' on unarchive`)}catch(c){this._logService.warn(`[Copilot:${n}] Failed to recreate worktree '${s.fsPath}' on unarchive: ${c instanceof Error?c.message:String(c)}`)}}async abortSession(e){let n=q.id(e);await this._sessionSequencer.queue(n,async()=>{let r=this._sessions.get(n);r&&await r.abort()})}async truncateSession(e,n){let r=q.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=q.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 changeAgent(e,n){let r=q.id(e),o=this._provisionalSessions.get(r);if(o){o.agent=n;return}let s=this._sessions.get(r);if(s){let a=n?this._resolveAgentName(s.appliedSnapshot,n):void 0;await s.setAgent(n,a)}await this._storeSessionAgentMetadata(e,n)}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=q.id(e);return this._sessions.has(n)||this._provisionalSessions.has(n)}_getOrCreateActiveClient(e){let n=this._activeClients.get(e);return n||(n=new ng(r=>this._plugins.getAppliedPlugins(r)),this._activeClients.set(e,n)),n}_createAgentSession(e,n,r,o,s,a){let l=q.uri(this.id,n),c=this._instantiationService.createInstance(Go,{sessionUri:l,rawSessionId:n,onDidSessionProgress:this._onDidSessionProgress,wrapperFactory:e,shellManager:r,workingDirectory:o,customizationDirectory:s,clientSnapshot:a});return this._sessions.set(n,c),c}async _destroyAndDisposeSession(e){let n=this._provisionalSessions.get(e);if(n){this._provisionalSessions.delete(e),this._activeClients.delete(n.sessionUri);return}let r=this._sessions.get(e);if(r)try{await r.destroySession()}catch(o){this._logService.warn(`[Copilot:${e}] Failed to destroy session before cleanup: ${o instanceof Error?o.message:String(o)}`)}this._sessions.deleteAndDispose(e),await this._removeCreatedWorktree(e)}_buildSessionConfig(e,n){let r=e.plugins;return async o=>{let a=this._configurationService.getRootValue(Cn,"disableCustomTerminalTool")===!0?[]:await GI(n,this._terminalManager,this._logService,o.requestUnsandboxedCommandConfirmation),l=await LI(r.flatMap(c=>c.agents),this._fileService);return{onPermissionRequest:o.onPermissionRequest,onUserInputRequest:o.onUserInputRequest,onElicitationRequest:o.onElicitationRequest,hooks:NI(r.flatMap(c=>c.hooks),o.hooks),mcpServers:OI(r.flatMap(c=>c.mcpServers)),customAgents:l,skillDirectories:MI(r.flatMap(c=>c.skills)),systemMessage:KE,tools:[...a,...o.clientTools],infiniteSessions:{enabled:!0}}}}async _resumeSession(e){this._logService.info(`[Copilot:${e}] _resumeSession called \u2014 session not in memory, resuming...`);let n=await this._ensureClient(),r=q.uri(this.id,e),o=await this._readSessionMetadata(r),s=o.customizationDirectory??o.workingDirectory,l=await this._getOrCreateActiveClient(r).snapshot(s),c=await n.getSessionMetadata(e).catch(v=>{this._logService.warn(`[Copilot:${e}] getSessionMetadata failed`,v)}),u=o.workingDirectory??(typeof c?.context?.cwd=="string"?y.file(c.context.cwd):void 0);if(!u)throw new Error(`workingDirectory is required to resume Copilot session '${e}'`);let d=this._instantiationService.createInstance(_i,r,u),f=this._buildSessionConfig(l,d),g=async v=>{let S=await f(v),_=o.agent?this._resolveAgentName(l,o.agent):void 0;try{this._logService.info(`[Copilot:${e}] Calling SDK resumeSession...`);let b=await n.resumeSession(e,{...S,workingDirectory:u?.fsPath,..._?{agent:_}:{}});return this._logService.info(`[Copilot:${e}] SDK resumeSession succeeded`),new Jo(b)}catch(b){let I=b?.code,R=b instanceof Error?b.message:String(b);if(this._logService.warn(`[Copilot:${e}] SDK resumeSession failed: code=${I}, message=${R}`),!b||I!==-32603)throw b;this._logService.warn(`[Copilot:${e}] Resume failed (code=-32603), falling back to createSession with same ID`);let P=await n.createSession({...S,sessionId:e,streaming:!0,model:o.model?.id,reasoningEffort:this._getReasoningEffort(o.model),..._?{agent:_}:{},workingDirectory:u?.fsPath});return this._logService.info(`[Copilot:${e}] Fallback createSession succeeded`),new Jo(P)}},h=this._createAgentSession(g,e,d,u,s,l);return await h.initializeSession(),h}async _getGitInfo(e){if(!await this._gitService.isInsideWorkTree(e))return;let n=await this._gitService.getCurrentBranch(e)??"HEAD",r=await this._gitService.getDefaultBranch(e)??n;return{currentBranch:n,defaultBranch:r}}async _getBranches(e,n){return this._gitService.getBranches(e,{query:n,limit:me._BRANCH_COMPLETION_LIMIT})}async _resolveSessionWorkingDirectory(e,n,r){if(e?.config?.isolation!=="worktree"||!e.workingDirectory||typeof e.config.branch!="string")return e?.workingDirectory;let o=await this._gitService.getRepositoryRoot(e.workingDirectory);if(!o)return e.workingDirectory;let s=JE(o),a=r?XE(r):void 0,l=YE(n,a),c=y.joinPath(s,QE(l));await Ti.mkdir(s.fsPath,{recursive:!0});let u=typeof e.config.branch=="string"?e.config.branch:void 0;await this._gitService.addWorktree(o,c,l,u),this._createdWorktrees.set(n,{repositoryRoot:o,worktree:c}),this._pendingFirstTurnAnnouncements.set(n,t_(l));let d=q.uri(this.id,n);try{await this._writeWorktreeMetadata(d,{branchName:l,baseBranch:u,worktreePath:c,repositoryRoot:o})}catch(f){this._logService.warn(`[Copilot:${n}] Failed to persist worktree branch metadata: ${f instanceof Error?f.message:String(f)}`)}return c}async _removeCreatedWorktree(e){let n=this._createdWorktrees.get(e);if(n)try{await this._gitService.removeWorktree(n.repositoryRoot,n.worktree)}catch(r){this._logService.warn(`[Copilot:${e}] Failed to remove worktree '${n.worktree.fsPath}': ${r instanceof Error?r.message:String(r)}`)}finally{this._createdWorktrees.delete(e)}}static{this._META_MODEL="copilot.model"}static{this._META_AGENT="copilot.agent"}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(me._META_WORKTREE_BRANCH,n.branchName),r.object.setMetadata(me._META_WORKTREE_PATH,n.worktreePath.toString()),r.object.setMetadata(me._META_WORKTREE_REPOSITORY_ROOT,n.repositoryRoot.toString())];n.baseBranch&&o.push(r.object.setMetadata($c,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(me._META_WORKTREE_BRANCH),n.object.getMetadata(me._META_WORKTREE_PATH),n.object.getMetadata(me._META_WORKTREE_REPOSITORY_ROOT)]);if(!r)return;let a=o?y.parse(o):void 0,l=s?y.parse(s):void 0;return{branchName:r,worktreePath:a,repositoryRoot:l}}finally{n.dispose()}}async _storeSessionMetadata(e,n,r,o,s,a=s!==void 0){let l=this._sessionDataService.openDatabase(e),c=l.object;try{let u=[];n&&u.push(c.setMetadata(me._META_MODEL,this._serializeModelSelection(n))),r&&u.push(c.setMetadata(me._META_CWD,r.toString())),o&&u.push(c.setMetadata(me._META_CUSTOMIZATION_DIRECTORY,o.toString())),a&&u.push(c.setMetadata(me._META_PROJECT_RESOLVED,"true")),s&&(u.push(c.setMetadata(me._META_PROJECT_URI,s.uri.toString())),u.push(c.setMetadata(me._META_PROJECT_DISPLAY_NAME,s.displayName))),await Promise.all(u)}finally{l.dispose()}}async _readSessionMetadata(e){let n=await this._sessionDataService.tryOpenDatabase(e);if(!n)return{};try{let[r,o,s,a]=await Promise.all([n.object.getMetadata(me._META_MODEL),n.object.getMetadata(me._META_AGENT),n.object.getMetadata(me._META_CWD),n.object.getMetadata(me._META_CUSTOMIZATION_DIRECTORY)]);return{model:this._parseModelSelection(r),agent:this._parseAgentSelection(o),workingDirectory:s?y.parse(s):void 0,customizationDirectory:a?y.parse(a):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,u]=await Promise.all([n.object.getMetadata(me._META_MODEL),n.object.getMetadata(me._META_AGENT),n.object.getMetadata(me._META_CWD),n.object.getMetadata(me._META_CUSTOMIZATION_DIRECTORY),n.object.getMetadata(me._META_PROJECT_RESOLVED),n.object.getMetadata(me._META_PROJECT_URI),n.object.getMetadata(me._META_PROJECT_DISPLAY_NAME)]),d=s?y.parse(s):void 0,f=c&&u?{uri:y.parse(c),displayName:u}:void 0;return{model:this._parseModelSelection(r),agent:this._parseAgentSelection(o),workingDirectory:d,customizationDirectory:a?y.parse(a):void 0,project:f,resolved:l==="true"||f!==void 0}}finally{n.dispose()}}async _storeSessionAgentMetadata(e,n){let r=this._sessionDataService.openDatabase(e);try{await r.object.setMetadata(me._META_AGENT,n?this._serializeAgentSelection(n):"")}finally{r.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(()=>sr(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())}};me=w([C(0,M),C(1,Ve),C(2,Me),C(3,gt),C(4,Qt),C(5,So),C(6,Ye),C(7,Hd),C(8,_d),C(9,Tn)],me);var tg=class extends T{constructor(e,n,r,o,s,a){super();this._resolvePlugin=r;this._onDidRefresh=o;this._logService=s;this._discovery=this._register(a.createInstance(Qo,e,n)),this._bundler=this._register(a.createInstance(Yo,e)),this._settled=this._refresh(),this._register(this._discovery.onDidChange(()=>{this._settled=this._refresh().finally(()=>this._onDidRefresh())}))}whenSettled(){return this._settled}currentResolved(){return this._resolved}async _refresh(){try{let e=await this._discovery.files(),n=await this._bundler.bundle(e);if(!n){this._resolved=void 0;return}let r=y.parse(n.ref.uri),o=await this._resolvePlugin(r);this._resolved={customization:{customization:n.ref,enabled:!0,status:o?"loaded":"error",statusMessage:o?void 0:m(2005,null),...o?{agents:ru(o.agents)}:{}},pluginDir:r,plugin:o}}catch(e){this._logService.warn(`[Copilot:SessionDiscoveredEntry] Discovery/bundle failed: ${e instanceof Error?e.message:String(e)}`),this._resolved=void 0}}},Ba=class extends T{constructor(e,n,r,o,s){super();this._pluginManager=e;this._logService=n;this._fileService=r;this._configurationService=o;this._instantiationService=s;this._onDidChange=this._register(new x);this.onDidChange=this._onDidChange.event;this._enablement=new Map;this._clientCustomizations=[];this._hostCustomizations=[];this._clientSync=Promise.resolve([]);this._hostSync=Promise.resolve([]);this._clientRevision=0;this._hostRevision=0;this._lastAppliedRefs=[];this._sessionDiscovered=new Map;this._applyHostCustomizations(),this._register(this._configurationService.onDidRootConfigChange(()=>{this._applyHostCustomizations()}))}dispose(){for(let e of this._sessionDiscovered.values())e.dispose();this._sessionDiscovered.clear(),super.dispose()}getConfiguredHostCustomizations(){return this._hostCustomizations.map(e=>e.customization.customization)}getSessionCustomizations(e){let n=[...this._hostCustomizations.map(s=>this._applyEnablement(s.customization)),...this._clientCustomizations.map(s=>this._applyEnablement(s.customization))],o=(e?this._getOrCreateSessionEntry(e):void 0)?.currentResolved();return o&&n.push(this._applyEnablement(o.customization)),n}async getSessionCustomizationsSettled(e){let n=e?this._getOrCreateSessionEntry(e):void 0;return await Promise.all([this._hostSync.catch(r=>{this._logService.warn("[Copilot:PluginController] Host customization update failed",r)}),this._clientSync.catch(r=>{this._logService.warn("[Copilot:PluginController] Customization sync failed",r)}),n?.whenSettled()]),this.getSessionCustomizations(e)}async getAppliedPlugins(e){let n=e?this._getOrCreateSessionEntry(e):void 0,[r,o]=await Promise.all([this._hostSync.catch(l=>(this._logService.warn("[Copilot:PluginController] Host customization update failed",l),this._hostCustomizations)),this._clientSync.catch(l=>(this._logService.warn("[Copilot:PluginController] Customization sync failed",l),this._clientCustomizations)),n?.whenSettled()]),s=n?.currentResolved(),a=s?.plugin&&this._isEnabled(s.customization)?[s.plugin]:[];return[...r.filter(l=>!!l.plugin&&this._isEnabled(l.customization)).map(l=>l.plugin),...o.filter(l=>!!l.plugin&&this._isEnabled(l.customization)).map(l=>l.plugin),...a]}_getOrCreateSessionEntry(e){let n=e.toString(),r=this._sessionDiscovered.get(n);return r||(r=new tg(e,y.file(this._getUserHome()),o=>this._tryParsePlugin(o),()=>this._onDidChange.fire(),this._logService,this._instantiationService),this._sessionDiscovered.set(n,r)),r}setEnabled(e,n){this._enablement.set(e,n)}_applyHostCustomizations(){let e=this._configurationService.getRootValue(Cn,"customizations")??[];if(Oe(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,o){let s=++this._clientRevision;this._clientCustomizations=n.map(d=>({customization:{customization:d,clientId:e,enabled:!0,status:"loading"}})),o?.({type:"session/customizationsChanged",customizations:[...this.getSessionCustomizations(r)]});let a=new Map;for(let d of this._clientCustomizations){let f=this._applyEnablement(d.customization);a.set(f.customization.uri,this._applyEnablement(d.customization))}let l=d=>{let f=this._applyEnablement(d.customization);Oe(a.get(f.customization.uri),f)||(a.set(f.customization.uri,{...f}),o?.({type:"session/customizationUpdated",customization:f.customization,enabled:f.enabled,status:f.status,statusMessage:f.statusMessage,agents:f.agents}))},c=this._clientSync;return(this._clientSync=c.catch(d=>{this._logService.warn("[Copilot:PluginController] Previous customization sync failed",d)}).then(async()=>{let d=await this._pluginManager.syncCustomizations(e,n,g=>{s===this._clientRevision&&l({customization:{...g,clientId:e}})}),f=await Promise.all(d.map(g=>this._resolveSyncedCustomization(g,e)));if(s===this._clientRevision){this._clientCustomizations=f;for(let g of f)l(g)}return f})).then(d=>d.map(f=>({customization:this._applyEnablement(f.customization),...f.pluginDir?{pluginDir:f.pluginDir}:{}})))}_isEnabled(e){return this._enablement.get(e.customization.uri)??e.enabled}_applyEnablement(e){let n=this._isEnabled(e);return e.enabled===n?e:{...e,enabled:n}}async _resolveConfiguredCustomization(e){let n=y.parse(e.uri),r=await this._tryParsePlugin(n);return r?{customization:{customization:e,enabled:!0,status:"loaded",agents:ru(r.agents)},pluginDir:n,plugin:r}:{customization:{customization:e,enabled:!0,status:"error",statusMessage:m(2005,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,customization:e.customization.customization,clientId:n,agents:ru(r.agents)},pluginDir:e.pluginDir,plugin:r}:{customization:{...e.customization,clientId:n,status:"error",statusMessage:m(2005,null)}}}async _tryParsePlugin(e){try{return await Ud(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??""}};Ba=w([C(0,jo),C(1,M),C(2,Me),C(3,Ye),C(4,Ve)],Ba);var ng=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(!UI(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||!Oe(s.inputSchema,o.inputSchema))return!0}return!1}};import{CAPIClient as eP,RequestType as n_}from"@vscode/copilot-api";var rg=520,tP=300,nP=1800,rP="2025-04-01",xi=class extends Error{constructor(e,n,r){super(r??n.error.message);this.status=e;this.envelope=n;this.name="CopilotApiError"}};function r_(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 xi(i,r,`${n}: ${i} ${t} \u2014 ${r.error.message}`)}var Zo=$("copilotApiService"),Xo=class{constructor(t,e,n){this._logService=e;this._productService=n;this._capiBasePromise=null;this._clientsByToken=new Map;this._fetch=t??globalThis.fetch}messages(t,e,n){return e.stream?this._messagesStreaming(t,e,n):this._messagesNonStreaming(t,e,n)}async countTokens(t,e,n){throw new Error("countTokens not supported by CAPI")}async models(t,e){let n=await this._getClientForToken(t);this._logService.debug("[CopilotApiService] GET models");let r=await n.makeRequest({method:"GET",headers:{...e?.headers,Authorization:`Bearer ${t}`},signal:e?.signal},{type:n_.Models});if(!r.ok){(r.status===401||r.status===403)&&this._invalidateClientForToken(t);let s=await r.text().catch(()=>"");throw r_(r.status,r.statusText,s,"CAPI models request failed")}return(await r.json()).data??[]}_getCapiBase(){return this._capiBasePromise||(this._capiBasePromise=this._buildCapiBase().catch(t=>{throw this._capiBasePromise=null,t})),this._capiBasePromise}async _buildCapiBase(){let[t,e]=await Promise.all([jc(o=>this._logService.warn("[CopilotApiService] getMachineId failed",o)),Kc(o=>this._logService.warn("[CopilotApiService] getDevDeviceId failed",o))]);return{extensionInfo:{name:"agent-host",sessionId:j(),machineId:t,deviceId:e,vscodeVersion:this._productService.version,version:this._productService.version,buildType:this._productService.quality==="stable"?"prod":"dev"},userUrl:"https://api.github.com/copilot_internal/user"}}async*_messagesStreaming(t,e,n){let r=await this._sendRequest(t,e,!0,n);if(!r.body)throw new Error("CAPI response has no body");yield*this._readSSE(r.body)}async _messagesNonStreaming(t,e,n){return(await this._sendRequest(t,e,!1,n)).json()}async _sendRequest(t,e,n,r){let o=await this._getClientForToken(t),s=j();this._logService.debug("[CopilotApiService] POST messages",`model=${e.model} stream=${n} requestId=${s}`);let{system:a,...l}=e,c=JSON.stringify({...l,stream:n,...a!==void 0?{system:typeof a=="string"?[{type:"text",text:a}]:a}:{}}),u=await o.makeRequest({method:"POST",headers:{...r?.headers,"Content-Type":"application/json",Authorization:`Bearer ${t}`,"X-Request-Id":s,"OpenAI-Intent":"conversation"},body:c,signal:r?.signal},{type:n_.ChatMessages});if(!u.ok){(u.status===401||u.status===403)&&this._invalidateClientForToken(t);let d=await u.text().catch(()=>"");throw r_(u.status,u.statusText,d)}return u}_getClientForToken(t){let e=Date.now()/1e3,n=this._clientsByToken.get(t);if(n)return n.then(o=>o.expiresAt-e>tP?o.capiClient:(this._clientsByToken.delete(t),this._getClientForToken(t))).catch(o=>{throw this._clientsByToken.delete(t),o});let r=this._buildClientForToken(t).catch(o=>{throw this._clientsByToken.delete(t),o});return this._clientsByToken.set(t,r),r.then(o=>o.capiClient)}_invalidateClientForToken(t){this._clientsByToken.delete(t)}async _buildClientForToken(t){let{extensionInfo:e,userUrl:n}=await this._getCapiBase(),r=this._fetch,o=new eP(e,void 0,{fetch:(l,c)=>r(l,{method:c.method??"GET",headers:c.headers,body:c.body,signal:c.signal})});this._logService.debug("[CopilotApiService] Discovering CAPI endpoints via /copilot_internal/user");let s=await this._fetch(n,{method:"GET",headers:{Authorization:`Bearer ${t}`,Accept:"application/json","X-GitHub-Api-Version":rP}});if(!s.ok){let l=await s.text().catch(()=>"");throw new Error(`Copilot endpoint discovery failed: ${s.status} ${s.statusText} \u2014 ${l}`)}let a=await s.json();return o.updateDomains({endpoints:a.endpoints??{},sku:a.access_type_sku??""},void 0),this._logService.debug("[CopilotApiService] CAPI endpoint discovered, api=",a.endpoints?.api),{capiClient:o,expiresAt:Date.now()/1e3+nP}}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 xi(rg,a)}if(iP.has(o))return n}}};Xo=w([C(1,M),C(2,Et)],Xo);var iP=new Set(["message_start","message_delta","message_stop","content_block_start","content_block_delta","content_block_stop"]);function es(i){switch(i){case"default":case"acceptEdits":case"bypassPermissions":case"plan":case"dontAsk":case"auto":return i;default:return}}var i_="thinkingLevel";function ig(i){if(i!==void 0)return i==="max"?"xhigh":i}function Ha(i){let t=i?.config?.[i_];switch(t){case"low":case"medium":case"high":case"xhigh":case"max":return t;default:return}}var oP=["low","medium","high","xhigh","max"];function o_(i){return oP.includes(i)}function sP(i){switch(i){case"low":return m(1891,null);case"medium":return m(1893,null);case"high":return m(1890,null);case"xhigh":return m(1895,null);case"max":return m(1892,null)}}function s_(i){if(i.length===0)return;let t=i.includes("high")?"high":void 0;return{type:"object",properties:{[i_]:{type:"string",title:m(1894,null),description:m(1889,null),enum:[...i],enumLabels:i.map(sP),...t!==void 0?{default:t}:{}}}}}var Wr=class{constructor(){this._entries=new Map}registerAndFire(t,e){let n=new pe;return this._entries.set(t,n),e(),n.p}register(t){let e=this._entries.get(t);e&&!e.isSettled&&e.error(new le);let n=new pe;return this._entries.set(t,n),n.p}respond(t,e){let n=this._entries.get(t);return n?(this._entries.delete(t),n.complete(e),!0):!1}denyAll(t){for(let[,e]of this._entries)e.isSettled||e.complete(t);this._entries.clear()}rejectAll(t){for(let[,e]of this._entries)e.isSettled||e.error(t);this._entries.clear()}};import*as uu from"fs";import{pathToFileURL as aP}from"url";var ns=$("claudeAgentSdkService"),ts=class{constructor(t){this._logService=t;this._firstLoadFailureLogged=!1}async listSessions(){return(await this._getSdk()).listSessions(void 0)}async getSessionInfo(t){return(await this._getSdk()).getSessionInfo(t)}async startup(t){return(await this._getSdk()).startup(t)}async getSessionMessages(t,e){return(await this._getSdk()).getSessionMessages(t,e)}async listSubagents(t,e){return(await this._getSdk()).listSubagents(t,e)}async getSubagentMessages(t,e,n){return(await this._getSdk()).getSubagentMessages(t,e,n)}async createSdkMcpServer(t){return(await this._getSdk()).createSdkMcpServer(t)}async tool(t,e,n,r){return(await this._getSdk()).tool(t,e,n,r)}async _getSdk(){if(this._sdkModule)return this._sdkModule;try{return this._sdkModule=await this._loadSdk(),this._sdkModule}catch(t){throw this._firstLoadFailureLogged||(this._firstLoadFailureLogged=!0,this._logService.error("[Claude] Failed to load @anthropic-ai/claude-agent-sdk",t)),t}}async _loadSdk(){let t=process.env[Gs];if(!t)throw new Error(`Cannot load @anthropic-ai/claude-agent-sdk: ${Gs} is not set. Set the 'chat.agentHost.claudeAgent.path' setting to a locally-installed SDK package.`);let e=t;if(uu.statSync(t).isDirectory()){let n=JSON.parse(uu.readFileSync(B(t,"package.json"),"utf8")),r=n.exports?.["."]?.default??n.exports?.["."]?.import??n.main??"index.js";e=tn(t,r)}return import(aP(e).href)}};ts=w([C(0,M)],ts);var za={Bash:{permissionKind:"shell",toolKind:"terminal"},BashOutput:{permissionKind:"shell",toolKind:"terminal"},KillBash:{permissionKind:"shell",toolKind:"terminal"},Read:{permissionKind:"read",pathField:"file_path"},Glob:{permissionKind:"read",pathField:"path",toolKind:"search"},Grep:{permissionKind:"read",pathField:"path",toolKind:"search"},LS:{permissionKind:"read",pathField:"path"},NotebookRead:{permissionKind:"read",pathField:"notebook_path"},Write:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},Edit:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},MultiEdit:{permissionKind:"write",pathField:"file_path",isFileEdit:!0},NotebookEdit:{permissionKind:"write",pathField:"notebook_path",isFileEdit:!0},TodoWrite:{permissionKind:"write"},WebFetch:{permissionKind:"url",pathField:"url"},Task:{permissionKind:"custom-tool",toolKind:"subagent"},Agent:{permissionKind:"custom-tool",toolKind:"subagent"},ExitPlanMode:{permissionKind:"custom-tool",interactive:!0},AskUserQuestion:{permissionKind:"custom-tool",interactive:!0}},qa="mcp__";function pu(i){let t=za[i];return t?t.permissionKind:i.startsWith(qa)?"mcp":"custom-tool"}function Ot(i){switch(i){case"Bash":return m(1937,null);case"BashOutput":return m(1938,null);case"KillBash":return m(1943,null);case"Read":return m(1949,null);case"Glob":return m(1941,null);case"Grep":return m(1942,null);case"LS":return m(1944,null);case"NotebookRead":return m(1948,null);case"Write":return m(1953,null);case"Edit":return m(1939,null);case"MultiEdit":return m(1946,null);case"NotebookEdit":return m(1947,null);case"TodoWrite":return m(1951,null);case"WebFetch":return m(1952,null);case"Task":case"Agent":return m(1950,null);case"ExitPlanMode":return m(1940,null);case"AskUserQuestion":return m(1936,null)}return i.startsWith(qa)?m(1945,null,i.slice(qa.length)):i}function Dn(i,t){let e=za[i];if(!e?.pathField||typeof t!="object"||t===null)return;let n=t[e.pathField];return typeof n=="string"?n:void 0}function a_(i){return za[i]?.isFileEdit===!0}var l_=new Set(Object.entries(za).filter(([,i])=>i.interactive).map(([i])=>i));function c_(i){switch(pu(i)){case"shell":return m(1933,null);case"write":return m(1935,null);case"read":return m(1932,null);case"url":return m(1934,null);case"mcp":{let t=i.startsWith(qa)?i.slice(qa.length).split("__")[0]:void 0;return t?m(1931,null,t):m(1930,null)}default:return m(1930,null)}}function On(i){let t=za[i];if(t?.toolKind)return{toolKind:t.toolKind}}function Dt(i){return{markdown:i}}function rs(i){let t=y.file(i);return`[${zo(_e(t))}](${t})`}function An(i,t){if(i===null||typeof i!="object")return;let e=i[t];return typeof e=="string"&&e.length>0?e:void 0}function d_(i){let t=An(i,"command");return t?t.split(`
`)[0]:void 0}function ar(i,t,e){switch(i){case"Bash":{let n=d_(e);return n?Dt(m(1975,null,We(Vn(n,80)))):m(1974,null)}case"BashOutput":return m(1976,null);case"KillBash":return m(1983,null);case"Read":case"NotebookRead":{let n=Dn(i,e);return n?Dt(m(1987,null,rs(n))):m(1986,null)}case"LS":{let n=Dn(i,e);return n?Dt(m(1985,null,rs(n))):m(1984,null)}case"Write":case"Edit":case"MultiEdit":case"NotebookEdit":{let n=Dn(i,e);return n?Dt(m(1978,null,rs(n))):m(1977,null)}case"TodoWrite":return m(1988,null);case"Grep":{let n=An(e,"pattern");return n?Dt(m(1982,null,We(Vn(n,80)))):m(1981,null)}case"Glob":{let n=An(e,"pattern");return n?Dt(m(1980,null,We(Vn(n,80)))):m(1979,null)}case"WebFetch":{let n=An(e,"url");return n?Dt(m(1989,null,`[${zo(Vn(n,80))}](${n})`)):m(1990,null)}case"Task":case"Agent":{let n=An(e,"description");return n||t}default:return t}}function fu(i,t,e,n){if(!n)return m(1959,null,t);switch(i){case"Bash":{let r=d_(e);return r?Dt(m(1955,null,We(Vn(r,80)))):m(1954,null)}case"BashOutput":return m(1956,null);case"KillBash":return m(1965,null);case"Read":case"NotebookRead":{let r=Dn(i,e);return r?Dt(m(1969,null,rs(r))):m(1968,null)}case"LS":{let r=Dn(i,e);return r?Dt(m(1967,null,rs(r))):m(1966,null)}case"Write":case"Edit":case"MultiEdit":case"NotebookEdit":{let r=Dn(i,e);return r?Dt(m(1958,null,rs(r))):m(1957,null)}case"TodoWrite":return m(1971,null);case"Grep":{let r=An(e,"pattern");return r?Dt(m(1964,null,We(Vn(r,80)))):m(1963,null)}case"Glob":{let r=An(e,"pattern");return r?Dt(m(1962,null,We(Vn(r,80)))):m(1961,null)}case"WebFetch":{let r=An(e,"url");return r?Dt(m(1972,null,`[${zo(Vn(r,80))}](${r})`)):m(1973,null)}case"Task":case"Agent":return m(1970,null);default:return m(1960,null,t)}}function $r(i,t){if(t!==void 0){if(i==="Bash"||i==="BashOutput"||i==="KillBash"){let e=An(t,"command");if(e)return e}if(i==="Grep"||i==="Glob"){let e=An(t,"pattern");if(e)return e}try{return JSON.stringify(t,null,2)}catch{return}}}import{z as st}from"zod";function p_(i){if(!i||i.type!=="object"||!i.properties)return{};let t=new Set(i.required??[]),e={};for(let[n,r]of Object.entries(i.properties)){let o;try{o=mu(r)}catch{o=st.any()}t.has(n)||(o=o.optional()),e[n]=o}return e}function mu(i){if(!i||typeof i!="object")return st.any();let t;if(Array.isArray(i.enum)&&i.enum.length>0){let e=i.enum.filter(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"||n===null);e.length===0?t=st.any():e.length===1?t=st.literal(e[0]):t=st.union(e.map(n=>st.literal(n)))}else if(Array.isArray(i.oneOf)&&i.oneOf.length>0)t=u_(i.oneOf);else if(Array.isArray(i.anyOf)&&i.anyOf.length>0)t=u_(i.anyOf);else switch(Array.isArray(i.type)?i.type[0]:i.type){case"string":t=st.string();break;case"number":t=st.number();break;case"integer":t=st.number().int();break;case"boolean":t=st.boolean();break;case"array":t=st.array(i.items?mu(i.items):st.any());break;case"object":{let n={},r=new Set(i.required??[]);for(let[o,s]of Object.entries(i.properties??{})){let a;try{a=mu(s)}catch{a=st.any()}r.has(o)||(a=a.optional()),n[o]=a}t=st.object(n);break}case"null":t=st.null();break;default:t=st.any()}return i.nullable&&(t=t.nullable()),i.description&&(t=t.describe(i.description)),i.default!==void 0&&(t=t.default(i.default)),t}function u_(i){let t=i.map(e=>{try{return mu(e)}catch{return st.any()}});return t.length===1?t[0]:st.union(t)}var f_="claudecode/toolUseId";async function m_(i,t,e){let n=await Promise.all(i.map(r=>e.tool(r.name,r.description??"",p_(r.inputSchema),async(o,s)=>{let a=lP(s);return a===void 0?{content:[{type:"text",text:`Client tool "${r.name}" could not run: SDK omitted tool_use_id (expected at extra._meta["${f_}"]).`}],isError:!0}:t(a)})));return e.createSdkMcpServer({name:og,tools:n})}function lP(i){if(!i||typeof i!="object")return;let t=i._meta;if(!t||typeof t!="object")return;let e=t[f_];return typeof e=="string"?e:void 0}var og="client";function is(i){let t=`mcp__${og}__`;return i.startsWith(t)?i.slice(t.length):i}function g_(i){return i.startsWith(`mcp__${og}__`)}function ja(i,t,e){let n=new sg(t,e);for(let r of i){let o=cP(r);o!==void 0&&n.consume(o)}return n.finish()}function cP(i){switch(i.type){case"user":return dP(i);case"assistant":return uP(i);case"system":return pP(i);default:return}}function dP(i){let t=mP(i.message);if(t===void 0||SP(t))return;if(typeof t=="string")return{kind:"user-text",uuid:i.uuid,text:t};let e=t.filter(n=>n.type==="text");if(e.length===0){let n=t.filter(r=>r.type==="tool_result");return n.length>0?{kind:"user-tool-results",uuid:i.uuid,results:n}:void 0}return{kind:"user-text",uuid:i.uuid,text:e.map(n=>n.text).join(`
`)}}function uP(i){let t=gP(i.message);if(!(t===void 0||t.length===0))return{kind:"assistant",uuid:i.uuid,blocks:t}}function pP(i){let t=hP(i.message);if(t===void 0||!fP.has(t))return;let e=yP(i.message)??`[${t}]`;return{kind:"system-notification",uuid:i.uuid,subtype:t,text:e}}var fP=new Set(["compact_boundary","notification"]),h_=/^<(command-name|command-message|command-args|local-command-stdout|local-command-stderr|local-command-caveat)>/,sg=class{constructor(t,e){this._session=t;this._logService=e;this._turns=[];this._toolUses=new Map}consume(t){switch(t.kind){case"user-text":this._closeActive(),this._active={id:t.uuid,userText:t.text,responseParts:[],pendingToolUseIds:new Set,toolCallParts:new Map};return;case"user-tool-results":for(let e of t.results)this._attachToolResult(e);return;case"assistant":this._consumeAssistant(t);return;case"system-notification":if(this._active===void 0)return;this._active.responseParts.push({kind:"systemNotification",content:t.text});return}}finish(){return this._closeActive(),this._turns}_consumeAssistant(t){if(this._active===void 0){this._logService.warn(`[claudeReplayMapper] assistant envelope ${t.uuid} arrived before any user message; dropping`);return}let e=0,n=0;for(let r of t.blocks)r.type==="text"&&typeof r.text=="string"?this._active.responseParts.push({kind:"markdown",id:`${this._active.id}#${t.uuid}#text-${e++}`,content:r.text}):r.type==="thinking"&&typeof r.thinking=="string"?this._active.responseParts.push({kind:"reasoning",id:`${this._active.id}#${t.uuid}#thinking-${n++}`,content:r.thinking}):r.type==="tool_use"&&typeof r.id=="string"&&typeof r.name=="string"&&this._openToolUse(r.id,is(r.name),r.input)}_openToolUse(t,e,n){if(this._active===void 0)return;let r=Ot(e),o=n!==null&&typeof n=="object"?n:void 0,s=On(e),a={status:"cancelled",toolCallId:t,toolName:e,displayName:r,invocationMessage:ar(e,r,o),toolInput:o!==void 0?$r(e,o):typeof n=="string"?n:n!==void 0?bP(n):void 0,reason:"skipped",...s?{_meta:s}:{}},l={kind:"toolCall",toolCall:a};this._active.responseParts.push(l),this._active.toolCallParts.set(t,l),this._active.pendingToolUseIds.add(t),this._toolUses.set(t,{turnId:this._active.id,parsedInput:o})}_attachToolResult(t){let e=this._toolUses.get(t.tool_use_id);if(e===void 0){this._logService.warn(`[claudeReplayMapper] tool_result for unknown tool_use_id ${t.tool_use_id}`);return}let n=e.turnId,r=this._findToolCallPart(n,t.tool_use_id);if(r===void 0)return;let o=t.is_error,s=r.toolCall,a=s._meta?.toolKind==="subagent",l=vP(t.content)??[];a&&l.push({type:"subagent",resource:mo(this._session.toString(),s.toolCallId),title:s.displayName});let c={status:"completed",toolCallId:s.toolCallId,toolName:s.toolName,displayName:s.displayName,invocationMessage:s.invocationMessage??s.displayName,toolInput:s.status==="streaming"?void 0:s.toolInput,confirmed:"not-needed",success:!o,pastTenseMessage:fu(s.toolName,s.displayName,e.parsedInput,!o),content:l.length>0?l:void 0,...s._meta?{_meta:s._meta}:{}};r.toolCall=c,this._active?.id===n&&this._active.pendingToolUseIds.delete(t.tool_use_id)}_findToolCallPart(t,e){if(this._active&&this._active.id===t)return this._active.toolCallParts.get(e);for(let n=this._turns.length-1;n>=0;n--)if(this._turns[n].id===t){for(let r of this._turns[n].responseParts)if(r.kind==="toolCall"&&r.toolCall.toolCallId===e)return r;return}}_closeActive(){if(this._active===void 0)return;let t=this._active,e=t.pendingToolUseIds.size===0?"complete":"cancelled",n={id:t.id,userMessage:{text:t.userText},responseParts:t.responseParts,usage:void 0,state:e};this._turns.push(n),this._active=void 0}};function mP(i){if(i===null||typeof i!="object")return;let t=i.content;if(typeof t=="string")return t.length>0?t:void 0;if(!Array.isArray(t)||t.length===0)return;let e=[];for(let n of t){if(n===null||typeof n!="object")continue;let r=n;r.type==="text"&&typeof r.text=="string"?e.push({type:"text",text:r.text}):r.type==="tool_result"&&typeof r.tool_use_id=="string"&&e.push({type:"tool_result",tool_use_id:r.tool_use_id,content:r.content,is_error:r.is_error===!0})}return e.length>0?e:void 0}function gP(i){if(i===null||typeof i!="object")return;let t=i.content;if(!Array.isArray(t))return;let e=[];for(let n of t){if(n===null||typeof n!="object")continue;let r=n;typeof r.type=="string"&&e.push({type:r.type,text:typeof r.text=="string"?r.text:void 0,thinking:typeof r.thinking=="string"?r.thinking:void 0,id:typeof r.id=="string"?r.id:void 0,name:typeof r.name=="string"?r.name:void 0,input:r.input})}return e}function hP(i){if(i===null||typeof i!="object")return;let t=i.subtype;return typeof t=="string"?t:void 0}function yP(i){if(i===null||typeof i!="object")return;let t=i;if(typeof t.text=="string")return t.text;if(typeof t.message=="string")return t.message}function vP(i){if(typeof i=="string")return i.length>0?[{type:"text",text:i}]:void 0;if(!Array.isArray(i))return;let t=[];for(let e of i){if(e===null||typeof e!="object")continue;let n=e;n.type==="text"&&typeof n.text=="string"&&t.push({type:"text",text:n.text})}return t.length>0?t:void 0}function bP(i){try{return JSON.stringify(i)}catch{return}}function SP(i){if(typeof i=="string")return h_.test(i);let t=i.find(e=>e.type==="text");return t!==void 0&&h_.test(t.text)}var ag=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},os=class extends ag{constructor(e){super();this.type=e}validate(e){return typeof e!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof e}`}}:{content:e,error:void 0}}getJSONSchema(){return{type:this.type}}},IP=new os("string");function y_(){return IP}var GZ=new os("number");var JZ=new os("boolean");var _P=new os("object");function v_(){return _P}var Ka=new Set(["Task","Agent"]),CP=/^\s*agentId:\s+([a-z0-9]+)\b/im,lg=class{constructor(t){this.toolUseId=t;this.background=!1;this._announced=!1;this._completed=!1}get agentId(){return this._agentId}setAgentId(t){this._agentId===void 0&&(this._agentId=t)}markAnnounced(){return this._announced?!1:(this._announced=!0,!0)}markCompleted(){return this._completed?!1:(this._completed=!0,!0)}},gu=class extends T{constructor(){super(...arguments);this._spawns=new Map;this._innerToParent=new Map}dispose(){this._spawns.clear(),this._innerToParent.clear(),super.dispose()}recordSpawn(e,n){let r=this._spawns.get(e);return r||(r=new lg(e),this._spawns.set(e,r)),n?.agentId!==void 0&&r.setAgentId(n.agentId),n?.subagentType!==void 0&&r.subagentType===void 0&&(r.subagentType=n.subagentType),n?.description!==void 0&&r.description===void 0&&(r.description=n.description),r}getSpawn(e){return this._spawns.get(e)}removeSpawn(e){this._spawns.delete(e),this._evictInnerEdgesFor(e)}noteInnerTool(e,n){this._innerToParent.set(e,n)}getParentSpawn(e){let n=this._innerToParent.get(e);return n!==void 0?this._spawns.get(n):void 0}drainForegroundSpawns(){let e=[];for(let n of this._spawns.values())n.background||e.push(n);for(let n of e)this._spawns.delete(n.toolUseId),this._evictInnerEdgesFor(n.toolUseId);return e}primeFromTranscript(e){for(let[n,r]of cg(e))this.recordSpawn(n,{agentId:r})}_evictInnerEdgesFor(e){for(let[n,r]of this._innerToParent)r===e&&this._innerToParent.delete(n)}};function cg(i){let t=new Map;for(let e of i)for(let n of e.responseParts){let r=TP(n);r&&t.set(r.toolCallId,r.agentId)}return t}function TP(i){if(i.kind!=="toolCall")return;let t=i.toolCall;if(!Ka.has(t.toolName)||t.status!=="completed"&&t.status!=="pending-result-confirmation")return;let e=t.content;if(e)for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="text")continue;let o=CP.exec(r.text);if(o)return{toolCallId:t.toolCallId,agentId:o[1]}}}var dg=class{constructor(t,e){this._sdk=t;this._logService=e;this.name="text_suffix"}async lookup(t,e){let n=await b_(this._sdk,this._logService,e,"TextSuffix");if(n)return cg(n).get(t)}};async function b_(i,t,e,n){if(e.parentTranscript)return e.parentTranscript;try{let r=await i.getSessionMessages(e.parentSessionId,{includeSystemMessages:!0});return ja(r,e.parentUri,t)}catch(r){t.warn(`[claudeSubagentResolver] ${n}: parent transcript fetch failed: ${r}`);return}}function S_(i){let t=y_().validate(i);return t.error?void 0:t.content}function ug(i){let t=v_().validate(i);if(!(t.error||t.content===null||Array.isArray(t.content)))return t.content}var pg=class{constructor(t,e){this._sdk=t;this._logService=e;this.name="prompt_match"}async lookup(t,e){let n=await this._loadParentPrompt(t,e);if(!n)return;let r;try{r=await this._sdk.listSubagents(e.parentSessionId)}catch(o){this._logService.warn(`[claudeSubagentResolver] PromptMatch: listSubagents failed: ${o}`);return}for(let o of r){if(e.token.isCancellationRequested)return;let s;try{s=await this._sdk.getSubagentMessages(e.parentSessionId,o)}catch(l){this._logService.warn(`[claudeSubagentResolver] PromptMatch: getSubagentMessages(${o}) failed: ${l}`);continue}let a=wP(s);if(a!==void 0&&a===n)return o}}async _loadParentPrompt(t,e){let n=await b_(this._sdk,this._logService,e,"PromptMatch");if(n)return xP(n,t)}};function xP(i,t){for(let e of i)for(let n of e.responseParts){if(n.kind!=="toolCall")continue;let r=n.toolCall;if(r.toolCallId!==t)continue;if(!Ka.has(r.toolName)||r.status==="streaming")return;let o=r.toolInput;if(typeof o!="string")return;let s;try{s=JSON.parse(o)}catch{return}let a=ug(s);return a?S_(a.prompt):void 0}}function wP(i){for(let t of i){if(t.type!=="user")continue;let e=ug(t.message);if(!e)continue;let n=e.content;if(typeof n=="string")return n;if(Array.isArray(n))for(let r of n){let o=ug(r);if(!o||o.type!=="text")continue;let s=S_(o.text);if(s!==void 0)return s}}}var fg=class{constructor(){this.name="native"}async lookup(){}};async function RP(i,t,e){let n=e.cacheGet(i);if(n)return n;for(let r of e.strategies){if(t.token.isCancellationRequested)return;let o=await r.lookup(i,t);if(o)return e.cacheSet(i,o),o}}function EP(i,t){return[new dg(i,t),new pg(i,t),new fg]}async function I_(i,t,e,n,r){let o=Qe(i);if(!o)throw new Error(`getSubagentTranscript: not a subagent URI: ${i.toString()}`);let{parentSession:s,toolCallId:a}=o,l=q.id(s),c=await RP(a,{parentUri:s,parentSessionId:l,token:r},{strategies:EP(e,n),cacheGet:d=>t.getSpawn(d)?.agentId,cacheSet:(d,f)=>{t.recordSpawn(d,{agentId:f})}});if(!c)return[];let u;try{u=await e.getSubagentMessages(l,c)}catch(d){return n.warn(`[getSubagentTranscript] getSubagentMessages(${c}) failed: ${d}`),[]}return ja(u,i,n)}async function mg(i,t,e,n){let r=PP(),o=await Ho(),s={ANTHROPIC_BASE_URL:t.baseUrl,ANTHROPIC_AUTH_TOKEN:`${t.nonce}.${i.sessionId}`,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:"1",USE_BUILTIN_RIPGREP:"0",PATH:`${de(o)}${Wi}${process.env.PATH??""}`};return{cwd:i.workingDirectory.fsPath,executable:process.execPath,env:r,abortController:i.abortController,allowDangerouslySkipPermissions:!0,canUseTool:i.canUseTool,onElicitation:async a=>(n(a.message??""),{action:"cancel"}),disallowedTools:["WebSearch"],includePartialMessages:!0,forwardSubagentText:!0,enableFileCheckpointing:!0,model:i.model?.id,effort:Ha(i.model),permissionMode:i.permissionMode,...i.isResume?{resume:i.sessionId}:{sessionId:i.sessionId},...i.mcpServers?{mcpServers:i.mcpServers}:{},settingSources:["user","project","local"],settings:{env:s},systemPrompt:{type:"preset",preset:"claude_code"},stderr:e}}async function gg(i,t,e){let{tools:n}=i.consume();return!n||n.length===0?void 0:{client:await m_(n,o=>t.register(o),e)}}function PP(){let i={ELECTRON_RUN_AS_NODE:"1",NODE_OPTIONS:void 0,ANTHROPIC_API_KEY:void 0};for(let t of Object.keys(process.env))t!=="ELECTRON_RUN_AS_NODE"&&(t.startsWith("VSCODE_")||t.startsWith("ELECTRON_"))&&(i[t]=void 0);return i}var kP="claude-client";function __(i,t){let r={content:(i.content??[]).map((o,s)=>AP(o,t,s))};return i.structuredContent!==void 0&&(r.structuredContent=i.structuredContent),(!i.success||i.error)&&(r.isError=!0),r}function AP(i,t,e){switch(i.type){case"text":return{type:"text",text:i.text};case"embeddedResource":return DP(i,t,e);default:{console.warn(`[Claude] convertToolCallResult: unsupported tool-result block kind '${i.type}'; degrading to text`);let n;try{n=JSON.stringify(i)}catch{n=`[unserializable ${i.type} block]`}return{type:"text",text:n}}}}function DP(i,t,e){return i.contentType.startsWith("image/")?{type:"image",data:i.data,mimeType:i.contentType}:{type:"resource",resource:{uri:`${kP}://${encodeURIComponent(t)}/${e}`,mimeType:i.contentType,blob:i.data}}}function ss(i,t){return es(i.getSessionConfigValues(t.toString())?.permissionMode)}var OP={tools:void 0,clientId:void 0},hg=class{constructor(){this._state=Ys({owner:this,equalsFn:LP},OP);this.state=this._state}setTools(t,e){let n=this._state.get();this._state.set({tools:t,clientId:e??n.clientId},void 0)}},hu=class extends T{constructor(){super();this.model=new hg;this._dirty=!1;this._ignoreNextFire=!0;this._register(xr(e=>{if(this.model.state.read(e),this._ignoreNextFire){this._ignoreNextFire=!1;return}this._dirty=!0}))}get hasDifference(){return this._dirty}consume(){let e=this.model.state.get();return this._dirty=!1,e}markDirty(){this._dirty=!0}};function LP(i,t){return i.clientId===t.clientId&&MP(i.tools,t.tools)}function MP(i,t){let e=i??[],n=t??[];if(e.length!==n.length)return!1;let r=new Map;for(let o of e)r.set(o.name,o);for(let o of n){let s=r.get(o.name);if(!s||s.description!==o.description||!Oe(s.inputSchema,o.inputSchema))return!1}return!0}function yu(i,t){let e=[{type:"text",text:i}];if(!t?.length)return e;let n=[],r=[];for(let o of t){if(o.type==="simple"){o.modelRepresentation&&r.push(o.modelRepresentation);continue}if(o.type!=="resource")continue;let s=y.parse(o.uri);if(o.displayKind==="selection"){let a=o.selection?`:${o.selection.range.start.line+1}`:"";n.push(`- ${T_(s)}${a}`)}else n.push(`- ${T_(s)}`)}return r.length>0&&e.push({type:"text",text:r.join(`

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

IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.
</system-reminder>`}),e}function T_(i){return i.scheme==="file"?i.fsPath:i.toString()}var as=class extends T{constructor(e,n,r,o){super();this._sessionId=e;this._getAbortSignal=n;this._onSteeringYielded=r;this._logService=o;this._toYield=[];this._yielded=[];this._popped=[];this._pendingPromptDeferred=new pe;this.iterable={[Symbol.asyncIterator]:()=>({next:async()=>{for(;;){if(this._getAbortSignal().aborted)return{done:!0,value:void 0};if(this._toYield.length>0){let e=this._toYield.shift();return this._yielded.push(e),this._logService.info(`[Claude:${this._sessionId}] queue yielded sdkUuid=${e.sdkUuid} turnId=${e.turnId}${e.steeringPendingId?` steeringPendingId=${e.steeringPendingId}`:""}`),e.steeringPendingId&&this._onSteeringYielded(e.steeringPendingId),{done:!1,value:e.sdkMessage}}await this._pendingPromptDeferred.p,this._pendingPromptDeferred=new pe}}})}}get isEmpty(){return this._toYield.length===0&&this._yielded.length===0}push(e){return this._toYield.push(e),this._pendingPromptDeferred.complete(),e.deferred.p}peekParent(){return this._yielded[0]??this._toYield[this._toYield.length-1]}settleHead(){let e=this._yielded.shift();if(e){if(this.isEmpty){e.deferred.complete();for(let n of this._popped)n.deferred.isSettled||n.deferred.complete();this._popped=[]}else this._popped.push(e);return e}}failAll(e){let n=r=>{for(let o of r)o.deferred.isSettled||o.deferred.error(e)};n(this._toYield),n(this._yielded),n(this._popped),this._toYield=[],this._yielded=[],this._popped=[]}notifyAborted(){this._pendingPromptDeferred.complete()}resetForRebind(){this._pendingPromptDeferred=new pe}};as=w([C(3,M)],as);var ls=class extends T{constructor(e,n,r,o){super();this._logService=r;this._editToolPaths=new Map;this._register(n),this._editTracker=o.createInstance(kr,e,n.object)}observeAssistant(e){let n=e.message.content;if(Array.isArray(n))for(let r of n){if(r.type!=="tool_use"||!a_(r.name))continue;let o=Dn(r.name,r.input);o&&(this._editToolPaths.set(r.id,o),this._editTracker.trackEditStart(o).catch(s=>this._logService.warn(`[ClaudeFileEditObserver] trackEditStart failed for ${o}: ${s}`)))}}async observeUser(e,n,r){let o=e.message.content;if(Array.isArray(o))for(let s of o){if(s.type!=="tool_result")continue;let a=this._editToolPaths.get(s.tool_use_id);if(a){this._editToolPaths.delete(s.tool_use_id);try{await this._editTracker.completeEdit(a);let l=await this._editTracker.takeCompletedEdit(n,s.tool_use_id,a);l&&r.cacheFileEdit(s.tool_use_id,l)}catch(l){this._logService.warn(`[ClaudeFileEditObserver] file edit tracking failed for ${a}: ${l}`)}}}}};ls=w([C(2,M),C(3,Ve)],ls);var yg=Ka;function vu(i,t,e,n){if(!e)return i;let r=i.map(a=>a.kind==="action"?{...a,parentToolCallId:e}:a.kind==="pending_confirmation"?{...a,parentToolCallId:e}:a),o=n.getSpawn(e);return!o||!o.markAnnounced()?r:[{kind:"subagent_started",session:t,toolCallId:e,agentName:o.subagentType??"subagent",agentDisplayName:o.subagentType??"Subagent",agentDescription:o.description},...r]}function x_(i,t,e){let n=i.subtype;if(n==="task_started"){let r=i.tool_use_id,o=r?e.getSpawn(r):void 0;return o&&(o.background=!0),[]}if(n==="task_notification"){let r=i;if(!r.tool_use_id)return[];let o=r.status;if(o!=="completed"&&o!=="failed"&&o!=="stopped")return[];let s=e.getSpawn(r.tool_use_id);if(!s||!s.markCompleted())return[];let a=r.tool_use_id;return e.removeSpawn(a),[{kind:"subagent_completed",session:t,toolCallId:a}]}return[]}function w_(i,t,e,n){let r=i.input,o=typeof r?.description=="string"?r.description:void 0,s=typeof r?.subagent_type=="string"?r.subagent_type:void 0,a=i.input!==void 0?NP(i.input):void 0;n.recordSpawn(i.id,{subagentType:s,description:o});let l={...On(i.name)??{toolKind:"subagent"}};return o&&(l.subagentDescription=o),s&&(l.subagentAgentName=s),{kind:"action",session:t,action:{type:"session/toolCallReady",turnId:e,toolCallId:i.id,invocationMessage:ar(i.name,Ot(i.name),i.input),...a!==void 0?{toolInput:a}:{},confirmed:"not-needed",_meta:l}}}function R_(i,t,e,n,r,o){let s=i.message.id,a=[];for(let l=0;l<i.message.content.length;l++){let c=i.message.content[l];if(c.type==="text"){a.push({kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"markdown",id:`${e}#${s}#${l}`,content:c.text}}});continue}if(c.type==="thinking"){a.push({kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"reasoning",id:`${e}#${s}#${l}`,content:c.thinking}}});continue}if(c.type==="tool_use"){let u=is(c.name);n.startToolBlock(l,c.id,u,e),n.toolCalls.seedParsedInput(c.id,c.input),o.noteInnerTool(c.id,r);let d=Ot(u),f=On(u),g=$r(u,c.input);a.push({kind:"action",session:t,action:{type:"session/toolCallStart",turnId:e,toolCallId:c.id,toolName:u,displayName:d,...f?{_meta:f}:{}}}),a.push({kind:"action",session:t,action:{type:"session/toolCallReady",turnId:e,toolCallId:c.id,invocationMessage:ar(u,d,c.input),...g!==void 0?{toolInput:g}:{},confirmed:"not-needed"}});continue}}return a}function NP(i){try{return JSON.stringify(i)}catch{return}}var bu=class{constructor(){this._entries=new Map}begin(t,e,n){this._entries.set(t,{toolName:e,turnId:n,inputBuffer:"",info:void 0})}appendInputDelta(t,e){let n=this._entries.get(t);n&&(n.inputBuffer+=e)}finalize(t){let e=this._entries.get(t);if(!e)return;let n;if(e.inputBuffer.length>0)try{let o=JSON.parse(e.inputBuffer);o!==null&&typeof o=="object"&&(n=o)}catch{}let r=e.inputBuffer.length>0?e.inputBuffer:void 0;this._writeInfo(e,n,r),e.inputBuffer=""}seedParsedInput(t,e){let n=this._entries.get(t);if(!n)return;let r=e!==null&&typeof e=="object"?e:void 0;this._writeInfo(n,r)}_writeInfo(t,e,n){let r=Ot(t.toolName);t.info={toolName:t.toolName,displayName:r,parsedInput:e,invocationMessage:ar(t.toolName,r,e),toolInput:$r(t.toolName,e)??n}}lookup(t){let e=this._entries.get(t);if(e)return{turnId:e.turnId,toolName:e.toolName,info:e.info}}complete(t){this._entries.delete(t)}clearPending(t){if(this._entries.size!==0){for(let[e,n]of this._entries)t.warn(`[claudeToolCallRegistry] turn ${n.turnId} ended with pending tool_use ${e} (${n.toolName}); dropping cross-message state`);this._entries.clear()}}};var Iu=class{constructor(){this._activeToolBlocks=new Map;this.toolCalls=new bu;this._completedFileEdits=new Map}resetMessage(t){this._activeToolBlocks.clear(),this._currentMessageId=t}getCurrentMessageId(){return this._currentMessageId}startToolBlock(t,e,n,r){this._activeToolBlocks.set(t,{toolUseId:e,toolName:n}),this.toolCalls.begin(e,n,r)}getActiveToolBlock(t){return this._activeToolBlocks.get(t)}endToolBlock(t){this._activeToolBlocks.delete(t)}appendToolBlockInputDelta(t,e){let n=this._activeToolBlocks.get(t);n&&this.toolCalls.appendInputDelta(n.toolUseId,e)}finalizeToolBlock(t){let e=this._activeToolBlocks.get(t);e&&this.toolCalls.finalize(e.toolUseId)}lookupToolCall(t){let e=this.toolCalls.lookup(t);return e?{turnId:e.turnId,toolName:e.toolName}:void 0}completeToolCall(t){this.toolCalls.complete(t)}cacheFileEdit(t,e){this._completedFileEdits.set(t,e)}takeFileEdit(t){let e=this._completedFileEdits.get(t);return e&&this._completedFileEdits.delete(t),e}clearPendingToolCalls(t){this.toolCalls.clearPending(t)}};function E_(i,t,e,n,r,o,s){if(r.getLevel()<=1)try{let a=JSON.stringify(i,(l,c)=>typeof c=="string"&&c.length>200?c.slice(0,200)+"\u2026":c);r.trace(`[claudeMapSessionEvents] SDK message type=${i.type}: ${a?.slice(0,2e3)??"<unserializable>"}`)}catch{r.trace(`[claudeMapSessionEvents] SDK message type=${i.type} (unserializable)`)}switch(i.type){case"stream_event":return vu(BP(i.event,t,e,n,r,i.parent_tool_use_id,o,s),t,i.parent_tool_use_id,o);case"result":return VP(i,t,e,n,r,o);case"assistant":return vu(UP(i,t,e,n,i.parent_tool_use_id,o),t,i.parent_tool_use_id,o);case"user":return vu(FP(i,t,n,r,o),t,i.parent_tool_use_id,o);default:return i.type==="system"?x_(i,t,o):[]}}function UP(i,t,e,n,r,o){if(r===null){let s=[];for(let a of i.message.content)a.type!=="tool_use"||!yg.has(a.name)||s.push(w_(a,t,e,o));return s}return R_(i,t,e,n,r,o)}function FP(i,t,e,n,r){let o=i.message.content;if(!Array.isArray(o))return[];let s=[];for(let a of o){if(a.type!=="tool_result")continue;let l=e.lookupToolCall(a.tool_use_id);if(!l){n.warn(`[claudeMapSessionEvents] tool_result for unknown tool_use_id ${a.tool_use_id}`);continue}let c=a.is_error===!0,u=WP(a.content)??[],d=e.takeFileEdit(a.tool_use_id);d&&u.push(d);let f=e.toolCalls.lookup(a.tool_use_id)?.info,g=f?fu(f.toolName,f.displayName,f.parsedInput,!c):`${Ot(l.toolName)} finished`;s.push({kind:"action",session:t,action:{type:"session/toolCallComplete",turnId:l.turnId,toolCallId:a.tool_use_id,result:{success:!c,pastTenseMessage:g,content:u.length>0?u:void 0}}}),e.completeToolCall(a.tool_use_id);let h=r.getSpawn(a.tool_use_id);h&&!h.background&&h.markCompleted()&&(s.push({kind:"subagent_completed",session:t,toolCallId:a.tool_use_id}),r.removeSpawn(a.tool_use_id))}return s}function WP(i){if(typeof i=="string")return[{type:"text",text:i}];if(!Array.isArray(i))return;let t=[];for(let e of i)$P(e)&&t.push({type:"text",text:e.text});return t.length>0?t:void 0}function $P(i){if(i===null||typeof i!="object")return!1;let t=i;return t.type==="text"&&typeof t.text=="string"}function VP(i,t,e,n,r,o){let s=[];if(i.subtype==="success"){let a=Object.keys(i.modelUsage)[0];s.push({kind:"action",session:t,action:{type:"session/usage",turnId:e,usage:{inputTokens:i.usage.input_tokens,outputTokens:i.usage.output_tokens,cacheReadTokens:i.usage.cache_read_input_tokens,...a?{model:a}:{}}}})}n.clearPendingToolCalls(r);for(let a of o.drainForegroundSpawns())r.warn(`[claudeMapSessionEvents] turn ended with pending subagent-spawning tool_use ${a.toolUseId} (agentId=${a.agentId??"<unresolved>"}); dropping cross-message state`);return s}function BP(i,t,e,n,r,o,s,a){switch(i.type){case"message_start":return n.resetMessage(i.message.id),[];case"content_block_start":{let l=i.content_block;if(l.type==="text")return[{kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"markdown",id:Su(e,n,i.index,r),content:""}}}];if(l.type==="thinking")return[{kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"reasoning",id:Su(e,n,i.index,r),content:""}}}];if(l.type==="tool_use"){let c=is(l.name),u=g_(l.name);n.startToolBlock(i.index,l.id,c,e);let d=!u&&yg.has(c);o===null?d&&s.recordSpawn(l.id):s.noteInnerTool(l.id,o);let f=On(c),g=u?a:void 0;return[{kind:"action",session:t,action:{type:"session/toolCallStart",turnId:e,toolCallId:l.id,toolName:c,displayName:Ot(c),...g?{toolClientId:g}:{},...f?{_meta:f}:{}}}]}return[]}case"content_block_delta":{if(i.delta.type==="text_delta")return[{kind:"action",session:t,action:{type:"session/delta",turnId:e,partId:Su(e,n,i.index,r),content:i.delta.text}}];if(i.delta.type==="thinking_delta")return[{kind:"action",session:t,action:{type:"session/reasoning",turnId:e,partId:Su(e,n,i.index,r),content:i.delta.thinking}}];if(i.delta.type==="input_json_delta"){let l=n.getActiveToolBlock(i.index);return l?(n.appendToolBlockInputDelta(i.index,i.delta.partial_json),[{kind:"action",session:t,action:{type:"session/toolCallDelta",turnId:e,toolCallId:l.toolUseId,content:i.delta.partial_json}}]):(r.warn(`[claudeMapSessionEvents] input_json_delta for unknown content-block index ${i.index}`),[])}return[]}case"content_block_stop":{let l=n.getActiveToolBlock(i.index);if(n.finalizeToolBlock(i.index),n.endToolBlock(i.index),!l)return[];let u=n.toolCalls.lookup(l.toolUseId)?.info;if(!u)return[];let d=On(l.toolName);return[{kind:"action",session:t,action:{type:"session/toolCallReady",turnId:e,toolCallId:l.toolUseId,invocationMessage:u.invocationMessage,...u.toolInput!==void 0?{toolInput:u.toolInput}:{},confirmed:"not-needed",...d?{_meta:d}:{}}}]}case"message_delta":case"message_stop":return[];default:return[]}}function Su(i,t,e,n){let r=t.getCurrentMessageId();return r===void 0?(n.warn(`[claudeMapSessionEvents] content block at index ${e} arrived before message_start; using turn-scoped id`),`${i}#${e}`):`${i}#${r}#${e}`}var cs=class extends T{constructor(e,n,r,o=void 0,s,a){super();this._sessionUri=e;this._subagents=r;this._logService=a;this._onDidProduceSignal=this._register(new x);this.onDidProduceSignal=this._onDidProduceSignal.event;this._mapperState=new Iu;this._clientId=o,this._editObserver=this._register(s.createInstance(ls,e.toString(),n))}setClientId(e){this._clientId=e}async handle(e,n){if(e.type==="assistant"?this._editObserver.observeAssistant(e):e.type==="user"&&n!==void 0&&await this._editObserver.observeUser(e,n,this._mapperState),n!==void 0)try{let r=E_(e,this._sessionUri,n,this._mapperState,this._logService,this._subagents,this._clientId);for(let o of r)this._onDidProduceSignal.fire(o)}catch(r){this._logService.warn(`[ClaudeSdkMessageRouter] mapper threw, skipping message: ${r}`)}}};cs=w([C(4,Ve),C(5,M)],cs);var ds=class extends T{constructor(e,n,r,o,s,a,l=void 0,c,u){super();this.sessionId=e;this.sessionUri=n;this._logService=u;this._isResumed=!1;this._needsRebind=!1;this._consumerLoopRunning=!1;this._onDidProduceSignal=this._register(new x);this.onDidProduceSignal=this._onDidProduceSignal.event;this._warm=r,this._abortController=o,this._wireAbortHandler(o),this._queue=this._register(c.createInstance(as,e,()=>this._abortController.signal,d=>this._onDidProduceSignal.fire({kind:"steering_consumed",session:this.sessionUri,id:d}))),this._router=this._register(c.createInstance(cs,n,s,a,l)),this._register(this._router.onDidProduceSignal(d=>this._onDidProduceSignal.fire(d))),this._register(A(()=>this._abortController.abort())),this._register(A(()=>{Promise.resolve(this._warm[Symbol.asyncDispose]()).catch(d=>this._logService.warn(`[ClaudeSdkPipeline] WarmQuery dispose failed: ${d}`))}))}get isResumed(){return this._isResumed}get isAborted(){return this._abortController.signal.aborted}rebindForRestart(){return this._rebindQuery("restart")}setClientId(e){this._router.setClientId(e)}attachRematerializer(e){this._rematerializer=e}seedCurrentConfig(e,n,r){this._currentModel=e,this._currentEffort=n,this._currentPermissionMode=r,this._appliedModel=e,this._appliedEffort=n,this._appliedPermissionMode=r}async setModel(e){if(this._currentModel=e,this._query&&e!==this._appliedModel)try{await this._query.setModel(e),this._appliedModel=e}catch(n){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] setModel failed: ${n}`)}}async setEffort(e){if(this._currentEffort=e,this._query&&e!==this._appliedEffort)try{await this._query.applyFlagSettings({effortLevel:e}),this._appliedEffort=e}catch(n){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] setEffort failed: ${n}`)}}async send(e,n){if(this._needsRebind&&await this._rebindQuery("recover"),this._abortController.signal.aborted)throw new le;this._query||(this._query=this._warm.query(this._queue.iterable),await this._replayCurrentConfig()),this._ensureConsumerLoop();let r={sdkMessage:e,sdkUuid:typeof e.uuid=="string"?e.uuid:n,turnId:n,deferred:new pe};return this._queue.push(r)}injectSteering(e,n){if(this._abortController.signal.aborted){this._logService.warn(`[Claude:${this.sessionId}] injectSteering: dropped (controller aborted) id=${n}`);return}let r=this._queue.peekParent();if(!r){this._logService.warn(`[Claude:${this.sessionId}] injectSteering: dropped (no in-flight turn) id=${n}`);return}let o=typeof e.uuid=="string"?e.uuid:n;this._queue.push({sdkMessage:e,sdkUuid:o,turnId:r.turnId,deferred:new pe,steeringPendingId:n}).catch(()=>{}),this._logService.info(`[Claude:${this.sessionId}] injectSteering: enqueued id=${n} sdkUuid=${o}`)}abort(){this._abortController.signal.aborted||(this._abortController.abort(),this._queue.failAll(new le),this._query=void 0,this._needsRebind=!0)}async setPermissionMode(e){this._currentPermissionMode=e,this._query&&e!==this._appliedPermissionMode&&(await this._query.setPermissionMode(e),this._appliedPermissionMode=e)}_wireAbortHandler(e){e.signal.addEventListener("abort",()=>{this._queue.notifyAborted()},{once:!0})}_ensureConsumerLoop(){this._consumerLoopRunning||(this._consumerLoopRunning=!0,this._processMessages().catch(e=>this._logService.error(`[ClaudeSdkPipeline:${this.sessionId}] _processMessages crashed: ${e}`)).finally(()=>{this._consumerLoopRunning=!1}))}async _replayCurrentConfig(){try{this._currentModel!==void 0&&this._currentModel!==this._appliedModel&&(await this._query?.setModel(this._currentModel),this._appliedModel=this._currentModel),this._currentEffort!==void 0&&this._currentEffort!==this._appliedEffort&&(await this._query?.applyFlagSettings({effortLevel:this._currentEffort}),this._appliedEffort=this._currentEffort),this._currentPermissionMode!==void 0&&this._currentPermissionMode!==this._appliedPermissionMode&&(await this._query?.setPermissionMode(this._currentPermissionMode),this._appliedPermissionMode=this._currentPermissionMode)}catch(e){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] _replayCurrentConfig failed: ${e}`)}}async _rebindQuery(e){if(!this._rematerializer)throw new Error(`ClaudeSdkPipeline.rebind: no rematerializer attached (reason=${e})`);let n=this._warm,r=new AbortController;this._abortController=r;let o=await this._rematerializer(e);if(this._store.isDisposed)throw o.abortController.abort(),Promise.resolve(o.warm[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] rebind-after-dispose: warm dispose failed: ${s}`)),new le;if(r.signal.aborted)throw o.abortController.abort(),Promise.resolve(o.warm[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] rebind-aborted: warm dispose failed: ${s}`)),Promise.resolve(n[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] previous WarmQuery dispose failed during aborted rebind: ${s}`)),this._queue.failAll(new le),this._query=void 0,this._needsRebind=!0,new le;Promise.resolve(n[Symbol.asyncDispose]()).catch(s=>this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] previous WarmQuery dispose failed during rebind: ${s}`)),this._warm=o.warm,this._abortController=o.abortController,this._wireAbortHandler(o.abortController),this._queue.resetForRebind(),this._needsRebind=!1,this._appliedModel=void 0,this._appliedEffort=void 0,this._appliedPermissionMode=void 0,this._query=this._warm.query(this._queue.iterable),await this._replayCurrentConfig()}async _processMessages(){let e=this._query;if(!e)throw new Error("ClaudeSdkPipeline._processMessages called before query was bound");try{for await(let n of e){if(this._abortController.signal.aborted)throw new le;n.type==="system"&&n.subtype==="init"&&!this._isResumed&&(this._isResumed=!0);let r=this._queue.peekParent()?.turnId;try{await this._router.handle(n,r)}catch(o){this._logService.warn(`[ClaudeSdkPipeline:${this.sessionId}] router threw, skipping: ${o}`)}if(n.type==="result"){let o=this._queue.settleHead();this._logService.info(`[Claude:${this.sessionId}] result for sdkUuid=${o?.sdkUuid}`),o&&this._queue.isEmpty&&this._onDidProduceSignal.fire({kind:"action",session:this.sessionUri,action:{type:"session/turnComplete",turnId:o.turnId}})}}throw this._abortController.signal.aborted?new le:new Error("Claude SDK stream ended without a result message")}catch(n){let r=n instanceof Error?n:new Error(String(n));if(this._query===e&&(this._queue.failAll(r),this._query=void 0,this._needsRebind=!0),!Kr(r))throw r}}};ds=w([C(7,Ve),C(8,M)],ds);function HP(i,t,e){return ss(i,t)??e}var lr=class extends T{constructor(e,n,r,o,s,a,l,c,u,d,f,g,h,v,S,_){super();this.sessionId=e;this.sessionUri=n;this.workingDirectory=r;this._pendingClientToolCalls=c;this._permissionModeFallback=d;this._metadataStore=f;this._instantiationService=g;this._configurationService=h;this._sdkService=v;this._sessionDataService=S;this._logService=_;this.subagents=this._register(new gu);this._pendingPermissions=new Wr;this._pendingUserInputs=new Wr;this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this.project=o,this._provisionalModel=s,this.provisionalConfig=a,this.abortController=l,this.toolDiff=this._register(u)}get pendingClientToolCalls(){return this._pendingClientToolCalls}get permissionModeFallback(){return this._permissionModeFallback}static createProvisional(e,n,r,o,s,a,l,c,u,d){return d.createInstance(lr,e,n,r,o,s,a,new AbortController,l,new hu,c,u)}async materialize(e){if(this._pipeline)throw new Error("ClaudeAgentSession is already materialized");if(!this.workingDirectory)throw new Error(`Cannot materialize Claude session ${this.sessionId}: workingDirectory is required`);let n=ss(this._configurationService,this.sessionUri)??this._permissionModeFallback,r=await gg(this.toolDiff,this._pendingClientToolCalls,this._sdkService),o=await mg({sessionId:this.sessionId,workingDirectory:this.workingDirectory,model:this._provisionalModel,abortController:this.abortController,permissionMode:n,canUseTool:e.canUseTool,isResume:e.isResume,mcpServers:r},e.proxyHandle,c=>this._logService.error(`[Claude SDK stderr] ${c}`),c=>this._logService.info(`[Claude] declining elicitation from MCP server (Phase 7 stub): ${c}`));this._logService.info(`[Claude] session ${this.sessionId}: enableFileCheckpointing=${o.enableFileCheckpointing} isResume=${e.isResume}`);let s=await this._sdkService.startup({options:o});if(this.abortController.signal.aborted)throw await s[Symbol.asyncDispose](),new le;let a=this._sessionDataService.openDatabase(this.sessionUri),l;try{l=this._register(this._instantiationService.createInstance(ds,this.sessionId,this.sessionUri,s,this.abortController,a,this.subagents,this.toolDiff.model.state.get().clientId))}catch(c){throw a.dispose(),await s[Symbol.asyncDispose](),c}if(this._register(l.onDidProduceSignal(c=>this._onDidSessionProgress.fire(c))),this._pipeline=l,l.seedCurrentConfig(this._provisionalModel?.id,ig(Ha(this._provisionalModel)),n),!e.isResume)try{await this._metadataStore.write(this.sessionUri,{customizationDirectory:this.workingDirectory,model:this._provisionalModel,permissionMode:n})}catch(c){throw this._logService.error("[Claude] Failed to persist customization directory; aborting materialize",c),c}if(this.abortController.signal.aborted)throw new le;l.attachRematerializer(async c=>{let u=ss(this._configurationService,this.sessionUri)??this._permissionModeFallback;try{let d=await gg(this.toolDiff,this._pendingClientToolCalls,this._sdkService),f=new AbortController,g=await mg({sessionId:this.sessionId,workingDirectory:this.workingDirectory,model:this._provisionalModel,abortController:f,permissionMode:u,canUseTool:e.canUseTool,isResume:!0,mcpServers:d},e.proxyHandle,v=>this._logService.error(`[Claude SDK stderr] ${v}`),v=>this._logService.info(`[Claude] declining elicitation from MCP server (Phase 7 stub): ${v}`));return this._logService.info(`[Claude] session ${this.sessionId}: resume rebuild`),{warm:await this._sdkService.startup({options:g}),abortController:f}}catch(d){throw this.toolDiff.markDirty(),d}})}get isPipelineReady(){return this._pipeline!==void 0}get provisionalModel(){return this._provisionalModel}_requirePipeline(){if(!this._pipeline)throw new Error("ClaudeAgentSession is not materialized");return this._pipeline}get isResumed(){return this._requirePipeline().isResumed}seedBijectiveState(e){this._requirePipeline().seedCurrentConfig(e.model,e.effort,e.permissionMode)}attachRematerializer(e){this._requirePipeline().attachRematerializer(e)}async send(e,n){let r=this._requirePipeline();return this.toolDiff.hasDifference?await this.rebindForClientTools():await r.setPermissionMode(HP(this._configurationService,this.sessionUri,this._permissionModeFallback)),r.send(e,n)}abort(){this._pendingPermissions.denyAll(!1),this._pendingUserInputs.denyAll({response:"cancel"}),this._requirePipeline().abort()}async setModel(e){if(this._provisionalModel=e,this._pipeline){let n=Ha(e),r=ig(n);n==="max"&&this._logService.warn(`[Claude:${this.sessionId}] setModel: 'max' effort clamped to 'xhigh' (Copilot CAPI has no 'max' model yet)`),await this._pipeline.setModel(e.id),r!==void 0&&await this._pipeline.setEffort(r)}await this._metadataStore.write(this.sessionUri,{model:e})}injectSteering(e){let n=this._requirePipeline();if(n.isAborted)return;let o={type:"user",message:{role:"user",content:yu(e.userMessage.text,e.userMessage.attachments)},session_id:this.sessionId,parent_tool_use_id:null,priority:"now",uuid:e.id};n.injectSteering(o,e.id)}setPermissionMode(e){return this._requirePipeline().setPermissionMode(e)}requestPermission(e){return!this._pipeline||this._pipeline.isAborted?Promise.resolve(!1):this._pendingPermissions.registerAndFire(e.toolUseID,()=>{this._onDidSessionProgress.fire({kind:"pending_confirmation",session:this.sessionUri,state:e.state,permissionKind:e.permissionKind,...e.permissionPath!==void 0?{permissionPath:e.permissionPath}:{},...e.parentToolCallId!==void 0?{parentToolCallId:e.parentToolCallId}:{}})})}respondToPermissionRequest(e,n){return this._pendingPermissions.respond(e,n)}requestUserInput(e,n){return!this._pipeline||this._pipeline.isAborted?Promise.resolve({response:"cancel"}):this._pendingUserInputs.registerAndFire(e.id,()=>{this._onDidSessionProgress.fire({kind:"action",session:this.sessionUri,action:{type:"session/inputRequested",request:e},...n!==void 0?{parentToolCallId:n}:{}})})}respondToUserInputRequest(e,n,r){return this._pendingUserInputs.respond(e,{response:n,answers:r})}setClientTools(e,n){this.toolDiff.model.setTools(e,n),this._pipeline&&this._pipeline.setClientId(this.toolDiff.model.state.get().clientId)}completeClientToolCall(e,n){let r=__(n,e);return this._pendingClientToolCalls.respond(e,r)}async rebindForClientTools(){this._pendingClientToolCalls.rejectAll(new le),await this._requirePipeline().rebindForRestart()}dispose(){this._pendingPermissions.denyAll(!1),this._pendingUserInputs.denyAll({response:"cancel"}),this._pendingClientToolCalls.rejectAll(new le),super.dispose()}};lr=w([C(11,Ve),C(12,Ye),C(13,ns),C(14,gt),C(15,M)],lr);function P_(i,t){let e=typeof i.plan=="string"?i.plan:"";return{status:"pending-confirmation",toolCallId:t,toolName:"ExitPlanMode",displayName:Ot("ExitPlanMode"),invocationMessage:{markdown:e},toolInput:JSON.stringify(i),confirmationTitle:m(1929,null),options:[{id:"approve",label:m(1927,null),kind:"approve"},{id:"deny",label:m(1928,null),kind:"deny"}]}}function k_(i){let t=i;if(t.questions?.length)return{questions:t.questions}}function A_(i,t){return i||`q-${t}`}function D_(i){return i.questions.map((t,e)=>{let n=t.options.map(o=>({id:o.label,label:o.label,...o.description!==void 0?{description:o.description}:{}})),r=A_(t.header,e);return t.multiSelect?{id:r,kind:"multi-select",title:t.header,message:t.question,options:n,allowFreeformInput:t.allowFreeformInput??!1}:{id:r,kind:"single-select",title:t.header,message:t.question,options:n,allowFreeformInput:t.allowFreeformInput??!1}})}function O_(i,t){let e={};for(let n=0;n<i.questions.length;n++){let r=i.questions[n],o=t[A_(r.header,n)];if(!o||o.state==="skipped")continue;let s=[],a=o.value;a.kind==="selected"?(a.value&&s.push(a.value),a.freeformValues&&s.push(...a.freeformValues)):a.kind==="selected-many"?(s.push(...a.value),a.freeformValues&&s.push(...a.freeformValues)):a.kind==="text"&&s.push(a.value),s.length>0&&(e[r.question]=s.join(", "))}return e}async function bg(i,t,e,n,r){let o=i.getSession(t);if(!o)return{behavior:"deny",message:"Session is no longer active"};if(r.signal.aborted)return{behavior:"deny",message:"SDK aborted the tool request"};let s=()=>{o.respondToPermissionRequest(r.toolUseID,!1),o.respondToUserInputRequest(r.toolUseID,"cancel")};r.signal.addEventListener("abort",s);try{return await qP(i,o,e,n,r)}finally{r.signal.removeEventListener("abort",s)}}async function qP(i,t,e,n,r){if(l_.has(e))return zP(i,t,e,n,r);let o=pu(e),s=Ot(e),a=r.blockedPath??Dn(e,n),l=$r(e,n),c=On(e),u={status:"pending-confirmation",toolCallId:r.toolUseID,toolName:e,displayName:s,invocationMessage:ar(e,s,n),toolInput:l,confirmationTitle:c_(e),...c?{_meta:c}:{}},d=Sg(t,r);return await t.requestPermission({toolUseID:r.toolUseID,state:u,permissionKind:o,...a!==void 0?{permissionPath:a}:{},...d!==void 0?{parentToolCallId:d}:{}})?{behavior:"allow",updatedInput:n}:{behavior:"deny",message:"User declined"}}function Sg(i,t){if(!t.agentID)return;let e=i.subagents.getParentSpawn(t.toolUseID);if(e)return e.setAgentId(t.agentID),e.toolUseId}function zP(i,t,e,n,r){switch(e){case"ExitPlanMode":return jP(i,t,n,r);case"AskUserQuestion":return KP(i,t,n,r);default:return Promise.resolve({behavior:"deny",message:`Unsupported interactive tool: ${e}`})}}async function jP(i,t,e,n){let r=n.toolUseID,o=Sg(t,n);return await t.requestPermission({toolUseID:r,state:P_(e,r),permissionKind:pu("ExitPlanMode"),...o!==void 0?{parentToolCallId:o}:{}})?(i.configurationService.updateSessionConfig(t.sessionUri.toString(),{permissionMode:"acceptEdits"}),{behavior:"allow",updatedInput:e}):{behavior:"deny",message:"The user declined the plan, maybe ask why?"}}async function KP(i,t,e,n){let r=n.toolUseID,o=k_(e);if(!o)return{behavior:"deny",message:"AskUserQuestion called without questions"};let s=Sg(t,n),a=await t.requestUserInput({id:r,questions:D_(o)},s);if(a.response!=="accept"||!a.answers)return{behavior:"deny",message:"The user cancelled the question"};let l=O_(o,a.answers);return Object.keys(l).length===0?{behavior:"deny",message:"The user cancelled the question"}:{behavior:"allow",updatedInput:{...e,answers:l}}}var GP=new Map([["opus",new Set(["1m"])]]),Ig=new Map;function us(i){let t=i.toLowerCase();if(Ig.has(t))return Ig.get(t);let e=QP(t);return Ig.set(t,e),e}var JP=/^(?<base>.*)-(?<date>\d{8})$/;function QP(i){let t="",e=i,n=JP.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 Ja(r.groups.name,r.groups.major,r.groups.minor,Ga(r.groups.mod,t));let o=e.match(/^claude-(?<major>\d+)-(?<minor>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(o?.groups)return Ja(o.groups.name,o.groups.major,o.groups.minor,Ga(o.groups.mod,t));let s=e.match(/^claude-(?<name>\w+)-(?<major>\d+)\.(?<minor>\d+)(?:-(?<mod>.+))?$/);if(s?.groups)return Ja(s.groups.name,s.groups.major,s.groups.minor,Ga(s.groups.mod,t));let a=e.match(/^claude-(?<name>\w+)-(?<major>\d+)(?:-(?<mod>.+))?$/);if(a?.groups)return Ja(a.groups.name,a.groups.major,void 0,Ga(a.groups.mod,t));let l=e.match(/^claude-(?<major>\d+)-(?<name>\w+)(?:-(?<mod>.+))?$/);if(l?.groups)return Ja(l.groups.name,l.groups.major,void 0,Ga(l.groups.mod,t));let c=e.match(/^(?<name>\w+)$/);if(c?.groups)return YP(c.groups.name)}function Ga(i,t){return i&&t?`${i}-${t}`:i||t}function L_(i,t,e,n,r){let o=e!==void 0?`claude-${i}-${t}${n}${e}`:`claude-${i}-${t}`;return r?`${o}-${r}`:o}function YP(i){return{name:i,version:"",modifiers:"",toSdkModelId:()=>i,toEndpointModelId:()=>i}}function Ja(i,t,e,n){let r=e!==void 0?`${t}.${e}`:t,o=XP(i,n);return{name:i,version:r,modifiers:n,toSdkModelId:()=>L_(i,t,e,"-",o),toEndpointModelId:()=>L_(i,t,e,".",o)}}function XP(i,t){if(!t)return"";let e=GP.get(i);if(!e)return"";if(e.has(t))return t;let n=t.split("-")[0];return e.has(n)?n:""}import{once as ek}from"events";var ZP=["interleaved-thinking","context-management","advanced-tool-use"];function M_(i){let t=i.split(",").map(e=>e.trim()).filter(e=>e&&ZP.some(n=>e.startsWith(n+"-")));return t.length>0?t.join(","):void 0}function _g(i,t){return{type:"error",error:{type:i,message:t},request_id:null}}function Xt(i,t,e,n){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(_g(e,n)))}function N_(i,t,e){i.writeHead(t,{"Content-Type":"application/json"}),i.end(JSON.stringify(e))}function U_(i){return`event: error
data: ${JSON.stringify(i)}

`}var Cg=Object.freeze({valid:!1,sessionId:void 0});function F_(i,t){let e=i.authorization;if(typeof e!="string"||!e.startsWith("Bearer "))return Cg;let n=e.slice(7),r=n.indexOf(".");if(r===-1)return Cg;let o=n.slice(0,r),s=n.slice(r+1);return o!==t||s.length===0?Cg:{valid:!0,sessionId:s}}var _u=$("claudeProxyService"),tk=new Set(["anthropic"]),nk="/v1/messages",Vr="ClaudeProxyService";function rk(){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 ps=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(`[${Vr}] server.close error: ${e.message}`)})}}async _startServer(t){let e=rk(),n=new Set,o=(await import("http")).createServer();await new Promise((c,u)=>{let d=f=>{u(f)};o.once("error",d),o.listen(0,"127.0.0.1",()=>{o.removeListener("error",d),c()})});let s=o.address();if(!s||typeof s=="string")throw o.close(),new Error(`${Vr} failed to bind: unexpected address ${String(s)}`);let a=`http://127.0.0.1:${s.port}`;this._logService.info(`[${Vr}] listening on ${a}`);let l={server:o,baseUrl:a,nonce:e,inFlight:n,githubToken:t,refcount:0};return o.on("request",(c,u)=>{this._handleRequest(c,u,l).catch(d=>{if(this._logService.error(`[${Vr}] unhandled request error: ${Qa(d)}`),u.headersSent){if(!u.writableEnded)try{u.end()}catch{}}else try{Xt(u,500,"api_error","Internal proxy error")}catch{}})}),l}async _handleRequest(t,e,n){let r=t.method??"GET",o=new URL(t.url??"/","http://127.0.0.1").pathname;if(this._logService.trace(`[${Vr}] ${r} ${o}`),r==="GET"&&o==="/"){e.writeHead(200,{"Content-Type":"text/plain"}),e.end("ok");return}if(!F_(t.headers,n.nonce).valid){Xt(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"){Xt(e,501,"api_error","count_tokens not supported by CAPI");return}Xt(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(!ik(s))continue;let a=us(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 ak(t)}catch(h){Xt(e,400,"invalid_request_error",`Failed to read request body: ${Qa(h)}`);return}let o;try{o=JSON.parse(r)}catch{Xt(e,400,"invalid_request_error","Request body is not valid JSON");return}if(!o||typeof o!="object"){Xt(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){Xt(e,400,"invalid_request_error","Missing required field: model");return}if(!Array.isArray(s.messages)){Xt(e,400,"invalid_request_error","Missing required field: messages");return}let l=us(a);if(!l){Xt(e,404,"not_found_error",`Unknown model: ${a}`);return}let c=l.toEndpointModelId();s.model=c;let u=s.stream===!0,d=sk(t.headers),f={ac:new AbortController,res:e,clientGone:!1};n.inFlight.add(f);let g=()=>{f.clientGone=!0,f.ac.abort()};e.on("close",g);try{u?await this._streamMessages(s,d,e,f,n,a):await this._sendNonStreamingMessage(s,d,e,f,n,a)}finally{e.removeListener("close",g),n.inFlight.delete(f)}}async _sendNonStreamingMessage(t,e,n,r,o,s){let a={headers:e,signal:r.ac.signal},l;try{l=await this._copilotApiService.messages(o.githubToken,t,a)}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}let c=W_(l.model,this._logService)??s,u={...l,model:c};n.writeHead(200,{"Content-Type":"application/json"}),n.end(JSON.stringify(u))}async _streamMessages(t,e,n,r,o,s){let a={headers:e,signal:r.ac.signal},l;try{l=this._copilotApiService.messages(o.githubToken,t,a)}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}let c;try{c=await l.next()}catch(d){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,d);return}n.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),n.flushHeaders(),lk(n);let u=async d=>{let f=ok(d,this._logService),g=`event: ${f.type}
data: ${JSON.stringify(f)}

`;if(!n.write(g))try{await ek(n,"drain",{signal:r.ac.signal})}catch{return!1}return!0};try{if(!c.done&&!await u(c.value))return;for(;;){let d;try{d=await l.next()}catch(g){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}let h=g instanceof xi?g.envelope:_g("api_error",Qa(g));if(!n.writableEnded){try{n.write(U_(h))}catch{}try{n.end()}catch{}}return}if(d.done)break;if(!await u(d.value))return}n.writableEnded||n.end()}catch(d){if(this._logService.warn(`[${Vr}] stream loop unexpected error: ${Qa(d)}`),!n.writableEnded)try{n.end()}catch{}}}_writeUpstreamErrorResponse(t,e){if(t.headersSent){if(this._logService.warn(`[${Vr}] cannot write upstream error after headers sent: ${Qa(e)}`),!t.writableEnded)try{t.end()}catch{}return}if(e instanceof xi){let n=e.status===rg?502:e.status;N_(t,n,e.envelope);return}Xt(t,502,"api_error",e instanceof Error?e.message:String(e))}};ps=w([C(0,M),C(1,Zo)],ps);function ik(i){return tk.has(i.vendor.toLowerCase())?Array.isArray(i.supported_endpoints)&&i.supported_endpoints.includes(nk):!1}function W_(i,t){let e=us(i);if(!e){t.warn(`[${Vr}] outbound model ID could not be parsed for SDK rewrite: ${i}`);return}return e.toSdkModelId()}function ok(i,t){if(i.type!=="message_start")return i;let e=W_(i.message.model,t);return e===void 0||e===i.message.model?i:{...i,message:{...i.message,model:e}}}function sk(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=M_(n);r!==void 0&&(t["anthropic-beta"]=r)}return t}function ak(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 lk(i){let t=i.socket;if(t&&typeof t.setNoDelay=="function")try{t.setNoDelay(!0)}catch{}}function Qa(i){return i instanceof Error?i.message:String(i)}var Bt=class{constructor(t,e){this._provider=t;this._sessionDataService=e}static{this.KEY_CUSTOMIZATION_DIRECTORY="claude.customizationDirectory"}static{this.KEY_MODEL="claude.model"}static{this.KEY_PERMISSION_MODE="claude.permissionMode"}async write(t,e){let n=this._sessionDataService.openDatabase(t),r=n.object;try{let o=[];e.customizationDirectory&&o.push(r.setMetadata(Bt.KEY_CUSTOMIZATION_DIRECTORY,e.customizationDirectory.toString())),e.model&&o.push(r.setMetadata(Bt.KEY_MODEL,ck(e.model))),e.permissionMode&&o.push(r.setMetadata(Bt.KEY_PERMISSION_MODE,e.permissionMode)),await Promise.all(o)}finally{n.dispose()}}async read(t){let e=await this._sessionDataService.tryOpenDatabase(t);if(!e)return{};try{let[n,r,o]=await Promise.all([e.object.getMetadata(Bt.KEY_CUSTOMIZATION_DIRECTORY),e.object.getMetadata(Bt.KEY_MODEL),e.object.getMetadata(Bt.KEY_PERMISSION_MODE)]);return{customizationDirectory:n?y.parse(n):void 0,model:dk(r),permissionMode:es(o)}}finally{e.dispose()}}project(t,e){return{session:q.uri(this._provider,t.sessionId),startTime:t.createdAt??t.lastModified,modifiedTime:t.lastModified,summary:t.customTitle??t.summary,workingDirectory:t.cwd?y.file(t.cwd):void 0,customizationDirectory:e.customizationDirectory,model:e.model}}};Bt=w([C(1,gt)],Bt);function ck(i){return JSON.stringify(i)}function dk(i){if(i){try{let t=JSON.parse(i);if(t&&typeof t=="object"&&typeof t.id=="string"){let e={id:t.id};if(t.config&&typeof t.config=="object"){let n={};for(let[r,o]of Object.entries(t.config))typeof o=="string"&&(n[r]=o);Object.keys(n).length>0&&(e.config=n)}return e}}catch{}return{id:i}}}function uk(i){return i.vendor==="Anthropic"&&!!i.supported_endpoints?.includes("/v1/messages")&&!!i.model_picker_enabled&&!!i.capabilities?.supports?.tool_calls&&us(i.id)!==void 0}function pk(i,t){let e=i.capabilities?.supports,n=(e?.reasoning_effort??[]).filter(o_),r=s_(n),o=i.policy?.state,s=i.billing?.multiplier;return{provider:t,id:i.id,name:i.name,maxContextWindow:i.capabilities?.limits?.max_context_window_tokens,supportsVision:!!e?.vision,...r?{configSchema:r}:{},...o?{policyState:o}:{},...typeof s=="number"?{_meta:{multiplierNumeric:s}}:{}}}var fs=class extends T{constructor(e,n,r,o,s,a,l){super();this._logService=e;this._copilotApiService=n;this._claudeProxyService=r;this._sdkService=o;this._gitService=s;this._configurationService=a;this._instantiationService=l;this.id="claude";this._onDidSessionProgress=this._register(new x);this.onDidSessionProgress=this._onDidSessionProgress.event;this._models=yn(this,[]);this.models=this._models;this._sessions=this._register(new dt);this._onDidMaterializeSession=this._register(new x);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._disposeSequencer=new ft;this._sessionSequencer=new ft;this._metadataStore=l.createInstance(Bt,this.id)}_findAnySession(e){return this._sessions.get(e)?.session}getDescriptor(){return{provider:this.id,displayName:m(1926,null),description:m(1925,null)}}getProtectedResources(){return[to]}_ensureAuthenticated(){let e=this._proxyHandle;if(!e)throw new V(fo,"Authentication is required to use Claude",this.getProtectedResources());return e}async authenticate(e,n){if(e!==to.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(uk).sort((o,s)=>Number(s.is_chat_default)-Number(o.is_chat_default)).map(o=>pk(o,this.id));this._models.set(r,void 0)}catch(n){this._logService.error(n,"[Claude] Failed to refresh models"),this._githubToken===e&&this._models.set([],void 0)}}async createSession(e={}){if(this._ensureAuthenticated(),e.fork)throw new Error("TODO: Phase 6.5: fork requires message-UUID lookup via sdk.getSessionMessages");let n=e.session?q.id(e.session):j(),r=q.uri(this.id,n),o=this._findAnySession(n);if(o)return o.isPipelineReady?{session:r,workingDirectory:e.workingDirectory}:{session:o.sessionUri,workingDirectory:o.workingDirectory,provisional:!0,...o.project?{project:o.project}:{}};let s=e.workingDirectory?await sr({cwd:e.workingDirectory.fsPath},this._gitService):void 0,a=this._resolvePermissionMode(e.config),l=lr.createProvisional(n,r,e.workingDirectory,s,e.model,e.config,new Wr,a,this._metadataStore,this._instantiationService),c=new Cu(l);return c.addDisposable(l.onDidSessionProgress(u=>this._onDidSessionProgress.fire(u))),this._sessions.set(n,c),{session:r,workingDirectory:e.workingDirectory,provisional:!0,...s?{project:s}:{}}}async _materializeProvisional(e){let n=this._findAnySession(e);if(!n)throw new Error(`Cannot materialize unknown provisional session: ${e}`);let r=this._ensureAuthenticated(),o=(s,a,l)=>bg({getSession:c=>this._findAnySession(c),configurationService:this._configurationService},e,s,a,l);try{await n.materialize({proxyHandle:r,canUseTool:o,isResume:!1})}catch(s){throw this._sessions.deleteAndDispose(e),s}return this._onDidMaterializeSession.fire({session:n.sessionUri,workingDirectory:n.workingDirectory,project:n.project}),n}async _resumeSession(e,n){this._logService.info(`[Claude:${e}] _resumeSession \u2014 no in-memory state, rebuilding from disk`);let r=this._ensureAuthenticated(),o=await this._sdkService.getSessionInfo(e);if(!o)throw new Error(`Cannot resume unknown session: ${e} (not present in SDK transcript store)`);let s=o.cwd?y.file(o.cwd):void 0;if(!s)throw new Error(`Cannot resume session ${e}: workingDirectory missing from SDK transcript`);let a={};try{a=await this._metadataStore.read(n)}catch(g){this._logService.warn(`[Claude:${e}] overlay read failed during resume; continuing with defaults`,g)}let l=ss(this._configurationService,n)??a.permissionMode??"default",c;try{c=await sr({cwd:s.fsPath},this._gitService)}catch(g){this._logService.warn(`[Claude:${e}] project resolution failed during resume; continuing without project`,g)}let u=lr.createProvisional(e,n,s,c,a.model,void 0,new Wr,l,this._metadataStore,this._instantiationService),d=new Cu(u);d.addDisposable(u.onDidSessionProgress(g=>this._onDidSessionProgress.fire(g))),this._sessions.set(e,d);let f=(g,h,v)=>bg({getSession:S=>this._findAnySession(S),configurationService:this._configurationService},e,g,h,v);try{await u.materialize({proxyHandle:r,canUseTool:f,isResume:!0})}catch(g){throw this._sessions.deleteAndDispose(e),g}return this._onDidMaterializeSession.fire({session:n,workingDirectory:s,project:c}),u}_resolvePermissionMode(e){return es(e?.permissionMode)??"default"}disposeSession(e){let n=q.id(e);return this._disposeSequencer.queue(n,async()=>{let r=this._findAnySession(n);r&&!r.isPipelineReady&&r.abortController.abort(),this._sessions.deleteAndDispose(n)})}getSessionForTesting(e){let n=this._sessions.get(q.id(e))?.session;return n?.isPipelineReady?n:void 0}async getSessionMessages(e){let n=q.id(e),r=this._findAnySession(n);if(r&&!r.isPipelineReady)return[];if(vc(e)){let l=Qe(e),c=l?this._sessions.get(q.id(l.parentSession))?.session:void 0;if(!c)return this._logService.warn(`[Claude] getSessionMessages: parent session not found for subagent ${e.toString()} (registry unavailable)`),[];try{return await I_(e,c.subagents,this._sdkService,this._logService,$e.None)}catch(u){return this._logService.warn(`[Claude] getSubagentTranscript threw for ${e.toString()}`,u),[]}}let o=this._sessions.get(n)?.session,s;try{s=await this._sdkService.getSessionMessages(n,{includeSystemMessages:!0})}catch(l){return this._logService.warn(`[Claude] getSessionMessages SDK fetch failed for ${n}`,l),[]}let a;try{a=ja(s,e,this._logService)}catch(l){return this._logService.warn(`[Claude] replay mapper threw for ${n}`,l),[]}try{o?.subagents.primeFromTranscript(a)}catch(l){this._logService.warn(`[Claude] primeFromTranscript threw for ${n}`,l)}return a}async listSessions(){let e;try{e=await this._sdkService.listSessions()}catch(n){return this._logService.warn("[Claude] SDK listSessions failed; surfacing empty list",n),[]}return Promise.all(e.map(async n=>{try{let r=q.uri(this.id,n.sessionId),o=await this._metadataStore.read(r);return this._metadataStore.project(n,o)}catch(r){this._logService.warn(`[Claude] Overlay read failed for session ${n.sessionId}`,r)}return this._metadataStore.project(n,{})}))}async getSessionMetadata(e){let n=q.id(e),r=await this._sdkService.getSessionInfo(n);if(!r)return;let o={};try{o=await this._metadataStore.read(e)}catch(s){this._logService.warn(`[Claude] Overlay read failed for session ${n}`,s)}return this._metadataStore.project(r,o)}resolveSessionConfig(e){let n=_n({permissionMode:ht({type:"string",title:m(1911,null),description:m(1924,null),enum:["default","acceptEdits","bypassPermissions","plan","dontAsk","auto"],enumLabels:[m(1918,null),m(1912,null),m(1916,null),m(1922,null),m(1920,null),m(1914,null)],enumDescriptions:[m(1919,null),m(1913,null),m(1917,null),m(1923,null),m(1921,null),m(1915,null)],default:"default",sessionMutable:!0}),permissions:Pt.definition.permissions}),r=n.validateOrDefault(e.config,{permissionMode:"default"});return Promise.resolve({schema:n.toProtocol(),values:r})}sessionConfigCompletions(e){return Promise.resolve({items:[]})}shutdown(){return this._shutdownPromise??=(async()=>{for(let n of this._sessions.values())n.session.isPipelineReady||n.session.abortController.abort();let e=[...this._sessions.keys()];await Promise.all(e.map(n=>this._disposeSequencer.queue(n,async()=>{this._sessions.deleteAndDispose(n)})))})()}async sendMessage(e,n,r,o){let s=q.id(e),a=o??j();return this._sessionSequencer.queue(s,async()=>{let l=this._findAnySession(s),c;l?.isPipelineReady?c=l:l?c=await this._materializeProvisional(s):c=await this._resumeSession(s,e);let d={type:"user",message:{role:"user",content:yu(n,r)},session_id:s,parent_tool_use_id:null,uuid:a};await c.send(d,a)})}respondToPermissionRequest(e,n){for(let r of this._sessions.values())if(r.session.respondToPermissionRequest(e,n))return}respondToUserInputRequest(e,n,r){for(let o of this._sessions.values())if(o.session.respondToUserInputRequest(e,n,r))return}async abortSession(e){let n=q.id(e),r=this._findAnySession(n);if(r){if(!r.isPipelineReady){r.abortController.abort();return}r.abort()}}setPendingMessages(e,n,r){let o=q.id(e);this._logService.info(`[Claude:${o}] setPendingMessages called: steering=${n?.id??"none"} queued=${r.length}`);let s=this._sessions.get(o);if(!s){this._logService.warn(`[Claude:${o}] setPendingMessages: session not found`);return}n&&s.session.injectSteering(n)}async changeModel(e,n){let r=q.id(e);await this._sessionSequencer.queue(r,async()=>{let o=this._findAnySession(r);o?await o.setModel(n):await this._metadataStore.write(e,{model:n})})}setClientTools(e,n,r){let o=q.id(e);this._logService.info(`[Claude:${o}] setClientTools clientId=${n} tools=[${r.map(a=>a.name).join(", ")||"(none)"}]`);let s=this._findAnySession(o);s&&s.setClientTools(r,n)}onClientToolCallComplete(e,n,r){let o=e,s;for(;s=Qe(o);)o=s.parentSession;let a=q.id(o);this._sessions.get(a)?.session.completeClientToolCall(n,r)}setClientCustomizations(e,n,r){throw new Error("TODO: Phase 11")}setCustomizationEnabled(e,n){throw new Error("TODO: Phase 11")}dispose(){for(let e of this._sessions.values())e.session.isPipelineReady||e.session.abortController.abort();super.dispose(),this._proxyHandle?.dispose(),this._proxyHandle=void 0,this._githubToken=void 0,this._models.set([],void 0)}};fs=w([C(0,M),C(1,Zo),C(2,_u),C(3,ns),C(4,Qt),C(5,Ye),C(6,Ve)],fs);var Cu=class extends T{constructor(t){super(),this.session=this._register(t)}addDisposable(t){this._register(t)}};import{mkdir as Ak}from"fs/promises";var fk=/^[0-9a-fA-F]+$/,mk="00000000000000000000000000000000",$_="0000000000000000";function V_(i){if(!i||!Array.isArray(i.resourceSpans))return{spans:[],rejected:0,errors:[]};let t=[],e=[],n=0;for(let r of i.resourceSpans){if(!r)continue;let o=vk(r.resource?.attributes);for(let s of r.scopeSpans??[])if(s)for(let a of s.spans??[])try{let l=gk(a,o);l?t.push(l):n++}catch(l){n++,e.push(l instanceof Error?l.message:String(l))}}return{spans:t,rejected:n,errors:e}}function gk(i,t){if(!i)return;let e=(i.traceId??"").toLowerCase(),n=(i.spanId??"").toLowerCase();if(!Tg(e,32)||e===mk)throw new Error(`invalid traceId: ${i.traceId}`);if(!Tg(n,16)||n===$_)throw new Error(`invalid spanId: ${i.spanId}`);let r;if(i.parentSpanId){let u=i.parentSpanId.toLowerCase();Tg(u,16)&&u!==$_&&(r=u)}let o=wg(i.startTimeUnixNano),s=wg(i.endTimeUnixNano);if(o===void 0||s===void 0)throw new Error("missing span time bounds");let a={...t};for(let u of i.attributes??[])Rg(a,u);let l=[];for(let u of i.events??[]){let d=hk(u);d&&l.push(d)}let c=yk(i.status?.code,i.status?.message);return{name:i.name??"",traceId:e,spanId:n,parentSpanId:r,startTime:o,endTime:s,status:c,attributes:a,events:l}}function hk(i){if(!i)return;let t=wg(i.timeUnixNano);if(t===void 0)return;let e={};for(let n of i.attributes??[])Rg(e,n);return{name:i.name??"",timestamp:t,attributes:Object.keys(e).length>0?e:void 0}}function yk(i,t){switch(i){case 1:return{code:1,message:t};case 2:return{code:2,message:t};case 0:default:return{code:0,message:t}}}function vk(i){let t={};if(!i)return t;for(let e of i)Rg(t,e);return t}function Rg(i,t){if(!t||typeof t.key!="string"||t.key.length===0)return;let e=xg(t.value);e!==void 0&&(i[t.key]=e)}function xg(i){if(i){if(typeof i.stringValue=="string")return i.stringValue;if(typeof i.boolValue=="boolean")return i.boolValue;if(i.intValue!==void 0){let t=typeof i.intValue=="string"?Number(i.intValue):i.intValue;return Number.isFinite(t)?t:void 0}if(typeof i.doubleValue=="number")return i.doubleValue;if(i.arrayValue?.values){let t=i.arrayValue.values.map(xg);return t.every(e=>typeof e=="string")?t:JSON.stringify(t)}if(i.kvlistValue?.values){let t={};for(let e of i.kvlistValue.values)e&&typeof e.key=="string"&&(t[e.key]=xg(e.value));return JSON.stringify(t)}if(typeof i.bytesValue=="string")return i.bytesValue}}function wg(i){if(i===void 0||i===""||i==="0")return;let t=i.length<=6?"0":i.slice(0,-6),e=Number(t);return Number.isFinite(e)?e:void 0}function Tg(i,t){return i.length===t&&fk.test(i)}var bk="/v1/traces",Sk=64*1024*1024;async function B_(i,t,e={}){let n=e.maxBodyBytes??Sk,o=(await import("http")).createServer();o.on("request",(u,d)=>{Ik(u,d,i,t,n).catch(f=>{if(t.error(`[agentHost-otel] receiver: unhandled error: ${f instanceof Error?f.message:String(f)}`),!d.headersSent)Br(d,500,"internal error");else if(!d.writableEnded)try{d.end()}catch{}})}),await new Promise((u,d)=>{let f=g=>d(g);o.once("error",f),o.listen(0,"127.0.0.1",()=>{o.removeListener("error",f),u()})});let s=o.address();if(!s||typeof s=="string")throw o.close(),new Error(`local OTLP receiver failed to bind: unexpected address ${String(s)}`);let a=s.port,l=`http://127.0.0.1:${a}`;t.info(`[agentHost-otel] receiver listening on ${l}`);let c=A(()=>{o.closeAllConnections(),o.close(u=>{u&&t.warn(`[agentHost-otel] receiver close error: ${u.message}`)})});return Object.assign(c,{baseUrl:l,port:a})}async function Ik(i,t,e,n,r){if((i.url??"").split("?",1)[0]!==bk){Br(t,404,"not found");return}if(i.method!=="POST"){t.setHeader("allow","POST"),Br(t,405,"method not allowed");return}let a=(i.headers["content-type"]??"").toString().toLowerCase();if(!a.includes("application/json")){Br(t,415,"unsupported content-type; this receiver only accepts application/json");return}let l=(i.headers["content-encoding"]??"").toString().toLowerCase();if(l&&l!=="identity"){Br(t,415,`unsupported content-encoding: ${l}`);return}let c;try{c=await _k(i,r)}catch(g){g instanceof Tu?Br(t,413,"payload too large"):Br(t,400,"failed to read body");return}if(e.onForward)try{e.onForward(c,a)}catch(g){n.warn(`[agentHost-otel] forward callback threw: ${g instanceof Error?g.message:String(g)}`)}let u;try{u=JSON.parse(c.toString("utf8"))}catch(g){Br(t,400,`invalid json: ${g instanceof Error?g.message:String(g)}`);return}let d=V_(u);try{e.onSpans(d)}catch(g){n.warn(`[agentHost-otel] onSpans handler threw: ${g instanceof Error?g.message:String(g)}`)}let f=d.rejected>0?{partialSuccess:{rejectedSpans:d.rejected,errorMessage:d.errors.join("; ").slice(0,1024)}}:{};t.statusCode=200,t.setHeader("content-type","application/json"),t.end(JSON.stringify(f))}var Tu=class extends Error{};function _k(i,t){return new Promise((e,n)=>{let r=[],o=0,s=u=>{if(o+=u.length,o>t){c(),n(new Tu(`body exceeds ${t} bytes`));return}r.push(u)},a=()=>{c(),e(Buffer.concat(r))},l=u=>{c(),n(u)},c=()=>{i.removeListener("data",s),i.removeListener("end",a),i.removeListener("error",l)};i.on("data",s),i.on("end",a),i.on("error",l)})}function Br(i,t,e){i.statusCode=t,i.setHeader("content-type","text/plain; charset=utf-8"),i.end(e)}import{URL as H_}from"url";import{promises as Ck}from"fs";function Tk(i){try{let t=new H_(i);return t.pathname===""||t.pathname==="/"?(t.pathname="/v1/traces",t.toString()):i}catch{return i}}var xu=class extends T{constructor(e,n){super();this._options=e;this._logService=n;this._queue=new br;this._disposed=!1;this._resolvedEndpoint=Tk(e.endpoint),this._register(A(()=>{this._disposed=!0}))}forwardRaw(e,n){this._disposed||this._queue.queue(()=>this._sendOnce(e,n))}async flush(){try{await this._queue.queue(()=>Promise.resolve())}catch{}}async _sendOnce(e,n){try{let r=new H_(this._resolvedEndpoint),o=r.protocol==="https:",s=o?await import("https"):await import("http"),a={"content-type":n,"content-length":String(e.length),...this._options.headers??{}};await xk(s,{host:r.hostname,port:r.port?Number(r.port):o?443:80,path:r.pathname+(r.search??""),method:"POST",headers:a,timeoutMs:this._options.timeoutMs??1e4},e)}catch(r){this._logService.warn(`[agentHost-otel] forward to ${this._resolvedEndpoint} failed: ${r instanceof Error?r.message:String(r)}`)}}};function xk(i,t,e){return new Promise((n,r)=>{let o=i.request({host:t.host,port:t.port,path:t.path,method:t.method,headers:t.headers,timeout:t.timeoutMs}),s=a=>{o.destroy(),r(a)};o.on("error",s),o.on("timeout",()=>s(new Error(`request timeout after ${t.timeoutMs}ms`))),o.on("response",a=>{a.resume(),a.on("end",()=>{let l=a.statusCode??0;l>=200&&l<300?n():r(new Error(`upstream returned HTTP ${l}`))}),a.on("error",s)}),o.end(e)})}var wu=class extends T{constructor(e,n){super();this._options=e;this._logService=n;this._queue=new br;this._disposed=!1;this._register(A(()=>{this._disposed=!0}))}forwardSpans(e){if(this._disposed||e.spans.length===0)return;let n=e.spans.map(r=>JSON.stringify(r)).join(`
`)+`
`;this._queue.queue(()=>this._append(n))}async flush(){try{await this._queue.queue(()=>Promise.resolve())}catch{}}async _append(e){try{await Ck.appendFile(this._options.filePath,e,{encoding:"utf8"})}catch(n){this._logService.warn(`[agentHost-otel] file forward to ${this._options.filePath} failed: ${n instanceof Error?n.message:String(n)}`)}}},Ru=class extends T{constructor(e){super();this._logService=e;this._disposed=!1;this._register(A(()=>{this._disposed=!0}))}forwardSpans(e){if(!this._disposed)for(let n of e.spans)this._logService.info(`[agentHost-otel] span ${wk(n)}`)}async flush(){}};function wk(i){let t=Math.max(0,i.endTime-i.startTime),e=i.attributes["gen_ai.operation.name"],n=i.attributes["gen_ai.request.model"]??i.attributes["gen_ai.response.model"],r=[e&&`op=${e}`,n&&`model=${n}`].filter(Boolean).join(" ");return`${i.name} (${t}ms) trace=${i.traceId} span=${i.spanId}${r?" "+r:""}`}var Eu=class extends T{constructor(t){super(),this._children=t;for(let e of t)this._register(e)}forwardRaw(t,e){for(let n of this._children)n.forwardRaw?.(t,e)}forwardSpans(t){for(let e of this._children)e.forwardSpans?.(t)}async flush(){await Promise.all(this._children.map(t=>t.flush()))}};import{mkdirSync as Rk}from"fs";import{createRequire as Ek}from"module";var Lt={OPERATION_NAME:"gen_ai.operation.name",PROVIDER_NAME:"gen_ai.provider.name",REQUEST_MODEL:"gen_ai.request.model",RESPONSE_MODEL:"gen_ai.response.model",RESPONSE_ID:"gen_ai.response.id",RESPONSE_FINISH_REASONS:"gen_ai.response.finish_reasons",USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",USAGE_CACHE_READ_INPUT_TOKENS:"gen_ai.usage.cache_read.input_tokens",USAGE_CACHE_CREATION_INPUT_TOKENS:"gen_ai.usage.cache_creation.input_tokens",USAGE_REASONING_TOKENS:"gen_ai.usage.reasoning_tokens",CONVERSATION_ID:"gen_ai.conversation.id",TOKEN_TYPE:"gen_ai.token.type",AGENT_NAME:"gen_ai.agent.name",TOOL_NAME:"gen_ai.tool.name",TOOL_TYPE:"gen_ai.tool.type",TOOL_CALL_ID:"gen_ai.tool.call.id"},Ya={TURN_INDEX:"copilot_chat.turn.index",TIME_TO_FIRST_TOKEN:"copilot_chat.time_to_first_token",CHAT_SESSION_ID:"copilot_chat.chat_session_id",HOOK_TYPE:"copilot_chat.hook_type",HOOK_INPUT:"copilot_chat.hook_input",HOOK_OUTPUT:"copilot_chat.hook_output",HOOK_RESULT_KIND:"copilot_chat.hook_result_kind"};var Pk=Ek(import.meta.url);function kk(){return Pk("node:sqlite")}var q_=1,z_=10080*60*1e3,j_=100,It={operation_name:Lt.OPERATION_NAME,provider_name:Lt.PROVIDER_NAME,agent_name:Lt.AGENT_NAME,conversation_id:Lt.CONVERSATION_ID,request_model:Lt.REQUEST_MODEL,response_model:Lt.RESPONSE_MODEL,input_tokens:Lt.USAGE_INPUT_TOKENS,output_tokens:Lt.USAGE_OUTPUT_TOKENS,cached_tokens:Lt.USAGE_CACHE_READ_INPUT_TOKENS,reasoning_tokens:Lt.USAGE_REASONING_TOKENS,tool_name:Lt.TOOL_NAME,tool_call_id:Lt.TOOL_CALL_ID,tool_type:Lt.TOOL_TYPE,chat_session_id:Ya.CHAT_SESSION_ID,turn_index:Ya.TURN_INDEX,ttft_ms:Ya.TIME_TO_FIRST_TOKEN},lie=$("otelSqliteStore"),Pu=class{constructor(t){this._db=null;this._insertSpanStmt=null;this._insertAttrStmt=null;this._insertEventStmt=null;this._beginTx=null;this._commitTx=null;this._rollbackTx=null;this._dbPath=t}get dbPath(){return this._dbPath}insertSpan(t){this._ensureDb();try{this._beginTx.run(),this._insertSpanStmt.run(t.spanId,t.traceId,t.parentSpanId??null,t.name,t.startTime,t.endTime,t.status.code,t.status.message??null,this._attr(t,It.operation_name),this._attr(t,It.provider_name),this._attr(t,It.agent_name),this._attr(t,It.conversation_id),this._attr(t,It.request_model),this._attr(t,It.response_model),this._attr(t,It.input_tokens),this._attr(t,It.output_tokens),this._attr(t,It.cached_tokens),this._attr(t,It.reasoning_tokens),this._attr(t,It.tool_name),this._attr(t,It.tool_call_id),this._attr(t,It.tool_type),this._attr(t,It.chat_session_id),this._attr(t,It.turn_index),this._ttftMs(t));for(let[e,n]of Object.entries(t.attributes)){let r=Array.isArray(n)?JSON.stringify(n):String(n);this._insertAttrStmt.run(t.spanId,e,r)}for(let e of t.events){let n=e.attributes?JSON.stringify(e.attributes):null;this._insertEventStmt.run(t.spanId,e.name,e.timestamp,n)}this._commitTx.run()}catch(e){try{this._rollbackTx.run()}catch{}throw e}}getSpansByTraceId(t){return this._ensureDb().prepare("SELECT * FROM spans WHERE trace_id = ? ORDER BY start_time_ms").all(t)}getSpansByConversationId(t){return this._ensureDb().prepare("SELECT * FROM spans WHERE conversation_id = ? OR chat_session_id = ? ORDER BY start_time_ms").all(t,t)}getSpanAttributes(t){return this._ensureDb().prepare("SELECT key, value FROM span_attributes WHERE span_id = ?").all(t)}getSpanAttribute(t,e){return this._ensureDb().prepare("SELECT value FROM span_attributes WHERE span_id = ? AND key = ?").get(t,e)?.value??null}getSpanEvents(t){return this._ensureDb().prepare("SELECT * FROM span_events WHERE span_id = ? ORDER BY timestamp_ms").all(t)}getTraceIds(t){let e=this._ensureDb();return t?e.prepare("SELECT DISTINCT trace_id FROM spans WHERE conversation_id = ? OR chat_session_id = ?").all(t,t).map(r=>r.trace_id):e.prepare("SELECT DISTINCT trace_id FROM spans").all().map(n=>n.trace_id)}getSessions(t){let e=t?"SELECT * FROM sessions ORDER BY started_at DESC LIMIT ?":"SELECT * FROM sessions ORDER BY started_at DESC";return t?this._ensureDb().prepare(e).all(t):this._ensureDb().prepare(e).all()}getSessionsSince(t){return this._ensureDb().prepare("SELECT * FROM sessions WHERE started_at >= ? ORDER BY started_at DESC").all(t)}cleanup(t=z_){let e=Date.now()-t,n=this._ensureDb().prepare("DELETE FROM spans WHERE start_time_ms < ?").run(e);return Number(n.changes)}checkpoint(){this._ensureDb().exec("PRAGMA wal_checkpoint(TRUNCATE)")}close(){this._db&&(this._db.close(),this._db=null,this._insertSpanStmt=null,this._insertAttrStmt=null,this._insertEventStmt=null,this._beginTx=null,this._commitTx=null,this._rollbackTx=null)}_attr(t,e){let n=t.attributes[e];return n===void 0?null:Array.isArray(n)?JSON.stringify(n):typeof n=="boolean"?n?1:0:n}_ttftMs(t){let e=this._attr(t,Ya.TIME_TO_FIRST_TOKEN);if(e!==null)return e;let n=t.attributes["gen_ai.response.time_to_first_chunk"]??t.attributes["github.copilot.time_to_first_chunk"];if(n===void 0)return null;let r=typeof n=="number"?n:parseFloat(String(n));return isNaN(r)?null:Math.round(r*1e3)}_ensureDb(){if(this._db)return this._db;this._dbPath!==":memory:"&&Rk(de(this._dbPath),{recursive:!0});let{DatabaseSync:t}=kk(),e=new t(this._dbPath);try{e.exec("PRAGMA journal_mode = WAL"),e.exec("PRAGMA busy_timeout = 3000"),e.exec("PRAGMA foreign_keys = ON"),this._db=e,this._ensureSchema(),this._prepareStatements(e),this._cleanupOnStartup(e)}catch(n){throw e.close(),this._db=null,n}return this._db}_prepareStatements(t){this._insertSpanStmt=t.prepare(`
			INSERT OR REPLACE INTO spans (
				span_id, trace_id, parent_span_id, name,
				start_time_ms, end_time_ms, status_code, status_message,
				operation_name, provider_name, agent_name, conversation_id,
				request_model, response_model,
				input_tokens, output_tokens, cached_tokens, reasoning_tokens,
				tool_name, tool_call_id, tool_type,
				chat_session_id, turn_index, ttft_ms
			) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
		`),this._insertAttrStmt=t.prepare("INSERT OR REPLACE INTO span_attributes (span_id, key, value) VALUES (?, ?, ?)"),this._insertEventStmt=t.prepare("INSERT INTO span_events (span_id, name, timestamp_ms, attributes) VALUES (?, ?, ?, ?)"),this._beginTx=t.prepare("BEGIN"),this._commitTx=t.prepare("COMMIT"),this._rollbackTx=t.prepare("ROLLBACK")}_ensureSchema(){let t=this._db;((()=>{try{return t.prepare("SELECT version FROM schema_version LIMIT 1").get()}catch{return}})()?.version??0)>=q_||t.exec(`
			CREATE TABLE IF NOT EXISTS schema_version (version INTEGER PRIMARY KEY);
			INSERT OR REPLACE INTO schema_version (version) VALUES (${q_});

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

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

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

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

			-- Session view: derives session boundaries from span data.
			-- No separate sessions table needed \u2014 invoke_agent spans define session lifecycle.
			CREATE VIEW IF NOT EXISTS sessions AS
			SELECT
				COALESCE(conversation_id, chat_session_id) AS session_id,
				agent_name,
				response_model AS model,
				MIN(start_time_ms) AS started_at,
				MAX(end_time_ms) AS ended_at,
				MAX(end_time_ms) - MIN(start_time_ms) AS duration_ms,
				COUNT(*) AS span_count,
				SUM(CASE WHEN operation_name = 'chat' THEN 1 ELSE 0 END) AS llm_calls,
				SUM(CASE WHEN operation_name = 'execute_tool' THEN 1 ELSE 0 END) AS tool_calls,
				SUM(CASE WHEN operation_name = 'chat' THEN input_tokens ELSE 0 END) AS total_input_tokens,
				SUM(CASE WHEN operation_name = 'chat' THEN output_tokens ELSE 0 END) AS total_output_tokens,
				SUM(CASE WHEN operation_name = 'chat' THEN cached_tokens ELSE 0 END) AS total_cached_tokens
			FROM spans
			WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
			GROUP BY COALESCE(conversation_id, chat_session_id);
		`)}_cleanupOnStartup(t){let e=Date.now()-z_;t.prepare("DELETE FROM spans WHERE start_time_ms < ?").run(e);let n=t.prepare(`
			SELECT MIN(max_start) AS cutoff_ms FROM (
				SELECT MAX(start_time_ms) AS max_start
				FROM spans
				WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
				GROUP BY COALESCE(conversation_id, chat_session_id)
				ORDER BY max_start DESC
				LIMIT ?
			)
		`).get(j_);n?.cutoff_ms&&t.prepare(`
				DELETE FROM spans
				WHERE start_time_ms < ?
				AND COALESCE(conversation_id, chat_session_id) NOT IN (
					SELECT COALESCE(conversation_id, chat_session_id)
					FROM spans
					WHERE COALESCE(conversation_id, chat_session_id) IS NOT NULL
					GROUP BY COALESCE(conversation_id, chat_session_id)
					ORDER BY MAX(start_time_ms) DESC
					LIMIT ?
				)
			`).run(n.cutoff_ms,j_)}};var Dk=Gy;function Eg(i){if(!i)return!1;let t=i.trim().toLowerCase();return t==="true"||t==="1"||t==="yes"||t==="on"}function Ok(i){if(!i)return;let t={};for(let e of i.split(",")){let n=e.indexOf("=");if(n<=0)continue;let r=e.slice(0,n).trim(),o=e.slice(n+1).trim();r&&(t[r]=o)}return Object.keys(t).length?t:void 0}function Lk(i){let t=Eg(i.COPILOT_OTEL_DB_SPAN_EXPORTER_ENABLED),e=i.OTEL_EXPORTER_OTLP_ENDPOINT??i.COPILOT_OTEL_ENDPOINT,n=i.COPILOT_OTEL_FILE_EXPORTER_PATH,o=Eg(i.COPILOT_OTEL_ENABLED)||t||!!e||!!n,s=(i.COPILOT_OTEL_EXPORTER_TYPE??"").trim().toLowerCase(),a=(i.OTEL_EXPORTER_OTLP_PROTOCOL??i.COPILOT_OTEL_PROTOCOL??"").trim().toLowerCase(),l="otlp-http";return s==="console"||s==="file"||s==="otlp-grpc"||s==="otlp-http"?l=s:n&&(l="file"),(a==="grpc"||a==="http/grpc")&&(l="otlp-grpc"),{enabled:o,dbSpanExporter:t,exporterType:l,otlpEndpoint:e,filePath:n,sourceName:i.COPILOT_OTEL_SOURCE_NAME,captureContent:i.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT===void 0?void 0:Eg(i.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT),headers:Ok(i.OTEL_EXPORTER_OTLP_HEADERS)}}var ms=class extends T{constructor(e,n){super();this._logService=e;this._config=Lk(process.env),this._spansDbPath=B(n.userDataPath,Dk)}async getSdkTelemetryConfig(){if(this._config.enabled){if(this._config.dbSpanExporter){if(await this._ensureStarted(),this._receiver)return this._buildLoopbackConfig();if(!this._config.otlpEndpoint&&this._config.exporterType!=="console"&&!this._config.filePath)return}return this._buildPassthroughConfig()}}getSpansDbPath(){return this._config.dbSpanExporter?y.file(this._spansDbPath):void 0}async flush(){await this._startPromise,this._forwarder&&await this._forwarder.flush()}_buildLoopbackConfig(){return{exporterType:"otlp-http",otlpEndpoint:this._receiver.baseUrl,sourceName:this._config.sourceName,captureContent:this._config.captureContent}}_buildPassthroughConfig(){return{exporterType:this._config.exporterType,otlpEndpoint:this._config.otlpEndpoint,filePath:this._config.filePath,sourceName:this._config.sourceName,captureContent:this._config.captureContent}}_ensureStarted(){return this._startPromise||(this._startPromise=this._start().catch(e=>{this._logService.error("[agentHost.otel] failed to start loopback OTel pipeline",e),this._receiver=void 0,this._forwarder=void 0})),this._startPromise}async _start(){await Ak(de(this._spansDbPath),{recursive:!0});let e=new Pu(this._spansDbPath);this._register(A(()=>e.close())),this._forwarder=this._buildOutboundForwarder();let n=await B_({onSpans:r=>{for(let o of r.spans)try{e.insertSpan(o)}catch(s){this._logService.warn("[agentHost.otel] failed to insert span",s)}this._forwarder?.forwardSpans?.(r)},onForward:this._forwarder?(r,o)=>{this._forwarder.forwardRaw?.(r,o)}:void 0},this._logService);this._receiver=n,this._register(n),this._forwarder&&this._register(this._forwarder),this._logService.info(`[agentHost.otel] loopback receiver at ${n.baseUrl}, db ${this._spansDbPath}`)}_buildOutboundForwarder(){let e=[];switch(this._config.exporterType){case"otlp-http":case"otlp-grpc":this._config.otlpEndpoint&&e.push(new xu({endpoint:this._config.otlpEndpoint,headers:this._config.headers},this._logService));break;case"file":this._config.filePath&&e.push(new wu({filePath:this._config.filePath},this._logService));break;case"console":e.push(new Ru(this._logService));break}if(e.length)return e.length===1?e[0]:new Eu(e)}};ms=w([C(0,M),C(1,Dr)],ms);var ku=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}},K_=class i extends T{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=$e.None,r){if(this._store.isDisposed)return Promise.reject(new le);let o=this._nextRequestId++,s=new pe,a=new Ke;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(Pg(e)){De(e,{result:!0})?this._handleResult(e):this._handleError(e);return}if(Mk(e))return this._handleRequest(e);Nk(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 ku(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 Ke;this._register(A(()=>n.dispose(!0)));try{let r=this._handlers.handleRequest(e,n.token),o=Uk(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 ku?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 Mk(i){return"method"in i&&"id"in i&&(typeof i.id=="string"||typeof i.id=="number")}function Pg(i){return De(i,{id:!0,result:!0})||De(i,{id:!0,error:!0})}function Nk(i){return De(i,{method:!0})&&!De(i,{id:!0})}function Uk(i){return typeof i=="object"&&i!==null&&"then"in i&&typeof i.then=="function"}var gs="0.2.0";function G_(i){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(i);if(!t)throw new Error(`Invalid protocol version: ${i}`);return[Number(t[1]),Number(t[2]),Number(t[3])]}function kg(i,t){let[e,n,r]=G_(i),[o,s,a]=G_(t);return e-o||n-s||r-a}var Pie={"root/agentsChanged":"0.1.0","root/activeSessionsChanged":"0.1.0","session/ready":"0.1.0","session/creationFailed":"0.1.0","session/turnStarted":"0.1.0","session/delta":"0.1.0","session/responsePart":"0.1.0","session/toolCallStart":"0.1.0","session/toolCallDelta":"0.1.0","session/toolCallReady":"0.1.0","session/toolCallConfirmed":"0.1.0","session/toolCallComplete":"0.1.0","session/toolCallResultConfirmed":"0.1.0","session/toolCallContentChanged":"0.1.0","session/turnComplete":"0.1.0","session/turnCancelled":"0.1.0","session/error":"0.1.0","session/titleChanged":"0.1.0","session/usage":"0.1.0","session/reasoning":"0.1.0","session/modelChanged":"0.1.0","session/agentChanged":"0.2.0","session/serverToolsChanged":"0.1.0","session/activeClientChanged":"0.1.0","session/activeClientToolsChanged":"0.1.0","session/pendingMessageSet":"0.1.0","session/pendingMessageRemoved":"0.1.0","session/queuedMessagesReordered":"0.1.0","session/inputRequested":"0.1.0","session/inputAnswerChanged":"0.1.0","session/inputCompleted":"0.1.0","session/customizationsChanged":"0.1.0","session/customizationToggled":"0.1.0","session/customizationUpdated":"0.1.0","session/truncated":"0.1.0","session/isReadChanged":"0.1.0","session/isArchivedChanged":"0.1.0","session/activityChanged":"0.1.0","session/changesetsChanged":"0.2.0","session/configChanged":"0.1.0","session/metaChanged":"0.1.0","changeset/statusChanged":"0.2.0","changeset/fileSet":"0.2.0","changeset/fileRemoved":"0.2.0","changeset/operationsChanged":"0.2.0","changeset/cleared":"0.2.0","root/terminalsChanged":"0.1.0","root/configChanged":"0.1.0","terminal/data":"0.1.0","terminal/input":"0.1.0","terminal/resized":"0.1.0","terminal/claimed":"0.1.0","terminal/titleChanged":"0.1.0","terminal/cwdChanged":"0.1.0","terminal/exited":"0.1.0","terminal/cleared":"0.1.0","terminal/commandDetectionAvailable":"0.1.0","terminal/commandExecuted":"0.1.0","terminal/commandFinished":"0.1.0"};function J_(i){let t=/^(\d+)\.(\d+)\.(\d+)$/.exec(i);if(t)return[Number(t[1]),Number(t[2]),Number(t[3])]}function Fk(i,t){let e=J_(i),n=J_(t);return!e||!n||e[0]!==n[0]||e[0]===0&&e[1]!==n[1]?!1:kg(i,t)<=0}function Q_(i,t){let e;for(let n of i)Fk(n,t)&&(e===void 0||kg(n,e)>0)&&(e=n);return e}var Ag="_vscodeUpgrade";var Y_="VSCODE_AGENT_HOST_MANAGEMENT_SOCKET";function Au(){let i=process.env[Y_];return i&&i.length>0?i:void 0}async function X_(i=Au()){let t=await import("http");return i?new Promise((e,n)=>{let r=t.request({socketPath:i,method:"POST",path:"/upgrade",headers:{"content-length":"0"}},o=>{let s=[];o.on("data",a=>s.push(a)),o.on("end",()=>{let a=Buffer.concat(s).toString("utf8"),l=o.statusCode??0,c;try{c=a?JSON.parse(a):void 0}catch{}if(l>=200&&l<300&&c&&c.ok!==!1)e(c);else{let u=c?.error||a||`HTTP ${l}`;n(new Error(`Agent host upgrade request failed: ${u}`))}}),o.on("error",n)});r.once("error",n),r.end()}):Promise.reject(new Error(`Cannot request upgrade: ${Y_} is not set.`))}var Z_="ahp-otlp://logs/{level}",e1="ahp-otlp",Wk=["trace","debug","info","warn","error","fatal"];function t1(i){switch(i){case"trace":return 1;case"debug":return 5;case"info":return 9;case"warn":return 13;case"error":return 17;case"fatal":return 21}}function $k(i){let t=i.toLowerCase();return Wk.includes(t)?t:void 0}function Vk(i){switch(i){case 1:return{severityNumber:1,severityText:"trace"};case 2:return{severityNumber:5,severityText:"debug"};case 3:return{severityNumber:9,severityText:"info"};case 4:return{severityNumber:13,severityText:"warn"};case 5:return{severityNumber:17,severityText:"error"};case 0:return{severityNumber:0,severityText:"trace"}}}var Du=class extends T{constructor(){super(...arguments);this._onDidLog=this._register(new x);this.onDidLog=this._onDidLog.event}emit(e){this._onDidLog.fire(e)}},Ou=class extends fi{constructor(e,n=1){super();this._emitter=e;this.setLevel(n)}log(e,n){if(e===0)return;let{severityNumber:r,severityText:o}=Vk(e);this._emitter.emit({timeUnixNano:Hk(Date.now()),severityNumber:r,severityText:o,body:n})}};function n1(i){return Bk([i])}function Bk(i){return{resourceLogs:[{resource:{attributes:[]},scopeLogs:[{scope:{name:"vscode.agentHost"},logRecords:i.map(t=>({timeUnixNano:t.timeUnixNano,observedTimeUnixNano:t.timeUnixNano,severityNumber:t.severityNumber,severityText:t.severityText,body:{stringValue:t.body}}))}]}]}}function Hk(i){return`${i}000000`}function r1(i){let t=/^ahp-otlp:\/\/logs\/([^/?#]+)/i.exec(i);if(t)return $k(t[1])}function i1(i){return`ahp-otlp://logs/${i}`}var qk=1e3,zk=3e4;function hs(i,t){return{jsonrpc:"2.0",id:i,result:t}}function Mu(i,t,e,n){return{jsonrpc:"2.0",id:i,error:{code:t,message:e,...n!==void 0?{data:n}:{}}}}function ys(i,t){if(t instanceof V)return Mu(i,t.code,t.message,t.data);let e=t instanceof Error?t.stack??t.message:String(t);return Mu(i,po,e)}function Lu(i){if(i.toLowerCase().startsWith(`${e1}:`)){let t=r1(i);return t?{kind:"otlp-logs",uri:i1(t),level:t}:void 0}return{kind:"state",uri:i}}var wi=class extends T{constructor(e,n,r,o,s,a){super();this._agentService=e;this._stateManager=n;this._server=r;this._config=o;this._clientFileSystemProvider=s;this._logService=a;this._clients=new Map;this._replayBuffer=[];this._clientToolCallDisconnectTimeouts=new Map;this._onDidChangeConnectionCount=this._register(new x);this.onDidChangeConnectionCount=this._onDidChangeConnectionCount.event;this._requestHandlers={subscribe:async(e,n)=>{let r=Lu(n.channel);if(!r)return{};if(r.kind==="otlp-logs")return this._config.otlpLogEmitter?(e.subscriptions.set(r.uri,r),{}):(this._logService.warn(`[ProtocolServer] Ignoring OTLP subscribe for ${n.channel}: no OTLP emitter configured.`),{});try{let o=await this._agentService.subscribe(y.parse(n.channel),e.clientId);return e.subscriptions.set(r.uri,r),this._clearClientToolCallDisconnectTimeout(e.clientId,r.uri),{snapshot:o}}catch(o){throw o instanceof V?o:new V(tr,`Resource not found: ${n.channel}`)}},createSession:async(e,n)=>{let r,o;if(n.fork){let s=this._stateManager.getSessionState(n.fork.session);if(!s)throw new V(tr,`Fork source session not found: ${n.fork.session}`);let a=s.turns.findIndex(l=>l.id===n.fork.turnId);if(a<0)throw new V(tr,`Fork turn ID ${n.fork.turnId} not found in session ${n.fork.session}`);o={session:y.parse(n.fork.session),turnIndex:a,turnId:n.fork.turnId}}if(n.activeClient&&n.activeClient.clientId!==e.clientId)throw new V(Jt.InvalidParams,"createSession.activeClient.clientId must match the connection's clientId");try{r=await this._agentService.createSession({provider:n.provider,model:n.model,agent:n.agent,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,session:y.parse(n.channel),fork:o,config:n.config,activeClient:n.activeClient})}catch(s){throw s instanceof V?s:new V(qv,s instanceof Error?s.message:String(s))}return r.toString()!==y.parse(n.channel).toString()&&this._logService.warn(`[ProtocolServer] createSession: provider returned URI ${r.toString()} but client requested ${n.channel}`),null},disposeSession:async(e,n)=>(await this._agentService.disposeSession(y.parse(n.channel)),null),resourceWrite:async(e,n)=>this._agentService.resourceWrite(n),listSessions:async()=>({items:(await this._agentService.listSessions()).map(r=>{let o=q.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(),changesets:r.changesets?[...r.changesets]:void 0}})}),resolveSessionConfig:async(e,n)=>this._agentService.resolveSessionConfig({provider:n.provider,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,config:n.config}),sessionConfigCompletions:async(e,n)=>this._agentService.sessionConfigCompletions({provider:n.provider,workingDirectory:n.workingDirectory?y.parse(n.workingDirectory):void 0,config:n.config,property:n.property,query:n.query}),completions:async(e,n)=>this._agentService.completions(n),fetchTurns:async(e,n)=>{let r=this._stateManager.getSessionState(n.channel);if(!r)throw new V(tr,`Session not found: ${n.channel}`);let o=r.turns,s=Math.min(n.limit??50,100),a=o.length;if(n.before){let c=o.findIndex(u=>u.id===n.before);c!==-1&&(a=c)}let l=Math.max(0,a-s);return{turns:o.slice(l,a),hasMore:l>0}},resourceList:async(e,n)=>this._agentService.resourceList(y.parse(n.uri)),resourceRead:async(e,n)=>this._agentService.resourceRead(y.parse(n.uri)),resourceCopy:async(e,n)=>this._agentService.resourceCopy(n),resourceDelete:async(e,n)=>this._agentService.resourceDelete(n),resourceMove:async(e,n)=>this._agentService.resourceMove(n),resourceRequest:async(e,n)=>({}),authenticate:async(e,n)=>{if(!(await this._agentService.authenticate(n)).authenticated)throw new V(fo,`Authentication failed for resource: ${n.resource}`);return{}},createTerminal:async(e,n)=>(await this._agentService.createTerminal(n),null),disposeTerminal:async(e,n)=>(await this._agentService.disposeTerminal(y.parse(n.channel)),null),invokeChangesetOperation:async(e,n)=>{let r=this._stateManager.getChangesetState(n.channel);if(!r)throw new V(tr,`Changeset not found: ${n.channel}`);let o=r.operations?.find(a=>a.id===n.operationId);if(!o)throw new V(Jt.InvalidParams,`Unknown operation '${n.operationId}' on changeset ${n.channel}`);let s=n.target?.kind==="resource"?"resource":n.target?.kind==="range"?"range":"changeset";throw o.scopes.includes(s)?new V(Jt.InternalError,`No operation handler registered for '${n.operationId}' on changeset ${n.channel}`):new V(Jt.InvalidParams,`Operation '${n.operationId}' does not support scope '${s}' (allowed: ${o.scopes.join(", ")})`)}};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>qk&&this._replayBuffer.shift(),this._broadcastAction(l)})),this._register(this._stateManager.onDidEmitNotification(l=>{this._broadcastNotification(l)})),this._config.otlpLogEmitter&&this._register(this._config.otlpLogEmitter.onDidLog(l=>this._broadcastOtlpLog(l)))}_handleNewConnection(e){let n=new z,r;n.add(e.onMessage(o=>{if(jv(o)){if(this._logService.trace(`[ProtocolServer] request: method=${o.method} id=${o.id}`),o.method==="ping"){e.send(hs(o.id,null));return}if(!r&&o.method==="initialize"){try{let s=this._handleInitialize(o.params,e,n);r=s.client,e.send(hs(o.id,s.response))}catch(s){e.send(ys(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(ys(o.id,a));return}s.then(a=>e.send(hs(o.id,a)),a=>e.send(ys(o.id,a)));return}if(o.method===Ag){this._handleVscodeUpgrade(o.id,e);return}if(!r)return;this._handleRequest(r,o.method,o.params,o.id)}else if(Kv(o))switch(this._logService.trace(`[ProtocolServer] notification: method=${o.method}`),o.method){case"unsubscribe":r&&this._removeSubscription(r,o.params.channel);break;case"dispatchAction":if(r){this._logService.trace(`[ProtocolServer] dispatchAction: ${JSON.stringify(o.params.action.type)}`);let s=o.params.action,a=o.params.channel;(gc(s)||hc(s)||s.type==="root/configChanged")&&this._agentService.dispatchAction(a,s,r.clientId,o.params.clientSeq)}break}else if(Pg(o)){let s=this._pendingReverseRequests.get(o.id);s&&(this._pendingReverseRequests.delete(o.id),De(o,{error:!0})?s.reject(new V(o.error?.code??-32e3,o.error?.message??"Reverse RPC error",o.error?.data)):s.resolve(o.result))}})),n.add(e.onClose(()=>{if(r&&this._clients.get(r.clientId)===r){this._logService.info(`[ProtocolServer] Client disconnected: ${r.clientId}, subscriptions=${r.subscriptions.size}`);for(let o of r.subscriptions.values())o.kind==="state"&&this._agentService.unsubscribe(y.parse(o.uri),r.clientId);r.subscriptions.clear(),this._clients.delete(r.clientId),this._rejectPendingReverseRequests(r.clientId),this._handleClientDisconnected(r.clientId),this._onDidChangeConnectionCount.fire(this._clients.size)}n.dispose()})),n.add(e)}_handleInitialize(e,n,r){let o=Array.isArray(e.protocolVersions)?e.protocolVersions:[];this._logService.info(`[ProtocolServer] Initialize: clientId=${e.clientId}, protocolVersions=[${o.join(", ")}]`);let s=Q_(o,gs);if(!s){let c={supportedVersions:[`^${gs}`],_meta:Au()?{vscodeUpgradeMethod:Ag}:void 0};throw new V(zv,`Client offered protocol versions [${o.join(", ")}], none of which are compatible with this server's version ${gs} (server accepts ^${gs}).`,c)}let a={clientId:e.clientId,protocolVersion:s,transport:n,subscriptions:new Map,disposables:r};this._clients.set(e.clientId,a),this._onDidChangeConnectionCount.fire(this._clients.size),r.add(this._clientFileSystemProvider.registerAuthority(e.clientId,{resourceList:c=>this._sendReverseRequest(e.clientId,"resourceList",{uri:c.toString()}),resourceRead:c=>this._sendReverseRequest(e.clientId,"resourceRead",{uri:c.toString()}),resourceWrite:c=>this._sendReverseRequest(e.clientId,"resourceWrite",c),resourceDelete:c=>this._sendReverseRequest(e.clientId,"resourceDelete",c),resourceMove:c=>this._sendReverseRequest(e.clientId,"resourceMove",c),resourceRequest:c=>this._sendReverseRequest(e.clientId,"resourceRequest",c)}));let l=[];if(e.initialSubscriptions)for(let c of e.initialSubscriptions){let u=this._addInitialSubscription(a,c.toString());u&&l.push(u)}return{client:a,response:{protocolVersion:s,serverSeq:this._stateManager.serverSeq,snapshots:l,defaultDirectory:this._config.defaultDirectory,completionTriggerCharacters:this._config.completionTriggerCharacters,telemetry:this._config.otlpLogEmitter?{logs:Z_}:void 0}}}_addInitialSubscription(e,n){let r=Lu(n);if(!r)return;if(r.kind==="otlp-logs"){if(!this._config.otlpLogEmitter){this._logService.warn(`[ProtocolServer] Ignoring OTLP initialSubscription ${n}: no OTLP emitter configured.`);return}e.subscriptions.set(r.uri,r);return}let o=this._stateManager.getSnapshot(n);if(o)return e.subscriptions.set(r.uri,r),this._agentService.addSubscriber(y.parse(r.uri),e.clientId),this._clearClientToolCallDisconnectTimeout(e.clientId,r.uri),o}_handleVscodeUpgrade(e,n){let r=Au();if(!r){n.send(Mu(e,Jt.MethodNotFound,"No upgrade supervisor is available for this agent host."));return}X_(r).then(o=>n.send(hs(e,o)),o=>{this._logService.warn(`[ProtocolServer] vscodeUpgrade signal failed: ${o instanceof Error?o.message:String(o)}`),n.send(ys(e,o))})}_handleReconnect(e,n,r){this._logService.info(`[ProtocolServer] Reconnect: clientId=${e.clientId}, lastSeenSeq=${e.lastSeenServerSeq}`);let o={clientId:e.clientId,protocolVersion:gs,transport:n,subscriptions:new Map,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(),c=Lu(l);if(c){if(c.kind==="otlp-logs"){if(!this._config.otlpLogEmitter){this._logService.warn(`[ProtocolServer] Reconnect: dropping OTLP subscription ${l}: no OTLP emitter configured.`);return}e.subscriptions.set(c.uri,c);return}try{let u=await this._agentService.subscribe(y.parse(l),e.clientId);return e.subscriptions.set(c.uri,c),this._clearClientToolCallDisconnectTimeout(e.clientId,c.uri),u}catch(u){this._logService.info(`[ProtocolServer] Reconnect: failed to restore subscription ${l}: ${u instanceof Error?u.message:String(u)}`),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(n,{type:"session/activeClientChanged",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)},zk))}_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(n,{type:"session/toolCallReady",turnId:o.id,toolCallId:a.toolCallId,invocationMessage:a.invocationMessage??a.displayName,confirmed:"not-needed"}),this._stateManager.dispatchServerAction(n,{type:"session/toolCallComplete",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(hs(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Request '${n}' failed`,l),e.transport.send(ys(o,l))});return}let a=this._handleExtensionRequest(n,r);if(a){a.then(l=>{e.transport.send(hs(o,l??null))}).catch(l=>{this._logService.error(`[ProtocolServer] Extension request '${n}' failed`,l),e.transport.send(ys(o,l))});return}e.transport.send(Mu(o,po,`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{type:n,...r}=e,o={jsonrpc:"2.0",method:n,params:r};for(let s of this._clients.values())s.transport.send(o)}_removeSubscription(e,n){let r=Lu(n);if(!r)return;let o=e.subscriptions.get(r.uri);o&&(e.subscriptions.delete(r.uri),o.kind==="state"&&this._agentService.unsubscribe(y.parse(o.uri),e.clientId))}_broadcastOtlpLog(e){let n=n1(e);for(let r of this._clients.values())for(let o of r.subscriptions.values()){if(o.kind!=="otlp-logs"||e.severityNumber<t1(o.level))continue;let s={jsonrpc:"2.0",method:"otlp/exportLogs",params:{channel:o.uri,payload:n}};r.transport.send(s)}}_isRelevantToClient(e,n){if(ma(n.channel)){for(let o of e.subscriptions.values())if(o.kind==="state"&&ma(o.uri))return!0;return!1}return e.subscriptions.get(n.channel)?.kind==="state"}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()}};wi=w([C(5,M)],wi);var jk="ahp",Kk=75*1024*1024,Gk=5,vs=class extends T{constructor(e,n,r){super();this._options=e;this._fileService=n;this._logService=r;this._currentSize=0;this._segment=0;this._queue=Promise.resolve();this._directory=ee(this._options.logsHome,jk);let o=Yk(this._options.connectionId).slice(0,64);this._baseName=`ahp-${Qk(new Date)}-${o}.jsonl`,this._maxFileSizeBytes=this._options.maxFileSizeBytes??Kk,this._maxFiles=this._options.maxFiles??Gk,this._currentFile=ee(this._directory,this._baseName)}get resource(){return this._currentFile}log(e,n,r){let o={...e,_ahpLog:{ts:new Date().toISOString(),dir:n,connectionId:this._options.connectionId,transport:this._options.transport,...typeof r=="number"?{byteLength:r}:{}}},s=`${Jk(o)}
`,a=k.fromString(s);this._queue=this._queue.then(()=>this._appendLine(a)).catch(l=>{this._logService.error("[AHPLog] Failed to write transport log",l)})}async flush(){await this._queue}async _appendLine(e){this._folderCreated||(this._folderCreated=this._fileService.createFolder(this._directory)),await this._folderCreated,this._currentSize===0&&(this._currentSize=await this._getFileSize(this._currentFile)),this._currentSize>0&&this._currentSize+e.byteLength>this._maxFileSizeBytes&&await this._rotate(),await this._fileService.writeFile(this._currentFile,e,{append:!0}),this._currentSize+=e.byteLength}async _rotate(){this._segment++;let e=this._segment-this._maxFiles;e>=0&&await this._fileService.del(this._resourceForSegment(e)).catch(n=>{this._logService.trace("[AHPLog] Failed to delete old transport log",n)}),this._currentFile=this._resourceForSegment(this._segment),this._currentSize=await this._getFileSize(this._currentFile)}_resourceForSegment(e){if(e===0)return ee(this._directory,this._baseName);let n=this._baseName.slice(0,-6);return ee(this._directory,`${n}.${e}.jsonl`)}async _getFileSize(e){try{return(await this._fileService.resolve(e)).size??0}catch{return 0}}};vs=w([C(1,Me),C(2,M)],vs);function Og(i){return k.fromString(i).byteLength}function Jk(i){return JSON.stringify(Dg(i))}function Dg(i){if(y.isUri(i))return i.toString();if(Array.isArray(i))return i.map(Dg);if(i!==null&&typeof i=="object"){let t={};for(let e of Object.keys(i))t[e]=Dg(i[e]);return t}return i}function Qk(i){return i.toISOString().replace(/[:.]/g,"-")}function Yk(i){return i.replace(/[\\/:\*\?"<>\|\s]+/g,"-").replace(/^-+|-+$/g,"")||"connection"}var Lg=class extends T{constructor(e,n,r){super();this._ws=e;this._WebSocket=n;this._ahpLogger=r;this._onMessage=this._register(new x);this.onMessage=this._onMessage.event;this._onClose=this._register(new x);this.onClose=this._onClose.event;this._ahpLogger&&this._register(this._ahpLogger),this._ws.on("message",o=>{try{let s=typeof o=="string"?o:o.toString("utf-8"),a=JSON.parse(s);this._ahpLogger?.log(a,"c2s",Og(s)),this._onMessage.fire(a)}catch{this.send({jsonrpc:"2.0",id:null,error:{code:Hv,message:"Parse error"}})}}),this._ws.on("close",()=>{this._onClose.fire()}),this._ws.on("error",()=>{this._onClose.fire()})}send(e){if(this._ws.readyState===this._WebSocket.OPEN){let n=JSON.stringify(e);this._ahpLogger?.log(e,"s2c",Og(n)),this._ws.send(n)}}dispose(){this._ws.close(),super.dispose()}},Xa=class i extends T{constructor(e,n,r,o,s,a){super();this._logService=n;this._ahpLogOptions=r;this._connectionCount=0;this._onConnection=this._register(new x);this.onConnection=this._onConnection.event;this._WebSocket=o.WebSocket;let l=typeof e=="number"?{port:e}:e,c=l.host??"127.0.0.1",u=l.connectionTokenValidate?(d,f)=>{let h=a.parse(d.req.url??"",!0).query[Lp];if(!l.connectionTokenValidate(h)){this._logService.warn("[WebSocketProtocol] Connection rejected: invalid connection token"),f(!1,403,"Forbidden");return}f(!0)}:void 0;if(l.socketPath){this._httpServer=s.createServer(),this._wss=new o.WebSocketServer({server:this._httpServer,verifyClient:u});let d=this._httpServer;this.whenListening=new Promise((f,g)=>{d.once("listening",()=>{this._logService.info(`[WebSocketProtocol] Server listening on socket ${l.socketPath}`),f()}),d.once("error",g)}),this._httpServer.listen(l.socketPath)}else{this._wss=new o.WebSocketServer({port:l.port,host:c,verifyClient:u});let d=this._wss;this.whenListening=new Promise((f,g)=>{d.once("listening",()=>{let h=d.address(),v=!h||typeof h=="string"?`${c}:${l.port}`:`${h.address}:${h.port}`;this._logService.info(`[WebSocketProtocol] Server listening on ${v}`),f()}),d.once("error",g)})}this._wss.on("connection",d=>{this._logService.trace("[WebSocketProtocol] New client connection");let f=new Lg(d,this._WebSocket,this._createAhpLogger());this._onConnection.fire(f)}),this._wss.on("error",d=>{this._logService.error("[WebSocketProtocol] Server error",d)})}get address(){let e=this._wss.address();return!e||typeof e=="string"?e??void 0:`${e.address}:${e.port}`}get boundPort(){let e=this._wss.address();if(!(!e||typeof e=="string"))return e.port}static async create(e,n,r){let[o,s,a]=await Promise.all([import("ws"),import("http"),import("url")]);return new i(e,n,r,o,s,a)}_createAhpLogger(){if(this._ahpLogOptions)return this._ahpLogOptions.instantiationService.createInstance(vs,{logsHome:this._ahpLogOptions.logsHome,connectionId:`agent-host-${++this._connectionCount}-${j()}`,transport:"websocket"})}dispose(){this._wss.close(),this._httpServer?.close(),super.dispose()}};import{homedir as iA,tmpdir as oA}from"os";var o1=/^([^.]+\..+)[:=](.+)$/,ae=class{constructor(t,e,n){this._args=t;this.paths=e;this.productService=n}get appRoot(){return de(tt.asFileUri("").fsPath)}get userHome(){return y.file(this.paths.homeDir)}get userDataPath(){return this.paths.userDataDir}get appSettingsHome(){return y.file(B(this.userDataPath,"User"))}get tmpDir(){return y.file(this.paths.tmpDir)}get cacheHome(){return y.file(this.userDataPath)}get stateResource(){return ee(this.appSettingsHome,"globalStorage","storage.json")}get userRoamingDataHome(){return this.appSettingsHome.with({scheme:ie.vscodeUserData})}get userDataSyncHome(){return ee(this.appSettingsHome,"sync")}get logsHome(){if(!this.args.logsPath){let t=$S(new Date).replace(/-|:|\.\d+Z$/g,"");this.args.logsPath=B(this.userDataPath,"logs",t)}return y.file(this.args.logsPath)}get sync(){return this.args.sync}get workspaceStorageHome(){return ee(this.appSettingsHome,"workspaceStorage")}get localHistoryHome(){return ee(this.appSettingsHome,"History")}get keyboardLayoutResource(){return ee(this.userRoamingDataHome,"keyboardLayout.json")}get argvResource(){let t=Ue.VSCODE_PORTABLE;return t?y.file(B(t,"argv.json")):ee(this.userHome,this.productService.dataFolderName,"argv.json")}get isExtensionDevelopment(){return!!this.args.extensionDevelopmentPath}get untitledWorkspacesHome(){return y.file(B(this.userDataPath,"Workspaces"))}get builtinExtensionsPath(){let t=this.args["builtin-extensions-dir"];return t?tn(t):Ht(B(tt.asFileUri("").fsPath,"..","extensions"))}get extensionsDownloadLocation(){let t=this.args["extensions-download-dir"];return t?y.file(tn(t)):y.file(B(this.userDataPath,"CachedExtensionVSIXs"))}get extensionsPath(){let t=this.args["extensions-dir"];if(t)return tn(t);let e=Ue.VSCODE_EXTENSIONS;if(e)return e;let n=Ue.VSCODE_PORTABLE;return n?B(n,"extensions"):ee(this.userHome,this.productService.dataFolderName,"extensions").fsPath}get appSharedDataHome(){let t=this.args["shared-data-dir"];if(t)return y.file(tn(t));let e=Ue.VSCODE_PORTABLE;return e?y.file(B(e,"shared-data")):ee(this.userHome,this.productService.sharedDataFolderName)}get extensionDevelopmentLocationURI(){let t=this.args.extensionDevelopmentPath;if(Array.isArray(t))return t.map(e=>/^[^:/?#]+?:\/\//.test(e)?y.parse(e):y.file(Ht(e)))}get extensionDevelopmentKind(){return this.args.extensionDevelopmentKind?.map(t=>t==="ui"||t==="workspace"||t==="web"?t:"workspace")}get extensionTestsLocationURI(){let t=this.args.extensionTestsPath;if(t)return/^[^:/?#]+?:\/\//.test(t)?y.parse(t):y.file(Ht(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=Ue.VSCODE_SKIP_BUILTIN_EXTENSIONS;return t?t.split(",").map(e=>e.trim()).filter(e=>e):[]}get debugExtensionHost(){return Xk(this.args,this.isBuilt)}get debugRenderer(){return!!this.args.debugRenderer}get isBuilt(){return!Ue.VSCODE_DEV}get verbose(){return!!this.args.verbose}get logLevel(){return this.args.log?.find(t=>!o1.test(t))}get extensionLogLevel(){let t=[];for(let e of this.args.log||[]){let n=o1.exec(e);n?.[1]&&n[2]&&t.push([n[1],n[2]])}return t.length?t:void 0}get serviceMachineIdResource(){return ee(y.file(this.userDataPath),"machineid")}get crashReporterId(){return this.args["crash-reporter-id"]}get crashReporterDirectory(){return this.args["crash-reporter-directory"]}get disableTelemetry(){return!!this.args["disable-telemetry"]}get disableExperiments(){return!!this.args["disable-experiments"]}get disableWorkspaceTrust(){return!!this.args["disable-workspace-trust"]}get useInMemorySecretStorage(){return!!this.args["use-inmemory-secretstorage"]}get policyFile(){if(this.args["__enable-file-policy"]){let t=Ue.VSCODE_PORTABLE;return t?y.file(B(t,"policy.json")):ee(this.userHome,this.productService.dataFolderName,"policy.json")}}get agentSessionsWorkspace(){return ee(this.appSettingsHome,"agent-sessions.code-workspace")}get editSessionId(){return this.args.editSessionId}get exportPolicyData(){return this.args["export-policy-data"]}get exportDefaultKeybindings(){return this.args["export-default-keybindings"]}get continueOn(){return this.args.continueOn}set continueOn(t){this.args.continueOn=t}get args(){return this._args}};w([ce],ae.prototype,"appRoot",1),w([ce],ae.prototype,"userHome",1),w([ce],ae.prototype,"userDataPath",1),w([ce],ae.prototype,"appSettingsHome",1),w([ce],ae.prototype,"tmpDir",1),w([ce],ae.prototype,"cacheHome",1),w([ce],ae.prototype,"stateResource",1),w([ce],ae.prototype,"userRoamingDataHome",1),w([ce],ae.prototype,"userDataSyncHome",1),w([ce],ae.prototype,"sync",1),w([ce],ae.prototype,"workspaceStorageHome",1),w([ce],ae.prototype,"localHistoryHome",1),w([ce],ae.prototype,"keyboardLayoutResource",1),w([ce],ae.prototype,"argvResource",1),w([ce],ae.prototype,"isExtensionDevelopment",1),w([ce],ae.prototype,"untitledWorkspacesHome",1),w([ce],ae.prototype,"builtinExtensionsPath",1),w([ce],ae.prototype,"extensionsDownloadLocation",1),w([ce],ae.prototype,"extensionsPath",1),w([ce],ae.prototype,"appSharedDataHome",1),w([ce],ae.prototype,"extensionDevelopmentLocationURI",1),w([ce],ae.prototype,"extensionDevelopmentKind",1),w([ce],ae.prototype,"extensionTestsLocationURI",1),w([ce],ae.prototype,"debugExtensionHost",1),w([ce],ae.prototype,"logLevel",1),w([ce],ae.prototype,"extensionLogLevel",1),w([ce],ae.prototype,"serviceMachineIdResource",1),w([ce],ae.prototype,"disableTelemetry",1),w([ce],ae.prototype,"disableExperiments",1),w([ce],ae.prototype,"disableWorkspaceTrust",1),w([ce],ae.prototype,"useInMemorySecretStorage",1),w([ce],ae.prototype,"policyFile",1),w([ce],ae.prototype,"agentSessionsWorkspace",1);function Xk(i,t){return s1(i["inspect-extensions"],i["inspect-brk-extensions"],5870,t,i.debugId,i.extensionEnvironment)}function s1(i,t,e,n,r,o){let a=Number(t||i)||(n?null:e),l=a?!!t:!1,c;if(o)try{c=JSON.parse(o)}catch{}return{port:a,break:l,debugId:r,env:c}}import{homedir as a1}from"os";import{resolve as Zk,isAbsolute as eA,join as bs}from"path";var tA=process.env.VSCODE_CWD||process.cwd();function l1(i,t){let e=nA(i,t),n=[e];return eA(e)||n.unshift(tA),Zk(...n)}function nA(i,t){process.env.VSCODE_DEV&&(t="code-oss-dev");let e=process.env.VSCODE_PORTABLE;if(e)return bs(e,"user-data");let n=process.env.VSCODE_APPDATA;if(n)return bs(n,t);let r=i["user-data-dir"];return r||rA(t)}function rA(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=bs(e,"AppData","Roaming")}break;case"darwin":t=bs(a1(),"Library","Application Support");break;case"linux":t=process.env.XDG_CONFIG_HOME||bs(a1(),".config");break;default:throw new Error("Platform not supported")}return bs(t,i)}var Nu=class extends ae{constructor(t,e){let n=iA();super(t,{homeDir:n,tmpDir:oA(),userDataDir:l1(t,e.nameShort)},e)}};import sA from"minimist";var Boe={o:m(2243,null),e:m(2227,null),t:m(2257,null),m:m(2238,null)};var c1={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:m(2247,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:m(2215,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:m(2210,null)},maximize:{type:"boolean",cat:"o",description:m(2214,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2250,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2241,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2246,null)},help:{type:"boolean",alias:"h",description:m(2229,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(2216,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(2216,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(2216,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(2219,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:m(2239,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:m(2209,null)},remove:{type:"boolean",cat:"o",args:"folder",description:m(2248,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:m(2228,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:m(2240,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:m(2249,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:m(2212,null)},wait:{type:"boolean",cat:"o",alias:"w",description:m(2267,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:m(2235,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:m(2264,null)},profile:{type:"string",cat:"o",args:"profileName",description:m(2246,null)},help:{type:"boolean",cat:"o",alias:"h",description:m(2229,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:m(2226,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:m(2234,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(2251,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:m(2213,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:m(2233,null)},"pre-release":{type:"boolean",cat:"e",description:m(2232,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:m(2259,null)},"update-extensions":{type:"boolean",cat:"e",description:m(2262,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:m(2225,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:m(2211,null)},version:{type:"boolean",cat:"t",alias:"v",description:m(2266,null)},verbose:{type:"boolean",cat:"t",global:!0,description:m(2265,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:m(2237,null)},status:{type:"boolean",alias:"s",cat:"t",description:m(2252,null)},"prof-startup":{type:"boolean",cat:"t",description:m(2245,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(2222,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:m(2221,null)},sync:{type:"string",cat:"t",description:m(2258,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:m(2231,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:m(2230,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:m(2224,null)},"disable-gpu":{type:"boolean",cat:"t",description:m(2223,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:m(2220,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:m(2236,null)},telemetry:{type:"boolean",cat:"t",description:m(2255,null)},remote:{type:"string",allowEmptyValue:!0},"folder-uri":{type:"string[]",cat:"o",args:"uri"},"file-uri":{type:"string[]",cat:"o",args:"uri"},"locate-extension":{type:"string[]"},extensionDevelopmentPath:{type:"string[]"},extensionDevelopmentKind:{type:"string[]"},extensionTestsPath:{type:"string"},extensionEnvironment:{type:"string"},debugId:{type:"string"},debugRenderer:{type:"boolean"},"inspect-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-brk-ptyhost":{type:"string",allowEmptyValue:!0},"inspect-agenthost":{type:"string",allowEmptyValue:!0},"inspect-brk-agenthost":{type:"string",allowEmptyValue:!0},"inspect-sharedprocess":{type:"string",allowEmptyValue:!0},"inspect-brk-sharedprocess":{type:"string",allowEmptyValue:!0},"export-default-configuration":{type:"string"},"export-policy-data":{type:"string",allowEmptyValue:!0},"export-default-keybindings":{type:"string",allowEmptyValue:!0},"install-source":{type:"string"},"enable-smoke-test-driver":{type:"boolean"},"skip-sessions-welcome":{type:"boolean"},logExtensionHostCommunication:{type:"boolean"},"skip-release-notes":{type:"boolean"},"skip-welcome":{type:"boolean"},"disable-telemetry":{type:"boolean"},"disable-updates":{type:"boolean"},"share-secrets-with-agents-app":{type:"boolean"},transient:{type:"boolean",cat:"t",description:m(2256,null)},"use-inmemory-secretstorage":{type:"boolean",deprecates:["disable-keytar"]},"password-store":{type:"string"},"disable-workspace-trust":{type:"boolean"},"disable-crash-reporter":{type:"boolean"},"crash-reporter-directory":{type:"string"},"crash-reporter-id":{type:"string"},"skip-add-to-recently-opened":{type:"boolean"},"open-url":{type:"boolean"},"file-write":{type:"boolean"},"file-chmod":{type:"boolean"},"install-builtin-extension":{type:"string[]"},force:{type:"boolean"},"do-not-sync":{type:"boolean"},"do-not-include-pack-dependencies":{type:"boolean"},trace:{type:"boolean"},"trace-memory-infra":{type:"boolean"},"trace-category-filter":{type:"string"},"trace-options":{type:"string"},"preserve-env":{type:"boolean"},"force-user-env":{type:"boolean"},"force-disable-user-env":{type:"boolean"},"open-devtools":{type:"boolean"},"disable-gpu-sandbox":{type:"boolean"},logsPath:{type:"string"},"__enable-file-policy":{type:"boolean"},editSessionId:{type:"string"},continueOn:{type:"string"},"enable-coi":{type:"boolean"},"unresponsive-sample-interval":{type:"string"},"unresponsive-sample-period":{type:"string"},"enable-rdp-display-tracking":{type:"boolean"},"disable-layout-restore":{type:"boolean"},"disable-experiments":{type:"boolean"},"no-proxy-server":{type:"boolean"},"no-sandbox":{type:"boolean",alias:"sandbox"},"proxy-server":{type:"string"},"proxy-bypass-list":{type:"string"},"proxy-pac-url":{type:"string"},"js-flags":{type:"string"},inspect:{type:"string",allowEmptyValue:!0},"inspect-brk":{type:"string",allowEmptyValue:!0},nolazy:{type:"boolean"},"force-device-scale-factor":{type:"string"},"force-renderer-accessibility":{type:"boolean"},"ignore-certificate-errors":{type:"boolean"},"allow-insecure-localhost":{type:"boolean"},"log-net-log":{type:"string"},vmodule:{type:"string"},_urls:{type:"string[]"},"disable-dev-shm-usage":{type:"boolean"},"profile-temp":{type:"boolean"},"ozone-platform":{type:"string"},"enable-tracing":{type:"string"},"trace-startup-format":{type:"string"},"trace-startup-file":{type:"string"},"trace-startup-duration":{type:"string"},"xdg-portal-required-version":{type:"string"},_:{type:"string[]"}},aA={onUnknownOption:()=>{},onMultipleValues:()=>{},onEmptyValue:()=>{},onDeprecatedOption:()=>{}};function Mg(i,t,e=aA){let n=i.find((f,g)=>f.length>0&&f[0]!=="-"&&t.hasOwnProperty(f)&&t[f].type==="subcommand"),r={},o=["_"],s=[],a={},l;for(let f in t){let g=t[f];g.type==="subcommand"?f===n&&(l=g):(g.alias&&(r[f]=g.alias),g.type==="string"||g.type==="string[]"?(o.push(f),g.deprecates&&o.push(...g.deprecates)):g.type==="boolean"&&(s.push(f),g.deprecates&&s.push(...g.deprecates)),g.global&&(a[f]=g))}if(l&&n){let f=a;for(let S in l.options)f[S]=l.options[S];let g=i.filter(S=>S!==n),h=e.getSubcommandReporter?e.getSubcommandReporter(n):void 0,v=Mg(g,f,h);return{[n]:v,_:[]}}let c=sA(i,{string:o,boolean:s,alias:r}),u={},d=c;u._=c._.map(f=>String(f)).filter(f=>f.length>0),delete d._;for(let f in t){let g=t[f];if(g.type==="subcommand")continue;g.alias&&delete d[g.alias];let h=d[f];if(g.deprecates)for(let v of g.deprecates)d.hasOwnProperty(v)&&(h||(h=d[v],h&&e.onDeprecatedOption(v,g.deprecationMessage||m(2218,null,f))),delete d[v]);if(typeof h<"u"){if(g.type==="string[]"){if(Array.isArray(h)||(h=[h]),!g.allowEmptyValue){let v=h.filter(S=>S.length>0);v.length!==h.length&&(e.onEmptyValue(f),h=v.length>0?v:void 0)}}else g.type==="string"&&(Array.isArray(h)?(h=h.pop(),e.onMultipleValues(f,h)):!h&&!g.allowEmptyValue&&(e.onEmptyValue(f),h=void 0));u[f]=h,g.deprecationMessage&&e.onDeprecatedOption(f,g.deprecationMessage)}delete d[f]}for(let f in d)e.onUnknownOption(f);return u}var Uu=class extends T{constructor(t,e=[]){super(),this.logger=new uc([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 lA(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 d1(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 u1(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 Fu=class extends fi{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&&u1(this._logger,a)}))}async _createSpdLogLogger(e,n,r,o){let s=r?6:1,a=30/s*ec.MB,l=await lA(e,n,a,s,o);if(l){this._logger=l,u1(this._logger,this.getLevel());for(let{level:c,message:u}of this.buffer)d1(this._logger,c,u);this.buffer=[]}}log(e,n){this._logger?d1(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 Wu=class extends ua{doCreateLogger(t,e,n){return new Fu(j(),t.fsPath,!n?.donotRotate,!!n?.donotUseFormatters,e)}};var $u=class{constructor(t,e){this.loggerService=t;this.getUriTransformer=e}listen(t,e){let n=this.getUriTransformer(t);switch(e){case"onDidChangeLoggers":return X.map(this.loggerService.onDidChangeLoggers,r=>({added:[...r.added].map(o=>this.transformLogger(o,n)),removed:[...r.removed].map(o=>this.transformLogger(o,n))}));case"onDidChangeVisibility":return X.map(this.loggerService.onDidChangeVisibility,r=>[n.transformOutgoingURI(r[0]),r[1]]);case"onDidChangeLogLevel":return X.map(this.loggerService.onDidChangeLogLevel,r=>wf(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 wf(n[0])?this.loggerService.setLogLevel(n[0]):this.loggerService.setLogLevel(y.revive(r.transformIncoming(n[0][0])),n[0][1]);case"getRegisteredLoggers":return Promise.resolve([...this.loggerService.getRegisteredLoggers()].map(o=>this.transformLogger(o,r)))}throw new Error(`Call not found: ${e}`)}transformLogger(t,e){return{...t,resource:e.transformOutgoingURI(t.resource)}}};var p1=new class{transformIncoming(i){return i}transformOutgoing(i){return i}transformOutgoingURI(i){return i}transformOutgoingScheme(i){return i}};function Ng(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 cA(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?Ng():{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 Ng(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),Ng()}function dA(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=cA()),i.MonacoPerformanceMarks}var Ug=dA(globalThis),f1=Ug.mark,wse=Ug.clearMarks,Rse=Ug.getMarks;async function Vu(i,t,e,n,r,o){let s;try{await uA(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 uA(i,t,e,n,r,o){Fg(o);let s=await i.open(t,{create:!1});try{Fg(o);let a=0,l=0,c=r&&typeof r.length=="number"?r.length:void 0,u=k.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),d=r&&typeof r.position=="number"?r.position:0,f=0;do l=await i.read(s,d,u.buffer,f,u.byteLength-f),d+=l,f+=l,a+=l,typeof c=="number"&&(c-=l),f===u.byteLength&&(await e.write(n(u)),u=k.alloc(Math.min(r.bufferSize,typeof c=="number"?c:r.bufferSize)),f=0);while(l>0&&(typeof c!="number"||c>0)&&Fg(o)&&pA(a,r));if(f>0){let g=f;typeof c=="number"&&(g=Math.min(f,c)),e.write(n(u.slice(0,g)))}}catch(a){throw Xn(a)}finally{await i.close(s)}}function Fg(i){if(i.isCancellationRequested)throw nl();return!0}function pA(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw fe(m(2423,null),"EntryTooLarge");return!0}var Hr=class extends T{constructor(e){super();this.logService=e;this.BUFFER_SIZE=256*1024;this._onDidChangeFileSystemProviderRegistrations=this._register(new x);this.onDidChangeFileSystemProviderRegistrations=this._onDidChangeFileSystemProviderRegistrations.event;this._onWillActivateFileSystemProvider=this._register(new x);this.onWillActivateFileSystemProvider=this._onWillActivateFileSystemProvider.event;this._onDidChangeFileSystemProviderCapabilities=this._register(new x);this.onDidChangeFileSystemProviderCapabilities=this._onDidChangeFileSystemProviderCapabilities.event;this.provider=new Map;this._onDidRunOperation=this._register(new x);this.onDidRunOperation=this._onDidRunOperation.event;this.internalOnDidFilesChange=this._register(new x);this._onDidUncorrelatedFilesChange=this._register(new x);this.onDidFilesChange=this._onDidUncorrelatedFilesChange.event;this._onDidWatchError=this._register(new x);this.onDidWatchError=this._onDidWatchError.event;this.activeWatchers=new Map;this.writeQueue=this._register(new Hi)}registerProvider(e,n){if(this.provider.has(e))throw new Error(`A filesystem provider for the scheme '${e}' is already registered.`);f1(`code/registerFilesystem/${e}`);let r=new z;return this.provider.set(e,n),this._onDidChangeFileSystemProviderRegistrations.fire({added:!0,scheme:e,provider:n}),r.add(n.onDidChangeFile(o=>{let s=new Zl(o,!this.isPathCaseSensitive(n));this.internalOnDidFilesChange.fire(s),s.hasCorrelation()||this._onDidUncorrelatedFilesChange.fire(s)})),typeof n.onDidWatchError=="function"&&r.add(n.onDidWatchError(o=>this._onDidWatchError.fire(new Error(o)))),r.add(n.onDidChangeCapabilities(()=>this._onDidChangeFileSystemProviderCapabilities.fire({provider:n,scheme:e}))),A(()=>{this._onDidChangeFileSystemProviderRegistrations.fire({added:!1,scheme:e,provider:n}),this.provider.delete(e),ut(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 ii.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 Di.map(this.provider,([e,n])=>({scheme:e,capabilities:n.capabilities}))}async withProvider(e){if(!fy(e))throw new Ge(m(2412,null,this.resourceForError(e)),8);await this.activateProvider(e.scheme);let n=this.provider.get(e.scheme);if(!n){let r=new un;throw r.message=m(2414,null,e.toString()),r}return n}async withReadProvider(e){let n=await this.withProvider(e);if(Yn(n)||Ft(n)||tc(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(Yn(n)||Ft(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 bn(r)==="EntryNotFound"?new Ge(m(2409,null,this.resourceForError(e)),1):Xn(r)}}async doResolveFile(e,n){let r=await this.withProvider(e),o=this.isPathCaseSensitive(r),s=n?.resolveTo,a=n?.resolveSingleChildDescendants,l=n?.resolveMetadata,c=await r.stat(e),u;return this.toFileStat(r,e,c,void 0,!!l,(d,f)=>(u||(u=vn.forUris(()=>!o),u.set(e,!0),s&&u.fill(!0,s)),u.get(d.resource)||u.findSuperstr(d.resource.with({query:null,fragment:null}))?!0:d.isDirectory&&a?f===1:!1))}async toFileStat(e,n,r,o,s,a){let{providerExtUri:l}=this.getExtUri(e),c={resource:n,name:l.basename(n),isFile:(r.type&1)!==0,isDirectory:(r.type&2)!==0,isSymbolicLink:(r.type&64)!==0,mtime:r.mtime,ctime:r.ctime,size:r.size,readonly:!!((r.permissions??0)&1)||!!(e.capabilities&2048),locked:!!((r.permissions??0)&2),executable:!!((r.permissions??0)&4),etag:vf({mtime:r.mtime,size:r.size}),children:void 0};if(c.isDirectory&&a(c,o)){try{let u=await e.readdir(n),d=await ii.settled(u.map(async([f,g])=>{try{let h=l.joinPath(n,f),v=s?await e.stat(h):{type:g};return await this.toFileStat(e,h,v,u.length,s,a)}catch(h){return this.logService.trace(h),null}}));c.children=Ei(d)}catch(u){this.logService.trace(u),c.children=[]}return c}return c}async resolveAll(e){return ii.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(Sv(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 Ge(m(2405,null,this.resourceForError(e)),3,n)}async createFile(e,n=k.fromString(""),r){await this.doValidateCreateFile(e,r);let o=await this.writeFile(e,n);return this._onDidRunOperation.fire(new Jn(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(hf(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)),!Yn(o)||Ft(o)&&c instanceof k||Ft(o)&&hf(o)&&a?.atomic?await this.doWriteUnbuffered(o,e,a,c):await this.doWriteBuffered(o,e,a,c instanceof k?wy(c):c),this._onDidRunOperation.fire(new Jn(e,4))}catch(l){throw new Ge(m(2404,null,this.resourceForError(e),Xn(l).toString()),yf(l),a)}return this.resolve(e,{resolveMetadata:!0})}async peekBufferForWriting(e,n){let r;if(Ft(e)&&!(n instanceof k))if(Fs(n)){let o=await Iy(n,3);o.ended?r=k.concat(o.buffer):r=o}else r=Sy(n,o=>k.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(2422,null,this.resourceForError(n)));if(o?.append&&!vv(e))throw new Ge(m(2401,null,this.resourceForError(n)),6);if(!!o?.atomic){if(!(e.capabilities&32768))throw new Error(m(2420,null,this.resourceForError(n)));if(!(e.capabilities&2))throw new Error(m(2421,null,this.resourceForError(n)));if(s)throw new Error(m(2419,null,this.resourceForError(n)))}let l;try{l=await e.stat(n)}catch{return Object.create(null)}if((l.type&2)!==0)throw new Ge(m(2407,null,this.resourceForError(n)),0,o);this.throwIfFileIsReadonly(n,l);let c;if(typeof o?.mtime=="number"&&typeof o.etag=="string"&&o.etag!==rc&&typeof l.mtime=="number"&&typeof l.size=="number"&&o.mtime<l.mtime&&o.etag!==vf({mtime:o.mtime,size:l.size})){if(c=await this.peekBufferForWriting(e,r),c instanceof k&&c.byteLength===l.size)try{let{value:u}=await this.readFile(n,{limits:{size:l.size}});if(c.equals(u))return{stat:l,buffer:c}}catch{}throw new Ge(m(2408,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 Ir(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 Ke(o),a=r;nc(e)&&e.enforceAtomicReadFile?.(n)&&(a={...r,atomic:!0});let l=this.validateReadFile(n,a).then(u=>u,u=>{throw s.dispose(!0),u}),c;try{return typeof a?.etag=="string"&&a.etag!==rc&&await l,a?.atomic&&nc(e)||!(Yn(e)||tc(e))||Ft(e)&&a?.preferUnbuffered?c=this.readFileUnbuffered(e,n,a):tc(e)?c=this.readFileStreamed(e,n,s.token,a):c=this.readFileBuffered(e,n,s.token,a),c.on("end",()=>s.dispose()),c.on("error",()=>s.dispose()),{...await l,value:c}}catch(u){throw c&&await Al(c),this.restoreReadError(u,n,a)}}restoreReadError(e,n,r){let o=m(2402,null,this.resourceForError(n),Xn(e).toString());return e instanceof lo?new lo(o,e.stat,r):e instanceof ao?new ao(o,e.fileOperationResult,e.size,e.options):new Ge(o,yf(e),r)}readFileStreamed(e,n,r,o=Object.create(null)){let s=e.readFileStream(n,o,r);return qp(s,{data:a=>a instanceof k?a:k.wrap(a),error:a=>this.restoreReadError(a,n,o)},a=>k.concat(a))}readFileBuffered(e,n,r,o=Object.create(null)){let s=Ey();return Vu(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=jn(s=>k.concat(s));return(async()=>{try{let s;r?.atomic&&nc(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(k.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 Ge(m(2406,null,this.resourceForError(e)),0,n);if(typeof n?.etag=="string"&&n.etag!==rc&&n.etag===r.etag)throw new lo(m(2410,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 ao(m(2411,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 Jn(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 Jn(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&&gf(e))await e.copy(n,o,{overwrite:a});else{let u=await this.resolve(n);u.isDirectory?await this.doCopyFolder(e,u,r,o):await this.doCopyFile(e,n,r,o)}return s}else return e===r?(await e.rename(n,o,{overwrite:a}),s):(await this.doMoveCopy(e,n,r,o,"copy",a),await this.del(n,{recursive:!0}),"copy")}async doCopyFile(e,n,r,o){if(Yn(e)&&Yn(r))return this.doPipeBuffered(e,n,r,o);if(Yn(e)&&Ft(r))return this.doPipeBufferedToUnbuffered(e,n,r,o);if(Ft(e)&&Yn(r))return this.doPipeUnbufferedToBuffered(e,n,r,o);if(Ft(e)&&Ft(r))return this.doPipeUnbuffered(e,n,r,o)}async doCopyFolder(e,n,r,o){await r.mkdir(o),Array.isArray(n.children)&&await ii.settled(n.children.map(async s=>{let a=this.getExtUri(r).providerExtUri.joinPath(o,s.name);return s.isDirectory?this.doCopyFolder(e,await this.resolve(s.resource),r,a):this.doCopyFile(e,s.resource,r,a)}))}async doValidateMoveCopy(e,n,r,o,s,a){let l=!1;if(e===r){let{providerExtUri:u,isPathCaseSensitive:d}=this.getExtUri(e);if(d||(l=u.isEqual(n,o)),l&&s==="copy")throw new Error(m(2415,null,this.resourceForError(n),this.resourceForError(o)));if(!l&&u.isEqualOrParent(o,n))throw new Error(m(2416,null,this.resourceForError(n),this.resourceForError(o)))}let c=await this.exists(o);if(c&&!l){if(!a)throw new Ge(m(2417,null,this.resourceForError(n),this.resourceForError(o)),4);if(e===r){let{providerExtUri:u}=this.getExtUri(e);if(u.isEqualOrParent(n,o))throw new Error(m(2418,null,this.resourceForError(n),this.resourceForError(o)))}}return{exists:c,isSameResourceWithDifferentPathCase:l}}getExtUri(e){let n=this.isPathCaseSensitive(e);return{providerExtUri:n?oe:Np,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 Jn(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(2413,null,this.resourceForError(n)));break}catch(s){if(bn(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(bn(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(2400,null,this.resourceForError(e)));let s=n?.atomic;if(s&&!(r.capabilities&65536))throw new Error(m(2396,null,this.resourceForError(e)));if(o&&s)throw new Error(m(2399,null,this.resourceForError(e)));let a;try{a=await r.stat(e)}catch{}if(a)this.throwIfFileIsReadonly(e,a);else throw new Ge(m(2398,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(2397,null,this.resourceForError(e)))}return r}async del(e,n){let r=await this.doValidateDelete(e,n),o=n;if(Iv(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 Jn(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&&bv(r)?r.cloneFile(e,n):(await this.mkdirp(o,this.getExtUri(o).providerExtUri.dirname(n)),r===o&&gf(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:Hr.WATCHER_CORRELATION_IDS++})}watch(e,n={recursive:!1,excludes:[]}){let r=new z,o=!1,s=()=>{o=!0};r.add(A(()=>s())),(async()=>{try{let l=await this.doWatch(e,n);o?ut(l):s=()=>ut(l)}catch(l){this.logService.error(l)}})();let a=n.correlationId;if(typeof a=="number"){let l=r.add(new x);return r.add(this.internalOnDidFilesChange.event(u=>{u.correlates(a)&&l.fire(u)})),{onDidChange:l.event,dispose:()=>r.dispose()}}return r}async doWatch(e,n){let r=await this.withProvider(e),o=Wt([this.getExtUri(r).providerExtUri.getComparisonKey(e),n]),s=this.activeWatchers.get(o);return s||(s={count:0,disposable:r.watch(e,n)},this.activeWatchers.set(o,s)),s.count+=1,A(()=>{s&&(s.count--,s.count===0&&(ut(s.disposable),this.activeWatchers.delete(o)))})}dispose(){super.dispose();for(let[,e]of this.activeWatchers)ut(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{Fs(o)||kl(o)?await this.doWriteStreamBufferedQueued(e,s,o):await this.doWriteReadableBufferedQueued(e,s,o)}catch(a){throw Xn(a)}finally{await e.close(s)}},this.getExtUri(e).providerExtUri)}async doWriteStreamBufferedQueued(e,n,r){let o=0,s;if(kl(r)){if(r.buffer.length>0){let a=k.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)=>{Dl(s,{onData:async c=>{s.pause();try{await this.doWriteBuffer(e,n,c,c.byteLength,o,0)}catch(u){return l(u)}o+=c.byteLength,setTimeout(()=>s.resume())},onError:c=>l(c),onEnd:()=>a()})})}async doWriteReadableBufferedQueued(e,n,r){let o=0,s;for(;(s=r.read())!==null;)await this.doWriteBuffer(e,n,s,s.byteLength,o,0),o+=s.byteLength}async doWriteBuffer(e,n,r,o,s,a){let l=0;for(;l<o;){let c=await e.write(n,s+l,r.buffer,a+l,o-l);l+=c}}async doWriteUnbuffered(e,n,r,o){return this.writeQueue.queueFor(n,()=>this.doWriteUnbufferedQueued(e,n,r,o),this.getExtUri(e).providerExtUri)}async doWriteUnbufferedQueued(e,n,r,o){let s;o instanceof k?s=o:Fs(o)?s=await Ir(o):kl(o)?s=await Ry(o):s=xy(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=k.alloc(this.BUFFER_SIZE),c=0,u=0,d=0;do d=await e.read(s,c,l.buffer,u,l.byteLength-u),await this.doWriteBuffer(r,a,l,d,c,u),c+=d,u+=d,u===l.byteLength&&(u=0);while(d>0)}catch(l){throw Xn(l)}finally{await ii.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,k.wrap(a),a.byteLength,0,0)}catch(a){throw Xn(a)}finally{await r.close(s)}}async doPipeBufferedToUnbuffered(e,n,r,o){let s=await Ir(this.readFileBuffered(e,n,$e.None));await this.doWriteUnbuffered(r,o,void 0,s)}throwIfFileSystemIsReadonly(e,n){if(e.capabilities&2048)throw new Ge(m(2403,null,this.resourceForError(n)),6);return e}throwIfFileIsReadonly(e,n){if((n.permissions??0)&1)throw new Ge(m(2403,null,this.resourceForError(e)),6)}resourceForError(e){return e.scheme===ie.file?e.fsPath:e.toString(!0)}};Hr=w([C(0,M)],Hr);import{constants as Bg,promises as Ri}from"fs";function zu(i){return typeof i.correlationId=="number"}function g1(i){return i.recursive===!0}var Bu=class i extends T{constructor(e,n,r,o){super();this.onFileChanges=e;this.onLogMessage=n;this.verboseLogging=r;this.options=o;this.watcherDisposables=this._register(new ur);this.requests=void 0;this.restartCounter=0}static{this.MAX_RESTARTS=5}init(){let e=new z;this.watcherDisposables.value=e,this.watcher=this.createWatcher(e),this.watcher.setVerboseLogging(this.verboseLogging),e.add(this.watcher.onDidChangeFile(n=>this.onFileChanges(n))),e.add(this.watcher.onDidLogMessage(n=>this.onLogMessage(n))),e.add(this.watcher.onDidError(n=>this.onError(n.error,n.request)))}onError(e,n){this.canRestart(e,n)?this.restartCounter<i.MAX_RESTARTS&&this.requests?(this.error(`restarting watcher after unexpected error: ${e}`),this.restart(this.requests)):this.error(`gave up attempting to restart watcher after unexpected error: ${e}`):this.error(e)}canRestart(e,n){return!(!this.options.restartOnError||n||e.indexOf("No space left on device")!==-1||e.indexOf("EMFILE")!==-1)}restart(e){this.restartCounter++,this.init(),this.watch(e)}async watch(e){this.requests=e,await this.watcher?.watch(e)}async setVerboseLogging(e){this.verboseLogging=e,await this.watcher?.setVerboseLogging(e)}error(e){this.onLogMessage({type:"error",message:`[File Watcher (${this.options.type})] ${e}`})}trace(e){this.onLogMessage({type:"trace",message:`[File Watcher (${this.options.type})] ${e}`})}dispose(){return this.watcher=void 0,super.dispose()}},Hu=class extends Bu{constructor(t,e,n){super(t,e,n,{type:"node.js",restartOnError:!1})}},qu=class extends Bu{constructor(t,e,n){super(t,e,n,{type:"universal",restartOnError:!0})}};function $g(i){return i.map(t=>({type:t.type,resource:y.revive(t.resource),cId:t.cId}))}function h1(i){let t=new Wg;for(let e of i)t.processEvent(e);return t.coalesce()}function fA(i,t){return typeof t=="string"&&!t.startsWith(Ro)&&!qt(t)?{base:i,pattern:t}:t}function Vg(i,t,e){let n=[];for(let r of t)n.push(cm(fA(i,r),{ignoreCase:e}));return n}var Wg=class{constructor(){this.coalesced=new Set;this.mapPathToChange=new Map}toKey(t){return he?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=>_v(n.resource.fsPath,r,!he))?!1:(e.push(n.resource.fsPath),!0)).concat(t)}};function y1(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 v1(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 ju=class extends T{constructor(e,n){super();this.logService=e;this.options=n;this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidWatchError=this._register(new x);this.onDidWatchError=this._onDidWatchError.event;this.universalWatchRequests=[];this.universalWatchRequestDelayer=this._register(new ri(this.getRefreshWatchersDelay(this.universalWatchRequests.length)));this.nonRecursiveWatchRequests=[];this.nonRecursiveWatchRequestDelayer=this._register(new ri(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=sp(this.universalWatchRequests,r);return this.refreshUniversalWatchers(),A(()=>{o(),this.refreshUniversalWatchers()})}toWatchRequest(e,n){let r={path:this.toWatchPath(e),excludes:n.excludes,includes:n.includes,recursive:n.recursive,filter:n.filter,correlationId:n.correlationId};if(g1(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=>Le(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire($g(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=sp(this.nonRecursiveWatchRequests,r);return this.refreshNonRecursiveWatchers(),A(()=>{o(),this.refreshNonRecursiveWatchers()})}refreshNonRecursiveWatchers(){this.nonRecursiveWatchRequestDelayer.trigger(()=>this.doRefreshNonRecursiveWatchers(),this.getRefreshWatchersDelay(this.nonRecursiveWatchRequests.length)).catch(e=>Le(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire($g(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 Ht(e.fsPath)}toWatchPath(e){let n=this.toFilePath(e);return ey(n)}};var Ku=class extends qu{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){let e=t.add(new $l(tt.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)`))),Xi.toService(ky(e.getChannel("watcher")))}};import{watchFile as mA,unwatchFile as gA}from"fs";var Gu=class extends T{constructor(){super();this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._onDidLogMessage=this._register(new x);this.onDidLogMessage=this._onDidLogMessage.event;this._onDidWatchFail=this._register(new x);this.onDidWatchFail=this._onDidWatchFail.event;this.correlatedWatchRequests=new Map;this.nonCorrelatedWatchRequests=new Map;this.suspendedWatchRequests=this._register(new dt);this.suspendedWatchRequestsWithPolling=new Set;this.updateWatchersDelayer=this._register(new ri(this.getUpdateWatchersDelay()));this.suspendedWatchRequestPollingInterval=5007;this.joinWatch=new pe;this.verboseLogging=!1;this._register(this.onDidWatchFail(e=>this.suspendWatchRequest({id:this.computeId(e),correlationId:this.isCorrelated(e)?e.correlationId:void 0,path:e.path})))}isCorrelated(e){return zu(e)}computeId(e){return this.isCorrelated(e)?e.correlationId:Wt(e)}async watch(e){this.joinWatch.isSettled||this.joinWatch.complete(),this.joinWatch=new pe;try{this.correlatedWatchRequests.clear(),this.nonCorrelatedWatchRequests.clear();for(let n of e)this.isCorrelated(n)?this.correlatedWatchRequests.set(n.correlationId,n):this.nonCorrelatedWatchRequests.set(this.computeId(n),n);for(let[n]of this.suspendedWatchRequests)!this.nonCorrelatedWatchRequests.has(n)&&!this.correlatedWatchRequests.has(n)&&(this.suspendedWatchRequests.deleteAndDispose(n),this.suspendedWatchRequestsWithPolling.delete(n));return await this.updateWatchers(!1)}finally{this.joinWatch.complete()}}updateWatchers(e){let n=[];for(let[r,o]of[...this.nonCorrelatedWatchRequests,...this.correlatedWatchRequests])this.suspendedWatchRequests.has(r)||n.push(o);return this.updateWatchersDelayer.trigger(()=>this.doWatch(n),e?this.getUpdateWatchersDelay():0).catch(r=>Le(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 z;this.suspendedWatchRequests.set(e.id,n),await this.joinWatch.p,!n.isDisposed&&(this.monitorSuspendedWatchRequest(e,n),this.updateWatchers(!0))}resumeWatchRequest(e){this.suspendedWatchRequests.deleteAndDispose(e.id),this.suspendedWatchRequestsWithPolling.delete(e.id),this.updateWatchers(!1)}monitorSuspendedWatchRequest(e,n){this.doMonitorWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher to monitor ${e.path}`),this.suspendedWatchRequestsWithPolling.delete(e.id)):(this.doMonitorWithNodeJS(e,n),this.suspendedWatchRequestsWithPolling.add(e.id))}doMonitorWithExistingWatcher(e,n){let r=this.recursiveWatcher?.subscribe(e.path,(o,s)=>{n.isDisposed||(o?this.monitorSuspendedWatchRequest(e,n):s?.type===1&&this.onMonitoredPathAdded(e))});return r?(n.add(r),!0):!1}doMonitorWithNodeJS(e,n){let r=!1,o=(s,a)=>{if(n.isDisposed)return;let l=this.isPathNotFound(s),c=this.isPathNotFound(a),u=r;r=l,!l&&(c||u)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{mA(e.path,{persistent:!1,interval:this.suspendedWatchRequestPollingInterval},o)}catch(s){this.warn(`fs.watchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}n.add(A(()=>{this.trace(`stopping fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{gA(e.path,o)}catch(s){this.warn(`fs.unwatchFile() failed with error ${s} on path ${e.path} (correlationId: ${e.correlationId})`)}}))}onMonitoredPathAdded(e){this.trace(`detected ${e.path} exists again, resuming watcher (correlationId: ${e.correlationId})`);let n={resource:y.file(e.path),type:1,cId:e.correlationId};this._onDidChangeFile.fire([n]),this.traceEvent(n,e),this.resumeWatchRequest(e)}isPathNotFound(e){return e.ctimeMs===0&&e.ino===0}async stop(){this.suspendedWatchRequests.clearAndDisposeAll(),this.suspendedWatchRequestsWithPolling.clear()}traceEvent(e,n){if(this.verboseLogging){let r=` >> normalized ${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`;this.traceWithCorrelation(r,n)}}traceWithCorrelation(e,n){this.verboseLogging&&this.trace(`${e}${typeof n.correlationId=="number"?` <${n.correlationId}> `:""}`)}requestToString(e){return`${e.path} (excludes: ${e.excludes.length>0?e.excludes:"<none>"}, includes: ${e.includes&&e.includes.length>0?JSON.stringify(e.includes):"<all>"}, filter: ${v1(e.filter)}, correlationId: ${typeof e.correlationId=="number"?e.correlationId:"<none>"})`}async setVerboseLogging(e){this.verboseLogging=e}};import{watch as hA,promises as yA}from"fs";var Ju=class i extends T{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 qi({maxWorkChunkSize:100,throttleDelay:200,maxBufferedWork:1e4},e=>this.onDidFilesChange(e)));this.fileChangesAggregator=this._register(new Rl(e=>this.handleFileChanges(e),i.FILE_CHANGES_HANDLER_DELAY));this.cts=new Ke;this.realPath=new we(async()=>{let e=this.request.path;try{e=await Ce.realpath(this.request.path),this.request.path!==e&&this.trace(`correcting a path to watch that seems to be a symbolic link (original: ${this.request.path}, real: ${e})`)}catch{}return e});this._isReusingRecursiveWatcher=!1;this.didFail=!1;let l=!he;this.excludes=Vg(this.request.path,this.request.excludes,l),this.includes=this.request.includes?Vg(this.request.path,this.request.includes,l):void 0,this.filter=zu(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 yA.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 z;return this.doWatchWithExistingWatcher(e,n)?(this.trace(`reusing an existing recursive watcher for ${this.request.path}`),this._isReusingRecursiveWatcher=!0):(this._isReusingRecursiveWatcher=!1,await this.doWatchWithNodeJS(e,n)),n}doWatchWithExistingWatcher(e,n){if(e)return!1;let r=y.file(this.request.path),o=this.recursiveWatcher?.subscribe(this.request.path,async(s,a)=>{n.isDisposed||(s?await gh(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(qe&&Hn(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 Ke(this.cts.token);n.add(A(()=>o.dispose(!0)));let s=new z;n.add(s);try{let a=y.file(this.request.path),l=be(r),c=hA(r);s.add(A(()=>{c.removeAllListeners(),c.close()})),this.trace(`Started watching: '${r}'`);let u=new Set;if(e)try{for(let f of await Ce.readdir(r))u.add(f)}catch(f){this.error(f)}if(o.token.isCancellationRequested)return;let d=new Map;s.add(A(()=>{for(let[,f]of d)f.dispose();d.clear()})),c.on("error",(f,g)=>{o.token.isCancellationRequested||(this.error(`Failed to watch ${r} for changes using fs.watch() (${f}, ${g})`),this.notifyWatchFailed())}),c.on("change",(f,g)=>{if(o.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${f}"] ${g}`);let h="";if(g&&(h=g.toString(),qe&&(h=zs(h))),!(!h||f!=="change"&&f!=="rename"))if(e)if(f==="rename"){d.get(h)?.dispose();let v=setTimeout(async()=>{if(d.delete(h),Vi(h,l,!he)&&!await Ce.exists(r)){this.onWatchedPathDeleted(a);return}if(o.token.isCancellationRequested)return;let S=await this.existsChildStrictCase(B(r,h));if(o.token.isCancellationRequested)return;let _;S?u.has(h)?_=0:(_=1,u.add(h)):(u.delete(h),_=2),this.onFileChange({resource:ee(a,h),type:_,cId:this.request.correlationId})},i.FILE_DELETE_HANDLER_DELAY);d.set(h,A(()=>clearTimeout(v)))}else{let v;u.has(h)?v=0:(v=1,u.add(h)),this.onFileChange({resource:ee(a,h),type:v,cId:this.request.correlationId})}else if(f==="rename"||!Vi(h,l,!he)){let v=setTimeout(async()=>{let S=await Ce.exists(r);o.token.isCancellationRequested||(S?(this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0),s.add(await this.doWatch(!1))):this.onWatchedPathDeleted(a))},i.FILE_DELETE_HANDLER_DELAY);s.clear(),s.add(A(()=>clearTimeout(v)))}else this.onFileChange({resource:a,type:0,cId:this.request.correlationId},!0)})}catch(a){if(o.token.isCancellationRequested)return;this.error(`Failed to watch ${r} for changes using fs.watch() (${a.toString()})`),this.notifyWatchFailed()}}onWatchedPathDeleted(e){this.warn("Watcher shutdown because watched path got deleted"),this.onFileChange({resource:e,type:2,cId:this.request.correlationId},!0),this.fileChangesAggregator.flush(),this.notifyWatchFailed()}onFileChange(e,n=!1){this.cts.token.isCancellationRequested||(this.verboseLogging&&this.traceWithCorrelation(`${e.type===1?"[ADDED]":e.type===2?"[DELETED]":"[CHANGED]"} ${e.resource.fsPath}`),!n&&this.excludes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (excluded) ${e.resource.fsPath}`):!n&&this.includes&&this.includes.length>0&&!this.includes.some(r=>r(e.resource.fsPath))?this.verboseLogging&&this.traceWithCorrelation(` >> ignored (not included) ${e.resource.fsPath}`):this.fileChangesAggregator.work(e))}handleFileChanges(e){let n=h1(e),r=[];for(let s of n){if(y1(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(he)return Ce.exists(e);try{let n=be(e);return(await Ce.readdir(de(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 Qu=class extends Gu{constructor(e){super();this.recursiveWatcher=e;this.onDidError=X.None;this._watchers=new Map;this.worker=this._register(new ur)}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&&dm(s.request.excludes,o.excludes)&&dm(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 qi({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 he?e:e.toLowerCase()}startWatching(e){let n=new Ju(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 Yu=class extends Hu{constructor(t,e,n){super(t,e,n),this.init()}createWatcher(t){return t.add(new Qu(void 0))}};var Xu=class i extends ju{constructor(){super(...arguments);this.onDidChangeCapabilities=X.None;this.resourceLocks=new Re(e=>vt.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,he&&(this._capabilities|=1024)),this._capabilities}async stat(e){try{let{stat:n,symbolicLink:r}=await bt.stat(this.toFilePath(e)),o;return(n.mode&128)===0&&(o=2),(n.mode&Bg.S_IXUSR||n.mode&Bg.S_IXGRP||n.mode&Bg.S_IXOTH)&&(o=(o??0)|4),{type:this.toType(n,r),ctime:n.birthtime.getTime(),mtime:n.mtime.getTime(),size:n.size,permissions:o}}catch(n){throw this.toFileSystemProviderError(n)}}async statIgnoreError(e){try{return await this.stat(e)}catch{return}}async realpath(e){let n=this.toFilePath(e);return Ce.realpath(n)}async readdir(e){try{let n=await Ce.readdir(this.toFilePath(e),{withFileTypes:!0}),r=[];return await Promise.all(n.map(async o=>{try{let s;o.isSymbolicLink()?s=(await this.stat(ee(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 wl;return this.resourceLocks.set(e,o),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - new resource lock created (${n})`),A(()=>{this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock dispose() (${n})`),this.resourceLocks.get(e)===o&&(this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock removed from resource-lock map (${n})`),this.resourceLocks.delete(e)),this.traceLock(`[Disk FileSystemProvider]: createResourceLock() - resource lock barrier open() (${n})`),o.open()})}async readFile(e,n){let r;try{n?.atomic&&(this.traceLock(`[Disk FileSystemProvider]: atomic read operation started (${this.toFilePath(e)})`),r=await this.createResourceLock(e));let o=this.toFilePath(e);return await Ri.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=jn(s=>k.concat(s.map(a=>k.wrap(a))).buffer);return Vu(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,ee(mn(e),`${_e(e)}${r.atomic.postfix}`),n,r):this.doWriteFile(e,n,r)}async canWriteFileAtomic(e){try{let n=this.toFilePath(e),{symbolicLink:r}=await bt.stat(n);if(r)return!1}catch{}return!0}async doWriteFileAtomic(e,n,r,o){let s=new z;try{s.add(await this.createResourceLock(e)),s.add(await this.createResourceLock(n)),await this.doWriteFile(n,r,{...o,create:!0,overwrite:!0},!0);try{await this.rename(n,e,{overwrite:!0})}catch(a){try{await this.delete(n,{recursive:!1,useTrash:!1,atomic:!1})}catch{}throw a}}finally{s.dispose()}}async doWriteFile(e,n,r,o){let s;try{let a=this.toFilePath(e);if(!r.create||!r.overwrite){if(await Ce.exists(a)){if(!r.overwrite)throw fe(m(2428,null),"EntryExists")}else if(!r.create)throw fe(m(2431,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;Qn(n)&&!r&&(s=await this.createResourceLock(e));let a;try{if(Qn(n)&&n.unlock)try{let{stat:l}=await bt.stat(o);l.mode&128||await Ri.chmod(o,l.mode|128)}catch(l){l.code!=="ENOENT"&&this.logService.trace(l)}if(H&&Qn(n)&&!n.append)try{a=await Ce.open(o,"r+"),await Ce.ftruncate(a,0)}catch(l){if(l.code!=="ENOENT"&&this.logService.trace(l),typeof a=="number"){try{await Ce.close(a)}catch(c){this.logService.trace(c)}a=void 0}}typeof a!="number"&&(a=await Ce.open(o,Qn(n)?n.append?"a":"w":"r"))}catch(l){throw s?.dispose(),Qn(n)?await this.toFileSystemProviderWriteError(e,l):this.toFileSystemProviderError(l)}if(this.mapHandleToPos.set(a,0),Qn(n)&&this.writeHandles.set(a,e),s){let l=this.mapHandleToLock.get(a);this.traceLock(`[Disk FileSystemProvider]: open() - storing lock for handle ${a} (${o})`),this.mapHandleToLock.set(a,s),l&&(this.traceLock(`[Disk FileSystemProvider]: open() - disposing a previous lock that was still stored on same handle ${a} (${o})`),l.dispose())}return a}async close(e){let n=this.mapHandleToLock.get(e);try{if(this.mapHandleToPos.delete(e),this.writeHandles.delete(e)&&i.canFlush)try{await Ce.fdatasync(e)}catch(r){i.configureFlushOnWrite(!1),this.logService.error(r)}return await Ce.close(e)}catch(r){throw this.toFileSystemProviderError(r)}finally{n&&(this.mapHandleToLock.get(e)===n&&(this.traceLock(`[Disk FileSystemProvider]: close() - resource lock removed from handle-lock map ${e}`),this.mapHandleToLock.delete(e)),this.traceLock(`[Disk FileSystemProvider]: close() - disposing lock for handle ${e}`),n.dispose())}}async read(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await Ce.read(e,r,o,s,a)).bytesRead}catch(c){throw this.toFileSystemProviderError(c)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,r){let o=this.mapHandleToPos.get(e);typeof o=="number"&&(typeof n=="number"||(typeof r=="number"?this.mapHandleToPos.set(e,o+r):this.mapHandleToPos.delete(e)))}async write(e,n,r,o,s){return vy(()=>this.doWrite(e,n,r,o,s),100,3)}async doWrite(e,n,r,o,s){let a=this.normalizePos(e,n),l=null;try{l=(await Ce.write(e,r,o,s,a)).bytesWritten}catch(c){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),c)}finally{this.updatePos(e,a,l)}return l}async mkdir(e){try{await Ri.mkdir(this.toFilePath(e))}catch(n){throw this.toFileSystemProviderError(n)}}async delete(e,n){try{let r=this.toFilePath(e);if(n.recursive){let o;n?.atomic!==!1&&n.atomic.postfix&&(o=B(de(r),`${be(r)}${n.atomic.postfix}`)),await Ce.rm(r,1,o)}else try{await Ri.unlink(r)}catch(o){if(o.code==="EPERM"||o.code==="EISDIR"){let s=!1;try{let{stat:a,symbolicLink:l}=await bt.stat(r);s=a.isDirectory()&&!l}catch{}if(s)await Ri.rmdir(r);else throw o}else throw o}}catch(r){throw this.toFileSystemProviderError(r)}}async rename(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"move",r.overwrite),await Ce.rename(o,s)}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2432,null,be(o),be(de(s)),a.toString()))),this.toFileSystemProviderError(a)}}async copy(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n);if(o!==s)try{await this.validateMoveCopy(e,n,"copy",r.overwrite),await Ce.copy(o,s,{preserveSymlinks:!0})}catch(a){throw(a.code==="EINVAL"||a.code==="EBUSY"||a.code==="ENAMETOOLONG")&&(a=new Error(m(2426,null,be(o),be(de(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=Vi(s,a,!0)),l){if(r==="copy")throw fe(m(2427,null),"EntryExists");if(r==="move")return}let u=await this.statIgnoreError(e);if(!u)throw fe(m(2430,null),"EntryNotFound");let d=await this.statIgnoreError(n);if(d){if(!o)throw fe(m(2429,null),"EntryExists");(u.type&1)!==0&&(d.type&1)!==0||await this.delete(n,{recursive:!0,useTrash:!1,atomic:!1})}}async cloneFile(e,n){return this.doCloneFile(e,n,!1)}async doCloneFile(e,n,r){let o=this.toFilePath(e),s=this.toFilePath(n),a=!!(this.capabilities&1024);if(Vi(o,s,!a))return;let l=new z;try{l.add(await this.createResourceLock(e)),l.add(await this.createResourceLock(n)),r&&await Ri.mkdir(de(s),{recursive:!0}),await Ri.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 Ku(o=>e(o),o=>n(o),r)}createNonRecursiveWatcher(e,n,r){return new Yu(o=>e(o),o=>n(o),r)}toFileSystemProviderError(e){if(e instanceof so)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 fe(n,r)}async toFileSystemProviderWriteError(e,n){let r=this.toFileSystemProviderError(n);if(e&&r.code==="NoPermissions")try{let{stat:o}=await bt.stat(this.toFilePath(e));o.mode&128||(r=fe(n,"EntryWriteLocked"))}catch(o){this.logService.trace(o)}return r}};import*as I1 from"fs";var b1=[{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(`;
`)},{version:5,sql:"ALTER TABLE turns ADD COLUMN checkpoint_ref TEXT"}];function dn(i,t){return new Promise((e,n)=>{i.exec(t,r=>r?n(r):e())})}function _t(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 qr(i,t,e){return new Promise((n,r)=>{i.get(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function Ss(i,t,e){return new Promise((n,r)=>{i.all(t,e,(o,s)=>{if(o)return r(o);n(s)})})}function Hg(i){return new Promise((t,e)=>{i.close(n=>n?e(n):t())})}function vA(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 bA(i,t){await dn(i,"PRAGMA foreign_keys = ON");let n=(await qr(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 dn(i,"BEGIN TRANSACTION");try{for(let o of r)await dn(i,o.sql),await dn(i,`PRAGMA user_version = ${o.version}`);await dn(i,"COMMIT")}catch(o){throw await dn(i,"ROLLBACK"),o}}}var Zu=class i{constructor(t,e=b1){this._path=t;this._migrations=e;this._fileEditSequencer=new ft;this._metadataSequencer=new ft;this._pendingWrites=new Set}static async open(t,e=b1){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 I1.promises.mkdir(de(this._path),{recursive:!0});let t=await vA(this._path);try{await bA(t,this._migrations)}catch(e){throw await Hg(t),this._dbPromise=void 0,e}if(this._closed)throw await Hg(t),new Error("SessionDatabase has been disposed");return t})()),this._dbPromise)}async getAllTables(){let t=await this._ensureDb();return(await Ss(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 _t(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t])})}deleteTurn(t){return this._track(async()=>{let e=await this._ensureDb();await _t(e,"DELETE FROM turns WHERE id = ?",[t])})}setTurnEventId(t,e){return this._track(async()=>{let n=await this._ensureDb();await _t(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await _t(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 qr(e,"SELECT event_id FROM turns WHERE id = ?",[t]))?.event_id??void 0}async getNextTurnEventId(t){let e=await this._ensureDb();return(await qr(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 qr(t,"SELECT event_id FROM turns ORDER BY rowid LIMIT 1",[]))?.event_id??void 0}setTurnCheckpointRef(t,e){return this._track(async()=>{let n=await this._ensureDb();await _t(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await _t(n,"UPDATE turns SET checkpoint_ref = ? WHERE id = ?",[e,t])})}async getTurnCheckpointRef(t){let e=await this._ensureDb();return(await qr(e,"SELECT checkpoint_ref FROM turns WHERE id = ?",[t]))?.checkpoint_ref??void 0}async getPreviousCheckpointRef(t){let e=await this._ensureDb();return(await qr(e,`SELECT checkpoint_ref FROM turns
				WHERE rowid < (SELECT rowid FROM turns WHERE id = ?)
					AND checkpoint_ref IS NOT NULL
				ORDER BY rowid DESC LIMIT 1`,[t]))?.checkpoint_ref??void 0}async getAllCheckpointRefs(){let t=await this._ensureDb();return(await Ss(t,"SELECT checkpoint_ref FROM turns WHERE checkpoint_ref IS NOT NULL ORDER BY rowid",[])).map(n=>n.checkpoint_ref)}truncateFromTurn(t){return this._track(async()=>{let e=await this._ensureDb();await _t(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 _t(e,"DELETE FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteAllTurns(){return this._track(async()=>{let t=await this._ensureDb();await dn(t,"DELETE FROM turns")})}storeFileEdit(t){return this._track(()=>this._fileEditSequencer.queue(t.filePath,async()=>{let e=await this._ensureDb();await _t(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t.turnId]),await _t(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 Ss(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 Ss(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 Ss(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 qr(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?S1(r.before_content):void 0,afterContent:r.after_content?S1(r.after_content):void 0}})}async getMetadata(t){let e=await this._ensureDb();return(await qr(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 Ss(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 _t(n,"INSERT OR REPLACE INTO session_metadata (key, value) VALUES (?, ?)",[t,e])}))}remapTurnIds(t){return this._track(async()=>{let e=await this._ensureDb();await dn(e,"PRAGMA defer_foreign_keys = ON"),await dn(e,"BEGIN TRANSACTION");try{let n=[...t.keys()];if(n.length>0){let r=n.map(()=>"?").join(",");await _t(e,`DELETE FROM turns WHERE id NOT IN (${r})`,n)}for(let[r,o]of t)await _t(e,"UPDATE turns SET id = ? WHERE id = ?",[o,r]),await _t(e,"UPDATE file_edits SET turn_id = ? WHERE turn_id = ?",[o,r]);await dn(e,"COMMIT")}catch(n){throw await dn(e,"ROLLBACK"),n}})}async whenIdle(){for(;this._pendingWrites.size>0;)await Promise.allSettled([...this._pendingWrites])}async vacuumInto(t){let e=await this._ensureDb();await _t(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=>Hg(t)).catch(()=>{})||!0)}dispose(){this.close()}};function S1(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 qg=class extends cl{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 Zu(n);return this.liveDatabases.add(r),r}destroyReferencedObject(e,n){this.liveDatabases.delete(n),n.dispose()}},Is=class{constructor(t,e,n,r){this._fileService=e;this._logService=n;this._onWillDeleteSessionData=new x;this._basePath=y.joinPath(t,"agentSessionData"),this._databases=new qg(r??(o=>y.joinPath(this._basePath,o,pa).fsPath),this._logService)}get onWillDeleteSessionData(){return this._onWillDeleteSessionData.event}getSessionDataDir(t){return this.getSessionDataDirById(q.id(t))}getSessionDataDirById(t){let e=t.replace(/[^a-zA-Z0-9_.-]/g,"-");return y.joinPath(this._basePath,e)}_sanitizedSessionKey(t){return q.id(t).replace(/[^a-zA-Z0-9_.-]/g,"-")}openDatabase(t){return this._databases.acquire(this._sanitizedSessionKey(t))}async tryOpenDatabase(t){let e=this._sanitizedSessionKey(t),n=y.joinPath(this._basePath,e,pa);if(await this._fileService.exists(n))return this._databases.acquire(e)}async deleteSessionData(t){let e=this.getSessionDataDir(t),n=[];try{this._onWillDeleteSessionData.fire({session:t,waitUntil:r=>{n.push(r)}})}catch(r){this._logService.warn(`[SessionDataService] onWillDeleteSessionData listener threw synchronously: ${e.toString()}`,r)}if(n.length>0){let r=await Promise.allSettled(n);for(let o of r)o.status==="rejected"&&this._logService.warn(`[SessionDataService] onWillDeleteSessionData waitUntil rejected: ${e.toString()}`,o.reason)}try{await this._fileService.exists(e)&&(await this._fileService.del(e,{recursive:!0}),this._logService.trace(`[SessionDataService] Deleted session data: ${e.toString()}`))}catch(r){this._logService.warn(`[SessionDataService] Failed to delete session data: ${e.toString()}`,r)}}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}}};Is=w([C(1,Me),C(2,M)],Is);var ep=class i{static async checkSandboxDependenciesWith(t,e=he){if(!e)return;let[n,r]=await Promise.all([t("bwrap"),t("socat")]);return{bubblewrapInstalled:!!n,socatInstalled:!!r}}checkSandboxDependencies(){return i.checkSandboxDependenciesWith(Fl)}async getWindowsMxcFilesystemPolicy(){if(!H)return;let{getAvailableToolsPolicy:t,getUserProfilePolicy:e}=await import("@microsoft/mxc-sdk"),n=t(process.env,{containerType:"processcontainer"}),r=e(),o=await this._getPSHome();return{readonlyPaths:[...new Set([...n.readonlyPaths,...r.readonlyPaths,...this._getTempReadPaths(),...o?[o]:[]])],readwritePaths:[...new Set([...n.readwritePaths,...r.readwritePaths])]}}async getWindowsMxcEnvironment(){if(!H)return;let t=[];for(let s of["SystemRoot","PATH","ComSpec","PATHEXT","PSModulePath"]){let a=gn(process.env,s);typeof a=="string"&&a&&t.push(`${s}=${a}`)}let e=gn(process.env,"USERPROFILE");typeof e=="string"&&e&&t.push(`USERPROFILE=${e}`);let n=gn(process.env,"APPDATA");typeof n=="string"&&n&&t.push(`APPDATA=${n}`);let r=this._getLocalAppData();typeof r=="string"&&r&&t.push(`LOCALAPPDATA=${r}`);let o=await this._getPSHome();return o&&t.push(`PSHOME=${o}`),t}async _getPSHome(){let t=gn(process.env,"PSHOME");if(typeof t=="string"&&t)return t;let e=await Fl("pwsh")??await Fl("powershell");return e?se.dirname(e):void 0}_getLocalAppData(){let t=gn(process.env,"LOCALAPPDATA");return typeof t=="string"&&t?t:void 0}_getTempReadPaths(){let t=[];for(let e of["TMP","TEMP"]){let n=gn(process.env,e);typeof n=="string"&&n&&t.push(n)}return t}};var tp=class extends T{constructor(){super(...arguments);this.capabilities=1026;this._onDidChangeCapabilities=this._register(new x);this.onDidChangeCapabilities=this._onDidChangeCapabilities.event;this._onDidChangeFile=this._register(new x);this.onDidChangeFile=this._onDidChangeFile.event;this._authorityToConnection=new Map}registerAuthority(e,n){return this._authorityToConnection.set(e,n),A(()=>this._authorityToConnection.delete(e))}watch(){return T.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=mn(e),s=_e(e),l=(await this._listDirectory(e.authority,o)).find(c=>c.name===s);if(!l)throw fe(`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"?_r(o.data).buffer:k.fromString(o.data).buffer}catch(r){throw this._mapError(r,"EntryNotFound")}}async writeFile(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e);await o.resourceWrite({channel:je,uri:s.toString(),data:k.wrap(n).toString(),encoding:"utf-8"})}catch(s){throw this._mapError(s,"NoPermissions")}}async mkdir(){throw fe("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({channel:je,uri:o.toString(),recursive:n.recursive})}catch(o){throw this._mapError(o,"NoPermissions")}}async rename(e,n,r){let o=this._getConnection(e.authority);try{let s=this._decodeUri(e),a=this._decodeUri(n);await o.resourceMove({channel:je,source:s.toString(),destination:a.toString(),failIfExists:!r.overwrite})}catch(s){throw this._mapError(s,"NoPermissions")}}async requestResourceAccess(e,n){let r=this._getConnection(e.authority);if(!r.resourceRequest)throw fe(`Connection for ${e.authority} does not support resourceRequest`,"Unavailable");let o=this._decodeUri(e);try{await r.resourceRequest({channel:je,uri:o.toString(),read:n.read,write:n.write})}catch(s){throw this._mapError(s,"NoPermissions")}}_getConnection(e){let n=this._authorityToConnection.get(e);if(!n)throw fe(`No connection for authority: ${e}`,"Unavailable");return n}_mapError(e,n){return e instanceof V&&e.code===Ne.PermissionDenied?fe(e.message,"NoPermissions"):fe(e instanceof Error?e.message:String(e),n)}async _listDirectory(e,n){let r=this._getConnection(e);try{let o=this._decodeUri(n);return(await r.resourceList(o)).entries}catch(o){throw this._mapError(o,"Unavailable")}}};var np=class extends tp{_decodeUri(t){return cI(t)}};var _1="agentHostClientResource";function C1(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 SA=20,_s=class{constructor(t,e,n,r=SA){this._fileService=e;this._logService=n;this._sequencer=new ft;this._cachedNonces=new Map;this._lruOrder=[];this._cacheLoaded=!1;this._basePath=y.joinPath(t,"agentPlugins"),this._cachePath=y.joinPath(this._basePath,"cache.json"),this._maxPlugins=r}get basePath(){return this._basePath}async syncCustomizations(t,e,n){return await this._ensureCacheLoaded(),await Promise.all(e.map(o=>this._sequencer.queue(o.uri,async()=>{try{let s=await this._syncPlugin(t,o),a={customization:o,enabled:!0,status:"loaded"};return n?.(a),{customization:a,pluginDir:s}}catch(s){let a=s instanceof Error?s.message:String(s);this._logService.error(`[AgentPluginManager] Failed to sync plugin ${o.uri}: ${a}`);let l={customization:o,enabled:!0,status:"error",statusMessage:a};return n?.(l),{customization:l}}})))}async _syncPlugin(t,e){let n=Bo(y.parse(e.uri),t),r=this._keyForUri(e.uri),o=y.joinPath(this._basePath,r);return e.nonce&&this._cachedNonces.get(e.uri)===e.nonce?(this._touchLru(e.uri),this._logService.trace(`[AgentPluginManager] Nonce match for ${e.uri}, skipping copy`),o):(this._logService.info(`[AgentPluginManager] Syncing plugin: ${e.uri} \u2192 ${o.toString()}`),await this._fileService.copy(n,o,!0),e.nonce&&this._cachedNonces.set(e.uri,e.nonce),this._touchLru(e.uri),await this._evictIfNeeded(),await this._persistCache(),o)}_keyForUri(t){return t.replace(/[^a-zA-Z0-9]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").substring(0,128)}_touchLru(t){let e=this._lruOrder.indexOf(t);e!==-1&&this._lruOrder.splice(e,1),this._lruOrder.push(t)}async _evictIfNeeded(){for(;this._lruOrder.length>this._maxPlugins;){let t=this._lruOrder.shift();if(!t)break;this._cachedNonces.delete(t);let e=this._keyForUri(t),n=y.joinPath(this._basePath,e);this._logService.info(`[AgentPluginManager] Evicting plugin: ${t}`);try{await this._fileService.del(n,{recursive:!0})}catch(r){this._logService.warn(`[AgentPluginManager] Failed to evict plugin: ${t}`,r)}}}async _ensureCacheLoaded(){if(!this._cacheLoaded){this._cacheLoaded=!0;try{if(!await this._fileService.exists(this._cachePath))return;let t=await this._fileService.readFile(this._cachePath),e=JSON.parse(t.value.toString());if(!Array.isArray(e))return;for(let n of e)typeof n.uri=="string"&&typeof n.nonce=="string"&&(this._cachedNonces.set(n.uri,n.nonce),this._lruOrder.push(n.uri));this._logService.trace(`[AgentPluginManager] Loaded ${e.length} cache entries from disk`)}catch(t){this._logService.warn("[AgentPluginManager] Failed to load cache from disk",t)}}}async _persistCache(){try{let t=[];for(let e of this._lruOrder){let n=this._cachedNonces.get(e);n&&t.push({uri:e,nonce:n})}await this._fileService.createFolder(this._basePath),await this._fileService.writeFile(this._cachePath,k.fromString(JSON.stringify(t)))}catch(t){this._logService.warn("[AgentPluginManager] Failed to persist cache to disk",t)}}};_s=w([C(1,Me),C(2,M)],_s);IA().catch(i=>{console.error(i),process.exit(1)});async function IA(){let i;Vl(process)?i=new Ks:i=new Wl("agentHost");let t=new z,e={_serviceBrand:void 0,...At},n=new Nu(Mg(process.argv,c1),e),r=new Wu(Lv(n),n.logsHome);i.registerChannel("agentHostLogger",new $u(r,()=>p1));let o=r.createLogger("agenthost",{name:m(1910,null)}),s=t.add(new Du),a=t.add(new Ou(s)),l=new Uu(o,[a]);!n.isBuilt&&Dv&&t.add(Ov(l)),l.info("Agent Host process started successfully");let c=t.add(new Hr(l));t.add(c.registerProvider(ie.file,t.add(new Xu(l)))),t.add(PI(c));let u=new Is(y.file(n.userDataPath),c,l),d=ee(n.appSettingsHome,"globalStorage","agent-host-config.json"),f=await WS({environmentService:n,productService:e,fileService:c,loggerService:r,logService:l,disposables:t}),g,h;try{let P=new wr;P.set(Dr,n),P.set(M,l),P.set(Me,c),P.set(gt,u),P.set(Et,e),P.set(Pr,f),h=new co(P),P.set(su,h.createInstance(ou)),P.set(iu,new ep);let J=h.createInstance(To);P.set(Qt,J);let E=t.add(h.createInstance(wo));P.set(Tn,E);let L=h.createInstance(Xo,void 0);P.set(Zo,L);let O=t.add(h.createInstance(ps));P.set(_u,O);let K=h.createInstance(ts);P.set(ns,K);let te=t.add(h.createInstance(ms));P.set(Hd,te),g=new $d(l,c,u,e,J,E,d,f);let ge=new _s(y.file(n.userDataPath),c,l);P.set(jo,ge);let Cs=t.add(new Or(l));P.set(Ac,Cs),P.set(So,g.terminalManager),P.set(Ye,g.configurationService),P.set(_d,g.completionsService),g.registerProvider(h.createInstance(me)),process.env[Gs]&&g.registerProvider(h.createInstance(fs))}catch(P){throw l.error("Failed to create AgentService",P),P}let v=Xi.fromService(g,t);i.registerChannel("agentHost",v);let S=t.add(new np);if(t.add(c.registerProvider(Bm,S)),i instanceof Ks){let P=new Map;t.add(i.onDidAddConnection(J=>{let E=J.ctx;if(typeof E!="string"||!E)return;let L=i.getChannel(_1,K=>K.ctx===E),O=C1(L);P.set(J,S.registerAuthority(E,O))})),t.add(i.onDidRemoveConnection(J=>{let E=P.get(J);E&&(E.dispose(),P.delete(J))}))}let _=t.add(new x),b,I={onDidChangeConnectionCount:_.event,async startWebSocketServer(){if(b)return b;let P=H?`\\\\.\\pipe\\vscode-agent-host-${j().replace(/-/g,"")}`:B(el.tmpdir(),`vscode-agent-host-${j().replace(/-/g,"")}.sock`),J=t.add(await Xa.create({socketPath:P},l,{instantiationService:h,logsHome:n.logsHome})),E=t.add(new wi(g,g.stateManager,J,{defaultDirectory:y.file(el.homedir()).toString(),completionTriggerCharacters:g.completionTriggerCharacters,otlpLogEmitter:s},S,l));return t.add(E.onDidChangeConnectionCount(L=>_.fire(L))),l.info(`[AgentHost] Dynamic WebSocket server listening on ${P}`),b={socketPath:P},b},async getInspectInfo(P){let J=Za.url();if(!J&&P){try{Za.open(0,"127.0.0.1",!1)}catch(E){l.error("[AgentHost] Failed to open inspector",E);return}J=Za.url()}if(J)try{let E=new URL(J);if(E.protocol!=="ws:"){l.warn(`[AgentHost] Unexpected inspector URL: ${J}`);return}let L=Number(E.port),O=E.pathname.replace(/^\/+/,"");if(!Number.isInteger(L)||!O){l.warn(`[AgentHost] Unexpected inspector URL: ${J}`);return}let K=E.hostname==="0.0.0.0"?"127.0.0.1":E.hostname==="::"?"::1":E.hostname,te=K.includes(":")?`[${K}]`:K;return{host:K,port:L,devtoolsUrl:`devtools://devtools/bundled/js_app.html?v8only=true&ws=${te}:${E.port}/${O}`}}catch{l.warn(`[AgentHost] Unexpected inspector URL: ${J}`);return}}},R=Xi.fromService(I,t);i.registerChannel("agentHostConnectionTracker",R),_A(g,S,h,n.logsHome,l,s,t,P=>_.fire(P)).catch(P=>{l.error("Failed to start WebSocket server",P)}),process.once("exit",()=>{g.dispose(),l.dispose(),t.dispose()})}async function _A(i,t,e,n,r,o,s,a){let l=process.env.VSCODE_AGENT_HOST_PORT,c=process.env.VSCODE_AGENT_HOST_SOCKET_PATH;if(!l&&!c)return;let u=process.env.VSCODE_AGENT_HOST_CONNECTION_TOKEN,d=process.env.VSCODE_AGENT_HOST_HOST||"localhost",f=s.add(await Xa.create(c?{socketPath:c,connectionTokenValidate:u?v=>v===u:void 0}:{port:parseInt(l,10),host:d,connectionTokenValidate:u?v=>v===u:void 0},r,{instantiationService:e,logsHome:n})),g=s.add(new wi(i,i.stateManager,f,{defaultDirectory:y.file(el.homedir()).toString(),completionTriggerCharacters:i.completionTriggerCharacters,otlpLogEmitter:o},t,r));s.add(g.onDidChangeConnectionCount(a)),await f.whenListening;let h=c??`${d}:${f.boundPort??l}`;r.info(`[AgentHost] WebSocket server listening on ${h}`),console.log(`Agent host server listening on ${h}`)}
//# sourceMappingURL=https://main.vscode-cdn.net/sourcemaps/8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e/core/vs/platform/agentHost/node/agentHostMain.js.map
