/*!--------------------------------------------------------
 * 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 jm=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 dr(i){ip.onUnexpectedError(i)}function Me(i){jr(i)||ip.onUnexpectedError(i)}function Jm(i){jr(i)||ip.onUnexpectedExternalError(i)}var tl="Canceled";function jr(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}},Gm=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 Xm(i){return i[Math.floor(Math.random()*i.length)]}var Zm;(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})(Zm||={});function eh(i,t){return(e,n)=>t(i(e),i(n))}var th=(i,t)=>i-t;var Ym=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||Zm.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 dp=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 dp(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 dh,Ts=class{constructor(){this[dh]="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}[(dh=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)}},cp=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 cp{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(),Me(new Te("Assertion Failed"))}}function Ee(i){return typeof i=="string"}function De(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function ch(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 cr(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(!De(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 Oe(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 d(E,L){let O=0;for(let j of E)if(L(j,O++))return!0;return!1}J.some=d;function u(E,L){let O=0;for(let j of E)if(!L(j,O++))return!1;return!0}J.every=u;function c(E,L){for(let O of E)if(L(O))return O}J.find=c;function*f(E,L){for(let O of E)L(O)&&(yield O)}J.filter=f;function*m(E,L){let O=0;for(let j of E)yield L(j,O++)}J.map=m;function*h(E,L){let O=0;for(let j of E)yield*L(j,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 j=O;for(let te of E)j=L(j,te);return j}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 j=E[Symbol.iterator]();for(let te=0;te<L;te++){let me=j.next();if(me.done)return[O,J.empty()];O.push(me.value)}return[O,{[Symbol.iterator](){return j}}]}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,d=[...this.livingDisposables.values()].filter(c=>c.source!==null&&!this.getRootParent(c,l).isSingleton);if(d.length===0)return;let u=new Set(d.map(c=>c.value));if(n=d.filter(c=>!(c.parent&&u.has(c.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(l){function d(c,f){for(;c.length>0&&f.some(m=>typeof m=="string"?m===c[0]:c[0].match(m));)c.shift()}let u=l.source.split(`
`).map(c=>c.trim().replace("at ","")).filter(c=>c!=="");return d(u,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),u.reverse()}let o=new ol;for(let l of n){let d=r(l);for(let u=0;u<=d.length;u++)o.add(d.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 d=r(l),u=[];for(let c=0;c<d.length;c++){let f=d[c];f=`(shared with ${o.get(d.slice(0,c+1).join(`
`)).size}/${n.length} leaks) at ${f}`;let h=o.get(d.slice(0,c).join(`
`)),v=oh([...h].map(S=>r(S)[c]),S=>S);delete v[d[c]];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 pt(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 gh(...i){let t=A(()=>pt(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{pt(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&&Me(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 dl=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 ut=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{pt(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 mh(i,t){return i.then(e=>(t.isDisposed?e.dispose():t.add(e),e))}var cl=class extends ut{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 g(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 mr="en",ks=!1,As=!1,Ps=!1,vh=!1,bh=!1,fp=!1,U1=!1,Sh=!1,F1=!1,W1=!1,pl,fl=mr,yh=mr,$1,Nn,Un=globalThis,xt;typeof Un.vscode<"u"&&typeof Un.vscode.process<"u"?xt=Un.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(xt=process);var Ih=typeof xt?.versions?.electron=="string",V1=Ih&&xt?.type==="renderer";if(typeof xt=="object"){ks=xt.platform==="win32",As=xt.platform==="darwin",Ps=xt.platform==="linux",vh=Ps&&!!xt.env.SNAP&&!!xt.env.SNAP_REVISION,U1=Ih,F1=!!xt.env.CI||!!xt.env.BUILD_ARTIFACTSTAGINGDIRECTORY||!!xt.env.GITHUB_WORKSPACE,pl=mr,fl=mr;let i=xt.env.VSCODE_NLS_CONFIG;if(i)try{let t=JSON.parse(i);pl=t.userLocale,yh=t.osLocale,fl=t.resolvedLanguage||mr,$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()||mr,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 gl=0;As?gl=1:ks?gl=3:Ps&&(gl=2);var H=ks,qe=As,he=Ps,Ch=vh,Th=bh;var bt=fp,B1=fp&&typeof Un.importScripts=="function",xh=B1?Un.origin:void 0;var gp=gl,fn=Nn,gr=fl,H1;(n=>{function i(){return gr}n.value=i;function t(){return gr.length===2?gr==="en":gr.length>=3?gr[0]==="e"&&gr[1]==="n"&&gr[2]==="-":!1}n.isDefaultVariant=t;function e(){return gr==="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 ft=As||Sh?2:ks?1:3;var mp=!!(fn&&fn.indexOf("Chrome")>=0),Rh=!!(fn&&fn.indexOf("Firefox")>=0),Eh=!!(!mp&&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,Pe=Qr.env,Mi=Qr.platform,kh=Qr.arch;var z1=globalThis.performance.now.bind(globalThis.performance),ml=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,K1=!1,j1=100,Dh=6e4;function Oh(){return!!Pe.VSCODE_DEV}var X;(zr=>{zr.None=()=>T.None;function t(F){if(K1){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 m(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 c((U,W=null,G)=>F(ne=>U.call(W,D(ne)),null,G),N)}zr.map=o;function s(F,D,N){return c((U,W=null,G)=>F(ne=>{D(ne),U.call(W,ne)},null,G),N)}zr.forEach=s;function a(F,D,N){return c((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 d(...F){return(D,N=null,U)=>{let W=gh(...F.map(G=>G(ne=>D.call(N,ne))));return f(W,U)}}zr.any=d;function u(F,D,N,U){let W=N;return o(F,G=>(W=D(W,G),W),U)}zr.reduce=u;function c(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 m(F,D,N=100,U=!1,W=!1,G,ne){let Xe,ve,at,Ze=0,ct,Ln={leakWarningThreshold:G,onWillAddFirstListener(){Xe=F(zm=>{Ze++,ve=D(ve,zm),U&&!at&&(Kr.fire(ve),ve=void 0),ct=()=>{let Km=ve;ve=void 0,at=void 0,(!U||Ze>1)&&Kr.fire(Km),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 Kr=new x(Ln);return ne?.add(Kr),Kr.event}zr.debounce=m;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(Kr=>{Ze++,ve=D(ve,Kr),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>=j1&&(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 j(F,D,N){return D(N),F(U=>D(U))}zr.runAndSubscribe=j;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 me(F,D){return new te(F,D).emitter.event}zr.fromObservable=me;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 ml,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 d=s/e>.3?"dominated":"popular",u=new hl(d,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??Me,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 d=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],u=d[1]/this._size>.3?"dominated":"popular",c=new Sp(u,`${l}. HINT: Stack shows most frequent listener (${d[1]}-times)`,d[0],this._size,this._options?.leakWarningName);return(this._options?.onListenerError||Me)(c),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||Me;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)}},je=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,wt=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 Rt=Mi==="win32";function re(i){return i===et||i===wt}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 d=0;d<=i.length;++d){if(d<i.length)l=i.charCodeAt(d);else{if(n(l))break;l=et}if(n(l)){if(!(s===d-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=d,a=0;continue}else if(r.length!==0){r="",o=0,s=d,a=0;continue}}t&&(r+=r.length>0?`${e}..`:"..",o=2)}else r.length>0?r+=`${e}${i.slice(s+1,d)}`:r=i.slice(s+1,d),o=d-s-1;s=d,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=Pe[`=${t}`]||Yr(),(o===void 0||o.slice(0,2).toLowerCase()!==t.toLowerCase()&&o.charCodeAt(2)===wt)&&(o=`${t}\\`));let s=o.length,a=0,l="",d=!1,u=o.charCodeAt(0);if(s===1)re(u)&&(a=1,d=!0);else if(re(u))if(d=!0,re(o.charCodeAt(1))){let c=2,f=c;for(;c<s&&!re(o.charCodeAt(c));)c++;if(c<s&&c!==f){let m=o.slice(f,c);for(f=c;c<s&&re(o.charCodeAt(c));)c++;if(c<s&&c!==f){for(f=c;c<s&&!re(o.charCodeAt(c));)c++;(c===s||c!==f)&&(l=`\\\\${m}\\${o.slice(f,c)}`,a=c)}}}else a=1;else Wn(u)&&o.charCodeAt(1)===Fn&&(l=o.slice(0,2),a=2,s>2&&re(o.charCodeAt(2))&&(d=!0,a=3));if(l.length>0)if(t.length>0){if(l.toLowerCase()!==t.toLowerCase())continue}else t=l;if(n){if(t.length>0)break}else if(e=`${o.slice(a)}\\${e}`,n=d,d&&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 d=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`\\\\${d}\\${i.slice(l)}\\`;a!==l&&(n=`\\\\${d}\\${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)===wt;)r++;let o=i.length;for(;o-1>r&&i.charCodeAt(o-1)===wt;)o--;let s=o-r,a=0;for(;a<t.length&&t.charCodeAt(a)===wt;)a++;let l=t.length;for(;l-1>a&&t.charCodeAt(l-1)===wt;)l--;let d=l-a,u=s<d?s:d,c=-1,f=0;for(;f<u;f++){let h=i.charCodeAt(r+f);if(h!==t.charCodeAt(a+f))break;h===wt&&(c=f)}if(f!==u){if(c===-1)return n}else{if(d>u){if(t.charCodeAt(a+f)===wt)return n.slice(a+f+1);if(f===2)return n.slice(a+f)}s>u&&(i.charCodeAt(r+f)===wt?c=f:f===2&&(c=3)),c===-1&&(c=0)}let m="";for(f=r+c+1;f<=o;++f)(f===o||i.charCodeAt(f)===wt)&&(m+=m.length===0?"..":"\\..");return a+=c,m.length>0?`${m}${n.slice(a,l)}`:(n.charCodeAt(a)===wt&&++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)===wt){if(t.charCodeAt(1)===wt){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)===wt)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 c=2,f=c;for(;c<e&&!re(i.charCodeAt(c));)c++;if(c<e&&c!==f){for(f=c;c<e&&re(i.charCodeAt(c));)c++;if(c<e&&c!==f){for(f=c;c<e&&!re(i.charCodeAt(c));)c++;c===e?n=c:c!==f&&(n=c+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,d=i.length-1,u=0;for(;d>=n;--d){if(r=i.charCodeAt(d),re(r)){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),r===Xr?o===-1?o=d: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(Rt){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,d=0;for(;d<a;d++){let c=i.charCodeAt(e+d);if(c!==t.charCodeAt(o+d))break;c===et&&(l=d)}if(d===a)if(s>a){if(t.charCodeAt(o+d)===et)return t.slice(o+d+1);if(d===0)return t.slice(o+d)}else r>a&&(i.charCodeAt(e+d)===et?l=d:d===0&&(l=0));let u="";for(d=e+l+1;d<=n;++d)(d===n||i.charCodeAt(d)===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,d=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:d!==1&&(d=1):r!==-1&&(d=-1)}if(s!==-1){let u=o===0&&e?1:o;r===-1||d===0||d===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=Rt?se.normalize:Z.normalize,qt=Rt?se.isAbsolute:Z.isAbsolute,B=Rt?se.join:Z.join,tn=Rt?se.resolve:Z.resolve,Fh=Rt?se.relative:Z.relative,ce=Rt?se.dirname:Z.dirname,be=Rt?se.basename:Z.basename,Sl=Rt?se.extname:Z.extname,cD=Rt?se.format:Z.format,Wh=Rt?se.parse:Z.parse,uD=Rt?se.toNamespacedPath:Z.toNamespacedPath,Se=Rt?se.sep:Z.sep,Wi=Rt?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 Kh(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),d=t.charCodeAt(r);if(l<d)return-1;if(l>d)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),d=t.charCodeAt(r);if(l===d)continue;if(l>=128||d>=128)return _l(i.toLowerCase(),t.toLowerCase(),e,n,r,o);$h(l)&&(l-=32),$h(d)&&(d-=32);let u=l-d;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 jh(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)/,dC=/\x1b(?:[ #%\(\)\*\+\-\.\/]?[a-zA-Z0-9\|}~@])/,cC=new RegExp("(?:"+[aC.source,lC.source,dC.source].join("|")+")","g");function Qh(i){return i&&(i=i.replace(cC,"")),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(c){let f=new Map;for(let m=0;m<c.length;m+=2)f.set(c[m],c[m+1]);return f}function r(c,f){let m=new Map(c);for(let[h,v]of f)m.set(h,v);return m}function o(c,f){if(!c)return f;let m=new Map;for(let[h,v]of c)f.has(h)&&m.set(h,v);return m}let s=this.ambiguousCharacterData.value,a=e.filter(c=>!c.startsWith("_")&&Object.hasOwn(s,c));a.length===0&&(a=["_default"]);let l;for(let c of a){let f=n(s[c]);l=o(l,f)}let d=n(s._common),u=r(d,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 gC="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",mC="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=mC:s=gC,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 d=o.indexOf("@");if(d!==-1){let u=o.substr(0,d);o=o.substr(d+1),d=u.lastIndexOf(":"),d===-1?n+=e(u,!1,!1):(n+=e(u.substr(0,d),!1,!1),n+=":",n+=e(u.substr(d+1),!1,!0)),n+="@"}o=o.toLowerCase(),d=o.lastIndexOf(":"),d===-1?n+=e(o,!1,!0):(n+=e(o.substr(0,d),!1,!0),n+=o.substr(d))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){let d=s.charCodeAt(1);d>=65&&d<=90&&(s=`/${String.fromCharCode(d+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){let d=s.charCodeAt(0);d>=65&&d<=90&&(s=`${String.fromCharCode(d+32)}:${s.substr(2)}`)}n+=e(s,!0,!1)}return a&&(n+="?",n+=e(a,!1,!1)),l&&(n+="#",n+=t?l: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 Jm(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:bt?this._preferredWebSchema:ie.vscodeRemoteResource,authority:`${n}:${r}`,path:bt?(window.location.pathname+"/"+this._remoteResourcesPath).replace(/\/\/+/g,"/"):this._remoteResourcesPath,query:s})}},xC=new Dp;function wC(i){return`${i.quality??"oss"}-${i.commit??"dev"}`}var dy="vs/../../node_modules",cy="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 d=a&&l?"3":l?"2":"1";s instanceof URLSearchParams?s.set(e,d):s[e]=d}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(ce(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),St=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),gn=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),KD=oe.removeTrailingPathSeparator.bind(oe),jD=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[c,f]=u.split(":");c&&f&&a.set(c,f)});let d=s.path.substring(0,s.path.indexOf(";"));return d&&a.set(o.META_DATA_MIME,d),a}o.parseMetaData=r})(EC||={});var gy=Symbol("MicrotaskDelay");function Pl(i){return!!i&&typeof i.then=="function"}function zi(i){let t=new je,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 je}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 gt=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===gy?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 ut),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 my=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 Kn(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?Me(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=d=>{if(o.push(d),o.length>t)return r.dispose(),i.pause(),e({stream:i,buffer:o,ended:!1})},a=d=>(r.dispose(),n(d)),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=Kn(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,Kp,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():(Kp||(Kp=new TextDecoder(void 0,{ignoreBOM:!0})),Kp.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 d=0;d<t.length;d++)o[t[d]]=t.length-d-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 Kn(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],d=i[s+2];r+=n[a>>>2],r+=n[(a<<4|l>>>4)&63],r+=n[(l<<2|d>>>6)&63],r+=n[d&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 Ki(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 de(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 ji(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(ji(i)).toString();case 2:return i.read(ji(i)).buffer;case 3:return i.read(ji(i));case 4:{let e=ji(i),n=[];for(let r=0;r<e;r++)n.push(Yi(i));return n}case 5:return JSON.parse(i.read(ji(i)).toString());case 6:return ji(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 je,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),pt(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,d;return new Promise((c,f)=>{if(r.isCancellationRequested)return f(new le);let m=()=>{let S=_=>{switch(_.type){case 201:this.handlers.delete(o),c(_.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?m():(h=zi(S=>this.whenInitialized()),h.then(()=>{h=null,m()}));let v=()=>{h?(h.cancel(),h=null):this.sendRequest({id:o,type:101}),f(new le)};l=r.onCancellationRequested(v),d={dispose:Pi(()=>{v(),l.dispose()})},this.activeRequests.add(d)}).finally(()=>{l?.dispose(),this.activeRequests.delete(d)})}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(c=>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)}}),d=u=>l.fire(u.data);return this.handlers.set(r,d),l.event}sendRequest(t){switch(t.type){case 100:case 102:{let e=this.send([t.type,t.id,t.channelName,t.name],t.arg);this.logger?.logOutgoing(e,t.id,0,`${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),pt(this.activeRequests.values()),this.activeRequests.clear(),this._onDidInitialize.dispose()}};w([de],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(d=>{let u=new Vs(d),c=Yi(u),f=new Hs(r,c,e,n),m=new Qi(r,e);this.channels.forEach((v,S)=>f.registerChannel(S,v));let h={channelServer:f,channelClient:m,ctx:c};this._connections.add(h),this._onDidAddConnection.fire(h),a.add(o(()=>{f.dispose(),m.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 d=Xm(n.connections.filter(e));a=d?Promise.resolve(d):X.toPromise(X.filter(n.onDidAddConnection,e))}else a=e.routeCall(n,r,o);let l=a.then(d=>d.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,d=new Map,u=f=>{let h=f.channelClient.getChannel(t).listen(n,r),v=l.add(h);d.set(f,v)},c=f=>{let m=d.get(f);m&&(m.dispose(),d.delete(f))};o.connections.filter(e).forEach(u),X.filter(o.onDidAddConnection,e)(u,void 0,s),o.onDidRemoveConnection(c,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,d=a?.disableMarshalling,u=new Map;for(let c in l)e(c)&&u.set(c,X.buffer(l[c],c,!0,void 0,s));return new class{listen(c,f,m){let h=u.get(f);if(h)return h;let v=l[f];if(typeof v=="function"){if(n(f))return v.call(l,m);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(c,f,m){let h=l[f];if(typeof h=="function"){if(!d&&Array.isArray(m))for(let S=0;S<m.length;S++)m[S]=$s(m[S]);let v=h.apply(l,m);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,d){if(typeof d=="string")return s?.properties?.has(d)?s.properties.get(d):n(d)?function(u){return o.listen(d,u)}:e(d)?o.listen(d):async function(...u){let c;s&&!en(s.context)?c=[s.context,...u]:c=u;let f=await o.call(d,c);return a?f:$s(f)};throw new un(`Property not found: ${String(d)}`)}})}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 KC(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=KC(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)&&!ch(r)&&t.push(r)}}return i}var Ly=Object.prototype.hasOwnProperty;function qs(i,t){return jp(i,t,new Set)}function jp(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(jp(o,t,e));return r}if(De(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]=jp(i[o],t,e));return e.delete(i),r}return i}function eo(i,t,e=!0){return De(i)?(De(t)&&Object.keys(t).forEach(n=>{n in i?e&&(De(i[n])&&De(t[n])?eo(i[n],t[n],e):i[n]=t[n]):i[n]=t[n]}),i):t}function Le(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(!Le(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(),!Le(r,o))return!1;for(e=0;e<r.length;e++)if(!Le(i[r[e]],t[r[e]]))return!1}return!0}function Gp(i){let t=new Set;return JSON.stringify(i,(e,n)=>{if(De(n)||Array.isArray(n)){if(t.has(n))return"[Circular]";t.add(n)}return typeof n=="bigint"?`[BigInt ${n.toString()}]`:n})}function mn(i,t){let e=t.toLowerCase(),n=Object.keys(i).find(r=>r.toLowerCase()===e);return n?i[n]:i[t]}import*as mT 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 Ks}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 It.existsDirectory(B(i,n))&&e.push(n);return e}var It;(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})(It||={});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()))},St)}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 dT(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 It.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 It.stat(i);if(r){if(e.options.preserveSymlinks)try{return await pT(i,t,e)}catch{}if(r.dangling)return}return n.isDirectory()?cT(i,t,n.mode&Fy,e):uT(i,t,n.mode&Fy)}async function cT(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 Ks(Q.realpath)(i)}catch{let t=gT(i);return await Q.promises.access(t,Q.constants.R_OK),t}}function gT(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,d)=>a?s(a):o({bytesRead:l,buffer:d}))})}get write(){return(i,t,e,n,r)=>new Promise((o,s)=>{Q.write(i,t,e,n,r,(a,l,d)=>a?s(a):o({bytesWritten:l,buffer:d}))})}get fdatasync(){return Ks(Q.fdatasync)}get open(){return Ks(Q.open)}get close(){return Ks(Q.close)}get ftruncate(){return Ks(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 dT}get copy(){return By}get realpath(){return fT}};function Ky(i=Pe){return i.comspec||"cmd.exe"}function jy(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=Pe,r=hT){if(qt(i))return await r(i)?i:void 0;if(t===void 0&&(t=Yr()),ce(i)!=="."){let l=B(t,i);return await r(l)?l:void 0}let s=mn(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 d;if(qt(l)?d=B(l,i):d=B(t,l,i),H){let c=(mn(n,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(async f=>{let m=d+f;return await r(m)?m:void 0});for(let f of c){let m=await f;if(m)return m}}if(await r(d))return d}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(d=>o.call(e,n,d)),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(c=>!/^--inspect(-brk)?=/.test(c)).filter(c=>!c.startsWith("--vscode-"))),My(e.env),this.child=vT(this.modulePath,t,e);let n=new x,o=X.fromNodeEventEmitter(this.child,"message",c=>c)(c=>{if(Ay(c)){Dy(c,`IPC Library: ${this.options.serverName}`);return}n.fire(k.wrap(Buffer.from(c,"base64")))}),s=this.options.useQueue?jy(this.child):this.child,a=c=>this.child?.connected&&s.send(c.buffer.toString("base64")),l=n.event,d={send:a,onMessage:l};this._client=new Qi(d);let u=()=>this.disposeClient();process.once("exit",u),this.child.on("error",c=>console.warn('IPC "'+this.options.serverName+'" errored with '+c)),this.child.on("exit",(c,f)=>{process.removeListener("exit",u),o.dispose(),this.activeRequests.forEach(m=>pt(m)),this.activeRequests.clear(),c!==0&&f!=="SIGTERM"&&console.warn('IPC "'+this.options.serverName+'" crashed with exit code '+c+" and signal "+f),this.disposeDelayer?.cancel(),this.disposeClient(),this._onDidProcessExit.fire({code:c,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()}},js=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 K=(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)?g(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"?g(115,null,i.message):i.message||g(113,null)}function _t(i=null,t=!1){if(!i)return g(113,null);if(Array.isArray(i)){let e=Ei(i),n=_t(e[0],t);return e.length>1?g(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:g(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 Et(i,t){return i===t}function TT(){return(i,t)=>i===t}function xT(i,t,e){return Zt(i,t,e??Et)}function wT(i){return(t,e)=>Zt(t,e,i??Et)}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;(c=>(c.strict=Et,c.strictC=TT,c.array=xT,c.arrayC=wT,c.structural=Hl,c.structuralC=RT,c.jsonStringify=ET,c.jsonStringifyC=PT,c.thisC=kT,c.ifDefined=AT,c.ifDefinedC=DT))(OT||={});function tf(i){let t=new Error("BugIndicatingErrorRecovery: "+i);Me(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 dv(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"})}},Kt=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,Et,e)}var hn=class extends Kt{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 Kl=class extends Kt{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 Kl(new nt(i.owner,i.debugName,void 0),t,i.equalsFn??Et,e):new hn(new nt(i.owner,i.debugName,void 0),t,i.equalsFn??Et,e)}function MT(i){switch(i){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}var jn=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){dr(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){dr(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?(dr(new Te(`Autorun '${this.debugName}' is stuck in an infinite update loop.`)),!0):!1}};function xr(i,t=Be.ofCaller()){return new jn(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 Kt{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){dr(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){dr(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 df(i,t,e=Be.ofCaller()){return new rt(new nt(i.owner,i.debugName,i.debugReferenceFn),t,void 0,i.onLastObserverRemoved,i.equalsFn??Et,e)}iv(df);function no(...i){let t,e,n,r;return i.length===2?[e,n]=i:[t,e,n,r]=i,new jt(new nt(t,void 0,n),e,n,()=>jt.globalTransaction,Et,r??Be.ofCaller())}var jt=class extends Kt{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=jt;function t(n,r){let o=!1;jt.globalTransaction===void 0&&(jt.globalTransaction=n,o=!0);try{r()}finally{o&&(jt.globalTransaction=void 0)}}e.batchEventsGlobally=t})(no||={});function uv(i){let t=new jl(!1,void 0);return i.addObserver(t),A(()=>{i.removeObserver(t)})}lv(uv);function pv(i,t){let e=new jl(!0,t);i.addObserver(e);try{e.beginUpdate(i)}finally{e.endUpdate(i)}return A(()=>{i.removeObserver(e)})}sv(pv);var jl=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(KT(`${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 KT(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 gv(i,t){let e=globalThis,n=[],r,{channel:o,handler:s}=jT({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 d of n)l.sendNotification(d);return n=[],s},Jl.createClient(o,()=>{if(!a)throw new Error("Not supported");return a})}function jT(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 cf(i,t){for(let e in t)i[e]&&typeof i[e]=="object"&&t[e]&&typeof t[e]=="object"?cf(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=gv("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(cr)}),getDerivedInfo:t=>{let e=this._aliveInstances.get(t);return{dependencies:[...e.debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(cr),observers:[...e.debugGetObservers()].map(n=>this._formatObserver(n)).filter(cr)}},getAutorunInfo:t=>({dependencies:[...this._aliveInstances.get(t).debugGetState().dependencies].map(n=>this._formatObservable(n)).filter(cr)}),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 jt)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 jn)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){Me(new Te("No info found"));return}return e}_getAutorunInfo(t){let e=this._instanceInfos.get(t);if(!e){Me(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(cr);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 jn){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:cf(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 mv(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??(d=>d))??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??(d=>d))??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 jn){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 jt){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",[],[])}};dv(mv);nv(fv);var GT=!1;GT&&Qs(new Xs);Pe&&Pe.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 gf=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 gf(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 d=l.balanceFactor();if(d<-1||d>1){let u=o[a][0],c=o[a+1][0];if(u===1&&c===1)o[a][1]=l.rotateLeft();else if(u===-1&&c===-1)o[a][1]=l.rotateRight();else if(u===1&&c===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(u===-1&&c===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,c]=s[s.length-1];switch(u){case-1:c.left=l;break;case 0:al(!1);case 1:al(!1)}}else o.right=l;let d=this._balanceByStack(s);if(r.length>0){let[u,c]=r[r.length-1];switch(u){case-1:c.left=d;break;case 0:c.mid=d;break;case 1:c.right=d;break}}else this._root=d}}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 Ne=$("fileService");function Qn(i){return i.create===!0}function Ft(i){return!!(i.capabilities&2)}function vv(i){return!!(i.capabilities&524288)}function mf(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 td(i){return!!(i.capabilities&16)}function nd(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(g(2352,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 rd="";function vf(i){if(!(typeof i.size!="number"||typeof i.mtime!="number"))return i.mtime.toString(29)+i.size.toString(31)}var ed=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?g(2347,null,t.toFixed(0)):t<i.MB?g(2349,null,(t/i.KB).toFixed(2)):t<i.GB?g(2350,null,(t/i.MB).toFixed(2)):t<i.TB?g(2348,null,(t/i.GB).toFixed(2)):g(2351,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,id=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,pt(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 id(r);for(let d of on.getServiceDependencies(l.desc.ctor)){let u=this._getServiceInstanceOrDescriptor(d.id);if(u||this._throwIfStrict(`[createInstance] ${t} depends on ${d.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(l.id),String(d.id)),u instanceof Zn){let c={id:d.id,desc:u,_trace:l._trace.branch(d.id,!0)};r.insertEdge(l,c),s.push(c)}}}}for(;;){let l=r.roots();if(l.length===0){if(!r.isEmpty())throw new id(r);break}for(let{data:d}of l){if(this._getServiceInstanceOrDescriptor(d.id)instanceof Zn){let c=this._createServiceInstanceWithOwner(d.id,d.desc.ctor,d.desc.staticArguments,d.desc.supportsDelayedInstantiation,d._trace);this._setCreatedServiceInstance(d.id,c)}r.removeNode(d)}}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,d=new El(()=>{let u=a._createInstance(e,n,o);for(let[c,f]of l){let m=u[c];if(typeof m=="function")for(let h of f)h.disposable=m.apply(u,h.listener)}return l.clear(),s.add(u),u});return new Proxy(Object.create(null),{get(u,c){if(!d.isInitialized&&typeof c=="string"&&(c.startsWith("onDid")||c.startsWith("onWill"))){let h=l.get(c);return h||(h=new Es,l.set(c,h)),(S,_,b)=>{if(d.isInitialized)return d.value[c](S,_,b);{let I={listener:[S,_,b],disposable:void 0},R=h.push(I);return A(()=>{R(),I.disposable?.dispose()})}}}if(c in u)return u[c];let f=d.value,m=f[c];return typeof m!="function"||(m=m.bind(f),u[c]=m),m},set(u,c,f){return d.value[c]=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[d,u,c]of s._dep)if(u&&c){e=!0,a.push(`${l}CREATES -> ${d}`);let f=n(o+1,c);f&&a.push(f)}else a.push(`${l}uses -> ${d}`);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 d=t.charCodeAt(a+1);Rp(d)?(a++,l=Jh(s,d)):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 c=0;c<64;c+=4)t.setUint32(c,e.getUint32(c,!1),!1);for(let c=64;c<320;c+=4)t.setUint32(c,Sf(t.getUint32(c-12,!1)^t.getUint32(c-32,!1)^t.getUint32(c-56,!1)^t.getUint32(c-64,!1),1),!1);let n=this._h0,r=this._h1,o=this._h2,s=this._h3,a=this._h4,l,d,u;for(let c=0;c<80;c++)c<20?(l=r&o|~r&s,d=1518500249):c<40?(l=r^o^s,d=1859775393):c<60?(l=r&o|r&s|o&s,d=2400959708):(l=r^o^s,d=3395469782),u=Sf(n,5)+l+a+d+t.getUint32(c*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 g(2150,null,i[0]);case 2:return g(2151,null,i[0],i[1]);case 3:return g(2152,null,i[0],i[1],i[2]);default:return}}var ex=g(2149,null),tx=g(2148,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",bt);Je.set("isMacNative",qe&&!bt);Je.set("isEdge",Ph);Je.set("isFirefox",Rh);Je.set("isChrome",mp);Je.set("isSafari",Eh);var nx=Object.prototype.hasOwnProperty;var rx={regexParsingWithErrorRecovery:!0},ix=g(2129,null),ox=g(2130,null),sx=g(2132,null),xv=g(2128,null),ax=g(2135,null),lx=g(2136,null),dx=g(2133,null),cx=g(2134,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(),ci.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(""),d=l.lastIndexOf("/"),u=d===l.length-1?void 0:this._removeFlagsGY(l.substring(d+1)),c;try{c=new RegExp(l.substring(1,d),u)}catch{throw this._errExpectedButGot("REGEX",r)}return it.regex(e,c)}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 d=o.slice(a+1,l),u=o[l+1]==="i"?"i":"";try{s=new RegExp(d,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:dx,offset:t.offset,lexeme:"",additionalInfo:cx}),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=g(2131,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 di.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 od.create(t,e)}static notIn(t,e){return sd.create(t,e)}static not(t){return ci.create(t)}static and(...t){return ad.create(t,null,!0)}static or(...t){return da.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}},di=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=ci.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?di.create(t,n):ci.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}},od=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=sd.create(this.key,this.valueKey)),this.negated}},sd=class i{constructor(t,e){this.key=t;this.valueKey=e;this.type=11;this._negated=od.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?ci.create(t,n):di.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}},ci=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=di.create(this.key,this)),this.negated}};function dd(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 dd(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 dd(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 dd(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 dd(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 ad=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,d=da.create(s.expr.map(u=>i.create([u,a],null,n)),null,l);d&&(r.push(d),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=da.create(t,this,!0)}return this.negated}},da=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(ad.create([o,s],null,!1));t.unshift(i.create(r,null,!1))}this.negated=i.create(t,this,!0)}return this.negated}},ld=class i extends di{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 ca(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 ca("debug",n.debug),ca("error",n.error),ca("info",n.info),ca("log",n.log),ca("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=_t(r,t)),typeof r=="object")try{r=JSON.stringify(r)}catch{}e+=(n>0?" ":"")+r}return e}var cd=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 cd{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 ud=class extends cd{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(){}},pd=class extends xf{};function Lv(i){if(i.verbose)return 1;if(typeof i.logLevel=="string"){let t=mx(i.logLevel.toLowerCase());if(t!==void 0)return t}return Av}function gx(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 mx(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 ld("logLevel",gx(3));var ht=$("sessionDataService"),pa="session.db",fd="attachments";var Mv="session",Nv="uncommitted",gd="turn/",Uv="{turnId}",Rf="compare/",hx="{originalTurnId}",yx="{modifiedTurnId}",Ef=()=>g(1865,null),Pf=()=>g(1868,null),kf=()=>g(1867,null),Af=()=>g(1866,null);function Fv(i,t){return!i||!t||i===t?i:`${i} \u2192 ${t}`}var gi="/changeset/";function sn(i){return`${i}${gi}${Mv}`}function Sn(i){return`${i}${gi}${Nv}`}function Df(i){return`${i}${gi}${gd}${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}${gi}${gd}${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}${gi}${Rf}${t}/${e}`}function In(i){let t=i.lastIndexOf(gi);if(t<0)return;let e=i.slice(t+gi.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(gd)){let r=e.slice(gd.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 md(i){return i.type.startsWith("session/")}function hd(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},Ue={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 Kv(i){return"method"in i&&"id"in i}function jv(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 Ke="ahp-root://",Sx="ahp-root";function ga(i){if(i===Ke)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)Oe(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 go(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 vd(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 Pt=$("productService");import*as Sa from"fs";var Pr=$("telemetryService");var v9=$("customEndpointTelemetryService");var ob="telemetry",mo="telemetry.telemetryLevel",bd="telemetry.enableCrashReporter",ma="telemetry.enableTelemetry";function yt(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=yt({type:"object",title:g(1860,null),description:g(1864,null),properties:{allow:{type:"array",title:g(1861,null),items:{type:"string",title:g(1863,null)}},deny:{type:"array",title:g(1862,null),items:{type:"string",title:g(1863,null)}}},default:{allow:[],deny:[]},sessionMutable:!0}),kt=_n({autoApprove:yt({type:"string",title:g(1846,null),description:g(1853,null),enum:["default","autoApprove","autopilot"],enumLabels:[g(1851,null),g(1849,null),g(1847,null)],enumDescriptions:[g(1852,null),g(1850,null),g(1848,null)],default:"default",sessionMutable:!0}),permissions:lb,mode:yt({type:"string",title:g(1854,null),description:g(1859,null),enum:["interactive","plan"],enumLabels:[g(1855,null),g(1857,null)],enumDescriptions:[g(1856,null),g(1858,null)],default:"interactive",sessionMutable:!0})}),ya="telemetryLevel",Hf="sessionSyncEnabled";function db(i){switch(i){case 0:return"off";case 1:return"crash";case 2:return"error";case 3:return"all"}}function cb(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]:yt({type:"string",title:g(1845,null),description:g(1844,null),enum:["all","error","crash","off"],default:"all"}),[Hf]:yt({type:"boolean",title:g(1843,null),description:g(1842,null),default:!1})});var Cn=_n({customizations:yt({type:"array",title:g(1836,null),description:g(1832,null),default:[],items:{type:"object",title:g(1835,null),properties:{uri:{type:"string",title:g(1837,null)},displayName:{type:"string",title:g(1834,null)},description:{type:"string",title:g(1833,null)}},required:["uri","displayName"]}}),defaultShell:yt({type:"string",title:g(1839,null),description:g(1838,null)}),disableCustomTerminalTool:yt({type:"boolean",title:g(1841,null),description:g(1840,null),default:!1})}),ub={customizations:[]};var ba=_n({sandbox:yt({type:"object",title:g(1886,null),properties:{enabled:{type:"string",title:g(1883,null),enum:["off","on","allowNetwork"]},"enabled.windows":{type:"string",title:g(1887,null),enum:["off","on","allowNetwork"]},allowUnsandboxedCommands:{type:"boolean",title:g(1879,null)},autoApproveUnsandboxedCommands:{type:"boolean",title:g(1880,null)},"fileSystem.linux":{type:"object",title:g(1884,null)},"fileSystem.mac":{type:"object",title:g(1885,null)},"fileSystem.windows":{type:"object",title:g(1888,null)},"advanced.runtime":{type:"object",title:g(1876,null)},allowedNetworkDomains:{type:"array",title:g(1878,null),items:{type:"string",title:g(1877,null)}},deniedNetworkDomains:{type:"array",title:g(1882,null),items:{type:"string",title:g(1881,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(Ke,{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(ce(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"&&Oe(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 It.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 Id({useAlternateBitness:i=!1,findPreview:t=!1}={}){let e=Ax({useAlternateBitness:i});if(!e)return null;let n=B(e,"PowerShell");if(!await It.existsDirectory(n))return null;let r=-1,o=null;for(let l of await Ce.readdir(n)){let d=-1;if(t){let c=l.indexOf("-");if(c<0)continue;let f=l.substring(0,c);if(!fb.test(f)||l.substring(c+1)!=="preview")continue;d=parseInt(f,10)}else{if(!fb.test(l))continue;d=parseInt(l,10)}if(d<=r)continue;let u=B(n,l,"pwsh.exe");await It.existsFile(u)&&(o=u,r=d)}if(!o)return null;let s=e.includes("x86")?" (x86)":"",a=t?" Preview":"";return new yi(o,`PowerShell${a}${s}`,!0)}async function gb({findPreview:i}={}){if(!process.env.LOCALAPPDATA)return null;let t=B(process.env.LOCALAPPDATA,"Microsoft","WindowsApps");if(!await It.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 Id();i&&(yield i),i=await Id({useAlternateBitness:!0}),i&&(yield i),i=await gb(),i&&(yield i),i=Dx(),i&&(yield i),i=await Id({findPreview:!0}),i&&(yield i),i=await gb({findPreview:!0}),i&&(yield i),i=await Id({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 mb(){for await(let i of Nx())return i;return null}async function hb(i,t){return i===1?H?Wx():Ky(t):Fx(i,t)}var Kf=null;function Fx(i,t){if(he&&i===2||qe&&i===3)return"/bin/bash";if(!Kf){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")}Kf=e}return Kf}var jf=null;async function Wx(){return jf||(jf=(await mb()).exePath),jf}import*as vo from"os";var Gf=class{constructor(){this.data=new Map}add(t,e){sl(Ee(t)),sl(De(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"]]),Kx=/^VSCODE_PYTHON_(PWSH|ZSH|BASH|FISH)_ACTIVATE/,jx="ms-python.vscode-python-envs",_d=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 d={extensionIdentifier:n,value:s.value,type:s.type,scope:s.scope,variable:s.variable,options:s.options};d.scope||delete d.scope,l.unshift(d),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 d=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]||"")+d;break;case 3:t[a]=d+(t[a]||"");break;case 1:t[a]=d;break}if(l.options?.applyAtShellIntegration??!1){let u=`VSCODE_ENV_${zx.get(l.type)}`;t[u]=(t[u]?t[u]+":":"")+o+"="+this._encodeColons(d)}}}}}_encodeColons(t){return t.replaceAll(":","\\x3a")}blockPythonActivationVar(t,e){return!!(Kx.test(t)&&jx!==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),d=bb(s,l);d&&n.set(a,d)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),d=bb(s,l);d&&o.set(a,d)}),this.getVariableMap(e).forEach((s,a)=>{let l=t.getVariableMap(e).get(a),d=Gx(s,l);d&&r.set(a,d)}),!(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 Cd from"os";var _a;async function Jx(){if(_a)return;if(!H){_a={release:Cd.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||Cd.release(),buildNumber:i||Qx()}}}async function Sb(){return _a||await Jx(),_a.buildNumber}function Qx(){let i=/(\d+)\.(\d+)\.(\d+)/g.exec(Cd.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),d=ce(tt.asFileUri("").fsPath),u="injection",c,f={VSCODE_INJECTION:"1"};t.shellIntegration.nonce&&(f.VSCODE_NONCE=t.shellIntegration.nonce);let m=["PATH","VIRTUAL_ENV","HOME","SHELL","PWD"];if(i.shellIntegrationEnvironmentReporting&&(H?(t.windowsUseConptyDll||s>=22631&&l!=="bash.exe")&&(f.VSCODE_SHELL_ENV_REPORTING=m.join(",")):f.VSCODE_SHELL_ENV_REPORTING=m.join(",")),H)return l==="pwsh.exe"||l==="powershell.exe"?(f.VSCODE_A11Y_MODE=t.isScreenReaderOptimized?"1":"0",!a||xb(a)?c=ke.get("windows-pwsh"):Tb(a)&&(c=ke.get("windows-pwsh-login")),c?(c=[...c],c[c.length-1]=ei(c[c.length-1],d,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:c,envMixin:f}):{type:"failure",reason:"unsupportedArgs"}):l==="bash.exe"?(!a||a.length===0?c=ke.get("bash"):wd(a)&&(f.VSCODE_SHELL_LOGIN="1",Td(t,f,l),c=ke.get("bash")),c?(c=[...c],c[c.length-1]=ei(c[c.length-1],d),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:c,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?c=ke.get("bash"):wd(a)&&(f.VSCODE_SHELL_LOGIN="1",Td(t,f,l),c=ke.get("bash")),c?(c=[...c],c[c.length-1]=ei(c[c.length-1],d),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:c,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"fish":return!a||a.length===0?c=ke.get("fish"):wd(a)?c=ke.get("fish-login"):(a===ke.get("fish")||a===ke.get("fish-login"))&&(c=a),c?(Td(t,f,l),c=[...c],c[c.length-1]=ei(c[c.length-1],d),{type:u,newArgs:c,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"pwsh":return!a||xb(a)?c=ke.get("pwsh"):Tb(a)&&(c=ke.get("pwsh-login")),c?(c=[...c],c[c.length-1]=ei(c[c.length-1],d,""),f.VSCODE_STABLE=r.quality==="stable"?"1":"0",{type:u,newArgs:c,envMixin:f}):{type:"failure",reason:"unsupportedArgs"};case"zsh":{if(!a||a.length===0?c=ke.get("zsh"):wd(a)?(c=ke.get("zsh-login"),Td(t,f,l)):(a===ke.get("zsh")||a===ke.get("zsh-login"))&&(c=a),!c)return{type:"failure",reason:"unsupportedArgs"};c=[...c],c[c.length-1]=ei(c[c.length-1],d);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(d,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh"),dest:B(S,".zshrc")}),b.push({source:B(d,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-profile.zsh"),dest:B(S,".zprofile")}),b.push({source:B(d,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-env.zsh"),dest:B(S,".zshenv")}),b.push({source:B(d,"out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh"),dest:B(S,".zlogin")}),{type:u,newArgs:c,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 Td(i,t,e){if((qe||e==="fish")&&i.environmentVariableCollections){let n=yb(i.environmentVariableCollections),o=new _d(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 ke=new Map;ke.set("windows-pwsh",["-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);ke.set("windows-pwsh-login",["-l","-noexit","-command",'try { . "{0}\\out\\vs\\workbench\\contrib\\terminal\\common\\scripts\\shellIntegration.ps1" } catch {}{1}']);ke.set("pwsh",["-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"{1}']);ke.set("pwsh-login",["-l","-noexit","-command",'. "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.ps1"']);ke.set("zsh",["-i"]);ke.set("zsh-login",["-il"]);ke.set("bash",["--init-file","{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh"]);ke.set("fish",["--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);ke.set("fish-login",["-l","--init-command",'source "{0}/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish"']);var xd=["-login","-l"],Cb=["--login","-l"],Zx=["-i","--interactive"],Rd=["-nol","-nologo"];function Tb(i){return Ee(i)?xd.includes(i.toLowerCase()):i.length===1&&xd.includes(i[0].toLowerCase())||i.length===2&&(xd.includes(i[0].toLowerCase())||xd.includes(i[1].toLowerCase()))&&(Rd.includes(i[0].toLowerCase())||Rd.includes(i[1].toLowerCase()))}function xb(i){return Ee(i)?Rd.includes(i.toLowerCase()):i.length===0||i?.length===1&&Rd.includes(i[0].toLowerCase())}function wd(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 e0 from"@xterm/headless";var{Terminal:t0}=e0,Ed=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 t0(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 Pd(i){return ft===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 n0(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+"\\",kd=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 d=this._pendingOsc;this._pendingOsc="",this._handleOscPayload(d,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(d){n=d}});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(d){n=d}},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=n0(o);s&&e.push(s)}else n&&n.append(n.value+Qf+t+r)}};var i0=1e4,o0=0,Zf="\x1B[6n",eg="\x1B[?6n",s0=["\x1B[?6","\x1B[?","\x1B[6","\x1B[","\x1B"],So=$("agentHostTerminalManager");function a0(i,t){if(!t.pendingData&&!i.includes(Zf)&&!i.includes(eg)&&!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(eg)?r:r.replaceAll(eg,"").replaceAll(Zf,"")}function Pb(i){for(let t of s0)if(i.endsWith(t))return t;return""}function l0(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 tg;async function d0(){return tg||(tg=await import("node-pty")),tg}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(!hd(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(),d=H?"cmd":"xterm-256color";this._logService.info(`[TerminalManager] Creating terminal ${r}: shell=${l}, cwd=${o}, cols=${s}, rows=${a}`);let u=K(),c={...process.env};n?.preventShellHistory&&(c.VSCODE_PREVENT_SHELL_HISTORY="1"),e.claim?.kind==="session"&&Pd(l)&&(c.VSCODE_AGENT_ZSH_FIXUPS="1"),n?.nonInteractive&&(c.LC_ALL="C.UTF-8",c.PAGER="",c.GIT_PAGER="",c.GH_PAGER="",c.GIT_TERMINAL_PROMPT="0",c.DEBIAN_FRONTEND="noninteractive");let f=[];qe&&Wh(l).name.match(/(zsh|bash)/)&&(f=["--login"]);let m=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(m.type==="injection"){if(this._logService.info(`[TerminalManager] Shell integration injected for ${r}`),m.envMixin)for(let[te,me]of Object.entries(m.envMixin))me!==void 0&&(c[te]=me);if(m.newArgs&&(f=m.newArgs),m.filesToCopy)for(let te of m.filesToCopy)try{await bi.promises.mkdir(ce(te.dest),{recursive:!0}),await bi.promises.copyFile(te.source,te.dest)}catch{}h={parser:new kd,nonce:u,commandCounter:0,detectionAvailableEmitted:!1}}else this._logService.info(`[TerminalManager] Shell integration not available for ${r}: ${m.reason}`);let v=await this._spawnPty(l,f,{name:d,cwd:o,env:c,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 Ed({cols:s,rows:a,scrollback:o0,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(me){this._logService.debug(`[TerminalManager] Failed to write headless terminal response for ${r}: ${me instanceof Error?me.message:String(me)}`)}})),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 j=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(()=>j.dispose())),!H){let te=setInterval(()=>{let me=v.process;me&&me!==E.title&&(E.title=me,this._stateManager.dispatchServerAction(r,{type:"terminal/titleChanged",title:me}),this._broadcastTerminalList())},200);S.add(A(()=>clearInterval(te)))}await yy([L.p,zn(i0)]),this._broadcastTerminalList()}async _spawnPty(e,n,r){return(await d0()).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,l0(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=a0(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 d of e.content)if(d.type==="command"&&d.commandId===o){d.isComplete=!0,d.exitCode=r.exitCode,d.durationMs=s,a=d.commandLine,l=d.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(ft,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(Ke,{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,Pt),C(3,Ye)],bo);var Ad=$("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:Ki(t.authority).toString(),toolCallId:decodeURIComponent(e),filePath:Ki(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(),d=!r.beforeExisted&&s.length>0,u,c;try{let f=await this._diffComputeService.computeDiffCounts(a,l);u=f.added,c=d?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:d?"create":"edit",beforeContent:o,afterContent:s,addedLines:u,removedLines:c})}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:c}: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,Ne),C(3,M),C(4,Ad)],kr);var Lb="git-blob";function Dd(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:Ki(t.authority).toString(),sha:decodeURIComponent(e),repoRelativePath:Ki(n).toString()}}catch{return}}var c0={"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 Od(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 u0(i,t){if(!(!t||!i))return i.find(e=>e.id===t)}function p0(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 f0=31;function Md(i,t,e){return e?i|t:i&~t}function _o(i,t){let e;return t?e=t:(i.inputRequests?.length??0)>0||p0(i)?e=24:i.activeTurn?e=8:e=1,i.summary.status&~f0|e}function Ld(i){let t=_o(i);return t===i.summary.status?i:{...i,summary:{...i.summary,status:t}}}function ng(i,t,e,n,r){if(!i.activeTurn||i.activeTurn.id!==t)return i;let o=i.activeTurn,s=o.responseParts.map(d=>{if(d.kind!=="toolCall")return d;let u=d.toolCall;return u.status==="completed"||u.status==="cancelled"?d:{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 g0(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:Md(_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 Nd(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:Md(_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 ng(i,t.turnId,"complete");case"session/turnCancelled":return ng(i,t.turnId,"cancelled");case"session/error":return ng(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 Ld(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 Ld(Io(i,t.turnId,t.toolCallId,n=>{if(n.status!=="pending-confirmation")return n;let r=Ca(n),o=u0(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 Ld(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 Ld(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:Md(i.summary.status,32,t.isRead)}};case"session/isArchivedChanged":return{...i,summary:{...i.summary,status:Md(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 g0(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 Ud(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 h0=500,Fd=class{constructor(t={}){this._states=new Map;this._lru=new Ts;this._softLimit=Math.max(0,t.softLimit??h0),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 y0(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 Fd(n.changesetStateRetention),this._rootState=rb(),this._rootState={...this._rootState,config:{schema:va.toProtocol(),values:va.validateOrDefault({},{permissions:{allow:[],deny:[]},[ya]:db(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(ga(e))return{resource:Ke,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:Ke,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:Ke,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(Ke,{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:Ke,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(y0(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?Le(a,l):Le({...a,...l},a))return this._rootState}this._rootState=Od(this._rootState,n,this._log),o=this._rootState}if(md(n)){let a=n,l=e,d=this._sessionStates.get(l);if(d){let u=Nd(d,a,this._log);this._sessionStates.set(l,u),d.summary!==u.summary&&(this._dirtySummaries.add(l),this._summaryNotifyScheduler.schedule());let c=!!d.activeTurn,f=!!u.activeTurn;c!==f&&(f?this._sessionsWithActiveTurn.add(l):this._sessionsWithActiveTurn.delete(l),this.dispatchServerAction(Ke,{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,d=this._changesets.get(l);if(!d){this._logService.warn(`[AgentHostStateManager] Action for unknown changeset: ${l}, type=${n.type}`);return}let u=Ud(d,a,this._log);u!==d&&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:Ke,session:e,changes:s})}};Co=w([C(0,M)],Co);import*as Wd from"child_process";var Ta=$("environmentService"),Dr=Ta;var Qt=$("agentHostGitService"),$d="agentHost.diffBaseBranch";function Ub(i){return i==="main"?0:i==="master"?1:2}function v0(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 v0(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=rg);let a=await this._runGit(o,["status","--porcelain=v1","-z","--untracked-files=all"]),l=I0(a),d;if(l.length===0?d=await this._runGit(o,["diff","--raw","--numstat","--diff-filter=ADMR","-z",s,"--"]):d=await this._runWithTempIndex(o,s),d!==void 0)return Fb(d,o,e.sessionUri,s)}async _runWithTempIndex(t,e){let n=y.joinPath(this._environmentService.tmpDir,`agent-host-git-diff-${K()}`);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",rg],{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=>{Wd.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-${K()}`);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",rg],{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=>{Wd.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=_0(n),a=C0(r),l=w0(o),d=T0(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`]),m=f===void 0?NaN:Number(f.trim());Number.isFinite(m)&&(u=m)}let c={hasGitHubRemote:a,branchName:s.branchName,baseBranchName:l,upstreamBranchName:s.upstreamBranchName,incomingChanges:s.incomingChanges,outgoingChanges:u,uncommittedChanges:s.uncommittedChanges,githubOwner:d?.owner,githubRepo:d?.repo};return R0(c)}_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,d=Wd.execFile("git",[...e],{cwd:t.fsPath,env:s,maxBuffer:n?.maxBuffer??32*1024*1024},(c,f,m)=>{if(c){if(m&&this._logService.warn(`[agentHostGitService] git ${e.join(" ")} failed; full stderr:
${m}`),n?.throwOnError){o(new Error(b0(e,a,l,c,m),{cause:c}));return}r(void 0);return}r(f)}),u=setTimeout(()=>{l=!0,d.kill()},a);d.on("exit",()=>clearTimeout(u))})}};To=w([C(0,Ne),C(1,Dr),C(2,M)],To);function b0(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=S0(r);return a?`${s}: ${a}`:s}function S0(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 rg="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function I0(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 d=o[l++];if(d)if(d.startsWith(":")){let c=d.split(" ")[4]??"",f=o[l++];if(!f)continue;switch(c[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 m=o[l++];if(!m)continue;s.push({kind:"rename",oldPath:f,newPath:m});break}default:break}}else{let[u,c,f]=d.split("	"),m;if(f===""||f===void 0){let h=o[l++];m=o[l++]??h??""}else m=f;if(!m)continue;a.set(m,{added:u==="-"?0:Number(u)||0,removed:c==="-"?0:Number(c)||0})}}return s.map(d=>{let u=a.get(d.newPath??d.oldPath??""),c=d.kind!=="create",f=d.kind!=="delete";return{...c&&d.oldPath?{before:{uri:y.joinPath(t,d.oldPath).toString(),content:{uri:Dd(e,n,d.oldPath)}}}:{},...f&&d.newPath?{after:r!==void 0?{uri:Dd(e,r,d.newPath),content:{uri:Dd(e,r,d.newPath)}}:{uri:y.joinPath(t,d.newPath).toString(),content:{uri:y.joinPath(t,d.newPath).toString()}}}:{},diff:{added:u?.added??0,removed:u?.removed??0}}})}function _0(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 C0(i){if(i!==void 0)return i.trim()?/github\.com[:\/]/i.test(i):!1}function T0(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=x0(n);if(r)return r}}function x0(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 w0(i){let t=i?.trim();if(!t)return;let e="refs/remotes/origin/";return t.startsWith(e)?t.substring(e.length):t}function R0(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 ig(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 E0}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(d){this._pending.delete(s),l(d instanceof Error?d:new Error(String(d)))}})}_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 E0(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 m=new Set(n.previousDiffs.map($b));f.some(v=>v.kind==="rename"||m.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 m;f.kind==="rename"&&f.originalPath?(m=s.get(f.originalPath)??f.originalPath,s.set(f.filePath,m),s.delete(f.originalPath)):(m=s.get(f.filePath)??f.filePath,s.set(f.filePath,m)),l&&f.turnId===n.changedTurnId&&l.add(m);let h=a.get(m);h?(h.terminalPath=f.filePath,h.lastToolCallId=f.toolCallId,h.lastFilePath=f.filePath,h.lastKind=f.kind):a.set(m,{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 d=n&&!o?new Map(n.previousDiffs.map(f=>[$b(f),f])):void 0,u=[],c=[];for(let[f,m]of a){if(l&&!l.has(f)){let h=y.file(m.terminalPath).toString(),v=d.get(h);v&&u.push(v);continue}c.push((async()=>{let h;if(m.firstKind==="create")h="";else{let _=await t.readFileEditContent(m.firstToolCallId,m.firstFilePath);h=_?.beforeContent?new TextDecoder().decode(_.beforeContent):""}let v;if(m.lastKind==="delete")v="";else{let _=await t.readFileEditContent(m.lastToolCallId,m.lastFilePath);v=_?.afterContent?new TextDecoder().decode(_.afterContent):""}if(h===v)return;let S=await e.computeDiffCounts(h,v);u.push(Vb(i,m,S.added,S.removed))})())}return await Promise.allSettled(c),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 d of r){let u;d.kind==="rename"&&d.originalPath?(u=o.get(d.originalPath)??d.originalPath,o.set(d.filePath,u),o.delete(d.originalPath)):(u=o.get(d.filePath)??d.filePath,o.set(d.filePath,u));let c=s.get(u);c?(c.terminalPath=d.filePath,c.lastToolCallId=d.toolCallId,c.lastFilePath=d.filePath,c.lastKind=d.kind):s.set(u,{terminalPath:d.filePath,firstToolCallId:d.toolCallId,firstFilePath:d.kind==="rename"&&d.originalPath?d.originalPath:d.filePath,firstKind:d.kind,lastToolCallId:d.toolCallId,lastFilePath:d.filePath,lastKind:d.kind})}let a=[],l=[];for(let d of s.values())l.push((async()=>{let u;if(d.firstKind==="create")u="";else{let m=await t.readFileEditContent(d.firstToolCallId,d.firstFilePath);u=m?.beforeContent?new TextDecoder().decode(m.beforeContent):""}let c;if(d.lastKind==="delete")c="";else{let m=await t.readFileEditContent(d.lastToolCallId,d.lastFilePath);c=m?.afterContent?new TextDecoder().decode(m.afterContent):""}if(u===c)return;let f=await e.computeDiffCounts(u,c);a.push(Vb(i,d,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 gt;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=ig(s,0),l=await this._writeCheckpointCommit(n,void 0,`Agent host session ${s} - baseline checkpoint`);if(!l)return;let d=await this._gitService.getRepositoryRoot(n);return d?(await this._gitService.updateRef(d,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 d=y.parse(s),u=await this._gitService.getRepositoryRoot(d);if(!u)return;let c=l??o,f=await this._gitService.revParse(u,c);if(!f){this._logService.warn(`[AgentHostCheckpoint] Parent ref ${c} missing for session ${e.toString()}`);return}let m=await this._gitService.captureWorkingTreeAsTree(d);if(!m)return;let h=await this._gitService.revParse(u,`${f}^{tree}`);if(h&&h===m)return await r.object.setTurnCheckpointRef(n,c),this._logService.trace(`[AgentHostCheckpoint] No-op turn ${n} for ${e.toString()}; reusing ${c}`),c;let v=this._sanitizedSessionId(e),S=await this._nextTurnNumber(r.object),_=ig(v,S),b=await this._gitService.commitTree(u,m,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 d=new Set;o&&d.add(o);for(let u of s)d.add(u);if(d.size===0)return;await this._gitService.deleteRefs(l,[...d]),this._logService.trace(`[AgentHostCheckpoint] Deleted ${d.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,ht),C(1,Qt),C(2,M)],wo);var wa="agentHost.changeset.uncommitted",Ra="agentHost.changeset.session",Ea="diffs";function og(i,t){return t==="uncommitted"?Sn(i):sn(i)}function P0(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 Kb(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 jb(i,t,e){if(!(!t&&!e))return zb(i,t,e)}function sg(i,t,e,n){if(i)try{return JSON.parse(i)}catch(r){n.warn(`[AgentHostChangesetService] Failed to parse persisted ${e} diffs for ${t}: ${_t(r)}`);return}}var Vd=$("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 gt;this._debouncedDiffTimers=this._register(new ut);this._perTurnDebouncedDiffTimers=this._register(new ut);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(og(e,n));this._publishChangesetDiffs(e,o,r)}parsePersistedStaticChangesets(e,n){let r=sg(n.uncommittedRaw,e,"uncommitted",this._logService),o=sg(n.sessionRaw,e,"session",this._logService)??sg(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(og(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,d]=await Promise.all([this._checkpointService.getTurnCheckpointPair(a,n),this._checkpointService.getTurnCheckpointPair(a,r)]);if(!l||!d){let f=!l&&!d?"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===d.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 c=await this._gitService.computeFileDiffsBetweenRefs(u,{sessionUri:e,fromRef:l.current,toRef:d.current});if(c===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}..${d.current}).`}}),o;this._publishChangesetDiffs(e,o,c)}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=og(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 d=this._readPreviousChangesetDiffs(o);d&&(l={changedTurnId:r,previousDiffs:[...d]})}a=await Bb(e,s.object,this._diffComputeService,l)}this._publishChangesetDiffs(e,o,a),this._persistSessionFlag(e,P0(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(m=>m.id)??[]),a=new Map;for(let m of r){let h=m.after?.uri??m.before?.uri;if(!h)continue;a.set(h,m);let v={id:h,edit:m};this._stateManager.dispatchServerAction(n,{type:"changeset/fileSet",file:v})}for(let m of s)a.has(m)||this._stateManager.dispatchServerAction(n,{type:"changeset/fileRemoved",fileId:m});this._stateManager.getChangesetState(n)?.status!=="ready"&&this._stateManager.dispatchServerAction(n,{type:"changeset/statusChanged",status:"ready"});let d=this._stateManager.getSessionState(e);if(!d)return;let u=Array.from(a.values()).reduce((m,h)=>(m.additions+=h.diff?.added??0,m.deletions+=h.diff?.removed??0,m),{additions:0,deletions:0}),f=(d.summary.changesets??[]).map(m=>m.uriTemplate===n?{...m,additions:u.additions,deletions:u.deletions,files:a.size}:m);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($d)??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,ht),C(3,Qt),C(4,Tn)],rr);import{homedir as Y0}from"os";var Ro="**",Gb="/",Bd="[/\\\\]",Hd="[^/\\\\]",k0=/\//g;function Jb(i,t){switch(i){case 0:return"";case 1:return`${Hd}*?`;default:return`(?:${Bd}|${Hd}+${Bd}${t?`|${Bd}${Hd}+`:""})*?`}}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,d="";for(let u of r){if(u!=="}"&&s){a+=u;continue}if(l&&(u!=="]"||!d)){let c;u==="-"?c=u:(u==="^"||u==="!")&&!d?c="^":u===Gb?c="":c=Mt(u),d+=c;continue}switch(u){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{let f=`(?:${Qb(a,",").map(m=>tS(m)).join("|")})`;t+=f,s=!1,a="";break}case"]":{t+="["+d+"]",l=!1,d="";break}case"?":t+=Hd;continue;case"*":t+=Jb(1);continue;default:t+=Mt(u)}}o<e.length-1&&(e[o+1]!==Ro||o+2<e.length)&&(t+=Bd)}n=r===Ro})}return t}var A0=/^\*\*\/\*\.[\w\.-]+$/,D0=/^\*\*\/([\w\.-]+)\/?$/,O0=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,L0=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,M0=/^\*\*((\/[\w\.-]+)+)\/?$/,N0=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,Yb=new pn(1e4),Xb=function(){return!1},xn=function(){return null};function lg(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,d)=>l===d,endsWith:n?jh:(l,d)=>l.endsWith(d),isEqualOrParent:(l,d)=>Hn(l,d,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 A0.test(e)?s=U0(e.substring(4),e,r):(a=D0.exec(ag(e,r)))?s=F0(a[1],e,r):(t.trimForExclusions?L0:O0).test(e)?s=W0(e,r):(a=M0.exec(ag(e,r)))?s=eS(a[1].substring(1),e,!0,r):(a=N0.exec(ag(e,r)))?s=eS(a[1],e,!1,r):s=$0(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 ag(i,t){return t.trimForExclusions&&i.endsWith("/**")?i.substring(0,i.length-2):i}function U0(i,t,e){return function(n,r){return typeof n=="string"&&e.endsWith(n,i)?t:null}}function F0(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 W0(i,t){let e=rS(i.slice(1,-1).split(",").map(a=>lg(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 d=0,u=e.length;d<u;d++)if(e[d](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(k0,Se),s=Se+o,a=Z.sep+i,l;return e?l=function(d,u){return typeof d=="string"&&(n.equals(d,o)||n.endsWith(d,s)||!r&&(n.equals(d,i)||n.endsWith(d,a)))?t:null}:l=function(d,u){return typeof d=="string"&&(n.equals(d,o)||!r&&n.equals(d,i))?t:null},l.allPaths=[(e?"*/":"./")+i],l}function $0(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:dg(i,e)(t)}function dg(i,t={}){if(!i)return Xb;if(typeof i=="string"||V0(i)){let e=lg(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 B0(i,t)}function V0(i){let t=i;return t?typeof t.base=="string"&&typeof t.pattern=="string":!1}function B0(i,t){let e=rS(Object.getOwnPropertyNames(i).map(a=>H0(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,c){let f;for(let m=0,h=e.length;m<h;m++){let v=e[m](u,c);if(typeof v=="string")return v;Pl(v)&&(f||(f=[]),f.push(v))}return f?(async()=>{for(let m of f){let h=await m;if(typeof h=="string")return h}return null})():null},l=e.find(u=>!!u.allBasenames);l&&(a.allBasenames=l.allBasenames);let d=e.reduce((u,c)=>c.allPaths?u.concat(c.allPaths):u,[]);return d.length&&(a.allPaths=d),a}let r=function(a,l,d){let u,c;for(let f=0,m=e.length;f<m;f++){let h=e[f];h.requiresSiblings&&d&&(l||(l=be(a)),u||(u=l.substring(0,l.length-Sl(a).length)));let v=h(a,l,u,d);if(typeof v=="string")return v;Pl(v)&&(c||(c=[]),c.push(v))}return c?(async()=>{for(let f of c){let m=await f;if(typeof m=="string")return m}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 H0(i,t,e){if(t===!1)return xn;let n=lg(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,d)=>{if(!d||!n(s,a))return null;let u=r.replace("$(basename)",()=>l),c=d(u);return Pl(c)?c.then(f=>f?i:null):c?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 d=l.basenames;return d?a.concat(d):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 d=l.patterns;return d?a.concat(d):a},[]);let o=function(a,l){if(typeof a!="string")return null;if(!l){let u;for(u=a.length;u>0;u--){let c=a.charCodeAt(u-1);if(c===47||c===92)break}l=a.substring(u)}let d=n.indexOf(l);return d!==-1?r[d]:null};o.basenames=n,o.patterns=r,o.allBasenames=n;let s=i.filter(a=>!a.basenames);return s.push(o),s}function cg(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 qd(i,t){return i.replace(/^~($|\/|\\)/,`${t}$1`)}import*as iS from"fs";var q0=new Set(["/dev/null","/dev/stdout","/dev/stderr","/dev/tty"]);function z0(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:q0.has(t))}function K0(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(z0(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 ug=/(?!.*)/,j0=/^[A-Z_][A-Z0-9_]*=/i,zd=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(j0.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 d=K0(l.node.text);d.kind==="unsafeWrite"&&a.push(d.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(J0)){let s=G0(r);o===!0?e.push({regex:s}):o===!1&&n.push({regex:s})}this._allowRules=e,this._denyRules=n}};function G0(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)?ug:o}catch{return ug}}if(i==="")return ug;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 J0={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",X0=[{id:oS,label:g(2115,null),kind:"approve",group:1},{id:"allow-once",label:g(2114,null),kind:"approve"},{id:"skip",label:g(2116,null),kind:"deny",group:2}],Z0={"**/*":!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 zd(this._logService))}initialize(){return this._commandAutoApprover.initialize()}getAutoApproval(e,n){let r=this._configService.getEffectiveValue(n,kt,"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():X0.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 St.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=qd(e.trim(),Y0());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(Z0))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,kt,"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,kt,"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 kw,release as Aw}from"os";import{networkInterfaces as rw}from"os";import{networkInterfaces as ew}from"os";var tw=new Set(["00:00:00:00:00:00","ff:ff:ff:ff:ff:ff","ac:de:48:00:11:22"]);function nw(i){let t=i.replace(/\-/g,":").toLowerCase();return!tw.has(t)}function sS(){let i=ew();for(let t in i){let e=i[t];if(e){for(let{mac:n}of e)if(nw(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=rw();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}},pg;async function Kd(i){return pg||(pg=(async()=>await iw(i)||K())()),pg}async function iw(i){try{let t=await import("crypto"),e=sS();return t.createHash("sha256").update(e,"utf8").digest("hex")}catch(t){i(t);return}}var ow="Software\\Microsoft\\SQMClient";async function aS(i){if(H){let t=await import("@vscode/windows-registry");try{return t.GetStringRegKey("HKEY_LOCAL_MACHINE",ow,"MachineId")||""}catch(e){return i(e),""}}return""}async function jd(i){try{let e=await(await import("@vscode/deviceid")).getDeviceId();return Yh(e)}catch(t){return i(t),K()}}var Jd;(t=>t.DEFAULT={allowTrailingComma:!0})(Jd||={});function gg(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 d(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 c(){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(Gd(_)){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(fg(v)){do e++,r+=String.fromCharCode(v),v=i.charCodeAt(e);while(fg(v));return s=15}if(Gd(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=c(),s=10;case 47:{let S=e-1;if(i.charCodeAt(e+1)===47){for(e+=2;e<n&&!Gd(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&&m(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 m(v){if(fg(v)||Gd(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:d,getPosition:()=>e,scan:t?h:f,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>e-o,getTokenError:()=>a}}function fg(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 Gd(i){return i===10||i===13||i===8232||i===8233}function Po(i){return i>=48&&i<=57}function Qd(i,t=[],e=Jd.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,d,u)=>{t.push({error:l,offset:d,length:u})}},e),r[0]}function lS(i,t=[],e=Jd.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,d,u)=>{n=o({type:"property",offset:d,length:-1,parent:n,children:[]}),n.children.push({type:"string",value:l,offset:d,length:u,parent:n})},onObjectEnd:(l,d)=>{n.length=l+d-n.offset,n=n.parent,r(l+d)},onArrayBegin:(l,d)=>{n=o({type:"array",offset:l,length:-1,parent:n,children:[]})},onArrayEnd:(l,d)=>{n.length=l+d-n.offset,n=n.parent,r(l+d)},onLiteralValue:(l,d,u)=>{o({type:sw(l),offset:d,length:u,parent:n,value:l}),r(d+u)},onSeparator:(l,d,u)=>{n.type==="property"&&(l===":"?n.colonOffset=d:l===","&&r(d))},onError:(l,d,u)=>{t.push({error:l,offset:d,length:u})}},e);let a=n.children[0];return a&&delete a.parent,a}function mg(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=Jd.DEFAULT){let n=gg(i,!1);function r(O){return O?()=>O(n.getTokenOffset(),n.getTokenLength()):()=>!0}function o(O){return O?j=>O(j,n.getTokenOffset(),n.getTokenLength()):()=>!0}let s=r(t.onObjectBegin),a=o(t.onObjectProperty),l=r(t.onObjectEnd),d=r(t.onArrayBegin),u=r(t.onArrayEnd),c=o(t.onLiteralValue),f=o(t.onSeparator),m=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):m();break;case 16:b(1);break;case 15:case 14:break;default:return O}}}function b(O,j=[],te=[]){if(h(O),j.length+te.length>0){let me=n.getToken();for(;me!==17;){if(j.indexOf(me)!==-1){_();break}else if(te.indexOf(me)!==-1)break;me=_()}}}function I(O){let j=n.getTokenValue();return O?c(j):a(j),_(),!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)}c(O);break}case 7:c(null);break;case 8:c(!0);break;case 9:c(!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(){d(),_();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 sw(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 cS(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=aw(r,e)}else r=i,n=0,o=0,s=0,a=i.length;let l=lw(e,i),d=!1,u=0,c;e.insertSpaces?c=hg(" ",e.tabSize||4):c="	";let f=gg(r,!1),m=!1;function h(){return l+hg(c,n+u)}function v(){let I=f.scan();for(d=!1;I===15||I===14;)d=d||I===14,I=f.scan();return m=I===16||f.getTokenError()!==0,I}let S=[];function _(I,R,P){!m&&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=hg(c,n);_(R,o,I)}for(;b!==17;){let I=f.getTokenOffset()+f.getTokenLength()+o,R=v(),P="";for(;!d&&(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:d?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&&(m=!0);break;case 16:m=!0;break}d&&(R===12||R===13)&&(P=h())}let J=f.getTokenOffset()+o;_(P,I,J),b=R}return S}function hg(i,t){let e="";for(let n=0;n<t;n++)e+=i;return e}function aw(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 lw(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,d;for(;o.length>0&&(d=o.pop(),l=mg(a,o),l===void 0&&e!==void 0);)typeof d=="string"?e={[d]:e}:e=[e];if(l)if(l.type==="object"&&typeof d=="string"&&Array.isArray(l.children)){let u=mg(l,[d]);if(u!==void 0)if(e===void 0){if(!u.parent)throw new Error("Malformed AST");let c=l.children.indexOf(u.parent),f,m=u.parent.offset+u.parent.length;if(c>0){let h=l.children[c-1];f=h.offset+h.length}else f=l.offset+1,l.children.length>1&&(m=l.children[1].offset);return Ao(i,{offset:f,length:m-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 c=`${JSON.stringify(d)}: ${JSON.stringify(e)}`,f=r?r(l.children.map(h=>h.children[0].value)):l.children.length,m;if(f>0){let h=l.children[f-1];m={offset:h.offset+h.length,length:0,content:","+c}}else l.children.length===0?m={offset:l.offset+1,length:0,content:c}:m={offset:l.offset+1,length:0,content:c+","};return Ao(i,m,n)}}else if(l.type==="array"&&typeof d=="number"&&Array.isArray(l.children))if(e!==void 0){let u=`${JSON.stringify(e)}`,c;if(l.children.length===0||d===0)c={offset:l.offset+1,length:0,content:l.children.length===0?u:u+","};else{let f=d===-1||d>l.children.length?l.children.length:d,m=l.children[f-1];c={offset:m.offset+m.length,length:0,content:","+u}}return Ao(i,c,n)}else{let u=d,c=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 m=l.children[u-1],h=m.offset+m.length,v=l.offset+l.length;f={offset:h,length:v-2-h,content:""}}else f={offset:c.offset,length:l.children[u+1].offset-c.offset,content:""};return Ao(i,f,n)}else throw new Error(`Can not add ${typeof d!="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=yg(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=cS(n,{offset:r,length:o-r},e);for(let l=s.length-1;l>=0;l--){let d=s[l];n=yg(n,d),r=Math.min(r,d.offset),o=Math.max(o,d.offset+d.length),o+=d.content.length-d.length}let a=i.length-(n.length-o)-r;return[{offset:r,length:a,content:n.substring(r,o)}]}function yg(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=yg(i,o);else throw new Error("Overlapping edit");n=o.offset}return i}var fS=$("configurationService");function Yd(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifier||typeof t.overrideIdentifier=="string")&&(!t.resource||t.resource instanceof y)}function gS(i){let t=i;return t&&typeof t=="object"&&(!t.overrideIdentifiers||Array.isArray(t.overrideIdentifiers))&&!t.overrideIdentifier&&(!t.resource||t.resource instanceof y)}function Xd(i,t){let e=Object.create(null);for(let n in i)vg(e,n,i[n],t);return e}function vg(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],d=s[l];switch(typeof d){case"undefined":d=s[l]=Object.create(null);break;case"object":if(d===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(d)}`);return}s=d}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 mS(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 d of a){if(typeof l!="object"||l===null)return;l=l[d]}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(dw(i,u=>{if(i===u)return!0;let c=JSON.stringify(u);if(c.length<30)return!0;let f=e.get(c);if(!f){let m={schemas:[u]};return e.set(c,m),n.set(u,m),!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,(c,f)=>{if(f!==u){let m=n.get(f);if(m&&m.schemas.length>1)return m.id||(m.id=`_${s.length}`,s.push(m.schemas[0])),{$ref:`#/${o}/${m.id}`}}return f})}let l=a(i),d=[];for(let u=0;u<s.length;u++)d.push(`"_${u}":${a(s[u])}`);return d.length?`${l.substring(0,l.length-1)},"${o}":{${d.join(",")}}}`:l}function Do(i){return typeof i=="object"&&i!==null}function dw(i,t){if(!i||typeof i!="object")return;let e=(...l)=>{for(let d of l)Do(d)&&s.push(d)},n=(...l)=>{for(let d of l)if(Do(d))for(let u in d){let c=d[u];Do(c)&&s.push(c)}},r=(...l)=>{for(let d of l)if(Array.isArray(d))for(let u of d)Do(u)&&s.push(u)},o=l=>{if(Array.isArray(l))for(let d of l)Do(d)&&s.push(d);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 Sg={JSONContribution:"base.contributions.json"};function bS(i){return i.length>0&&i.charAt(i.length-1)==="#"?i.substring(0,i.length-1):i}var bg=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}},cw=new bg;ot.add(Sg.JSONContribution,cw);var dt,Ig=globalThis.vscode;if(typeof Ig<"u"&&typeof Ig.context<"u"){let i=Ig.context.configuration();if(i)dt=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(dt=globalThis._VSCODE_PRODUCT_JSON,Pe.VSCODE_DEV&&Object.assign(dt,{nameShort:`${dt.nameShort} Dev`,nameLong:`${dt.nameLong} Dev`,dataFolderName:`${dt.dataFolderName}-dev`,serverDataFolderName:dt.serverDataFolderName?`${dt.serverDataFolderName}-dev`:void 0}),!dt.version){let i=globalThis._VSCODE_PACKAGE_JSON;Object.assign(dt,{version:i.version})}Object.assign(dt,{extensionsGallery:Pe.EXTENSIONS_GALLERY?JSON.parse(Pe.EXTENSIONS_GALLERY):dt.extensionsGallery||{serviceUrl:"https://open-vsx.org/vscode/gallery",itemUrl:"https://open-vsx.org/vscode/item",extensionUrlTemplate:"https://open-vsx.org/vscode/gallery/{publisher}/{name}/latest",resourceUrlTemplate:"https://open-vsx.org/vscode/asset/{publisher}/{name}/{version}/Microsoft.VisualStudio.Code.WebResources/{path}",controlUrl:"",recommendationsUrl:""},telemetryEndpoint:Pe.CS_TELEMETRY_URL||dt.telemetryEndpoint||"https://v1.telemetry.coder.com/track"})}else dt={nameShort:"code-server",nameLong:"code-server",applicationName:"code-server",dataFolderName:".code-server",sharedDataFolderName:".vscode-oss-shared",win32MutexName:"codeserver",licenseName:"MIT",licenseUrl:"https://github.com/coder/code-server/blob/main/LICENSE",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverGreeting:[],serverLicense:[],serverLicensePrompt:"",serverApplicationName:"code-server-oss",serverDataFolderName:".vscode-server-oss",tunnelApplicationName:"code-tunnel-oss",win32DirName:"code-server",win32NameVersion:"code-server",win32RegValueName:"CodeOSS",win32x64AppId:"{{D77B7E06-80BA-4137-BCF4-654B95CCEBC5}",win32arm64AppId:"{{D1ACE434-89C5-48D1-88D3-E2991DF85475}",win32x64UserAppId:"{{CC6B787D-37A0-49E8-AE24-8559A032BE0C}",win32arm64UserAppId:"{{3AEBF0C8-F733-4AD4-BADE-FDB816D53D7B}",win32AppUserModelId:"coder.code-server",win32ShellNameShort:"c&ode-server",win32TunnelServiceMutex:"vscodeoss-tunnelservice",win32TunnelMutex:"vscodeoss-tunnel",darwinBundleIdentifier:"com.coder.code.server",darwinProfileUUID:"47827DD9-4734-49A0-AF80-7E19B11495CC",darwinProfilePayloadUUID:"CF808BE7-53F3-46C6-A7E2-7EDB98A5E959",linuxIconName:"com.coder.code.server",licenseFileName:"LICENSE.txt",reportIssueUrl:"https://github.com/coder/code-server/issues/new",nodejsRepository:"https://nodejs.org",urlProtocol:"code-oss",agentsTelemetryAppName:"agents",webviewContentExternalBaseUrlTemplate:"https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/",builtInExtensions:[{name:"ms-vscode.js-debug-companion",version:"1.1.3",sha256:"7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",repo:"https://github.com/microsoft/vscode-js-debug-companion",metadata:{id:"99cb0b7f-7354-4278-b8da-6cc79972169d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.js-debug",version:"1.117.0",sha256:"854eeb8a785b1f41ba2bd02d7ccd4fdbe10021b61473293973c7e96d036c7fb8",repo:"https://github.com/microsoft/vscode-js-debug",metadata:{id:"25629058-ddac-4e17-abba-74678e126c5d",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}},{name:"ms-vscode.vscode-js-profile-table",version:"1.0.10",sha256:"7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",repo:"https://github.com/microsoft/vscode-js-profile-visualizer",metadata:{id:"7e52b41b-71ad-457b-ab7e-0620f1fc4feb",publisherId:{publisherId:"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",publisherName:"ms-vscode",displayName:"Microsoft",flags:"verified"},publisherDisplayName:"Microsoft"}}],defaultChatAgent:{extensionId:"GitHub.copilot",chatExtensionId:"GitHub.copilot-chat",chatExtensionOutputId:"GitHub.copilot-chat.GitHub Copilot Chat.log",chatExtensionOutputExtensionStateCommand:"github.copilot.debug.extensionState",documentationUrl:"https://aka.ms/github-copilot-overview",termsStatementUrl:"https://aka.ms/github-copilot-terms-statement",privacyStatementUrl:"https://aka.ms/github-copilot-privacy-statement",skusDocumentationUrl:"https://aka.ms/github-copilot-plans",publicCodeMatchesUrl:"https://aka.ms/github-copilot-match-public-code",managePlanUrl:"https://aka.ms/github-copilot-manage-plan",upgradePlanUrl:"https://aka.ms/github-copilot-upgrade-plan",signUpUrl:"https://aka.ms/github-sign-up",provider:{default:{id:"github",name:"GitHub"},enterprise:{id:"github-enterprise",name:"GHE"},google:{id:"google",name:"Google"},apple:{id:"apple",name:"Apple"}},providerExtensionId:"vscode.github-authentication",providerUriSetting:"github-enterprise.uri",providerScopes:[["read:user","user:email","repo","workflow"],["user:email"],["read:user"]],entitlementUrl:"https://api.github.com/copilot_internal/user",entitlementSignupLimitedUrl:"https://api.github.com/copilot_internal/subscribe_limited_user",chatQuotaExceededContext:"github.copilot.chat.quotaExceeded",completionsQuotaExceededContext:"github.copilot.completions.quotaExceeded",walkthroughCommand:"github.copilot.open.walkthrough",completionsMenuCommand:"github.copilot.toggleStatusMenu",chatRefreshTokenCommand:"github.copilot.refreshToken",generateCommitMessageCommand:"github.copilot.git.generateCommitMessage",resolveMergeConflictsCommand:"github.copilot.git.resolveMergeConflicts",completionsAdvancedSetting:"github.copilot.advanced",completionsEnablementSetting:"github.copilot.enable",nextEditSuggestionsSetting:"github.copilot.nextEditSuggestions.enabled",tokenEntitlementUrl:"https://api.github.com/copilot_internal/v2/token",mcpRegistryDataUrl:"https://api.github.com/copilot/mcp_registry"},trustedExtensionAuthAccess:["vscode.git","vscode.github","github.vscode-pull-request-github","github.copilot","github.copilot-chat"],onboardingKeymaps:[{id:"vscode",label:"VS Code",description:"Default keyboard mapping"},{id:"sublime",label:"Sublime Text",extensionId:"ms-vscode.sublime-keybindings",description:"Keyboard mapping from Sublime Text"},{id:"intellij",label:"IntelliJ / JetBrains",extensionId:"k--kato.intellij-idea-keybindings",description:"Keyboard mapping from IntelliJ IDEA"},{id:"vim",label:"Vim",extensionId:"vscodevim.vim",description:"Vim modal editing"},{id:"eclipse",label:"Eclipse",extensionId:"alphabotsec.vscode-eclipse-keybindings",description:"Keyboard mapping from Eclipse"},{id:"notepadpp",label:"Notepad++",extensionId:"ms-vscode.notepadplusplus-keybindings",description:"Keyboard mapping from Notepad++"}],onboardingThemes:[{id:"dark-2026",label:"Dark 2026",themeId:"Dark 2026",type:"dark"},{id:"hc-dark",label:"Dark High Contrast",themeId:"Default High Contrast",type:"hcDark"},{id:"solarized-dark",label:"Solarized Dark",themeId:"Solarized Dark",type:"dark"},{id:"light-2026",label:"Light 2026",themeId:"Light 2026",type:"light"},{id:"hc-light",label:"Light High Contrast",themeId:"Default High Contrast Light",type:"hcLight"},{id:"solarized-light",label:"Solarized Light",themeId:"Solarized Light",type:"light"}],builtInExtensionsEnabledWithAutoUpdates:["GitHub.copilot-chat"],sessionsWindowAllowedExtensions:[],enableTelemetry:!0,quality:"stable",codeServerVersion:"4.122.0",documentationUrl:"https://go.microsoft.com/fwlink/?LinkID=533484#vscode",keyboardShortcutsUrlMac:"https://go.microsoft.com/fwlink/?linkid=832143",keyboardShortcutsUrlLinux:"https://go.microsoft.com/fwlink/?linkid=832144",keyboardShortcutsUrlWin:"https://go.microsoft.com/fwlink/?linkid=832145",introductoryVideosUrl:"https://go.microsoft.com/fwlink/?linkid=832146",tipsAndTricksUrl:"https://go.microsoft.com/fwlink/?linkid=852118",newsletterSignupUrl:"https://www.research.net/r/vsc-newsletter",linkProtectionTrustedDomains:["https://open-vsx.org"],aiConfig:{ariaKey:"code-server"},version:"1.122.0",commit:"d98fcd359834687122bdc559922e33a6eee34bff",date:"2026-05-27T14:03:01-07:00"},Object.keys(dt).length===0&&Object.assign(dt,{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=dt;var Yt={Configuration:"base.contributions.configuration"};function uw(i,t){return i===t?!0:!i||!t?!1:typeof i=="string"||typeof t=="string"?i===t:i.id===t.id}var Zd={properties:{},patternProperties:{}},ec={properties:{},patternProperties:{}},tc={properties:{},patternProperties:{}},nc={properties:{},patternProperties:{}},rc={properties:{},patternProperties:{}},ic={properties:{},patternProperties:{}},Aa={properties:{},patternProperties:{}},Si="vscode://schemas/settings/resourceLanguage";var oc=ot.as(Sg.JSONContribution),_g=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:g(2124,null),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},oc.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),oc.registerSchema(Si,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}deregisterConfigurations(e){let n=new Set;this.doDeregisterConfigurations(e,n),oc.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),oc.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),d=o[a];if(l.configurationDefaultOverrides.push({value:d,source:s}),wn.test(a)){let u=this.mergeDefaultConfigurationsForOverrideIdentifier(a,d,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u,this.updateDefaultOverrideProperty(a,u,s),r.push(...Oo(a))}else{let u=this.mergeDefaultConfigurationsForConfigurationProperty(a,d,s,l.configurationDefaultOverrideValue);if(!u)continue;l.configurationDefaultOverrideValue=u;let c=this.configurationProperties[a];c&&(this.updatePropertyDefaultValue(a,c),this.updateSchema(a,c))}}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(d=>o?uw(d.source,o):d.value===r[s]);if(l!==-1){if(a.configurationDefaultOverrides.splice(l,1),a.configurationDefaultOverrides.length===0&&this.configurationDefaultsOverrides.delete(s),wn.test(s)){let d;for(let u of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForOverrideIdentifier(s,u.value,u.source,d);d&&!ll(d.value)?(a.configurationDefaultOverrideValue=d,this.updateDefaultOverrideProperty(s,d,o)):(this.configurationDefaultsOverrides.delete(s),delete this.configurationProperties[s],delete this.defaultLanguageConfigurationOverridesNode.properties[s])}else{let d;for(let c of a.configurationDefaultOverrides)d=this.mergeDefaultConfigurationsForConfigurationProperty(s,c.value,c.source,d);a.configurationDefaultOverrideValue=d;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:g(2123,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 d=n[l];if(De(d)&&(ki(s[l])||De(s[l]))){if(s[l]={...s[l]??{},...d},r)for(let c in d)a.set(`${l}.${c}`,r)}else s[l]=d,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(De(n)&&(s!==void 0&&s.type==="object"||s===void 0&&(ki(a)||De(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={...De(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 c=l[u];if(c.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},n&&fw(u,c,r?.id)){delete l[u];continue}c.source=r,c.defaultDefaultValue=l[u].default,this.updatePropertyDefaultValue(u,c),wn.test(u)?c.scope=void 0:(c.scope=en(c.scope)?s:c.scope,c.restricted=en(c.restricted)?!!o?.includes(u):c.restricted),c.experiment?c.tags?.some(h=>h.toLowerCase()==="onexp")||(c.tags=c.tags??[],c.tags.push("onExP")):c.tags?.some(h=>h.toLowerCase()==="onexp")&&(console.error(`Invalid tag 'onExP' found for property '${u}'. Please use 'experiment' property instead.`),c.experiment={mode:"startup"});let f=l[u].hasOwnProperty("included")&&!l[u].included,m=l[u].policy?.name;f?(this.excludedConfigurationProperties[u]=l[u],m&&(this.policyConfigurations.set(m,u),a.add(u)),delete l[u]):(a.add(u),m&&this.policyConfigurations.set(m,u),this.configurationProperties[u]=l[u],!l[u].deprecationMessage&&l[u].markdownDeprecationMessage&&(l[u].deprecationMessage=l[u].markdownDeprecationMessage))}let d=e.allOf;if(d)for(let u of d)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(Zd.properties[e]=n,n.scope){case 1:ec.properties[e]=n;break;case 2:nc.properties[e]=n;break;case 3:tc.properties[e]=n;break;case 7:rc.properties[e]=n;break;case 4:ic.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 Zd.properties[e],n.scope){case 1:delete ec.properties[e];break;case 2:delete nc.properties[e];break;case 3:delete tc.properties[e];break;case 7:delete rc.properties[e];break;case 4:delete ic.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:g(2125,null),errorMessage:g(2126,null),$ref:Si};this.updatePropertyDefaultValue(n,r),Zd.properties[n]=r,ec.properties[n]=r,tc.properties[n]=r,nc.properties[n]=r,rc.properties[n]=r,ic.properties[n]=r,Aa.properties[n]=r}}registerOverridePropertyPatternKey(){let e={type:"object",description:g(2125,null),errorMessage:g(2126,null),$ref:Si};Zd.patternProperties[Lr]=e,ec.patternProperties[Lr]=e,tc.patternProperties[Lr]=e,nc.patternProperties[Lr]=e,rc.patternProperties[Lr]=e,ic.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=pw(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 pw(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 sc=new _g;ot.add(Yt.Configuration,sc);function fw(i,t,e){return i.trim()?wn.test(i)?g(2122,null,i):sc.getConfigurationProperties()[i]!==void 0&&(!e||!gw.has(e.toLowerCase()))?g(2120,null,i):t.policy?.name&&sc.getPolicyConfigurations().get(t.policy?.name)!==void 0?g(2119,null,i,t.policy?.name,sc.getPolicyConfigurations().get(t.policy?.name)):null:g(2121,null)}var gw=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 Ae=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 ac("",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(d=>Zt(d.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&&De(t[n])&&De(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),mS(this.contents,t),wn.test(t)&&this.overrides.splice(this.overrides.findIndex(n=>Zt(n.identifiers,Oo(t))),1))}updateValue(t,e,n){if(vg(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:Xd(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)}}},ac=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||Ae.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 Ae(n,r,o,a?[t]:void 0,this.logService),this._restrictedConfigurations=s||[]}doParseContent(t){let e={},n=null,r=[],o=[],s=[];function a(d){Array.isArray(r)?r.push(d):n!==null&&(r[n]=d)}let l={onObjectBegin:()=>{let d={};a(d),o.push(r),r=d,n=null},onObjectProperty:d=>{n=d},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let d=[];a(d),o.push(r),r=d,n=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:a,onError:(d,u,c)=>{s.push({error:d,offset:u,length:c})}};if(t)try{ko(t,l),e=r[0]||{}}catch(d){this.logService.error(`Error while parsing settings file ${this._name}: ${d}`),this._parseErrors=[d]}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=Xd(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`)),l=Object.keys(t),d=this.toOverrides(t,u=>this.logService.error(`Conflict in settings file ${this._name}: ${u}`));return{contents:a,keys:l,overrides:d,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 d in t)if(wn.test(d)&&r){let u=this.filter(t[d],e,n,!1,o);a[d]=u.raw,s=s||u.hasExcludedProperties,l.push(...u.restricted)}else{let u=e[d];u?.restricted&&l.push(d),this.shouldInclude(d,u,n,o)?a[d]=t[d]: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:Xd(o,e)})}return n}},lc=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 ac(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 Ae.createEmptyModel(this.logService)}}reparse(e){return e&&(this.parseOptions=e),this.parser.reparse(this.parseOptions),this.parser.configurationModel}getRestrictedSettings(){return this.parser.restrictedConfigurations}},Cg=class{constructor(t,e,n,r,o,s,a,l,d,u,c,f,m){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=d;this.remoteUserConfiguration=u;this.workspaceConfiguration=c;this.folderConfigurationModel=f;this.memoryConfigurationModel=m}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,d,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=d;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=Ae.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 d of l.identifiers)r.getOverrideValue(t,d)!==void 0&&a.add(d);return new Cg(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(d=>s.indexOf(d)===-1),...s.filter(d=>a.indexOf(d)===-1),...s.filter(d=>!Le(this._defaultConfiguration.override(o).getValue(d),t.override(o).getValue(d)))];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 Ae(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),d=t.folders.reduce((u,c)=>(u.set(y.revive(c[0]),this.parseConfigurationModel(c[1],e)),u),new Re);return new i(n,r,o,s,a,l,d,Ae.createEmptyModel(e),new Re,e)}static parseConfigurationModel(t,e){return new Ae(t.contents,t.keys,t.overrides,t.raw,e)}};var dc=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!Le(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(d=>!s.includes(d));for(let d of l)o.push([d,t.getKeysForOverrideIdentifier(d)])}if(i){let l=s.filter(d=>!a.includes(d));for(let d of l)o.push([d,i.getKeysForOverrideIdentifier(d)])}if(t&&i){for(let l of s)if(a.includes(l)){let d=CS({contents:i.getOverrideValue(void 0,l)||{},keys:i.getKeysForOverrideIdentifier(l)},{contents:t.getOverrideValue(void 0,l)||{},keys:t.getKeysForOverrideIdentifier(l)});o.push([l,[...d.added,...d.removed,...d.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);Le(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 cc=class extends T{constructor(e){super();this.logService=e;this._onDidChangeConfiguration=this._register(new x);this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this._configurationModel=Ae.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=Ae.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)}},uc=class{constructor(){this.onDidChangeConfiguration=X.None;this.configurationModel=Ae.createEmptyModel(new pd)}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=Ae.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:d,restrictedValue:u}=l.policy;r.push(a),n[l.policy.name]={type:l.type==="number"?"number":l.type==="boolean"?"boolean":"string",value:d,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 d=r[l]??o[l],u=d?.policy?.name;if(u){let c=this.policyService.getPolicyValue(u);if(Ee(c)&&d.type!=="string")try{c=this.parse(c)}catch(f){this.logService.error(`Error parsing policy value ${u}:`,il(f));continue}(a?c!==void 0:!Le(this._configurationModel.getValue(l),c))&&s.push([l,c])}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=Ae.createEmptyModel(this.logService);for(let d of l.keys)this._configurationModel.setValue(d,l.getValue(d));for(let[d,u]of s)u===void 0?this._configurationModel.removeValue(d):this._configurationModel.setValue(d,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,c,f)=>{a.push({error:u,offset:c,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 pc=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 cc(o)),this.policyConfiguration=r instanceof Mo?new uc:this._register(new No(this.defaultConfiguration,r,o)),this.userConfiguration=this._register(new lc(this.settingsResource,{},St,n,o)),this.configuration=new Lo(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,Ae.createEmptyModel(o),Ae.createEmptyModel(o),Ae.createEmptyModel(o),Ae.createEmptyModel(o),new Re,Ae.createEmptyModel(o),new Re,o),this.configurationEditing=new Tg(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,Ae.createEmptyModel(this.logService),r,Ae.createEmptyModel(this.logService),Ae.createEmptyModel(this.logService),new Re,Ae.createEmptyModel(this.logService),new Re,this.logService)}getConfigurationData(){return this.configuration.toData()}getValue(e,n){let r=typeof e=="string"?e:void 0,o=Yd(e)?e:Yd(n)?n:{};return this.configuration.getValue(r,o,void 0)}async updateValue(e,n,r,o,s){let a=gS(r)?r:Yd(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 d=this.inspect(e,{resource:a?.resource,overrideIdentifier:a?.overrideIdentifiers?a.overrideIdentifiers[0]:void 0});if(d.policyValue!==void 0)throw new Error(`Unable to write ${e} because it is configured in system policy.`);if(Le(n,d.defaultValue)&&(n=void 0),a?.overrideIdentifiers?.length&&a.overrideIdentifiers.length>1){let c=a.overrideIdentifiers.sort(),f=this.configuration.localUserConfiguration.overrides.find(m=>Zt([...m.identifiers].sort(),c));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 dc(e,{data:n},this.configuration,void 0,this.logService);o.source=r,this._onDidChangeConfiguration.fire(o)}},Tg=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(Qd(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=ft===3||ft===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 cB=$("requestService"),ES="NO_FETCH_TELEMETRY";var yw=!1,xg=[],wS,RS;function vw(i=!0,t=!0){if(wS===i&&RS===t)return;wS=i,RS=t;let e=ot.as(Yt.Configuration),n=xg;xg=[{id:"http",order:15,title:g(2495,null),type:"object",scope:2,properties:{"http.useLocalProxyConfiguration":{type:"boolean",default:t,markdownDescription:g(2510,null),restricted:!0}}},{id:"http",order:15,title:g(2495,null),type:"object",scope:1,properties:{"http.electronFetch":{type:"boolean",default:!1,description:g(2493,null),restricted:!0}}},{id:"http",order:15,title:g(2495,null),type:"object",scope:i?1:2,properties:{"http.proxy":{type:"string",pattern:"^(https?|socks|socks4a?|socks5h?)://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",markdownDescription:g(2498,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyStrictSSL":{type:"boolean",default:!0,markdownDescription:g(2506,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyKerberosServicePrincipal":{type:"string",markdownDescription:g(2500,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.noProxy":{type:"array",items:{type:"string"},markdownDescription:g(2497,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxyAuthorization":{type:["null","string"],default:null,markdownDescription:g(2499,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.proxySupport":{type:"string",enum:["off","on","fallback","override"],enumDescriptions:[g(2503,null),g(2504,null),g(2502,null),g(2505,null)],default:"override",markdownDescription:g(2501,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificates":{type:"boolean",default:!0,markdownDescription:g(2507,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.systemCertificatesNode":{type:"boolean",tags:["experimental"],default:yw,markdownDescription:g(2508,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}},"http.experimental.systemCertificatesV2":{type:"boolean",tags:["experimental"],default:!1,markdownDescription:g(2509,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0},"http.fetchAdditionalSupport":{type:"boolean",default:!0,markdownDescription:g(2494,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.webSocketAdditionalSupport":{type:"boolean",default:!0,markdownDescription:g(2511,null,"`#http.useLocalProxyConfiguration#`","`#http.proxySupport#`","`#http.systemCertificates#`"),restricted:!0},"http.experimental.networkInterfaceCheckInterval":{type:"number",default:300,minimum:-1,tags:["experimental"],markdownDescription:g(2496,null,"`#http.useLocalProxyConfiguration#`"),restricted:!0,experiment:{mode:"auto"}}}}],e.updateConfigurations({add:xg,remove:n})}vw();var bw=!1,Rg=class{constructor(t,e,n){this.id=t;this.dependencies=e;this.callback=n}};var Eg=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 Rg(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=K();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}}},wg=new Map;async function Pg(i,t,e){e===void 0&&(e=!!(globalThis._VSCODE_PRODUCT_JSON??globalThis.vscode?.context?.configuration()?.product)?.commit);let n=t?`${i}/${t}`:i;if(wg.has(n))return wg.get(n);let r;if(/^\w[\w\d+.-]*:\/\//.test(n))r=n;else{let l=`${bw&&e&&!bt?cy:dy}/${n}`;r=tt.asBrowserUri(l).toString(!0)}let o=Eg.INSTANCE.load(r);return wg.set(n,o),o}function Sw(i){if(gp===2&&/^penguin(\.|$)/i.test(i))return"chromebook"}function PS(i,t,e,n,r,o,s,a,l,d,u){let c=Object.create(null);c["common.machineId"]=o,c["common.sqmId"]=s,c["common.devDeviceId"]=a,c.sessionID=K()+Date.now(),c.commitHash=n,c.version=r,c["common.releaseDate"]=d,c["common.platformVersion"]=(i||"").replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/,"$1$2$3"),c["common.platform"]=_h(gp),c["common.nodePlatform"]=Mi,c["common.nodeArch"]=e,c["common.product"]=u||"desktop",l&&(c["common.msftInternal"]=l);let f=0,m=Date.now();Object.defineProperties(c,{timestamp:{get:()=>new Date,enumerable:!0},"common.timesincesessionstart":{get:()=>Date.now()-m,enumerable:!0},"common.sequence":{get:()=>f++,enumerable:!0}}),Ch&&(c["common.snap"]="true");let h=Sw(t);return h&&(c["common.platformDetail"]=h),c}function kS(i){let t=Pe.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}},kg=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(){}},fc=new kg;var Ag="telemetry",AS={id:Ag,name:g(2535,null)};function DS(i,t){return!t.isBuilt&&!t.disableTelemetry?!0:!(t.disableTelemetry||!i.enableTelemetry)}function gc(i,t){return t.extensionTestsLocationURI?!0:!(t.isBuilt||t.disableTelemetry||i.enableTelemetry&&i.aiConfig?.ariaKey)}function OS(i){let t=i.getValue(mo),e=i.getValue(bd);if(i.getValue(ma)===!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 mc(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():De(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 Iw(i,t){if(!i||!i.includes("/")&&!i.includes("\\"))return i;let e=i,n=[];for(let l of t)for(;;){let d=l.exec(i);if(!d)break;n.push([d.index,l.lastIndex])}let 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,c])=>l.index<c&&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 c=r.exec(l[0]);c?e+=i.substring(a,l.index)+"<REDACTED: user-file-path>/"+c[1]:e+=i.substring(a,l.index)+"<REDACTED: user-file-path>"}a=s.lastIndex}}return a<i.length&&(e+=i.substr(a)),e}function _w(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=Iw(n,t);for(let r of t)n=n.replace(r,"");return n=_w(n),n}}):{}}var FS="https://mobile.events.data.microsoft.com/OneCollector/1.0",Cw="https://mobile.events.data.microsoft.com/ping";async function Tw(i,t,e){let n=bt?await Pg("@microsoft/1ds-core-js","bundle/ms.core.min.js"):await import("@microsoft/1ds-core-js"),r=bt?await Pg("@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 hc=class{constructor(t,e,n,r,o){this._isInternalTelemetry=t;this._eventPrefix=e;this._defaultData=n;this._xhrOverride=o;this.endPointUrl=FS;this.endPointHealthUrl=Cw;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=Tw(this._aiCoreOrKey,this._isInternalTelemetry,this._xhrOverride)),this._asyncAiCore.then(e=>{t(e)},e=>{Me(e),console.error(e)})}}log(t,e){if(!this._aiCoreOrKey)return;e=eo(e,this._defaultData);let n=mc(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 xw(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 ww(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 Rw(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 xw(r,i):await ww(r);e(o.statusCode,o.headers,o.responseData)}catch{e(0,{})}}var yc=class extends hc{constructor(t,e,n,r,o){let s={sendPOST:(a,l)=>{Rw(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":Ag,l=r.getLogger(a);if(l)this.logger=this._register(l);else{let u=gc(s,o)?" (Not Sent)":"";this.logger=this._register(r.createLogger(a,{name:g(2515,null,u),group:AS,hidden:!0}))}}flush(){return Promise.resolve()}log(e,n){this.logger.trace(`${this.prefix}telemetry/${e}`,mc(n))}};Uo=w([C(2,kv),C(3,Ta),C(4,Pt)],Uo);var aH={Extensions:{name:{key:"extensionsConfigurationTitle",value:g(138,null)}},IntegratedTerminal:{name:{key:"terminalIntegratedConfigurationTitle",value:g(141,null)}},InteractiveSession:{name:{key:"interactiveSessionConfigurationTitle",value:g(139,null)}},Telemetry:{name:{key:"telemetryConfigurationTitle",value:g(140,null)}},Update:{name:{key:"updateConfigurationTitle",value:g(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(mo)||r.affectsConfiguration(ma)||r.affectsConfiguration(bd))&&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,Pt)],ir);function Ew(){let i=g(2532,null,At.nameLong),t=At.privacyStatementUrl?g(2518,null,"https://aka.ms/vscode-telemetry",At.privacyStatementUrl):g(2519,null,"https://aka.ms/vscode-telemetry"),e=bt?"":g(2524,null),n=g(2517,null),r=g(2522,null),o=g(2533,null),s=g(2531,null),a=`
|       | ${n} | ${r} | ${o} |
|:------|:-------------:|:---------------:|:----------:|
| all   |       \u2713       |        \u2713        |     \u2713      |
| error |       \u2713       |        \u2713        |     -      |
| crash |       \u2713       |        -        |     -      |
| off   |       -       |        -        |     -      |
`,l=g(2527,null);return`
${i} ${t} ${e}

&nbsp;

${s}
${a}

&nbsp;

${l}
`}var Pw=ot.as(Yt.Configuration);Pw.registerConfiguration({id:ob,order:1,type:"object",title:g(2534,null),properties:{[mo]:{type:"string",enum:["all","error","crash","off"],enumDescriptions:[g(2526,null),g(2528,null),g(2525,null),g(2529,null)],markdownDescription:Ew(),default:"all",restricted:!0,scope:1,tags:["usesOnlineServices","telemetry"],policy:{name:"TelemetryLevel",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.telemetryLevel.policyDescription",value:g(2530,null)},enumDescriptions:[{key:"telemetry.telemetryLevel.default",value:g(2526,null)},{key:"telemetry.telemetryLevel.error",value:g(2528,null)},{key:"telemetry.telemetryLevel.crash",value:g(2525,null)},{key:"telemetry.telemetryLevel.off",value:g(2529,null)}]}}},"telemetry.feedback.enabled":{type:"boolean",default:!0,description:g(2523,null),policy:{name:"EnableFeedback",category:"Telemetry",minimumVersion:"1.99",localization:{description:{key:"telemetry.feedback.enabled",value:g(2523,null)}}}},[ma]:{type:"boolean",markdownDescription:At.privacyStatementUrl?g(2521,null,At.nameLong,At.privacyStatementUrl):g(2520,null,At.nameLong),default:!0,restricted:!0,markdownDeprecationMessage:g(2516,null,`\`#${mo}#\``),scope:1,tags:["usesOnlineServices","telemetry"]}}});var vc=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 bc(i,t){let e=t?.[ya],n=cb(e);!Dw(i)||n===void 0||i.updateTelemetryLevel(n)}function Dw(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 vc(fc));let a=s.add(new pc(ee(t.appSettingsHome,"settings.json"),n,new Mo,o));await a.initialize();let l=[s.add(new Uo("",!1,r,t,e))],d=MS(e,a);if(!gc(e,t)&&e.aiConfig?.ariaKey){let h=new yc(void 0,d,"monacoworkbench",null,e.aiConfig.ariaKey);s.add(A(()=>{h.flush()})),l.push(h)}let[u,c,f]=await Promise.all([Kd(h=>o.error(h)),aS(h=>o.error(h)),jd(h=>o.error(h))]),m=new ir({appenders:l,sendErrorTelemetry:!0,commonProperties:PS(Aw(),kw(),process.arch,e.commit,e.version,u,c,f,d,e.date),piiPaths:NS(t)},a,e);return s.add(new vc(m))}var Sc=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:vd(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 Sc(this._telemetryService),this._permissionManager=this._register(r.createInstance(Eo,this._stateManager)),this._register(xr(d=>{let u=this._options.agents.read(d);this._publishAgentInfos(u,d)})),this._register(this._stateManager.onDidEmitEnvelope(d=>{if(!d.origin&&d.action.type==="session/toolCallComplete"){let u=d.action;this._options.getAgent(d.channel)?.onClientToolCallComplete(y.parse(d.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(),d=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:d?.length?[...d]:void 0,protectedResources:a.length>0?a:void 0}});Le(this._lastAgentInfos,r)||(this._lastAgentInfos=r,this._stateManager.dispatchServerAction(Ke,{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 d=this._pendingSubagentSignals.get(a);d||(d=[],this._pendingSubagentSignals.set(a,d)),d.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(Oe(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 d=this._stateManager.getSessionState(n),c=this._getRunningToolCallContent(d,r,s.toolCallId).find(f=>Oe(f,{type:!0})&&f.type==="subagent");if(c){let f=[...s.result.content??[],c];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=go(e,n),l=`${e}:${n}`;if(this._subagentSessions.has(l))return;this._logService.info(`[AgentSideEffects] Creating subagent session: ${a} (parent=${e}, toolCallId=${n})`);let d=this._stateManager.getSessionState(e);this._stateManager.restoreSession({resource:a,provider:"subagent",title:o,status:1,createdAt:Date.now(),modifiedAt:Date.now(),...d?.summary.project?{project:d.summary.project}:{}},[]);let u=K();this._stateManager.dispatchServerAction(a,{type:"session/turnStarted",turnId:u,userMessage:{text:""}}),this._subagentSessions.set(l,a);let c=this._stateManager.getActiveTurnId(e);if(c){let f=this._stateManager.getSessionState(e),h=[...this._getRunningToolCallContent(f,c,n),{type:"subagent",resource:a,title:o,agentName:r,description:s}];this._stateManager.dispatchServerAction(e,{type:"session/toolCallContentChanged",turnId:c,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 d=l?.code;this._logService.error(`[AgentSideEffects] sendMessage failed for session=${e}: code=${d}, 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":{bc(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=K();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,Vd),C(5,Pr),C(6,Tn)],Fo);var Dg={[wa]:!0,[Ra]:!0,[Ea]:!0},Ic=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 Dg}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 m=Kb(r,s,a);return m?{...e,changesets:m}:e}let d=n[wa],u=n[Ra],c=n[Ea];if(d===void 0&&u===void 0&&c===void 0)return e;let f=this._changesets.parsePersistedStaticChangesets(r,{uncommittedRaw:d,sessionRaw:u,legacyRaw:c});if(!o){let m=jb(r,f.uncommitted,f.session);if(m)return{...e,changesets:m}}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 _c=$("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 Ow=60,Lw=Ow*60,Og=Lw*24,Mq=Og*7,Nq=Og*30,Uq=Og*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 Cc={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(mr,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=Cc.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:i,collatorIsNumeric:i.resolvedOptions().numeric}}),Bq=new we(()=>({collator:Cc.Collator(void 0,{numeric:!0}).value})),Hq=new we(()=>({collator:Cc.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function Mw(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 Tc(i,t,e){let n=i.toLowerCase(),r=t.toLowerCase(),o=Nw(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=Mw(n,r);return l!==0?l:n.localeCompare(r)}function Nw(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 Kq=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),jq=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),wc=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 Uw(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 Fw(i,t){return i.length>t.length?null:Lg(i.toLowerCase(),t.toLowerCase(),0,0)}function Lg(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=Lg(i,t,e+1,n+1))?KS({start:n,end:n+1},r):null}return Lg(i,t,e,n+1)}function Ng(i){return 97<=i&&i<=122}function $o(i){return 65<=i&&i<=90}function Ug(i){return 48<=i&&i<=57}function Ww(i){return i===32||i===9||i===10||i===13}var $w=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(i=>$w.add(i.charCodeAt(0)));function zS(i){return Ng(i)||$o(i)||Ug(i)}function KS(i,t){return t.length===0?t=[i]:i.end===t[0].start?t[0].start=i.start:t.unshift(i),t}function jS(i,t){for(let e=t;e<i.length;e++){let n=i.charCodeAt(e);if($o(n)||Ug(n)||e>0&&!zS(i.charCodeAt(e-1)))return e}return i.length}function Mg(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=Mg(i,t,e+1,n+1);!r&&(o=jS(t,o))<t.length;)r=Mg(i,t,e+1,o),o++;return r===null?null:KS({start:n,end:n+1},r)}}function Vw(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++,Ng(o)&&e++,zS(o)&&n++,Ug(o)&&r++;let s=t/i.length,a=e/i.length,l=n/i.length,d=r/i.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:d}}function Bw(i){let{upperPercent:t,lowerPercent:e}=i;return e===0&&t>.6}function Hw(i){let{upperPercent:t,lowerPercent:e,alphaPercent:n,numericPercent:r}=i;return e>.2&&t<.8&&n>.6&&r<.2}function qw(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++,Ng(n)&&e++,Ww(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)||!qw(i))return null;t.length>60&&(t=t.substring(0,60));let e=Vw(t);if(!Hw(e)){if(!Bw(e))return null;t=t.toLowerCase()}let n=null,r=0;for(i=i.toLowerCase();r<t.length&&(n=Mg(i,t,0,r))===null;)r=jS(t,r+1);return n}var oz=HS(wc,GS,Uw),sz=HS(wc,GS,Fw),az=new pn(1e4);var xc=128;function Fg(){let i=[],t=[];for(let e=0;e<=xc;e++)t[e]=0;for(let e=0;e<=xc;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*xc),dz=JS(2*xc),cz=Fg(),uz=Fg(),pz=Fg();var zw;(e=>{e.Default=[-100,0];function t(n){return!n||n.length===2&&n[0]===-100&&n[1]===0}e.isDefault=t})(zw||={});var BS=class{constructor(t,e){this.firstMatchCanBeWeak=t;this.boostFullMatch=e}static{this.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}}};var Ec=0,QS=[Ec,[]];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 Kw(t,e,o,i,s,r,n)}function Kw(i,t,e,n,r,o,s){let a=[],l=[];for(let f=0;f<e;f++){let m=f*o,h=m-o,v=f>0,S=i[f],_=t[f];for(let b=0;b<o;b++){let I=b>0,R=m+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,j;!L&&v?j=0:j=jw(S,_,n,r,b,O),j&&L+j>=E&&(s||v||r.startsWith(t,b))?(l[R]=O+1,a[R]=L+j):(l[R]=Ec,a[R]=E)}}let d=[],u=e-1,c=o-1;for(;u>=0&&c>=0;){let f=u*o+c;l[f]===Ec||(d.push(c),u--),c--}return[a[e*o-1],d.reverse()]}function jw(i,t,e,n,r,o){let s=0;if(!Gw(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=Jw(e.charCodeAt(r-1));a?s+=a:$o(e.charCodeAt(r))&&o===0&&(s+=2)}return s}function Gw(i,t){return i===t?!0:i==="/"||i==="\\"?t==="/"||t==="\\":!1}function Jw(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 Pc=Object.freeze({score:0}),Rc=1<<18,Wg=1<<17,$g=65536;function Qw(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 kc(i,t,e,n,r){if(!i||!t.normalized)return Pc;let o=n.getItemLabel(i);if(!o)return Pc;let s=n.getItemDescription(i),a=Qw(o,s,e,t),l=r[a];if(l)return l;let d=Yw(o,s,n.getItemPath(i),t,e);return r[a]=d,d}function Yw(i,t,e,n,r){let o=!e||!n.containsPathSeparator;return e&&(he?n.pathNormalized===e:Bn(n.pathNormalized,e))?{score:Rc,labelMatch:[{start:0,end:i.length}],descriptionMatch:t?[{start:0,end:t.length}]:void 0}:n.values&&n.values.length>1?Xw(i,t,e,n.values,o,r):rI(i,t,e,n,o,r)}function Xw(i,t,e,n,r,o){let s=0,a=[],l=[];for(let d of n){let{score:u,labelMatch:c,descriptionMatch:f}=rI(i,t,e,d,r,o);if(u===Ec)return Pc;s+=u,c&&a.push(...c),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=wc(n.normalized,i),d;if(l){d=Wg;let u=Math.round(n.normalized.length/i.length*100);d+=u}else d=$g;return{score:d+s,labelMatch:l||XS(a)}}}if(t){let s=t;e&&(s=`${t}${Se}`);let a=s.length,l=`${s}${i}`,[d,u]=YS(l,n.normalized,n.normalizedLowercase,o&&!n.expectContiguousMatch);if(d){let c=XS(u),f=[],m=[];return c.forEach(h=>{h.start<a&&h.end>a?(f.push({start:0,end:h.end-a}),m.push({start:h.start,end:a})):h.start>=a?f.push({start:h.start-a,end:h.end-a}):m.push(h)}),{score:d,labelMatch:f,descriptionMatch:m}}}return Pc}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||!Zw(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 Zw(i,t){return!(i.end<t.start||t.end<i.start)}function iI(i,t,e,n,r,o){let s=kc(i,e,n,r,o),a=kc(t,e,n,r,o),l=s.score,d=a.score;if((l===Rc||d===Rc)&&l!==d)return l===Rc?-1:1;if(l>$g||d>$g){if(l!==d)return l>d?-1:1;if(l<Wg&&d<Wg){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!==d)return l>d?-1:1;let u=Array.isArray(s.labelMatch)&&s.labelMatch.length>0,c=Array.isArray(a.labelMatch)&&a.labelMatch.length>0;if(u&&!c)return-1;if(c&&!u)return 1;let f=eI(i,s,r),m=eI(t,a,r);return f&&m&&f!==m?m>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),d=o.length+(a?a.length:0);if(l!==d)return l-d;let u=n.getItemPath(i),c=n.getItemPath(t);return u&&c&&u.length!==c.length?u.length-c.length:r!==o?Tc(r,o,e.normalized):s&&a&&s!==a?Tc(s,a,e.normalized):u&&c&&u!==c?Tc(u,c,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 d of l){let u=tI(d),{pathNormalized:c,normalized:f,normalizedLowercase:m}=nI(d);f&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:c,normalized:f,normalizedLowercase:m,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 Vg=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}},Ac=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(c){if(jr(c))return[];throw c}if(e.isCancellationRequested||s.length===0)return[];let a=new Vg(r),l=oI(o.token),d=Object.create(null),u;if(!l.normalized)u=s.slice(0,sI);else{let c=s.filter(f=>kc(f,l,!0,a,d).score>0);c.sort((f,m)=>iI(f,m,l,!0,a,d)),u=c.slice(0,sI)}return u.map(c=>{let f=_e(c);return{insertText:"@"+f,rangeStart:o.rangeStart,rangeEnd:o.rangeEnd,attachment:{type:"resource",uri:c.toString(),label:f,displayKind:"document"}}})}};function iR(i,t=[],e={}){let r=new Dc(i).scan();return new Oc(r,i,t,e).parse()}function Vo(i,t=[],e={}){let n=new Dc(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 Oc(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 Dc=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),d=parseInt(l,16);l.length===2&&!isNaN(d)?(n+=String.fromCharCode(d),this.pos+=4):(n+="\\x",this.pos+=2),r=0;continue}case"u":{let l=this.input.substring(this.pos+2,this.pos+6),d=parseInt(l,16);l.length===4&&!isNaN(d)?(n+=String.fromCodePoint(d),this.pos+=6):(n+="\\u",this.pos+=2),r=0;continue}case"U":{let l=this.input.substring(this.pos+2,this.pos+10),d=parseInt(l,16);l.length===8&&!isNaN(d)?(n+=String.fromCodePoint(d),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 m=this.input[this.pos];m>="1"&&m<="9"&&n===0?(n=parseInt(m,10),this.pos++):m==="-"&&r==="clip"?(r="strip",this.pos++):m==="+"&&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,m=0;for(;this.pos<this.input.length&&this.input[this.pos]===" ";)m++,this.pos++;if(this.pos>=this.input.length||this.input[this.pos]===`
`||this.input[this.pos]==="\r"){if(s>0&&m>=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(m===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(m<=o){this.pos=f;break}s=m}if(m<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 d;if(t==="|")d=a.join(`
`);else{d="";let f=!1,m=!1,h=!1;for(let v=0;v<a.length;v++){let S=a[v],_=S.length>0&&(S[0]===" "||S[0]==="	");S===""?(d+=`
`,m=!0):v===0?(d=S,f=_,h=!0):m?((f||_)&&h?d+=`
`+S:d+=S,f=_,m=!1,h=!0):_||f?(d+=`
`+S,f=_,h=!0):(d+=" "+S,f=!1,h=!0)}}if(l>0){let f=d.length;for(;f>0&&d[f-1]===`
`;)f--;d=d.substring(0,f)}let u=a.some(f=>f!=="");switch(r){case"clip":u&&(d+=`
`);break;case"keep":u?d+=`
`.repeat(l+1):d=`
`.repeat(l);break;case"strip":break}let c=this.input.substring(e,this.pos);this.tokens.push(He(0,e,this.pos,{rawValue:c,value:d,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]}},Oc=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 d=this.currentToken();if(d.type===10)break;if(d.type===8){this.advance();let u=this.currentToken();if(u.type===8){s++;continue}if(u.type===9){let c=this.peek(1);if(c.type===8||c.type===13){s++,this.advance();continue}if(c.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(d.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 d=this.advance(),u="-";if(this.currentToken().type===0){let c=this.advance();u="- "+c.value,r=c.endOffset}else r=d.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(g(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(g(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(g(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(g(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(g(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(g(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(),d=this.parseSequenceItemValue(t,l);e.push(d),r=d.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(g(148,null),e.startOffset,e.endOffset,"missing-value"),this.makeEmptyScalar(e.endOffset)):this.currentIndent()<=t?(this.emitError(g(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(g(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(g(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(g(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(g(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 Bg="vscode-agent-client";function Bo(i,t){let e=i.authority||"-";return y.from({scheme:Bg,authority:t,path:`/${i.scheme}/${e}${i.path}`})}function dI(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")}},dR={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 cR(i,t){return await Ma(ee(i,".plugin","plugin.json"),t)?dR:i.path.split("/").includes(".claude")||await Ma(ee(i,".claude-plugin","plugin.json"),t)?lR:aR}var Hg={paths:[],exclusive:!1};function Lc(i){if(i==null)return Hg;if(typeof i=="string"){let t=i.trim();return t?{paths:[t],exclusive:!1}:Hg}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 Hg}function Mc(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(c=>typeof c=="string"):void 0,s=t.env&&typeof t.env=="object"?Object.fromEntries(Object.entries(t.env).filter(([,c])=>typeof c=="string"||typeof c=="number"||c===null).map(([c,f])=>[c,f])):void 0,a=typeof t.envFile=="string"?t.envFile:void 0,l=typeof t.cwd=="string"?t.cwd:void 0,d=t.headers&&typeof t.headers=="object"?Object.fromEntries(Object.entries(t.headers).filter(([,c])=>typeof c=="string").map(([c,f])=>[c,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:d,dev:u}:void 0}}var fR=/[\s&|<>()^;!`"']/;function gR(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 mR(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,d]of Object.entries(a.env))typeof d=="string"&&(a.env[l]=r(d));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,d])=>[l,r(d)]))),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,d=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},...d&&{osx:d},...typeof i.env=="object"&&i.env!==null&&{env:i.env},...u!==void 0&&{timeout:u}}}function cI(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=qd(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=cI(s,t,e);a&&r.push(a)}else{let s=cI(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 d=vR[l];if(!d)continue;let u=s[l];if(!Array.isArray(u))continue;let c=[];for(let f of u)c.push(...SR(f,e,n));c.length>0&&a.push({type:d,commands:c,uri:i,originalId:l})}return a}function pI(i,t,e,n,r,o,s){let a=e.fsPath,l=t,d=c=>{for(let f of["command","windows","linux","osx"])typeof c[f]=="string"&&(c[f]=gR(c[f],a,o));(!c.env||typeof c.env!="object")&&(c.env={}),c.env[s]=a};for(let c of Object.values(l.hooks??{}))if(Array.isArray(c))for(let f of c){if(!f||typeof f!="object")continue;let m=f;if(Array.isArray(m.hooks))for(let h of m.hooks)d(h);else d(m)}return uI(i,qs(t,c=>typeof c=="string"?c.replaceAll(o,e.fsPath):void 0),n,r)}async function qg(i,t){try{let e=await t.readFile(i);return Qd(e.value.toString())}catch{return}}async function Ma(i,t){try{return await t.resolve(i),!0}catch{return!1}}var Nc=".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 d of l.children){let u=y.joinPath(d.resource,"SKILL.md");await Ma(u,e)&&o(_e(d.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()===Nc){r(_e(o).slice(0,-Nc.length),o);continue}if(!(!s.isDirectory||!s.children))for(let a of s.children)!a.isFile||Ns(a.resource).toLowerCase()!==Nc||r(_e(a.resource).slice(0,-Nc.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()),d=l?.getStringValue("name")?.trim(),u=l?.getStringValue("description")?.trim();return{uri:s.uri,name:d||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 qg(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 qg(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 d={name:s,configuration:l,uri:i};n.pluginRootToken&&n.pluginRootEnvVar&&(d=mR(d,e,n.pluginRootToken,n.pluginRootEnvVar)),d=yR(d),o.push(d)}return o}async function Uc(i,t,e,n,r){let o=await cR(i,t),s=await qg(ee(i,o.manifestPath),t),a=s&&typeof s=="object"?s:void 0,l=Mc(i,o.hookConfigPath,Lc(a?.hooks),r),d=Mc(i,".mcp.json",Lc(a?.mcpServers),r),u=Mc(i,"skills",Lc(a?.skills),r),c=Mc(i,"agents",Lc(a?.agents),r),f=[],m=a?.mcpServers;m&&typeof m=="object"&&!Array.isArray(m)&&!Oe(m,{paths:!0})&&(f=fI(ee(i,o.manifestPath),{mcpServers:m},i.fsPath,o));let h=[],v=a?.hooks;if(v&&typeof v=="object"&&!Array.isArray(v)&&!Oe(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(d,i.fsPath,o,t),IR(i,u,t),CR(c,t)]);return{hooks:S,mcpServers:_,skills:b,agents:I}}function Fc(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 Wc=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=Fc(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 d of s){let u=this._resolvePluginRoot(d),c=this._cacheKey(o.id,u,d.customization.nonce);a.add(c);let f=await this._getCachedSkills(o.id,c,u);if(n.isCancellationRequested)return[];for(let m of f)r.typed.length>0&&!m.slashName.startsWith(r.typed)||l.has(m.slashName)||l.set(m.slashName,m)}return this._pruneUnreachableCacheEntries(o.id,a),[...l.values()].map(d=>({insertText:"/"+d.slashName+" ",rangeStart:r.rangeStart,rangeEnd:r.rangeEnd,attachment:{type:"simple",label:"/"+d.slashName,_meta:{uri:d.uri.toString(),name:d.slashName,displayName:d.displayName,...d.description!==void 0?{description:d.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()}': ${_t(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 Uc(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()}': ${_t(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()}': ${_t(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 gI 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,d)=>{let u=n.onCancellationRequested(()=>{u.dispose(),d(new le)});a.then(c=>{u.dispose(),l(c)},c=>{u.dispose(),d(c)})})}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=gI.spawn(n,s,{cwd:o})}catch(h){this._logService.warn(`[AgentHostWorkspaceFiles] Failed to spawn ripgrep: ${h}`),r([]);return}this._activeChildren.add(a);let l=[],d="",u=!1,c=!1,f=h=>{c||(c=!0,this._activeChildren.delete(a),r(h))};a.stdout.setEncoding("utf8"),a.stdout.on("data",h=>{if(u)return;d+=h;let v;for(;(v=d.indexOf(`
`))>=0;){let S=d.slice(0,v).replace(/\r$/,"");if(d=d.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 m="";a.stderr.on("data",h=>{m+=h}),a.on("error",h=>{this._logService.warn(`[AgentHostWorkspaceFiles] ripgrep error: ${h}`),f([])}),a.on("close",()=>{if(!u&&d.length>0){let h=d.replace(/\r$/,"");h&&l.push(y.joinPath(e,h)),d=""}m&&this._logService.trace(`[AgentHostWorkspaceFiles] ripgrep stderr: ${m}`),f(l)})})}};qo=w([C(0,M)],qo);var kR=3e4,$c=class extends T{constructor(e,n,r,o,s,a=Wb,l,d=fc){super();this._logService=e;this._fileService=n;this._sessionDataService=r;this._productService=o;this._gitService=s;this._checkpointService=a;this._rootConfigResource=l;this._telemetryService=d;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 cl);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,bc(this._telemetryService,this._stateManager.rootState.config?.values);let c=new wr([M,this._logService],[Pt,this._productService],[Ye,u],[Qt,this._gitService],[Pr,this._telemetryService],[ht,this._sessionDataService]),f=this._register(new co(c,!0));c.set(Tn,this._checkpointService),this._changesets=this._register(f.createInstance(rr,this._stateManager)),c.set(Vd,this._changesets),this._changesetCoordinator=this._register(new Ic(this._stateManager,this._changesets,this._configurationService)),this._completions=this._register(f.createInstance(Wo));let m=this._register(f.createInstance(qo));this._register(this._completions.registerProvider(new Ac(this._stateManager,m))),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 Wc(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(),d=this._changesetCoordinator.getListMetadataKeys(l),u=d?{customTitle:!0,isRead:!0,isArchived:!0,isDone:!0,...d}:{customTitle:!0,isRead:!0,isArchived:!0,isDone:!0},c=await a.object.getMetadataObject(u),f=s;return c.customTitle&&(f={...f,summary:c.customTitle}),c.isRead!==void 0&&(f={...f,isRead:c.isRead==="true"}),c.isArchived!==void 0?f={...f,isArchived:c.isArchived==="true"}:c.isDone!==void 0&&(f={...f,isArchived:c.isDone==="true"}),this._changesetCoordinator.decorateListEntry(f,c)}finally{a.dispose()}}catch(a){this._logService.warn(`[AgentService] Failed to read session metadata overlay for ${s.session}`,a)}return s}))).map(s=>{let a=this._stateManager.getSessionState(s.session.toString());return a?{...s,summary:a.summary.title||s.summary,status:a.summary.status,activity:a.summary.activity,model:a.summary.model??s.model,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 c=new Map;for(let f of u)c.set(f.id,K());e={...e,fork:{...e.fork,turnIdMapping:c}}}}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(d=>{this._logService.error("[AgentService] createSession: failed to resolve initial customizations",d)}):Promise.resolve(void 0)]);if(e?.fork){let d=this._stateManager.getSessionState(e.fork.session.toString()),u=[];d&&e.fork.turnIdMapping&&(u=d.turns.slice(0,e.fork.turnIndex+1).map(m=>({...m,id:e.fork.turnIdMapping.get(m.id)??K()})));let c=this._buildInitialSummary(r,s,e,o,d?.summary.title??"Forked Session"),f=this._stateManager.createSession(c);f.config=a,f.turns=u,f.activeClient=e.activeClient,l&&l.length>0&&(f.customizations=[...l])}else{let d=this._buildInitialSummary(r,s,e,o,""),u=this._stateManager.createSession(d,{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(Le(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,d=s.map(u=>{if(u.uriTemplate!==a||u.description===r)return u;if(l=!0,r===void 0){let{description:c,...f}=u;return f}return{...u,description:r}});l&&this._stateManager.setSessionChangesets(e,d)}_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()}: ${_t(o)}`);return}r.object.setMetadata("configValues",JSON.stringify(n)).catch(o=>{this._logService.warn(`[AgentService] Failed to persist configValues for ${e.toString()}: ${_t(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,d=>this.restoreSession(d)),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 d=l.summary?.workingDirectory;this._attachGitState(e,d?y.parse(d):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: ${_t(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)),fd)}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(d=>this._rewriteSingleAttachment(d,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}': ${_t(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=K(),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(Ue.NotFound,`Directory not found: ${e.toString()}`)}if(!n.isDirectory)throw new V(Ue.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,d,u,c,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,...Dg});if(_.customTitle&&(a=_.customTitle),_.isRead!==void 0&&(l=_.isRead==="true"),_.isArchived!==void 0?d=_.isArchived==="true":_.isDone!==void 0&&(d=_.isDone==="true"),c=_,_.configValues)try{u=JSON.parse(_.configValues)}catch(b){this._logService.warn(`[AgentService] Failed to parse persisted configValues for ${n}: ${_t(b)}`)}}finally{S.dispose()}}catch{}let m=1;l&&(m|=32),d&&(m|=64);let h={resource:n,provider:r.id,title:a,status:m,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,c??{}),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(Ue.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(Ue.AlreadyExists,`File already exists: ${n.toString()}`):s==="NoPermissions"?new V(Ue.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ue.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(Ue.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new V(Ue.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ue.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(Ue.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ue.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(Ue.AlreadyExists,`Destination already exists: ${r.toString()}`):s==="NoPermissions"?new V(Ue.PermissionDenied,`Permission denied: ${n.toString()}`):new V(Ue.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(Ue.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(Ue.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(Ue.NotFound,`git service unavailable for: ${e.repoRelativePath}`);let n=this._stateManager.getSessionState(e.sessionUri)?.summary.workingDirectory;if(!n)throw new V(Ue.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(Ue.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 c of s){for(let f of c.responseParts)if(f.kind==="toolCall"){let m=f.toolCall,h=m.status==="completed"||m.status==="running"?m.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=[],d=this._findProviderForSession(n);if(d)try{l=await d.getSessionMessages(y.parse(e))}catch(c){this._logService.warn(`[AgentService] Failed to load subagent turns for ${e}`,c)}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 mI=Object.create(null);function p(i,t){if(Ee(t)){let e=mI[t];if(e===void 0)throw new Error(`${i} references an unknown codicon: ${t}`);t=e}return mI[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)},Vc={...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(Vc.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 d=new RegExp(`^\\$\\((${_.iconNameExpression}(?:${_.iconModifierExpression})?)\\)$`);function u(b){let I=d.exec(b);if(!I)return;let[,R]=I;return{id:R}}_.fromString=u;function c(b){return{id:b}}_.fromId=c;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 m(b){let I=b.id.lastIndexOf("~");if(I!==-1)return b.id.substring(I+1)}_.getModifier=m;function h(b,I){return b.id===I.id&&b.color?.id===I.color?.id}_.isEqual=h;function v(b){return b?.id===Vc.file.id}_.isFile=v;function S(b){return b?.id===Vc.folder.id}_.isFolder=S})(Ua||={});var zg=new RegExp(`\\$\\(${Ua.iconNameExpression}(?:${Ua.iconModifierExpression})?\\)`,"g"),DR=new RegExp(`(\\\\)?${zg.source}`,"g");function vI(i){return i.replace(DR,(t,e)=>e?t:`\\${t}`)}var Xj=new RegExp(`\\\\${zg.source}`,"g");var Zj=new RegExp(`(\\s)?(\\\\)?${zg.source}(\\s)?`,"g");var eG=new RegExp(`\\$\\(${Ua.iconNameCharacter}+\\)`,"g");var Bc=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 Ko=$("agentPluginManager");var Hc=$("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 St.isEqual(o,s)}var UR=["plan","compact"];function FR(i){switch(i){case"plan":return g(2004,null);case"compact":return g(2003,null)}}function bI(i){let t=/^\/(plan|compact)(?:$|\s+([\s\S]*))/.exec(i);if(t)return{command:t[1],rest:(t[2]??"").trim()}}var qc=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=Fc(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 Kg(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 jo(i,t){return $R.has(i)?!0:i==="str_replace_editor"?t!==void 0&&VR.has(t):!1}function zc(i){if(typeof i=="string"){try{i=JSON.parse(i)}catch{return Kg(i)}if(typeof i=="string")return Kg(i)}if(!i||typeof i!="object")return[];let t=i;if(typeof t.input=="string"||typeof t.patch=="string")return Kg(t);let e=i;return typeof e.path=="string"?[e.path]:[]}var Fa=new Set(["bash","powershell"]),jg=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 Kc(i){return qR.has(i)}function jc(i){return Fa.has(i)}function dn(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 Bc().appendLink(i,dn(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 g(2077,null);case"create":return g(2075,null);case"view":return g(2091,null);case"bash":case"powershell":return g(2099,null);case"read_bash":case"read_powershell":return g(2093,null);case"write_bash":return g(2112,null);case"write_powershell":return g(2113,null);case"stop_bash":case"stop_powershell":case"bash_shutdown":case"powershell_shutdown":return g(2103,null);case"list_bash":case"list_powershell":return g(2084,null);case"grep":case"rg":case"glob":return g(2097,null);case"search_code_subagent":return g(2098,null);case"apply_patch":return g(2071,null);case"git_apply_patch":return g(2089,null);case"codeql_checker":return g(2073,null);case"code_review":return g(2074,null);case"reply_to_comment":return g(2094,null);case"think":return g(2107,null);case"report_intent":return g(2095,null);case"report_progress":return g(2096,null);case"web_search":return g(2110,null);case"web_fetch":return g(2080,null);case"update_todo":return g(2109,null);case"show_file":return g(2100,null);case"fetch_copilot_cli_documentation":return g(2079,null);case"propose_work":return g(2090,null);case"task_complete":return g(2106,null);case"ask_user":return g(2072,null);case"skill":return g(2082,null);case"task":return g(2105,null);case"list_agents":return g(2083,null);case"read_agent":return g(2092,null);case"exit_plan_mode":return g(2078,null);case"sql":return g(2102,null);case"lsp":return g(2085,null);case"create_pull_request":return g(2076,null);case"gh-advisory-database":return g(2081,null);case"store_memory":return g(2104,null);case"parallel_validation":return g(2088,null);case"write_agent":return g(2111,null);case"mcp_reload":return g(2086,null);case"mcp_validate":return g(2087,null);case"tool_search_tool_regex":return g(2108,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(g(2058,null,We(dn(r,80))))}return g(2057,null,t)}if(jg.has(i)){let n=e;if(n?.command){let r=n.command.split(`
`)[0];return ue(g(2070,null,We(dn(r,80))))}return g(2069,null)}if(II.has(i))return g(2056,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(g(2064,null,r,o.startLine)):o.endLine!==o.startLine?ue(g(2066,null,r,o.startLine,o.endLine)):ue(g(2065,null,r,o.startLine)):ue(g(2063,null,r))}return g(2062,null)}case"edit":{let n=e;return n?.path?ue(g(2046,null,Rn(n.path))):g(2045,null)}case"create":{let n=e;return n?.path?ue(g(2044,null,Rn(n.path))):g(2043,null)}case"grep":{let n=e;return n?.pattern?ue(g(2052,null,We(dn(n.pattern,80)))):g(2051,null)}case"rg":{let n=e;return n?.pattern?ue(g(2052,null,We(dn(n.pattern,80)))):g(2051,null)}case"glob":{let n=e;return n?.pattern?ue(g(2050,null,We(dn(n.pattern,80)))):g(2049,null)}case"apply_patch":case"git_apply_patch":{let n=zc(e);return n.length===1?ue(g(2054,null,Rn(n[0]))):n.length>1?ue(g(2055,null,n.map(Rn).join(", "))):g(2053,null)}case"sql":return e?.description||g(2061,null);case"web_fetch":{let n=e;return n?.url?ue(g(2067,null,_I(n.url))):g(2068,null)}case"exit_plan_mode":return g(2047,null);default:return g(2048,null,t)}}function Gc(i,t,e,n){if(!n)return g(2019,null,t);if(Fa.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return ue(g(2030,null,We(dn(o,80))))}return g(2029,null,t)}if(jg.has(i)){let r=e;if(r?.command){let o=r.command.split(`
`)[0];return ue(g(2042,null,We(dn(o,80))))}return g(2041,null)}if(II.has(i))return g(2028,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(g(2036,null,o,s.startLine)):s.endLine!==s.startLine?ue(g(2038,null,o,s.startLine,s.endLine)):ue(g(2037,null,o,s.startLine)):ue(g(2035,null,o))}return g(2034,null)}case"edit":{let r=e;return r?.path?ue(g(2017,null,Rn(r.path))):g(2016,null)}case"create":{let r=e;return r?.path?ue(g(2015,null,Rn(r.path))):g(2014,null)}case"grep":{let r=e;return r?.pattern?ue(g(2024,null,We(dn(r.pattern,80)))):g(2023,null)}case"rg":{let r=e;return r?.pattern?ue(g(2024,null,We(dn(r.pattern,80)))):g(2023,null)}case"glob":{let r=e;return r?.pattern?ue(g(2022,null,We(dn(r.pattern,80)))):g(2021,null)}case"apply_patch":case"git_apply_patch":{let r=zc(e);return r.length===1?ue(g(2026,null,Rn(r[0]))):r.length>1?ue(g(2027,null,r.map(Rn).join(", "))):g(2025,null)}case"sql":return e?.description||g(2033,null);case"web_fetch":{let r=e;return r?.url?ue(g(2039,null,_I(r.url))):g(2040,null)}case"exit_plan_mode":return g(2018,null);default:return g(2020,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 Jc(i,t){let e=zR(t,i),n=g(2101,null),r=zo(i.name),o=i.path?`[${r}](${y.file(i.path)})`:void 0,s=o?ue(g(2059,null,o)):g(2060,null,i.name),a=o?ue(g(2031,null,o)):g(2032,null,i.name);return{toolCallId:e,toolName:"skill",displayName:n,invocationMessage:s,pastTenseMessage:a}}function Qc(i,t,e){if(!(!t&&!e)){if(Fa.has(i)||jg.has(i)){let n=t,r=n?.command??n?.args;return typeof r=="string"?r:typeof r=="object"&&r!==null&&Oe(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 Yc(i){if(Fa.has(i))return"terminal";if(BR.has(i))return"subagent";if(HR.has(i))return"search"}function Xc(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 Zc(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:g(2010,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&&jc(l)&&typeof a.command=="string"){Ii(l,a,t);let d=a.command;return{confirmationTitle:g(2010,null),invocationMessage:Ur(l,En(l),{command:d}),toolInput:d,permissionKind:"shell",permissionPath:e}}return{confirmationTitle:g(2006,null),invocationMessage:ue(g(2005,null,We(s??i.kind))),toolInput:or(a||i),permissionKind:i.kind,permissionPath:e}}case"write":return{confirmationTitle:g(2013,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??g(2007,null);return{confirmationTitle:o?g(2008,null,o):g(2006,null),invocationMessage:o?`${o}: ${a}`:a,toolInput:or({serverName:o,toolName:s})??void 0,permissionKind:"mcp",permissionPath:e}}case"read":return{confirmationTitle:g(2009,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:g(2012,null),invocationMessage:ue(g(2011,null)),toolInput:l?JSON.stringify({url:l}):void 0,permissionKind:"url"}}default:return{confirmationTitle:g(2006,null),invocationMessage:ue(g(2005,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 KR(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(Kc(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=Yc(i),d=l==="subagent"?Xc(o):void 0,u=En(i);return{toolName:i,displayName:u,invocationMessage:Ur(i,u,o),toolInput:Qc(i,o,a),toolKind:l,language:l==="terminal"?Zc(i):void 0,subagentAgentName:d?.agentName,subagentDescription:d?.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 Gg(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;jo(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(),d=[],u=new Map,c=new Map,f=new Map,m,h=b=>{let I=u.get(b);if(!I||(u.delete(b),I.responseParts.length===0))return;let R=c.get(b)??[];R.push(tu(I,"complete")),c.set(b,R)},v=b=>{let I=u.get(b);return I||(I=eu(K(),""),u.set(b,I)),I},S=b=>b?v(b):m;for(let b of e)switch(b.type){case"user.message":{if(KR(b))continue;let I=b.data,R=I?.messageId??I?.interactionId??"",P=I?.content??"",J=jR(I?.attachments);if(I?.parentToolCallId){let E=v(I.parentToolCallId);P&&E.responseParts.push({kind:"markdown",id:K(),content:P}),J?.length&&(E.userMessage={...E.userMessage,attachments:J})}else m&&d.push(tu(m,"cancelled")),m=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)??(m=eu(R,""));J&&L.responseParts.push({kind:"reasoning",id:K(),content:J}),P&&L.responseParts.push({kind:"markdown",id:K(),content:P}),I?.toolRequests?.length&&_(L,I.toolRequests,I.parentToolCallId),!I?.parentToolCallId&&!E&&L===m&&(d.push(tu(m,"complete")),m=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=Jc(I.data,I.id);(m??(m=eu(K(),""))).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}m&&(d.push(tu(m,"cancelled")),m=void 0);for(let b of[...u.keys()])h(b);return{turns:d,subagentTurnsByToolCallId:c};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 jR(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 d of a){let u=d.kind==="rename"&&d.originalPath?y.file(d.originalPath).toString():y.file(d.filePath).toString(),c=y.file(d.filePath).toString(),f=d.kind!=="create",m=d.kind!=="delete";s.push({type:"fileEdit",before:f?{uri:u,content:{uri:Ar(e,d.toolCallId,d.filePath,"before")}}:void 0,after:m?{uri:c,content:{uri:Ar(e,d.toolCallId,d.filePath,"after")}}:void 0,diff:d.addedLines!==void 0||d.removedLines!==void 0?{added:d.addedLines,removed:d.removedLines}:void 0})}r&&s.push({type:"subagent",resource:go(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:Gc(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=Kn(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),d=new Uint8Array(l.byteLength+n.byteLength);d.set(l,0),d.set(n,l.byteLength),a.data=d}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),d=this._lookupParentDirectory(e);r=new Wa(l),r.data=new Uint8Array(0),d.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 d=a.append?a.file.data.byteLength:n,u=d+l.byteLength;if(u>a.file.data.byteLength){let c=new Uint8Array(u);c.set(a.file.data,0),a.file.data=c}return a.file.data.set(l.buffer,d),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=gn(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=gn(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=gn(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:g(1987,null),description:g(1986,null)};case"autopilot_fleet":return{label:g(1989,null),description:g(1988,null)};case"interactive":return{label:g(1994,null),description:g(1993,null)};case"exit_only":return{label:g(1991,null),description:g(1990,null)};default:return}}function AI(i){let t=De(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=Oe(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(Oe(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(Oe(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(!St.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,d){super();this._instantiationService=n;this._logService=r;this._fileService=s;this._environmentService=a;this._configurationService=l;this._telemetryService=d;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:c,displayName:f})=>{let m=this._activeToolCalls.get(u);m&&(m.content.push({type:"terminal",resource:c,title:f}),this._emitAction({type:"session/toolCallContentChanged",turnId:this._turnId,toolCallId:u,content:m.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 zc(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=K(),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=K(),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(cr):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=Kh(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 Gg(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 Gg(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"&&jc(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:d,permissionKind:u,permissionPath:c}=CI(e,this._workingDirectory),f=await this._buildEditsForPermission(e,n);if(!this._pendingPermissions.has(n))return{kind:"reject"};let m=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:m,displayName:En(m),invocationMessage:l,toolInput:d,confirmationTitle:a,edits:f},permissionKind:u,permissionPath:c,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(!St.isEqualOrParent(o,r))return;let s=Nt(y.file(n));return St.isEqualOrParent(s,o)?n:void 0}_isSessionAttachmentPath(e){let n=Nt(y.joinPath(this._sessionDataDir,fd)),r=Nt(y.file(e));return St.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 d=EI(this.sessionUri.toString(),n,r);try{await this._fileService.writeFile(d,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(d).catch(f=>{this._logService.warn(`[Copilot:${this.sessionId}] Failed to delete orphaned pending edit content: ${d.toString()}`,f)});return}this._pendingEditContentUris.set(n,d);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:d.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?g(2001,null,o):g(2002,null),a=e.reason?g(2000,null,e.reason):o?g(1998,null,o):g(1999,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(),kt,"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=K(),a=K();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 d={id:s,questions:[e.choices&&e.choices.length>0?{kind:"single-select",id:a,message:e.question,required:!0,options:e.choices.map(m=>({id:m,label:m})),allowFreeformInput:e.allowFreeform??!0}:{kind:"text",id:a,message:e.question,required:!0}]};this._emitAction({type:"session/inputRequested",request:d});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 c=u.answers[a];if(!c||c.state==="skipped")return{answer:"",wasFreeform:!0};let{value:f}=c;if(f.kind==="text")return{answer:f.value,wasFreeform:!0};if(f.kind==="selected"){let m=!e.choices?.includes(f.value);return{answer:f.value,wasFreeform:m}}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(),kt,"autoApprove")==="autopilot")return{action:"cancel"};let r=e.message.substring(0,100);try{let o=K();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,d=new pe;this._pendingElicitations.set(o,{deferred:d,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 c=await d.p;if(this._logService.info(`[Copilot:${this.sessionId}] Elicitation response: requestId=${o}, response=${c.response}`),c.response==="decline")return{action:"decline"};if(c.response!=="accept")return{action:"cancel"};let f=c.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 m={};for(let[h,v]of Object.entries(s.properties)){let S=XR(v,f[h]);S!==void 0&&(m[h]=S)}return{action:"accept",content:m}}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 d=a&&e.actions.includes(a)?a:e.actions.includes(e.recommendedAction)?e.recommendedAction:void 0;return l?{approved:!1,feedback:l,...d?{selectedAction:d}:{}}:d?{approved:!0,selectedAction:d,...d==="autopilot"||d==="autopilot_fleet"?{autoApproveEdits:!0}:{}}:{approved:!1}}async _handlePreToolUse(e){try{if(jo(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(jo(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=K();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(Kc(r.data.toolName)){if(this._logService.trace(`[Copilot:${n}] Tool started (hidden): ${r.data.toolName}`),r.data.toolName==="report_intent"){let m=r.data.arguments?.intent;typeof m=="string"&&m.length>0&&(this._hasReportedActivity=!0,this._emitAction({type:"session/activityChanged",activity:m}))}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 d=Yc(r.data.toolName),u=d==="subagent"?Xc(s):void 0,c=this._clientToolNames.has(r.data.toolName)?this._appliedSnapshot.clientId:void 0;this._currentMarkdownPartIds.delete(l??""),this._currentReasoningPartIds.delete(l??"");let f={toolKind:d,language:d==="terminal"?Zc(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:c,_meta:f},l),!c&&this._emitAction({type:"session/toolCallReady",turnId:this._turnId,toolCallId:r.data.toolCallId,invocationMessage:Ur(r.data.toolName,a,s),toolInput:Qc(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,d=[...o.content];l!==void 0&&d.push({type:"text",text:l});let u=Ee(o.parameters?.command)?o.parameters.command:void 0,c=jo(o.toolName,u)?this._getEditFilePaths(o.parameters):[];for(let f of c)try{let m=await this._editTracker.takeCompletedEdit(this._turnId,r.data.toolCallId,f);m&&d.push(m)}catch(m){this._logService.warn(`[Copilot:${n}] Failed to take completed edit`,m)}if(jc(o.toolName)&&this._shellManager){let f=this._shellManager.getTerminalUriForToolCall(r.data.toolCallId);f&&!d.some(m=>m.type==="terminal"&&m.resource===f)&&d.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:Gc(o.toolName,a,o.parameters,r.data.success),content:d.length>0?d: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=Jc(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=K(),r=K();if(this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request: rpcId=${n}, actions=[${e.actions.join(",")}], recommended=${e.recommendedAction}`),this._configurationService.getEffectiveValue(this.sessionUri.toString(),kt,"autoApprove")==="autopilot"){let c=nE(e);return this._logService.info(`[Copilot:${this.sessionId}] exitPlanMode.request auto-accepted (autoApprove=autopilot): selectedAction=${c.selectedAction??"(none)"}`),c}let s=null;try{s=(await this._wrapper.session.rpc.plan.read()).path??null}catch(c){this._logService.warn(`[Copilot:${this.sessionId}] rpc.plan.read failed for exit_plan_mode: ${c instanceof Error?c.message:String(c)}`)}let a=e.summary||g(1992,null);if(s){let c=y.file(s);a+=`

[${g(1997,null)}](${c.toString()})`}this._emitMarkdownDelta(a);let l=e.actions.map(c=>{let f=QR(c);return{id:c,label:f?.label??c,description:f?.description,recommended:c===e.recommendedAction}}),d={id:n,questions:[{kind:"single-select",id:r,title:g(1996,null),message:g(1995,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:d}});try{return await u.p}catch(c){return this._logService.error(c,`[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,ht),C(4,Ne),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"),d=s?.getStringArrayValue("tools"),u=s?.body??o;e.push({name:a,...l?{description:l}:{},tools:d&&d.length>0?d: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=ce(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,ft);if(!e)return Promise.resolve("");let n=(i.timeout??30)*1e3,r=i.cwd?.fsPath;return new Promise((o,s)=>{let a=ft===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}),c="",f="";u.stdout.on("data",m=>{c+=m.toString()}),u.stderr.on("data",m=>{f+=m.toString()}),t&&u.stdin.write(t),u.stdin.end(),u.on("error",s),u.on("close",m=>{m===0?o(c):s(new Error(`Hook command exited with code ${m}: ${f||c}`))})})}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 dE={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 c=dE[u.type];if(!c)continue;let f=e.get(c)??[];f.push(...u.commands),e.set(c,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 c=JSON.stringify(u);for(let f of s)try{await $a(f,c)}catch{}});let a=e.get("onSessionStart");a?.length&&(n.onSessionStart=async u=>{let c=JSON.stringify(u);for(let f of a)try{await $a(f,c)}catch{}});let l=e.get("onSessionEnd");l?.length&&(n.onSessionEnd=async u=>{let c=JSON.stringify(u);for(let f of l)try{await $a(f,c)}catch{}});let d=e.get("onErrorOccurred");return d?.length&&(n.onErrorOccurred=async u=>{let c=JSON.stringify(u);for(let f of d)try{await $a(f,c)}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 cE=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(cE.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 Xg(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 gE=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 mE)lu(r,o,{os:i})&&e.add(o.value);let n=[...e].flatMap(r=>WI(r,i));return[...new Set(n)]}var mE=[{keywords:["gpg","gpg2"],value:"gnupg"},{keywords:["git"],value:"gnupg",subcommands:["commit"],optionsWithValue:au}];function du(i,t,e=[]){if(t.length===0)return FI(i,e);let n=new Set;for(let o of t){let s=gE.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 cu(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=K();this._runtimeResolved=!1;this._runAsNode=!1;this._needsForceUpdateConfigFile=!0;this._commandAllowListKeywords=[];this._commandAllowListCommandDetails=[];this._os=ft;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)),d=du(this._os,this._commandAllowListKeywords,this._commandAllowListCommandDetails),u=du(this._os,l,a),c=cu(this._os,this._commandAllowListCommandDetails),f=cu(this._os,a);if((this._commandAllowListKeywords.length===0||this._needsForceUpdateConfigFile||!this._areStringArraysEqual(this._commandAllowListKeywords,l)||!this._areStringArraysEqual(d,u)||!this._areObjectsEqual(c,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(d=>Xg(l,d))){s.add(l),a.add(l);continue}r.some(d=>Xg(l,d))||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=cu(this._os,this._commandAllowListCommandDetails),l=this._getCommandRuntimeFileSystemPaths(a,"allowRead"),d=this._getCommandRuntimeFileSystemPaths(a,"allowWrite"),u=y.joinPath(this._tempDir,`vscode-sandbox-settings-${this._sandboxSettingsId}.json`),c=[],f=[],m=[],h;if(this._os===1){let S=await this._getWindowsMxcFilesystemPolicy(),_=await this._getWindowsMxcEnvironment();c=await this._resolveFileSystemPaths([...this._updateAllowWritePathsWithWorkspaceFolders(o.allowWrite,d),...S.readwritePaths]),f=await this._resolveFileSystemPaths([...await this._updateAllowReadPathsWithAllowWrite(o.allowRead,c,l),...S.readonlyPaths]),m=await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome(o.denyRead)),this._windowsMxcEnvironment=_}else this._os===2?(c=await this._resolveFileSystemPaths(this._updateAllowWritePathsWithWorkspaceFolders(r.allowWrite,d)),f=await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(r.allowRead,c,l)),m=await this._resolveFileSystemPaths(this._updateDenyReadPathsWithHome(r.denyRead)),h=r.denyWrite?await this._resolveFileSystemPaths(r.denyWrite):void 0):this._os===3&&(c=await this._resolveFileSystemPaths(this._updateAllowWritePathsWithWorkspaceFolders(n.allowWrite,d)),f=await this._resolveFileSystemPaths(await this._updateAllowReadPathsWithAllowWrite(n.allowRead,c,l)),m=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:c,denyReadPaths:m,env:this._windowsMxcEnvironment??[]}):{network:e?{allowedDomains:[],deniedDomains:[],enabled:!1}:this.getResolvedNetworkDomains(),filesystem:{denyRead:m,allowRead:f,allowWrite:c,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??[],...du(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,Ne),C(2,M),C(3,su)],Vt);var bE="tmp",Zg=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 ft}async getRuntimeInfo(){let t=ce(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 Zg(o,s,t,e,n,r);return i.createInstance(Vt,a)}var HI=8e4,SE=12e4,em="<<<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,d,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=d;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 c of this._heldShellReleaseListeners.values())c.dispose();this._heldShellReleaseListeners.clear();for(let c of this._shells.values())this._terminalManager.hasTerminal(c.terminalUri)&&this._terminalManager.disposeTerminal(c.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()??K(),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=K(),a=`agenthost-terminal://shell/${s}`,l={kind:"session",session:this._sessionUri.toString(),turnId:n,toolCallId:r},d=e==="bash"?"Bash":"PowerShell",u=await this.getResolvedExecutable();await this._terminalManager.createTerminal({channel:a,claim:l,name:d,cwd:o??this.workingDirectory?.fsPath},{shell:u,preventShellHistory:!0,nonInteractive:!0});let c={id:s,terminalUri:a,shellType:e,executable:u};return this._shells.set(s,c),this._busyShellIds.add(s),this._trackToolCall(r,s),this._logService.info(`[ShellManager] Created ${e} shell ${s} (terminal=${a},  executable=${u})`),this._makeReference(c)}_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,Pt),C(7,Ye),C(8,iu)],_i);function CE(){return K().replace(/-/g,"")}function TE(i,t){return t==="powershell"?`Write-Output "${em}${i}_EXIT_$LASTEXITCODE>>>"`:`echo "${em}${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=`${em}${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 vt(i,t){return{textResultForLlm:i,resultType:"failure",error:t}}function kn(i,t){return{toolResult:i,keepShellBusy:t?.keepShellBusy}}function KI(i){return kn(Pn(i),{keepShellBusy:!0})}function RE(){return kn(vt(IE,"alternateBuffer"),{keepShellBusy:!0})}function jI(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,d=c=>{l||(l=!0,o.dispose(),a(c))};o.add(n.onCommandFinished(i.terminalUri,c=>{let f=Ci(c.output),m=c.exitCode??0;r.info(`[ShellTool] Command completed (shell integration) with exit code ${m}`),d(kn(m===0?Pn(`Exit code: ${m}
${f}`):vt(`Exit code: ${m}
${f}`)))})),jI(i,n,r,o,d),o.add(n.onExit(i.terminalUri,c=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${c}`);let f=n.getContent(i.terminalUri)??"",m=Ci(f);d(kn(vt(`Shell exited with code ${c}
${m}`)))})),o.add(n.onClaimChanged(i.terminalUri,c=>{c.kind==="session"&&!c.toolCallId&&(r.info("[ShellTool] Continuing in background (claim narrowed)"),d(KI("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 c=n.getContent(i.terminalUri)??"",f=Ci(c);d(kn(vt(`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,d=(n.getContent(i.terminalUri)??"").length,u=new Promise(c=>{let f=!1,m=S=>{f||(f=!0,a.dispose(),c(S))},h=()=>{let S=n.getContent(i.terminalUri)??"",_=Math.min(d,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?m(kn(Pn(`Exit code: ${I.exitCode}
${R}`))):m(kn(vt(`Exit code: ${I.exitCode}
${R}`)))}};a.add(n.onData(i.terminalUri,()=>{h()})),jI(i,n,r,a,m),a.add(n.onExit(i.terminalUri,S=>{r.info(`[ShellTool] Shell exited unexpectedly with code ${S}`);let b=(n.getContent(i.terminalUri)??"").substring(d),I=Ci(b);m(kn(vt(`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)"),m(KI("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(d),b=Ci(_);m(kn(vt(`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(c){throw a.dispose(),c}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,d={name:o,description:o==="bash"?Pd(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 vt("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 vt(`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})},j=await s.wrapCommand(_.command,_.requestUnsandboxedExecution,r,R.object.shellType==="bash"?i.workingDirectory:void 0);if(_.requestUnsandboxedExecution&&!j.isSandboxWrapped){let te=await O(j.blockedDomains);if(typeof te!="boolean")return te;if(!te){let me=j.blockedDomains?.join(", ")??"(none)";return vt(`User declined to run command outside the sandbox. Blocked domains: ${me}.`,"sandbox_blocked")}}if(j.requiresUnsandboxConfirmation){let te=await O(j.blockedDomains);if(typeof te!="boolean")return te;if(!te){let me=j.blockedDomains?.join(", ")??"(unknown)";return vt(`User declined to run command outside the sandbox. Blocked domains: ${me}.`,"sandbox_blocked")}j=await s.wrapCommand(_.command,!0,r,R.object.shellType==="bash"?i.workingDirectory:void 0)}J=j.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 vt("No active shell found.","no_shell");let R=t.getContent(I.terminalUri);return Pn(R?Ci(R):"(no output)")}},c={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.")):vt("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."):vt("Shell not found.","not_found");let b=i.listShells(),I=b[b.length-1];return I?(i.shutdownShell(I.id),Pn("Shell stopped.")):vt("No active shell to stop.","no_shell")}},m={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[d,u,c,f,m,{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:()=>vt(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(d=>l.affects(d))&&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 d=YI;l.endsWith(d)&&!r.has(a.resource)&&r.set(a.resource,{uri:a.resource,type:n.type})}}}}};Qo=w([C(2,Ne),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),d,u;if(s.type==="skill"){let f=_e(gn(s.uri));d=y.joinPath(this._rootUri,a,f,l),u=`${a}/${f}/${l}`}else d=y.joinPath(this._rootUri,a,l),u=`${a}/${l}`;let c=await this._fileService.readFile(s.uri);await this._fileService.writeFile(d,c.value),r.push(`${u}:${c.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,Ne),C(2,Ko)],Yo);var e_="thinkingLevel",KE=["low","medium","high","xhigh"],jE={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 KE.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 g(1985,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:K(),content:t},...n.responseParts];e[0]={...n,responseParts:o}}return e}var ge=class extends T{constructor(e,n,r,o,s,a,l,d,u,c){super();this._logService=e;this._instantiationService=n;this._fileService=r;this._sessionDataService=o;this._gitService=s;this._terminalManager=a;this._configurationService=l;this._otelService=d;this._checkpointService=c;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 ut);this._provisionalSessions=new Map;this._createdWorktrees=new Map;this._pendingFirstTurnAnnouncements=new Map;this._sessionSequencer=new gt;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 qc(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 m of Object.keys(r))m!=="ELECTRON_RUN_AS_NODE"&&(m.startsWith("VSCODE_")||m.startsWith("ELECTRON_"))&&delete r[m];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=ce(s),l=Object.keys(r).find(m=>m.toUpperCase()==="PATH")??"PATH",d=r[l];r[l]=d?`${d}${Wi}${a}`:a,this._logService.info(`[Copilot] Resolved CLI path: ${o}`);let u=await this._otelService.getSdkTelemetryConfig(),c={gitHubToken:e,useLoggedInUser:!1,useStdio:!0,autoStart:!0,env:r,cliPath:o,telemetry:u,remote:this._isSessionSyncEnabled()},f=this._createCopilotClient(c);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 g(1980,null);case"medium":return g(1981,null);case"high":return g(1979,null);case"xhigh":return g(1983,null);default:return o}});return{type:"object",properties:{[e_]:{type:"string",title:g(1982,null),description:g(1978,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 d=q.uri(this.id,l.sessionId),u=await this._readStoredSessionMetadata(d);if(!u)return;let{project:c,resolved:f}=u;f||(c=await this._resolveSessionProject(l.context,r,o),this._storeSessionProjectResolution(d,c));let m=u.workingDirectory??(typeof l.context?.cwd=="string"?y.file(l.context.cwd):void 0);return{session:d,startTime:l.startTime.getTime(),modifiedTime:l.modifiedTime.getTime(),project:c,summary:l.summary,model:u.model,agent:u.agent,workingDirectory:m,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 d=new Bi(1);a=await this._resolveSessionProject(s?.context,d,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,m=this._sessionDataService.getSessionDataDirById(f),h=y.joinPath(m,pa);try{let b=await this._sessionDataService.tryOpenDatabase(e.fork.session);if(b)try{await Ti.mkdir(m.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):K(),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},d=r.workingDirectory,c=await this._getOrCreateActiveClient(s).snapshot(d),f=await this._resolveSessionWorkingDirectory(l,e,n),m=this._instantiationService.createInstance(_i,s,f),h=this._buildSessionConfig(c,m),v=async b=>{let I=r.agent?this._resolveAgentName(c,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,m,f,d,c),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,d,_,!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=yt({type:"string",title:g(1972,null),description:g(1977,null),enum:n?["folder","worktree"]:["folder"],enumLabels:n?[g(1973,null),g(1975,null)]:[g(1973,null)],enumDescriptions:n?[g(1974,null),g(1976,null)]:[g(1974,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 c=s==="folder";l=s==="worktree"?n.defaultBranch:n.currentBranch,a=yt({type:"string",title:g(1970,null),description:g(1971,null),enum:[l],enumLabels:[l],default:l,enumDynamic:!c,readOnly:c,sessionMutable:!1})}let d=_n({isolation:r,...kt.definition,...a?{branch:a}:{}}),u=d.validateOrDefault(e.config,{isolation:s,autoApprove:"default",mode:"interactive",...l!==void 0?{branch:l}:{}});return{schema:d.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),d=!!a;this._logService.info(`[Copilot:${s}] sendMessage: cachedEntry=${d}, 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${d?" (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 c=this._resolveSdkMode(e);await a.send(n,r,o,c)}catch(c){let f=c?.code,m=c instanceof Error?c.message:String(c);throw this._logService.error(`[Copilot:${s}] entry.send() failed: code=${f}, message=${m}, hadCachedEntry=${d}, errorType=${c?.constructor?.name}`),c}})}_resolveSdkMode(e){let n=e.toString(),r=this._configurationService.getEffectiveValue(n,kt,"mode");if(r==="plan")return"plan";if(r==="interactive")return this._configurationService.getEffectiveValue(n,kt,"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,d;for(;d=Qe(l);)l=d.parentSession;let u=q.id(l),c=this._sessions.get(u)??await this._resumeSession(u).catch(f=>{this._logService.warn(`[Copilot:${u}] Failed to resume root for subagent restore`,f)});return c?c.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(d){this._logService.warn(`[Copilot:${n}] Failed to recreate worktree '${s.fsPath}' on unarchive: ${d instanceof Error?d.message:String(d)}`)}}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 nm(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),d=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,d),d}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(d=>d.agents),this._fileService);return{onPermissionRequest:o.onPermissionRequest,onUserInputRequest:o.onUserInputRequest,onElicitationRequest:o.onElicitationRequest,hooks:NI(r.flatMap(d=>d.hooks),o.hooks),mcpServers:OI(r.flatMap(d=>d.mcpServers)),customAgents:l,skillDirectories:MI(r.flatMap(d=>d.skills)),systemMessage:jE,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),d=await n.getSessionMetadata(e).catch(v=>{this._logService.warn(`[Copilot:${e}] getSessionMetadata failed`,v)}),u=o.workingDirectory??(typeof d?.context?.cwd=="string"?y.file(d.context.cwd):void 0);if(!u)throw new Error(`workingDirectory is required to resume Copilot session '${e}'`);let c=this._instantiationService.createInstance(_i,r,u),f=this._buildSessionConfig(l,c),m=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(m,e,c,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:ge._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),d=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,d,l,u),this._createdWorktrees.set(n,{repositoryRoot:o,worktree:d}),this._pendingFirstTurnAnnouncements.set(n,t_(l));let c=q.uri(this.id,n);try{await this._writeWorktreeMetadata(c,{branchName:l,baseBranch:u,worktreePath:d,repositoryRoot:o})}catch(f){this._logService.warn(`[Copilot:${n}] Failed to persist worktree branch metadata: ${f instanceof Error?f.message:String(f)}`)}return d}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(ge._META_WORKTREE_BRANCH,n.branchName),r.object.setMetadata(ge._META_WORKTREE_PATH,n.worktreePath.toString()),r.object.setMetadata(ge._META_WORKTREE_REPOSITORY_ROOT,n.repositoryRoot.toString())];n.baseBranch&&o.push(r.object.setMetadata($d,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(ge._META_WORKTREE_BRANCH),n.object.getMetadata(ge._META_WORKTREE_PATH),n.object.getMetadata(ge._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),d=l.object;try{let u=[];n&&u.push(d.setMetadata(ge._META_MODEL,this._serializeModelSelection(n))),r&&u.push(d.setMetadata(ge._META_CWD,r.toString())),o&&u.push(d.setMetadata(ge._META_CUSTOMIZATION_DIRECTORY,o.toString())),a&&u.push(d.setMetadata(ge._META_PROJECT_RESOLVED,"true")),s&&(u.push(d.setMetadata(ge._META_PROJECT_URI,s.uri.toString())),u.push(d.setMetadata(ge._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(ge._META_MODEL),n.object.getMetadata(ge._META_AGENT),n.object.getMetadata(ge._META_CWD),n.object.getMetadata(ge._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,d,u]=await Promise.all([n.object.getMetadata(ge._META_MODEL),n.object.getMetadata(ge._META_AGENT),n.object.getMetadata(ge._META_CWD),n.object.getMetadata(ge._META_CUSTOMIZATION_DIRECTORY),n.object.getMetadata(ge._META_PROJECT_RESOLVED),n.object.getMetadata(ge._META_PROJECT_URI),n.object.getMetadata(ge._META_PROJECT_DISPLAY_NAME)]),c=s?y.parse(s):void 0,f=d&&u?{uri:y.parse(d),displayName:u}:void 0;return{model:this._parseModelSelection(r),agent:this._parseAgentSelection(o),workingDirectory:c,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(ge._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())}};ge=w([C(0,M),C(1,Ve),C(2,Ne),C(3,ht),C(4,Qt),C(5,So),C(6,Ye),C(7,Hc),C(8,_c),C(9,Tn)],ge);var tm=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:g(1984,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 tm(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(Le(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(c=>({customization:{customization:c,clientId:e,enabled:!0,status:"loading"}})),o?.({type:"session/customizationsChanged",customizations:[...this.getSessionCustomizations(r)]});let a=new Map;for(let c of this._clientCustomizations){let f=this._applyEnablement(c.customization);a.set(f.customization.uri,this._applyEnablement(c.customization))}let l=c=>{let f=this._applyEnablement(c.customization);Le(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}))},d=this._clientSync;return(this._clientSync=d.catch(c=>{this._logService.warn("[Copilot:PluginController] Previous customization sync failed",c)}).then(async()=>{let c=await this._pluginManager.syncCustomizations(e,n,m=>{s===this._clientRevision&&l({customization:{...m,clientId:e}})}),f=await Promise.all(c.map(m=>this._resolveSyncedCustomization(m,e)));if(s===this._clientRevision){this._clientCustomizations=f;for(let m of f)l(m)}return f})).then(c=>c.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:g(1984,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:g(1984,null)}}}async _tryParsePlugin(e){try{return await Uc(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,Ko),C(1,M),C(2,Ne),C(3,Ye),C(4,Ve)],Ba);var nm=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||!Le(s.inputSchema,o.inputSchema))return!0}return!1}};import{CAPIClient as eP,RequestType as n_}from"@vscode/copilot-api";var rm=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([Kd(o=>this._logService.warn("[CopilotApiService] getMachineId failed",o)),jd(o=>this._logService.warn("[CopilotApiService] getDevDeviceId failed",o))]);return{extensionInfo:{name:"agent-host",sessionId:K(),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=K();this._logService.debug("[CopilotApiService] POST messages",`model=${e.model} stream=${n} requestId=${s}`);let{system:a,...l}=e,d=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:d,signal:r?.signal},{type:n_.ChatMessages});if(!u.ok){(u.status===401||u.status===403)&&this._invalidateClientForToken(t);let c=await u.text().catch(()=>"");throw r_(u.status,u.statusText,c)}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,d)=>r(l,{method:d.method??"GET",headers:d.headers,body:d.body,signal:d.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 d=this._parseDataLine(l);if(d!==void 0&&(yield d,d.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(rm,a)}if(iP.has(o))return n}}};Xo=w([C(1,M),C(2,Pt)],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 im(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 g(1871,null);case"medium":return g(1873,null);case"high":return g(1870,null);case"xhigh":return g(1875,null);case"max":return g(1872,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:g(1874,null),description:g(1869,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 g(1916,null);case"BashOutput":return g(1917,null);case"KillBash":return g(1922,null);case"Read":return g(1928,null);case"Glob":return g(1920,null);case"Grep":return g(1921,null);case"LS":return g(1923,null);case"NotebookRead":return g(1927,null);case"Write":return g(1932,null);case"Edit":return g(1918,null);case"MultiEdit":return g(1925,null);case"NotebookEdit":return g(1926,null);case"TodoWrite":return g(1930,null);case"WebFetch":return g(1931,null);case"Task":case"Agent":return g(1929,null);case"ExitPlanMode":return g(1919,null);case"AskUserQuestion":return g(1915,null)}return i.startsWith(qa)?g(1924,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 d_(i){switch(pu(i)){case"shell":return g(1912,null);case"write":return g(1914,null);case"read":return g(1911,null);case"url":return g(1913,null);case"mcp":{let t=i.startsWith(qa)?i.slice(qa.length).split("__")[0]:void 0;return t?g(1910,null,t):g(1909,null)}default:return g(1909,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 c_(i){let t=An(i,"command");return t?t.split(`
`)[0]:void 0}function ar(i,t,e){switch(i){case"Bash":{let n=c_(e);return n?Dt(g(1954,null,We(Vn(n,80)))):g(1953,null)}case"BashOutput":return g(1955,null);case"KillBash":return g(1962,null);case"Read":case"NotebookRead":{let n=Dn(i,e);return n?Dt(g(1966,null,rs(n))):g(1965,null)}case"LS":{let n=Dn(i,e);return n?Dt(g(1964,null,rs(n))):g(1963,null)}case"Write":case"Edit":case"MultiEdit":case"NotebookEdit":{let n=Dn(i,e);return n?Dt(g(1957,null,rs(n))):g(1956,null)}case"TodoWrite":return g(1967,null);case"Grep":{let n=An(e,"pattern");return n?Dt(g(1961,null,We(Vn(n,80)))):g(1960,null)}case"Glob":{let n=An(e,"pattern");return n?Dt(g(1959,null,We(Vn(n,80)))):g(1958,null)}case"WebFetch":{let n=An(e,"url");return n?Dt(g(1968,null,`[${zo(Vn(n,80))}](${n})`)):g(1969,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 g(1938,null,t);switch(i){case"Bash":{let r=c_(e);return r?Dt(g(1934,null,We(Vn(r,80)))):g(1933,null)}case"BashOutput":return g(1935,null);case"KillBash":return g(1944,null);case"Read":case"NotebookRead":{let r=Dn(i,e);return r?Dt(g(1948,null,rs(r))):g(1947,null)}case"LS":{let r=Dn(i,e);return r?Dt(g(1946,null,rs(r))):g(1945,null)}case"Write":case"Edit":case"MultiEdit":case"NotebookEdit":{let r=Dn(i,e);return r?Dt(g(1937,null,rs(r))):g(1936,null)}case"TodoWrite":return g(1950,null);case"Grep":{let r=An(e,"pattern");return r?Dt(g(1943,null,We(Vn(r,80)))):g(1942,null)}case"Glob":{let r=An(e,"pattern");return r?Dt(g(1941,null,We(Vn(r,80)))):g(1940,null)}case"WebFetch":{let r=An(e,"url");return r?Dt(g(1951,null,`[${zo(Vn(r,80))}](${r})`)):g(1952,null)}case"Task":case"Agent":return g(1949,null);default:return g(1939,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=gu(r)}catch{o=st.any()}t.has(n)||(o=o.optional()),e[n]=o}return e}function gu(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?gu(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=gu(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 gu(e)}catch{return st.any()}});return t.length===1?t[0]:st.union(t)}var f_="claudecode/toolUseId";async function g_(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:om,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 om="client";function is(i){let t=`mcp__${om}__`;return i.startsWith(t)?i.slice(t.length):i}function m_(i){return i.startsWith(`mcp__${om}__`)}function Ka(i,t,e){let n=new sm(t,e);for(let r of i){let o=dP(r);o!==void 0&&n.consume(o)}return n.finish()}function dP(i){switch(i.type){case"user":return cP(i);case"assistant":return uP(i);case"system":return pP(i);default:return}}function cP(i){let t=gP(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=mP(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)>/,sm=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:go(this._session.toString(),s.toolCallId),title:s.displayName});let d={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=d,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 gP(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 mP(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 am=class{validateOrThrow(t){let e=this.validate(t);if(e.error)throw new Error(e.error.message);return e.content}},os=class extends am{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 ja=new Set(["Task","Agent"]),CP=/^\s*agentId:\s+([a-z0-9]+)\b/im,lm=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)}},mu=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 lm(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 dm(e))this.recordSpawn(n,{agentId:r})}_evictInnerEdgesFor(e){for(let[n,r]of this._innerToParent)r===e&&this._innerToParent.delete(n)}};function dm(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(!ja.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 cm=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 dm(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 Ka(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 um(i){let t=v_().validate(i);if(!(t.error||t.content===null||Array.isArray(t.content)))return t.content}var pm=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(!ja.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=um(s);return a?S_(a.prompt):void 0}}function wP(i){for(let t of i){if(t.type!=="user")continue;let e=um(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=um(r);if(!o||o.type!=="text")continue;let s=S_(o.text);if(s!==void 0)return s}}}var fm=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 cm(i,t),new pm(i,t),new fm]}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),d=await RP(a,{parentUri:s,parentSessionId:l,token:r},{strategies:EP(e,n),cacheGet:c=>t.getSpawn(c)?.agentId,cacheSet:(c,f)=>{t.recordSpawn(c,{agentId:f})}});if(!d)return[];let u;try{u=await e.getSubagentMessages(l,d)}catch(c){return n.warn(`[getSubagentTranscript] getSubagentMessages(${d}) failed: ${c}`),[]}return Ka(u,i,n)}async function gm(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:`${ce(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 mm(i,t,e){let{tools:n}=i.consume();return!n||n.length===0?void 0:{client:await g_(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},hm=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 hm;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||!Le(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 ym=ja;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 d=i.message.content[l];if(d.type==="text"){a.push({kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"markdown",id:`${e}#${s}#${l}`,content:d.text}}});continue}if(d.type==="thinking"){a.push({kind:"action",session:t,action:{type:"session/responsePart",turnId:e,part:{kind:"reasoning",id:`${e}#${s}#${l}`,content:d.thinking}}});continue}if(d.type==="tool_use"){let u=is(d.name);n.startToolBlock(l,d.id,u,e),n.toolCalls.seedParsedInput(d.id,d.input),o.noteInnerTool(d.id,r);let c=Ot(u),f=On(u),m=$r(u,d.input);a.push({kind:"action",session:t,action:{type:"session/toolCallStart",turnId:e,toolCallId:d.id,toolName:u,displayName:c,...f?{_meta:f}:{}}}),a.push({kind:"action",session:t,action:{type:"session/toolCallReady",turnId:e,toolCallId:d.id,invocationMessage:ar(u,c,d.input),...m!==void 0?{toolInput:m}:{},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,d)=>typeof d=="string"&&d.length>200?d.slice(0,200)+"\u2026":d);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"||!ym.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 d=a.is_error===!0,u=WP(a.content)??[],c=e.takeFileEdit(a.tool_use_id);c&&u.push(c);let f=e.toolCalls.lookup(a.tool_use_id)?.info,m=f?fu(f.toolName,f.displayName,f.parsedInput,!d):`${Ot(l.toolName)} finished`;s.push({kind:"action",session:t,action:{type:"session/toolCallComplete",turnId:l.turnId,toolCallId:a.tool_use_id,result:{success:!d,pastTenseMessage:m,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 d=is(l.name),u=m_(l.name);n.startToolBlock(i.index,l.id,d,e);let c=!u&&ym.has(d);o===null?c&&s.recordSpawn(l.id):s.noteInnerTool(l.id,o);let f=On(d),m=u?a:void 0;return[{kind:"action",session:t,action:{type:"session/toolCallStart",turnId:e,toolCallId:l.id,toolName:d,displayName:Ot(d),...m?{toolClientId:m}:{},...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 c=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",...c?{_meta:c}:{}}}]}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 ds=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}`)}}};ds=w([C(4,Ve),C(5,M)],ds);var cs=class extends T{constructor(e,n,r,o,s,a,l=void 0,d,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(d.createInstance(as,e,()=>this._abortController.signal,c=>this._onDidProduceSignal.fire({kind:"steering_consumed",session:this.sessionUri,id:c}))),this._router=this._register(d.createInstance(ds,n,s,a,l)),this._register(this._router.onDidProduceSignal(c=>this._onDidProduceSignal.fire(c))),this._register(A(()=>this._abortController.abort())),this._register(A(()=>{Promise.resolve(this._warm[Symbol.asyncDispose]()).catch(c=>this._logService.warn(`[ClaudeSdkPipeline] WarmQuery dispose failed: ${c}`))}))}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),!jr(r))throw r}}};cs=w([C(7,Ve),C(8,M)],cs);function HP(i,t,e){return ss(i,t)??e}var lr=class extends T{constructor(e,n,r,o,s,a,l,d,u,c,f,m,h,v,S,_){super();this.sessionId=e;this.sessionUri=n;this.workingDirectory=r;this._pendingClientToolCalls=d;this._permissionModeFallback=c;this._metadataStore=f;this._instantiationService=m;this._configurationService=h;this._sdkService=v;this._sessionDataService=S;this._logService=_;this.subagents=this._register(new mu);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,d,u,c){return c.createInstance(lr,e,n,r,o,s,a,new AbortController,l,new hu,d,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 mm(this.toolDiff,this._pendingClientToolCalls,this._sdkService),o=await gm({sessionId:this.sessionId,workingDirectory:this.workingDirectory,model:this._provisionalModel,abortController:this.abortController,permissionMode:n,canUseTool:e.canUseTool,isResume:e.isResume,mcpServers:r},e.proxyHandle,d=>this._logService.error(`[Claude SDK stderr] ${d}`),d=>this._logService.info(`[Claude] declining elicitation from MCP server (Phase 7 stub): ${d}`));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(cs,this.sessionId,this.sessionUri,s,this.abortController,a,this.subagents,this.toolDiff.model.state.get().clientId))}catch(d){throw a.dispose(),await s[Symbol.asyncDispose](),d}if(this._register(l.onDidProduceSignal(d=>this._onDidSessionProgress.fire(d))),this._pipeline=l,l.seedCurrentConfig(this._provisionalModel?.id,im(Ha(this._provisionalModel)),n),!e.isResume)try{await this._metadataStore.write(this.sessionUri,{customizationDirectory:this.workingDirectory,model:this._provisionalModel,permissionMode:n})}catch(d){throw this._logService.error("[Claude] Failed to persist customization directory; aborting materialize",d),d}if(this.abortController.signal.aborted)throw new le;l.attachRematerializer(async d=>{let u=ss(this._configurationService,this.sessionUri)??this._permissionModeFallback;try{let c=await mm(this.toolDiff,this._pendingClientToolCalls,this._sdkService),f=new AbortController,m=await gm({sessionId:this.sessionId,workingDirectory:this.workingDirectory,model:this._provisionalModel,abortController:f,permissionMode:u,canUseTool:e.canUseTool,isResume:!0,mcpServers:c},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:m}),abortController:f}}catch(c){throw this.toolDiff.markDirty(),c}})}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=im(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,ht),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:g(1908,null),options:[{id:"approve",label:g(1906,null),kind:"approve"},{id:"deny",label:g(1907,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 bm(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),d=On(e),u={status:"pending-confirmation",toolCallId:r.toolUseID,toolName:e,displayName:s,invocationMessage:ar(e,s,n),toolInput:l,confirmationTitle:d_(e),...d?{_meta:d}:{}},c=Sm(t,r);return await t.requestPermission({toolUseID:r.toolUseID,state:u,permissionKind:o,...a!==void 0?{permissionPath:a}:{},...c!==void 0?{parentToolCallId:c}:{}})?{behavior:"allow",updatedInput:n}:{behavior:"deny",message:"User declined"}}function Sm(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 KP(i,t,n,r);case"AskUserQuestion":return jP(i,t,n,r);default:return Promise.resolve({behavior:"deny",message:`Unsupported interactive tool: ${e}`})}}async function KP(i,t,e,n){let r=n.toolUseID,o=Sm(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 jP(i,t,e,n){let r=n.toolUseID,o=k_(e);if(!o)return{behavior:"deny",message:"AskUserQuestion called without questions"};let s=Sm(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"])]]),Im=new Map;function us(i){let t=i.toLowerCase();if(Im.has(t))return Im.get(t);let e=QP(t);return Im.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 d=e.match(/^(?<name>\w+)$/);if(d?.groups)return YP(d.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 _m(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(_m(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 Cm=Object.freeze({valid:!1,sessionId:void 0});function F_(i,t){let e=i.authorization;if(typeof e!="string"||!e.startsWith("Bearer "))return Cm;let n=e.slice(7),r=n.indexOf(".");if(r===-1)return Cm;let o=n.slice(0,r),s=n.slice(r+1);return o!==t||s.length===0?Cm:{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((d,u)=>{let c=f=>{u(f)};o.once("error",c),o.listen(0,"127.0.0.1",()=>{o.removeListener("error",c),d()})});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",(d,u)=>{this._handleRequest(d,u,l).catch(c=>{if(this._logService.error(`[${Vr}] unhandled request error: ${Qa(c)}`),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 d=l.toEndpointModelId();s.model=d;let u=s.stream===!0,c=sk(t.headers),f={ac:new AbortController,res:e,clientGone:!1};n.inFlight.add(f);let m=()=>{f.clientGone=!0,f.ac.abort()};e.on("close",m);try{u?await this._streamMessages(s,c,e,f,n,a):await this._sendNonStreamingMessage(s,c,e,f,n,a)}finally{e.removeListener("close",m),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(c){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,c);return}let d=W_(l.model,this._logService)??s,u={...l,model:d};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(c){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,c);return}let d;try{d=await l.next()}catch(c){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}this._writeUpstreamErrorResponse(n,c);return}n.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),n.flushHeaders(),lk(n);let u=async c=>{let f=ok(c,this._logService),m=`event: ${f.type}
data: ${JSON.stringify(f)}

`;if(!n.write(m))try{await ek(n,"drain",{signal:r.ac.signal})}catch{return!1}return!0};try{if(!d.done&&!await u(d.value))return;for(;;){let c;try{c=await l.next()}catch(m){if(r.ac.signal.aborted){!r.clientGone&&!n.writableEnded&&n.destroy();return}let h=m instanceof xi?m.envelope:_m("api_error",Qa(m));if(!n.writableEnded){try{n.write(U_(h))}catch{}try{n.end()}catch{}}return}if(c.done)break;if(!await u(c.value))return}n.writableEnded||n.end()}catch(c){if(this._logService.warn(`[${Vr}] stream loop unexpected error: ${Qa(c)}`),!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===rm?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,dk(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:ck(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,ht)],Bt);function dk(i){return JSON.stringify(i)}function ck(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 ut);this._onDidMaterializeSession=this._register(new x);this.onDidMaterializeSession=this._onDidMaterializeSession.event;this._disposeSequencer=new gt;this._sessionSequencer=new gt;this._metadataStore=l.createInstance(Bt,this.id)}_findAnySession(e){return this._sessions.get(e)?.session}getDescriptor(){return{provider:this.id,displayName:g(1905,null),description:g(1904,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):K(),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),d=new Cu(l);return d.addDisposable(l.onDidSessionProgress(u=>this._onDidSessionProgress.fire(u))),this._sessions.set(n,d),{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)=>bm({getSession:d=>this._findAnySession(d),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(m){this._logService.warn(`[Claude:${e}] overlay read failed during resume; continuing with defaults`,m)}let l=ss(this._configurationService,n)??a.permissionMode??"default",d;try{d=await sr({cwd:s.fsPath},this._gitService)}catch(m){this._logService.warn(`[Claude:${e}] project resolution failed during resume; continuing without project`,m)}let u=lr.createProvisional(e,n,s,d,a.model,void 0,new Wr,l,this._metadataStore,this._instantiationService),c=new Cu(u);c.addDisposable(u.onDidSessionProgress(m=>this._onDidSessionProgress.fire(m))),this._sessions.set(e,c);let f=(m,h,v)=>bm({getSession:S=>this._findAnySession(S),configurationService:this._configurationService},e,m,h,v);try{await u.materialize({proxyHandle:r,canUseTool:f,isResume:!0})}catch(m){throw this._sessions.deleteAndDispose(e),m}return this._onDidMaterializeSession.fire({session:n,workingDirectory:s,project:d}),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(vd(e)){let l=Qe(e),d=l?this._sessions.get(q.id(l.parentSession))?.session:void 0;if(!d)return this._logService.warn(`[Claude] getSessionMessages: parent session not found for subagent ${e.toString()} (registry unavailable)`),[];try{return await I_(e,d.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=Ka(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:yt({type:"string",title:g(1890,null),description:g(1903,null),enum:["default","acceptEdits","bypassPermissions","plan","dontAsk","auto"],enumLabels:[g(1897,null),g(1891,null),g(1895,null),g(1901,null),g(1899,null),g(1893,null)],enumDescriptions:[g(1898,null),g(1892,null),g(1896,null),g(1902,null),g(1900,null),g(1894,null)],default:"default",sessionMutable:!0}),permissions:kt.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??K();return this._sessionSequencer.queue(s,async()=>{let l=this._findAnySession(s),d;l?.isPipelineReady?d=l:l?d=await this._materializeProvisional(s):d=await this._resumeSession(s,e);let c={type:"user",message:{role:"user",content:yu(n,r)},session_id:s,parent_tool_use_id:null,uuid:a};await d.send(c,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]+$/,gk="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=mk(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 mk(i,t){if(!i)return;let e=(i.traceId??"").toLowerCase(),n=(i.spanId??"").toLowerCase();if(!Tm(e,32)||e===gk)throw new Error(`invalid traceId: ${i.traceId}`);if(!Tm(n,16)||n===$_)throw new Error(`invalid spanId: ${i.spanId}`);let r;if(i.parentSpanId){let u=i.parentSpanId.toLowerCase();Tm(u,16)&&u!==$_&&(r=u)}let o=wm(i.startTimeUnixNano),s=wm(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??[])Rm(a,u);let l=[];for(let u of i.events??[]){let c=hk(u);c&&l.push(c)}let d=yk(i.status?.code,i.status?.message);return{name:i.name??"",traceId:e,spanId:n,parentSpanId:r,startTime:o,endTime:s,status:d,attributes:a,events:l}}function hk(i){if(!i)return;let t=wm(i.timeUnixNano);if(t===void 0)return;let e={};for(let n of i.attributes??[])Rm(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)Rm(t,e);return t}function Rm(i,t){if(!t||typeof t.key!="string"||t.key.length===0)return;let e=xm(t.value);e!==void 0&&(i[t.key]=e)}function xm(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(xm);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]=xm(e.value));return JSON.stringify(t)}if(typeof i.bytesValue=="string")return i.bytesValue}}function wm(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 Tm(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,c)=>{Ik(u,c,i,t,n).catch(f=>{if(t.error(`[agentHost-otel] receiver: unhandled error: ${f instanceof Error?f.message:String(f)}`),!c.headersSent)Br(c,500,"internal error");else if(!c.writableEnded)try{c.end()}catch{}})}),await new Promise((u,c)=>{let f=m=>c(m);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 d=A(()=>{o.closeAllConnections(),o.close(u=>{u&&t.warn(`[agentHost-otel] receiver close error: ${u.message}`)})});return Object.assign(d,{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 d;try{d=await _k(i,r)}catch(m){m instanceof Tu?Br(t,413,"payload too large"):Br(t,400,"failed to read body");return}if(e.onForward)try{e.onForward(d,a)}catch(m){n.warn(`[agentHost-otel] forward callback threw: ${m instanceof Error?m.message:String(m)}`)}let u;try{u=JSON.parse(d.toString("utf8"))}catch(m){Br(t,400,`invalid json: ${m instanceof Error?m.message:String(m)}`);return}let c=V_(u);try{e.onSpans(c)}catch(m){n.warn(`[agentHost-otel] onSpans handler threw: ${m instanceof Error?m.message:String(m)}`)}let f=c.rejected>0?{partialSuccess:{rejectedSpans:c.rejected,errorMessage:c.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){d(),n(new Tu(`body exceeds ${t} bytes`));return}r.push(u)},a=()=>{d(),e(Buffer.concat(r))},l=u=>{d(),n(u)},d=()=>{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,K_=100,Ct={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,Ct.operation_name),this._attr(t,Ct.provider_name),this._attr(t,Ct.agent_name),this._attr(t,Ct.conversation_id),this._attr(t,Ct.request_model),this._attr(t,Ct.response_model),this._attr(t,Ct.input_tokens),this._attr(t,Ct.output_tokens),this._attr(t,Ct.cached_tokens),this._attr(t,Ct.reasoning_tokens),this._attr(t,Ct.tool_name),this._attr(t,Ct.tool_call_id),this._attr(t,Ct.tool_type),this._attr(t,Ct.chat_session_id),this._attr(t,Ct.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(ce(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(K_);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,K_)}};var Dk=Gy;function Em(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=Em(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=Em(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:Em(i.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT),headers:Ok(i.OTEL_EXPORTER_OTLP_HEADERS)}}var gs=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(ce(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)}};gs=w([C(0,M),C(1,Dr)],gs);var ku=class extends Error{constructor(e,n,r){super(n);this.code=e;this.data=r}},j_=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 je;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(Pm(e)){Oe(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 je;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 Pm(i){return Oe(i,{id:!0,result:!0})||Oe(i,{id:!0,error:!0})}function Nk(i){return Oe(i,{method:!0})&&!Oe(i,{id:!0})}function Uk(i){return typeof i=="object"&&i!==null&&"then"in i&&typeof i.then=="function"}var ms="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 km(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:km(i,t)<=0}function Q_(i,t){let e;for(let n of i)Fk(n,t)&&(e===void 0||km(n,e)>0)&&(e=n);return e}var Am="_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,d;try{d=a?JSON.parse(a):void 0}catch{}if(l>=200&&l<300&&d&&d.ok!==!1)e(d);else{let u=d?.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 d=o.findIndex(u=>u.id===n.before);d!==-1&&(a=d)}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(Kv(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===Am){this._handleVscodeUpgrade(o.id,e);return}if(!r)return;this._handleRequest(r,o.method,o.params,o.id)}else if(jv(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;(md(s)||hd(s)||s.type==="root/configChanged")&&this._agentService.dispatchAction(a,s,r.clientId,o.params.clientSeq)}break}else if(Pm(o)){let s=this._pendingReverseRequests.get(o.id);s&&(this._pendingReverseRequests.delete(o.id),Oe(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,ms);if(!s){let d={supportedVersions:[`^${ms}`],_meta:Au()?{vscodeUpgradeMethod:Am}:void 0};throw new V(zv,`Client offered protocol versions [${o.join(", ")}], none of which are compatible with this server's version ${ms} (server accepts ^${ms}).`,d)}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:d=>this._sendReverseRequest(e.clientId,"resourceList",{uri:d.toString()}),resourceRead:d=>this._sendReverseRequest(e.clientId,"resourceRead",{uri:d.toString()}),resourceWrite:d=>this._sendReverseRequest(e.clientId,"resourceWrite",d),resourceDelete:d=>this._sendReverseRequest(e.clientId,"resourceDelete",d),resourceMove:d=>this._sendReverseRequest(e.clientId,"resourceMove",d),resourceRequest:d=>this._sendReverseRequest(e.clientId,"resourceRequest",d)}));let l=[];if(e.initialSubscriptions)for(let d of e.initialSubscriptions){let u=this._addInitialSubscription(a,d.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:ms,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(),d=Lu(l);if(d){if(d.kind==="otlp-logs"){if(!this._config.otlpLogEmitter){this._logService.warn(`[ProtocolServer] Reconnect: dropping OTLP subscription ${l}: no OTLP emitter configured.`);return}e.subscriptions.set(d.uri,d);return}try{let u=await this._agentService.subscribe(y.parse(l),e.clientId);return e.subscriptions.set(d.uri,d),this._clearClientToolCallDisconnectTimeout(e.clientId,d.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 d={jsonrpc:"2.0",id:s,method:n,params:r};o.transport.send(d)})}_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(ga(n.channel)){for(let o of e.subscriptions.values())if(o.kind==="state"&&ga(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 Kk="ahp",jk=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,Kk);let o=Yk(this._options.connectionId).slice(0,64);this._baseName=`ahp-${Qk(new Date)}-${o}.jsonl`,this._maxFileSizeBytes=this._options.maxFileSizeBytes??jk,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,Ne),C(2,M)],vs);function Om(i){return k.fromString(i).byteLength}function Jk(i){return JSON.stringify(Dm(i))}function Dm(i){if(y.isUri(i))return i.toString();if(Array.isArray(i))return i.map(Dm);if(i!==null&&typeof i=="object"){let t={};for(let e of Object.keys(i))t[e]=Dm(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 Lm=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",Om(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",Om(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,d=l.host??"127.0.0.1",u=l.connectionTokenValidate?(c,f)=>{let h=a.parse(c.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 c=this._httpServer;this.whenListening=new Promise((f,m)=>{c.once("listening",()=>{this._logService.info(`[WebSocketProtocol] Server listening on socket ${l.socketPath}`),f()}),c.once("error",m)}),this._httpServer.listen(l.socketPath)}else{this._wss=new o.WebSocketServer({port:l.port,host:d,verifyClient:u});let c=this._wss;this.whenListening=new Promise((f,m)=>{c.once("listening",()=>{let h=c.address(),v=!h||typeof h=="string"?`${d}:${l.port}`:`${h.address}:${h.port}`;this._logService.info(`[WebSocketProtocol] Server listening on ${v}`),f()}),c.once("error",m)})}this._wss.on("connection",c=>{this._logService.trace("[WebSocketProtocol] New client connection");let f=new Lm(c,this._WebSocket,this._createAhpLogger());this._onConnection.fire(f)}),this._wss.on("error",c=>{this._logService.error("[WebSocketProtocol] Server error",c)})}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}-${K()}`,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 ce(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=Pe.VSCODE_PORTABLE;return t?y.file(B(t,"argv.json")):ee(this.appSettingsHome,"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=Pe.VSCODE_EXTENSIONS;if(e)return e;let n=Pe.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=Pe.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=Pe.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!Pe.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=Pe.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([de],ae.prototype,"appRoot",1),w([de],ae.prototype,"userHome",1),w([de],ae.prototype,"userDataPath",1),w([de],ae.prototype,"appSettingsHome",1),w([de],ae.prototype,"tmpDir",1),w([de],ae.prototype,"cacheHome",1),w([de],ae.prototype,"stateResource",1),w([de],ae.prototype,"userRoamingDataHome",1),w([de],ae.prototype,"userDataSyncHome",1),w([de],ae.prototype,"sync",1),w([de],ae.prototype,"workspaceStorageHome",1),w([de],ae.prototype,"localHistoryHome",1),w([de],ae.prototype,"keyboardLayoutResource",1),w([de],ae.prototype,"argvResource",1),w([de],ae.prototype,"isExtensionDevelopment",1),w([de],ae.prototype,"untitledWorkspacesHome",1),w([de],ae.prototype,"builtinExtensionsPath",1),w([de],ae.prototype,"extensionsDownloadLocation",1),w([de],ae.prototype,"extensionsPath",1),w([de],ae.prototype,"appSharedDataHome",1),w([de],ae.prototype,"extensionDevelopmentLocationURI",1),w([de],ae.prototype,"extensionDevelopmentKind",1),w([de],ae.prototype,"extensionTestsLocationURI",1),w([de],ae.prototype,"debugExtensionHost",1),w([de],ae.prototype,"logLevel",1),w([de],ae.prototype,"extensionLogLevel",1),w([de],ae.prototype,"serviceMachineIdResource",1),w([de],ae.prototype,"disableTelemetry",1),w([de],ae.prototype,"disableExperiments",1),w([de],ae.prototype,"disableWorkspaceTrust",1),w([de],ae.prototype,"useInMemorySecretStorage",1),w([de],ae.prototype,"policyFile",1),w([de],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,d;if(o)try{d=JSON.parse(o)}catch{}return{port:a,break:l,debugId:r,env:d}}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:g(2194,null),e:g(2178,null),t:g(2208,null),m:g(2189,null)};var d1={chat:{type:"subcommand",description:"Pass in a prompt to run in a chat session in the current working directory.",options:{_:{type:"string[]",description:g(2198,null)},mode:{type:"string",cat:"o",alias:"m",args:"mode",description:g(2165,null)},"add-file":{type:"string[]",cat:"o",alias:"a",args:"path",description:g(2160,null)},maximize:{type:"boolean",cat:"o",description:g(2164,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:g(2201,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:g(2192,null)},profile:{type:"string",cat:"o",args:"profileName",description:g(2197,null)},help:{type:"boolean",alias:"h",description:g(2180,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:g(2166,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:g(2166,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:g(2166,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:g(2170,null)},merge:{type:"boolean",cat:"o",alias:"m",args:["path1","path2","base","result"],description:g(2190,null)},add:{type:"boolean",cat:"o",alias:"a",args:"folder",description:g(2159,null)},remove:{type:"boolean",cat:"o",args:"folder",description:g(2199,null)},goto:{type:"boolean",cat:"o",alias:"g",args:"file:line[:character]",description:g(2179,null)},"new-window":{type:"boolean",cat:"o",alias:"n",description:g(2191,null)},"reuse-window":{type:"boolean",cat:"o",alias:"r",description:g(2200,null)},agents:{type:"boolean",cat:"o",deprecates:["sessions"],description:g(2162,null)},wait:{type:"boolean",cat:"o",alias:"w",description:g(2218,null)},waitMarkerFilePath:{type:"string"},locale:{type:"string",cat:"o",args:"locale",description:g(2186,null)},"user-data-dir":{type:"string",cat:"o",args:"dir",description:g(2215,null)},profile:{type:"string",cat:"o",args:"profileName",description:g(2197,null)},help:{type:"boolean",cat:"o",alias:"h",description:g(2180,null)},"stdin-to-clipboard":{type:"boolean",cat:"o",alias:"c",description:g(2167,null)},"extensions-dir":{type:"string",deprecates:["extensionHomePath"],cat:"e",args:"dir",description:g(2177,null)},"extensions-download-dir":{type:"string"},"builtin-extensions-dir":{type:"string"},"shared-data-dir":{type:"string"},"list-extensions":{type:"boolean",cat:"e",description:g(2185,null)},"agent-plugins-dir":{type:"string"},"agents-user-data-dir":{type:"string"},"agents-extensions-dir":{type:"string"},"show-versions":{type:"boolean",cat:"e",description:g(2202,null)},category:{type:"string",allowEmptyValue:!0,cat:"e",description:g(2163,null),args:"category"},"install-extension":{type:"string[]",cat:"e",args:"ext-id | path",description:g(2184,null)},"pre-release":{type:"boolean",cat:"e",description:g(2183,null)},"uninstall-extension":{type:"string[]",cat:"e",args:"ext-id",description:g(2210,null)},"update-extensions":{type:"boolean",cat:"e",description:g(2213,null)},"enable-proposed-api":{type:"string[]",allowEmptyValue:!0,cat:"e",args:"ext-id",description:g(2176,null)},"add-mcp":{type:"string[]",cat:"m",args:"json",description:g(2161,null)},version:{type:"boolean",cat:"t",alias:"v",description:g(2217,null)},verbose:{type:"boolean",cat:"t",global:!0,description:g(2216,null)},log:{type:"string[]",cat:"t",args:"level",global:!0,description:g(2188,null)},status:{type:"boolean",alias:"s",cat:"t",description:g(2203,null)},"prof-startup":{type:"boolean",cat:"t",description:g(2196,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:g(2173,null)},"disable-extension":{type:"string[]",cat:"t",args:"ext-id",description:g(2172,null)},sync:{type:"string",cat:"t",description:g(2209,null),args:["on | off"]},"inspect-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugPluginHost"],args:"port",cat:"t",description:g(2182,null)},"inspect-brk-extensions":{type:"string",allowEmptyValue:!0,deprecates:["debugBrkPluginHost"],args:"port",cat:"t",description:g(2181,null)},"disable-lcd-text":{type:"boolean",cat:"t",description:g(2175,null)},"disable-gpu":{type:"boolean",cat:"t",description:g(2174,null)},"disable-chromium-sandbox":{type:"boolean",cat:"t",description:g(2171,null)},sandbox:{type:"boolean"},"locate-shell-integration-path":{type:"string",cat:"t",args:["shell"],description:g(2187,null)},telemetry:{type:"boolean",cat:"t",description:g(2206,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:g(2207,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 Mm(i,t,e=aA){let n=i.find((f,m)=>f.length>0&&f[0]!=="-"&&t.hasOwnProperty(f)&&t[f].type==="subcommand"),r={},o=["_"],s=[],a={},l;for(let f in t){let m=t[f];m.type==="subcommand"?f===n&&(l=m):(m.alias&&(r[f]=m.alias),m.type==="string"||m.type==="string[]"?(o.push(f),m.deprecates&&o.push(...m.deprecates)):m.type==="boolean"&&(s.push(f),m.deprecates&&s.push(...m.deprecates)),m.global&&(a[f]=m))}if(l&&n){let f=a;for(let S in l.options)f[S]=l.options[S];let m=i.filter(S=>S!==n),h=e.getSubcommandReporter?e.getSubcommandReporter(n):void 0,v=Mm(m,f,h);return{[n]:v,_:[]}}let d=sA(i,{string:o,boolean:s,alias:r}),u={},c=d;u._=d._.map(f=>String(f)).filter(f=>f.length>0),delete c._;for(let f in t){let m=t[f];if(m.type==="subcommand")continue;m.alias&&delete c[m.alias];let h=c[f];if(m.deprecates)for(let v of m.deprecates)c.hasOwnProperty(v)&&(h||(h=c[v],h&&e.onDeprecatedOption(v,m.deprecationMessage||g(2169,null,f))),delete c[v]);if(typeof h<"u"){if(m.type==="string[]"){if(Array.isArray(h)||(h=[h]),!m.allowEmptyValue){let v=h.filter(S=>S.length>0);v.length!==h.length&&(e.onEmptyValue(f),h=v.length>0?v:void 0)}}else m.type==="string"&&(Array.isArray(h)?(h=h.pop(),e.onMultipleValues(f,h)):!h&&!m.allowEmptyValue&&(e.onEmptyValue(f),h=void 0));u[f]=h,m.deprecationMessage&&e.onDeprecatedOption(f,m.deprecationMessage)}delete c[f]}for(let f in c)e.onUnknownOption(f);return u}var Uu=class extends T{constructor(t,e=[]){super(),this.logger=new ud([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 c1(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*ed.MB,l=await lA(e,n,a,s,o);if(l){this._logger=l,u1(this._logger,this.getLevel());for(let{level:d,message:u}of this.buffer)c1(this._logger,d,u);this.buffer=[]}}log(e,n){this._logger?c1(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(K(),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 Nm(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 dA(){if(typeof performance=="object"&&typeof performance.mark=="function"&&!performance.nodeTiming)return typeof performance.timeOrigin!="number"&&!performance.timing?Nm():{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 Nm(i)}else return console.trace("perf-util loaded in UNKNOWN environment"),Nm()}function cA(i){return i.MonacoPerformanceMarks||(i.MonacoPerformanceMarks=dA()),i.MonacoPerformanceMarks}var Um=cA(globalThis),f1=Um.mark,wse=Um.clearMarks,Rse=Um.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){Fm(o);let s=await i.open(t,{create:!1});try{Fm(o);let a=0,l=0,d=r&&typeof r.length=="number"?r.length:void 0,u=k.alloc(Math.min(r.bufferSize,typeof d=="number"?d:r.bufferSize)),c=r&&typeof r.position=="number"?r.position:0,f=0;do l=await i.read(s,c,u.buffer,f,u.byteLength-f),c+=l,f+=l,a+=l,typeof d=="number"&&(d-=l),f===u.byteLength&&(await e.write(n(u)),u=k.alloc(Math.min(r.bufferSize,typeof d=="number"?d:r.bufferSize)),f=0);while(l>0&&(typeof d!="number"||d>0)&&Fm(o)&&pA(a,r));if(f>0){let m=f;typeof d=="number"&&(m=Math.min(f,d)),e.write(n(u.slice(0,m)))}}catch(a){throw Xn(a)}finally{await i.close(s)}}function Fm(i){if(i.isCancellationRequested)throw nl();return!0}function pA(i,t){if(typeof t?.limits?.size=="number"&&i>t.limits.size)throw fe(g(2380,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),pt(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(g(2369,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=g(2371,null,e.toString()),r}return n}async withReadProvider(e){let n=await this.withProvider(e);if(Yn(n)||Ft(n)||td(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(g(2366,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,d=await r.stat(e),u;return this.toFileStat(r,e,d,void 0,!!l,(c,f)=>(u||(u=vn.forUris(()=>!o),u.set(e,!0),s&&u.fill(!0,s)),u.get(c.resource)||u.findSuperstr(c.resource.with({query:null,fragment:null}))?!0:c.isDirectory&&a?f===1:!1))}async toFileStat(e,n,r,o,s,a){let{providerExtUri:l}=this.getExtUri(e),d={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(d.isDirectory&&a(d,o)){try{let u=await e.readdir(n),c=await ii.settled(u.map(async([f,m])=>{try{let h=l.joinPath(n,f),v=s?await e.stat(h):{type:m};return await this.toFileStat(e,h,v,u.length,s,a)}catch(h){return this.logService.trace(h),null}}));d.children=Ei(c)}catch(u){this.logService.trace(u),d.children=[]}return d}return d}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(g(2362,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:d}=await this.validateWriteFile(o,e,n,a);l||await this.mkdirp(o,s.dirname(e)),d||(d=await this.peekBufferForWriting(o,n)),!Yn(o)||Ft(o)&&d instanceof k||Ft(o)&&hf(o)&&a?.atomic?await this.doWriteUnbuffered(o,e,a,d):await this.doWriteBuffered(o,e,a,d instanceof k?wy(d):d),this._onDidRunOperation.fire(new Jn(e,4))}catch(l){throw new Ge(g(2361,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(g(2379,null,this.resourceForError(n)));if(o?.append&&!vv(e))throw new Ge(g(2358,null,this.resourceForError(n)),6);if(!!o?.atomic){if(!(e.capabilities&32768))throw new Error(g(2377,null,this.resourceForError(n)));if(!(e.capabilities&2))throw new Error(g(2378,null,this.resourceForError(n)));if(s)throw new Error(g(2376,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(g(2364,null,this.resourceForError(n)),0,o);this.throwIfFileIsReadonly(n,l);let d;if(typeof o?.mtime=="number"&&typeof o.etag=="string"&&o.etag!==rd&&typeof l.mtime=="number"&&typeof l.size=="number"&&o.mtime<l.mtime&&o.etag!==vf({mtime:o.mtime,size:l.size})){if(d=await this.peekBufferForWriting(e,r),d instanceof k&&d.byteLength===l.size)try{let{value:u}=await this.readFile(n,{limits:{size:l.size}});if(d.equals(u))return{stat:l,buffer:d}}catch{}throw new Ge(g(2365,null),3,o)}return{stat:l,buffer:d}}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 je(o),a=r;nd(e)&&e.enforceAtomicReadFile?.(n)&&(a={...r,atomic:!0});let l=this.validateReadFile(n,a).then(u=>u,u=>{throw s.dispose(!0),u}),d;try{return typeof a?.etag=="string"&&a.etag!==rd&&await l,a?.atomic&&nd(e)||!(Yn(e)||td(e))||Ft(e)&&a?.preferUnbuffered?d=this.readFileUnbuffered(e,n,a):td(e)?d=this.readFileStreamed(e,n,s.token,a):d=this.readFileBuffered(e,n,s.token,a),d.on("end",()=>s.dispose()),d.on("error",()=>s.dispose()),{...await l,value:d}}catch(u){throw d&&await Al(d),this.restoreReadError(u,n,a)}}restoreReadError(e,n,r){let o=g(2359,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=Kn(s=>k.concat(s));return(async()=>{try{let s;r?.atomic&&nd(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(g(2363,null,this.resourceForError(e)),0,n);if(typeof n?.etag=="string"&&n.etag!==rd&&n.etag===r.etag)throw new lo(g(2367,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(g(2368,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:d}=await this.doValidateMoveCopy(e,n,r,o,s,a);if(l&&!d&&a&&await this.del(o,{recursive:!0}),await this.mkdirp(r,this.getExtUri(r).providerExtUri.dirname(o)),s==="copy"){if(e===r&&mf(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:c}=this.getExtUri(e);if(c||(l=u.isEqual(n,o)),l&&s==="copy")throw new Error(g(2372,null,this.resourceForError(n),this.resourceForError(o)));if(!l&&u.isEqualOrParent(o,n))throw new Error(g(2373,null,this.resourceForError(n),this.resourceForError(o)))}let d=await this.exists(o);if(d&&!l){if(!a)throw new Ge(g(2374,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(g(2375,null,this.resourceForError(n),this.resourceForError(o)))}}return{exists:d,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(g(2370,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(g(2357,null,this.resourceForError(e)));let s=n?.atomic;if(s&&!(r.capabilities&65536))throw new Error(g(2353,null,this.resourceForError(e)));if(o&&s)throw new Error(g(2356,null,this.resourceForError(e)));let a;try{a=await r.stat(e)}catch{}if(a)this.throwIfFileIsReadonly(e,a);else throw new Ge(g(2355,null,this.resourceForError(e)),1);if(!!!n?.recursive){let d=await this.resolve(e);if(d.isDirectory&&Array.isArray(d.children)&&d.children.length>0)throw new Error(g(2354,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 d=r.enforceAtomicDelete?.(e);d&&(o={...n,atomic:d})}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&&mf(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?pt(l):s=()=>pt(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&&(pt(s.disposable),this.activeWatchers.delete(o)))})}dispose(){super.dispose();for(let[,e]of this.activeWatchers)pt(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 d=>{s.pause();try{await this.doWriteBuffer(e,n,d,d.byteLength,o,0)}catch(u){return l(u)}o+=d.byteLength,setTimeout(()=>s.resume())},onError:d=>l(d),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 d=await e.write(n,s+l,r.buffer,a+l,o-l);l+=d}}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),d=0,u=0,c=0;do c=await e.read(s,d,l.buffer,u,l.byteLength-u),await this.doWriteBuffer(r,a,l,c,d,u),d+=c,u+=c,u===l.byteLength&&(u=0);while(c>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(g(2360,null,this.resourceForError(n)),6);return e}throwIfFileIsReadonly(e,n){if((n.permissions??0)&1)throw new Ge(g(2360,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 Bm,promises as Ri}from"fs";function zu(i){return typeof i.correlationId=="number"}function m1(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 $m(i){return i.map(t=>({type:t.type,resource:y.revive(t.resource),cId:t.cId}))}function h1(i){let t=new Wm;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 Vm(i,t,e){let n=[];for(let r of t)n.push(dg(fA(i,r),{ignoreCase:e}));return n}var Wm=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 Ku=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(m1(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=>Me(e))}doRefreshUniversalWatchers(){return this.universalWatcher||(this.universalWatcher=this._register(this.createUniversalWatcher(e=>this._onDidChangeFile.fire($m(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=>Me(e))}doRefreshNonRecursiveWatchers(){return this.nonRecursiveWatcher||(this.nonRecursiveWatcher=this._register(this.createNonRecursiveWatcher(e=>this._onDidChangeFile.fire($m(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 ju=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 gA,unwatchFile as mA}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 ut);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=>Me(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),d=this.isPathNotFound(a),u=r;r=l,!l&&(d||u)&&this.onMonitoredPathAdded(e)};this.trace(`starting fs.watchFile() on ${e.path} (correlationId: ${e.correlationId})`);try{gA(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{mA(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 je;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=Vm(this.request.path,this.request.excludes,l),this.includes=this.request.includes?Vm(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 mh(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 je(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),d=hA(r);s.add(A(()=>{d.removeAllListeners(),d.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 c=new Map;s.add(A(()=>{for(let[,f]of c)f.dispose();c.clear()})),d.on("error",(f,m)=>{o.token.isCancellationRequested||(this.error(`Failed to watch ${r} for changes using fs.watch() (${f}, ${m})`),this.notifyWatchFailed())}),d.on("change",(f,m)=>{if(o.token.isCancellationRequested)return;this.verboseLogging&&this.traceWithCorrelation(`[raw] ["${f}"] ${m}`);let h="";if(m&&(h=m.toString(),qe&&(h=zs(h))),!(!h||f!=="change"&&f!=="rename"))if(e)if(f==="rename"){c.get(h)?.dispose();let v=setTimeout(async()=>{if(c.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);c.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(ce(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&&cg(s.request.excludes,o.excludes)&&cg(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 Ku{constructor(){super(...arguments);this.onDidChangeCapabilities=X.None;this.resourceLocks=new Re(e=>St.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 It.stat(this.toFilePath(e)),o;return(n.mode&128)===0&&(o=2),(n.mode&Bm.S_IXUSR||n.mode&Bm.S_IXGRP||n.mode&Bm.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=Kn(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(gn(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 It.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(g(2383,null),"EntryExists")}else if(!r.create)throw fe(g(2386,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 It.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(d){this.logService.trace(d)}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(d){throw this.toFileSystemProviderError(d)}finally{this.updatePos(e,a,l)}return l}normalizePos(e,n){return n===this.mapHandleToPos.get(e)?null:n}updatePos(e,n,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(d){throw await this.toFileSystemProviderWriteError(this.writeHandles.get(e),d)}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(ce(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 It.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(g(2387,null,be(o),be(ce(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(g(2381,null,be(o),be(ce(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(g(2382,null),"EntryExists");if(r==="move")return}let u=await this.statIgnoreError(e);if(!u)throw fe(g(2385,null),"EntryNotFound");let c=await this.statIgnoreError(n);if(c){if(!o)throw fe(g(2384,null),"EntryExists");(u.type&1)!==0&&(c.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(ce(s),{recursive:!0}),await Ri.copyFile(o,s)}catch(d){if(d.code==="ENOENT"&&!r)return this.doCloneFile(e,n,!0);throw this.toFileSystemProviderError(d)}finally{l.dispose()}}createUniversalWatcher(e,n,r){return new ju(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 It.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 cn(i,t){return new Promise((e,n)=>{i.exec(t,r=>r?n(r):e())})}function Tt(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 Hm(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 cn(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 cn(i,"BEGIN TRANSACTION");try{for(let o of r)await cn(i,o.sql),await cn(i,`PRAGMA user_version = ${o.version}`);await cn(i,"COMMIT")}catch(o){throw await cn(i,"ROLLBACK"),o}}}var Zu=class i{constructor(t,e=b1){this._path=t;this._migrations=e;this._fileEditSequencer=new gt;this._metadataSequencer=new gt;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(ce(this._path),{recursive:!0});let t=await vA(this._path);try{await bA(t,this._migrations)}catch(e){throw await Hm(t),this._dbPromise=void 0,e}if(this._closed)throw await Hm(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 Tt(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t])})}deleteTurn(t){return this._track(async()=>{let e=await this._ensureDb();await Tt(e,"DELETE FROM turns WHERE id = ?",[t])})}setTurnEventId(t,e){return this._track(async()=>{let n=await this._ensureDb();await Tt(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await Tt(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 Tt(n,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t]),await Tt(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 Tt(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 Tt(e,"DELETE FROM turns WHERE rowid > (SELECT rowid FROM turns WHERE id = ?)",[t])})}deleteAllTurns(){return this._track(async()=>{let t=await this._ensureDb();await cn(t,"DELETE FROM turns")})}storeFileEdit(t){return this._track(()=>this._fileEditSequencer.queue(t.filePath,async()=>{let e=await this._ensureDb();await Tt(e,"INSERT OR IGNORE INTO turns (id) VALUES (?)",[t.turnId]),await Tt(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 Tt(n,"INSERT OR REPLACE INTO session_metadata (key, value) VALUES (?, ?)",[t,e])}))}remapTurnIds(t){return this._track(async()=>{let e=await this._ensureDb();await cn(e,"PRAGMA defer_foreign_keys = ON"),await cn(e,"BEGIN TRANSACTION");try{let n=[...t.keys()];if(n.length>0){let r=n.map(()=>"?").join(",");await Tt(e,`DELETE FROM turns WHERE id NOT IN (${r})`,n)}for(let[r,o]of t)await Tt(e,"UPDATE turns SET id = ? WHERE id = ?",[o,r]),await Tt(e,"UPDATE file_edits SET turn_id = ? WHERE turn_id = ?",[o,r]);await cn(e,"COMMIT")}catch(n){throw await cn(e,"ROLLBACK"),n}})}async whenIdle(){for(;this._pendingWrites.size>0;)await Promise.allSettled([...this._pendingWrites])}async vacuumInto(t){let e=await this._ensureDb();await Tt(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=>Hm(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 qm=class extends dl{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 qm(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,Ne),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=mn(process.env,s);typeof a=="string"&&a&&t.push(`${s}=${a}`)}let e=mn(process.env,"USERPROFILE");typeof e=="string"&&e&&t.push(`USERPROFILE=${e}`);let n=mn(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=mn(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=mn(process.env,"LOCALAPPDATA");return typeof t=="string"&&t?t:void 0}_getTempReadPaths(){let t=[];for(let e of["TMP","TEMP"]){let n=mn(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=gn(e),s=_e(e),l=(await this._listDirectory(e.authority,o)).find(d=>d.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:Ke,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:Ke,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:Ke,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:Ke,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===Ue.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 dI(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 gt;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,Ne),C(2,M)],_s);IA().catch(i=>{console.error(i),process.exit(1)});async function IA(){let i;Vl(process)?i=new js:i=new Wl("agentHost");let t=new z,e={_serviceBrand:void 0,...At},n=new Nu(Mm(process.argv,d1),e),r=new Wu(Lv(n),n.logsHome);i.registerChannel("agentHostLogger",new $u(r,()=>p1));let o=r.createLogger("agenthost",{name:g(1889,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 d=t.add(new Hr(l));t.add(d.registerProvider(ie.file,t.add(new Xu(l)))),t.add(PI(d));let u=new Is(y.file(n.userDataPath),d,l),c=ee(n.appSettingsHome,"globalStorage","agent-host-config.json"),f=await WS({environmentService:n,productService:e,fileService:d,loggerService:r,logService:l,disposables:t}),m,h;try{let P=new wr;P.set(Dr,n),P.set(M,l),P.set(Ne,d),P.set(ht,u),P.set(Pt,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 j=h.createInstance(ts);P.set(ns,j);let te=t.add(h.createInstance(gs));P.set(Hc,te),m=new $c(l,d,u,e,J,E,c,f);let me=new _s(y.file(n.userDataPath),d,l);P.set(Ko,me);let Cs=t.add(new Or(l));P.set(Ad,Cs),P.set(So,m.terminalManager),P.set(Ye,m.configurationService),P.set(_c,m.completionsService),m.registerProvider(h.createInstance(ge)),process.env[Gs]&&m.registerProvider(h.createInstance(fs))}catch(P){throw l.error("Failed to create AgentService",P),P}let v=Xi.fromService(m,t);i.registerChannel("agentHost",v);let S=t.add(new np);if(t.add(d.registerProvider(Bg,S)),i instanceof js){let P=new Map;t.add(i.onDidAddConnection(J=>{let E=J.ctx;if(typeof E!="string"||!E)return;let L=i.getChannel(_1,j=>j.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-${K().replace(/-/g,"")}`:B(el.tmpdir(),`vscode-agent-host-${K().replace(/-/g,"")}.sock`),J=t.add(await Xa.create({socketPath:P},l,{instantiationService:h,logsHome:n.logsHome})),E=t.add(new wi(m,m.stateManager,J,{defaultDirectory:y.file(el.homedir()).toString(),completionTriggerCharacters:m.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 j=E.hostname==="0.0.0.0"?"127.0.0.1":E.hostname==="::"?"::1":E.hostname,te=j.includes(":")?`[${j}]`:j;return{host:j,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(m,S,h,n.logsHome,l,s,t,P=>_.fire(P)).catch(P=>{l.error("Failed to start WebSocket server",P)}),process.once("exit",()=>{m.dispose(),l.dispose(),t.dispose()})}async function _A(i,t,e,n,r,o,s,a){let l=process.env.VSCODE_AGENT_HOST_PORT,d=process.env.VSCODE_AGENT_HOST_SOCKET_PATH;if(!l&&!d)return;let u=process.env.VSCODE_AGENT_HOST_CONNECTION_TOKEN,c=process.env.VSCODE_AGENT_HOST_HOST||"localhost",f=s.add(await Xa.create(d?{socketPath:d,connectionTokenValidate:u?v=>v===u:void 0}:{port:parseInt(l,10),host:c,connectionTokenValidate:u?v=>v===u:void 0},r,{instantiationService:e,logsHome:n})),m=s.add(new wi(i,i.stateManager,f,{defaultDirectory:y.file(el.homedir()).toString(),completionTriggerCharacters:i.completionTriggerCharacters,otlpLogEmitter:o},t,r));s.add(m.onDidChangeConnectionCount(a)),await f.whenListening;let h=d??`${c}:${f.boundPort??l}`;r.info(`[AgentHost] WebSocket server listening on ${h}`),console.log(`Agent host server listening on ${h}`)}
