ompgui 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +9 -9
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +1 -1
- package/.next/required-server-files.js +2 -2
- package/.next/required-server-files.json +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pair/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pair.html +1 -1
- package/.next/server/app/pair.rsc +1 -1
- package/.next/server/app/pair.segments/_full.segment.rsc +1 -1
- package/.next/server/app/pair.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/pair.segments/pair/__PAGE__.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +9 -9
- package/.next/server/chunks/714.js +1 -1
- package/.next/server/chunks/795.js +9 -9
- package/.next/server/chunks/8834.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1012.477e42e5184b6aaa.js → 1012.1393cfb59d12bb81.js} +1 -1
- package/.next/static/chunks/app/{page-f53564bcb292e1e5.js → page-fe40fe42b5ca1207.js} +1 -1
- package/.next/static/chunks/{webpack-4e02c722bd171663.js → webpack-d6e3c46873419a16.js} +1 -1
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/package.json +1 -1
- /package/.next/static/{Na7qed083WBP3X-plluRO → -e2ns-fZZm-4SQeI3H4-N}/_buildManifest.js +0 -0
- /package/.next/static/{Na7qed083WBP3X-plluRO → -e2ns-fZZm-4SQeI3H4-N}/_ssgManifest.js +0 -0
|
@@ -11,7 +11,7 @@ ${c.indent}`:"\n"===A&&l&&(A="\n\n")}else if(!u&&d.isCollection(b)){let a=z[0],d
|
|
|
11
11
|
${c.indent}`)}}else(""===z||"\n"===z[0])&&(A="");return x+=A+z,c.inFlow?y&&h&&h():l&&!y?x+=g.lineComment(x,c.indent,q(l)):w&&i&&i(),x}},67539:(a,b,c)=>{"use strict";var d=c(73315),e=c(49443),f=c(30598),g=c(71397),h=c(84183);class i extends g.YAMLSeq{constructor(){super(),this.add=f.YAMLMap.prototype.add.bind(this),this.delete=f.YAMLMap.prototype.delete.bind(this),this.get=f.YAMLMap.prototype.get.bind(this),this.has=f.YAMLMap.prototype.has.bind(this),this.set=f.YAMLMap.prototype.set.bind(this),this.tag=i.tag}toJSON(a,b){if(!b)return super.toJSON(a);let c=new Map;for(let a of(b?.onCreate&&b.onCreate(c),this.items)){let f,g;if(d.isPair(a)?(f=e.toJS(a.key,"",b),g=e.toJS(a.value,f,b)):f=e.toJS(a,"",b),c.has(f))throw Error("Ordered maps must not include duplicate keys");c.set(f,g)}return c}static from(a,b,c){let d=h.createPairs(a,b,c),e=new this;return e.items=d.items,e}}i.tag="tag:yaml.org,2002:omap",b.YAMLOMap=i,b.omap={collection:"seq",identify:a=>a instanceof Map,nodeClass:i,default:!1,tag:"tag:yaml.org,2002:omap",resolve(a,b){let c=h.resolvePairs(a,b),e=[];for(let{key:a}of c.items)d.isScalar(a)&&(e.includes(a.value)?b(`Ordered maps must not include duplicate keys: ${a.value}`):e.push(a.value));return Object.assign(new i,c)},createNode:(a,b,c)=>i.from(a,b,c)}},67681:(a,b,c)=>{"use strict";var d=c(3327),e=c(73315),f=c(15325),g=c(3289),h=c(12244),i=c(3863);let j={composeNode:k,composeEmptyNode:l};function k(a,b,c,i){let k,m=a.atKey,{spaceBefore:n,comment:o,anchor:p,tag:q}=c,r=!0;switch(b.type){case"alias":k=function({options:a},{offset:b,source:c,end:e},f){let g=new d.Alias(c.substring(1));""===g.source&&f(b,"BAD_ALIAS","Alias cannot be an empty string"),g.source.endsWith(":")&&f(b+c.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let i=b+c.length,j=h.resolveEnd(e,i,a.strict,f);return g.range=[b,i,j.offset],j.comment&&(g.comment=j.comment),g}(a,b,i),(p||q)&&i(b,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":k=g.composeScalar(a,b,q,i),p&&(k.anchor=p.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{k=f.composeCollection(j,a,b,c,i),p&&(k.anchor=p.source.substring(1))}catch(a){i(b,"RESOURCE_EXHAUSTION",a instanceof Error?a.message:String(a))}break;default:{let a="error"===b.type?b.message:`Unsupported token (type: ${b.type})`;i(b,"UNEXPECTED_TOKEN",a),r=!1}}return k??(k=l(a,b.offset,void 0,null,c,i)),p&&""===k.anchor&&i(p,"BAD_ALIAS","Anchor cannot be an empty string"),m&&a.options.stringKeys&&(!e.isScalar(k)||"string"!=typeof k.value||k.tag&&"tag:yaml.org,2002:str"!==k.tag)&&i(q??b,"NON_STRING_KEY","With stringKeys, all keys must be strings"),n&&(k.spaceBefore=!0),o&&("scalar"===b.type&&""===b.source?k.comment=o:k.commentBefore=o),a.options.keepSourceTokens&&r&&(k.srcToken=b),k}function l(a,b,c,d,{spaceBefore:e,comment:f,anchor:h,tag:j,end:k},m){let n={type:"scalar",offset:i.emptyScalarPosition(b,c,d),indent:-1,source:""},o=g.composeScalar(a,n,j,m);return h&&(o.anchor=h.source.substring(1),""===o.anchor&&m(h,"BAD_ALIAS","Anchor cannot be an empty string")),e&&(o.spaceBefore=!0),f&&(o.comment=f,o.range[2]=k),o}b.composeEmptyNode=l,b.composeNode=k},67708:(a,b,c)=>{var d=c(19435);function e(a,b){return{type:"element",tag:a,children:b||[]}}b.freshElement=function(a,b,c){return e(d.element(a,b,{fresh:!0}),c)},b.nonFreshElement=function(a,b,c){return e(d.element(a,b,{fresh:!1}),c)},b.elementWithTag=e,b.text=function(a){return{type:"text",value:a}},b.forceWrite={type:"forceWrite"};var f={br:!0,hr:!0,img:!0,input:!0};b.isVoidElement=function(a){return 0===a.children.length&&f[a.tag.tagName]}},68318:(a,b,c)=>{"use strict";a.exports=function(a,b){var d={},e=c(22418),f=c(35527),g=e.withAppended,h=e.maybeWrapAsError,i=e.canEvaluate,j=c(43823).TypeError,k={__isPromisified__:!0},l=RegExp("^(?:arity|length|name|arguments|caller|callee|prototype|__isPromisified__)$"),m=function(a){return e.isIdentifier(a)&&"_"!==a.charAt(0)&&"constructor"!==a};function n(a){return!l.test(a)}function o(a){try{return!0===a.__isPromisified__}catch(a){return!1}}var p=function(a){for(var b=[a],c=Math.max(0,a-1-3),d=a-1;d>=c;--d)b.push(d);for(var d=a+1;d<=3;++d)b.push(d);return b},q=i?function(c,i,j,k,l,m){var n=Math.max(0,("number"==typeof k.length?Math.max(Math.min(k.length,1024),0):0)-1),o=p(n),q="string"==typeof c||i===d,r="'use strict'; \n var ret = function (Parameters) { \n 'use strict'; \n var len = arguments.length; \n var promise = new Promise(INTERNAL); \n promise._captureStackTrace(); \n var nodeback = nodebackForPromise(promise, "+m+"); \n var ret; \n var callback = tryCatch([GetFunctionCode]); \n switch(len) { \n [CodeForSwitchCase] \n } \n if (ret === errorObj) { \n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n } \n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n return promise; \n }; \n notEnumerableProp(ret, '__isPromisified__', true); \n return ret; \n ".replace("[CodeForSwitchCase]",function(){for(var a="",b=0;b<o.length;++b)a+="case "+o[b]+":"+function(a){var b=e.filledRange(a,"_arg","").join(", ");return(q?"ret = callback.call(this, {{args}}, nodeback); break;\n":void 0===i?"ret = callback({{args}}, nodeback); break;\n":"ret = callback.call(receiver, {{args}}, nodeback); break;\n").replace("{{args}}",b).replace(", ",a>0?", ":"")}(o[b]);return a+" \n default: \n var args = new Array(len + 1); \n var i = 0; \n for (var i = 0; i < len; ++i) { \n args[i] = arguments[i]; \n } \n args[i] = nodeback; \n [CodeForCall] \n break; \n ".replace("[CodeForCall]",q?"ret = callback.apply(this, args);\n":"ret = callback.apply(receiver, args);\n")}()).replace("[GetFunctionCode]","string"==typeof c?"this != null ? this['"+c+"'] : fn":"fn");return Function("Promise","fn","receiver","withAppended","maybeWrapAsError","nodebackForPromise","tryCatch","errorObj","notEnumerableProp","INTERNAL",r=r.replace("Parameters",e.filledRange(Math.max(n,3),"_arg","")))(a,k,i,g,h,f,e.tryCatch,e.errorObj,e.notEnumerableProp,b)}:function(c,i,j,k,l,m){var n=function(){return this}(),o=c;function p(){var e=i;i===d&&(e=this);var j=new a(b);j._captureStackTrace();var k="string"==typeof o&&this!==n?this[o]:c,l=f(j,m);try{k.apply(e,g(arguments,l))}catch(a){j._rejectCallback(h(a),!0,!0)}return j._isFateSealed()||j._setAsyncGuaranteed(),j}return"string"==typeof o&&(c=k),e.notEnumerableProp(p,"__isPromisified__",!0),p};function r(a,b,c,f,g){for(var h=RegExp(b.replace(/([$])/,"\\$")+"$"),i=function(a,b,c,d){for(var f=e.inheritedDataKeys(a),g=[],h=0;h<f.length;++h){var i=f[h],l=a[i],n=d===m||m(i);"function"==typeof l&&!o(l)&&!function(a,b,c){var d=e.getDataPropertyOrDefault(a,b+c,k);return!!d&&o(d)}(a,i,b)&&d(i,l,a,n)&&g.push(i,l)}for(var p=0;p<g.length;p+=2){var q=g[p];if(c.test(q)){for(var r=q.replace(c,""),s=0;s<g.length;s+=2)if(g[s]===r)throw new j("Cannot promisify an API that has normal methods with '%s'-suffix\n\n See http://goo.gl/MqrFmX\n".replace("%s",b))}}return g}(a,b,h,c),l=0,n=i.length;l<n;l+=2){var p=i[l],r=i[l+1],s=p+b;if(f===q)a[s]=q(p,d,p,r,b,g);else{var t=f(r,function(){return q(p,d,p,r,b,g)});e.notEnumerableProp(t,"__isPromisified__",!0),a[s]=t}}return e.toFastProperties(a),a}a.promisify=function(a,b){if("function"!=typeof a)throw new j("expecting a function but got "+e.classString(a));if(o(a))return a;var c=q(a,void 0===(b=Object(b)).context?d:b.context,void 0,a,null,!!b.multiArgs);return e.copyDescriptors(a,c,n),c},a.promisifyAll=function(a,b){if("function"!=typeof a&&"object"!=typeof a)throw new j("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");var c=!!(b=Object(b)).multiArgs,d=b.suffix;"string"!=typeof d&&(d="Async");var f=b.filter;"function"!=typeof f&&(f=m);var g=b.promisifier;if("function"!=typeof g&&(g=q),!e.isIdentifier(d))throw RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var h=e.inheritedDataKeys(a),i=0;i<h.length;++i){var k=a[h[i]];"constructor"!==h[i]&&e.isClass(k)&&(r(k.prototype,d,f,g,c),r(k,d,f,g,c))}return r(a,d,f,g,c)}}},69167:(a,b)=>{"use strict";var c="u">typeof Uint8Array&&"u">typeof Uint16Array&&"u">typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw TypeError(c+"must be non-object");for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(b=0,d=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},69217:(a,b,c)=>{"use strict";var d=c(98308);function e(a){d.call(this,a)}c(58952).inherits(e,d),e.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},a.exports=e},69273:(a,b,c)=>{"use strict";var d=c(73315),e=c(30598);b.map={collection:"map",default:!0,nodeClass:e.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:(a,b)=>(d.isMap(a)||b("Expected a mapping for this tag"),a),createNode:(a,b,c)=>e.YAMLMap.from(a,b,c)}},69374:(a,b,c)=>{"use strict";var d=c(73315),e=c(37521),f=c(30598),g=c(71397),h=c(12244),i=c(62325),j=c(12093),k=c(6273);let l="Block collections are not allowed within flow collections",m=a=>a&&("block-map"===a.type||"block-seq"===a.type);b.resolveFlowCollection=function({composeNode:a,composeEmptyNode:b},c,n,o,p){let q="{"===n.start.source,r=q?"flow map":"flow sequence",s=new(p?.nodeClass??(q?f.YAMLMap:g.YAMLSeq))(c.schema);s.flow=!0;let t=c.atRoot;t&&(c.atRoot=!1),c.atKey&&(c.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let h=n.items[g],{start:p,key:t,sep:v,value:w}=h,x=i.resolveProps(p,{flow:r,indicator:"explicit-key-ind",next:t??v?.[0],offset:u,onError:o,parentIndent:n.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!v&&!w){0===g&&x.comma?o(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${r}`):g<n.items.length-1&&o(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${r}`),x.comment&&(s.comment?s.comment+="\n"+x.comment:s.comment=x.comment),u=x.end;continue}!q&&c.options.strict&&j.containsNewline(t)&&o(t,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(0===g)x.comma&&o(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${r}`);else if(x.comma||o(x.start,"MISSING_CHAR",`Missing , between ${r} items`),x.comment){let a="";d:for(let b of p)switch(b.type){case"comma":case"space":break;case"comment":a=b.source.substring(1);break d;default:break d}if(a){let b=s.items[s.items.length-1];d.isPair(b)&&(b=b.value??b.key),b.comment?b.comment+="\n"+a:b.comment=a,x.comment=x.comment.substring(a.length+1)}}if(q||v||x.found){c.atKey=!0;let d=x.end,g=t?a(c,t,x,o):b(c,d,p,null,x,o);m(t)&&o(g.range,"BLOCK_IN_FLOW",l),c.atKey=!1;let j=i.resolveProps(v??[],{flow:r,indicator:"map-value-ind",next:w,offset:g.range[2],onError:o,parentIndent:n.indent,startOnNewline:!1});if(j.found){if(!q&&!x.found&&c.options.strict){if(v)for(let a of v){if(a===j.found)break;if("newline"===a.type){o(a,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<j.found.offset-1024&&o(j.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else w&&("source"in w&&w.source?.[0]===":"?o(w,"MISSING_CHAR",`Missing space after : in ${r}`):o(j.start,"MISSING_CHAR",`Missing , or : between ${r} items`));let y=w?a(c,w,j,o):j.found?b(c,j.end,v,null,j,o):null;y?m(w)&&o(y.range,"BLOCK_IN_FLOW",l):j.comment&&(g.comment?g.comment+="\n"+j.comment:g.comment=j.comment);let z=new e.Pair(g,y);if(c.options.keepSourceTokens&&(z.srcToken=h),q)k.mapIncludes(c,s.items,g)&&o(d,"DUPLICATE_KEY","Map keys must be unique"),s.items.push(z);else{let a=new f.YAMLMap(c.schema);a.flow=!0,a.items.push(z);let b=(y??g).range;a.range=[g.range[0],b[1],b[2]],s.items.push(a)}u=y?y.range[2]:j.end}else{let d=w?a(c,w,x,o):b(c,x.end,v,null,x,o);s.items.push(d),u=d.range[2],m(w)&&o(d.range,"BLOCK_IN_FLOW",l)}}let v=q?"}":"]",[w,...x]=n.end,y=u;if(w?.source===v)y=w.offset+w.source.length;else{let a=r[0].toUpperCase()+r.substring(1),b=t?`${a} must end with a ${v}`:`${a} in block collection must be sufficiently indented and end with a ${v}`;o(u,t?"MISSING_CHAR":"BAD_INDENT",b),w&&1!==w.source.length&&x.unshift(w)}if(x.length>0){let a=h.resolveEnd(x,y,c.options.strict,o);a.comment&&(s.comment?s.comment+="\n"+a.comment:s.comment=a.comment),s.range=[n.offset,y,a.offset]}else s.range=[n.offset,y,y];return s}},70752:(a,b,c)=>{"use strict";var d=c(73315),e=c(77936),f=c(72687);function g({indent:a,options:{commentString:b}},c,d,e){if(d&&e&&(d=d.replace(/^\n+/,"")),d){let e=f.indentComment(b(d),a);c.push(e.trimStart())}}b.stringifyCollection=function(a,b,c){return(b.inFlow??a.flow?function({items:a},b,{flowChars:c,itemIndent:h}){let{indent:i,indentStep:j,flowCollectionPadding:k,options:{commentString:l}}=b,m=Object.assign({},b,{indent:h+=j,inFlow:!0,type:null}),n=!1,o=0,p=[];for(let c=0;c<a.length;++c){let i=a[c],j=null;if(d.isNode(i))i.spaceBefore&&p.push(""),g(b,p,i.commentBefore,!1),i.comment&&(j=i.comment);else if(d.isPair(i)){let a=d.isNode(i.key)?i.key:null;a&&(a.spaceBefore&&p.push(""),g(b,p,a.commentBefore,!1),a.comment&&(n=!0));let c=d.isNode(i.value)?i.value:null;c?(c.comment&&(j=c.comment),c.commentBefore&&(n=!0)):null==i.value&&a?.comment&&(j=a.comment)}j&&(n=!0);let k=e.stringify(i,m,()=>j=null);n||(n=p.length>o||k.includes("\n")),c<a.length-1?k+=",":b.options.trailingComma&&(b.options.lineWidth>0&&(n||(n=p.reduce((a,b)=>a+b.length+2,2)+(k.length+2)>b.options.lineWidth)),n&&(k+=",")),j&&(k+=f.lineComment(k,h,l(j))),p.push(k),o=p.length}let{start:q,end:r}=c;if(0===p.length)return q+r;if(!n){let a=p.reduce((a,b)=>a+b.length+2,2);n=b.options.lineWidth>0&&a>b.options.lineWidth}if(!n)return`${q}${k}${p.join(" ")}${k}${r}`;{let a=q;for(let b of p)a+=b?`
|
|
12
12
|
${j}${i}${b}`:"\n";return`${a}
|
|
13
13
|
${i}${r}`}}:function({comment:a,items:b},c,{blockItemPrefix:h,flowChars:i,itemIndent:j,onChompKeep:k,onComment:l}){let m,{indent:n,options:{commentString:o}}=c,p=Object.assign({},c,{indent:j,type:null}),q=!1,r=[];for(let a=0;a<b.length;++a){let i=b[a],k=null;if(d.isNode(i))!q&&i.spaceBefore&&r.push(""),g(c,r,i.commentBefore,q),i.comment&&(k=i.comment);else if(d.isPair(i)){let a=d.isNode(i.key)?i.key:null;a&&(!q&&a.spaceBefore&&r.push(""),g(c,r,a.commentBefore,q))}q=!1;let l=e.stringify(i,p,()=>k=null,()=>q=!0);k&&(l+=f.lineComment(l,j,o(k))),q&&k&&(q=!1),r.push(h+l)}if(0===r.length)m=i.start+i.end;else{m=r[0];for(let a=1;a<r.length;++a){let b=r[a];m+=b?`
|
|
14
|
-
${n}${b}`:"\n"}}return a?(m+="\n"+f.indentComment(o(a),n),l&&l()):q&&k&&k(),m})(a,b,c)}},70795:(a,b,c)=>{"use strict";let d;c.d(b,{attachRelayGateway:()=>
|
|
14
|
+
${n}${b}`:"\n"}}return a?(m+="\n"+f.indentComment(o(a),n),l&&l()):q&&k&&k(),m})(a,b,c)}},70795:(a,b,c)=>{"use strict";let d;c.d(b,{attachRelayGateway:()=>kU});var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I={};c.r(I),c.d(I,{boolean:()=>c2,booleanish:()=>c3,commaOrSpaceSeparated:()=>c8,commaSeparated:()=>c7,number:()=>c5,overloadedBoolean:()=>c4,spaceSeparated:()=>c6});var J=c(37067),K=c(44708),L=c(77598);function M(a){return(0,L.createHash)("sha256").update(a,"utf8").digest()}function N(a=process.env.OMPGUI_PASSWORD??process.env.OMP_WEB_PASSWORD){return"string"==typeof a&&a.length>0}var O=c(73024),P=c(76760),Q=c.n(P),R=c(92226),S=c(28672),T=c(18437);let U=new Set(["prompt","abort","get_state","set_model","set_thinking_level","compact","get_subagents","get_available_commands"]),V=/^d_[A-Za-z0-9_-]{16,64}$/,W=/^[A-Za-z0-9_-]{32,128}$/,X=/^[A-Za-z0-9._-]{1,128}$/;function Y(a){let b=[];if(Array.isArray(a))for(let c of a){let a=function(a){if(!(0,S.u4)(a))return null;let b=(0,S.oJ)(a.provider)?.trim(),c=(0,S.oJ)(a.id)?.trim();if(!b||!c||b.length>512||c.length>512)return null;let d=(0,S.oJ)(a.name)?.trim()||c;return{provider:b,id:c,name:d.length>128?d.slice(0,128):d}}(c);a&&b.push(a)}return{op:"models",models:b}}function Z(a){return(0,L.createHash)("sha256").update(a,"utf8").digest("hex")}function $(a,b){let c=Buffer.from(a,"hex"),d=Buffer.from(b,"hex");return 32===c.length&&32===d.length&&(0,L.timingSafeEqual)(c,d)}function _(a,b=16){return`${a}${(0,L.randomBytes)(b).toString("base64url")}`}function aa(a){return(a??"").replace(/[\u0000-\u001f\u007f]/g,"").trim().slice(0,64)}function ab(){return(0,P.resolve)((0,R.$M)(),"ompgui-relay.json")}function ac(){return{version:1,serverId:_("s_"),devices:[],pairing:null}}function ad(a){let b=ab(),c=`${b}.lock`;(0,O.mkdirSync)((0,P.dirname)(c),{recursive:!0});let d=Date.now()+3e3;for(;;){let b=null;try{b=(0,O.openSync)(c,"wx")}catch(a){if("EEXIST"!==a.code)throw a;try{if(Date.now()-(0,O.statSync)(c).mtimeMs>1e4){(0,O.unlinkSync)(c);continue}}catch{continue}if(Date.now()>=d)throw Error("Timed out waiting for the ompgui relay device registry lock");!function(){let a=new SharedArrayBuffer(4);Atomics.wait(new Int32Array(a),0,0,25)}();continue}try{(0,O.writeSync)(b,String(process.pid))}finally{(0,O.closeSync)(b)}try{return a()}finally{try{(0,O.unlinkSync)(c)}catch{}}}}function ae(){let a=ab();if(!(0,O.existsSync)(a)){let a=ac();return af(a),a}try{return function(a){try{let b=JSON.parse(a);if(!(0,S.u4)(b)||1!==b.version)return ac();let c="string"==typeof b.serverId&&/^[A-Za-z0-9_-]{16,64}$/.test(b.serverId)?b.serverId:_("s_"),d=[];if(Array.isArray(b.devices))for(let a of b.devices)(0,S.u4)(a)&&"string"==typeof a.id&&a.id.startsWith("d_")&&"string"==typeof a.tokenHash&&64===a.tokenHash.length&&d.push({id:a.id,label:aa("string"==typeof a.label?a.label:""),tokenHash:a.tokenHash,createdAt:"string"==typeof a.createdAt?a.createdAt:new Date(0).toISOString(),lastSeenAt:"string"==typeof a.lastSeenAt?a.lastSeenAt:new Date(0).toISOString()});let e=null;if((0,S.u4)(b.pairing)){let a="string"==typeof b.pairing.secretHash?b.pairing.secretHash:"",c="number"==typeof b.pairing.expiresAt?b.pairing.expiresAt:0,d="string"==typeof b.pairing.relayUrl?b.pairing.relayUrl:"",f="string"==typeof b.pairing.createdAt?b.pairing.createdAt:new Date(0).toISOString();64===a.length&&c>0&&d&&(e={secretHash:a,expiresAt:c,relayUrl:d,createdAt:f})}let f="string"==typeof b.relayUrl?b.relayUrl:void 0;return{version:1,serverId:c,...f?{relayUrl:f}:{},devices:d,pairing:e}}catch{return ac()}}((0,O.readFileSync)(a,"utf8"))}catch{return ac()}}function af(a){let b=ab();(0,O.mkdirSync)((0,P.dirname)(b),{recursive:!0});let c=`${b}.tmp-${process.pid}-${Date.now()}`;try{(0,O.writeFileSync)(c,`${JSON.stringify(a,null,2)}
|
|
15
15
|
`,"utf8"),(0,O.renameSync)(c,b)}catch(a){try{(0,O.existsSync)(c)&&(0,O.unlinkSync)(c)}catch{}throw a}}function ag(){return ad(()=>ae()).devices.map(({id:a,label:b,createdAt:c,lastSeenAt:d})=>({id:a,label:b,createdAt:c,lastSeenAt:d}))}class ah extends Error{constructor(a){super("relay_frame_too_large"===a?"Relay frame exceeds the size limit":"Invalid relay chunk transfer"),this.code=a,this.name="RelayChunkError"}}class ai{constructor(a=Date.now){this.now=a,this.transfers=new Map,this.bytes=0}clear(){this.transfers.clear(),this.bytes=0}accept(a){let b,c,d=this.now();for(let[a,b]of this.transfers)d>=b.expiresAt&&(this.bytes-=b.bytes,this.transfers.delete(a));if("object"!=typeof a||null===a||Array.isArray(a)||5!==Object.keys(a).length||!("op"in a)||"chunk"!==a.op||!("transfer"in a)||"string"!=typeof a.transfer||!/^[A-Za-z0-9_-]{1,64}$/.test(a.transfer)||!("index"in a)||"number"!=typeof a.index||!Number.isSafeInteger(a.index)||!("count"in a)||"number"!=typeof a.count||!Number.isSafeInteger(a.count)||a.count<1||a.count>342||a.index<0||a.index>=a.count||!("data"in a)||"string"!=typeof a.data||0===a.data.length||a.data.length>65536||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a.data))throw new ah("relay_chunk_invalid");let e=Buffer.from(a.data,"base64");if(e.length>49152||e.toString("base64")!==a.data)throw new ah("relay_chunk_invalid");let f=this.transfers.get(a.transfer);if(void 0===f){if(0!==a.index||this.transfers.size>=4)throw new ah("relay_chunk_invalid");f={count:a.count,expiresAt:d+3e4,bytes:0,parts:[]}}if(a.count!==f.count||a.index!==f.parts.length||f.bytes+e.length>0x1000000||this.bytes+e.length>0x1000000)throw new ah("relay_chunk_invalid");if(f.parts.push(e),f.bytes+=e.length,this.bytes+=e.length,this.transfers.set(a.transfer,f),f.parts.length!==f.count)return null;this.transfers.delete(a.transfer),this.bytes-=f.bytes;try{b=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(Buffer.concat(f.parts,f.bytes)),c=JSON.parse(b)}catch{throw new ah("relay_chunk_invalid")}if("object"==typeof c&&null!==c&&"op"in c&&"chunk"===c.op)throw new ah("relay_chunk_invalid");return b}}var aj=c(54639),ak=c(29021),al=c.n(ak),am=c(33873),an=c.n(am),ao=c(15011);function ap(a,b){for(let c of b){let b=(0,ao.uK)(a)||(0,ao.uK)(c),d=b?an().win32:an(),e=b?"\\":an().sep,f=d.resolve(a),g=d.resolve(c),h=b?f.toLowerCase():f,i=b?g.toLowerCase():g,j=i.endsWith(e)?i:i+e;if(h===i||h.startsWith(j))return!0}return!1}function aq(a){let b=an().resolve(a),c=[];for(;;)try{(0,ak.lstatSync)(b);break}catch(d){if(!(d instanceof Error&&"code"in d&&"ENOENT"===d.code))throw d;let a=an().dirname(b);if(a===b)throw d;c.unshift(an().basename(b)),b=a}return an().join((0,ak.realpathSync)(b),...c)}var ar=c(82043);async function as(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,ar.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,aj.Nw)(a.cwd)),a.projectRoot&&d.add((0,aj.Nw)(a.projectRoot));for(let a of(0,aj.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function at(a,b){let c;try{c=(0,ak.realpathSync)(a)}catch{return!1}let d=new Set;for(let a of b)try{d.add((0,ak.realpathSync)(a))}catch{}return ap(c,d)}let au=new Set(["error","overwrite","skip"]);function av(a,b){let c=[],d=[];for(let e of b){let b,f=an().join(a,e);try{b=al().lstatSync(f)}catch(a){if("ENOENT"===a.code)continue;throw a}c.push(e),(!b.isFile()||b.isSymbolicLink())&&d.push(e)}return{conflicts:c,nonReplaceable:d}}var aw=c(31421),ax=c(48161),ay=c(57975),az=c(80803),aA=c(51671),aB=c(44500);let aC={developer:!0,"python-execution":!0,"file-mention":!0,"xdev-mount-notice":!0};function aD(a,b){if("string"!=typeof a)return;let c=a.trim();if(c)return c.slice(0,b)}function aE(a){if("string"!=typeof a)return;let b=a.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"").trim();if(b)return b.slice(0,4e3)}function aF(a){if("string"==typeof a)return aE(a);if(!Array.isArray(a))return;let b=[];for(let c of a){if(!(0,S.u4)(c)||"text"!==c.type)continue;let a=aE(c.text);a&&b.push(a)}return aE(b.join("\n"))}function aG(a){let b;if(!(0,S.u4)(a))return null;switch(a.role){case"user":case"assistant":b=aF(a.content);break;case"custom":if(!0!==a.display||"string"!=typeof a.customType||!0===aC[a.customType])return null;b=aF(a.content);break;default:return null}if(!b)return null;let c="number"==typeof a.timestamp&&Number.isFinite(a.timestamp)?a.timestamp:void 0;return void 0===c?{role:a.role,text:b}:{role:a.role,text:b,timestamp:c}}function aH(a){let b=function(a){let b=aD(a,512);if(!b)return null;try{let a=new URL(b);if(a.username||a.password||"null"===a.origin)return null;return a.origin}catch{return b}}(a.origin),c=aD(a.session.id,256);if(!b||!c)return null;let d=a.messages.map(aG).filter(a=>null!==a).slice(-50),e=aD(a.session.title??a.session.name,4e3),f=aD(a.session.cwd,4e3),g=aD(a.leafId,256),h="number"==typeof a.updatedAt&&Number.isFinite(a.updatedAt)?a.updatedAt:Date.now(),i={id:c,messages:d};return void 0!==e&&(i.title=e),void 0!==f&&(i.cwd=f),void 0!==g&&(i.leafId=g),{version:1,origin:b,updatedAt:h,session:i}}var aI=c(21820);function aJ(){let a=(globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState);a.generation+=1,a.entries.clear(),a.inFlight.clear()}var aK=c(55511);function aL(a,b){let c=`${a}.tmp-${(0,aK.randomUUID)()}`,d=(0,ak.openSync)(c,"wx",384);try{try{(0,ak.writeFileSync)(d,b,"utf8")}finally{(0,ak.closeSync)(d)}(0,ak.renameSync)(c,a)}finally{try{(0,ak.unlinkSync)(c)}catch(a){if(!(a instanceof Error&&"code"in a&&"ENOENT"===a.code))throw a}}}var aM=c(71217);let aN=new Set(["auto","minimal","low","medium","high","xhigh","max"]),aO=new Set(["low","medium","high"]),aP=new Set(["default","friendly","pragmatic","none"]),aQ=new Set(["off","1","3","5"]),aR=new Set(["always-ask","write","yolo"]),aS=new Set(["allow","prompt","deny"]),aT=new Set(["cooldown-expiry","never"]),aU=new Set(["snapcompact","handoff","context-full","shake","off"]),aV=new Set(["off","local","mnemopi","hindsight"]),aW=new Set(["global","per-project","per-project-tagged"]),aX=new Set(["default","preferred","always"]);function aY(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)?a:void 0}function aZ(a){if(!(0,S.u4)(a))return;let b={};for(let[c,d]of Object.entries(a))("string"==typeof d||aY(d))&&(b[c]=d);return b}function a$(a){if(!(0,S.u4)(a))return;let b={};for(let[c,d]of Object.entries(a))("boolean"==typeof d||"string"==typeof d)&&(b[c]=d);return b}function a_(a,b){if(void 0!==a&&!(0,S.u4)(a))throw Error(`${b} must be an object`)}function a0(a,b){return Object.prototype.hasOwnProperty.call(a,b)&&void 0!==a[b]}function a1(a){if(!(0,S.u4)(a))throw Error("Settings must be an object");let b={};for(let c of["defaultThinkingLevel","hideThinkingBlock","externalThinking","textVerbosity","personality","enabledModels","disabledProviders","modelProviderOrder"])a0(a,c)&&(b[c]=a[c]);for(let[c,d,e]of[["advisor",["enabled","subagents","syncBacklog","immuneTurns"],void 0],["tools",["approvalMode","approval"],{approval:["bash","extension"]}],["retry",["enabled","maxRetries","modelFallback","fallbackRevertPolicy","fallbackChains"],void 0],["compaction",["enabled","midTurnEnabled","strategy","autoContinue","remoteEnabled","keepRecentTokens"],void 0],["memory",["backend"],void 0],["autolearn",["enabled","autoContinue","minToolCalls"],void 0],["mnemopi",["scoping","autoRecall","autoRetain","noEmbeddings"],void 0],["mcp",["enableProjectConfig","renderMarkdownResults","notifications","notificationDebounceMs"],void 0],["task",["eager","prewalk","agentModelOverrides","agentPrewalk","agentAdvisor","disabledAgents"],void 0],["browser",["enabled","relay","headless"],void 0],["computer",["enabled","display"],void 0],["web_search",["enabled"],void 0],["github",["enabled"],void 0],["security",["enabled"],void 0],["checkpoint",["enabled"],void 0]]){let f=function(a,b,c,d={}){if(!a0(a,b))return;let e=a[b];if(!(0,S.u4)(e))return e;let f={};for(let a of c){if(!a0(e,a))continue;let b=d[a];if(!b||!(0,S.u4)(e[a])){f[a]=e[a];continue}let c=function(a,b){if(!(0,S.u4)(a))return a;let c={};for(let d of b)a0(a,d)&&(c[d]=a[d]);return c}(e[a],b);(0===Object.keys(e[a]).length||Object.keys(c).length>0)&&(f[a]=c)}return f}(a,c,d,e);if(void 0===f)continue;let g=a[c];(!(0,S.u4)(g)||0===Object.keys(g).length||Object.keys(f).length>0)&&(b[c]=f)}return b}let a2={advisor:!0,tools:!0,retry:!0,compaction:!0,memory:!0,autolearn:!0,mnemopi:!0,mcp:!0,task:!0,browser:!0,computer:!0,web_search:!0,github:!0,security:!0,checkpoint:!0};function a3(a,b){let c=(0,S.u4)(a)?a:{},d=a1(b),e={...c};for(let[a,b]of Object.entries(d))if(void 0!==b)if(a2[a]&&(0,S.u4)(b)){let c=(0,S.u4)(e[a])?e[a]:{},d={...c,...b};if("tools"===a&&(0,S.u4)(b.approval)){let a=(0,S.u4)(c.approval)?c.approval:{};d.approval=0===Object.keys(b.approval).length?{}:{...a,...b.approval}}e[a]=d}else e[a]=b;return delete e.registryHasScopedEntries,e}function a4(){let a=(0,R.pA)(),b=(0,aM.Tp)((0,ak.existsSync)(a)?(0,ak.readFileSync)(a,"utf8"):"");if(b.errors.length>0)throw Error(`${a} is not valid YAML: ${b.errors[0].message}`);return{path:a,doc:b}}function a5(){let{path:a,doc:b}=a4(),c=b.toJS();if(!(0,S.u4)(c))return{path:a,settings:{}};let d=(0,S.u4)(c.advisor)?c.advisor:{},e=(0,S.u4)(c.tools)?c.tools:{},f=(0,S.u4)(e.approval)?e.approval:{},g=(0,S.u4)(c.retry)?c.retry:{},h=(0,S.u4)(g.fallbackChains)?Object.fromEntries(Object.entries(g.fallbackChains).filter(a=>"string"==typeof a[0]&&void 0!==aY(a[1]))):{},i=(0,S.u4)(c.compaction)?c.compaction:{},j=(0,S.u4)(c.memory)?c.memory:{},k=(0,S.u4)(c.autolearn)?c.autolearn:{},l=(0,S.u4)(c.mnemopi)?c.mnemopi:{},m=(0,S.u4)(c.mcp)?c.mcp:{},n=(0,S.u4)(c.task)?c.task:{},o=(0,S.u4)(c.browser)?c.browser:{},p=(0,S.u4)(c.computer)?c.computer:{},q=(0,S.u4)(c.web_search)?c.web_search:{},r=(0,S.u4)(c.github)?c.github:{},s=(0,S.u4)(c.security)?c.security:{},t=(0,S.u4)(c.checkpoint)?c.checkpoint:{},u=[c.enabledModels,c.disabledProviders,c.modelProviderOrder].some(a=>Array.isArray(a)&&!a.every(a=>"string"==typeof a));return{path:a,settings:{...aN.has(c.defaultThinkingLevel)?{defaultThinkingLevel:c.defaultThinkingLevel}:{},..."boolean"==typeof c.hideThinkingBlock?{hideThinkingBlock:c.hideThinkingBlock}:{},..."boolean"==typeof c.externalThinking?{externalThinking:c.externalThinking}:{},...aO.has(c.textVerbosity)?{textVerbosity:c.textVerbosity}:{},...aP.has(c.personality)?{personality:c.personality}:{},...Object.keys(d).length?{advisor:{..."boolean"==typeof d.enabled?{enabled:d.enabled}:{},..."boolean"==typeof d.subagents?{subagents:d.subagents}:{},...aQ.has(d.syncBacklog)?{syncBacklog:d.syncBacklog}:{},..."number"==typeof d.immuneTurns&&Number.isInteger(d.immuneTurns)?{immuneTurns:d.immuneTurns}:{}}}:{},...Object.keys(e).length?{tools:{...aR.has(e.approvalMode)?{approvalMode:e.approvalMode}:{},...aS.has(f.bash)||"allow"===f.extension||"prompt"===f.extension?{approval:{...aS.has(f.bash)?{bash:f.bash}:{},..."allow"===f.extension||"prompt"===f.extension?{extension:f.extension}:{}}}:{}}}:{},...aY(c.enabledModels)?{enabledModels:aY(c.enabledModels)}:{},...aY(c.disabledProviders)?{disabledProviders:aY(c.disabledProviders)}:{},...aY(c.modelProviderOrder)?{modelProviderOrder:aY(c.modelProviderOrder)}:{},...u?{registryHasScopedEntries:!0}:{},...Object.keys(g).length?{retry:{..."boolean"==typeof g.enabled?{enabled:g.enabled}:{},..."number"==typeof g.maxRetries&&Number.isInteger(g.maxRetries)?{maxRetries:g.maxRetries}:{},..."boolean"==typeof g.modelFallback?{modelFallback:g.modelFallback}:{},...aT.has(g.fallbackRevertPolicy)?{fallbackRevertPolicy:g.fallbackRevertPolicy}:{},...Object.keys(h).length?{fallbackChains:h}:{}}}:{},...Object.keys(i).length?{compaction:{..."boolean"==typeof i.enabled?{enabled:i.enabled}:{},..."boolean"==typeof i.midTurnEnabled?{midTurnEnabled:i.midTurnEnabled}:{},...aU.has(i.strategy)?{strategy:i.strategy}:{},..."boolean"==typeof i.autoContinue?{autoContinue:i.autoContinue}:{},..."boolean"==typeof i.remoteEnabled?{remoteEnabled:i.remoteEnabled}:{},..."number"==typeof i.keepRecentTokens&&Number.isInteger(i.keepRecentTokens)?{keepRecentTokens:i.keepRecentTokens}:{}}}:{},...Object.keys(j).length?{memory:{...aV.has(j.backend)?{backend:j.backend}:{}}}:{},...Object.keys(k).length?{autolearn:{..."boolean"==typeof k.enabled?{enabled:k.enabled}:{},..."boolean"==typeof k.autoContinue?{autoContinue:k.autoContinue}:{},..."number"==typeof k.minToolCalls&&Number.isInteger(k.minToolCalls)?{minToolCalls:k.minToolCalls}:{}}}:{},...Object.keys(l).length?{mnemopi:{...aW.has(l.scoping)?{scoping:l.scoping}:{},..."boolean"==typeof l.autoRecall?{autoRecall:l.autoRecall}:{},..."boolean"==typeof l.autoRetain?{autoRetain:l.autoRetain}:{},..."boolean"==typeof l.noEmbeddings?{noEmbeddings:l.noEmbeddings}:{}}}:{},...Object.keys(m).length?{mcp:{..."boolean"==typeof m.enableProjectConfig?{enableProjectConfig:m.enableProjectConfig}:{},..."boolean"==typeof m.renderMarkdownResults?{renderMarkdownResults:m.renderMarkdownResults}:{},..."boolean"==typeof m.notifications?{notifications:m.notifications}:{},..."number"==typeof m.notificationDebounceMs&&Number.isInteger(m.notificationDebounceMs)?{notificationDebounceMs:m.notificationDebounceMs}:{}}}:{},...Object.keys(n).length?{task:{...aX.has(n.eager)?{eager:n.eager}:{},..."boolean"==typeof n.prewalk?{prewalk:n.prewalk}:{},...aZ(n.agentModelOverrides)?{agentModelOverrides:aZ(n.agentModelOverrides)}:{},...a$(n.agentPrewalk)?{agentPrewalk:a$(n.agentPrewalk)}:{},...a$(n.agentAdvisor)?{agentAdvisor:a$(n.agentAdvisor)}:{},...aY(n.disabledAgents)?{disabledAgents:aY(n.disabledAgents)}:{}}}:{},...Object.keys(o).length?{browser:{..."boolean"==typeof o.enabled?{enabled:o.enabled}:{},..."boolean"==typeof o.relay?{relay:o.relay}:{},..."boolean"==typeof o.headless?{headless:o.headless}:{}}}:{},...Object.keys(p).length?{computer:{..."boolean"==typeof p.enabled?{enabled:p.enabled}:{},..."string"==typeof p.display?{display:p.display}:{}}}:{},...Object.keys(q).length?{web_search:{..."boolean"==typeof q.enabled?{enabled:q.enabled}:{}}}:{},...Object.keys(r).length?{github:{..."boolean"==typeof r.enabled?{enabled:r.enabled}:{}}}:{},...Object.keys(s).length?{security:{..."boolean"==typeof s.enabled?{enabled:s.enabled}:{}}}:{},...Object.keys(t).length?{checkpoint:{..."boolean"==typeof t.enabled?{enabled:t.enabled}:{}}}:{}}}}function a6(a){if(!(0,S.u4)(a))throw Error("Settings must be an object");for(let[b,c]of(a_(a.advisor,"advisor"),a_(a.tools,"tools"),a_(a.tools?.approval,"tools.approval"),a_(a.retry,"retry"),a_(a.retry?.fallbackChains,"retry.fallbackChains"),a_(a.compaction,"compaction"),a_(a.memory,"memory"),a_(a.autolearn,"autolearn"),a_(a.mnemopi,"mnemopi"),a_(a.mcp,"mcp"),a_(a.task,"task"),a_(a.task?.agentModelOverrides,"task.agentModelOverrides"),a_(a.task?.agentPrewalk,"task.agentPrewalk"),a_(a.task?.agentAdvisor,"task.agentAdvisor"),a_(a.browser,"browser"),a_(a.computer,"computer"),a_(a.web_search,"web_search"),a_(a.github,"github"),a_(a.security,"security"),a_(a.checkpoint,"checkpoint"),Object.entries({hideThinkingBlock:a.hideThinkingBlock,externalThinking:a.externalThinking,"advisor.enabled":a.advisor?.enabled,"advisor.subagents":a.advisor?.subagents,"retry.enabled":a.retry?.enabled,"retry.modelFallback":a.retry?.modelFallback,"compaction.enabled":a.compaction?.enabled,"compaction.midTurnEnabled":a.compaction?.midTurnEnabled,"compaction.autoContinue":a.compaction?.autoContinue,"compaction.remoteEnabled":a.compaction?.remoteEnabled,"autolearn.enabled":a.autolearn?.enabled,"autolearn.autoContinue":a.autolearn?.autoContinue,"mnemopi.autoRecall":a.mnemopi?.autoRecall,"mnemopi.autoRetain":a.mnemopi?.autoRetain,"mnemopi.noEmbeddings":a.mnemopi?.noEmbeddings,"mcp.enableProjectConfig":a.mcp?.enableProjectConfig,"mcp.renderMarkdownResults":a.mcp?.renderMarkdownResults,"mcp.notifications":a.mcp?.notifications,"task.prewalk":a.task?.prewalk,"browser.enabled":a.browser?.enabled,"browser.relay":a.browser?.relay,"browser.headless":a.browser?.headless,"computer.enabled":a.computer?.enabled,"web_search.enabled":a.web_search?.enabled,"github.enabled":a.github?.enabled,"security.enabled":a.security?.enabled,"checkpoint.enabled":a.checkpoint?.enabled})))if(void 0!==c&&"boolean"!=typeof c)throw Error(`${b} must be a boolean`);var b=a.computer?.display;if(void 0!==b&&"string"!=typeof b)throw Error("computer.display must be a string");for(let[b,c]of Object.entries(a.task?.agentModelOverrides??{}))if("string"==typeof c){if(!c.trim())throw Error(`task.agentModelOverrides.${b} must be a non-empty string`)}else if(aY(c)){if(c.some(a=>!a.trim()))throw Error(`task.agentModelOverrides.${b} must contain non-empty strings`)}else throw Error(`task.agentModelOverrides.${b} must be a string or string array`);for(let[b,c]of[["agentPrewalk",a.task?.agentPrewalk],["agentAdvisor",a.task?.agentAdvisor]])for(let[a,d]of Object.entries(c??{}))if("boolean"!=typeof d&&"string"!=typeof d)throw Error(`task.${b}.${a} must be a boolean or string`);if(a.task?.disabledAgents!==void 0&&(!aY(a.task.disabledAgents)||a.task.disabledAgents.some(a=>!a.trim())))throw Error("task.disabledAgents must contain non-empty strings");if(a.task?.eager!==void 0&&!aX.has(a.task.eager))throw Error("Invalid task eager preference");if(void 0!==a.defaultThinkingLevel&&!aN.has(a.defaultThinkingLevel))throw Error("Invalid default thinking level");if(void 0!==a.textVerbosity&&!aO.has(a.textVerbosity))throw Error("Invalid text verbosity");if(void 0!==a.personality&&!aP.has(a.personality))throw Error("Invalid personality");if(a.advisor?.syncBacklog!==void 0&&!aQ.has(a.advisor.syncBacklog))throw Error("Invalid advisor sync backlog");if(a.advisor?.immuneTurns!==void 0&&(!Number.isInteger(a.advisor.immuneTurns)||a.advisor.immuneTurns<0||a.advisor.immuneTurns>20))throw Error("Advisor immune turns must be an integer between 0 and 20");if(a.tools?.approvalMode!==void 0&&!aR.has(a.tools.approvalMode))throw Error("Invalid approval mode");if(a.tools?.approval?.bash!==void 0&&!aS.has(a.tools.approval.bash))throw Error("Invalid Bash approval policy");if(a.tools?.approval?.extension!==void 0&&"allow"!==a.tools.approval.extension&&"prompt"!==a.tools.approval.extension)throw Error("Invalid extension tool approval policy");if(a.retry?.maxRetries!==void 0&&(!Number.isInteger(a.retry.maxRetries)||a.retry.maxRetries<0||a.retry.maxRetries>20))throw Error("Retry attempts must be an integer between 0 and 20");if(a.retry?.fallbackRevertPolicy!==void 0&&!aT.has(a.retry.fallbackRevertPolicy))throw Error("Invalid fallback revert policy");if(a.retry?.fallbackChains!==void 0){for(let[b,c]of Object.entries(a.retry.fallbackChains))if(!b.trim()||!Array.isArray(c)||c.some(a=>"string"!=typeof a||!a.trim()))throw Error("Fallback chains require non-empty role and model selectors")}if(a.compaction?.strategy!==void 0&&!aU.has(a.compaction.strategy))throw Error("Invalid compaction strategy");if(a.compaction?.keepRecentTokens!==void 0&&(!Number.isInteger(a.compaction.keepRecentTokens)||a.compaction.keepRecentTokens<1e3||a.compaction.keepRecentTokens>1e6))throw Error("Compaction retained tokens must be an integer between 1,000 and 1,000,000");if(a.memory?.backend!==void 0&&!aV.has(a.memory.backend))throw Error("Invalid memory backend");if(a.autolearn?.minToolCalls!==void 0&&(!Number.isInteger(a.autolearn.minToolCalls)||a.autolearn.minToolCalls<0||a.autolearn.minToolCalls>100))throw Error("Auto-learn minimum tool calls must be an integer between 0 and 100");if(a.mnemopi?.scoping!==void 0&&!aW.has(a.mnemopi.scoping))throw Error("Invalid Mnemopi memory scope");if(a.mcp?.notificationDebounceMs!==void 0&&(!Number.isInteger(a.mcp.notificationDebounceMs)||a.mcp.notificationDebounceMs<0||a.mcp.notificationDebounceMs>6e4))throw Error("MCP notification debounce must be an integer between 0 and 60,000");for(let[b,c]of Object.entries({enabledModels:a.enabledModels,disabledProviders:a.disabledProviders,modelProviderOrder:a.modelProviderOrder}))if(void 0!==c&&(!Array.isArray(c)||c.some(a=>"string"!=typeof a||!a.trim())))throw Error(`${b} must contain non-empty strings`);let c=a1(a),{path:d,doc:e}=a4();if((0,ak.mkdirSync)((0,am.dirname)(d),{recursive:!0}),null===e.contents){e.contents=e.createNode(c),aL(d,e.toString());return}if(!(0,aM.jh)(e.contents))throw Error(`${d} must contain a YAML mapping`);for(let[a,b]of(void 0!==c.defaultThinkingLevel&&e.set("defaultThinkingLevel",c.defaultThinkingLevel),void 0!==c.hideThinkingBlock&&e.set("hideThinkingBlock",c.hideThinkingBlock),void 0!==c.externalThinking&&e.set("externalThinking",c.externalThinking),void 0!==c.textVerbosity&&e.set("textVerbosity",c.textVerbosity),void 0!==c.personality&&e.set("personality",c.personality),Object.entries(c.advisor??{})))e.setIn(["advisor",a],b);for(let[a,b]of(c.tools?.approvalMode!==void 0&&e.setIn(["tools","approvalMode"],c.tools.approvalMode),c.tools?.approval!==void 0&&(0===Object.keys(c.tools.approval).length?e.setIn(["tools","approval"],{}):(void 0!==c.tools.approval.bash&&e.setIn(["tools","approval","bash"],c.tools.approval.bash),void 0!==c.tools.approval.extension&&e.setIn(["tools","approval","extension"],c.tools.approval.extension))),void 0!==c.enabledModels&&e.set("enabledModels",c.enabledModels),void 0!==c.disabledProviders&&e.set("disabledProviders",c.disabledProviders),void 0!==c.modelProviderOrder&&e.set("modelProviderOrder",c.modelProviderOrder),Object.entries(c.retry??{})))e.setIn(["retry",a],b);for(let[a,b]of Object.entries(c.compaction??{}))e.setIn(["compaction",a],b);for(let[a,b]of Object.entries(c.memory??{}))e.setIn(["memory",a],b);for(let[a,b]of Object.entries(c.autolearn??{}))e.setIn(["autolearn",a],b);for(let[a,b]of Object.entries(c.mnemopi??{}))e.setIn(["mnemopi",a],b);for(let[a,b]of Object.entries(c.mcp??{}))e.setIn(["mcp",a],b);for(let[a,b]of(c.task?.eager!==void 0&&e.setIn(["task","eager"],c.task.eager),c.task?.prewalk!==void 0&&e.setIn(["task","prewalk"],c.task.prewalk),c.task?.agentModelOverrides!==void 0&&e.setIn(["task","agentModelOverrides"],c.task.agentModelOverrides),c.task?.agentPrewalk!==void 0&&e.setIn(["task","agentPrewalk"],c.task.agentPrewalk),c.task?.agentAdvisor!==void 0&&e.setIn(["task","agentAdvisor"],c.task.agentAdvisor),c.task?.disabledAgents!==void 0&&e.setIn(["task","disabledAgents"],c.task.disabledAgents),Object.entries(c.browser??{})))e.setIn(["browser",a],b);for(let[a,b]of Object.entries(c.computer??{}))e.setIn(["computer",a],b);for(let[a,b]of Object.entries(c.web_search??{}))e.setIn(["web_search",a],b);for(let[a,b]of Object.entries(c.github??{}))e.setIn(["github",a],b);for(let[a,b]of Object.entries(c.security??{}))e.setIn(["security",a],b);for(let[a,b]of Object.entries(c.checkpoint??{}))e.setIn(["checkpoint",a],b);aL(d,e.toString())}let a7={revision:0,items:[]},a8="enqueue_message",a9="recall_queued_message",ba="delete_queued_message",bb="promote_queued_message",bc="get_message_queue",bd="queue_stale_revision",be="queue_item_missing",bf="queue_item_sending",bg="queue_invalid",bh="This message may already have been handed to the agent. It was not confirmed and will not be retried.",bi=new Set([a8,a9,ba,bb,bc]);class bj extends Error{constructor(a,b){super(a),this.name="SessionQueueError",this.code=b}}function bk(a){return"steer"===a||"followUp"===a}function bl(a){return{type:"message_queue_update",queue:a}}function bm(a,b){return b?{queue:a,recalled:b}:{queue:a}}function bn(a){return Buffer.byteLength(a,"utf8")}function bo(a){let b={id:a.id,text:a.text,lane:a.lane,status:a.status,...a.error?{error:a.error}:{}};return Object.freeze(b),b}class bp{getSnapshot(){return this.snapshot}hasSending(){return this.items.some(a=>"sending"===a.status)}selectDispatchCandidate(a){if(!this.hasSending())return this.items.find(b=>"queued"===b.status&&b.lane===a)}enqueue(a){if(!bk(a.lane))throw new bj("lane must be steer or followUp",bg);let b=this.assertText(a.text);if(this.items.length>=32)throw new bj("The queue already holds 32 messages","queue_full");this.assertTotalBytes(bn(b));let c=bo({id:(0,L.randomUUID)(),lane:a.lane,text:b,status:"queued"});return this.items=[...this.items,c],this.publish()}promote(a,b){let c=this.requireMutable(a,b);if("followUp"!==c.lane||"queued"!==c.status)throw new bj("Only a queued follow-up can be promoted to steer",bg);let d=bo({...c,lane:"steer",status:"queued"});return this.items=[d,...this.items.filter(b=>b.id!==a)],this.publish()}recall(a,b){let c=this.requireMutable(a,b);return this.items=this.items.filter(b=>b.id!==a),{item:c,snapshot:this.publish()}}delete(a,b){return this.requireMutable(a,b),this.items=this.items.filter(b=>b.id!==a),this.publish()}markSending(a){let b=this.items.find(b=>b.id===a);if(!b)throw new bj("Queued message was not found",be);if("queued"!==b.status)throw new bj("Queued message is already being sent",bf);return this.replace(a,{...b,status:"sending"}),this.publish()}markFailed(a,b){let c=this.items.find(b=>b.id===a);return c?(this.replace(a,{...c,status:"failed",error:b}),this.publish()):this.snapshot}remove(a){return this.items.some(b=>b.id===a)?(this.items=this.items.filter(b=>b.id!==a),this.publish()):this.snapshot}failSending(a){return this.hasSending()?(this.items=this.items.map(b=>"sending"===b.status?bo({...b,status:"failed",error:a}):b),this.publish()):this.snapshot}reset(){return this.items=[],this.revision=0,this.snapshot=a7,this.snapshot}requireMutable(a,b){this.assertCas(b);let c=this.items.find(b=>b.id===a);if(!c)throw new bj("Queued message was not found",be);if("sending"===c.status)throw new bj("Queued message is already being sent",bf);return c}assertCas(a){if("number"!=typeof a||a!==this.revision)throw new bj("Queue revision is stale; reload the queue and retry",bd)}assertText(a){if("string"!=typeof a)throw new bj("Message text is required",bg);if(0===a.length||0===a.trim().length)throw new bj("Message text cannot be empty",bg);if(bn(a)>262144)throw new bj("Message exceeds 262144 bytes","queue_item_too_large");return a}assertTotalBytes(a){let b=a;for(let a of this.items)b+=bn(a.text);if(b>1048576)throw new bj("Queue exceeds 1048576 bytes","queue_too_large")}replace(a,b){this.items=this.items.map(c=>c.id===a?bo(b):c)}publish(){let a;this.revision+=1;let b={revision:this.revision,items:(Object.freeze(a=this.items.map(a=>bo(a))),a)};return Object.freeze(b),this.snapshot=b,b}constructor(){this.revision=0,this.items=[],this.snapshot=a7}}let bq="This session is restarting — retry in a moment.";class br extends Error{constructor(a,b){super(a),this.name="WebRpcError",this.code=b}}let bs=new Set(["select","confirm","input","editor","open_url"]),bt=new Set(["abort","abort_and_prompt","set_thinking_level","cycle_thinking_level","cycle_model","get_available_models","set_auto_compaction","set_auto_retry","abort_retry","abort_bash","set_todos","set_steering_mode","set_follow_up_mode","set_interrupt_mode","get_branch_messages","get_messages","get_messages_page","export_html","handoff","get_subagents","get_subagent_messages","set_subagent_subscription","get_login_providers","login"]),bu={navigate_tree:"Branch navigation is not supported over the omp RPC protocol",clear_queue:"Recalling queued messages is not supported over the omp RPC protocol",get_tools:"Per-session tool listing is not supported over the omp RPC protocol",set_tools:"Changing tools on a running session is not supported over the omp RPC protocol; tool presets apply to new sessions",extension_ui_input:"Extension custom UI is not supported over the omp RPC protocol"},bv={find:"glob",search:"grep"},bw=new Set(["ls"]);function bx(a){let b=[];for(let c of a){let a=c.toLowerCase();if(bw.has(a))continue;let d=bv[a]??a;b.includes(d)||b.push(d)}return b}let by=["bash","read","edit","write","grep","find","ls","task"].map(a=>a.toLowerCase()).sort().join(",");function bz(a,b,c=!1){let d=[];if(a)d.push("--resume",a);else if(void 0!==b){let a=b.map(a=>a.toLowerCase()).sort().join(",");if(0===b.length)d.push("--no-tools");else if(a===by);else{let a=bx(b);a.length>0&&d.push("--tools",a.join(","))}}return c&&!a&&d.push("--advisor"),d}function bA(a){return a?.length?a:void 0}function bB(a){return"string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:"string"==typeof a.id&&a.id?a.id:""}function bC(a){if(a&&(0,ak.existsSync)(a))return{cwd:a,fellBack:!1};try{let a=process.cwd();if(a&&(0,ak.existsSync)(a))return{cwd:a,fellBack:!0}}catch{}return{cwd:(0,aI.homedir)(),fellBack:!0}}function bD(a){a&&"object"==typeof a&&void 0===a.estimatedTokensAfter&&(a.estimatedTokensAfter=Math.round((a.summary?.length??0)/4))}class bE{constructor(a,b,c){this.listeners=[],this.pendingUiRequests=new Map,this.uiExpiryTimers=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.promptRunning=!1,this.bashRunning=!1,this.streaming=!1,this.compacting=!1,this.fastModeEnabled=!1,this.idleTimer=null,this.destroyListeners=[],this.onIdentityChangeCallback=null,this.unsubscribeFrames=null,this.initPromise=null,this.restarting=!1,this.mcpListWaiter=null,this._alive=!0,this.hostToolNames=new Set,this.pendingHostTools=new Map,this.hostUriSchemes=new Map,this.pendingHostUris=new Map,this.messageQueue=new bp,this.queueEpoch=0,this.queueDispatching=!1,this.queueDispatchAgain=!1,this.abortHoldsDispatch=!1,this.activeToolIds=new Set,this.nativeFollowUpDepth=0,this.nativeHandoffPending=0,this.nativeQueuedCount=0,this.nativeQueueStale=!1,this.nativeReconcileGeneration=0,this.destroyPromise=null,this._sessionId="",this._sessionFile="",this.sessionFileSignalTimer=null,this.proc=a,this.cwd=b,this.recordedCwd=c??null}get sessionId(){return this._sessionId}get sessionFile(){return this._sessionFile}isAlive(){return this._alive&&this.proc.isAlive}isRunning(){return this.isAlive()&&(this.promptRunning||this.streaming||this.compacting||this.bashRunning)}start(){this.unsubscribeFrames=this.proc.onFrame(a=>this.handleFrame(a)),this.resetIdleTimer(),bK()}waitUntilReady(){return this.initPromise||(this.initPromise=this.initialize()),this.initPromise}async initialize(){let a=await this.proc.waitReady(12e4);await this.proc.negotiateProtocol(a),await this.proc.sendCommand({type:"set_subagent_subscription",level:"events"}).catch(()=>{});let b=await this.proc.sendCommand({type:"get_state"});this.applyIdentity(b),this.recordedCwd&&this.recordedCwd!==this.cwd&&this.emit({type:"notice",level:"warning",message:`This session's working directory no longer exists; the agent is running in ${this.cwd}.`})}applyIdentity(a){this._sessionId=a.sessionId,this._sessionFile=a.sessionFile??"",this._sessionName=a.sessionName,this.streaming=a.isStreaming,this.compacting=a.isCompacting,this.fastModeEnabled=a.fastModeEnabled??a.fastMode??this.fastModeEnabled,this._sessionFile&&(0,ar.O8)(this._sessionId,this._sessionFile)}handleProcessExit(a){if(!this._alive||this.restarting)return;let b=a.trim().split("\n").pop()??"";this.emit({type:"notice",level:"error",message:`The omp process for this session exited unexpectedly${b?`: ${b}`:"."}`}),(this.streaming||this.promptRunning)&&this.emit({type:"agent_end",isTerminal:!0,messages:[]}),this.destroy()}handleFrame(a){this.resetIdleTimer();let b=!1,c=!1;switch(a.type){case"command_output":{let b=this.mcpListWaiter;if(b&&"string"==typeof a.text){clearTimeout(b.timer),this.mcpListWaiter=null,b.resolve(a.text),bK();return}break}case"agent_start":!this.streaming&&this.nativeFollowUpDepth>0&&(this.nativeFollowUpDepth-=1),this.streaming=!0,(0,ar.mD)(),b=!0,this._sessionFile&&!(0,ak.existsSync)(this._sessionFile)&&this.signalWhenSessionFileAppears();break;case"agent_end":!1!==a.isTerminal&&(this.streaming=!1,this.promptRunning=!1,this.activeToolIds.clear(),(0,ar.mD)(),this.nativeQueuedCount>0||this.nativeQueueStale?this.beginNativeQueueReconcile():c=!0);break;case"prompt_result":this.promptRunning=!1,c=!0;break;case"auto_compaction_start":this.compacting=!0;break;case"auto_compaction_end":this.compacting=!1,bD(a.result),(0,ar.mD)(),c=!0;break;case"tool_execution_start":{let b=bB(a);b&&this.activeToolIds.add(b);break}case"tool_execution_end":{let b=bB(a);b&&this.activeToolIds.delete(b),c=!0;break}case"session_info_update":"string"==typeof a.title&&(this._sessionName=a.title),(0,ar.mD)(),b=!0;break;case"response":if(!1===a.success&&"prompt"===a.command){this.promptRunning=!1,this.emit({type:"prompt_error",errorMessage:a.error??"Prompt failed"}),bK(),this.scheduleQueueDispatch();return}break;case"extension_ui_request":if(this.trackExtensionUiRequest(a))return void bK();break;case"host_tool_call":{let b="string"==typeof a.id?a.id:"",c="string"==typeof a.toolName?a.toolName:"";if(b&&c&&this.hostToolNames.has(c)&&this.listeners.length>0){this.pendingHostTools.set(b,a),this.emit(a),bK();return}this.rejectUnexpectedHostTool(a);return}case"host_tool_cancel":{let b="string"==typeof a.targetId?a.targetId:"";if(b&&this.pendingHostTools.delete(b)){this.emit(a),bK();return}break}case"host_uri_request":{let b="string"==typeof a.id?a.id:"",c=("string"==typeof a.url?a.url:"").split(":")[0]??"",d="write"===a.operation?"write":"read",e=this.hostUriSchemes.get(c);if(b&&c&&e&&("write"!==d||e.writable)&&this.listeners.length>0){this.pendingHostUris.set(b,a),this.emit(a),bK();return}this.proc.sendFrame({type:"host_uri_result",id:b,isError:!0,error:`URI scheme "${c}" is not registered by omp-web`});return}case"host_uri_cancel":{let b="string"==typeof a.targetId?a.targetId:"";if(b&&this.pendingHostUris.delete(b)){this.emit(a),bK();return}}}this.emit(a),bK({refreshSessionList:b}),c&&this.scheduleQueueDispatch()}forgetPendingUiRequest(a){this.pendingUiRequests.delete(a);let b=this.uiExpiryTimers.get(a);b&&(clearTimeout(b),this.uiExpiryTimers.delete(a))}clearPendingUiRequests(){for(let a of this.uiExpiryTimers.values())clearTimeout(a);this.uiExpiryTimers.clear(),this.pendingUiRequests.clear()}trackExtensionUiRequest(a){let b=a.method,c=a.id;if("cancel"===b)return this.forgetPendingUiRequest(a.targetId),!1;let d=!1;try{d=a5().settings.tools?.approval?.extension==="allow"}catch{}if("confirm"===b&&"string"==typeof a.title&&/^allow tool\s*:/i.test(a.title)&&d)return this.forgetPendingUiRequest(c),this.proc.sendFrame({type:"extension_ui_response",id:c,confirmed:!0}),!0;if(bs.has(b)){this.forgetPendingUiRequest(c);let b="number"==typeof a.timeout?a.timeout:void 0;if(b&&b>0){a.expiresAt=Date.now()+b;let d=setTimeout(()=>this.forgetPendingUiRequest(c),b);d.unref?.(),this.uiExpiryTimers.set(c,d)}return this.pendingUiRequests.set(c,a),!1}if("setStatus"===b){let b=a.statusKey,c=a.statusText;return void 0===c?this.extensionStatuses.delete(b):this.extensionStatuses.set(b,c),!1}if("setWidget"===b){let b=a.widgetKey,c=a.widgetLines;void 0===c?this.extensionWidgets.delete(b):this.extensionWidgets.set(b,{key:b,lines:c,placement:a.widgetPlacement??"aboveEditor"})}return!1}rejectUnexpectedHostTool(a){let b="string"==typeof a.id?a.id:"";if(!b)return;let c="string"==typeof a.toolName?a.toolName:"unknown";this.proc.sendFrame({type:"host_tool_result",id:b,isError:!0,result:{content:[{type:"text",text:`Host tool "${c}" is not available in ompgui. Use OMP's built-in tools within the selected workspace.`}]}}),this.emit({type:"notice",level:"warning",message:`Rejected unavailable host tool: ${c}`})}rejectPendingHostTools(a){for(let b of this.pendingHostTools.keys())this.proc.sendFrame({type:"host_tool_result",id:b,isError:!0,result:{content:[{type:"text",text:a}]}});this.pendingHostTools.clear()}rejectPendingHostUris(a){for(let b of this.pendingHostUris.keys())this.proc.sendFrame({type:"host_uri_result",id:b,isError:!0,error:a});this.pendingHostUris.clear()}emit(a){for(let b of this.listeners)try{b(a)}catch{}}signalWhenSessionFileAppears(){if(this.sessionFileSignalTimer)return;let a=0,b=()=>{if(this.sessionFileSignalTimer=null,this._alive&&this._sessionFile){if(!(0,ak.existsSync)(this._sessionFile)){(a+=1)<40&&(this.sessionFileSignalTimer=setTimeout(b,250));return}(0,ar.mD)(),bK({refreshSessionList:!0})}};this.sessionFileSignalTimer=setTimeout(b,250)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){this.listeners.push(a);let b=Date.now();for(let[c,d]of this.pendingUiRequests){let e=d.expiresAt;if(void 0!==e&&e<=b){this.forgetPendingUiRequest(c);continue}a(d)}return a(bl(this.messageQueue.getSnapshot())),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),0===this.listeners.length&&(this.rejectPendingHostTools("The web UI disconnected while the agent was waiting for this host tool"),this.rejectPendingHostUris("The web UI disconnected while the agent was waiting for this URI request"))}}onDestroy(a){return this._alive?(this.destroyListeners.push(a),()=>{let b=this.destroyListeners.indexOf(a);-1!==b&&this.destroyListeners.splice(b,1)}):(a(),()=>{})}onIdentityChange(a){this.onIdentityChangeCallback=a}async withFinalRunningNotification(a){try{return await a()}finally{bK()}}async getMcpList(){let a,b;if(this.restarting)throw new br(bq,"session_restarting");if(!this.isAlive())throw Error("Session is no longer running");if(this.isRunning())throw new br("Wait for the current run to finish","session_busy");if(this.mcpListWaiter)throw new br("MCP list is already loading","mcp_list_loading");this.promptRunning=!0,bK();let c=new Promise((c,d)=>{a=c,b=d});c.catch(()=>{});let d={resolve:a,reject:b,timer:void 0};d.timer=setTimeout(()=>{this.mcpListWaiter===d&&(this.mcpListWaiter=null,b(new br("Timed out while loading MCP servers","mcp_list_timeout")))},15e3),d.timer.unref?.(),this.mcpListWaiter=d;try{return await this.proc.sendCommand({type:"prompt",message:"/mcp list"}),await c}catch(a){throw this.mcpListWaiter===d&&(clearTimeout(d.timer),this.mcpListWaiter=null,d.reject(a instanceof Error?a:Error(String(a)))),a}finally{this.mcpListWaiter===d&&(clearTimeout(d.timer),this.mcpListWaiter=null),this.promptRunning=!1,bK()}}buildWebState(a){return this.streaming=a.isStreaming,this.compacting=a.isCompacting,this._sessionName=a.sessionName,this.nativeQueuedCount=a.queuedMessageCount??0,this.nativeQueueStale=!1,a.sessionId&&(this._sessionId=a.sessionId,this._sessionFile=a.sessionFile??this._sessionFile),{sessionId:a.sessionId,sessionFile:a.sessionFile??"",sessionName:a.sessionName,isStreaming:a.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.bashRunning,isCompacting:a.isCompacting,autoCompactionEnabled:a.autoCompactionEnabled,autoRetryEnabled:a.autoRetryEnabled,interruptMode:a.interruptMode,steeringMode:a.steeringMode,followUpMode:a.followUpMode,model:a.model?{id:a.model.id,provider:a.model.provider,name:a.model.name,reasoning:a.model.reasoning,thinking:a.model.thinking?{efforts:a.model.thinking.efforts}:void 0}:void 0,messageCount:a.messageCount,queuedMessageCount:a.queuedMessageCount,messageQueue:this.queueSnapshotForClient(),contextUsage:a.contextUsage??null,systemPrompt:a.systemPrompt?.join("\n\n")??"",thinkingLevel:a.thinkingLevel??"off",fastModeEnabled:a.fastModeEnabled??a.fastMode??this.fastModeEnabled,fastModeActive:a.fastModeActive,todoPhases:a.todoPhases??[],extensionStatuses:Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionWidgets.values())}}async refreshIdentityAfterSessionChange(){let a=this._sessionId,b=await this.proc.sendCommand({type:"get_state"});return this.applyIdentity(b),a&&a!==this._sessionId&&(this.discardQueue("Queued messages were discarded because the session changed."),this.onIdentityChangeCallback?.(a,this._sessionId)),(0,ar.mD)(),this._sessionId}async restart(){if(this.restarting)throw new br(bq,"session_restarting");let a=this._sessionFile,b=!!a&&(0,ak.existsSync)(a),c=this.proc;this.restarting=!0,this.queueEpoch+=1,this.abortHoldsDispatch=!1,this.activeToolIds.clear(),this.nativeFollowUpDepth=0,this.nativeHandoffPending=0,this.nativeQueuedCount=0,this.nativeQueueStale=!1,this.nativeReconcileGeneration+=1,this.messageQueue.failSending(bh),this.emitQueueSnapshot(),this.unsubscribeFrames?.();try{if(await c.dispose(),!this._alive)return;this.extensionStatuses.clear(),this.extensionWidgets.clear(),this.clearPendingUiRequests(),this.promptRunning=!1,this.bashRunning=!1,this.streaming=!1,this.compacting=!1;let d=new az.X({cwd:this.cwd,extraArgs:bz(b?a:""),onExit:({stderrTail:a})=>{this.proc===d&&this.handleProcessExit(a)}});this.proc=d,this.unsubscribeFrames=d.onFrame(a=>this.handleFrame(a));try{let a=await d.waitReady(12e4);await d.negotiateProtocol(a),await d.sendCommand({type:"set_subagent_subscription",level:"events"}).catch(()=>{});let b=await d.sendCommand({type:"get_state"});this.applyIdentity(b)}catch(a){throw this.unsubscribeFrames?.(),this.unsubscribeFrames=null,d.dispose(),this.destroy(),a}}finally{this.restarting=!1}bK(),this.scheduleQueueDispatch()}async send(a){if(this.restarting)throw new br(bq,"session_restarting");if(!this.isAlive())throw Error("Session is no longer running");this.resetIdleTimer();let b=a.type;if("prompt"===b||"steer"===b||"follow_up"===b){let b=(0,T.kc)(a.images);if(b)throw Error(b)}let c=bu[b];if(c)throw new az.x(b,c,"unsupported");if("string"==typeof b&&bi.has(b))return this.handleQueueCommand(a);switch(b){case"prompt":{if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");let b=a.streamingBehavior;b||(this.abortHoldsDispatch=!1,this.promptRunning=!0,bK());try{let c=await this.forwardNativeHandoff({type:"prompt",message:a.message,...bA(a.images)?{images:bA(a.images)}:{},...b?{streamingBehavior:b}:{}},"followUp"===b);c?.agentInvoked===!1&&(b||(this.promptRunning=!1,this.emit({type:"prompt_result",agentInvoked:!1}),bK()),this.scheduleQueueDispatch())}catch(a){throw this.promptRunning=!1,bK(),a}return null}case"steer":case"follow_up":return await this.forwardNativeHandoff({type:b,message:a.message,...bA(a.images)?{images:bA(a.images)}:{}},"follow_up"===b),null;case"abort":return this.abortHoldsDispatch=!0,await this.withFinalRunningNotification(async()=>{await this.proc.sendCommand({type:"abort"}),this.promptRunning=!1}),null;case"get_state":{let a=await this.proc.sendCommand({type:"get_state"});return this.buildWebState(a)}case"set_model":{let{provider:b,modelId:c}=a,d=await this.proc.sendCommand({type:"set_model",provider:b,modelId:c});return aJ(),(0,ar.mD)(),{id:d.id,provider:d.provider}}case"set_fast_mode":{let b=!0===a.enabled,c=await this.proc.sendCommand({type:"set_fast_mode",enabled:b});return this.fastModeEnabled=c?.enabled??b,{enabled:this.fastModeEnabled,active:c?.active??!1}}case"fork":if(this.bashRunning)throw Error("Cannot fork while a shell command is running");if(this.queueEpoch+=1,this.messageQueue.failSending(bh),this.emitQueueSnapshot(),(await this.proc.sendCommand({type:"branch",entryId:a.entryId})).cancelled)return{cancelled:!0};return{cancelled:!1,newSessionId:await this.refreshIdentityAfterSessionChange()};case"new_session":case"switch_session":{this.queueEpoch+=1,this.messageQueue.failSending(bh),this.emitQueueSnapshot();let b=await this.proc.sendCommand(a);if(!b.cancelled)return{cancelled:!1,newSessionId:await this.refreshIdentityAfterSessionChange()};return b}case"compact":try{return await this.withFinalRunningNotification(async()=>{this.compacting=!0,bK();try{let b=await this.proc.sendCommand({type:"compact",...a.customInstructions?{customInstructions:a.customInstructions}:{}});return bD(b),b}finally{this.compacting=!1}})}finally{(0,ar.mD)(),this.scheduleQueueDispatch()}case"abort_compaction":return this.abortHoldsDispatch=!0,await this.withFinalRunningNotification(()=>this.proc.sendCommand({type:"abort"})),null;case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.proc.sendCommand({type:"set_session_name",name:b}),this._sessionName=b,(0,ar.mD)(),null}case"get_session_stats":return{...await this.proc.sendCommand({type:"get_session_stats"}),sessionName:this._sessionName};case"get_last_assistant_text":return{text:(await this.proc.sendCommand({type:"get_last_assistant_text"})).text??""};case"get_commands":return await this.proc.sendCommand({type:"get_available_commands"});case"reload":return await this.restart(),{success:!0};case"extension_ui_response":{let{id:b,...c}=a;return this.forgetPendingUiRequest(b),this.proc.sendFrame({type:"extension_ui_response",id:b,...c}),null}case"bash":if(!0===a.excludeFromContext)throw new br("omp cannot run a shell command with its output excluded from the model context (`!!`): the RPC bash command has no exclusion option, so the output would silently enter the context anyway. Run it with a single `!` to share the output with the model, or use a terminal outside ompgui.","bash_exclude_unsupported");if(this.isRunning())throw Error("Cannot run a shell command while the session is busy");this.bashRunning=!0,bK();try{return await this.proc.sendCommand({type:"bash",command:a.command})}finally{this.bashRunning=!1,(0,ar.mD)(),bK(),this.scheduleQueueDispatch()}case"set_host_tools":{let b=(Array.isArray(a.tools)?a.tools:[]).filter(a=>"string"==typeof a.name&&a.name);return this.hostToolNames=new Set(b.map(a=>a.name)),await this.proc.sendCommand({type:"set_host_tools",tools:b}),null}case"host_tool_result":return"string"==typeof a.id&&this.pendingHostTools.delete(a.id),await this.proc.sendCommand(a),null;case"set_host_uri_schemes":{let b=Array.isArray(a.schemes)?a.schemes:[];for(let a of(this.hostUriSchemes=new Map,b))"string"==typeof a.scheme&&a.scheme&&this.hostUriSchemes.set(a.scheme,{writable:!0===a.writable});return await this.proc.sendCommand({type:"set_host_uri_schemes",schemes:b}),null}case"host_uri_result":return"string"==typeof a.id&&this.pendingHostUris.delete(a.id),await this.proc.sendCommand(a),null;default:if(bt.has(b)){let c=await this.proc.sendCommand(a);return"set_thinking_level"===b&&(0,ar.mD)(),c??null}throw Error(`Unsupported command: ${b}`)}}handleQueueCommand(a){try{let b=a.type;switch(b){case a8:if(!bk(a.lane))throw new bj("lane must be steer or followUp",bg);if("string"!=typeof a.message)throw new bj("message is required",bg);return this.abortHoldsDispatch=!1,this.messageQueue.enqueue({lane:a.lane,text:a.message}),this.emitQueueSnapshot(),this.finishQueueCommand();case bb:if("string"!=typeof a.id)throw new bj("id is required",bg);return this.abortHoldsDispatch=!1,this.messageQueue.promote(a.id,this.requireExpectedRevision(a)),this.emitQueueSnapshot(),this.finishQueueCommand();case a9:{if("string"!=typeof a.id)throw new bj("id is required",bg);let{item:b}=this.messageQueue.recall(a.id,this.requireExpectedRevision(a));return this.emitQueueSnapshot(),this.finishQueueCommand(b)}case ba:if("string"!=typeof a.id)throw new bj("id is required",bg);return this.messageQueue.delete(a.id,this.requireExpectedRevision(a)),this.emitQueueSnapshot(),this.finishQueueCommand();case bc:return Promise.resolve(bm(this.queueSnapshotForClient()));default:throw Error(`Unsupported command: ${b}`)}}catch(a){if(a instanceof bj)throw new br(a.message,a.code);throw a}}requireExpectedRevision(a){if("number"!=typeof a.expectedRevision)throw new bj("Queue revision is stale; reload the queue and retry",bd);return a.expectedRevision}async finishQueueCommand(a){return await this.drainQueueDispatch(),bm(this.queueSnapshotForClient(),a)}queueSnapshotForClient(){return{...this.messageQueue.getSnapshot(),nativeQueuedCount:this.nativeQueuedCount}}emitQueueSnapshot(){this.emit(bl(this.queueSnapshotForClient()))}beginNativeQueueReconcile(){this.nativeQueueStale=!0,this.nativeReconcileGeneration+=1;let a=this.nativeReconcileGeneration,b=this.queueEpoch,c=this.proc;this.refreshNativeQueuedCount(a,b,c)}async refreshNativeQueuedCount(a,b,c){try{let d=await c.sendCommand({type:"get_state"});if(!this.nativeReconcileStillValid(a,b,c))return;this.nativeQueuedCount=d.queuedMessageCount??0,this.nativeQueueStale=!1}catch{if(!this.nativeReconcileStillValid(a,b,c))return;this.nativeQueuedCount=0,this.nativeQueueStale=!1}this.scheduleQueueDispatch()}nativeReconcileStillValid(a,b,c){return this._alive&&this.queueEpoch===b&&this.proc===c&&this.nativeReconcileGeneration===a}discardQueue(a){this.queueEpoch+=1;let b=this.messageQueue.getSnapshot().items.length>0;this.messageQueue.reset(),this.emitQueueSnapshot(),b&&this.emit({type:"notice",level:"warning",message:a})}scheduleQueueDispatch(){this.drainQueueDispatch()}async drainQueueDispatch(){if(this.queueDispatching){this.queueDispatchAgain=!0;return}this.queueDispatching=!0;try{do this.queueDispatchAgain=!1,await this.dispatchNextQueueItem();while(this.queueDispatchAgain)}catch{}finally{this.queueDispatching=!1,this.queueDispatchAgain&&this.scheduleQueueDispatch()}}canDispatchSteer(){return this.isAlive()&&!this.restarting&&this.streaming&&!this.compacting&&!this.bashRunning&&0===this.activeToolIds.size&&0===this.pendingHostTools.size&&0===this.nativeHandoffPending}canDispatchFollowUp(){return this.isAlive()&&!this.restarting&&!this.abortHoldsDispatch&&!this.promptRunning&&!this.streaming&&!this.compacting&&!this.bashRunning&&0===this.activeToolIds.size&&0===this.pendingHostTools.size&&0===this.nativeFollowUpDepth&&0===this.nativeHandoffPending&&!this.nativeQueueStale&&0===this.nativeQueuedCount}canDispatchIdlePrompt(){return this.canDispatchFollowUp()}async dispatchNextQueueItem(){for(;this.isAlive()&&!this.restarting;){if(this.messageQueue.hasSending())return;let a=this.messageQueue.selectDispatchCandidate("steer");if(a){if(this.canDispatchSteer()){await this.forwardQueueItem(a,"steer");continue}if(this.canDispatchIdlePrompt()){await this.forwardQueueItem(a);continue}return}let b=this.messageQueue.selectDispatchCandidate("followUp");if(b&&this.canDispatchFollowUp()){await this.forwardQueueItem(b);continue}return}}async forwardQueueItem(a,b){let c=this.queueEpoch,d=this.proc,e=this._sessionId;this.messageQueue.markSending(a.id),this.emitQueueSnapshot(),b||(this.promptRunning=!0,bK());try{let f=await d.sendCommand({type:"prompt",message:a.text,...b?{streamingBehavior:b}:{}},3e4);if(!this.queueForwardStillValid(c,d,e,a.id))return;this.messageQueue.remove(a.id),this.emitQueueSnapshot(),f?.agentInvoked!==!1||b||(this.promptRunning=!1,this.emit({type:"prompt_result",agentInvoked:!1}),bK())}catch(g){if(b||(this.promptRunning=!1),!this.queueForwardStillValid(c,d,e,a.id))return;let f=g instanceof Error&&/timed out/i.test(g.message)?bh:`${bh} ${g instanceof Error?g.message:String(g)}`;this.messageQueue.markFailed(a.id,f),this.emitQueueSnapshot(),this.emit({type:"notice",level:"warning",message:f}),bK()}}queueForwardStillValid(a,b,c,d){return!!this._alive&&this.queueEpoch===a&&this.proc===b&&(!c||this._sessionId===c)&&this.messageQueue.getSnapshot().items.some(a=>a.id===d&&"sending"===a.status)}async forwardNativeHandoff(a,b){this.nativeHandoffPending+=1,b&&(this.nativeFollowUpDepth+=1);try{var c;let d=await this.proc.sendCommand(a);return b&&(c=d)&&"object"==typeof c&&!1===c.agentInvoked&&(this.nativeFollowUpDepth=Math.max(0,this.nativeFollowUpDepth-1)),d}catch(a){throw b&&(this.nativeFollowUpDepth=Math.max(0,this.nativeFollowUpDepth-1)),a}finally{this.nativeHandoffPending=Math.max(0,this.nativeHandoffPending-1),this.scheduleQueueDispatch()}}destroy(){this.destroyAndWait()}async destroyAndWait(){if(this.destroyPromise)return this.destroyPromise;if(!this._alive)return;this._alive=!1,this.queueEpoch+=1,this.abortHoldsDispatch=!0,this.discardQueue("Queued messages were discarded because the session shut down."),this.idleTimer&&clearTimeout(this.idleTimer),this.sessionFileSignalTimer&&(clearTimeout(this.sessionFileSignalTimer),this.sessionFileSignalTimer=null),this.unsubscribeFrames?.(),this.clearPendingUiRequests(),this.mcpListWaiter&&(clearTimeout(this.mcpListWaiter.timer),this.mcpListWaiter.reject(Error("Session was closed while loading MCP servers")),this.mcpListWaiter=null);let a=this.proc.dispose().catch(()=>{}).then(()=>{for(let[a,b]of bF())b===this&&bF().delete(a)});for(let b of(this.destroyPromise=a,this.pendingHostTools.clear(),this.hostToolNames.clear(),this.pendingHostUris.clear(),this.hostUriSchemes.clear(),this.destroyListeners.splice(0)))try{b()}catch{}bK(),await a}}function bF(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function bG(a){return bF().get(a)}function bH(){let a=new Set;for(let[b,c]of bF())c.isRunning()&&a.add(c.sessionId||b);return[...a]}async function bI(){let a=[...new Set(bF().values())];return await Promise.all(a.map(a=>a.destroyAndWait())),a.length}let bJ="";function bK({refreshSessionList:a=!1}={}){let b=bH(),c=JSON.stringify([...b].sort());if(c===bJ&&!a)return;bJ=c;let d={ids:b,refreshSessionList:a};for(let a of(globalThis.__ompRunningListeners||(globalThis.__ompRunningListeners=new Set),globalThis.__ompRunningListeners))try{a(d)}catch{}}async function bL(a,b,c,d,e=!1,f){let g=bF(),h=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks),i=g.get(a);for(;i&&!i.isAlive()&&i.destroyPromise;)await i.destroyPromise,i=g.get(a);if(i?.isAlive())return{session:i,realSessionId:a};let j=h.get(a);if(j)return j;let k=(async()=>{let a={},h=new bE(new az.X({cwd:c,extraArgs:bz(b,d,e),onExit:({stderrTail:b})=>a.wrapper?.handleProcessExit(b)}),c,f);a.wrapper=h,h.start();try{await h.waitUntilReady()}catch(a){throw await h.destroyAndWait(),a}let i=h.sessionId;return h.onIdentityChange((a,b)=>{g.get(a)===h&&g.delete(a),g.set(b,h)}),g.set(i,h),{session:h,realSessionId:i}})().finally(()=>h.delete(a));return h.set(a,k),k}class bM extends Error{constructor(a,b){super(b),this.name="RelaySessionError",this.code=a}}function bN(a){return{id:a.id,cwd:a.cwd,...a.name?{name:a.name}:{},created:a.created,modified:a.modified,messageCount:a.messageCount,firstMessage:a.firstMessage,...a.parentSessionId?{parentSessionId:a.parentSessionId}:{},...a.projectRoot?{projectRoot:a.projectRoot}:{},...a.projectKey?{projectKey:a.projectKey}:{},...a.worktreeBranch?{worktreeBranch:a.worktreeBranch}:{}}}async function bO(){return{sessions:(await (0,ar.dQ)()).map(bN),runningIds:bH()}}async function bP(a,b){let c=await (0,ar.os)(a);if(!c){let c=bG(a);if(!c?.isAlive())throw new bM("session_not_found","Session not found");let d=await c.send({type:"get_state"}),e=await c.send({type:"get_messages"});if("object"!=typeof e||null===e||!("messages"in e)||!Array.isArray(e.messages))throw new bM("rpc_command_failed","Live session transcript is unavailable");let f=aH({origin:"https://ompgui.relay",session:{id:a,cwd:c.cwd},messages:e.messages});if(!c.isAlive()||bG(a)!==c)throw new bM("session_not_found","Session not found");let g=!1,h=c.onEvent(d=>{g||c.sessionId!==a||bG(a)!==c||b(d)}),i=c.onDestroy(()=>{g||c.sessionId!==a||b({type:"session_closed",sessionId:a})});return b({type:"connected",sessionId:a}),{snapshot:{cwd:c.cwd,leafId:null,messages:f?.session.messages??[],agent:{running:c.isRunning(),ready:!0,state:d}},dispose:()=>{g||(g=!0,h(),i())}}}let d=(0,ar.cr)(c);if("too_large"===d.error)throw new bM("session_file_too_large","Session file is too large to open in ompgui");if(!d.header)throw new bM("session_file_malformed","Session file is missing or malformed");let e=(0,aB.qd)(d.entries,{skipToolResultImages:!0}),f=(0,aB.kT)(e),g=(0,ar.Uv)(e,f,{deferThinking:!0,deferToolResultImages:!0}),h=aH({origin:"https://ompgui.relay",session:{id:a,title:d.header.title,cwd:d.header.cwd},leafId:f,messages:g.messages}),i=h?.session.messages??[],j=bG(a),k=!!j?.isAlive(),l={running:!!j?.isRunning(),ready:k};if(j?.isAlive())try{l={running:j.isRunning(),ready:!0,state:await j.send({type:"get_state"})}}catch{l={running:j.isRunning(),ready:!0}}let m=null,n=null,o=!1;return b({type:"connected",sessionId:a}),(async()=>{try{let d=j?.isAlive()?j:void 0;if(!d){let b=(0,ar.eP)(c),{cwd:e}=bC(b?.cwd);({session:d}=await bL(a,c,e,void 0,!1,b?.cwd))}if(o||d.sessionId!==a)return;let e=d;m=e.onEvent(c=>{o||e.sessionId!==a||bG(a)!==e||b(c)}),n=e.onDestroy(()=>{o||e.sessionId!==a||b({type:"session_closed",sessionId:a})})}catch(a){o||b({type:"notice",level:"error",message:`Failed to start agent: ${a instanceof Error?a.message:String(a)}`})}})(),{snapshot:{...d.header.title?{title:d.header.title}:{},...d.header.cwd?{cwd:d.header.cwd}:{},leafId:f,messages:i,agent:l},dispose:()=>{o||(o=!0,m?.(),n?.())}}}async function bQ(a,b,c){let d=bG(a);if(d?.isAlive())return d.send(c?c():b);let e=await (0,ar.os)(a);if(!e)throw new bM("session_not_found","Session not found");let f=(0,ar.eP)(e),{cwd:g}=bC(f?.cwd);try{let{session:d}=await bL(a,e,g,void 0,!1,f?.cwd);return await d.send(c?c():b)}catch(a){if(a instanceof br||a instanceof az.x||a instanceof bM)throw a;throw new bM("rpc_command_failed",a instanceof Error?a.message:String(a))}}let bR=(0,ay.promisify)(aw.execFile);async function bS(a){let b=await (0,ar.os)(a);if(!b)throw new bM("session_not_found","Session not found");let c=(0,ar.cr)(b);if("too_large"===c.error)throw new bM("session_file_too_large","Session file is too large to open in ompgui");if(!c.header)throw new bM("session_file_malformed","Session file is missing or malformed");let d=(0,aB.qd)(c.entries,{skipToolResultImages:!0});return{filePath:b,document:c,entries:d}}async function bT(a){let{entries:b}=await bS(a),c=[];return!function a(b,c){for(let d of b){if(c.length>=40)return;if(0===d.children.length){let a=function(a){if("message"!==a.type||!("message"in a)||!a.message)return{label:a.type};let b="content"in a.message?a.message.content:void 0,c="string"==typeof b?b:Array.isArray(b)?b.filter(a=>"object"==typeof a&&null!==a&&"type"in a&&"text"===a.type&&"text"in a&&"string"==typeof a.text).map(a=>a.text).join(" "):"";(c=c.replace(/\s+/g," ").trim()).length>40&&(c=`${c.slice(0,40)}…`);let d="user"===a.message.role||"assistant"===a.message.role?a.message.role:void 0;return c||(c="assistant"===d?"assistant":"message"),{label:c,...d?{role:d}:{}}}(d.entry);c.push({id:d.entry.id,label:(d.label?.trim()||a.label).slice(0,40),...a.role?{role:a.role}:{}});continue}a(d.children,c)}}((0,aB.lc)(b),c),{id:a,leafId:(0,aB.kT)(b),branches:c}}async function bU(a,b){let{document:c,entries:d}=await bS(a);if(!new Set(d.map(a=>a.id)).has(b))throw new bM("unknown_leaf","Unknown conversation branch");let e=(0,ar.Uv)(d,b,{deferThinking:!0,deferToolResultImages:!0}),f=aH({origin:"https://ompgui.relay",session:{id:a,title:c.header?.title,cwd:c.header?.cwd},leafId:b,messages:e.messages});return{...c.header?.title?{title:c.header.title}:{},...c.header?.cwd?{cwd:c.header.cwd}:{},leafId:b,messages:f?.session.messages??[],agent:{running:!1,ready:!1}}}async function bV(a,b){var c;let d,e=bX.get(b);void 0===e&&(e=Symbol(),bX.set(b,e));let{filePath:f}=await bS(a),g=await bY(f);if(bX.get(b)!==e)throw new bM("export_cancelled","Export owner disconnected or was revoked");let h=Buffer.byteLength(g,"utf8"),i=(0,P.basename)(f,".jsonl"),j=`omp-session-${i}.html`;if(h<=8e4)return{id:a,fileName:j,bytes:h,html:g};let k=(c={deviceId:b,fileName:j,html:g,bytes:h},!function(a=Date.now()){for(let[b,c]of bW)c.expiresAt<=a&&bW.delete(b);for(;bW.size>=8;){let a=bW.keys().next();if(a.done)break;bW.delete(a.value)}}(),d=(0,L.randomUUID)(),bW.set(d,{deviceId:c.deviceId,transferId:d,fileName:c.fileName,bytes:Buffer.from(c.html,"utf8"),size:c.bytes,expiresAt:Date.now()+9e5}),{transferId:d});return{id:a,fileName:j,bytes:h,transferId:k.transferId,size:h}}let bW=new Map,bX=new Map;async function bY(a){let b=(0,aA.resolveOmpBin)();if(!b)throw new bM("omp_not_found","omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN.");let c=(0,P.join)((0,ax.tmpdir)(),"ompgui-export");(0,O.mkdirSync)(c,{recursive:!0});let d=(0,P.join)(c,`${(0,L.randomUUID)()}.html`);try{return await bR(b,["--export",a,d],{cwd:(0,ax.tmpdir)(),timeout:6e4,maxBuffer:4194304,windowsHide:!0}),(0,O.readFileSync)(d,"utf8")}finally{(0,O.rmSync)(d,{force:!0})}}var bZ=c(79646),b$=c(28354);let b_={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},b0={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm",webm:"audio/webm"},b1={pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};function b2(a){return(a.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}let b3=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function b4(a){let b=`${a.indexStatus}${a.worktreeStatus}`;return"??"===b?{status:"untracked",code:"U"}:b3.has(b)||b.includes("U")?{status:"conflict",code:"C"}:b.includes("D")?{status:"deleted",code:"D"}:b.includes("R")||b.includes("C")?{status:"renamed",code:"R"}:b.includes("A")?{status:"added",code:"A"}:{status:"modified",code:"M"}}let b5=(0,b$.promisify)(bZ.execFile);async function b6(a,b,c=8388608){let{stdout:d}=await b5("git",["-C",a,...b],{timeout:1e4,maxBuffer:c,env:{...process.env,LC_ALL:"C"}});return d}async function b7(a){try{return(await b6(a,["rev-parse","--show-toplevel"])).trim()||null}catch{return null}}function b8(a,b){let c=an().relative(an().resolve(a),an().resolve(b));return""===c||!c.startsWith(`..${an().sep}`)&&".."!==c&&!an().isAbsolute(c)}async function b9(a){return function(a){let b=a.split("\0"),c=[];for(let a=0;a<b.length;a++){let d=b[a];if(!d||d.length<4||" "!==d[2])continue;let e=d[0],f=d[1],g={path:d.slice(3),indexStatus:e,worktreeStatus:f};("R"===e||"C"===e||"R"===f||"C"===f)&&(g.originalPath=b[++a]||void 0),c.push(g)}return c}(await b6(a,["status","--porcelain=v1","-z","--untracked-files=all"]))}async function ca(a){let b=await b7(a);if(!b)return{isGitRepository:!1,repositoryRoot:null,files:[]};let c=(await b9(b)).flatMap(c=>{let d=an().resolve(b,c.path);return b8(a,d)?[{filePath:d,...b4(c),indexStatus:c.indexStatus,worktreeStatus:c.worktreeStatus}]:[]});return{isGitRepository:!0,repositoryRoot:b,files:c}}function cb(a,b){let c=b.endsWith("\n"),d=b.split("\n");c&&d.pop();let e=d.map(a=>`+${a}`).join("\n"),f=!c&&d.length>0?"\n\":"";return`diff --git a/${a} b/${a}
|
|
16
16
|
new file mode 100644
|
|
17
17
|
--- /dev/null
|
|
@@ -75,23 +75,23 @@ Reproduce the problem, apply the smallest correct fix, and verify it works befor
|
|
|
75
75
|
${d}
|
|
76
76
|
</main>
|
|
77
77
|
</body>
|
|
78
|
-
</html>`);if(void 0!==c&&Buffer.byteLength(l,"utf8")>c)throw new gB("preview_too_large","Rendered document is too large for preview",413);try{if(gD((0,O.statSync)(a,{bigint:!0}))!==g)throw new gB("stale_revision","File changed during conversion",409)}catch(a){if(a instanceof gB)throw a;throw new gB("stale_revision","File changed during conversion",409)}return{revision:g,html:l}}let gF=new Set,gG=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store"]),gH=new Set(["auto","minimal","low","medium","high","xhigh","max"]);async function gI(){let a=function(a,b){let c=new Set(a.projects.filter(a=>a.hidden).map(a=>cg(a.path))),d=[],e=new Set;for(let b of a.projects.filter(a=>!a.hidden).sort((a,b)=>b.addedAt.localeCompare(a.addedAt))){let a=cg(b.path);e.has(a)||(e.add(a),d.push({path:b.path,addedAt:b.addedAt}))}let f=[],g=new Set;for(let a of new Set([...b].filter(Boolean).map(cm))){let b=cg(a);c.has(b)||e.has(b)||g.has(b)||(g.add(b),f.push({path:a}))}return f.sort((a,b)=>a.path.localeCompare(b.path)),[...d,...f]}(cn(),(await (0,ar.dQ)()).map(a=>a.projectRoot??a.cwd).filter(a=>!!a));for(let b of a)(0,aj.wz)(b.path);return a.map(a=>({path:a.path,name:(0,P.basename)(a.path)||a.path,...a.addedAt?{addedAt:a.addedAt}:{}}))}async function gJ(a,b=0,c=100){let d,e,f=await as(),g=(a??"").trim(),h=g?(0,P.resolve)(g):[...f][0]??(0,ax.homedir)();if(!at(h,f))throw new bM("access_denied","Path is outside allowed workspaces");try{d=(0,O.statSync)(h)}catch{throw new bM("path_not_found","Path not found")}if(!d.isDirectory())throw new bM("not_a_directory","Path is not a directory");let i=[];try{e=(0,O.readdirSync)(h,{withFileTypes:!0})}catch{throw new bM("access_denied","Could not read directory")}let j=(0,O.realpathSync)(h);for(let a of[...e].sort((a,b)=>a.name.localeCompare(b.name))){if(gG.has(a.name)||a.name.endsWith(".pyc"))continue;let b=(0,P.join)(h,a.name);if(gF.has(b)||gF.has((0,P.join)(j,a.name))||!at(b,f))continue;let c=function(a,b){if(a.isDirectory())return!0;if(a.isFile())return!1;try{return al().statSync(b).isDirectory()}catch{return null}}(a,b);null!==c&&i.push({name:a.name,path:b,dir:c})}let k=gP(b,c);return{path:h,entries:i.slice(k.offset,k.offset+k.limit),total:i.length,...k,hasMore:k.offset+k.limit<i.length}}function gK(){return cq.map(a=>({name:a.name,requiresArgs:a.requiresArgs,hint:a.name}))}async function gL(a){let b;try{b=cp(a.cwd)}catch(a){if(a instanceof ck)throw new bM(a.code,a.message);throw a}if(!(0,O.existsSync)(b))throw new bM("directory_not_found",`Directory does not exist: ${b}`);let c=a.message?.trim()??"";if(c.length>3145728)throw new bM("invalid_command","prompt message is too long");let d=a.thinkingLevel?.trim();if(d&&!gH.has(d))throw new bM("invalid_command","Unknown thinking level");let e=a.provider?.trim(),f=a.modelId?.trim();if(e&&!f||!e&&f)throw new bM("invalid_command","set_model requires provider and modelId");let g=`__new__${(0,L.randomUUID)()}`,{session:h,realSessionId:i}=await bL(g,"",b,a.toolNames,a.advisor??!1);return(0,aj.wz)(b),(0,ar.mD)(),e&&f&&await h.send({type:"set_model",provider:e,modelId:f}),d&&await h.send({type:"set_thinking_level",level:d}),c&&await h.send({type:"prompt",message:c}),{sessionId:i}}let gM={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",json:"json",md:"markdown",yml:"yaml",yaml:"yaml",sh:"bash",css:"css",html:"html",txt:"text"};async function gN(a){let b=await as(),c=(0,P.resolve)(a.trim());if(!at(c,b))throw new bM("access_denied","Path is outside allowed workspaces");return c}async function gO(a,b){let c=await as(),d=(0,O.realpathSync)(await gN(a));if(!at(d,c))throw new bM("access_denied","Path is outside allowed workspaces");try{let a=await gE(d,b,8388608);if(!at(d,c))throw new bM("access_denied","Path is outside allowed workspaces");return{path:d,...a,mime:"text/html"}}catch(a){if(a instanceof gB)throw new bM(a.code,a.message);throw a}}function gP(a=0,b=100){if(!Number.isSafeInteger(a)||a<0||!Number.isSafeInteger(b)||b<1||b>100)throw new bM("invalid_args","Invalid pagination (limit must be 1–100)");return{offset:a,limit:b}}function gQ(a){let b=(0,O.statSync)(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}function gR(a){let b=(0,O.openSync)(a,"r");try{let a,c=(0,L.createHash)("sha256"),d=Buffer.allocUnsafe(131072);for(;(a=(0,O.readSync)(b,d,0,d.length,null))>0;)c.update(d.subarray(0,a));return c.digest("hex")}finally{(0,O.closeSync)(b)}}async function gS(a){let b,c=await gN(a),d=(0,O.statSync)(c);if(!d.isFile()&&!d.isDirectory())throw new bM("not_a_file","Unsupported file type");let e=b_[b2(c)]??null,f=b0[b2(c)]??null,g="pdf"===(b=b2(c))||"docx"===b?b:null,h=e?"image":f?"audio":g??"text";if(d.isFile()&&"text"===h){let a=(0,O.openSync)(c,"r");try{let b=Buffer.allocUnsafe(Math.min(d.size,8192)),c=(0,O.readSync)(a,b,0,b.length,0);if(b.subarray(0,c).includes(0))h="binary";else try{new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(b.subarray(0,c),{stream:c<d.size})}catch{h="binary"}}finally{(0,O.closeSync)(a)}}let i=(0,P.basename)(c).toLowerCase().split(".").pop()??"";return{path:c,name:(0,P.basename)(c),size:d.size,mtimeMs:d.mtimeMs,revision:gQ(c),kind:d.isDirectory()?"dir":"file",previewKind:h,mime:d.isDirectory()?"inode/directory":e??f??b1[b2(c)]??null??("binary"===h?"application/octet-stream":({json:"application/json",html:"text/html",css:"text/css",csv:"text/csv",js:"text/javascript",mjs:"text/javascript",xml:"application/xml",md:"text/markdown"})[i]??"text/plain")}}function gT(a,b){let c=Math.min(a.length,b);if(c<a.length)for(;c>0&&(192&a[c])==128;)c--;return a.subarray(0,c)}async function gU(a,b,c,d=98304){let e,f,g=await gS(a);if("file"!==g.kind)throw new bM("not_a_file","Path is not a file");if("text"!==g.previewKind)throw Object.assign(new bM("use_download","Use download for this file"),{details:{meta:g}});if(g.revision!==b)throw new bM("stale_revision","File changed; reload before continuing");if(!Number.isSafeInteger(c)||c<0||c>g.size||!Number.isSafeInteger(d)||d<4||d>98304)throw new bM("invalid_args","Invalid read range");let h=(0,O.openSync)(g.path,"r");try{let a=Buffer.allocUnsafe(Math.min(d+4,g.size-c)),b=(0,O.readSync)(h,a,0,a.length,c);e=gT(a.subarray(0,b),d)}finally{(0,O.closeSync)(h)}try{f=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e)}catch{throw Object.assign(new bM("use_download","File is not UTF-8 text"),{details:{meta:{...g,previewKind:"binary",mime:"application/octet-stream"}}})}let i=c+e.length,j=i===g.size,k=j?gR(g.path):void 0;if(gQ(g.path)!==b)throw new bM("stale_revision","File changed during read");return{text:f,nextOffset:i,complete:j,...k?{contentHash:k}:{}}}async function gV(a){let b=await gS(a),c=await gU(b.path,b.revision,0),d=b.name.toLowerCase().split(".").pop()??"";return{path:b.path,name:b.name,language:gM[d]??"text",revision:b.revision,size:b.size,bytes:b.size,encoding:"utf8",truncated:!c.complete,...c}}async function gW(a){let b=await gN(a),c=await (0,cj.KI)(b),d=[],e=null,f=!0;try{d=await (0,cj.P9)((0,O.existsSync)(b)?b:c.projectRoot),e=(0,cj.xw)(d,b)}catch{f=!1}for(let a of d)(0,aj.wz)(a.path);return{cwd:b,projectRoot:c.projectRoot,isGit:f,currentWorktreePath:e,worktrees:d.map(a=>({path:a.path,branch:a.branch,isMain:a.isMain}))}}async function gX(a,b,c,d,e=!1){let f=await as(),g=(0,P.resolve)(a.trim()),h=(0,P.dirname)(g);if(!at(h,f))throw new bM("access_denied","Path is outside allowed workspaces");let i=(0,O.realpathSync)(h),j=(0,P.join)(i,(0,P.basename)(g)),k=384,l=!1,m=()=>{let a;if((0,O.realpathSync)(h)!==i||!at(h,f))throw new bM("access_denied","Directory changed");try{a=(0,O.lstatSync)(j)}catch(a){if(!(a instanceof Error&&"code"in a&&"ENOENT"===a.code))throw a}if(a){if(!a.isFile()||a.isSymbolicLink())throw new bM("not_a_file","Cannot replace a directory or symbolic link");if(!at(j,f))throw new bM("access_denied","Path is outside allowed workspaces");if(!c||!d)throw new bM("revision_required","Read the complete file before saving");let b=gQ(j);if(b!==c||gR(j)!==d||gQ(j)!==b)throw new bM("stale_revision","File changed; your edits were not written");return k=4095&a.mode,!0}if(c||d||!e)throw new bM("stale_revision","File is missing; explicit creation is required");return!1};l=m();let n=(0,P.join)(i,`.relay-save-${(0,L.randomUUID)()}`),o=(0,O.openSync)(n,O.constants.O_CREAT|O.constants.O_EXCL|O.constants.O_WRONLY,k);try{(0,O.writeFileSync)(o,b,"utf8"),(0,O.chmodSync)(n,k),(0,O.fsyncSync)(o)}catch(a){throw(0,O.unlinkSync)(n),a}finally{(0,O.closeSync)(o)}try{if(m()!==l)throw new bM("stale_revision","File changed before save");l?(0,O.renameSync)(n,j):((0,O.linkSync)(n,j),(0,O.unlinkSync)(n));let a=(0,O.openSync)(i,"r");try{(0,O.fsyncSync)(a)}finally{(0,O.closeSync)(a)}return{path:g,bytes:Buffer.byteLength(b),revision:gQ(j),contentHash:gR(j)}}finally{(0,O.existsSync)(n)&&(0,O.unlinkSync)(n)}}async function gY(a,b=0,c=100){let d=await gN(a),e=await ca(d),f=gP(b,c);return{cwd:d,isGitRepository:e.isGitRepository,repositoryRoot:e.repositoryRoot,total:e.files.length,...f,hasMore:f.offset+f.limit<e.files.length,files:e.files.slice(f.offset,f.offset+f.limit).map(a=>({filePath:(0,P.resolve)(e.repositoryRoot??d,a.filePath),status:a.status,code:a.code}))}}async function gZ(a,b){let c=await gN(a),d=(0,P.resolve)(b);if((0,O.existsSync)(d))await gN(d);else{let a=(0,P.dirname)(d);for(;!(0,O.existsSync)(a)&&(0,P.dirname)(a)!==a;)a=(0,P.dirname)(a);await gN(a)}let e=await cd(c,d);if(!e.supported)return{path:d,supported:!1};let f=e.patch??"",g=Buffer.from(f,"utf8"),h=g.length>8e4;return h&&(f=gT(g,8e4).toString("utf8")),{path:d,supported:!0,...e.status?{status:e.status}:{},...f?{patch:f}:{},truncated:h}}async function g$(a,b){let c=await gN(a);if(!(0,O.existsSync)(c))throw new bM("directory_not_found",`Directory does not exist: ${c}`);try{let a=await (0,cj.l)(c,b);return(0,aj.wz)(a.path),a}catch(a){throw new bM("worktree_add_failed",a instanceof Error?a.message:String(a))}}async function g_(a){let b;try{b=cp(a)}catch(a){if(a instanceof ck)throw new bM(a.code,a.message);throw a}let{projectRoot:c}=await (0,cj.KI)(b),d=function(a,b,c=new Date().toISOString()){let d=cm(b),e=cg(d),f=a.projects.filter(a=>cg(a.path)!==e);return f.push({path:d,addedAt:c,hidden:!1}),{version:1,projects:f}}(cn(),c);co(d),(0,aj.wz)(c);let e=d.projects.find(a=>cg(a.path)===cg(c));return{path:e?.path??c,name:(0,P.basename)(e?.path??c)||c}}async function g0(a){var b;let c,d,e,f,g=a.trim();if(!g)throw new bM("path_required","Path is required");let{projectRoot:h}=await (0,cj.KI)(g);return co((b=cn(),d=cg(c=cm(h)),e=b.projects.some(a=>cg(a.path)===d),f=b.projects.map(a=>cg(a.path)===d?{...a,hidden:!0}:a),e||f.push({path:c,addedAt:new Date().toISOString(),hidden:!0}),{version:1,projects:f})),{path:h}}let g1=(0,ay.promisify)(aw.execFile),g2=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store"]);async function g3(a){try{let{stdout:b}=await g1("git",["-C",a,"ls-files","--cached","--others","--exclude-standard","-z"],{timeout:1e4,maxBuffer:0x4000000,env:{...process.env,LC_ALL:"C"}});return b.split("\0").filter(Boolean)}catch{}let b=[],c=[{abs:a,rel:"",depth:0}];for(;c.length>0;){let a,d=c.shift();try{a=(0,O.readdirSync)(d.abs,{withFileTypes:!0})}catch{continue}for(let e of a){if(g2.has(e.name)||e.name.endsWith(".pyc"))continue;let a=d.rel?`${d.rel}/${e.name}`:e.name;e.isDirectory()?c.push({abs:(0,P.join)(d.abs,e.name),rel:a,depth:d.depth+1}):e.isFile()&&b.push(a)}}return b}async function g4(a,b,c=0,d=100){let e,f=await gN(a);try{e=(0,O.statSync)(f)}catch{throw new bM("directory_not_found","Directory not found")}if(!e.isDirectory())throw new bM("not_a_directory","Not a directory");let g=function(a){let b=new Set;for(let c of a){let a=c.indexOf("/");for(;-1!==a;)b.add(c.slice(0,a)),a=c.indexOf("/",a+1)}let c=[];for(let a of b)c.push({path:a,isDir:!0});for(let b of a)b&&c.push({path:b,isDir:!1});return c.sort((a,b)=>ch(a.path)-ch(b.path)||a.path.localeCompare(b.path)),c}(await g3(f)),h=function(a,b,c=20){let d=b.toLowerCase();if(!d)return a.slice(0,c);let e=[];for(let b of a){let a=function(a,b){let c=a.path.toLowerCase(),d=0;if(b.includes("/"))c===b?d=100:c.startsWith(b)?d=80:c.includes(b)?d=50:ci(b,c)&&(d=10);else{let a=c.lastIndexOf("/"),e=-1===a?c:c.slice(a+1);e===b?d=100:e.startsWith(b)?d=80:e.includes(b)?d=50:c.includes(b)?d=30:ci(b,c)&&(d=10)}return a.isDir&&d>0&&(d+=10),d}(b,d);a>0&&e.push({entry:b,score:a})}return e.sort((a,b)=>b.score-a.score||ch(a.entry.path)-ch(b.entry.path)||a.entry.path.localeCompare(b.entry.path)),e.slice(0,c).map(a=>a.entry)}(g,b,g.length),i=gP(c,d);return{cwd:f,query:b,total:h.length,...i,hasMore:i.offset+i.limit<h.length,matches:h.slice(i.offset,i.offset+i.limit).map(a=>({path:a.path,...a.isDir?{isDir:!0}:{}}))}}function g5(a){let b=0;for(let c of g6.values())c.deviceId===a&&b++;if(g6.size>=128||b>=16)throw new bM("transfer_quota","File transfer quota exceeded")}let g6=new Map;function g7(a){let b=g6.get(a);if(b&&(g6.delete(a),clearTimeout(b.timer),"upload"===b.kind)){gF.delete(b.temp);try{b.fd>=0&&(0,O.closeSync)(b.fd)}catch{}b.fd=-1;try{(0,O.unlinkSync)(b.temp)}catch(a){a instanceof Error&&"code"in a&&"ENOENT"===a.code||console.warn("Relay upload staging cleanup failed",a)}}}function g8(a,b,c=!1){let d=a[b];if(void 0!==d||!c){if("string"!=typeof d||"text"!==b&&"query"!==b&&"data"!==b&&0===d.length||d.includes("\0"))throw new bM("invalid_args",`Invalid ${b}`);return d}}function g9(a,b,c=!1,d=Number.MAX_SAFE_INTEGER){let e=a[b];if(void 0!==e||!c){if("number"!=typeof e||!Number.isSafeInteger(e)||e<0||e>d)throw new bM("invalid_args",`Invalid ${b}`);return e}}function ha(a,b,c){let d=g6.get(a);if(!d||d.deviceId!==b||d.kind!==c)throw new bM("transfer_not_found","File transfer not found");if(Date.now()>=d.expiresAt)throw g7(a),new bM("transfer_expired","File transfer expired");return d}async function hb(a,b){let c=await as();if(!at(a,c))throw new bM("path_not_allowed","Upload directory is not allowed");let d=(0,O.realpathSync)(a);if(d!==a||!(0,O.lstatSync)(d).isDirectory())throw new bM("path_not_allowed","Upload directory changed");let e=Q().join(d,b),f=av(d,[b]);if(f.nonReplaceable.length)throw new bM("invalid_target","Upload destination must be a regular file, not a directory or symlink");if(f.conflicts.length&&!at(e,c))throw new bM("path_not_allowed","Upload destination is not allowed");return e}let hc=async(a,b,c)=>{switch(a){case"list":return{...await gJ(g8(b,"path",!0),g9(b,"offset",!0),g9(b,"limit",!0))};case"search":return{...await g4(g8(b,"cwd"),g8(b,"query"),g9(b,"offset",!0),g9(b,"limit",!0))};case"meta":return{...await gS(g8(b,"path"))};case"preview":return{...await gO(g8(b,"path"),g8(b,"revision",!0))};case"read":return{...await gV(g8(b,"path"))};case"readChunk":return{...await gU(g8(b,"path"),g8(b,"revision"),g9(b,"offset"),g9(b,"length",!0,131072))};case"write":if(void 0!==b.createIfMissing&&"boolean"!=typeof b.createIfMissing)throw new bM("invalid_args","Invalid createIfMissing");return{...await gX(g8(b,"path"),g8(b,"text"),g8(b,"revision",!0),g8(b,"baseContentHash",!0),b.createIfMissing)};case"gitStatus":return{...await gY(g8(b,"cwd"),g9(b,"offset",!0),g9(b,"limit",!0))};case"gitDiff":return{...await gZ(g8(b,"cwd"),g8(b,"path"))};case"uploadBegin":{let a,d=g8(b,"file");if(function(a){if(0===a.length)return"No files selected";let b=new Set;for(let c of a){if(!c||"."===c||".."===c||c.includes("\0"))return`Invalid file name: ${c||"(empty)"}`;if(c.includes("/")||c.includes("\\")||an().basename(c)!==c)return`File names must not contain a path: ${c}`;let a="win32"===process.platform?c.toLocaleLowerCase():c;if(b.has(a))return`Duplicate file name in upload: ${c}`;b.add(a)}return null}([d]))throw new bM("invalid_args","Invalid upload file name");let e=g9(b,"size",!1,0x1900000),f=(a=g8(b,"conflict",!0)??null??"error",au.has(a)?a:null);if(!f)throw new bM("invalid_args","Invalid conflict strategy");let g=(0,O.realpathSync)(await gN(g8(b,"dir"))),h=await hb(g,d);if(av(g,[d]).conflicts.length&&"overwrite"!==f){if("skip"===f)return{skipped:!0,path:h,name:d,bytes:e};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[d]}})}c.assertActive?.(),g5(c.deviceId);let i=(0,L.randomUUID)(),j=Q().join(g,`.relay-upload-${(0,L.randomUUID)()}.tmp`),k=(0,O.openSync)(j,"wx",384);gF.add(j);let l=Date.now()+3e5,m=setTimeout(()=>{g7(i)},3e5);return m.unref(),g6.set(i,{kind:"upload",deviceId:c.deviceId,expiresAt:l,timer:m,path:h,directory:g,name:d,temp:j,fd:k,size:e,received:0,conflict:f}),{transferId:i,path:h,name:d,bytes:e,size:e,chunkSize:131072,expiresAt:l}}case"uploadChunk":case"uploadComplete":case"uploadAbort":{let d=g8(b,"transferId"),e=ha(d,c.deviceId,"upload");if("upload"!==e.kind)throw new bM("transfer_not_found","Upload not found");try{if("uploadAbort"===a)return g7(d),{aborted:!0};if("uploadChunk"===a){let a=g9(b,"offset"),c=g8(b,"data");if(a!==e.received)throw new bM("invalid_offset","Upload chunks must be sequential");if(c.length>4*Math.ceil(131072/3)||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(c))throw new bM("invalid_chunk","Invalid base64 upload chunk");let f=Buffer.from(c,"base64");if(f.toString("base64")!==c||0===f.length||f.length>131072||e.received+f.length>e.size)throw new bM("invalid_chunk","Invalid upload chunk size or encoding");let g=0;for(;g<f.length;){let a=(0,O.writeSync)(e.fd,f,g,f.length-g,e.received+g);if(0===a)throw new bM("upload_failed","Upload write made no progress");g+=a}return e.received+=g,{transferId:d,received:e.received,nextOffset:e.received,complete:e.received===e.size}}if(e.received!==e.size)throw new bM("size_mismatch","Upload is incomplete");let f=g8(b,"sha256",!0);if(void 0!==f&&(!/^[a-fA-F0-9]{64}$/.test(f)||gR(e.temp).toLowerCase()!==f.toLowerCase()))throw new bM("hash_mismatch","Upload checksum mismatch");await hb(e.directory,e.name),ha(d,c.deviceId,"upload");let g=av(e.directory,[e.name]);if(g.conflicts.length&&"overwrite"!==e.conflict){if("skip"===e.conflict)return g7(d),{skipped:!0,path:e.path,name:e.name,bytes:e.size};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[e.name]}})}if(g.conflicts.length&&(0,O.fchmodSync)(e.fd,4095&(0,O.lstatSync)(e.path).mode),(0,O.fsyncSync)(e.fd),(0,O.closeSync)(e.fd),e.fd=-1,g.conflicts.length&&"overwrite"===e.conflict)(0,O.renameSync)(e.temp,e.path);else{try{(0,O.linkSync)(e.temp,e.path)}catch(a){if(a instanceof Error&&"code"in a&&"EEXIST"===a.code){if(av(e.directory,[e.name]).nonReplaceable.length)throw new bM("invalid_target","Upload destination must be a regular file, not a directory or symlink");if("skip"===e.conflict)return g7(d),{skipped:!0,path:e.path,name:e.name,bytes:e.size};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[e.name]}})}throw a}(0,O.unlinkSync)(e.temp)}let h=(0,O.openSync)(e.directory,O.constants.O_RDONLY);try{(0,O.fsyncSync)(h)}finally{(0,O.closeSync)(h)}return g7(d),{path:e.path,name:e.name,bytes:e.size,revision:gQ(e.path),contentHash:gR(e.path)}}catch(a){if(g7(d),a instanceof bM)throw a;throw new bM("upload_failed","File upload failed")}}case"downloadBegin":{let a=await gN(g8(b,"path")),d=await gS(a);if("file"!==d.kind)throw new bM("invalid_target","Download target must be a file");if(d.size>0x6400000)throw new bM("file_too_large","Download exceeds 100 MiB");c.assertActive?.(),g5(c.deviceId);let e=(0,L.randomUUID)(),f=Date.now()+3e5,g=setTimeout(()=>{g7(e)},3e5);return g.unref(),g6.set(e,{kind:"download",deviceId:c.deviceId,expiresAt:f,timer:g,path:a,size:d.size,revision:d.revision}),{...d,transferId:e,bytes:d.size,chunkSize:131072,expiresAt:f}}case"downloadChunk":case"downloadClose":{let d=g8(b,"transferId");if("downloadClose"===a&&!g6.has(d))return{closed:!0};let e=ha(d,c.deviceId,"download");if("download"!==e.kind)throw new bM("transfer_not_found","Download not found");try{let f;if("downloadClose"===a)return g7(d),{closed:!0};let g=g9(b,"offset"),h=g9(b,"length",!0,131072)??131072;if(0===h||g>e.size)throw new bM("invalid_offset","Invalid download range");if(await gN(e.path),ha(d,c.deviceId,"download"),gQ(e.path)!==e.revision)throw new bM("stale_revision","Download file changed");let i=(0,O.openSync)(e.path,O.constants.O_RDONLY|O.constants.O_NOFOLLOW);try{if(!(0,O.fstatSync)(i).isFile())throw new bM("invalid_target","Download target must be a file");f=Buffer.alloc(Math.min(h,e.size-g));let a=0;for(;a<f.length;){let b=(0,O.readSync)(i,f,a,f.length-a,g+a);if(!b)throw new bM("stale_revision","Download file changed");a+=b}let b=(0,O.fstatSync)(i),c=(0,O.lstatSync)(e.path);if(b.dev!==c.dev||b.ino!==c.ino||b.size!==e.size||gQ(e.path)!==e.revision)throw new bM("stale_revision","Download file changed")}finally{(0,O.closeSync)(i)}let j=g+f.length;return j===e.size&&g7(d),{transferId:d,path:e.path,revision:e.revision,offset:g,data:f.toString("base64"),nextOffset:j,complete:j===e.size}}catch(a){if(g7(d),a instanceof bM)throw a;throw new bM("download_failed","File download failed")}}default:throw new bM("unknown_action","Unknown files action")}};var hd=c(84157);function he(a){return(0,am.join)((0,am.dirname)(a),(0,am.basename)(a,".jsonl"))}function hf(a,b,c){let d,e;try{d=(0,ak.realpathSync)(he(a))}catch{return null}let f=(0,am.join)(d,`${b}${c}`);try{e=(0,ak.realpathSync)(f)}catch{return null}if((0,am.dirname)(e)!==d)return null;try{if(!(0,ak.statSync)(e).isFile())return null}catch{return null}return e}function hg(a){if(!a)return;let b=(a.split(/\r?\n/)[0]??"").replace(/[\u0000-\u001f\u007f-\u009f]/g," ").replace(/\s+/g," ").trim();return b.length>0?b:void 0}class hh extends Error{constructor(a,b){super(b),this.code=a}}class hi{constructor(a=Date.now,b=setTimeout,c=clearTimeout,d=(0,ax.tmpdir)()){this.now=a,this.schedule=b,this.unschedule=c,this.root=d,this.images=new Map,this.reservedBytes=0}remove(a){this.images.get(a.id)===a&&(a.cancelled=!0,(0,O.rmSync)(a.directory,{recursive:!0,force:!0}),this.unschedule(a.timer),this.images.delete(a.id),this.reservedBytes-=a.size)}expire(){for(let a of this.images.values())(a.cancelled||a.expires<=this.now())&&this.remove(a)}owned(a,b){this.expire();let c="string"==typeof b?this.images.get(b):void 0;if(!c||c.deviceId!==a||c.claimed||c.cancelled)throw new hh("invalid_attachment","Attachment is unavailable");return c}begin(a,b,c){if(this.expire(),"string"!=typeof b||!/^image\/[A-Za-z0-9.+-]{1,100}$/.test(b))throw new hh("invalid_images","An image MIME type is required");if("number"!=typeof c||!Number.isSafeInteger(c)||c<1||c>T.Mt)throw new hh("invalid_images",`Each image must be 1 byte to ${T.Mt/1048576}MiB`);let d=0;for(let b of this.images.values())b.deviceId===a&&d++;if(d>=T.ZQ||this.reservedBytes+c>0x20000000||this.images.size>=1024)throw new hh("attachment_quota","Attachment staging quota exceeded");let e=(0,L.randomUUID)(),f=(0,O.mkdtempSync)((0,P.join)(this.root,"ompgui-relay-attachment-")),g=(0,P.join)(f,"image");try{(0,O.closeSync)((0,O.openSync)(g,"wx",384))}catch(a){throw(0,O.rmSync)(f,{recursive:!0,force:!0}),a}let h=this.schedule(()=>{let a=this.images.get(e);if(a)try{this.remove(a)}catch{}},9e5);return h.unref?.(),this.images.set(e,{id:e,deviceId:a,directory:f,path:g,mimeType:b,size:c,offset:0,complete:!1,claimed:!1,cancelled:!1,expires:this.now()+9e5,timer:h}),this.reservedBytes+=c,{attachmentId:e,maxChunkBytes:65536}}chunk(a,b,c,d){let e=this.owned(a,b);if(e.complete||c!==e.offset)throw new hh("invalid_offset","Attachment chunks must be sequential");if("string"!=typeof d||d.length>4*Math.ceil(65536/3))throw new hh("invalid_chunk","Attachment chunk is too large or malformed");let f=(0,T.Si)(d);if(null===f||f<1||f>65536||e.offset+f>e.size)throw new hh("invalid_chunk","Attachment chunk exceeds declared size or chunk limit");let g=Buffer.from(d,"base64");if(g.toString("base64")!==d)throw new hh("invalid_chunk","Attachment chunk must be canonical base64");let h=(0,O.openSync)(e.path,"r+");try{let a=0;for(;a<g.length;){let b=(0,O.writeSync)(h,g,a,g.length-a,e.offset+a);if(0===b)throw new hh("attachment_write_failed","Attachment storage write failed");a+=b}e.offset+=g.length}catch(a){throw(0,O.closeSync)(h),this.remove(e),a}return(0,O.closeSync)(h),{nextOffset:e.offset}}complete(a,b){let c=this.owned(a,b);if(c.offset!==c.size)throw new hh("incomplete_attachment","Attachment byte count does not match declared size");return c.complete=!0,{attachmentId:c.id}}abort(a,b){return this.remove(this.owned(a,b)),{aborted:!0}}claim(a,b){if(!Array.isArray(b)||b.length>T.ZQ||b.some(a=>"string"!=typeof a)||new Set(b).size!==b.length)throw new hh("invalid_attachment",`attachmentIds must contain at most ${T.ZQ} unique IDs`);let c=b.map(b=>this.owned(a,b));for(let a of c)if(!a.complete)throw new hh("incomplete_attachment","Attachment upload is incomplete");for(let a of c)a.claimed=!0;return{materialize:()=>(this.expire(),c.map(a=>{if(a.cancelled||this.images.get(a.id)!==a)throw new hh("invalid_attachment","Attachment expired or was cancelled");let b=(0,O.readFileSync)(a.path);if(b.length!==a.size)throw new hh("invalid_attachment","Attachment byte count changed");return{type:"image",mimeType:a.mimeType,data:b.toString("base64")}})),dispose:()=>{for(let a of c)this.remove(a)}}}cleanupDevice(a){for(let b of this.images.values())if(b.deviceId===a)try{this.remove(b)}catch{}}}let hj=new hi;var hk=c(7561);async function hl(a){let b,c,d=await (0,ar.os)(a);if(!d)throw new bM("not_found","Session not found");let e=(0,ar.eP)(d),f=e?.id??a,g=e?.parentSession;if(g){let a=await (0,ar.u1)(g);if(a)b=g,c=a;else{let a=await (0,ar.os)(g);a&&(b=a,c=g)}}let h=(0,hk.$)(d),i=(0,P.dirname)(d),j=[];try{for(let a of(0,O.readdirSync)(i).filter(a=>a.endsWith(".jsonl")&&(0,hk.$)((0,P.join)(i,a))!==h)){let d,e,k,l,m=(0,P.join)(i,a);try{if((0,O.statSync)(m).size>aB.ni){let b=a,c=!1;try{let a=(0,O.openSync)(m,"r");try{let d=Buffer.alloc(65536),e=(0,O.readSync)(a,d,0,d.length,0),g=d.toString("utf8",0,e).split("\n"),i=+!!(0,aB.U1)(g[0]??""),j=JSON.parse(g[i]??"{}");"object"==typeof j&&null!==j&&!Array.isArray(j)&&"type"in j&&"session"===j.type&&("id"in j&&"string"==typeof j.id&&(b=j.id),"parentSession"in j&&"string"==typeof j.parentSession&&(c=j.parentSession===f||(0,hk.$)(j.parentSession)===h))}finally{(0,O.closeSync)(a)}}catch{}c&&j.push({id:b,reason:"session_child_too_large"});continue}}catch{continue}try{d=(0,O.readFileSync)(m,"utf8").split("\n"),e=+!!(0,aB.U1)(d[0]??"");let a=JSON.parse(d[e]);if("object"!=typeof a||null===a||Array.isArray(a))continue;for(let[b,c]of(k={},Object.entries(a)))k[b]=c;if("session"!==k.type||"string"!=typeof k.parentSession||!k.parentSession||!(l=(0,hk.$)(k.parentSession)===h)&&k.parentSession!==f)continue}catch{continue}let n="string"==typeof k.id?k.id:void 0;if(n&&bG(n)?.isAlive?.()){j.push({id:n,reason:"session_child_live"});continue}k.parentSession=l?b??g:c??g,d[e]=JSON.stringify(k);try{(0,aB.sv)(m,d.join("\n"),"reparent")}catch{j.push({id:n??a,reason:"session_child_rewrite_failed"})}}}catch{}return await bG(a)?.destroyAndWait?.(),(0,aB.XS)(d),(0,ar.BR)(a),(0,ar.mD)(),j.length>0?{id:a,skippedChildren:j}:{id:a}}async function hm(a){let b=await (0,ar.os)(a);if(!b)throw new bM("not_found","Session not found");if((await (0,ar.dQ)()).some(b=>b.parentSessionId===a))throw new bM("session_has_children","Archive child sessions before archiving this session");return await bG(a)?.destroyAndWait?.(),(0,aB.a8)(b),(0,ar.BR)(a),(0,ar.mD)(),{id:a}}async function hn(a,b){let c=b.trim();if(!c)throw new bM("invalid_name","name is required");let d=!1,e=bG(a);if(e?.isAlive?.()&&"function"==typeof e.send)try{await e.send({type:"set_session_name",name:c}),d=!0}catch{}if(!d){let b=await (0,ar.os)(a);if(!b)throw new bM("not_found","Session not found");(0,aB.Bm)(b,c,"user")}return(0,ar.mD)(),{id:a,name:c}}async function ho(){return(await (0,aB.Uk)()).map(a=>({key:a.key,...a.name?{name:a.name}:{},...a.id?{id:a.id}:{},...a.cwd?{cwd:a.cwd}:{},archivedAt:a.modified}))}async function hp(a){try{let b=await (0,aB.O0)(a);return(0,ar.BR)(b.id),(0,ar.mD)(),{id:b.id}}catch(a){if(a instanceof aB.De)throw new bM(a.code,a.message);throw a}}async function hq(a,b){let c,d=a.trim();if(!d||d.length>200||d.includes("/")||d.includes("\\"))throw new bM("invalid_file_name","Invalid file name");if(!b.trim())throw new bM("invalid_content","Empty session file");if(Buffer.byteLength(b,"utf8")>0xa00000)throw new bM("invalid_content","Session file is too large (max 10 MB)");let e=b.split(/\r?\n/).filter(a=>a.trim().length>0),f=(0,L.randomUUID)(),g=[];for(let a of e){let b;try{b=JSON.parse(a)}catch{throw new bM("invalid_session_file","Not a valid omp session file (malformed JSON line)")}if("object"==typeof b&&null!==b&&!Array.isArray(b)&&"type"in b){if("session"===b.type&&"cwd"in b&&"string"==typeof b.cwd&&(c=b.cwd),"session"===b.type){g.push(JSON.stringify({...b,id:f}));continue}if("message"===b.type&&"message"in b){let a=b.message;if("object"==typeof a&&null!==a&&!Array.isArray(a)&&"role"in a&&"bashExecution"===a.role){let c={};for(let[b,d]of Object.entries(a))"fullOutputPath"!==b&&(c[b]=d);g.push(JSON.stringify({...b,message:c}));continue}}}g.push(a)}if(!c)throw new bM("invalid_session_file","Not a valid omp session file (missing session header with cwd)");if(!at(c,await as()))throw new bM("import_cwd_not_authorized","Imported session workspace is not authorized");let h=(0,P.join)((0,R.tE)(),(0,R._8)(c));(0,O.mkdirSync)(h,{recursive:!0});let i=(0,P.join)(h,`${new Date().toISOString().replace(/[:.]/g,"-")}_${(0,L.randomUUID)()}.jsonl`);return(0,O.writeFileSync)(i,g.join("\n")+"\n","utf8"),(0,ar.mD)(),(0,aB.I3)(),{id:f,cwd:c}}let hr=/^[A-Za-z0-9._-]{1,128}$/,hs=/^[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*$/,ht=new Set(["auto","minimal","low","medium","high","xhigh","max","off"]),hu=new Set(["prompt","steer","follow_up","abort","abort_and_prompt","get_state","set_model","set_thinking_level","set_fast_mode","fork","new_session","switch_session","compact","abort_compaction","set_session_name","get_session_stats","get_last_assistant_text","get_commands","reload","extension_ui_response","bash","set_steering_mode","set_follow_up_mode","set_interrupt_mode","set_auto_compaction","set_auto_retry","abort_retry","abort_bash","set_todos","handoff","get_subagents","get_subagent_messages","set_subagent_subscription","get_messages","get_messages_page","get_branch_messages","export_html","cycle_model","cycle_thinking_level"]),hv={navigate_tree:"Branch navigation is not supported over the omp RPC protocol",clear_queue:"Recalling queued messages is not supported over the omp RPC protocol",get_tools:"Per-session tool listing is not supported over the omp RPC protocol",set_tools:"Changing tools on a running session is not supported over the omp RPC protocol; tool presets apply to new sessions",extension_ui_input:"Extension custom UI is not supported over the omp RPC protocol"},hw=new Set(["list","create","delete","archive","rename","restore","archives","import","branches","leaf","history","thinking","media","subagents","subagentTranscript","subagentCompletion","stats","state","systemPrompt","autoname","export","exportChunk","exportClose","command","attachments.begin","attachments.chunk","attachments.complete","attachments.abort","projects.remove","worktrees.list","worktrees.add","worktrees.remove"]);class hx extends bM{constructor(a,b,c){super(a,b),void 0!==c&&(this.details=c)}}function hy(a,b,c){throw new hx(a,b,c)}function hz(a){let b=(0,S.oJ)(a)?.trim();return b&&hr.test(b)||hy("invalid_session","session id is required"),b}function hA(a,b=0){if(void 0===a)return b;let c=(0,S.i)(a);return(void 0===c||!Number.isSafeInteger(c)||c<0)&&hy("invalid_offset","offset must be a non-negative integer"),c}function hB(a,b,c){if(void 0===a)return b;let d=(0,S.i)(a);return(void 0===d||!Number.isSafeInteger(d)||d<1||d>c)&&hy("invalid_limit",`limit must be 1..${c}`),d}function hC(a){let b={};for(let[c,d]of Object.entries(a))b[c]=d;return b}async function hD(a){let b=hA(a.offset,0),c=hB(a.limit,100,500),d=(0,S.oJ)(a.query)?.trim().toLowerCase()??"",e=!0===a.runningOnly,f=await bO(),g=new Set(f.runningIds),h=f.sessions;e&&(h=h.filter(a=>g.has(a.id))),d&&(h=h.filter(a=>a.id.toLowerCase().includes(d)||(a.name??"").toLowerCase().includes(d)||a.cwd.toLowerCase().includes(d)||a.firstMessage.toLowerCase().includes(d)));let i=h.length,j=h.slice(b,b+c);return{sessions:j,runningIds:f.runningIds,total:i,offset:b,limit:c,hasMore:b+j.length<i}}async function hE(a){let b,c,d=(0,S.oJ)(a.cwd)?.trim();d||hy("cwd_required","cwd is required");try{b=cp(d)}catch(a){throw a instanceof ck&&hy(a.code,a.message),a}(0,O.existsSync)(b)||hy("directory_not_found",`Directory does not exist: ${b}`);let e=(0,S.oJ)(a.message)?.trim()??"";e.length>3145728&&hy("invalid_command","prompt message is too long");let f=(0,S.oJ)(a.thinkingLevel)?.trim();f&&!ht.has(f)&&hy("invalid_command","Unknown thinking level");let g=(0,S.oJ)(a.provider)?.trim(),h=(0,S.oJ)(a.modelId)?.trim();if((g&&!h||!g&&h)&&hy("invalid_command","set_model requires provider and modelId"),void 0!==a.toolNames){let b=a.toolNames;Array.isArray(b)||hy("invalid_tools","toolNames must be an array of tool names");let d=[];for(let a of b){("string"!=typeof a||!a.trim()||a.length>64)&&hy("invalid_tools","toolNames must be an array of tool names");let b=a.toLowerCase();d.includes(b)||d.push(b)}c=bx(d)}let i=!0===a.advisor,j=`__new__${(0,L.randomUUID)()}`;try{let{session:a,realSessionId:d}=await bL(j,"",b,c,i);return(0,aj.wz)(b),(0,ar.mD)(),g&&h&&await a.send({type:"set_model",provider:g,modelId:h}),f&&await a.send({type:"set_thinking_level",level:f}),e&&await a.send({type:"prompt",message:e}),{sessionId:d}}catch(a){if(a instanceof br||a instanceof az.x||a instanceof bM)throw a;hy("session_create_failed",a instanceof Error?a.message:String(a))}hy("session_create_failed","unreachable")}async function hF(a){let b,c=hz(a.id),d=await (0,ar.os)(c);d||hy("session_not_found","Session not found");let e=(0,ar.cr)(d);"too_large"===e.error&&hy("session_file_too_large","Session file is too large to open in ompgui"),e.header||hy("session_file_malformed","Session file is missing or malformed");let f=(0,aB.qd)(e.entries,{skipToolResultImages:!0});if(void 0!==a.leafId&&null!==a.leafId){let c=(0,S.oJ)(a.leafId)?.trim();(!c||c.length>200)&&hy("invalid_leaf","leafId is invalid"),b=c}let g=(0,aB.kT)(f),h=b??g;b&&(new Set(f.map(a=>a.id)).has(b)||hy("unknown_leaf","Unknown conversation branch"));let i=(0,ar.Uv)(f,h??void 0,{deferThinking:!0,deferToolResultImages:!0}),j=i.messages.length,k=hA(a.offset,0),l=hB(a.limit,100,500),m=i.messages.slice(k,k+l),n=i.entryIds.slice(k,k+l);return{id:c,leafId:h??null,total:j,offset:k,limit:l,hasMore:k+m.length<j,messages:m,entryIds:n,thinkingLevel:i.thinkingLevel,model:i.model,todoPhases:i.todoPhases}}async function hG(a){let b=hz(a.id),c=(0,S.oJ)(a.entryId)?.trim();(!c||c.length>200)&&hy("invalid_entry","entryId is required");let d=(0,S.i)(a.blockIndex);(void 0===d||!Number.isSafeInteger(d)||d<0||d>100)&&hy("invalid_block_index","A valid block index is required");let e=await (0,ar.os)(b);e||hy("session_not_found","Session not found");let f=(0,ar.DK)(e).find(a=>a.id===c);!(void 0===f||"message"!==f.type||"object"!=typeof f.message||null===f.message||Array.isArray(f.message))&&"role"in f.message&&"assistant"===f.message.role&&"content"in f.message&&Array.isArray(f.message.content)||hy("assistant_message_not_found","Assistant message not found");let g=f.message.content[d];return!("object"!=typeof g||null===g||Array.isArray(g))&&"type"in g&&"thinking"===g.type&&"thinking"in g&&"string"==typeof g.thinking||hy("thinking_block_not_found","Thinking block not found"),{thinking:g.thinking}}async function hH(a){let b=hz(a.id),c=(0,S.oJ)(a.entryId)?.trim();(!c||c.length>200)&&hy("invalid_entry","entryId is required");let d=await (0,ar.os)(b);d||hy("session_not_found","Session not found");try{let a=(0,ar.td)(d,c);return a||hy("tool_result_images_not_found","Tool result images not found"),{images:a.images,missingCount:a.missingCount}}catch(a){throw a instanceof T.zJ&&hy(a.code,a.message),a}}async function hI(a){let b=hz(a.id),c=await (0,ar.os)(b);if(!c){if(bG(b)?.isAlive())return{subagents:[]};hy("session_not_found","Session not found")}return{subagents:function(a){let b;try{b=(0,ar.DK)(a)}catch{return[]}let c=new Map,d=a=>{let b=c.get(a.id);b?c.set(a.id,{...b,...a,result:a.result??b.result}):c.set(a.id,a)};for(let a of b){var e,f;if("message"!==a.type||a.message?.role!=="toolResult")continue;let b=a.message;if("task"!==b.toolName)continue;let g=(0,S.u4)(b.details)?b.details:{},h=Array.isArray(g.progress)?g.progress:[],i=Array.isArray(g.results)?g.results:[],j=(0,S.u4)(g.async)?g.async:void 0;for(let a of h){let b=function(a){var b,c;if(!(0,S.u4)(a))return;let d={},e=(0,S.i)(a.index);void 0!==e&&(d.index=e);let f=(0,S.oJ)(a.id);void 0!==f&&(d.id=f);let g=(0,S.oJ)(a.agent);void 0!==g&&(d.agent=g);let h="bundled"===(b=a.agentSource)||"user"===b||"project"===b?b:void 0;void 0!==h&&(d.agentSource=h);let i="pending"===(c=a.status)||"running"===c||"completed"===c||"failed"===c||"aborted"===c?c:void 0;void 0!==i&&(d.status=i);let j=(0,S.oJ)(a.task);void 0!==j&&(d.task=j);let k=(0,S.oJ)(a.assignment);void 0!==k&&(d.assignment=k);let l=(0,S.oJ)(a.description);void 0!==l&&(d.description=l);let m=(0,S.oJ)(a.lastIntent);void 0!==m&&(d.lastIntent=m);let n=(0,S.oJ)(a.currentTool);void 0!==n&&(d.currentTool=n);let o=(0,S.oJ)(a.currentToolArgs);void 0!==o&&(d.currentToolArgs=o);let p=(0,S.i)(a.currentToolStartMs);void 0!==p&&(d.currentToolStartMs=p),Array.isArray(a.recentTools)&&(d.recentTools=a.recentTools),Array.isArray(a.recentOutput)&&(d.recentOutput=a.recentOutput.filter(a=>"string"==typeof a));let q=(0,S.i)(a.toolCount);void 0!==q&&(d.toolCount=q);let r=(0,S.i)(a.requests);void 0!==r&&(d.requests=r);let s=(0,S.i)(a.tokens);void 0!==s&&(d.tokens=s);let t=(0,S.i)(a.contextTokens);void 0!==t&&(d.contextTokens=t);let u=(0,S.i)(a.contextWindow);void 0!==u&&(d.contextWindow=u);let v=(0,S.i)(a.cost);void 0!==v&&(d.cost=v);let w=(0,S.i)(a.durationMs);void 0!==w&&(d.durationMs=w),("string"==typeof a.modelOverride||Array.isArray(a.modelOverride)&&a.modelOverride.every(a=>"string"==typeof a))&&(d.modelOverride=a.modelOverride);let x=(0,S.oJ)(a.modelRole);void 0!==x&&(d.modelRole=x);let y=(0,S.oJ)(a.resolvedModel);if(void 0!==y&&(d.resolvedModel=y),"boolean"==typeof a.resolvedModelIsFallback&&(d.resolvedModelIsFallback=a.resolvedModelIsFallback),(0,S.u4)(a.retryState)){let b=(0,S.i)(a.retryState.attempt),c=(0,S.i)(a.retryState.maxAttempts),e=(0,S.i)(a.retryState.delayMs),f=(0,S.oJ)(a.retryState.errorMessage),g=(0,S.i)(a.retryState.startedAtMs);void 0!==b&&void 0!==c&&void 0!==e&&void 0!==f&&void 0!==g&&(d.retryState={attempt:b,maxAttempts:c,delayMs:e,errorMessage:f,startedAtMs:g})}if((0,S.u4)(a.retryFailure)){let b=(0,S.i)(a.retryFailure.attempt),c=(0,S.oJ)(a.retryFailure.errorMessage);void 0!==b&&void 0!==c&&(d.retryFailure={attempt:b,errorMessage:c})}return void 0!==a.inflightTaskDetails&&(d.inflightTaskDetails=a.inflightTaskDetails),(0,S.u4)(a.extractedToolData)&&(d.extractedToolData=a.extractedToolData),Object.keys(d).length>0?d:void 0}(a);b?.id&&d({id:b.id,agent:b.agent??"subagent",agentSource:b.agentSource,status:"completed"===(e=b.status)?"completed":"failed"===e?"failed":"aborted"===e?"aborted":"started",task:b.task,assignment:b.assignment,description:b.description,index:b.index??0,lastIntent:b.lastIntent,toolCount:b.toolCount,requests:b.requests,tokens:b.tokens,contextTokens:b.contextTokens,contextWindow:b.contextWindow,cost:b.cost,durationMs:b.durationMs,modelOverride:b.modelOverride,modelRole:b.modelRole,resolvedModel:b.resolvedModel,resolvedModelIsFallback:b.resolvedModelIsFallback,retryFailure:b.retryFailure,transcriptAvailable:!1})}for(let a of i){if(!(0,S.u4)(a))continue;let b=(0,S.oJ)(a.id);if(!b)continue;let e=c.get(b),g={},h=(0,S.i)(a.exitCode);void 0!==h&&(g.exitCode=h),!0===a.truncated&&(g.truncated=!0);let i=(0,S.i)(a.cost)??(0,hd.tw)(a.usage);void 0!==i&&(g.cost=i);let j=(0,hd.bA)(a.structuredOutput);void 0!==j&&(g.structuredOutput=j);let k=(0,S.oJ)(a.error);void 0!==k&&(g.error=k),!0===a.aborted&&(g.aborted=!0);let l=(0,S.oJ)(a.abortReason);void 0!==l&&(g.abortReason=l);let m=(0,S.oJ)(a.outputPath);void 0!==m&&(g.outputPath=m);let n=(0,S.oJ)(a.patchPath);void 0!==n&&(g.patchPath=n);let o=(0,S.oJ)(a.branchName);void 0!==o&&(g.branchName=o);let p=(0,S.u4)(a.retryFailure)?{attempt:(0,S.i)(a.retryFailure.attempt)??0,errorMessage:(0,S.oJ)(a.retryFailure.errorMessage)??""}:e?.retryFailure;d({id:b,agent:(0,S.oJ)(a.agent)??e?.agent??"subagent",agentSource:("bundled"===(f=a.agentSource)||"user"===f||"project"===f?f:void 0)??e?.agentSource,status:!0===a.aborted?"aborted":"string"==typeof a.error&&a.error?"failed":"number"==typeof a.exitCode?0===a.exitCode?"completed":"failed":"completed"===a.status?"completed":"failed"===a.status?"failed":"aborted"===a.status?"aborted":"started",task:(0,S.oJ)(a.task)??e?.task,assignment:(0,S.oJ)(a.assignment)??e?.assignment,description:(0,S.oJ)(a.description)??e?.description,index:(0,S.i)(a.index)??e?.index??0,lastIntent:(0,S.oJ)(a.lastIntent)??e?.lastIntent,toolCount:(0,S.i)(a.toolCount)??e?.toolCount,requests:(0,S.i)(a.requests)??e?.requests,tokens:(0,S.i)(a.tokens)??e?.tokens,contextTokens:(0,S.i)(a.contextTokens)??e?.contextTokens,contextWindow:(0,S.i)(a.contextWindow)??e?.contextWindow,cost:(0,S.i)(a.cost)??(0,hd.tw)(a.usage)??e?.cost,durationMs:(0,S.i)(a.durationMs)??e?.durationMs,modelOverride:"string"==typeof a.modelOverride||Array.isArray(a.modelOverride)?a.modelOverride:e?.modelOverride,modelRole:(0,S.oJ)(a.modelRole)??e?.modelRole,resolvedModel:(0,S.oJ)(a.resolvedModel)??e?.resolvedModel,resolvedModelIsFallback:"boolean"==typeof a.resolvedModelIsFallback?a.resolvedModelIsFallback:e?.resolvedModelIsFallback,retryFailure:p,transcriptAvailable:!1,result:Object.keys(g).length>0?g:void 0})}if(j){let a=(0,S.oJ)(j.jobId);a&&!c.has(a)&&d({id:a,agent:"task",status:"completed"===j.state?"completed":"failed"===j.state?"failed":"started",index:c.size,transcriptAvailable:!1})}}let g=he(a),h=new Set;for(let a of b){if("message"!==a.type||a.message?.role!=="toolResult")continue;let b=a.message;if("task"!==b.toolName)continue;let c=(0,S.u4)(b.details)?b.details:{},d=(0,S.u4)(c.async)?c.async:void 0,e=d?(0,S.oJ)(d.jobId):void 0;e&&h.add(e)}let i=[...c.values()];for(let a of i){h.has(a.id)&&(a.detached=!0);let b=(0,am.join)(g,`${a.id}.jsonl`);(0,ak.existsSync)(b)&&(a.sessionFile=b,a.transcriptAvailable=!0)}return i.sort((a,b)=>a.index-b.index||a.id.localeCompare(b.id))}(c)}}async function hJ(a){let b=hz(a.id),c=(0,S.oJ)(a.subagentId)?.trim();c&&!(c.length>100)&&hs.test(c)||hy("invalid_subagent_id","Invalid subagent id");let d=void 0===a.fromByte?0:(0,S.i)(a.fromByte);(void 0===d||!Number.isSafeInteger(d)||d<0)&&hy("invalid_offset","fromByte must be a non-negative integer");let e=await (0,ar.os)(b);e||hy("session_not_found","Session not found");let f=hf(e,c,".jsonl");f||hy("transcript_not_found","Subagent transcript not found");let g=function(a,b=0){let c,d={sessionFile:a,fromByte:"number"==typeof b&&Number.isFinite(b)?Math.max(0,Math.trunc(b)):0,nextByte:"number"==typeof b&&Number.isFinite(b)?Math.max(0,Math.trunc(b)):0,reset:!1,messages:[]},e=d.fromByte,f=!1;try{c=(0,ak.openSync)(a,"r");let b=(0,ak.fstatSync)(c).size;if(e>b&&(e=0,f=!0),b>0x1000000)return{...d,fromByte:e,nextByte:e,reset:f,error:"Subagent transcript exceeds the readable size limit"};let g=[],h=0,i=0;for(;e+h<b;){let a=Buffer.allocUnsafe(Math.min(262144,b-e-h)),d=(0,ak.readSync)(c,a,0,a.length,e+h);if(0===d)break;let f=a.subarray(0,d),j=0===h?f.lastIndexOf(10):f.indexOf(10);if(j>=0){g.push(f.subarray(0,j+1)),i=h+j+1;break}g.push(f),h+=d}let j=[];if(i>0){let a=(1===g.length?g[0]:Buffer.concat(g,i)).toString("utf8");for(let b of(0,aB.nr)(a)){if(null===b||"object"!=typeof b||Array.isArray(b))continue;let a=(0,ar.HA)(b,{});null!==a&&j.push(a)}}return{sessionFile:a,fromByte:e,nextByte:e+i,reset:f,messages:j,totalBytes:b}}catch{return{...d,fromByte:e,nextByte:e,reset:f}}finally{void 0!==c&&(0,ak.closeSync)(c)}}(f,d);return{fromByte:g.fromByte,nextByte:g.nextByte,reset:g.reset,messages:g.messages,totalBytes:g.totalBytes??null,...g.error?{error:g.error}:{}}}async function hK(a){let b=hz(a.id),c=(0,S.oJ)(a.subagentId)?.trim();c&&!(c.length>100)&&hs.test(c)||hy("invalid_subagent_id","Invalid subagent id");let d=await (0,ar.os)(b);d||hy("session_not_found","Session not found");let e=hf(d,c,".md");e||hy("transcript_not_found","Subagent completion not found");let f=function(a){let b;try{b=(0,ak.statSync)(a).size}catch{return null}if(b<=0)return null;let c=b>1048576,d=Math.min(b,1048576),e=(0,ak.openSync)(a,"r");try{let a=Buffer.alloc(d),b=(0,ak.readSync)(e,a,0,d,0),f=a.subarray(0,b),g=f.length,h=0;for(;g-h>0&&(192&f[g-1-h])==128;)h+=1;let i=g-1-h;if(i>=0){let a=f[i];i+(a>=240?4:a>=224?3:a>=192?2:1)>f.length&&(g=i)}else g=0;return{completion:f.subarray(0,g).toString("utf8"),truncated:c}}finally{(0,ak.closeSync)(e)}}(e);return f||hy("transcript_not_found","Subagent completion not found"),{completion:f.completion,truncated:f.truncated}}async function hL(a){let b=hz(a.id);try{let a=await bQ(b,{type:"get_session_stats"});return("object"!=typeof a||null===a||Array.isArray(a))&&hy("stats_failed","Session stats unavailable"),hC(a)}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hy("stats_failed",a instanceof Error?a.message:String(a))}hy("stats_failed","unreachable")}async function hM(a){let b=hz(a.id);try{let a=await bQ(b,{type:"get_state"});return("object"!=typeof a||null===a||Array.isArray(a))&&hy("state_failed","Session state unavailable"),hC(a)}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hy("state_failed",a instanceof Error?a.message:String(a))}hy("state_failed","unreachable")}async function hN(a){let b=hz(a.id),c=await bQ(b,{type:"get_state"});return"object"==typeof c&&null!==c&&!Array.isArray(c)&&"systemPrompt"in c&&"string"==typeof c.systemPrompt?{systemPrompt:c.systemPrompt}:{systemPrompt:null}}async function hO(a){let b=hz(a.id),c=bG(b),d=!!c?.isAlive?.();if(d&&void 0!==c&&"function"==typeof c.send)try{let a,b=await c.send({type:"get_state"});"object"==typeof b&&null!==b&&!Array.isArray(b)&&"sessionName"in b&&"string"==typeof b.sessionName&&(a=b.sessionName);let d=hg(a);if(d)return(0,ar.mD)(),{title:d}}catch{}let e=await (0,ar.os)(b);e||hy("session_not_found","Session not found");let f=(0,aB.mk)(e,!1),g=hg(f?.title);if(g)return{title:g};let h=function(a){if(!a||"(no messages)"===a)return null;let b=hg(a);if(!b||!/[\p{L}\p{N}]/u.test(b))return null;let c=Array.from(b);return c.length<=60?b:`${c.slice(0,60).join("").trimEnd()}…`}(f?.firstMessage);return h||hy("session_no_messages_to_name","The session has no user messages to name"),d||(0,aB.Bm)(e,h,"auto"),(0,ar.mD)(),{title:h}}async function hP(a,b){let c=hz(a.id),d=function(a){("object"!=typeof a||null===a||Array.isArray(a))&&hy("invalid_command","command must be an object");let b={};for(let[c,d]of Object.entries(a))b[c]=d;return b}(a.command),e=(0,S.oJ)(d.type)?.trim();e||hy("command_type_required","command type is required"),hv[e]&&hy("unsupported_command",hv[e]),hu.has(e)||hy("unsupported_command",`Unsupported command: ${e}`);let f=void 0!==d.attachmentIds;if(f&&"prompt"!==e&&"abort_and_prompt"!==e&&hy("invalid_attachment","This command does not accept attachmentIds"),f&&void 0!==d.images&&hy("invalid_images","Do not combine images and attachmentIds"),("prompt"===e||"abort_and_prompt"===e||"steer"===e||"follow_up"===e)&&("string"!=typeof d.message||d.message.length>3145728)&&hy("invalid_command","A prompt message of at most 3Mi characters is required"),("prompt"===e||"abort_and_prompt"===e||"steer"===e||"follow_up"===e)&&void 0!==d.images){let a=d.images;Array.isArray(a)||hy("invalid_images","images must be an array");let b=a.map(a=>"object"!=typeof a||null===a||Array.isArray(a)?a:{type:"image",data:"data"in a&&"string"==typeof a.data?a.data:void 0,mimeType:"mimeType"in a&&"string"==typeof a.mimeType?a.mimeType:void 0}),c=(0,T.kc)(b);c&&hy("invalid_images",c),d.images=b}if("fork"===e&&((0,S.oJ)(d.entryId)?.trim()||hy("invalid_entry","fork requires entryId")),"bash"===e&&!0===d.excludeFromContext&&hy("bash_exclude_unsupported","omp cannot run a shell command with its output excluded from the model context (`!!`): the RPC bash command has no exclusion option, so the output would silently enter the context anyway. Run it with a single `!` to share the output with the model, or use a terminal outside ompgui."),"set_model"===e){let a=(0,S.oJ)(d.provider)?.trim(),b=(0,S.oJ)(d.modelId)?.trim();a&&b||hy("invalid_command","set_model requires provider and modelId")}"set_thinking_level"===e&&(((0,S.oJ)(d.level)?.trim()??(0,S.oJ)(d.thinkingLevel)?.trim())||hy("invalid_command","set_thinking_level requires level")),"set_session_name"===e&&((0,S.oJ)(d.name)?.trim()||hy("invalid_command","Session name cannot be empty")),"extension_ui_response"===e&&((0,S.oJ)(d.id)?.trim()||hy("invalid_command","extension_ui_response requires id")),f&&(b.sessionId!==c&&hy("invalid_session","Open the target session before sending attachments"),bG(c)?.isAlive()||await (0,ar.os)(c)||hy("session_not_found","Session not found")),b.assertActive?.();let g=f?hj.claim(b.deviceId,d.attachmentIds):void 0;delete d.attachmentIds;try{let a=await bQ(c,d,()=>(b.assertActive?.(),g?{...d,images:g.materialize()}:d));if(null==a)return{result:null};if("object"==typeof a)return{result:a};return{result:{value:a}}}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hy("rpc_command_failed",a instanceof Error?a.message:String(a))}finally{g?.dispose()}hy("rpc_command_failed","unreachable")}async function hQ(a){let b=(0,S.oJ)(a.cwd)?.trim(),c=(0,S.oJ)(a.path)?.trim();b||hy("cwd_required","cwd is required"),c||hy("path_required","path is required");let d=await as();at((0,P.resolve)(b),d)||hy("access_denied","Path is outside allowed workspaces");let e=!0===a.force;try{return await (0,cj.IL)(b,c,e),{path:c}}catch(b){let a=b instanceof Error?b.message:String(b);/contains modified or untracked files|is dirty/i.test(a)&&hy("worktree_dirty",a,{dirty:!0}),a.startsWith("Not a worktree of this repository")&&hy("not_a_worktree",a),a.startsWith("Cannot remove the main worktree")&&hy("cannot_remove_main_worktree",a),hy("worktree_remove_failed",a)}hy("worktree_remove_failed","unreachable")}async function hR(a,b,c){hw.has(a)||hy("unknown_action",`Unknown sessions action: ${a}`),("object"!=typeof b||null===b||Array.isArray(b))&&hy("invalid_args","args must be an object");let d={};for(let[a,c]of Object.entries(b))d[a]=c;switch(a){case"projects.remove":{let a=(0,S.oJ)(d.cwd)?.trim();return a||hy("invalid_args","cwd is required"),{...await g0(await gN(a)),projects:await gI()}}case"list":return hD(d);case"create":return hE(d);case"delete":{let a=hz(d.id);return{...await hl(a)}}case"archive":{let a=hz(d.id);return{...await hm(a)}}case"rename":{let a=hz(d.id),b=(0,S.oJ)(d.name)??"";return{...await hn(a,b)}}case"restore":{let a=(0,S.oJ)(d.key)?.trim();return a||hy("invalid_key","archive key is required"),{...await hp(a)}}case"archives":return{archives:await ho()};case"import":{let a=(0,S.oJ)(d.fileName)??"",b=(0,S.oJ)(d.content)??"";return{...await hq(a,b)}}case"branches":{let a=hz(d.id);return{...await bT(a)}}case"leaf":{let a=hz(d.id),b=(0,S.oJ)(d.leafId)?.trim();return b||hy("invalid_leaf","leafId is required"),{...await bU(a,b)}}case"history":return hF(d);case"thinking":return hG(d);case"media":return hH(d);case"subagents":return hI(d);case"subagentTranscript":return hJ(d);case"subagentCompletion":return hK(d);case"stats":return hL(d);case"state":return hM(d);case"systemPrompt":return hN(d);case"autoname":return hO(d);case"export":{let a=hz(d.id);return{...await bV(a,c.deviceId)}}case"exportChunk":{let a=(0,S.oJ)(d.transferId)?.trim();return a||hy("invalid_transfer","transferId is required"),{...function(a,b,c,d){let e=bW.get(a);if(!e||e.deviceId!==d||e.expiresAt<=Date.now())throw e?.expiresAt!==void 0&&e.expiresAt<=Date.now()&&bW.delete(a),new bM("unknown_transfer","Unknown or expired export transfer");if(!Number.isSafeInteger(b)||b<0||b>e.size)throw new bM("invalid_offset","Invalid export offset");if(!Number.isSafeInteger(c)||c<=0||c>98304)throw new bM("invalid_length","Invalid export chunk length");let f=e.bytes.subarray(b,Math.min(e.size,b+c)),g=b+f.length;return{transferId:a,offset:b,data:Buffer.from(f).toString("base64"),bytes:f.length,nextOffset:g,complete:g>=e.size,size:e.size}}(a,hA(d.offset,0),void 0===d.length?98304:hB(d.length,98304,98304),c.deviceId)}}case"exportClose":{var e;let a,b=(0,S.oJ)(d.transferId)?.trim();return b||hy("invalid_transfer","transferId is required"),{...(e=c.deviceId,!(a=bW.get(b))||a.deviceId!==e?{closed:!1}:{closed:bW.delete(b)})}}case"attachments.begin":return hj.begin(c.deviceId,d.mimeType,d.size);case"attachments.chunk":return hj.chunk(c.deviceId,d.attachmentId,d.offset,d.data);case"attachments.complete":return hj.complete(c.deviceId,d.attachmentId);case"attachments.abort":return hj.abort(c.deviceId,d.attachmentId);case"command":return hP(d,c);case"worktrees.list":{let a=(0,S.oJ)(d.cwd)?.trim();return a||hy("cwd_required","cwd is required"),{...await gW(a)}}case"worktrees.add":{let a=(0,S.oJ)(d.cwd)?.trim(),b=(0,S.oJ)(d.branch)?.trim();return a||hy("cwd_required","cwd is required"),b||hy("branch_required","branch is required"),{...await g$(a,b)}}case"worktrees.remove":return hQ(d);default:hy("unknown_action",`Unknown sessions action: ${a}`)}hy("unknown_action",`Unknown sessions action: ${a}`)}let hS={anthropic:["api.anthropic.com"],google:["generativelanguage.googleapis.com"],openai:["api.openai.com"],openrouter:["openrouter.ai"]},hT={text:!0,image:!0};function hU(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function hV(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:void 0}function hW(a){return a.trim().toLocaleLowerCase().replace(/[^a-z0-9]/g,"")}function hX(a){if(a)try{return new URL(a).hostname.toLocaleLowerCase().replace(/\.$/,"")}catch{return}}function hY(a){return void 0!==a.cost.input&&void 0!==a.cost.output}function hZ(a,b,c){if(0===a.length||b<=0)return;let d=new Map;for(let b of a){let a=c(b),e=d.get(a);e?e.count+=1:d.set(a,{value:b,count:1})}let e=[...d.values()].sort((a,b)=>b.count-a.count),f=e[0];if(f&&!(f.count/b<.6)&&e[1]?.count!==f.count)return f.value}function h$(a){if(0===a.length)return;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=[...b.entries()].sort((a,b)=>b[1]-a[1]);if(c[0]&&c[1]?.[1]!==c[0][1])return c[0][0]}function h_(a,b){return{status:"reliable",method:b,cost:{input:a.cost.input,output:a.cost.output,cacheRead:a.cost.cacheRead??0,cacheWrite:a.cost.cacheWrite??0},providerId:a.providerId,providerName:a.providerName,support:1,total:1}}let h0="https://models.dev/api.json";class h1 extends Error{constructor(a,b,c){super(b),this.code=a,this.status=c,this.name="ModelCatalogError"}}async function h2(){let a=await fetch(h0,{cache:"no-store",headers:{Accept:"application/json"},signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error("Catalog request failed");let b=function(a){if(!(0,S.u4)(a))return[];let b=[];for(let[d,e]of Object.entries(a)){if(!(0,S.u4)(e)||!(0,S.u4)(e.models))continue;let a=hU(e.name)??d,f=hU(e.api);for(let[g,h]of Object.entries(e.models)){var c;if(!(0,S.u4)(h))continue;let e=hU(h.id)??g;if(!e)continue;let i=hU(h.name)??e,j={key:`${d}/${e}`,providerId:d,providerName:a,id:e,name:i,cost:(c=h.cost,(0,S.u4)(c)?{input:hV(c.input),output:hV(c.output),cacheRead:hV(c.cache_read),cacheWrite:hV(c.cache_write)}:{})};f&&(j.providerBaseUrl=f),"boolean"==typeof h.reasoning&&(j.reasoning=h.reasoning);let k=function(a){if(!(0,S.u4)(a)||!Array.isArray(a.input))return;let b=Array.from(new Set(a.input.filter(a=>"string"==typeof a).map(a=>a.trim().toLocaleLowerCase()).filter(a=>!0===hT[a])));return b.length?b:void 0}(h.modalities);if(k&&(j.input=k),(0,S.u4)(h.limit)){let a=h.limit.context,b=h.limit.output;"number"==typeof a&&Number.isFinite(a)&&a>0&&(j.contextWindow=a),"number"==typeof b&&Number.isFinite(b)&&b>0&&(j.maxTokens=b)}b.push(j)}}return b}(await a.json());if(0===b.length)throw Error("Catalog is empty");return b}async function h3(){let a=globalThis.__ompguiModelsDevCatalogCache;if(a||(a=globalThis.__ompguiModelsDevCatalogCache={entries:[],expiresAt:0}),a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=h2().then(b=>(a.entries=b,a.expiresAt=Date.now()+36e5,b)).finally(()=>{a.inFlight=void 0}));try{return await a.inFlight}catch{if(a.entries.length>0)return a.entries;throw new h1("catalog_unavailable","The public model catalog is unavailable. Try again later.",502)}}async function h4(a){let{query:b,provider:c="",baseUrl:d="",limit:e=50}=a;if("string"!=typeof b||b.length>120)throw new h1("invalid_args","query must be a string of at most 120 characters",400);if("string"!=typeof c||c.length>120)throw new h1("invalid_args","provider must be a string of at most 120 characters",400);if("string"!=typeof d||d.length>500)throw new h1("invalid_args","baseUrl must be a string of at most 500 characters",400);if("number"!=typeof e||!Number.isInteger(e)||e<1||e>100)throw new h1("invalid_args","limit must be an integer between 1 and 100",400);let f=await h3();return{models:function(a,b,c="",d=50){let e=b.trim().toLocaleLowerCase(),f=c.trim().toLocaleLowerCase(),g=Math.max(1,Math.min(100,Math.floor(d)||50));return a.map(a=>{let b,c,d,g,h,i;return{entry:a,rank:(b=a.id.toLocaleLowerCase(),c=a.name.toLocaleLowerCase(),d=a.providerId.toLocaleLowerCase(),g=a.providerName.toLocaleLowerCase(),h=`${d}/${b}`,i=20,e?b===e||h===e?i=0:c===e?i=1:b.startsWith(e)||c.startsWith(e)?i=2:h.startsWith(e)||d===e||g===e?i=3:b.includes(e)||c.includes(e)?i=4:(h.includes(e)||g.includes(e))&&(i=5):i=10,i<20&&f&&(d===f||g===f)&&(i-=.5),i)}}).filter(({rank:a})=>!e||a<20).sort((a,b)=>a.rank-b.rank||a.entry.providerName.localeCompare(b.entry.providerName,void 0,{sensitivity:"base"})||a.entry.name.localeCompare(b.entry.name,void 0,{numeric:!0,sensitivity:"base"})||a.entry.id.localeCompare(b.entry.id,void 0,{numeric:!0,sensitivity:"base"})).slice(0,g).map(({entry:a})=>a)}(f,b,c,e),recommendation:function(a,b,c="",d=""){let e,f=a.filter(a=>(function(a,b){let c=b.trim().toLocaleLowerCase().replace(/^models\//,"");if(!c)return!1;let d=a.id.trim().toLocaleLowerCase().replace(/^models\//,""),e=`${a.providerId.toLocaleLowerCase()}/${d}`;return d===c||e===c})(a,b));if(0===f.length)return{exactMatches:0,metadataMethod:"none",preset:{},price:{status:"unreliable",reason:"no-exact-match",support:0,total:0}};let g=f.filter(a=>{let b;return!!(b=hW(c))&&(hW(a.providerId)===b||hW(a.providerName)===b)}),h=f.filter(a=>(function(a,b){let c=hX(b);if(!c)return!1;let d=hS[hW(a.providerId)]??[],e=hX(a.providerBaseUrl);return[...d,...e?[e]:[]].some(a=>c===a||c.endsWith(`.${a}`))})(a,d)),i=g[0]??h[0],j=g.length?"provider":h.length?"base-url":"consensus",k=i?{name:i.name,reasoning:i.reasoning,input:i.input,contextWindow:i.contextWindow,maxTokens:i.maxTokens}:(e=f.length,{name:hZ(f.map(a=>a.name),e,a=>a.toLocaleLowerCase()),reasoning:hZ(f.flatMap(a=>void 0===a.reasoning?[]:[a.reasoning]),e,String),input:hZ(f.flatMap(a=>a.input?[a.input]:[]),e,a=>[...a].sort().join(",")),contextWindow:hZ(f.flatMap(a=>void 0===a.contextWindow?[]:[a.contextWindow]),e,String),maxTokens:hZ(f.flatMap(a=>void 0===a.maxTokens?[]:[a.maxTokens]),e,String)}),l=g.find(hY),m=h.find(hY),n=l?h_(l,"provider"):m?h_(m,"base-url"):function(a){let b=a.filter(hY);if(0===b.length)return{status:"unreliable",reason:"no-valid-price",support:0,total:0};if(1===b.length)return{status:"unreliable",reason:"insufficient-support",support:1,total:1};let c=new Map;for(let a of b){let b=JSON.stringify([a.cost.input,a.cost.output]),d=c.get(b);d?d.push(a):c.set(b,[a])}let d=[...c.values()].sort((a,b)=>b.length-a.length),e=d[0];if(!e)return{status:"unreliable",reason:"no-valid-price",support:0,total:b.length};let f=e.length/b.length>=.6||e.length>=5;if(d[1]?.length===e.length||!f)return{status:"unreliable",reason:"conflict",support:e.length,total:b.length};let g=h$(e.map(a=>a.cost.cacheRead??0))??0,h=h$(e.map(a=>a.cost.cacheWrite??0))??0;return{status:"reliable",method:"consensus",cost:{input:e[0].cost.input,output:e[0].cost.output,cacheRead:g,cacheWrite:h},support:e.length,total:b.length}}(f);return"reliable"===n.status&&(k.cost=n.cost),{exactMatches:f.length,metadataMethod:j,matchedProviderId:i?.providerId,matchedProviderName:i?.providerName,preset:k,price:n}}(f,b,c,d),source:h0}}let h5=new Set(["off","minimal","low","medium","high","xhigh","max"]);function h6(a,b){let c=a.toLocaleLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLocaleLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLocaleLowerCase()===c)}function h7(a,b){if(Array.isArray(a))for(let d of a){var c;if("string"!=typeof d)continue;let a=d.trim();if(!a||(c=a).includes("*")||c.includes("?")||c.includes("["))continue;let e=h6(a,b),f=a.lastIndexOf(":"),g=f>=0?a.slice(f+1):"";if(0===e.length&&f>=0&&h5.has(g)&&(e=h6(a.slice(0,f),b)),e.length<=1)continue;let h=e.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${a}" matches multiple models: ${h}. Use provider/modelId.`)}}let h8="models_config_invalid";class h9 extends Error{constructor(a){const b=a.length>0?a:[{path:"",message:"Invalid models configuration"}];super(b.map(a=>a.path?`${a.path} ${a.message}`:a.message).join("; ")),this.code=h8,this.name="ModelsConfigValidationError",this.issues=b}}function ia(a,b,c){a.push({path:b,message:c})}function ib(a){if("string"!=typeof a||""===a.trim())return!1;try{let b=new URL(a);return("http:"===b.protocol||"https:"===b.protocol)&&b.hostname.length>0}catch{return!1}}function ic(a,b,c){(!(0,S.u4)(a)||Object.values(a).some(a=>"string"!=typeof a))&&ia(c,b,"must map header names to strings")}function id(a){let b=[];if(!(0,S.u4)(a))throw new h9([{path:"",message:"must be an object"}]);let c=ij(a).providers,d=void 0===c?{}:c;if((0,S.u4)(d))for(let[a,c]of Object.entries(d)){let d=`providers.${a}`;if(!(0,S.u4)(c)){ia(b,d,"must be an object");continue}if(void 0===c.baseUrl||ib(c.baseUrl)||ia(b,`${d}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==c.api&&("string"!=typeof c.api||""===c.api.trim())&&ia(b,`${d}.api`,"must be a non-empty API identifier"),void 0!==c.auth&&"none"!==c.auth&&"apiKey"!==c.auth&&"oauth"!==c.auth&&ia(b,`${d}.auth`,"must be one of apiKey, none, or oauth"),void 0!==c.apiKey&&"string"!=typeof c.apiKey&&ia(b,`${d}.apiKey`,"must be a string"),void 0!==c.headers&&ic(c.headers,`${d}.headers`,b),void 0!==c.models&&!Array.isArray(c.models)){ia(b,`${d}.models`,"must be an array");continue}let e=Array.isArray(c.models)?c.models:[],f=new Map;for(let[a,g]of(e.length>0&&(("string"!=typeof c.baseUrl||""===c.baseUrl.trim())&&ia(b,`${d}.baseUrl`,"is required when defining custom models"),"apiKey"===(c.auth??"apiKey")&&("string"!=typeof c.apiKey||""===c.apiKey.trim())&&ia(b,`${d}.apiKey`,"is required when defining custom models unless auth is none or oauth")),e.entries())){let e=`${d}.models[${a}]`;if(!(0,S.u4)(g)){ia(b,e,"must be an object");continue}if("string"!=typeof g.id||""===g.id.trim())ia(b,`${e}.id`,"is required");else{let c=f.get(g.id);void 0!==c?ia(b,`${e}.id`,`duplicates the model id at index ${c}`):f.set(g.id,a)}for(let a of(void 0===g.baseUrl||ib(g.baseUrl)||ia(b,`${e}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==g.api&&("string"!=typeof g.api||""===g.api.trim())&&ia(b,`${e}.api`,"must be a non-empty API identifier"),("string"!=typeof c.api||""===c.api.trim())&&("string"!=typeof g.api||""===g.api.trim())&&ia(b,`${e}.api`,"must be specified at provider or model level"),["contextWindow","maxTokens"]))void 0!==g[a]&&("number"!=typeof g[a]||!Number.isFinite(g[a])||g[a]<=0)&&ia(b,`${e}.${a}`,"must be a positive finite number");if(void 0!==g.headers&&ic(g.headers,`${e}.headers`,b),void 0!==g.cost)if((0,S.u4)(g.cost))for(let a of["input","output","cacheRead","cacheWrite"]){let c=g.cost[a];void 0===c?ia(b,`${e}.cost.${a}`,"is required (cost needs input, output, cacheRead, and cacheWrite)"):("number"!=typeof c||!Number.isFinite(c)||c<0)&&ia(b,`${e}.cost.${a}`,"must be a finite non-negative number")}else ia(b,`${e}.cost`,"must be an object")}}else ia(b,"providers","must be an object");if(b.length>0)throw new h9(b)}function ie(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function ig(a){if(!(0,S.u4)(a))return a;let b={...a};return delete b.originalId,b}function ih(a){if(!(0,S.u4)(a))return a;let b={...a};return delete b.originalName,delete b.apiKeyConfigured,delete b.headersConfigured,Array.isArray(b.models)&&(b.models=b.models.map(ig)),b}class ii extends Error{constructor(a,b){super(`${a} is not valid YAML: ${b}`),this.name="ModelsConfigParseError",this.path=a,this.detail=b}}function ij(a){if(!(0,S.u4)(a.providers))return a;let b=Object.fromEntries(Object.entries(a.providers).map(([a,b])=>{if(!(0,S.u4)(b)||!Array.isArray(b.models))return[a,b];let c=b.models.filter(a=>!(0,S.u4)(a)||"string"!=typeof a.id||a.id.trim().length>0);return[a,{...b,models:c}]}));return{...a,providers:b}}function ik(){let a,b=(0,R.OK)();if(!(0,ak.existsSync)(b))return{path:b,exists:!1,config:{providers:{}}};try{a=(0,ak.readFileSync)(b,"utf8")}catch(a){return{path:b,exists:!0,config:{providers:{}},parseError:String(a)}}let c=(0,aM.Tp)(a);if(c.errors.length>0)return{path:b,exists:!0,source:a,config:{providers:{}},parseError:c.errors[0].message};let d=c.toJS();return null==d?{path:b,exists:!0,source:a,config:{providers:{}}}:(0,S.u4)(d)?{path:b,exists:!0,source:a,config:ij(d)}:{path:b,exists:!0,source:a,config:{providers:{}},parseError:"the top level of models.yml must be a mapping"}}function il(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function im(a){return(0,aM.jn)(a)&&("string"==typeof a.value||"number"==typeof a.value)?String(a.value):"string"==typeof a?a:void 0}function io(a,b){if(void 0===b||""===b.trim())return(0,aM.As)(a);let c=(0,aM.Tp)(b);return c.errors.length>0?(0,aM.As)(a):((0,aM.jh)(c.contents)?!function a(b,c,d){if((0,aM.jh)(c)&&il(d)){let e=new Map(Object.entries(d).filter(([,a])=>void 0!==a));for(let[d,f]of(c.items=c.items.filter(a=>{let b=im(a.key);return void 0===b||e.has(b)}),e)){let e=c.items.find(a=>im(a.key)===d);e?e.value=a(b,e.value,f):c.set(b.createNode(d),b.createNode(f))}return c}if((0,aM.oP)(c)&&Array.isArray(d)){let e=[...c.items],f=new Map;for(let a of e){let b=function(a){if(!(0,aM.jh)(a))return;let b=a.get("id");return"string"==typeof b?b:void 0}(a);void 0===b||f.has(b)||f.set(b,a)}return c.items=d.map((c,d)=>{let g,h=il(c)&&"string"==typeof c.id?c.id:void 0;return void 0!==h?void 0!==(g=f.get(h))&&f.delete(h):g=e[d],a(b,g,c)}),c}if((0,aM.jn)(c)&&!il(d)&&!Array.isArray(d)&&typeof c.value==typeof d)return c.value=d,c;let e=b.createNode(d);return c&&e&&"object"==typeof c&&"object"==typeof e&&(null!=c.comment&&(e.comment=c.comment),null!=c.commentBefore&&(e.commentBefore=c.commentBefore),c.spaceBefore&&(e.spaceBefore=c.spaceBefore)),e}(c,c.contents,a):c.contents=c.createNode(a),c.toString())}function ip(a){let b=(0,R.pA)();if(!(0,ak.existsSync)(b))return;let c=(0,aM.Tp)((0,ak.readFileSync)(b,"utf8"));if(c.errors.length>0)throw Error(`${b} is not valid YAML: ${c.errors[0].message}`);if(!(0,aM.jh)(c.contents))throw Error(`${b} must contain a YAML mapping`);let d=c.toJS(),e=(0,S.u4)(d)&&Array.isArray(d.disabledProviders)?d.disabledProviders.filter(a=>"string"==typeof a):[],f=e.filter(b=>b!==a);f.length!==e.length&&(c.set("disabledProviders",f),aL(b,c.toString()))}var iq=c(52676);let ir=["catalog.get","catalog.search","roles.get","roles.set","registry.get","registry.set","providers.enable","providers.get","providers.update","providers.validate","providers.test","fallback.get","fallback.set","auth.providers","auth.login.start","auth.login.poll","auth.login.confirm","auth.login.cancel","auth.apikey.get","auth.apikey.set","auth.apikey.remove","auth.logout"];class is extends Error{constructor(a,b,c,d){super(b),this.name="ModelsRequestError",this.code=a,void 0!==c&&(this.details=c),void 0!==d&&(this.status=d)}}let it=["--no-session","--no-extensions","--no-skills","--no-lsp"],iu="ompgui cannot manage stored API keys. Run `omp` in a terminal and use /login (or /logout), set the provider's environment variable (e.g. OPENAI_API_KEY), or configure an apiKey on a custom provider in ~/.omp/agent/models.yml.";function iv(a,b="provider"){let c=("string"==typeof a?a:void 0)?.trim();if(!c||c.length>128||/\s/.test(c))throw new is("invalid_provider",`${b} must be a non-empty id without whitespace`);return c}function iw(a){let b=("string"==typeof a?a:void 0)?.trim();if(!b||b.length>320)throw new is("login_token_required","token is required");return b}function ix(a,b){if(void 0===a)return;if(!Array.isArray(a))throw new is("invalid_args",`${b} must contain non-empty strings`);let c=[];for(let d of a){if("string"!=typeof d||!d.trim())throw new is("invalid_args",`${b} must contain non-empty strings`);c.push(d)}return c}function iy(a){try{return Buffer.byteLength(JSON.stringify(a),"utf8")}catch{throw new is("invalid_args","config must be JSON-serializable")}}function iz(a){return a instanceof h9?new is(h8,"Invalid models configuration",{issues:a.issues}):new is(h8,"Invalid models configuration")}let iA=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function iB(a){return a.reasoning?["off",...a.thinking?.efforts??[]]:["off"]}function iC(a){return"object"==typeof a&&null!==a&&"id"in a&&"string"==typeof a.id&&"provider"in a&&"string"==typeof a.provider}function iD(a){return"object"==typeof a&&null!==a&&"id"in a&&"string"==typeof a.id&&"name"in a&&"string"==typeof a.name&&"authenticated"in a&&"boolean"==typeof a.authenticated}function iE(a){let b="name"in a&&"string"==typeof a.name&&a.name.trim().length>0?a.name:a.id,c={id:a.id,provider:a.provider,name:b};if("reasoning"in a&&"boolean"==typeof a.reasoning&&(c.reasoning=a.reasoning),"thinking"in a){let b=a.thinking;if("object"==typeof b&&null!==b&&!Array.isArray(b)){let a="efforts"in b&&Array.isArray(b.efforts)&&b.efforts.every(a=>"string"==typeof a)?b.efforts:void 0;void 0!==a&&(c.thinking={efforts:a})}}return"contextWindow"in a&&"number"==typeof a.contextWindow&&(c.contextWindow=a.contextWindow),c}async function iF(){let a,b;try{let b=await (0,iq.runUtilityCommand)({type:"get_available_models"},12e4);a=Array.isArray(b.models)?b.models.filter(iC).map(iE):[]}catch{return{models:[],defaultModel:null,connectedProviders:[],unavailable:!0}}let c=[];try{let a=await (0,iq.runUtilityCommand)({type:"get_login_providers"},3e4);c=Array.isArray(a.providers)?a.providers.filter(iD).map(a=>({id:a.id,name:a.name,available:!("available"in a)||"boolean"!=typeof a.available||a.available,authenticated:a.authenticated})):[]}catch{c=[]}try{b=function(){let a=(0,R.pA)();if(!(0,ak.existsSync)(a))return new Set;let b=(0,aM.Tp)((0,ak.readFileSync)(a,"utf8"));if(b.errors.length>0)throw Error(`${a} is not valid YAML: ${b.errors[0].message}`);let c=b.toJS();return(0,S.u4)(c)&&Array.isArray(c.disabledProviders)?new Set(c.disabledProviders.filter(a=>"string"==typeof a)):new Set}()}catch{b=new Set}let d={};for(let b of a)d[`${b.provider}:${b.id}`]=iB(b);let e=a.map(a=>({id:a.id,name:a.name,provider:a.provider,thinkingLevels:iB(a),supportsFastMode:"anthropic"===a.provider||"openai"===a.provider||"google"===a.provider,..."number"==typeof a.contextWindow&&Number.isFinite(a.contextWindow)&&a.contextWindow>0?{contextWindow:a.contextWindow}:{}})).sort((a,b)=>iA.compare(a.name||a.id,b.name||b.id)||iA.compare(a.provider,b.provider)||iA.compare(a.id,b.id)),f=c.filter(a=>a.authenticated).map(a=>({id:a.id,name:a.name,disabled:b.has(a.id)})),g=null;try{let b=await (0,iq.runUtilityCommand)({type:"get_state"},3e4),c=b.model?.provider,d=b.model?.id;c&&d&&a.some(a=>a.provider===c&&a.id===d)&&(g={provider:c,modelId:d})}catch{}return{models:e,defaultModel:g,thinkingLevels:d,connectedProviders:f}}function iG(a){let b={};return void 0!==a.enabledModels&&(b.enabledModels=a.enabledModels),void 0!==a.disabledProviders&&(b.disabledProviders=a.disabledProviders),void 0!==a.modelProviderOrder&&(b.modelProviderOrder=a.modelProviderOrder),void 0!==a.registryHasScopedEntries&&(b.registryHasScopedEntries=a.registryHasScopedEntries),b}async function iH(a){let b={},c=ix(a.enabledModels,"enabledModels"),d=ix(a.disabledProviders,"disabledProviders"),e=ix(a.modelProviderOrder,"modelProviderOrder");if(void 0!==c&&(b.enabledModels=c),void 0!==d&&(b.disabledProviders=d),void 0!==e&&(b.modelProviderOrder=e),void 0===b.enabledModels&&void 0===b.disabledProviders&&void 0===b.modelProviderOrder)throw new is("invalid_args","registry.set requires at least one of enabledModels, disabledProviders, modelProviderOrder");if(void 0!==c&&c.length>0)try{let a=await (0,iq.runUtilityCommand)({type:"get_available_models"},12e4);Array.isArray(a.models)&&h7(c,a.models.filter(iC))}catch(a){if(a instanceof Error&&a.message.startsWith("Ambiguous enabledModels entry"))throw a}try{let a=a5(),c=a3(a.settings,b);a6(c)}catch(a){throw new is("registry_write_failed",a instanceof Error?a.message:String(a))}aJ(),(0,iq.j)();let f=a5();return{settings:iG(f.settings),path:f.path}}function iI(a){let b=a.config;if(!("object"==typeof b&&null!==b&&!Array.isArray(b)))throw new is(h8,"Invalid models configuration",{issues:[{path:"",message:"must be an object"}]});return b}async function iJ(a){let b=("string"==typeof a.providerName?a.providerName:void 0)?.trim();if(!b)throw new is("invalid_args","providerName is required");if("object"!=typeof a.provider||null===a.provider||Array.isArray(a.provider))throw new is("invalid_args","provider is required");if("object"!=typeof a.model||null===a.model||Array.isArray(a.model))throw new is("invalid_args","model is required");if(!("id"in a.model))throw new is("invalid_args","model.id is required");let c=("string"==typeof a.model.id?a.model.id:void 0)?.trim();if(!c)throw new is("invalid_args","model.id is required");let d={providers:{[b]:{...a.provider,models:[{...a.model,id:c}]}}};try{id(d)}catch(a){throw iz(a)}let e=(0,ak.mkdtempSync)((0,am.join)((0,aI.tmpdir)(),"ompgui-model-test-"));try{(0,ak.writeFileSync)((0,am.join)(e,"models.yml"),io(d),"utf8");let a=Date.now(),{models:f}=await (0,iq._)({type:"get_available_models"},{env:{PI_CODING_AGENT_DIR:e,OMP_PROFILE:"",PI_PROFILE:"",XDG_DATA_HOME:""},timeoutMs:6e4}),g=Date.now()-a,h=Array.isArray(f)?f.find(a=>a.provider===b&&a.id===c):void 0;if(!h)throw new is("model_test_unresolved",`Model ${b}/${c} did not resolve — check the API key and provider config`,{latencyMs:g});return{ok:!0,latencyMs:g,responseText:`${h.provider}/${h.id} resolved (configuration only; credentials were not contacted)`}}catch(a){if(a instanceof is)throw a;throw new is("model_test_failed",a instanceof Error?a.message:String(a))}finally{(0,ak.rmSync)(e,{recursive:!0,force:!0})}}function iK(a){let b=a.retry??{},c={chains:b.fallbackChains??{}};return void 0!==b.enabled&&(c.enabled=b.enabled),void 0!==b.maxRetries&&(c.maxRetries=b.maxRetries),void 0!==b.modelFallback&&(c.modelFallback=b.modelFallback),void 0!==b.fallbackRevertPolicy&&(c.revertPolicy=b.fallbackRevertPolicy),c}async function iL(){try{let a=await (0,iq.runUtilityCommand)({type:"get_login_providers"},3e4);return{providers:(Array.isArray(a.providers)?a.providers.filter(iD).filter(a=>!("available"in a)||!1!==a.available):[]).map(a=>({id:a.id,name:a.name,loggedIn:a.authenticated}))}}catch(a){throw new is("auth_failed",a instanceof Error?a.message:String(a))}}async function iM(a){let b=iv(a);try{let{models:a}=await (0,iq.runUtilityCommand)({type:"get_available_models"},12e4),{providers:c}=await (0,iq.runUtilityCommand)({type:"get_login_providers"},3e4),d=c.find(a=>a.id===b),e=a.filter(a=>a.provider===b).length;return{provider:b,displayName:d?.name??b,configured:e>0||d?.authenticated===!0,models:e}}catch(a){throw new is("auth_failed",a instanceof Error?a.message:String(a))}}let iN=new Map;function iO(){let a=Date.now();for(let[b,c]of iN)if(a-c.createdAt>9e5){try{c.proc?.dispose()}catch{}iN.delete(b)}}async function iP(a,b){let c=b.proc;if(!c){b.phase="error",b.error="Login process is unavailable";return}try{let a=await c.waitReady(6e4);await c.negotiateProtocol(a),await c.sendCommand({type:"login",providerId:b.provider},9e5),ip(b.provider),aJ(),(0,iq.j)(),b.phase="success"}catch(a){b.phase="error",b.error=a instanceof Error?a.message:String(a)}finally{try{await c.dispose()}catch{}b.proc=null,b.pendingInputId=null}}function iQ(a){let b=a?.deviceId;if("string"!=typeof b||!b)throw new is("unauthorized","device is required");return b}function iR(a,b,c){iO();let d=iN.get(a);if(!d)throw new is("login_no_pending","No pending login for token");if(d.provider!==b)throw new is("login_token_mismatch","Token does not match provider");if(d.deviceId!==c)throw new is("login_device_mismatch","Login belongs to another device");return d}async function iS(a,b){let c=iv(a.provider),d=iw(a.token),e=iR(d,c,iQ(b));iN.delete(d);try{await e.proc?.dispose()}catch{}return{cancelled:!0,provider:c}}async function iT(a,b){iN.delete(b);try{await a.proc?.dispose()}catch{}}async function iU(a){let b=0;for(let[c,d]of[...iN])d.deviceId===a&&(await iT(d,c),b+=1);return b}async function iV(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new is("invalid_args","args must be an object");if("object"!=typeof c||null===c)throw new is("unauthorized","device is required");switch(function(a){for(let b of ir)if(b===a)return b;throw new is("unknown_action",`Unknown models action "${a}"`)}(a)){case"catalog.get":return iF();case"catalog.search":try{return{...await h4({query:b.query,provider:b.provider,baseUrl:b.baseUrl,limit:b.limit})}}catch(a){if(a instanceof h1)throw new is(a.code,a.message,void 0,a.status);throw new is("catalog_unavailable","The public model catalog is unavailable. Try again later.",void 0,502)}case"roles.get":try{let a=function(){let a=(0,R.pA)();if(!(0,ak.existsSync)(a))return{path:a,roles:{}};let b=(0,aM.Tp)((0,ak.readFileSync)(a,"utf8"));if(b.errors.length>0)throw Error(`${a} is not valid YAML: ${b.errors[0].message}`);let c=b.toJS();return(0,S.u4)(c)&&(0,S.u4)(c.modelRoles)?{path:a,roles:Object.fromEntries(Object.entries(c.modelRoles).filter(a=>"string"==typeof a[1]))}:{path:a,roles:{}}}();return{path:a.path,roles:a.roles}}catch(a){throw new is("roles_read_failed",a instanceof Error?a.message:String(a))}case"roles.set":return function(a){if("object"!=typeof a.roles||null===a.roles||Array.isArray(a.roles))throw new is("invalid_args","roles must be an object");let b={};for(let[c,d]of Object.entries(a.roles)){if("string"!=typeof d)continue;let a=c.trim(),e=d.trim();0===a.length||a.length>128||0===e.length||e.length>512||(b[a]=e)}try{let a=(0,R.pA)(),c=(0,ak.existsSync)(a)?(0,ak.readFileSync)(a,"utf8"):"",d=(0,aM.Tp)(c);if(d.errors.length>0)throw Error(`${a} is not valid YAML: ${d.errors[0].message}`);if((0,ak.mkdirSync)((0,am.dirname)(a),{recursive:!0}),null===d.contents)aL(a,(0,aM.As)({modelRoles:b}));else{if(!(0,aM.jh)(d.contents))throw Error(`${a} must contain a YAML mapping`);d.set("modelRoles",b),aL(a,d.toString())}}catch(a){throw new is("roles_write_failed",a instanceof Error?a.message:String(a))}return aJ(),{roles:b}}(b);case"registry.get":try{let a=a5();return{path:a.path,settings:iG(a.settings)}}catch(a){throw new is("registry_read_failed",a instanceof Error?a.message:String(a))}case"registry.set":return iH(b);case"providers.enable":{let a=iv(b.provider);try{ip(a)}catch(a){throw new is("provider_enable_failed",a instanceof Error?a.message:String(a))}return aJ(),(0,iq.j)(),{provider:a}}case"providers.get":let d;return(d=ik()).parseError?{providers:{},parseError:"models.yml contains invalid YAML; fix it by hand and reload",path:d.path,exists:d.exists,code:"models_config_unparseable"}:{...function(a){let b={...a,providers:{}};for(let[c,d]of Object.entries(a.providers??{})){if(!(0,S.u4)(d)){b.providers[c]=d;continue}let a={...d},e="string"==typeof d.apiKey&&d.apiKey.length>0,f=(0,S.u4)(d.headers)&&Object.keys(d.headers).length>0;delete a.apiKey,delete a.headers,a.originalName=c,Array.isArray(d.models)&&(a.models=d.models.map(a=>{if(!(0,S.u4)(a))return a;let b={...a};return delete b.headers,"string"==typeof a.id?b.originalId=a.id:delete b.originalId,b})),a.apiKeyConfigured=e,a.headersConfigured=f,b.providers[c]=a}return b}(d.config),path:d.path,exists:d.exists};case"providers.update":return function(a){let b,c=iI(a);if(iy(c)>524288)throw new is("config_too_large","models configuration exceeds 512KiB");let d=void 0===a.mode||"partial"===a.mode?"partial":"full"===a.mode?"full":null;if(null===d)throw new is("invalid_args","mode must be full or partial");let e=void 0!==a.overwrite&&!0===a.overwrite;if(void 0!==a.overwrite&&"boolean"!=typeof a.overwrite)throw new is("invalid_args","overwrite must be a boolean");let f=ik();try{b=function(a,b,c){if("full"!==c&&"partial"!==c)throw new h9([{path:"mode",message:"must be full or partial"}]);let d="full"===c?{...b,providers:{}}:{...a,...b,providers:{}},e=(0,S.u4)(a.providers)?a.providers:{},f=ie(b,"providers"),g=f?b.providers:void 0;if(f&&!(0,S.u4)(g))return d.providers=g,d;if(!f&&"partial"===c)return d.providers=Object.fromEntries(Object.entries(e).map(([a,b])=>[a,ih(b)])),(0,S.u4)(a.providers)||(d.providers=a.providers),d;let h=(0,S.u4)(g)?Object.entries(g):[],i=[],j=[],k=new Map;for(let[a,b]of h){let d,f=`providers.${a}`;if((0,S.u4)(b)&&ie(b,"originalName")){let a=b.originalName;"string"!=typeof a?ia(i,`${f}.originalName`,"must be a string identifying an existing provider"):ie(e,a)?d=a:ia(i,`${f}.originalName`,"must identify a provider in the current configuration")}else ie(e,a)&&(d=a);if(void 0!==d){let b=k.get(d);void 0!==b?ia(i,`${f}.originalName`,`duplicates the provider identity used by providers.${b}`):k.set(d,a),"partial"===c&&d!==a&&ie(e,a)&&ia(i,f,"rename conflicts with an existing provider; choose an unused name")}j.push({targetName:a,incoming:b,sourceName:d,previous:void 0!==d&&(0,S.u4)(e[d])?e[d]:void 0})}let l="partial"===c?Object.fromEntries(Object.entries(e).map(([a,b])=>[a,ih(b)])):{};for(let{targetName:a,incoming:b,sourceName:d,previous:e}of j){if(!(0,S.u4)(b)){"partial"===c&&void 0!==d&&d!==a&&delete l[d],l[a]=b;continue}"partial"===c&&void 0!==d&&d!==a&&delete l[d];let f=e?ih(e):{},g={..."partial"===c?f:{},...b};ie(b,"apiKey")&&void 0!==b.apiKey?null===b.apiKey?delete g.apiKey:g.apiKey=b.apiKey:e&&ie(e,"apiKey")?g.apiKey=e.apiKey:delete g.apiKey,ie(b,"headers")&&void 0!==b.headers?null===b.headers?delete g.headers:g.headers=b.headers:e&&ie(e,"headers")?g.headers=e.headers:delete g.headers,Array.isArray(b.models)?g.models=function(a,b,c,d,e){let f=Array.isArray(a)?a:[],g=new Map,h=new Set;for(let a of f)(0,S.u4)(a)&&"string"==typeof a.id&&(h.has(a.id)||(g.has(a.id)?(g.delete(a.id),h.add(a.id)):g.set(a.id,a)));let i=new Map,j=new Map;return b.map((a,b)=>{let f,k=`${d}[${b}]`;if(!(0,S.u4)(a))return a;if(ie(a,"originalId")){let b=a.originalId;"string"!=typeof b?ia(e,`${k}.originalId`,"must be a string identifying an existing model"):h.has(b)?ia(e,`${k}.originalId`,"must identify exactly one existing model"):g.has(b)?f=b:ia(e,`${k}.originalId`,"must identify an existing model in the current configuration")}else"string"==typeof a.id&&(h.has(a.id)?ia(e,`${k}.id`,"matches multiple existing models; supply originalId"):g.has(a.id)&&(f=a.id));let l=void 0===f?void 0:g.get(f);if(void 0!==f){let c=i.get(f);void 0!==c?ia(e,ie(a,"originalId")?`${k}.originalId`:`${k}.id`,`duplicates the existing model identified at index ${c}`):i.set(f,b)}let m={..."partial"===c&&l?ig(l):{},...a};if(delete m.originalId,ie(a,"headers")&&void 0!==a.headers?null===a.headers?delete m.headers:m.headers=a.headers:l&&ie(l,"headers")?m.headers=l.headers:void 0===m.headers&&delete m.headers,"string"==typeof m.id){let a=j.get(m.id);void 0!==a?ia(e,`${k}.id`,`duplicates the model id at index ${a}`):j.set(m.id,b)}return m})}(e?.models,b.models,c,`providers.${a}.models`,i):"full"!==c||ie(b,"models")&&void 0!==b.models?"partial"===c&&ie(b,"models")&&void 0===b.models&&(e&&ie(e,"models")?g.models=f.models:delete g.models):delete g.models,l[a]=ih(g)}if(i.length>0)throw new h9(i);return d.providers=l,d}(f.config,c,d),id(b)}catch(a){throw iz(a)}try{!function(a,b={}){let c=ik();if(c.parseError&&!b.overwriteUnparseable)throw new ii(c.path,c.parseError);let d=io(ij(a),c.parseError?void 0:c.source),e=(0,am.dirname)(c.path);(0,ak.existsSync)(e)||(0,ak.mkdirSync)(e,{recursive:!0}),aL(c.path,d)}(b,{overwriteUnparseable:e})}catch(a){if(a instanceof ii)throw new is("models_config_unparseable","models.yml is not valid YAML — fix it by hand; ompgui will not overwrite it");throw new is("models_config_write_failed",a instanceof Error?a.message:String(a))}return aJ(),(0,iq.j)(),{success:!0,path:f.path}}(b);case"providers.validate":let e=iI(b);if(iy(e)>524288)throw new is("config_too_large","models configuration exceeds 512KiB");try{id(e)}catch(a){throw iz(a)}return{ok:!0};case"providers.test":return iJ(b);case"fallback.get":try{let a=a5();return iK(a.settings)}catch(a){throw new is("fallback_read_failed",a instanceof Error?a.message:String(a))}case"fallback.set":return function(a){let b={},c=!1;if(void 0!==a.chains){if("object"!=typeof a.chains||null===a.chains||Array.isArray(a.chains))throw new is("invalid_args","chains must be an object");let d={};for(let[b,c]of Object.entries(a.chains)){if(!b.trim()||!Array.isArray(c)||c.some(a=>"string"!=typeof a||!a.trim()))throw new is("invalid_args","fallback chains require non-empty role and model selectors");let a=[];for(let b of c)"string"==typeof b&&a.push(b);d[b]=a}b.fallbackChains=d,c=!0}if(void 0!==a.enabled){if("boolean"!=typeof a.enabled)throw new is("invalid_args","enabled must be a boolean");b.enabled=a.enabled,c=!0}if(void 0!==a.maxRetries){if("number"!=typeof a.maxRetries||!Number.isInteger(a.maxRetries)||a.maxRetries<0||a.maxRetries>20)throw new is("invalid_args","maxRetries must be an integer between 0 and 20");b.maxRetries=a.maxRetries,c=!0}if(void 0!==a.modelFallback){if("boolean"!=typeof a.modelFallback)throw new is("invalid_args","modelFallback must be a boolean");b.modelFallback=a.modelFallback,c=!0}if(void 0!==a.revertPolicy){if("cooldown-expiry"!==a.revertPolicy&&"never"!==a.revertPolicy)throw new is("invalid_args","revertPolicy must be cooldown-expiry or never");b.fallbackRevertPolicy=a.revertPolicy,c=!0}if(!c)throw new is("invalid_args","fallback.set requires at least one of chains, enabled, maxRetries, modelFallback, revertPolicy");try{let a=a5(),c=a3(a.settings,{retry:b});return a6(c),{retry:iK(c)}}catch(a){if(a instanceof is)throw a;throw new is("fallback_write_failed",a instanceof Error?a.message:String(a))}}(b);case"auth.providers":return iL();case"auth.login.start":return function(a,b){let c=iv(a),d=iQ(b);if(iO(),iN.size>=32)throw new is("auth_busy","Too many pending logins; cancel one and retry");let e=`${c}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,f={provider:c,deviceId:d,proc:null,createdAt:Date.now(),phase:"waiting",pendingInputId:null,bufferedValue:null};try{let a=new az.X({cwd:(0,aI.homedir)(),extraArgs:it,onFrame:a=>{if("extension_ui_request"!==a.type)return;let b=a.method;if("open_url"===b)f.phase="auth",f.url=String(a.url??""),f.instructions="string"==typeof a.instructions?a.instructions:null;else if("input"===b){let b=String(a.id);if(null!==f.bufferedValue){let a=f.bufferedValue;f.bufferedValue=null,f.proc?.sendFrame({type:"extension_ui_response",id:b,value:a})}else f.pendingInputId=b,f.phase="prompt",f.message="string"==typeof a.title&&a.title?a.title:"Enter the authorization code",f.placeholder="string"==typeof a.placeholder?a.placeholder:null}else"notify"===b?("string"==typeof a.message&&(f.message=a.message),"waiting"===f.phase&&(f.phase="progress")):"cancel"===b&&null!==f.pendingInputId&&a.targetId===f.pendingInputId&&(f.pendingInputId=null,"prompt"===f.phase&&(f.phase=f.url?"auth":"waiting"))}});f.proc=a}catch(a){throw new is("auth_failed",a instanceof Error?a.message:String(a))}return iN.set(e,f),iP(e,f),{provider:c,token:e}}(b.provider,c);case"auth.login.poll":let f,g,h,i;return f=iv(b.provider),h=iR(g=iw(b.token),f,iQ(c)),i={provider:h.provider,phase:h.phase,token:g},void 0!==h.url&&(i.url=h.url),void 0!==h.instructions&&null!==h.instructions&&(i.instructions=h.instructions),void 0!==h.message&&(i.message=h.message),void 0!==h.placeholder&&null!==h.placeholder&&(i.placeholder=h.placeholder),void 0!==h.error&&(i.error=h.error),i;case"auth.login.confirm":let j=iv(b.provider),k=iR(iw(b.token),j,iQ(c));if("success"===k.phase||"error"===k.phase||"cancelled"===k.phase)throw new is("login_not_pending","Login is no longer pending");let l="string"==typeof b.code?b.code:void 0;if(!l||!l.trim()||l.length>4096)throw new is("login_code_required","code is required");if(null!==k.pendingInputId&&k.proc){let a=k.pendingInputId;return k.pendingInputId=null,k.proc.sendFrame({type:"extension_ui_response",id:a,value:l}),{ok:!0,buffered:!1}}return k.bufferedValue=l,{ok:!0,buffered:!0};case"auth.login.cancel":return iS(b,c);case"auth.apikey.get":return iM(b.provider);case"auth.apikey.set":throw new is("api_key_store_unsupported",`Cannot store an API key for "${iv(b.provider)}" from ompgui. ${iu}`,void 0,501);case"auth.apikey.remove":throw new is("api_key_remove_unsupported",`Cannot remove the API key for "${iv(b.provider)}" from ompgui. ${iu}`,void 0,501);case"auth.logout":throw new is("logout_unsupported",`ompgui cannot disconnect "${iv(b.provider)}": omp exposes no logout command outside its own UI. ompgui cannot disconnect this provider: omp exposes no logout command outside its own UI. Run \`omp\` in a terminal and use /logout to remove the credential.`,void 0,501)}}let iW=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,iX=/\x1B_pi:c\x07/g;function iY(a){return a.replace(iX,"").replace(iW,"")}let iZ=/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/,i$=[(0,am.join)(".omp","mcp.json"),(0,am.join)(".omp",".mcp.json"),"mcp.json",".mcp.json"];function i_(a){if(!(0,ak.existsSync)(a))return{path:a,servers:[],disabledServers:[]};try{if((0,ak.statSync)(a).size>5242880)throw Error("configuration is too large to inspect");let b=JSON.parse((0,ak.readFileSync)(a,"utf8"));if(!(0,S.u4)(b))throw Error("configuration must contain a JSON object");if(void 0!==b.mcpServers&&!(0,S.u4)(b.mcpServers))throw Error("mcpServers must be an object");return{path:a,servers:Object.entries(b.mcpServers??{}).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({name:a,config:b})),disabledServers:Array.isArray(b.disabledServers)?b.disabledServers.filter(a=>"string"==typeof a).sort((a,b)=>a.localeCompare(b)):[]}}catch(b){return{path:a,servers:[],disabledServers:[],error:b instanceof Error?b.message:String(b)}}}function i0(a){let b=new Set([(0,am.join)(a,".claude.json"),(0,am.join)(a,"mcp.json"),(0,am.join)(a,".mcp.json")]);try{for(let c of(0,ak.readdirSync)(a,{withFileTypes:!0})){if(!c.isDirectory()||!c.name.startsWith("."))continue;let d=(0,am.join)(a,c.name);b.add((0,am.join)(d,"mcp.json")),b.add((0,am.join)(d,"config.json")),b.add((0,am.join)(d,"config.toml"))}}catch{}return[...b].filter(b=>{try{return(0,ak.existsSync)(b)&&ap((0,ak.realpathSync)(b),new Set([(0,ak.realpathSync)(a)]))}catch{return!1}})}function i1(a,b){if(!(0,S.u4)(a)||Object.values(a).some(a=>"string"!=typeof a))throw Error(`${b} must map strings to strings`)}function i2(a){let b=(0,ak.realpathSync)(function(a){try{return(0,am.resolve)((0,bZ.execFileSync)("git",["-C",a,"rev-parse","--show-toplevel"],{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim())}catch{return(0,am.resolve)(a)}}(a)),c=new Set([b]);if(!ap((0,ak.realpathSync)(a),c))throw Error("Project root does not contain workspace");let d=i$.map(a=>(0,am.join)(b,a)),e=aq(d.find(ak.existsSync)??d[0]);if(!ap(e,c))throw Error("Access denied to MCP configuration outside project root");return{root:b,path:e}}function i3(a){let b,c=i2(a);if(!(0,ak.existsSync)(c.path))return{...c,config:{mcpServers:{}},exists:!1};if((0,ak.statSync)(c.path).size>524288)throw Error("MCP configuration is too large to edit in ompgui");try{b=JSON.parse((0,ak.readFileSync)(c.path,"utf8"))}catch{throw Error(`${c.path} is not valid JSON`)}if(!(0,S.u4)(b))throw Error(`${c.path} must contain a JSON object`);if(void 0!==b.mcpServers&&!(0,S.u4)(b.mcpServers))throw Error("mcpServers must be an object");return{...c,config:b,exists:!0}}function i4(a,b){if("string"!=typeof a||!iZ.test(a))throw Error("Server name may contain letters, numbers, dots, dashes, and underscores");if(!(0,S.u4)(b))throw Error("Server configuration must be an object");let c=b.type;if(void 0!==c&&"stdio"!==c&&"http"!==c&&"sse"!==c)throw Error("Server type must be stdio, http, or sse");let d="string"==typeof b.command&&b.command.trim().length>0,e="string"==typeof b.url&&b.url.trim().length>0;if(d===e)throw Error("Provide exactly one of command or url");if((void 0===c||"stdio"===c)&&!d)throw Error("A stdio server requires a command");if(("http"===c||"sse"===c)&&!e)throw Error("An HTTP or SSE server requires a URL");if(e)try{let a=new URL(b.url);if("http:"!==a.protocol&&"https:"!==a.protocol)throw Error()}catch{throw Error("Server URL must be an http or https URL")}if(void 0!==b.args&&(!Array.isArray(b.args)||b.args.some(a=>"string"!=typeof a)))throw Error("args must be an array of strings");if(void 0!==b.env&&i1(b.env,"env"),void 0!==b.headers&&i1(b.headers,"headers"),void 0!==b.cwd&&"string"!=typeof b.cwd)throw Error("cwd must be a string");if(void 0!==b.enabled&&"boolean"!=typeof b.enabled)throw Error("enabled must be a boolean");if(void 0!==b.timeout&&(!Number.isInteger(b.timeout)||b.timeout<0||b.timeout>6e5))throw Error("timeout must be an integer between 0 and 600000");if(void 0!==b.requestIdFormat&&"number"!==b.requestIdFormat&&"string"!==b.requestIdFormat)throw Error("requestIdFormat must be number or string")}function i5(a,b){let c=`${a}.lock`,d=Date.now()+3e3;for((0,ak.mkdirSync)((0,am.dirname)(c),{recursive:!0});;){let a=null;try{a=(0,ak.openSync)(c,"wx")}catch(a){if("EEXIST"!==a.code)throw a;try{if(Date.now()-(0,ak.statSync)(c).mtimeMs>1e4){(0,ak.unlinkSync)(c);continue}}catch{continue}if(Date.now()>=d)throw Error(`Timed out waiting for ${c} (another process holds the MCP config lock)`);!function(){let a=new SharedArrayBuffer(4);Atomics.wait(new Int32Array(a),0,0,25)}();continue}try{try{(0,ak.writeSync)(a,String(process.pid))}finally{(0,ak.closeSync)(a)}return b()}finally{try{(0,ak.unlinkSync)(c)}catch{}}}}var i6=c(19771);let i7=(0,b$.promisify)(bZ.execFile);async function i8(a,b={}){let c=function(){let a=(0,am.dirname)(i6.execPath);for(let b of[(0,am.join)(a,"node_modules","npm","bin","npx-cli.js"),(0,am.join)(a,"..","lib","node_modules","npm","bin","npx-cli.js")])try{if((0,ak.existsSync)(b))return b}catch{}return null}(),{command:d,commandArgs:e}=c?{command:i6.execPath,commandArgs:[c,...a]}:{command:"npx",commandArgs:a};return i7(d,e,{timeout:b.timeout,cwd:b.cwd,env:b.env})}function i9(a){return"string"==typeof a&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)}let ja={task:{description:"General-purpose subagent with full capabilities for delegated multi-step tasks",model:"@task",thinkingLevel:"auto",spawns:["*"],tools:["read","write","edit","bash"],systemPrompt:"General-purpose coding agent with full capabilities. Implement requested changes carefully and verify them before finishing."},scout:{description:"MUST be used for exploratory codebase research, rapid code analysis, and broad pattern searches. Fast read-only scout returning compressed context for handoff.",model:"@smol",thinkingLevel:"medium",tools:["read","grep","glob","web_search"],systemPrompt:"Explore the codebase and return concise, evidence-backed findings. Do not modify files."},reviewer:{description:"Code review specialist for quality/security analysis",model:"@slow",spawns:["scout"],tools:["read","grep","glob","bash","lsp","web_search","ast_grep"],systemPrompt:"Review code for correctness, security, maintainability, and regressions with concrete findings."},"security-reviewer":{description:"Read-only security specialist for evidence-backed repository vulnerability discovery",model:"@slow",tools:["read","grep","glob","lsp","ast_grep"],systemPrompt:"Discover potential security vulnerabilities and return concrete evidence and remediation guidance."},librarian:{description:"Researches external libraries and APIs by reading source code. Returns definitive, source-verified answers.",model:"@smol",thinkingLevel:"minimal",tools:["read","grep","glob","bash","lsp","web_search","ast_grep"],systemPrompt:"Research library APIs and source documentation; provide definitive, source-verified answers."},designer:{description:"UI/UX specialist for design implementation, review, visual refinement",model:"@designer",tools:["read","write","edit"],systemPrompt:"Design and implement polished, accessible user interfaces following project conventions."},sonic:{description:"Low-reasoning agent for strictly mechanical updates or data collection only",model:"@smol",thinkingLevel:"medium",tools:["read","write","edit"],systemPrompt:"Perform strictly mechanical updates and data collection accurately with minimal overhead."}};function jb(a,b,c){let d=a.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/),e=d?d[1]:"",f=d?a.slice(d[0].length):a,g=(0,aM.Tp)(e);if(g.errors.length>0)throw Error(`YAML parse error in ${b}: ${g.errors[0].message}`);let h=g.toJS(),i=h&&"object"==typeof h&&!Array.isArray(h)?h:{},j=String(i.name||an().basename(b,".md"));if(!i9(j))throw Error(`Invalid agent identifier "${j}" in ${b}`);return{...i,name:j,description:String(i.description||""),tools:Array.isArray(i.tools)?i.tools.map(String):void 0,model:"string"==typeof i.model||Array.isArray(i.model)?i.model:void 0,prewalk:"boolean"==typeof i.prewalk||"string"==typeof i.prewalk?i.prewalk:void 0,advisor:"boolean"==typeof i.advisor||"string"==typeof i.advisor?i.advisor:void 0,thinkingLevel:"string"==typeof i.thinkingLevel?i.thinkingLevel:void 0,blocking:"boolean"==typeof i.blocking?i.blocking:void 0,systemPrompt:String(i.systemPrompt??f.trim()),source:c,filePath:b,isShadowed:!1}}async function jc(a,b,c){try{let d=await ak.promises.readdir(a,{withFileTypes:!0}),e=[];for(let f of d)if(f.isFile()&&f.name.endsWith(".md")){let d=an().join(a,f.name);try{let a=await ak.promises.readFile(d,"utf8");e.push(jb(a,d,b))}catch(a){c.push({path:d,error:a instanceof Error?a.message:String(a)})}}return e}catch(b){return"ENOENT"!==(b&&"object"==typeof b&&"code"in b?b.code:void 0)&&c.push({path:a,error:b instanceof Error?b.message:String(b)}),[]}}function jd(a){let b=an().resolve(a);for(;;){let a=an().join(b,".omp","agents"),c=an().join(b,".omp");if((0,ak.existsSync)(a)||(0,ak.existsSync)(c)){if(!ap(aq(a),new Set([aq(b)])))throw Error(`Access denied to project agents directory: ${a}`);return a}let d=an().dirname(b);if(d===b)return null;b=d}}function je(){return an().join((0,R.$M)(),"agents")}async function jf(a=process.cwd()){let b=[],c=jd(a),d=je(),e=[];for(let a of(c&&e.push({dir:c,source:"project"}),e.push({dir:d,source:"user"}),(process.env.OMP_EXTENSION_DIRS||"").split(an().delimiter).filter(Boolean)))e.push({dir:an().join(a,"agents"),source:"extension"});let f=[];for(let{dir:a,source:c}of e){let d=await jc(a,c,b);f.push(...d)}for(let[a,b]of Object.entries(ja))f.push({name:a,model:b.model,thinkingLevel:b.thinkingLevel,spawns:b.spawns,description:b.description||"",tools:b.tools,systemPrompt:b.systemPrompt||"",source:"bundled",isShadowed:!1});let g=new Set,h=[],i={};try{i=a5().settings.task||{}}catch{}let j=i.agentModelOverrides||{},k=i.agentPrewalk||{},l=i.agentAdvisor||{},m=new Set(Array.isArray(i.disabledAgents)?i.disabledAgents:[]);for(let a of f){let b=!g.has(a.name);g.add(a.name),a.isShadowed=!b,b&&(a.name in j&&(a.overrideModel=j[a.name]),a.name in k&&(a.prewalkOverride=k[a.name]),a.name in l&&(a.advisorOverride=l[a.name]),m.has(a.name)&&(a.disabled=!0),h.push(a))}return{agents:h,projectRoot:c?an().dirname(an().dirname(c)):void 0,...b.length>0?{diagnostics:b}:{}}}async function jg(a){let b,c;if("user"===a.scope)c=aq((0,R.$M)()),b=je();else{let d=a.cwd||process.cwd(),e=await as();if(!at(d,e))throw Error(`Access denied to project path: ${d}`);if(b=jd(d)||an().join(an().resolve(d),".omp","agents"),!at(c=await ak.promises.realpath(an().dirname(an().dirname(b))),e))throw Error(`Access denied to project root: ${c}`)}let d=aq(b);if(!ap(d,new Set([c])))throw Error(`Access denied to agents directory: ${b}`);return d}async function jh(a){if(!i9(a.name))throw Error(`Invalid agent identifier: "${a.name}"`);let b=await jg(a),c=aq(an().join(b,`${a.name}.md`));if(!ap(c,new Set([b])))throw Error(`Access denied to target agent file: ${c}`);return await ak.promises.mkdir(b,{recursive:!0}),c}function ji(a){let b={name:a.name,description:a.description};for(let[c,d]of(a.tools&&a.tools.length>0&&(b.tools=a.tools),void 0!==a.model&&(b.model=a.model),void 0!==a.thinkingLevel&&(b.thinkingLevel=a.thinkingLevel),void 0!==a.prewalk&&(b.prewalk=a.prewalk),void 0!==a.advisor&&(b.advisor=a.advisor),Object.entries(a)))"name"===c||"description"===c||"tools"===c||"model"===c||"thinkingLevel"===c||"prewalk"===c||"advisor"===c||"systemPrompt"===c||["scope","cwd","source","filePath","isShadowed","overrideModel","prewalkOverride","advisorOverride","disabled"].includes(c)||void 0===d||(b[c]=d);let c=(0,aM.As)(b).trim(),d=(a.systemPrompt||"").trim();return`---
|
|
78
|
+
</html>`);if(void 0!==c&&Buffer.byteLength(l,"utf8")>c)throw new gB("preview_too_large","Rendered document is too large for preview",413);try{if(gD((0,O.statSync)(a,{bigint:!0}))!==g)throw new gB("stale_revision","File changed during conversion",409)}catch(a){if(a instanceof gB)throw a;throw new gB("stale_revision","File changed during conversion",409)}return{revision:g,html:l}}let gF=new Set,gG=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store"]),gH=new Set(["auto","minimal","low","medium","high","xhigh","max"]);async function gI(){let a=function(a,b){let c=new Set(a.projects.filter(a=>a.hidden).map(a=>cg(a.path))),d=[],e=new Set;for(let b of a.projects.filter(a=>!a.hidden).sort((a,b)=>b.addedAt.localeCompare(a.addedAt))){let a=cg(b.path);e.has(a)||(e.add(a),d.push({path:b.path,addedAt:b.addedAt}))}let f=[],g=new Set;for(let a of new Set([...b].filter(Boolean).map(cm))){let b=cg(a);c.has(b)||e.has(b)||g.has(b)||(g.add(b),f.push({path:a}))}return f.sort((a,b)=>a.path.localeCompare(b.path)),[...d,...f]}(cn(),(await (0,ar.dQ)()).map(a=>a.projectRoot??a.cwd).filter(a=>!!a));for(let b of a)(0,aj.wz)(b.path);return a.map(a=>({path:a.path,name:(0,P.basename)(a.path)||a.path,...a.addedAt?{addedAt:a.addedAt}:{}}))}async function gJ(a,b=0,c=100){let d,e,f=await as(),g=(a??"").trim(),h=g?(0,P.resolve)(g):[...f][0]??(0,ax.homedir)();if(!at(h,f))throw new bM("access_denied","Path is outside allowed workspaces");try{d=(0,O.statSync)(h)}catch{throw new bM("path_not_found","Path not found")}if(!d.isDirectory())throw new bM("not_a_directory","Path is not a directory");let i=[];try{e=(0,O.readdirSync)(h,{withFileTypes:!0})}catch{throw new bM("access_denied","Could not read directory")}let j=(0,O.realpathSync)(h);for(let a of[...e].sort((a,b)=>a.name.localeCompare(b.name))){if(gG.has(a.name)||a.name.endsWith(".pyc"))continue;let b=(0,P.join)(h,a.name);if(gF.has(b)||gF.has((0,P.join)(j,a.name))||!at(b,f))continue;let c=function(a,b){if(a.isDirectory())return!0;if(a.isFile())return!1;try{return al().statSync(b).isDirectory()}catch{return null}}(a,b);null!==c&&i.push({name:a.name,path:b,dir:c})}let k=gP(b,c);return{path:h,entries:i.slice(k.offset,k.offset+k.limit),total:i.length,...k,hasMore:k.offset+k.limit<i.length}}function gK(){return cq.map(a=>({name:a.name,requiresArgs:a.requiresArgs,hint:a.name}))}async function gL(a){let b;try{b=cp(a.cwd)}catch(a){if(a instanceof ck)throw new bM(a.code,a.message);throw a}if(!(0,O.existsSync)(b))throw new bM("directory_not_found",`Directory does not exist: ${b}`);let c=a.message?.trim()??"";if(c.length>3145728)throw new bM("invalid_command","prompt message is too long");let d=a.thinkingLevel?.trim();if(d&&!gH.has(d))throw new bM("invalid_command","Unknown thinking level");let e=a.provider?.trim(),f=a.modelId?.trim();if(e&&!f||!e&&f)throw new bM("invalid_command","set_model requires provider and modelId");let g=`__new__${(0,L.randomUUID)()}`,{session:h,realSessionId:i}=await bL(g,"",b,a.toolNames,a.advisor??!1);return(0,aj.wz)(b),(0,ar.mD)(),e&&f&&await h.send({type:"set_model",provider:e,modelId:f}),d&&await h.send({type:"set_thinking_level",level:d}),c&&await h.send({type:"prompt",message:c}),{sessionId:i}}let gM={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",mjs:"javascript",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",json:"json",md:"markdown",yml:"yaml",yaml:"yaml",sh:"bash",css:"css",html:"html",txt:"text"};async function gN(a){let b=await as(),c=(0,P.resolve)(a.trim());if(!at(c,b))throw new bM("access_denied","Path is outside allowed workspaces");return c}async function gO(a,b){let c=await as(),d=(0,O.realpathSync)(await gN(a));if(!at(d,c))throw new bM("access_denied","Path is outside allowed workspaces");try{let a=await gE(d,b,8388608);if(!at(d,c))throw new bM("access_denied","Path is outside allowed workspaces");return{path:d,...a,mime:"text/html"}}catch(a){if(a instanceof gB)throw new bM(a.code,a.message);throw a}}function gP(a=0,b=100){if(!Number.isSafeInteger(a)||a<0||!Number.isSafeInteger(b)||b<1||b>100)throw new bM("invalid_args","Invalid pagination (limit must be 1–100)");return{offset:a,limit:b}}function gQ(a){let b=(0,O.statSync)(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}function gR(a){let b=(0,O.openSync)(a,"r");try{let a,c=(0,L.createHash)("sha256"),d=Buffer.allocUnsafe(131072);for(;(a=(0,O.readSync)(b,d,0,d.length,null))>0;)c.update(d.subarray(0,a));return c.digest("hex")}finally{(0,O.closeSync)(b)}}async function gS(a){let b,c=await gN(a),d=(0,O.statSync)(c);if(!d.isFile()&&!d.isDirectory())throw new bM("not_a_file","Unsupported file type");let e=b_[b2(c)]??null,f=b0[b2(c)]??null,g="pdf"===(b=b2(c))||"docx"===b?b:null,h=e?"image":f?"audio":g??"text";if(d.isFile()&&"text"===h){let a=(0,O.openSync)(c,"r");try{let b=Buffer.allocUnsafe(Math.min(d.size,8192)),c=(0,O.readSync)(a,b,0,b.length,0);if(b.subarray(0,c).includes(0))h="binary";else try{new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(b.subarray(0,c),{stream:c<d.size})}catch{h="binary"}}finally{(0,O.closeSync)(a)}}let i=(0,P.basename)(c).toLowerCase().split(".").pop()??"";return{path:c,name:(0,P.basename)(c),size:d.size,mtimeMs:d.mtimeMs,revision:gQ(c),kind:d.isDirectory()?"dir":"file",previewKind:h,mime:d.isDirectory()?"inode/directory":e??f??b1[b2(c)]??null??("binary"===h?"application/octet-stream":({json:"application/json",html:"text/html",css:"text/css",csv:"text/csv",js:"text/javascript",mjs:"text/javascript",xml:"application/xml",md:"text/markdown"})[i]??"text/plain")}}function gT(a,b){let c=Math.min(a.length,b);if(c<a.length)for(;c>0&&(192&a[c])==128;)c--;return a.subarray(0,c)}async function gU(a,b,c,d=98304){let e,f,g=await gS(a);if("file"!==g.kind)throw new bM("not_a_file","Path is not a file");if("text"!==g.previewKind)throw Object.assign(new bM("use_download","Use download for this file"),{details:{meta:g}});if(g.revision!==b)throw new bM("stale_revision","File changed; reload before continuing");if(!Number.isSafeInteger(c)||c<0||c>g.size||!Number.isSafeInteger(d)||d<4||d>98304)throw new bM("invalid_args","Invalid read range");let h=(0,O.openSync)(g.path,"r");try{let a=Buffer.allocUnsafe(Math.min(d+4,g.size-c)),b=(0,O.readSync)(h,a,0,a.length,c);e=gT(a.subarray(0,b),d)}finally{(0,O.closeSync)(h)}try{f=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e)}catch{throw Object.assign(new bM("use_download","File is not UTF-8 text"),{details:{meta:{...g,previewKind:"binary",mime:"application/octet-stream"}}})}let i=c+e.length,j=i===g.size,k=j?gR(g.path):void 0;if(gQ(g.path)!==b)throw new bM("stale_revision","File changed during read");return{text:f,nextOffset:i,complete:j,...k?{contentHash:k}:{}}}async function gV(a){let b=await gS(a),c=await gU(b.path,b.revision,0),d=b.name.toLowerCase().split(".").pop()??"";return{path:b.path,name:b.name,language:gM[d]??"text",revision:b.revision,size:b.size,bytes:b.size,encoding:"utf8",truncated:!c.complete,...c}}async function gW(a){let b=await gN(a),c=await (0,cj.KI)(b),d=[],e=null,f=!0;try{d=await (0,cj.P9)((0,O.existsSync)(b)?b:c.projectRoot),e=(0,cj.xw)(d,b)}catch{f=!1}for(let a of d)(0,aj.wz)(a.path);return{cwd:b,projectRoot:c.projectRoot,isGit:f,currentWorktreePath:e,worktrees:d.map(a=>({path:a.path,branch:a.branch,isMain:a.isMain}))}}async function gX(a,b,c,d,e=!1){let f=await as(),g=(0,P.resolve)(a.trim()),h=(0,P.dirname)(g);if(!at(h,f))throw new bM("access_denied","Path is outside allowed workspaces");let i=(0,O.realpathSync)(h),j=(0,P.join)(i,(0,P.basename)(g)),k=384,l=!1,m=()=>{let a;if((0,O.realpathSync)(h)!==i||!at(h,f))throw new bM("access_denied","Directory changed");try{a=(0,O.lstatSync)(j)}catch(a){if(!(a instanceof Error&&"code"in a&&"ENOENT"===a.code))throw a}if(a){if(!a.isFile()||a.isSymbolicLink())throw new bM("not_a_file","Cannot replace a directory or symbolic link");if(!at(j,f))throw new bM("access_denied","Path is outside allowed workspaces");if(!c||!d)throw new bM("revision_required","Read the complete file before saving");let b=gQ(j);if(b!==c||gR(j)!==d||gQ(j)!==b)throw new bM("stale_revision","File changed; your edits were not written");return k=4095&a.mode,!0}if(c||d||!e)throw new bM("stale_revision","File is missing; explicit creation is required");return!1};l=m();let n=(0,P.join)(i,`.relay-save-${(0,L.randomUUID)()}`),o=(0,O.openSync)(n,O.constants.O_CREAT|O.constants.O_EXCL|O.constants.O_WRONLY,k);try{(0,O.writeFileSync)(o,b,"utf8"),(0,O.chmodSync)(n,k),(0,O.fsyncSync)(o)}catch(a){throw(0,O.unlinkSync)(n),a}finally{(0,O.closeSync)(o)}try{if(m()!==l)throw new bM("stale_revision","File changed before save");l?(0,O.renameSync)(n,j):((0,O.linkSync)(n,j),(0,O.unlinkSync)(n));let a=(0,O.openSync)(i,"r");try{(0,O.fsyncSync)(a)}finally{(0,O.closeSync)(a)}return{path:g,bytes:Buffer.byteLength(b),revision:gQ(j),contentHash:gR(j)}}finally{(0,O.existsSync)(n)&&(0,O.unlinkSync)(n)}}async function gY(a,b=0,c=100){let d=await gN(a),e=await ca(d),f=gP(b,c);return{cwd:d,isGitRepository:e.isGitRepository,repositoryRoot:e.repositoryRoot,total:e.files.length,...f,hasMore:f.offset+f.limit<e.files.length,files:e.files.slice(f.offset,f.offset+f.limit).map(a=>({filePath:(0,P.resolve)(e.repositoryRoot??d,a.filePath),status:a.status,code:a.code}))}}async function gZ(a,b){let c=await gN(a),d=(0,P.resolve)(b);if((0,O.existsSync)(d))await gN(d);else{let a=(0,P.dirname)(d);for(;!(0,O.existsSync)(a)&&(0,P.dirname)(a)!==a;)a=(0,P.dirname)(a);await gN(a)}let e=await cd(c,d);if(!e.supported)return{path:d,supported:!1};let f=e.patch??"",g=Buffer.from(f,"utf8"),h=g.length>8e4;return h&&(f=gT(g,8e4).toString("utf8")),{path:d,supported:!0,...e.status?{status:e.status}:{},...f?{patch:f}:{},truncated:h}}async function g$(a,b){let c=await gN(a);if(!(0,O.existsSync)(c))throw new bM("directory_not_found",`Directory does not exist: ${c}`);try{let a=await (0,cj.l)(c,b);return(0,aj.wz)(a.path),a}catch(a){throw new bM("worktree_add_failed",a instanceof Error?a.message:String(a))}}async function g_(a){let b;try{b=cp(a)}catch(a){if(a instanceof ck)throw new bM(a.code,a.message);throw a}let{projectRoot:c}=await (0,cj.KI)(b),d=function(a,b,c=new Date().toISOString()){let d=cm(b),e=cg(d),f=a.projects.filter(a=>cg(a.path)!==e);return f.push({path:d,addedAt:c,hidden:!1}),{version:1,projects:f}}(cn(),c);co(d),(0,aj.wz)(c);let e=d.projects.find(a=>cg(a.path)===cg(c));return{path:e?.path??c,name:(0,P.basename)(e?.path??c)||c}}async function g0(a){var b;let c,d,e,f,g=a.trim();if(!g)throw new bM("path_required","Path is required");let{projectRoot:h}=await (0,cj.KI)(g);return co((b=cn(),d=cg(c=cm(h)),e=b.projects.some(a=>cg(a.path)===d),f=b.projects.map(a=>cg(a.path)===d?{...a,hidden:!0}:a),e||f.push({path:c,addedAt:new Date().toISOString(),hidden:!0}),{version:1,projects:f})),{path:h}}let g1=(0,ay.promisify)(aw.execFile),g2=new Set(["node_modules",".git",".next","dist","build","__pycache__",".turbo",".cache","coverage",".pytest_cache",".mypy_cache","target","vendor",".DS_Store"]);async function g3(a){try{let{stdout:b}=await g1("git",["-C",a,"ls-files","--cached","--others","--exclude-standard","-z"],{timeout:1e4,maxBuffer:0x4000000,env:{...process.env,LC_ALL:"C"}});return b.split("\0").filter(Boolean)}catch{}let b=[],c=[{abs:a,rel:"",depth:0}];for(;c.length>0;){let a,d=c.shift();try{a=(0,O.readdirSync)(d.abs,{withFileTypes:!0})}catch{continue}for(let e of a){if(g2.has(e.name)||e.name.endsWith(".pyc"))continue;let a=d.rel?`${d.rel}/${e.name}`:e.name;e.isDirectory()?c.push({abs:(0,P.join)(d.abs,e.name),rel:a,depth:d.depth+1}):e.isFile()&&b.push(a)}}return b}async function g4(a,b,c=0,d=100){let e,f=await gN(a);try{e=(0,O.statSync)(f)}catch{throw new bM("directory_not_found","Directory not found")}if(!e.isDirectory())throw new bM("not_a_directory","Not a directory");let g=function(a){let b=new Set;for(let c of a){let a=c.indexOf("/");for(;-1!==a;)b.add(c.slice(0,a)),a=c.indexOf("/",a+1)}let c=[];for(let a of b)c.push({path:a,isDir:!0});for(let b of a)b&&c.push({path:b,isDir:!1});return c.sort((a,b)=>ch(a.path)-ch(b.path)||a.path.localeCompare(b.path)),c}(await g3(f)),h=function(a,b,c=20){let d=b.toLowerCase();if(!d)return a.slice(0,c);let e=[];for(let b of a){let a=function(a,b){let c=a.path.toLowerCase(),d=0;if(b.includes("/"))c===b?d=100:c.startsWith(b)?d=80:c.includes(b)?d=50:ci(b,c)&&(d=10);else{let a=c.lastIndexOf("/"),e=-1===a?c:c.slice(a+1);e===b?d=100:e.startsWith(b)?d=80:e.includes(b)?d=50:c.includes(b)?d=30:ci(b,c)&&(d=10)}return a.isDir&&d>0&&(d+=10),d}(b,d);a>0&&e.push({entry:b,score:a})}return e.sort((a,b)=>b.score-a.score||ch(a.entry.path)-ch(b.entry.path)||a.entry.path.localeCompare(b.entry.path)),e.slice(0,c).map(a=>a.entry)}(g,b,g.length),i=gP(c,d);return{cwd:f,query:b,total:h.length,...i,hasMore:i.offset+i.limit<h.length,matches:h.slice(i.offset,i.offset+i.limit).map(a=>({path:a.path,...a.isDir?{isDir:!0}:{}}))}}function g5(a){let b=0;for(let c of g6.values())c.deviceId===a&&b++;if(g6.size>=128||b>=16)throw new bM("transfer_quota","File transfer quota exceeded")}let g6=new Map;function g7(a){let b=g6.get(a);if(b&&(g6.delete(a),clearTimeout(b.timer),"upload"===b.kind)){gF.delete(b.temp);try{b.fd>=0&&(0,O.closeSync)(b.fd)}catch{}b.fd=-1;try{(0,O.unlinkSync)(b.temp)}catch(a){a instanceof Error&&"code"in a&&"ENOENT"===a.code||console.warn("Relay upload staging cleanup failed",a)}}}function g8(a,b,c=!1){let d=a[b];if(void 0!==d||!c){if("string"!=typeof d||"text"!==b&&"query"!==b&&"data"!==b&&0===d.length||d.includes("\0"))throw new bM("invalid_args",`Invalid ${b}`);return d}}function g9(a,b,c=!1,d=Number.MAX_SAFE_INTEGER){let e=a[b];if(void 0!==e||!c){if("number"!=typeof e||!Number.isSafeInteger(e)||e<0||e>d)throw new bM("invalid_args",`Invalid ${b}`);return e}}function ha(a,b,c){let d=g6.get(a);if(!d||d.deviceId!==b||d.kind!==c)throw new bM("transfer_not_found","File transfer not found");if(Date.now()>=d.expiresAt)throw g7(a),new bM("transfer_expired","File transfer expired");return d}async function hb(a,b){let c=await as();if(!at(a,c))throw new bM("path_not_allowed","Upload directory is not allowed");let d=(0,O.realpathSync)(a);if(d!==a||!(0,O.lstatSync)(d).isDirectory())throw new bM("path_not_allowed","Upload directory changed");let e=Q().join(d,b),f=av(d,[b]);if(f.nonReplaceable.length)throw new bM("invalid_target","Upload destination must be a regular file, not a directory or symlink");if(f.conflicts.length&&!at(e,c))throw new bM("path_not_allowed","Upload destination is not allowed");return e}let hc=async(a,b,c)=>{switch(a){case"list":return{...await gJ(g8(b,"path",!0),g9(b,"offset",!0),g9(b,"limit",!0))};case"search":return{...await g4(g8(b,"cwd"),g8(b,"query"),g9(b,"offset",!0),g9(b,"limit",!0))};case"meta":return{...await gS(g8(b,"path"))};case"preview":return{...await gO(g8(b,"path"),g8(b,"revision",!0))};case"read":return{...await gV(g8(b,"path"))};case"readChunk":return{...await gU(g8(b,"path"),g8(b,"revision"),g9(b,"offset"),g9(b,"length",!0,131072))};case"write":if(void 0!==b.createIfMissing&&"boolean"!=typeof b.createIfMissing)throw new bM("invalid_args","Invalid createIfMissing");return{...await gX(g8(b,"path"),g8(b,"text"),g8(b,"revision",!0),g8(b,"baseContentHash",!0),b.createIfMissing)};case"gitStatus":return{...await gY(g8(b,"cwd"),g9(b,"offset",!0),g9(b,"limit",!0))};case"gitDiff":return{...await gZ(g8(b,"cwd"),g8(b,"path"))};case"uploadBegin":{let a,d=g8(b,"file");if(function(a){if(0===a.length)return"No files selected";let b=new Set;for(let c of a){if(!c||"."===c||".."===c||c.includes("\0"))return`Invalid file name: ${c||"(empty)"}`;if(c.includes("/")||c.includes("\\")||an().basename(c)!==c)return`File names must not contain a path: ${c}`;let a="win32"===process.platform?c.toLocaleLowerCase():c;if(b.has(a))return`Duplicate file name in upload: ${c}`;b.add(a)}return null}([d]))throw new bM("invalid_args","Invalid upload file name");let e=g9(b,"size",!1,0x1900000),f=(a=g8(b,"conflict",!0)??null??"error",au.has(a)?a:null);if(!f)throw new bM("invalid_args","Invalid conflict strategy");let g=(0,O.realpathSync)(await gN(g8(b,"dir"))),h=await hb(g,d);if(av(g,[d]).conflicts.length&&"overwrite"!==f){if("skip"===f)return{skipped:!0,path:h,name:d,bytes:e};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[d]}})}c.assertActive?.(),g5(c.deviceId);let i=(0,L.randomUUID)(),j=Q().join(g,`.relay-upload-${(0,L.randomUUID)()}.tmp`),k=(0,O.openSync)(j,"wx",384);gF.add(j);let l=Date.now()+3e5,m=setTimeout(()=>{g7(i)},3e5);return m.unref(),g6.set(i,{kind:"upload",deviceId:c.deviceId,expiresAt:l,timer:m,path:h,directory:g,name:d,temp:j,fd:k,size:e,received:0,conflict:f}),{transferId:i,path:h,name:d,bytes:e,size:e,chunkSize:131072,expiresAt:l}}case"uploadChunk":case"uploadComplete":case"uploadAbort":{let d=g8(b,"transferId"),e=ha(d,c.deviceId,"upload");if("upload"!==e.kind)throw new bM("transfer_not_found","Upload not found");try{if("uploadAbort"===a)return g7(d),{aborted:!0};if("uploadChunk"===a){let a=g9(b,"offset"),c=g8(b,"data");if(a!==e.received)throw new bM("invalid_offset","Upload chunks must be sequential");if(c.length>4*Math.ceil(131072/3)||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(c))throw new bM("invalid_chunk","Invalid base64 upload chunk");let f=Buffer.from(c,"base64");if(f.toString("base64")!==c||0===f.length||f.length>131072||e.received+f.length>e.size)throw new bM("invalid_chunk","Invalid upload chunk size or encoding");let g=0;for(;g<f.length;){let a=(0,O.writeSync)(e.fd,f,g,f.length-g,e.received+g);if(0===a)throw new bM("upload_failed","Upload write made no progress");g+=a}return e.received+=g,{transferId:d,received:e.received,nextOffset:e.received,complete:e.received===e.size}}if(e.received!==e.size)throw new bM("size_mismatch","Upload is incomplete");let f=g8(b,"sha256",!0);if(void 0!==f&&(!/^[a-fA-F0-9]{64}$/.test(f)||gR(e.temp).toLowerCase()!==f.toLowerCase()))throw new bM("hash_mismatch","Upload checksum mismatch");await hb(e.directory,e.name),ha(d,c.deviceId,"upload");let g=av(e.directory,[e.name]);if(g.conflicts.length&&"overwrite"!==e.conflict){if("skip"===e.conflict)return g7(d),{skipped:!0,path:e.path,name:e.name,bytes:e.size};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[e.name]}})}if(g.conflicts.length&&(0,O.fchmodSync)(e.fd,4095&(0,O.lstatSync)(e.path).mode),(0,O.fsyncSync)(e.fd),(0,O.closeSync)(e.fd),e.fd=-1,g.conflicts.length&&"overwrite"===e.conflict)(0,O.renameSync)(e.temp,e.path);else{try{(0,O.linkSync)(e.temp,e.path)}catch(a){if(a instanceof Error&&"code"in a&&"EEXIST"===a.code){if(av(e.directory,[e.name]).nonReplaceable.length)throw new bM("invalid_target","Upload destination must be a regular file, not a directory or symlink");if("skip"===e.conflict)return g7(d),{skipped:!0,path:e.path,name:e.name,bytes:e.size};throw Object.assign(new bM("upload_conflict","Upload destination already exists"),{details:{conflicts:[e.name]}})}throw a}(0,O.unlinkSync)(e.temp)}let h=(0,O.openSync)(e.directory,O.constants.O_RDONLY);try{(0,O.fsyncSync)(h)}finally{(0,O.closeSync)(h)}return g7(d),{path:e.path,name:e.name,bytes:e.size,revision:gQ(e.path),contentHash:gR(e.path)}}catch(a){if(g7(d),a instanceof bM)throw a;throw new bM("upload_failed","File upload failed")}}case"downloadBegin":{let a=await gN(g8(b,"path")),d=await gS(a);if("file"!==d.kind)throw new bM("invalid_target","Download target must be a file");if(d.size>0x6400000)throw new bM("file_too_large","Download exceeds 100 MiB");c.assertActive?.(),g5(c.deviceId);let e=(0,L.randomUUID)(),f=Date.now()+3e5,g=setTimeout(()=>{g7(e)},3e5);return g.unref(),g6.set(e,{kind:"download",deviceId:c.deviceId,expiresAt:f,timer:g,path:a,size:d.size,revision:d.revision}),{...d,transferId:e,bytes:d.size,chunkSize:131072,expiresAt:f}}case"downloadChunk":case"downloadClose":{let d=g8(b,"transferId");if("downloadClose"===a&&!g6.has(d))return{closed:!0};let e=ha(d,c.deviceId,"download");if("download"!==e.kind)throw new bM("transfer_not_found","Download not found");try{let f;if("downloadClose"===a)return g7(d),{closed:!0};let g=g9(b,"offset"),h=g9(b,"length",!0,131072)??131072;if(0===h||g>e.size)throw new bM("invalid_offset","Invalid download range");if(await gN(e.path),ha(d,c.deviceId,"download"),gQ(e.path)!==e.revision)throw new bM("stale_revision","Download file changed");let i=(0,O.openSync)(e.path,O.constants.O_RDONLY|O.constants.O_NOFOLLOW);try{if(!(0,O.fstatSync)(i).isFile())throw new bM("invalid_target","Download target must be a file");f=Buffer.alloc(Math.min(h,e.size-g));let a=0;for(;a<f.length;){let b=(0,O.readSync)(i,f,a,f.length-a,g+a);if(!b)throw new bM("stale_revision","Download file changed");a+=b}let b=(0,O.fstatSync)(i),c=(0,O.lstatSync)(e.path);if(b.dev!==c.dev||b.ino!==c.ino||b.size!==e.size||gQ(e.path)!==e.revision)throw new bM("stale_revision","Download file changed")}finally{(0,O.closeSync)(i)}let j=g+f.length;return j===e.size&&g7(d),{transferId:d,path:e.path,revision:e.revision,offset:g,data:f.toString("base64"),nextOffset:j,complete:j===e.size}}catch(a){if(g7(d),a instanceof bM)throw a;throw new bM("download_failed","File download failed")}}default:throw new bM("unknown_action","Unknown files action")}};var hd=c(84157);function he(a){return(0,am.join)((0,am.dirname)(a),(0,am.basename)(a,".jsonl"))}class hf extends Error{}function hg(a,b,c,d,e=!1){let f,g,h;try{f=(0,ak.realpathSync)(he(a))}catch{return null}let i=d?(0,am.resolve)(f,d):(0,am.join)(f,`${b}${c}`);try{g=(0,ak.realpathSync)((0,am.dirname)(i))}catch{return null}if(g!==f){if(e)throw new hf("Subagent artifact is outside the parent session artifact directory");return null}try{h=(0,ak.realpathSync)(i)}catch{return null}if((0,am.dirname)(h)!==f){if(e)throw new hf("Subagent artifact is outside the parent session artifact directory");return null}try{if(!(0,ak.statSync)(h).isFile())return null}catch{return null}return h}function hh(a){var b,c,d;let e;try{e=(0,ar.DK)(a)}catch{return[]}let f=new Map,g=a=>{let b=f.get(a.id);b?f.set(a.id,{...b,...a,result:a.result??b.result}):f.set(a.id,a)};for(let a of e){if("message"!==a.type||a.message?.role!=="toolResult")continue;let d=a.message;if("task"!==d.toolName)continue;let e=(0,S.u4)(d.details)?d.details:{},h=Array.isArray(e.progress)?e.progress:[],i=Array.isArray(e.results)?e.results:[],j=(0,S.u4)(e.async)?e.async:void 0;for(let a of h){let c=function(a){var b,c;if(!(0,S.u4)(a))return;let d={},e=(0,S.i)(a.index);void 0!==e&&(d.index=e);let f=(0,S.oJ)(a.id);void 0!==f&&(d.id=f);let g=(0,S.oJ)(a.agent);void 0!==g&&(d.agent=g);let h="bundled"===(b=a.agentSource)||"user"===b||"project"===b?b:void 0;void 0!==h&&(d.agentSource=h);let i="pending"===(c=a.status)||"running"===c||"completed"===c||"failed"===c||"aborted"===c?c:void 0;void 0!==i&&(d.status=i);let j=(0,S.oJ)(a.task);void 0!==j&&(d.task=j);let k=(0,S.oJ)(a.assignment);void 0!==k&&(d.assignment=k);let l=(0,S.oJ)(a.description);void 0!==l&&(d.description=l);let m=(0,S.oJ)(a.lastIntent);void 0!==m&&(d.lastIntent=m);let n=(0,S.oJ)(a.currentTool);void 0!==n&&(d.currentTool=n);let o=(0,S.oJ)(a.currentToolArgs);void 0!==o&&(d.currentToolArgs=o);let p=(0,S.i)(a.currentToolStartMs);void 0!==p&&(d.currentToolStartMs=p),Array.isArray(a.recentTools)&&(d.recentTools=a.recentTools),Array.isArray(a.recentOutput)&&(d.recentOutput=a.recentOutput.filter(a=>"string"==typeof a));let q=(0,S.i)(a.toolCount);void 0!==q&&(d.toolCount=q);let r=(0,S.i)(a.requests);void 0!==r&&(d.requests=r);let s=(0,S.i)(a.tokens);void 0!==s&&(d.tokens=s);let t=(0,S.i)(a.contextTokens);void 0!==t&&(d.contextTokens=t);let u=(0,S.i)(a.contextWindow);void 0!==u&&(d.contextWindow=u);let v=(0,S.i)(a.cost);void 0!==v&&(d.cost=v);let w=(0,S.i)(a.durationMs);void 0!==w&&(d.durationMs=w),("string"==typeof a.modelOverride||Array.isArray(a.modelOverride)&&a.modelOverride.every(a=>"string"==typeof a))&&(d.modelOverride=a.modelOverride);let x=(0,S.oJ)(a.modelRole);void 0!==x&&(d.modelRole=x);let y=(0,S.oJ)(a.resolvedModel);if(void 0!==y&&(d.resolvedModel=y),"boolean"==typeof a.resolvedModelIsFallback&&(d.resolvedModelIsFallback=a.resolvedModelIsFallback),(0,S.u4)(a.retryState)){let b=(0,S.i)(a.retryState.attempt),c=(0,S.i)(a.retryState.maxAttempts),e=(0,S.i)(a.retryState.delayMs),f=(0,S.oJ)(a.retryState.errorMessage),g=(0,S.i)(a.retryState.startedAtMs);void 0!==b&&void 0!==c&&void 0!==e&&void 0!==f&&void 0!==g&&(d.retryState={attempt:b,maxAttempts:c,delayMs:e,errorMessage:f,startedAtMs:g})}if((0,S.u4)(a.retryFailure)){let b=(0,S.i)(a.retryFailure.attempt),c=(0,S.oJ)(a.retryFailure.errorMessage);void 0!==b&&void 0!==c&&(d.retryFailure={attempt:b,errorMessage:c})}return void 0!==a.inflightTaskDetails&&(d.inflightTaskDetails=a.inflightTaskDetails),(0,S.u4)(a.extractedToolData)&&(d.extractedToolData=a.extractedToolData),Object.keys(d).length>0?d:void 0}(a);c?.id&&g({id:c.id,agent:c.agent??"subagent",agentSource:c.agentSource,status:"completed"===(b=c.status)?"completed":"failed"===b?"failed":"aborted"===b?"aborted":"started",task:c.task,assignment:c.assignment,description:c.description,index:c.index??0,lastIntent:c.lastIntent,toolCount:c.toolCount,requests:c.requests,tokens:c.tokens,contextTokens:c.contextTokens,contextWindow:c.contextWindow,cost:c.cost,durationMs:c.durationMs,modelOverride:c.modelOverride,modelRole:c.modelRole,resolvedModel:c.resolvedModel,resolvedModelIsFallback:c.resolvedModelIsFallback,retryFailure:c.retryFailure,transcriptAvailable:!1})}for(let a of i){if(!(0,S.u4)(a))continue;let b=(0,S.oJ)(a.id);if(!b)continue;let d=f.get(b),e={},h=(0,S.i)(a.exitCode);void 0!==h&&(e.exitCode=h),!0===a.truncated&&(e.truncated=!0);let i=(0,S.i)(a.cost)??(0,hd.tw)(a.usage);void 0!==i&&(e.cost=i);let j=(0,hd.bA)(a.structuredOutput);void 0!==j&&(e.structuredOutput=j);let k=(0,S.oJ)(a.error);void 0!==k&&(e.error=k),!0===a.aborted&&(e.aborted=!0);let l=(0,S.oJ)(a.abortReason);void 0!==l&&(e.abortReason=l);let m=(0,S.oJ)(a.outputPath);void 0!==m&&(e.outputPath=m);let n=(0,S.oJ)(a.patchPath);void 0!==n&&(e.patchPath=n);let o=(0,S.oJ)(a.branchName);void 0!==o&&(e.branchName=o);let p=(0,S.u4)(a.retryFailure)?{attempt:(0,S.i)(a.retryFailure.attempt)??0,errorMessage:(0,S.oJ)(a.retryFailure.errorMessage)??""}:d?.retryFailure;g({id:b,agent:(0,S.oJ)(a.agent)??d?.agent??"subagent",agentSource:("bundled"===(c=a.agentSource)||"user"===c||"project"===c?c:void 0)??d?.agentSource,status:!0===a.aborted?"aborted":"string"==typeof a.error&&a.error?"failed":"number"==typeof a.exitCode?0===a.exitCode?"completed":"failed":"completed"===a.status?"completed":"failed"===a.status?"failed":"aborted"===a.status?"aborted":"started",task:(0,S.oJ)(a.task)??d?.task,assignment:(0,S.oJ)(a.assignment)??d?.assignment,description:(0,S.oJ)(a.description)??d?.description,index:(0,S.i)(a.index)??d?.index??0,lastIntent:(0,S.oJ)(a.lastIntent)??d?.lastIntent,toolCount:(0,S.i)(a.toolCount)??d?.toolCount,requests:(0,S.i)(a.requests)??d?.requests,tokens:(0,S.i)(a.tokens)??d?.tokens,contextTokens:(0,S.i)(a.contextTokens)??d?.contextTokens,contextWindow:(0,S.i)(a.contextWindow)??d?.contextWindow,cost:(0,S.i)(a.cost)??(0,hd.tw)(a.usage)??d?.cost,durationMs:(0,S.i)(a.durationMs)??d?.durationMs,modelOverride:"string"==typeof a.modelOverride||Array.isArray(a.modelOverride)?a.modelOverride:d?.modelOverride,modelRole:(0,S.oJ)(a.modelRole)??d?.modelRole,resolvedModel:(0,S.oJ)(a.resolvedModel)??d?.resolvedModel,resolvedModelIsFallback:"boolean"==typeof a.resolvedModelIsFallback?a.resolvedModelIsFallback:d?.resolvedModelIsFallback,retryFailure:p,transcriptAvailable:!1,result:Object.keys(e).length>0?e:void 0})}if(j){let a=(0,S.oJ)(j.jobId);a&&!f.has(a)&&g({id:a,agent:"task",status:"completed"===j.state?"completed":"failed"===j.state?"failed":"started",index:f.size,transcriptAvailable:!1})}}let h=new Set;for(let a of e){if("message"!==a.type||a.message?.role!=="toolResult")continue;let b=a.message;if("task"!==b.toolName)continue;let c=(0,S.u4)(b.details)?b.details:{},d=(0,S.u4)(c.async)?c.async:void 0,e=d?(0,S.oJ)(d.jobId):void 0;e&&h.add(e)}let i=[...f.values()];for(let b of i)h.has(b.id)&&(b.detached=!0),hg(a,b.id,".jsonl")&&(d=b.id,b.sessionFile=(0,am.join)(he(a),`${d}.jsonl`),b.transcriptAvailable=!0);return i.sort((a,b)=>a.index-b.index||a.id.localeCompare(b.id))}function hi(a){if(!a)return;let b=(a.split(/\r?\n/)[0]??"").replace(/[\u0000-\u001f\u007f-\u009f]/g," ").replace(/\s+/g," ").trim();return b.length>0?b:void 0}class hj extends Error{constructor(a,b){super(b),this.code=a}}class hk{constructor(a=Date.now,b=setTimeout,c=clearTimeout,d=(0,ax.tmpdir)()){this.now=a,this.schedule=b,this.unschedule=c,this.root=d,this.images=new Map,this.reservedBytes=0}remove(a){this.images.get(a.id)===a&&(a.cancelled=!0,(0,O.rmSync)(a.directory,{recursive:!0,force:!0}),this.unschedule(a.timer),this.images.delete(a.id),this.reservedBytes-=a.size)}expire(){for(let a of this.images.values())(a.cancelled||a.expires<=this.now())&&this.remove(a)}owned(a,b){this.expire();let c="string"==typeof b?this.images.get(b):void 0;if(!c||c.deviceId!==a||c.claimed||c.cancelled)throw new hj("invalid_attachment","Attachment is unavailable");return c}begin(a,b,c){if(this.expire(),"string"!=typeof b||!/^image\/[A-Za-z0-9.+-]{1,100}$/.test(b))throw new hj("invalid_images","An image MIME type is required");if("number"!=typeof c||!Number.isSafeInteger(c)||c<1||c>T.Mt)throw new hj("invalid_images",`Each image must be 1 byte to ${T.Mt/1048576}MiB`);let d=0;for(let b of this.images.values())b.deviceId===a&&d++;if(d>=T.ZQ||this.reservedBytes+c>0x20000000||this.images.size>=1024)throw new hj("attachment_quota","Attachment staging quota exceeded");let e=(0,L.randomUUID)(),f=(0,O.mkdtempSync)((0,P.join)(this.root,"ompgui-relay-attachment-")),g=(0,P.join)(f,"image");try{(0,O.closeSync)((0,O.openSync)(g,"wx",384))}catch(a){throw(0,O.rmSync)(f,{recursive:!0,force:!0}),a}let h=this.schedule(()=>{let a=this.images.get(e);if(a)try{this.remove(a)}catch{}},9e5);return h.unref?.(),this.images.set(e,{id:e,deviceId:a,directory:f,path:g,mimeType:b,size:c,offset:0,complete:!1,claimed:!1,cancelled:!1,expires:this.now()+9e5,timer:h}),this.reservedBytes+=c,{attachmentId:e,maxChunkBytes:65536}}chunk(a,b,c,d){let e=this.owned(a,b);if(e.complete||c!==e.offset)throw new hj("invalid_offset","Attachment chunks must be sequential");if("string"!=typeof d||d.length>4*Math.ceil(65536/3))throw new hj("invalid_chunk","Attachment chunk is too large or malformed");let f=(0,T.Si)(d);if(null===f||f<1||f>65536||e.offset+f>e.size)throw new hj("invalid_chunk","Attachment chunk exceeds declared size or chunk limit");let g=Buffer.from(d,"base64");if(g.toString("base64")!==d)throw new hj("invalid_chunk","Attachment chunk must be canonical base64");let h=(0,O.openSync)(e.path,"r+");try{let a=0;for(;a<g.length;){let b=(0,O.writeSync)(h,g,a,g.length-a,e.offset+a);if(0===b)throw new hj("attachment_write_failed","Attachment storage write failed");a+=b}e.offset+=g.length}catch(a){throw(0,O.closeSync)(h),this.remove(e),a}return(0,O.closeSync)(h),{nextOffset:e.offset}}complete(a,b){let c=this.owned(a,b);if(c.offset!==c.size)throw new hj("incomplete_attachment","Attachment byte count does not match declared size");return c.complete=!0,{attachmentId:c.id}}abort(a,b){return this.remove(this.owned(a,b)),{aborted:!0}}claim(a,b){if(!Array.isArray(b)||b.length>T.ZQ||b.some(a=>"string"!=typeof a)||new Set(b).size!==b.length)throw new hj("invalid_attachment",`attachmentIds must contain at most ${T.ZQ} unique IDs`);let c=b.map(b=>this.owned(a,b));for(let a of c)if(!a.complete)throw new hj("incomplete_attachment","Attachment upload is incomplete");for(let a of c)a.claimed=!0;return{materialize:()=>(this.expire(),c.map(a=>{if(a.cancelled||this.images.get(a.id)!==a)throw new hj("invalid_attachment","Attachment expired or was cancelled");let b=(0,O.readFileSync)(a.path);if(b.length!==a.size)throw new hj("invalid_attachment","Attachment byte count changed");return{type:"image",mimeType:a.mimeType,data:b.toString("base64")}})),dispose:()=>{for(let a of c)this.remove(a)}}}cleanupDevice(a){for(let b of this.images.values())if(b.deviceId===a)try{this.remove(b)}catch{}}}let hl=new hk;var hm=c(7561);async function hn(a){let b,c,d=await (0,ar.os)(a);if(!d)throw new bM("not_found","Session not found");let e=(0,ar.eP)(d),f=e?.id??a,g=e?.parentSession;if(g){let a=await (0,ar.u1)(g);if(a)b=g,c=a;else{let a=await (0,ar.os)(g);a&&(b=a,c=g)}}let h=(0,hm.$)(d),i=(0,P.dirname)(d),j=[];try{for(let a of(0,O.readdirSync)(i).filter(a=>a.endsWith(".jsonl")&&(0,hm.$)((0,P.join)(i,a))!==h)){let d,e,k,l,m=(0,P.join)(i,a);try{if((0,O.statSync)(m).size>aB.ni){let b=a,c=!1;try{let a=(0,O.openSync)(m,"r");try{let d=Buffer.alloc(65536),e=(0,O.readSync)(a,d,0,d.length,0),g=d.toString("utf8",0,e).split("\n"),i=+!!(0,aB.U1)(g[0]??""),j=JSON.parse(g[i]??"{}");"object"==typeof j&&null!==j&&!Array.isArray(j)&&"type"in j&&"session"===j.type&&("id"in j&&"string"==typeof j.id&&(b=j.id),"parentSession"in j&&"string"==typeof j.parentSession&&(c=j.parentSession===f||(0,hm.$)(j.parentSession)===h))}finally{(0,O.closeSync)(a)}}catch{}c&&j.push({id:b,reason:"session_child_too_large"});continue}}catch{continue}try{d=(0,O.readFileSync)(m,"utf8").split("\n"),e=+!!(0,aB.U1)(d[0]??"");let a=JSON.parse(d[e]);if("object"!=typeof a||null===a||Array.isArray(a))continue;for(let[b,c]of(k={},Object.entries(a)))k[b]=c;if("session"!==k.type||"string"!=typeof k.parentSession||!k.parentSession||!(l=(0,hm.$)(k.parentSession)===h)&&k.parentSession!==f)continue}catch{continue}let n="string"==typeof k.id?k.id:void 0;if(n&&bG(n)?.isAlive?.()){j.push({id:n,reason:"session_child_live"});continue}k.parentSession=l?b??g:c??g,d[e]=JSON.stringify(k);try{(0,aB.sv)(m,d.join("\n"),"reparent")}catch{j.push({id:n??a,reason:"session_child_rewrite_failed"})}}}catch{}return await bG(a)?.destroyAndWait?.(),(0,aB.XS)(d),(0,ar.BR)(a),(0,ar.mD)(),j.length>0?{id:a,skippedChildren:j}:{id:a}}async function ho(a){let b=await (0,ar.os)(a);if(!b)throw new bM("not_found","Session not found");if((await (0,ar.dQ)()).some(b=>b.parentSessionId===a))throw new bM("session_has_children","Archive child sessions before archiving this session");return await bG(a)?.destroyAndWait?.(),(0,aB.a8)(b),(0,ar.BR)(a),(0,ar.mD)(),{id:a}}async function hp(a,b){let c=b.trim();if(!c)throw new bM("invalid_name","name is required");let d=!1,e=bG(a);if(e?.isAlive?.()&&"function"==typeof e.send)try{await e.send({type:"set_session_name",name:c}),d=!0}catch{}if(!d){let b=await (0,ar.os)(a);if(!b)throw new bM("not_found","Session not found");(0,aB.Bm)(b,c,"user")}return(0,ar.mD)(),{id:a,name:c}}async function hq(){return(await (0,aB.Uk)()).map(a=>({key:a.key,...a.name?{name:a.name}:{},...a.id?{id:a.id}:{},...a.cwd?{cwd:a.cwd}:{},archivedAt:a.modified}))}async function hr(a){try{let b=await (0,aB.O0)(a);return(0,ar.BR)(b.id),(0,ar.mD)(),{id:b.id}}catch(a){if(a instanceof aB.De)throw new bM(a.code,a.message);throw a}}async function hs(a,b){let c,d=a.trim();if(!d||d.length>200||d.includes("/")||d.includes("\\"))throw new bM("invalid_file_name","Invalid file name");if(!b.trim())throw new bM("invalid_content","Empty session file");if(Buffer.byteLength(b,"utf8")>0xa00000)throw new bM("invalid_content","Session file is too large (max 10 MB)");let e=b.split(/\r?\n/).filter(a=>a.trim().length>0),f=(0,L.randomUUID)(),g=[];for(let a of e){let b;try{b=JSON.parse(a)}catch{throw new bM("invalid_session_file","Not a valid omp session file (malformed JSON line)")}if("object"==typeof b&&null!==b&&!Array.isArray(b)&&"type"in b){if("session"===b.type&&"cwd"in b&&"string"==typeof b.cwd&&(c=b.cwd),"session"===b.type){g.push(JSON.stringify({...b,id:f}));continue}if("message"===b.type&&"message"in b){let a=b.message;if("object"==typeof a&&null!==a&&!Array.isArray(a)&&"role"in a&&"bashExecution"===a.role){let c={};for(let[b,d]of Object.entries(a))"fullOutputPath"!==b&&(c[b]=d);g.push(JSON.stringify({...b,message:c}));continue}}}g.push(a)}if(!c)throw new bM("invalid_session_file","Not a valid omp session file (missing session header with cwd)");if(!at(c,await as()))throw new bM("import_cwd_not_authorized","Imported session workspace is not authorized");let h=(0,P.join)((0,R.tE)(),(0,R._8)(c));(0,O.mkdirSync)(h,{recursive:!0});let i=(0,P.join)(h,`${new Date().toISOString().replace(/[:.]/g,"-")}_${(0,L.randomUUID)()}.jsonl`);return(0,O.writeFileSync)(i,g.join("\n")+"\n","utf8"),(0,ar.mD)(),(0,aB.I3)(),{id:f,cwd:c}}let ht=/^[A-Za-z0-9._-]{1,128}$/,hu=/^[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*$/,hv=new Set(["auto","minimal","low","medium","high","xhigh","max","off"]),hw=new Set(["prompt","steer","follow_up","abort","abort_and_prompt","get_state","set_model","set_thinking_level","set_fast_mode","fork","new_session","switch_session","compact","abort_compaction","set_session_name","get_session_stats","get_last_assistant_text","get_commands","reload","extension_ui_response","bash","set_steering_mode","set_follow_up_mode","set_interrupt_mode","set_auto_compaction","set_auto_retry","abort_retry","abort_bash","set_todos","handoff","get_subagents","get_subagent_messages","set_subagent_subscription","get_messages","get_messages_page","get_branch_messages","export_html","cycle_model","cycle_thinking_level"]),hx={navigate_tree:"Branch navigation is not supported over the omp RPC protocol",clear_queue:"Recalling queued messages is not supported over the omp RPC protocol",get_tools:"Per-session tool listing is not supported over the omp RPC protocol",set_tools:"Changing tools on a running session is not supported over the omp RPC protocol; tool presets apply to new sessions",extension_ui_input:"Extension custom UI is not supported over the omp RPC protocol"},hy=new Set(["list","create","delete","archive","rename","restore","archives","import","branches","leaf","history","thinking","media","subagents","subagentTranscript","subagentCompletion","stats","state","systemPrompt","autoname","export","exportChunk","exportClose","command","attachments.begin","attachments.chunk","attachments.complete","attachments.abort","projects.remove","worktrees.list","worktrees.add","worktrees.remove"]);class hz extends bM{constructor(a,b,c){super(a,b),void 0!==c&&(this.details=c)}}function hA(a,b,c){throw new hz(a,b,c)}function hB(a){let b=(0,S.oJ)(a)?.trim();return b&&ht.test(b)||hA("invalid_session","session id is required"),b}function hC(a,b=0){if(void 0===a)return b;let c=(0,S.i)(a);return(void 0===c||!Number.isSafeInteger(c)||c<0)&&hA("invalid_offset","offset must be a non-negative integer"),c}function hD(a,b,c){if(void 0===a)return b;let d=(0,S.i)(a);return(void 0===d||!Number.isSafeInteger(d)||d<1||d>c)&&hA("invalid_limit",`limit must be 1..${c}`),d}function hE(a){let b={};for(let[c,d]of Object.entries(a))b[c]=d;return b}async function hF(a){let b=hC(a.offset,0),c=hD(a.limit,100,500),d=(0,S.oJ)(a.query)?.trim().toLowerCase()??"",e=!0===a.runningOnly,f=await bO(),g=new Set(f.runningIds),h=f.sessions;e&&(h=h.filter(a=>g.has(a.id))),d&&(h=h.filter(a=>a.id.toLowerCase().includes(d)||(a.name??"").toLowerCase().includes(d)||a.cwd.toLowerCase().includes(d)||a.firstMessage.toLowerCase().includes(d)));let i=h.length,j=h.slice(b,b+c);return{sessions:j,runningIds:f.runningIds,total:i,offset:b,limit:c,hasMore:b+j.length<i}}async function hG(a){let b,c,d=(0,S.oJ)(a.cwd)?.trim();d||hA("cwd_required","cwd is required");try{b=cp(d)}catch(a){throw a instanceof ck&&hA(a.code,a.message),a}(0,O.existsSync)(b)||hA("directory_not_found",`Directory does not exist: ${b}`);let e=(0,S.oJ)(a.message)?.trim()??"";e.length>3145728&&hA("invalid_command","prompt message is too long");let f=(0,S.oJ)(a.thinkingLevel)?.trim();f&&!hv.has(f)&&hA("invalid_command","Unknown thinking level");let g=(0,S.oJ)(a.provider)?.trim(),h=(0,S.oJ)(a.modelId)?.trim();if((g&&!h||!g&&h)&&hA("invalid_command","set_model requires provider and modelId"),void 0!==a.toolNames){let b=a.toolNames;Array.isArray(b)||hA("invalid_tools","toolNames must be an array of tool names");let d=[];for(let a of b){("string"!=typeof a||!a.trim()||a.length>64)&&hA("invalid_tools","toolNames must be an array of tool names");let b=a.toLowerCase();d.includes(b)||d.push(b)}c=bx(d)}let i=!0===a.advisor,j=`__new__${(0,L.randomUUID)()}`;try{let{session:a,realSessionId:d}=await bL(j,"",b,c,i);return(0,aj.wz)(b),(0,ar.mD)(),g&&h&&await a.send({type:"set_model",provider:g,modelId:h}),f&&await a.send({type:"set_thinking_level",level:f}),e&&await a.send({type:"prompt",message:e}),{sessionId:d}}catch(a){if(a instanceof br||a instanceof az.x||a instanceof bM)throw a;hA("session_create_failed",a instanceof Error?a.message:String(a))}hA("session_create_failed","unreachable")}async function hH(a){let b,c=hB(a.id),d=await (0,ar.os)(c);d||hA("session_not_found","Session not found");let e=(0,ar.cr)(d);"too_large"===e.error&&hA("session_file_too_large","Session file is too large to open in ompgui"),e.header||hA("session_file_malformed","Session file is missing or malformed");let f=(0,aB.qd)(e.entries,{skipToolResultImages:!0});if(void 0!==a.leafId&&null!==a.leafId){let c=(0,S.oJ)(a.leafId)?.trim();(!c||c.length>200)&&hA("invalid_leaf","leafId is invalid"),b=c}let g=(0,aB.kT)(f),h=b??g;b&&(new Set(f.map(a=>a.id)).has(b)||hA("unknown_leaf","Unknown conversation branch"));let i=(0,ar.Uv)(f,h??void 0,{deferThinking:!0,deferToolResultImages:!0}),j=i.messages.length,k=hC(a.offset,0),l=hD(a.limit,100,500),m=i.messages.slice(k,k+l),n=i.entryIds.slice(k,k+l);return{id:c,leafId:h??null,total:j,offset:k,limit:l,hasMore:k+m.length<j,messages:m,entryIds:n,thinkingLevel:i.thinkingLevel,model:i.model,todoPhases:i.todoPhases}}async function hI(a){let b=hB(a.id),c=(0,S.oJ)(a.entryId)?.trim();(!c||c.length>200)&&hA("invalid_entry","entryId is required");let d=(0,S.i)(a.blockIndex);(void 0===d||!Number.isSafeInteger(d)||d<0||d>100)&&hA("invalid_block_index","A valid block index is required");let e=await (0,ar.os)(b);e||hA("session_not_found","Session not found");let f=(0,ar.DK)(e).find(a=>a.id===c);!(void 0===f||"message"!==f.type||"object"!=typeof f.message||null===f.message||Array.isArray(f.message))&&"role"in f.message&&"assistant"===f.message.role&&"content"in f.message&&Array.isArray(f.message.content)||hA("assistant_message_not_found","Assistant message not found");let g=f.message.content[d];return!("object"!=typeof g||null===g||Array.isArray(g))&&"type"in g&&"thinking"===g.type&&"thinking"in g&&"string"==typeof g.thinking||hA("thinking_block_not_found","Thinking block not found"),{thinking:g.thinking}}async function hJ(a){let b=hB(a.id),c=(0,S.oJ)(a.entryId)?.trim();(!c||c.length>200)&&hA("invalid_entry","entryId is required");let d=await (0,ar.os)(b);d||hA("session_not_found","Session not found");try{let a=(0,ar.td)(d,c);return a||hA("tool_result_images_not_found","Tool result images not found"),{images:a.images,missingCount:a.missingCount}}catch(a){throw a instanceof T.zJ&&hA(a.code,a.message),a}}async function hK(a){let b=hB(a.id),c=await (0,ar.os)(b);if(!c){if(bG(b)?.isAlive())return{subagents:[]};hA("session_not_found","Session not found")}return{subagents:hh(c)}}async function hL(a,b){let c,d=await (0,ar.os)(a),e=bG(a);d||e?.isAlive()||hA("session_not_found","Session not found");let f=d?hh(d).find(a=>a.id===b):void 0;if(e?.isAlive())try{let a=await e.send({type:"get_subagents"});a&&"object"==typeof a&&"subagents"in a&&Array.isArray(a.subagents)&&(c=a.subagents.find(a=>null!==a&&"object"==typeof a&&"id"in a&&a.id===b))}catch{}let g=c?.status;return{filePath:d,rpc:e,live:c,history:f,pending:"started"===g||"pending"===g||"running"===g}}function hM(a,b,c,d){try{return hg(a,b,c,void 0,!0)??(d?hg(a,b,c,d,!0):null)}catch(a){throw a instanceof hf&&hA("artifact_forbidden",a.message),a}}async function hN(a){let b=hB(a.id),c=(0,S.oJ)(a.subagentId)?.trim();c&&!(c.length>100)&&hu.test(c)||hA("invalid_subagent_id","Invalid subagent id");let d=void 0===a.fromByte?0:(0,S.i)(a.fromByte);(void 0===d||!Number.isSafeInteger(d)||d<0)&&hA("invalid_offset","fromByte must be a non-negative integer");let e=await hL(b,c);if(e.live&&e.rpc)try{let a=await e.rpc.send({type:"get_subagent_messages",subagentId:c,fromByte:d});if(a&&"object"==typeof a&&"messages"in a&&Array.isArray(a.messages)&&!("error"in a&&a.error))return{...a,status:e.pending&&0===a.messages.length?"pending":"ready"}}catch{}let f=e.filePath?hM(e.filePath,c,".jsonl"):null;if(!f){if(e.pending)return{status:"pending",fromByte:d,nextByte:d,reset:!1,messages:[],totalBytes:null};e.history||e.live||hA("subagent_not_found","Subagent is not part of this session"),hA("transcript_not_found","No saved transcript is available for this subagent")}let g=function(a,b=0){let c,d={sessionFile:a,fromByte:"number"==typeof b&&Number.isFinite(b)?Math.max(0,Math.trunc(b)):0,nextByte:"number"==typeof b&&Number.isFinite(b)?Math.max(0,Math.trunc(b)):0,reset:!1,messages:[]},e=d.fromByte,f=!1;try{c=(0,ak.openSync)(a,ak.constants.O_RDONLY|ak.constants.O_NOFOLLOW);let b=(0,ak.fstatSync)(c);if(!b.isFile())return{...d,error:"Subagent transcript is not a regular file"};let g=b.size;if(e>g&&(e=0,f=!0),g>0x1000000)return{...d,fromByte:e,nextByte:e,reset:f,error:"Subagent transcript exceeds the readable size limit"};let h=[],i=0,j=0;for(;e+i<g;){let a=Buffer.allocUnsafe(Math.min(262144,g-e-i)),b=(0,ak.readSync)(c,a,0,a.length,e+i);if(0===b)break;let d=a.subarray(0,b),f=0===i?d.lastIndexOf(10):d.indexOf(10);if(f>=0){h.push(d.subarray(0,f+1)),j=i+f+1;break}h.push(d),i+=b}let k=[];if(j>0){let a=(1===h.length?h[0]:Buffer.concat(h,j)).toString("utf8");for(let b of(0,aB.nr)(a)){if(null===b||"object"!=typeof b||Array.isArray(b))continue;let a=(0,ar.HA)(b,{});null!==a&&k.push(a)}}return{sessionFile:a,fromByte:e,nextByte:e+j,reset:f,messages:k,totalBytes:g}}catch{return{...d,fromByte:e,nextByte:e,reset:f,error:"Subagent transcript could not be read"}}finally{void 0!==c&&(0,ak.closeSync)(c)}}(f,d);return{status:e.pending&&0===g.messages.length?"pending":"ready",fromByte:g.fromByte,nextByte:g.nextByte,reset:g.reset,messages:g.messages,totalBytes:g.totalBytes??null,...g.error?{error:g.error}:{}}}async function hO(a){let b=hB(a.id),c=(0,S.oJ)(a.subagentId)?.trim();c&&!(c.length>100)&&hu.test(c)||hA("invalid_subagent_id","Invalid subagent id");let d=await hL(b,c),e=d.filePath?hM(d.filePath,c,".md",d.history?.result?.outputPath):null,f=e?function(a){let b;try{b=(0,ak.openSync)(a,ak.constants.O_RDONLY|ak.constants.O_NOFOLLOW)}catch{return null}try{let a=(0,ak.fstatSync)(b);if(!a.isFile()||a.size<=0)return null;let c=a.size>1048576,d=Math.min(a.size,1048576),e=Buffer.alloc(d),f=(0,ak.readSync)(b,e,0,d,0),g=e.subarray(0,f),h=g.length,i=0;for(;h-i>0&&(192&g[h-1-i])==128;)i+=1;let j=h-1-i;if(j>=0){let a=g[j];j+(a>=240?4:a>=224?3:a>=192?2:1)>g.length&&(h=j)}else h=0;return{completion:g.subarray(0,h).toString("utf8"),truncated:c}}finally{(0,ak.closeSync)(b)}}(e):null;return f?{...f,status:"ready"}:(d.history||d.live||hA("subagent_not_found","Subagent is not part of this session"),{completion:null,truncated:!1,status:d.pending?"pending":"unavailable"})}async function hP(a){let b=hB(a.id);try{let a=await bQ(b,{type:"get_session_stats"});return("object"!=typeof a||null===a||Array.isArray(a))&&hA("stats_failed","Session stats unavailable"),hE(a)}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hA("stats_failed",a instanceof Error?a.message:String(a))}hA("stats_failed","unreachable")}async function hQ(a){let b=hB(a.id);try{let a=await bQ(b,{type:"get_state"});return("object"!=typeof a||null===a||Array.isArray(a))&&hA("state_failed","Session state unavailable"),hE(a)}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hA("state_failed",a instanceof Error?a.message:String(a))}hA("state_failed","unreachable")}async function hR(a){let b=hB(a.id),c=await bQ(b,{type:"get_state"});return"object"==typeof c&&null!==c&&!Array.isArray(c)&&"systemPrompt"in c&&"string"==typeof c.systemPrompt?{systemPrompt:c.systemPrompt}:{systemPrompt:null}}async function hS(a){let b=hB(a.id),c=bG(b),d=!!c?.isAlive?.();if(d&&void 0!==c&&"function"==typeof c.send)try{let a,b=await c.send({type:"get_state"});"object"==typeof b&&null!==b&&!Array.isArray(b)&&"sessionName"in b&&"string"==typeof b.sessionName&&(a=b.sessionName);let d=hi(a);if(d)return(0,ar.mD)(),{title:d}}catch{}let e=await (0,ar.os)(b);e||hA("session_not_found","Session not found");let f=(0,aB.mk)(e,!1),g=hi(f?.title);if(g)return{title:g};let h=function(a){if(!a||"(no messages)"===a)return null;let b=hi(a);if(!b||!/[\p{L}\p{N}]/u.test(b))return null;let c=Array.from(b);return c.length<=60?b:`${c.slice(0,60).join("").trimEnd()}…`}(f?.firstMessage);return h||hA("session_no_messages_to_name","The session has no user messages to name"),d||(0,aB.Bm)(e,h,"auto"),(0,ar.mD)(),{title:h}}async function hT(a,b){let c=hB(a.id),d=function(a){("object"!=typeof a||null===a||Array.isArray(a))&&hA("invalid_command","command must be an object");let b={};for(let[c,d]of Object.entries(a))b[c]=d;return b}(a.command),e=(0,S.oJ)(d.type)?.trim();e||hA("command_type_required","command type is required"),hx[e]&&hA("unsupported_command",hx[e]),hw.has(e)||hA("unsupported_command",`Unsupported command: ${e}`);let f=void 0!==d.attachmentIds;if(f&&"prompt"!==e&&"abort_and_prompt"!==e&&"steer"!==e&&"follow_up"!==e&&hA("invalid_attachment","This command does not accept attachmentIds"),f&&void 0!==d.images&&hA("invalid_images","Do not combine images and attachmentIds"),("prompt"===e||"abort_and_prompt"===e||"steer"===e||"follow_up"===e)&&("string"!=typeof d.message||d.message.length>3145728)&&hA("invalid_command","A prompt message of at most 3Mi characters is required"),("prompt"===e||"abort_and_prompt"===e||"steer"===e||"follow_up"===e)&&void 0!==d.images){let a=d.images;Array.isArray(a)||hA("invalid_images","images must be an array");let b=a.map(a=>"object"!=typeof a||null===a||Array.isArray(a)?a:{type:"image",data:"data"in a&&"string"==typeof a.data?a.data:void 0,mimeType:"mimeType"in a&&"string"==typeof a.mimeType?a.mimeType:void 0}),c=(0,T.kc)(b);c&&hA("invalid_images",c),d.images=b}if("fork"===e&&((0,S.oJ)(d.entryId)?.trim()||hA("invalid_entry","fork requires entryId")),"bash"===e&&!0===d.excludeFromContext&&hA("bash_exclude_unsupported","omp cannot run a shell command with its output excluded from the model context (`!!`): the RPC bash command has no exclusion option, so the output would silently enter the context anyway. Run it with a single `!` to share the output with the model, or use a terminal outside ompgui."),"set_model"===e){let a=(0,S.oJ)(d.provider)?.trim(),b=(0,S.oJ)(d.modelId)?.trim();a&&b||hA("invalid_command","set_model requires provider and modelId")}"set_thinking_level"===e&&(((0,S.oJ)(d.level)?.trim()??(0,S.oJ)(d.thinkingLevel)?.trim())||hA("invalid_command","set_thinking_level requires level")),"set_session_name"===e&&((0,S.oJ)(d.name)?.trim()||hA("invalid_command","Session name cannot be empty")),"extension_ui_response"===e&&((0,S.oJ)(d.id)?.trim()||hA("invalid_command","extension_ui_response requires id")),f&&(b.sessionId!==c&&hA("invalid_session","Open the target session before sending attachments"),bG(c)?.isAlive()||await (0,ar.os)(c)||hA("session_not_found","Session not found")),b.assertActive?.();let g=f?hl.claim(b.deviceId,d.attachmentIds):void 0;delete d.attachmentIds;try{let a=await bQ(c,d,()=>(b.assertActive?.(),g?{...d,images:g.materialize()}:d));if(null==a)return{result:null};if("object"==typeof a)return{result:a};return{result:{value:a}}}catch(a){if(a instanceof bM||a instanceof br||a instanceof az.x)throw a;hA("rpc_command_failed",a instanceof Error?a.message:String(a))}finally{g?.dispose()}hA("rpc_command_failed","unreachable")}async function hU(a){let b=(0,S.oJ)(a.cwd)?.trim(),c=(0,S.oJ)(a.path)?.trim();b||hA("cwd_required","cwd is required"),c||hA("path_required","path is required");let d=await as();at((0,P.resolve)(b),d)||hA("access_denied","Path is outside allowed workspaces");let e=!0===a.force;try{return await (0,cj.IL)(b,c,e),{path:c}}catch(b){let a=b instanceof Error?b.message:String(b);/contains modified or untracked files|is dirty/i.test(a)&&hA("worktree_dirty",a,{dirty:!0}),a.startsWith("Not a worktree of this repository")&&hA("not_a_worktree",a),a.startsWith("Cannot remove the main worktree")&&hA("cannot_remove_main_worktree",a),hA("worktree_remove_failed",a)}hA("worktree_remove_failed","unreachable")}async function hV(a,b,c){hy.has(a)||hA("unknown_action",`Unknown sessions action: ${a}`),("object"!=typeof b||null===b||Array.isArray(b))&&hA("invalid_args","args must be an object");let d={};for(let[a,c]of Object.entries(b))d[a]=c;switch(a){case"projects.remove":{let a=(0,S.oJ)(d.cwd)?.trim();return a||hA("invalid_args","cwd is required"),{...await g0(await gN(a)),projects:await gI()}}case"list":return hF(d);case"create":return hG(d);case"delete":{let a=hB(d.id);return{...await hn(a)}}case"archive":{let a=hB(d.id);return{...await ho(a)}}case"rename":{let a=hB(d.id),b=(0,S.oJ)(d.name)??"";return{...await hp(a,b)}}case"restore":{let a=(0,S.oJ)(d.key)?.trim();return a||hA("invalid_key","archive key is required"),{...await hr(a)}}case"archives":return{archives:await hq()};case"import":{let a=(0,S.oJ)(d.fileName)??"",b=(0,S.oJ)(d.content)??"";return{...await hs(a,b)}}case"branches":{let a=hB(d.id);return{...await bT(a)}}case"leaf":{let a=hB(d.id),b=(0,S.oJ)(d.leafId)?.trim();return b||hA("invalid_leaf","leafId is required"),{...await bU(a,b)}}case"history":return hH(d);case"thinking":return hI(d);case"media":return hJ(d);case"subagents":return hK(d);case"subagentTranscript":return hN(d);case"subagentCompletion":return hO(d);case"stats":return hP(d);case"state":return hQ(d);case"systemPrompt":return hR(d);case"autoname":return hS(d);case"export":{let a=hB(d.id);return{...await bV(a,c.deviceId)}}case"exportChunk":{let a=(0,S.oJ)(d.transferId)?.trim();return a||hA("invalid_transfer","transferId is required"),{...function(a,b,c,d){let e=bW.get(a);if(!e||e.deviceId!==d||e.expiresAt<=Date.now())throw e?.expiresAt!==void 0&&e.expiresAt<=Date.now()&&bW.delete(a),new bM("unknown_transfer","Unknown or expired export transfer");if(!Number.isSafeInteger(b)||b<0||b>e.size)throw new bM("invalid_offset","Invalid export offset");if(!Number.isSafeInteger(c)||c<=0||c>98304)throw new bM("invalid_length","Invalid export chunk length");let f=e.bytes.subarray(b,Math.min(e.size,b+c)),g=b+f.length;return{transferId:a,offset:b,data:Buffer.from(f).toString("base64"),bytes:f.length,nextOffset:g,complete:g>=e.size,size:e.size}}(a,hC(d.offset,0),void 0===d.length?98304:hD(d.length,98304,98304),c.deviceId)}}case"exportClose":{var e;let a,b=(0,S.oJ)(d.transferId)?.trim();return b||hA("invalid_transfer","transferId is required"),{...(e=c.deviceId,!(a=bW.get(b))||a.deviceId!==e?{closed:!1}:{closed:bW.delete(b)})}}case"attachments.begin":return hl.begin(c.deviceId,d.mimeType,d.size);case"attachments.chunk":return hl.chunk(c.deviceId,d.attachmentId,d.offset,d.data);case"attachments.complete":return hl.complete(c.deviceId,d.attachmentId);case"attachments.abort":return hl.abort(c.deviceId,d.attachmentId);case"command":return hT(d,c);case"worktrees.list":{let a=(0,S.oJ)(d.cwd)?.trim();return a||hA("cwd_required","cwd is required"),{...await gW(a)}}case"worktrees.add":{let a=(0,S.oJ)(d.cwd)?.trim(),b=(0,S.oJ)(d.branch)?.trim();return a||hA("cwd_required","cwd is required"),b||hA("branch_required","branch is required"),{...await g$(a,b)}}case"worktrees.remove":return hU(d);default:hA("unknown_action",`Unknown sessions action: ${a}`)}hA("unknown_action",`Unknown sessions action: ${a}`)}let hW={anthropic:["api.anthropic.com"],google:["generativelanguage.googleapis.com"],openai:["api.openai.com"],openrouter:["openrouter.ai"]},hX={text:!0,image:!0};function hY(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function hZ(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:void 0}function h$(a){return a.trim().toLocaleLowerCase().replace(/[^a-z0-9]/g,"")}function h_(a){if(a)try{return new URL(a).hostname.toLocaleLowerCase().replace(/\.$/,"")}catch{return}}function h0(a){return void 0!==a.cost.input&&void 0!==a.cost.output}function h1(a,b,c){if(0===a.length||b<=0)return;let d=new Map;for(let b of a){let a=c(b),e=d.get(a);e?e.count+=1:d.set(a,{value:b,count:1})}let e=[...d.values()].sort((a,b)=>b.count-a.count),f=e[0];if(f&&!(f.count/b<.6)&&e[1]?.count!==f.count)return f.value}function h2(a){if(0===a.length)return;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=[...b.entries()].sort((a,b)=>b[1]-a[1]);if(c[0]&&c[1]?.[1]!==c[0][1])return c[0][0]}function h3(a,b){return{status:"reliable",method:b,cost:{input:a.cost.input,output:a.cost.output,cacheRead:a.cost.cacheRead??0,cacheWrite:a.cost.cacheWrite??0},providerId:a.providerId,providerName:a.providerName,support:1,total:1}}let h4="https://models.dev/api.json";class h5 extends Error{constructor(a,b,c){super(b),this.code=a,this.status=c,this.name="ModelCatalogError"}}async function h6(){let a=await fetch(h4,{cache:"no-store",headers:{Accept:"application/json"},signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error("Catalog request failed");let b=function(a){if(!(0,S.u4)(a))return[];let b=[];for(let[d,e]of Object.entries(a)){if(!(0,S.u4)(e)||!(0,S.u4)(e.models))continue;let a=hY(e.name)??d,f=hY(e.api);for(let[g,h]of Object.entries(e.models)){var c;if(!(0,S.u4)(h))continue;let e=hY(h.id)??g;if(!e)continue;let i=hY(h.name)??e,j={key:`${d}/${e}`,providerId:d,providerName:a,id:e,name:i,cost:(c=h.cost,(0,S.u4)(c)?{input:hZ(c.input),output:hZ(c.output),cacheRead:hZ(c.cache_read),cacheWrite:hZ(c.cache_write)}:{})};f&&(j.providerBaseUrl=f),"boolean"==typeof h.reasoning&&(j.reasoning=h.reasoning);let k=function(a){if(!(0,S.u4)(a)||!Array.isArray(a.input))return;let b=Array.from(new Set(a.input.filter(a=>"string"==typeof a).map(a=>a.trim().toLocaleLowerCase()).filter(a=>!0===hX[a])));return b.length?b:void 0}(h.modalities);if(k&&(j.input=k),(0,S.u4)(h.limit)){let a=h.limit.context,b=h.limit.output;"number"==typeof a&&Number.isFinite(a)&&a>0&&(j.contextWindow=a),"number"==typeof b&&Number.isFinite(b)&&b>0&&(j.maxTokens=b)}b.push(j)}}return b}(await a.json());if(0===b.length)throw Error("Catalog is empty");return b}async function h7(){let a=globalThis.__ompguiModelsDevCatalogCache;if(a||(a=globalThis.__ompguiModelsDevCatalogCache={entries:[],expiresAt:0}),a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=h6().then(b=>(a.entries=b,a.expiresAt=Date.now()+36e5,b)).finally(()=>{a.inFlight=void 0}));try{return await a.inFlight}catch{if(a.entries.length>0)return a.entries;throw new h5("catalog_unavailable","The public model catalog is unavailable. Try again later.",502)}}async function h8(a){let{query:b,provider:c="",baseUrl:d="",limit:e=50}=a;if("string"!=typeof b||b.length>120)throw new h5("invalid_args","query must be a string of at most 120 characters",400);if("string"!=typeof c||c.length>120)throw new h5("invalid_args","provider must be a string of at most 120 characters",400);if("string"!=typeof d||d.length>500)throw new h5("invalid_args","baseUrl must be a string of at most 500 characters",400);if("number"!=typeof e||!Number.isInteger(e)||e<1||e>100)throw new h5("invalid_args","limit must be an integer between 1 and 100",400);let f=await h7();return{models:function(a,b,c="",d=50){let e=b.trim().toLocaleLowerCase(),f=c.trim().toLocaleLowerCase(),g=Math.max(1,Math.min(100,Math.floor(d)||50));return a.map(a=>{let b,c,d,g,h,i;return{entry:a,rank:(b=a.id.toLocaleLowerCase(),c=a.name.toLocaleLowerCase(),d=a.providerId.toLocaleLowerCase(),g=a.providerName.toLocaleLowerCase(),h=`${d}/${b}`,i=20,e?b===e||h===e?i=0:c===e?i=1:b.startsWith(e)||c.startsWith(e)?i=2:h.startsWith(e)||d===e||g===e?i=3:b.includes(e)||c.includes(e)?i=4:(h.includes(e)||g.includes(e))&&(i=5):i=10,i<20&&f&&(d===f||g===f)&&(i-=.5),i)}}).filter(({rank:a})=>!e||a<20).sort((a,b)=>a.rank-b.rank||a.entry.providerName.localeCompare(b.entry.providerName,void 0,{sensitivity:"base"})||a.entry.name.localeCompare(b.entry.name,void 0,{numeric:!0,sensitivity:"base"})||a.entry.id.localeCompare(b.entry.id,void 0,{numeric:!0,sensitivity:"base"})).slice(0,g).map(({entry:a})=>a)}(f,b,c,e),recommendation:function(a,b,c="",d=""){let e,f=a.filter(a=>(function(a,b){let c=b.trim().toLocaleLowerCase().replace(/^models\//,"");if(!c)return!1;let d=a.id.trim().toLocaleLowerCase().replace(/^models\//,""),e=`${a.providerId.toLocaleLowerCase()}/${d}`;return d===c||e===c})(a,b));if(0===f.length)return{exactMatches:0,metadataMethod:"none",preset:{},price:{status:"unreliable",reason:"no-exact-match",support:0,total:0}};let g=f.filter(a=>{let b;return!!(b=h$(c))&&(h$(a.providerId)===b||h$(a.providerName)===b)}),h=f.filter(a=>(function(a,b){let c=h_(b);if(!c)return!1;let d=hW[h$(a.providerId)]??[],e=h_(a.providerBaseUrl);return[...d,...e?[e]:[]].some(a=>c===a||c.endsWith(`.${a}`))})(a,d)),i=g[0]??h[0],j=g.length?"provider":h.length?"base-url":"consensus",k=i?{name:i.name,reasoning:i.reasoning,input:i.input,contextWindow:i.contextWindow,maxTokens:i.maxTokens}:(e=f.length,{name:h1(f.map(a=>a.name),e,a=>a.toLocaleLowerCase()),reasoning:h1(f.flatMap(a=>void 0===a.reasoning?[]:[a.reasoning]),e,String),input:h1(f.flatMap(a=>a.input?[a.input]:[]),e,a=>[...a].sort().join(",")),contextWindow:h1(f.flatMap(a=>void 0===a.contextWindow?[]:[a.contextWindow]),e,String),maxTokens:h1(f.flatMap(a=>void 0===a.maxTokens?[]:[a.maxTokens]),e,String)}),l=g.find(h0),m=h.find(h0),n=l?h3(l,"provider"):m?h3(m,"base-url"):function(a){let b=a.filter(h0);if(0===b.length)return{status:"unreliable",reason:"no-valid-price",support:0,total:0};if(1===b.length)return{status:"unreliable",reason:"insufficient-support",support:1,total:1};let c=new Map;for(let a of b){let b=JSON.stringify([a.cost.input,a.cost.output]),d=c.get(b);d?d.push(a):c.set(b,[a])}let d=[...c.values()].sort((a,b)=>b.length-a.length),e=d[0];if(!e)return{status:"unreliable",reason:"no-valid-price",support:0,total:b.length};let f=e.length/b.length>=.6||e.length>=5;if(d[1]?.length===e.length||!f)return{status:"unreliable",reason:"conflict",support:e.length,total:b.length};let g=h2(e.map(a=>a.cost.cacheRead??0))??0,h=h2(e.map(a=>a.cost.cacheWrite??0))??0;return{status:"reliable",method:"consensus",cost:{input:e[0].cost.input,output:e[0].cost.output,cacheRead:g,cacheWrite:h},support:e.length,total:b.length}}(f);return"reliable"===n.status&&(k.cost=n.cost),{exactMatches:f.length,metadataMethod:j,matchedProviderId:i?.providerId,matchedProviderName:i?.providerName,preset:k,price:n}}(f,b,c,d),source:h4}}let h9=new Set(["off","minimal","low","medium","high","xhigh","max"]);function ia(a,b){let c=a.toLocaleLowerCase(),d=b.filter(a=>`${a.provider}/${a.id}`.toLocaleLowerCase()===c);return d.length>0?d:b.filter(a=>a.id.toLocaleLowerCase()===c)}function ib(a,b){if(Array.isArray(a))for(let d of a){var c;if("string"!=typeof d)continue;let a=d.trim();if(!a||(c=a).includes("*")||c.includes("?")||c.includes("["))continue;let e=ia(a,b),f=a.lastIndexOf(":"),g=f>=0?a.slice(f+1):"";if(0===e.length&&f>=0&&h9.has(g)&&(e=ia(a.slice(0,f),b)),e.length<=1)continue;let h=e.map(a=>`${a.provider}/${a.id}`).sort().join(", ");throw Error(`Ambiguous enabledModels entry "${a}" matches multiple models: ${h}. Use provider/modelId.`)}}let ic="models_config_invalid";class id extends Error{constructor(a){const b=a.length>0?a:[{path:"",message:"Invalid models configuration"}];super(b.map(a=>a.path?`${a.path} ${a.message}`:a.message).join("; ")),this.code=ic,this.name="ModelsConfigValidationError",this.issues=b}}function ie(a,b,c){a.push({path:b,message:c})}function ig(a){if("string"!=typeof a||""===a.trim())return!1;try{let b=new URL(a);return("http:"===b.protocol||"https:"===b.protocol)&&b.hostname.length>0}catch{return!1}}function ih(a,b,c){(!(0,S.u4)(a)||Object.values(a).some(a=>"string"!=typeof a))&&ie(c,b,"must map header names to strings")}function ii(a){let b=[];if(!(0,S.u4)(a))throw new id([{path:"",message:"must be an object"}]);let c=io(a).providers,d=void 0===c?{}:c;if((0,S.u4)(d))for(let[a,c]of Object.entries(d)){let d=`providers.${a}`;if(!(0,S.u4)(c)){ie(b,d,"must be an object");continue}if(void 0===c.baseUrl||ig(c.baseUrl)||ie(b,`${d}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==c.api&&("string"!=typeof c.api||""===c.api.trim())&&ie(b,`${d}.api`,"must be a non-empty API identifier"),void 0!==c.auth&&"none"!==c.auth&&"apiKey"!==c.auth&&"oauth"!==c.auth&&ie(b,`${d}.auth`,"must be one of apiKey, none, or oauth"),void 0!==c.apiKey&&"string"!=typeof c.apiKey&&ie(b,`${d}.apiKey`,"must be a string"),void 0!==c.headers&&ih(c.headers,`${d}.headers`,b),void 0!==c.models&&!Array.isArray(c.models)){ie(b,`${d}.models`,"must be an array");continue}let e=Array.isArray(c.models)?c.models:[],f=new Map;for(let[a,g]of(e.length>0&&(("string"!=typeof c.baseUrl||""===c.baseUrl.trim())&&ie(b,`${d}.baseUrl`,"is required when defining custom models"),"apiKey"===(c.auth??"apiKey")&&("string"!=typeof c.apiKey||""===c.apiKey.trim())&&ie(b,`${d}.apiKey`,"is required when defining custom models unless auth is none or oauth")),e.entries())){let e=`${d}.models[${a}]`;if(!(0,S.u4)(g)){ie(b,e,"must be an object");continue}if("string"!=typeof g.id||""===g.id.trim())ie(b,`${e}.id`,"is required");else{let c=f.get(g.id);void 0!==c?ie(b,`${e}.id`,`duplicates the model id at index ${c}`):f.set(g.id,a)}for(let a of(void 0===g.baseUrl||ig(g.baseUrl)||ie(b,`${e}.baseUrl`,"must be a valid HTTP(S) URL"),void 0!==g.api&&("string"!=typeof g.api||""===g.api.trim())&&ie(b,`${e}.api`,"must be a non-empty API identifier"),("string"!=typeof c.api||""===c.api.trim())&&("string"!=typeof g.api||""===g.api.trim())&&ie(b,`${e}.api`,"must be specified at provider or model level"),["contextWindow","maxTokens"]))void 0!==g[a]&&("number"!=typeof g[a]||!Number.isFinite(g[a])||g[a]<=0)&&ie(b,`${e}.${a}`,"must be a positive finite number");if(void 0!==g.headers&&ih(g.headers,`${e}.headers`,b),void 0!==g.cost)if((0,S.u4)(g.cost))for(let a of["input","output","cacheRead","cacheWrite"]){let c=g.cost[a];void 0===c?ie(b,`${e}.cost.${a}`,"is required (cost needs input, output, cacheRead, and cacheWrite)"):("number"!=typeof c||!Number.isFinite(c)||c<0)&&ie(b,`${e}.cost.${a}`,"must be a finite non-negative number")}else ie(b,`${e}.cost`,"must be an object")}}else ie(b,"providers","must be an object");if(b.length>0)throw new id(b)}function ij(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function ik(a){if(!(0,S.u4)(a))return a;let b={...a};return delete b.originalId,b}function il(a){if(!(0,S.u4)(a))return a;let b={...a};return delete b.originalName,delete b.apiKeyConfigured,delete b.headersConfigured,Array.isArray(b.models)&&(b.models=b.models.map(ik)),b}class im extends Error{constructor(a,b){super(`${a} is not valid YAML: ${b}`),this.name="ModelsConfigParseError",this.path=a,this.detail=b}}function io(a){if(!(0,S.u4)(a.providers))return a;let b=Object.fromEntries(Object.entries(a.providers).map(([a,b])=>{if(!(0,S.u4)(b)||!Array.isArray(b.models))return[a,b];let c=b.models.filter(a=>!(0,S.u4)(a)||"string"!=typeof a.id||a.id.trim().length>0);return[a,{...b,models:c}]}));return{...a,providers:b}}function ip(){let a,b=(0,R.OK)();if(!(0,ak.existsSync)(b))return{path:b,exists:!1,config:{providers:{}}};try{a=(0,ak.readFileSync)(b,"utf8")}catch(a){return{path:b,exists:!0,config:{providers:{}},parseError:String(a)}}let c=(0,aM.Tp)(a);if(c.errors.length>0)return{path:b,exists:!0,source:a,config:{providers:{}},parseError:c.errors[0].message};let d=c.toJS();return null==d?{path:b,exists:!0,source:a,config:{providers:{}}}:(0,S.u4)(d)?{path:b,exists:!0,source:a,config:io(d)}:{path:b,exists:!0,source:a,config:{providers:{}},parseError:"the top level of models.yml must be a mapping"}}function iq(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ir(a){return(0,aM.jn)(a)&&("string"==typeof a.value||"number"==typeof a.value)?String(a.value):"string"==typeof a?a:void 0}function is(a,b){if(void 0===b||""===b.trim())return(0,aM.As)(a);let c=(0,aM.Tp)(b);return c.errors.length>0?(0,aM.As)(a):((0,aM.jh)(c.contents)?!function a(b,c,d){if((0,aM.jh)(c)&&iq(d)){let e=new Map(Object.entries(d).filter(([,a])=>void 0!==a));for(let[d,f]of(c.items=c.items.filter(a=>{let b=ir(a.key);return void 0===b||e.has(b)}),e)){let e=c.items.find(a=>ir(a.key)===d);e?e.value=a(b,e.value,f):c.set(b.createNode(d),b.createNode(f))}return c}if((0,aM.oP)(c)&&Array.isArray(d)){let e=[...c.items],f=new Map;for(let a of e){let b=function(a){if(!(0,aM.jh)(a))return;let b=a.get("id");return"string"==typeof b?b:void 0}(a);void 0===b||f.has(b)||f.set(b,a)}return c.items=d.map((c,d)=>{let g,h=iq(c)&&"string"==typeof c.id?c.id:void 0;return void 0!==h?void 0!==(g=f.get(h))&&f.delete(h):g=e[d],a(b,g,c)}),c}if((0,aM.jn)(c)&&!iq(d)&&!Array.isArray(d)&&typeof c.value==typeof d)return c.value=d,c;let e=b.createNode(d);return c&&e&&"object"==typeof c&&"object"==typeof e&&(null!=c.comment&&(e.comment=c.comment),null!=c.commentBefore&&(e.commentBefore=c.commentBefore),c.spaceBefore&&(e.spaceBefore=c.spaceBefore)),e}(c,c.contents,a):c.contents=c.createNode(a),c.toString())}function it(a){let b=(0,R.pA)();if(!(0,ak.existsSync)(b))return;let c=(0,aM.Tp)((0,ak.readFileSync)(b,"utf8"));if(c.errors.length>0)throw Error(`${b} is not valid YAML: ${c.errors[0].message}`);if(!(0,aM.jh)(c.contents))throw Error(`${b} must contain a YAML mapping`);let d=c.toJS(),e=(0,S.u4)(d)&&Array.isArray(d.disabledProviders)?d.disabledProviders.filter(a=>"string"==typeof a):[],f=e.filter(b=>b!==a);f.length!==e.length&&(c.set("disabledProviders",f),aL(b,c.toString()))}var iu=c(52676);let iv=["catalog.get","catalog.search","roles.get","roles.set","registry.get","registry.set","providers.enable","providers.get","providers.update","providers.validate","providers.test","fallback.get","fallback.set","auth.providers","auth.login.start","auth.login.poll","auth.login.confirm","auth.login.cancel","auth.apikey.get","auth.apikey.set","auth.apikey.remove","auth.logout"];class iw extends Error{constructor(a,b,c,d){super(b),this.name="ModelsRequestError",this.code=a,void 0!==c&&(this.details=c),void 0!==d&&(this.status=d)}}let ix=["--no-session","--no-extensions","--no-skills","--no-lsp"],iy="ompgui cannot manage stored API keys. Run `omp` in a terminal and use /login (or /logout), set the provider's environment variable (e.g. OPENAI_API_KEY), or configure an apiKey on a custom provider in ~/.omp/agent/models.yml.";function iz(a,b="provider"){let c=("string"==typeof a?a:void 0)?.trim();if(!c||c.length>128||/\s/.test(c))throw new iw("invalid_provider",`${b} must be a non-empty id without whitespace`);return c}function iA(a){let b=("string"==typeof a?a:void 0)?.trim();if(!b||b.length>320)throw new iw("login_token_required","token is required");return b}function iB(a,b){if(void 0===a)return;if(!Array.isArray(a))throw new iw("invalid_args",`${b} must contain non-empty strings`);let c=[];for(let d of a){if("string"!=typeof d||!d.trim())throw new iw("invalid_args",`${b} must contain non-empty strings`);c.push(d)}return c}function iC(a){try{return Buffer.byteLength(JSON.stringify(a),"utf8")}catch{throw new iw("invalid_args","config must be JSON-serializable")}}function iD(a){return a instanceof id?new iw(ic,"Invalid models configuration",{issues:a.issues}):new iw(ic,"Invalid models configuration")}let iE=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function iF(a){return a.reasoning?["off",...a.thinking?.efforts??[]]:["off"]}function iG(a){return"object"==typeof a&&null!==a&&"id"in a&&"string"==typeof a.id&&"provider"in a&&"string"==typeof a.provider}function iH(a){return"object"==typeof a&&null!==a&&"id"in a&&"string"==typeof a.id&&"name"in a&&"string"==typeof a.name&&"authenticated"in a&&"boolean"==typeof a.authenticated}function iI(a){let b="name"in a&&"string"==typeof a.name&&a.name.trim().length>0?a.name:a.id,c={id:a.id,provider:a.provider,name:b};if("reasoning"in a&&"boolean"==typeof a.reasoning&&(c.reasoning=a.reasoning),"thinking"in a){let b=a.thinking;if("object"==typeof b&&null!==b&&!Array.isArray(b)){let a="efforts"in b&&Array.isArray(b.efforts)&&b.efforts.every(a=>"string"==typeof a)?b.efforts:void 0;void 0!==a&&(c.thinking={efforts:a})}}return"contextWindow"in a&&"number"==typeof a.contextWindow&&(c.contextWindow=a.contextWindow),c}async function iJ(){let a,b;try{let b=await (0,iu.runUtilityCommand)({type:"get_available_models"},12e4);a=Array.isArray(b.models)?b.models.filter(iG).map(iI):[]}catch{return{models:[],defaultModel:null,connectedProviders:[],unavailable:!0}}let c=[];try{let a=await (0,iu.runUtilityCommand)({type:"get_login_providers"},3e4);c=Array.isArray(a.providers)?a.providers.filter(iH).map(a=>({id:a.id,name:a.name,available:!("available"in a)||"boolean"!=typeof a.available||a.available,authenticated:a.authenticated})):[]}catch{c=[]}try{b=function(){let a=(0,R.pA)();if(!(0,ak.existsSync)(a))return new Set;let b=(0,aM.Tp)((0,ak.readFileSync)(a,"utf8"));if(b.errors.length>0)throw Error(`${a} is not valid YAML: ${b.errors[0].message}`);let c=b.toJS();return(0,S.u4)(c)&&Array.isArray(c.disabledProviders)?new Set(c.disabledProviders.filter(a=>"string"==typeof a)):new Set}()}catch{b=new Set}let d={};for(let b of a)d[`${b.provider}:${b.id}`]=iF(b);let e=a.map(a=>({id:a.id,name:a.name,provider:a.provider,thinkingLevels:iF(a),supportsFastMode:"anthropic"===a.provider||"openai"===a.provider||"google"===a.provider,..."number"==typeof a.contextWindow&&Number.isFinite(a.contextWindow)&&a.contextWindow>0?{contextWindow:a.contextWindow}:{}})).sort((a,b)=>iE.compare(a.name||a.id,b.name||b.id)||iE.compare(a.provider,b.provider)||iE.compare(a.id,b.id)),f=c.filter(a=>a.authenticated).map(a=>({id:a.id,name:a.name,disabled:b.has(a.id)})),g=null;try{let b=await (0,iu.runUtilityCommand)({type:"get_state"},3e4),c=b.model?.provider,d=b.model?.id;c&&d&&a.some(a=>a.provider===c&&a.id===d)&&(g={provider:c,modelId:d})}catch{}return{models:e,defaultModel:g,thinkingLevels:d,connectedProviders:f}}function iK(a){let b={};return void 0!==a.enabledModels&&(b.enabledModels=a.enabledModels),void 0!==a.disabledProviders&&(b.disabledProviders=a.disabledProviders),void 0!==a.modelProviderOrder&&(b.modelProviderOrder=a.modelProviderOrder),void 0!==a.registryHasScopedEntries&&(b.registryHasScopedEntries=a.registryHasScopedEntries),b}async function iL(a){let b={},c=iB(a.enabledModels,"enabledModels"),d=iB(a.disabledProviders,"disabledProviders"),e=iB(a.modelProviderOrder,"modelProviderOrder");if(void 0!==c&&(b.enabledModels=c),void 0!==d&&(b.disabledProviders=d),void 0!==e&&(b.modelProviderOrder=e),void 0===b.enabledModels&&void 0===b.disabledProviders&&void 0===b.modelProviderOrder)throw new iw("invalid_args","registry.set requires at least one of enabledModels, disabledProviders, modelProviderOrder");if(void 0!==c&&c.length>0)try{let a=await (0,iu.runUtilityCommand)({type:"get_available_models"},12e4);Array.isArray(a.models)&&ib(c,a.models.filter(iG))}catch(a){if(a instanceof Error&&a.message.startsWith("Ambiguous enabledModels entry"))throw a}try{let a=a5(),c=a3(a.settings,b);a6(c)}catch(a){throw new iw("registry_write_failed",a instanceof Error?a.message:String(a))}aJ(),(0,iu.j)();let f=a5();return{settings:iK(f.settings),path:f.path}}function iM(a){let b=a.config;if(!("object"==typeof b&&null!==b&&!Array.isArray(b)))throw new iw(ic,"Invalid models configuration",{issues:[{path:"",message:"must be an object"}]});return b}async function iN(a){let b=("string"==typeof a.providerName?a.providerName:void 0)?.trim();if(!b)throw new iw("invalid_args","providerName is required");if("object"!=typeof a.provider||null===a.provider||Array.isArray(a.provider))throw new iw("invalid_args","provider is required");if("object"!=typeof a.model||null===a.model||Array.isArray(a.model))throw new iw("invalid_args","model is required");if(!("id"in a.model))throw new iw("invalid_args","model.id is required");let c=("string"==typeof a.model.id?a.model.id:void 0)?.trim();if(!c)throw new iw("invalid_args","model.id is required");let d={providers:{[b]:{...a.provider,models:[{...a.model,id:c}]}}};try{ii(d)}catch(a){throw iD(a)}let e=(0,ak.mkdtempSync)((0,am.join)((0,aI.tmpdir)(),"ompgui-model-test-"));try{(0,ak.writeFileSync)((0,am.join)(e,"models.yml"),is(d),"utf8");let a=Date.now(),{models:f}=await (0,iu._)({type:"get_available_models"},{env:{PI_CODING_AGENT_DIR:e,OMP_PROFILE:"",PI_PROFILE:"",XDG_DATA_HOME:""},timeoutMs:6e4}),g=Date.now()-a,h=Array.isArray(f)?f.find(a=>a.provider===b&&a.id===c):void 0;if(!h)throw new iw("model_test_unresolved",`Model ${b}/${c} did not resolve — check the API key and provider config`,{latencyMs:g});return{ok:!0,latencyMs:g,responseText:`${h.provider}/${h.id} resolved (configuration only; credentials were not contacted)`}}catch(a){if(a instanceof iw)throw a;throw new iw("model_test_failed",a instanceof Error?a.message:String(a))}finally{(0,ak.rmSync)(e,{recursive:!0,force:!0})}}function iO(a){let b=a.retry??{},c={chains:b.fallbackChains??{}};return void 0!==b.enabled&&(c.enabled=b.enabled),void 0!==b.maxRetries&&(c.maxRetries=b.maxRetries),void 0!==b.modelFallback&&(c.modelFallback=b.modelFallback),void 0!==b.fallbackRevertPolicy&&(c.revertPolicy=b.fallbackRevertPolicy),c}async function iP(){try{let a=await (0,iu.runUtilityCommand)({type:"get_login_providers"},3e4);return{providers:(Array.isArray(a.providers)?a.providers.filter(iH).filter(a=>!("available"in a)||!1!==a.available):[]).map(a=>({id:a.id,name:a.name,loggedIn:a.authenticated}))}}catch(a){throw new iw("auth_failed",a instanceof Error?a.message:String(a))}}async function iQ(a){let b=iz(a);try{let{models:a}=await (0,iu.runUtilityCommand)({type:"get_available_models"},12e4),{providers:c}=await (0,iu.runUtilityCommand)({type:"get_login_providers"},3e4),d=c.find(a=>a.id===b),e=a.filter(a=>a.provider===b).length;return{provider:b,displayName:d?.name??b,configured:e>0||d?.authenticated===!0,models:e}}catch(a){throw new iw("auth_failed",a instanceof Error?a.message:String(a))}}let iR=new Map;function iS(){let a=Date.now();for(let[b,c]of iR)if(a-c.createdAt>9e5){try{c.proc?.dispose()}catch{}iR.delete(b)}}async function iT(a,b){let c=b.proc;if(!c){b.phase="error",b.error="Login process is unavailable";return}try{let a=await c.waitReady(6e4);await c.negotiateProtocol(a),await c.sendCommand({type:"login",providerId:b.provider},9e5),it(b.provider),aJ(),(0,iu.j)(),b.phase="success"}catch(a){b.phase="error",b.error=a instanceof Error?a.message:String(a)}finally{try{await c.dispose()}catch{}b.proc=null,b.pendingInputId=null}}function iU(a){let b=a?.deviceId;if("string"!=typeof b||!b)throw new iw("unauthorized","device is required");return b}function iV(a,b,c){iS();let d=iR.get(a);if(!d)throw new iw("login_no_pending","No pending login for token");if(d.provider!==b)throw new iw("login_token_mismatch","Token does not match provider");if(d.deviceId!==c)throw new iw("login_device_mismatch","Login belongs to another device");return d}async function iW(a,b){let c=iz(a.provider),d=iA(a.token),e=iV(d,c,iU(b));iR.delete(d);try{await e.proc?.dispose()}catch{}return{cancelled:!0,provider:c}}async function iX(a,b){iR.delete(b);try{await a.proc?.dispose()}catch{}}async function iY(a){let b=0;for(let[c,d]of[...iR])d.deviceId===a&&(await iX(d,c),b+=1);return b}async function iZ(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new iw("invalid_args","args must be an object");if("object"!=typeof c||null===c)throw new iw("unauthorized","device is required");switch(function(a){for(let b of iv)if(b===a)return b;throw new iw("unknown_action",`Unknown models action "${a}"`)}(a)){case"catalog.get":return iJ();case"catalog.search":try{return{...await h8({query:b.query,provider:b.provider,baseUrl:b.baseUrl,limit:b.limit})}}catch(a){if(a instanceof h5)throw new iw(a.code,a.message,void 0,a.status);throw new iw("catalog_unavailable","The public model catalog is unavailable. Try again later.",void 0,502)}case"roles.get":try{let a=function(){let a=(0,R.pA)();if(!(0,ak.existsSync)(a))return{path:a,roles:{}};let b=(0,aM.Tp)((0,ak.readFileSync)(a,"utf8"));if(b.errors.length>0)throw Error(`${a} is not valid YAML: ${b.errors[0].message}`);let c=b.toJS();return(0,S.u4)(c)&&(0,S.u4)(c.modelRoles)?{path:a,roles:Object.fromEntries(Object.entries(c.modelRoles).filter(a=>"string"==typeof a[1]))}:{path:a,roles:{}}}();return{path:a.path,roles:a.roles}}catch(a){throw new iw("roles_read_failed",a instanceof Error?a.message:String(a))}case"roles.set":return function(a){if("object"!=typeof a.roles||null===a.roles||Array.isArray(a.roles))throw new iw("invalid_args","roles must be an object");let b={};for(let[c,d]of Object.entries(a.roles)){if("string"!=typeof d)continue;let a=c.trim(),e=d.trim();0===a.length||a.length>128||0===e.length||e.length>512||(b[a]=e)}try{let a=(0,R.pA)(),c=(0,ak.existsSync)(a)?(0,ak.readFileSync)(a,"utf8"):"",d=(0,aM.Tp)(c);if(d.errors.length>0)throw Error(`${a} is not valid YAML: ${d.errors[0].message}`);if((0,ak.mkdirSync)((0,am.dirname)(a),{recursive:!0}),null===d.contents)aL(a,(0,aM.As)({modelRoles:b}));else{if(!(0,aM.jh)(d.contents))throw Error(`${a} must contain a YAML mapping`);d.set("modelRoles",b),aL(a,d.toString())}}catch(a){throw new iw("roles_write_failed",a instanceof Error?a.message:String(a))}return aJ(),{roles:b}}(b);case"registry.get":try{let a=a5();return{path:a.path,settings:iK(a.settings)}}catch(a){throw new iw("registry_read_failed",a instanceof Error?a.message:String(a))}case"registry.set":return iL(b);case"providers.enable":{let a=iz(b.provider);try{it(a)}catch(a){throw new iw("provider_enable_failed",a instanceof Error?a.message:String(a))}return aJ(),(0,iu.j)(),{provider:a}}case"providers.get":let d;return(d=ip()).parseError?{providers:{},parseError:"models.yml contains invalid YAML; fix it by hand and reload",path:d.path,exists:d.exists,code:"models_config_unparseable"}:{...function(a){let b={...a,providers:{}};for(let[c,d]of Object.entries(a.providers??{})){if(!(0,S.u4)(d)){b.providers[c]=d;continue}let a={...d},e="string"==typeof d.apiKey&&d.apiKey.length>0,f=(0,S.u4)(d.headers)&&Object.keys(d.headers).length>0;delete a.apiKey,delete a.headers,a.originalName=c,Array.isArray(d.models)&&(a.models=d.models.map(a=>{if(!(0,S.u4)(a))return a;let b={...a};return delete b.headers,"string"==typeof a.id?b.originalId=a.id:delete b.originalId,b})),a.apiKeyConfigured=e,a.headersConfigured=f,b.providers[c]=a}return b}(d.config),path:d.path,exists:d.exists};case"providers.update":return function(a){let b,c=iM(a);if(iC(c)>524288)throw new iw("config_too_large","models configuration exceeds 512KiB");let d=void 0===a.mode||"partial"===a.mode?"partial":"full"===a.mode?"full":null;if(null===d)throw new iw("invalid_args","mode must be full or partial");let e=void 0!==a.overwrite&&!0===a.overwrite;if(void 0!==a.overwrite&&"boolean"!=typeof a.overwrite)throw new iw("invalid_args","overwrite must be a boolean");let f=ip();try{b=function(a,b,c){if("full"!==c&&"partial"!==c)throw new id([{path:"mode",message:"must be full or partial"}]);let d="full"===c?{...b,providers:{}}:{...a,...b,providers:{}},e=(0,S.u4)(a.providers)?a.providers:{},f=ij(b,"providers"),g=f?b.providers:void 0;if(f&&!(0,S.u4)(g))return d.providers=g,d;if(!f&&"partial"===c)return d.providers=Object.fromEntries(Object.entries(e).map(([a,b])=>[a,il(b)])),(0,S.u4)(a.providers)||(d.providers=a.providers),d;let h=(0,S.u4)(g)?Object.entries(g):[],i=[],j=[],k=new Map;for(let[a,b]of h){let d,f=`providers.${a}`;if((0,S.u4)(b)&&ij(b,"originalName")){let a=b.originalName;"string"!=typeof a?ie(i,`${f}.originalName`,"must be a string identifying an existing provider"):ij(e,a)?d=a:ie(i,`${f}.originalName`,"must identify a provider in the current configuration")}else ij(e,a)&&(d=a);if(void 0!==d){let b=k.get(d);void 0!==b?ie(i,`${f}.originalName`,`duplicates the provider identity used by providers.${b}`):k.set(d,a),"partial"===c&&d!==a&&ij(e,a)&&ie(i,f,"rename conflicts with an existing provider; choose an unused name")}j.push({targetName:a,incoming:b,sourceName:d,previous:void 0!==d&&(0,S.u4)(e[d])?e[d]:void 0})}let l="partial"===c?Object.fromEntries(Object.entries(e).map(([a,b])=>[a,il(b)])):{};for(let{targetName:a,incoming:b,sourceName:d,previous:e}of j){if(!(0,S.u4)(b)){"partial"===c&&void 0!==d&&d!==a&&delete l[d],l[a]=b;continue}"partial"===c&&void 0!==d&&d!==a&&delete l[d];let f=e?il(e):{},g={..."partial"===c?f:{},...b};ij(b,"apiKey")&&void 0!==b.apiKey?null===b.apiKey?delete g.apiKey:g.apiKey=b.apiKey:e&&ij(e,"apiKey")?g.apiKey=e.apiKey:delete g.apiKey,ij(b,"headers")&&void 0!==b.headers?null===b.headers?delete g.headers:g.headers=b.headers:e&&ij(e,"headers")?g.headers=e.headers:delete g.headers,Array.isArray(b.models)?g.models=function(a,b,c,d,e){let f=Array.isArray(a)?a:[],g=new Map,h=new Set;for(let a of f)(0,S.u4)(a)&&"string"==typeof a.id&&(h.has(a.id)||(g.has(a.id)?(g.delete(a.id),h.add(a.id)):g.set(a.id,a)));let i=new Map,j=new Map;return b.map((a,b)=>{let f,k=`${d}[${b}]`;if(!(0,S.u4)(a))return a;if(ij(a,"originalId")){let b=a.originalId;"string"!=typeof b?ie(e,`${k}.originalId`,"must be a string identifying an existing model"):h.has(b)?ie(e,`${k}.originalId`,"must identify exactly one existing model"):g.has(b)?f=b:ie(e,`${k}.originalId`,"must identify an existing model in the current configuration")}else"string"==typeof a.id&&(h.has(a.id)?ie(e,`${k}.id`,"matches multiple existing models; supply originalId"):g.has(a.id)&&(f=a.id));let l=void 0===f?void 0:g.get(f);if(void 0!==f){let c=i.get(f);void 0!==c?ie(e,ij(a,"originalId")?`${k}.originalId`:`${k}.id`,`duplicates the existing model identified at index ${c}`):i.set(f,b)}let m={..."partial"===c&&l?ik(l):{},...a};if(delete m.originalId,ij(a,"headers")&&void 0!==a.headers?null===a.headers?delete m.headers:m.headers=a.headers:l&&ij(l,"headers")?m.headers=l.headers:void 0===m.headers&&delete m.headers,"string"==typeof m.id){let a=j.get(m.id);void 0!==a?ie(e,`${k}.id`,`duplicates the model id at index ${a}`):j.set(m.id,b)}return m})}(e?.models,b.models,c,`providers.${a}.models`,i):"full"!==c||ij(b,"models")&&void 0!==b.models?"partial"===c&&ij(b,"models")&&void 0===b.models&&(e&&ij(e,"models")?g.models=f.models:delete g.models):delete g.models,l[a]=il(g)}if(i.length>0)throw new id(i);return d.providers=l,d}(f.config,c,d),ii(b)}catch(a){throw iD(a)}try{!function(a,b={}){let c=ip();if(c.parseError&&!b.overwriteUnparseable)throw new im(c.path,c.parseError);let d=is(io(a),c.parseError?void 0:c.source),e=(0,am.dirname)(c.path);(0,ak.existsSync)(e)||(0,ak.mkdirSync)(e,{recursive:!0}),aL(c.path,d)}(b,{overwriteUnparseable:e})}catch(a){if(a instanceof im)throw new iw("models_config_unparseable","models.yml is not valid YAML — fix it by hand; ompgui will not overwrite it");throw new iw("models_config_write_failed",a instanceof Error?a.message:String(a))}return aJ(),(0,iu.j)(),{success:!0,path:f.path}}(b);case"providers.validate":let e=iM(b);if(iC(e)>524288)throw new iw("config_too_large","models configuration exceeds 512KiB");try{ii(e)}catch(a){throw iD(a)}return{ok:!0};case"providers.test":return iN(b);case"fallback.get":try{let a=a5();return iO(a.settings)}catch(a){throw new iw("fallback_read_failed",a instanceof Error?a.message:String(a))}case"fallback.set":return function(a){let b={},c=!1;if(void 0!==a.chains){if("object"!=typeof a.chains||null===a.chains||Array.isArray(a.chains))throw new iw("invalid_args","chains must be an object");let d={};for(let[b,c]of Object.entries(a.chains)){if(!b.trim()||!Array.isArray(c)||c.some(a=>"string"!=typeof a||!a.trim()))throw new iw("invalid_args","fallback chains require non-empty role and model selectors");let a=[];for(let b of c)"string"==typeof b&&a.push(b);d[b]=a}b.fallbackChains=d,c=!0}if(void 0!==a.enabled){if("boolean"!=typeof a.enabled)throw new iw("invalid_args","enabled must be a boolean");b.enabled=a.enabled,c=!0}if(void 0!==a.maxRetries){if("number"!=typeof a.maxRetries||!Number.isInteger(a.maxRetries)||a.maxRetries<0||a.maxRetries>20)throw new iw("invalid_args","maxRetries must be an integer between 0 and 20");b.maxRetries=a.maxRetries,c=!0}if(void 0!==a.modelFallback){if("boolean"!=typeof a.modelFallback)throw new iw("invalid_args","modelFallback must be a boolean");b.modelFallback=a.modelFallback,c=!0}if(void 0!==a.revertPolicy){if("cooldown-expiry"!==a.revertPolicy&&"never"!==a.revertPolicy)throw new iw("invalid_args","revertPolicy must be cooldown-expiry or never");b.fallbackRevertPolicy=a.revertPolicy,c=!0}if(!c)throw new iw("invalid_args","fallback.set requires at least one of chains, enabled, maxRetries, modelFallback, revertPolicy");try{let a=a5(),c=a3(a.settings,{retry:b});return a6(c),{retry:iO(c)}}catch(a){if(a instanceof iw)throw a;throw new iw("fallback_write_failed",a instanceof Error?a.message:String(a))}}(b);case"auth.providers":return iP();case"auth.login.start":return function(a,b){let c=iz(a),d=iU(b);if(iS(),iR.size>=32)throw new iw("auth_busy","Too many pending logins; cancel one and retry");let e=`${c}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`,f={provider:c,deviceId:d,proc:null,createdAt:Date.now(),phase:"waiting",pendingInputId:null,bufferedValue:null};try{let a=new az.X({cwd:(0,aI.homedir)(),extraArgs:ix,onFrame:a=>{if("extension_ui_request"!==a.type)return;let b=a.method;if("open_url"===b)f.phase="auth",f.url=String(a.url??""),f.instructions="string"==typeof a.instructions?a.instructions:null;else if("input"===b){let b=String(a.id);if(null!==f.bufferedValue){let a=f.bufferedValue;f.bufferedValue=null,f.proc?.sendFrame({type:"extension_ui_response",id:b,value:a})}else f.pendingInputId=b,f.phase="prompt",f.message="string"==typeof a.title&&a.title?a.title:"Enter the authorization code",f.placeholder="string"==typeof a.placeholder?a.placeholder:null}else"notify"===b?("string"==typeof a.message&&(f.message=a.message),"waiting"===f.phase&&(f.phase="progress")):"cancel"===b&&null!==f.pendingInputId&&a.targetId===f.pendingInputId&&(f.pendingInputId=null,"prompt"===f.phase&&(f.phase=f.url?"auth":"waiting"))}});f.proc=a}catch(a){throw new iw("auth_failed",a instanceof Error?a.message:String(a))}return iR.set(e,f),iT(e,f),{provider:c,token:e}}(b.provider,c);case"auth.login.poll":let f,g,h,i;return f=iz(b.provider),h=iV(g=iA(b.token),f,iU(c)),i={provider:h.provider,phase:h.phase,token:g},void 0!==h.url&&(i.url=h.url),void 0!==h.instructions&&null!==h.instructions&&(i.instructions=h.instructions),void 0!==h.message&&(i.message=h.message),void 0!==h.placeholder&&null!==h.placeholder&&(i.placeholder=h.placeholder),void 0!==h.error&&(i.error=h.error),i;case"auth.login.confirm":let j=iz(b.provider),k=iV(iA(b.token),j,iU(c));if("success"===k.phase||"error"===k.phase||"cancelled"===k.phase)throw new iw("login_not_pending","Login is no longer pending");let l="string"==typeof b.code?b.code:void 0;if(!l||!l.trim()||l.length>4096)throw new iw("login_code_required","code is required");if(null!==k.pendingInputId&&k.proc){let a=k.pendingInputId;return k.pendingInputId=null,k.proc.sendFrame({type:"extension_ui_response",id:a,value:l}),{ok:!0,buffered:!1}}return k.bufferedValue=l,{ok:!0,buffered:!0};case"auth.login.cancel":return iW(b,c);case"auth.apikey.get":return iQ(b.provider);case"auth.apikey.set":throw new iw("api_key_store_unsupported",`Cannot store an API key for "${iz(b.provider)}" from ompgui. ${iy}`,void 0,501);case"auth.apikey.remove":throw new iw("api_key_remove_unsupported",`Cannot remove the API key for "${iz(b.provider)}" from ompgui. ${iy}`,void 0,501);case"auth.logout":throw new iw("logout_unsupported",`ompgui cannot disconnect "${iz(b.provider)}": omp exposes no logout command outside its own UI. ompgui cannot disconnect this provider: omp exposes no logout command outside its own UI. Run \`omp\` in a terminal and use /logout to remove the credential.`,void 0,501)}}let i$=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,i_=/\x1B_pi:c\x07/g;function i0(a){return a.replace(i_,"").replace(i$,"")}let i1=/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/,i2=[(0,am.join)(".omp","mcp.json"),(0,am.join)(".omp",".mcp.json"),"mcp.json",".mcp.json"];function i3(a){if(!(0,ak.existsSync)(a))return{path:a,servers:[],disabledServers:[]};try{if((0,ak.statSync)(a).size>5242880)throw Error("configuration is too large to inspect");let b=JSON.parse((0,ak.readFileSync)(a,"utf8"));if(!(0,S.u4)(b))throw Error("configuration must contain a JSON object");if(void 0!==b.mcpServers&&!(0,S.u4)(b.mcpServers))throw Error("mcpServers must be an object");return{path:a,servers:Object.entries(b.mcpServers??{}).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({name:a,config:b})),disabledServers:Array.isArray(b.disabledServers)?b.disabledServers.filter(a=>"string"==typeof a).sort((a,b)=>a.localeCompare(b)):[]}}catch(b){return{path:a,servers:[],disabledServers:[],error:b instanceof Error?b.message:String(b)}}}function i4(a){let b=new Set([(0,am.join)(a,".claude.json"),(0,am.join)(a,"mcp.json"),(0,am.join)(a,".mcp.json")]);try{for(let c of(0,ak.readdirSync)(a,{withFileTypes:!0})){if(!c.isDirectory()||!c.name.startsWith("."))continue;let d=(0,am.join)(a,c.name);b.add((0,am.join)(d,"mcp.json")),b.add((0,am.join)(d,"config.json")),b.add((0,am.join)(d,"config.toml"))}}catch{}return[...b].filter(b=>{try{return(0,ak.existsSync)(b)&&ap((0,ak.realpathSync)(b),new Set([(0,ak.realpathSync)(a)]))}catch{return!1}})}function i5(a,b){if(!(0,S.u4)(a)||Object.values(a).some(a=>"string"!=typeof a))throw Error(`${b} must map strings to strings`)}function i6(a){let b=(0,ak.realpathSync)(function(a){try{return(0,am.resolve)((0,bZ.execFileSync)("git",["-C",a,"rev-parse","--show-toplevel"],{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim())}catch{return(0,am.resolve)(a)}}(a)),c=new Set([b]);if(!ap((0,ak.realpathSync)(a),c))throw Error("Project root does not contain workspace");let d=i2.map(a=>(0,am.join)(b,a)),e=aq(d.find(ak.existsSync)??d[0]);if(!ap(e,c))throw Error("Access denied to MCP configuration outside project root");return{root:b,path:e}}function i7(a){let b,c=i6(a);if(!(0,ak.existsSync)(c.path))return{...c,config:{mcpServers:{}},exists:!1};if((0,ak.statSync)(c.path).size>524288)throw Error("MCP configuration is too large to edit in ompgui");try{b=JSON.parse((0,ak.readFileSync)(c.path,"utf8"))}catch{throw Error(`${c.path} is not valid JSON`)}if(!(0,S.u4)(b))throw Error(`${c.path} must contain a JSON object`);if(void 0!==b.mcpServers&&!(0,S.u4)(b.mcpServers))throw Error("mcpServers must be an object");return{...c,config:b,exists:!0}}function i8(a,b){if("string"!=typeof a||!i1.test(a))throw Error("Server name may contain letters, numbers, dots, dashes, and underscores");if(!(0,S.u4)(b))throw Error("Server configuration must be an object");let c=b.type;if(void 0!==c&&"stdio"!==c&&"http"!==c&&"sse"!==c)throw Error("Server type must be stdio, http, or sse");let d="string"==typeof b.command&&b.command.trim().length>0,e="string"==typeof b.url&&b.url.trim().length>0;if(d===e)throw Error("Provide exactly one of command or url");if((void 0===c||"stdio"===c)&&!d)throw Error("A stdio server requires a command");if(("http"===c||"sse"===c)&&!e)throw Error("An HTTP or SSE server requires a URL");if(e)try{let a=new URL(b.url);if("http:"!==a.protocol&&"https:"!==a.protocol)throw Error()}catch{throw Error("Server URL must be an http or https URL")}if(void 0!==b.args&&(!Array.isArray(b.args)||b.args.some(a=>"string"!=typeof a)))throw Error("args must be an array of strings");if(void 0!==b.env&&i5(b.env,"env"),void 0!==b.headers&&i5(b.headers,"headers"),void 0!==b.cwd&&"string"!=typeof b.cwd)throw Error("cwd must be a string");if(void 0!==b.enabled&&"boolean"!=typeof b.enabled)throw Error("enabled must be a boolean");if(void 0!==b.timeout&&(!Number.isInteger(b.timeout)||b.timeout<0||b.timeout>6e5))throw Error("timeout must be an integer between 0 and 600000");if(void 0!==b.requestIdFormat&&"number"!==b.requestIdFormat&&"string"!==b.requestIdFormat)throw Error("requestIdFormat must be number or string")}function i9(a,b){let c=`${a}.lock`,d=Date.now()+3e3;for((0,ak.mkdirSync)((0,am.dirname)(c),{recursive:!0});;){let a=null;try{a=(0,ak.openSync)(c,"wx")}catch(a){if("EEXIST"!==a.code)throw a;try{if(Date.now()-(0,ak.statSync)(c).mtimeMs>1e4){(0,ak.unlinkSync)(c);continue}}catch{continue}if(Date.now()>=d)throw Error(`Timed out waiting for ${c} (another process holds the MCP config lock)`);!function(){let a=new SharedArrayBuffer(4);Atomics.wait(new Int32Array(a),0,0,25)}();continue}try{try{(0,ak.writeSync)(a,String(process.pid))}finally{(0,ak.closeSync)(a)}return b()}finally{try{(0,ak.unlinkSync)(c)}catch{}}}}var ja=c(19771);let jb=(0,b$.promisify)(bZ.execFile);async function jc(a,b={}){let c=function(){let a=(0,am.dirname)(ja.execPath);for(let b of[(0,am.join)(a,"node_modules","npm","bin","npx-cli.js"),(0,am.join)(a,"..","lib","node_modules","npm","bin","npx-cli.js")])try{if((0,ak.existsSync)(b))return b}catch{}return null}(),{command:d,commandArgs:e}=c?{command:ja.execPath,commandArgs:[c,...a]}:{command:"npx",commandArgs:a};return jb(d,e,{timeout:b.timeout,cwd:b.cwd,env:b.env})}function jd(a){return"string"==typeof a&&/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)}let je={task:{description:"General-purpose subagent with full capabilities for delegated multi-step tasks",model:"@task",thinkingLevel:"auto",spawns:["*"],tools:["read","write","edit","bash"],systemPrompt:"General-purpose coding agent with full capabilities. Implement requested changes carefully and verify them before finishing."},scout:{description:"MUST be used for exploratory codebase research, rapid code analysis, and broad pattern searches. Fast read-only scout returning compressed context for handoff.",model:"@smol",thinkingLevel:"medium",tools:["read","grep","glob","web_search"],systemPrompt:"Explore the codebase and return concise, evidence-backed findings. Do not modify files."},reviewer:{description:"Code review specialist for quality/security analysis",model:"@slow",spawns:["scout"],tools:["read","grep","glob","bash","lsp","web_search","ast_grep"],systemPrompt:"Review code for correctness, security, maintainability, and regressions with concrete findings."},"security-reviewer":{description:"Read-only security specialist for evidence-backed repository vulnerability discovery",model:"@slow",tools:["read","grep","glob","lsp","ast_grep"],systemPrompt:"Discover potential security vulnerabilities and return concrete evidence and remediation guidance."},librarian:{description:"Researches external libraries and APIs by reading source code. Returns definitive, source-verified answers.",model:"@smol",thinkingLevel:"minimal",tools:["read","grep","glob","bash","lsp","web_search","ast_grep"],systemPrompt:"Research library APIs and source documentation; provide definitive, source-verified answers."},designer:{description:"UI/UX specialist for design implementation, review, visual refinement",model:"@designer",tools:["read","write","edit"],systemPrompt:"Design and implement polished, accessible user interfaces following project conventions."},sonic:{description:"Low-reasoning agent for strictly mechanical updates or data collection only",model:"@smol",thinkingLevel:"medium",tools:["read","write","edit"],systemPrompt:"Perform strictly mechanical updates and data collection accurately with minimal overhead."}};function jf(a,b,c){let d=a.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/),e=d?d[1]:"",f=d?a.slice(d[0].length):a,g=(0,aM.Tp)(e);if(g.errors.length>0)throw Error(`YAML parse error in ${b}: ${g.errors[0].message}`);let h=g.toJS(),i=h&&"object"==typeof h&&!Array.isArray(h)?h:{},j=String(i.name||an().basename(b,".md"));if(!jd(j))throw Error(`Invalid agent identifier "${j}" in ${b}`);return{...i,name:j,description:String(i.description||""),tools:Array.isArray(i.tools)?i.tools.map(String):void 0,model:"string"==typeof i.model||Array.isArray(i.model)?i.model:void 0,prewalk:"boolean"==typeof i.prewalk||"string"==typeof i.prewalk?i.prewalk:void 0,advisor:"boolean"==typeof i.advisor||"string"==typeof i.advisor?i.advisor:void 0,thinkingLevel:"string"==typeof i.thinkingLevel?i.thinkingLevel:void 0,blocking:"boolean"==typeof i.blocking?i.blocking:void 0,systemPrompt:String(i.systemPrompt??f.trim()),source:c,filePath:b,isShadowed:!1}}async function jg(a,b,c){try{let d=await ak.promises.readdir(a,{withFileTypes:!0}),e=[];for(let f of d)if(f.isFile()&&f.name.endsWith(".md")){let d=an().join(a,f.name);try{let a=await ak.promises.readFile(d,"utf8");e.push(jf(a,d,b))}catch(a){c.push({path:d,error:a instanceof Error?a.message:String(a)})}}return e}catch(b){return"ENOENT"!==(b&&"object"==typeof b&&"code"in b?b.code:void 0)&&c.push({path:a,error:b instanceof Error?b.message:String(b)}),[]}}function jh(a){let b=an().resolve(a);for(;;){let a=an().join(b,".omp","agents"),c=an().join(b,".omp");if((0,ak.existsSync)(a)||(0,ak.existsSync)(c)){if(!ap(aq(a),new Set([aq(b)])))throw Error(`Access denied to project agents directory: ${a}`);return a}let d=an().dirname(b);if(d===b)return null;b=d}}function ji(){return an().join((0,R.$M)(),"agents")}async function jj(a=process.cwd()){let b=[],c=jh(a),d=ji(),e=[];for(let a of(c&&e.push({dir:c,source:"project"}),e.push({dir:d,source:"user"}),(process.env.OMP_EXTENSION_DIRS||"").split(an().delimiter).filter(Boolean)))e.push({dir:an().join(a,"agents"),source:"extension"});let f=[];for(let{dir:a,source:c}of e){let d=await jg(a,c,b);f.push(...d)}for(let[a,b]of Object.entries(je))f.push({name:a,model:b.model,thinkingLevel:b.thinkingLevel,spawns:b.spawns,description:b.description||"",tools:b.tools,systemPrompt:b.systemPrompt||"",source:"bundled",isShadowed:!1});let g=new Set,h=[],i={};try{i=a5().settings.task||{}}catch{}let j=i.agentModelOverrides||{},k=i.agentPrewalk||{},l=i.agentAdvisor||{},m=new Set(Array.isArray(i.disabledAgents)?i.disabledAgents:[]);for(let a of f){let b=!g.has(a.name);g.add(a.name),a.isShadowed=!b,b&&(a.name in j&&(a.overrideModel=j[a.name]),a.name in k&&(a.prewalkOverride=k[a.name]),a.name in l&&(a.advisorOverride=l[a.name]),m.has(a.name)&&(a.disabled=!0),h.push(a))}return{agents:h,projectRoot:c?an().dirname(an().dirname(c)):void 0,...b.length>0?{diagnostics:b}:{}}}async function jk(a){let b,c;if("user"===a.scope)c=aq((0,R.$M)()),b=ji();else{let d=a.cwd||process.cwd(),e=await as();if(!at(d,e))throw Error(`Access denied to project path: ${d}`);if(b=jh(d)||an().join(an().resolve(d),".omp","agents"),!at(c=await ak.promises.realpath(an().dirname(an().dirname(b))),e))throw Error(`Access denied to project root: ${c}`)}let d=aq(b);if(!ap(d,new Set([c])))throw Error(`Access denied to agents directory: ${b}`);return d}async function jl(a){if(!jd(a.name))throw Error(`Invalid agent identifier: "${a.name}"`);let b=await jk(a),c=aq(an().join(b,`${a.name}.md`));if(!ap(c,new Set([b])))throw Error(`Access denied to target agent file: ${c}`);return await ak.promises.mkdir(b,{recursive:!0}),c}function jm(a){let b={name:a.name,description:a.description};for(let[c,d]of(a.tools&&a.tools.length>0&&(b.tools=a.tools),void 0!==a.model&&(b.model=a.model),void 0!==a.thinkingLevel&&(b.thinkingLevel=a.thinkingLevel),void 0!==a.prewalk&&(b.prewalk=a.prewalk),void 0!==a.advisor&&(b.advisor=a.advisor),Object.entries(a)))"name"===c||"description"===c||"tools"===c||"model"===c||"thinkingLevel"===c||"prewalk"===c||"advisor"===c||"systemPrompt"===c||["scope","cwd","source","filePath","isShadowed","overrideModel","prewalkOverride","advisorOverride","disabled"].includes(c)||void 0===d||(b[c]=d);let c=(0,aM.As)(b).trim(),d=(a.systemPrompt||"").trim();return`---
|
|
79
79
|
${c}
|
|
80
80
|
---
|
|
81
81
|
|
|
82
82
|
${d}
|
|
83
|
-
`}async function jj(a){let b=await jh(a);if((0,ak.existsSync)(b))throw Error(`Agent "${a.name}" already exists in ${a.scope} scope`);return aL(b,ji(a)),b}async function jk(a){let b=await jh(a);if(!(0,ak.existsSync)(b))throw Error(`Agent "${a.name}" not found in ${a.scope} scope`);let c=jb(await ak.promises.readFile(b,"utf8"),b,a.scope);return aL(b,ji({...c,name:a.name,description:a.description??c.description,tools:a.tools??c.tools,model:a.model??c.model,thinkingLevel:a.thinkingLevel??c.thinkingLevel,blocking:a.blocking??c.blocking,prewalk:a.prewalk??c.prewalk,advisor:a.advisor??c.advisor,systemPrompt:a.systemPrompt??c.systemPrompt})),b}async function jl(a){let b=await jh(a);if(!(0,ak.existsSync)(b))throw Error(`Agent "${a.name}" not found in ${a.scope} scope`);await ak.promises.unlink(b)}async function jm(a){let b=await jg(a);await ak.promises.mkdir(b,{recursive:!0});let c=0;for(let[d,e]of Object.entries(ja)){let f=an().join(b,`${d}.md`);!(!a.force&&(0,ak.existsSync)(f))&&(aL(f,ji({name:d,model:e.model,thinkingLevel:e.thinkingLevel,spawns:e.spawns,description:e.description||"",tools:e.tools,systemPrompt:e.systemPrompt||""})),c++)}return{targetDir:b,count:c}}function jn(a){try{let b=JSON.parse((0,ak.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function jo(a,b){let c=(0,am.relative)((0,am.resolve)(b),(0,am.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${am.sep}`)&&!(0,am.isAbsolute)(c)}function jp(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}function jq(a){let b=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(a);if(!b)return{frontmatter:{},body:a};try{let c=(0,aM.qg)(b[1]);return{frontmatter:c&&"object"==typeof c&&!Array.isArray(c)?c:{},body:a.slice(b[0].length)}}catch{return{frontmatter:{},body:a.slice(b[0].length)}}}function jr(a){let b=(0,aI.homedir)(),c=(0,R.$M)(),d=function(a){let b=(0,aI.homedir)(),c=[],d=am.resolve(a);for(;c.push(d),!(0,ak.existsSync)(am.join(d,".git"))&&d!==b;){let a=am.dirname(d);if(a===d)break;d=a}return c}(a),e=d.filter(a=>a!==b),f=[];for(let a of e)f.push({dir:am.join(a,".omp","skills"),source:".omp",scope:"project",requireDescription:!0});f.push({dir:am.join(c,"skills"),source:".omp",scope:"user",requireDescription:!0});let g=process.env.CLAUDE_CONFIG_DIR||am.join(b,".claude");for(let a of(f.push({dir:am.join(g,"skills"),source:".claude",scope:"user"}),e))f.push({dir:am.join(a,".claude","skills"),source:".claude",scope:"project"});for(let a of e)f.push({dir:am.join(a,".agent","skills"),source:".agents",scope:"project"}),f.push({dir:am.join(a,".agents","skills"),source:".agents",scope:"project"});f.push({dir:am.join(b,".agent","skills"),source:".agents",scope:"user"}),f.push({dir:am.join(b,".agents","skills"),source:".agents",scope:"user"}),f.push({dir:am.join(b,".codex","skills"),source:".codex",scope:"user"}),f.push({dir:am.join(a,".codex","skills"),source:".codex",scope:"project"});let h=d[d.length-1];return f.push({dir:am.join(h,".github","skills"),source:".github",scope:"project",requireDescription:!0}),f.push({dir:am.join(c,"managed-skills"),source:"managed",scope:"user",requireDescription:!0}),f}function js(a){return jr(a??(0,aI.homedir)()).map(a=>a.dir)}let jt=["disable-model-invocation","disableModelInvocation","hide"],ju=jt[0];function jv(a){return jt.some(b=>{var c;return!0===(c=a[b])||"true"===c})}let jw=/^---\r?\n([\s\S]*?)\r?\n---(\r?\n|$)/,jx=RegExp(`^(?:${jt.join("|")})[ \\t]*:.*$`);async function jy(a,b){let c;try{let b=Reflect.get(ak.promises,"readdir");c=await b(a.dir,{withFileTypes:!0})}catch(c){return"ENOENT"!==c.code&&b.push({type:"warning",message:`Failed to read skills directory: ${String(c)}`,path:a.dir}),[]}let d=[];return await Promise.all(c.map(async c=>{let e;if(c.name.startsWith(".")||!c.isDirectory()&&!c.isSymbolicLink())return;let f=am.join(a.dir,c.name,"SKILL.md");try{e=await ak.promises.readFile(f,"utf8")}catch(a){"ENOENT"!==a.code&&b.push({type:"warning",message:"Failed to read skill file",path:f});return}let{frontmatter:g}=jq(e);if(!1===g.enabled)return;let h="string"==typeof g.description?g.description:"";if(a.requireDescription&&!h)return;let i=g.name,j="string"==typeof i&&i.trim()?i.trim():c.name;d.push({name:j,description:h,filePath:f,baseDir:am.join(a.dir,c.name),disableModelInvocation:jv(g),sourceInfo:{source:a.source,scope:a.scope}})})),d}async function jz(a){let b=[],c=new Map;for(let d of jr(a))for(let a of(await jy(d,b)))c.has(a.name)||c.set(a.name,a);return{skills:[...c.values()].sort((a,b)=>{let c=a.name.toLowerCase().localeCompare(b.name.toLowerCase());return 0!==c?c:a.filePath.localeCompare(b.filePath)}),diagnostics:b}}async function jA(a){let{skills:b,diagnostics:c}=await jz(a);return{skills:function(a,{cwd:b,agentDir:c,globalLockPath:d=function(a={}){let b=a.homeDir??(0,aI.homedir)(),c=a.xdgStateHome??(void 0===a.homeDir?process.env.XDG_STATE_HOME:void 0);return c?(0,am.join)(c,"skills",".skill-lock.json"):(0,am.join)(b,".agents",".skill-lock.json")}(),projectLockPath:e=(0,am.join)(b,"skills-lock.json")}){let f=jn(d),g=jn(e),h=[(0,am.join)(c,"skills"),(0,am.join)((0,aI.homedir)(),".agents","skills")],i=[(0,am.join)(b,".omp","skills"),(0,am.join)(b,".agents","skills")];return a.map(a=>{if(!(0,ak.existsSync)(a.filePath))return a;let b=h.some(b=>jo(a.filePath,b))?jp(f,a.name,"global"):i.some(b=>jo(a.filePath,b))?jp(g,a.name,"project"):void 0;return b?{...a,install:b}:a})}(b,{cwd:a,agentDir:(0,R.$M)()}),diagnostics:c}}var jB=c(79748);let jC=process.env.SKILLS_API_URL||"https://skills.sh",jD=(0,b$.promisify)(bZ.execFile);class jE extends Error{constructor(a){super(`HTTP ${a}`),this.status=a}}function jF(a){let b=a.lastIndexOf("@");return b>=0?a.slice(b+1):a}function jG(a){let b=a.replace(/\\/g,"/");return b.toLowerCase().endsWith("/skill.md")?b=b.slice(0,-9):b.toLowerCase().endsWith("skill.md")&&(b=b.slice(0,-8)),b.replace(/\/$/,"")}function jH(a,b,c,d){return{package:a.package,scope:a.scope,state:b,currentVersion:a.versionHash,latestVersion:c,message:d}}async function jI(a,b,c){let d=await b(a,{cache:"no-store",headers:c,signal:AbortSignal.timeout(15e3)});if(!d.ok)throw new jE(d.status);return d.json()}async function jJ(a){let b=`https://github.com/${a.source}.git`,c=a.ref||"HEAD",d=jG(a.skillPath),e=await (0,jB.mkdtemp)((0,am.join)((0,aI.tmpdir)(),"omp-web-skill-check-"));try{await jD("git",["init","--bare",e],{timeout:3e4}),await jD("git",[`--git-dir=${e}`,"fetch","--depth=1","--filter=blob:none","--no-tags",b,c],{timeout:3e4});let a=d?`FETCH_HEAD:${d}`:"FETCH_HEAD^{tree}",{stdout:f}=await jD("git",[`--git-dir=${e}`,"rev-parse",a],{timeout:3e4}),g=f.trim();if(!/^[0-9a-f]{40}$/i.test(g))throw Error("Invalid Git tree hash");return g}finally{await (0,jB.rm)(e,{recursive:!0,force:!0})}}async function jK(a,b){let c,d=a.ref||"HEAD",e=`https://api.github.com/repos/${a.source}/git/trees/${encodeURIComponent(d)}?recursive=1`,f={Accept:"application/vnd.github.v3+json","User-Agent":"omp-web"};b.githubToken&&(f.Authorization=`Bearer ${b.githubToken}`);let g=jG(a.skillPath);try{let a=await jI(e,b.fetcher,f);if(c="string"!=typeof a.sha||g?void 0:a.sha,g&&Array.isArray(a.tree)){let b=a.tree.find(a=>"tree"===a.type&&a.path===g);b&&"string"==typeof b.sha&&(c=b.sha)}}catch(d){if(!(d instanceof jE)||![401,403,429].includes(d.status))throw d;c=await b.resolveGitTreeHash(a)}return c?jH(a,c===a.versionHash?"up-to-date":"update-available",c):jH(a,"error",void 0,"Remote skill path was not found.")}async function jL(a,b){let[c,d]=a.source.split("/"),e=jF(a.package).toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),f=`${b.skillsApiBase}/api/download/${encodeURIComponent(c)}/${encodeURIComponent(d)}/${encodeURIComponent(e)}`,g=await jI(f,b.fetcher),h="string"==typeof g.hash?g.hash:void 0;return h?jH(a,h===a.versionHash?"up-to-date":"update-available",h):jH(a,"error",void 0,"skills.sh did not return a version hash.")}async function jM(a,b={}){if(!a.canCheckForUpdates||!a.versionHash||!a.skillPath)return jH(a,"unsupported",void 0,"This lock entry cannot be checked automatically.");let c={...b,fetcher:b.fetcher??fetch,skillsApiBase:b.skillsApiBase??jC,resolveGitTreeHash:b.resolveGitTreeHash??jJ};try{return"global"===a.scope?await jK(a,c):await jL(a,c)}catch(b){return jH(a,"error",void 0,b instanceof Error?b.message:String(b))}}async function jN(a,b={}){let c=b.fetcher??fetch,d=new Map,e=async(a,b)=>{let e=d.get(a);return e||(e=c(a,b),d.set(a,e)),(await e).clone()};return Promise.all(a.map(a=>jM(a,{...b,fetcher:e})))}async function jO(a){let b=a.trim();if(!at(b,await as()))throw new bM("access_denied","Path is outside allowed workspaces");return b}async function jP(a){let b=await jO(a),c=(await jA(b)).skills.map(a=>({name:a.name,description:a.description,filePath:a.filePath,disableModelInvocation:a.disableModelInvocation,...a.sourceInfo.scope?{scope:a.sourceInfo.scope}:{}}));return{cwd:b,skills:c}}async function jQ(a,b,c){let d=await jO(a);if("SKILL.md"!==(0,P.basename)(b))throw new bM("not_a_skill_file","not a SKILL.md file");if(!(0,O.existsSync)(b))throw new bM("file_not_found","file not found");let e=new Set(await as());for(let a of js(d))e.add(a);let f=(0,O.realpathSync)(b);if(!at(f,e))throw new bM("access_denied","Path is outside allowed workspaces");let g=(0,O.readFileSync)(f,"utf8"),h=function(a,b){let c,d=jw.exec(a);if(!d)return b?`---
|
|
84
|
-
${
|
|
83
|
+
`}async function jn(a){let b=await jl(a);if((0,ak.existsSync)(b))throw Error(`Agent "${a.name}" already exists in ${a.scope} scope`);return aL(b,jm(a)),b}async function jo(a){let b=await jl(a);if(!(0,ak.existsSync)(b))throw Error(`Agent "${a.name}" not found in ${a.scope} scope`);let c=jf(await ak.promises.readFile(b,"utf8"),b,a.scope);return aL(b,jm({...c,name:a.name,description:a.description??c.description,tools:a.tools??c.tools,model:a.model??c.model,thinkingLevel:a.thinkingLevel??c.thinkingLevel,blocking:a.blocking??c.blocking,prewalk:a.prewalk??c.prewalk,advisor:a.advisor??c.advisor,systemPrompt:a.systemPrompt??c.systemPrompt})),b}async function jp(a){let b=await jl(a);if(!(0,ak.existsSync)(b))throw Error(`Agent "${a.name}" not found in ${a.scope} scope`);await ak.promises.unlink(b)}async function jq(a){let b=await jk(a);await ak.promises.mkdir(b,{recursive:!0});let c=0;for(let[d,e]of Object.entries(je)){let f=an().join(b,`${d}.md`);!(!a.force&&(0,ak.existsSync)(f))&&(aL(f,jm({name:d,model:e.model,thinkingLevel:e.thinkingLevel,spawns:e.spawns,description:e.description||"",tools:e.tools,systemPrompt:e.systemPrompt||""})),c++)}return{targetDir:b,count:c}}function jr(a){try{let b=JSON.parse((0,ak.readFileSync)(a,"utf8"));return b.skills&&"object"==typeof b.skills?b.skills:{}}catch{return{}}}function js(a,b){let c=(0,am.relative)((0,am.resolve)(b),(0,am.resolve)(a));return""!==c&&".."!==c&&!c.startsWith(`..${am.sep}`)&&!(0,am.isAbsolute)(c)}function jt(a,b,c){var d;let e=function(a,b){if(a[b])return a[b];let c=b.toLowerCase(),d=Object.keys(a).find(a=>a.toLowerCase()===c);return d?a[d]:void 0}(a,b);if(!e||"string"!=typeof e.source||!e.source.trim())return;let f="string"==typeof e.sourceType?e.sourceType:void 0,g=(d=e.source.trim(),"github"!==f?d.replace(/\/$/,""):d.replace(/^git\+/,"").replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/\.git$/,"").replace(/\/$/,""));if(!g)return;let h="string"==typeof e.skillPath?e.skillPath:void 0,i="string"==typeof e.ref?e.ref:void 0,j="global"===c?e.skillFolderHash:e.computedHash,k="string"==typeof j&&j?j:void 0,l="github"===f&&/^[\w.-]+\/[\w.-]+$/.test(g);return{package:`${g}@${b}`,scope:c,source:g,sourceType:f,skillsShUrl:"local"===f?void 0:function(a,b){if(!a||a.includes("://")||a.startsWith("git@"))return;let c=a.split("/").filter(Boolean).map(encodeURIComponent).join("/");if(c)return`https://skills.sh/${c}/${encodeURIComponent(b)}`}(g,b),...h&&{skillPath:h},...i&&{ref:i},...k&&{versionHash:k},canCheckForUpdates:!!(l&&h&&k&&("global"===c||!i))}}function ju(a){let b=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(a);if(!b)return{frontmatter:{},body:a};try{let c=(0,aM.qg)(b[1]);return{frontmatter:c&&"object"==typeof c&&!Array.isArray(c)?c:{},body:a.slice(b[0].length)}}catch{return{frontmatter:{},body:a.slice(b[0].length)}}}function jv(a){let b=(0,aI.homedir)(),c=(0,R.$M)(),d=function(a){let b=(0,aI.homedir)(),c=[],d=am.resolve(a);for(;c.push(d),!(0,ak.existsSync)(am.join(d,".git"))&&d!==b;){let a=am.dirname(d);if(a===d)break;d=a}return c}(a),e=d.filter(a=>a!==b),f=[];for(let a of e)f.push({dir:am.join(a,".omp","skills"),source:".omp",scope:"project",requireDescription:!0});f.push({dir:am.join(c,"skills"),source:".omp",scope:"user",requireDescription:!0});let g=process.env.CLAUDE_CONFIG_DIR||am.join(b,".claude");for(let a of(f.push({dir:am.join(g,"skills"),source:".claude",scope:"user"}),e))f.push({dir:am.join(a,".claude","skills"),source:".claude",scope:"project"});for(let a of e)f.push({dir:am.join(a,".agent","skills"),source:".agents",scope:"project"}),f.push({dir:am.join(a,".agents","skills"),source:".agents",scope:"project"});f.push({dir:am.join(b,".agent","skills"),source:".agents",scope:"user"}),f.push({dir:am.join(b,".agents","skills"),source:".agents",scope:"user"}),f.push({dir:am.join(b,".codex","skills"),source:".codex",scope:"user"}),f.push({dir:am.join(a,".codex","skills"),source:".codex",scope:"project"});let h=d[d.length-1];return f.push({dir:am.join(h,".github","skills"),source:".github",scope:"project",requireDescription:!0}),f.push({dir:am.join(c,"managed-skills"),source:"managed",scope:"user",requireDescription:!0}),f}function jw(a){return jv(a??(0,aI.homedir)()).map(a=>a.dir)}let jx=["disable-model-invocation","disableModelInvocation","hide"],jy=jx[0];function jz(a){return jx.some(b=>{var c;return!0===(c=a[b])||"true"===c})}let jA=/^---\r?\n([\s\S]*?)\r?\n---(\r?\n|$)/,jB=RegExp(`^(?:${jx.join("|")})[ \\t]*:.*$`);async function jC(a,b){let c;try{let b=Reflect.get(ak.promises,"readdir");c=await b(a.dir,{withFileTypes:!0})}catch(c){return"ENOENT"!==c.code&&b.push({type:"warning",message:`Failed to read skills directory: ${String(c)}`,path:a.dir}),[]}let d=[];return await Promise.all(c.map(async c=>{let e;if(c.name.startsWith(".")||!c.isDirectory()&&!c.isSymbolicLink())return;let f=am.join(a.dir,c.name,"SKILL.md");try{e=await ak.promises.readFile(f,"utf8")}catch(a){"ENOENT"!==a.code&&b.push({type:"warning",message:"Failed to read skill file",path:f});return}let{frontmatter:g}=ju(e);if(!1===g.enabled)return;let h="string"==typeof g.description?g.description:"";if(a.requireDescription&&!h)return;let i=g.name,j="string"==typeof i&&i.trim()?i.trim():c.name;d.push({name:j,description:h,filePath:f,baseDir:am.join(a.dir,c.name),disableModelInvocation:jz(g),sourceInfo:{source:a.source,scope:a.scope}})})),d}async function jD(a){let b=[],c=new Map;for(let d of jv(a))for(let a of(await jC(d,b)))c.has(a.name)||c.set(a.name,a);return{skills:[...c.values()].sort((a,b)=>{let c=a.name.toLowerCase().localeCompare(b.name.toLowerCase());return 0!==c?c:a.filePath.localeCompare(b.filePath)}),diagnostics:b}}async function jE(a){let{skills:b,diagnostics:c}=await jD(a);return{skills:function(a,{cwd:b,agentDir:c,globalLockPath:d=function(a={}){let b=a.homeDir??(0,aI.homedir)(),c=a.xdgStateHome??(void 0===a.homeDir?process.env.XDG_STATE_HOME:void 0);return c?(0,am.join)(c,"skills",".skill-lock.json"):(0,am.join)(b,".agents",".skill-lock.json")}(),projectLockPath:e=(0,am.join)(b,"skills-lock.json")}){let f=jr(d),g=jr(e),h=[(0,am.join)(c,"skills"),(0,am.join)((0,aI.homedir)(),".agents","skills")],i=[(0,am.join)(b,".omp","skills"),(0,am.join)(b,".agents","skills")];return a.map(a=>{if(!(0,ak.existsSync)(a.filePath))return a;let b=h.some(b=>js(a.filePath,b))?jt(f,a.name,"global"):i.some(b=>js(a.filePath,b))?jt(g,a.name,"project"):void 0;return b?{...a,install:b}:a})}(b,{cwd:a,agentDir:(0,R.$M)()}),diagnostics:c}}var jF=c(79748);let jG=process.env.SKILLS_API_URL||"https://skills.sh",jH=(0,b$.promisify)(bZ.execFile);class jI extends Error{constructor(a){super(`HTTP ${a}`),this.status=a}}function jJ(a){let b=a.lastIndexOf("@");return b>=0?a.slice(b+1):a}function jK(a){let b=a.replace(/\\/g,"/");return b.toLowerCase().endsWith("/skill.md")?b=b.slice(0,-9):b.toLowerCase().endsWith("skill.md")&&(b=b.slice(0,-8)),b.replace(/\/$/,"")}function jL(a,b,c,d){return{package:a.package,scope:a.scope,state:b,currentVersion:a.versionHash,latestVersion:c,message:d}}async function jM(a,b,c){let d=await b(a,{cache:"no-store",headers:c,signal:AbortSignal.timeout(15e3)});if(!d.ok)throw new jI(d.status);return d.json()}async function jN(a){let b=`https://github.com/${a.source}.git`,c=a.ref||"HEAD",d=jK(a.skillPath),e=await (0,jF.mkdtemp)((0,am.join)((0,aI.tmpdir)(),"omp-web-skill-check-"));try{await jH("git",["init","--bare",e],{timeout:3e4}),await jH("git",[`--git-dir=${e}`,"fetch","--depth=1","--filter=blob:none","--no-tags",b,c],{timeout:3e4});let a=d?`FETCH_HEAD:${d}`:"FETCH_HEAD^{tree}",{stdout:f}=await jH("git",[`--git-dir=${e}`,"rev-parse",a],{timeout:3e4}),g=f.trim();if(!/^[0-9a-f]{40}$/i.test(g))throw Error("Invalid Git tree hash");return g}finally{await (0,jF.rm)(e,{recursive:!0,force:!0})}}async function jO(a,b){let c,d=a.ref||"HEAD",e=`https://api.github.com/repos/${a.source}/git/trees/${encodeURIComponent(d)}?recursive=1`,f={Accept:"application/vnd.github.v3+json","User-Agent":"omp-web"};b.githubToken&&(f.Authorization=`Bearer ${b.githubToken}`);let g=jK(a.skillPath);try{let a=await jM(e,b.fetcher,f);if(c="string"!=typeof a.sha||g?void 0:a.sha,g&&Array.isArray(a.tree)){let b=a.tree.find(a=>"tree"===a.type&&a.path===g);b&&"string"==typeof b.sha&&(c=b.sha)}}catch(d){if(!(d instanceof jI)||![401,403,429].includes(d.status))throw d;c=await b.resolveGitTreeHash(a)}return c?jL(a,c===a.versionHash?"up-to-date":"update-available",c):jL(a,"error",void 0,"Remote skill path was not found.")}async function jP(a,b){let[c,d]=a.source.split("/"),e=jJ(a.package).toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),f=`${b.skillsApiBase}/api/download/${encodeURIComponent(c)}/${encodeURIComponent(d)}/${encodeURIComponent(e)}`,g=await jM(f,b.fetcher),h="string"==typeof g.hash?g.hash:void 0;return h?jL(a,h===a.versionHash?"up-to-date":"update-available",h):jL(a,"error",void 0,"skills.sh did not return a version hash.")}async function jQ(a,b={}){if(!a.canCheckForUpdates||!a.versionHash||!a.skillPath)return jL(a,"unsupported",void 0,"This lock entry cannot be checked automatically.");let c={...b,fetcher:b.fetcher??fetch,skillsApiBase:b.skillsApiBase??jG,resolveGitTreeHash:b.resolveGitTreeHash??jN};try{return"global"===a.scope?await jO(a,c):await jP(a,c)}catch(b){return jL(a,"error",void 0,b instanceof Error?b.message:String(b))}}async function jR(a,b={}){let c=b.fetcher??fetch,d=new Map,e=async(a,b)=>{let e=d.get(a);return e||(e=c(a,b),d.set(a,e)),(await e).clone()};return Promise.all(a.map(a=>jQ(a,{...b,fetcher:e})))}async function jS(a){let b=a.trim();if(!at(b,await as()))throw new bM("access_denied","Path is outside allowed workspaces");return b}async function jT(a){let b=await jS(a),c=(await jE(b)).skills.map(a=>({name:a.name,description:a.description,filePath:a.filePath,disableModelInvocation:a.disableModelInvocation,...a.sourceInfo.scope?{scope:a.sourceInfo.scope}:{}}));return{cwd:b,skills:c}}async function jU(a,b,c){let d=await jS(a);if("SKILL.md"!==(0,P.basename)(b))throw new bM("not_a_skill_file","not a SKILL.md file");if(!(0,O.existsSync)(b))throw new bM("file_not_found","file not found");let e=new Set(await as());for(let a of jw(d))e.add(a);let f=(0,O.realpathSync)(b);if(!at(f,e))throw new bM("access_denied","Path is outside allowed workspaces");let g=(0,O.readFileSync)(f,"utf8"),h=function(a,b){let c,d=jA.exec(a);if(!d)return b?`---
|
|
84
|
+
${jy}: true
|
|
85
85
|
---
|
|
86
|
-
${a}`:a;let e=d[0].includes("\r\n")?"\r\n":"\n",f=d[1].split(/\r?\n/),g=f.reduce((a,b,c)=>(
|
|
87
|
-
`),{path:c.path}})}(await
|
|
88
|
-
`),{path:a.path}})}catch{throw new bM("mcp_write_failed","Unable to write MCP configuration")}return{name:b}}let jY=process.env.SKILLS_API_URL||"https://skills.sh",jZ=/\x1B\[[0-9;]*m/g;async function j$(a,b=10){let c=a.trim();if(!c)throw new bM("invalid_query","query is required");let d=Math.min(20,Math.max(1,Math.floor(b)||10));try{let a=await fetch(`${jY}/api/search?q=${encodeURIComponent(c)}&limit=${d}`,{cache:"no-store"});if(!a.ok)throw Error(`skills.sh search failed: HTTP ${a.status}`);let b=await a.json();if("object"!=typeof b||null===b||!("skills"in b)||!Array.isArray(b.skills))throw Error("Invalid skills search response");let e=[];for(let a of b.skills){if("object"!=typeof a||null===a||Array.isArray(a))continue;let b="name"in a&&"string"==typeof a.name?a.name.trim():void 0,c="source"in a&&"string"==typeof a.source?a.source.trim():void 0,f="id"in a&&"string"==typeof a.id?a.id.trim():void 0;if(!b||!c&&!f)continue;let g="installs"in a&&"number"==typeof a.installs?a.installs:0;if(e.push({package:`${c||f}@${b}`,...g>0?{installs:`${g} installs`}:{},...f?{url:`${jY}/${f}`}:{}}),e.length>=d)break}return{query:c,results:e}}catch{let{stdout:a,stderr:b}=await i8(["skills","find",c],{timeout:2e4,env:{...process.env,FORCE_COLOR:"0"}});return{query:c,results:(function(a){let b=a.replace(jZ,""),c=[],d=b.split("\n");for(let a=0;a<d.length;a++){let b=d[a].trim().match(/^([\w.\-]+\/[\w.\-@:]+)\s+([\d.,]+[KMB]?\s+installs)$/);if(b){let e=d[a+1]?.trim().replace(/^└\s*/,"");c.push({package:b[1],installs:b[2],...e?.startsWith("https://")?{url:e}:{}})}}return c})(a+b).slice(0,d)}}}async function j_(a,b,c){let d,e=a.trim();if(!e)throw new bM("invalid_package","package is required");let f="project"!==b;if(f)c?.trim()&&(d=await jO(c));else{if(!c?.trim())throw new bM("invalid_cwd","cwd is required for project install");d=await jO(c)}let g=["skills","add",e,"-y","--agent","universal"];f&&g.push("-g");try{let{stdout:a,stderr:b}=await i8(g,{timeout:6e4,cwd:d,env:{...process.env,FORCE_COLOR:"0"}}),c=(a+b).replace(jZ,"");if(!/Installation complete|Installed \d+ skill/.test(c))throw new bM("skill_install_failed",c.slice(-300)||"Install failed")}catch(a){if(a instanceof bM)throw a;throw new bM("skill_install_failed",(((a.stdout??"")+(a.stderr??"")).replace(jZ,"")||a.message||String(a)).slice(-300)||"Install failed")}return{package:e,scope:f?"global":"project"}}async function j0(a){let b=a?.trim()?await jO(a):void 0,c=(await jf(b??process.cwd())).agents.map(a=>({name:a.name,description:a.description,source:a.source,...a.filePath?{filePath:a.filePath}:{},systemPrompt:a.systemPrompt,...a.disabled?{disabled:!0}:{}}));return b?{cwd:b,agents:c}:{agents:c}}async function j1(a){let b,c=a.name.trim(),d=a.description.trim();if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(c))throw new bM("invalid_name","name must be kebab-case");if(!d)throw new bM("invalid_description","description is required");let e={...void 0!==a.tools?{tools:a.tools}:{},...void 0!==a.model?{model:a.model}:{},...void 0!==a.thinkingLevel?{thinkingLevel:a.thinkingLevel}:{},...void 0!==a.prewalk?{prewalk:a.prewalk}:{},...void 0!==a.advisor?{advisor:a.advisor}:{},...void 0!==a.blocking?{blocking:a.blocking}:{},...a.cwd?.trim()?{cwd:a.cwd.trim()}:{}};try{b=await jj({scope:a.scope,name:c,description:d,systemPrompt:a.systemPrompt,...e})}catch(g){let f=g instanceof Error?g.message:String(g);if(/already exists/i.test(f))try{b=await jk({scope:a.scope,name:c,description:d,systemPrompt:a.systemPrompt,...e})}catch(a){throw new bM("agent_save_failed",a instanceof Error?a.message:String(a))}else throw new bM("agent_save_failed",f)}return{name:c,filePath:b}}async function j2(a){try{await jl({name:a.name,scope:a.scope,...a.cwd?.trim()?{cwd:a.cwd.trim()}:{}})}catch(a){throw new bM("agent_delete_failed",a instanceof Error?a.message:String(a))}return{name:a.name}}async function j3(a){let b=a.name.trim();if(!b)throw new bM("invalid_name","name is required");let c=a.cwd?.trim()?await jO(a.cwd):void 0,d=(await jf(c??process.cwd())).agents.find(c=>c.name===b&&(!a.scope||c.source===a.scope));if(!d)throw new bM("agent_not_found",`Agent "${b}" was not found`);return{name:d.name,description:d.description,source:d.source,...d.filePath?{filePath:d.filePath}:{},...d.tools?{tools:d.tools}:{},...void 0!==d.model?{model:d.model}:{},...void 0!==d.thinkingLevel?{thinkingLevel:d.thinkingLevel}:{},...void 0!==d.prewalk?{prewalk:d.prewalk}:{},...void 0!==d.advisor?{advisor:d.advisor}:{},...void 0!==d.blocking?{blocking:d.blocking}:{},systemPrompt:d.systemPrompt,...d.disabled?{disabled:!0}:{},...d.isShadowed?{isShadowed:!0}:{},...void 0!==d.overrideModel?{overrideModel:d.overrideModel}:{},...void 0!==d.prewalkOverride?{prewalkOverride:d.prewalkOverride}:{},...void 0!==d.advisorOverride?{advisorOverride:d.advisorOverride}:{}}}async function j4(a){let b=a.cwd?.trim()?await jO(a.cwd):void 0;try{return await jm({scope:a.scope,...b?{cwd:b}:{},...void 0!==a.force?{force:a.force}:{}})}catch(a){throw new bM("agent_unpack_failed",a instanceof Error?a.message:String(a))}}async function j5(a,b){let c=await jO(a),d=b.trim();if("SKILL.md"!==(0,P.basename)(d))throw new bM("not_a_skill_file","not a SKILL.md file");let e=(await jA(c)).skills.find(a=>a.filePath===d);if(!e)throw new bM("skill_not_found","skill was not found");let f=new Set(await as());for(let a of js(c))f.add(a);let g=(0,O.realpathSync)(e.filePath);if(!at(g,f))throw new bM("access_denied","Path is outside allowed workspaces");let{frontmatter:h,body:i}=jq((0,O.readFileSync)(g,"utf8")),j=i.slice(0,8e3);return{name:e.name,description:e.description,filePath:g,disableModelInvocation:jv(h),...e.sourceInfo.scope?{scope:e.sourceInfo.scope}:{},...e.sourceInfo.source?{source:e.sourceInfo.source}:{},...e.install?{install:e.install}:{},frontmatter:h,contentPreview:j,contentTruncated:i.length>j.length}}async function j6(a,b){let c,d,e=await jO(a),f=b.trim();if(!f)throw new bM("invalid_name","name is required");try{c=i3(e)}catch(a){throw new bM("mcp_read_failed",a instanceof Error?a.message:String(a))}let g=c.config.mcpServers?.[f];if(!g)throw new bM("mcp_not_found",`MCP server "${f}" was not found`);return{name:f,source:"Project level",config:(d={...g},delete d.env,delete d.headers,d),envConfigured:void 0!==g.env,headersConfigured:void 0!==g.headers,path:c.path}}async function j7(a,b){if("object"!=typeof b||null===b||Array.isArray(b))throw new bM("invalid_mcp","server must be an object");let c={...b};null===c.env&&(c.env={}),null===c.headers&&(c.headers={});try{i4(a,c)}catch(a){throw new bM("invalid_mcp",a instanceof Error?a.message:String(a))}return{ok:!0}}async function j8(a){let b=await jO(a.cwd),{skills:c}=await jA(b),d=c.map(a=>a.install).filter(a=>!!a).filter(b=>!a.package||b.package===a.package&&b.scope===a.scope);if(a.package&&0===d.length)throw new bM("skill_not_installed","Installed skill not found");return{updates:await jN(d,{githubToken:process.env.GITHUB_TOKEN||process.env.GH_TOKEN})}}async function j9(a){let b=await jO(a.cwd),{skills:c}=await jA(b),d=c.find(b=>b.install?.package===a.package&&b.install.scope===a.scope);if(!d?.install)throw new bM("skill_not_installed","Installed skill not found");if(!d.install.canCheckForUpdates)throw new bM("skill_update_unsupported","This skill cannot be updated automatically");try{var e;let c,f,g,h,{stdout:i,stderr:j}=await i8((e=d.install,f=(c=jG(e.skillPath??""))?`${e.source}/${c}`:e.source,g=e.ref?`#${encodeURIComponent(e.ref)}`:"",h=["skills","add",`${f}${g}`,"--skill",jF(e.package),"-y","--agent","universal"],"global"===e.scope&&h.push("-g"),h),{timeout:6e4,cwd:"project"===a.scope?b:void 0,env:{...process.env,FORCE_COLOR:"0"}}),k=(await jA(b)).skills.find(b=>b.install?.package===a.package&&b.install.scope===a.scope);return{success:!0,output:`${i}${j}`.slice(-500),...k?{skill:k}:{}}}catch(c){let a="object"==typeof c&&null!==c&&"stdout"in c&&"string"==typeof c.stdout?c.stdout:"",b="object"==typeof c&&null!==c&&"stderr"in c&&"string"==typeof c.stderr?c.stderr:"";throw new bM("skill_update_failed",(`${a}${b}`.trim()||(c instanceof Error?c.message:String(c))).slice(-500))}}async function ka(){try{let a=await (0,iq.runUtilityCommand)({type:"get_login_providers"},3e4),b=[];if(Array.isArray(a.providers))for(let c of a.providers)!("object"!=typeof c||null===c||Array.isArray(c))&&"id"in c&&"string"==typeof c.id&&"name"in c&&"string"==typeof c.name&&"authenticated"in c&&"boolean"==typeof c.authenticated&&(!("available"in c)||!1!==c.available)&&b.push({id:c.id,name:c.name,loggedIn:c.authenticated});return{providers:b}}catch(a){throw new bM("auth_failed",a instanceof Error?a.message:String(a))}}let kb=["skills.list","skills.get","skills.toggle","skills.search","skills.install","skills.check","skills.update","plugins.list","plugins.action","agents.list","agents.get","agents.save","agents.delete","agents.unpack","agents.setDisabled","agents.setOverride","mcp.list","mcp.get","mcp.validate","mcp.save","mcp.delete"];function kc(a){let b=(0,S.oJ)(a)?.trim();if(!b||b.length>1024)throw new bM("invalid_cwd","cwd is required");return b}function kd(a){if(void 0===a)return;let b=(0,S.oJ)(a)?.trim();if(b){if(b.length>1024)throw new bM("invalid_cwd","cwd is too long");return b}}function ke(a,b="name"){let c=(0,S.oJ)(a)?.trim();if(!c||c.length>128)throw new bM("invalid_name",`${b} is required`);return c}function kf(a,b,c,d){let e=void 0===b?0:Number(b),f=void 0===c?d:Number(c);if(!Number.isInteger(e)||e<0||e>1e5)throw new bM("invalid_args","offset must be an integer >= 0");if(!Number.isInteger(f)||f<1||f>200)throw new bM("invalid_args","limit must be an integer 1-200");return{offset:e,limit:f}}async function kg(a){let b=a.trim();if(!at(b,await as()))throw new bM("access_denied","Path is outside allowed workspaces");return b}function kh(a){if("user"===a||"project"===a)return a;throw new bM("invalid_scope","scope must be user or project")}function ki(a){if("global"===a||"project"===a)return a;throw new bM("invalid_scope","scope must be global or project")}async function kj(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new bM("invalid_args","args must be an object");switch(function(a){if(!kb.includes(a))throw new bM("unknown_action",`Unknown extensions action "${a}"`);return a}(a)){case"skills.list":{let a=await kg(kc(b.cwd)),c=await jP(a),{offset:d,limit:e}=kf(c.skills.length,b.offset,b.limit,50),f=c.skills.map(a=>({name:a.name,description:a.description,filePath:a.filePath,disableModelInvocation:a.disableModelInvocation,...a.scope?{scope:a.scope}:a.sourceInfo?.scope?{scope:a.sourceInfo.scope}:{},...a.sourceInfo?.source?{source:a.sourceInfo.source}:{},...a.install?{install:a.install}:{}}));return{cwd:c.cwd,skills:f.slice(d,d+e),total:f.length,offset:d,limit:e,hasMore:d+e<f.length}}case"skills.get":{let a=kc(b.cwd),c=(0,S.oJ)(b.filePath)?.trim();if(!c||c.length>1024)throw new bM("invalid_path","filePath is required");return j5(a,c)}case"skills.toggle":{let a=kc(b.cwd),c=(0,S.oJ)(b.filePath)?.trim();if(!c||c.length>1024)throw new bM("invalid_path","filePath is required");if("boolean"!=typeof b.disableModelInvocation)throw new bM("invalid_flag","disableModelInvocation must be a boolean");return jQ(a,c,b.disableModelInvocation)}case"skills.search":{let a=(0,S.oJ)(b.query)?.trim();if(!a||a.length>200)throw new bM("invalid_query","query is required");let c=b.limit,d=void 0===c?10:Number(c);if(!Number.isInteger(d)||d<1||d>20)throw new bM("invalid_limit","limit must be 1-20");return j$(a,d)}case"skills.install":{let a=(0,S.oJ)(b.package)?.trim();if(!a||a.length>256)throw new bM("invalid_package","package is required");return j_(a,ki(b.scope),kd(b.cwd))}case"skills.check":{let a=kc(b.cwd),c=void 0===b.package?void 0:(0,S.oJ)(b.package)?.trim(),d=void 0===b.scope?void 0:ki(b.scope);if(c&&!d||!c&&d)throw new bM("invalid_args","package and scope must be provided together");return j8({cwd:a,...c?{package:c,scope:d}:{}})}case"skills.update":{let a=kc(b.cwd),c=(0,S.oJ)(b.package)?.trim();if(!c)throw new bM("invalid_package","package is required");return j9({cwd:a,package:c,scope:ki(b.scope)})}case"plugins.list":{let a=await kg(kc(b.cwd)),c=await jS(a),{offset:d,limit:e}=kf(c.packages.length,b.offset,b.limit,50);return{cwd:c.cwd,packages:c.packages.slice(d,d+e),total:c.packages.length,offset:d,limit:e,hasMore:d+e<c.packages.length}}case"plugins.action":{let a=kc(b.cwd),c=(0,S.oJ)(b.action)?.trim();if("install"!==c&&"remove"!==c&&"update"!==c&&"disable"!==c&&"enable"!==c)throw new bM("invalid_action","plugin action is required");let d=(0,S.oJ)(b.source)?.trim();if("update"!==c&&(!d||d.length>512))throw new bM("invalid_source","source is required");if(d&&d.length>512)throw new bM("invalid_source","source is too long");let e=(0,S.oJ)(b.scope)?.trim(),f="project"===e?"project":"global"===e?"global":void 0;if(void 0!==b.scope&&void 0===f&&e)throw new bM("invalid_scope","scope must be global or project");return jT(a,c,d||void 0,f)}case"agents.list":{let a=kd(b.cwd),c=await j0(a),d=c.agents;if(void 0!==b.scope){let a=(0,S.oJ)(b.scope)?.trim();d=d.filter(b=>b.source===a)}let e=(0,S.oJ)(b.query)?.trim().toLowerCase();e&&(d=d.filter(a=>`${a.name} ${a.description} ${a.systemPrompt??""}`.toLowerCase().includes(e)));let{offset:f,limit:g}=kf(d.length,b.offset,b.limit,50);return{...c.cwd?{cwd:c.cwd}:{},agents:d.slice(f,f+g).map(a=>({name:a.name,description:a.description,source:a.source,...a.filePath?{filePath:a.filePath}:{},...a.disabled?{disabled:!0}:{}})),total:d.length,offset:f,limit:g,hasMore:f+g<d.length}}case"agents.get":{let a=ke(b.name),c=void 0===b.scope?void 0:kh(b.scope),d=kd(b.cwd);return j3({name:a,...c?{scope:c}:{},...d?{cwd:d}:{}})}case"agents.save":{let a=ke(b.name);if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a))throw new bM("invalid_name","name must be kebab-case");let c=(0,S.oJ)(b.description)?.trim();if(!c||c.length>500)throw new bM("invalid_description","description is required");let d=(0,S.oJ)(b.systemPrompt);if(void 0===d||Buffer.byteLength(d,"utf8")>0x1000000)throw new bM("invalid_prompt","systemPrompt is required");let e=kh(b.scope),f=kd(b.cwd),g=void 0===b.tools?void 0:function(a,b){if(!Array.isArray(a)||a.some(a=>"string"!=typeof a))throw new bM("invalid_args",`${b} must be an array of strings`);return a}(b.tools,"tools"),h=void 0===b.model?void 0:function(a){if("string"==typeof a&&a.trim())return a.trim();if(Array.isArray(a)&&a.length>0&&a.every(a=>"string"==typeof a&&a.trim()))return a;throw new bM("invalid_args","model must be a non-empty selector or list")}(b.model),i=void 0===b.thinkingLevel?void 0:function(a,b){if("string"!=typeof a||!a.trim()||a.length>64)throw new bM("invalid_args",`${b} must be a non-empty string`);return a}(b.thinkingLevel,"thinkingLevel"),j=void 0===b.prewalk?void 0:kk(b.prewalk,"prewalk"),k=void 0===b.advisor?void 0:kk(b.advisor,"advisor"),l=void 0===b.blocking?void 0:function(a,b){if("boolean"!=typeof a)throw new bM("invalid_args",`${b} must be a boolean`);return a}(b.blocking,"blocking");return j1({name:a,description:c,systemPrompt:d,scope:e,...f?{cwd:f}:{},...void 0!==g?{tools:g}:{},...void 0!==h?{model:h}:{},...void 0!==i?{thinkingLevel:i}:{},...void 0!==j?{prewalk:j}:{},...void 0!==k?{advisor:k}:{},...void 0!==l?{blocking:l}:{}})}case"agents.delete":{let a=ke(b.name),c=kh(b.scope),d=kd(b.cwd);return j2({name:a,scope:c,...d?{cwd:d}:{}})}case"agents.unpack":{let a=kh(b.scope),c=kd(b.cwd),d=void 0===b.force?void 0:!0===b.force;if(void 0!==b.force&&"boolean"!=typeof b.force)throw new bM("invalid_args","force must be a boolean");return j4({scope:a,...c?{cwd:c}:{},...void 0!==d?{force:d}:{}})}case"agents.setDisabled":{let a=ke(b.name);if("boolean"!=typeof b.disabled)throw new bM("invalid_args","disabled must be a boolean");let c=a5(),d=new Set(Array.isArray(c.settings.task?.disabledAgents)?c.settings.task.disabledAgents:[]);b.disabled?d.add(a):d.delete(a);let e=a3(c.settings,{task:{disabledAgents:[...d]}});try{a6(e)}catch(a){throw new bM("agent_settings_failed",a instanceof Error?a.message:String(a))}return{name:a,disabled:b.disabled}}case"agents.setOverride":{let a=ke(b.name),c=(0,S.oJ)(b.kind)?.trim();if("model"!==c&&"prewalk"!==c&&"advisor"!==c)throw new bM("invalid_args","kind must be model, prewalk, or advisor");let d=a5(),e=d.settings.task??{},f={};if("model"===c){let c={...e.agentModelOverrides??{}};if(void 0===b.value||null===b.value||""===b.value)delete c[a];else if("string"==typeof b.value&&b.value.trim())c[a]=b.value.trim();else if(Array.isArray(b.value)&&b.value.every(a=>"string"==typeof a&&a.trim()))c[a]=b.value;else throw new bM("invalid_args","value must be a non-empty model selector or list");f.agentModelOverrides=c}else{let d="prewalk"===c?"agentPrewalk":"agentAdvisor",g={...e[d]??{}};if(void 0===b.value||null===b.value||""===b.value)delete g[a];else if("boolean"==typeof b.value||"string"==typeof b.value)g[a]=b.value;else throw new bM("invalid_args","value must be a boolean or string");f[d]=g}try{a6(a3(d.settings,{task:f}))}catch(a){throw new bM("agent_settings_failed",a instanceof Error?a.message:String(a))}return{name:a,kind:c}}case"mcp.list":{let a,d,e=kd(b.cwd),f=await jU(e),{offset:g,limit:h}=kf(f.inventory.length,b.offset,b.limit,50),i=c.sessionId??null;if(i){let b=bG(i);if(b?.isAlive())try{let c=await b.getMcpList();b.isAlive()&&bG(i)===b?a=(function(a,b){let c=[...a],d=new Set(a.map(a=>`${a.source}:${a.name}`));for(let a of b){let b=`${a.source}:${a.name}`;d.has(b)||(d.add(b),c.push(a))}return c})(function(a){let b=[],c=null;for(let d of iY(a).split(/\r?\n/)){let a=d.trim();if(!a)continue;let e=a.match(/^(.+?)\s+\([^)]*\):$/);if(e){c=e[1];continue}let f=a.match(/^(.+?)\s+[●◌○]\s+(connected|connecting|not connected|inactive|disabled)(?:\s+\[([^\]]+)\])?$/);if(!f||!c)continue;let g={connected:"connected",connecting:"connecting","not connected":"not_connected",inactive:"inactive",disabled:"disabled"};b.push({name:f[1].trim(),source:c,status:g[f[2]],type:f[3]})}if(b.length>0)return b;for(let c of iY(a).split(/\r?\n/)){let a=c.trim().match(/^(.+?)\s+\|\s+([^|]+?)\s+\|\s+(enabled|disabled)\s+\|\s+.*?(?:\s+\[([^\]]+)\])?$/);if(!a)continue;let d="user"===a[4]?"User level":"project"===a[4]?"Project level":"Configured";b.push({name:a[1].trim(),source:d,status:"enabled"===a[3]?"configured":"disabled",type:a[2].trim()})}return b}(c),f.inventory.map(({name:a,source:b,status:c,type:d})=>({name:a,source:b,status:"disabled"===c?"disabled":"configured",...d?{type:d}:{}}))).map(({name:a,source:b,status:c,type:d})=>({name:a,source:b,status:c,...d?{type:d}:{}})):d="Selected session became inactive — refresh to query its current runtime."}catch{d="Live MCP query failed. Connection status is unknown; refresh to retry."}else d="Selected session is inactive — live MCP status is unavailable."}return{sessionId:i,...a?{liveServers:a}:{},...d?{liveError:d}:{},inventory:f.inventory.slice(g,g+h),total:f.inventory.length,offset:g,limit:h,hasMore:g+h<f.inventory.length}}case"mcp.get":return j6(kc(b.cwd),ke(b.name));case"mcp.validate":return j7(ke(b.name),b.server);case"mcp.save":{let a=kc(b.cwd),c=ke(b.name),d=void 0===b.previousName?void 0:ke(b.previousName,"previousName");return jX(a,c,b.server,d)}case"mcp.delete":return jV(kc(b.cwd),ke(b.name))}}function kk(a,b){if("boolean"==typeof a||"string"==typeof a)return a;throw new bM("invalid_args",`${b} must be a boolean or string`)}async function kl(){var a,b;let c,d;return b=await (a=["--check"],(0,aA.eG)(["update",...a],{timeout:3e5,maxBuffer:1048576}).then(({stdout:a,stderr:b})=>`${a}
|
|
89
|
-
${b}`.trim())),c=b.match(/^Current version:\s*(\S+)/mi)?.[1]??null,{currentVersion:c,availableVersion:d=b.match(/^New version available:\s*(\S+)/mi)?.[1]??null,updateAvailable:null!==d,updateCommand:"omp update"}}let km=null;function kn(a){let b=a.match(/^v?(\d+)\.(\d+)\.(\d+)(-.+)?$/);return b?{parts:b.slice(1,4).map(Number),prerelease:!!b[4]}:null}async function ko(a=!1){if(!a&&km&&Date.now()-km.checkedAt<36e5)return km.status;let b="0.7.2",c="ompgui update";try{let a=await fetch(`https://registry.npmjs.org/${encodeURIComponent("ompgui")}/latest`,{cache:"no-store",signal:AbortSignal.timeout(5e3)}),d=a.ok?await a.json():null,e="string"==typeof d?.version?d.version:null,f=!a.ok||null===e,g={currentVersion:b,availableVersion:e,updateAvailable:!!(e&&function(a,b){let c=kn(a),d=kn(b);if(!c||!d)return!1;for(let a=0;a<c.parts.length;a+=1)if(c.parts[a]!==d.parts[a])return c.parts[a]>d.parts[a];return!c.prerelease&&d.prerelease}(e,b)),updateCommand:c,lookupFailed:f};return f||(km={checkedAt:Date.now(),status:g}),g}catch{return{currentVersion:b,availableVersion:null,updateAvailable:!1,updateCommand:c,lookupFailed:!0}}}let kp=new Set(["daily","30d","24h"]);function kq(a,b){let c="string"==typeof a?a.trim():"";if("5h"===c||"7d"===c||"monthly"===c||"30d"===c||"daily"===c)return"30d"===c?"monthly":"daily"===c?"5h":c;if("number"==typeof b&&Number.isFinite(b)){if(6e4>=Math.abs(b-18e6))return"5h";if(6e4>=Math.abs(b-6048e5))return"7d";if(36e5>=Math.abs(b-2592e6))return"monthly";if(6e4>=Math.abs(b-864e5))return"5h"}}function kr(a){let b=a.window,c=a.scope;if(!b&&!c?.windowId)return a;let d=kq(c?.windowId)??kq(b?.id)??kq(void 0,b?.durationMs);if(!d)return a;let e={...c};(c.windowId||b?.id)&&(e.windowId=d);let f=b;if(b){let a=b.label,c=null==a||""===a.trim()||kp.has(a)||a===b.id;f={...b,id:d,...c?{label:d}:{}}}return{...a,scope:e,...f?{window:f}:{}}}async function ks(a,b,c){let d=c.now??Date.now;if(b){if(a.refreshFlight)return a.refreshFlight;let b=(a.refreshGeneration??0)+1;a.refreshGeneration=b,a.entry=null,a.readFlight=null;let e=(async()=>{try{await c.invalidate()}catch{}let e=await c.fetch();return e.ok&&(a.entry={at:d(),payload:e.payload}),a.latestRefresh={generation:b,result:e},e})();a.refreshFlight=e;try{return await e}finally{a.refreshFlight===e&&(a.refreshFlight=null)}}if(a.refreshFlight)return a.refreshFlight;if(a.entry&&d()-a.entry.at<c.ttlMs)return{ok:!0,payload:{...a.entry.payload,cached:!0}};let e=a.refreshGeneration??0,f=a.readFlight;f||(a.readFlight=f={generation:e,promise:c.fetch()});try{let b=await f.promise,c=a.refreshGeneration??0;if(f.generation!==c){if(a.refreshFlight)return a.refreshFlight;let b=a.latestRefresh;if(b?.generation===c)return b.result}return b.ok&&(a.entry={at:d(),payload:b.payload}),b}finally{a.readFlight===f&&(a.readFlight=null)}}async function kt(a={}){let b,c=a.executor??aA.eG;if(!a.executor&&!(0,aA.resolveOmpBin)())return{ok:!1,status:503,error:"omp binary not found"};try{b=(await c(["usage","--json"],{timeout:3e4})).stdout}catch(c){let a=c instanceof Error?c.message:String(c),b=a.toLowerCase();if(b.includes("unknown command")||b.includes("unknown flag")||b.includes("unrecognized command")||b.includes("unrecognized option")||b.includes("invalid command")||/error:\s*(unknown|unrecognized)\s+(command|option|flag)/i.test(a)||/\bcommand not found\b/i.test(a))return{ok:!1,status:501,error:"usage command not supported by installed omp version"};return{ok:!1,status:502,error:a}}if(!b||!b.trim())return{ok:!1,status:501,error:"usage command not supported by installed omp version"};let d=(0,aA.nH)(b);if(!d||"object"!=typeof d)return{ok:!1,status:501,error:"usage command not supported by installed omp version"};let e=(Array.isArray(d.reports)?d.reports:[]).map(a=>Array.isArray(a.limits)?{...a,limits:a.limits.map(kr)}:a),f=Array.isArray(d.accountsWithoutUsage)?d.accountsWithoutUsage:[],g=Array.isArray(d.disabledCredentials)?d.disabledCredentials:[],h=function(a){let b={};for(let[c,d]of Object.entries(a)){if(!Array.isArray(d)){b[c]=d;continue}let a=new Map,e=[];for(let b of d){let c=kq(b.window,b.durationMs);if(!c){e.push(b);continue}let d=!function(a,b){let c="string"==typeof a?a.trim():"";return"daily"===c||"5h"!==c&&"7d"!==c&&"monthly"!==c&&"30d"!==c&&"number"==typeof b&&Number.isFinite(b)&&6e4>=Math.abs(b-864e5)}(b.window,b.durationMs)?b.durationMs:18e6,f=a.get(c);if(!f){a.set(c,{...b,window:c,...void 0!==d?{durationMs:d}:{}});continue}a.set(c,{...f,accounts:f.accounts+b.accounts,usedAccounts:f.usedAccounts+b.usedAccounts,remainingAccounts:f.remainingAccounts+b.remainingAccounts,durationMs:function(a,b,c){if("5h"===a){if(void 0!==b&&6e4>=Math.abs(b-18e6))return b;if(void 0!==c&&6e4>=Math.abs(c-18e6))return c}return b??c}(c,f.durationMs,d)})}b[c]=[...a.values(),...e]}return b}(d.capacity&&"object"==typeof d.capacity?d.capacity:{}),i="number"==typeof d.generatedAt?d.generatedAt:Date.now(),j="no-credentials"===d.emptyReason||0===e.length&&0===f.length&&0===g.length?"no-credentials":void 0;return{ok:!0,payload:{generatedAt:i,reports:e,accountsWithoutUsage:f,disabledCredentials:g,capacity:h,cached:!1,...j?{emptyReason:j}:{}}}}let ku=["usage.get","omp.check","app.check","omp.restart","devices.list","devices.revoke","systemPrompt.get","settings.get","settings.update","update"];class kv extends Error{constructor(a,b,c,d){super(b),this.name="SystemRequestError",this.code=a,void 0!==c&&(this.details=c),void 0!==d&&(this.status=d)}}let kw=/^d_[A-Za-z0-9_-]{16,64}$/;function kx(a,b){if(void 0!==a){if("boolean"!=typeof a)throw new kv("invalid_args",`${b} must be a boolean`);return a}}async function ky(a){let b=kx(a.refresh,"refresh")??!1,c=(globalThis.__ompgui_system_usage_cache||(globalThis.__ompgui_system_usage_cache={}),globalThis.__ompgui_system_usage_cache),d=await ks(c,b,{fetch:()=>kt(),invalidate:()=>(0,aA.eG)(["usage","invalidate"],{timeout:15e3}),ttlMs:6e4});if(d.ok){var e;let a;return a={generatedAt:(e=d.payload).generatedAt,reports:e.reports,accountsWithoutUsage:e.accountsWithoutUsage,disabledCredentials:e.disabledCredentials,capacity:e.capacity,cached:e.cached},void 0!==e.emptyReason&&(a.emptyReason=e.emptyReason),a}throw new kv(function(a){switch(a){case 503:return"omp_not_found";case 501:return"usage_not_supported";default:return"usage_fetch_failed"}}(d.status),d.error,void 0,d.status)}async function kz(){try{var a;return{currentVersion:(a=await kl()).currentVersion,availableVersion:a.availableVersion,updateAvailable:a.updateAvailable,updateCommand:a.updateCommand}}catch(a){throw new kv("omp_check_failed",a instanceof Error?a.message:String(a))}}async function kA(a){var b;let c=kx(a.force,"force")??!1;return{currentVersion:(b=await ko(c)).currentVersion,availableVersion:b.availableVersion,updateAvailable:b.updateAvailable,updateCommand:b.updateCommand,lookupFailed:b.lookupFailed}}async function kB(a){if(!0!==a.confirm)throw new kv("confirm_required","omp.restart requires {confirm:true}");try{(0,aA.YT)();let a=await bI();return{success:!0,sessionsRestarted:a}}catch(a){throw new kv("restart_failed",a instanceof Error?a.message:String(a))}}async function kC(a){let b=function(a){let b="string"==typeof a?a.trim():"";if(!b||b.length>128)throw new kv("invalid_args","sessionId is required");return b}(a.sessionId),c=bG(b);if(!c)throw new kv("session_not_running","Session is not running");try{let a=await c.send({type:"get_state"});if("object"!=typeof a||null===a||Array.isArray(a))throw new kv("system_prompt_failed","Session state unavailable");let d="systemPrompt"in a&&"string"==typeof a.systemPrompt?a.systemPrompt:"";return{sessionId:b,systemPrompt:d}}catch(a){if(a instanceof kv)throw a;throw new kv("system_prompt_failed",a instanceof Error?a.message:String(a))}}function kD(a,b){if("object"!=typeof b||null===b||Array.isArray(b))throw new kv("settings_read_failed","Stored settings are not an object");let c={};for(let[a,d]of Object.entries(b))c[a]=d;return{path:a,settings:c}}async function kE(a){if("object"!=typeof a.settings||null===a.settings||Array.isArray(a.settings))throw new kv("invalid_args","settings must be an object");let b=a1(a.settings),c=function(a){if(void 0===a)return;if(!Array.isArray(a))throw new kv("invalid_args","model lists must contain non-empty strings");let b=[];for(let c of a){if("string"!=typeof c||!c.trim())throw new kv("invalid_args","model lists must contain non-empty strings");b.push(c)}return b}(b.enabledModels);if(void 0!==c&&c.length>0)try{let a=await (0,iq.runUtilityCommand)({type:"get_available_models"},12e4);Array.isArray(a.models)&&h7(c,function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if("object"!=typeof c||null===c||!("id"in c)||!("provider"in c))continue;let a=c.id,d=c.provider;"string"==typeof a&&"string"==typeof d&&b.push({id:a,provider:d})}return b}(a.models))}catch(a){if(a instanceof Error&&a.message.startsWith("Ambiguous enabledModels entry"))throw new kv("invalid_args",a.message)}try{let a=a5(),c=a3(a.settings,b);a6(c);let d=void 0!==b.enabledModels||void 0!==b.disabledProviders||void 0!==b.modelProviderOrder;d&&(aJ(),(0,iq.j)());let e=a5(),f=kD(e.path,e.settings).settings;return{success:!0,settings:f,application:{mode:d?"runtime-refresh":"new-session",restartRequired:!1}}}catch(a){if(a instanceof kv)throw a;throw new kv("settings_write_failed",a instanceof Error?a.message:String(a))}}async function kF(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new kv("invalid_args","args must be an object");switch(function(a){if(!ku.includes(a))throw new kv("unknown_action",`Unknown system action "${a}"`);return a}(a)){case"usage.get":return ky(b);case"omp.check":return kz();case"app.check":return kA(b);case"omp.restart":return kB(b);case"devices.list":return{devices:ag().map(a=>({id:a.id,label:a.label,createdAt:a.createdAt,lastSeenAt:a.lastSeenAt}))};case"devices.revoke":let d=function(a){let b="string"==typeof a?a.trim():"";if(!b||b.length>128||!kw.test(b))throw new kv("invalid_args","deviceId must be a valid device id");return b}(b.deviceId);if(!ad(()=>{let a=ae(),b=a.devices.filter(a=>a.id!==d);return b.length!==a.devices.length&&(a.devices=b,af(a),!0)}))throw new kv("device_not_found",`Unknown device "${d}"`);return{revoked:!0,deviceId:d,self:d===c.deviceId};case"systemPrompt.get":return kC(b);case"settings.get":try{let a=a5();return kD(a.path,a.settings)}catch(a){if(a instanceof kv)throw a;throw new kv("settings_read_failed",a instanceof Error?a.message:String(a))}case"settings.update":return kE(b);case"update":throw new kv("update_disabled","Automatic self-updating is disabled. Run 'omp update' in your terminal.",{command:"omp update"},400)}}let kG=new Map;function kH(a){hj.cleanupDevice(a);for(let[b,c]of g6)(void 0===a||c.deviceId===a)&&g7(b);!function(a){if(void 0===a){bX.clear(),bW.clear();return}for(let[b,c]of(bX.delete(a),bW))c.deviceId===a&&bW.delete(b)}(a),iU(a).catch(()=>{})}let kI={authenticate:function(a,b=Date.now()){if(a.pairingSecret){if(N()&&!function(a,b=process.env.OMPGUI_PASSWORD??process.env.OMP_WEB_PASSWORD){return N(b)&&(0,L.timingSafeEqual)(M(a),M(b))}(a.password??""))return{ok:!1,code:"password_required",message:"Workspace password is required to pair"};let c=function(a,b,c=Date.now()){return ad(()=>{let d=ae(),e=d.pairing;if(!e)return{error:"invalid"};if(e.expiresAt<=c)return d.pairing=null,af(d),{error:"expired"};if(!$(e.secretHash,Z(a)))return{error:"invalid"};if(d.devices.length>=16)return{error:"device_limit"};let f=(0,L.randomBytes)(32).toString("base64url"),g={id:_("d_"),label:aa(b)||"Phone",tokenHash:Z(f),createdAt:new Date(c).toISOString(),lastSeenAt:new Date(c).toISOString()};return d.devices=[...d.devices,g],d.pairing=null,af(d),{serverId:d.serverId,deviceId:g.id,token:f}})}(a.pairingSecret,a.label,b);return"error"in c?"expired"===c.error?{ok:!1,code:"pairing_expired",message:"Pairing link expired"}:"device_limit"===c.error?{ok:!1,code:"device_limit",message:"Too many paired devices"}:{ok:!1,code:"unauthorized",message:"Invalid pairing secret"}:{ok:!0,serverId:c.serverId,deviceId:c.deviceId,token:c.token}}if(!a.deviceId||!a.token)return{ok:!1,code:"unauthorized",message:"Device token is required"};let c=function(a,b,c=Date.now()){return ad(()=>{let d=ae(),e=d.devices.find(b=>b.id===a);return e&&$(e.tokenHash,Z(b))?(e.lastSeenAt=new Date(c).toISOString(),af(d),{serverId:d.serverId,deviceId:e.id}):null})}(a.deviceId,a.token,b);return c?{ok:!0,serverId:c.serverId,deviceId:c.deviceId}:{ok:!1,code:"unauthorized",message:"Unknown device"}},listSessions:bO,listModels:async()=>Y((await iF()).models).models,fetchUsage:kt,openSession:bP,sendCommand:bQ,createSession:gL,listProjects:gI,listFiles:gJ,readFile:gV,listSlash:gK,deleteSession:hl,archiveSession:hm,renameSession:hn,listArchives:ho,restoreArchive:hp,listWorktrees:gW,addWorktree:g$,writeFile:gX,gitStatus:gY,gitDiff:gZ,listBranches:bT,snapshotLeaf:bU,exportSession:bV,listSkills:jP,toggleSkill:jQ,searchSkills:j$,installSkill:j_,listAgents:j0,saveAgent:j1,deleteAgent:j2,listAuthProviders:ka,listPlugins:jS,pluginAction:jT,listMcp:jU,deleteMcp:jV,upsertMcp:jW,importSession:hq,addProject:g_,removeProject:g0,searchFiles:g4};function kJ(a,b,c,d){let e=b instanceof Error?b.message:String(b),f=b&&"object"==typeof b&&"code"in b&&"string"==typeof b.code?b.code:c;a(d?{op:"session.err",id:d,code:f,message:e}:{op:"error",code:f,message:e})}function kK(a){return!!a&&"/relay"===a.split("?")[0]}function kL(a,b){let c,d=b.length;return d<126?((c=Buffer.alloc(2))[0]=128|a,c[1]=d):d<=65535?((c=Buffer.alloc(4))[0]=128|a,c[1]=126,c.writeUInt16BE(d,2)):((c=Buffer.alloc(10))[0]=128|a,c[1]=127,c.writeUInt32BE(0,2),c.writeUInt32BE(d,6)),Buffer.concat([c,b])}class kM{get bufferedAmount(){return this.socket.writableLength}constructor(a,b,c=262144){this.socket=a,this.handlers=b,this.maxPayload=c,this.buffer=Buffer.alloc(0),this.closed=!1,this.sentClose=!1,this.socket.on("data",a=>this.onData(a)),this.socket.on("end",()=>this.handlePeerClose()),this.socket.on("close",()=>this.handlePeerClose()),this.socket.on("error",()=>this.handlePeerClose())}feed(a){this.onData(a)}sendText(a){if(this.closed||!this.socket.writable)return!1;let b=Buffer.from(a,"utf8");return!(b.length>this.maxPayload)&&this.writeFrame(kL(1,b))}ping(){!this.closed&&this.socket.writable&&this.writeFrame(kL(9,Buffer.alloc(0)))}close(a=1e3,b=""){if(this.sentClose)return;this.sentClose=!0;let c=Buffer.from(b.slice(0,120),"utf8"),d=Buffer.alloc(2+c.length);d.writeUInt16BE(a,0),c.copy(d,2);try{this.socket.write(kL(8,d))}catch{}this.closed=!0;try{this.socket.end()}catch{}this.handlers.onClose()}writeFrame(a){try{if(this.bufferedAmount+a.length>1e6)return!1;return this.socket.write(a),!0}catch{return this.handlePeerClose(),!1}}onData(a){if(!this.closed)for(this.buffer=0===this.buffer.length?Buffer.from(a):Buffer.concat([this.buffer,a]);;){let a=function(a,b=262144){if(a.length<2)return{status:"need_more"};let c=a[0],d=a[1],e=(128&c)!=0,f=15&c,g=127&d;if(0!=(112&c))return{status:"error",code:1002,reason:"RSV bits must be 0"};if((128&d)==0)return{status:"error",code:1002,reason:"Client frames must be masked"};if(!e)return{status:"error",code:1003,reason:"Fragmented frames are not supported"};if(1!==f&&8!==f&&9!==f&&10!==f)return{status:"error",code:1003,reason:"Unsupported opcode"};let h=2;if(126===g){if(a.length<4)return{status:"need_more"};g=a.readUInt16BE(2),h=4}else if(127===g){if(a.length<10)return{status:"need_more"};let c=a.readUInt32BE(2),d=a.readUInt32BE(6);if(0!==c||d>b)return{status:"error",code:1009,reason:"Frame is too large"};g=d,h=10}if(g>b)return{status:"error",code:1009,reason:"Frame is too large"};if((8===f||9===f||10===f)&&g>125)return{status:"error",code:1002,reason:"Control frame is too large"};let i=h+4+g;if(a.length<i)return{status:"need_more"};let j=a.subarray(h,h+4),k=Buffer.from(a.subarray(h+4,i));for(let a=0;a<k.length;a+=1)k[a]^=j[3&a];return{status:"ok",frame:{fin:e,opcode:f,payload:k},rest:a.subarray(i)}}(this.buffer,this.maxPayload);if("need_more"===a.status){this.buffer.length>this.maxPayload+14&&this.close(1009,"Frame is too large");return}if("error"===a.status)return void this.close(a.code,a.reason);if(this.buffer=a.rest,this.dispatch(a.frame),this.closed)return}}dispatch(a){switch(a.opcode){case 1:{let b=a.payload.toString("utf8");if(Buffer.byteLength(b,"utf8")!==a.payload.length)return void this.close(1007,"Text frame is not valid UTF-8");this.handlers.onText(b);return}case 8:this.close(1e3,"");return;case 9:this.writeFrame(kL(10,a.payload));return;case 10:return;default:this.close(1003,"Unsupported opcode")}}handlePeerClose(){this.closed||(this.closed=!0,this.sentClose=!0,this.handlers.onClose())}}function kN(){return globalThis.__ompguiRelayConnectionCount??0}function kO(a){globalThis.__ompguiRelayConnectionCount=a}function kP(a){let b=a.prototype.emit;function c(a,...d){if("upgrade"===a){let a=d[0];if(kK(a.url))return!function(a,b,c){let d;if(!kK(a.url))return b.destroy();if(!function(a){if("cross-site"===a.headers["sec-fetch-site"])return!1;let b=a.headers.origin;if(!b)return!0;let c=a.headers.host;if(!c)return!1;try{return new URL(b).host===c}catch{return!1}}(a)){b.write("HTTP/1.1 403 Forbidden\r\nConnection: close\r\n\r\n"),b.destroy();return}if(kN()>=8){b.write("HTTP/1.1 503 Service Unavailable\r\nConnection: close\r\n\r\n"),b.destroy();return}let e=!1,f=null,g=function(a,b,c){let d=function(a){if("websocket"!==String(a.headers.upgrade??"").toLowerCase())return null;let b=String(a.headers.connection??"");if(!/\bupgrade\b/i.test(b)||"13"!==String(a.headers["sec-websocket-version"]??""))return null;let c=a.headers["sec-websocket-key"];return"string"!=typeof c||c.length<16||c.length>128?null:c}(a);if(!d)return b.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\n\r\n"),b.destroy(),null;let e=(0,L.createHash)("sha1").update(d+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");return b.write(`HTTP/1.1 101 Switching Protocols\r
|
|
86
|
+
${a}`:a;let e=d[0].includes("\r\n")?"\r\n":"\n",f=d[1].split(/\r?\n/),g=f.reduce((a,b,c)=>(jB.test(b)&&a.push(c),a),[]);if(b)if(0===g.length)c=[`${jy}: true`,...f];else{let a=g[0],b=/^([\w-]+)/.exec(f[a])?.[1]??jy;c=f.map((c,d)=>d===a?`${b}: true`:c).filter((b,c)=>c===a||!g.includes(c))}else{if(0===g.length)return a;c=f.filter((a,b)=>!g.includes(b))}return`---${e}${c.join(e)}${e}---${d[2]}`+a.slice(d[0].length)}(g,c);if(h!==g){let a=`${f}.tmp-${process.pid}-${Date.now()}`;try{(0,O.mkdirSync)((0,P.dirname)(f),{recursive:!0}),(0,O.writeFileSync)(a,h,"utf8"),(0,O.renameSync)(a,f)}catch(b){try{(0,O.existsSync)(a)&&(0,O.unlinkSync)(a)}catch{}throw b}}let{frontmatter:i}=ju(h);return{filePath:f,disableModelInvocation:jz(i)}}function jV(a,b={}){return{source:a,scope:b.scope??"global",status:b.status??"installed",disabled:b.disabled??!1,...b.version?{version:b.version}:{},...b.counts?{counts:b.counts}:{}}}async function jW(a){let b=await jS(a),{stdout:c}=await (0,aA.eG)(["plugin","list","--json"],{cwd:b,timeout:6e4}),d=(0,aA.nH)(c),e=[];for(let a of d?.npm??[]){if(!a.name)continue;let b=!1!==a.enabled;e.push(jV(a.name,{scope:"global",status:b?"loaded":"disabled",disabled:!b,version:a.version}))}for(let a of d?.marketplace??[]){if(!a.id)continue;let b=!1!==a.enabled;e.push(jV(a.id,{scope:"project"===a.scope?"project":"global",status:b?"loaded":"disabled",disabled:!b,version:a.version}))}return{cwd:b,packages:e}}async function jX(a,b,c,d){let e=await jS(a),f=c?.trim(),g="project"===d?["--scope","project"]:[],h="",i=async(a,b)=>{try{let c=await (0,aA.eG)(a,{cwd:e,timeout:b});return`${c.stdout}${c.stderr}`.slice(-2e3)}catch(a){throw new bM("plugin_action_failed",(`${a.stdout??""}${a.stderr??""}`.trim()||a.message||String(a)).slice(-500))}};if("install"===b){if(!f)throw new bM("invalid_source","source is required");h=await i(["plugin","install",f,"--json",...g],3e5)}else if("remove"===b){if(!f)throw new bM("invalid_source","source is required");h=await i(["plugin","uninstall",f,"--json",...g],12e4)}else if("update"===b)h=await i(["plugin","upgrade",...f?[f,...g]:[]],3e5);else if("disable"===b||"enable"===b){if(!f)throw new bM("invalid_source","source is required");h=await i(["plugin",b,f,"--json",...g],6e4)}let j=await jW(e);return{cwd:j.cwd,packages:j.packages,output:h}}async function jY(a){let b=a?.trim()?await jS(a):null,c=b?i7(b):null,d=function(a=(0,am.join)((0,R.$M)(),"mcp.json")){return i3(a)}(),e=[];for(let{name:a,config:b}of d.servers){let c=!1!==b.enabled;e.push({name:a,source:"User level",status:c?"configured":"disabled",type:"string"==typeof b.type?b.type:"string"==typeof b.url?"http":"stdio",enabled:c})}for(let a of d.disabledServers)e.push({name:a,source:"Disabled",status:"disabled",enabled:!1});for(let[a,b]of Object.entries(c?.config.mcpServers??{})){let c=!1!==b.enabled;e.push({name:a,source:"Project level",status:c?"configured":"disabled",type:"string"==typeof b.type?b.type:"string"==typeof b.url?"http":"stdio",enabled:c})}for(let a of function(a,b=[]){let c=new Set(b),d=new Set(i4((0,aI.homedir)()));if(a)for(let b of i4((0,am.resolve)(a)))d.add(b);let e=new Set,f=(0,am.join)((0,R.$M)(),"mcp.json");(0,ak.existsSync)(f)&&e.add((0,ak.realpathSync)(f)),a&&e.add(i6(a).path);let g=[],h=new Set;for(let a of d){try{if(e.has((0,ak.realpathSync)(a)))continue}catch{continue}let b=function(a){let b=".claude.json"===(0,am.basename)(a)?".claude":(0,am.basename)((0,am.dirname)(a));return".claude"===b?"Claude Code":".codex"===b?"Codex":".cursor"===b?"Cursor":".vscode"===b?"VS Code":b.replace(/^\./,"")||"Configured"}(a);if(a.endsWith(".toml")){for(let d of function(a,b,c){try{if((0,ak.statSync)(a).size>5242880)return[];let d=(0,ak.readFileSync)(a,"utf8"),e=[...d.matchAll(/^\s*\[mcp_servers(?:\.([A-Za-z0-9_-]+)|\."([^"]+)")\]\s*$/gm)];return e.flatMap((a,f)=>{let g=a[1]??a[2];if(!g||c.has(g))return[];let h=d.slice((a.index??0)+a[0].length,e[f+1]?.index);return[{name:g,source:b,status:/^\s*enabled\s*=\s*false\s*$/m.test(h)?"disabled":"configured",type:/^\s*url\s*=/m.test(h)?"http":"stdio"}]})}catch{return[]}}(a,b,c)){let a=`${d.source}:${d.name}`;h.has(a)||(h.add(a),g.push(d))}continue}for(let d of i3(a).servers){if(c.has(d.name))continue;let a=`${b}:${d.name}`;if(h.has(a))continue;h.add(a);let e="string"==typeof d.config.type?d.config.type:"string"==typeof d.config.url?"http":"stdio";g.push({name:d.name,source:b,status:!1===d.config.enabled?"disabled":"configured",type:e})}}return g}(b??void 0,d.disabledServers))e.push({name:a.name,source:a.source,status:a.status,...a.type?{type:a.type}:{},enabled:"disabled"!==a.status});return{inventory:e}}async function jZ(a,b){return!function(a,b){if(!i1.test(b))throw Error("Invalid server name");i9(i7(a).path,()=>{let c=i7(a),d={...c.config.mcpServers??{}};if(!(b in d))throw Error("MCP server was not found");delete d[b];let e={...c.config,mcpServers:d};return aL(c.path,`${JSON.stringify(e,null,2)}
|
|
87
|
+
`),{path:c.path}})}(await jS(a),b),{name:b}}async function j$(a){let b={type:a.type};return void 0!==a.command&&(b.command=a.command),void 0!==a.url&&(b.url=a.url),void 0!==a.args&&(b.args=a.args),void 0!==a.env&&(b.env=a.env??{}),void 0!==a.headers&&(b.headers=a.headers??{}),void 0!==a.serverCwd&&(b.cwd=a.serverCwd),void 0!==a.enabled&&(b.enabled=a.enabled),void 0!==a.timeout&&(b.timeout=a.timeout),void 0!==a.requestIdFormat&&(b.requestIdFormat=a.requestIdFormat),j_(a.cwd,a.name,b,a.previousName)}async function j_(a,b,c,d){let e=await jS(a);if("object"!=typeof c||null===c||Array.isArray(c))throw new bM("invalid_mcp","server must be an object");let f={...c};null===f.env&&(f.env={}),null===f.headers&&(f.headers={});try{i8(b,f)}catch(a){throw new bM("invalid_mcp",a instanceof Error?a.message:String(a))}try{var g=e,h=b,i=f,j=d;if(i8(h,i),void 0!==j&&!i1.test(j))throw Error("Invalid previous server name");i9(i7(g).path,()=>{let a=i7(g),b={...a.config.mcpServers??{}},c=b[j??h];j&&j!==h&&delete b[j],b[h]={...i,...c?.env!==void 0&&void 0===i.env?{env:c.env}:{},...c?.headers!==void 0&&void 0===i.headers?{headers:c.headers}:{}};let d={...a.config,mcpServers:b};return(0,ak.mkdirSync)((0,am.dirname)(a.path),{recursive:!0}),aL(a.path,`${JSON.stringify(d,null,2)}
|
|
88
|
+
`),{path:a.path}})}catch{throw new bM("mcp_write_failed","Unable to write MCP configuration")}return{name:b}}let j0=process.env.SKILLS_API_URL||"https://skills.sh",j1=/\x1B\[[0-9;]*m/g;async function j2(a,b=10){let c=a.trim();if(!c)throw new bM("invalid_query","query is required");let d=Math.min(20,Math.max(1,Math.floor(b)||10));try{let a=await fetch(`${j0}/api/search?q=${encodeURIComponent(c)}&limit=${d}`,{cache:"no-store"});if(!a.ok)throw Error(`skills.sh search failed: HTTP ${a.status}`);let b=await a.json();if("object"!=typeof b||null===b||!("skills"in b)||!Array.isArray(b.skills))throw Error("Invalid skills search response");let e=[];for(let a of b.skills){if("object"!=typeof a||null===a||Array.isArray(a))continue;let b="name"in a&&"string"==typeof a.name?a.name.trim():void 0,c="source"in a&&"string"==typeof a.source?a.source.trim():void 0,f="id"in a&&"string"==typeof a.id?a.id.trim():void 0;if(!b||!c&&!f)continue;let g="installs"in a&&"number"==typeof a.installs?a.installs:0;if(e.push({package:`${c||f}@${b}`,...g>0?{installs:`${g} installs`}:{},...f?{url:`${j0}/${f}`}:{}}),e.length>=d)break}return{query:c,results:e}}catch{let{stdout:a,stderr:b}=await jc(["skills","find",c],{timeout:2e4,env:{...process.env,FORCE_COLOR:"0"}});return{query:c,results:(function(a){let b=a.replace(j1,""),c=[],d=b.split("\n");for(let a=0;a<d.length;a++){let b=d[a].trim().match(/^([\w.\-]+\/[\w.\-@:]+)\s+([\d.,]+[KMB]?\s+installs)$/);if(b){let e=d[a+1]?.trim().replace(/^└\s*/,"");c.push({package:b[1],installs:b[2],...e?.startsWith("https://")?{url:e}:{}})}}return c})(a+b).slice(0,d)}}}async function j3(a,b,c){let d,e=a.trim();if(!e)throw new bM("invalid_package","package is required");let f="project"!==b;if(f)c?.trim()&&(d=await jS(c));else{if(!c?.trim())throw new bM("invalid_cwd","cwd is required for project install");d=await jS(c)}let g=["skills","add",e,"-y","--agent","universal"];f&&g.push("-g");try{let{stdout:a,stderr:b}=await jc(g,{timeout:6e4,cwd:d,env:{...process.env,FORCE_COLOR:"0"}}),c=(a+b).replace(j1,"");if(!/Installation complete|Installed \d+ skill/.test(c))throw new bM("skill_install_failed",c.slice(-300)||"Install failed")}catch(a){if(a instanceof bM)throw a;throw new bM("skill_install_failed",(((a.stdout??"")+(a.stderr??"")).replace(j1,"")||a.message||String(a)).slice(-300)||"Install failed")}return{package:e,scope:f?"global":"project"}}async function j4(a){let b=a?.trim()?await jS(a):void 0,c=(await jj(b??process.cwd())).agents.map(a=>({name:a.name,description:a.description,source:a.source,...a.filePath?{filePath:a.filePath}:{},systemPrompt:a.systemPrompt,...a.disabled?{disabled:!0}:{}}));return b?{cwd:b,agents:c}:{agents:c}}async function j5(a){let b,c=a.name.trim(),d=a.description.trim();if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(c))throw new bM("invalid_name","name must be kebab-case");if(!d)throw new bM("invalid_description","description is required");let e={...void 0!==a.tools?{tools:a.tools}:{},...void 0!==a.model?{model:a.model}:{},...void 0!==a.thinkingLevel?{thinkingLevel:a.thinkingLevel}:{},...void 0!==a.prewalk?{prewalk:a.prewalk}:{},...void 0!==a.advisor?{advisor:a.advisor}:{},...void 0!==a.blocking?{blocking:a.blocking}:{},...a.cwd?.trim()?{cwd:a.cwd.trim()}:{}};try{b=await jn({scope:a.scope,name:c,description:d,systemPrompt:a.systemPrompt,...e})}catch(g){let f=g instanceof Error?g.message:String(g);if(/already exists/i.test(f))try{b=await jo({scope:a.scope,name:c,description:d,systemPrompt:a.systemPrompt,...e})}catch(a){throw new bM("agent_save_failed",a instanceof Error?a.message:String(a))}else throw new bM("agent_save_failed",f)}return{name:c,filePath:b}}async function j6(a){try{await jp({name:a.name,scope:a.scope,...a.cwd?.trim()?{cwd:a.cwd.trim()}:{}})}catch(a){throw new bM("agent_delete_failed",a instanceof Error?a.message:String(a))}return{name:a.name}}async function j7(a){let b=a.name.trim();if(!b)throw new bM("invalid_name","name is required");let c=a.cwd?.trim()?await jS(a.cwd):void 0,d=(await jj(c??process.cwd())).agents.find(c=>c.name===b&&(!a.scope||c.source===a.scope));if(!d)throw new bM("agent_not_found",`Agent "${b}" was not found`);return{name:d.name,description:d.description,source:d.source,...d.filePath?{filePath:d.filePath}:{},...d.tools?{tools:d.tools}:{},...void 0!==d.model?{model:d.model}:{},...void 0!==d.thinkingLevel?{thinkingLevel:d.thinkingLevel}:{},...void 0!==d.prewalk?{prewalk:d.prewalk}:{},...void 0!==d.advisor?{advisor:d.advisor}:{},...void 0!==d.blocking?{blocking:d.blocking}:{},systemPrompt:d.systemPrompt,...d.disabled?{disabled:!0}:{},...d.isShadowed?{isShadowed:!0}:{},...void 0!==d.overrideModel?{overrideModel:d.overrideModel}:{},...void 0!==d.prewalkOverride?{prewalkOverride:d.prewalkOverride}:{},...void 0!==d.advisorOverride?{advisorOverride:d.advisorOverride}:{}}}async function j8(a){let b=a.cwd?.trim()?await jS(a.cwd):void 0;try{return await jq({scope:a.scope,...b?{cwd:b}:{},...void 0!==a.force?{force:a.force}:{}})}catch(a){throw new bM("agent_unpack_failed",a instanceof Error?a.message:String(a))}}async function j9(a,b){let c=await jS(a),d=b.trim();if("SKILL.md"!==(0,P.basename)(d))throw new bM("not_a_skill_file","not a SKILL.md file");let e=(await jE(c)).skills.find(a=>a.filePath===d);if(!e)throw new bM("skill_not_found","skill was not found");let f=new Set(await as());for(let a of jw(c))f.add(a);let g=(0,O.realpathSync)(e.filePath);if(!at(g,f))throw new bM("access_denied","Path is outside allowed workspaces");let{frontmatter:h,body:i}=ju((0,O.readFileSync)(g,"utf8")),j=i.slice(0,8e3);return{name:e.name,description:e.description,filePath:g,disableModelInvocation:jz(h),...e.sourceInfo.scope?{scope:e.sourceInfo.scope}:{},...e.sourceInfo.source?{source:e.sourceInfo.source}:{},...e.install?{install:e.install}:{},frontmatter:h,contentPreview:j,contentTruncated:i.length>j.length}}async function ka(a,b){let c,d,e=await jS(a),f=b.trim();if(!f)throw new bM("invalid_name","name is required");try{c=i7(e)}catch(a){throw new bM("mcp_read_failed",a instanceof Error?a.message:String(a))}let g=c.config.mcpServers?.[f];if(!g)throw new bM("mcp_not_found",`MCP server "${f}" was not found`);return{name:f,source:"Project level",config:(d={...g},delete d.env,delete d.headers,d),envConfigured:void 0!==g.env,headersConfigured:void 0!==g.headers,path:c.path}}async function kb(a,b){if("object"!=typeof b||null===b||Array.isArray(b))throw new bM("invalid_mcp","server must be an object");let c={...b};null===c.env&&(c.env={}),null===c.headers&&(c.headers={});try{i8(a,c)}catch(a){throw new bM("invalid_mcp",a instanceof Error?a.message:String(a))}return{ok:!0}}async function kc(a){let b=await jS(a.cwd),{skills:c}=await jE(b),d=c.map(a=>a.install).filter(a=>!!a).filter(b=>!a.package||b.package===a.package&&b.scope===a.scope);if(a.package&&0===d.length)throw new bM("skill_not_installed","Installed skill not found");return{updates:await jR(d,{githubToken:process.env.GITHUB_TOKEN||process.env.GH_TOKEN})}}async function kd(a){let b=await jS(a.cwd),{skills:c}=await jE(b),d=c.find(b=>b.install?.package===a.package&&b.install.scope===a.scope);if(!d?.install)throw new bM("skill_not_installed","Installed skill not found");if(!d.install.canCheckForUpdates)throw new bM("skill_update_unsupported","This skill cannot be updated automatically");try{var e;let c,f,g,h,{stdout:i,stderr:j}=await jc((e=d.install,f=(c=jK(e.skillPath??""))?`${e.source}/${c}`:e.source,g=e.ref?`#${encodeURIComponent(e.ref)}`:"",h=["skills","add",`${f}${g}`,"--skill",jJ(e.package),"-y","--agent","universal"],"global"===e.scope&&h.push("-g"),h),{timeout:6e4,cwd:"project"===a.scope?b:void 0,env:{...process.env,FORCE_COLOR:"0"}}),k=(await jE(b)).skills.find(b=>b.install?.package===a.package&&b.install.scope===a.scope);return{success:!0,output:`${i}${j}`.slice(-500),...k?{skill:k}:{}}}catch(c){let a="object"==typeof c&&null!==c&&"stdout"in c&&"string"==typeof c.stdout?c.stdout:"",b="object"==typeof c&&null!==c&&"stderr"in c&&"string"==typeof c.stderr?c.stderr:"";throw new bM("skill_update_failed",(`${a}${b}`.trim()||(c instanceof Error?c.message:String(c))).slice(-500))}}async function ke(){try{let a=await (0,iu.runUtilityCommand)({type:"get_login_providers"},3e4),b=[];if(Array.isArray(a.providers))for(let c of a.providers)!("object"!=typeof c||null===c||Array.isArray(c))&&"id"in c&&"string"==typeof c.id&&"name"in c&&"string"==typeof c.name&&"authenticated"in c&&"boolean"==typeof c.authenticated&&(!("available"in c)||!1!==c.available)&&b.push({id:c.id,name:c.name,loggedIn:c.authenticated});return{providers:b}}catch(a){throw new bM("auth_failed",a instanceof Error?a.message:String(a))}}let kf=["skills.list","skills.get","skills.toggle","skills.search","skills.install","skills.check","skills.update","plugins.list","plugins.action","agents.list","agents.get","agents.save","agents.delete","agents.unpack","agents.setDisabled","agents.setOverride","mcp.list","mcp.get","mcp.validate","mcp.save","mcp.delete"];function kg(a){let b=(0,S.oJ)(a)?.trim();if(!b||b.length>1024)throw new bM("invalid_cwd","cwd is required");return b}function kh(a){if(void 0===a)return;let b=(0,S.oJ)(a)?.trim();if(b){if(b.length>1024)throw new bM("invalid_cwd","cwd is too long");return b}}function ki(a,b="name"){let c=(0,S.oJ)(a)?.trim();if(!c||c.length>128)throw new bM("invalid_name",`${b} is required`);return c}function kj(a,b,c,d){let e=void 0===b?0:Number(b),f=void 0===c?d:Number(c);if(!Number.isInteger(e)||e<0||e>1e5)throw new bM("invalid_args","offset must be an integer >= 0");if(!Number.isInteger(f)||f<1||f>200)throw new bM("invalid_args","limit must be an integer 1-200");return{offset:e,limit:f}}async function kk(a){let b=a.trim();if(!at(b,await as()))throw new bM("access_denied","Path is outside allowed workspaces");return b}function kl(a){if("user"===a||"project"===a)return a;throw new bM("invalid_scope","scope must be user or project")}function km(a){if("global"===a||"project"===a)return a;throw new bM("invalid_scope","scope must be global or project")}async function kn(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new bM("invalid_args","args must be an object");switch(function(a){if(!kf.includes(a))throw new bM("unknown_action",`Unknown extensions action "${a}"`);return a}(a)){case"skills.list":{let a=await kk(kg(b.cwd)),c=await jT(a),{offset:d,limit:e}=kj(c.skills.length,b.offset,b.limit,50),f=c.skills.map(a=>({name:a.name,description:a.description,filePath:a.filePath,disableModelInvocation:a.disableModelInvocation,...a.scope?{scope:a.scope}:a.sourceInfo?.scope?{scope:a.sourceInfo.scope}:{},...a.sourceInfo?.source?{source:a.sourceInfo.source}:{},...a.install?{install:a.install}:{}}));return{cwd:c.cwd,skills:f.slice(d,d+e),total:f.length,offset:d,limit:e,hasMore:d+e<f.length}}case"skills.get":{let a=kg(b.cwd),c=(0,S.oJ)(b.filePath)?.trim();if(!c||c.length>1024)throw new bM("invalid_path","filePath is required");return j9(a,c)}case"skills.toggle":{let a=kg(b.cwd),c=(0,S.oJ)(b.filePath)?.trim();if(!c||c.length>1024)throw new bM("invalid_path","filePath is required");if("boolean"!=typeof b.disableModelInvocation)throw new bM("invalid_flag","disableModelInvocation must be a boolean");return jU(a,c,b.disableModelInvocation)}case"skills.search":{let a=(0,S.oJ)(b.query)?.trim();if(!a||a.length>200)throw new bM("invalid_query","query is required");let c=b.limit,d=void 0===c?10:Number(c);if(!Number.isInteger(d)||d<1||d>20)throw new bM("invalid_limit","limit must be 1-20");return j2(a,d)}case"skills.install":{let a=(0,S.oJ)(b.package)?.trim();if(!a||a.length>256)throw new bM("invalid_package","package is required");return j3(a,km(b.scope),kh(b.cwd))}case"skills.check":{let a=kg(b.cwd),c=void 0===b.package?void 0:(0,S.oJ)(b.package)?.trim(),d=void 0===b.scope?void 0:km(b.scope);if(c&&!d||!c&&d)throw new bM("invalid_args","package and scope must be provided together");return kc({cwd:a,...c?{package:c,scope:d}:{}})}case"skills.update":{let a=kg(b.cwd),c=(0,S.oJ)(b.package)?.trim();if(!c)throw new bM("invalid_package","package is required");return kd({cwd:a,package:c,scope:km(b.scope)})}case"plugins.list":{let a=await kk(kg(b.cwd)),c=await jW(a),{offset:d,limit:e}=kj(c.packages.length,b.offset,b.limit,50);return{cwd:c.cwd,packages:c.packages.slice(d,d+e),total:c.packages.length,offset:d,limit:e,hasMore:d+e<c.packages.length}}case"plugins.action":{let a=kg(b.cwd),c=(0,S.oJ)(b.action)?.trim();if("install"!==c&&"remove"!==c&&"update"!==c&&"disable"!==c&&"enable"!==c)throw new bM("invalid_action","plugin action is required");let d=(0,S.oJ)(b.source)?.trim();if("update"!==c&&(!d||d.length>512))throw new bM("invalid_source","source is required");if(d&&d.length>512)throw new bM("invalid_source","source is too long");let e=(0,S.oJ)(b.scope)?.trim(),f="project"===e?"project":"global"===e?"global":void 0;if(void 0!==b.scope&&void 0===f&&e)throw new bM("invalid_scope","scope must be global or project");return jX(a,c,d||void 0,f)}case"agents.list":{let a=kh(b.cwd),c=await j4(a),d=c.agents;if(void 0!==b.scope){let a=(0,S.oJ)(b.scope)?.trim();d=d.filter(b=>b.source===a)}let e=(0,S.oJ)(b.query)?.trim().toLowerCase();e&&(d=d.filter(a=>`${a.name} ${a.description} ${a.systemPrompt??""}`.toLowerCase().includes(e)));let{offset:f,limit:g}=kj(d.length,b.offset,b.limit,50);return{...c.cwd?{cwd:c.cwd}:{},agents:d.slice(f,f+g).map(a=>({name:a.name,description:a.description,source:a.source,...a.filePath?{filePath:a.filePath}:{},...a.disabled?{disabled:!0}:{}})),total:d.length,offset:f,limit:g,hasMore:f+g<d.length}}case"agents.get":{let a=ki(b.name),c=void 0===b.scope?void 0:kl(b.scope),d=kh(b.cwd);return j7({name:a,...c?{scope:c}:{},...d?{cwd:d}:{}})}case"agents.save":{let a=ki(b.name);if(!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a))throw new bM("invalid_name","name must be kebab-case");let c=(0,S.oJ)(b.description)?.trim();if(!c||c.length>500)throw new bM("invalid_description","description is required");let d=(0,S.oJ)(b.systemPrompt);if(void 0===d||Buffer.byteLength(d,"utf8")>0x1000000)throw new bM("invalid_prompt","systemPrompt is required");let e=kl(b.scope),f=kh(b.cwd),g=void 0===b.tools?void 0:function(a,b){if(!Array.isArray(a)||a.some(a=>"string"!=typeof a))throw new bM("invalid_args",`${b} must be an array of strings`);return a}(b.tools,"tools"),h=void 0===b.model?void 0:function(a){if("string"==typeof a&&a.trim())return a.trim();if(Array.isArray(a)&&a.length>0&&a.every(a=>"string"==typeof a&&a.trim()))return a;throw new bM("invalid_args","model must be a non-empty selector or list")}(b.model),i=void 0===b.thinkingLevel?void 0:function(a,b){if("string"!=typeof a||!a.trim()||a.length>64)throw new bM("invalid_args",`${b} must be a non-empty string`);return a}(b.thinkingLevel,"thinkingLevel"),j=void 0===b.prewalk?void 0:ko(b.prewalk,"prewalk"),k=void 0===b.advisor?void 0:ko(b.advisor,"advisor"),l=void 0===b.blocking?void 0:function(a,b){if("boolean"!=typeof a)throw new bM("invalid_args",`${b} must be a boolean`);return a}(b.blocking,"blocking");return j5({name:a,description:c,systemPrompt:d,scope:e,...f?{cwd:f}:{},...void 0!==g?{tools:g}:{},...void 0!==h?{model:h}:{},...void 0!==i?{thinkingLevel:i}:{},...void 0!==j?{prewalk:j}:{},...void 0!==k?{advisor:k}:{},...void 0!==l?{blocking:l}:{}})}case"agents.delete":{let a=ki(b.name),c=kl(b.scope),d=kh(b.cwd);return j6({name:a,scope:c,...d?{cwd:d}:{}})}case"agents.unpack":{let a=kl(b.scope),c=kh(b.cwd),d=void 0===b.force?void 0:!0===b.force;if(void 0!==b.force&&"boolean"!=typeof b.force)throw new bM("invalid_args","force must be a boolean");return j8({scope:a,...c?{cwd:c}:{},...void 0!==d?{force:d}:{}})}case"agents.setDisabled":{let a=ki(b.name);if("boolean"!=typeof b.disabled)throw new bM("invalid_args","disabled must be a boolean");let c=a5(),d=new Set(Array.isArray(c.settings.task?.disabledAgents)?c.settings.task.disabledAgents:[]);b.disabled?d.add(a):d.delete(a);let e=a3(c.settings,{task:{disabledAgents:[...d]}});try{a6(e)}catch(a){throw new bM("agent_settings_failed",a instanceof Error?a.message:String(a))}return{name:a,disabled:b.disabled}}case"agents.setOverride":{let a=ki(b.name),c=(0,S.oJ)(b.kind)?.trim();if("model"!==c&&"prewalk"!==c&&"advisor"!==c)throw new bM("invalid_args","kind must be model, prewalk, or advisor");let d=a5(),e=d.settings.task??{},f={};if("model"===c){let c={...e.agentModelOverrides??{}};if(void 0===b.value||null===b.value||""===b.value)delete c[a];else if("string"==typeof b.value&&b.value.trim())c[a]=b.value.trim();else if(Array.isArray(b.value)&&b.value.every(a=>"string"==typeof a&&a.trim()))c[a]=b.value;else throw new bM("invalid_args","value must be a non-empty model selector or list");f.agentModelOverrides=c}else{let d="prewalk"===c?"agentPrewalk":"agentAdvisor",g={...e[d]??{}};if(void 0===b.value||null===b.value||""===b.value)delete g[a];else if("boolean"==typeof b.value||"string"==typeof b.value)g[a]=b.value;else throw new bM("invalid_args","value must be a boolean or string");f[d]=g}try{a6(a3(d.settings,{task:f}))}catch(a){throw new bM("agent_settings_failed",a instanceof Error?a.message:String(a))}return{name:a,kind:c}}case"mcp.list":{let a,d,e=kh(b.cwd),f=await jY(e),{offset:g,limit:h}=kj(f.inventory.length,b.offset,b.limit,50),i=c.sessionId??null;if(i){let b=bG(i);if(b?.isAlive())try{let c=await b.getMcpList();b.isAlive()&&bG(i)===b?a=(function(a,b){let c=[...a],d=new Set(a.map(a=>`${a.source}:${a.name}`));for(let a of b){let b=`${a.source}:${a.name}`;d.has(b)||(d.add(b),c.push(a))}return c})(function(a){let b=[],c=null;for(let d of i0(a).split(/\r?\n/)){let a=d.trim();if(!a)continue;let e=a.match(/^(.+?)\s+\([^)]*\):$/);if(e){c=e[1];continue}let f=a.match(/^(.+?)\s+[●◌○]\s+(connected|connecting|not connected|inactive|disabled)(?:\s+\[([^\]]+)\])?$/);if(!f||!c)continue;let g={connected:"connected",connecting:"connecting","not connected":"not_connected",inactive:"inactive",disabled:"disabled"};b.push({name:f[1].trim(),source:c,status:g[f[2]],type:f[3]})}if(b.length>0)return b;for(let c of i0(a).split(/\r?\n/)){let a=c.trim().match(/^(.+?)\s+\|\s+([^|]+?)\s+\|\s+(enabled|disabled)\s+\|\s+.*?(?:\s+\[([^\]]+)\])?$/);if(!a)continue;let d="user"===a[4]?"User level":"project"===a[4]?"Project level":"Configured";b.push({name:a[1].trim(),source:d,status:"enabled"===a[3]?"configured":"disabled",type:a[2].trim()})}return b}(c),f.inventory.map(({name:a,source:b,status:c,type:d})=>({name:a,source:b,status:"disabled"===c?"disabled":"configured",...d?{type:d}:{}}))).map(({name:a,source:b,status:c,type:d})=>({name:a,source:b,status:c,...d?{type:d}:{}})):d="Selected session became inactive — refresh to query its current runtime."}catch{d="Live MCP query failed. Connection status is unknown; refresh to retry."}else d="Selected session is inactive — live MCP status is unavailable."}return{sessionId:i,...a?{liveServers:a}:{},...d?{liveError:d}:{},inventory:f.inventory.slice(g,g+h),total:f.inventory.length,offset:g,limit:h,hasMore:g+h<f.inventory.length}}case"mcp.get":return ka(kg(b.cwd),ki(b.name));case"mcp.validate":return kb(ki(b.name),b.server);case"mcp.save":{let a=kg(b.cwd),c=ki(b.name),d=void 0===b.previousName?void 0:ki(b.previousName,"previousName");return j_(a,c,b.server,d)}case"mcp.delete":return jZ(kg(b.cwd),ki(b.name))}}function ko(a,b){if("boolean"==typeof a||"string"==typeof a)return a;throw new bM("invalid_args",`${b} must be a boolean or string`)}async function kp(){var a,b;let c,d;return b=await (a=["--check"],(0,aA.eG)(["update",...a],{timeout:3e5,maxBuffer:1048576}).then(({stdout:a,stderr:b})=>`${a}
|
|
89
|
+
${b}`.trim())),c=b.match(/^Current version:\s*(\S+)/mi)?.[1]??null,{currentVersion:c,availableVersion:d=b.match(/^New version available:\s*(\S+)/mi)?.[1]??null,updateAvailable:null!==d,updateCommand:"omp update"}}let kq=null;function kr(a){let b=a.match(/^v?(\d+)\.(\d+)\.(\d+)(-.+)?$/);return b?{parts:b.slice(1,4).map(Number),prerelease:!!b[4]}:null}async function ks(a=!1){if(!a&&kq&&Date.now()-kq.checkedAt<36e5)return kq.status;let b="0.7.3",c="ompgui update";try{let a=await fetch(`https://registry.npmjs.org/${encodeURIComponent("ompgui")}/latest`,{cache:"no-store",signal:AbortSignal.timeout(5e3)}),d=a.ok?await a.json():null,e="string"==typeof d?.version?d.version:null,f=!a.ok||null===e,g={currentVersion:b,availableVersion:e,updateAvailable:!!(e&&function(a,b){let c=kr(a),d=kr(b);if(!c||!d)return!1;for(let a=0;a<c.parts.length;a+=1)if(c.parts[a]!==d.parts[a])return c.parts[a]>d.parts[a];return!c.prerelease&&d.prerelease}(e,b)),updateCommand:c,lookupFailed:f};return f||(kq={checkedAt:Date.now(),status:g}),g}catch{return{currentVersion:b,availableVersion:null,updateAvailable:!1,updateCommand:c,lookupFailed:!0}}}let kt=new Set(["daily","30d","24h"]);function ku(a,b){let c="string"==typeof a?a.trim():"";if("5h"===c||"7d"===c||"monthly"===c||"30d"===c||"daily"===c)return"30d"===c?"monthly":"daily"===c?"5h":c;if("number"==typeof b&&Number.isFinite(b)){if(6e4>=Math.abs(b-18e6))return"5h";if(6e4>=Math.abs(b-6048e5))return"7d";if(36e5>=Math.abs(b-2592e6))return"monthly";if(6e4>=Math.abs(b-864e5))return"5h"}}function kv(a){let b=a.window,c=a.scope;if(!b&&!c?.windowId)return a;let d=ku(c?.windowId)??ku(b?.id)??ku(void 0,b?.durationMs);if(!d)return a;let e={...c};(c.windowId||b?.id)&&(e.windowId=d);let f=b;if(b){let a=b.label,c=null==a||""===a.trim()||kt.has(a)||a===b.id;f={...b,id:d,...c?{label:d}:{}}}return{...a,scope:e,...f?{window:f}:{}}}async function kw(a,b,c){let d=c.now??Date.now;if(b){if(a.refreshFlight)return a.refreshFlight;let b=(a.refreshGeneration??0)+1;a.refreshGeneration=b,a.entry=null,a.readFlight=null;let e=(async()=>{try{await c.invalidate()}catch{}let e=await c.fetch();return e.ok&&(a.entry={at:d(),payload:e.payload}),a.latestRefresh={generation:b,result:e},e})();a.refreshFlight=e;try{return await e}finally{a.refreshFlight===e&&(a.refreshFlight=null)}}if(a.refreshFlight)return a.refreshFlight;if(a.entry&&d()-a.entry.at<c.ttlMs)return{ok:!0,payload:{...a.entry.payload,cached:!0}};let e=a.refreshGeneration??0,f=a.readFlight;f||(a.readFlight=f={generation:e,promise:c.fetch()});try{let b=await f.promise,c=a.refreshGeneration??0;if(f.generation!==c){if(a.refreshFlight)return a.refreshFlight;let b=a.latestRefresh;if(b?.generation===c)return b.result}return b.ok&&(a.entry={at:d(),payload:b.payload}),b}finally{a.readFlight===f&&(a.readFlight=null)}}async function kx(a={}){let b,c=a.executor??aA.eG;if(!a.executor&&!(0,aA.resolveOmpBin)())return{ok:!1,status:503,error:"omp binary not found"};try{b=(await c(["usage","--json"],{timeout:3e4})).stdout}catch(c){let a=c instanceof Error?c.message:String(c),b=a.toLowerCase();if(b.includes("unknown command")||b.includes("unknown flag")||b.includes("unrecognized command")||b.includes("unrecognized option")||b.includes("invalid command")||/error:\s*(unknown|unrecognized)\s+(command|option|flag)/i.test(a)||/\bcommand not found\b/i.test(a))return{ok:!1,status:501,error:"usage command not supported by installed omp version"};return{ok:!1,status:502,error:a}}if(!b||!b.trim())return{ok:!1,status:501,error:"usage command not supported by installed omp version"};let d=(0,aA.nH)(b);if(!d||"object"!=typeof d)return{ok:!1,status:501,error:"usage command not supported by installed omp version"};let e=(Array.isArray(d.reports)?d.reports:[]).map(a=>Array.isArray(a.limits)?{...a,limits:a.limits.map(kv)}:a),f=Array.isArray(d.accountsWithoutUsage)?d.accountsWithoutUsage:[],g=Array.isArray(d.disabledCredentials)?d.disabledCredentials:[],h=function(a){let b={};for(let[c,d]of Object.entries(a)){if(!Array.isArray(d)){b[c]=d;continue}let a=new Map,e=[];for(let b of d){let c=ku(b.window,b.durationMs);if(!c){e.push(b);continue}let d=!function(a,b){let c="string"==typeof a?a.trim():"";return"daily"===c||"5h"!==c&&"7d"!==c&&"monthly"!==c&&"30d"!==c&&"number"==typeof b&&Number.isFinite(b)&&6e4>=Math.abs(b-864e5)}(b.window,b.durationMs)?b.durationMs:18e6,f=a.get(c);if(!f){a.set(c,{...b,window:c,...void 0!==d?{durationMs:d}:{}});continue}a.set(c,{...f,accounts:f.accounts+b.accounts,usedAccounts:f.usedAccounts+b.usedAccounts,remainingAccounts:f.remainingAccounts+b.remainingAccounts,durationMs:function(a,b,c){if("5h"===a){if(void 0!==b&&6e4>=Math.abs(b-18e6))return b;if(void 0!==c&&6e4>=Math.abs(c-18e6))return c}return b??c}(c,f.durationMs,d)})}b[c]=[...a.values(),...e]}return b}(d.capacity&&"object"==typeof d.capacity?d.capacity:{}),i="number"==typeof d.generatedAt?d.generatedAt:Date.now(),j="no-credentials"===d.emptyReason||0===e.length&&0===f.length&&0===g.length?"no-credentials":void 0;return{ok:!0,payload:{generatedAt:i,reports:e,accountsWithoutUsage:f,disabledCredentials:g,capacity:h,cached:!1,...j?{emptyReason:j}:{}}}}let ky=["usage.get","omp.check","app.check","omp.restart","devices.list","devices.revoke","systemPrompt.get","settings.get","settings.update","update"];class kz extends Error{constructor(a,b,c,d){super(b),this.name="SystemRequestError",this.code=a,void 0!==c&&(this.details=c),void 0!==d&&(this.status=d)}}let kA=/^d_[A-Za-z0-9_-]{16,64}$/;function kB(a,b){if(void 0!==a){if("boolean"!=typeof a)throw new kz("invalid_args",`${b} must be a boolean`);return a}}async function kC(a){let b=kB(a.refresh,"refresh")??!1,c=(globalThis.__ompgui_system_usage_cache||(globalThis.__ompgui_system_usage_cache={}),globalThis.__ompgui_system_usage_cache),d=await kw(c,b,{fetch:()=>kx(),invalidate:()=>(0,aA.eG)(["usage","invalidate"],{timeout:15e3}),ttlMs:6e4});if(d.ok){var e;let a;return a={generatedAt:(e=d.payload).generatedAt,reports:e.reports,accountsWithoutUsage:e.accountsWithoutUsage,disabledCredentials:e.disabledCredentials,capacity:e.capacity,cached:e.cached},void 0!==e.emptyReason&&(a.emptyReason=e.emptyReason),a}throw new kz(function(a){switch(a){case 503:return"omp_not_found";case 501:return"usage_not_supported";default:return"usage_fetch_failed"}}(d.status),d.error,void 0,d.status)}async function kD(){try{var a;return{currentVersion:(a=await kp()).currentVersion,availableVersion:a.availableVersion,updateAvailable:a.updateAvailable,updateCommand:a.updateCommand}}catch(a){throw new kz("omp_check_failed",a instanceof Error?a.message:String(a))}}async function kE(a){var b;let c=kB(a.force,"force")??!1;return{currentVersion:(b=await ks(c)).currentVersion,availableVersion:b.availableVersion,updateAvailable:b.updateAvailable,updateCommand:b.updateCommand,lookupFailed:b.lookupFailed}}async function kF(a){if(!0!==a.confirm)throw new kz("confirm_required","omp.restart requires {confirm:true}");try{(0,aA.YT)();let a=await bI();return{success:!0,sessionsRestarted:a}}catch(a){throw new kz("restart_failed",a instanceof Error?a.message:String(a))}}async function kG(a){let b=function(a){let b="string"==typeof a?a.trim():"";if(!b||b.length>128)throw new kz("invalid_args","sessionId is required");return b}(a.sessionId),c=bG(b);if(!c)throw new kz("session_not_running","Session is not running");try{let a=await c.send({type:"get_state"});if("object"!=typeof a||null===a||Array.isArray(a))throw new kz("system_prompt_failed","Session state unavailable");let d="systemPrompt"in a&&"string"==typeof a.systemPrompt?a.systemPrompt:"";return{sessionId:b,systemPrompt:d}}catch(a){if(a instanceof kz)throw a;throw new kz("system_prompt_failed",a instanceof Error?a.message:String(a))}}function kH(a,b){if("object"!=typeof b||null===b||Array.isArray(b))throw new kz("settings_read_failed","Stored settings are not an object");let c={};for(let[a,d]of Object.entries(b))c[a]=d;return{path:a,settings:c}}async function kI(a){if("object"!=typeof a.settings||null===a.settings||Array.isArray(a.settings))throw new kz("invalid_args","settings must be an object");let b=a1(a.settings),c=function(a){if(void 0===a)return;if(!Array.isArray(a))throw new kz("invalid_args","model lists must contain non-empty strings");let b=[];for(let c of a){if("string"!=typeof c||!c.trim())throw new kz("invalid_args","model lists must contain non-empty strings");b.push(c)}return b}(b.enabledModels);if(void 0!==c&&c.length>0)try{let a=await (0,iu.runUtilityCommand)({type:"get_available_models"},12e4);Array.isArray(a.models)&&ib(c,function(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if("object"!=typeof c||null===c||!("id"in c)||!("provider"in c))continue;let a=c.id,d=c.provider;"string"==typeof a&&"string"==typeof d&&b.push({id:a,provider:d})}return b}(a.models))}catch(a){if(a instanceof Error&&a.message.startsWith("Ambiguous enabledModels entry"))throw new kz("invalid_args",a.message)}try{let a=a5(),c=a3(a.settings,b);a6(c);let d=void 0!==b.enabledModels||void 0!==b.disabledProviders||void 0!==b.modelProviderOrder;d&&(aJ(),(0,iu.j)());let e=a5(),f=kH(e.path,e.settings).settings;return{success:!0,settings:f,application:{mode:d?"runtime-refresh":"new-session",restartRequired:!1}}}catch(a){if(a instanceof kz)throw a;throw new kz("settings_write_failed",a instanceof Error?a.message:String(a))}}async function kJ(a,b,c){if("object"!=typeof b||null===b||Array.isArray(b))throw new kz("invalid_args","args must be an object");switch(function(a){if(!ky.includes(a))throw new kz("unknown_action",`Unknown system action "${a}"`);return a}(a)){case"usage.get":return kC(b);case"omp.check":return kD();case"app.check":return kE(b);case"omp.restart":return kF(b);case"devices.list":return{devices:ag().map(a=>({id:a.id,label:a.label,createdAt:a.createdAt,lastSeenAt:a.lastSeenAt}))};case"devices.revoke":let d=function(a){let b="string"==typeof a?a.trim():"";if(!b||b.length>128||!kA.test(b))throw new kz("invalid_args","deviceId must be a valid device id");return b}(b.deviceId);if(!ad(()=>{let a=ae(),b=a.devices.filter(a=>a.id!==d);return b.length!==a.devices.length&&(a.devices=b,af(a),!0)}))throw new kz("device_not_found",`Unknown device "${d}"`);return{revoked:!0,deviceId:d,self:d===c.deviceId};case"systemPrompt.get":return kG(b);case"settings.get":try{let a=a5();return kH(a.path,a.settings)}catch(a){if(a instanceof kz)throw a;throw new kz("settings_read_failed",a instanceof Error?a.message:String(a))}case"settings.update":return kI(b);case"update":throw new kz("update_disabled","Automatic self-updating is disabled. Run 'omp update' in your terminal.",{command:"omp update"},400)}}let kK=new Map;function kL(a){hl.cleanupDevice(a);for(let[b,c]of g6)(void 0===a||c.deviceId===a)&&g7(b);!function(a){if(void 0===a){bX.clear(),bW.clear();return}for(let[b,c]of(bX.delete(a),bW))c.deviceId===a&&bW.delete(b)}(a),iY(a).catch(()=>{})}let kM={authenticate:function(a,b=Date.now()){if(a.pairingSecret){if(N()&&!function(a,b=process.env.OMPGUI_PASSWORD??process.env.OMP_WEB_PASSWORD){return N(b)&&(0,L.timingSafeEqual)(M(a),M(b))}(a.password??""))return{ok:!1,code:"password_required",message:"Workspace password is required to pair"};let c=function(a,b,c=Date.now()){return ad(()=>{let d=ae(),e=d.pairing;if(!e)return{error:"invalid"};if(e.expiresAt<=c)return d.pairing=null,af(d),{error:"expired"};if(!$(e.secretHash,Z(a)))return{error:"invalid"};if(d.devices.length>=16)return{error:"device_limit"};let f=(0,L.randomBytes)(32).toString("base64url"),g={id:_("d_"),label:aa(b)||"Phone",tokenHash:Z(f),createdAt:new Date(c).toISOString(),lastSeenAt:new Date(c).toISOString()};return d.devices=[...d.devices,g],d.pairing=null,af(d),{serverId:d.serverId,deviceId:g.id,token:f}})}(a.pairingSecret,a.label,b);return"error"in c?"expired"===c.error?{ok:!1,code:"pairing_expired",message:"Pairing link expired"}:"device_limit"===c.error?{ok:!1,code:"device_limit",message:"Too many paired devices"}:{ok:!1,code:"unauthorized",message:"Invalid pairing secret"}:{ok:!0,serverId:c.serverId,deviceId:c.deviceId,token:c.token}}if(!a.deviceId||!a.token)return{ok:!1,code:"unauthorized",message:"Device token is required"};let c=function(a,b,c=Date.now()){return ad(()=>{let d=ae(),e=d.devices.find(b=>b.id===a);return e&&$(e.tokenHash,Z(b))?(e.lastSeenAt=new Date(c).toISOString(),af(d),{serverId:d.serverId,deviceId:e.id}):null})}(a.deviceId,a.token,b);return c?{ok:!0,serverId:c.serverId,deviceId:c.deviceId}:{ok:!1,code:"unauthorized",message:"Unknown device"}},listSessions:bO,listModels:async()=>Y((await iJ()).models).models,fetchUsage:kx,openSession:bP,sendCommand:bQ,createSession:gL,listProjects:gI,listFiles:gJ,readFile:gV,listSlash:gK,deleteSession:hn,archiveSession:ho,renameSession:hp,listArchives:hq,restoreArchive:hr,listWorktrees:gW,addWorktree:g$,writeFile:gX,gitStatus:gY,gitDiff:gZ,listBranches:bT,snapshotLeaf:bU,exportSession:bV,listSkills:jT,toggleSkill:jU,searchSkills:j2,installSkill:j3,listAgents:j4,saveAgent:j5,deleteAgent:j6,listAuthProviders:ke,listPlugins:jW,pluginAction:jX,listMcp:jY,deleteMcp:jZ,upsertMcp:j$,importSession:hs,addProject:g_,removeProject:g0,searchFiles:g4};function kN(a,b,c,d){let e=b instanceof Error?b.message:String(b),f=b&&"object"==typeof b&&"code"in b&&"string"==typeof b.code?b.code:c;a(d?{op:"session.err",id:d,code:f,message:e}:{op:"error",code:f,message:e})}function kO(a){return!!a&&"/relay"===a.split("?")[0]}function kP(a,b){let c,d=b.length;return d<126?((c=Buffer.alloc(2))[0]=128|a,c[1]=d):d<=65535?((c=Buffer.alloc(4))[0]=128|a,c[1]=126,c.writeUInt16BE(d,2)):((c=Buffer.alloc(10))[0]=128|a,c[1]=127,c.writeUInt32BE(0,2),c.writeUInt32BE(d,6)),Buffer.concat([c,b])}class kQ{get bufferedAmount(){return this.socket.writableLength}constructor(a,b,c=262144){this.socket=a,this.handlers=b,this.maxPayload=c,this.buffer=Buffer.alloc(0),this.closed=!1,this.sentClose=!1,this.socket.on("data",a=>this.onData(a)),this.socket.on("end",()=>this.handlePeerClose()),this.socket.on("close",()=>this.handlePeerClose()),this.socket.on("error",()=>this.handlePeerClose())}feed(a){this.onData(a)}sendText(a){if(this.closed||!this.socket.writable)return!1;let b=Buffer.from(a,"utf8");return!(b.length>this.maxPayload)&&this.writeFrame(kP(1,b))}ping(){!this.closed&&this.socket.writable&&this.writeFrame(kP(9,Buffer.alloc(0)))}close(a=1e3,b=""){if(this.sentClose)return;this.sentClose=!0;let c=Buffer.from(b.slice(0,120),"utf8"),d=Buffer.alloc(2+c.length);d.writeUInt16BE(a,0),c.copy(d,2);try{this.socket.write(kP(8,d))}catch{}this.closed=!0;try{this.socket.end()}catch{}this.handlers.onClose()}writeFrame(a){try{if(this.bufferedAmount+a.length>1e6)return!1;return this.socket.write(a),!0}catch{return this.handlePeerClose(),!1}}onData(a){if(!this.closed)for(this.buffer=0===this.buffer.length?Buffer.from(a):Buffer.concat([this.buffer,a]);;){let a=function(a,b=262144){if(a.length<2)return{status:"need_more"};let c=a[0],d=a[1],e=(128&c)!=0,f=15&c,g=127&d;if(0!=(112&c))return{status:"error",code:1002,reason:"RSV bits must be 0"};if((128&d)==0)return{status:"error",code:1002,reason:"Client frames must be masked"};if(!e)return{status:"error",code:1003,reason:"Fragmented frames are not supported"};if(1!==f&&8!==f&&9!==f&&10!==f)return{status:"error",code:1003,reason:"Unsupported opcode"};let h=2;if(126===g){if(a.length<4)return{status:"need_more"};g=a.readUInt16BE(2),h=4}else if(127===g){if(a.length<10)return{status:"need_more"};let c=a.readUInt32BE(2),d=a.readUInt32BE(6);if(0!==c||d>b)return{status:"error",code:1009,reason:"Frame is too large"};g=d,h=10}if(g>b)return{status:"error",code:1009,reason:"Frame is too large"};if((8===f||9===f||10===f)&&g>125)return{status:"error",code:1002,reason:"Control frame is too large"};let i=h+4+g;if(a.length<i)return{status:"need_more"};let j=a.subarray(h,h+4),k=Buffer.from(a.subarray(h+4,i));for(let a=0;a<k.length;a+=1)k[a]^=j[3&a];return{status:"ok",frame:{fin:e,opcode:f,payload:k},rest:a.subarray(i)}}(this.buffer,this.maxPayload);if("need_more"===a.status){this.buffer.length>this.maxPayload+14&&this.close(1009,"Frame is too large");return}if("error"===a.status)return void this.close(a.code,a.reason);if(this.buffer=a.rest,this.dispatch(a.frame),this.closed)return}}dispatch(a){switch(a.opcode){case 1:{let b=a.payload.toString("utf8");if(Buffer.byteLength(b,"utf8")!==a.payload.length)return void this.close(1007,"Text frame is not valid UTF-8");this.handlers.onText(b);return}case 8:this.close(1e3,"");return;case 9:this.writeFrame(kP(10,a.payload));return;case 10:return;default:this.close(1003,"Unsupported opcode")}}handlePeerClose(){this.closed||(this.closed=!0,this.sentClose=!0,this.handlers.onClose())}}function kR(){return globalThis.__ompguiRelayConnectionCount??0}function kS(a){globalThis.__ompguiRelayConnectionCount=a}function kT(a){let b=a.prototype.emit;function c(a,...d){if("upgrade"===a){let a=d[0];if(kO(a.url))return!function(a,b,c){let d;if(!kO(a.url))return b.destroy();if(!function(a){if("cross-site"===a.headers["sec-fetch-site"])return!1;let b=a.headers.origin;if(!b)return!0;let c=a.headers.host;if(!c)return!1;try{return new URL(b).host===c}catch{return!1}}(a)){b.write("HTTP/1.1 403 Forbidden\r\nConnection: close\r\n\r\n"),b.destroy();return}if(kR()>=8){b.write("HTTP/1.1 503 Service Unavailable\r\nConnection: close\r\n\r\n"),b.destroy();return}let e=!1,f=null,g=function(a,b,c){let d=function(a){if("websocket"!==String(a.headers.upgrade??"").toLowerCase())return null;let b=String(a.headers.connection??"");if(!/\bupgrade\b/i.test(b)||"13"!==String(a.headers["sec-websocket-version"]??""))return null;let c=a.headers["sec-websocket-key"];return"string"!=typeof c||c.length<16||c.length>128?null:c}(a);if(!d)return b.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\n\r\n"),b.destroy(),null;let e=(0,L.createHash)("sha1").update(d+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");return b.write(`HTTP/1.1 101 Switching Protocols\r
|
|
90
90
|
Upgrade: websocket\r
|
|
91
91
|
Connection: Upgrade\r
|
|
92
92
|
Sec-WebSocket-Accept: ${e}\r
|
|
93
93
|
\r
|
|
94
|
-
`),new kM(b,c)}(a,b,{onText:a=>f?.onText(a),onClose:()=>{clearInterval(d),d=void 0,e&&(e=!1,kO(Math.max(0,kN()-1))),f?.onClose()}});g&&(e=!0,kO(kN()+1),d=setInterval(()=>g.ping(),3e4),d.unref?.(),f=function(a,b={}){let c,d={...kI,...b},e=d.now??Date.now,f=d.setTimeout??setTimeout,g=d.clearTimeout??clearTimeout,h={files:hc,sessions:hR,models:iV,extensions:kj,system:kF,...d.requestHandlers},i=new ai(e),j=d.isDeviceAuthorized??(b.authenticate?()=>!0:a=>ag().some(b=>b.id===a)),k=null,l=0,m=!1,n=0,o=0,p=Promise.resolve(),q=!1,r=!1,s=null,t=null,u=Promise.resolve(),v=(b,c=!1)=>{if(r)return!1;if(!c&&k&&!j(k))return A(),!1;try{for(let c of("error"===b.op||"session.err"===b.op||"cmd_err"===b.op?b={...b,code:/^[A-Za-z0-9_-]{1,64}$/.test(b.code)?b.code:"operation_failed",message:"Relay operation failed"}:"settings_updated"!==b.op||b.success||(b={op:"settings_updated",success:!1,error:"Settings update failed"}),function(a){let b;try{b=JSON.stringify(a)}catch{throw new ah("relay_chunk_invalid")}if(void 0===b)throw new ah("relay_chunk_invalid");let c=Buffer.byteLength(b,"utf8");if(c>0x1000000)throw new ah("relay_frame_too_large");if(c<=262144)return[b];let d=Buffer.from(b,"utf8"),e=Math.ceil(c/49152),f=(0,L.randomUUID)(),g=[];for(let a=0;a<e;a++)g.push(JSON.stringify({op:"chunk",transfer:f,index:a,count:e,data:d.subarray(49152*a,(a+1)*49152).toString("base64")}));return g}(b)))if(!a.sendText(c))return z(),a.close(1013,"Relay backpressure"),!1;return!0}catch{return a.sendText(JSON.stringify({op:"error",code:"frame_too_large",message:"Relay frame exceeds transport limits"})),z(),a.close(1009,"Relay frame too large"),!1}},w=(b,c)=>{g(x),v({op:"hello_err",code:b,message:c}),z(),a.close(1008,c)},x=f(()=>{q||r||w("hello_timeout","hello was not received in time")},1e4),y=function({emit:a,isBackpressured:b,schedule:c=function(a,b){let c=setTimeout(a,b);return()=>clearTimeout(c)},windowMs:d=33}){let e=null,f=null,g=()=>{f?.(),f=null},h=c=>{if(null===e)return!0;if(!c&&b())return!1;let d=e;return e=null,a(d)},i=()=>{f=null,h(!1)};return{push(b){let j=function(a){if(null!==a&&"object"==typeof a&&"type"in a)return a.type}(b);if("message_update"===j){e=b,f||(f=c(i,d));return}if("message_end"===j){e=null,g(),a(b);return}g(),h(!0)&&a(b)},pull:()=>!(null===e||b())&&(g(),h(!1)),reset(){e=null,g()}}}({emit:a=>!!(!s||m||"object"!=typeof a||null===a||Array.isArray(a))||v({op:"event",id:s,payload:a}),isBackpressured:()=>a.bufferedAmount>256e3}),z=()=>{if(!r){if(r=!0,g(x),g(c),i.clear(),l++,k){let a=kG.get(k);a?.delete(A),a?.size===0&&(kG.delete(k),kH(k))}y.reset(),t?.(),t=null,s=null}},A=()=>{z(),a.close(1008,"Device revoked")},B=()=>{if(!r&&k){if(!j(k))return void A();c=f(B,1e3)}},C=async a=>{if(!r){if(!q){if("hello"!==a.op)return void w("unauthorized","hello is required");let b=d.authenticate(a,e());if(!b.ok)return void w(b.code,b.message);k=b.deviceId;let h=kG.get(k);return h||(h=new Set,kG.set(k,h)),h.add(A),q=!0,c=f(B,1e3),g(x),void v({op:"hello_ok",protocol:1,serverId:b.serverId,deviceId:b.deviceId,...b.token?{token:b.token}:{}})}if(!k||!j(k))return void A();switch(a.op){case"request":try{let b="sessions"===a.domain,c=a.args.command,d="object"==typeof c&&null!==c&&"type"in c?c.type:null;b&&("leaf"===a.action||"command"===a.action&&"fork"===d||("delete"===a.action||"archive"===a.action)&&a.args.id===s)&&(l++,m="leaf"===a.action,t?.(),t=null,y.reset(),"delete"===a.action||"archive"===a.action?s=null:"string"==typeof a.args.id&&(s=a.args.id));let e=l,f=k,g=await h[a.domain](a.action,a.args,{deviceId:k,sessionId:s,assertActive:()=>{if(!j(f))throw A(),Object.assign(Error("Device authorization expired"),{code:"unauthorized"});if(r||l!==e||k!==f)throw Object.assign(Error("Session changed during request"),{code:"request_cancelled"})}}),i="system"===a.domain&&"devices.revoke"===a.action&&"string"==typeof g.deviceId?g.deviceId:null;v({op:"result",req:a.req,success:!0,data:g},i===k),i&&function(a){let b=kG.get(a);for(let c of(kG.delete(a),b??[]))c();kH(a)}(i),b&&"command"===a.action&&"object"==typeof g.result&&null!==g.result&&"newSessionId"in g.result&&"string"==typeof g.result.newSessionId&&await C({op:"session.open",id:g.result.newSessionId})}catch(c){let b="object"==typeof c&&null!==c&&"code"in c&&"string"==typeof c.code&&/^[A-Za-z0-9_-]{1,64}$/.test(c.code)?c.code:"request_failed";v({op:"result",req:a.req,success:!1,error:{code:b,message:"Relay request failed ("+b+")"}})}return;case"hello":v({op:"error",code:"already_authed",message:"Already authenticated"});return;case"sessions.list":{let a=await d.listSessions();v({op:"sessions",sessions:a.sessions,runningIds:a.runningIds});return}case"models.list":return void v(Y(await d.listModels()));case"usage":{let a=await d.fetchUsage();if(a.ok)return void v({op:"usage",data:a.payload});v({op:"usage",data:{error:a.error,status:a.status}});return}case"session.close":l++,m=!1,t?.(),t=null,s=null,y.reset();return;case"projects.list":try{let a=await (d.listProjects??gI)();v({op:"projects",projects:a})}catch(a){v({op:"error",code:"projects_failed",message:a instanceof Error?a.message:String(a)})}return;case"files.list":try{let b=await (d.listFiles??gJ)(a.path);v({op:"files",path:b.path,entries:b.entries})}catch(a){v({op:"error",code:a&&"object"==typeof a&&"code"in a&&"string"==typeof a.code?a.code:"files_failed",message:a instanceof Error?a.message:String(a)})}return;case"slash.list":return void v({op:"slash",commands:(d.listSlash??gK)()});case"files.read":try{let b=await (d.readFile??gV)(a.path);v({op:"file",path:b.path,name:b.name,...b.language?{language:b.language}:{},...void 0!==b.text?{text:b.text}:{},...b.truncated?{truncated:!0}:{},...void 0!==b.bytes?{bytes:b.bytes}:{},...b.encoding?{encoding:b.encoding}:{}})}catch(a){kJ(v,a,"files_failed")}return;case"session.delete":try{s===a.id&&(t?.(),t=null,s=null,y.reset());let b=await (d.deleteSession??hl)(a.id);v({op:"session.deleted",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kJ(v,b,"session_delete_failed",a.id)}return;case"session.archive":try{s===a.id&&(t?.(),t=null,s=null,y.reset());let b=await (d.archiveSession??hm)(a.id);v({op:"session.archived",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kJ(v,b,"session_archive_failed",a.id)}return;case"session.rename":try{let b=await (d.renameSession??hn)(a.id,a.name);v({op:"session.renamed",id:b.id,name:b.name});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kJ(v,b,"session_rename_failed",a.id)}return;case"sessions.archives":try{let a=await (d.listArchives??ho)();v({op:"archives",archives:a})}catch(a){kJ(v,a,"archives_failed")}return;case"session.restore":try{let b=await (d.restoreArchive??hp)(a.key);v({op:"session.restored",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(a){kJ(v,a,"session_restore_failed")}return;case"worktrees.list":try{let b=await (d.listWorktrees??gW)(a.cwd);v({op:"worktrees",cwd:b.cwd,projectRoot:b.projectRoot,isGit:b.isGit,currentWorktreePath:b.currentWorktreePath,worktrees:b.worktrees})}catch(a){kJ(v,a,"worktrees_failed")}return;case"worktrees.add":try{let b=await (d.addWorktree??g$)(a.cwd,a.branch);v({op:"worktree.added",path:b.path,branch:b.branch});let c=await (d.listWorktrees??gW)(a.cwd);v({op:"worktrees",cwd:c.cwd,projectRoot:c.projectRoot,isGit:c.isGit,currentWorktreePath:c.currentWorktreePath,worktrees:c.worktrees})}catch(a){kJ(v,a,"worktree_add_failed")}return;case"files.write":try{let b=await (d.writeFile??gX)(a.path,a.text,a.revision,a.baseContentHash,a.createIfMissing);v({op:"file.written",path:b.path,bytes:b.bytes})}catch(a){kJ(v,a,"files_failed")}return;case"git.status":try{let b=await (d.gitStatus??gY)(a.cwd);v({op:"git.status",cwd:b.cwd,isGitRepository:b.isGitRepository,repositoryRoot:b.repositoryRoot,files:b.files})}catch(a){kJ(v,a,"git_failed")}return;case"git.diff":try{let b=await (d.gitDiff??gZ)(a.cwd,a.path);v({op:"git.diff",path:b.path,supported:b.supported,...b.status?{status:b.status}:{},...b.patch?{patch:b.patch}:{},...b.truncated?{truncated:!0}:{}})}catch(a){kJ(v,a,"git_failed")}return;case"session.branches":try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch(b){kJ(v,b,"branches_failed",a.id)}return;case"session.leaf":try{let b=++l;m=!0,y.reset(),t?.(),t=null,s=a.id;let c=await (d.snapshotLeaf??bU)(a.id,a.leafId);if(r||l!==b)return;v({op:"session.snapshot",id:a.id,...c.title?{title:c.title}:{},...c.cwd?{cwd:c.cwd}:{},leafId:c.leafId,messages:c.messages,agent:c.agent});try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch{}}catch(b){kJ(v,b,"leaf_failed",a.id)}return;case"session.export":try{let b=await (d.exportSession??bV)(a.id,k);v({op:"session.exported",id:b.id,fileName:b.fileName,bytes:b.bytes,...b.transferId?{transferId:b.transferId}:{},...void 0!==b.size?{size:b.size}:{},...b.html?{html:b.html}:{}})}catch(b){kJ(v,b,"export_failed",a.id)}return;case"skills.list":try{let b=await (d.listSkills??jP)(a.cwd);v({op:"skills",cwd:b.cwd,skills:b.skills})}catch(a){kJ(v,a,"skills_failed")}return;case"skills.toggle":try{let b=await (d.toggleSkill??jQ)(a.cwd,a.filePath,a.disableModelInvocation);v({op:"skill.updated",filePath:b.filePath,disableModelInvocation:b.disableModelInvocation});let c=await (d.listSkills??jP)(a.cwd);v({op:"skills",cwd:c.cwd,skills:c.skills})}catch(a){kJ(v,a,"skills_failed")}return;case"plugins.list":try{let b=await (d.listPlugins??jS)(a.cwd);v({op:"plugins",cwd:b.cwd,packages:b.packages})}catch(a){kJ(v,a,"plugins_failed")}return;case"plugins.action":try{let b=await (d.pluginAction??jT)(a.cwd,a.action,a.source,a.scope);v({op:"plugins",cwd:b.cwd,packages:b.packages})}catch(a){kJ(v,a,"plugins_failed")}return;case"mcp.list":try{let b=await (d.listMcp??jU)(a.cwd);v({op:"mcp",inventory:b.inventory})}catch(a){kJ(v,a,"mcp_failed")}return;case"mcp.delete":try{let b=await (d.deleteMcp??jV)(a.cwd,a.name);v({op:"mcp.deleted",name:b.name});let c=await (d.listMcp??jU)(a.cwd);v({op:"mcp",inventory:c.inventory})}catch(a){kJ(v,a,"mcp_failed")}return;case"mcp.upsert":try{let b=await (d.upsertMcp??jW)(a);v({op:"mcp.upserted",name:b.name});let c=await (d.listMcp??jU)(a.cwd);v({op:"mcp",inventory:c.inventory})}catch(a){kJ(v,a,"mcp_failed")}return;case"session.create":try{let b=await (d.createSession??gL)({cwd:a.cwd,message:a.message,provider:a.provider,modelId:a.modelId,thinkingLevel:a.thinkingLevel});v({op:"session.created",id:b.sessionId,cwd:a.cwd}),t?.(),t=null,y.reset(),s=b.sessionId;let c=++l;m=!1;let e=await d.openSession(b.sessionId,a=>{r||l!==c||m||y.push(a)});if(r||l!==c||s!==b.sessionId)return void e.dispose();t=e.dispose,y.reset(),v({op:"session.snapshot",id:b.sessionId,...e.snapshot.title?{title:e.snapshot.title}:{},...e.snapshot.cwd?{cwd:e.snapshot.cwd}:{},leafId:e.snapshot.leafId,messages:e.snapshot.messages,agent:e.snapshot.agent})}catch(b){s=null,l++,y.reset();let a=b instanceof Error?b.message:String(b);v({op:"session.err",code:b&&"object"==typeof b&&"code"in b&&"string"==typeof b.code?b.code:"session_create_failed",message:a})}return;case"session.import":try{let b=await (d.importSession??hq)(a.fileName,a.content);v({op:"session.imported",id:b.id,cwd:b.cwd});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(a){kJ(v,a,"session_import_failed")}return;case"skills.search":try{let b=await (d.searchSkills??j$)(a.query,a.limit??10);v({op:"skill.results",query:b.query,results:b.results})}catch(a){kJ(v,a,"skills_failed")}return;case"skills.install":try{let b=await (d.installSkill??j_)(a.package,a.scope,a.cwd);if(v({op:"skill.installed",package:b.package,scope:b.scope}),a.cwd){let b=await (d.listSkills??jP)(a.cwd);v({op:"skills",cwd:b.cwd,skills:b.skills})}}catch(a){kJ(v,a,"skills_failed")}return;case"agents.list":try{let b=await (d.listAgents??j0)(a.cwd);v({op:"agents",...b.cwd?{cwd:b.cwd}:{},agents:b.agents})}catch(a){kJ(v,a,"agents_failed")}return;case"agents.save":try{let b=await (d.saveAgent??j1)({name:a.name,description:a.description,systemPrompt:a.systemPrompt,scope:a.scope,...a.cwd?{cwd:a.cwd}:{}});v({op:"agent.saved",name:b.name,...b.filePath?{filePath:b.filePath}:{}});let c=await (d.listAgents??j0)(a.cwd);v({op:"agents",...c.cwd?{cwd:c.cwd}:{},agents:c.agents})}catch(a){kJ(v,a,"agents_failed")}return;case"agents.delete":try{let b=await (d.deleteAgent??j2)({name:a.name,scope:a.scope,...a.cwd?{cwd:a.cwd}:{}});v({op:"agent.deleted",name:b.name});let c=await (d.listAgents??j0)(a.cwd);v({op:"agents",...c.cwd?{cwd:c.cwd}:{},agents:c.agents})}catch(a){kJ(v,a,"agents_failed")}return;case"auth.providers":try{let a=await (d.listAuthProviders??ka)();v({op:"auth.providers",providers:a.providers})}catch(a){kJ(v,a,"auth_failed")}return;case"files.index":try{let b=await (d.searchFiles??g4)(a.cwd,a.query);v({op:"files.index",cwd:b.cwd,query:b.query,matches:b.matches})}catch(a){kJ(v,a,"files_failed")}return;case"projects.add":try{let b=await (d.addProject??g_)(a.cwd);v({op:"project.added",path:b.path,...b.name?{name:b.name}:{}});let c=await (d.listProjects??gI)();v({op:"projects",projects:c})}catch(a){kJ(v,a,"projects_failed")}return;case"projects.remove":try{let b=await (d.removeProject??g0)(a.cwd);v({op:"project.removed",path:b.path});let c=await (d.listProjects??gI)();v({op:"projects",projects:c})}catch(a){kJ(v,a,"projects_failed")}return;case"settings.get":try{let a=a5();v({op:"settings",settings:a.settings})}catch(a){v({op:"error",code:"settings_read_failed",message:String(a)})}return;case"settings.update":try{let b=a5(),c=a3(b.settings,a.settings);a6(c);let d=a.settings;(void 0!==d.enabledModels||void 0!==d.disabledProviders||void 0!==d.modelProviderOrder)&&(aJ(),(0,iq.j)());let e=a5();v({op:"settings_updated",success:!0,settings:e.settings})}catch(a){v({op:"settings_updated",success:!1,error:String(a)})}return;case"session.open":{let b=++l;m=!1,t?.(),t=null,y.reset(),s=a.id;try{let c=await d.openSession(a.id,a=>{r||l!==b||m||y.push(a)});if(r||l!==b||s!==a.id)return void c.dispose();t=c.dispose,y.reset(),v({op:"session.snapshot",id:a.id,...c.snapshot.title?{title:c.snapshot.title}:{},...c.snapshot.cwd?{cwd:c.snapshot.cwd}:{},leafId:c.snapshot.leafId,messages:c.snapshot.messages,agent:c.snapshot.agent})||v({op:"session.err",id:a.id,code:"snapshot_too_large",message:"Session snapshot exceeded maximum frame size"});try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch{}}catch(d){s=null,l++,y.reset();let b=d instanceof Error?d.message:String(d),c=d&&"object"==typeof d&&"code"in d&&"string"==typeof d.code?d.code:"session_open_failed";v({op:"session.err",id:a.id,code:c,message:b})}return}case"cmd":if(!s)return void v({op:"cmd_err",req:a.req,code:"session_not_open",message:"Open a session first"});try{let b=l,c=s,e=await d.sendCommand(c,function(a){switch(a.type){case"prompt":return{type:"prompt",message:a.message??"",...a.images?{images:a.images}:{}};case"abort":return{type:"abort"};case"get_state":return{type:"get_state"};case"set_model":return{type:"set_model",provider:a.provider,modelId:a.modelId};case"set_thinking_level":return{type:"set_thinking_level",level:a.level};case"compact":return{type:"compact"};case"get_subagents":return{type:"get_subagents"};case"get_available_commands":return{type:"get_available_commands"}}}(a));if(r||l!==b||s!==c)return;v({op:"cmd_ok",req:a.req,data:e??null})}catch(d){let b=d instanceof Error?d.message:String(d),c=d&&"object"==typeof d&&"code"in d&&"string"==typeof d.code?d.code:"rpc_command_failed";v({op:"cmd_err",req:a.req,code:c,message:b})}}}};return{onText(a){if(r)return;let b=a,c=!1;try{if(Buffer.byteLength(a,"utf8")>262144)throw Error("Frame exceeds transport limit");let d=JSON.parse(a);if("object"==typeof d&&null!==d&&"op"in d&&"chunk"===d.op){if(!q)return void w("unauthorized","hello is required before chunks");let a=i.accept(d);if(null===a)return;b=a,c=!0}}catch{i.clear(),q?v({op:"error",code:"invalid_frame",message:"Invalid relay frame"}):w("invalid_frame","Invalid relay frame");return}let d=function(a,b=!1){let c;if("string"!=typeof a||0===a.length)return{error:!0,code:"invalid_json",message:"Empty frame"};if(Buffer.byteLength(a,"utf8")>(b?0x1000000:262144))return{error:!0,code:"frame_too_large",message:"Frame is too large"};try{c=JSON.parse(a)}catch{return{error:!0,code:"invalid_json",message:"Frame is not JSON"}}if(!(0,S.u4)(c))return{error:!0,code:"invalid_frame",message:"Frame must be a JSON object"};let d=(0,S.oJ)(c.op);if(!d)return{error:!0,code:"invalid_frame",message:"op is required"};switch(d){case"request":{let{req:a,domain:b,action:d,args:e}=c;if("number"!=typeof a||!Number.isSafeInteger(a)||a<=0||"files"!==b&&"sessions"!==b&&"models"!==b&&"extensions"!==b&&"system"!==b||"string"!=typeof d||!/^[A-Za-z][A-Za-z0-9._-]{0,127}$/.test(d)||"object"!=typeof e||null===e||Array.isArray(e))return{error:!0,code:"invalid_request",message:"Invalid request envelope"};return{op:"request",req:a,domain:b,action:d,args:e}}case"hello":return function(a){if(1!==(0,S.i)(a.protocol))return{error:!0,code:"protocol",message:"Unsupported relay protocol"};let b={op:"hello",protocol:1},c=(0,S.oJ)(a.pairingSecret)?.trim(),d=(0,S.oJ)(a.deviceId)?.trim(),e=(0,S.oJ)(a.token)?.trim(),f=(0,S.oJ)(a.password),g=(0,S.oJ)(a.label)?.trim();if(c){if(!W.test(c))return{error:!0,code:"unauthorized",message:"Invalid pairing secret"};b.pairingSecret=c}else{if(!d||!e)return{error:!0,code:"unauthorized",message:"Pairing secret or device token is required"};if(!V.test(d)||!W.test(e))return{error:!0,code:"unauthorized",message:"Invalid device credentials"};b.deviceId=d,b.token=e}return void 0!==f&&(b.password=f),g&&(b.label=g.slice(0,64)),b}(c);case"sessions.list":return{op:"sessions.list"};case"models.list":return{op:"models.list"};case"usage":return{op:"usage"};case"session.open":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return{op:"session.open",id:a}}case"session.close":return{op:"session.close"};case"session.create":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};let b={op:"session.create",cwd:a},d=(0,S.oJ)(c.message);if(void 0!==d){if(d.length>3145728)return{error:!0,code:"invalid_command",message:"prompt message is too long"};b.message=d}let e=(0,S.oJ)(c.provider)?.trim(),f=(0,S.oJ)(c.modelId)?.trim();e&&(b.provider=e.slice(0,512)),f&&(b.modelId=f.slice(0,512));let g=(0,S.oJ)(c.thinkingLevel)?.trim();return g&&(b.thinkingLevel=g.slice(0,32)),b}case"projects.list":return{op:"projects.list"};case"files.list":{let a=(0,S.oJ)(c.path)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_path",message:"path is too long"};return a?{op:"files.list",path:a}:{op:"files.list"}}case"slash.list":return{op:"slash.list"};case"files.read":{let a=(0,S.oJ)(c.path)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};return{op:"files.read",path:a}}case"session.delete":case"session.archive":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return"session.delete"===d?{op:"session.delete",id:a}:{op:"session.archive",id:a}}case"session.rename":{let a=(0,S.oJ)(c.id)?.trim(),b=(0,S.oJ)(c.name)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};if(!b||b.length>200)return{error:!0,code:"invalid_name",message:"name is required"};return{op:"session.rename",id:a,name:b}}case"sessions.archives":return{op:"sessions.archives"};case"session.restore":{let a=(0,S.oJ)(c.key)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_key",message:"archive key is required"};return{op:"session.restore",key:a}}case"worktrees.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return{op:"worktrees.list",cwd:a}}case"worktrees.add":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.branch)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_branch",message:"branch is required"};return{op:"worktrees.add",cwd:a,branch:b}}case"files.write":{let a=(0,S.oJ)(c.path)?.trim(),b=(0,S.oJ)(c.text);if(!a||a.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};if(void 0===b)return{error:!0,code:"invalid_text",message:"text is required"};if(b.length>8e4)return{error:!0,code:"invalid_text",message:"text is too long"};return{op:"files.write",path:a,text:b,..."string"==typeof c.revision?{revision:c.revision}:{},..."string"==typeof c.baseContentHash?{baseContentHash:c.baseContentHash}:{},...!0===c.createIfMissing?{createIfMissing:!0}:{}}}case"git.status":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return{op:"git.status",cwd:a}}case"git.diff":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.path)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};return{op:"git.diff",cwd:a,path:b}}case"session.branches":case"session.export":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return"session.branches"===d?{op:"session.branches",id:a}:{op:"session.export",id:a}}case"session.leaf":{let a=(0,S.oJ)(c.id)?.trim(),b=(0,S.oJ)(c.leafId)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};if(!b||b.length>200)return{error:!0,code:"invalid_leaf",message:"leafId is required"};return{op:"session.leaf",id:a,leafId:b}}case"skills.list":case"plugins.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return"skills.list"===d?{op:"skills.list",cwd:a}:{op:"plugins.list",cwd:a}}case"skills.toggle":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.filePath)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>1024)return{error:!0,code:"invalid_path",message:"filePath is required"};if("boolean"!=typeof c.disableModelInvocation)return{error:!0,code:"invalid_flag",message:"disableModelInvocation must be a boolean"};return{op:"skills.toggle",cwd:a,filePath:b,disableModelInvocation:c.disableModelInvocation}}case"plugins.action":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.action)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if("install"!==b&&"remove"!==b&&"update"!==b&&"disable"!==b&&"enable"!==b)return{error:!0,code:"invalid_action",message:"plugin action is required"};let d=(0,S.oJ)(c.source)?.trim();if("update"!==b&&(!d||d.length>512))return{error:!0,code:"invalid_source",message:"source is required"};if(d&&d.length>512)return{error:!0,code:"invalid_source",message:"source is too long"};let e=(0,S.oJ)(c.scope)?.trim(),f="project"===e?"project":"global"===e?"global":void 0;return{op:"plugins.action",cwd:a,action:b,...d?{source:d}:{},...f?{scope:f}:{}}}case"mcp.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return a?{op:"mcp.list",cwd:a}:{op:"mcp.list"}}case"mcp.delete":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.name)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_name",message:"name is required"};return{op:"mcp.delete",cwd:a,name:b}}case"mcp.upsert":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.name)?.trim(),d=(0,S.oJ)(c.type)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_name",message:"name is required"};if("stdio"!==d&&"http"!==d&&"sse"!==d)return{error:!0,code:"invalid_type",message:"type must be stdio, http, or sse"};let e=(0,S.oJ)(c.command)?.trim(),f=(0,S.oJ)(c.url)?.trim();if(e&&e.length>1024)return{error:!0,code:"invalid_command",message:"command is too long"};if(f&&f.length>1024)return{error:!0,code:"invalid_url",message:"url is too long"};let g={op:"mcp.upsert",cwd:a,name:b,type:d};if(e&&(g.command=e),f&&(g.url=f),Array.isArray(c.args)){let a=[];for(let b of c.args){if("string"!=typeof b)return{error:!0,code:"invalid_args",message:"args must be strings"};if(b.length>256)return{error:!0,code:"invalid_args",message:"arg is too long"};if(a.push(b),a.length>16)return{error:!0,code:"invalid_args",message:"too many args"}}a.length>0&&(g.args=a)}else if(null!=c.args)return{error:!0,code:"invalid_args",message:"args must be an array"};return g}case"session.import":{let a=(0,S.oJ)(c.fileName)?.trim(),b=(0,S.oJ)(c.content);if(!a||a.length>200||a.includes("/")||a.includes("\\"))return{error:!0,code:"invalid_file_name",message:"fileName is required"};if(void 0===b||!b.trim())return{error:!0,code:"invalid_content",message:"content is required"};if(b.length>18e4)return{error:!0,code:"invalid_content",message:"content is too long"};return{op:"session.import",fileName:a,content:b}}case"skills.search":{let a=(0,S.oJ)(c.query)?.trim();if(!a||a.length>200)return{error:!0,code:"invalid_query",message:"query is required"};let b=c.limit;if(void 0===b)return{op:"skills.search",query:a};let d=(0,S.i)(b);if(void 0===d||!Number.isInteger(d)||d<1||d>20)return{error:!0,code:"invalid_limit",message:"limit must be 1-20"};return{op:"skills.search",query:a,limit:d}}case"skills.install":{let a=(0,S.oJ)(c.package)?.trim(),b=(0,S.oJ)(c.scope)?.trim(),d=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>256)return{error:!0,code:"invalid_package",message:"package is required"};if("global"!==b&&"project"!==b)return{error:!0,code:"invalid_scope",message:"scope must be global or project"};if(d&&d.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"skills.install",package:a,scope:b,...d?{cwd:d}:{}}}case"agents.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return a?{op:"agents.list",cwd:a}:{op:"agents.list"}}case"agents.save":{let a=(0,S.oJ)(c.name)?.trim(),b=(0,S.oJ)(c.description)?.trim(),d=(0,S.oJ)(c.systemPrompt),e=(0,S.oJ)(c.scope)?.trim(),f=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>64||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a))return{error:!0,code:"invalid_name",message:"name must be kebab-case"};if(void 0===b||!b||b.length>500)return{error:!0,code:"invalid_description",message:"description is required"};if(void 0===d||d.length>2e4)return{error:!0,code:"invalid_prompt",message:"systemPrompt is required"};if("user"!==e&&"project"!==e)return{error:!0,code:"invalid_scope",message:"scope must be user or project"};if(f&&f.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"agents.save",name:a,description:b,systemPrompt:d,scope:e,...f?{cwd:f}:{}}}case"agents.delete":{let a=(0,S.oJ)(c.name)?.trim(),b=(0,S.oJ)(c.scope)?.trim(),d=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>64)return{error:!0,code:"invalid_name",message:"name is required"};if("user"!==b&&"project"!==b)return{error:!0,code:"invalid_scope",message:"scope must be user or project"};if(d&&d.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"agents.delete",name:a,scope:b,...d?{cwd:d}:{}}}case"auth.providers":return{op:"auth.providers"};case"files.index":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.query);if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(void 0===b||b.length>100)return{error:!0,code:"invalid_query",message:"query is required"};return{op:"files.index",cwd:a,query:b}}case"projects.add":case"projects.remove":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return"projects.add"===d?{op:"projects.add",cwd:a}:{op:"projects.remove",cwd:a}}case"settings.get":return{op:"settings.get"};case"settings.update":if(!(0,S.u4)(c.settings))return{error:!0,code:"invalid_settings",message:"settings must be an object"};return{op:"settings.update",settings:c.settings};case"cmd":return function(a){let b=(0,S.i)(a.req);if(void 0===b||!Number.isInteger(b)||b<1||b>0x7fffffff)return{error:!0,code:"invalid_req",message:"cmd.req must be a positive integer"};let c=(0,S.oJ)(a.type)?.trim();if(!c||!U.has(c))return{error:!0,code:"unsupported_command",message:"Command is not allowed on the relay"};let d={op:"cmd",req:b,type:c};if("prompt"===c){let b=(0,S.oJ)(a.message);if(void 0===b)return{error:!0,code:"invalid_command",message:"prompt message is required"};if(b.length>3145728)return{error:!0,code:"invalid_command",message:"prompt message is too long"};if("images"in a&&null!=a.images){let b=a.images;if(!Array.isArray(b))return{error:!0,code:"invalid_command",message:"images must be an array"};let c=[];for(let a of b){if(!(0,S.u4)(a))return{error:!0,code:"invalid_command",message:"Each image must have data and mimeType"};let b=(0,S.oJ)(a.data),d=(0,S.oJ)(a.mimeType)?.trim();if(!b||!d)return{error:!0,code:"invalid_command",message:"Each image must have data and mimeType"};c.push({data:b,mimeType:d})}let e=(0,T.kc)(c.map(a=>({type:"image",...a})));if(e)return{error:!0,code:"invalid_command",message:e};c.length>0&&(d.images=c)}d.message=b}if("set_model"===c){let b=(0,S.oJ)(a.provider)?.trim(),c=(0,S.oJ)(a.modelId)?.trim();if(!b||!c)return{error:!0,code:"invalid_command",message:"set_model requires provider and modelId"};d.provider=b,d.modelId=c}if("set_thinking_level"===c){let b=(0,S.oJ)(a.level)?.trim();if(!b)return{error:!0,code:"invalid_command",message:"set_thinking_level requires level"};d.level=b.slice(0,32)}return d}(c);default:return{error:!0,code:"unknown_op",message:`Unknown op: ${d}`}}}(b,c);if((0,S.u4)(d)&&!0===d.error&&"string"==typeof d.code)return q?void v({op:"error",code:d.code,message:d.message}):void w(d.code,d.message);let e=q&&("cmd"===d.op&&"abort"===d.type||"request"===d.op&&"sessions"===d.domain&&"command"===d.action&&"object"==typeof d.args.command&&null!==d.args.command&&"type"in d.args.command&&("abort"===d.args.command.type||"extension_ui_response"===d.args.command.type));if((e?o:n)>=(e?16:64))return void("request"===d.op?v({op:"result",req:d.req,success:!1,error:{code:"busy",message:"Too many pending relay operations"}}):"cmd"===d.op?v({op:"cmd_err",req:d.req,code:"busy",message:"Too many pending relay operations"}):v({op:"error",code:"busy",message:"Too many pending relay operations"}));e?o++:n++;let f=()=>C(d).catch(()=>{v({op:"error",code:"internal_error",message:"Relay operation failed"})}).finally(()=>{e?o--:n--});e?p=p.then(f):u=u.then(f)},onClose(){z()}}}(g),c.length>0&&g.feed(c))}(a,d[1],d[2]??Buffer.alloc(0)),!0}return b.call(this,a,...d)}b.__ompguiRelay||(c.__ompguiRelay=!0,a.prototype.emit=c)}function kQ(){globalThis.__ompguiRelayGatewayAttached||(globalThis.__ompguiRelayGatewayAttached=!0,kP(J.Server),kP(K.Server))}},71217:(a,b,c)=>{"use strict";var d=c(93602),e=c(95241),f=c(33824),g=c(40686),h=c(3327),i=c(73315),j=c(37521),k=c(26701),l=c(30598),m=c(71397),n=(c(2063),c(44559)),o=c(17518),p=c(55578),q=c(62499),r=c(3404);d.Composer,e.Document,f.Schema,g.YAMLError,g.YAMLParseError,g.YAMLWarning,h.Alias,i.isAlias,i.isCollection,i.isDocument,b.jh=i.isMap,i.isNode,i.isPair,b.jn=i.isScalar,b.oP=i.isSeq,j.Pair,k.Scalar,l.YAMLMap,m.YAMLSeq,n.Lexer,o.LineCounter,p.Parser,b.qg=q.parse,q.parseAllDocuments,b.Tp=q.parseDocument,b.As=q.stringify,r.visit,r.visitAsync},71260:(a,b,c)=>{"use strict";var d=c(81833),e=c(40542),f=c(40686),g=c(93051);function h(a,b){if(b)for(let c of b)switch(c.type){case"space":case"comment":a.push(c);break;case"newline":return a.push(c),!0}return!1}function i(a,b,c){switch(a.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":a.type=c,a.source=b;break;case"block-scalar":{let d=a.props.slice(1),e=b.length;for(let b of("block-scalar-header"===a.props[0].type&&(e-=a.props[0].source.length),d))b.offset+=e;delete a.props,Object.assign(a,{type:c,source:b,end:d});break}case"block-map":case"block-seq":{let d={type:"newline",offset:a.offset+b.length,indent:a.indent,source:"\n"};delete a.items,Object.assign(a,{type:c,source:b,end:[d]});break}default:{let d="indent"in a?a.indent:-1,e="end"in a&&Array.isArray(a.end)?a.end.filter(a=>"space"===a.type||"comment"===a.type||"newline"===a.type):[];for(let b of Object.keys(a))"type"!==b&&"offset"!==b&&delete a[b];Object.assign(a,{type:c,indent:d,source:b,end:e})}}}b.createScalarToken=function(a,b){let{implicitKey:c=!1,indent:d,inFlow:e=!1,offset:f=-1,type:i="PLAIN"}=b,j=g.stringifyString({type:i,value:a},{implicitKey:c,indent:d>0?" ".repeat(d):"",inFlow:e,options:{blockQuote:!0,lineWidth:-1}}),k=b.end??[{type:"newline",offset:-1,indent:d,source:"\n"}];switch(j[0]){case"|":case">":{let a=j.indexOf("\n"),b=j.substring(0,a),c=j.substring(a+1)+"\n",e=[{type:"block-scalar-header",offset:f,indent:d,source:b}];return h(e,k)||e.push({type:"newline",offset:-1,indent:d,source:"\n"}),{type:"block-scalar",offset:f,indent:d,props:e,source:c}}case'"':return{type:"double-quoted-scalar",offset:f,indent:d,source:j,end:k};case"'":return{type:"single-quoted-scalar",offset:f,indent:d,source:j,end:k};default:return{type:"scalar",offset:f,indent:d,source:j,end:k}}},b.resolveAsScalar=function(a,b=!0,c){if(a){let g=(a,b,d)=>{let e="number"==typeof a?a:Array.isArray(a)?a[0]:a.offset;if(c)c(e,b,d);else throw new f.YAMLParseError([e,e+1],b,d)};switch(a.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return e.resolveFlowScalar(a,b,g);case"block-scalar":return d.resolveBlockScalar({options:{strict:b}},a,g)}}return null},b.setScalarValue=function(a,b,c={}){let{afterKey:d=!1,implicitKey:e=!1,inFlow:f=!1,type:j}=c,k="indent"in a?a.indent:null;if(d&&"number"==typeof k&&(k+=2),!j)switch(a.type){case"single-quoted-scalar":j="QUOTE_SINGLE";break;case"double-quoted-scalar":j="QUOTE_DOUBLE";break;case"block-scalar":{let b=a.props[0];if("block-scalar-header"!==b.type)throw Error("Invalid block scalar header");j=">"===b.source[0]?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:j="PLAIN"}let l=g.stringifyString({type:j,value:b},{implicitKey:e||null===k,indent:null!==k&&k>0?" ".repeat(k):"",inFlow:f,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":!function(a,b){let c=b.indexOf("\n"),d=b.substring(0,c),e=b.substring(c+1)+"\n";if("block-scalar"===a.type){let b=a.props[0];if("block-scalar-header"!==b.type)throw Error("Invalid block scalar header");b.source=d,a.source=e}else{let{offset:b}=a,c="indent"in a?a.indent:-1,f=[{type:"block-scalar-header",offset:b,indent:c,source:d}];for(let b of(h(f,"end"in a?a.end:void 0)||f.push({type:"newline",offset:-1,indent:c,source:"\n"}),Object.keys(a)))"type"!==b&&"offset"!==b&&delete a[b];Object.assign(a,{type:"block-scalar",indent:c,props:f,source:e})}}(a,l);break;case'"':i(a,l,"double-quoted-scalar");break;case"'":i(a,l,"single-quoted-scalar");break;default:i(a,l,"scalar")}}},71397:(a,b,c)=>{"use strict";var d=c(10878),e=c(70752),f=c(66273),g=c(73315),h=c(26701),i=c(49443);class j extends f.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(a){super(g.SEQ,a),this.items=[]}add(a){this.items.push(a)}delete(a){let b=k(a);return"number"==typeof b&&this.items.splice(b,1).length>0}get(a,b){let c=k(a);if("number"!=typeof c)return;let d=this.items[c];return!b&&g.isScalar(d)?d.value:d}has(a){let b=k(a);return"number"==typeof b&&b<this.items.length}set(a,b){let c=k(a);if("number"!=typeof c)throw Error(`Expected a valid index, not ${a}.`);let d=this.items[c];g.isScalar(d)&&h.isScalarValue(b)?d.value=b:this.items[c]=b}toJSON(a,b){let c=[];b?.onCreate&&b.onCreate(c);let d=0;for(let a of this.items)c.push(i.toJS(a,String(d++),b));return c}toString(a,b,c){return a?e.stringifyCollection(this,a,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(a.indent||"")+" ",onChompKeep:c,onComment:b}):JSON.stringify(this)}static from(a,b,c){let{replacer:e}=c,f=new this(a);if(b&&Symbol.iterator in Object(b)){let a=0;for(let g of b){if("function"==typeof e){let c=b instanceof Set?g:String(a++);g=e.call(b,c,g)}f.items.push(d.createNode(g,void 0,c))}}return f}}function k(a){let b=g.isScalar(a)?a.value:a;return b&&"string"==typeof b&&(b=Number(b)),"number"==typeof b&&Number.isInteger(b)&&b>=0?b:null}b.YAMLSeq=j},71422:(a,b)=>{b.uriToZipEntryName=function(a,b){return"/"===b.charAt(0)?b.substr(1):a+"/"+b},b.replaceFragment=function(a,b){var c=a.indexOf("#");return -1!==c&&(a=a.substring(0,c)),a+"#"+b}},71646:a=>{"use strict";global.MutationObserver||global.WebKitMutationObserver;var b,c=function(){process.nextTick(e)},d=[];function e(){b=!0;for(var a,c,e=d.length;e;){for(c=d,d=[],a=-1;++a<e;)c[a]();e=d.length}b=!1}a.exports=function(a){1!==d.push(a)||b||c()}},71759:(a,b,c)=>{"use strict";a.exports=function(a,b){var d=c(22418),e=a.CancellationError,f=d.errorObj;function g(a,b,c){this.promise=a,this.type=b,this.handler=c,this.called=!1,this.cancelPromise=null}function h(a){this.finallyHandler=a}function i(a,b){return null!=a.cancelPromise&&(arguments.length>1?a.cancelPromise._reject(b):a.cancelPromise._cancel(),a.cancelPromise=null,!0)}function j(){return l.call(this,this.promise._target()._settledValue())}function k(a){if(!i(this,a))return f.e=a,f}function l(c){var d=this.promise,g=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?g.call(d._boundValue()):g.call(d._boundValue(),c);if(void 0!==l){d._setReturnedNonUndefined();var m=b(l,d);if(m instanceof a){if(null!=this.cancelPromise)if(m._isCancelled()){var n=new e("late cancellation observer");return d._attachExtraTrace(n),f.e=n,f}else m.isPending()&&m._attachCancellationCallback(new h(this));return m._then(j,k,void 0,this,void 0)}}}return d.isRejected()?(i(this),f.e=c,f):(i(this),c)}return g.prototype.isFinallyHandler=function(){return 0===this.type},h.prototype._resultCancelled=function(){i(this.finallyHandler)},a.prototype._passThrough=function(a,b,c,d){return"function"!=typeof a?this.then():this._then(c,d,void 0,new g(this,b,a),void 0)},a.prototype.lastly=a.prototype.finally=function(a){return this._passThrough(a,0,l,l)},a.prototype.tap=function(a){return this._passThrough(a,1,l)},g}},71848:(a,b,c)=>{"use strict";var d=c(20577),e=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b};a.exports=l;var f=Object.create(c(22362));f.inherits=c(50843);var g=c(38418),h=c(49358);f.inherits(l,g);for(var i=e(h.prototype),j=0;j<i.length;j++){var k=i[j];l.prototype[k]||(l.prototype[k]=h.prototype[k])}function l(a){if(!(this instanceof l))return new l(a);g.call(this,a),h.call(this,a),a&&!1===a.readable&&(this.readable=!1),a&&!1===a.writable&&(this.writable=!1),this.allowHalfOpen=!0,a&&!1===a.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",m)}function m(){this.allowHalfOpen||this._writableState.ended||d.nextTick(n,this)}function n(a){a.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(a){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=a,this._writableState.destroyed=a)}}),l.prototype._destroy=function(a,b){this.push(null),this.end(),d.nextTick(b,a)}},72240:function(a,b,c){(function(){var b,d,e,f,g,h,i=function(a,b){for(var c in b)j.call(b,c)&&(a[c]=b[c]);function d(){this.constructor=a}return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},j={}.hasOwnProperty;h=c(54117).isObject,g=c(8142),b=c(54107),e=c(4907),d=c(9774),f=c(54968),a.exports=function(a){function c(a,b,d){var e,f;c.__super__.constructor.call(this,a),this.name="!DOCTYPE",this.documentObject=a,h(b)&&(b=(e=b).pubID,d=e.sysID),null==d&&(d=(f=[b,d])[0],b=f[1]),null!=b&&(this.pubID=this.stringify.dtdPubID(b)),null!=d&&(this.sysID=this.stringify.dtdSysID(d))}return i(c,a),c.prototype.element=function(a,b){var c;return c=new d(this,a,b),this.children.push(c),this},c.prototype.attList=function(a,c,d,e,f){var g;return g=new b(this,a,c,d,e,f),this.children.push(g),this},c.prototype.entity=function(a,b){var c;return c=new e(this,!1,a,b),this.children.push(c),this},c.prototype.pEntity=function(a,b){var c;return c=new e(this,!0,a,b),this.children.push(c),this},c.prototype.notation=function(a,b){var c;return c=new f(this,a,b),this.children.push(c),this},c.prototype.toString=function(a){return this.options.writer.set(a).docType(this)},c.prototype.ele=function(a,b){return this.element(a,b)},c.prototype.att=function(a,b,c,d,e){return this.attList(a,b,c,d,e)},c.prototype.ent=function(a,b){return this.entity(a,b)},c.prototype.pent=function(a,b){return this.pEntity(a,b)},c.prototype.not=function(a,b){return this.notation(a,b)},c.prototype.up=function(){return this.root()||this.documentObject},c}(g)}).call(this)},72687:(a,b)=>{"use strict";function c(a,b){return/^\n+$/.test(a)?a.substring(1):b?a.replace(/^(?! *$)/gm,b):a}b.indentComment=c,b.lineComment=(a,b,d)=>a.endsWith("\n")?c(d,b):d.includes("\n")?"\n"+c(d,b):(a.endsWith(" ")?"":" ")+d,b.stringifyComment=a=>a.replace(/^(?!$)(?: $)?/gm,"#")},72884:function(a){(function(){var b={}.hasOwnProperty;a.exports=function(){function a(a){var c,d,e,f,g,h,i,j,k;for(c in a||(a={}),this.pretty=a.pretty||!1,this.allowEmpty=null!=(d=a.allowEmpty)&&d,this.pretty?(this.indent=null!=(e=a.indent)?e:" ",this.newline=null!=(f=a.newline)?f:"\n",this.offset=null!=(g=a.offset)?g:0,this.dontprettytextnodes=null!=(h=a.dontprettytextnodes)?h:0):(this.indent="",this.newline="",this.offset=0,this.dontprettytextnodes=0),this.spacebeforeslash=null!=(i=a.spacebeforeslash)?i:"",!0===this.spacebeforeslash&&(this.spacebeforeslash=" "),this.newlinedefault=this.newline,this.prettydefault=this.pretty,j=a.writer||{})b.call(j,c)&&(k=j[c],this[c]=k)}return a.prototype.set=function(a){var c,d,e;for(c in a||(a={}),"pretty"in a&&(this.pretty=a.pretty),"allowEmpty"in a&&(this.allowEmpty=a.allowEmpty),this.pretty?(this.indent="indent"in a?a.indent:" ",this.newline="newline"in a?a.newline:"\n",this.offset="offset"in a?a.offset:0,this.dontprettytextnodes="dontprettytextnodes"in a?a.dontprettytextnodes:0):(this.indent="",this.newline="",this.offset=0,this.dontprettytextnodes=0),this.spacebeforeslash="spacebeforeslash"in a?a.spacebeforeslash:"",!0===this.spacebeforeslash&&(this.spacebeforeslash=" "),this.newlinedefault=this.newline,this.prettydefault=this.pretty,d=a.writer||{})b.call(d,c)&&(e=d[c],this[c]=e);return this},a.prototype.space=function(a){var b;return this.pretty&&(b=(a||0)+this.offset+1)>0?Array(b).join(this.indent):""},a}()}).call(this)},73315:(a,b)=>{"use strict";let c=Symbol.for("yaml.alias"),d=Symbol.for("yaml.document"),e=Symbol.for("yaml.map"),f=Symbol.for("yaml.pair"),g=Symbol.for("yaml.scalar"),h=Symbol.for("yaml.seq"),i=Symbol.for("yaml.node.type"),j=a=>!!a&&"object"==typeof a&&a[i]===g;function k(a){if(a&&"object"==typeof a)switch(a[i]){case e:case h:return!0}return!1}b.ALIAS=c,b.DOC=d,b.MAP=e,b.NODE_TYPE=i,b.PAIR=f,b.SCALAR=g,b.SEQ=h,b.hasAnchor=a=>(j(a)||k(a))&&!!a.anchor,b.isAlias=a=>!!a&&"object"==typeof a&&a[i]===c,b.isCollection=k,b.isDocument=a=>!!a&&"object"==typeof a&&a[i]===d,b.isMap=a=>!!a&&"object"==typeof a&&a[i]===e,b.isNode=function(a){if(a&&"object"==typeof a)switch(a[i]){case c:case e:case g:case h:return!0}return!1},b.isPair=a=>!!a&&"object"==typeof a&&a[i]===f,b.isScalar=j,b.isSeq=a=>!!a&&"object"==typeof a&&a[i]===h},73374:(a,b,c)=>{"use strict";a.exports=function(a,b,d){var e=c(22418),f=c(43823).RangeError,g=c(43823).AggregateError,h=e.isArray,i={};function j(a){this.constructor$(a),this._howMany=0,this._unwrap=!1,this._initialized=!1}function k(a,b){if((0|b)!==b||b<0)return d("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var c=new j(a),e=c.promise();return c.setHowMany(b),c.init(),e}e.inherits(j,b),j.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var a=h(this._values);!this._isResolved()&&a&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},j.prototype.init=function(){this._initialized=!0,this._init()},j.prototype.setUnwrap=function(){this._unwrap=!0},j.prototype.howMany=function(){return this._howMany},j.prototype.setHowMany=function(a){this._howMany=a},j.prototype._promiseFulfilled=function(a){return this._addFulfilled(a),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},j.prototype._promiseRejected=function(a){return this._addRejected(a),this._checkOutcome()},j.prototype._promiseCancelled=function(){return this._values instanceof a||null==this._values?this._cancel():(this._addRejected(i),this._checkOutcome())},j.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var a=new g,b=this.length();b<this._values.length;++b)this._values[b]!==i&&a.push(this._values[b]);return a.length>0?this._reject(a):this._cancel(),!0}return!1},j.prototype._fulfilled=function(){return this._totalResolved},j.prototype._rejected=function(){return this._values.length-this.length()},j.prototype._addRejected=function(a){this._values.push(a)},j.prototype._addFulfilled=function(a){this._values[this._totalResolved++]=a},j.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},j.prototype._getRangeError=function(a){return new f("Input array must contain at least "+this._howMany+" items but contains only "+a+" items")},j.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},a.some=function(a,b){return k(a,b)},a.prototype.some=function(a){return k(this,a)},a._SomePromiseArray=j}},74782:(a,b,c)=>{"use strict";a.exports=function(a,b){var d=c(22418),e=d.errorObj,f=d.isObject,g={}.hasOwnProperty;return function(c,h){if(f(c)){if(c instanceof a)return c;var i=function(a){try{return a.then}catch(a){return e.e=a,e}}(c);if(i===e){h&&h._pushContext();var j=a.reject(i.e);return h&&h._popContext(),j}if("function"==typeof i){if(function(a){try{return g.call(a,"_promise0")}catch(a){return!1}}(c)){var k,l,m,n,o,p,q,j=new a(b);return c._then(j._fulfill,j._reject,void 0,j,null),j}return k=c,l=i,m=h,o=n=new a(b),m&&m._pushContext(),n._captureStackTrace(),m&&m._popContext(),p=!0,q=d.tryCatch(l).call(k,function(a){n&&(n._resolveCallback(a),n=null)},function(a){n&&(n._rejectCallback(a,p,!0),n=null)}),p=!1,n&&q===e&&(n._rejectCallback(q.e,!0,!0),n=null),o}}return c}}},75034:(a,b,c)=>{"use strict";var d=c(69167),e=!0,f=!0;try{String.fromCharCode.apply(null,[0])}catch(a){e=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(a){f=!1}for(var g=new d.Buf8(256),h=0;h<256;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;function i(a,b){if(b<65534&&(a.subarray&&f||!a.subarray&&e))return String.fromCharCode.apply(null,d.shrinkBuf(a,b));for(var c="",g=0;g<b;g++)c+=String.fromCharCode(a[g]);return c}g[254]=g[254]=1,b.string2buf=function(a){var b,c,e,f,g,h=a.length,i=0;for(f=0;f<h;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new d.Buf8(i),g=0,f=0;g<i;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),c<128?b[g++]=c:(c<2048?b[g++]=192|c>>>6:(c<65536?b[g++]=224|c>>>12:(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63),b[g++]=128|c>>>6&63),b[g++]=128|63&c);return b},b.buf2binstring=function(a){return i(a,a.length)},b.binstring2buf=function(a){for(var b=new d.Buf8(a.length),c=0,e=b.length;c<e;c++)b[c]=a.charCodeAt(c);return b},b.buf2string=function(a,b){var c,d,e,f,h=b||a.length,j=Array(2*h);for(d=0,c=0;c<h;){if((e=a[c++])<128){j[d++]=e;continue}if((f=g[e])>4){j[d++]=65533,c+=f-1;continue}for(e&=2===f?31:3===f?15:7;f>1&&c<h;)e=e<<6|63&a[c++],f--;if(f>1){j[d++]=65533;continue}e<65536?j[d++]=e:(e-=65536,j[d++]=55296|e>>10&1023,j[d++]=56320|1023&e)}return i(j,d)},b.utf8border=function(a,b){var c;for((b=b||a.length)>a.length&&(b=a.length),c=b-1;c>=0&&(192&a[c])==128;)c--;return c<0||0===c?b:c+g[a[c]]>b?c:b}},75875:(a,b)=>{"use strict";b.base64=!1,b.binary=!1,b.dir=!1,b.createFolders=!0,b.date=null,b.compression=null,b.compressionOptions=null,b.comment=null,b.unixPermissions=null,b.dosPermissions=null},76281:a=>{"use strict";function b(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}b.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},a.exports=b},77203:(a,b,c)=>{"use strict";var d=c(58952),e=c(76281);function f(a,b){e.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}d.inherits(f,e),f.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},f.prototype.pause=function(){return!!e.prototype.pause.call(this)&&(this._stream.pause(),!0)},f.prototype.resume=function(){return!!e.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},a.exports=f},77313:(a,b,c)=>{"use strict";a.exports=function(){var b,d=function(){return new n("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n")},e=function(){return new C.PromiseInspection(this._target())},f=function(a){return C.reject(new n(a))};function g(){}var h={},i=c(22418);b=i.isNode?function(){var a=process.domain;return void 0===a&&(a=null),a}:function(){return null},i.notEnumerableProp(C,"_getDomain",b);var j=c(3987),k=c(66394),l=new k;j.defineProperty(C,"_async",{value:l});var m=c(43823),n=C.TypeError=m.TypeError;C.RangeError=m.RangeError;var o=C.CancellationError=m.CancellationError;C.TimeoutError=m.TimeoutError,C.OperationalError=m.OperationalError,C.RejectionError=m.OperationalError,C.AggregateError=m.AggregateError;var p=function(){},q={},r={},s=c(74782)(C,p),t=c(80659)(C,p,s,f,g),u=c(21667)(C),v=u.create,w=c(61764)(C,u);w.CapturedTrace;var x=c(71759)(C,s),y=c(23896)(r),z=c(35527),A=i.errorObj,B=i.tryCatch;function C(a){if(this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,a!==p){if("function"!=typeof a)throw new n("expecting a function but got "+i.classString(a));if(this.constructor!==C)throw new n("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n");this._resolveFromExecutor(a)}this._promiseCreated(),this._fireEvent("promiseCreated",this)}function D(a){this.promise._resolveCallback(a)}function E(a){this.promise._rejectCallback(a,!1)}function F(a){var b=new C(p);b._fulfillmentHandler0=a,b._rejectionHandler0=a,b._promise0=a,b._receiver0=a}return C.prototype.toString=function(){return"[object Promise]"},C.prototype.caught=C.prototype.catch=function(a){var b=arguments.length;if(b>1){var c,d=Array(b-1),e=0;for(c=0;c<b-1;++c){var g=arguments[c];if(!i.isObject(g))return f("expecting an object but got A catch statement predicate "+i.classString(g));d[e++]=g}return d.length=e,a=arguments[c],this.then(void 0,y(d,a,this))}return this.then(void 0,a)},C.prototype.reflect=function(){return this._then(e,e,void 0,this,void 0)},C.prototype.then=function(a,b){if(w.warnings()&&arguments.length>0&&"function"!=typeof a&&"function"!=typeof b){var c=".then() only accepts functions but was passed: "+i.classString(a);arguments.length>1&&(c+=", "+i.classString(b)),this._warn(c)}return this._then(a,b,void 0,void 0,void 0)},C.prototype.done=function(a,b){this._then(a,b,void 0,void 0,void 0)._setIsFinal()},C.prototype.spread=function(a){return"function"!=typeof a?f("expecting a function but got "+i.classString(a)):this.all()._then(a,void 0,void 0,q,void 0)},C.prototype.toJSON=function(){var a={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(a.fulfillmentValue=this.value(),a.isFulfilled=!0):this.isRejected()&&(a.rejectionReason=this.reason(),a.isRejected=!0),a},C.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new t(this).promise()},C.prototype.error=function(a){return this.caught(i.originatesFromRejection,a)},C.getNewLibraryCopy=a.exports,C.is=function(a){return a instanceof C},C.fromNode=C.fromCallback=function(a){var b=new C(p);b._captureStackTrace();var c=arguments.length>1&&!!Object(arguments[1]).multiArgs,d=B(a)(z(b,c));return d===A&&b._rejectCallback(d.e,!0),b._isFateSealed()||b._setAsyncGuaranteed(),b},C.all=function(a){return new t(a).promise()},C.cast=function(a){var b=s(a);return b instanceof C||((b=new C(p))._captureStackTrace(),b._setFulfilled(),b._rejectionHandler0=a),b},C.resolve=C.fulfilled=C.cast,C.reject=C.rejected=function(a){var b=new C(p);return b._captureStackTrace(),b._rejectCallback(a,!0),b},C.setScheduler=function(a){if("function"!=typeof a)throw new n("expecting a function but got "+i.classString(a));return l.setScheduler(a)},C.prototype._then=function(a,c,d,e,f){var g=void 0!==f,h=g?f:new C(p),j=this._target(),k=j._bitField;g||(h._propagateFrom(this,3),h._captureStackTrace(),void 0===e&&(2097152&this._bitField)!=0&&(e=(0x3010000&k)!=0?this._boundValue():j===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,h));var m=b();if((0x3010000&k)!=0){var n,q,r=j._settlePromiseCtx;(0x2000000&k)!=0?(q=j._rejectionHandler0,n=a):(0x1000000&k)!=0?(q=j._fulfillmentHandler0,n=c,j._unsetRejectionIsUnhandled()):(r=j._settlePromiseLateCancellationObserver,q=new o("late cancellation observer"),j._attachExtraTrace(q),n=c),l.invoke(r,j,{handler:null===m?n:"function"==typeof n&&i.domainBind(m,n),promise:h,receiver:e,value:q})}else j._addCallbacks(a,c,h,e,m);return h},C.prototype._length=function(){return 65535&this._bitField},C.prototype._isFateSealed=function(){return(0x7010000&this._bitField)!=0},C.prototype._isFollowing=function(){return(0x4000000&this._bitField)==0x4000000},C.prototype._setLength=function(a){this._bitField=-65536&this._bitField|65535&a},C.prototype._setFulfilled=function(){this._bitField=0x2000000|this._bitField,this._fireEvent("promiseFulfilled",this)},C.prototype._setRejected=function(){this._bitField=0x1000000|this._bitField,this._fireEvent("promiseRejected",this)},C.prototype._setFollowing=function(){this._bitField=0x4000000|this._bitField,this._fireEvent("promiseResolved",this)},C.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},C.prototype._isFinal=function(){return(4194304&this._bitField)>0},C.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},C.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},C.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},C.prototype._setAsyncGuaranteed=function(){l.hasCustomScheduler()||(this._bitField=0x8000000|this._bitField)},C.prototype._receiverAt=function(a){var b=0===a?this._receiver0:this[4*a-4+3];return b===h?void 0:void 0===b&&this._isBound()?this._boundValue():b},C.prototype._promiseAt=function(a){return this[4*a-4+2]},C.prototype._fulfillmentHandlerAt=function(a){return this[4*a-4+0]},C.prototype._rejectionHandlerAt=function(a){return this[4*a-4+1]},C.prototype._boundValue=function(){},C.prototype._migrateCallback0=function(a){a._bitField;var b=a._fulfillmentHandler0,c=a._rejectionHandler0,d=a._promise0,e=a._receiverAt(0);void 0===e&&(e=h),this._addCallbacks(b,c,d,e,null)},C.prototype._migrateCallbackAt=function(a,b){var c=a._fulfillmentHandlerAt(b),d=a._rejectionHandlerAt(b),e=a._promiseAt(b),f=a._receiverAt(b);void 0===f&&(f=h),this._addCallbacks(c,d,e,f,null)},C.prototype._addCallbacks=function(a,b,c,d,e){var f=this._length();if(f>=65531&&(f=0,this._setLength(0)),0===f)this._promise0=c,this._receiver0=d,"function"==typeof a&&(this._fulfillmentHandler0=null===e?a:i.domainBind(e,a)),"function"==typeof b&&(this._rejectionHandler0=null===e?b:i.domainBind(e,b));else{var g=4*f-4;this[g+2]=c,this[g+3]=d,"function"==typeof a&&(this[g+0]=null===e?a:i.domainBind(e,a)),"function"==typeof b&&(this[g+1]=null===e?b:i.domainBind(e,b))}return this._setLength(f+1),f},C.prototype._proxy=function(a,b){this._addCallbacks(void 0,void 0,b,a,null)},C.prototype._resolveCallback=function(a,b){if((0x7010000&this._bitField)==0){if(a===this)return this._rejectCallback(d(),!1);var c=s(a,this);if(!(c instanceof C))return this._fulfill(a);b&&this._propagateFrom(c,2);var e=c._target();if(e===this)return void this._reject(d());var f=e._bitField;if((0x3010000&f)==0){var g=this._length();g>0&&e._migrateCallback0(this);for(var h=1;h<g;++h)e._migrateCallbackAt(this,h);this._setFollowing(),this._setLength(0),this._setFollowee(e)}else if((0x2000000&f)!=0)this._fulfill(e._value());else if((0x1000000&f)!=0)this._reject(e._reason());else{var i=new o("late cancellation observer");e._attachExtraTrace(i),this._reject(i)}}},C.prototype._rejectCallback=function(a,b,c){var d=i.ensureErrorObject(a),e=d===a;if(!e&&!c&&w.warnings()){var f="a promise was rejected with a non-error: "+i.classString(a);this._warn(f,!0)}this._attachExtraTrace(d,!!b&&e),this._reject(a)},C.prototype._resolveFromExecutor=function(a){var b=this;this._captureStackTrace(),this._pushContext();var c=!0,d=this._execute(a,function(a){b._resolveCallback(a)},function(a){b._rejectCallback(a,c)});c=!1,this._popContext(),void 0!==d&&b._rejectCallback(d,!0)},C.prototype._settlePromiseFromHandler=function(a,b,c,d){var e,f=d._bitField;if((65536&f)==0){d._pushContext(),b===q?c&&"number"==typeof c.length?e=B(a).apply(this._boundValue(),c):(e=A).e=new n("cannot .spread() a non-array: "+i.classString(c)):e=B(a).call(b,c);var g=d._popContext();(65536&(f=d._bitField))==0&&(e===r?d._reject(c):e===A?d._rejectCallback(e.e,!1):(w.checkForgottenReturns(e,g,"",d,this),d._resolveCallback(e)))}},C.prototype._target=function(){for(var a=this;a._isFollowing();)a=a._followee();return a},C.prototype._followee=function(){return this._rejectionHandler0},C.prototype._setFollowee=function(a){this._rejectionHandler0=a},C.prototype._settlePromise=function(a,b,c,d){var f=a instanceof C,h=this._bitField,i=(0x8000000&h)!=0;(65536&h)!=0?(f&&a._invokeInternalOnCancel(),c instanceof x&&c.isFinallyHandler()?(c.cancelPromise=a,B(b).call(c,d)===A&&a._reject(A.e)):b===e?a._fulfill(e.call(c)):c instanceof g?c._promiseCancelled(a):f||a instanceof t?a._cancel():c.cancel()):"function"==typeof b?f?(i&&a._setAsyncGuaranteed(),this._settlePromiseFromHandler(b,c,d,a)):b.call(c,d,a):c instanceof g?c._isResolved()||((0x2000000&h)!=0?c._promiseFulfilled(d,a):c._promiseRejected(d,a)):f&&(i&&a._setAsyncGuaranteed(),(0x2000000&h)!=0?a._fulfill(d):a._reject(d))},C.prototype._settlePromiseLateCancellationObserver=function(a){var b=a.handler,c=a.promise,d=a.receiver,e=a.value;"function"==typeof b?c instanceof C?this._settlePromiseFromHandler(b,d,e,c):b.call(d,e,c):c instanceof C&&c._reject(e)},C.prototype._settlePromiseCtx=function(a){this._settlePromise(a.promise,a.handler,a.receiver,a.value)},C.prototype._settlePromise0=function(a,b,c){var d=this._promise0,e=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(d,a,e,b)},C.prototype._clearCallbackDataAtIndex=function(a){var b=4*a-4;this[b+2]=this[b+3]=this[b+0]=this[b+1]=void 0},C.prototype._fulfill=function(a){var b=this._bitField;if(!((0x7010000&b)>>>16)){if(a===this){var c=d();return this._attachExtraTrace(c),this._reject(c)}this._setFulfilled(),this._rejectionHandler0=a,(65535&b)>0&&((0x8000000&b)!=0?this._settlePromises():l.settlePromises(this))}},C.prototype._reject=function(a){var b=this._bitField;if(!((0x7010000&b)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=a,this._isFinal())return l.fatalError(a,i.isNode);(65535&b)>0?l.settlePromises(this):this._ensurePossibleRejectionHandled()}},C.prototype._fulfillPromises=function(a,b){for(var c=1;c<a;c++){var d=this._fulfillmentHandlerAt(c),e=this._promiseAt(c),f=this._receiverAt(c);this._clearCallbackDataAtIndex(c),this._settlePromise(e,d,f,b)}},C.prototype._rejectPromises=function(a,b){for(var c=1;c<a;c++){var d=this._rejectionHandlerAt(c),e=this._promiseAt(c),f=this._receiverAt(c);this._clearCallbackDataAtIndex(c),this._settlePromise(e,d,f,b)}},C.prototype._settlePromises=function(){var a=this._bitField,b=65535&a;if(b>0){if((0x1010000&a)!=0){var c=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,c,a),this._rejectPromises(b,c)}else{var d=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,d,a),this._fulfillPromises(b,d)}this._setLength(0)}this._clearCancellationData()},C.prototype._settledValue=function(){var a=this._bitField;return(0x2000000&a)!=0?this._rejectionHandler0:(0x1000000&a)!=0?this._fulfillmentHandler0:void 0},C.defer=C.pending=function(){return w.deprecated("Promise.defer","new Promise"),{promise:new C(p),resolve:D,reject:E}},i.notEnumerableProp(C,"_makeSelfResolutionError",d),c(59673)(C,p,s,f,w),c(83543)(C,p,s,w),c(18187)(C,t,f,w),c(5928)(C),c(99122)(C),c(62230)(C,t,s,p,l,b),C.Promise=C,C.version="3.4.7",c(96788)(C,t,f,s,p,w),c(83951)(C),c(58)(C,f,s,v,p,w),c(87236)(C,p,w),c(32232)(C,f,p,s,g,w),c(65668)(C),c(68318)(C,p),c(37012)(C,t,s,f),c(87021)(C,p,s,f),c(4204)(C,t,f,s,p,w),c(78591)(C,t,w),c(73374)(C,t,f),c(5040)(C,p),c(37857)(C,p),c(8216)(C),i.toFastProperties(C),i.toFastProperties(C.prototype),F({a:1}),F({b:2}),F({c:3}),F(1),F(function(){}),F(void 0),F(!1),F(new C(p)),w.setBounds(k.firstLineError,i.lastLineError),C}},77632:function(a,b,c){(function(){var b=function(a,b){for(var c in b)d.call(b,c)&&(a[c]=b[c]);function e(){this.constructor=a}return e.prototype=b.prototype,a.prototype=new e,a.__super__=b.prototype,a},d={}.hasOwnProperty;a.exports=function(a){function c(a,b){if(c.__super__.constructor.call(this,a),null==b)throw Error("Missing raw text. "+this.debugInfo());this.value=this.stringify.raw(b)}return b(c,a),c.prototype.clone=function(){return Object.create(this)},c.prototype.toString=function(a){return this.options.writer.set(a).raw(this)},c}(c(8142))}).call(this)},77880:(a,b,c)=>{var d=c(84906),e=b.types={document:"document",paragraph:"paragraph",run:"run",text:"text",tab:"tab",checkbox:"checkbox",hyperlink:"hyperlink",noteReference:"noteReference",image:"image",note:"note",commentReference:"commentReference",comment:"comment",table:"table",tableRow:"tableRow",tableCell:"tableCell",break:"break",bookmarkStart:"bookmarkStart"},f={baseline:"baseline",superscript:"superscript",subscript:"subscript"};function g(a){this._notes=d.indexBy(a,function(a){var b;return b=a.noteType,b+"-"+a.noteId})}g.prototype.resolve=function(a){var b;return this.findNoteByKey((b=a.noteType,b+"-"+a.noteId))},g.prototype.findNoteByKey=function(a){return this._notes[a]||null};function h(a){return{type:e.break,breakType:a}}b.document=b.Document=function(a,b){return b=b||{},{type:e.document,children:a,notes:b.notes||new g({}),comments:b.comments||[]}},b.paragraph=b.Paragraph=function(a,b){var c=(b=b||{}).indent||{};return{type:e.paragraph,children:a,styleId:b.styleId||null,styleName:b.styleName||null,numbering:b.numbering||null,alignment:b.alignment||null,indent:{start:c.start||null,end:c.end||null,firstLine:c.firstLine||null,hanging:c.hanging||null}}},b.run=b.Run=function(a,b){return b=b||{},{type:e.run,children:a,styleId:b.styleId||null,styleName:b.styleName||null,isBold:!!b.isBold,isUnderline:!!b.isUnderline,isItalic:!!b.isItalic,isStrikethrough:!!b.isStrikethrough,isAllCaps:!!b.isAllCaps,isSmallCaps:!!b.isSmallCaps,verticalAlignment:b.verticalAlignment||f.baseline,font:b.font||null,fontSize:b.fontSize||null,highlight:b.highlight||null}},b.text=b.Text=function(a){return{type:e.text,value:a}},b.tab=b.Tab=function(){return{type:e.tab}},b.checkbox=b.Checkbox=function(a){return{type:e.checkbox,checked:a.checked}},b.Hyperlink=function(a,b){return{type:e.hyperlink,children:a,href:b.href,anchor:b.anchor,targetFrame:b.targetFrame}},b.noteReference=b.NoteReference=function(a){return{type:e.noteReference,noteType:a.noteType,noteId:a.noteId}},b.Notes=g,b.Note=function(a){return{type:e.note,noteType:a.noteType,noteId:a.noteId,body:a.body}},b.commentReference=function(a){return{type:e.commentReference,commentId:a.commentId}},b.comment=function(a){return{type:e.comment,commentId:a.commentId,body:a.body,authorName:a.authorName,authorInitials:a.authorInitials}},b.Image=function(a){return{type:e.image,read:function(b){return b?a.readImage(b):a.readImage().then(function(a){return Buffer.from(a)})},readAsArrayBuffer:function(){return a.readImage()},readAsBase64String:function(){return a.readImage("base64")},readAsBuffer:function(){return a.readImage().then(function(a){return Buffer.from(a)})},altText:a.altText,contentType:a.contentType}},b.Table=function(a,b){return b=b||{},{type:e.table,children:a,styleId:b.styleId||null,styleName:b.styleName||null}},b.TableRow=function(a,b){return b=b||{},{type:e.tableRow,children:a,isHeader:b.isHeader||!1}},b.TableCell=function(a,b){return b=b||{},{type:e.tableCell,children:a,colSpan:null==b.colSpan?1:b.colSpan,rowSpan:null==b.rowSpan?1:b.rowSpan}},b.lineBreak=h("line"),b.pageBreak=h("page"),b.columnBreak=h("column"),b.BookmarkStart=function(a){return{type:e.bookmarkStart,name:a.name}},b.verticalAlignment=f},77936:(a,b,c)=>{"use strict";var d=c(10140),e=c(73315),f=c(72687),g=c(93051);b.createStringifyContext=function(a,b){let c,d=Object.assign({blockQuote:!0,commentString:f.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},a.schema.toStringOptions,b);switch(d.collectionStyle){case"block":c=!1;break;case"flow":c=!0;break;default:c=null}return{anchors:new Set,doc:a,flowCollectionPadding:d.flowCollectionPadding?" ":"",indent:"",indentStep:"number"==typeof d.indent?" ".repeat(d.indent):" ",inFlow:c,options:d}},b.stringify=function(a,b,c,f){let h;if(e.isPair(a))return a.toString(b,c,f);if(e.isAlias(a)){if(b.doc.directives)return a.toString(b);if(b.resolvedAliases?.has(a))throw TypeError("Cannot stringify circular structure without alias nodes");b.resolvedAliases?b.resolvedAliases.add(a):b.resolvedAliases=new Set([a]),a=a.resolve(b.doc)}let i=e.isNode(a)?a:b.doc.createNode(a,{onTagObj:a=>h=a});h??(h=function(a,b){let c,d;if(b.tag){let c=a.filter(a=>a.tag===b.tag);if(c.length>0)return c.find(a=>a.format===b.format)??c[0]}if(e.isScalar(b)){c=b.value;let e=a.filter(a=>a.identify?.(c));if(e.length>1){let a=e.filter(a=>a.test);a.length>0&&(e=a)}d=e.find(a=>a.format===b.format)??e.find(a=>!a.format)}else c=b,d=a.find(a=>a.nodeClass&&c instanceof a.nodeClass);if(!d){let a=c?.constructor?.name??(null===c?"null":typeof c);throw Error(`Tag not resolved for ${a} value`)}return d}(b.doc.schema.tags,i));let j=function(a,b,{anchors:c,doc:f}){if(!f.directives)return"";let g=[],h=(e.isScalar(a)||e.isCollection(a))&&a.anchor;h&&d.anchorIsValid(h)&&(c.add(h),g.push(`&${h}`));let i=a.tag??(b.default?null:b.tag);return i&&g.push(f.directives.tagString(i)),g.join(" ")}(i,h,b);j.length>0&&(b.indentAtStart=(b.indentAtStart??0)+j.length+1);let k="function"==typeof h.stringify?h.stringify(i,b,c,f):e.isScalar(i)?g.stringifyString(i,b,c,f):i.toString(b,c,f);return j?e.isScalar(i)||"{"===k[0]||"["===k[0]?`${j} ${k}`:`${j}
|
|
94
|
+
`),new kQ(b,c)}(a,b,{onText:a=>f?.onText(a),onClose:()=>{clearInterval(d),d=void 0,e&&(e=!1,kS(Math.max(0,kR()-1))),f?.onClose()}});g&&(e=!0,kS(kR()+1),d=setInterval(()=>g.ping(),3e4),d.unref?.(),f=function(a,b={}){let c,d={...kM,...b},e=d.now??Date.now,f=d.setTimeout??setTimeout,g=d.clearTimeout??clearTimeout,h={files:hc,sessions:hV,models:iZ,extensions:kn,system:kJ,...d.requestHandlers},i=new ai(e),j=d.isDeviceAuthorized??(b.authenticate?()=>!0:a=>ag().some(b=>b.id===a)),k=null,l=0,m=!1,n=0,o=0,p=Promise.resolve(),q=!1,r=!1,s=null,t=null,u=Promise.resolve(),v=(b,c=!1)=>{if(r)return!1;if(!c&&k&&!j(k))return A(),!1;try{for(let c of("error"===b.op||"session.err"===b.op||"cmd_err"===b.op?b={...b,code:/^[A-Za-z0-9_-]{1,64}$/.test(b.code)?b.code:"operation_failed",message:"Relay operation failed"}:"settings_updated"!==b.op||b.success||(b={op:"settings_updated",success:!1,error:"Settings update failed"}),function(a){let b;try{b=JSON.stringify(a)}catch{throw new ah("relay_chunk_invalid")}if(void 0===b)throw new ah("relay_chunk_invalid");let c=Buffer.byteLength(b,"utf8");if(c>0x1000000)throw new ah("relay_frame_too_large");if(c<=262144)return[b];let d=Buffer.from(b,"utf8"),e=Math.ceil(c/49152),f=(0,L.randomUUID)(),g=[];for(let a=0;a<e;a++)g.push(JSON.stringify({op:"chunk",transfer:f,index:a,count:e,data:d.subarray(49152*a,(a+1)*49152).toString("base64")}));return g}(b)))if(!a.sendText(c))return z(),a.close(1013,"Relay backpressure"),!1;return!0}catch{return a.sendText(JSON.stringify({op:"error",code:"frame_too_large",message:"Relay frame exceeds transport limits"})),z(),a.close(1009,"Relay frame too large"),!1}},w=(b,c)=>{g(x),v({op:"hello_err",code:b,message:c}),z(),a.close(1008,c)},x=f(()=>{q||r||w("hello_timeout","hello was not received in time")},1e4),y=function({emit:a,isBackpressured:b,schedule:c=function(a,b){let c=setTimeout(a,b);return()=>clearTimeout(c)},windowMs:d=33}){let e=null,f=null,g=()=>{f?.(),f=null},h=c=>{if(null===e)return!0;if(!c&&b())return!1;let d=e;return e=null,a(d)},i=()=>{f=null,h(!1)};return{push(b){let j=function(a){if(null!==a&&"object"==typeof a&&"type"in a)return a.type}(b);if("message_update"===j){e=b,f||(f=c(i,d));return}if("message_end"===j){e=null,g(),a(b);return}g(),h(!0)&&a(b)},pull:()=>!(null===e||b())&&(g(),h(!1)),reset(){e=null,g()}}}({emit:a=>!!(!s||m||"object"!=typeof a||null===a||Array.isArray(a))||v({op:"event",id:s,payload:a}),isBackpressured:()=>a.bufferedAmount>256e3}),z=()=>{if(!r){if(r=!0,g(x),g(c),i.clear(),l++,k){let a=kK.get(k);a?.delete(A),a?.size===0&&(kK.delete(k),kL(k))}y.reset(),t?.(),t=null,s=null}},A=()=>{z(),a.close(1008,"Device revoked")},B=()=>{if(!r&&k){if(!j(k))return void A();c=f(B,1e3)}},C=async a=>{if(!r){if(!q){if("hello"!==a.op)return void w("unauthorized","hello is required");let b=d.authenticate(a,e());if(!b.ok)return void w(b.code,b.message);k=b.deviceId;let h=kK.get(k);return h||(h=new Set,kK.set(k,h)),h.add(A),q=!0,c=f(B,1e3),g(x),void v({op:"hello_ok",protocol:1,serverId:b.serverId,deviceId:b.deviceId,...b.token?{token:b.token}:{}})}if(!k||!j(k))return void A();switch(a.op){case"request":try{let b="sessions"===a.domain,c=a.args.command,d="object"==typeof c&&null!==c&&"type"in c?c.type:null;b&&("leaf"===a.action||"command"===a.action&&"fork"===d||("delete"===a.action||"archive"===a.action)&&a.args.id===s)&&(l++,m="leaf"===a.action,t?.(),t=null,y.reset(),"delete"===a.action||"archive"===a.action?s=null:"string"==typeof a.args.id&&(s=a.args.id));let e=l,f=k,g=await h[a.domain](a.action,a.args,{deviceId:k,sessionId:s,assertActive:()=>{if(!j(f))throw A(),Object.assign(Error("Device authorization expired"),{code:"unauthorized"});if(r||l!==e||k!==f)throw Object.assign(Error("Session changed during request"),{code:"request_cancelled"})}}),i="system"===a.domain&&"devices.revoke"===a.action&&"string"==typeof g.deviceId?g.deviceId:null;v({op:"result",req:a.req,success:!0,data:g},i===k),i&&function(a){let b=kK.get(a);for(let c of(kK.delete(a),b??[]))c();kL(a)}(i),b&&"command"===a.action&&"object"==typeof g.result&&null!==g.result&&"newSessionId"in g.result&&"string"==typeof g.result.newSessionId&&await C({op:"session.open",id:g.result.newSessionId})}catch(c){let b="object"==typeof c&&null!==c&&"code"in c&&"string"==typeof c.code&&/^[A-Za-z0-9_-]{1,64}$/.test(c.code)?c.code:"request_failed";v({op:"result",req:a.req,success:!1,error:{code:b,message:"Relay request failed ("+b+")"}})}return;case"hello":v({op:"error",code:"already_authed",message:"Already authenticated"});return;case"sessions.list":{let a=await d.listSessions();v({op:"sessions",sessions:a.sessions,runningIds:a.runningIds});return}case"models.list":return void v(Y(await d.listModels()));case"usage":{let a=await d.fetchUsage();if(a.ok)return void v({op:"usage",data:a.payload});v({op:"usage",data:{error:a.error,status:a.status}});return}case"session.close":l++,m=!1,t?.(),t=null,s=null,y.reset();return;case"projects.list":try{let a=await (d.listProjects??gI)();v({op:"projects",projects:a})}catch(a){v({op:"error",code:"projects_failed",message:a instanceof Error?a.message:String(a)})}return;case"files.list":try{let b=await (d.listFiles??gJ)(a.path);v({op:"files",path:b.path,entries:b.entries})}catch(a){v({op:"error",code:a&&"object"==typeof a&&"code"in a&&"string"==typeof a.code?a.code:"files_failed",message:a instanceof Error?a.message:String(a)})}return;case"slash.list":return void v({op:"slash",commands:(d.listSlash??gK)()});case"files.read":try{let b=await (d.readFile??gV)(a.path);v({op:"file",path:b.path,name:b.name,...b.language?{language:b.language}:{},...void 0!==b.text?{text:b.text}:{},...b.truncated?{truncated:!0}:{},...void 0!==b.bytes?{bytes:b.bytes}:{},...b.encoding?{encoding:b.encoding}:{}})}catch(a){kN(v,a,"files_failed")}return;case"session.delete":try{s===a.id&&(t?.(),t=null,s=null,y.reset());let b=await (d.deleteSession??hn)(a.id);v({op:"session.deleted",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kN(v,b,"session_delete_failed",a.id)}return;case"session.archive":try{s===a.id&&(t?.(),t=null,s=null,y.reset());let b=await (d.archiveSession??ho)(a.id);v({op:"session.archived",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kN(v,b,"session_archive_failed",a.id)}return;case"session.rename":try{let b=await (d.renameSession??hp)(a.id,a.name);v({op:"session.renamed",id:b.id,name:b.name});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(b){kN(v,b,"session_rename_failed",a.id)}return;case"sessions.archives":try{let a=await (d.listArchives??hq)();v({op:"archives",archives:a})}catch(a){kN(v,a,"archives_failed")}return;case"session.restore":try{let b=await (d.restoreArchive??hr)(a.key);v({op:"session.restored",id:b.id});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(a){kN(v,a,"session_restore_failed")}return;case"worktrees.list":try{let b=await (d.listWorktrees??gW)(a.cwd);v({op:"worktrees",cwd:b.cwd,projectRoot:b.projectRoot,isGit:b.isGit,currentWorktreePath:b.currentWorktreePath,worktrees:b.worktrees})}catch(a){kN(v,a,"worktrees_failed")}return;case"worktrees.add":try{let b=await (d.addWorktree??g$)(a.cwd,a.branch);v({op:"worktree.added",path:b.path,branch:b.branch});let c=await (d.listWorktrees??gW)(a.cwd);v({op:"worktrees",cwd:c.cwd,projectRoot:c.projectRoot,isGit:c.isGit,currentWorktreePath:c.currentWorktreePath,worktrees:c.worktrees})}catch(a){kN(v,a,"worktree_add_failed")}return;case"files.write":try{let b=await (d.writeFile??gX)(a.path,a.text,a.revision,a.baseContentHash,a.createIfMissing);v({op:"file.written",path:b.path,bytes:b.bytes})}catch(a){kN(v,a,"files_failed")}return;case"git.status":try{let b=await (d.gitStatus??gY)(a.cwd);v({op:"git.status",cwd:b.cwd,isGitRepository:b.isGitRepository,repositoryRoot:b.repositoryRoot,files:b.files})}catch(a){kN(v,a,"git_failed")}return;case"git.diff":try{let b=await (d.gitDiff??gZ)(a.cwd,a.path);v({op:"git.diff",path:b.path,supported:b.supported,...b.status?{status:b.status}:{},...b.patch?{patch:b.patch}:{},...b.truncated?{truncated:!0}:{}})}catch(a){kN(v,a,"git_failed")}return;case"session.branches":try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch(b){kN(v,b,"branches_failed",a.id)}return;case"session.leaf":try{let b=++l;m=!0,y.reset(),t?.(),t=null,s=a.id;let c=await (d.snapshotLeaf??bU)(a.id,a.leafId);if(r||l!==b)return;v({op:"session.snapshot",id:a.id,...c.title?{title:c.title}:{},...c.cwd?{cwd:c.cwd}:{},leafId:c.leafId,messages:c.messages,agent:c.agent});try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch{}}catch(b){kN(v,b,"leaf_failed",a.id)}return;case"session.export":try{let b=await (d.exportSession??bV)(a.id,k);v({op:"session.exported",id:b.id,fileName:b.fileName,bytes:b.bytes,...b.transferId?{transferId:b.transferId}:{},...void 0!==b.size?{size:b.size}:{},...b.html?{html:b.html}:{}})}catch(b){kN(v,b,"export_failed",a.id)}return;case"skills.list":try{let b=await (d.listSkills??jT)(a.cwd);v({op:"skills",cwd:b.cwd,skills:b.skills})}catch(a){kN(v,a,"skills_failed")}return;case"skills.toggle":try{let b=await (d.toggleSkill??jU)(a.cwd,a.filePath,a.disableModelInvocation);v({op:"skill.updated",filePath:b.filePath,disableModelInvocation:b.disableModelInvocation});let c=await (d.listSkills??jT)(a.cwd);v({op:"skills",cwd:c.cwd,skills:c.skills})}catch(a){kN(v,a,"skills_failed")}return;case"plugins.list":try{let b=await (d.listPlugins??jW)(a.cwd);v({op:"plugins",cwd:b.cwd,packages:b.packages})}catch(a){kN(v,a,"plugins_failed")}return;case"plugins.action":try{let b=await (d.pluginAction??jX)(a.cwd,a.action,a.source,a.scope);v({op:"plugins",cwd:b.cwd,packages:b.packages})}catch(a){kN(v,a,"plugins_failed")}return;case"mcp.list":try{let b=await (d.listMcp??jY)(a.cwd);v({op:"mcp",inventory:b.inventory})}catch(a){kN(v,a,"mcp_failed")}return;case"mcp.delete":try{let b=await (d.deleteMcp??jZ)(a.cwd,a.name);v({op:"mcp.deleted",name:b.name});let c=await (d.listMcp??jY)(a.cwd);v({op:"mcp",inventory:c.inventory})}catch(a){kN(v,a,"mcp_failed")}return;case"mcp.upsert":try{let b=await (d.upsertMcp??j$)(a);v({op:"mcp.upserted",name:b.name});let c=await (d.listMcp??jY)(a.cwd);v({op:"mcp",inventory:c.inventory})}catch(a){kN(v,a,"mcp_failed")}return;case"session.create":try{let b=await (d.createSession??gL)({cwd:a.cwd,message:a.message,provider:a.provider,modelId:a.modelId,thinkingLevel:a.thinkingLevel});v({op:"session.created",id:b.sessionId,cwd:a.cwd}),t?.(),t=null,y.reset(),s=b.sessionId;let c=++l;m=!1;let e=await d.openSession(b.sessionId,a=>{r||l!==c||m||y.push(a)});if(r||l!==c||s!==b.sessionId)return void e.dispose();t=e.dispose,y.reset(),v({op:"session.snapshot",id:b.sessionId,...e.snapshot.title?{title:e.snapshot.title}:{},...e.snapshot.cwd?{cwd:e.snapshot.cwd}:{},leafId:e.snapshot.leafId,messages:e.snapshot.messages,agent:e.snapshot.agent})}catch(b){s=null,l++,y.reset();let a=b instanceof Error?b.message:String(b);v({op:"session.err",code:b&&"object"==typeof b&&"code"in b&&"string"==typeof b.code?b.code:"session_create_failed",message:a})}return;case"session.import":try{let b=await (d.importSession??hs)(a.fileName,a.content);v({op:"session.imported",id:b.id,cwd:b.cwd});let c=await d.listSessions();v({op:"sessions",sessions:c.sessions,runningIds:c.runningIds})}catch(a){kN(v,a,"session_import_failed")}return;case"skills.search":try{let b=await (d.searchSkills??j2)(a.query,a.limit??10);v({op:"skill.results",query:b.query,results:b.results})}catch(a){kN(v,a,"skills_failed")}return;case"skills.install":try{let b=await (d.installSkill??j3)(a.package,a.scope,a.cwd);if(v({op:"skill.installed",package:b.package,scope:b.scope}),a.cwd){let b=await (d.listSkills??jT)(a.cwd);v({op:"skills",cwd:b.cwd,skills:b.skills})}}catch(a){kN(v,a,"skills_failed")}return;case"agents.list":try{let b=await (d.listAgents??j4)(a.cwd);v({op:"agents",...b.cwd?{cwd:b.cwd}:{},agents:b.agents})}catch(a){kN(v,a,"agents_failed")}return;case"agents.save":try{let b=await (d.saveAgent??j5)({name:a.name,description:a.description,systemPrompt:a.systemPrompt,scope:a.scope,...a.cwd?{cwd:a.cwd}:{}});v({op:"agent.saved",name:b.name,...b.filePath?{filePath:b.filePath}:{}});let c=await (d.listAgents??j4)(a.cwd);v({op:"agents",...c.cwd?{cwd:c.cwd}:{},agents:c.agents})}catch(a){kN(v,a,"agents_failed")}return;case"agents.delete":try{let b=await (d.deleteAgent??j6)({name:a.name,scope:a.scope,...a.cwd?{cwd:a.cwd}:{}});v({op:"agent.deleted",name:b.name});let c=await (d.listAgents??j4)(a.cwd);v({op:"agents",...c.cwd?{cwd:c.cwd}:{},agents:c.agents})}catch(a){kN(v,a,"agents_failed")}return;case"auth.providers":try{let a=await (d.listAuthProviders??ke)();v({op:"auth.providers",providers:a.providers})}catch(a){kN(v,a,"auth_failed")}return;case"files.index":try{let b=await (d.searchFiles??g4)(a.cwd,a.query);v({op:"files.index",cwd:b.cwd,query:b.query,matches:b.matches})}catch(a){kN(v,a,"files_failed")}return;case"projects.add":try{let b=await (d.addProject??g_)(a.cwd);v({op:"project.added",path:b.path,...b.name?{name:b.name}:{}});let c=await (d.listProjects??gI)();v({op:"projects",projects:c})}catch(a){kN(v,a,"projects_failed")}return;case"projects.remove":try{let b=await (d.removeProject??g0)(a.cwd);v({op:"project.removed",path:b.path});let c=await (d.listProjects??gI)();v({op:"projects",projects:c})}catch(a){kN(v,a,"projects_failed")}return;case"settings.get":try{let a=a5();v({op:"settings",settings:a.settings})}catch(a){v({op:"error",code:"settings_read_failed",message:String(a)})}return;case"settings.update":try{let b=a5(),c=a3(b.settings,a.settings);a6(c);let d=a.settings;(void 0!==d.enabledModels||void 0!==d.disabledProviders||void 0!==d.modelProviderOrder)&&(aJ(),(0,iu.j)());let e=a5();v({op:"settings_updated",success:!0,settings:e.settings})}catch(a){v({op:"settings_updated",success:!1,error:String(a)})}return;case"session.open":{let b=++l;m=!1,t?.(),t=null,y.reset(),s=a.id;try{let c=await d.openSession(a.id,a=>{r||l!==b||m||y.push(a)});if(r||l!==b||s!==a.id)return void c.dispose();t=c.dispose,y.reset(),v({op:"session.snapshot",id:a.id,...c.snapshot.title?{title:c.snapshot.title}:{},...c.snapshot.cwd?{cwd:c.snapshot.cwd}:{},leafId:c.snapshot.leafId,messages:c.snapshot.messages,agent:c.snapshot.agent})||v({op:"session.err",id:a.id,code:"snapshot_too_large",message:"Session snapshot exceeded maximum frame size"});try{let b=await (d.listBranches??bT)(a.id);v({op:"branches",id:b.id,leafId:b.leafId,branches:b.branches})}catch{}}catch(d){s=null,l++,y.reset();let b=d instanceof Error?d.message:String(d),c=d&&"object"==typeof d&&"code"in d&&"string"==typeof d.code?d.code:"session_open_failed";v({op:"session.err",id:a.id,code:c,message:b})}return}case"cmd":if(!s)return void v({op:"cmd_err",req:a.req,code:"session_not_open",message:"Open a session first"});try{let b=l,c=s,e=await d.sendCommand(c,function(a){switch(a.type){case"prompt":return{type:"prompt",message:a.message??"",...a.images?{images:a.images}:{}};case"abort":return{type:"abort"};case"get_state":return{type:"get_state"};case"set_model":return{type:"set_model",provider:a.provider,modelId:a.modelId};case"set_thinking_level":return{type:"set_thinking_level",level:a.level};case"compact":return{type:"compact"};case"get_subagents":return{type:"get_subagents"};case"get_available_commands":return{type:"get_available_commands"}}}(a));if(r||l!==b||s!==c)return;v({op:"cmd_ok",req:a.req,data:e??null})}catch(d){let b=d instanceof Error?d.message:String(d),c=d&&"object"==typeof d&&"code"in d&&"string"==typeof d.code?d.code:"rpc_command_failed";v({op:"cmd_err",req:a.req,code:c,message:b})}}}};return{onText(a){if(r)return;let b=a,c=!1;try{if(Buffer.byteLength(a,"utf8")>262144)throw Error("Frame exceeds transport limit");let d=JSON.parse(a);if("object"==typeof d&&null!==d&&"op"in d&&"chunk"===d.op){if(!q)return void w("unauthorized","hello is required before chunks");let a=i.accept(d);if(null===a)return;b=a,c=!0}}catch{i.clear(),q?v({op:"error",code:"invalid_frame",message:"Invalid relay frame"}):w("invalid_frame","Invalid relay frame");return}let d=function(a,b=!1){let c;if("string"!=typeof a||0===a.length)return{error:!0,code:"invalid_json",message:"Empty frame"};if(Buffer.byteLength(a,"utf8")>(b?0x1000000:262144))return{error:!0,code:"frame_too_large",message:"Frame is too large"};try{c=JSON.parse(a)}catch{return{error:!0,code:"invalid_json",message:"Frame is not JSON"}}if(!(0,S.u4)(c))return{error:!0,code:"invalid_frame",message:"Frame must be a JSON object"};let d=(0,S.oJ)(c.op);if(!d)return{error:!0,code:"invalid_frame",message:"op is required"};switch(d){case"request":{let{req:a,domain:b,action:d,args:e}=c;if("number"!=typeof a||!Number.isSafeInteger(a)||a<=0||"files"!==b&&"sessions"!==b&&"models"!==b&&"extensions"!==b&&"system"!==b||"string"!=typeof d||!/^[A-Za-z][A-Za-z0-9._-]{0,127}$/.test(d)||"object"!=typeof e||null===e||Array.isArray(e))return{error:!0,code:"invalid_request",message:"Invalid request envelope"};return{op:"request",req:a,domain:b,action:d,args:e}}case"hello":return function(a){if(1!==(0,S.i)(a.protocol))return{error:!0,code:"protocol",message:"Unsupported relay protocol"};let b={op:"hello",protocol:1},c=(0,S.oJ)(a.pairingSecret)?.trim(),d=(0,S.oJ)(a.deviceId)?.trim(),e=(0,S.oJ)(a.token)?.trim(),f=(0,S.oJ)(a.password),g=(0,S.oJ)(a.label)?.trim();if(c){if(!W.test(c))return{error:!0,code:"unauthorized",message:"Invalid pairing secret"};b.pairingSecret=c}else{if(!d||!e)return{error:!0,code:"unauthorized",message:"Pairing secret or device token is required"};if(!V.test(d)||!W.test(e))return{error:!0,code:"unauthorized",message:"Invalid device credentials"};b.deviceId=d,b.token=e}return void 0!==f&&(b.password=f),g&&(b.label=g.slice(0,64)),b}(c);case"sessions.list":return{op:"sessions.list"};case"models.list":return{op:"models.list"};case"usage":return{op:"usage"};case"session.open":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return{op:"session.open",id:a}}case"session.close":return{op:"session.close"};case"session.create":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};let b={op:"session.create",cwd:a},d=(0,S.oJ)(c.message);if(void 0!==d){if(d.length>3145728)return{error:!0,code:"invalid_command",message:"prompt message is too long"};b.message=d}let e=(0,S.oJ)(c.provider)?.trim(),f=(0,S.oJ)(c.modelId)?.trim();e&&(b.provider=e.slice(0,512)),f&&(b.modelId=f.slice(0,512));let g=(0,S.oJ)(c.thinkingLevel)?.trim();return g&&(b.thinkingLevel=g.slice(0,32)),b}case"projects.list":return{op:"projects.list"};case"files.list":{let a=(0,S.oJ)(c.path)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_path",message:"path is too long"};return a?{op:"files.list",path:a}:{op:"files.list"}}case"slash.list":return{op:"slash.list"};case"files.read":{let a=(0,S.oJ)(c.path)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};return{op:"files.read",path:a}}case"session.delete":case"session.archive":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return"session.delete"===d?{op:"session.delete",id:a}:{op:"session.archive",id:a}}case"session.rename":{let a=(0,S.oJ)(c.id)?.trim(),b=(0,S.oJ)(c.name)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};if(!b||b.length>200)return{error:!0,code:"invalid_name",message:"name is required"};return{op:"session.rename",id:a,name:b}}case"sessions.archives":return{op:"sessions.archives"};case"session.restore":{let a=(0,S.oJ)(c.key)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_key",message:"archive key is required"};return{op:"session.restore",key:a}}case"worktrees.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return{op:"worktrees.list",cwd:a}}case"worktrees.add":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.branch)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_branch",message:"branch is required"};return{op:"worktrees.add",cwd:a,branch:b}}case"files.write":{let a=(0,S.oJ)(c.path)?.trim(),b=(0,S.oJ)(c.text);if(!a||a.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};if(void 0===b)return{error:!0,code:"invalid_text",message:"text is required"};if(b.length>8e4)return{error:!0,code:"invalid_text",message:"text is too long"};return{op:"files.write",path:a,text:b,..."string"==typeof c.revision?{revision:c.revision}:{},..."string"==typeof c.baseContentHash?{baseContentHash:c.baseContentHash}:{},...!0===c.createIfMissing?{createIfMissing:!0}:{}}}case"git.status":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return{op:"git.status",cwd:a}}case"git.diff":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.path)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>1024)return{error:!0,code:"invalid_path",message:"path is required"};return{op:"git.diff",cwd:a,path:b}}case"session.branches":case"session.export":{let a=(0,S.oJ)(c.id)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};return"session.branches"===d?{op:"session.branches",id:a}:{op:"session.export",id:a}}case"session.leaf":{let a=(0,S.oJ)(c.id)?.trim(),b=(0,S.oJ)(c.leafId)?.trim();if(!a||!X.test(a))return{error:!0,code:"invalid_session",message:"session id is required"};if(!b||b.length>200)return{error:!0,code:"invalid_leaf",message:"leafId is required"};return{op:"session.leaf",id:a,leafId:b}}case"skills.list":case"plugins.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return"skills.list"===d?{op:"skills.list",cwd:a}:{op:"plugins.list",cwd:a}}case"skills.toggle":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.filePath)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>1024)return{error:!0,code:"invalid_path",message:"filePath is required"};if("boolean"!=typeof c.disableModelInvocation)return{error:!0,code:"invalid_flag",message:"disableModelInvocation must be a boolean"};return{op:"skills.toggle",cwd:a,filePath:b,disableModelInvocation:c.disableModelInvocation}}case"plugins.action":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.action)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if("install"!==b&&"remove"!==b&&"update"!==b&&"disable"!==b&&"enable"!==b)return{error:!0,code:"invalid_action",message:"plugin action is required"};let d=(0,S.oJ)(c.source)?.trim();if("update"!==b&&(!d||d.length>512))return{error:!0,code:"invalid_source",message:"source is required"};if(d&&d.length>512)return{error:!0,code:"invalid_source",message:"source is too long"};let e=(0,S.oJ)(c.scope)?.trim(),f="project"===e?"project":"global"===e?"global":void 0;return{op:"plugins.action",cwd:a,action:b,...d?{source:d}:{},...f?{scope:f}:{}}}case"mcp.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return a?{op:"mcp.list",cwd:a}:{op:"mcp.list"}}case"mcp.delete":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.name)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_name",message:"name is required"};return{op:"mcp.delete",cwd:a,name:b}}case"mcp.upsert":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.name)?.trim(),d=(0,S.oJ)(c.type)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(!b||b.length>128)return{error:!0,code:"invalid_name",message:"name is required"};if("stdio"!==d&&"http"!==d&&"sse"!==d)return{error:!0,code:"invalid_type",message:"type must be stdio, http, or sse"};let e=(0,S.oJ)(c.command)?.trim(),f=(0,S.oJ)(c.url)?.trim();if(e&&e.length>1024)return{error:!0,code:"invalid_command",message:"command is too long"};if(f&&f.length>1024)return{error:!0,code:"invalid_url",message:"url is too long"};let g={op:"mcp.upsert",cwd:a,name:b,type:d};if(e&&(g.command=e),f&&(g.url=f),Array.isArray(c.args)){let a=[];for(let b of c.args){if("string"!=typeof b)return{error:!0,code:"invalid_args",message:"args must be strings"};if(b.length>256)return{error:!0,code:"invalid_args",message:"arg is too long"};if(a.push(b),a.length>16)return{error:!0,code:"invalid_args",message:"too many args"}}a.length>0&&(g.args=a)}else if(null!=c.args)return{error:!0,code:"invalid_args",message:"args must be an array"};return g}case"session.import":{let a=(0,S.oJ)(c.fileName)?.trim(),b=(0,S.oJ)(c.content);if(!a||a.length>200||a.includes("/")||a.includes("\\"))return{error:!0,code:"invalid_file_name",message:"fileName is required"};if(void 0===b||!b.trim())return{error:!0,code:"invalid_content",message:"content is required"};if(b.length>18e4)return{error:!0,code:"invalid_content",message:"content is too long"};return{op:"session.import",fileName:a,content:b}}case"skills.search":{let a=(0,S.oJ)(c.query)?.trim();if(!a||a.length>200)return{error:!0,code:"invalid_query",message:"query is required"};let b=c.limit;if(void 0===b)return{op:"skills.search",query:a};let d=(0,S.i)(b);if(void 0===d||!Number.isInteger(d)||d<1||d>20)return{error:!0,code:"invalid_limit",message:"limit must be 1-20"};return{op:"skills.search",query:a,limit:d}}case"skills.install":{let a=(0,S.oJ)(c.package)?.trim(),b=(0,S.oJ)(c.scope)?.trim(),d=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>256)return{error:!0,code:"invalid_package",message:"package is required"};if("global"!==b&&"project"!==b)return{error:!0,code:"invalid_scope",message:"scope must be global or project"};if(d&&d.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"skills.install",package:a,scope:b,...d?{cwd:d}:{}}}case"agents.list":{let a=(0,S.oJ)(c.cwd)?.trim();if(a&&a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return a?{op:"agents.list",cwd:a}:{op:"agents.list"}}case"agents.save":{let a=(0,S.oJ)(c.name)?.trim(),b=(0,S.oJ)(c.description)?.trim(),d=(0,S.oJ)(c.systemPrompt),e=(0,S.oJ)(c.scope)?.trim(),f=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>64||!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a))return{error:!0,code:"invalid_name",message:"name must be kebab-case"};if(void 0===b||!b||b.length>500)return{error:!0,code:"invalid_description",message:"description is required"};if(void 0===d||d.length>2e4)return{error:!0,code:"invalid_prompt",message:"systemPrompt is required"};if("user"!==e&&"project"!==e)return{error:!0,code:"invalid_scope",message:"scope must be user or project"};if(f&&f.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"agents.save",name:a,description:b,systemPrompt:d,scope:e,...f?{cwd:f}:{}}}case"agents.delete":{let a=(0,S.oJ)(c.name)?.trim(),b=(0,S.oJ)(c.scope)?.trim(),d=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>64)return{error:!0,code:"invalid_name",message:"name is required"};if("user"!==b&&"project"!==b)return{error:!0,code:"invalid_scope",message:"scope must be user or project"};if(d&&d.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is too long"};return{op:"agents.delete",name:a,scope:b,...d?{cwd:d}:{}}}case"auth.providers":return{op:"auth.providers"};case"files.index":{let a=(0,S.oJ)(c.cwd)?.trim(),b=(0,S.oJ)(c.query);if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};if(void 0===b||b.length>100)return{error:!0,code:"invalid_query",message:"query is required"};return{op:"files.index",cwd:a,query:b}}case"projects.add":case"projects.remove":{let a=(0,S.oJ)(c.cwd)?.trim();if(!a||a.length>1024)return{error:!0,code:"invalid_cwd",message:"cwd is required"};return"projects.add"===d?{op:"projects.add",cwd:a}:{op:"projects.remove",cwd:a}}case"settings.get":return{op:"settings.get"};case"settings.update":if(!(0,S.u4)(c.settings))return{error:!0,code:"invalid_settings",message:"settings must be an object"};return{op:"settings.update",settings:c.settings};case"cmd":return function(a){let b=(0,S.i)(a.req);if(void 0===b||!Number.isInteger(b)||b<1||b>0x7fffffff)return{error:!0,code:"invalid_req",message:"cmd.req must be a positive integer"};let c=(0,S.oJ)(a.type)?.trim();if(!c||!U.has(c))return{error:!0,code:"unsupported_command",message:"Command is not allowed on the relay"};let d={op:"cmd",req:b,type:c};if("prompt"===c){let b=(0,S.oJ)(a.message);if(void 0===b)return{error:!0,code:"invalid_command",message:"prompt message is required"};if(b.length>3145728)return{error:!0,code:"invalid_command",message:"prompt message is too long"};if("images"in a&&null!=a.images){let b=a.images;if(!Array.isArray(b))return{error:!0,code:"invalid_command",message:"images must be an array"};let c=[];for(let a of b){if(!(0,S.u4)(a))return{error:!0,code:"invalid_command",message:"Each image must have data and mimeType"};let b=(0,S.oJ)(a.data),d=(0,S.oJ)(a.mimeType)?.trim();if(!b||!d)return{error:!0,code:"invalid_command",message:"Each image must have data and mimeType"};c.push({data:b,mimeType:d})}let e=(0,T.kc)(c.map(a=>({type:"image",...a})));if(e)return{error:!0,code:"invalid_command",message:e};c.length>0&&(d.images=c)}d.message=b}if("set_model"===c){let b=(0,S.oJ)(a.provider)?.trim(),c=(0,S.oJ)(a.modelId)?.trim();if(!b||!c)return{error:!0,code:"invalid_command",message:"set_model requires provider and modelId"};d.provider=b,d.modelId=c}if("set_thinking_level"===c){let b=(0,S.oJ)(a.level)?.trim();if(!b)return{error:!0,code:"invalid_command",message:"set_thinking_level requires level"};d.level=b.slice(0,32)}return d}(c);default:return{error:!0,code:"unknown_op",message:`Unknown op: ${d}`}}}(b,c);if((0,S.u4)(d)&&!0===d.error&&"string"==typeof d.code)return q?void v({op:"error",code:d.code,message:d.message}):void w(d.code,d.message);let e=q&&("cmd"===d.op&&"abort"===d.type||"request"===d.op&&"sessions"===d.domain&&"command"===d.action&&"object"==typeof d.args.command&&null!==d.args.command&&"type"in d.args.command&&("abort"===d.args.command.type||"extension_ui_response"===d.args.command.type));if((e?o:n)>=(e?16:64))return void("request"===d.op?v({op:"result",req:d.req,success:!1,error:{code:"busy",message:"Too many pending relay operations"}}):"cmd"===d.op?v({op:"cmd_err",req:d.req,code:"busy",message:"Too many pending relay operations"}):v({op:"error",code:"busy",message:"Too many pending relay operations"}));e?o++:n++;let f=()=>C(d).catch(()=>{v({op:"error",code:"internal_error",message:"Relay operation failed"})}).finally(()=>{e?o--:n--});e?p=p.then(f):u=u.then(f)},onClose(){z()}}}(g),c.length>0&&g.feed(c))}(a,d[1],d[2]??Buffer.alloc(0)),!0}return b.call(this,a,...d)}b.__ompguiRelay||(c.__ompguiRelay=!0,a.prototype.emit=c)}function kU(){globalThis.__ompguiRelayGatewayAttached||(globalThis.__ompguiRelayGatewayAttached=!0,kT(J.Server),kT(K.Server))}},71217:(a,b,c)=>{"use strict";var d=c(93602),e=c(95241),f=c(33824),g=c(40686),h=c(3327),i=c(73315),j=c(37521),k=c(26701),l=c(30598),m=c(71397),n=(c(2063),c(44559)),o=c(17518),p=c(55578),q=c(62499),r=c(3404);d.Composer,e.Document,f.Schema,g.YAMLError,g.YAMLParseError,g.YAMLWarning,h.Alias,i.isAlias,i.isCollection,i.isDocument,b.jh=i.isMap,i.isNode,i.isPair,b.jn=i.isScalar,b.oP=i.isSeq,j.Pair,k.Scalar,l.YAMLMap,m.YAMLSeq,n.Lexer,o.LineCounter,p.Parser,b.qg=q.parse,q.parseAllDocuments,b.Tp=q.parseDocument,b.As=q.stringify,r.visit,r.visitAsync},71260:(a,b,c)=>{"use strict";var d=c(81833),e=c(40542),f=c(40686),g=c(93051);function h(a,b){if(b)for(let c of b)switch(c.type){case"space":case"comment":a.push(c);break;case"newline":return a.push(c),!0}return!1}function i(a,b,c){switch(a.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":a.type=c,a.source=b;break;case"block-scalar":{let d=a.props.slice(1),e=b.length;for(let b of("block-scalar-header"===a.props[0].type&&(e-=a.props[0].source.length),d))b.offset+=e;delete a.props,Object.assign(a,{type:c,source:b,end:d});break}case"block-map":case"block-seq":{let d={type:"newline",offset:a.offset+b.length,indent:a.indent,source:"\n"};delete a.items,Object.assign(a,{type:c,source:b,end:[d]});break}default:{let d="indent"in a?a.indent:-1,e="end"in a&&Array.isArray(a.end)?a.end.filter(a=>"space"===a.type||"comment"===a.type||"newline"===a.type):[];for(let b of Object.keys(a))"type"!==b&&"offset"!==b&&delete a[b];Object.assign(a,{type:c,indent:d,source:b,end:e})}}}b.createScalarToken=function(a,b){let{implicitKey:c=!1,indent:d,inFlow:e=!1,offset:f=-1,type:i="PLAIN"}=b,j=g.stringifyString({type:i,value:a},{implicitKey:c,indent:d>0?" ".repeat(d):"",inFlow:e,options:{blockQuote:!0,lineWidth:-1}}),k=b.end??[{type:"newline",offset:-1,indent:d,source:"\n"}];switch(j[0]){case"|":case">":{let a=j.indexOf("\n"),b=j.substring(0,a),c=j.substring(a+1)+"\n",e=[{type:"block-scalar-header",offset:f,indent:d,source:b}];return h(e,k)||e.push({type:"newline",offset:-1,indent:d,source:"\n"}),{type:"block-scalar",offset:f,indent:d,props:e,source:c}}case'"':return{type:"double-quoted-scalar",offset:f,indent:d,source:j,end:k};case"'":return{type:"single-quoted-scalar",offset:f,indent:d,source:j,end:k};default:return{type:"scalar",offset:f,indent:d,source:j,end:k}}},b.resolveAsScalar=function(a,b=!0,c){if(a){let g=(a,b,d)=>{let e="number"==typeof a?a:Array.isArray(a)?a[0]:a.offset;if(c)c(e,b,d);else throw new f.YAMLParseError([e,e+1],b,d)};switch(a.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return e.resolveFlowScalar(a,b,g);case"block-scalar":return d.resolveBlockScalar({options:{strict:b}},a,g)}}return null},b.setScalarValue=function(a,b,c={}){let{afterKey:d=!1,implicitKey:e=!1,inFlow:f=!1,type:j}=c,k="indent"in a?a.indent:null;if(d&&"number"==typeof k&&(k+=2),!j)switch(a.type){case"single-quoted-scalar":j="QUOTE_SINGLE";break;case"double-quoted-scalar":j="QUOTE_DOUBLE";break;case"block-scalar":{let b=a.props[0];if("block-scalar-header"!==b.type)throw Error("Invalid block scalar header");j=">"===b.source[0]?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:j="PLAIN"}let l=g.stringifyString({type:j,value:b},{implicitKey:e||null===k,indent:null!==k&&k>0?" ".repeat(k):"",inFlow:f,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":!function(a,b){let c=b.indexOf("\n"),d=b.substring(0,c),e=b.substring(c+1)+"\n";if("block-scalar"===a.type){let b=a.props[0];if("block-scalar-header"!==b.type)throw Error("Invalid block scalar header");b.source=d,a.source=e}else{let{offset:b}=a,c="indent"in a?a.indent:-1,f=[{type:"block-scalar-header",offset:b,indent:c,source:d}];for(let b of(h(f,"end"in a?a.end:void 0)||f.push({type:"newline",offset:-1,indent:c,source:"\n"}),Object.keys(a)))"type"!==b&&"offset"!==b&&delete a[b];Object.assign(a,{type:"block-scalar",indent:c,props:f,source:e})}}(a,l);break;case'"':i(a,l,"double-quoted-scalar");break;case"'":i(a,l,"single-quoted-scalar");break;default:i(a,l,"scalar")}}},71397:(a,b,c)=>{"use strict";var d=c(10878),e=c(70752),f=c(66273),g=c(73315),h=c(26701),i=c(49443);class j extends f.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(a){super(g.SEQ,a),this.items=[]}add(a){this.items.push(a)}delete(a){let b=k(a);return"number"==typeof b&&this.items.splice(b,1).length>0}get(a,b){let c=k(a);if("number"!=typeof c)return;let d=this.items[c];return!b&&g.isScalar(d)?d.value:d}has(a){let b=k(a);return"number"==typeof b&&b<this.items.length}set(a,b){let c=k(a);if("number"!=typeof c)throw Error(`Expected a valid index, not ${a}.`);let d=this.items[c];g.isScalar(d)&&h.isScalarValue(b)?d.value=b:this.items[c]=b}toJSON(a,b){let c=[];b?.onCreate&&b.onCreate(c);let d=0;for(let a of this.items)c.push(i.toJS(a,String(d++),b));return c}toString(a,b,c){return a?e.stringifyCollection(this,a,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(a.indent||"")+" ",onChompKeep:c,onComment:b}):JSON.stringify(this)}static from(a,b,c){let{replacer:e}=c,f=new this(a);if(b&&Symbol.iterator in Object(b)){let a=0;for(let g of b){if("function"==typeof e){let c=b instanceof Set?g:String(a++);g=e.call(b,c,g)}f.items.push(d.createNode(g,void 0,c))}}return f}}function k(a){let b=g.isScalar(a)?a.value:a;return b&&"string"==typeof b&&(b=Number(b)),"number"==typeof b&&Number.isInteger(b)&&b>=0?b:null}b.YAMLSeq=j},71422:(a,b)=>{b.uriToZipEntryName=function(a,b){return"/"===b.charAt(0)?b.substr(1):a+"/"+b},b.replaceFragment=function(a,b){var c=a.indexOf("#");return -1!==c&&(a=a.substring(0,c)),a+"#"+b}},71646:a=>{"use strict";global.MutationObserver||global.WebKitMutationObserver;var b,c=function(){process.nextTick(e)},d=[];function e(){b=!0;for(var a,c,e=d.length;e;){for(c=d,d=[],a=-1;++a<e;)c[a]();e=d.length}b=!1}a.exports=function(a){1!==d.push(a)||b||c()}},71759:(a,b,c)=>{"use strict";a.exports=function(a,b){var d=c(22418),e=a.CancellationError,f=d.errorObj;function g(a,b,c){this.promise=a,this.type=b,this.handler=c,this.called=!1,this.cancelPromise=null}function h(a){this.finallyHandler=a}function i(a,b){return null!=a.cancelPromise&&(arguments.length>1?a.cancelPromise._reject(b):a.cancelPromise._cancel(),a.cancelPromise=null,!0)}function j(){return l.call(this,this.promise._target()._settledValue())}function k(a){if(!i(this,a))return f.e=a,f}function l(c){var d=this.promise,g=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?g.call(d._boundValue()):g.call(d._boundValue(),c);if(void 0!==l){d._setReturnedNonUndefined();var m=b(l,d);if(m instanceof a){if(null!=this.cancelPromise)if(m._isCancelled()){var n=new e("late cancellation observer");return d._attachExtraTrace(n),f.e=n,f}else m.isPending()&&m._attachCancellationCallback(new h(this));return m._then(j,k,void 0,this,void 0)}}}return d.isRejected()?(i(this),f.e=c,f):(i(this),c)}return g.prototype.isFinallyHandler=function(){return 0===this.type},h.prototype._resultCancelled=function(){i(this.finallyHandler)},a.prototype._passThrough=function(a,b,c,d){return"function"!=typeof a?this.then():this._then(c,d,void 0,new g(this,b,a),void 0)},a.prototype.lastly=a.prototype.finally=function(a){return this._passThrough(a,0,l,l)},a.prototype.tap=function(a){return this._passThrough(a,1,l)},g}},71848:(a,b,c)=>{"use strict";var d=c(20577),e=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b};a.exports=l;var f=Object.create(c(22362));f.inherits=c(50843);var g=c(38418),h=c(49358);f.inherits(l,g);for(var i=e(h.prototype),j=0;j<i.length;j++){var k=i[j];l.prototype[k]||(l.prototype[k]=h.prototype[k])}function l(a){if(!(this instanceof l))return new l(a);g.call(this,a),h.call(this,a),a&&!1===a.readable&&(this.readable=!1),a&&!1===a.writable&&(this.writable=!1),this.allowHalfOpen=!0,a&&!1===a.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",m)}function m(){this.allowHalfOpen||this._writableState.ended||d.nextTick(n,this)}function n(a){a.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(a){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=a,this._writableState.destroyed=a)}}),l.prototype._destroy=function(a,b){this.push(null),this.end(),d.nextTick(b,a)}},72240:function(a,b,c){(function(){var b,d,e,f,g,h,i=function(a,b){for(var c in b)j.call(b,c)&&(a[c]=b[c]);function d(){this.constructor=a}return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},j={}.hasOwnProperty;h=c(54117).isObject,g=c(8142),b=c(54107),e=c(4907),d=c(9774),f=c(54968),a.exports=function(a){function c(a,b,d){var e,f;c.__super__.constructor.call(this,a),this.name="!DOCTYPE",this.documentObject=a,h(b)&&(b=(e=b).pubID,d=e.sysID),null==d&&(d=(f=[b,d])[0],b=f[1]),null!=b&&(this.pubID=this.stringify.dtdPubID(b)),null!=d&&(this.sysID=this.stringify.dtdSysID(d))}return i(c,a),c.prototype.element=function(a,b){var c;return c=new d(this,a,b),this.children.push(c),this},c.prototype.attList=function(a,c,d,e,f){var g;return g=new b(this,a,c,d,e,f),this.children.push(g),this},c.prototype.entity=function(a,b){var c;return c=new e(this,!1,a,b),this.children.push(c),this},c.prototype.pEntity=function(a,b){var c;return c=new e(this,!0,a,b),this.children.push(c),this},c.prototype.notation=function(a,b){var c;return c=new f(this,a,b),this.children.push(c),this},c.prototype.toString=function(a){return this.options.writer.set(a).docType(this)},c.prototype.ele=function(a,b){return this.element(a,b)},c.prototype.att=function(a,b,c,d,e){return this.attList(a,b,c,d,e)},c.prototype.ent=function(a,b){return this.entity(a,b)},c.prototype.pent=function(a,b){return this.pEntity(a,b)},c.prototype.not=function(a,b){return this.notation(a,b)},c.prototype.up=function(){return this.root()||this.documentObject},c}(g)}).call(this)},72687:(a,b)=>{"use strict";function c(a,b){return/^\n+$/.test(a)?a.substring(1):b?a.replace(/^(?! *$)/gm,b):a}b.indentComment=c,b.lineComment=(a,b,d)=>a.endsWith("\n")?c(d,b):d.includes("\n")?"\n"+c(d,b):(a.endsWith(" ")?"":" ")+d,b.stringifyComment=a=>a.replace(/^(?!$)(?: $)?/gm,"#")},72884:function(a){(function(){var b={}.hasOwnProperty;a.exports=function(){function a(a){var c,d,e,f,g,h,i,j,k;for(c in a||(a={}),this.pretty=a.pretty||!1,this.allowEmpty=null!=(d=a.allowEmpty)&&d,this.pretty?(this.indent=null!=(e=a.indent)?e:" ",this.newline=null!=(f=a.newline)?f:"\n",this.offset=null!=(g=a.offset)?g:0,this.dontprettytextnodes=null!=(h=a.dontprettytextnodes)?h:0):(this.indent="",this.newline="",this.offset=0,this.dontprettytextnodes=0),this.spacebeforeslash=null!=(i=a.spacebeforeslash)?i:"",!0===this.spacebeforeslash&&(this.spacebeforeslash=" "),this.newlinedefault=this.newline,this.prettydefault=this.pretty,j=a.writer||{})b.call(j,c)&&(k=j[c],this[c]=k)}return a.prototype.set=function(a){var c,d,e;for(c in a||(a={}),"pretty"in a&&(this.pretty=a.pretty),"allowEmpty"in a&&(this.allowEmpty=a.allowEmpty),this.pretty?(this.indent="indent"in a?a.indent:" ",this.newline="newline"in a?a.newline:"\n",this.offset="offset"in a?a.offset:0,this.dontprettytextnodes="dontprettytextnodes"in a?a.dontprettytextnodes:0):(this.indent="",this.newline="",this.offset=0,this.dontprettytextnodes=0),this.spacebeforeslash="spacebeforeslash"in a?a.spacebeforeslash:"",!0===this.spacebeforeslash&&(this.spacebeforeslash=" "),this.newlinedefault=this.newline,this.prettydefault=this.pretty,d=a.writer||{})b.call(d,c)&&(e=d[c],this[c]=e);return this},a.prototype.space=function(a){var b;return this.pretty&&(b=(a||0)+this.offset+1)>0?Array(b).join(this.indent):""},a}()}).call(this)},73315:(a,b)=>{"use strict";let c=Symbol.for("yaml.alias"),d=Symbol.for("yaml.document"),e=Symbol.for("yaml.map"),f=Symbol.for("yaml.pair"),g=Symbol.for("yaml.scalar"),h=Symbol.for("yaml.seq"),i=Symbol.for("yaml.node.type"),j=a=>!!a&&"object"==typeof a&&a[i]===g;function k(a){if(a&&"object"==typeof a)switch(a[i]){case e:case h:return!0}return!1}b.ALIAS=c,b.DOC=d,b.MAP=e,b.NODE_TYPE=i,b.PAIR=f,b.SCALAR=g,b.SEQ=h,b.hasAnchor=a=>(j(a)||k(a))&&!!a.anchor,b.isAlias=a=>!!a&&"object"==typeof a&&a[i]===c,b.isCollection=k,b.isDocument=a=>!!a&&"object"==typeof a&&a[i]===d,b.isMap=a=>!!a&&"object"==typeof a&&a[i]===e,b.isNode=function(a){if(a&&"object"==typeof a)switch(a[i]){case c:case e:case g:case h:return!0}return!1},b.isPair=a=>!!a&&"object"==typeof a&&a[i]===f,b.isScalar=j,b.isSeq=a=>!!a&&"object"==typeof a&&a[i]===h},73374:(a,b,c)=>{"use strict";a.exports=function(a,b,d){var e=c(22418),f=c(43823).RangeError,g=c(43823).AggregateError,h=e.isArray,i={};function j(a){this.constructor$(a),this._howMany=0,this._unwrap=!1,this._initialized=!1}function k(a,b){if((0|b)!==b||b<0)return d("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var c=new j(a),e=c.promise();return c.setHowMany(b),c.init(),e}e.inherits(j,b),j.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var a=h(this._values);!this._isResolved()&&a&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},j.prototype.init=function(){this._initialized=!0,this._init()},j.prototype.setUnwrap=function(){this._unwrap=!0},j.prototype.howMany=function(){return this._howMany},j.prototype.setHowMany=function(a){this._howMany=a},j.prototype._promiseFulfilled=function(a){return this._addFulfilled(a),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},j.prototype._promiseRejected=function(a){return this._addRejected(a),this._checkOutcome()},j.prototype._promiseCancelled=function(){return this._values instanceof a||null==this._values?this._cancel():(this._addRejected(i),this._checkOutcome())},j.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var a=new g,b=this.length();b<this._values.length;++b)this._values[b]!==i&&a.push(this._values[b]);return a.length>0?this._reject(a):this._cancel(),!0}return!1},j.prototype._fulfilled=function(){return this._totalResolved},j.prototype._rejected=function(){return this._values.length-this.length()},j.prototype._addRejected=function(a){this._values.push(a)},j.prototype._addFulfilled=function(a){this._values[this._totalResolved++]=a},j.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},j.prototype._getRangeError=function(a){return new f("Input array must contain at least "+this._howMany+" items but contains only "+a+" items")},j.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},a.some=function(a,b){return k(a,b)},a.prototype.some=function(a){return k(this,a)},a._SomePromiseArray=j}},74782:(a,b,c)=>{"use strict";a.exports=function(a,b){var d=c(22418),e=d.errorObj,f=d.isObject,g={}.hasOwnProperty;return function(c,h){if(f(c)){if(c instanceof a)return c;var i=function(a){try{return a.then}catch(a){return e.e=a,e}}(c);if(i===e){h&&h._pushContext();var j=a.reject(i.e);return h&&h._popContext(),j}if("function"==typeof i){if(function(a){try{return g.call(a,"_promise0")}catch(a){return!1}}(c)){var k,l,m,n,o,p,q,j=new a(b);return c._then(j._fulfill,j._reject,void 0,j,null),j}return k=c,l=i,m=h,o=n=new a(b),m&&m._pushContext(),n._captureStackTrace(),m&&m._popContext(),p=!0,q=d.tryCatch(l).call(k,function(a){n&&(n._resolveCallback(a),n=null)},function(a){n&&(n._rejectCallback(a,p,!0),n=null)}),p=!1,n&&q===e&&(n._rejectCallback(q.e,!0,!0),n=null),o}}return c}}},75034:(a,b,c)=>{"use strict";var d=c(69167),e=!0,f=!0;try{String.fromCharCode.apply(null,[0])}catch(a){e=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(a){f=!1}for(var g=new d.Buf8(256),h=0;h<256;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;function i(a,b){if(b<65534&&(a.subarray&&f||!a.subarray&&e))return String.fromCharCode.apply(null,d.shrinkBuf(a,b));for(var c="",g=0;g<b;g++)c+=String.fromCharCode(a[g]);return c}g[254]=g[254]=1,b.string2buf=function(a){var b,c,e,f,g,h=a.length,i=0;for(f=0;f<h;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new d.Buf8(i),g=0,f=0;g<i;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),c<128?b[g++]=c:(c<2048?b[g++]=192|c>>>6:(c<65536?b[g++]=224|c>>>12:(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63),b[g++]=128|c>>>6&63),b[g++]=128|63&c);return b},b.buf2binstring=function(a){return i(a,a.length)},b.binstring2buf=function(a){for(var b=new d.Buf8(a.length),c=0,e=b.length;c<e;c++)b[c]=a.charCodeAt(c);return b},b.buf2string=function(a,b){var c,d,e,f,h=b||a.length,j=Array(2*h);for(d=0,c=0;c<h;){if((e=a[c++])<128){j[d++]=e;continue}if((f=g[e])>4){j[d++]=65533,c+=f-1;continue}for(e&=2===f?31:3===f?15:7;f>1&&c<h;)e=e<<6|63&a[c++],f--;if(f>1){j[d++]=65533;continue}e<65536?j[d++]=e:(e-=65536,j[d++]=55296|e>>10&1023,j[d++]=56320|1023&e)}return i(j,d)},b.utf8border=function(a,b){var c;for((b=b||a.length)>a.length&&(b=a.length),c=b-1;c>=0&&(192&a[c])==128;)c--;return c<0||0===c?b:c+g[a[c]]>b?c:b}},75875:(a,b)=>{"use strict";b.base64=!1,b.binary=!1,b.dir=!1,b.createFolders=!0,b.date=null,b.compression=null,b.compressionOptions=null,b.comment=null,b.unixPermissions=null,b.dosPermissions=null},76281:a=>{"use strict";function b(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}b.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},a.exports=b},77203:(a,b,c)=>{"use strict";var d=c(58952),e=c(76281);function f(a,b){e.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}d.inherits(f,e),f.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},f.prototype.pause=function(){return!!e.prototype.pause.call(this)&&(this._stream.pause(),!0)},f.prototype.resume=function(){return!!e.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},a.exports=f},77313:(a,b,c)=>{"use strict";a.exports=function(){var b,d=function(){return new n("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n")},e=function(){return new C.PromiseInspection(this._target())},f=function(a){return C.reject(new n(a))};function g(){}var h={},i=c(22418);b=i.isNode?function(){var a=process.domain;return void 0===a&&(a=null),a}:function(){return null},i.notEnumerableProp(C,"_getDomain",b);var j=c(3987),k=c(66394),l=new k;j.defineProperty(C,"_async",{value:l});var m=c(43823),n=C.TypeError=m.TypeError;C.RangeError=m.RangeError;var o=C.CancellationError=m.CancellationError;C.TimeoutError=m.TimeoutError,C.OperationalError=m.OperationalError,C.RejectionError=m.OperationalError,C.AggregateError=m.AggregateError;var p=function(){},q={},r={},s=c(74782)(C,p),t=c(80659)(C,p,s,f,g),u=c(21667)(C),v=u.create,w=c(61764)(C,u);w.CapturedTrace;var x=c(71759)(C,s),y=c(23896)(r),z=c(35527),A=i.errorObj,B=i.tryCatch;function C(a){if(this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,a!==p){if("function"!=typeof a)throw new n("expecting a function but got "+i.classString(a));if(this.constructor!==C)throw new n("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n");this._resolveFromExecutor(a)}this._promiseCreated(),this._fireEvent("promiseCreated",this)}function D(a){this.promise._resolveCallback(a)}function E(a){this.promise._rejectCallback(a,!1)}function F(a){var b=new C(p);b._fulfillmentHandler0=a,b._rejectionHandler0=a,b._promise0=a,b._receiver0=a}return C.prototype.toString=function(){return"[object Promise]"},C.prototype.caught=C.prototype.catch=function(a){var b=arguments.length;if(b>1){var c,d=Array(b-1),e=0;for(c=0;c<b-1;++c){var g=arguments[c];if(!i.isObject(g))return f("expecting an object but got A catch statement predicate "+i.classString(g));d[e++]=g}return d.length=e,a=arguments[c],this.then(void 0,y(d,a,this))}return this.then(void 0,a)},C.prototype.reflect=function(){return this._then(e,e,void 0,this,void 0)},C.prototype.then=function(a,b){if(w.warnings()&&arguments.length>0&&"function"!=typeof a&&"function"!=typeof b){var c=".then() only accepts functions but was passed: "+i.classString(a);arguments.length>1&&(c+=", "+i.classString(b)),this._warn(c)}return this._then(a,b,void 0,void 0,void 0)},C.prototype.done=function(a,b){this._then(a,b,void 0,void 0,void 0)._setIsFinal()},C.prototype.spread=function(a){return"function"!=typeof a?f("expecting a function but got "+i.classString(a)):this.all()._then(a,void 0,void 0,q,void 0)},C.prototype.toJSON=function(){var a={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(a.fulfillmentValue=this.value(),a.isFulfilled=!0):this.isRejected()&&(a.rejectionReason=this.reason(),a.isRejected=!0),a},C.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new t(this).promise()},C.prototype.error=function(a){return this.caught(i.originatesFromRejection,a)},C.getNewLibraryCopy=a.exports,C.is=function(a){return a instanceof C},C.fromNode=C.fromCallback=function(a){var b=new C(p);b._captureStackTrace();var c=arguments.length>1&&!!Object(arguments[1]).multiArgs,d=B(a)(z(b,c));return d===A&&b._rejectCallback(d.e,!0),b._isFateSealed()||b._setAsyncGuaranteed(),b},C.all=function(a){return new t(a).promise()},C.cast=function(a){var b=s(a);return b instanceof C||((b=new C(p))._captureStackTrace(),b._setFulfilled(),b._rejectionHandler0=a),b},C.resolve=C.fulfilled=C.cast,C.reject=C.rejected=function(a){var b=new C(p);return b._captureStackTrace(),b._rejectCallback(a,!0),b},C.setScheduler=function(a){if("function"!=typeof a)throw new n("expecting a function but got "+i.classString(a));return l.setScheduler(a)},C.prototype._then=function(a,c,d,e,f){var g=void 0!==f,h=g?f:new C(p),j=this._target(),k=j._bitField;g||(h._propagateFrom(this,3),h._captureStackTrace(),void 0===e&&(2097152&this._bitField)!=0&&(e=(0x3010000&k)!=0?this._boundValue():j===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,h));var m=b();if((0x3010000&k)!=0){var n,q,r=j._settlePromiseCtx;(0x2000000&k)!=0?(q=j._rejectionHandler0,n=a):(0x1000000&k)!=0?(q=j._fulfillmentHandler0,n=c,j._unsetRejectionIsUnhandled()):(r=j._settlePromiseLateCancellationObserver,q=new o("late cancellation observer"),j._attachExtraTrace(q),n=c),l.invoke(r,j,{handler:null===m?n:"function"==typeof n&&i.domainBind(m,n),promise:h,receiver:e,value:q})}else j._addCallbacks(a,c,h,e,m);return h},C.prototype._length=function(){return 65535&this._bitField},C.prototype._isFateSealed=function(){return(0x7010000&this._bitField)!=0},C.prototype._isFollowing=function(){return(0x4000000&this._bitField)==0x4000000},C.prototype._setLength=function(a){this._bitField=-65536&this._bitField|65535&a},C.prototype._setFulfilled=function(){this._bitField=0x2000000|this._bitField,this._fireEvent("promiseFulfilled",this)},C.prototype._setRejected=function(){this._bitField=0x1000000|this._bitField,this._fireEvent("promiseRejected",this)},C.prototype._setFollowing=function(){this._bitField=0x4000000|this._bitField,this._fireEvent("promiseResolved",this)},C.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},C.prototype._isFinal=function(){return(4194304&this._bitField)>0},C.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},C.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},C.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},C.prototype._setAsyncGuaranteed=function(){l.hasCustomScheduler()||(this._bitField=0x8000000|this._bitField)},C.prototype._receiverAt=function(a){var b=0===a?this._receiver0:this[4*a-4+3];return b===h?void 0:void 0===b&&this._isBound()?this._boundValue():b},C.prototype._promiseAt=function(a){return this[4*a-4+2]},C.prototype._fulfillmentHandlerAt=function(a){return this[4*a-4+0]},C.prototype._rejectionHandlerAt=function(a){return this[4*a-4+1]},C.prototype._boundValue=function(){},C.prototype._migrateCallback0=function(a){a._bitField;var b=a._fulfillmentHandler0,c=a._rejectionHandler0,d=a._promise0,e=a._receiverAt(0);void 0===e&&(e=h),this._addCallbacks(b,c,d,e,null)},C.prototype._migrateCallbackAt=function(a,b){var c=a._fulfillmentHandlerAt(b),d=a._rejectionHandlerAt(b),e=a._promiseAt(b),f=a._receiverAt(b);void 0===f&&(f=h),this._addCallbacks(c,d,e,f,null)},C.prototype._addCallbacks=function(a,b,c,d,e){var f=this._length();if(f>=65531&&(f=0,this._setLength(0)),0===f)this._promise0=c,this._receiver0=d,"function"==typeof a&&(this._fulfillmentHandler0=null===e?a:i.domainBind(e,a)),"function"==typeof b&&(this._rejectionHandler0=null===e?b:i.domainBind(e,b));else{var g=4*f-4;this[g+2]=c,this[g+3]=d,"function"==typeof a&&(this[g+0]=null===e?a:i.domainBind(e,a)),"function"==typeof b&&(this[g+1]=null===e?b:i.domainBind(e,b))}return this._setLength(f+1),f},C.prototype._proxy=function(a,b){this._addCallbacks(void 0,void 0,b,a,null)},C.prototype._resolveCallback=function(a,b){if((0x7010000&this._bitField)==0){if(a===this)return this._rejectCallback(d(),!1);var c=s(a,this);if(!(c instanceof C))return this._fulfill(a);b&&this._propagateFrom(c,2);var e=c._target();if(e===this)return void this._reject(d());var f=e._bitField;if((0x3010000&f)==0){var g=this._length();g>0&&e._migrateCallback0(this);for(var h=1;h<g;++h)e._migrateCallbackAt(this,h);this._setFollowing(),this._setLength(0),this._setFollowee(e)}else if((0x2000000&f)!=0)this._fulfill(e._value());else if((0x1000000&f)!=0)this._reject(e._reason());else{var i=new o("late cancellation observer");e._attachExtraTrace(i),this._reject(i)}}},C.prototype._rejectCallback=function(a,b,c){var d=i.ensureErrorObject(a),e=d===a;if(!e&&!c&&w.warnings()){var f="a promise was rejected with a non-error: "+i.classString(a);this._warn(f,!0)}this._attachExtraTrace(d,!!b&&e),this._reject(a)},C.prototype._resolveFromExecutor=function(a){var b=this;this._captureStackTrace(),this._pushContext();var c=!0,d=this._execute(a,function(a){b._resolveCallback(a)},function(a){b._rejectCallback(a,c)});c=!1,this._popContext(),void 0!==d&&b._rejectCallback(d,!0)},C.prototype._settlePromiseFromHandler=function(a,b,c,d){var e,f=d._bitField;if((65536&f)==0){d._pushContext(),b===q?c&&"number"==typeof c.length?e=B(a).apply(this._boundValue(),c):(e=A).e=new n("cannot .spread() a non-array: "+i.classString(c)):e=B(a).call(b,c);var g=d._popContext();(65536&(f=d._bitField))==0&&(e===r?d._reject(c):e===A?d._rejectCallback(e.e,!1):(w.checkForgottenReturns(e,g,"",d,this),d._resolveCallback(e)))}},C.prototype._target=function(){for(var a=this;a._isFollowing();)a=a._followee();return a},C.prototype._followee=function(){return this._rejectionHandler0},C.prototype._setFollowee=function(a){this._rejectionHandler0=a},C.prototype._settlePromise=function(a,b,c,d){var f=a instanceof C,h=this._bitField,i=(0x8000000&h)!=0;(65536&h)!=0?(f&&a._invokeInternalOnCancel(),c instanceof x&&c.isFinallyHandler()?(c.cancelPromise=a,B(b).call(c,d)===A&&a._reject(A.e)):b===e?a._fulfill(e.call(c)):c instanceof g?c._promiseCancelled(a):f||a instanceof t?a._cancel():c.cancel()):"function"==typeof b?f?(i&&a._setAsyncGuaranteed(),this._settlePromiseFromHandler(b,c,d,a)):b.call(c,d,a):c instanceof g?c._isResolved()||((0x2000000&h)!=0?c._promiseFulfilled(d,a):c._promiseRejected(d,a)):f&&(i&&a._setAsyncGuaranteed(),(0x2000000&h)!=0?a._fulfill(d):a._reject(d))},C.prototype._settlePromiseLateCancellationObserver=function(a){var b=a.handler,c=a.promise,d=a.receiver,e=a.value;"function"==typeof b?c instanceof C?this._settlePromiseFromHandler(b,d,e,c):b.call(d,e,c):c instanceof C&&c._reject(e)},C.prototype._settlePromiseCtx=function(a){this._settlePromise(a.promise,a.handler,a.receiver,a.value)},C.prototype._settlePromise0=function(a,b,c){var d=this._promise0,e=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(d,a,e,b)},C.prototype._clearCallbackDataAtIndex=function(a){var b=4*a-4;this[b+2]=this[b+3]=this[b+0]=this[b+1]=void 0},C.prototype._fulfill=function(a){var b=this._bitField;if(!((0x7010000&b)>>>16)){if(a===this){var c=d();return this._attachExtraTrace(c),this._reject(c)}this._setFulfilled(),this._rejectionHandler0=a,(65535&b)>0&&((0x8000000&b)!=0?this._settlePromises():l.settlePromises(this))}},C.prototype._reject=function(a){var b=this._bitField;if(!((0x7010000&b)>>>16)){if(this._setRejected(),this._fulfillmentHandler0=a,this._isFinal())return l.fatalError(a,i.isNode);(65535&b)>0?l.settlePromises(this):this._ensurePossibleRejectionHandled()}},C.prototype._fulfillPromises=function(a,b){for(var c=1;c<a;c++){var d=this._fulfillmentHandlerAt(c),e=this._promiseAt(c),f=this._receiverAt(c);this._clearCallbackDataAtIndex(c),this._settlePromise(e,d,f,b)}},C.prototype._rejectPromises=function(a,b){for(var c=1;c<a;c++){var d=this._rejectionHandlerAt(c),e=this._promiseAt(c),f=this._receiverAt(c);this._clearCallbackDataAtIndex(c),this._settlePromise(e,d,f,b)}},C.prototype._settlePromises=function(){var a=this._bitField,b=65535&a;if(b>0){if((0x1010000&a)!=0){var c=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,c,a),this._rejectPromises(b,c)}else{var d=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,d,a),this._fulfillPromises(b,d)}this._setLength(0)}this._clearCancellationData()},C.prototype._settledValue=function(){var a=this._bitField;return(0x2000000&a)!=0?this._rejectionHandler0:(0x1000000&a)!=0?this._fulfillmentHandler0:void 0},C.defer=C.pending=function(){return w.deprecated("Promise.defer","new Promise"),{promise:new C(p),resolve:D,reject:E}},i.notEnumerableProp(C,"_makeSelfResolutionError",d),c(59673)(C,p,s,f,w),c(83543)(C,p,s,w),c(18187)(C,t,f,w),c(5928)(C),c(99122)(C),c(62230)(C,t,s,p,l,b),C.Promise=C,C.version="3.4.7",c(96788)(C,t,f,s,p,w),c(83951)(C),c(58)(C,f,s,v,p,w),c(87236)(C,p,w),c(32232)(C,f,p,s,g,w),c(65668)(C),c(68318)(C,p),c(37012)(C,t,s,f),c(87021)(C,p,s,f),c(4204)(C,t,f,s,p,w),c(78591)(C,t,w),c(73374)(C,t,f),c(5040)(C,p),c(37857)(C,p),c(8216)(C),i.toFastProperties(C),i.toFastProperties(C.prototype),F({a:1}),F({b:2}),F({c:3}),F(1),F(function(){}),F(void 0),F(!1),F(new C(p)),w.setBounds(k.firstLineError,i.lastLineError),C}},77632:function(a,b,c){(function(){var b=function(a,b){for(var c in b)d.call(b,c)&&(a[c]=b[c]);function e(){this.constructor=a}return e.prototype=b.prototype,a.prototype=new e,a.__super__=b.prototype,a},d={}.hasOwnProperty;a.exports=function(a){function c(a,b){if(c.__super__.constructor.call(this,a),null==b)throw Error("Missing raw text. "+this.debugInfo());this.value=this.stringify.raw(b)}return b(c,a),c.prototype.clone=function(){return Object.create(this)},c.prototype.toString=function(a){return this.options.writer.set(a).raw(this)},c}(c(8142))}).call(this)},77880:(a,b,c)=>{var d=c(84906),e=b.types={document:"document",paragraph:"paragraph",run:"run",text:"text",tab:"tab",checkbox:"checkbox",hyperlink:"hyperlink",noteReference:"noteReference",image:"image",note:"note",commentReference:"commentReference",comment:"comment",table:"table",tableRow:"tableRow",tableCell:"tableCell",break:"break",bookmarkStart:"bookmarkStart"},f={baseline:"baseline",superscript:"superscript",subscript:"subscript"};function g(a){this._notes=d.indexBy(a,function(a){var b;return b=a.noteType,b+"-"+a.noteId})}g.prototype.resolve=function(a){var b;return this.findNoteByKey((b=a.noteType,b+"-"+a.noteId))},g.prototype.findNoteByKey=function(a){return this._notes[a]||null};function h(a){return{type:e.break,breakType:a}}b.document=b.Document=function(a,b){return b=b||{},{type:e.document,children:a,notes:b.notes||new g({}),comments:b.comments||[]}},b.paragraph=b.Paragraph=function(a,b){var c=(b=b||{}).indent||{};return{type:e.paragraph,children:a,styleId:b.styleId||null,styleName:b.styleName||null,numbering:b.numbering||null,alignment:b.alignment||null,indent:{start:c.start||null,end:c.end||null,firstLine:c.firstLine||null,hanging:c.hanging||null}}},b.run=b.Run=function(a,b){return b=b||{},{type:e.run,children:a,styleId:b.styleId||null,styleName:b.styleName||null,isBold:!!b.isBold,isUnderline:!!b.isUnderline,isItalic:!!b.isItalic,isStrikethrough:!!b.isStrikethrough,isAllCaps:!!b.isAllCaps,isSmallCaps:!!b.isSmallCaps,verticalAlignment:b.verticalAlignment||f.baseline,font:b.font||null,fontSize:b.fontSize||null,highlight:b.highlight||null}},b.text=b.Text=function(a){return{type:e.text,value:a}},b.tab=b.Tab=function(){return{type:e.tab}},b.checkbox=b.Checkbox=function(a){return{type:e.checkbox,checked:a.checked}},b.Hyperlink=function(a,b){return{type:e.hyperlink,children:a,href:b.href,anchor:b.anchor,targetFrame:b.targetFrame}},b.noteReference=b.NoteReference=function(a){return{type:e.noteReference,noteType:a.noteType,noteId:a.noteId}},b.Notes=g,b.Note=function(a){return{type:e.note,noteType:a.noteType,noteId:a.noteId,body:a.body}},b.commentReference=function(a){return{type:e.commentReference,commentId:a.commentId}},b.comment=function(a){return{type:e.comment,commentId:a.commentId,body:a.body,authorName:a.authorName,authorInitials:a.authorInitials}},b.Image=function(a){return{type:e.image,read:function(b){return b?a.readImage(b):a.readImage().then(function(a){return Buffer.from(a)})},readAsArrayBuffer:function(){return a.readImage()},readAsBase64String:function(){return a.readImage("base64")},readAsBuffer:function(){return a.readImage().then(function(a){return Buffer.from(a)})},altText:a.altText,contentType:a.contentType}},b.Table=function(a,b){return b=b||{},{type:e.table,children:a,styleId:b.styleId||null,styleName:b.styleName||null}},b.TableRow=function(a,b){return b=b||{},{type:e.tableRow,children:a,isHeader:b.isHeader||!1}},b.TableCell=function(a,b){return b=b||{},{type:e.tableCell,children:a,colSpan:null==b.colSpan?1:b.colSpan,rowSpan:null==b.rowSpan?1:b.rowSpan}},b.lineBreak=h("line"),b.pageBreak=h("page"),b.columnBreak=h("column"),b.BookmarkStart=function(a){return{type:e.bookmarkStart,name:a.name}},b.verticalAlignment=f},77936:(a,b,c)=>{"use strict";var d=c(10140),e=c(73315),f=c(72687),g=c(93051);b.createStringifyContext=function(a,b){let c,d=Object.assign({blockQuote:!0,commentString:f.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},a.schema.toStringOptions,b);switch(d.collectionStyle){case"block":c=!1;break;case"flow":c=!0;break;default:c=null}return{anchors:new Set,doc:a,flowCollectionPadding:d.flowCollectionPadding?" ":"",indent:"",indentStep:"number"==typeof d.indent?" ".repeat(d.indent):" ",inFlow:c,options:d}},b.stringify=function(a,b,c,f){let h;if(e.isPair(a))return a.toString(b,c,f);if(e.isAlias(a)){if(b.doc.directives)return a.toString(b);if(b.resolvedAliases?.has(a))throw TypeError("Cannot stringify circular structure without alias nodes");b.resolvedAliases?b.resolvedAliases.add(a):b.resolvedAliases=new Set([a]),a=a.resolve(b.doc)}let i=e.isNode(a)?a:b.doc.createNode(a,{onTagObj:a=>h=a});h??(h=function(a,b){let c,d;if(b.tag){let c=a.filter(a=>a.tag===b.tag);if(c.length>0)return c.find(a=>a.format===b.format)??c[0]}if(e.isScalar(b)){c=b.value;let e=a.filter(a=>a.identify?.(c));if(e.length>1){let a=e.filter(a=>a.test);a.length>0&&(e=a)}d=e.find(a=>a.format===b.format)??e.find(a=>!a.format)}else c=b,d=a.find(a=>a.nodeClass&&c instanceof a.nodeClass);if(!d){let a=c?.constructor?.name??(null===c?"null":typeof c);throw Error(`Tag not resolved for ${a} value`)}return d}(b.doc.schema.tags,i));let j=function(a,b,{anchors:c,doc:f}){if(!f.directives)return"";let g=[],h=(e.isScalar(a)||e.isCollection(a))&&a.anchor;h&&d.anchorIsValid(h)&&(c.add(h),g.push(`&${h}`));let i=a.tag??(b.default?null:b.tag);return i&&g.push(f.directives.tagString(i)),g.join(" ")}(i,h,b);j.length>0&&(b.indentAtStart=(b.indentAtStart??0)+j.length+1);let k="function"==typeof h.stringify?h.stringify(i,b,c,f):e.isScalar(i)?g.stringifyString(i,b,c,f):i.toString(b,c,f);return j?e.isScalar(i)||"{"===k[0]||"["===k[0]?`${j} ${k}`:`${j}
|
|
95
95
|
${b.indent}${k}`:k}},78591:(a,b,c)=>{"use strict";a.exports=function(a,b,d){var e=a.PromiseInspection;function f(a){this.constructor$(a)}c(22418).inherits(f,b),f.prototype._promiseResolved=function(a,b){return this._values[a]=b,++this._totalResolved>=this._length&&(this._resolve(this._values),!0)},f.prototype._promiseFulfilled=function(a,b){var c=new e;return c._bitField=0x2000000,c._settledValueField=a,this._promiseResolved(b,c)},f.prototype._promiseRejected=function(a,b){var c=new e;return c._bitField=0x1000000,c._settledValueField=a,this._promiseResolved(b,c)},a.settle=function(a){return d.deprecated(".settle()",".reflect()"),new f(a).promise()},a.prototype.settle=function(){return a.settle(this)}}},79571:(a,b,c)=>{"use strict";var d=c(19771);b.debug=function(a,...b){"debug"===a&&console.log(...b)},b.warn=function(a,b){("debug"===a||"warn"===a)&&("function"==typeof d.emitWarning?d.emitWarning(b):console.warn(b))}},79935:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.hex=b.dec=b.codePoint=void 0;for(var e=d(c(2541)),f={},g=String.fromCodePoint?String.fromCodePoint:function(a){return a<=65535?String.fromCharCode(a):String.fromCharCode(Math.floor((a-65536)/1024)+55296,(a-65536)%1024+56320)},h=0,i=e.default;h<i.length;h++){var j=i[h],k=parseInt(j["Unicode dec"],10),l={codePoint:k,string:g(k)};f[j["Typeface name"].toUpperCase()+"_"+j["Dingbat dec"]]=l}function m(a,b){return f[a.toUpperCase()+"_"+b]}b.codePoint=m,b.dec=function(a,b){return m(a,parseInt(b,10))},b.hex=function(a,b){return m(a,parseInt(b,16))}},80052:(a,b,c)=>{"use strict";a.exports=f;var d=c(14610),e=Object.create(c(22362));function f(a){if(!(this instanceof f))return new f(a);d.call(this,a)}e.inherits=c(50843),e.inherits(f,d),f.prototype._transform=function(a,b,c){c(null,a)}},80224:function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p=function(a,b){for(var c in b)q.call(b,c)&&(a[c]=b[c]);function d(){this.constructor=a}return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a},q={}.hasOwnProperty;i=c(2286),j=c(72240),b=c(92293),d=c(96321),l=c(16426),n=c(77632),o=c(46107),m=c(11781),k=c(16646),e=c(54107),f=c(9774),g=c(4907),h=c(54968),a.exports=function(a){function c(a){c.__super__.constructor.call(this,a)}return p(c,a),c.prototype.document=function(a){var b,c,e,f,g;for(this.textispresent=!1,f="",c=0,e=(g=a.children).length;c<e;c++)(b=g[c])instanceof k||(f+=(function(){switch(!1){case!(b instanceof i):return this.declaration(b);case!(b instanceof j):return this.docType(b);case!(b instanceof d):return this.comment(b);case!(b instanceof m):return this.processingInstruction(b);default:return this.element(b,0)}}).call(this));return this.pretty&&f.slice(-this.newline.length)===this.newline&&(f=f.slice(0,-this.newline.length)),f},c.prototype.attribute=function(a){return" "+a.name+'="'+a.value+'"'},c.prototype.cdata=function(a,b){return this.space(b)+"<![CDATA["+a.text+"]]>"+this.newline},c.prototype.comment=function(a,b){return this.space(b)+"\x3c!-- "+a.text+" --\x3e"+this.newline},c.prototype.declaration=function(a,b){var c;return c=this.space(b)+('<?xml version="'+a.version)+'"',null!=a.encoding&&(c+=' encoding="'+a.encoding+'"'),null!=a.standalone&&(c+=' standalone="'+a.standalone+'"'),c+=this.spacebeforeslash+"?>",c+=this.newline},c.prototype.docType=function(a,c){var i,j,k,l,n;if(c||(c=0),l=this.space(c)+"<!DOCTYPE "+a.root().name,a.pubID&&a.sysID?l+=' PUBLIC "'+a.pubID+'" "'+a.sysID+'"':a.sysID&&(l+=' SYSTEM "'+a.sysID+'"'),a.children.length>0){for(l+=" [",l+=this.newline,j=0,k=(n=a.children).length;j<k;j++)i=n[j],l+=(function(){switch(!1){case!(i instanceof e):return this.dtdAttList(i,c+1);case!(i instanceof f):return this.dtdElement(i,c+1);case!(i instanceof g):return this.dtdEntity(i,c+1);case!(i instanceof h):return this.dtdNotation(i,c+1);case!(i instanceof b):return this.cdata(i,c+1);case!(i instanceof d):return this.comment(i,c+1);case!(i instanceof m):return this.processingInstruction(i,c+1);default:throw Error("Unknown DTD node type: "+i.constructor.name)}}).call(this);l+="]"}return l+=this.spacebeforeslash+">",l+=this.newline},c.prototype.element=function(a,c){var e,f,g,h,i,j,p,r,s,t,u,v,w;for(p in c||(c=0),w=!1,this.textispresent?(this.newline="",this.pretty=!1):(this.newline=this.newlinedefault,this.pretty=this.prettydefault),r=(v=this.space(c))+"<"+a.name,s=a.attributes)q.call(s,p)&&(e=s[p],r+=this.attribute(e));if(0===a.children.length||a.children.every(function(a){return""===a.value}))this.allowEmpty?r+="></"+a.name+">"+this.newline:r+=this.spacebeforeslash+"/>"+this.newline;else if(this.pretty&&1===a.children.length&&null!=a.children[0].value)r+=">",r+=a.children[0].value,r+="</"+a.name+">"+this.newline;else{if(this.dontprettytextnodes){for(g=0,i=(t=a.children).length;g<i;g++)if(null!=(f=t[g]).value){this.textispresent++,w=!0;break}}for(this.textispresent&&(this.newline="",this.pretty=!1,v=this.space(c)),r+=">"+this.newline,h=0,j=(u=a.children).length;h<j;h++)f=u[h],r+=(function(){switch(!1){case!(f instanceof b):return this.cdata(f,c+1);case!(f instanceof d):return this.comment(f,c+1);case!(f instanceof l):return this.element(f,c+1);case!(f instanceof n):return this.raw(f,c+1);case!(f instanceof o):return this.text(f,c+1);case!(f instanceof m):return this.processingInstruction(f,c+1);case!(f instanceof k):return"";default:throw Error("Unknown XML node type: "+f.constructor.name)}}).call(this);w&&this.textispresent--,this.textispresent||(this.newline=this.newlinedefault,this.pretty=this.prettydefault),r+=v+"</"+a.name+">"+this.newline}return r},c.prototype.processingInstruction=function(a,b){var c;return c=this.space(b)+"<?"+a.target,a.value&&(c+=" "+a.value),c+=this.spacebeforeslash+"?>"+this.newline},c.prototype.raw=function(a,b){return this.space(b)+a.value+this.newline},c.prototype.text=function(a,b){return this.space(b)+a.value+this.newline},c.prototype.dtdAttList=function(a,b){var c;return c=this.space(b)+"<!ATTLIST "+a.elementName+" "+a.attributeName+" "+a.attributeType,"#DEFAULT"!==a.defaultValueType&&(c+=" "+a.defaultValueType),a.defaultValue&&(c+=' "'+a.defaultValue+'"'),c+=this.spacebeforeslash+">"+this.newline},c.prototype.dtdElement=function(a,b){return this.space(b)+"<!ELEMENT "+a.name+" "+a.value+this.spacebeforeslash+">"+this.newline},c.prototype.dtdEntity=function(a,b){var c;return c=this.space(b)+"<!ENTITY",a.pe&&(c+=" %"),c+=" "+a.name,a.value?c+=' "'+a.value+'"':(a.pubID&&a.sysID?c+=' PUBLIC "'+a.pubID+'" "'+a.sysID+'"':a.sysID&&(c+=' SYSTEM "'+a.sysID+'"'),a.nData&&(c+=" NDATA "+a.nData)),c+=this.spacebeforeslash+">"+this.newline},c.prototype.dtdNotation=function(a,b){var c;return c=this.space(b)+"<!NOTATION "+a.name,a.pubID&&a.sysID?c+=' PUBLIC "'+a.pubID+'" "'+a.sysID+'"':a.pubID?c+=' PUBLIC "'+a.pubID+'"':a.sysID&&(c+=' SYSTEM "'+a.sysID+'"'),c+=this.spacebeforeslash+">"+this.newline},c.prototype.openNode=function(a,b){var c,d,e,f;if(b||(b=0),!(a instanceof l))return e=this.space(b)+"<!DOCTYPE "+a.rootNodeName,a.pubID&&a.sysID?e+=' PUBLIC "'+a.pubID+'" "'+a.sysID+'"':a.sysID&&(e+=' SYSTEM "'+a.sysID+'"'),e+=(a.children?" [":">")+this.newline;for(d in e=this.space(b)+"<"+a.name,f=a.attributes)q.call(f,d)&&(c=f[d],e+=this.attribute(c));return e+((a.children?">":"/>")+this.newline)},c.prototype.closeNode=function(a,b){switch(b||(b=0),!1){case!(a instanceof l):return this.space(b)+"</"+a.name+">"+this.newline;case!(a instanceof j):return this.space(b)+"]>"+this.newline}},c}(c(72884))}).call(this)},80659:(a,b,c)=>{"use strict";a.exports=function(a,b,d,e,f){var g=c(22418);function h(c){var d=this._promise=new a(b);c instanceof a&&d._propagateFrom(c,3),d._setOnCancel(this),this._values=c,this._length=0,this._totalResolved=0,this._init(void 0,-2)}return g.isArray,g.inherits(h,f),h.prototype.length=function(){return this._length},h.prototype.promise=function(){return this._promise},h.prototype._init=function b(c,f){var h=d(this._values,this._promise);if(h instanceof a){var i=(h=h._target())._bitField;if(this._values=h,(0x3010000&i)==0)return this._promise._setAsyncGuaranteed(),h._then(b,this._reject,void 0,this,f);if((0x2000000&i)!=0)h=h._value();else if((0x1000000&i)!=0)return this._reject(h._reason());else return this._cancel()}if(null===(h=g.asArray(h))){var j=e("expecting an array or an iterable object but got "+g.classString(h)).reason();this._promise._rejectCallback(j,!1);return}0===h.length?-5===f?this._resolveEmptyArray():this._resolve(function(a){switch(a){case -2:return[];case -3:return{}}}(f)):this._iterate(h)},h.prototype._iterate=function(b){var c=this.getActualLength(b.length);this._length=c,this._values=this.shouldCopyValues()?Array(c):this._values;for(var e=this._promise,f=!1,g=null,h=0;h<c;++h){var i=d(b[h],e);g=i instanceof a?(i=i._target())._bitField:null,f?null!==g&&i.suppressUnhandledRejections():null!==g?(0x3010000&g)==0?(i._proxy(this,h),this._values[h]=i):f=(0x2000000&g)!=0?this._promiseFulfilled(i._value(),h):(0x1000000&g)!=0?this._promiseRejected(i._reason(),h):this._promiseCancelled(h):f=this._promiseFulfilled(i,h)}f||e._setAsyncGuaranteed()},h.prototype._isResolved=function(){return null===this._values},h.prototype._resolve=function(a){this._values=null,this._promise._fulfill(a)},h.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},h.prototype._reject=function(a){this._values=null,this._promise._rejectCallback(a,!1)},h.prototype._promiseFulfilled=function(a,b){return this._values[b]=a,++this._totalResolved>=this._length&&(this._resolve(this._values),!0)},h.prototype._promiseCancelled=function(){return this._cancel(),!0},h.prototype._promiseRejected=function(a){return this._totalResolved++,this._reject(a),!0},h.prototype._resultCancelled=function(){if(!this._isResolved()){var b=this._values;if(this._cancel(),b instanceof a)b.cancel();else for(var c=0;c<b.length;++c)b[c]instanceof a&&b[c].cancel()}},h.prototype.shouldCopyValues=function(){return!0},h.prototype.getActualLength=function(a){return a},h}},81408:(a,b,c)=>{b.Parser=c(41017).Parser,b.rules=c(25105),b.errors=c(89281),b.results=c(65869),b.StringSource=c(10128),b.Token=c(40787),b.bottomUp=c(90325),b.RegexTokeniser=c(87544).RegexTokeniser,b.rule=function(a){var b;return function(c){return b||(b=a()),b(c)}}},81833:(a,b,c)=>{"use strict";var d=c(26701);b.resolveBlockScalar=function(a,b,c){let e=b.offset,f=function({offset:a,props:b},c,d){if("block-scalar-header"!==b[0].type)return d(b[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:e}=b[0],f=e[0],g=0,h="",i=-1;for(let b=1;b<e.length;++b){let c=e[b];if(h||"-"!==c&&"+"!==c){let d=Number(c);!g&&d?g=d:-1===i&&(i=a+b)}else h=c}-1!==i&&d(i,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${e}`);let j=!1,k="",l=e.length;for(let a=1;a<b.length;++a){let e=b[a];switch(e.type){case"space":j=!0;case"newline":l+=e.source.length;break;case"comment":c&&!j&&d(e,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),l+=e.source.length,k=e.source.substring(1);break;case"error":d(e,"UNEXPECTED_TOKEN",e.message),l+=e.source.length;break;default:{let a=`Unexpected token in block scalar header: ${e.type}`;d(e,"UNEXPECTED_TOKEN",a);let b=e.source;b&&"string"==typeof b&&(l+=b.length)}}}return{mode:f,indent:g,chomp:h,comment:k,length:l}}(b,a.options.strict,c);if(!f)return{value:"",type:null,comment:"",range:[e,e,e]};let g=">"===f.mode?d.Scalar.BLOCK_FOLDED:d.Scalar.BLOCK_LITERAL,h=b.source?function(a){let b=a.split(/\n( *)/),c=b[0],d=c.match(/^( *)/),e=[d?.[1]?[d[1],c.slice(d[1].length)]:["",c]];for(let a=1;a<b.length;a+=2)e.push([b[a],b[a+1]]);return e}(b.source):[],i=h.length;for(let a=h.length-1;a>=0;--a){let b=h[a][1];if(""===b||"\r"===b)i=a;else break}if(0===i){let a="+"===f.chomp&&h.length>0?"\n".repeat(Math.max(1,h.length-1)):"",c=e+f.length;return b.source&&(c+=b.source.length),{value:a,type:g,comment:f.comment,range:[e,c,c]}}let j=b.indent+f.indent,k=b.offset+f.length,l=0;for(let b=0;b<i;++b){let[d,e]=h[b];if(""===e||"\r"===e)0===f.indent&&d.length>j&&(j=d.length);else{d.length<j&&c(k+d.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),0===f.indent&&(j=d.length),l=b,0!==j||a.atRoot||c(k,"BAD_INDENT","Block scalar values in collections must be indented");break}k+=d.length+e.length+1}for(let a=h.length-1;a>=i;--a)h[a][0].length>j&&(i=a+1);let m="",n="",o=!1;for(let a=0;a<l;++a)m+=h[a][0].slice(j)+"\n";for(let a=l;a<i;++a){let[b,e]=h[a];k+=b.length+e.length+1;let i="\r"===e[e.length-1];if(i&&(e=e.slice(0,-1)),e&&b.length<j){let a=f.indent?"explicit indentation indicator":"first line",d=`Block scalar lines must not be less indented than their ${a}`;c(k-e.length-(i?2:1),"BAD_INDENT",d),b=""}g===d.Scalar.BLOCK_LITERAL?(m+=n+b.slice(j)+e,n="\n"):b.length>j||" "===e[0]?(" "===n?n="\n":o||"\n"!==n||(n="\n\n"),m+=n+b.slice(j)+e,n="\n",o=!0):""===e?"\n"===n?m+="\n":n="\n":(m+=n+e,n=" ",o=!1)}switch(f.chomp){case"-":break;case"+":for(let a=i;a<h.length;++a)m+="\n"+h[a][0].slice(j);"\n"!==m[m.length-1]&&(m+="\n");break;default:m+="\n"}let p=e+f.length+b.source.length;return{value:m,type:g,comment:f.comment,range:[e,p,p]}}},83172:function(a){(function(){var b={}.hasOwnProperty;a.exports=function(){function a(a){var c,d,e,f,g;for(c in this.assertLegalChar=(f=this.assertLegalChar,g=this,function(){return f.apply(g,arguments)}),a||(a={}),this.noDoubleEncoding=a.noDoubleEncoding,d=a.stringify||{})b.call(d,c)&&(e=d[c],this[c]=e)}return a.prototype.eleName=function(a){return a=""+a||"",this.assertLegalChar(a)},a.prototype.eleText=function(a){return a=""+a||"",this.assertLegalChar(this.elEscape(a))},a.prototype.cdata=function(a){return a=(a=""+a||"").replace("]]>","]]]]><![CDATA[>"),this.assertLegalChar(a)},a.prototype.comment=function(a){if((a=""+a||"").match(/--/))throw Error("Comment text cannot contain double-hypen: "+a);return this.assertLegalChar(a)},a.prototype.raw=function(a){return""+a||""},a.prototype.attName=function(a){return""+a||""},a.prototype.attValue=function(a){return a=""+a||"",this.attEscape(a)},a.prototype.insTarget=function(a){return""+a||""},a.prototype.insValue=function(a){if((a=""+a||"").match(/\?>/))throw Error("Invalid processing instruction value: "+a);return a},a.prototype.xmlVersion=function(a){if(!(a=""+a||"").match(/1\.[0-9]+/))throw Error("Invalid version number: "+a);return a},a.prototype.xmlEncoding=function(a){if(!(a=""+a||"").match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/))throw Error("Invalid encoding: "+a);return a},a.prototype.xmlStandalone=function(a){return a?"yes":"no"},a.prototype.dtdPubID=function(a){return""+a||""},a.prototype.dtdSysID=function(a){return""+a||""},a.prototype.dtdElementValue=function(a){return""+a||""},a.prototype.dtdAttType=function(a){return""+a||""},a.prototype.dtdAttDefault=function(a){return null!=a?""+a||"":a},a.prototype.dtdEntityValue=function(a){return""+a||""},a.prototype.dtdNData=function(a){return""+a||""},a.prototype.convertAttKey="@",a.prototype.convertPIKey="?",a.prototype.convertTextKey="#text",a.prototype.convertCDataKey="#cdata",a.prototype.convertCommentKey="#comment",a.prototype.convertRawKey="#raw",a.prototype.assertLegalChar=function(a){var b;if(b=a.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/))throw Error("Invalid character in string: "+a+" at index "+b.index);return a},a.prototype.elEscape=function(a){var b;return b=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,a.replace(b,"&").replace(/</g,"<").replace(/>/g,">").replace(/\r/g,"
")},a.prototype.attEscape=function(a){var b;return b=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,a.replace(b,"&").replace(/</g,"<").replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
")},a}()}).call(this)},83543:a=>{"use strict";a.exports=function(a,b,c,d){var e=!1,f=function(a,b){this._reject(b)},g=function(a,b){b.promiseRejectionQueued=!0,b.bindingPromise._then(f,f,null,this,a)},h=function(a,b){(0x3010000&this._bitField)==0&&this._resolveCallback(b.target)},i=function(a,b){b.promiseRejectionQueued||this._reject(a)};a.prototype.bind=function(f){e||(e=!0,a.prototype._propagateFrom=d.propagateFromFunction(),a.prototype._boundValue=d.boundValueFunction());var j=c(f),k=new a(b);k._propagateFrom(this,1);var l=this._target();if(k._setBoundTo(j),j instanceof a){var m={promiseRejectionQueued:!1,promise:k,target:l,bindingPromise:j};l._then(b,g,void 0,k,m),j._then(h,i,void 0,k,m),k._setOnCancel(j)}else k._resolveCallback(l);return k},a.prototype._setBoundTo=function(a){void 0!==a?(this._bitField=2097152|this._bitField,this._boundTo=a):this._bitField=-2097153&this._bitField},a.prototype._isBound=function(){return(2097152&this._bitField)==2097152},a.bind=function(b,c){return a.resolve(c).bind(b)}}},83951:(a,b,c)=>{"use strict";var d=Object.create;if(d){var e=d(null),f=d(null);e[" size"]=f[" size"]=0}a.exports=function(a){var b=c(22418),d=b.canEvaluate,g=b.isIdentifier,h=function(a){return Function("ensureMethod"," \n return function(obj) { \n 'use strict' \n var len = this.length; \n ensureMethod(obj, 'methodName'); \n switch(len) { \n case 1: return obj.methodName(this[0]); \n case 2: return obj.methodName(this[0], this[1]); \n case 3: return obj.methodName(this[0], this[1], this[2]); \n case 0: return obj.methodName(); \n default: \n return obj.methodName.apply(obj, this); \n } \n }; \n ".replace(/methodName/g,a))(k)},i=function(a){return Function("obj"," \n 'use strict'; \n return obj.propertyName; \n ".replace("propertyName",a))},j=function(a,b,c){var d=c[a];if("function"!=typeof d){if(!g(a))return null;if(d=b(a),c[a]=d,c[" size"]++,c[" size"]>512){for(var e=Object.keys(c),f=0;f<256;++f)delete c[e[f]];c[" size"]=e.length-256}}return d};function k(c,d){var e;if(null!=c&&(e=c[d]),"function"!=typeof e){var f="Object "+b.classString(c)+" has no method '"+b.toString(d)+"'";throw new a.TypeError(f)}return e}function l(a){return k(a,this.pop()).apply(a,this)}function m(a){return a[this]}function n(a){var b=+this;return b<0&&(b=Math.max(0,b+a.length)),a[b]}a.prototype.call=function(a){for(var b=arguments.length,c=Array(Math.max(b-1,0)),f=1;f<b;++f)c[f-1]=arguments[f];if(d){var g=j(a,h,e);if(null!==g)return this._then(g,void 0,void 0,c,void 0)}return c.push(a),this._then(l,void 0,void 0,c,void 0)},a.prototype.get=function(a){var b;if("number"==typeof a)b=n;else if(d){var c=j(a,i,f);b=null!==c?c:m}else b=m;return this._then(b,void 0,void 0,a,void 0)}}},83989:(a,b)=>{"use strict";b.applyReviver=function a(b,c,d,e){if(e&&"object"==typeof e)if(Array.isArray(e))for(let c=0,d=e.length;c<d;++c){let d=e[c],f=a(b,e,String(c),d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}else if(e instanceof Map)for(let c of Array.from(e.keys())){let d=e.get(c),f=a(b,e,c,d);void 0===f?e.delete(c):f!==d&&e.set(c,f)}else if(e instanceof Set)for(let c of Array.from(e)){let d=a(b,e,c,c);void 0===d?e.delete(c):d!==c&&(e.delete(c),e.add(d))}else for(let[c,d]of Object.entries(e)){let f=a(b,e,c,d);void 0===f?delete e[c]:f!==d&&(e[c]=f)}return b.call(c,d,e)}},84127:(a,b,c)=>{"use strict";var d=c(13420),e=c(98658),f=c(53933),g=c(23342);function h(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}h.prototype={getContentWorker:function(){var a=new e(d.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new e(d.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},h.createWorkerFrom=function(a,b,c){return a.pipe(new f).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},a.exports=h},84183:(a,b,c)=>{"use strict";var d=c(73315),e=c(37521),f=c(26701),g=c(71397);function h(a,b){if(d.isSeq(a))for(let c=0;c<a.items.length;++c){let g=a.items[c];if(!d.isPair(g)){if(d.isMap(g)){g.items.length>1&&b("Each pair must have its own sequence indicator");let a=g.items[0]||new e.Pair(new f.Scalar(null));if(g.commentBefore&&(a.key.commentBefore=a.key.commentBefore?`${g.commentBefore}
|
|
96
96
|
${a.key.commentBefore}`:g.commentBefore),g.comment){let b=a.value??a.key;b.comment=b.comment?`${g.comment}
|
|
97
97
|
${b.comment}`:g.comment}g=a}a.items[c]=d.isPair(g)?g:new e.Pair(g)}}else b("Expected a sequence for this tag");return a}function i(a,b,c){let{replacer:d}=c,f=new g.YAMLSeq(a);f.tag="tag:yaml.org,2002:pairs";let h=0;if(b&&Symbol.iterator in Object(b))for(let a of b){let g,i;if("function"==typeof d&&(a=d.call(b,String(h++),a)),Array.isArray(a))if(2===a.length)g=a[0],i=a[1];else throw TypeError(`Expected [key, value] tuple: ${a}`);else if(a&&a instanceof Object){let b=Object.keys(a);if(1===b.length)i=a[g=b[0]];else throw TypeError(`Expected tuple with one key, not ${b.length} keys`)}else g=a;f.items.push(e.createPair(g,i,c))}return f}b.createPairs=i,b.pairs={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:h,createNode:i},b.resolvePairs=h},84906:(a,b,c)=>{"use strict";c.r(b),c.d(b,{VERSION:()=>e,after:()=>bv,all:()=>bP,allKeys:()=>an,any:()=>bQ,assign:()=>aF,before:()=>bw,bind:()=>bj,bindAll:()=>bm,chain:()=>bf,chunk:()=>co,clone:()=>aJ,collect:()=>bJ,compact:()=>cd,compose:()=>bu,constant:()=>Z,contains:()=>bR,countBy:()=>b3,create:()=>aI,debounce:()=>br,default:()=>ct,defaults:()=>aG,defer:()=>bp,delay:()=>bo,detect:()=>bG,difference:()=>cf,drop:()=>cb,each:()=>bI,escape:()=>a3,every:()=>bP,extend:()=>aE,extendOwn:()=>aF,filter:()=>bN,find:()=>bG,findIndex:()=>bA,findKey:()=>by,findLastIndex:()=>bB,findWhere:()=>bH,first:()=>ca,flatten:()=>ce,foldl:()=>bL,foldr:()=>bM,forEach:()=>bI,functions:()=>aC,get:()=>aO,groupBy:()=>b1,has:()=>aP,head:()=>ca,identity:()=>aQ,include:()=>bR,includes:()=>bR,indexBy:()=>b2,indexOf:()=>bE,initial:()=>b9,inject:()=>bL,intersection:()=>cj,invert:()=>aB,invoke:()=>bS,isArguments:()=>W,isArray:()=>T,isArrayBuffer:()=>K,isBoolean:()=>B,isDataView:()=>S,isDate:()=>G,isElement:()=>C,isEmpty:()=>ah,isEqual:()=>am,isError:()=>I,isFinite:()=>X,isFunction:()=>N,isMap:()=>av,isMatch:()=>ai,isNaN:()=>Y,isNull:()=>z,isNumber:()=>F,isObject:()=>y,isRegExp:()=>H,isSet:()=>ax,isString:()=>E,isSymbol:()=>J,isTypedArray:()=>ad,isUndefined:()=>A,isWeakMap:()=>aw,isWeakSet:()=>ay,iteratee:()=>aV,keys:()=>ag,last:()=>cc,lastIndexOf:()=>bF,map:()=>bJ,mapObject:()=>aX,matcher:()=>aR,matches:()=>aR,max:()=>bV,memoize:()=>bn,methods:()=>aC,min:()=>bW,mixin:()=>cq,negate:()=>bt,noop:()=>aY,now:()=>a0,object:()=>cm,omit:()=>b8,once:()=>bx,pairs:()=>aA,partial:()=>bi,partition:()=>b4,pick:()=>b7,pluck:()=>bT,property:()=>aS,propertyOf:()=>aZ,random:()=>a_,range:()=>cn,reduce:()=>bL,reduceRight:()=>bM,reject:()=>bO,rest:()=>cb,restArguments:()=>x,result:()=>bc,sample:()=>bZ,select:()=>bN,shuffle:()=>b$,size:()=>b5,some:()=>bQ,sortBy:()=>b_,sortedIndex:()=>bC,tail:()=>cb,take:()=>ca,tap:()=>aK,template:()=>bb,templateSettings:()=>a5,throttle:()=>bq,times:()=>a$,toArray:()=>bY,toPath:()=>aL,transpose:()=>ck,unescape:()=>a4,union:()=>ci,uniq:()=>ch,unique:()=>ch,uniqueId:()=>be,unzip:()=>ck,values:()=>az,where:()=>bU,without:()=>cg,wrap:()=>bs,zip:()=>cl});var d={};c.r(d),c.d(d,{VERSION:()=>e,after:()=>bv,all:()=>bP,allKeys:()=>an,any:()=>bQ,assign:()=>aF,before:()=>bw,bind:()=>bj,bindAll:()=>bm,chain:()=>bf,chunk:()=>co,clone:()=>aJ,collect:()=>bJ,compact:()=>cd,compose:()=>bu,constant:()=>Z,contains:()=>bR,countBy:()=>b3,create:()=>aI,debounce:()=>br,default:()=>cr,defaults:()=>aG,defer:()=>bp,delay:()=>bo,detect:()=>bG,difference:()=>cf,drop:()=>cb,each:()=>bI,escape:()=>a3,every:()=>bP,extend:()=>aE,extendOwn:()=>aF,filter:()=>bN,find:()=>bG,findIndex:()=>bA,findKey:()=>by,findLastIndex:()=>bB,findWhere:()=>bH,first:()=>ca,flatten:()=>ce,foldl:()=>bL,foldr:()=>bM,forEach:()=>bI,functions:()=>aC,get:()=>aO,groupBy:()=>b1,has:()=>aP,head:()=>ca,identity:()=>aQ,include:()=>bR,includes:()=>bR,indexBy:()=>b2,indexOf:()=>bE,initial:()=>b9,inject:()=>bL,intersection:()=>cj,invert:()=>aB,invoke:()=>bS,isArguments:()=>W,isArray:()=>T,isArrayBuffer:()=>K,isBoolean:()=>B,isDataView:()=>S,isDate:()=>G,isElement:()=>C,isEmpty:()=>ah,isEqual:()=>am,isError:()=>I,isFinite:()=>X,isFunction:()=>N,isMap:()=>av,isMatch:()=>ai,isNaN:()=>Y,isNull:()=>z,isNumber:()=>F,isObject:()=>y,isRegExp:()=>H,isSet:()=>ax,isString:()=>E,isSymbol:()=>J,isTypedArray:()=>ad,isUndefined:()=>A,isWeakMap:()=>aw,isWeakSet:()=>ay,iteratee:()=>aV,keys:()=>ag,last:()=>cc,lastIndexOf:()=>bF,map:()=>bJ,mapObject:()=>aX,matcher:()=>aR,matches:()=>aR,max:()=>bV,memoize:()=>bn,methods:()=>aC,min:()=>bW,mixin:()=>cq,negate:()=>bt,noop:()=>aY,now:()=>a0,object:()=>cm,omit:()=>b8,once:()=>bx,pairs:()=>aA,partial:()=>bi,partition:()=>b4,pick:()=>b7,pluck:()=>bT,property:()=>aS,propertyOf:()=>aZ,random:()=>a_,range:()=>cn,reduce:()=>bL,reduceRight:()=>bM,reject:()=>bO,rest:()=>cb,restArguments:()=>x,result:()=>bc,sample:()=>bZ,select:()=>bN,shuffle:()=>b$,size:()=>b5,some:()=>bQ,sortBy:()=>b_,sortedIndex:()=>bC,tail:()=>cb,take:()=>ca,tap:()=>aK,template:()=>bb,templateSettings:()=>a5,throttle:()=>bq,times:()=>a$,toArray:()=>bY,toPath:()=>aL,transpose:()=>ck,unescape:()=>a4,union:()=>ci,uniq:()=>ch,unique:()=>ch,uniqueId:()=>be,unzip:()=>ck,values:()=>az,where:()=>bU,without:()=>cg,wrap:()=>bs,zip:()=>cl});var e="1.13.8",f="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},g=Array.prototype,h=Object.prototype,i="u">typeof Symbol?Symbol.prototype:null,j=g.push,k=g.slice,l=h.toString,m=h.hasOwnProperty,n="u">typeof ArrayBuffer,o="u">typeof DataView,p=Array.isArray,q=Object.keys,r=Object.create,s=n&&ArrayBuffer.isView,t=isNaN,u=isFinite,v=!({toString:null}).propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function x(a,b){return b=null==b?a.length-1:+b,function(){for(var c=Math.max(arguments.length-b,0),d=Array(c),e=0;e<c;e++)d[e]=arguments[e+b];switch(b){case 0:return a.call(this,d);case 1:return a.call(this,arguments[0],d);case 2:return a.call(this,arguments[0],arguments[1],d)}var f=Array(b+1);for(e=0;e<b;e++)f[e]=arguments[e];return f[b]=d,a.apply(this,f)}}function y(a){var b=typeof a;return"function"===b||"object"===b&&!!a}function z(a){return null===a}function A(a){return void 0===a}function B(a){return!0===a||!1===a||"[object Boolean]"===l.call(a)}function C(a){return!!(a&&1===a.nodeType)}function D(a){var b="[object "+a+"]";return function(a){return l.call(a)===b}}let E=D("String"),F=D("Number"),G=D("Date"),H=D("RegExp"),I=D("Error"),J=D("Symbol"),K=D("ArrayBuffer");var L=D("Function"),M=f.document&&f.document.childNodes;"object"!=typeof Int8Array&&"function"!=typeof M&&(L=function(a){return"function"==typeof a});let N=L,O=D("Object");var P=o&&(!/\[native code\]/.test(String(DataView))||O(new DataView(new ArrayBuffer(8)))),Q="u">typeof Map&&O(new Map),R=D("DataView");let S=P?function(a){return null!=a&&N(a.getInt8)&&K(a.buffer)}:R,T=p||D("Array");function U(a,b){return null!=a&&m.call(a,b)}var V=D("Arguments");!function(){V(arguments)||(V=function(a){return U(a,"callee")})}();let W=V;function X(a){return!J(a)&&u(a)&&!isNaN(parseFloat(a))}function Y(a){return F(a)&&t(a)}function Z(a){return function(){return a}}function $(a){return function(b){var c=a(b);return"number"==typeof c&&c>=0&&c<=0x1fffffffffffff}}function _(a){return function(b){return null==b?void 0:b[a]}}let aa=_("byteLength"),ab=$(aa);var ac=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;let ad=n?function(a){return s?s(a)&&!S(a):ab(a)&&ac.test(l.call(a))}:Z(!1),ae=_("length");function af(a,b){b=function(a){for(var b={},c=a.length,d=0;d<c;++d)b[a[d]]=!0;return{contains:function(a){return!0===b[a]},push:function(c){return b[c]=!0,a.push(c)}}}(b);var c=w.length,d=a.constructor,e=N(d)&&d.prototype||h,f="constructor";for(U(a,f)&&!b.contains(f)&&b.push(f);c--;)(f=w[c])in a&&a[f]!==e[f]&&!b.contains(f)&&b.push(f)}function ag(a){if(!y(a))return[];if(q)return q(a);var b=[];for(var c in a)U(a,c)&&b.push(c);return v&&af(a,b),b}function ah(a){if(null==a)return!0;var b=ae(a);return"number"==typeof b&&(T(a)||E(a)||W(a))?0===b:0===ae(ag(a))}function ai(a,b){var c=ag(b),d=c.length;if(null==a)return!d;for(var e=Object(a),f=0;f<d;f++){var g=c[f];if(b[g]!==e[g]||!(g in e))return!1}return!0}function aj(a){return a instanceof aj?a:this instanceof aj?void(this._wrapped=a):new aj(a)}function ak(a){return new Uint8Array(a.buffer||a,a.byteOffset||0,aa(a))}aj.VERSION=e,aj.prototype.value=function(){return this._wrapped},aj.prototype.valueOf=aj.prototype.toJSON=aj.prototype.value,aj.prototype.toString=function(){return String(this._wrapped)};var al="[object DataView]";function am(a,b){for(var c=[{a:a,b:b}],d=[],e=[];c.length;){var f=c.pop();if(!0===f){d.pop(),e.pop();continue}if((a=f.a)===(b=f.b)){if(0!==a||1/a==1/b)continue;return!1}if(null==a||null==b)return!1;if(a!=a){if(b!=b)continue;return!1}var g=typeof a;if("function"!==g&&"object"!==g&&"object"!=typeof b)return!1;a instanceof aj&&(a=a._wrapped),b instanceof aj&&(b=b._wrapped);var h=l.call(a);if(h!==l.call(b))return!1;if(P&&"[object Object]"==h&&S(a)){if(!S(b))return!1;h=al}switch(h){case"[object RegExp]":case"[object String]":if(""+a==""+b)continue;return!1;case"[object Number]":c.push({a:+a,b:+b});continue;case"[object Date]":case"[object Boolean]":if(+a==+b)continue;return!1;case"[object Symbol]":if(i.valueOf.call(a)===i.valueOf.call(b))continue;return!1;case"[object ArrayBuffer]":case al:c.push({a:ak(a),b:ak(b)});continue}var j="[object Array]"===h;if(!j&&ad(a)){if(aa(a)!==aa(b))return!1;if(a.buffer===b.buffer&&a.byteOffset===b.byteOffset)continue;j=!0}if(!j){if("object"!=typeof a||"object"!=typeof b)return!1;var k=a.constructor,m=b.constructor;if(k!==m&&!(N(k)&&k instanceof k&&N(m)&&m instanceof m)&&"constructor"in a&&"constructor"in b)return!1}for(var n=d.length;n--;)if(d[n]===a){if(e[n]===b)break;return!1}if(!(n>=0))if(d.push(a),e.push(b),c.push(!0),j){if((n=a.length)!==b.length)return!1;for(;n--;)c.push({a:a[n],b:b[n]})}else{var o,p=ag(a);if(n=p.length,ag(b).length!==n)return!1;for(;n--;){if(!U(b,o=p[n]))return!1;c.push({a:a[o],b:b[o]})}}}return!0}function an(a){if(!y(a))return[];var b=[];for(var c in a)b.push(c);return v&&af(a,b),b}function ao(a){var b=ae(a);return function(c){if(null==c||ae(an(c)))return!1;for(var d=0;d<b;d++)if(!N(c[a[d]]))return!1;return a!==at||!N(c[ap])}}var ap="forEach",aq=["clear","delete"],ar=["get","has","set"],as=aq.concat(ap,ar),at=aq.concat(ar),au=["add"].concat(aq,ap,"has");let av=Q?ao(as):D("Map"),aw=Q?ao(at):D("WeakMap"),ax=Q?ao(au):D("Set"),ay=D("WeakSet");function az(a){for(var b=ag(a),c=b.length,d=Array(c),e=0;e<c;e++)d[e]=a[b[e]];return d}function aA(a){for(var b=ag(a),c=b.length,d=Array(c),e=0;e<c;e++)d[e]=[b[e],a[b[e]]];return d}function aB(a){for(var b={},c=ag(a),d=0,e=c.length;d<e;d++)b[a[c[d]]]=c[d];return b}function aC(a){var b=[];for(var c in a)N(a[c])&&b.push(c);return b.sort()}function aD(a,b){return function(c){var d=arguments.length;if(b&&(c=Object(c)),d<2||null==c)return c;for(var e=1;e<d;e++)for(var f=arguments[e],g=a(f),h=g.length,i=0;i<h;i++){var j=g[i];b&&void 0!==c[j]||(c[j]=f[j])}return c}}let aE=aD(an),aF=aD(ag),aG=aD(an,!0);function aH(a){if(!y(a))return{};if(r)return r(a);var b=function(){};b.prototype=a;var c=new b;return b.prototype=null,c}function aI(a,b){var c=aH(a);return b&&aF(c,b),c}function aJ(a){return y(a)?T(a)?a.slice():aE({},a):a}function aK(a,b){return b(a),a}function aL(a){return T(a)?a:[a]}function aM(a){return aj.toPath(a)}function aN(a,b){for(var c=b.length,d=0;d<c;d++){if(null==a)return;a=a[b[d]]}return c?a:void 0}function aO(a,b,c){var d=aN(a,aM(b));return A(d)?c:d}function aP(a,b){for(var c=(b=aM(b)).length,d=0;d<c;d++){var e=b[d];if(!U(a,e))return!1;a=a[e]}return!!c}function aQ(a){return a}function aR(a){return a=aF({},a),function(b){return ai(b,a)}}function aS(a){return a=aM(a),function(b){return aN(b,a)}}function aT(a,b,c){if(void 0===b)return a;switch(null==c?3:c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)}}return function(){return a.apply(b,arguments)}}function aU(a,b,c){return null==a?aQ:N(a)?aT(a,b,c):y(a)&&!T(a)?aR(a):aS(a)}function aV(a,b){return aU(a,b,1/0)}function aW(a,b,c){return aj.iteratee!==aV?aj.iteratee(a,b):aU(a,b,c)}function aX(a,b,c){b=aW(b,c);for(var d=ag(a),e=d.length,f={},g=0;g<e;g++){var h=d[g];f[h]=b(a[h],h,a)}return f}function aY(){}function aZ(a){return null==a?aY:function(b){return aO(a,b)}}function a$(a,b,c){var d=Array(Math.max(0,a));b=aT(b,c,1);for(var e=0;e<a;e++)d[e]=b(e);return d}function a_(a,b){return null==b&&(b=a,a=0),a+Math.floor(Math.random()*(b-a+1))}aj.toPath=aL,aj.iteratee=aV;let a0=Date.now||function(){return new Date().getTime()};function a1(a){var b=function(b){return a[b]},c="(?:"+ag(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}}let a2={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},a3=a1(a2),a4=a1(aB(a2)),a5=aj.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var a6=/(.)^/,a7={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},a8=/\\|'|\r|\n|\u2028|\u2029/g;function a9(a){return"\\"+a7[a]}var ba=/^\s*(\w|\$)+\s*$/;function bb(a,b,c){!b&&c&&(b=c);var d,e=RegExp([((b=aG({},b,aj.templateSettings)).escape||a6).source,(b.interpolate||a6).source,(b.evaluate||a6).source].join("|")+"|$","g"),f=0,g="__p+='";a.replace(e,function(b,c,d,e,h){return g+=a.slice(f,h).replace(a8,a9),f=h+b.length,c?g+="'+\n((__t=("+c+"))==null?'':_.escape(__t))+\n'":d?g+="'+\n((__t=("+d+"))==null?'':__t)+\n'":e&&(g+="';\n"+e+"\n__p+='"),b}),g+="';\n";var h=b.variable;if(h){if(!ba.test(h))throw Error("variable is not a bare identifier: "+h)}else g="with(obj||{}){\n"+g+"}\n",h="obj";g="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+g+"return __p;\n";try{d=Function(h,"_",g)}catch(a){throw a.source=g,a}var i=function(a){return d.call(this,a,aj)};return i.source="function("+h+"){\n"+g+"}",i}function bc(a,b,c){var d=(b=aM(b)).length;if(!d)return N(c)?c.call(a):c;for(var e=0;e<d;e++){var f=null==a?void 0:a[b[e]];void 0===f&&(f=c,e=d),a=N(f)?f.call(a):f}return a}var bd=0;function be(a){var b=++bd+"";return a?a+b:b}function bf(a){var b=aj(a);return b._chain=!0,b}function bg(a,b,c,d,e){if(!(d instanceof b))return a.apply(c,e);var f=aH(a.prototype),g=a.apply(f,e);return y(g)?g:f}var bh=x(function(a,b){var c=bh.placeholder,d=function(){for(var e=0,f=b.length,g=Array(f),h=0;h<f;h++)g[h]=b[h]===c?arguments[e++]:b[h];for(;e<arguments.length;)g.push(arguments[e++]);return bg(a,d,this,this,g)};return d});bh.placeholder=aj;let bi=bh,bj=x(function(a,b,c){if(!N(a))throw TypeError("Bind must be called on a function");var d=x(function(e){return bg(a,d,b,this,c.concat(e))});return d}),bk=$(ae);function bl(a,b,c){b||0===b||(b=1/0);for(var d=[],e=0,f=0,g=ae(a)||0,h=[];;){if(f>=g){if(!h.length)break;var i=h.pop();f=i.i,g=ae(a=i.v);continue}var j=a[f++];h.length>=b?d[e++]=j:bk(j)&&(T(j)||W(j))?(h.push({i:f,v:a}),f=0,g=ae(a=j)):c||(d[e++]=j)}return d}let bm=x(function(a,b){var c=(b=bl(b,!1,!1)).length;if(c<1)throw Error("bindAll must be passed function names");for(;c--;){var d=b[c];a[d]=bj(a[d],a)}return a});function bn(a,b){var c=function(d){var e=c.cache,f=""+(b?b.apply(this,arguments):d);return U(e,f)||(e[f]=a.apply(this,arguments)),e[f]};return c.cache={},c}let bo=x(function(a,b,c){return setTimeout(function(){return a.apply(null,c)},b)}),bp=bi(bo,aj,1);function bq(a,b,c){var d,e,f,g,h=0;c||(c={});var i=function(){h=!1===c.leading?0:a0(),d=null,g=a.apply(e,f),d||(e=f=null)},j=function(){var j=a0();h||!1!==c.leading||(h=j);var k=b-(j-h);return e=this,f=arguments,k<=0||k>b?(d&&(clearTimeout(d),d=null),h=j,g=a.apply(e,f),d||(e=f=null)):d||!1===c.trailing||(d=setTimeout(i,k)),g};return j.cancel=function(){clearTimeout(d),h=0,d=e=f=null},j}function br(a,b,c){var d,e,f,g,h,i=function(){var j=a0()-e;b>j?d=setTimeout(i,b-j):(d=null,c||(g=a.apply(h,f)),d||(f=h=null))},j=x(function(j){return h=this,f=j,e=a0(),!d&&(d=setTimeout(i,b),c&&(g=a.apply(h,f))),g});return j.cancel=function(){clearTimeout(d),d=f=h=null},j}function bs(a,b){return bi(b,a)}function bt(a){return function(){return!a.apply(this,arguments)}}function bu(){var a=arguments,b=a.length-1;return function(){for(var c=b,d=a[b].apply(this,arguments);c--;)d=a[c].call(this,d);return d}}function bv(a,b){return function(){if(--a<1)return b.apply(this,arguments)}}function bw(a,b){var c;return function(){return--a>0&&(c=b.apply(this,arguments)),a<=1&&(b=null),c}}let bx=bi(bw,2);function by(a,b,c){b=aW(b,c);for(var d,e=ag(a),f=0,g=e.length;f<g;f++)if(b(a[d=e[f]],d,a))return d}function bz(a){return function(b,c,d){c=aW(c,d);for(var e=ae(b),f=a>0?0:e-1;f>=0&&f<e;f+=a)if(c(b[f],f,b))return f;return -1}}let bA=bz(1),bB=bz(-1);function bC(a,b,c,d){for(var e=(c=aW(c,d,1))(b),f=0,g=ae(a);f<g;){var h=Math.floor((f+g)/2);c(a[h])<e?f=h+1:g=h}return f}function bD(a,b,c){return function(d,e,f){var g=0,h=ae(d);if("number"==typeof f)a>0?g=f>=0?f:Math.max(f+h,g):h=f>=0?Math.min(f+1,h):f+h+1;else if(c&&f&&h)return f=c(d,e),d[f]===e?f:-1;if(e!=e)return(f=b(k.call(d,g,h),Y))>=0?f+g:-1;for(f=a>0?g:h-1;f>=0&&f<h;f+=a)if(d[f]===e)return f;return -1}}let bE=bD(1,bA,bC),bF=bD(-1,bB);function bG(a,b,c){var d=(bk(a)?bA:by)(a,b,c);if(void 0!==d&&-1!==d)return a[d]}function bH(a,b){return bG(a,aR(b))}function bI(a,b,c){if(b=aT(b,c),bk(a))for(d=0,e=a.length;d<e;d++)b(a[d],d,a);else{var d,e,f=ag(a);for(d=0,e=f.length;d<e;d++)b(a[f[d]],f[d],a)}return a}function bJ(a,b,c){b=aW(b,c);for(var d=!bk(a)&&ag(a),e=(d||a).length,f=Array(e),g=0;g<e;g++){var h=d?d[g]:g;f[g]=b(a[h],h,a)}return f}function bK(a){var b=function(b,c,d,e){var f=!bk(b)&&ag(b),g=(f||b).length,h=a>0?0:g-1;for(e||(d=b[f?f[h]:h],h+=a);h>=0&&h<g;h+=a){var i=f?f[h]:h;d=c(d,b[i],i,b)}return d};return function(a,c,d,e){var f=arguments.length>=3;return b(a,aT(c,e,4),d,f)}}let bL=bK(1),bM=bK(-1);function bN(a,b,c){var d=[];return b=aW(b,c),bI(a,function(a,c,e){b(a,c,e)&&d.push(a)}),d}function bO(a,b,c){return bN(a,bt(aW(b)),c)}function bP(a,b,c){b=aW(b,c);for(var d=!bk(a)&&ag(a),e=(d||a).length,f=0;f<e;f++){var g=d?d[f]:f;if(!b(a[g],g,a))return!1}return!0}function bQ(a,b,c){b=aW(b,c);for(var d=!bk(a)&&ag(a),e=(d||a).length,f=0;f<e;f++){var g=d?d[f]:f;if(b(a[g],g,a))return!0}return!1}function bR(a,b,c,d){return bk(a)||(a=az(a)),("number"!=typeof c||d)&&(c=0),bE(a,b,c)>=0}let bS=x(function(a,b,c){var d,e;return N(b)?e=b:(d=(b=aM(b)).slice(0,-1),b=b[b.length-1]),bJ(a,function(a){var f=e;if(!f){if(d&&d.length&&(a=aN(a,d)),null==a)return;f=a[b]}return null==f?f:f.apply(a,c)})});function bT(a,b){return bJ(a,aS(b))}function bU(a,b){return bN(a,aR(b))}function bV(a,b,c){var d,e,f=-1/0,g=-1/0;if(null==b||"number"==typeof b&&"object"!=typeof a[0]&&null!=a){a=bk(a)?a:az(a);for(var h=0,i=a.length;h<i;h++)null!=(d=a[h])&&d>f&&(f=d)}else b=aW(b,c),bI(a,function(a,c,d){((e=b(a,c,d))>g||e===-1/0&&f===-1/0)&&(f=a,g=e)});return f}function bW(a,b,c){var d,e,f=1/0,g=1/0;if(null==b||"number"==typeof b&&"object"!=typeof a[0]&&null!=a){a=bk(a)?a:az(a);for(var h=0,i=a.length;h<i;h++)null!=(d=a[h])&&d<f&&(f=d)}else b=aW(b,c),bI(a,function(a,c,d){((e=b(a,c,d))<g||e===1/0&&f===1/0)&&(f=a,g=e)});return f}var bX=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function bY(a){return a?T(a)?k.call(a):E(a)?a.match(bX):bk(a)?bJ(a,aQ):az(a):[]}function bZ(a,b,c){if(null==b||c)return bk(a)||(a=az(a)),a[a_(a.length-1)];var d=bY(a),e=ae(d);b=Math.max(Math.min(b,e),0);for(var f=e-1,g=0;g<b;g++){var h=a_(g,f),i=d[g];d[g]=d[h],d[h]=i}return d.slice(0,b)}function b$(a){return bZ(a,1/0)}function b_(a,b,c){var d=0;return b=aW(b,c),bT(bJ(a,function(a,c,e){return{value:a,index:d++,criteria:b(a,c,e)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;if(c!==d){if(c>d||void 0===c)return 1;if(c<d||void 0===d)return -1}return a.index-b.index}),"value")}function b0(a,b){return function(c,d,e){var f=b?[[],[]]:{};return d=aW(d,e),bI(c,function(b,e){var g=d(b,e,c);a(f,b,g)}),f}}let b1=b0(function(a,b,c){U(a,c)?a[c].push(b):a[c]=[b]}),b2=b0(function(a,b,c){a[c]=b}),b3=b0(function(a,b,c){U(a,c)?a[c]++:a[c]=1}),b4=b0(function(a,b,c){a[+!c].push(b)},!0);function b5(a){return null==a?0:bk(a)?a.length:ag(a).length}function b6(a,b,c){return b in c}let b7=x(function(a,b){var c={},d=b[0];if(null==a)return c;N(d)?(b.length>1&&(d=aT(d,b[1])),b=an(a)):(d=b6,b=bl(b,!1,!1),a=Object(a));for(var e=0,f=b.length;e<f;e++){var g=b[e],h=a[g];d(h,g,a)&&(c[g]=h)}return c}),b8=x(function(a,b){var c,d=b[0];return N(d)?(d=bt(d),b.length>1&&(c=b[1])):(b=bJ(bl(b,!1,!1),String),d=function(a,c){return!bR(b,c)}),b7(a,d,c)});function b9(a,b,c){return k.call(a,0,Math.max(0,a.length-(null==b||c?1:b)))}function ca(a,b,c){return null==a||a.length<1?null==b||c?void 0:[]:null==b||c?a[0]:b9(a,a.length-b)}function cb(a,b,c){return k.call(a,null==b||c?1:b)}function cc(a,b,c){return null==a||a.length<1?null==b||c?void 0:[]:null==b||c?a[a.length-1]:cb(a,Math.max(0,a.length-b))}function cd(a){return bN(a,Boolean)}function ce(a,b){return bl(a,b,!1)}let cf=x(function(a,b){return b=bl(b,!0,!0),bN(a,function(a){return!bR(b,a)})}),cg=x(function(a,b){return cf(a,b)});function ch(a,b,c,d){B(b)||(d=c,c=b,b=!1),null!=c&&(c=aW(c,d));for(var e=[],f=[],g=0,h=ae(a);g<h;g++){var i=a[g],j=c?c(i,g,a):i;b&&!c?(g&&f===j||e.push(i),f=j):c?bR(f,j)||(f.push(j),e.push(i)):bR(e,i)||e.push(i)}return e}let ci=x(function(a){return ch(bl(a,!0,!0))});function cj(a){for(var b=[],c=arguments.length,d=0,e=ae(a);d<e;d++){var f,g=a[d];if(!bR(b,g)){for(f=1;f<c&&bR(arguments[f],g);f++);f===c&&b.push(g)}}return b}function ck(a){for(var b=a&&bV(a,ae).length||0,c=Array(b),d=0;d<b;d++)c[d]=bT(a,d);return c}let cl=x(ck);function cm(a,b){for(var c={},d=0,e=ae(a);d<e;d++)b?c[a[d]]=b[d]:c[a[d][0]]=a[d][1];return c}function cn(a,b,c){null==b&&(b=a||0,a=0),c||(c=b<a?-1:1);for(var d=Math.max(Math.ceil((b-a)/c),0),e=Array(d),f=0;f<d;f++,a+=c)e[f]=a;return e}function co(a,b){if(null==b||b<1)return[];for(var c=[],d=0,e=a.length;d<e;)c.push(k.call(a,d,d+=b));return c}function cp(a,b){return a._chain?aj(b).chain():b}function cq(a){return bI(aC(a),function(b){var c=aj[b]=a[b];aj.prototype[b]=function(){var a=[this._wrapped];return j.apply(a,arguments),cp(this,c.apply(aj,a))}}),aj}bI(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=g[a];aj.prototype[a]=function(){var c=this._wrapped;return null!=c&&(b.apply(c,arguments),("shift"===a||"splice"===a)&&0===c.length&&delete c[0]),cp(this,c)}}),bI(["concat","join","slice"],function(a){var b=g[a];aj.prototype[a]=function(){var a=this._wrapped;return null!=a&&(a=b.apply(a,arguments)),cp(this,a)}});let cr=aj;var cs=cq(d);cs._=cs;let ct=cs},85045:(a,b,c)=>{b.M=function(a){return{readXmlElement:function(b){return new l(a).readXmlElement(b)},readXmlElements:function(b){return new l(a).readXmlElements(b)}}};var d=c(79935),e=c(84906),f=c(77880),g=c(6560).Result,h=c(6560).warning,i=c(35976),j=c(50105),k=c(71422);function l(a){var b=[],c=[],g=[],l=a.relationships,u=a.contentTypes,v=a.docxFile,w=a.files,x=a.numbering,y=a.styles;function z(a){return t(a.map(A))}function A(a){if("element"===a.type){var b=G[a.name];if(b)return b(a);if(!Object.prototype.hasOwnProperty.call(n,a.name))return o([h("An unrecognised element was ignored: "+a.name)])}return p()}function B(a){if(!a)return!1;var b=a.attributes["w:val"];return"false"!==b&&"0"!==b}function C(a,b,c,d){var e=[],f=a.first(b),g=null,i=null;if(f&&(g=f.attributes["w:val"])){var j=d(g);j?i=j.name:e.push(h(c+" style with ID "+g+" was referenced but not defined in the document"))}return r({styleId:g,name:i},e)}function D(a){return function(a,b){var c=/^\s*HYPERLINK\s+(\\l\s+)?(?:"(.*)"|([^\\]\S*))/.exec(a);if(c){var d=void 0===c[2]?c[3]:c[2];return{type:"hyperlink",options:void 0===c[1]?{href:d}:{anchor:d}}}if(/\s*FORMCHECKBOX\s*/.exec(a)){var e=b.firstOrEmpty("w:ffData").firstOrEmpty("w:checkBox"),f=e.first("w:checked");return{type:"checkbox",checked:null==f?B(e.first("w:default")):B(f)}}return{type:"unknown"}}(c.join(""),"begin"===a.type?a.fldChar:i.emptyElement)}function E(a){return function(b){var c=b.attributes["w:id"];return q(new f.NoteReference({noteType:a,noteId:c}))}}function F(a){return z(a.children)}var G={"w:p":function(a){var b=a.firstOrEmpty("w:pPr");if(b.firstOrEmpty("w:rPr").first("w:del"))return a.children.forEach(function(a){g.push(a)}),p();var c=a.children;return g.length>0&&(c=g.concat(c),g=[]),s.map(C(b,"w:pStyle","Paragraph",y.findParagraphStyleById).map(function(a){var c;return{type:"paragraphProperties",styleId:a.styleId,styleName:a.name,alignment:b.firstOrEmpty("w:jc").attributes["w:val"],numbering:function(a,b,c){var d=b.firstOrEmpty("w:ilvl").attributes["w:val"],e=b.firstOrEmpty("w:numId").attributes["w:val"];if(void 0!==d&&void 0!==e)return c.findLevel(e,d);if(null!=a){var f=c.findLevelByParagraphStyleId(a);if(null!=f)return f}return void 0!==e?c.findLevel(e,"0"):null}(a.styleId,b.firstOrEmpty("w:numPr"),x),indent:{start:(c=b.firstOrEmpty("w:ind")).attributes["w:start"]||c.attributes["w:left"],end:c.attributes["w:end"]||c.attributes["w:right"],firstLine:c.attributes["w:firstLine"],hanging:c.attributes["w:hanging"]}}}),z(c),function(a,b){return new f.Paragraph(b,a)}).insertExtra()},"w:r":function(a){var c;return s.map(C(c=a.firstOrEmpty("w:rPr"),"w:rStyle","Run",y.findCharacterStyleById).map(function(a){var b,d=c.firstOrEmpty("w:sz").attributes["w:val"],e=/^[0-9]+$/.test(d)?parseInt(d,10)/2:null;return{type:"runProperties",styleId:a.styleId,styleName:a.name,verticalAlignment:c.firstOrEmpty("w:vertAlign").attributes["w:val"],font:c.firstOrEmpty("w:rFonts").attributes["w:ascii"],fontSize:e,isBold:B(c.first("w:b")),isUnderline:function(a){if(!a)return!1;var b=a.attributes["w:val"];return void 0!==b&&"false"!==b&&"0"!==b&&"none"!==b}(c.first("w:u")),isItalic:B(c.first("w:i")),isStrikethrough:B(c.first("w:strike")),isAllCaps:B(c.first("w:caps")),isSmallCaps:B(c.first("w:smallCaps")),highlight:(b=c.firstOrEmpty("w:highlight").attributes["w:val"])&&"none"!==b?b:null}}),z(a.children),function(a,c){var d,g=(d=e.last(b.filter(function(a){return"hyperlink"===a.type})))?d.options:null;return null!==g&&(c=[new f.Hyperlink(c,g)]),new f.Run(c,a)})},"w:fldChar":function(a){var d=a.attributes["w:fldCharType"];if("begin"===d)b.push({type:"begin",fldChar:a}),c=[];else if("end"===d){var e=b.pop();if("begin"===e.type&&(e=D(e)),"checkbox"===e.type)return q(f.checkbox({checked:e.checked}))}else if("separate"===d){var g=D(b.pop());b.push(g)}return p()},"w:instrText":function(a){return c.push(a.text()),p()},"w:t":function(a){return q(new f.Text(a.text()))},"w:tab":function(a){return q(new f.Tab)},"w:noBreakHyphen":function(){return q(new f.Text("‑"))},"w:softHyphen":function(a){return q(new f.Text("\xad"))},"w:sym":function(a){var b=a.attributes["w:font"],c=a.attributes["w:char"],e=d.hex(b,c);return(null==e&&/^F0..$/.test(c)&&(e=d.hex(b,c.substring(2))),null==e)?o([h("A w:sym element with an unsupported character was ignored: char "+c+" in font "+b)]):q(new f.Text(e.string))},"w:hyperlink":function(a){var b=a.attributes["r:id"],c=a.attributes["w:anchor"];return z(a.children).map(function(d){function g(b){var c=a.attributes["w:tgtFrame"]||null;return new f.Hyperlink(d,e.extend({targetFrame:c},b))}if(b){var h=l.findTargetByRelationshipId(b);return c&&(h=k.replaceFragment(h,c)),g({href:h})}return c?g({anchor:c}):d})},"w:tbl":function(a){var b=C(a.firstOrEmpty("w:tblPr"),"w:tblStyle","Table",y.findTableStyleById).map(function(a){return{styleId:a.styleId,styleName:a.name}});return z(a.children).flatMap(H).flatMap(function(a){return b.map(function(b){return f.Table(a,b)})})},"w:tr":function(a){var b=a.firstOrEmpty("w:trPr");if(b.first("w:del"))return p();var c=!!b.first("w:tblHeader");return z(a.children).map(function(a){return f.TableRow(a,{isHeader:c})})},"w:tc":function(a){return z(a.children).map(function(b){var c=a.firstOrEmpty("w:tcPr"),d=c.firstOrEmpty("w:gridSpan").attributes["w:val"],e=d?parseInt(d,10):1,g=f.TableCell(b,{colSpan:e});return g._vMerge=function(a){var b=a.first("w:vMerge");if(!b)return null;var c=b.attributes["w:val"];return"continue"===c||!c}(c),g})},"w:footnoteReference":E("footnote"),"w:endnoteReference":E("endnote"),"w:commentReference":function(a){return q(f.commentReference({commentId:a.attributes["w:id"]}))},"w:br":function(a){var b=a.attributes["w:type"];return null==b||"textWrapping"===b?q(f.lineBreak):"page"===b?q(f.pageBreak):"column"===b?q(f.columnBreak):o([h("Unsupported break type: "+b)])},"w:bookmarkStart":function(a){var b=a.attributes["w:name"];return"_GoBack"===b?p():q(new f.BookmarkStart({name:b}))},"mc:AlternateContent":function(a){return F(a.firstOrEmpty("mc:Fallback"))},"w:sdt":function(a){return z(a.firstOrEmpty("w:sdtContent").children).map(function(b){var c=a.firstOrEmpty("w:sdtPr").first("wordml:checkbox");if(!c)return b;var d,e=c.first("wordml:checked"),g=!!e&&"false"!==(d=e.attributes["wordml:val"])&&"0"!==d,h=f.checkbox({checked:g}),i=!1,k=b.map(j._elementsOfType(f.types.text,function(a){return a.value.length>0&&!i?(i=!0,h):a}));return i?k:h})},"w:ins":F,"w:object":F,"w:smartTag":F,"w:drawing":F,"w:pict":function(a){return F(a).toExtra()},"v:roundrect":F,"v:shape":F,"v:textbox":F,"w:txbxContent":F,"wp:inline":J,"wp:anchor":J,"v:imagedata":function(a){var b=a.attributes["r:id"];return b?M(L(b),a.attributes["o:title"]):o([h("A v:imagedata element without a relationship ID was ignored")])},"v:group":F,"v:rect":F};return{readXmlElement:A,readXmlElements:z};function H(a){if(e.any(a,function(a){return a.type!==f.types.tableRow}))return I(a),r(a,[h("unexpected non-row element in table, cell merging may be incorrect")]);if(e.any(a,function(a){return e.any(a.children,function(a){return a.type!==f.types.tableCell})}))return I(a),r(a,[h("unexpected non-cell element in table row, cell merging may be incorrect")]);var b={};return a.forEach(function(a){var c=0;a.children.forEach(function(a){a._vMerge&&b[c]?b[c].rowSpan++:(b[c]=a,a._vMerge=!1),c+=a.colSpan})}),a.forEach(function(a){a.children=a.children.filter(function(a){return!a._vMerge}),a.children.forEach(function(a){delete a._vMerge})}),q(a)}function I(a){a.forEach(function(a){j.getDescendantsOfType(a,f.types.tableCell).forEach(function(a){delete a._vMerge})})}function J(a){return t(a.getElementsByTagName("a:graphic").getElementsByTagName("a:graphicData").getElementsByTagName("pic:pic").getElementsByTagName("pic:blipFill").getElementsByTagName("a:blip").map(K.bind(null,a)))}function K(a,b){var c,d=a.firstOrEmpty("wp:docPr"),e=d.attributes,g=null==(c=e.descr)||/^\s*$/.test(c)?e.title:e.descr,i=function(a){var b=a.attributes["r:embed"],c=a.attributes["r:link"];if(b)return L(b);if(!c)return null;var d=l.findTargetByRelationshipId(c);return{path:d,read:w.read.bind(w,d)}}(b);return null===i?o([h("Could not find image file for a:blip element")]):M(i,g).map(function(a){var b=d.firstOrEmpty("a:hlinkClick").attributes["r:id"];if(!b)return a;var c=l.findTargetByRelationshipId(b);return new f.Hyperlink([a],{href:c})})}function L(a){var b=k.uriToZipEntryName("word",l.findTargetByRelationshipId(a));return{path:b,read:v.read.bind(v,b)}}function M(a,b){var c=u.findContentType(a.path);return r(f.Image({readImage:a.read,altText:b,contentType:c}),m[c]?[]:h("Image of type "+c+" is unlikely to display in web browsers"))}}var m={"image/png":!0,"image/gif":!0,"image/jpeg":!0,"image/svg+xml":!0,"image/tiff":!0},n={"office-word:wrap":!0,"v:shadow":!0,"v:shapetype":!0,"w:annotationRef":!0,"w:bookmarkEnd":!0,"w:sectPr":!0,"w:proofErr":!0,"w:lastRenderedPageBreak":!0,"w:commentRangeStart":!0,"w:commentRangeEnd":!0,"w:del":!0,"w:footnoteRef":!0,"w:endnoteRef":!0,"w:pPr":!0,"w:rPr":!0,"w:tblPr":!0,"w:tblGrid":!0,"w:trPr":!0,"w:tcPr":!0};function o(a){return new s(null,null,a)}function p(){return new s(null)}function q(a){return new s(a)}function r(a,b){return new s(a,null,b)}function s(a,b,c){this.value=a||[],this.extra=b||[],this._result=new g({element:this.value,extra:b},c),this.messages=this._result.messages}function t(a){var b=g.combine(e.pluck(a,"_result"));return new s(e.flatten(e.pluck(b.value,"element")),e.filter(e.flatten(e.pluck(b.value,"extra")),v),b.messages)}function u(a,b){return e.flatten([a,b])}function v(a){return a}s.prototype.toExtra=function(){return new s(null,u(this.extra,this.value),this.messages)},s.prototype.insertExtra=function(){var a=this.extra;return a&&a.length?new s(u(this.value,a),null,this.messages):this},s.prototype.map=function(a){var b=this._result.map(function(b){return a(b.element)});return new s(b.value,this.extra,b.messages)},s.prototype.flatMap=function(a){var b=this._result.flatMap(function(b){return a(b.element)._result});return new s(b.value.element,u(this.extra,b.value.extra),b.messages)},s.map=function(a,b,c){return new s(c(a.value,b.value),u(a.extra,b.extra),a.messages.concat(b.messages))}},86159:a=>{"use strict";a.exports=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A;c=a.state,d=a.next_in,z=a.input,e=d+(a.avail_in-5),f=a.next_out,A=a.output,g=f-(b-a.avail_out),h=f+(a.avail_out-257),i=c.dmax,j=c.wsize,k=c.whave,l=c.wnext,m=c.window,n=c.hold,o=c.bits,p=c.lencode,q=c.distcode,r=(1<<c.lenbits)-1,s=(1<<c.distbits)-1;e:do for(o<15&&(n+=z[d++]<<o,o+=8,n+=z[d++]<<o,o+=8),t=p[n&r];;){if(n>>>=u=t>>>24,o-=u,0==(u=t>>>16&255))A[f++]=65535&t;else if(16&u)for(v=65535&t,(u&=15)&&(o<u&&(n+=z[d++]<<o,o+=8),v+=n&(1<<u)-1,n>>>=u,o-=u),o<15&&(n+=z[d++]<<o,o+=8,n+=z[d++]<<o,o+=8),t=q[n&s];;){if(n>>>=u=t>>>24,o-=u,16&(u=t>>>16&255)){if(w=65535&t,o<(u&=15)&&(n+=z[d++]<<o,(o+=8)<u&&(n+=z[d++]<<o,o+=8)),(w+=n&(1<<u)-1)>i){a.msg="invalid distance too far back",c.mode=30;break e}if(n>>>=u,o-=u,w>(u=f-g)){if((u=w-u)>k&&c.sane){a.msg="invalid distance too far back",c.mode=30;break e}if(x=0,y=m,0===l){if(x+=j-u,u<v){v-=u;do A[f++]=m[x++];while(--u);x=f-w,y=A}}else if(l<u){if(x+=j+l-u,(u-=l)<v){v-=u;do A[f++]=m[x++];while(--u);if(x=0,l<v){v-=u=l;do A[f++]=m[x++];while(--u);x=f-w,y=A}}}else if(x+=l-u,u<v){v-=u;do A[f++]=m[x++];while(--u);x=f-w,y=A}for(;v>2;)A[f++]=y[x++],A[f++]=y[x++],A[f++]=y[x++],v-=3;v&&(A[f++]=y[x++],v>1&&(A[f++]=y[x++]))}else{x=f-w;do A[f++]=A[x++],A[f++]=A[x++],A[f++]=A[x++],v-=3;while(v>2);v&&(A[f++]=A[x++],v>1&&(A[f++]=A[x++]))}}else if((64&u)==0){t=q[(65535&t)+(n&(1<<u)-1)];continue}else{a.msg="invalid distance code",c.mode=30;break e}break}else if((64&u)==0){t=p[(65535&t)+(n&(1<<u)-1)];continue}else if(32&u){c.mode=12;break e}else{a.msg="invalid literal/length code",c.mode=30;break e}break}while(d<e&&f<h);d-=v=o>>3,o-=v<<3,n&=(1<<o)-1,a.next_in=d,a.next_out=f,a.avail_in=d<e?5+(e-d):5-(d-e),a.avail_out=f<h?257+(h-f):257-(f-h),c.hold=n,c.bits=o}},86229:(a,b,c)=>{"use strict";var d,e,f,g,h,i,j=c(22418),k=j.getNativePromise();if(j.isNode&&"u"<typeof MutationObserver){var l=global.setImmediate,m=process.nextTick;i=j.isRecentNode?function(a){l.call(global,a)}:function(a){m.call(process,a)}}else if("function"==typeof k&&"function"==typeof k.resolve){var n=k.resolve();i=function(a){n.then(a)}}else"u">typeof MutationObserver&&!("u">typeof window&&window.navigator&&(window.navigator.standalone||window.cordova))?(d=document.createElement("div"),e={attributes:!0},f=!1,g=document.createElement("div"),new MutationObserver(function(){d.classList.toggle("foo"),f=!1}).observe(g,e),h=function(){f||(f=!0,g.classList.toggle("foo"))},i=function(a){var b=new MutationObserver(function(){b.disconnect(),a()});b.observe(d,e),h()}):i="u">typeof setImmediate?function(a){setImmediate(a)}:"u">typeof setTimeout?function(a){setTimeout(a,0)}:function(){throw Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")};a.exports=i},86677:(a,b,c)=>{"use strict";var d=c(37521),e=c(30598),f=c(62325),g=c(12093),h=c(50099),i=c(6273);let j="All mapping items must start at the same column";b.resolveBlockMap=function({composeNode:a,composeEmptyNode:b},c,k,l,m){let n=new(m?.nodeClass??e.YAMLMap)(c.schema);c.atRoot&&(c.atRoot=!1);let o=k.offset,p=null;for(let e of k.items){let{start:m,key:q,sep:r,value:s}=e,t=f.resolveProps(m,{indicator:"explicit-key-ind",next:q??r?.[0],offset:o,onError:l,parentIndent:k.indent,startOnNewline:!0}),u=!t.found;if(u){if(q&&("block-seq"===q.type?l(o,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in q&&q.indent!==k.indent&&l(o,"BAD_INDENT",j)),!t.anchor&&!t.tag&&!r){p=t.end,t.comment&&(n.comment?n.comment+="\n"+t.comment:n.comment=t.comment);continue}(t.newlineAfterProp||g.containsNewline(q))&&l(q??m[m.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else t.found?.indent!==k.indent&&l(o,"BAD_INDENT",j);c.atKey=!0;let v=t.end,w=q?a(c,q,t,l):b(c,v,m,null,t,l);c.schema.compat&&h.flowIndentCheck(k.indent,q,l),c.atKey=!1,i.mapIncludes(c,n.items,w)&&l(v,"DUPLICATE_KEY","Map keys must be unique");let x=f.resolveProps(r??[],{indicator:"map-value-ind",next:s,offset:w.range[2],onError:l,parentIndent:k.indent,startOnNewline:!q||"block-scalar"===q.type});if(o=x.end,x.found){u&&(s?.type!=="block-map"||x.hasNewline||l(o,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),c.options.strict&&t.start<x.found.offset-1024&&l(w.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let f=s?a(c,s,x,l):b(c,o,r,null,x,l);c.schema.compat&&h.flowIndentCheck(k.indent,s,l),o=f.range[2];let g=new d.Pair(w,f);c.options.keepSourceTokens&&(g.srcToken=e),n.items.push(g)}else{u&&l(w.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),x.comment&&(w.comment?w.comment+="\n"+x.comment:w.comment=x.comment);let a=new d.Pair(w);c.options.keepSourceTokens&&(a.srcToken=e),n.items.push(a)}}return p&&p<o&&l(p,"IMPOSSIBLE","Map comment with trailing content"),n.range=[k.offset,o,p??o],n}},86936:(a,b,c)=>{var d=c(49472);b.DOMImplementation=d.DOMImplementation,b.XMLSerializer=d.XMLSerializer,b.DOMParser=c(33840).DOMParser},87021:(a,b,c)=>{"use strict";a.exports=function(a,b,d,e){var f=c(22418);function g(c,h){var i=d(c);if(i instanceof a)return i.then(function(a){return g(a,i)});if(null===(c=f.asArray(c)))return e("expecting an array or an iterable object but got "+f.classString(c));var j=new a(b);void 0!==h&&j._propagateFrom(h,3);for(var k=j._fulfill,l=j._reject,m=0,n=c.length;m<n;++m){var o=c[m];(void 0!==o||m in c)&&a.cast(o)._then(k,l,void 0,j,null)}return j}a.race=function(a){return g(a,void 0)},a.prototype.race=function(){return g(this,void 0)}}},87236:(a,b,c)=>{"use strict";a.exports=function(a,b,d){var e=c(22418),f=a.TimeoutError;function g(a){this.handle=a}g.prototype._resultCancelled=function(){clearTimeout(this.handle)};var h=function(a){return i(+this).thenReturn(a)},i=a.delay=function(c,e){var f,i;return void 0!==e?(f=a.resolve(e)._then(h,null,null,c,void 0),d.cancellation()&&e instanceof a&&f._setOnCancel(e)):(f=new a(b),i=setTimeout(function(){f._fulfill()},+c),d.cancellation()&&f._setOnCancel(new g(i)),f._captureStackTrace()),f._setAsyncGuaranteed(),f};a.prototype.delay=function(a){return i(a,this)};var j=function(a,b,c){var d;d="string"!=typeof b?b instanceof Error?b:new f("operation timed out"):new f(b),e.markAsOriginatingFromRejection(d),a._attachExtraTrace(d),a._reject(d),null!=c&&c.cancel()};function k(a){return clearTimeout(this.handle),a}function l(a){throw clearTimeout(this.handle),a}a.prototype.timeout=function(a,b){var c,e,f=new g(setTimeout(function(){c.isPending()&&j(c,b,e)},a*=1));return d.cancellation()?(c=(e=this.then())._then(k,l,void 0,f,void 0))._setOnCancel(f):c=this._then(k,l,void 0,f,void 0),c}}},87544:(a,b,c)=>{var d=c(40787),e=c(10128);b.RegexTokeniser=function(a){return a=a.map(function(a){return{name:a.name,regex:RegExp(a.regex.source,"g")}}),{tokenise:function(b,c){for(var f,g=new e(b,c),h=0,i=[];h<b.length;){var j=function(b,c,e){for(var f=0;f<a.length;f++){var g=a[f].regex;g.lastIndex=c;var h=g.exec(b);if(h){var i=c+h[0].length;if(h.index===c&&i>c){var j=h[1],k=new d(a[f].name,j,e.range(c,i));return{token:k,endIndex:i}}}}var i=c+1,k=new d("unrecognisedCharacter",b.substring(c,i),e.range(c,i));return{token:k,endIndex:i}}(b,h,g);h=j.endIndex,i.push(j.token)}return i.push((f=b,new d("end",null,g.range(f.length,f.length)))),i}}}},87720:(a,b,c)=>{var d=c(29021),e=c(1932),f=c(21820),g=c(33873).dirname,h=c(33873).resolve,i=c(21609),j=c(9920);b.s=function(a){if(!(a=a||{}).externalFileAccess)return{read:function(a){return j.reject(Error("could not read external image '"+a+"', external file access is disabled"))}};var b=a.relativeToFile?g(a.relativeToFile):null;return{read:function(a,c){var d,g;return(i(g=function(a,b){b||(b=f.platform());var c,d,g=e.parse(a);if("file:"===(c=g).protocol&&(!c.host||"localhost"===c.host)||!(d=g).protocol&&!d.host){var h=decodeURIComponent(g.path);return"win32"===b&&/^\/[a-z]:/i.test(h)?h.slice(1):h}throw Error("Could not convert URI to path: "+a)}(d=a))?j.resolve(g):b?j.resolve(h(b,g)):j.reject(Error("could not find external image '"+d+"', path of input document is unknown"))).then(function(d){return k(d,c).caught(function(c){var d="could not open external image: '"+a+"' (document directory: '"+b+"')\n"+c.message;return j.reject(Error(d))})})}}};var k=j.promisify(d.readFile.bind(d))},88075:(a,b,c)=>{"use strict";var d=c(26701),e=c(65695);let f={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:a=>"nan"===a.slice(-3).toLowerCase()?NaN:"-"===a[0]?-1/0:1/0,stringify:e.stringifyNumber};b.float={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(a){let b=new d.Scalar(parseFloat(a)),c=a.indexOf(".");return -1!==c&&"0"===a[a.length-1]&&(b.minFractionDigits=a.length-c-1),b},stringify:e.stringifyNumber},b.floatExp={identify:a=>"number"==typeof a,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:a=>parseFloat(a),stringify(a){let b=Number(a.value);return isFinite(b)?b.toExponential():e.stringifyNumber(a)}},b.floatNaN=f},89281:(a,b)=>{b.error=function(a){return new c(a)};var c=function(a){this.expected=a.expected,this.actual=a.actual,this._location=a.location};c.prototype.describe=function(){return(this._location?this._location.describe()+":\n":"")+"Expected "+this.expected+"\nbut got "+this.actual},c.prototype.lineNumber=function(){return this._location.lineNumber()},c.prototype.characterNumber=function(){return this._location.characterNumber()}},89584:(a,b,c)=>{var d=c(84906);function e(a,b,c){var e=d.flatten(d.values(b).map(function(a){return d.values(a.levels)})),f=d.indexBy(e.filter(function(a){return null!=a.paragraphStyleId}),"paragraphStyleId");return{findLevel:function d(e,f){var g=a[e];if(!g)return null;var h=b[g.abstractNumId];return h?null==h.numStyleLink?b[g.abstractNumId].levels[f]:d(c.findNumberingStyleById(h.numStyleLink).numId,f):null},findLevelByParagraphStyleId:function(a){return f[a]||null}}}b.readNumberingXml=function(a,b){if(!b||!b.styles)throw Error("styles is missing");var c,d,f=(c={},a.getElementsByTagName("w:abstractNum").forEach(function(a){var b,d,e;c[a.attributes["w:abstractNumId"]]=(d={},e=null,(b=a).getElementsByTagName("w:lvl").forEach(function(a){var b=a.attributes["w:ilvl"],c="bullet"!==a.firstOrEmpty("w:numFmt").attributes["w:val"],f=a.firstOrEmpty("w:pStyle").attributes["w:val"];void 0===b?e={isOrdered:c,level:"0",paragraphStyleId:f}:d[b]={isOrdered:c,level:b,paragraphStyleId:f}}),null!==e&&void 0===d[e.level]&&(d[e.level]=e),{levels:d,numStyleLink:b.firstOrEmpty("w:numStyleLink").attributes["w:val"]})}),c);return new e((d={},a.getElementsByTagName("w:num").forEach(function(a){var b=a.attributes["w:numId"],c=a.first("w:abstractNumId").attributes["w:val"];d[b]={abstractNumId:c}}),d),f,b.styles)},b.Numbering=e,b.defaultNumbering=new e({},{})},89745:(a,b,c)=>{"use strict";var d=c(21476),e=c(16312),f=function(a,b){var c=a||b,e=d[c];if(!e)throw Error(c+" is not a valid compression method !");return e};b.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(a){d.error(a)}return d}},90050:(a,b,c)=>{var d=c(84906);function e(a,b){return function(){return{start:a,end:b}}}function f(a){return function(b,c){return{start:c?"\n":"",end:c?"":"\n",list:{isOrdered:a.isOrdered,indent:c?c.indent+1:0,count:0}}}}for(var g={p:e("","\n\n"),br:e(""," \n"),ul:f({isOrdered:!1}),ol:f({isOrdered:!0}),li:function(a,b,c){b=b||{indent:0,isOrdered:!1,count:0},b.count++,c.hasClosed=!1;var d=b.isOrdered?b.count+".":"-";return{start:i(" ",b.indent)+d+" ",end:function(){if(!c.hasClosed)return c.hasClosed=!0,"\n"}}},strong:e("__","__"),em:e("*","*"),a:function(a){var b=a.href||"";return b?{start:"[",end:"]("+b+")",anchorPosition:"before"}:{}},img:function(a){var b=a.src||"",c=a.alt||"";return b||c?{start:""}:{}}},h=1;h<=6;h++)g["h"+h]=e(i("#",h)+" ","\n\n");function i(a,b){return Array(b+1).join(a)}b.writer=function(){var a=[],b=[],c=null,e={};function f(d,f){f=f||{};var i=(g[d]||function(){return{}})(f,c,e);b.push({end:i.end,list:c}),i.list&&(c=i.list);var j="before"===i.anchorPosition;j&&h(f),a.push(i.start||""),j||h(f)}function h(b){b.id&&a.push('<a id="'+b.id+'"></a>')}function i(e){var f=b.pop();c=f.list;var g=d.isFunction(f.end)?f.end():f.end;a.push(g||"")}return{asString:function(){return a.join("")},open:f,close:i,text:function(b){a.push(b.replace(/\\/g,"\\\\").replace(/([\`\*_\{\}\[\]\(\)\#\+\-\.\!])/g,"\\$1"))},selfClosing:function(a,b){f(a,b),i(a)}}}},90325:(a,b,c)=>{var d=c(25105),e=c(65869);function f(a){function b(){return a.map(function(a){return a.name})}return{apply:function(b){for(var c,f,g;;){if((g=b.remaining(),c=d.firstOf("infix",a.map(function(a){return a.rule}))(g)).isSuccess())f=b.source().to(c.source()),b=e.success(c.value()(b.value(),f),c.remaining(),f);else if(c.isFailure())return b;else return c}},untilExclusive:function(c){return new f(a.slice(0,b().indexOf(c)))},untilInclusive:function(c){return new f(a.slice(0,b().indexOf(c)+1))}}}b.parser=function(a,b,c){var e={rule:function(){return j(h)},leftAssociative:function(a){return j(h.untilExclusive(a))},rightAssociative:function(a){return j(h.untilInclusive(a))}},h=new f(c.map(function(a){return{name:a.name,rule:g(a.ruleBuilder.bind(null,e))}})),i=d.firstOf(a,b);function j(a){return k.bind(null,a)}function k(a,b){var c=i(b);return c.isSuccess()?a.apply(c):c}return e},b.infix=function(a,c){return{name:a,ruleBuilder:c,map:function(d){return b.infix(a,function(a){var b=c(a);return function(a){return b(a).map(function(a){return function(b,c){return d(b,a,c)}})}})}}};var g=function(a){var b;return function(c){return b||(b=a()),b(c)}}},90976:(a,b,c)=>{"use strict";var d=c(73315),e=c(3404);let f={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},g=a=>a.replace(/[!,[\]{}]/g,a=>f[a]);class h{constructor(a,b){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},h.defaultYaml,a),this.tags=Object.assign({},h.defaultTags,b)}clone(){let a=new h(this.yaml,this.tags);return a.docStart=this.docStart,a}atDocument(){let a=new h(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:h.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},h.defaultTags)}return a}add(a,b){this.atNextDocument&&(this.yaml={explicit:h.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},h.defaultTags),this.atNextDocument=!1);let c=a.trim().split(/[ \t]+/),d=c.shift();switch(d){case"%TAG":{if(2!==c.length&&(b(0,"%TAG directive should contain exactly two parts"),c.length<2))return!1;let[a,d]=c;return this.tags[a]=d,!0}case"%YAML":{if(this.yaml.explicit=!0,1!==c.length)return b(0,"%YAML directive should contain exactly one part"),!1;let[a]=c;if("1.1"===a||"1.2"===a)return this.yaml.version=a,!0;{let c=/^\d+\.\d+$/.test(a);return b(6,`Unsupported YAML version ${a}`,c),!1}}default:return b(0,`Unknown directive ${d}`,!0),!1}}tagName(a,b){if("!"===a)return"!";if("!"!==a[0])return b(`Not a valid tag: ${a}`),null;if("<"===a[1]){let c=a.slice(2,-1);return"!"===c||"!!"===c?(b(`Verbatim tags aren't resolved, so ${a} is invalid.`),null):(">"!==a[a.length-1]&&b("Verbatim tags must end with a >"),c)}let[,c,d]=a.match(/^(.*!)([^!]*)$/s);d||b(`The ${a} tag has no suffix`);let e=this.tags[c];if(e)try{return e+decodeURIComponent(d)}catch(a){return b(String(a)),null}return"!"===c?a:(b(`Could not resolve tag: ${a}`),null)}tagString(a){for(let[b,c]of Object.entries(this.tags))if(a.startsWith(c))return b+g(a.substring(c.length));return"!"===a[0]?a:`!<${a}>`}toString(a){let b,c=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],f=Object.entries(this.tags);if(a&&f.length>0&&d.isNode(a.contents)){let c={};e.visit(a.contents,(a,b)=>{d.isNode(b)&&b.tag&&(c[b.tag]=!0)}),b=Object.keys(c)}else b=[];for(let[d,e]of f)("!!"!==d||"tag:yaml.org,2002:"!==e)&&(!a||b.some(a=>a.startsWith(e)))&&c.push(`%TAG ${d} ${e}`);return c.join("\n")}}h.defaultYaml={explicit:!1,version:"1.2"},h.defaultTags={"!!":"tag:yaml.org,2002:"},b.Directives=h},92293:function(a,b,c){(function(){var b=function(a,b){for(var c in b)d.call(b,c)&&(a[c]=b[c]);function e(){this.constructor=a}return e.prototype=b.prototype,a.prototype=new e,a.__super__=b.prototype,a},d={}.hasOwnProperty;a.exports=function(a){function c(a,b){if(c.__super__.constructor.call(this,a),null==b)throw Error("Missing CDATA text. "+this.debugInfo());this.text=this.stringify.cdata(b)}return b(c,a),c.prototype.clone=function(){return Object.create(this)},c.prototype.toString=function(a){return this.options.writer.set(a).cdata(this)},c}(c(8142))}).call(this)},92761:a=>{"use strict";var b=Object.prototype.hasOwnProperty,c=Object.prototype.toString,d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=function(a){return"function"==typeof Array.isArray?Array.isArray(a):"[object Array]"===c.call(a)},g=function(a){if(!a||"[object Object]"!==c.call(a))return!1;var d,e=b.call(a,"constructor"),f=a.constructor&&a.constructor.prototype&&b.call(a.constructor.prototype,"isPrototypeOf");if(a.constructor&&!e&&!f)return!1;for(d in a);return void 0===d||b.call(a,d)},h=function(a,b){d&&"__proto__"===b.name?d(a,b.name,{enumerable:!0,configurable:!0,value:b.newValue,writable:!0}):a[b.name]=b.newValue},i=function(a,c){if("__proto__"===c){if(!b.call(a,c))return;else if(e)return e(a,c).value}return a[c]};a.exports=function a(){var b,c,d,e,j,k,l=arguments[0],m=1,n=arguments.length,o=!1;for("boolean"==typeof l&&(o=l,l=arguments[1]||{},m=2),(null==l||"object"!=typeof l&&"function"!=typeof l)&&(l={});m<n;++m)if(b=arguments[m],null!=b)for(c in b)d=i(l,c),l!==(e=i(b,c))&&(o&&e&&(g(e)||(j=f(e)))?(j?(j=!1,k=d&&f(d)?d:[]):k=d&&g(d)?d:{},h(l,{name:c,newValue:a(o,k,e)})):void 0!==e&&h(l,{name:c,newValue:e}));return l}},93012:(a,b,c)=>{var d=c(29021),e=c(9920),f=c(94117);b.openZip=function(a){return a.path?g(a.path).then(f.openArrayBuffer):a.buffer?e.resolve(f.openArrayBuffer(a.buffer)):a.file?e.resolve(a.file):e.reject(Error("Could not find file in options"))};var g=e.promisify(d.readFile)},93051:(a,b,c)=>{"use strict";let d;var e=c(26701),f=c(47413);let g=(a,b)=>({indentAtStart:b?a.indent.length:a.indentAtStart,lineWidth:a.options.lineWidth,minContentWidth:a.options.minContentWidth});function h(a,b){let c=JSON.stringify(a);if(b.options.doubleQuotedAsJSON)return c;let{implicitKey:d}=b,e=b.options.doubleQuotedMinMultiLineLength,h=b.indent||(/^(%|---|\.\.\.)/m.test(a)?" ":""),i="",j=0;for(let a=0,b=c[a];b;b=c[++a])if(" "===b&&"\\"===c[a+1]&&"n"===c[a+2]&&(i+=c.slice(j,a)+"\\ ",a+=1,j=a,b="\\"),"\\"===b)switch(c[a+1]){case"u":{i+=c.slice(j,a);let b=c.substr(a+2,4);switch(b){case"0000":i+="\\0";break;case"0007":i+="\\a";break;case"000b":i+="\\v";break;case"001b":i+="\\e";break;case"0085":i+="\\N";break;case"00a0":i+="\\_";break;case"2028":i+="\\L";break;case"2029":i+="\\P";break;default:"00"===b.substr(0,2)?i+="\\x"+b.substr(2):i+=c.substr(a,6)}a+=5,j=a+1}break;case"n":if(d||'"'===c[a+2]||c.length<e)a+=1;else{for(i+=c.slice(j,a)+"\n\n";"\\"===c[a+2]&&"n"===c[a+3]&&'"'!==c[a+4];)i+="\n",a+=2;i+=h," "===c[a+2]&&(i+="\\"),a+=1,j=a+1}break;default:a+=1}return i=j?i+c.slice(j):c,d?i:f.foldFlowLines(i,h,f.FOLD_QUOTED,g(b,!1))}function i(a,b){if(!1===b.options.singleQuote||b.implicitKey&&a.includes("\n")||/[ \t]\n|\n[ \t]/.test(a))return h(a,b);let c=b.indent||(/^(%|---|\.\.\.)/m.test(a)?" ":""),d="'"+a.replace(/'/g,"''").replace(/\n+/g,`$&
|