@brianlovin/hn-cli 0.1.0

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/dist/cli.js ADDED
@@ -0,0 +1,198 @@
1
+ #!/usr/bin/env bun
2
+ // @bun
3
+ import{Buffer as F_}from"buffer";import{EventEmitter as __}from"events";import{EventEmitter as V_}from"events";import{EventEmitter as h_}from"events";import{resolve as jq,dirname as Uq}from"path";import{fileURLToPath as Gq}from"url";var qY="./highlights-ghv9g403.scm";var gY="./tree-sitter-javascript-nd0q4pe9.wasm";var EY="./highlights-eq9cgrbb.scm";var FY="./tree-sitter-typescript-zxjzwt75.wasm";var KY="./highlights-r812a2qc.scm";var ZY="./tree-sitter-markdown-411r6y9b.wasm";var jY="./injections-73j83es3.scm";var UY="./highlights-x6tmsnaa.scm";var GY="./tree-sitter-markdown_inline-j5349f42.wasm";var YY="./highlights-hk7bwhj4.scm";var QY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as $Y,isAbsolute as C_,parse as k_}from"path";import{existsSync as D_}from"fs";import{basename as y_,join as b_}from"path";import XY from"os";import jg from"path";import{EventEmitter as d_}from"events";import{dlopen as l_,toArrayBuffer as XE,JSCallback as VY,ptr as qA}from"bun:ffi";import{existsSync as i_}from"fs";import{EventEmitter as t_}from"events";import{toArrayBuffer as vK,ptr as WY}from"bun:ffi";import{ptr as wg,toArrayBuffer as Sj}from"bun:ffi";import{ptr as q9,toArrayBuffer as g9}from"bun:ffi";import{EventEmitter as j9}from"events";import Q9 from"util";import{EventEmitter as _Q}from"events";import{Console as M9}from"console";import _9 from"fs";import $9 from"path";import yY from"util";import{Writable as X9}from"stream";import{EventEmitter as H9}from"events";import{EventEmitter as N9}from"events";var nM=Object.defineProperty;var rM=(A,q)=>{for(var g in q)nM(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})};var vY={};rM(vY,{default:()=>lK,Wrap:()=>fq,Unit:()=>Qq,PositionType:()=>mq,Overflow:()=>vq,NodeType:()=>Cj,MeasureMode:()=>cq,LogLevel:()=>Dg,Justify:()=>mA,Gutter:()=>Oq,FlexDirection:()=>qq,ExperimentalFeature:()=>mY,Errata:()=>kg,Edge:()=>t,Display:()=>Qg,Direction:()=>P6,Dimension:()=>wj,BoxSizing:()=>Bj,Align:()=>jA});var oM=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q<"u"?q:{});var E,F;g.ready=new Promise(function(G,Q){E=G,F=Q});var K=Object.assign({},g),Z="";typeof document<"u"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var j=g.print||console.log.bind(console),U=g.printErr||console.warn.bind(console);Object.assign(g,K),K=null;var O;g.wasmBinary&&(O=g.wasmBinary);var Y=g.noExitRuntime||!0;typeof WebAssembly!="object"&&RA("no native wasm support detected");var M,J=!1;function $(G,Q,X){X=Q+X;for(var H="";!(Q>=X);){var W=G[Q++];if(!W)break;if(W&128){var P=G[Q++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|P);else{var B=G[Q++]&63;W=(W&240)==224?(W&15)<<12|P<<6|B:(W&7)<<18|P<<12|B<<6|G[Q++]&63,65536>W?H+=String.fromCharCode(W):(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023))}}else H+=String.fromCharCode(W)}return H}var _,T,x,V,a,k,C,u,c;function R(){var G=M.buffer;_=G,g.HEAP8=T=new Int8Array(G),g.HEAP16=V=new Int16Array(G),g.HEAP32=k=new Int32Array(G),g.HEAPU8=x=new Uint8Array(G),g.HEAPU16=a=new Uint16Array(G),g.HEAPU32=C=new Uint32Array(G),g.HEAPF32=u=new Float32Array(G),g.HEAPF64=c=new Float64Array(G)}var z,n=[],m=[],gA=[];function FA(){var G=g.preRun.shift();n.unshift(G)}var YA=0,PA=null,bA=null;function RA(G){if(g.onAbort)g.onAbort(G);throw G="Aborted("+G+")",U(G),J=!0,G=new WebAssembly.RuntimeError(G+". Build with -sASSERTIONS for more info."),F(G),G}function Hq(G){return G.startsWith("data:application/octet-stream;base64,")}var zq="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!Hq(zq)){var DG=zq;zq=g.locateFile?g.locateFile(DG,Z):Z+DG}function yG(){var G=zq;try{if(G==zq&&O)return new Uint8Array(O);if(Hq(G))try{var Q=yM(G.slice(37)),X=new Uint8Array(Q.length);for(G=0;G<Q.length;++G)X[G]=Q.charCodeAt(G);var H=X}catch(P){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var W=H;if(W)return W;throw"both async and sync fetching of the wasm failed"}catch(P){RA(P)}}function $M(){return O||typeof fetch!="function"?Promise.resolve().then(function(){return yG()}):fetch(zq,{credentials:"same-origin"}).then(function(G){if(!G.ok)throw"failed to load wasm binary file at '"+zq+"'";return G.arrayBuffer()}).catch(function(){return yG()})}function Qj(G){for(;0<G.length;)G.shift()(g)}function bG(G){if(G===void 0)return"_unknown";G=G.replace(/[^a-zA-Z0-9_]/g,"$");var Q=G.charCodeAt(0);return 48<=Q&&57>=Q?"_"+G:G}function Oj(G,Q){return G=bG(G),function(){return Q.apply(this,arguments)}}var Fq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Jj=[];function IK(G){var Q=Error,X=Oj(G,function(H){this.name=G,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
4
+ `+H.replace(/^Error(:[^\n]*)?\n/,""))});return X.prototype=Object.create(Q.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var L6=void 0;function KA(G){throw new L6(G)}var OE=(G)=>{return G||KA("Cannot use deleted val. handle = "+G),Fq[G].value},aK=(G)=>{switch(G){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var Q=Jj.length?Jj.pop():Fq.length;return Fq[Q]={ga:1,value:G},Q}},vG=void 0,mG=void 0;function zA(G){for(var Q="";x[G];)Q+=mG[x[G++]];return Q}var JE=[];function Mj(){for(;JE.length;){var G=JE.pop();G.M.$=!1,G.delete()}}var ME=void 0,Bq={};function _j(G,Q){for(Q===void 0&&KA("ptr should not be undefined");G.R;)Q=G.ba(Q),G=G.R;return Q}var Bg={};function fG(G){G=rG(G);var Q=zA(G);return kq(G),Q}function cG(G,Q){var X=Bg[G];return X===void 0&&KA(Q+" has unknown type "+fG(G)),X}function PK(){}var $j=!1;function dG(G){--G.count.value,G.count.value===0&&(G.T?G.U.W(G.T):G.P.N.W(G.O))}function pG(G,Q,X){if(Q===X)return G;if(X.R===void 0)return null;return G=pG(G,Q,X.R),G===null?null:X.na(G)}var uG={};function XM(G,Q){return Q=_j(G,Q),Bq[Q]}var lG=void 0;function RK(G){throw new lG(G)}function SK(G,Q){return Q.P&&Q.O||RK("makeClassHandle requires ptr and ptrType"),!!Q.U!==!!Q.T&&RK("Both smartPtrType and smartPtr must be specified"),Q.count={value:1},V6(Object.create(G,{M:{value:Q}}))}function V6(G){if(typeof FinalizationRegistry>"u")return V6=(Q)=>Q,G;return $j=new FinalizationRegistry((Q)=>{dG(Q.M)}),V6=(Q)=>{var X=Q.M;return X.T&&$j.register(Q,{M:X},Q),Q},PK=(Q)=>{$j.unregister(Q)},V6(G)}var hK={};function Xj(G){for(;G.length;){var Q=G.pop();G.pop()(Q)}}function _E(G){return this.fromWireType(k[G>>2])}var W6={},zK={};function Kg(G,Q,X){function H(w){w=X(w),w.length!==G.length&&RK("Mismatched type converter count");for(var b=0;b<G.length;++b)wq(G[b],w[b])}G.forEach(function(w){zK[w]=Q});var W=Array(Q.length),P=[],B=0;Q.forEach((w,b)=>{Bg.hasOwnProperty(w)?W[b]=Bg[w]:(P.push(w),W6.hasOwnProperty(w)||(W6[w]=[]),W6[w].push(()=>{W[b]=Bg[w],++B,B===P.length&&H(W)}))}),P.length===0&&H(W)}function Hj(G){switch(G){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+G)}}function wq(G,Q,X={}){if(!("argPackAdvance"in Q))throw TypeError("registerType registeredInstance requires argPackAdvance");var H=Q.name;if(G||KA('type "'+H+'" must have a positive integer typeid pointer'),Bg.hasOwnProperty(G)){if(X.ua)return;KA("Cannot register type '"+H+"' twice")}Bg[G]=Q,delete zK[G],W6.hasOwnProperty(G)&&(Q=W6[G],delete W6[G],Q.forEach((W)=>W()))}function Lj(G){KA(G.M.P.N.name+" instance already deleted")}function Zg(){}function Vj(G,Q,X){if(G[Q].S===void 0){var H=G[Q];G[Q]=function(){return G[Q].S.hasOwnProperty(arguments.length)||KA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+G[Q].S+")!"),G[Q].S[arguments.length].apply(this,arguments)},G[Q].S=[],G[Q].S[H.Z]=H}}function HM(G,Q){g.hasOwnProperty(G)?(KA("Cannot register public name '"+G+"' twice"),Vj(g,G,G),g.hasOwnProperty(void 0)&&KA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[G].S[void 0]=Q):g[G]=Q}function LM(G,Q,X,H,W,P,B,w){this.name=G,this.constructor=Q,this.X=X,this.W=H,this.R=W,this.pa=P,this.ba=B,this.na=w,this.ja=[]}function Wj(G,Q,X){for(;Q!==X;)Q.ba||KA("Expected null or instance of "+X.name+", got an instance of "+Q.name),G=Q.ba(G),Q=Q.R;return G}function VM(G,Q){if(Q===null)return this.ea&&KA("null is not a valid "+this.name),0;return Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),Wj(Q.M.O,Q.M.P.N,this.N)}function WM(G,Q){if(Q===null){if(this.ea&&KA("null is not a valid "+this.name),this.da){var X=this.fa();return G!==null&&G.push(this.W,X),X}return 0}if(Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&Q.M.P.ca&&KA("Cannot convert argument of type "+(Q.M.U?Q.M.U.name:Q.M.P.name)+" to parameter type "+this.name),X=Wj(Q.M.O,Q.M.P.N,this.N),this.da)switch(Q.M.T===void 0&&KA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:Q.M.U===this?X=Q.M.T:KA("Cannot convert argument of type "+(Q.M.U?Q.M.U.name:Q.M.P.name)+" to parameter type "+this.name);break;case 1:X=Q.M.T;break;case 2:if(Q.M.U===this)X=Q.M.T;else{var H=Q.clone();X=this.xa(X,aK(function(){H.delete()})),G!==null&&G.push(this.W,X)}break;default:KA("Unsupporting sharing policy")}return X}function NM(G,Q){if(Q===null)return this.ea&&KA("null is not a valid "+this.name),0;return Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),Q.M.P.ca&&KA("Cannot convert argument of type "+Q.M.P.name+" to parameter type "+this.name),Wj(Q.M.O,Q.M.P.N,this.N)}function Cq(G,Q,X,H){this.name=G,this.N=Q,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,Q.R!==void 0?this.toWireType=WM:(this.toWireType=H?VM:NM,this.V=null)}function xM(G,Q){g.hasOwnProperty(G)||RK("Replacing nonexistant public symbol"),g[G]=Q,g[G].Z=void 0}function TM(G,Q){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),G.includes("j")){var H=g["dynCall_"+G];H=X&&X.length?H.apply(null,[Q].concat(X)):H.call(null,Q)}else H=z.get(Q).apply(null,X);return H}}function Kq(G,Q){G=zA(G);var X=G.includes("j")?TM(G,Q):z.get(Q);return typeof X!="function"&&KA("unknown function pointer with signature "+G+": "+Q),X}var iG=void 0;function BK(G,Q){function X(P){W[P]||Bg[P]||(zK[P]?zK[P].forEach(X):(H.push(P),W[P]=!0))}var H=[],W={};throw Q.forEach(X),new iG(G+": "+H.map(fG).join([", "]))}function Nj(G,Q,X,H,W){var P=Q.length;2>P&&KA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=Q[1]!==null&&X!==null,w=!1;for(X=1;X<Q.length;++X)if(Q[X]!==null&&Q[X].V===void 0){w=!0;break}var b=Q[0].name!=="void",y=P-2,p=Array(y),r=[],ZA=[];return function(){if(arguments.length!==y&&KA("function "+G+" called with "+arguments.length+" arguments, expected "+y+" args!"),ZA.length=0,r.length=B?2:1,r[0]=W,B){var LA=Q[1].toWireType(ZA,this);r[1]=LA}for(var GA=0;GA<y;++GA)p[GA]=Q[GA+2].toWireType(ZA,arguments[GA]),r.push(p[GA]);if(GA=H.apply(null,r),w)Xj(ZA);else for(var pA=B?1:2;pA<Q.length;pA++){var Zq=pA===1?LA:p[pA-2];Q[pA].V!==null&&Q[pA].V(Zq)}return LA=b?Q[0].fromWireType(GA):void 0,LA}}function xj(G,Q){for(var X=[],H=0;H<G;H++)X.push(C[Q+4*H>>2]);return X}function Tj(G){4<G&&--Fq[G].ga===0&&(Fq[G]=void 0,Jj.push(G))}function Ij(G){if(G===null)return"null";var Q=typeof G;return Q==="object"||Q==="array"||Q==="function"?G.toString():""+G}function IM(G,Q){switch(Q){case 2:return function(X){return this.fromWireType(u[X>>2])};case 3:return function(X){return this.fromWireType(c[X>>3])};default:throw TypeError("Unknown float type: "+G)}}function aM(G,Q,X){switch(Q){case 0:return X?function(H){return T[H]}:function(H){return x[H]};case 1:return X?function(H){return V[H>>1]}:function(H){return a[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw TypeError("Unknown integer type: "+G)}}function PM(G,Q){for(var X="",H=0;!(H>=Q/2);++H){var W=V[G+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function RM(G,Q,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=Q;X=X<2*G.length?X/2:G.length;for(var W=0;W<X;++W)V[Q>>1]=G.charCodeAt(W),Q+=2;return V[Q>>1]=0,Q-H}function SM(G){return 2*G.length}function hM(G,Q){for(var X=0,H="";!(X>=Q/4);){var W=k[G+4*X>>2];if(W==0)break;++X,65536<=W?(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023)):H+=String.fromCharCode(W)}return H}function zM(G,Q,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=Q;X=H+X-4;for(var W=0;W<G.length;++W){var P=G.charCodeAt(W);if(55296<=P&&57343>=P){var B=G.charCodeAt(++W);P=65536+((P&1023)<<10)|B&1023}if(k[Q>>2]=P,Q+=4,Q+4>X)break}return k[Q>>2]=0,Q-H}function BM(G){for(var Q=0,X=0;X<G.length;++X){var H=G.charCodeAt(X);55296<=H&&57343>=H&&++X,Q+=4}return Q}var wM={};function tG(G){var Q=wM[G];return Q===void 0?zA(G):Q}var wK=[];function CM(G){var Q=wK.length;return wK.push(G),Q}function kM(G,Q){for(var X=Array(G),H=0;H<G;++H)X[H]=cG(C[Q+4*H>>2],"parameter "+H);return X}var sG=[],DM=[null,[],[]];L6=g.BindingError=IK("BindingError"),g.count_emval_handles=function(){for(var G=0,Q=5;Q<Fq.length;++Q)Fq[Q]!==void 0&&++G;return G},g.get_first_emval=function(){for(var G=5;G<Fq.length;++G)if(Fq[G]!==void 0)return Fq[G];return null},vG=g.PureVirtualError=IK("PureVirtualError");for(var nG=Array(256),CK=0;256>CK;++CK)nG[CK]=String.fromCharCode(CK);mG=nG,g.getInheritedInstanceCount=function(){return Object.keys(Bq).length},g.getLiveInheritedInstances=function(){var G=[],Q;for(Q in Bq)Bq.hasOwnProperty(Q)&&G.push(Bq[Q]);return G},g.flushPendingDeletes=Mj,g.setDelayFunction=function(G){ME=G,JE.length&&ME&&ME(Mj)},lG=g.InternalError=IK("InternalError"),Zg.prototype.isAliasOf=function(G){if(!(this instanceof Zg&&G instanceof Zg))return!1;var Q=this.M.P.N,X=this.M.O,H=G.M.P.N;for(G=G.M.O;Q.R;)X=Q.ba(X),Q=Q.R;for(;H.R;)G=H.ba(G),H=H.R;return Q===H&&X===G},Zg.prototype.clone=function(){if(this.M.O||Lj(this),this.M.aa)return this.M.count.value+=1,this;var G=V6,Q=Object,X=Q.create,H=Object.getPrototypeOf(this),W=this.M;return G=G(X.call(Q,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),G.M.count.value+=1,G.M.$=!1,G},Zg.prototype.delete=function(){this.M.O||Lj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),PK(this),dG(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Zg.prototype.isDeleted=function(){return!this.M.O},Zg.prototype.deleteLater=function(){return this.M.O||Lj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),JE.push(this),JE.length===1&&ME&&ME(Mj),this.M.$=!0,this},Cq.prototype.qa=function(G){return this.ka&&(G=this.ka(G)),G},Cq.prototype.ha=function(G){this.W&&this.W(G)},Cq.prototype.argPackAdvance=8,Cq.prototype.readValueFromPointer=_E,Cq.prototype.deleteObject=function(G){if(G!==null)G.delete()},Cq.prototype.fromWireType=function(G){function Q(){return this.da?SK(this.N.X,{P:this.wa,O:X,U:this,T:G}):SK(this.N.X,{P:this,O:G})}var X=this.qa(G);if(!X)return this.ha(G),null;var H=XM(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=G,H.clone();return H=H.clone(),this.ha(G),H}if(H=this.N.pa(X),H=uG[H],!H)return Q.call(this);H=this.ca?H.la:H.pointerType;var W=pG(X,this.N,H.N);return W===null?Q.call(this):this.da?SK(H.N.X,{P:H,O:W,U:this,T:G}):SK(H.N.X,{P:H,O:W})},iG=g.UnboundTypeError=IK("UnboundTypeError");var yM=typeof atob=="function"?atob:function(G){var Q="",X=0;G=G.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|P>>2;var w=(P&3)<<6|B;Q+=String.fromCharCode(H),P!==64&&(Q+=String.fromCharCode(W)),B!==64&&(Q+=String.fromCharCode(w))}while(X<G.length);return Q},bM={l:function(G,Q,X,H){RA("Assertion failed: "+(G?$(x,G):"")+", at: "+[Q?Q?$(x,Q):"":"unknown filename",X,H?H?$(x,H):"":"unknown function"])},q:function(G,Q,X){G=zA(G),Q=cG(Q,"wrapper"),X=OE(X);var H=[].slice,W=Q.N,P=W.X,B=W.R.X,w=W.R.constructor;G=Oj(G,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new vG("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:P}),this.__construct.apply(this,H.call(arguments))}),P.__construct=function(){this===P&&KA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));PK(y);var p=y.M;y.notifyOnDestruction(),p.aa=!0,Object.defineProperties(this,{M:{value:p}}),V6(this),y=p.O,y=_j(W,y),Bq.hasOwnProperty(y)?KA("Tried to register registered instance: "+y):Bq[y]=this},P.__destruct=function(){this===P&&KA("Pass correct 'this' to __destruct"),PK(this);var y=this.M.O;y=_j(W,y),Bq.hasOwnProperty(y)?delete Bq[y]:KA("Tried to unregister unregistered instance: "+y)},G.prototype=Object.create(P);for(var b in X)G.prototype[b]=X[b];return aK(G)},j:function(G){var Q=hK[G];delete hK[G];var{fa:X,W:H,ia:W}=Q,P=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Kg([G],P,(B)=>{var w={};return W.forEach((b,y)=>{var p=B[y],r=b.ra,ZA=b.sa,LA=B[y+W.length],GA=b.ya,pA=b.Aa;w[b.oa]={read:(Zq)=>p.fromWireType(r(ZA,Zq)),write:(Zq,$E)=>{var Dq=[];GA(pA,Zq,LA.toWireType(Dq,$E)),Xj(Dq)}}}),[{name:Q.name,fromWireType:function(b){var y={},p;for(p in w)y[p]=w[p].read(b);return H(b),y},toWireType:function(b,y){for(var p in w)if(!(p in y))throw TypeError('Missing field: "'+p+'"');var r=X();for(p in w)w[p].write(r,y[p]);return b!==null&&b.push(H,r),r},argPackAdvance:8,readValueFromPointer:_E,V:H}]})},v:function(){},B:function(G,Q,X,H,W){var P=Hj(X);Q=zA(Q),wq(G,{name:Q,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=T;else if(X===2)w=V;else if(X===4)w=k;else throw TypeError("Unknown boolean type size: "+Q);return this.fromWireType(w[B>>P])},V:null})},f:function(G,Q,X,H,W,P,B,w,b,y,p,r,ZA){p=zA(p),P=Kq(W,P),w&&(w=Kq(B,w)),y&&(y=Kq(b,y)),ZA=Kq(r,ZA);var LA=bG(p);HM(LA,function(){BK("Cannot construct "+p+" due to unbound types",[H])}),Kg([G,Q,X],H?[H]:[],function(GA){if(GA=GA[0],H)var pA=GA.N,Zq=pA.X;else Zq=Zg.prototype;GA=Oj(LA,function(){if(Object.getPrototypeOf(this)!==$E)throw new L6("Use 'new' to construct "+p);if(Dq.Y===void 0)throw new L6(p+" has no accessible constructor");var AY=Dq.Y[arguments.length];if(AY===void 0)throw new L6("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Dq.Y).toString()+") parameters instead!");return AY.apply(this,arguments)});var $E=Object.create(Zq,{constructor:{value:GA}});GA.prototype=$E;var Dq=new LM(p,GA,$E,ZA,pA,P,w,y);pA=new Cq(p,Dq,!0,!1),Zq=new Cq(p+"*",Dq,!1,!1);var eG=new Cq(p+" const*",Dq,!1,!0);return uG[G]={pointerType:Zq,la:eG},xM(LA,GA),[pA,Zq,eG]})},d:function(G,Q,X,H,W,P,B){var w=xj(X,H);Q=zA(Q),P=Kq(W,P),Kg([],[G],function(b){function y(){BK("Cannot call "+p+" due to unbound types",w)}b=b[0];var p=b.name+"."+Q;Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]);var r=b.N.constructor;return r[Q]===void 0?(y.Z=X-1,r[Q]=y):(Vj(r,Q,p),r[Q].S[X-1]=y),Kg([],w,function(ZA){return ZA=Nj(p,[ZA[0],null].concat(ZA.slice(1)),null,P,B),r[Q].S===void 0?(ZA.Z=X-1,r[Q]=ZA):r[Q].S[X-1]=ZA,[]}),[]})},p:function(G,Q,X,H,W,P){0<Q||RA();var B=xj(Q,X);W=Kq(H,W),Kg([],[G],function(w){w=w[0];var b="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[Q-1]!==void 0)throw new L6("Cannot register multiple constructors with identical number of parameters ("+(Q-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[Q-1]=()=>{BK("Cannot construct "+w.name+" due to unbound types",B)},Kg([],B,function(y){return y.splice(1,0,null),w.N.Y[Q-1]=Nj(b,y,null,W,P),[]}),[]})},a:function(G,Q,X,H,W,P,B,w){var b=xj(X,H);Q=zA(Q),P=Kq(W,P),Kg([],[G],function(y){function p(){BK("Cannot call "+r+" due to unbound types",b)}y=y[0];var r=y.name+"."+Q;Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]),w&&y.N.ja.push(Q);var ZA=y.N.X,LA=ZA[Q];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(p.Z=X-2,p.className=y.name,ZA[Q]=p):(Vj(ZA,Q,r),ZA[Q].S[X-2]=p),Kg([],b,function(GA){return GA=Nj(r,GA,y,P,B),ZA[Q].S===void 0?(GA.Z=X-2,ZA[Q]=GA):ZA[Q].S[X-2]=GA,[]}),[]})},A:function(G,Q){Q=zA(Q),wq(G,{name:Q,fromWireType:function(X){var H=OE(X);return Tj(X),H},toWireType:function(X,H){return aK(H)},argPackAdvance:8,readValueFromPointer:_E,V:null})},n:function(G,Q,X){X=Hj(X),Q=zA(Q),wq(G,{name:Q,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:IM(Q,X),V:null})},e:function(G,Q,X,H,W){Q=zA(Q),W===-1&&(W=4294967295),W=Hj(X);var P=(w)=>w;if(H===0){var B=32-8*X;P=(w)=>w<<B>>>B}X=Q.includes("unsigned")?function(w,b){return b>>>0}:function(w,b){return b},wq(G,{name:Q,fromWireType:P,toWireType:X,argPackAdvance:8,readValueFromPointer:aM(Q,W,H!==0),V:null})},b:function(G,Q,X){function H(P){P>>=2;var B=C;return new W(_,B[P+1],B[P])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][Q];X=zA(X),wq(G,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(G,Q){Q=zA(Q);var X=Q==="std::string";wq(G,{name:Q,fromWireType:function(H){var W=C[H>>2],P=H+4;if(X)for(var B=P,w=0;w<=W;++w){var b=P+w;if(w==W||x[b]==0){if(B=B?$(x,B,b-B):"",y===void 0)var y=B;else y+=String.fromCharCode(0),y+=B;B=b+1}}else{y=Array(W);for(w=0;w<W;++w)y[w]=String.fromCharCode(x[P+w]);y=y.join("")}return kq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var P,B=typeof W=="string";if(B||W instanceof Uint8Array||W instanceof Uint8ClampedArray||W instanceof Int8Array||KA("Cannot pass non-string to std::string"),X&&B){var w=0;for(P=0;P<W.length;++P){var b=W.charCodeAt(P);127>=b?w++:2047>=b?w+=2:55296<=b&&57343>=b?(w+=4,++P):w+=3}P=w}else P=W.length;if(w=aj(4+P+1),b=w+4,C[w>>2]=P,X&&B){if(B=b,b=P+1,P=x,0<b){b=B+b-1;for(var y=0;y<W.length;++y){var p=W.charCodeAt(y);if(55296<=p&&57343>=p){var r=W.charCodeAt(++y);p=65536+((p&1023)<<10)|r&1023}if(127>=p){if(B>=b)break;P[B++]=p}else{if(2047>=p){if(B+1>=b)break;P[B++]=192|p>>6}else{if(65535>=p){if(B+2>=b)break;P[B++]=224|p>>12}else{if(B+3>=b)break;P[B++]=240|p>>18,P[B++]=128|p>>12&63}P[B++]=128|p>>6&63}P[B++]=128|p&63}}P[B]=0}}else if(B)for(B=0;B<P;++B)y=W.charCodeAt(B),255<y&&(kq(b),KA("String has UTF-16 code units that do not fit in 8 bits")),x[b+B]=y;else for(B=0;B<P;++B)x[b+B]=W[B];return H!==null&&H.push(kq,w),w},argPackAdvance:8,readValueFromPointer:_E,V:function(H){kq(H)}})},i:function(G,Q,X){if(X=zA(X),Q===2)var H=PM,W=RM,P=SM,B=()=>a,w=1;else Q===4&&(H=hM,W=zM,P=BM,B=()=>C,w=2);wq(G,{name:X,fromWireType:function(b){for(var y=C[b>>2],p=B(),r,ZA=b+4,LA=0;LA<=y;++LA){var GA=b+4+LA*Q;if(LA==y||p[GA>>w]==0)ZA=H(ZA,GA-ZA),r===void 0?r=ZA:(r+=String.fromCharCode(0),r+=ZA),ZA=GA+Q}return kq(b),r},toWireType:function(b,y){typeof y!="string"&&KA("Cannot pass non-string to C++ string type "+X);var p=P(y),r=aj(4+p+Q);return C[r>>2]=p>>w,W(y,r+4,p+Q),b!==null&&b.push(kq,r),r},argPackAdvance:8,readValueFromPointer:_E,V:function(b){kq(b)}})},k:function(G,Q,X,H,W,P){hK[G]={name:zA(Q),fa:Kq(X,H),W:Kq(W,P),ia:[]}},h:function(G,Q,X,H,W,P,B,w,b,y){hK[G].ia.push({oa:zA(Q),ta:X,ra:Kq(H,W),sa:P,za:B,ya:Kq(w,b),Aa:y})},C:function(G,Q){Q=zA(Q),wq(G,{va:!0,name:Q,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(G,Q,X,H,W){G=wK[G],Q=OE(Q),X=tG(X);var P=[];return C[H>>2]=aK(P),G(Q,X,P,W)},t:function(G,Q,X,H){G=wK[G],Q=OE(Q),X=tG(X),G(Q,X,null,H)},g:Tj,m:function(G,Q){var X=kM(G,Q),H=X[0];Q=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=sG[Q];if(W!==void 0)return W;var P=Array(G-1);return W=CM((B,w,b,y)=>{for(var p=0,r=0;r<G-1;++r)P[r]=X[r+1].readValueFromPointer(y+p),p+=X[r+1].argPackAdvance;B=B[w].apply(B,P);for(r=0;r<G-1;++r)X[r+1].ma&&X[r+1].ma(P[r]);if(!H.va)return H.toWireType(b,B)}),sG[Q]=W},D:function(G){4<G&&(Fq[G].ga+=1)},r:function(G){var Q=OE(G);Xj(Q),Tj(G)},c:function(){RA("")},x:function(G,Q,X){x.copyWithin(G,Q,Q+X)},w:function(G){var Q=x.length;if(G>>>=0,2147483648<G)return!1;for(var X=1;4>=X;X*=2){var H=Q*(1+0.2/X);H=Math.min(H,G+100663296);var W=Math;H=Math.max(G,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),R();var P=1;break A}catch(B){}P=void 0}if(P)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(G,Q,X,H){for(var W=0,P=0;P<X;P++){var B=C[Q>>2],w=C[Q+4>>2];Q+=8;for(var b=0;b<w;b++){var y=x[B+b],p=DM[G];y===0||y===10?((G===1?j:U)($(p,0)),p.length=0):p.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function G(W){g.asm=W.exports,M=g.asm.E,R(),z=g.asm.J,m.unshift(g.asm.F),YA--,g.monitorRunDependencies&&g.monitorRunDependencies(YA),YA==0&&(PA!==null&&(clearInterval(PA),PA=null),bA&&(W=bA,bA=null,W()))}function Q(W){G(W.instance)}function X(W){return $M().then(function(P){return WebAssembly.instantiate(P,H)}).then(function(P){return P}).then(W,function(P){U("failed to asynchronously prepare wasm: "+P),RA(P)})}var H={a:bM};if(YA++,g.monitorRunDependencies&&g.monitorRunDependencies(YA),g.instantiateWasm)try{return g.instantiateWasm(H,G)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return O||typeof WebAssembly.instantiateStreaming!="function"||Hq(zq)||typeof fetch!="function"?X(Q):fetch(zq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(Q,function(P){return U("wasm streaming compile failed: "+P),U("falling back to ArrayBuffer instantiation"),X(Q)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var rG=g.___getTypeName=function(){return(rG=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var aj=g._malloc=function(){return(aj=g._malloc=g.asm.I).apply(null,arguments)},kq=g._free=function(){return(kq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var kK;bA=function G(){kK||oG(),kK||(bA=G)};function oG(){function G(){if(!kK&&(kK=!0,g.calledRun=!0,!J)){if(Qj(m),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var Q=g.postRun.shift();gA.unshift(Q)}Qj(gA)}}if(!(0<YA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)FA();Qj(n),0<YA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),G()},1)):G())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return oG(),q.ready}})(),eM=oM,jA=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),Bj=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),wj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),P6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Qg=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),t=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),kg=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),mY=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),qq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),Oq=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),mA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),Dg=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),cq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),Cj=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),vq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),mq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),Qq=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),fq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),A_={ALIGN_AUTO:jA.Auto,ALIGN_FLEX_START:jA.FlexStart,ALIGN_CENTER:jA.Center,ALIGN_FLEX_END:jA.FlexEnd,ALIGN_STRETCH:jA.Stretch,ALIGN_BASELINE:jA.Baseline,ALIGN_SPACE_BETWEEN:jA.SpaceBetween,ALIGN_SPACE_AROUND:jA.SpaceAround,ALIGN_SPACE_EVENLY:jA.SpaceEvenly,BOX_SIZING_BORDER_BOX:Bj.BorderBox,BOX_SIZING_CONTENT_BOX:Bj.ContentBox,DIMENSION_WIDTH:wj.Width,DIMENSION_HEIGHT:wj.Height,DIRECTION_INHERIT:P6.Inherit,DIRECTION_LTR:P6.LTR,DIRECTION_RTL:P6.RTL,DISPLAY_FLEX:Qg.Flex,DISPLAY_NONE:Qg.None,DISPLAY_CONTENTS:Qg.Contents,EDGE_LEFT:t.Left,EDGE_TOP:t.Top,EDGE_RIGHT:t.Right,EDGE_BOTTOM:t.Bottom,EDGE_START:t.Start,EDGE_END:t.End,EDGE_HORIZONTAL:t.Horizontal,EDGE_VERTICAL:t.Vertical,EDGE_ALL:t.All,ERRATA_NONE:kg.None,ERRATA_STRETCH_FLEX_BASIS:kg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:kg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:kg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:kg.All,ERRATA_CLASSIC:kg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:mY.WebFlexBasis,FLEX_DIRECTION_COLUMN:qq.Column,FLEX_DIRECTION_COLUMN_REVERSE:qq.ColumnReverse,FLEX_DIRECTION_ROW:qq.Row,FLEX_DIRECTION_ROW_REVERSE:qq.RowReverse,GUTTER_COLUMN:Oq.Column,GUTTER_ROW:Oq.Row,GUTTER_ALL:Oq.All,JUSTIFY_FLEX_START:mA.FlexStart,JUSTIFY_CENTER:mA.Center,JUSTIFY_FLEX_END:mA.FlexEnd,JUSTIFY_SPACE_BETWEEN:mA.SpaceBetween,JUSTIFY_SPACE_AROUND:mA.SpaceAround,JUSTIFY_SPACE_EVENLY:mA.SpaceEvenly,LOG_LEVEL_ERROR:Dg.Error,LOG_LEVEL_WARN:Dg.Warn,LOG_LEVEL_INFO:Dg.Info,LOG_LEVEL_DEBUG:Dg.Debug,LOG_LEVEL_VERBOSE:Dg.Verbose,LOG_LEVEL_FATAL:Dg.Fatal,MEASURE_MODE_UNDEFINED:cq.Undefined,MEASURE_MODE_EXACTLY:cq.Exactly,MEASURE_MODE_AT_MOST:cq.AtMost,NODE_TYPE_DEFAULT:Cj.Default,NODE_TYPE_TEXT:Cj.Text,OVERFLOW_VISIBLE:vq.Visible,OVERFLOW_HIDDEN:vq.Hidden,OVERFLOW_SCROLL:vq.Scroll,POSITION_TYPE_STATIC:mq.Static,POSITION_TYPE_RELATIVE:mq.Relative,POSITION_TYPE_ABSOLUTE:mq.Absolute,UNIT_UNDEFINED:Qq.Undefined,UNIT_POINT:Qq.Point,UNIT_PERCENT:Qq.Percent,UNIT_AUTO:Qq.Auto,WRAP_NO_WRAP:fq.NoWrap,WRAP_WRAP:fq.Wrap,WRAP_WRAP_REVERSE:fq.WrapReverse},q_=A_;function g_(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,O=Array(U),Y=0;Y<U;Y++)O[Y]=arguments[Y];return Z.call(this,j,...O)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[Qq.Point]:A.Node.prototype[F],[Qq.Percent]:A.Node.prototype[`${F}Percent`],[Qq.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=Array(j>1?j-1:0),O=1;O<j;O++)U[O-1]=arguments[O];let Y=U.pop(),M,J;if(Y==="auto")M=Qq.Auto,J=void 0;else if(typeof Y==="object")M=Y.unit,J=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?Qq.Percent:Qq.Point,J=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(J))throw Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(J!==void 0)return K[M].call(this,...U,J);else return K[M].call(this,...U)})}function g(F){return A.MeasureCallback.implement({measure:function(){let{width:K,height:Z}=F(...arguments);return{width:K??NaN,height:Z??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(F,K){if(K)return F.call(this,g(K));else return this.unsetMeasureFunc()});function E(F){return A.DirtiedCallback.implement({dirtied:F})}return q(A.Node.prototype,"setDirtiedFunc",function(F,K){F.call(this,E(K))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(F,K)=>{return K?A.Node.createWithConfig(K):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let F=0,K=this.getChildCount();F<K;++F)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(F){let K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,j=arguments.length>3&&arguments[3]!==void 0?arguments[3]:P6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...q_}}var E_=g_(await eM()),lK=E_,fY=["single","double","rounded","heavy"];function cY(A){return typeof A==="string"&&fY.includes(A)}function iK(A,q="single"){if(cY(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${fY.join(", ")}`);return q}var HE={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};function tK(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function bg(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}var dY={single:bg(HE.single),double:bg(HE.double),rounded:bg(HE.rounded),heavy:bg(HE.heavy)},OY={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57400:"kp0",57401:"kp1",57402:"kp2",57403:"kp3",57404:"kp4",57405:"kp5",57406:"kp6",57407:"kp7",57408:"kp8",57409:"kp9",57410:"kpdecimal",57411:"kpdivide",57412:"kpmultiply",57413:"kpminus",57414:"kpplus",57415:"kpenter",57416:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};function pY(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}var K_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},Z_={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};function j_(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],F=g[2],K=g[3],Z=g[4],j;if(Z==="~")j=Z_[E];else{if(E!=="1")return null;j=K_[Z]}if(!j)return null;let U={name:j,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(F){let O=parseInt(F,10);if(!isNaN(O)&&O>1){let Y=pY(O-1);U.shift=Y.shift,U.ctrl=Y.ctrl,U.meta=Y.alt||Y.meta,U.option=Y.alt,U.super=Y.super,U.hyper=Y.hyper,U.capsLock=Y.capsLock,U.numLock=Y.numLock}}if(K==="1"||!K)U.eventType="press";else if(K==="2")U.eventType="press",U.repeated=!0;else if(K==="3")U.eventType="release";return U}function U_(A){let q=j_(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let K=E[1].split(";");if(K.length<1)return null;let Z={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},j="",U=K[0]?.split(":")||[],O=U[0];if(!O)return null;let Y=parseInt(O,10);if(isNaN(Y))return null;let M,J;if(U[1]){let _=parseInt(U[1],10);if(!isNaN(_)&&_>0&&_<=1114111)M=_}if(U[2]){let _=parseInt(U[2],10);if(!isNaN(_)&&_>0&&_<=1114111)J=_}let $=OY[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let _=String.fromCodePoint(Y);if(Z.name=_,J)Z.baseCode=J}else return null;if(K[1]){let _=K[1].split(":"),T=_[0],x=_[1];if(T){let V=parseInt(T,10);if(!isNaN(V)&&V>1){let a=pY(V-1);Z.shift=a.shift,Z.ctrl=a.ctrl,Z.meta=a.alt||a.meta,Z.option=a.alt,Z.super=a.super,Z.hyper=a.hyper,Z.capsLock=a.capsLock,Z.numLock=a.numLock}}if(x==="1"||!x)Z.eventType="press";else if(x==="2")Z.eventType="press",Z.repeated=!0;else if(x==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let T of _){let x=parseInt(T,10);if(!isNaN(x)&&x>0&&x<=1114111)j+=String.fromCodePoint(x)}}if(j===""){if(Z.name.length>0&&!OY[Y])if(Z.shift&&M)j=String.fromCodePoint(M);else if(Z.shift&&Z.name.length===1)j=Z.name.toLocaleUpperCase();else j=Z.name}if(Z.name===" "&&Z.shift&&!Z.ctrl&&!Z.meta)j=" ";if(j)Z.sequence=j;return Z}var G_=/^(?:\x1b)([a-zA-Z0-9])$/,Y_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,uY={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},Q_=[...Object.values(uY),"backspace"],O_=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},J_=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},M_=/^\x1b\[27;(\d+);(\d+)~$/,lY=(A="",q={})=>{let g;if(F_.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let K=U_(A);if(K)return K}let F=M_.exec(A);if(F){let K=parseInt(F[1],10)-1,Z=parseInt(F[2],10);if(E.ctrl=!!(K&4),E.meta=!!(K&2),E.shift=!!(K&1),E.option=!!(K&2),E.super=!!(K&8),E.hyper=!!(K&16),Z===13)E.name="return";else if(Z===27)E.name="escape";else if(Z===9)E.name="tab";else if(Z===32)E.name="space";else if(Z===127||Z===8)E.name="backspace";else E.name=String.fromCharCode(Z);return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
5
+ `||A===`\x1B
6
+ `)E.name="linefeed",E.meta=A.length===2;else if(A==="\t")E.name="tab";else if(A==="\b"||A==="\x1B\b"||A==="\x7F"||A==="\x1B\x7F")E.name="backspace",E.meta=A.charAt(0)==="\x1B";else if(A==="\x1B"||A==="\x1B\x1B")E.name="escape",E.meta=A.length===2;else if(A===" "||A==="\x1B ")E.name="space",E.meta=A.length===2;else if(A==="\x00")E.name="space",E.ctrl=!0;else if(A.length===1&&A<="\x1A")E.name=String.fromCharCode(A.charCodeAt(0)+97-1),E.ctrl=!0;else if(A.length===1&&A>="0"&&A<="9")E.name=A,E.number=!0;else if(A.length===1&&A>="a"&&A<="z")E.name=A;else if(A.length===1&&A>="A"&&A<="Z")E.name=A.toLowerCase(),E.shift=!0;else if(A.length===1)E.name=A;else if(g=G_.exec(A)){E.meta=!0;let K=g[1],Z=/^[A-Z]$/.test(K);if(K==="F")E.name="right";else if(K==="B")E.name="left";else if(Z)E.shift=!0,E.name=K;else E.name=K}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=Y_.exec(A)){let K=[...A];if(K[0]==="\x1B"&&K[1]==="\x1B")E.option=!0,E.meta=!0;let Z=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),j=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=!!(j&4),E.meta=!!(j&2),E.shift=!!(j&1),E.option=!!(j&2),E.super=!!(j&8),E.hyper=!!(j&16),E.code=Z;let U=uY[Z];if(U)E.name=U,E.shift=O_(Z)||E.shift,E.ctrl=J_(Z)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E};class LE{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class uj{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class lj extends __{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=lY(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new LE(q));break;case"release":this.emit("keyrelease",new LE(q));break;default:this.emit("keypress",new LE(q));break}}catch(g){return console.error("[KeyHandler] Error processing input:",g),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new uj(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class ij extends lj{renderableHandlers=new Map;constructor(A=!1){super(A)}emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let j of E){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in global ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let F=this.renderableHandlers.get(A),K=F&&F.size>0?[...F]:[],Z=!1;if(F&&F.size>0){if(Z=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let j=q[0];if(j.defaultPrevented)return g||Z;if(j.propagationStopped)return g||Z}for(let j of K){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in renderable ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||Z}}}return g||Z}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}}class QA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new QA(A)}static fromValues(A,q,g,E=1){return new QA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new QA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return pK(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function pK(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),QA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,F=A.length===8?parseInt(A.substring(6,8),16)/255:1;return QA.fromValues(q,g,E,F)}var JY={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};function d(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return QA.fromValues(0,0,0,0);if(JY[q])return pK(JY[q]);return pK(A)}return A}var Nq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var iY;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(iY||={});function WE({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:F=!1,inverse:K=!1,hidden:Z=!1,strikethrough:j=!1}={}){let U=Nq.NONE;if(A)U|=Nq.BOLD;if(q)U|=Nq.ITALIC;if(g)U|=Nq.UNDERLINE;if(E)U|=Nq.DIM;if(F)U|=Nq.BLINK;if(K)U|=Nq.INVERSE;if(Z)U|=Nq.HIDDEN;if(j)U|=Nq.STRIKETHROUGH;return U}var $_=255,X_=8,H_=16777215;function tY(A,q){let g=A&$_,E=(q&H_)<<X_;return g|E}var sY=Symbol.for("@opentui/core/StyledText");function nY(A){return A&&A[sY]}class IE{[sY]=!0;chunks;constructor(A){this.chunks=A}}function sK(A){return new IE([{__isChunk:!0,text:A}])}function L_(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?d(q.fg):g.fg,F=q.bg?d(q.bg):g.bg,K=WE(q),Z=g.attributes?g.attributes|K:K;return{__isChunk:!0,text:g.text,fg:E,bg:F,attributes:Z,link:g.link}}else{let g=String(A),E=q.fg?d(q.fg):void 0,F=q.bg?d(q.bg):void 0,K=WE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var rY=(A)=>(q)=>L_(q,{fg:A});class tj{tick(A){return 1}reset(){}}var dq="\x1B",MY="\x1B[200~",DK="\x1B[201~";function W_(A){if(!A.startsWith(dq))return"not-escape";if(A.length===1)return"incomplete";let q=A.slice(1);if(q.startsWith("[")){if(q.startsWith("[M"))return A.length>=6?"complete":"incomplete";return N_(A)}if(q.startsWith("]"))return x_(A);if(q.startsWith("P"))return T_(A);if(q.startsWith("_"))return I_(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function N_(A){if(!A.startsWith(dq+"["))return"complete";if(A.length<3)return"incomplete";let q=A.slice(2),g=q[q.length-1],E=g.charCodeAt(0);if(E>=64&&E<=126){if(q.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(q))return"complete";if(g==="M"||g==="m"){let K=q.slice(1,-1).split(";");if(K.length===3&&K.every((Z)=>/^\d+$/.test(Z)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function x_(A){if(!A.startsWith(dq+"]"))return"complete";if(A.endsWith(dq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function T_(A){if(!A.startsWith(dq+"P"))return"complete";if(A.endsWith(dq+"\\"))return"complete";return"incomplete"}function I_(A){if(!A.startsWith(dq+"_"))return"complete";if(A.endsWith(dq+"\\"))return"complete";return"incomplete"}function _Y(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(dq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=W_(K);if(Z==="complete"){q.push(K),g+=F;break}else if(Z==="incomplete")F++;else{q.push(K),g+=F;break}}if(F>E.length)return{sequences:q,remainder:E}}else q.push(E[0]),g++}return{sequences:q,remainder:""}}class sj extends V_{buffer="";timeout=null;timeoutMs;pasteMode=!1;pasteBuffer="";constructor(A={}){super();this.timeoutMs=A.timeout??10}process(A){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;let q;if(Buffer.isBuffer(A))if(A.length===1&&A[0]>127){let F=A[0]-128;q="\x1B"+String.fromCharCode(F)}else q=A.toString();else q=A;if(q.length===0&&this.buffer.length===0){this.emit("data","");return}if(this.buffer+=q,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(DK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+DK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(MY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=_Y(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+MY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(DK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+DK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=_Y(this.buffer);this.buffer=E.remainder;for(let F of E.sequences)this.emit("data",F);if(this.buffer.length>0)this.timeout=setTimeout(()=>{let F=this.flush();for(let K of F)this.emit("data",K)},this.timeoutMs)}flush(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;if(this.buffer.length===0)return[];let A=[this.buffer];return this.buffer="",A}clear(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.buffer="",this.pasteMode=!1,this.pasteBuffer=""}getBuffer(){return this.buffer}destroy(){this.clear()}}function kj(A){if(A==null)return jA.Auto;switch(A.toLowerCase()){case"auto":return jA.Auto;case"flex-start":return jA.FlexStart;case"center":return jA.Center;case"flex-end":return jA.FlexEnd;case"stretch":return jA.Stretch;case"baseline":return jA.Baseline;case"space-between":return jA.SpaceBetween;case"space-around":return jA.SpaceAround;case"space-evenly":return jA.SpaceEvenly;default:return jA.Auto}}function Dj(A){if(A==null)return jA.Stretch;switch(A.toLowerCase()){case"auto":return jA.Auto;case"flex-start":return jA.FlexStart;case"center":return jA.Center;case"flex-end":return jA.FlexEnd;case"stretch":return jA.Stretch;case"baseline":return jA.Baseline;case"space-between":return jA.SpaceBetween;case"space-around":return jA.SpaceAround;case"space-evenly":return jA.SpaceEvenly;default:return jA.Stretch}}function yj(A){if(A==null)return qq.Column;switch(A.toLowerCase()){case"column":return qq.Column;case"column-reverse":return qq.ColumnReverse;case"row":return qq.Row;case"row-reverse":return qq.RowReverse;default:return qq.Column}}function bj(A){if(A==null)return mA.FlexStart;switch(A.toLowerCase()){case"flex-start":return mA.FlexStart;case"center":return mA.Center;case"flex-end":return mA.FlexEnd;case"space-between":return mA.SpaceBetween;case"space-around":return mA.SpaceAround;case"space-evenly":return mA.SpaceEvenly;default:return mA.FlexStart}}function vj(A){if(A==null)return vq.Visible;switch(A.toLowerCase()){case"visible":return vq.Visible;case"hidden":return vq.Hidden;case"scroll":return vq.Scroll;default:return vq.Visible}}function mj(A){if(A==null)return mq.Relative;switch(A.toLowerCase()){case"static":return mq.Static;case"relative":return mq.Relative;case"absolute":return mq.Absolute;default:return mq.Static}}function fj(A){if(A==null)return fq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return fq.NoWrap;case"wrap":return fq.Wrap;case"wrap-reverse":return fq.WrapReverse;default:return fq.NoWrap}}class NE{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}parseMouseEvent(A){let q=A.toString(),g=q.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);if(g){let[,E,F,K,Z]=g,j=parseInt(E),U=j&3,O=(j&64)!==0,Y=!O?void 0:NE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,J={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(O&&Z==="M")$="scroll",_={direction:Y,delta:1};else if(M){let T=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(T)$="drag";else $="move"}else if($=Z==="M"?"down":"up",$==="down"&&U!==3)this.mouseButtonsPressed.add(U);else if($==="up")this.mouseButtonsPressed.clear();return{type:$,button:U===3?0:U,x:parseInt(F)-1,y:parseInt(K)-1,modifiers:J,scroll:_}}if(q.startsWith("\x1B[M")&&q.length>=6){let E=q.charCodeAt(3)-32,F=q.charCodeAt(4)-33,K=q.charCodeAt(5)-33,Z=E&3,j=(E&64)!==0,U=!j?void 0:NE.SCROLL_DIRECTIONS[Z],O={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,J;if(j)Y="scroll",M=0,J={direction:U,delta:1};else Y=Z===3?"up":"down",M=Z===3?0:Z;return{type:Y,button:M,x:F,y:K,modifiers:O,scroll:J}}return null}}class oY{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class nj{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new oY(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isSelecting(){return this._isSelecting}set isSelecting(A){this._isSelecting=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),F=q-A+1,K=E-g+1;return{x:A,y:g,width:F,height:K}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,F=g.y;if(E!==F)return E-F;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
7
+ `)}}function rj(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}var oj=Symbol.for("@opentui/core/singleton");function dg(A,q){let g=globalThis[oj]??={};if(!(A in g))g[A]=q();return g[A]}function a_(A){let q=globalThis[oj];if(q&&A in q)delete q[A]}function P_(A){let q=globalThis[oj];return q&&A in q}var vg=dg("env-registry",()=>({}));function WA(A){let q=vg[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}vg[A.name]=A}function R_(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function S_(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:R_(q);case"number":let g=Number(q);if(isNaN(g))throw Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class eY{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in vg))throw Error(`Environment variable ${A} is not registered.`);try{let q=S_(vg[A]);return this.parsedValues.set(A,q),q}catch(q){throw Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in vg}clearCache(){this.parsedValues.clear()}}var yK=dg("env-store",()=>new eY);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return yK.get(q)},has(A,q){return yK.has(q)},ownKeys(){return Object.keys(vg)},getOwnPropertyDescriptor(A,q){if(yK.has(q))return{enumerable:!0,configurable:!0,get:()=>yK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var T6=new Map;class AQ{scopeId;constructor(A){if(this.scopeId=A,!T6.has(this.scopeId))T6.set(this.scopeId,new Map)}debounce(A,q,g){let E=T6.get(this.scopeId);return new Promise((F,K)=>{if(E.has(A))clearTimeout(E.get(A));let Z=setTimeout(()=>{try{F(g())}catch(j){K(j)}E.delete(A)},q);E.set(A,Z)})}clearDebounce(A){let q=T6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=T6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function z_(A){return new AQ(A)}function B_(A){let q=T6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class qQ{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}var Pj;function w_(){if(!Pj)Pj=[{filetype:"javascript",queries:{highlights:[jq(Uq(Gq(import.meta.url)),qY)]},wasm:jq(Uq(Gq(import.meta.url)),gY)},{filetype:"typescript",queries:{highlights:[jq(Uq(Gq(import.meta.url)),EY)]},wasm:jq(Uq(Gq(import.meta.url)),FY)},{filetype:"markdown",queries:{highlights:[jq(Uq(Gq(import.meta.url)),KY)],injections:[jq(Uq(Gq(import.meta.url)),jY)]},wasm:jq(Uq(Gq(import.meta.url)),ZY),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[jq(Uq(Gq(import.meta.url)),UY)]},wasm:jq(Uq(Gq(import.meta.url)),GY)},{filetype:"zig",queries:{highlights:[jq(Uq(Gq(import.meta.url)),YY)]},wasm:jq(Uq(Gq(import.meta.url)),QY)}];return Pj}function gQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function v_(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function m_(A){return b_(v_(),y_(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var f_=w_();var c_=(A)=>A.startsWith("http://")||A.startsWith("https://");class ej extends h_{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=z_("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(XA.OTUI_TREE_SITTER_WORKER_PATH)A=XA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH<"u")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!D_($Y(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let F=Error("Worker initialization timed out");console.error("TreeSitter client:",F.message),this.initializeResolvers=void 0,q(F)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of f_)this.addFiletypeParser(A)}resolvePath(A){if(c_(A))return A;if(gQ(A))return m_(k_(A).base);if(!C_(A))return $Y(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:F,warning:K,messageId:Z,hasParser:j,performance:U,version:O}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==O){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,O,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:K,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:F,warning:K,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(K){this.emitWarning(K,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:M}=A.data,J=M.join(" ");if(this.emit("worker:log",Y,J),Y==="log")console.log("TSWorker:",...M);else if(Y==="error")console.error("TSWorker:",...M);else if(Y==="warn")console.warn("TSWorker:",...M);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,F=!0){if(!this.initialized){if(!F)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let K=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(K,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:K})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser)return;if(this.buffers.set(A,{...F,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new qQ((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,F=!1){this.worker?.postMessage({type:F?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),B_("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(F)=>{if(F.error)E(Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function p_(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}WA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});WA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class AU extends d_{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!p_(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=XY.homedir(),g=XA.XDG_CONFIG_HOME||jg.join(A,".config");this._globalConfigPath=jg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=jg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=jg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=XY.homedir(),g=XA.XDG_DATA_HOME||jg.join(A,".local/share");this._globalDataPath=jg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function EQ(){return dg("data-paths-opentui",()=>new AU)}function FQ(){let A=EQ(),q={dataPath:A.globalDataPath};return dg("tree-sitter-client",()=>{let g=new ej(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class KQ{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,F])=>[E,{...F}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class qU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new KQ;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A<=F.start){this.editBuffer.setCursorByOffset(F.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let F=g-E.start,K=E.end-g;if(F<K)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}this.originalMoveDownVisual();let q=this.editorView.getVisualCursor().offset,g=this.findVirtualExtmarkContaining(q);if(g){let E=q-g.start,F=g.end-q;if(E<F)this.editorView.setCursorByOffset(g.start-1);else this.editorView.setCursorByOffset(g.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let F=this.findVirtualExtmarkContaining(A);if(F&&q<=F.start){this.originalSetCursorByOffset(F.end);return}}else for(let F of this.extmarks.values())if(F.virtual&&q>=F.end&&A<F.end&&A>=F.start){this.originalSetCursorByOffset(F.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let F=this.offsetToPosition(E.start),K=this.offsetToPosition(E.end),Z=E.start,j=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,F=this.findVirtualExtmarkContaining(E);if(F&&A===F.start){let K=this.offsetToPosition(F.start),Z=this.offsetToPosition(F.end),j=F.start,U=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(K.row,K.col,Z.row,Z.col),this.adjustExtmarksAfterDeletion(j,U),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let F=this.positionToOffset(A,q),Z=this.positionToOffset(g,E)-F;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(F,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let K=q-1;K>=0;K--)if(A[K]===`
8
+ `){g=K+1;break}let E=A.length;for(let K=q;K<A.length;K++)if(A[K]===`
9
+ `){E=K+1;break}let F=E-g;this.originalDeleteLine(),this.adjustExtmarksAfterDeletion(g,F)}}wrapInsertion(){this.editBuffer.insertText=(A)=>{if(this.destroyed){this.originalInsertText(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertText(A),this.adjustExtmarksAfterInsertion(q,A.length)},this.editBuffer.insertChar=(A)=>{if(this.destroyed){this.originalInsertChar(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertChar(A),this.adjustExtmarksAfterInsertion(q,1)},this.editBuffer.setText=(A)=>{if(this.destroyed){this.originalSetText(A);return}this.clear(),this.originalSetText(A)},this.editBuffer.replaceText=(A)=>{if(this.destroyed){this.originalReplaceText(A);return}this.saveSnapshot(),this.clear(),this.originalReplaceText(A)},this.editBuffer.clear=()=>{if(this.destroyed){this.originalClear();return}this.saveSnapshot(),this.clear(),this.originalClear()},this.editBuffer.newLine=()=>{if(this.destroyed){this.originalNewLine();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;this.originalNewLine(),this.adjustExtmarksAfterInsertion(A,1)}}wrapEditorViewDeleteSelectedText(){this.editorView.deleteSelectedText=()=>{if(this.destroyed){this.originalEditorViewDeleteSelectedText();return}this.saveSnapshot();let A=this.editorView.getSelection();if(!A){this.originalEditorViewDeleteSelectedText();return}let q=Math.min(A.start,A.end),g=Math.abs(A.end-A.start);if(this.originalEditorViewDeleteSelectedText(),g>0)this.adjustExtmarksAfterDeletion(q,g)}}setupContentChangeListener(){this.editBuffer.on("content-changed",()=>{if(this.destroyed)return;this.updateHighlights()})}deleteExtmarkById(A){let q=this.extmarks.get(A);if(q)this.extmarks.delete(A),this.extmarksByTypeId.get(q.typeId)?.delete(A),this.metadata.delete(A)}findVirtualExtmarkContaining(A){for(let q of this.extmarks.values())if(q.virtual&&A>=q.start&&A<q.end)return q;return null}adjustExtmarksAfterInsertion(A,q){for(let g of this.extmarks.values())if(g.start>=A)g.start+=q,g.end+=q;else if(g.end>A)g.end+=q;this.updateHighlights()}adjustExtmarksAfterDeletion(A,q){let g=[];for(let E of this.extmarks.values()){if(E.end<=A)continue;if(E.start>=A+q)E.start-=q,E.end-=q;else if(E.start>=A&&E.end<=A+q)g.push(E.id);else if(E.start<A&&E.end>A+q)E.end-=q;else if(E.start<A&&E.end>A)E.end-=Math.min(E.end,A+q)-A;else if(E.start<A+q&&E.end>A+q){let F=A+q-E.start;E.start=A,E.end-=q}}for(let E of g)this.deleteExtmarkById(E);this.updateHighlights()}offsetToPosition(A){let q=this.editBuffer.offsetToPosition(A);if(!q)return{row:0,col:0};return q}positionToOffset(A,q){return this.editBuffer.positionToOffset(A,q)}updateHighlights(){this.editBuffer.clearAllHighlights();for(let A of this.extmarks.values())if(A.styleId!==void 0){let q=this.offsetExcludingNewlines(A.start),g=this.offsetExcludingNewlines(A.end);this.editBuffer.addHighlightByCharRange({start:q,end:g,styleId:A.styleId,priority:A.priority??0,hlRef:A.id})}}offsetExcludingNewlines(A){let q=this.editBuffer.getText(),g=0,E=0,F=0;while(F<q.length&&g<A)if(q[F]===`
10
+ `)g++,E++,F++;else{let K=F;while(K<q.length&&q[K]!==`
11
+ `)K++;let Z=q.substring(F,K),j=Bun.stringWidth(Z);if(g+j<A)g+=j,F=K;else{for(let U=F;U<K&&g<A;U++){let O=Bun.stringWidth(q[U]);g+=O}break}}return A-E}create(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function ZQ(A,q){return new qU(A,q)}var bK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,HY=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function Rj(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function LY(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${Rj(A)}${Rj(q)}${Rj(g)}`;return"#000000"}function u_(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class gU{stdin;stdout;writeFn;activeListeners=[];activeTimers=[];inLegacyTmux;constructor(A,q,g,E){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1}writeOsc(A){let q=this.inLegacyTmux?u_(A):A;return this.writeFn(q)}cleanup(){for(let{event:A,handler:q}of this.activeListeners)this.stdin.removeListener(A,q);this.activeListeners=[];for(let A of this.activeTimers)clearTimeout(A);this.activeTimers=[]}async detectOSCSupport(A=300){let q=this.stdout,g=this.stdin;if(!q.isTTY||!g.isTTY)return!1;return new Promise((E)=>{let F="",K=(O)=>{if(F+=O.toString(),bK.lastIndex=0,bK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let O=this.activeListeners.findIndex((M)=>M.handler===K);if(O!==-1)this.activeListeners.splice(O,1);let Y=this.activeTimers.indexOf(U);if(Y!==-1)this.activeTimers.splice(Y,1)},U=setTimeout(Z,A);this.activeTimers.push(U),g.on("data",K),this.activeListeners.push({event:"data",handler:K}),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=this.stdin,F=new Map;if(A.forEach((K)=>F.set(K,null)),!g.isTTY||!E.isTTY)return F;return new Promise((K)=>{let Z="",j=Date.now(),U=null,O=($)=>{Z+=$.toString(),j=Date.now();let _;bK.lastIndex=0;while(_=bK.exec(Z)){let x=parseInt(_[1],10);if(F.has(x))F.set(x,LY(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((x)=>x!==null).length===F.size){M(),K(F);return}if(U)clearTimeout(U);if(U=setTimeout(()=>{M(),K(F)},150),U)this.activeTimers.push(U)},Y=()=>{M(),K(F)},M=()=>{if(clearTimeout(J),U)clearTimeout(U);E.removeListener("data",O);let $=this.activeListeners.findIndex((T)=>T.handler===O);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(J);if(_!==-1)this.activeTimers.splice(_,1);if(U){let T=this.activeTimers.indexOf(U);if(T!==-1)this.activeTimers.splice(T,1)}},J=setTimeout(Y,q);this.activeTimers.push(J),E.on("data",O),this.activeListeners.push({event:"data",handler:O}),this.writeOsc(A.map(($)=>`\x1B]4;${$};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g=this.stdin,E={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!g.isTTY)return E;return new Promise((F)=>{let K="",Z=null,j=(M)=>{K+=M.toString();let J;HY.lastIndex=0;while(J=HY.exec(K)){let _=parseInt(J[1],10);if(_ in E)E[_]=LY(J[2],J[3],J[4],J[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){O(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{O(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{O(),F(E)},O=()=>{if(clearTimeout(Y),Z)clearTimeout(Z);g.removeListener("data",j);let M=this.activeListeners.findIndex(($)=>$.handler===j);if(M!==-1)this.activeListeners.splice(M,1);let J=this.activeTimers.indexOf(Y);if(J!==-1)this.activeTimers.splice(J,1);if(Z){let $=this.activeTimers.indexOf(Z);if($!==-1)this.activeTimers.splice($,1)}},Y=setTimeout(U,A);this.activeTimers.push(Y),g.on("data",j),this.activeListeners.push({event:"data",handler:j}),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let F=[...Array(g).keys()],[K,Z]=await Promise.all([this.queryPalette(F,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((j)=>K.get(j)??null),defaultForeground:Z[10],defaultBackground:Z[11],cursorColor:Z[12],mouseForeground:Z[13],mouseBackground:Z[14],tekForeground:Z[15],tekBackground:Z[16],highlightBackground:Z[17],highlightForeground:Z[19]}}}function jQ(A,q,g,E){return new gU(A,q,g,E)}function s_(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let K={left:0,center:1,right:2}[g];return E|=K<<5,E}class Og{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),F=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(vK(q,0,A*4)),fg:new Float32Array(vK(g,0,A*4*4)),bg:new Float32Array(vK(E,0,A*4*4)),attributes:new Uint32Array(vK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${Og.fbIdCounter++}`,this.lib=A,this.respectAlpha=F.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=F.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let F=Jq(),K=E.respectAlpha||!1,Z=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return F.createOptimizedBuffer(A,q,g,K,Z)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,F=[];for(let K=0;K<this._height;K++){let Z=[],j=null;for(let U=0;U<this._width;U++){let O=K*this._width+U,Y=A[O],M=QA.fromValues(q[O*4],q[O*4+1],q[O*4+2],q[O*4+3]),J=QA.fromValues(g[O*4],g[O*4+1],g[O*4+2],g[O*4+3]),$=E[O]&255,_=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(J)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:J,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=QA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,F,K)}setCellWithAlphaBlending(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,F,K)}drawText(A,q,g,E,F,K=0,Z){if(this.guard(),!Z){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,F,K);return}let{start:j,end:U}=Z,O,Y;if(Z.bgColor)O=Z.bgColor,Y=Z.fgColor||E;else{let M=F||QA.fromValues(0,0,0,0);Y=M.a>0?M:QA.fromValues(0,0,0,1),O=E}if(j>0){let M=A.slice(0,j);this.lib.bufferDrawText(this.bufferPtr,M,q,g,E,F,K)}if(U>j){let M=A.slice(j,U);this.lib.bufferDrawText(this.bufferPtr,M,q+j,g,Y,O,K)}if(U<A.length){let M=A.slice(U);this.lib.bufferDrawText(this.bufferPtr,M,q+U,g,E,F,K)}}fillRect(A,q,g,E,F){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,F)}drawFrameBuffer(A,q,g,E,F,K,Z){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,F,K,Z)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,F,K)}drawPackedBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,F,K)}drawGrayscaleBuffer(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,WY(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,WY(g),E,F,K,Z)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=iK(A.borderStyle,"single"),g=A.customBorderChars??dY[q],E=s_(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawChar(A,q,g,E,F,K=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,F,K)}}function I6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),Error(q)}var BA=process.arch==="x64"||process.arch==="arm64"?8:4,yg={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:BA,i32:4},n_=Object.keys(yg);function mK(A){return typeof A==="string"&&n_.includes(A)}var NY={...yg},r_={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>BA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function xY(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function TY(A,q){return A+(q-1)&~(q-1)}function IY(A){throw TypeError(`Invalid enum value: ${A}`)}function o_(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,F])=>[F,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??IY(String(E))},from(E){return g[E]??IY(String(E))},enum:A}}function aY(A){return typeof A==="object"&&A.__type==="enum"}function hj(A){return typeof A==="object"&&A.__type==="struct"}function a6(A){let q,g;switch(A){case"u8":q=(E,F,K)=>E.setUint8(F,K),g=(E,F)=>E.getUint8(F);break;case"bool_u8":q=(E,F,K)=>E.setUint8(F,K?1:0),g=(E,F)=>Boolean(E.getUint8(F));break;case"bool_u32":q=(E,F,K)=>E.setUint32(F,K?1:0,!0),g=(E,F)=>Boolean(E.getUint32(F,!0));break;case"u16":q=(E,F,K)=>E.setUint16(F,K,!0),g=(E,F)=>E.getUint16(F,!0);break;case"i16":q=(E,F,K)=>E.setInt16(F,K,!0),g=(E,F)=>E.getInt16(F,!0);break;case"u32":q=(E,F,K)=>E.setUint32(F,K,!0),g=(E,F)=>E.getUint32(F,!0);break;case"i32":q=(E,F,K)=>E.setInt32(F,K,!0),g=(E,F)=>E.getInt32(F,!0);break;case"u64":q=(E,F,K)=>E.setBigUint64(F,BigInt(K),!0),g=(E,F)=>E.getBigUint64(F,!0);break;case"f32":q=(E,F,K)=>E.setFloat32(F,K,!0),g=(E,F)=>E.getFloat32(F,!0);break;case"f64":q=(E,F,K)=>E.setFloat64(F,K,!0),g=(E,F)=>E.getFloat64(F,!0);break;case"pointer":q=(E,F,K)=>{BA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=BA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:I6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:vA,unpack:N6}=a6("pointer");function e_(A){let q=new ArrayBuffer(A.length*BA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;vA(g,E*BA,K)}return g}var PY=new TextEncoder,A9=new TextDecoder;function pq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[J,$,_={}]of A){if(_.condition&&!_.condition())continue;let T=0,x=0,V,a,k=!1,C=null;if(mK($))T=yg[$],x=NY[$],{pack:V,unpack:a}=a6($);else if(typeof $==="string"&&$==="cstring")T=BA,x=BA,V=(R,z,n)=>{let m=n?wg(PY.encode(n+"\x00")):null;vA(R,z,m)},a=(R,z)=>{return N6(R,z)};else if(typeof $==="string"&&$==="char*")T=BA,x=BA,V=(R,z,n)=>{let m=n?wg(PY.encode(n)):null;vA(R,z,m)},a=(R,z)=>{return N6(R,z)},k=!0;else if(aY($)){let R=$.type;T=yg[R],x=NY[R];let{pack:z}=a6(R);V=(n,m,gA)=>{let FA=$.to(gA);z(n,m,FA)},a=(n,m)=>{let gA=r_[R](n,m);return $.from(gA)}}else if(hj($))if(_.asPointer===!0)T=BA,x=BA,V=(R,z,n,m,gA)=>{if(!n){vA(R,z,null);return}let FA=$.pack(n,gA);vA(R,z,wg(FA))},a=(R,z)=>{throw Error("Not implemented yet")};else T=$.size,x=$.align,V=(R,z,n,m,gA)=>{let FA=$.pack(n,gA),YA=new Uint8Array(FA);new Uint8Array(R.buffer).set(YA,z)},a=(R,z)=>{let n=R.buffer.slice(z,z+T);return $.unpack(n)};else if(xY($))T=BA,x=BA,V=(R,z,n)=>{let m=n?.ptr??null;if(m===void 0)console.warn(`Field '${J}' expected object with '.ptr' property, but got undefined pointer value from:`,n),vA(R,z,null);else vA(R,z,m)},a=(R,z)=>{return N6(R,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[R]=$;T=BA,x=BA;let z;if(aY(R))z=yg[R.type],V=(m,gA,FA,YA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let PA=new ArrayBuffer(FA.length*z),bA=new DataView(PA);for(let RA=0;RA<FA.length;RA++){let Hq=R.to(FA[RA]);bA.setUint32(RA*z,Hq,!0)}vA(m,gA,wg(PA))},a=null,k=!0,C=R;else if(hj(R))z=R.size,V=(m,gA,FA,YA,PA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let bA=new ArrayBuffer(FA.length*z),RA=new DataView(bA);for(let Hq=0;Hq<FA.length;Hq++)R.packInto(FA[Hq],RA,Hq*z,PA);vA(m,gA,wg(bA))},a=(m,gA)=>{throw Error("Not implemented yet")};else if(mK(R)){z=yg[R];let{pack:m}=a6(R);V=(gA,FA,YA)=>{if(!YA||YA.length===0){vA(gA,FA,null);return}let PA=new ArrayBuffer(YA.length*z),bA=new DataView(PA);for(let RA=0;RA<YA.length;RA++)m(bA,RA*z,YA[RA]);vA(gA,FA,wg(PA))},a=null,k=!0,C=R}else if(xY(R))z=BA,V=(m,gA,FA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let YA=e_(FA);vA(m,gA,wg(YA.buffer))},a=()=>{throw Error("not implemented yet")};else throw Error(`Unsupported array element type for ${J}: ${JSON.stringify(R)}`);let n=Object.values(K).find((m)=>m.lengthOf===J);if(n&&mK(n.type)){let{pack:m}=a6(n.type);j[J]={elementSize:z,arrayOffset:g,lengthOffset:n.offset,lengthPack:m}}}else throw Error(`Unsupported field type for ${J}: ${JSON.stringify($)}`);if(g=TY(g,x),_.unpackTransform){let R=a;a=(z,n)=>_.unpackTransform(R(z,n))}if(_.packTransform){let R=V;V=(z,n,m,gA,FA)=>R(z,n,_.packTransform(m),gA,FA)}if(_.optional){let R=V;if(hj($)&&!_.asPointer)V=(z,n,m,gA,FA)=>{if(m||_.mapOptionalInline)R(z,n,m,gA,FA)};else V=(z,n,m,gA,FA)=>R(z,n,m??0,gA,FA)}if(_.lengthOf){let R=V;V=(z,n,m,gA,FA)=>{let YA=gA[_.lengthOf],PA=0;if(YA)if(typeof YA==="string")PA=Buffer.byteLength(YA);else PA=YA.length;return R(z,n,PA,gA,FA)}}let u;if(_.validate)u=Array.isArray(_.validate)?_.validate:[_.validate];let c={name:J,offset:g,size:T,align:x,validate:u,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:V,unpack:a,type:$,lengthOf:_.lengthOf};if(F.push(c),_.lengthOf)K[_.lengthOf]=c;if(k){let R=typeof $==="string"&&$==="char*"?"char*":C;if(!R)I6(`Internal error: needsLengthOf=true but def is null for ${J}`);Z.push({requester:c,def:R})}g+=T,E=Math.max(E,x)}for(let{requester:J,def:$}of Z){let _=K[J.name];if(!_){if($==="char*")continue;throw Error(`lengthOf field not found for array field ${J.name}`)}if($==="char*")J.unpack=(T,x)=>{let V=N6(T,x),a=_.unpack(T,_.offset);if(V===0)return null;let k=typeof a==="bigint"?Number(a):a;if(k===0)return"";let C=Sj(V,0,k);return A9.decode(C)};else if(mK($)){let T=yg[$],{unpack:x}=a6($);J.unpack=(V,a)=>{let k=[],C=_.unpack(V,_.offset),u=N6(V,a);if(u===0n&&C>0)throw Error(`Array field ${J.name} has null pointer but length ${C}.`);if(u===0n||C===0)return[];let c=Sj(u,0,C*T),R=new DataView(c);for(let z=0;z<C;z++)k.push(x(R,z*T));return k}}else{let T=$.type==="u32"?4:8;J.unpack=(x,V)=>{let a=[],k=_.unpack(x,_.offset),C=N6(x,V);if(C===0n&&k>0)throw Error(`Array field ${J.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let u=Sj(C,0,k*T),c=new DataView(u);for(let R=0;R<k;R++)a.push($.from(c.getUint32(R*T,!0)));return a}}}let U=TY(g,E),O=F.map((J)=>({name:J.name,offset:J.offset,size:J.size,align:J.align,optional:J.optional,type:J.type,lengthOf:J.lengthOf})),Y=new Map(O.map((J)=>[J.name,J])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(J,$){let _=new ArrayBuffer(U),T=new DataView(_),x=J;if(q?.mapValue)x=q.mapValue(J);for(let V of F){let a=x[V.name]??V.default;if(!V.optional&&a===void 0)I6(`Packing non-optional field '${V.name}' but value is undefined (and no default provided)`);if(V.validate)for(let k of V.validate)k(a,V.name,{hints:$?.validationHints,input:x});V.pack(T,V.offset,a,x,$)}return T.buffer},packInto(J,$,_,T){let x=J;if(q?.mapValue)x=q.mapValue(J);for(let V of F){let a=x[V.name]??V.default;if(!V.optional&&a===void 0)console.warn(`packInto missing value for non-optional field '${V.name}' at offset ${_+V.offset}. Writing default or zero.`);if(V.validate)for(let k of V.validate)k(a,V.name,{hints:T?.validationHints,input:x});V.pack($,_+V.offset,a,x,T)}},unpack(J){if(J.byteLength<U)I6(`Buffer size (${J.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(J),_=q?.default?{...q.default}:{};for(let T of F){if(!T.unpack)continue;try{_[T.name]=T.unpack($,T.offset)}catch(x){throw console.error(`Error unpacking field '${T.name}' at offset ${T.offset}:`,x),x}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(J,$){if(J.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*J.length),T=new DataView(_);for(let x=0;x<J.length;x++){let V=J[x];if(q?.mapValue)V=q.mapValue(J[x]);for(let a of F){let k=V[a.name]??a.default;if(!a.optional&&k===void 0)I6(`Packing non-optional field '${a.name}' at index ${x} but value is undefined (and no default provided)`);if(a.validate)for(let C of a.validate)C(k,a.name,{hints:$?.validationHints,input:V});a.pack(T,x*U+a.offset,k,V,$)}}return _},unpackList(J,$){if($===0)return[];let _=U*$;if(J.byteLength<_)I6(`Buffer size (${J.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let T=new DataView(J),x=[];for(let V=0;V<$;V++){let a=V*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(T,a+C.offset)}catch(u){throw console.error(`Error unpacking field '${C.name}' at index ${V}, offset ${a+C.offset}:`,u),u}}if(q?.reduceValue)x.push(q.reduceValue(k));else x.push(k)}return x},describe(){return O}}}var RY=(A)=>A?q9(A.buffer):null,SY=(A)=>A?QA.fromArray(new Float32Array(g9(A))):void 0,hY=pq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:RY,unpackTransform:SY}],["bg","pointer",{optional:!0,packTransform:RY,unpackTransform:SY}],["attributes","u32",{optional:!0}]]),fK=pq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Lq=pq([["row","u32"],["col","u32"],["offset","u32"]]),Aq=pq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),E9=o_({wcwidth:0,unicode:1},"u8"),zY=pq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",E9],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),BY=pq([["width","u8"],["char","u32"]]),Ug=pq([["starts",["u32"]],["startsLen","u32",{lengthOf:"starts"}],["widths",["u32"]],["widthsLen","u32",{lengthOf:"widths"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["maxWidth","u32"]]),wY=pq([["lineCount","u32"],["maxWidth","u32"]]),CY=pq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),F9=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),VE=F9.default;if(gQ(VE))VE=VE.replace("../","");if(!i_(VE))throw Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);WA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});WA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});WA({name:"OPENTUI_NO_GRAPHICS",description:"Disable Kitty graphics protocol detection",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var Cg=null,x6=null,kY=!1;function K9(A){let g=l_(A||VE,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool"],returns:"ptr"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorStyle:{args:["ptr","ptr","u32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"}});if(XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)return{symbols:Z9(g.symbols)};return g}function Z9(A){if(!Cg)Cg={};if(XA.OTUI_DEBUG_FFI&&!x6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;x6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&x6){let E=x6,F=(K)=>{let Z=new TextEncoder().encode(K+`
12
+ `);E.write(Z),E.flush()};Object.entries(A).forEach(([K,Z])=>{if(typeof Z==="function")q[K]=(...j)=>{F(`${K}(${j.map((O)=>String(O)).join(", ")})`);let U=Z(...j);return F(`${K} returned: ${String(U)}`),U}})}if(XA.OTUI_TRACE_FFI)g=!0,Object.entries(A).forEach(([E,F])=>{if(typeof F==="function"){if(!Cg[E])Cg[E]=[];let K=q[E];q[E]=(...Z)=>{let j=performance.now(),U=K(...Z),O=performance.now();return Cg[E].push(O-j),U}}});if((XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)&&!kY)kY=!0,process.on("exit",()=>{try{if(x6)x6.end()}catch(E){}if(Cg){let E=[];for(let[Z,j]of Object.entries(Cg)){if(!Array.isArray(j)||j.length===0)continue;let U=[...j].sort((C,u)=>C-u),O=U.length,Y=U.reduce((C,u)=>C+u,0),M=Y/O,J=U[0],$=U[O-1],_=Math.floor(O/2),T=Math.floor(O*0.9),x=Math.floor(O*0.99),V=U[_],a=U[Math.min(T,O-1)],k=U[Math.min(x,O-1)];E.push({name:Z,count:O,total:Y,average:M,min:J,max:$,median:V,p90:a,p99:k})}E.sort((Z,j)=>j.total-Z.total);let F=[];if(F.push(`
13
+ --- OpenTUI FFI Call Performance ---`),F.push("Sorted by total time spent (descending)"),F.push("-------------------------------------------------------------------------------------------------------------------------"),E.length===0)F.push("No trace data collected or all symbols had zero calls.");else{let T=Math.max(6,...E.map((z)=>z.name.length)),x=Math.max(5,...E.map((z)=>String(z.count).length)),V=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),a=Math.max(8,...E.map((z)=>z.average.toFixed(2).length)),k=Math.max(8,...E.map((z)=>z.min.toFixed(2).length)),C=Math.max(8,...E.map((z)=>z.max.toFixed(2).length)),u=Math.max(8,...E.map((z)=>z.median.toFixed(2).length)),c=Math.max(8,...E.map((z)=>z.p90.toFixed(2).length)),R=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(T)} | ${"Calls".padStart(x)} | ${"Total (ms)".padStart(V)} | ${"Avg (ms)".padStart(a)} | ${"Min (ms)".padStart(k)} | ${"Max (ms)".padStart(C)} | ${"Med (ms)".padStart(u)} | ${"P90 (ms)".padStart(c)} | ${"P99 (ms)".padStart(R)}`),F.push(`${"-".repeat(T)}-+-${"-".repeat(x)}-+-${"-".repeat(V)}-+-${"-".repeat(a)}-+-${"-".repeat(k)}-+-${"-".repeat(C)}-+-${"-".repeat(u)}-+-${"-".repeat(c)}-+-${"-".repeat(R)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(T)} | ${String(z.count).padStart(x)} | ${z.total.toFixed(2).padStart(V)} | ${z.average.toFixed(2).padStart(a)} | ${z.min.toFixed(2).padStart(k)} | ${z.max.toFixed(2).padStart(C)} | ${z.median.toFixed(2).padStart(u)} | ${z.p90.toFixed(2).padStart(c)} | ${z.p99.toFixed(2).padStart(R)}`)})}F.push("-------------------------------------------------------------------------------------------------------------------------");let K=F.join(`
14
+ `);console.log(K);try{let U=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(U,K)}catch(Z){console.error("Failed to write FFI trace file:",Z)}}});return q}var UQ;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(UQ||={});class EU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new t_;_anyEventHandlers=[];constructor(A){this.opentui=K9(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new VY((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=XE(g,0,F),Z=new Uint8Array(K),j=this.decoder.decode(Z);switch(q){case 0:console.error(j);break;case 1:console.warn(j);break;case 2:console.info(j);break;case 3:console.debug(j);break;default:console.log(j)}}catch(F){console.error("Error in Zig log callback:",F)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new VY((q,g,E,F)=>{try{let K=typeof g==="bigint"?Number(g):g,Z=typeof F==="bigint"?Number(F):F;if(K===0||!q)return;let j=XE(q,0,K),U=new Uint8Array(j),O=this.decoder.decode(U),Y;if(Z>0&&E)Y=XE(E,0,Z).slice();else Y=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(O,Y);for(let M of this._anyEventHandlers)M(O,Y)})}catch(K){console.error("Error in native event callback:",K)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw Error("Failed to create event callback");this.setEventCallback(A.ptr)}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={testing:!1}){return this.opentui.symbols.createRenderer(A,q,g.testing)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Og(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Og(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),F=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,F))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,F,K,Z){let j=this.encoder.encode(q),U=j.byteLength,O=K?K.buffer:null,Y=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,Y,O,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,O=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,O,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,O=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,O,U,Z??0)}bufferFillRect(A,q,g,E,F,K){let Z=K.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,F,Z)}bufferDrawSuperSampleBuffer(A,q,g,E,F,K,Z){let j=K==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,F,j,Z)}bufferDrawPackedBuffer(A,q,g,E,F,K,Z){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,F,K,Z)}bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawBox(A,q,g,E,F,K,Z,j,U,O){let Y=O?this.encoder.encode(O):null,M=O?Y.length:0,J=O?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,J,M)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorStyle(A,q,g){let E=this.encoder.encode(q);this.opentui.symbols.setCursorStyle(A,E,q.length,g)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(CY.size);this.opentui.symbols.getCursorState(A,qA(q));let g=CY.unpack(q),E={0:"block",1:"line",2:"underline"};return{x:g.x,y:g.y,visible:g.visible,style:E[g.style]||"block",blinking:g.blinking,color:QA.fromValues(g.r,g.g,g.b,g.a)}}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,F){if(Number.isNaN(A)||Number.isNaN(q))console.error(Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let K=g==="wcwidth"?0:1,Z=F||"unnamed buffer",j=this.encoder.encode(Z),U=this.opentui.symbols.createOptimizedBuffer(A,q,E,K,j,j.length);if(!U)throw Error(`Failed to create optimized buffer: ${A}x${q}`);return new Og(this,U,A,q,{respectAlpha:E,id:F,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,F,K,Z,j){let U=F??0,O=K??0,Y=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,O,Y,M)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}addToHitGrid(A,q,g,E,F,K){this.opentui.symbols.addToHitGrid(A,q,g,E,F,K)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,F){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,F)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,F,K){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,F,K)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,qA(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw Error("Failed to create TextBuffer");return new nK(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){let g=q.filter((K)=>K.text.length>0);if(g.length===0){this.textBufferClear(A);return}let E=g.map((K)=>{if(K.link){let Z=this.linkAlloc(K.link.url);return{...K,attributes:tY(K.attributes??0,Z)}}return K}),F=hY.packList(E);this.opentui.symbols.textBufferSetStyledText(A,qA(F),E.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.textBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}textBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,K,Z)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,F,j,U)}textBufferViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,F,K)}textBufferViewUpdateLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,F,j,U)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,F){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,F)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer(Ug.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Ug.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(wY.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return wY.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=fK.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=fK.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,qA(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,qA(g));if(!E)return[];let F=Number(g[0]),K=F*fK.size,Z=XE(E,0,K),j=fK.unpackList(Z,F);return this.opentui.symbols.textBufferFreeLineHighlights(E,F),j}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,F,K){this.opentui.symbols.editorViewSetViewport(A,q,g,E,F,K)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),F=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,qA(q),qA(g),qA(E),qA(F)),{offsetX:q[0],offsetY:g[0],width:E[0],height:F[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Ug.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Ug.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,F){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,F)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Lq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Lq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Lq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Lq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Lq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Lq.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.editBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}editBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}editorViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,K,Z)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,F,K,Z,j,U){let O=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,O,Y,j,U)}editorViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,F,K)}editorViewUpdateLocalSelection(A,q,g,E,F,K,Z,j,U){let O=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,O,Y,j,U)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,qA(q),qA(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),Aq.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),Aq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),Aq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),Aq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),Aq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),Aq.unpack(q)}bufferPushScissorRect(A,q,g,E,F){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,F)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(zY.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=zY.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,F=new ArrayBuffer(8),K=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,qA(F),qA(K),E))return null;let j=new BigUint64Array(F),U=new BigUint64Array(K),O=Number(j[0]),Y=Number(U[0]);if(Y===0)return{ptr:O,data:[]};let M=Y*BY.size,J=XE(O,0,M),$=BY.unpackList(J,Y);return{ptr:O,data:$}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,F,K,Z=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,F.buffer,K.buffer,Z)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,F){let K=this.encoder.encode(q),Z=g?g.buffer:null,j=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,K,K.length,Z,j,F)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((F)=>F.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=hY.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,qA(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}var GQ,dK;function Jq(){if(!dK)try{dK=new EU(GQ)}catch(A){throw Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return dK}try{dK=new EU(GQ)}catch(A){}class nK{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return Jq().createTextBuffer(A)}guard(){if(this._destroyed)throw Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard();let q=A.chunks.map((g)=>({text:g.text,fg:g.fg||null,bg:g.bg||null,attributes:g.attributes??0,link:g.link}));this.lib.textBufferSetStyledText(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function U9(A,q){if(typeof q.width==="number"){if(q.width<0)throw TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function S6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function Vq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return S6(A)}function Wq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}function bq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return S6(A)}function G9(A){return A==="relative"||A==="absolute"}function Y9(A){return A==="visible"||A==="hidden"||A==="scroll"}function cK(A){return bq(A)}function DY(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Gg(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}var YQ=Symbol.for("@opentui/core/Renderable"),QQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(QQ||={});var OQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(OQ||={});function R6(A){return!!A?.[YQ]}class aE extends j9{[YQ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=aE.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}}var rK=lK.Config.create();rK.setUseWebDefaults(!1);rK.setPointScaleFactor(1);class kA extends aE{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,kA.renderablesByNumber.set(this.num,this),U9(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=lK.Node.create(rK),this.yogaNode.setDisplay(this._visible?Qg.Flex:Qg.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?Qg.Flex:Qg.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(R6(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(bq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(bq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(bq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(bq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(cK(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(cK(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,F)=>{let K=q==="y"?E.y:E.x,Z=q==="y"?F.y:F.x;return K-Z}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(DY(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Gg(A.minWidth))q.setMinWidth(A.minWidth);if(Gg(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",F=typeof A.height==="number";this._flexShrink=E||F?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(yj(A.flexDirection)),q.setFlexWrap(fj(A.flexWrap)),q.setAlignItems(Dj(A.alignItems)),q.setJustifyContent(bj(A.justifyContent)),q.setAlignSelf(kj(A.alignSelf)),cK(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(cK(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(mj(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(vj(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Gg(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Gg(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(Vq(A.margin))q.setMargin(t.Top,A.margin),q.setMargin(t.Right,A.margin),q.setMargin(t.Bottom,A.margin),q.setMargin(t.Left,A.margin);if(Vq(A.marginTop))q.setMargin(t.Top,A.marginTop);if(Vq(A.marginRight))q.setMargin(t.Right,A.marginRight);if(Vq(A.marginBottom))q.setMargin(t.Bottom,A.marginBottom);if(Vq(A.marginLeft))q.setMargin(t.Left,A.marginLeft);if(Wq(A.padding))q.setPadding(t.Top,A.padding),q.setPadding(t.Right,A.padding),q.setPadding(t.Bottom,A.padding),q.setPadding(t.Left,A.padding);if(Wq(A.paddingTop))q.setPadding(t.Top,A.paddingTop);if(Wq(A.paddingRight))q.setPadding(t.Right,A.paddingRight);if(Wq(A.paddingBottom))q.setPadding(t.Bottom,A.paddingBottom);if(Wq(A.paddingLeft))q.setPadding(t.Left,A.paddingLeft)}set position(A){if(!G9(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(mj(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!Y9(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(vj(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:F,left:K}=A;if(bq(g))if(g==="auto")q.setPositionAuto(t.Top);else q.setPosition(t.Top,g);if(bq(E))if(E==="auto")q.setPositionAuto(t.Right);else q.setPosition(t.Right,E);if(bq(F))if(F==="auto")q.setPositionAuto(t.Bottom);else q.setPosition(t.Bottom,F);if(bq(K))if(K==="auto")q.setPositionAuto(t.Left);else q.setPosition(t.Left,K);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(yj(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(fj(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(Dj(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(bj(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(kj(A)),this.requestRender()}set flexBasis(A){if(DY(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Gg(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Gg(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Gg(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Gg(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(Vq(A)){let q=this.yogaNode;q.setMargin(t.Top,A),q.setMargin(t.Right,A),q.setMargin(t.Bottom,A),q.setMargin(t.Left,A),this.requestRender()}}set marginTop(A){if(Vq(A))this.yogaNode.setMargin(t.Top,A),this.requestRender()}set marginRight(A){if(Vq(A))this.yogaNode.setMargin(t.Right,A),this.requestRender()}set marginBottom(A){if(Vq(A))this.yogaNode.setMargin(t.Bottom,A),this.requestRender()}set marginLeft(A){if(Vq(A))this.yogaNode.setMargin(t.Left,A),this.requestRender()}set padding(A){if(Wq(A)){let q=this.yogaNode;q.setPadding(t.Top,A),q.setPadding(t.Right,A),q.setPadding(t.Bottom,A),q.setPadding(t.Left,A),this.requestRender()}}set paddingTop(A){if(Wq(A))this.yogaNode.setPadding(t.Top,A),this.requestRender()}set paddingRight(A){if(Wq(A))this.yogaNode.setPadding(t.Right,A),this.requestRender()}set paddingBottom(A){if(Wq(A))this.yogaNode.setPadding(t.Bottom,A),this.requestRender()}set paddingLeft(A){if(Wq(A))this.yogaNode.setPadding(t.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,F=this._heightValue;this._x=A.left,this._y=A.top;let K=Math.max(A.width,1),Z=Math.max(A.height,1),j=E!==K||F!==Z;if(this._widthValue=K,this._heightValue=Z,j)this.onLayoutResize(K,Z);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=Og.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=cj(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let F=g.getLayoutNode(),K=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(F,K),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),K}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=cj(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!R6(q))throw Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),F=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(F,0,g),this.yogaNode.insertChild(g.getLayoutNode(),F),this._shouldUpdateBefore.add(g),this.requestRender(),F}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((K)=>K.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let F=this._childrenInZIndexOrder.findIndex((K)=>K.id===A);if(F!==-1)this._childrenInZIndexOrder.splice(F,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let K of this._shouldUpdateBefore)if(!K.isDestroyed)K.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let K=this.getScissorRect();q.push({action:"pushScissorRect",x:K.x,y:K.y,width:K.width,height:K.height,screenX:this.x,screenY:this.y})}let F=this._getVisibleChildren();for(let K of this._childrenInZIndexOrder){if(!F.includes(K.num)){K.updateFromLayout();continue}K.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),kA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}}class FU extends kA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=lK.Node.create(rK),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(qq.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,P6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var O9=Symbol.for("@opentui/core/VNode");function J9(A){return typeof A==="function"&&A.prototype&&kA.prototype.isPrototypeOf(A.prototype)}function JQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...JQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function MQ(A){return A&&A[O9]}function cj(A,q){if(R6(q))return q;if(MQ(q))return uK(A,q);return console.warn("maybeMakeRenderable received an invalid node",Q9.inspect(q,{depth:2})),null}function dj(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(K)=>{if(g.has(K)){let j=g.get(K);if(j!==void 0)return j}let Z=A.findDescendantById(K);if(Z)g.set(K,Z);return Z};return new Proxy(A,{get(K,Z,j){if(typeof Z==="string"&&q[Z]){let U=E(q[Z]);if(U){let O=U[Z];if(typeof O==="function")return O.bind(U);return O}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let O=E(q[Z]);if(O)return Reflect.set(O,Z,j)}return Reflect.set(K,Z,j,U)}})}function uK(A,q){if(R6(q))return q;if(!q||typeof q!=="object")throw TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=JQ(g.children||[]),Z=g.__delegateMap;if(J9(E)){let O=new E(A,F||{});for(let J of K)if(R6(J))O.add(J);else{let $=uK(A,J);O.add($)}let Y=dj(O,Z),M=g.__pendingCalls;if(M)for(let J of M)if(J.isProperty)Y[J.method]=J.args[0];else Y[J.method].apply(Y,J.args);return Y}let j=E(F||{},K),U=uK(A,j);return dj(U,Z)}class $Q extends H9{output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}}class pj extends X9{stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}}var xE={enter:"return",esc:"escape"};function TE(A,q){return{...A,...q}}function mg(A,q){let g=new Map;for(let E of A){let F=cg(E);g.set(F,E)}for(let E of q){let F=cg(E);g.set(F,E)}return Array.from(g.values())}function cg(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function fg(A,q){let g=new Map,E=q||{};for(let F of A){let K=cg(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=cg({...F,name:K});g.set(Z,F.action)}}return g}function L9(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function V9(){let q=Error().stack?.split(`
15
+ `).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,F=g.match(E);if(!F)return null;let K=F[1]||"<anonymous>",Z=F[2],j=Z.split(/[\\/]/).pop()||"<unknown>",U=parseInt(F[3],10)||0,O=parseInt(F[4],10)||0;return{functionName:K,fullPath:Z,fileName:j,lineNumber:U,columnNumber:O}}var Yq=dg("ConsoleCapture",()=>new $Q);WA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});class XQ extends _Q{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!XA.OTUI_USE_CONSOLE)return;let A=new pj("stdout",Yq),q=new pj("stderr",Yq);global.console=new M9({stdout:A,stderr:q,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){console.log=(...A)=>{this.appendToConsole("LOG",...A)},console.info=(...A)=>{this.appendToConsole("INFO",...A)},console.warn=(...A)=>{this.appendToConsole("WARN",...A)},console.error=(...A)=>{this.appendToConsole("ERROR",...A)},console.debug=(...A)=>{this.appendToConsole("DEBUG",...A)}}setCollectCallerInfo(A){this._collectCallerInfo=A}clearConsole(){this._cachedLogs=[]}setCachingEnabled(A){this._cachingEnabled=A}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole;this.setupConsoleCapture()}addLogEntry(A,...q){let g=this._collectCallerInfo?V9():null,E=[new Date,A,q,g];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(E)}return E}appendToConsole(A,...q){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let g=this.addLogEntry(A,...q);this.emit("entry",g)}destroy(){this.deactivate()}}var dA=dg("TerminalConsoleCache",()=>{let A=new XQ;return process.on("exit",()=>{A.destroy()}),A}),HQ;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(HQ||={});var zj=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],W9={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:QA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:QA.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:QA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Yg=2;class KU extends _Q{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isSelecting=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let A=this._mergedKeyBindings.filter((g)=>g.action==="copy-selection"),q=A[A.length-1];if(q)return`[Copy (${L9(q)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(A,q={}){super();if(this.renderer=A,this.options={...W9,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,dA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=d(this.options.colorInfo),this._rgbaWarn=d(this.options.colorWarn),this._rgbaError=d(this.options.colorError),this._rgbaDebug=d(this.options.colorDebug),this._rgbaDefault=d(this.options.colorDefault),this.backgroundColor=d(this.options.backgroundColor),this._rgbaTitleBar=d(this.options.titleBarColor),this._rgbaTitleBarText=d(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=d(this.options.cursorColor),this._rgbaSelection=d(this.options.selectionColor),this._rgbaCopyButton=d(this.options.copyButtonColor),this._keyAliasMap=TE(xE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=mg(zj,this._keyBindings),this._keyBindingsMap=fg(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},dA.on("entry",this._entryListener),XA.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){dA.activate()}deactivate(){dA.deactivate()}_handleNewLog(A){if(!this.isVisible)return;if(this._allLogEntries.push(A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let q=this._processLogEntry(A);if(this._displayLines.push(...q),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let g=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-g)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(A,q){let g=A??this.renderer.width,E=q??this.renderer.height,F=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=g,this.consoleHeight=Math.max(1,Math.floor(E*F));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(E*F)),this.consoleWidth=g,this.consoleX=0,this.consoleY=E-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleY=0,this.consoleX=g-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(A){if(A.name==="escape"){this.blur();return}let q=cg({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"scroll-up"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E){E();return}}}scrollUp(){let A=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let A=this._displayLines.length,q=Math.max(1,this.consoleHeight-1),g=Math.max(0,A-q);if(this.currentLineIndex<q-1&&this.scrollTopIndex+this.currentLineIndex<A-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<g)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===g,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let A=Math.max(1,this.consoleHeight-1),q=Math.max(0,this._displayLines.length-A);if(this.scrollTopIndex<q||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let q=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let q=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(A){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(A)}formatArguments(A){return A.map((q)=>{if(q instanceof Error){let g=q;return`Error: ${g.message}
16
+ `+(g.stack?`${g.stack}
17
+ `:"")}if(typeof q==="object"&&q!==null)try{return yY.inspect(q,{depth:2})}catch(g){return String(q)}try{return yY.inspect(q,{depth:2})}catch(g){return String(q)}}).join(" ")}resize(A,q){if(this._updateConsoleDimensions(A,q),this.frameBuffer){this.frameBuffer.resize(this.consoleWidth,this.consoleHeight);let g=this._displayLines.length,E=Math.max(1,this.consoleHeight-1),F=Math.max(0,g-E);this.scrollTopIndex=Math.min(this.scrollTopIndex,F),this.isScrolledToBottom=this.scrollTopIndex===F;let K=Math.min(E,g-this.scrollTopIndex);if(this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,K-1)),this.isVisible)this.markNeedsRerender()}}clear(){dA.clearConsole(),this._allLogEntries=[],this._displayLines=[],this.markNeedsRerender()}toggle(){if(this.isVisible)if(this.isFocused)this.hide();else this.focus();else this.show();if(!this.renderer.isRunning)this.renderer.requestRender()}focus(){this.attachStdin(),this._scrollToBottom(!0),this.markNeedsRerender()}blur(){this.detachStdin(),this.markNeedsRerender()}show(){if(!this.isVisible){if(this.isVisible=!0,this._processCachedLogs(),dA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=Og.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=dA.cachedLogs.length,q=Math.min(this.consoleHeight,A);this.currentLineIndex=Math.max(0,q-1),this.scrollTopIndex=0,this._scrollToBottom(!0),this.focus(),this.markNeedsRerender()}}hide(){if(this.isVisible)this.isVisible=!1,this.blur(),dA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),dA.off("entry",this._entryListener)}getCachedLogs(){return dA.cachedLogs.map((A)=>A[0].toISOString()+" "+A.slice(1).join(" ")).join(`
18
+ `)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let A=this._displayLines,q=A.length,g=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let E=`${this._title}${this.isFocused?" (Focused)":""}`,F=Math.max(0,Math.floor((this.consoleWidth-E.length)/2));this.frameBuffer.drawText(E,F,0,this._rgbaTitleBarText,this._rgbaTitleBar);let K=this.getCopyButtonLabel(),Z=this.consoleWidth-K.length-1;if(Z>=0){let M=this.hasSelection(),J=QA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:J;this.frameBuffer.drawText(K,Z,0,$,this._rgbaTitleBar),this._copyButtonBounds={x:Z,y:0,width:K.length,height:1}}else this._copyButtonBounds={x:-1,y:-1,width:0,height:0};let j=this.scrollTopIndex,U=Math.min(j+g,q),O=A.slice(j,U),Y=1;for(let M=0;M<O.length;M++){if(Y>=this.consoleHeight)break;let J=O[M],$=j+M,_=this._rgbaDefault;switch(J.level){case"INFO":_=this._rgbaInfo;break;case"WARN":_=this._rgbaWarn;break;case"ERROR":_=this._rgbaError;break;case"DEBUG":_=this._rgbaDebug;break}let T=J.indent?" ".repeat(Yg):"",x=J.text,V=this.consoleWidth-1-(J.indent?Yg:0);if(this.isFocused&&Y-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,Y,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,Y,this._rgbaDefault,this.backgroundColor);let k=`${T}${x.substring(0,V)}`,C=this.getLineSelectionRange($);if(C){let u=Math.max(0,C.start),c=Math.min(k.length,C.end);if(u>0)this.frameBuffer.drawText(k.substring(0,u),1,Y,_);if(u<c)this.frameBuffer.fillRect(1+u,Y,c-u,1,this._rgbaSelection),this.frameBuffer.drawText(k.substring(u,c),1+u,Y,_,this._rgbaSelection);if(c<k.length)this.frameBuffer.drawText(k.substring(c),1+c,Y,_)}else this.frameBuffer.drawText(k,1,Y,_);Y++}}renderToBuffer(A){if(!this.isVisible||!this.frameBuffer)return;if(this._needsFrameBufferUpdate)this.updateFrameBuffer(),this._needsFrameBufferUpdate=!1;A.drawFrameBuffer(this.consoleX,this.consoleY,this.frameBuffer)}setDebugMode(A){if(this._debugModeEnabled=A,dA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=mg(zj,A),this._keyBindingsMap=fg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=TE(xE,A),this._mergedKeyBindings=mg(zj,this._keyBindings),this._keyBindingsMap=fg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set onCopySelection(A){this.options.onCopySelection=A}get onCopySelection(){return this.options.onCopySelection}_scrollToBottom(A=!1){let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);this.scrollTopIndex=E,this.isScrolledToBottom=!0;let F=Math.min(g,q-this.scrollTopIndex);if(A||this.currentLineIndex>=F)this.currentLineIndex=Math.max(0,F-1)}_processLogEntry(A){let[q,g,E,F]=A,K=[],Z=this.formatTimestamp(q),j=F?`${F.fileName}:${F.lineNumber}`:"unknown",U=`[${Z}] [${g}]`+(this._debugModeEnabled?` [${j}]`:"")+" ",Y=this.formatArguments(E).split(`
19
+ `);for(let M=0;M<Y.length;M++){let J=Y[M],$=M===0,_=this.consoleWidth-1-($?0:Yg),T=$?U:" ".repeat(Yg),x=$?T+J:J,V=0;while(V<x.length||$&&V===0&&x.length===0){let a=x.substring(V,V+_),k=V===0;if(K.push({text:k&&!$?T+a:a,level:g,indent:!$||!k}),V+=_,$&&V===0&&x.length===0)break}}return K}_processCachedLogs(){let A=[...dA.cachedLogs];if(dA.clearConsole(),this._allLogEntries.push(...A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);for(let q of A){let g=this._processLogEntry(q);this._displayLines.push(...g)}if(this._displayLines.length>this.options.maxDisplayLines)this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines)}hasSelection(){if(this._selectionStart===null||this._selectionEnd===null)return!1;return this._selectionStart.line!==this._selectionEnd.line||this._selectionStart.col!==this._selectionEnd.col}normalizeSelection(){if(!this._selectionStart||!this._selectionEnd)return null;let A=this._selectionStart,q=this._selectionEnd;if(A.line<q.line||A.line===q.line&&A.col<=q.col)return{startLine:A.line,startCol:A.col,endLine:q.line,endCol:q.col};else return{startLine:q.line,startCol:q.col,endLine:A.line,endCol:A.col}}getSelectedText(){let A=this.normalizeSelection();if(!A)return"";let q=[];for(let g=A.startLine;g<=A.endLine;g++){if(g<0||g>=this._displayLines.length)continue;let E=this._displayLines[g],F=E.indent?" ".repeat(Yg):"",K=this.consoleWidth-1-(E.indent?Yg:0),Z=F+E.text.substring(0,K),j=Z;if(g===A.startLine&&g===A.endLine)j=Z.substring(A.startCol,A.endCol);else if(g===A.startLine)j=Z.substring(A.startCol);else if(g===A.endLine)j=Z.substring(0,A.endCol);q.push(j)}return q.join(`
20
+ `)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isSelecting=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let F=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(F,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(Yg):"",F=this.consoleWidth-1-(g.indent?Yg:0),K=E.length+Math.min(g.text.length,F),Z=0,j=K;if(A===q.startLine)Z=Math.max(0,q.startCol);if(A===q.endLine)j=Math.min(K,q.endCol);if(Z>=j)return null;return{start:Z,end:j}}handleMouse(A){if(!this.isVisible)return!1;let q=A.x-this.consoleX,g=A.y-this.consoleY;if(q<0||q>=this.consoleWidth||g<0||g>=this.consoleHeight)return!1;if(A.type==="scroll"&&A.scroll){if(A.scroll.direction==="up")this.scrollUp();else if(A.scroll.direction==="down")this.scrollDown();return!0}if(g===0){if(A.type==="down"&&A.button===0&&q>=this._copyButtonBounds.x&&q<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let E=this.scrollTopIndex+(g-1),F=Math.max(0,q-1);if(A.type==="down"&&A.button===0)return this.clearSelection(),this._selectionStart={line:E,col:F},this._selectionEnd={line:E,col:F},this._isSelecting=!0,this.markNeedsRerender(),!0;if(A.type==="drag"&&this._isSelecting){this._selectionEnd={line:E,col:F};let K=Math.max(1,this.consoleHeight-1),Z=g-1;if(Z<=0)this.startAutoScroll("up");else if(Z>=K-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(A.type==="up"){if(this._isSelecting)this._selectionEnd={line:E,col:F},this._isSelecting=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let q=`_console_${Date.now()}.log`,g=$9.join(process.cwd(),q),E=[...this._allLogEntries,...dA.cachedLogs],F=[];for(let[Z,j,U,O]of E){let Y=this.formatTimestamp(Z),M=O?`${O.fileName}:${O.lineNumber}`:"unknown",J=`[${Y}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(J+$)}let K=F.join(`
21
+ `);_9.writeFileSync(g,K,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}}var yq={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(A)=>`\x1B[${A}T`,scrollUp:(A)=>`\x1B[${A}S`,moveCursor:(A,q)=>`\x1B[${A};${q}H`,moveCursorAndClear:(A,q)=>`\x1B[${A};${q}H\x1B[J`,setRgbBackground:(A,q,g)=>`\x1B[48;2;${A};${q};${g}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};function ZU(A,q,g="column",E=10,F=16){if(A.width<=0||A.height<=0)return[];if(q.length===0)return[];if(q.length<F)return q;let K=A.y-E,Z=A.y+A.height+E,j=A.x-E,U=A.x+A.width+E,O=g==="row",Y=q,M=Y.length;if(M===0)return[];let J=O?j:K,$=O?U:Z,_=0,T=M-1,x=-1;while(_<=T){let c=_+T>>1,R=Y[c],z=O?R.x:R.y;if((O?R.x+R.width:R.y+R.height)<J)_=c+1;else if(z>$)T=c-1;else{x=c;break}}let V=[];if(x===-1)x=_>0?_-1:0;let a=50,k=x,C=0;while(k-1>=0){let c=Y[k-1];if((O?c.x+c.width:c.y+c.height)<=J){if(C++,C>=a)break}else C=0;k--}let u=x+1;while(u<M){let c=Y[u];if((O?c.x:c.y)>=$)break;u++}for(let c=k;c<u;c++){let R=Y[c],z=O?R.x:R.y;if((O?R.x+R.width:R.y+R.height)<=J)continue;if(z>=$)break;if(O){if(R.y+R.height<K)continue;if(R.y>Z)continue}else{if(R.x+R.width<j)continue;if(R.x>U)continue}V.push(R)}if(V.length>1)V.sort((c,R)=>c.zIndex>R.zIndex?1:c.zIndex<R.zIndex?-1:0);return V}function x9(A){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(A))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(A))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(A))return!0;if(/\x1b\[\?[0-9;]*c/.test(A))return!0;return!1}function T9(A){return/\x1b\[4;\d+;\d+t/.test(A)}function I9(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}WA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});WA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});WA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});WA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});WA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});var LQ=1,a9=2,VQ=4,P9=8,R9=16;function WQ(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=LQ;if(A.alternateKeys!==!1)q|=VQ;if(A.events===!0)q|=a9;if(A.allKeysAsEscapes===!0)q|=P9;if(A.reportText===!0)q|=R9;return q}class CA{type;button;x;y;source;modifiers;scroll;target;isSelecting;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isSelecting=q.isSelecting}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}var NQ;((A)=>{A[A.LEFT=0]="LEFT",A[A.MIDDLE=1]="MIDDLE",A[A.RIGHT=2]="RIGHT",A[A.WHEEL_UP=4]="WHEEL_UP",A[A.WHEEL_DOWN=5]="WHEEL_DOWN"})(NQ||={});var bY=dg("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),P_("tree-sitter-client"))FQ().destroy(),a_("tree-sitter-client")}}}});async function jU(A={}){if(process.argv.includes("--delay-start"))await new Promise((M)=>setTimeout(M,5000));let q=A.stdin||process.stdin,g=A.stdout||process.stdout,E=g.columns||80,F=g.rows||24,K=A.experimental_splitHeight&&A.experimental_splitHeight>0?A.experimental_splitHeight:F,Z=Jq(),j=Z.createRenderer(E,K);if(!j)throw Error("Failed to create renderer");if(A.useThread===void 0)A.useThread=!0;if(process.platform==="linux")A.useThread=!1;Z.setUseThread(j,A.useThread);let U=A.useKittyKeyboard??{},O=WQ(U);Z.setKittyKeyboardFlags(j,O);let Y=new oK(Z,j,q,g,E,F,A);return await Y.setupTerminal(),Y}var xQ;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(xQ||={});var TQ;((A)=>{A.IDLE="idle",A.AUTO_STARTED="auto_started",A.EXPLICIT_STARTED="explicit_started",A.EXPLICIT_PAUSED="explicit_paused",A.EXPLICIT_SUSPENDED="explicit_suspended",A.EXPLICIT_STOPPED="explicit_stopped"})(TQ||={});class oK extends N9{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;targetFps=30;maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=QA.fromInts(0,0,0,0);waitingForPixelResolution=!1;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this.targetFps;minTargetFrameTime=1000/this.maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:XA.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;_stdinBuffer;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;_useAlternateScreen=XA.OTUI_USE_ALTERNATE_SCREEN;_suspendedMouseEnabled=!1;_previousControlState="idle";capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];_splitHeight=0;renderOffset=0;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;realStdoutWrite;captureCallback=()=>{if(this._splitHeight>0)this.requestRender()};_useConsole=!0;mouseParser=new NE;sigwinchHandler=(()=>{let A=this.stdout.columns||80,q=this.stdout.rows||24;this.handleResize(A,q)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_cachedPalette=null;_paletteDetectionPromise=null;_onDestroy;inputHandlers=[];prependedInputHandlers=[];idleResolvers=[];_debugInputs=[];_debugModeEnabled=XA.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=Yq.claimOutput();if(g.length>0||q.length>0)this.realStdoutWrite.call(this.stdout,A);if(q.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
22
+ `),this.realStdoutWrite.call(this.stdout,q);if(g.length>0)this.realStdoutWrite.call(this.stdout,`
23
+ Captured output:
24
+ `),this.realStdoutWrite.call(this.stdout,g+`
25
+ `);this.realStdoutWrite.call(this.stdout,yq.reset)}exitHandler=(()=>{if(this.destroy(),XA.OTUI_DUMP_CAPTURES)Bun.sleep(100).then(()=>{this.dumpOutputCache(`=== CAPTURED OUTPUT ===
26
+ `)})}).bind(this);warningHandler=((A)=>{console.warn(JSON.stringify(A.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(A,q,g,E,F,K,Z={}){super();if(bY.addRenderer(this),this.stdin=g,this.stdout=E,this.realStdoutWrite=E.write,this.lib=A,this._terminalWidth=E.columns??F,this._terminalHeight=E.rows??K,this.width=F,this.height=K,this._useThread=Z.useThread===void 0?!1:Z.useThread,this._splitHeight=Z.experimental_splitHeight||0,this._splitHeight>0)Yq.on("write",this.captureCallback),this.renderOffset=K-this._splitHeight,this.height=this._splitHeight,A.setRenderOffset(q,this.renderOffset);if(this.rendererPtr=q,this.exitOnCtrlC=Z.exitOnCtrlC===void 0?!0:Z.exitOnCtrlC,this.exitSignals=Z.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS","SIGFPE"],this.resizeDebounceDelay=Z.debounceDelay||100,this.targetFps=Z.targetFps||30,this.maxFps=Z.maxFps||60,this.targetFrameTime=1000/this.targetFps,this.minTargetFrameTime=1000/this.maxFps,this.memorySnapshotInterval=Z.memorySnapshotInterval??0,this.gatherStats=Z.gatherStats||!1,this.maxStatSamples=Z.maxStatSamples||300,this.enableMouseMovement=Z.enableMouseMovement??!0,this._useMouse=Z.useMouse??!0,this._useAlternateScreen=Z.useAlternateScreen??XA.OTUI_USE_ALTERNATE_SCREEN,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=Z.postProcessFns||[],this.prependedInputHandlers=Z.prependInputHandlers||[],this.root=new FU(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(XA.OTUI_OVERRIDE_STDOUT)this.stdout.write=this.interceptStdoutWrite.bind(this);process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(Z.useKittyKeyboard??{})!==null;if(this._keyHandler=new ij(U),this._keyHandler.on("keypress",(Y)=>{if(this.exitOnCtrlC&&Y.name==="c"&&Y.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new sj({timeout:5}),this._console=new KU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(Y)=>{let M=oK.animationFrameId++;return this.animationRequest.set(M,Y),this.requestLive(),M},global.cancelAnimationFrame=(Y)=>{this.animationRequest.delete(Y)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,XA.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.addListener(A,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.removeListener(A,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(A){this.lifecyclePasses.add(A)}unregisterLifecyclePass(A){this.lifecyclePasses.delete(A)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}focusRenderable(A){if(this._currentFocusedRenderable===A)return;if(this._currentFocusedRenderable)this._currentFocusedRenderable.blur();this._currentFocusedRenderable=A}setCapturedRenderable(A){if(this.capturedRenderable===A)return;this.capturedRenderable=A}addToHitGrid(A,q,g,E,F){if(F!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,A,q,g,E,F)}pushHitGridScissorRect(A,q,g,E){this.lib.hitGridPushScissorRect(this.rendererPtr,A,q,g,E)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}writeOut(A,q,g){if(this.rendererPtr&&this._useThread){let E=typeof A==="string"?A:A?.toString()??"";if(this.lib.writeOut(this.rendererPtr,E),typeof g==="function")process.nextTick(g);return!0}return this.realStdoutWrite.call(this.stdout,A,q,g)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let q=Date.now()-this.lastTime,g=Math.max(this.minTargetFrameTime-q,0);if(g===0){process.nextTick(()=>this.activateFrame());return}setTimeout(()=>this.activateFrame(),g)}}async activateFrame(){await this.loop(),this.updateScheduled=!1,this.resolveIdleIfNeeded()}get useConsole(){return this._useConsole}set useConsole(A){if(this._useConsole=A,A)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let A=this.idleResolvers.splice(0);for(let q of A)q()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((A)=>{this.idleResolvers.push(A)})}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get useMouse(){return this._useMouse}set useMouse(A){if(this._useMouse===A)return;if(this._useMouse=A,A)this.enableMouse();else this.disableMouse()}get experimental_splitHeight(){return this._splitHeight}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(A){let q=A?LQ|VQ:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,q)}set experimental_splitHeight(A){if(A<0)A=0;let q=this._splitHeight;if(A>0){if(this._splitHeight=A,this.renderOffset=this._terminalHeight-this._splitHeight,this.height=this._splitHeight,q===0){this.useConsole=!1,Yq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=yq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=yq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=yq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Yq.off("write",this.captureCallback),this.useConsole=!0;this._splitHeight=0,this.renderOffset=0,this.height=this._terminalHeight}this.width=this._terminalWidth,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset),this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}interceptStdoutWrite=(A,q,g)=>{let E=A.toString();if(Yq.write("stdout",E),this._splitHeight>0)this.requestRender();if(typeof g==="function")process.nextTick(g);return!0};disableStdoutInterception(){this.stdout.write=this.realStdoutWrite}flushStdoutCache(A,q=!1){if(Yq.size===0&&!q)return!1;let g=Yq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=yq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=yq.moveCursor(K,1),j="";if(A>0){let U=this.backgroundColor.toInts(),O=" ".repeat(this.width)+`
27
+ `.repeat(A);if(U[3]===0)j=O;else j=yq.setRgbBackground(U[0],U[1],U[2])+O+yq.resetBackground}return this.writeOut(F+Z+g+j),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.mouseParser.reset(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{if(this._useMouse&&this.handleMouseData(A))return;this._stdinBuffer.process(A)}).bind(this);addInputHandler(A){this.inputHandlers.push(A)}prependInputHandler(A){this.inputHandlers.unshift(A)}removeInputHandler(A){this.inputHandlers=this.inputHandlers.filter((q)=>q!==A)}capabilityHandler=((A)=>{if(x9(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I")return this.emit("focus"),!0;if(A==="\x1B[O")return this.emit("blur"),!0;return!1}).bind(this);setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(T9(A)&&this.waitingForPixelResolution){let q=I9(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler((A)=>{return this._keyHandler.processInput(A)}),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.setEncoding("utf8"),this.stdin.on("data",this.stdinListener),this._stdinBuffer.on("data",(A)=>{if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.inputHandlers)if(q(A))return}),this._stdinBuffer.on("paste",(A)=>{this._keyHandler.processPaste(A)})}handleMouseData(A){let q=this.mouseParser.parseMouseEvent(A);if(q){if(this._splitHeight>0){if(q.y<this.renderOffset)return!1;q.y-=this.renderOffset}if(this._latestPointer.x=q.x,this._latestPointer.y=q.y,this._hasPointer=!0,this._lastPointerModifiers=q.modifiers,this._console.visible){let Z=this._console.bounds;if(q.x>=Z.x&&q.x<Z.x+Z.width&&q.y>=Z.y&&q.y<Z.y+Z.height){let j=new CA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=kA.renderablesByNumber.get(Z);if(j){let U=new CA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=kA.renderablesByNumber.get(g);if(q.type==="down"&&q.button===0&&!this.currentSelection?.isSelecting&&!q.modifiers.ctrl){if(F&&F.selectable&&!F.isDestroyed&&F.shouldStartSelection(q.x,q.y)){this.startSelection(F,q.x,q.y);let Z=new CA(F,q);return F.processMouseEvent(Z),!0}}if(q.type==="drag"&&this.currentSelection?.isSelecting){if(this.updateSelection(F,q.x,q.y),F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return this.finishSelection(),!0}if(q.type==="down"&&q.button===0&&this.currentSelection){if(q.modifiers.ctrl)return this.currentSelection.isSelecting=!0,this.updateSelection(F,q.x,q.y),!0}if(!E&&(q.type==="drag"||q.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable){let Z=new CA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new CA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new CA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new CA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new CA(this.capturedRenderable,q)),F){let j=new CA(F,{...q,type:"drop",source:this.capturedRenderable});F.processMouseEvent(j)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let K=void 0;if(F){if(q.type==="drag"&&q.button===0)this.setCapturedRenderable(F);else this.setCapturedRenderable(void 0);K=new CA(F,q),F.processMouseEvent(K)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!K?.defaultPrevented&&q.type==="down"&&this.currentSelection)this.clearSelection();return!0}return!1}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=kA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g){let F=new CA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new CA(q,{...E,type:"over"});q.processMouseEvent(F)}}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.mouseParser.reset(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,F=yq.moveCursorAndClear(E,1);this.writeOut(F)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=d(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){Jq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Jq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Jq().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A,q=!1,g){if(this.lib.setCursorStyle(this.rendererPtr,A,q),g)this.lib.setCursorColor(this.rendererPtr,g)}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this._stdinBuffer.clear(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){this._isRunning=!1}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),Yq.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this._stdinBuffer.destroy(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdin.removeListener("data",this.stdinListener),this.lib.destroyRenderer(this.rendererPtr),bY.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),F=Array.from(this.animationRequest.values());this.animationRequest.clear();let K=performance.now();for(let Y of F)Y(g),this.dropLive();let j=performance.now()-K,U=performance.now();for(let Y of this.frameCallbacks)try{await Y(g)}catch(M){console.error("Error in frame callback:",M)}let O=performance.now();this.renderStats.frameCallbackTime=O-U,this.root.render(this.nextRenderBuffer,g);for(let Y of this.postProcessFns)Y(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let Y=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,Y,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(Y);if(this._isRunning||this.immediateRerenderRequested){let M=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,J=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},J)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((K,Z)=>K+Z,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,F=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:F}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new nj(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},this.selectionContainers.length>0){let E=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,E)){let F=E.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isSelecting){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=kA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isSelecting=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let F=ZU(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let K of F){if(K.selectable){if(K.onSelectionChanged(this.currentSelection))g.push(K);E.push(K)}if(K.getChildrenCount()>0)this.walkSelectableRenderables(K,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=jQ(this.stdin,this.stdout,this.writeOut.bind(this),g)}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}import{EventEmitter as S9}from"events";class _U{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Jq(),g=q.createTextBufferView(A.ptr);return new _U(q,g,A)}guard(){if(this._destroyed)throw Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}updateLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class lq extends S9{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),lq.registry.set(this.id,this),lq.subscribeToNativeEvents(A)}static create(A){let q=Jq(),g=q.createEditBuffer(A);return new lq(q,g)}static subscribeToNativeEvents(A){if(lq.nativeEventsSubscribed)return;lq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=lq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let F=1048576,K=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,F);if(!K)return"";return this.lib.decoder.decode(K)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,lq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class $U{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=Jq(),F=E.createEditorView(A.ptr,q,g);return new $U(E,F,A)}guard(){if(this._destroyed)throw Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,F=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,F)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}updateLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=ZQ(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function h9(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=d(g.style.foreground);if(g.style.background)E.bg=d(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let F of g.scope)q[F]=E}return q}class BE{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=Jq(),q=A.createSyntaxStyle();return new BE(A,q)}static fromTheme(A){let q=BE.create(),g=h9(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=BE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=WE({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let Z of A){let j=this.getStyle(Z);if(!j)continue;if(j.fg)E.fg=j.fg;if(j.bg)E.bg=j.bg;if(j.bold!==void 0)E.bold=j.bold;if(j.italic!==void 0)E.italic=j.italic;if(j.underline!==void 0)E.underline=j.underline;if(j.dim!==void 0)E.dim=j.dim}let F=WE({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),K={fg:E.fg,bg:E.bg,attributes:F};return this.mergedCache.set(q,K),K}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class DQ{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}var KL=new DQ;function h6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}class s extends kA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(this._backgroundColor=d(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=iK(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=d(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=d(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?bg(this._customBorderCharsObj):void 0,this.borderSides=tK(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=tK(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?bg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=d(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=tK(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iK(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=d(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=d(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,F=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-F)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(t.Left,this.borderSides.left?1:0),A.setBorder(t.Right,this.borderSides.right?1:0),A.setBorder(t.Top,this.borderSides.top?1:0),A.setBorder(t.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(h6(A.gap))q.setGap(Oq.All,A.gap);if(h6(A.rowGap))q.setGap(Oq.Row,A.rowGap);if(h6(A.columnGap))q.setGap(Oq.Column,A.columnGap)}set gap(A){if(h6(A))this.yogaNode.setGap(Oq.All,A),this.requestRender()}set rowGap(A){if(h6(A))this.yogaNode.setGap(Oq.Row,A),this.requestRender()}set columnGap(A){if(h6(A))this.yogaNode.setGap(Oq.Column,A),this.requestRender()}}class yQ extends kA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:QA.fromValues(1,1,1,1),bg:QA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);this._defaultFg=d(q.fg??this._defaultOptions.fg),this._defaultBg=d(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?d(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?d(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?d(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=nK.create(this._ctx.widthMethod),this.textBufferView=_U.create(this.textBuffer);let g=BE.create();if(this.textBuffer.setSyntaxStyle(g),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.maxLineWidth}get scrollHeight(){return this.lineInfo.lineStarts.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=d(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?d(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?d(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=d(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?d(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===cq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.textBufferView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,O=j?Math.max(1,j.lineCount):1;if(g===cq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,O)};return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=rj(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}}var bQ=Symbol.for("@opentui/core/TextNodeRenderable");function eK(A){return!!A?.[bQ]}function IQ(A){return A.chunks.map((q)=>{let g=new CE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class CE extends aE{[bQ]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?d(A.fg):void 0,this._bg=A.bg?d(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(eK(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(nY(A)){let g=IQ(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((F)=>F.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((F)=>F.parent=this),this.requestRender(),E}throw Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!eK(q))throw Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(eK(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof IE){let E=IQ(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let F=E.gatherWithInheritedStyle(q);g.push(...F)}return this.markClean(),g}static fromString(A,q={}){let g=new CE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new CE(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>eK(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=d(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=d(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}}class vQ extends CE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class iq{diff(A,q,g={}){let E;if(typeof g==="function")E=g,g={};else if("callback"in g)E=g.callback;let F=this.castInput(A,g),K=this.castInput(q,g),Z=this.removeEmpty(this.tokenize(F,g)),j=this.removeEmpty(this.tokenize(K,g));return this.diffWithOptionsObj(Z,j,g,E)}diffWithOptionsObj(A,q,g,E){var F;let K=(V)=>{if(V=this.postProcess(V,g),E){setTimeout(function(){E(V)},0);return}else return V},Z=q.length,j=A.length,U=1,O=Z+j;if(g.maxEditLength!=null)O=Math.min(O,g.maxEditLength);let Y=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+Y,J=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(J[0],q,A,0,g);if(J[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(J[0].lastComponent,q,A));let _=-1/0,T=1/0,x=()=>{for(let V=Math.max(_,-U);V<=Math.min(T,U);V+=2){let a,k=J[V-1],C=J[V+1];if(k)J[V-1]=void 0;let u=!1;if(C){let R=C.oldPos-V;u=C&&0<=R&&R<Z}let c=k&&k.oldPos+1<j;if(!u&&!c){J[V]=void 0;continue}if(!c||u&&k.oldPos<C.oldPos)a=this.addToPath(C,!0,!1,0,g);else a=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(a,q,A,V,g),a.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(a.lastComponent,q,A))||!0;else{if(J[V]=a,a.oldPos+1>=j)T=Math.min(T,V-1);if($+1>=Z)_=Math.max(_,V+1)}}U++};if(E)(function V(){setTimeout(function(){if(U>O||Date.now()>M)return E(void 0);if(!x())V()},0)})();else while(U<=O&&Date.now()<=M){let V=x();if(V)return V}}addToPath(A,q,g,E,F){let K=A.lastComponent;if(K&&!F.oneChangePerToken&&K.added===q&&K.removed===g)return{oldPos:A.oldPos+E,lastComponent:{count:K.count+1,added:q,removed:g,previousComponent:K.previousComponent}};else return{oldPos:A.oldPos+E,lastComponent:{count:1,added:q,removed:g,previousComponent:K}}}extractCommon(A,q,g,E,F){let K=q.length,Z=g.length,j=A.oldPos,U=j-E,O=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,O++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(O&&!F.oneChangePerToken)A.lastComponent={count:O,previousComponent:A.lastComponent,added:!1,removed:!1};return A.oldPos=j,U}equals(A,q,g){if(g.comparator)return g.comparator(A,q);else return A===q||!!g.ignoreCase&&A.toLowerCase()===q.toLowerCase()}removeEmpty(A){let q=[];for(let g=0;g<A.length;g++)if(A[g])q.push(A[g]);return q}castInput(A,q){return A}tokenize(A,q){return Array.from(A)}join(A){return A.join("")}postProcess(A,q){return A}get useLongestToken(){return!1}buildValues(A,q,g){let E=[],F;while(A)E.push(A),F=A.previousComponent,delete A.previousComponent,A=F;E.reverse();let K=E.length,Z=0,j=0,U=0;for(;Z<K;Z++){let O=E[Z];if(!O.removed){if(!O.added&&this.useLongestToken){let Y=q.slice(j,j+O.count);Y=Y.map(function(M,J){let $=g[U+J];return $.length>M.length?$:M}),O.value=this.join(Y)}else O.value=this.join(q.slice(j,j+O.count));if(j+=O.count,!O.added)U+=O.count}else O.value=this.join(g.slice(U,U+O.count)),U+=O.count}return E}}class mQ extends iq{}var ZL=new mQ;function aQ(A,q){let g;for(g=0;g<A.length&&g<q.length;g++)if(A[g]!=q[g])return A.slice(0,g);return A.slice(0,g)}function PQ(A,q){let g;if(!A||!q||A[A.length-1]!=q[q.length-1])return"";for(g=0;g<A.length&&g<q.length;g++)if(A[A.length-(g+1)]!=q[q.length-(g+1)])return A.slice(-g);return A.slice(-g)}function GU(A,q,g){if(A.slice(0,q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't start with prefix ${JSON.stringify(q)}; this is a bug`);return g+A.slice(q.length)}function YU(A,q,g){if(!q)return A+g;if(A.slice(-q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't end with suffix ${JSON.stringify(q)}; this is a bug`);return A.slice(0,-q.length)+g}function PE(A,q){return GU(A,q,"")}function AZ(A,q){return YU(A,q,"")}function RQ(A,q){return q.slice(0,z9(A,q))}function z9(A,q){let g=0;if(A.length>q.length)g=A.length-q.length;let E=q.length;if(A.length<q.length)E=A.length;let F=Array(E),K=0;F[0]=0;for(let Z=1;Z<E;Z++){if(q[Z]==q[K])F[Z]=F[K];else F[Z]=K;while(K>0&&q[Z]!=q[K])K=F[K];if(q[Z]==q[K])K++}K=0;for(let Z=g;Z<A.length;Z++){while(K>0&&A[Z]!=q[K])K=F[K];if(A[Z]==q[K])K++}return K}function RE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function Jg(A){let q=A.match(/^\s*/);return q?q[0]:""}var gZ="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",B9=new RegExp(`[${gZ}]+|\\s+|[^${gZ}]`,"ug");class fQ extends iq{equals(A,q,g){if(g.ignoreCase)A=A.toLowerCase(),q=q.toLowerCase();return A.trim()===q.trim()}tokenize(A,q={}){let g;if(q.intlSegmenter){let K=q.intlSegmenter;if(K.resolvedOptions().granularity!="word")throw Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(B9)||[];let E=[],F=null;return g.forEach((K)=>{if(/\s/.test(K))if(F==null)E.push(K);else E.push(E.pop()+K);else if(F!=null&&/\s/.test(F))if(E[E.length-1]==F)E.push(E.pop()+K);else E.push(F+K);else E.push(K);F=K}),E}join(A){return A.map((q,g)=>{if(g==0)return q;else return q.replace(/^\s+/,"")}).join("")}postProcess(A,q){if(!A||q.oneChangePerToken)return A;let g=null,E=null,F=null;if(A.forEach((K)=>{if(K.added)E=K;else if(K.removed)F=K;else{if(E||F)SQ(g,F,E,K);g=K,E=null,F=null}}),E||F)SQ(g,F,E,null);return A}}var jL=new fQ;function SQ(A,q,g,E){if(q&&g){let F=Jg(q.value),K=RE(q.value),Z=Jg(g.value),j=RE(g.value);if(A){let U=aQ(F,Z);A.value=YU(A.value,Z,U),q.value=PE(q.value,U),g.value=PE(g.value,U)}if(E){let U=PQ(K,j);E.value=GU(E.value,j,U),q.value=AZ(q.value,U),g.value=AZ(g.value,U)}}else if(g){if(A){let F=Jg(g.value);g.value=g.value.substring(F.length)}if(E){let F=Jg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=Jg(E.value),K=Jg(q.value),Z=RE(q.value),j=aQ(F,K);q.value=PE(q.value,j);let U=PQ(PE(F,j),Z);q.value=AZ(q.value,U),E.value=GU(E.value,F,U),A.value=YU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=Jg(E.value),K=RE(q.value),Z=RQ(K,F);q.value=AZ(q.value,Z)}else if(A){let F=RE(A.value),K=Jg(q.value),Z=RQ(F,K);q.value=PE(q.value,Z)}}class cQ extends iq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${gZ}]+|[^\\S\\n\\r]+|[^${gZ}]`,"ug");return A.match(q)||[]}}var UL=new cQ;class dQ extends iq{constructor(){super(...arguments);this.tokenize=pQ}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
28
+ `))A=A.trim();if(!g.newlineIsToken||!q.includes(`
29
+ `))q=q.trim()}else if(g.ignoreNewlineAtEof&&!g.newlineIsToken){if(A.endsWith(`
30
+ `))A=A.slice(0,-1);if(q.endsWith(`
31
+ `))q=q.slice(0,-1)}return super.equals(A,q,g)}}var GL=new dQ;function pQ(A,q){if(q.stripTrailingCr)A=A.replace(/\r\n/g,`
32
+ `);let g=[],E=A.split(/(\n|\r\n)/);if(!E[E.length-1])E.pop();for(let F=0;F<E.length;F++){let K=E[F];if(F%2&&!q.newlineIsToken)g[g.length-1]+=K;else g.push(K)}return g}function w9(A){return A=="."||A=="!"||A=="?"}class uQ extends iq{tokenize(A){var q;let g=[],E=0;for(let F=0;F<A.length;F++){if(F==A.length-1){g.push(A.slice(E));break}if(w9(A[F])&&A[F+1].match(/\s/)){g.push(A.slice(E,F+1)),F=E=F+1;while((q=A[F+1])===null||q===void 0?void 0:q.match(/\s/))F++;g.push(A.slice(E,F+1)),E=F+1}}return g}}var YL=new uQ;class lQ extends iq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var QL=new lQ;class iQ extends iq{constructor(){super(...arguments);this.tokenize=pQ}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K>"u"?g:K}=q;return typeof A==="string"?A:JSON.stringify(QU(A,null,null,E),null," ")}equals(A,q,g){return super.equals(A.replace(/,([\r\n])/g,"$1"),q.replace(/,([\r\n])/g,"$1"),g)}}var OL=new iQ;function QU(A,q,g,E,F){if(q=q||[],g=g||[],E)A=E(F===void 0?"":F,A);let K;for(K=0;K<q.length;K+=1)if(q[K]===A)return g[K];let Z;if(Object.prototype.toString.call(A)==="[object Array]"){q.push(A),Z=Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=QU(A[K],q,g,E,String(K));return q.pop(),g.pop(),Z}if(A&&A.toJSON)A=A.toJSON();if(typeof A==="object"&&A!==null){q.push(A),Z={},g.push(Z);let j=[],U;for(U in A)if(Object.prototype.hasOwnProperty.call(A,U))j.push(U);j.sort();for(K=0;K<j.length;K+=1)U=j[K],Z[U]=QU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class tQ extends iq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var JL=new tQ;class o extends yQ{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?sK(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new vQ(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?sK(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new IE(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=sK("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}}class sQ extends kA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:QA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:QA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=d(q.textColor??this._defaultOptions.textColor),this._backgroundColor=d(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?d(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?d(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=d(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?d(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=lq.create(this._ctx.widthMethod),this.editorView=$U.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=d(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?d(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?d(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=d(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=d(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?d(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let F=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,F,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-E.height),Z=Math.min(E.offsetY+g,K);this.editorView.setViewport(E.offsetX,Z,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let F=Math.max(0,E.offsetX-g);this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let F=E.offsetX+g;this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=rj(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,F;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),F=!0;else if(A?.isStart)F=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else F=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(F&&q?.isActive&&A?.isSelecting){let K=this.editorView.getViewport(),Z=q.focusY,j=Math.max(1,Math.floor(K.height*this._scrollMargin));if(Z<j)this._autoScrollVelocity=-this._scrollSpeed;else if(Z>=K.height-j)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(F)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,F=this.editorView.getViewport(),K=this.editorView.getTotalVirtualLineCount(),Z=Math.max(0,K-F.height),j=Math.max(0,Math.min(F.offsetY+E*g,Z));if(j!==F.offsetY)this.editorView.setViewport(F.offsetX,j,F.width,F.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===cq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.editorView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,O=j?Math.max(1,j.lineCount):1;if(g===cq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,O)};return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorColor(this._cursorColor),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking)}focus(){super.focus(),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking),this._ctx.setCursorColor(this._cursorColor),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,F=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,F);return}this._ctx.updateSelection(this,E,F)}}var UU=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"}];class xq extends sQ{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=xq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=d(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=d(q.textColor||g.textColor),this._focusedBackgroundColor=d(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=d(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=d(q.placeholderColor??g.placeholderColor),this._keyAliasMap=TE(xE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=mg(UU,this._keyBindings);if(this._keyBindingsMap=fg(F,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[rY(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=cg({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),F=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<F-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){if(this._placeholder!==A)this._placeholder=A,this.applyPlaceholder(A),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=d(A??xq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=d(A??xq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=d(A??xq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=d(A??xq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=d(A??xq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=mg(UU,A);this._keyBindingsMap=fg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=TE(xE,A);let q=mg(UU,this._keyBindings);this._keyBindingsMap=fg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var C9;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(C9||={});class ZZ extends xq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=ZZ.defaultOptions,E=q.maxLength??g.maxLength,K=(q.value??g.value).replace(/[\n\r]/g,"").substring(0,E);super(A,{...q,placeholder:q.placeholder??g.placeholder,initialValue:K,height:1,wrapMode:"none",keyBindings:[{name:"return",action:"submit"},{name:"linefeed",action:"submit"},...q.keyBindings||[]]});if(this._maxLength=E,this._lastCommittedValue=this.plainText,K)this.cursorOffset=K.length}newLine(){return!1}handlePaste(A){let q=A.text.replace(/[\n\r]/g,"");if(q)this.insertText(q)}insertText(A){let q=A.replace(/[\n\r]/g,"");if(!q)return;let g=this.plainText.length,E=this._maxLength-g;if(E<=0)return;let F=q.substring(0,E);super.insertText(F),this.emit("input",this.plainText)}get value(){return this.plainText}set value(A){let q=A.substring(0,this._maxLength).replace(/[\n\r]/g,"");if(this.plainText!==q)this.setText(q),this.cursorOffset=q.length,this.emit("input",q)}focus(){super.focus(),this._lastCommittedValue=this.plainText}blur(){if(!this.isDestroyed){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A)}super.blur()}submit(){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A);return this.emit("enter",A),!0}deleteCharBackward(){let A=super.deleteCharBackward();return this.emit("input",this.plainText),A}deleteChar(){let A=super.deleteChar();return this.emit("input",this.plainText),A}deleteCharacter(A){if(A==="backward")this.deleteCharBackward();else this.deleteChar()}set maxLength(A){this._maxLength=A;let q=this.plainText;if(q.length>A)this.setText(q.substring(0,A))}get maxLength(){return this._maxLength}set placeholder(A){super.placeholder=A}get placeholder(){let A=super.placeholder;return typeof A==="string"?A:""}set initialValue(A){}}function XU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ug=XU();function nQ(A){ug=A}var wE={exec:()=>null};function UA(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(F,K)=>{let Z=typeof K=="string"?K:K.source;return Z=Z.replace(fA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var k9=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),fA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},D9=/^(?:[ \t]*(?:\n|$))+/,y9=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,b9=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,kE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,v9=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,HU=/(?:[*+-]|\d{1,9}[.)])/,rQ=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oQ=UA(rQ).replace(/bull/g,HU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),m9=UA(rQ).replace(/bull/g,HU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),LU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,f9=/^[^\n]+/,VU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,c9=UA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",VU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),d9=UA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,HU).getRegex(),jZ="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",WU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,p9=UA("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",WU).replace("tag",jZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),eQ=UA(LU).replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),u9=UA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",eQ).getRegex(),NU={blockquote:u9,code:y9,def:c9,fences:b9,heading:v9,hr:kE,html:p9,lheading:oQ,list:d9,newline:D9,paragraph:eQ,table:wE,text:f9},hQ=UA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),l9={...NU,lheading:m9,table:hQ,paragraph:UA(LU).replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",hQ).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex()},i9={...NU,html:UA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",WU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:wE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:UA(LU).replace("hr",kE).replace("heading",` *#{1,6} *[^
33
+ ]`).replace("lheading",oQ).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},t9=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,s9=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,AO=/^( {2,}|\\)\n(?!\s*$)/,n9=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,UZ=/[\p{P}\p{S}]/u,xU=/[\s\p{P}\p{S}]/u,qO=/[^\s\p{P}\p{S}]/u,r9=UA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,xU).getRegex(),gO=/(?!~)[\p{P}\p{S}]/u,o9=/(?!~)[\s\p{P}\p{S}]/u,e9=/(?:[^\s\p{P}\p{S}]|~)/u,A$=UA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",k9?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),EO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,q$=UA(EO,"u").replace(/punct/g,UZ).getRegex(),g$=UA(EO,"u").replace(/punct/g,gO).getRegex(),FO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",E$=UA(FO,"gu").replace(/notPunctSpace/g,qO).replace(/punctSpace/g,xU).replace(/punct/g,UZ).getRegex(),F$=UA(FO,"gu").replace(/notPunctSpace/g,e9).replace(/punctSpace/g,o9).replace(/punct/g,gO).getRegex(),K$=UA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,qO).replace(/punctSpace/g,xU).replace(/punct/g,UZ).getRegex(),Z$=UA(/\\(punct)/,"gu").replace(/punct/g,UZ).getRegex(),j$=UA(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),U$=UA(WU).replace("(?:-->|$)","-->").getRegex(),G$=UA("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",U$).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),EZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Y$=UA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",EZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),KO=UA(/^!?\[(label)\]\[(ref)\]/).replace("label",EZ).replace("ref",VU).getRegex(),ZO=UA(/^!?\[(ref)\](?:\[\])?/).replace("ref",VU).getRegex(),Q$=UA("reflink|nolink(?!\\()","g").replace("reflink",KO).replace("nolink",ZO).getRegex(),zQ=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,TU={_backpedal:wE,anyPunctuation:Z$,autolink:j$,blockSkip:A$,br:AO,code:s9,del:wE,emStrongLDelim:q$,emStrongRDelimAst:E$,emStrongRDelimUnd:K$,escape:t9,link:Y$,nolink:ZO,punctuation:r9,reflink:KO,reflinkSearch:Q$,tag:G$,text:n9,url:wE},O$={...TU,link:UA(/^!?\[(label)\]\((.*?)\)/).replace("label",EZ).getRegex(),reflink:UA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",EZ).getRegex()},OU={...TU,emStrongRDelimAst:F$,emStrongLDelim:g$,url:UA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",zQ).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:UA(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",zQ).getRegex()},J$={...OU,br:UA(AO).replace("{2,}","*").getRegex(),text:UA(OU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},qZ={normal:NU,gfm:l9,pedantic:i9},SE={normal:TU,gfm:OU,breaks:J$,pedantic:O$},M$={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},BQ=(A)=>M$[A];function uq(A,q){if(q){if(fA.escapeTest.test(A))return A.replace(fA.escapeReplace,BQ)}else if(fA.escapeTestNoEncode.test(A))return A.replace(fA.escapeReplaceNoEncode,BQ);return A}function wQ(A){try{A=encodeURI(A).replace(fA.percentDecode,"%")}catch{return null}return A}function CQ(A,q){let g=A.replace(fA.findPipe,(K,Z,j)=>{let U=!1,O=Z;for(;--O>=0&&j[O]==="\\";)U=!U;return U?"|":" |"}),E=g.split(fA.splitPipe),F=0;if(E[0].trim()||E.shift(),E.length>0&&!E.at(-1)?.trim()&&E.pop(),q)if(E.length>q)E.splice(q);else for(;E.length<q;)E.push("");for(;F<E.length;F++)E[F]=E[F].trim().replace(fA.slashPipe,"|");return E}function hE(A,q,g){let E=A.length;if(E===0)return"";let F=0;for(;F<E;){let K=A.charAt(E-F-1);if(K===q&&!g)F++;else if(K!==q&&g)F++;else break}return A.slice(0,E-F)}function _$(A,q){if(A.indexOf(q[1])===-1)return-1;let g=0;for(let E=0;E<A.length;E++)if(A[E]==="\\")E++;else if(A[E]===q[0])g++;else if(A[E]===q[1]&&(g--,g<0))return E;return g>0?-2:-1}function kQ(A,q,g,E,F){let K=q.href,Z=q.title||null,j=A[1].replace(F.other.outputLinkReplace,"$1");E.state.inLink=!0;let U={type:A[0].charAt(0)==="!"?"image":"link",raw:g,href:K,title:Z,text:j,tokens:E.inlineTokens(j)};return E.state.inLink=!1,U}function $$(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let F=E[1];return q.split(`
34
+ `).map((K)=>{let Z=K.match(g.other.beginningSpace);if(Z===null)return K;let[j]=Z;return j.length>=F.length?K.slice(F.length):K}).join(`
35
+ `)}var FZ=class{options;rules;lexer;constructor(A){this.options=A||ug}space(A){let q=this.rules.block.newline.exec(A);if(q&&q[0].length>0)return{type:"space",raw:q[0]}}code(A){let q=this.rules.block.code.exec(A);if(q){let g=q[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:q[0],codeBlockStyle:"indented",text:this.options.pedantic?g:hE(g,`
36
+ `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=$$(g,q[3]||"",this.rules);return{type:"code",raw:g,lang:q[2]?q[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):q[2],text:E}}}heading(A){let q=this.rules.block.heading.exec(A);if(q){let g=q[2].trim();if(this.rules.other.endingHash.test(g)){let E=hE(g,"#");(this.options.pedantic||!E||this.rules.other.endingSpaceChar.test(E))&&(g=E.trim())}return{type:"heading",raw:q[0],depth:q[1].length,text:g,tokens:this.lexer.inline(g)}}}hr(A){let q=this.rules.block.hr.exec(A);if(q)return{type:"hr",raw:hE(q[0],`
37
+ `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=hE(q[0],`
38
+ `).split(`
39
+ `),E="",F="",K=[];for(;g.length>0;){let Z=!1,j=[],U;for(U=0;U<g.length;U++)if(this.rules.other.blockquoteStart.test(g[U]))j.push(g[U]),Z=!0;else if(!Z)j.push(g[U]);else break;g=g.slice(U);let O=j.join(`
40
+ `),Y=O.replace(this.rules.other.blockquoteSetextReplace,`
41
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");E=E?`${E}
42
+ ${O}`:O,F=F?`${F}
43
+ ${Y}`:Y;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(Y,K,!0),this.lexer.state.top=M,g.length===0)break;let J=K.at(-1);if(J?.type==="code")break;if(J?.type==="blockquote"){let $=J,_=$.raw+`
44
+ `+g.join(`
45
+ `),T=this.blockquote(_);K[K.length-1]=T,E=E.substring(0,E.length-$.raw.length)+T.raw,F=F.substring(0,F.length-$.text.length)+T.text;break}else if(J?.type==="list"){let $=J,_=$.raw+`
46
+ `+g.join(`
47
+ `),T=this.list(_);K[K.length-1]=T,E=E.substring(0,E.length-J.raw.length)+T.raw,F=F.substring(0,F.length-$.raw.length)+T.raw,g=_.substring(K.at(-1).raw.length).split(`
48
+ `);continue}}return{type:"blockquote",raw:E,tokens:K,text:F}}}list(A){let q=this.rules.block.list.exec(A);if(q){let g=q[1].trim(),E=g.length>1,F={type:"list",raw:"",ordered:E,start:E?+g.slice(0,-1):"",loose:!1,items:[]};g=E?`\\d{1,9}\\${g.slice(-1)}`:`\\${g}`,this.options.pedantic&&(g=E?g:"[*+-]");let K=this.rules.other.listItemRegex(g),Z=!1;for(;A;){let U=!1,O="",Y="";if(!(q=K.exec(A))||this.rules.block.hr.test(A))break;O=q[0],A=A.substring(O.length);let M=q[2].split(`
49
+ `,1)[0].replace(this.rules.other.listReplaceTabs,(T)=>" ".repeat(3*T.length)),J=A.split(`
50
+ `,1)[0],$=!M.trim(),_=0;if(this.options.pedantic?(_=2,Y=M.trimStart()):$?_=q[1].length+1:(_=q[2].search(this.rules.other.nonSpaceChar),_=_>4?1:_,Y=M.slice(_),_+=q[1].length),$&&this.rules.other.blankLine.test(J)&&(O+=J+`
51
+ `,A=A.substring(J.length+1),U=!0),!U){let T=this.rules.other.nextBulletRegex(_),x=this.rules.other.hrRegex(_),V=this.rules.other.fencesBeginRegex(_),a=this.rules.other.headingBeginRegex(_),k=this.rules.other.htmlBeginRegex(_);for(;A;){let C=A.split(`
52
+ `,1)[0],u;if(J=C,this.options.pedantic?(J=J.replace(this.rules.other.listReplaceNesting," "),u=J):u=J.replace(this.rules.other.tabCharGlobal," "),V.test(J)||a.test(J)||k.test(J)||T.test(J)||x.test(J))break;if(u.search(this.rules.other.nonSpaceChar)>=_||!J.trim())Y+=`
53
+ `+u.slice(_);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||V.test(M)||a.test(M)||x.test(M))break;Y+=`
54
+ `+J}!$&&!J.trim()&&($=!0),O+=C+`
55
+ `,A=A.substring(C.length+1),M=u.slice(_)}}F.loose||(Z?F.loose=!0:this.rules.other.doubleBlankLine.test(O)&&(Z=!0)),F.items.push({type:"list_item",raw:O,task:!!this.options.gfm&&this.rules.other.listIsTask.test(Y),loose:!1,text:Y,tokens:[]}),F.raw+=O}let j=F.items.at(-1);if(j)j.raw=j.raw.trimEnd(),j.text=j.text.trimEnd();else return;F.raw=F.raw.trimEnd();for(let U of F.items){if(this.lexer.state.top=!1,U.tokens=this.lexer.blockTokens(U.text,[]),U.task){if(U.text=U.text.replace(this.rules.other.listReplaceTask,""),U.tokens[0]?.type==="text"||U.tokens[0]?.type==="paragraph"){U.tokens[0].raw=U.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),U.tokens[0].text=U.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let Y=this.lexer.inlineQueue.length-1;Y>=0;Y--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[Y].src)){this.lexer.inlineQueue[Y].src=this.lexer.inlineQueue[Y].src.replace(this.rules.other.listReplaceTask,"");break}}let O=this.rules.other.listTaskCheckbox.exec(U.raw);if(O){let Y={type:"checkbox",raw:O[0]+" ",checked:O[0]!=="[ ]"};U.checked=Y.checked,F.loose?U.tokens[0]&&["paragraph","text"].includes(U.tokens[0].type)&&"tokens"in U.tokens[0]&&U.tokens[0].tokens?(U.tokens[0].raw=Y.raw+U.tokens[0].raw,U.tokens[0].text=Y.raw+U.tokens[0].text,U.tokens[0].tokens.unshift(Y)):U.tokens.unshift({type:"paragraph",raw:Y.raw,text:Y.raw,tokens:[Y]}):U.tokens.unshift(Y)}}if(!F.loose){let O=U.tokens.filter((M)=>M.type==="space"),Y=O.length>0&&O.some((M)=>this.rules.other.anyLine.test(M.raw));F.loose=Y}}if(F.loose)for(let U of F.items){U.loose=!0;for(let O of U.tokens)O.type==="text"&&(O.type="paragraph")}return F}}html(A){let q=this.rules.block.html.exec(A);if(q)return{type:"html",block:!0,raw:q[0],pre:q[1]==="pre"||q[1]==="script"||q[1]==="style",text:q[0]}}def(A){let q=this.rules.block.def.exec(A);if(q){let g=q[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),E=q[2]?q[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",F=q[3]?q[3].substring(1,q[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):q[3];return{type:"def",tag:g,raw:q[0],href:E,title:F}}}table(A){let q=this.rules.block.table.exec(A);if(!q||!this.rules.other.tableDelimiter.test(q[2]))return;let g=CQ(q[1]),E=q[2].replace(this.rules.other.tableAlignChars,"").split("|"),F=q[3]?.trim()?q[3].replace(this.rules.other.tableRowBlankLine,"").split(`
56
+ `):[],K={type:"table",raw:q[0],header:[],align:[],rows:[]};if(g.length===E.length){for(let Z of E)this.rules.other.tableAlignRight.test(Z)?K.align.push("right"):this.rules.other.tableAlignCenter.test(Z)?K.align.push("center"):this.rules.other.tableAlignLeft.test(Z)?K.align.push("left"):K.align.push(null);for(let Z=0;Z<g.length;Z++)K.header.push({text:g[Z],tokens:this.lexer.inline(g[Z]),header:!0,align:K.align[Z]});for(let Z of F)K.rows.push(CQ(Z,K.header.length).map((j,U)=>({text:j,tokens:this.lexer.inline(j),header:!1,align:K.align[U]})));return K}}lheading(A){let q=this.rules.block.lheading.exec(A);if(q)return{type:"heading",raw:q[0],depth:q[2].charAt(0)==="="?1:2,text:q[1],tokens:this.lexer.inline(q[1])}}paragraph(A){let q=this.rules.block.paragraph.exec(A);if(q){let g=q[1].charAt(q[1].length-1)===`
57
+ `?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let K=hE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=_$(q[2],"()");if(K===-2)return;if(K>-1){let Z=(q[0].indexOf("!")===0?5:4)+q[1].length+K;q[2]=q[2].substring(0,K),q[0]=q[0].substring(0,Z).trim(),q[3]=""}}let E=q[2],F="";if(this.options.pedantic){let K=this.rules.other.pedanticHrefTitle.exec(E);K&&(E=K[1],F=K[3])}else F=q[3]?q[3].slice(1,-1):"";return E=E.trim(),this.rules.other.startAngleBracket.test(E)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(g)?E=E.slice(1):E=E.slice(1,-1)),kQ(q,{href:E&&E.replace(this.rules.inline.anyPunctuation,"$1"),title:F&&F.replace(this.rules.inline.anyPunctuation,"$1")},q[0],this.lexer,this.rules)}}reflink(A,q){let g;if((g=this.rules.inline.reflink.exec(A))||(g=this.rules.inline.nolink.exec(A))){let E=(g[2]||g[1]).replace(this.rules.other.multipleSpaceGlobal," "),F=q[E.toLowerCase()];if(!F){let K=g[0].charAt(0);return{type:"text",raw:K,text:K}}return kQ(g,F,g[0],this.lexer,this.rules)}}emStrong(A,q,g=""){let E=this.rules.inline.emStrongLDelim.exec(A);if(!E||E[3]&&g.match(this.rules.other.unicodeAlphaNumeric))return;if(!(E[1]||E[2])||!g||this.rules.inline.punctuation.exec(g)){let F=[...E[0]].length-1,K,Z,j=F,U=0,O=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(O.lastIndex=0,q=q.slice(-1*A.length+F);(E=O.exec(q))!=null;){if(K=E[1]||E[2]||E[3]||E[4]||E[5]||E[6],!K)continue;if(Z=[...K].length,E[3]||E[4]){j+=Z;continue}else if((E[5]||E[6])&&F%3&&!((F+Z)%3)){U+=Z;continue}if(j-=Z,j>0)continue;Z=Math.min(Z,Z+j+U);let Y=[...E[0]][0].length,M=A.slice(0,F+E.index+Y+Z);if(Math.min(F,Z)%2){let $=M.slice(1,-1);return{type:"em",raw:M,text:$,tokens:this.lexer.inlineTokens($)}}let J=M.slice(2,-2);return{type:"strong",raw:M,text:J,tokens:this.lexer.inlineTokens(J)}}}}codespan(A){let q=this.rules.inline.code.exec(A);if(q){let g=q[2].replace(this.rules.other.newLineCharGlobal," "),E=this.rules.other.nonSpaceChar.test(g),F=this.rules.other.startingSpaceChar.test(g)&&this.rules.other.endingSpaceChar.test(g);return E&&F&&(g=g.substring(1,g.length-1)),{type:"codespan",raw:q[0],text:g}}}br(A){let q=this.rules.inline.br.exec(A);if(q)return{type:"br",raw:q[0]}}del(A){let q=this.rules.inline.del.exec(A);if(q)return{type:"del",raw:q[0],text:q[2],tokens:this.lexer.inlineTokens(q[2])}}autolink(A){let q=this.rules.inline.autolink.exec(A);if(q){let g,E;return q[2]==="@"?(g=q[1],E="mailto:"+g):(g=q[1],E=g),{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}url(A){let q;if(q=this.rules.inline.url.exec(A)){let g,E;if(q[2]==="@")g=q[0],E="mailto:"+g;else{let F;do F=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])?.[0]??"";while(F!==q[0]);g=q[0],q[1]==="www."?E="http://"+q[0]:E=q[0]}return{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}inlineText(A){let q=this.rules.inline.text.exec(A);if(q){let g=this.lexer.state.inRawBlock;return{type:"text",raw:q[0],text:q[0],escaped:g}}}},Mq=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||ug,this.options.tokenizer=this.options.tokenizer||new FZ,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let g={other:fA,block:qZ.normal,inline:SE.normal};this.options.pedantic?(g.block=qZ.pedantic,g.inline=SE.pedantic):this.options.gfm&&(g.block=qZ.gfm,this.options.breaks?g.inline=SE.breaks:g.inline=SE.gfm),this.tokenizer.rules=g}static get rules(){return{block:qZ,inline:SE}}static lex(q,g){return new A(g).lex(q)}static lexInline(q,g){return new A(g).inlineTokens(q)}lex(q){q=q.replace(fA.carriageReturn,`
58
+ `),this.blockTokens(q,this.tokens);for(let g=0;g<this.inlineQueue.length;g++){let E=this.inlineQueue[g];this.inlineTokens(E.src,E.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(q,g=[],E=!1){for(this.options.pedantic&&(q=q.replace(fA.tabCharGlobal," ").replace(fA.spaceLine,""));q;){let F;if(this.options.extensions?.block?.some((Z)=>(F=Z.call({lexer:this},q,g))?(q=q.substring(F.raw.length),g.push(F),!0):!1))continue;if(F=this.tokenizer.space(q)){q=q.substring(F.raw.length);let Z=g.at(-1);F.raw.length===1&&Z!==void 0?Z.raw+=`
59
+ `:g.push(F);continue}if(F=this.tokenizer.code(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="paragraph"||Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
60
+ `)?"":`
61
+ `)+F.raw,Z.text+=`
62
+ `+F.text,this.inlineQueue.at(-1).src=Z.text):g.push(F);continue}if(F=this.tokenizer.fences(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.heading(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.hr(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.blockquote(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.list(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.html(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.def(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="paragraph"||Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
63
+ `)?"":`
64
+ `)+F.raw,Z.text+=`
65
+ `+F.raw,this.inlineQueue.at(-1).src=Z.text):this.tokens.links[F.tag]||(this.tokens.links[F.tag]={href:F.href,title:F.title},g.push(F));continue}if(F=this.tokenizer.table(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.lheading(q)){q=q.substring(F.raw.length),g.push(F);continue}let K=q;if(this.options.extensions?.startBlock){let Z=1/0,j=q.slice(1),U;this.options.extensions.startBlock.forEach((O)=>{U=O.call({lexer:this},j),typeof U=="number"&&U>=0&&(Z=Math.min(Z,U))}),Z<1/0&&Z>=0&&(K=q.substring(0,Z+1))}if(this.state.top&&(F=this.tokenizer.paragraph(K))){let Z=g.at(-1);E&&Z?.type==="paragraph"?(Z.raw+=(Z.raw.endsWith(`
66
+ `)?"":`
67
+ `)+F.raw,Z.text+=`
68
+ `+F.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Z.text):g.push(F),E=K.length!==q.length,q=q.substring(F.raw.length);continue}if(F=this.tokenizer.text(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
69
+ `)?"":`
70
+ `)+F.raw,Z.text+=`
71
+ `+F.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Z.text):g.push(F);continue}if(q){let Z="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Z);break}else throw Error(Z)}}return this.state.top=!0,g}inline(q,g=[]){return this.inlineQueue.push({src:q,tokens:g}),g}inlineTokens(q,g=[]){let E=q,F=null;if(this.tokens.links){let U=Object.keys(this.tokens.links);if(U.length>0)for(;(F=this.tokenizer.rules.inline.reflinkSearch.exec(E))!=null;)U.includes(F[0].slice(F[0].lastIndexOf("[")+1,-1))&&(E=E.slice(0,F.index)+"["+"a".repeat(F[0].length-2)+"]"+E.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(F=this.tokenizer.rules.inline.anyPunctuation.exec(E))!=null;)E=E.slice(0,F.index)+"++"+E.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let K;for(;(F=this.tokenizer.rules.inline.blockSkip.exec(E))!=null;)K=F[2]?F[2].length:0,E=E.slice(0,F.index+K)+"["+"a".repeat(F[0].length-K-2)+"]"+E.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);E=this.options.hooks?.emStrongMask?.call({lexer:this},E)??E;let Z=!1,j="";for(;q;){Z||(j=""),Z=!1;let U;if(this.options.extensions?.inline?.some((Y)=>(U=Y.call({lexer:this},q,g))?(q=q.substring(U.raw.length),g.push(U),!0):!1))continue;if(U=this.tokenizer.escape(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.tag(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.link(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring(U.raw.length);let Y=g.at(-1);U.type==="text"&&Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(U=this.tokenizer.emStrong(q,E,j)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.codespan(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.br(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.del(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.autolink(q)){q=q.substring(U.raw.length),g.push(U);continue}if(!this.state.inLink&&(U=this.tokenizer.url(q))){q=q.substring(U.raw.length),g.push(U);continue}let O=q;if(this.options.extensions?.startInline){let Y=1/0,M=q.slice(1),J;this.options.extensions.startInline.forEach(($)=>{J=$.call({lexer:this},M),typeof J=="number"&&J>=0&&(Y=Math.min(Y,J))}),Y<1/0&&Y>=0&&(O=q.substring(0,Y+1))}if(U=this.tokenizer.inlineText(O)){q=q.substring(U.raw.length),U.raw.slice(-1)!=="_"&&(j=U.raw.slice(-1)),Z=!0;let Y=g.at(-1);Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(q){let Y="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Y);break}else throw Error(Y)}}return g}},KZ=class{options;parser;constructor(A){this.options=A||ug}space(A){return""}code({text:A,lang:q,escaped:g}){let E=(q||"").match(fA.notSpaceStart)?.[0],F=A.replace(fA.endingNewline,"")+`
72
+ `;return E?'<pre><code class="language-'+uq(E)+'">'+(g?F:uq(F,!0))+`</code></pre>
73
+ `:"<pre><code>"+(g?F:uq(F,!0))+`</code></pre>
74
+ `}blockquote({tokens:A}){return`<blockquote>
75
+ ${this.parser.parse(A)}</blockquote>
76
+ `}html({text:A}){return A}def(A){return""}heading({tokens:A,depth:q}){return`<h${q}>${this.parser.parseInline(A)}</h${q}>
77
+ `}hr(A){return`<hr>
78
+ `}list(A){let{ordered:q,start:g}=A,E="";for(let Z=0;Z<A.items.length;Z++){let j=A.items[Z];E+=this.listitem(j)}let F=q?"ol":"ul",K=q&&g!==1?' start="'+g+'"':"";return"<"+F+K+`>
79
+ `+E+"</"+F+`>
80
+ `}listitem(A){return`<li>${this.parser.parse(A.tokens)}</li>
81
+ `}checkbox({checked:A}){return"<input "+(A?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:A}){return`<p>${this.parser.parseInline(A)}</p>
82
+ `}table(A){let q="",g="";for(let F=0;F<A.header.length;F++)g+=this.tablecell(A.header[F]);q+=this.tablerow({text:g});let E="";for(let F=0;F<A.rows.length;F++){let K=A.rows[F];g="";for(let Z=0;Z<K.length;Z++)g+=this.tablecell(K[Z]);E+=this.tablerow({text:g})}return E&&(E=`<tbody>${E}</tbody>`),`<table>
83
+ <thead>
84
+ `+q+`</thead>
85
+ `+E+`</table>
86
+ `}tablerow({text:A}){return`<tr>
87
+ ${A}</tr>
88
+ `}tablecell(A){let q=this.parser.parseInline(A.tokens),g=A.header?"th":"td";return(A.align?`<${g} align="${A.align}">`:`<${g}>`)+q+`</${g}>
89
+ `}strong({tokens:A}){return`<strong>${this.parser.parseInline(A)}</strong>`}em({tokens:A}){return`<em>${this.parser.parseInline(A)}</em>`}codespan({text:A}){return`<code>${uq(A,!0)}</code>`}br(A){return"<br>"}del({tokens:A}){return`<del>${this.parser.parseInline(A)}</del>`}link({href:A,title:q,tokens:g}){let E=this.parser.parseInline(g),F=wQ(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+uq(q)+'"'),K+=">"+E+"</a>",K}image({href:A,title:q,text:g,tokens:E}){E&&(g=this.parser.parseInline(E,this.parser.textRenderer));let F=wQ(A);if(F===null)return uq(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${uq(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:uq(A.text)}},IU=class{strong({text:A}){return A}em({text:A}){return A}codespan({text:A}){return A}del({text:A}){return A}html({text:A}){return A}text({text:A}){return A}link({text:A}){return""+A}image({text:A}){return""+A}br(){return""}checkbox({raw:A}){return A}},_q=class A{options;renderer;textRenderer;constructor(q){this.options=q||ug,this.options.renderer=this.options.renderer||new KZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new IU}static parse(q,g){return new A(g).parse(q)}static parseInline(q,g){return new A(g).parseInline(q)}parse(q){let g="";for(let E=0;E<q.length;E++){let F=q[E];if(this.options.extensions?.renderers?.[F.type]){let Z=F,j=this.options.extensions.renderers[Z.type].call({parser:this},Z);if(j!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(Z.type)){g+=j||"";continue}}let K=F;switch(K.type){case"space":{g+=this.renderer.space(K);break}case"hr":{g+=this.renderer.hr(K);break}case"heading":{g+=this.renderer.heading(K);break}case"code":{g+=this.renderer.code(K);break}case"table":{g+=this.renderer.table(K);break}case"blockquote":{g+=this.renderer.blockquote(K);break}case"list":{g+=this.renderer.list(K);break}case"checkbox":{g+=this.renderer.checkbox(K);break}case"html":{g+=this.renderer.html(K);break}case"def":{g+=this.renderer.def(K);break}case"paragraph":{g+=this.renderer.paragraph(K);break}case"text":{g+=this.renderer.text(K);break}default:{let Z='Token with "'+K.type+'" type was not found.';if(this.options.silent)return console.error(Z),"";throw Error(Z)}}}return g}parseInline(q,g=this.renderer){let E="";for(let F=0;F<q.length;F++){let K=q[F];if(this.options.extensions?.renderers?.[K.type]){let j=this.options.extensions.renderers[K.type].call({parser:this},K);if(j!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){E+=j||"";continue}}let Z=K;switch(Z.type){case"escape":{E+=g.text(Z);break}case"html":{E+=g.html(Z);break}case"link":{E+=g.link(Z);break}case"image":{E+=g.image(Z);break}case"checkbox":{E+=g.checkbox(Z);break}case"strong":{E+=g.strong(Z);break}case"em":{E+=g.em(Z);break}case"codespan":{E+=g.codespan(Z);break}case"br":{E+=g.br(Z);break}case"del":{E+=g.del(Z);break}case"text":{E+=g.text(Z);break}default:{let j='Token with "'+Z.type+'" type was not found.';if(this.options.silent)return console.error(j),"";throw Error(j)}}}return E}},zE=class{options;block;constructor(A){this.options=A||ug}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(A){return A}postprocess(A){return A}processAllTokens(A){return A}emStrongMask(A){return A}provideLexer(){return this.block?Mq.lex:Mq.lexInline}provideParser(){return this.block?_q.parse:_q.parseInline}},X$=class{defaults=XU();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=_q;Renderer=KZ;TextRenderer=IU;Lexer=Mq;Tokenizer=FZ;Hooks=zE;constructor(...A){this.use(...A)}walkTokens(A,q){let g=[];for(let E of A)switch(g=g.concat(q.call(this,E)),E.type){case"table":{let F=E;for(let K of F.header)g=g.concat(this.walkTokens(K.tokens,q));for(let K of F.rows)for(let Z of K)g=g.concat(this.walkTokens(Z.tokens,q));break}case"list":{let F=E;g=g.concat(this.walkTokens(F.items,q));break}default:{let F=E;this.defaults.extensions?.childTokens?.[F.type]?this.defaults.extensions.childTokens[F.type].forEach((K)=>{let Z=F[K].flat(1/0);g=g.concat(this.walkTokens(Z,q))}):F.tokens&&(g=g.concat(this.walkTokens(F.tokens,q)))}}return g}use(...A){let q=this.defaults.extensions||{renderers:{},childTokens:{}};return A.forEach((g)=>{let E={...g};if(E.async=this.defaults.async||E.async||!1,g.extensions&&(g.extensions.forEach((F)=>{if(!F.name)throw Error("extension name required");if("renderer"in F){let K=q.renderers[F.name];K?q.renderers[F.name]=function(...Z){let j=F.renderer.apply(this,Z);return j===!1&&(j=K.apply(this,Z)),j}:q.renderers[F.name]=F.renderer}if("tokenizer"in F){if(!F.level||F.level!=="block"&&F.level!=="inline")throw Error("extension level must be 'block' or 'inline'");let K=q[F.level];K?K.unshift(F.tokenizer):q[F.level]=[F.tokenizer],F.start&&(F.level==="block"?q.startBlock?q.startBlock.push(F.start):q.startBlock=[F.start]:F.level==="inline"&&(q.startInline?q.startInline.push(F.start):q.startInline=[F.start]))}"childTokens"in F&&F.childTokens&&(q.childTokens[F.name]=F.childTokens)}),E.extensions=q),g.renderer){let F=this.defaults.renderer||new KZ(this.defaults);for(let K in g.renderer){if(!(K in F))throw Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Z=K,j=g.renderer[Z],U=F[Z];F[Z]=(...O)=>{let Y=j.apply(F,O);return Y===!1&&(Y=U.apply(F,O)),Y||""}}E.renderer=F}if(g.tokenizer){let F=this.defaults.tokenizer||new FZ(this.defaults);for(let K in g.tokenizer){if(!(K in F))throw Error(`tokenizer '${K}' does not exist`);if(["options","rules","lexer"].includes(K))continue;let Z=K,j=g.tokenizer[Z],U=F[Z];F[Z]=(...O)=>{let Y=j.apply(F,O);return Y===!1&&(Y=U.apply(F,O)),Y}}E.tokenizer=F}if(g.hooks){let F=this.defaults.hooks||new zE;for(let K in g.hooks){if(!(K in F))throw Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Z=K,j=g.hooks[Z],U=F[Z];zE.passThroughHooks.has(K)?F[Z]=(O)=>{if(this.defaults.async&&zE.passThroughHooksRespectAsync.has(K))return(async()=>{let M=await j.call(F,O);return U.call(F,M)})();let Y=j.call(F,O);return U.call(F,Y)}:F[Z]=(...O)=>{if(this.defaults.async)return(async()=>{let M=await j.apply(F,O);return M===!1&&(M=await U.apply(F,O)),M})();let Y=j.apply(F,O);return Y===!1&&(Y=U.apply(F,O)),Y}}E.hooks=F}if(g.walkTokens){let F=this.defaults.walkTokens,K=g.walkTokens;E.walkTokens=function(Z){let j=[];return j.push(K.call(this,Z)),F&&(j=j.concat(F.call(this,Z))),j}}this.defaults={...this.defaults,...E}}),this}setOptions(A){return this.defaults={...this.defaults,...A},this}lexer(A,q){return Mq.lex(A,q??this.defaults)}parser(A,q){return _q.parse(A,q??this.defaults)}parseMarkdown(A){return(q,g)=>{let E={...g},F={...this.defaults,...E},K=this.onError(!!F.silent,!!F.async);if(this.defaults.async===!0&&E.async===!1)return K(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof q>"u"||q===null)return K(Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return K(Error("marked(): input parameter is of type "+Object.prototype.toString.call(q)+", string expected"));if(F.hooks&&(F.hooks.options=F,F.hooks.block=A),F.async)return(async()=>{let Z=F.hooks?await F.hooks.preprocess(q):q,j=await(F.hooks?await F.hooks.provideLexer():A?Mq.lex:Mq.lexInline)(Z,F),U=F.hooks?await F.hooks.processAllTokens(j):j;F.walkTokens&&await Promise.all(this.walkTokens(U,F.walkTokens));let O=await(F.hooks?await F.hooks.provideParser():A?_q.parse:_q.parseInline)(U,F);return F.hooks?await F.hooks.postprocess(O):O})().catch(K);try{F.hooks&&(q=F.hooks.preprocess(q));let Z=(F.hooks?F.hooks.provideLexer():A?Mq.lex:Mq.lexInline)(q,F);F.hooks&&(Z=F.hooks.processAllTokens(Z)),F.walkTokens&&this.walkTokens(Z,F.walkTokens);let j=(F.hooks?F.hooks.provideParser():A?_q.parse:_q.parseInline)(Z,F);return F.hooks&&(j=F.hooks.postprocess(j)),j}catch(Z){return K(Z)}}}onError(A,q){return(g)=>{if(g.message+=`
90
+ Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+uq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},pg=new X$;function OA(A,q){return pg.parse(A,q)}OA.options=OA.setOptions=function(A){return pg.setOptions(A),OA.defaults=pg.defaults,nQ(OA.defaults),OA};OA.getDefaults=XU;OA.defaults=ug;OA.use=function(...A){return pg.use(...A),OA.defaults=pg.defaults,nQ(OA.defaults),OA};OA.walkTokens=function(A,q){return pg.walkTokens(A,q)};OA.parseInline=pg.parseInline;OA.Parser=_q;OA.parser=_q.parse;OA.Renderer=KZ;OA.TextRenderer=IU;OA.Lexer=Mq;OA.lexer=Mq.lex;OA.Tokenizer=FZ;OA.Hooks=zE;OA.parse=OA;var{options:ML,setOptions:_L,use:$L,walkTokens:XL,parseInline:HL}=OA,LL=_q.parse,VL=Mq.lex;var H$=QA.fromHex("#9a9ea3"),L$=QA.fromHex("#252527");class jO extends kA{orientation;_value;_min;_max;_viewPortSize;_backgroundColor;_foregroundColor;_onChange;constructor(A,q){super(A,{flexShrink:0,...q});this.orientation=q.orientation,this._min=q.min??0,this._max=q.max??100,this._value=q.value??this._min,this._viewPortSize=q.viewPortSize??Math.max(1,(this._max-this._min)*0.1),this._onChange=q.onChange,this._backgroundColor=q.backgroundColor?d(q.backgroundColor):L$,this._foregroundColor=q.foregroundColor?d(q.foregroundColor):H$,this.setupMouseHandling()}get value(){return this._value}set value(A){let q=Math.max(this._min,Math.min(this._max,A));if(q!==this._value)this._value=q,this._onChange?.(q),this.emit("change",{value:q}),this.requestRender()}get min(){return this._min}set min(A){if(A!==this._min){if(this._min=A,this._value<A)this.value=A;this.requestRender()}}get max(){return this._max}set max(A){if(A!==this._max){if(this._max=A,this._value>A)this.value=A;this.requestRender()}}set viewPortSize(A){let q=Math.max(0.01,Math.min(A,this._max-this._min));if(q!==this._viewPortSize)this._viewPortSize=q,this.requestRender()}get viewPortSize(){return this._viewPortSize}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=d(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=d(A),this.requestRender()}calculateDragOffsetVirtual(A){let q=this.orientation==="vertical"?this.y:this.x,g=(this.orientation==="vertical"?A.y:A.x)-q,E=Math.max(0,Math.min((this.orientation==="vertical"?this.height:this.width)*2,g*2)),F=this.getVirtualThumbStart(),K=this.getVirtualThumbSize();return Math.max(0,Math.min(K,E-F))}setupMouseHandling(){let A=!1,q=0;this.onMouseDown=(g)=>{g.stopPropagation(),g.preventDefault();let E=this.getThumbRect();if(g.x>=E.x&&g.x<E.x+E.width&&g.y>=E.y&&g.y<E.y+E.height)A=!0,q=this.calculateDragOffsetVirtual(g);else this.updateValueFromMouseDirect(g),A=!0,q=this.calculateDragOffsetVirtual(g)},this.onMouseDrag=(g)=>{if(!A)return;g.stopPropagation(),this.updateValueFromMouseWithOffset(g,q)},this.onMouseUp=(g)=>{if(A)this.updateValueFromMouseWithOffset(g,q);A=!1}}updateValueFromMouseDirect(A){let q=this.orientation==="vertical"?this.y:this.x,g=this.orientation==="vertical"?this.height:this.width,F=(this.orientation==="vertical"?A.y:A.x)-q,K=Math.max(0,Math.min(g,F)),Z=g===0?0:K/g,j=this._max-this._min,U=this._min+Z*j;this.value=U}updateValueFromMouseWithOffset(A,q){let g=this.orientation==="vertical"?this.y:this.x,E=this.orientation==="vertical"?this.height:this.width,F=this.orientation==="vertical"?A.y:A.x,K=E*2,Z=F-g,U=Math.max(0,Math.min(E,Z))*2,O=this.getVirtualThumbSize(),Y=Math.max(0,K-O),M=U-q;M=Math.max(0,Math.min(Y,M));let J=Y===0?0:M/Y,$=this._max-this._min,_=this._min+J*$;this.value=_}getThumbRect(){let A=this.getVirtualThumbSize(),q=this.getVirtualThumbStart(),g=Math.floor(q/2),E=Math.ceil((q+A)/2)-g;if(this.orientation==="vertical")return{x:this.x,y:this.y+g,width:this.width,height:Math.max(1,E)};else return{x:this.x+g,y:this.y,width:Math.max(1,E),height:this.height}}renderSelf(A){if(this.orientation==="horizontal")this.renderHorizontal(A);else this.renderVertical(A)}renderHorizontal(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.width-1,K);for(let U=Z;U<=j;U++){let O=U*2,Y=O+2,M=Math.max(g,O),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if(M===O)_="\u258C";else _="\u2590";for(let T=0;T<this.height;T++)A.setCellWithAlphaBlending(this.x+U,this.y+T,_,this._foregroundColor,this._backgroundColor)}}renderVertical(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.height-1,K);for(let U=Z;U<=j;U++){let O=U*2,Y=O+2,M=Math.max(g,O),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-O===0)_="\u2580";else _="\u2584";for(let T=0;T<this.width;T++)A.setCellWithAlphaBlending(this.x+T,this.y+U,_,this._foregroundColor,this._backgroundColor)}}getVirtualThumbSize(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return A;let g=Math.max(1,this._viewPortSize),E=q+g;if(E<=g)return A;let F=g/E,K=Math.floor(A*F);return Math.max(1,Math.min(K,A))}getVirtualThumbStart(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return 0;let g=(this._value-this._min)/q,E=this.getVirtualThumbSize();return Math.round(g*(A-E))}}class JU extends kA{slider;startArrow;endArrow;orientation;_focusable=!0;_scrollSize=0;_scrollPosition=0;_viewportSize=0;_showArrows=!1;_manualVisibility=!1;_onChange;scrollStep=null;get visible(){return super.visible}set visible(A){this._manualVisibility=!0,super.visible=A}resetVisibilityControl(){this._manualVisibility=!1,this.recalculateVisibility()}get scrollSize(){return this._scrollSize}get scrollPosition(){return this._scrollPosition}get viewportSize(){return this._viewportSize}set scrollSize(A){if(A===this.scrollSize)return;this._scrollSize=A,this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}set scrollPosition(A){let q=Math.round(Math.min(Math.max(0,A),this.scrollSize-this.viewportSize));if(q!==this._scrollPosition)this._scrollPosition=q,this.updateSliderFromScrollState()}set viewportSize(A){if(A===this.viewportSize)return;this._viewportSize=A,this.slider.viewPortSize=Math.max(1,this._viewportSize),this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}get showArrows(){return this._showArrows}set showArrows(A){if(A===this._showArrows)return;this._showArrows=A,this.startArrow.visible=A,this.endArrow.visible=A}constructor(A,{trackOptions:q,arrowOptions:g,orientation:E,showArrows:F=!1,...K}){super(A,{flexDirection:E==="vertical"?"column":"row",alignSelf:"stretch",alignItems:"stretch",...K});this._onChange=K.onChange,this.orientation=E,this._showArrows=F;let Z=Math.max(0,this._scrollSize-this._viewportSize),j=Math.max(1,this._viewportSize),U=q?.viewPortSize??j;this.slider=new jO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(J)=>{this._scrollPosition=Math.round(J),this._onChange?.(this._scrollPosition),this.emit("change",{position:this._scrollPosition})},...E==="vertical"?{width:Math.max(1,Math.min(2,this.width)),height:"100%",marginLeft:"auto"}:{width:"100%",height:1,marginTop:"auto"},flexGrow:1,flexShrink:1,...q}),this.updateSliderFromScrollState();let O=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new MU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...O}),this.endArrow=new MU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...O}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let Y=void 0,M=void 0;this.startArrow.onMouseDown=(J)=>{J.stopPropagation(),J.preventDefault(),this.scrollBy(-0.5,"viewport"),Y=setTimeout(()=>{this.scrollBy(-0.5,"viewport"),Y=setInterval(()=>{this.scrollBy(-0.2,"viewport")},200)},500)},this.startArrow.onMouseUp=(J)=>{J.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(J)=>{J.stopPropagation(),J.preventDefault(),this.scrollBy(0.5,"viewport"),M=setTimeout(()=>{this.scrollBy(0.5,"viewport"),M=setInterval(()=>{this.scrollBy(0.2,"viewport")},200)},500)},this.endArrow.onMouseUp=(J)=>{J.stopPropagation(),clearInterval(M)}}set arrowOptions(A){Object.assign(this.startArrow,A),Object.assign(this.endArrow,A),this.requestRender()}set trackOptions(A){Object.assign(this.slider,A),this.requestRender()}updateSliderFromScrollState(){let A=Math.max(0,this._scrollSize-this._viewportSize);this.slider.min=0,this.slider.max=A,this.slider.value=Math.min(this._scrollPosition,A)}scrollBy(A,q="absolute"){let E=(q==="viewport"?this.viewportSize:q==="content"?this.scrollSize:q==="step"?this.scrollStep??1:1)*A;this.scrollPosition+=E}recalculateVisibility(){if(!this._manualVisibility){let A=this.scrollSize<=this.viewportSize?1:this.viewportSize/this.scrollSize;super.visible=A<1}}handleKeyPress(A){switch(A.name){case"left":case"h":if(this.orientation!=="horizontal")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"right":case"l":if(this.orientation!=="horizontal")return!1;return this.scrollBy(0.2,"viewport"),!0;case"up":case"k":if(this.orientation!=="vertical")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"down":case"j":if(this.orientation!=="vertical")return!1;return this.scrollBy(0.2,"viewport"),!0;case"pageup":return this.scrollBy(-0.5,"viewport"),!0;case"pagedown":return this.scrollBy(0.5,"viewport"),!0;case"home":return this.scrollBy(-1,"content"),!0;case"end":return this.scrollBy(1,"content"),!0}return!1}}class MU extends kA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?d(q.foregroundColor):QA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?d(q.backgroundColor):QA.fromValues(0,0,0,0),this._attributes=q.attributes??0,this._arrowChars={up:"\u25B2",down:"\u25BC",left:"\u25C0",right:"\u25B6",...q.arrowChars},!q.width)this.width=Bun.stringWidth(this.getArrowChar())}get direction(){return this._direction}set direction(A){if(this._direction!==A)this._direction=A,this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){if(this._foregroundColor!==A)this._foregroundColor=d(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=d(A),this.requestRender()}get attributes(){return this._attributes}set attributes(A){if(this._attributes!==A)this._attributes=A,this.requestRender()}set arrowChars(A){this._arrowChars={...this._arrowChars,...A},this.requestRender()}renderSelf(A){let q=this.getArrowChar();A.drawText(q,this.x,this.y,this._foregroundColor,this._backgroundColor,this._attributes)}getArrowChar(){switch(this._direction){case"up":return this._arrowChars.up;case"down":return this._arrowChars.down;case"left":return this._arrowChars.left;case"right":return this._arrowChars.right;default:return"?"}}}class UO extends s{viewport;_viewportCulling;constructor(A,q,g,E){super(A,E);this.viewport=q,this._viewportCulling=g}get viewportCulling(){return this._viewportCulling}set viewportCulling(A){this._viewportCulling=A}_getVisibleChildren(){if(this._viewportCulling)return ZU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class z6 extends s{static idCounter=0;internalId=0;wrapper;viewport;content;horizontalScrollBar;verticalScrollBar;_focusable=!0;selectionListener;autoScrollMouseX=0;autoScrollMouseY=0;autoScrollThresholdVertical=3;autoScrollThresholdHorizontal=3;autoScrollSpeedSlow=6;autoScrollSpeedMedium=36;autoScrollSpeedFast=72;isAutoScrolling=!1;cachedAutoScrollSpeed=3;autoScrollAccumulatorX=0;autoScrollAccumulatorY=0;scrollAccumulatorX=0;scrollAccumulatorY=0;_stickyScroll;_stickyScrollTop=!1;_stickyScrollBottom=!1;_stickyScrollLeft=!1;_stickyScrollRight=!1;_stickyStart;_hasManualScroll=!1;_isApplyingStickyScroll=!1;scrollAccel;get stickyScroll(){return this._stickyScroll}set stickyScroll(A){this._stickyScroll=A,this.updateStickyState()}get stickyStart(){return this._stickyStart}set stickyStart(A){this._stickyStart=A,this.updateStickyState()}get scrollTop(){return this.verticalScrollBar.scrollPosition}set scrollTop(A){if(this.verticalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollLeft(){return this.horizontalScrollBar.scrollPosition}set scrollLeft(A){if(this.horizontalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollWidth(){return this.horizontalScrollBar.scrollSize}get scrollHeight(){return this.verticalScrollBar.scrollSize}updateStickyState(){if(!this._stickyScroll)return;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);if(this.scrollTop<=0){if(this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this._stickyStart==="top"||this._stickyStart==="bottom"&&A===0)this._hasManualScroll=!1}else if(this.scrollTop>=A){if(this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this._stickyStart==="bottom")this._hasManualScroll=!1}else this._stickyScrollTop=!1,this._stickyScrollBottom=!1;if(this.scrollLeft<=0){if(this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this._stickyStart==="left"||this._stickyStart==="right"&&q===0)this._hasManualScroll=!1}else if(this.scrollLeft>=q){if(this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this._stickyStart==="right")this._hasManualScroll=!1}else this._stickyScrollLeft=!1,this._stickyScrollRight=!1}applyStickyStart(A){switch(this._isApplyingStickyScroll=!0,A){case"top":this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this.verticalScrollBar.scrollPosition=0;break;case"bottom":this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this.verticalScrollBar.scrollPosition=Math.max(0,this.scrollHeight-this.viewport.height);break;case"left":this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this.horizontalScrollBar.scrollPosition=0;break;case"right":this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this.horizontalScrollBar.scrollPosition=Math.max(0,this.scrollWidth-this.viewport.width);break}this._isApplyingStickyScroll=!1}constructor(A,{wrapperOptions:q,viewportOptions:g,contentOptions:E,rootOptions:F,scrollbarOptions:K,verticalScrollbarOptions:Z,horizontalScrollbarOptions:j,stickyScroll:U=!1,stickyStart:O,scrollX:Y=!1,scrollY:M=!0,scrollAcceleration:J,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=z6.idCounter++,this._stickyScroll=U,this._stickyStart=O,this.scrollAccel=J??new tj,this.wrapper=new s(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new s(A,{flexDirection:"column",flexGrow:1,overflow:"hidden",onSizeChange:()=>{this.recalculateBarProps()},...g,id:`scroll-box-viewport-${this.internalId}`}),this.wrapper.add(this.viewport),this.content=new UO(A,this.viewport,$,{alignSelf:"flex-start",flexShrink:0,...Y?{minWidth:"100%"}:{minWidth:"100%",maxWidth:"100%"},...M?{minHeight:"100%"}:{minHeight:"100%",maxHeight:"100%"},onSizeChange:()=>{this.recalculateBarProps()},...E,id:`scroll-box-content-${this.internalId}`}),this.viewport.add(this.content),this.verticalScrollBar=new JU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(T)=>{if(this.content.translateY=-T,!this._isApplyingStickyScroll){let x=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&x>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new JU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(T)=>{if(this.content.translateX=-T,!this._isApplyingStickyScroll){let x=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&x>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),O&&U)this.applyStickyStart(O);this.selectionListener=()=>{let T=this._ctx.getSelection();if(!T||!T.isSelecting)this.stopAutoScroll()},this._ctx.on("selection",this.selectionListener)}onUpdate(A){this.handleAutoScroll(A)}scrollBy(A,q="absolute"){if(typeof A==="number")this.verticalScrollBar.scrollBy(A,q);else this.verticalScrollBar.scrollBy(A.y,q),this.horizontalScrollBar.scrollBy(A.x,q)}scrollTo(A){if(typeof A==="number")this.scrollTop=A;else this.scrollTop=A.y,this.scrollLeft=A.x}isAtStickyPosition(){if(!this._stickyScroll||!this._stickyStart)return!1;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);switch(this._stickyStart){case"top":return this.scrollTop===0;case"bottom":return this.scrollTop>=A;case"left":return this.scrollLeft===0;case"right":return this.scrollLeft>=q;default:return!1}}add(A,q){return this.content.add(A,q)}insertBefore(A,q){return this.content.insertBefore(A,q)}remove(A){this.content.remove(A)}getChildren(){return this.content.getChildren()}onMouseEvent(A){if(A.type==="scroll"){let q=A.scroll?.direction;if(A.modifiers.shift)q=q==="up"?"left":q==="down"?"right":q==="right"?"down":"up";let g=A.scroll?.delta??0,E=Date.now(),F=this.scrollAccel.tick(E),K=g*F;if(q==="up"){this.scrollAccumulatorY-=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="down"){this.scrollAccumulatorY+=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="left"){this.scrollAccumulatorX-=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}else if(q==="right"){this.scrollAccumulatorX+=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}let Z=Math.max(0,this.scrollHeight-this.viewport.height),j=Math.max(0,this.scrollWidth-this.viewport.width);if(Z>1||j>1)this._hasManualScroll=!0}if(A.type==="drag"&&A.isSelecting)this.updateAutoScroll(A.x,A.y);else if(A.type==="up")this.stopAutoScroll()}handleKeyPress(A){if(this.verticalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;if(this.horizontalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;return!1}resetScrollAccumulators(){this.scrollAccumulatorX=0,this.scrollAccumulatorY=0}startAutoScroll(A,q){if(this.stopAutoScroll(),this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q),this.isAutoScrolling=!0,!this.live)this.live=!0}updateAutoScroll(A,q){this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q);let g=this.getAutoScrollDirectionX(A),E=this.getAutoScrollDirectionY(q);if(g===0&&E===0)this.stopAutoScroll();else if(!this.isAutoScrolling)this.startAutoScroll(A,q)}stopAutoScroll(){let A=this.isAutoScrolling;if(this.isAutoScrolling=!1,this.autoScrollAccumulatorX=0,this.autoScrollAccumulatorY=0,A&&!this.hasOtherLiveReasons())this.live=!1}hasOtherLiveReasons(){return!1}handleAutoScroll(A){if(!this.isAutoScrolling)return;let q=this.getAutoScrollDirectionX(this.autoScrollMouseX),g=this.getAutoScrollDirectionY(this.autoScrollMouseY),E=this.cachedAutoScrollSpeed*(A/1000),F=!1;if(q!==0){this.autoScrollAccumulatorX+=q*E;let K=Math.trunc(this.autoScrollAccumulatorX);if(K!==0)this.scrollLeft+=K,this.autoScrollAccumulatorX-=K,F=!0}if(g!==0){this.autoScrollAccumulatorY+=g*E;let K=Math.trunc(this.autoScrollAccumulatorY);if(K!==0)this.scrollTop+=K,this.autoScrollAccumulatorY-=K,F=!0}if(F)this._ctx.requestSelectionUpdate();if(q===0&&g===0)this.stopAutoScroll()}getAutoScrollDirectionX(A){let q=A-this.x,g=q,E=this.width-q;if(g<=this.autoScrollThresholdHorizontal)return this.scrollLeft>0?-1:0;else if(E<=this.autoScrollThresholdHorizontal){let F=this.scrollWidth-this.viewport.width;return this.scrollLeft<F?1:0}return 0}getAutoScrollDirectionY(A){let q=A-this.y,g=q,E=this.height-q;if(g<=this.autoScrollThresholdVertical)return this.scrollTop>0?-1:0;else if(E<=this.autoScrollThresholdVertical){let F=this.scrollHeight-this.viewport.height;return this.scrollTop<F?1:0}return 0}getAutoScrollSpeed(A,q){let g=A-this.x,E=q-this.y,F=g,K=this.width-g,Z=E,j=this.height-E,U=Math.min(F,K,Z,j);if(U<=1)return this.autoScrollSpeedFast;else if(U<=2)return this.autoScrollSpeedMedium;else return this.autoScrollSpeedSlow}recalculateBarProps(){let A=this._isApplyingStickyScroll;if(this._isApplyingStickyScroll=!0,this.verticalScrollBar.scrollSize=this.content.height,this.verticalScrollBar.viewportSize=this.viewport.height,this.horizontalScrollBar.scrollSize=this.content.width,this.horizontalScrollBar.viewportSize=this.viewport.width,this._stickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height),g=Math.max(0,this.scrollWidth-this.viewport.width);if(this._stickyStart&&!this._hasManualScroll)this.applyStickyStart(this._stickyStart);else{if(this._stickyScrollTop)this.scrollTop=0;else if(this._stickyScrollBottom&&q>0)this.scrollTop=q;if(this._stickyScrollLeft)this.scrollLeft=0;else if(this._stickyScrollRight&&g>0)this.scrollLeft=g}}this._isApplyingStickyScroll=A,process.nextTick(()=>{this.requestRender()})}set rootOptions(A){Object.assign(this,A),this.requestRender()}set wrapperOptions(A){Object.assign(this.wrapper,A),this.requestRender()}set viewportOptions(A){Object.assign(this.viewport,A),this.requestRender()}set contentOptions(A){Object.assign(this.content,A),this.requestRender()}set scrollbarOptions(A){Object.assign(this.verticalScrollBar,A),Object.assign(this.horizontalScrollBar,A),this.requestRender()}set verticalScrollbarOptions(A){Object.assign(this.verticalScrollBar,A),this.requestRender()}set horizontalScrollbarOptions(A){Object.assign(this.horizontalScrollBar,A),this.requestRender()}get scrollAcceleration(){return this.scrollAccel}set scrollAcceleration(A){this.scrollAccel=A}get viewportCulling(){return this.content.viewportCulling}set viewportCulling(A){this.content.viewportCulling=A,this.requestRender()}destroySelf(){if(this.selectionListener)this._ctx.off("selection",this.selectionListener),this.selectionListener=void 0;super.destroySelf()}}var V$;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(V$||={});var W$;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(W$||={});import{exec as mH}from"child_process";import{appendFileSync as N$,writeFileSync as x$}from"fs";import{join as T$}from"path";import{homedir as I$}from"os";var YO=T$(I$(),".config","hn-cli","debug.log"),GO=!1;function a$(){if(!GO)try{x$(YO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
91
+ `),GO=!0}catch{}}function JA(...A){a$();let q=new Date().toISOString(),g=A.map((E)=>{if(typeof E==="object")try{return JSON.stringify(E,null,2)}catch{return String(E)}return String(E)}).join(" ");try{N$(YO,`[${q}] ${g}
92
+ `)}catch{}}function v(A,q,g,E,F){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!F)throw TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function N(A,q,g,E){if(g==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var aU=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return aU=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function tq(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var DE=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return Error(JSON.stringify(A))}catch{}}return Error(A)};class l extends Error{}class NA extends l{constructor(A,q,g,E){super(`${NA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("request-id"),this.error=q}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new lg({message:g,cause:DE(q)});let F=q;if(A===400)return new bE(A,F,g,E);if(A===401)return new vE(A,F,g,E);if(A===403)return new mE(A,F,g,E);if(A===404)return new fE(A,F,g,E);if(A===409)return new cE(A,F,g,E);if(A===422)return new dE(A,F,g,E);if(A===429)return new pE(A,F,g,E);if(A>=500)return new uE(A,F,g,E);return new NA(A,F,g,E)}}class DA extends NA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class lg extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class yE extends lg{constructor({message:A}={}){super({message:A??"Request timed out."})}}class bE extends NA{}class vE extends NA{}class mE extends NA{}class fE extends NA{}class cE extends NA{}class dE extends NA{}class pE extends NA{}class uE extends NA{}var R$=/^[a-z][a-z0-9+.-]*:/i,QO=(A)=>{return R$.test(A)},PU=(A)=>(PU=Array.isArray,PU(A)),RU=PU;function GZ(A){if(typeof A!=="object")return{};return A??{}}function OO(A){if(!A)return!0;for(let q in A)return!1;return!0}function JO(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var MO=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new l(`${A} must be an integer`);if(q<0)throw new l(`${A} must be a positive integer`);return q};var YZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var _O=(A)=>new Promise((q)=>setTimeout(q,A));var Mg="0.71.2";var LO=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function S$(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var h$=()=>{let A=S$();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mg,"X-Stainless-OS":XO(Deno.build.os),"X-Stainless-Arch":$O(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mg,"X-Stainless-OS":XO(globalThis.process.platform??"unknown"),"X-Stainless-Arch":$O(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=z$();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function z$(){if(typeof navigator>"u"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var $O=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},XO=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},HO,VO=()=>{return HO??(HO=h$())};function WO(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function SU(...A){let q=globalThis.ReadableStream;if(typeof q>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function QZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return SU({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function lE(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function NO(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var xO=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};function aO(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var TO;function iE(A){let q;return(TO??(q=new globalThis.TextEncoder,TO=q.encode.bind(q)))(A)}var IO;function hU(A){let q;return(IO??(q=new globalThis.TextDecoder,IO=q.decode.bind(q)))(A)}var uA,lA;class _g{constructor(){uA.set(this,void 0),lA.set(this,void 0),v(this,uA,new Uint8Array,"f"),v(this,lA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?iE(A):A;v(this,uA,aO([N(this,uA,"f"),q]),"f");let g=[],E;while((E=C$(N(this,uA,"f"),N(this,lA,"f")))!=null){if(E.carriage&&N(this,lA,"f")==null){v(this,lA,E.index,"f");continue}if(N(this,lA,"f")!=null&&(E.index!==N(this,lA,"f")+1||E.carriage)){g.push(hU(N(this,uA,"f").subarray(0,N(this,lA,"f")-1))),v(this,uA,N(this,uA,"f").subarray(N(this,lA,"f")),"f"),v(this,lA,null,"f");continue}let F=N(this,lA,"f")!==null?E.preceding-1:E.preceding,K=hU(N(this,uA,"f").subarray(0,F));g.push(K),v(this,uA,N(this,uA,"f").subarray(E.index),"f"),v(this,lA,null,"f")}return g}flush(){if(!N(this,uA,"f").length)return[];return this.decode(`
93
+ `)}}uA=new WeakMap,lA=new WeakMap;_g.NEWLINE_CHARS=new Set([`
94
+ `,"\r"]);_g.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function C$(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function PO(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var JZ={off:0,error:200,warn:300,info:400,debug:500},zU=(A,q,g)=>{if(!A)return;if(JO(JZ,A))return A;SA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(JZ))}`);return};function tE(){}function OZ(A,q,g){if(!q||JZ[A]>JZ[g])return tE;else return q[A].bind(q)}var k$={error:tE,warn:tE,info:tE,debug:tE},RO=new WeakMap;function SA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return k$;let E=RO.get(q);if(E&&E[0]===g)return E[1];let F={error:OZ("error",q,g),warn:OZ("warn",q,g),info:OZ("info",q,g),debug:OZ("debug",q,g)};return RO.set(q,[g,F]),F}var sq=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="x-api-key"||q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var sE;class iA{constructor(A,q,g){this.iterator=A,sE.set(this,void 0),this.controller=q,v(this,sE,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?SA(g):console;async function*K(){if(E)throw new l("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of D$(A,q)){if(j.event==="completion")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="message_start"||j.event==="message_delta"||j.event==="message_stop"||j.event==="content_block_start"||j.event==="content_block_delta"||j.event==="content_block_stop")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="ping")continue;if(j.event==="error")throw new NA(void 0,YZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(tq(j))return;throw j}finally{if(!Z)q.abort()}}return new iA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new _g,j=lE(A);for await(let U of j)for(let O of Z.decode(U))yield O;for(let U of Z.flush())yield U}async function*K(){if(E)throw new l("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(tq(j))return;throw j}finally{if(!Z)q.abort()}}return new iA(K,q,g)}[(sE=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new iA(()=>E(A),this.controller,N(this,sE,"f")),new iA(()=>E(q),this.controller,N(this,sE,"f"))]}toReadableStream(){let A=this,q;return SU({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=iE(JSON.stringify(E)+`
95
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*D$(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new l("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new l("Attempted to iterate over a response with no body")}let g=new SO,E=new _g,F=lE(A.body);for await(let K of y$(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*y$(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?iE(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=PO(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class SO{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
96
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=b$(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function b$(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function MZ(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(SA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller);return iA.fromSSEResponse(g,q.controller)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return BU(M,g)}return await g.text()})();return SA(A).debug(`[${E}] response parsed`,sq({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function BU(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("request-id"),enumerable:!1})}var nE;class ig extends Promise{constructor(A,q,g=MZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,nE.set(this,void 0),v(this,nE,A,"f")}_thenUnwrap(A){return new ig(N(this,nE,"f"),this.responsePromise,async(q,g)=>BU(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(N(this,nE,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}nE=new WeakMap;var _Z;class wU{constructor(A,q,g,E){_Z.set(this,void 0),v(this,_Z,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new l("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await N(this,_Z,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(_Z=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class $Z extends ig{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await MZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class $q extends wU{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.first_id=g.first_id||null,this.last_id=g.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let q=this.first_id;if(!q)return null;return{...this.options,query:{...GZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...GZ(this.options.query),after_id:A}}}}class rE extends wU{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.next_page=g.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.next_page;if(!A)return null;return{...this.options,query:{...GZ(this.options.query),page:A}}}}var kU=()=>{if(typeof File>"u"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function tg(A,q,g){return kU(),new File(A,q??"unknown_file",g)}function oE(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var DU=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var B6=async(A,q)=>{return{...A,body:await f$(A.body,q)}},hO=new WeakMap;function m$(A){let q=typeof A==="function"?A:A.fetch,g=hO.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return hO.set(q,E),E}var f$=async(A,q)=>{if(!await m$(q))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>CU(g,E,F))),g},c$=(A)=>A instanceof Blob&&("name"in A);var CU=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response){let E={},F=g.headers.get("Content-Type");if(F)E={type:F};A.append(q,tg([await g.blob()],oE(g),E))}else if(DU(g))A.append(q,tg([await new Response(QZ(g)).blob()],oE(g)));else if(c$(g))A.append(q,tg([g],oE(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>CU(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>CU(A,`${q}[${E}]`,F)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var zO=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",d$=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&zO(A),p$=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function XZ(A,q,g){if(kU(),A=await A,q||(q=oE(A)),d$(A)){if(A instanceof File&&q==null&&g==null)return A;return tg([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(p$(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),tg(await yU(F),q,g)}let E=await yU(A);if(!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return tg(E,q,g)}async function yU(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(zO(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(DU(A))for await(let g of A)q.push(...await yU(g));else{let g=A?.constructor?.name;throw Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${u$(A)}`)}return q}function u$(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class _A{constructor(A){this._client=A}}var BO=Symbol.for("brand.privateNullableHeaders");function*i$(A){if(!A)return;if(BO in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(RU(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw TypeError("expected header name to be a string");let K=RU(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var AA=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of i$(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[BO]:!0,values:q,nulls:g}};function CO(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var wO=Object.freeze(Object.create(null)),t$=(A=CO)=>function(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,J)=>{if(/[?#]/.test(M))F=!0;let $=E[J],_=(F?encodeURIComponent:A)(""+$);if(J!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??wO)??wO)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(J===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,O;while((O=U.exec(j))!==null)K.push({start:O.index,length:O[0].length,error:`Value "${O[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((J,$)=>{let _=" ".repeat($.start-Y),T="^".repeat($.length);return Y=$.start+$.length,J+_+T},"");throw new l(`Path parameters result in path with invalid segments:
97
+ ${K.map((J)=>J.error).join(`
98
+ `)}
99
+ ${Z}
100
+ ${M}`)}return Z},MA=t$(CO);class eE extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",$q,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}download(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}/content`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}retrieveMetadata(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}upload(A,q){let{betas:g,...E}=A;return this._client.post("/v1/files",B6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class AF extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}?beta=true`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models?beta=true",$q,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var HZ={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function bU(A,q,g){if(!q||!("parse"in(q.output_format??{})))return{...A,content:A.content.map((E)=>{if(E.type==="text"){let F=Object.defineProperty({...E},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(F,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return E}),parsed_output:null};return vU(A,q,g)}function vU(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=r$(q,K.text);if(E===null)E=Z;let j=Object.defineProperty({...K},"parsed_output",{value:Z,enumerable:!1});return Object.defineProperty(j,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),Z},enumerable:!1})}return K});return{...A,content:F,parsed_output:E}}function r$(A,q){if(A.output_format?.type!=="json_schema")return null;try{if("parse"in A.output_format)return A.output_format.parse(q);return JSON.parse(q)}catch(g){throw new l(`Failed to parse structured output: ${g}`)}}var o$=(A)=>{let q=0,g=[];while(q<A.length){let E=A[q];if(E==="\\"){q++;continue}if(E==="{"){g.push({type:"brace",value:"{"}),q++;continue}if(E==="}"){g.push({type:"brace",value:"}"}),q++;continue}if(E==="["){g.push({type:"paren",value:"["}),q++;continue}if(E==="]"){g.push({type:"paren",value:"]"}),q++;continue}if(E===":"){g.push({type:"separator",value:":"}),q++;continue}if(E===","){g.push({type:"delimiter",value:","}),q++;continue}if(E==='"'){let j="",U=!1;E=A[++q];while(E!=='"'){if(q===A.length){U=!0;break}if(E==="\\"){if(q++,q===A.length){U=!0;break}j+=E+A[q],E=A[++q]}else j+=E,E=A[++q]}if(E=A[++q],!U)g.push({type:"string",value:j});continue}if(E&&/\s/.test(E)){q++;continue}let K=/[0-9]/;if(E&&K.test(E)||E==="-"||E==="."){let j="";if(E==="-")j+=E,E=A[++q];while(E&&K.test(E)||E===".")j+=E,E=A[++q];g.push({type:"number",value:j});continue}let Z=/[a-z]/i;if(E&&Z.test(E)){let j="";while(E&&Z.test(E)){if(q===A.length)break;j+=E,E=A[++q]}if(j=="true"||j=="false"||j==="null")g.push({type:"name",value:j});else{q++;continue}continue}q++}return g},w6=(A)=>{if(A.length===0)return A;let q=A[A.length-1];switch(q.type){case"separator":return A=A.slice(0,A.length-1),w6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),w6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),w6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),w6(A);break;case"delimiter":return A=A.slice(0,A.length-1),w6(A);break}return A},e$=(A)=>{let q=[];if(A.map((g)=>{if(g.type==="brace")if(g.value==="{")q.push("}");else q.splice(q.lastIndexOf("}"),1);if(g.type==="paren")if(g.value==="[")q.push("]");else q.splice(q.lastIndexOf("]"),1)}),q.length>0)q.reverse().map((g)=>{if(g==="}")A.push({type:"brace",value:"}"});else if(g==="]")A.push({type:"paren",value:"]"})});return A},AX=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},LZ=(A)=>JSON.parse(AX(e$(w6(o$(A)))));var gq,$g,C6,qF,VZ,gF,EF,WZ,FF,nq,KF,NZ,xZ,sg,TZ,IZ,ZF,mU,kO,aZ,fU,cU,dU,DO,yO="__json_buf";function bO(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class jF{constructor(A,q){gq.add(this),this.messages=[],this.receivedMessages=[],$g.set(this,void 0),C6.set(this,null),this.controller=new AbortController,qF.set(this,void 0),VZ.set(this,()=>{}),gF.set(this,()=>{}),EF.set(this,void 0),WZ.set(this,()=>{}),FF.set(this,()=>{}),nq.set(this,{}),KF.set(this,!1),NZ.set(this,!1),xZ.set(this,!1),sg.set(this,!1),TZ.set(this,void 0),IZ.set(this,void 0),ZF.set(this,void 0),aZ.set(this,(g)=>{if(v(this,NZ,!0,"f"),tq(g))g=new DA;if(g instanceof DA)return v(this,xZ,!0,"f"),this._emit("abort",g);if(g instanceof l)return this._emit("error",g);if(g instanceof Error){let E=new l(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new l(String(g)))}),v(this,qF,new Promise((g,E)=>{v(this,VZ,g,"f"),v(this,gF,E,"f")}),"f"),v(this,EF,new Promise((g,E)=>{v(this,WZ,g,"f"),v(this,FF,E,"f")}),"f"),N(this,qF,"f").catch(()=>{}),N(this,EF,"f").catch(()=>{}),v(this,C6,A,"f"),v(this,ZF,q?.logger??console,"f")}get response(){return N(this,TZ,"f")}get request_id(){return N(this,IZ,"f")}async withResponse(){v(this,sg,!0,"f");let A=await N(this,qF,"f");if(!A)throw Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new jF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new jF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return v(F,C6,{...q,stream:!0},"f"),F._run(()=>F._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),F}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},N(this,aZ,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{N(this,gq,"m",fU).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)N(this,gq,"m",cU).call(this,j);if(Z.controller.signal?.aborted)throw new DA;N(this,gq,"m",dU).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,TZ,A,"f"),v(this,IZ,A?.headers.get("request-id"),"f"),N(this,VZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,KF,"f")}get errored(){return N(this,NZ,"f")}get aborted(){return N(this,xZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,nq,"f")[A]||(N(this,nq,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,nq,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(N(this,nq,"f")[A]||(N(this,nq,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,sg,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,sg,!0,"f"),await N(this,EF,"f")}get currentMessage(){return N(this,$g,"f")}async finalMessage(){return await this.done(),N(this,gq,"m",mU).call(this)}async finalText(){return await this.done(),N(this,gq,"m",kO).call(this)}_emit(A,...q){if(N(this,KF,"f"))return;if(A==="end")v(this,KF,!0,"f"),N(this,WZ,"f").call(this);let g=N(this,nq,"f")[A];if(g)N(this,nq,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,sg,"f")&&!g?.length)Promise.reject(E);N(this,gF,"f").call(this,E),N(this,FF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,sg,"f")&&!g?.length)Promise.reject(E);N(this,gF,"f").call(this,E),N(this,FF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,gq,"m",mU).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{N(this,gq,"m",fU).call(this),this._connected(null);let F=iA.fromReadableStream(A,this.controller);for await(let K of F)N(this,gq,"m",cU).call(this,K);if(F.controller.signal?.aborted)throw new DA;N(this,gq,"m",dU).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[($g=new WeakMap,C6=new WeakMap,qF=new WeakMap,VZ=new WeakMap,gF=new WeakMap,EF=new WeakMap,WZ=new WeakMap,FF=new WeakMap,nq=new WeakMap,KF=new WeakMap,NZ=new WeakMap,xZ=new WeakMap,sg=new WeakMap,TZ=new WeakMap,IZ=new WeakMap,ZF=new WeakMap,aZ=new WeakMap,gq=new WeakSet,mU=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},kO=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new l("stream ended without producing a content block with type=text");return q.join(" ")},fU=function(){if(this.ended)return;v(this,$g,void 0,"f")},cU=function(q){if(this.ended)return;let g=N(this,gq,"m",DO).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(bO(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:vO(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(bU(g,N(this,C6,"f"),{logger:N(this,ZF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{v(this,$g,g,"f");break}case"content_block_start":case"message_delta":break}},dU=function(){if(this.ended)throw new l("stream has ended, this shouldn't happen");let q=N(this,$g,"f");if(!q)throw new l("request ended without sending any chunks");return v(this,$g,void 0,"f"),bU(q,N(this,C6,"f"),{logger:N(this,ZF,"f")})},DO=function(q){let g=N(this,$g,"f");if(q.type==="message_start"){if(g)throw new l(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new l(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.container=q.delta.container,g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,g.context_management=q.context_management,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push(q.content_block),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&bO(E)){let F=E[yO]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,yO,{value:F,enumerable:!1,writable:!0}),F)try{K.input=LZ(F)}catch(Z){let j=new l(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);N(this,aZ,"f").call(this,j)}g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:vO(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new iA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function vO(A){}var mO=1e5,fO=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
101
+ 1. Task Overview
102
+ The user's core request and success criteria
103
+ Any clarifications or constraints they specified
104
+ 2. Current State
105
+ What has been completed so far
106
+ Files created, modified, or analyzed (with paths if relevant)
107
+ Key outputs or artifacts produced
108
+ 3. Important Discoveries
109
+ Technical constraints or requirements uncovered
110
+ Decisions made and their rationale
111
+ Errors encountered and how they were resolved
112
+ What approaches were tried that didn't work (and why)
113
+ 4. Next Steps
114
+ Specific actions needed to complete the task
115
+ Any blockers or open questions to resolve
116
+ Priority order if multiple steps remain
117
+ 5. Context to Preserve
118
+ User preferences or style requirements
119
+ Domain-specific details that aren't obvious
120
+ Any promises made to the user
121
+ Be concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
122
+ Wrap your summary in <summary></summary> tags.`;var UF,k6,ng,xA,GF,tA,rq,Xg,YF,cO,pU;function dO(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class QF{constructor(A,q,g){UF.add(this),this.client=A,k6.set(this,!1),ng.set(this,!1),xA.set(this,void 0),GF.set(this,void 0),tA.set(this,void 0),rq.set(this,void 0),Xg.set(this,void 0),YF.set(this,0),v(this,xA,{params:{...q,messages:structuredClone(q.messages)}},"f"),v(this,GF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),v(this,Xg,dO(),"f")}async*[(k6=new WeakMap,ng=new WeakMap,xA=new WeakMap,GF=new WeakMap,tA=new WeakMap,rq=new WeakMap,Xg=new WeakMap,YF=new WeakMap,UF=new WeakSet,cO=async function(){let q=N(this,xA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(N(this,tA,"f")!==void 0)try{let U=await N(this,tA,"f");g=U.usage.input_tokens+(U.usage.cache_creation_input_tokens??0)+(U.usage.cache_read_input_tokens??0)+U.usage.output_tokens}catch{return!1}let E=q.contextTokenThreshold??mO;if(g<E)return!1;let F=q.model??N(this,xA,"f").params.model,K=q.summaryPrompt??fO,Z=N(this,xA,"f").params.messages;if(Z[Z.length-1].role==="assistant"){let U=Z[Z.length-1];if(Array.isArray(U.content)){let O=U.content.filter((Y)=>Y.type!=="tool_use");if(O.length===0)Z.pop();else U.content=O}}let j=await this.client.beta.messages.create({model:F,messages:[...Z,{role:"user",content:[{type:"text",text:K}]}],max_tokens:N(this,xA,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(j.content[0]?.type!=="text")throw new l("Expected text response for compaction");return N(this,xA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(N(this,k6,"f"))throw new l("Cannot iterate over a consumed stream");v(this,k6,!0,"f"),v(this,ng,!0,"f"),v(this,rq,void 0,"f");try{while(!0){let q;try{if(N(this,xA,"f").params.max_iterations&&N(this,YF,"f")>=N(this,xA,"f").params.max_iterations)break;v(this,ng,!1,"f"),v(this,rq,void 0,"f"),v(this,YF,(A=N(this,YF,"f"),A++,A),"f"),v(this,tA,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=N(this,xA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},N(this,GF,"f")),v(this,tA,q.finalMessage(),"f"),N(this,tA,"f").catch(()=>{}),yield q;else v(this,tA,this.client.beta.messages.create({...F,stream:!1},N(this,GF,"f")),"f"),yield N(this,tA,"f");if(!await N(this,UF,"m",cO).call(this)){if(!N(this,ng,"f")){let{role:j,content:U}=await N(this,tA,"f");N(this,xA,"f").params.messages.push({role:j,content:U})}let Z=await N(this,UF,"m",pU).call(this,N(this,xA,"f").params.messages.at(-1));if(Z)N(this,xA,"f").params.messages.push(Z);else if(!N(this,ng,"f"))break}}finally{if(q)q.abort()}}if(!N(this,tA,"f"))throw new l("ToolRunner concluded without a message from the server");N(this,Xg,"f").resolve(await N(this,tA,"f"))}catch(q){throw v(this,k6,!1,"f"),N(this,Xg,"f").promise.catch(()=>{}),N(this,Xg,"f").reject(q),v(this,Xg,dO(),"f"),q}}setMessagesParams(A){if(typeof A==="function")N(this,xA,"f").params=A(N(this,xA,"f").params);else N(this,xA,"f").params=A;v(this,ng,!0,"f"),v(this,rq,void 0,"f")}async generateToolResponse(){let A=await N(this,tA,"f")??this.params.messages.at(-1);if(!A)return null;return N(this,UF,"m",pU).call(this,A)}done(){return N(this,Xg,"f").promise}async runUntilDone(){if(!N(this,k6,"f"))for await(let A of this);return this.done()}get params(){return N(this,xA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}pU=async function(q){if(N(this,rq,"f")!==void 0)return N(this,rq,"f");return v(this,rq,qX(N(this,xA,"f").params,q),"f"),N(this,rq,"f")};async function qX(A,q=A.messages.at(-1)){if(!q||q.role!=="assistant"||!q.content||typeof q.content==="string")return null;let g=q.content.filter((F)=>F.type==="tool_use");if(g.length===0)return null;return{role:"user",content:await Promise.all(g.map(async(F)=>{let K=A.tools.find((Z)=>("name"in Z?Z.name:Z.mcp_server_name)===F.name);if(!K||!("run"in K))return{type:"tool_result",tool_use_id:F.id,content:`Error: Tool '${F.name}' not found`,is_error:!0};try{let Z=F.input;if("parse"in K&&K.parse)Z=K.parse(Z);let j=await K.run(Z);return{type:"tool_result",tool_use_id:F.id,content:j}}catch(Z){return{type:"tool_result",tool_use_id:F.id,content:`Error: ${Z instanceof Error?Z.message:String(Z)}`,is_error:!0}}}))}}class D6{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new _g;for await(let q of this.iterator)for(let g of A.decode(q))yield JSON.parse(g);for(let q of A.flush())yield JSON.parse(q)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new l("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new l("Attempted to iterate over a response with no body")}return new D6(lE(A.body),q)}}class OF extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/batches?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/messages/batches?beta=true",$q,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}cancel(A,q={},g){let{betas:E}=q??{};return this._client.post(MA`/v1/messages/batches/${A}/cancel?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}async results(A,q={},g){let E=await this.retrieve(A);if(!E.results_url)throw new l(`No batch \`results_url\`; Has it finished processing? ${E.processing_status} - ${E.id}`);let{betas:F}=q??{};return this._client.get(E.results_url,{...g,headers:AA([{"anthropic-beta":[...F??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},g?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((K,Z)=>D6.fromResponse(Z.response,Z.controller))}}var pO={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};class rg extends _A{constructor(){super(...arguments);this.batches=new OF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in pO)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${pO[E.model]}
123
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let F=this._client._options.timeout;if(!E.stream&&F==null){let K=HZ[E.model]??void 0;F=this._client.calculateNonstreamingTimeout(E.max_tokens,K)}return this._client.post("/v1/messages?beta=true",{body:E,timeout:F??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}parse(A,q){return q={...q,headers:AA([{"anthropic-beta":[...A.betas??[],"structured-outputs-2025-11-13"].toString()},q?.headers])},this.create(A,q).then((g)=>vU(g,A,{logger:this._client.logger??console}))}stream(A,q){return jF.createMessage(this,A,q)}countTokens(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/count_tokens?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"token-counting-2024-11-01"].toString()},q?.headers])})}toolRunner(A,q){return new QF(this._client,A,q)}}rg.Batches=OF;rg.BetaToolRunner=QF;class JF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,B6({body:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])},this._client))}retrieve(A,q,g){let{skill_id:E,betas:F}=q;return this._client.get(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A,q={},g){let{betas:E,...F}=q??{};return this._client.getAPIList(MA`/v1/skills/${A}/versions?beta=true`,rE,{query:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}delete(A,q,g){let{skill_id:E,betas:F}=q;return this._client.delete(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}}class y6 extends _A{constructor(){super(...arguments);this.versions=new JF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",B6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])},this._client))}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/skills?beta=true",rE,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}}y6.Versions=JF;class Tq extends _A{constructor(){super(...arguments);this.models=new AF(this._client),this.messages=new rg(this._client),this.files=new eE(this._client),this.skills=new y6(this._client)}}Tq.Models=AF;Tq.Messages=rg;Tq.Files=eE;Tq.Skills=y6;class b6 extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/complete",{body:E,timeout:this._client._options.timeout??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}}var Eq,Hg,MF,PZ,_F,$F,RZ,XF,oq,HF,SZ,hZ,og,zZ,BZ,uU,uO,lU,iU,tU,sU,lO,iO="__json_buf";function tO(A){return A.type==="tool_use"||A.type==="server_tool_use"}class LF{constructor(){Eq.add(this),this.messages=[],this.receivedMessages=[],Hg.set(this,void 0),this.controller=new AbortController,MF.set(this,void 0),PZ.set(this,()=>{}),_F.set(this,()=>{}),$F.set(this,void 0),RZ.set(this,()=>{}),XF.set(this,()=>{}),oq.set(this,{}),HF.set(this,!1),SZ.set(this,!1),hZ.set(this,!1),og.set(this,!1),zZ.set(this,void 0),BZ.set(this,void 0),lU.set(this,(A)=>{if(v(this,SZ,!0,"f"),tq(A))A=new DA;if(A instanceof DA)return v(this,hZ,!0,"f"),this._emit("abort",A);if(A instanceof l)return this._emit("error",A);if(A instanceof Error){let q=new l(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new l(String(A)))}),v(this,MF,new Promise((A,q)=>{v(this,PZ,A,"f"),v(this,_F,q,"f")}),"f"),v(this,$F,new Promise((A,q)=>{v(this,RZ,A,"f"),v(this,XF,q,"f")}),"f"),N(this,MF,"f").catch(()=>{}),N(this,$F,"f").catch(()=>{})}get response(){return N(this,zZ,"f")}get request_id(){return N(this,BZ,"f")}async withResponse(){v(this,og,!0,"f");let A=await N(this,MF,"f");if(!A)throw Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new LF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new LF;for(let F of q.messages)E._addMessageParam(F);return E._run(()=>E._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},N(this,lU,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{N(this,Eq,"m",iU).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)N(this,Eq,"m",tU).call(this,j);if(Z.controller.signal?.aborted)throw new DA;N(this,Eq,"m",sU).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,zZ,A,"f"),v(this,BZ,A?.headers.get("request-id"),"f"),N(this,PZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,HF,"f")}get errored(){return N(this,SZ,"f")}get aborted(){return N(this,hZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,oq,"f")[A]||(N(this,oq,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,oq,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(N(this,oq,"f")[A]||(N(this,oq,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,og,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,og,!0,"f"),await N(this,$F,"f")}get currentMessage(){return N(this,Hg,"f")}async finalMessage(){return await this.done(),N(this,Eq,"m",uU).call(this)}async finalText(){return await this.done(),N(this,Eq,"m",uO).call(this)}_emit(A,...q){if(N(this,HF,"f"))return;if(A==="end")v(this,HF,!0,"f"),N(this,RZ,"f").call(this);let g=N(this,oq,"f")[A];if(g)N(this,oq,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,og,"f")&&!g?.length)Promise.reject(E);N(this,_F,"f").call(this,E),N(this,XF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,og,"f")&&!g?.length)Promise.reject(E);N(this,_F,"f").call(this,E),N(this,XF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,Eq,"m",uU).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{N(this,Eq,"m",iU).call(this),this._connected(null);let F=iA.fromReadableStream(A,this.controller);for await(let K of F)N(this,Eq,"m",tU).call(this,K);if(F.controller.signal?.aborted)throw new DA;N(this,Eq,"m",sU).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Hg=new WeakMap,MF=new WeakMap,PZ=new WeakMap,_F=new WeakMap,$F=new WeakMap,RZ=new WeakMap,XF=new WeakMap,oq=new WeakMap,HF=new WeakMap,SZ=new WeakMap,hZ=new WeakMap,og=new WeakMap,zZ=new WeakMap,BZ=new WeakMap,lU=new WeakMap,Eq=new WeakSet,uU=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},uO=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new l("stream ended without producing a content block with type=text");return q.join(" ")},iU=function(){if(this.ended)return;v(this,Hg,void 0,"f")},tU=function(q){if(this.ended)return;let g=N(this,Eq,"m",lO).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(tO(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:sO(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(g,!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{v(this,Hg,g,"f");break}case"content_block_start":case"message_delta":break}},sU=function(){if(this.ended)throw new l("stream has ended, this shouldn't happen");let q=N(this,Hg,"f");if(!q)throw new l("request ended without sending any chunks");return v(this,Hg,void 0,"f"),q},lO=function(q){let g=N(this,Hg,"f");if(q.type==="message_start"){if(g)throw new l(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new l(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push({...q.content_block}),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&tO(E)){let F=E[iO]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,iO,{value:F,enumerable:!1,writable:!0}),F)K.input=LZ(F);g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:sO(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new iA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sO(A){}class VF extends _A{create(A,q){return this._client.post("/v1/messages/batches",{body:A,...q})}retrieve(A,q){return this._client.get(MA`/v1/messages/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/v1/messages/batches",$q,{query:A,...q})}delete(A,q){return this._client.delete(MA`/v1/messages/batches/${A}`,q)}cancel(A,q){return this._client.post(MA`/v1/messages/batches/${A}/cancel`,q)}async results(A,q){let g=await this.retrieve(A);if(!g.results_url)throw new l(`No batch \`results_url\`; Has it finished processing? ${g.processing_status} - ${g.id}`);return this._client.get(g.results_url,{...q,headers:AA([{Accept:"application/binary"},q?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((E,F)=>D6.fromResponse(F.response,F.controller))}}class eg extends _A{constructor(){super(...arguments);this.batches=new VF(this._client)}create(A,q){if(A.model in nO)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${nO[A.model]}
124
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let g=this._client._options.timeout;if(!A.stream&&g==null){let E=HZ[A.model]??void 0;g=this._client.calculateNonstreamingTimeout(A.max_tokens,E)}return this._client.post("/v1/messages",{body:A,timeout:g??600000,...q,stream:A.stream??!1})}stream(A,q){return LF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var nO={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};eg.Batches=VF;class v6 extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models",$q,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var WF=(A)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(A)?.trim();return};var nU,rU,wZ,rO,oO="\\n\\nHuman:",eO="\\n\\nAssistant:";class $A{constructor({baseURL:A=WF("ANTHROPIC_BASE_URL"),apiKey:q=WF("ANTHROPIC_API_KEY")??null,authToken:g=WF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){nU.add(this),wZ.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&LO())throw new l(`It looks like you're running in a browser-like environment.
125
+
126
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
127
+ If you understand the risks and have appropriate mitigations in place,
128
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
129
+
130
+ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
131
+ `);this.baseURL=F.baseURL,this.timeout=F.timeout??rU.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=zU(F.logLevel,"ClientOptions.logLevel",this)??zU(WF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??WO(),v(this,wZ,xO,"f"),this._options=F,this.apiKey=typeof q==="string"?q:null,this.authToken=g}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){if(A.get("x-api-key")||A.get("authorization"))return;if(this.apiKey&&A.get("x-api-key"))return;if(q.has("x-api-key"))return;if(this.authToken&&A.get("authorization"))return;if(q.has("authorization"))return;throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(A){return AA([await this.apiKeyAuth(A),await this.bearerAuth(A)])}async apiKeyAuth(A){if(this.apiKey==null)return;return AA([{"X-Api-Key":this.apiKey}])}async bearerAuth(A){if(this.authToken==null)return;return AA([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(A){return Object.entries(A).filter(([q,g])=>typeof g<"u").map(([q,g])=>{if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")return`${encodeURIComponent(q)}=${encodeURIComponent(g)}`;if(g===null)return`${encodeURIComponent(q)}=`;throw new l(`Cannot stringify type ${typeof g}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Mg}`}defaultIdempotencyKey(){return`stainless-node-retry-${aU()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!N(this,nU,"m",rO).call(this)&&g||this.baseURL,F=QO(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!OO(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}_calculateNonstreamingTimeout(A){if(3600*A/128000>600)throw new l("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(A){}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new ig(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),O=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(SA(this).debug(`[${U}] sending request`,sq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new DA;let M=new AbortController,J=await this.fetchWithTimeout(Z,K,j,M).catch(DE),$=Date.now();if(J instanceof globalThis.Error){let x=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new DA;let V=tq(J)||/timed? ?out/i.test(String(J)+("cause"in J?String(J.cause):""));if(q)return SA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${x}`),SA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${x})`,sq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),this.retryRequest(E,q,g??U);if(SA(this).info(`[${U}] connection ${V?"timed out":"failed"} - error; no more retries left`),SA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (error; no more retries left)`,sq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),V)throw new yE;throw new lg({cause:J})}let _=[...J.headers.entries()].filter(([x])=>x==="request-id").map(([x,V])=>", "+x+": "+JSON.stringify(V)).join(""),T=`[${U}${O}${_}] ${K.method} ${Z} ${J.ok?"succeeded":"failed"} with status ${J.status} in ${$-Y}ms`;if(!J.ok){let x=await this.shouldRetry(J);if(q&&x){let c=`retrying, ${q} attempts remaining`;return await NO(J.body),SA(this).info(`${T} - ${c}`),SA(this).debug(`[${U}] response error (${c})`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,J.headers)}let V=x?"error; no more retries left":"error; not retryable";SA(this).info(`${T} - ${V}`);let a=await J.text().catch((c)=>DE(c).message),k=YZ(a),C=k?void 0:a;throw SA(this).debug(`[${U}] response error (${V})`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(J.status,k,C,J.headers)}return SA(this).info(T),SA(this).debug(`[${U}] response start`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),{response:J,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new $Z(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,O={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)O.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,O)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await _O(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}calculateNonstreamingTimeout(A,q){if(3600000*A/128000>600000||q!=null&&A>q)throw new l("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)MO("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:O}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&O instanceof globalThis.ReadableStream&&{duplex:"half"},...O&&{body:O},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=AA([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...VO(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=AA([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:QZ(A)};else return N(this,wZ,"f").call(this,{body:A,headers:g})}}rU=$A,wZ=new WeakMap,nU=new WeakSet,rO=function(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=rU;$A.HUMAN_PROMPT=oO;$A.AI_PROMPT=eO;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=l;$A.APIError=NA;$A.APIConnectionError=lg;$A.APIConnectionTimeoutError=yE;$A.APIUserAbortError=DA;$A.NotFoundError=fE;$A.ConflictError=cE;$A.RateLimitError=pE;$A.BadRequestError=bE;$A.AuthenticationError=vE;$A.InternalServerError=uE;$A.PermissionDeniedError=mE;$A.UnprocessableEntityError=dE;$A.toFile=XZ;class Iq extends $A{constructor(){super(...arguments);this.completions=new b6(this),this.messages=new eg(this),this.models=new v6(this),this.beta=new Tq(this)}}Iq.Completions=b6;Iq.Messages=eg;Iq.Models=v6;Iq.Beta=Tq;function i(A,q,g,E,F){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!F)throw TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function L(A,q,g,E){if(g==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var oU=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return oU=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function NF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var xF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return Error(JSON.stringify(A))}catch{}}return Error(A)};class f extends Error{}class VA extends f{constructor(A,q,g,E){super(`${VA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("x-request-id"),this.error=q;let F=q;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new A6({message:g,cause:xF(q)});let F=q?.error;if(A===400)return new TF(A,F,g,E);if(A===401)return new IF(A,F,g,E);if(A===403)return new aF(A,F,g,E);if(A===404)return new PF(A,F,g,E);if(A===409)return new RF(A,F,g,E);if(A===422)return new SF(A,F,g,E);if(A===429)return new hF(A,F,g,E);if(A>=500)return new zF(A,F,g,E);return new VA(A,F,g,E)}}class TA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class A6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class q6 extends A6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class TF extends VA{}class IF extends VA{}class aF extends VA{}class PF extends VA{}class RF extends VA{}class SF extends VA{}class hF extends VA{}class zF extends VA{}class BF extends f{constructor(){super("Could not parse response content as the length limit was reached")}}class wF extends f{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class eq extends Error{constructor(A){super(A)}}var GX=/^[a-z][a-z0-9+.-]*:/i,AJ=(A)=>{return GX.test(A)},yA=(A)=>(yA=Array.isArray,yA(A)),eU=yA;function AG(A){if(typeof A!=="object")return{};return A??{}}function qJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function gJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function CF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var EJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new f(`${A} must be an integer`);if(q<0)throw new f(`${A} must be a positive integer`);return q};var FJ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var aq=(A)=>new Promise((q)=>setTimeout(q,A));var Lg="6.16.0";var UJ=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function YX(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var QX=()=>{let A=YX();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":ZJ(Deno.build.os),"X-Stainless-Arch":KJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":ZJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":KJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=OX();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function OX(){if(typeof navigator>"u"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var KJ=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},ZJ=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},jJ,GJ=()=>{return jJ??(jJ=QX())};function YJ(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function qG(...A){let q=globalThis.ReadableStream;if(typeof q>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function CZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return qG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function gG(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function QJ(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var OJ=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var kZ="RFC3986",EG=(A)=>String(A),DZ={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:EG},FG="RFC1738";var yZ=(A,q)=>(yZ=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),yZ(A,q)),Pq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var KG=1024,JJ=(A,q,g,E,F)=>{if(A.length===0)return A;let K=A;if(typeof A==="symbol")K=Symbol.prototype.toString.call(A);else if(typeof A!=="string")K=String(A);if(g==="iso-8859-1")return escape(K).replace(/%u[0-9a-f]{4}/gi,function(j){return"%26%23"+parseInt(j.slice(2),16)+"%3B"});let Z="";for(let j=0;j<K.length;j+=KG){let U=K.length>=KG?K.slice(j,j+KG):K,O=[];for(let Y=0;Y<U.length;++Y){let M=U.charCodeAt(Y);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===FG&&(M===40||M===41)){O[O.length]=U.charAt(Y);continue}if(M<128){O[O.length]=Pq[M];continue}if(M<2048){O[O.length]=Pq[192|M>>6]+Pq[128|M&63];continue}if(M<55296||M>=57344){O[O.length]=Pq[224|M>>12]+Pq[128|M>>6&63]+Pq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),O[O.length]=Pq[240|M>>18]+Pq[128|M>>12&63]+Pq[128|M>>6&63]+Pq[128|M&63]}Z+=O.join("")}return Z};function MJ(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function ZG(A,q){if(yA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var $J={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},XJ=function(A,q){Array.prototype.push.apply(A,yA(q)?q:[q])},_J,IA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:JJ,encodeValuesOnly:!1,format:kZ,formatter:EG,indices:!1,serializeDate(A){return(_J??(_J=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function _X(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var jG={};function HJ(A,q,g,E,F,K,Z,j,U,O,Y,M,J,$,_,T,x,V){let a=A,k=V,C=0,u=!1;while((k=k.get(jG))!==void 0&&!u){let m=k.get(A);if(C+=1,typeof m<"u")if(m===C)throw RangeError("Cyclic object value");else u=!0;if(typeof k.get(jG)>"u")C=0}if(typeof O==="function")a=O(q,a);else if(a instanceof Date)a=J?.(a);else if(g==="comma"&&yA(a))a=ZG(a,function(m){if(m instanceof Date)return J?.(m);return m});if(a===null){if(K)return U&&!T?U(q,IA.encoder,x,"key",$):q;a=""}if(_X(a)||MJ(a)){if(U){let m=T?q:U(q,IA.encoder,x,"key",$);return[_?.(m)+"="+_?.(U(a,IA.encoder,x,"value",$))]}return[_?.(q)+"="+_?.(String(a))]}let c=[];if(typeof a>"u")return c;let R;if(g==="comma"&&yA(a)){if(T&&U)a=ZG(a,U);R=[{value:a.length>0?a.join(",")||null:void 0}]}else if(yA(O))R=O;else{let m=Object.keys(a);R=Y?m.sort(Y):m}let z=j?String(q).replace(/\./g,"%2E"):String(q),n=E&&yA(a)&&a.length===1?z+"[]":z;if(F&&yA(a)&&a.length===0)return n+"[]";for(let m=0;m<R.length;++m){let gA=R[m],FA=typeof gA==="object"&&typeof gA.value<"u"?gA.value:a[gA];if(Z&&FA===null)continue;let YA=M&&j?gA.replace(/\./g,"%2E"):gA,PA=yA(a)?typeof g==="function"?g(n,YA):n:n+(M?"."+YA:"["+YA+"]");V.set(A,C);let bA=new WeakMap;bA.set(jG,V),XJ(c,HJ(FA,PA,g,E,F,K,Z,j,g==="comma"&&T&&yA(a)?null:U,O,Y,M,J,$,_,T,x,bA))}return c}function $X(A=IA){if(typeof A.allowEmptyArrays<"u"&&typeof A.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys<"u"&&typeof A.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder<"u"&&typeof A.encoder!=="function")throw TypeError("Encoder has to be a function.");let q=A.charset||IA.charset;if(typeof A.charset<"u"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=kZ;if(typeof A.format<"u"){if(!yZ(DZ,A.format))throw TypeError("Unknown format option provided.");g=A.format}let E=DZ[g],F=IA.filter;if(typeof A.filter==="function"||yA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in $J)K=A.arrayFormat;else if("indices"in A)K=A.indices?"indices":"repeat";else K=IA.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots>"u"?!!A.encodeDotInKeys===!0?!0:IA.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:IA.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:IA.allowEmptyArrays,arrayFormat:K,charset:q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:IA.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter>"u"?IA.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:IA.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:IA.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:IA.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:IA.encodeValuesOnly,filter:F,format:g,formatter:E,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:IA.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:IA.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:IA.strictNullHandling}}function UG(A,q={}){let g=A,E=$X(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(yA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=$J[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let O=new WeakMap;for(let J=0;J<F.length;++J){let $=F[J];if(E.skipNulls&&g[$]===null)continue;XJ(Z,HJ(g[$],$,j,U,E.allowEmptyArrays,E.strictNullHandling,E.skipNulls,E.encodeDotInKeys,E.encode?E.encoder:null,E.filter,E.sort,E.allowDots,E.serializeDate,E.format,E.formatter,E.encodeValuesOnly,E.charset,O))}let Y=Z.join(E.delimiter),M=E.addQueryPrefix===!0?"?":"";if(E.charsetSentinel)if(E.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return Y.length>0?M+Y:""}function WJ(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var LJ;function m6(A){let q;return(LJ??(q=new globalThis.TextEncoder,LJ=q.encode.bind(q)))(A)}var VJ;function GG(A){let q;return(VJ??(q=new globalThis.TextDecoder,VJ=q.decode.bind(q)))(A)}var sA,nA;class f6{constructor(){sA.set(this,void 0),nA.set(this,void 0),i(this,sA,new Uint8Array,"f"),i(this,nA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?m6(A):A;i(this,sA,WJ([L(this,sA,"f"),q]),"f");let g=[],E;while((E=HX(L(this,sA,"f"),L(this,nA,"f")))!=null){if(E.carriage&&L(this,nA,"f")==null){i(this,nA,E.index,"f");continue}if(L(this,nA,"f")!=null&&(E.index!==L(this,nA,"f")+1||E.carriage)){g.push(GG(L(this,sA,"f").subarray(0,L(this,nA,"f")-1))),i(this,sA,L(this,sA,"f").subarray(L(this,nA,"f")),"f"),i(this,nA,null,"f");continue}let F=L(this,nA,"f")!==null?E.preceding-1:E.preceding,K=GG(L(this,sA,"f").subarray(0,F));g.push(K),i(this,sA,L(this,sA,"f").subarray(E.index),"f"),i(this,nA,null,"f")}return g}flush(){if(!L(this,sA,"f").length)return[];return this.decode(`
132
+ `)}}sA=new WeakMap,nA=new WeakMap;f6.NEWLINE_CHARS=new Set([`
133
+ `,"\r"]);f6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function HX(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function NJ(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var vZ={off:0,error:200,warn:300,info:400,debug:500},YG=(A,q,g)=>{if(!A)return;if(gJ(vZ,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(vZ))}`);return};function kF(){}function bZ(A,q,g){if(!q||vZ[A]>vZ[g])return kF;else return q[A].bind(q)}var LX={error:kF,warn:kF,info:kF,debug:kF},xJ=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return LX;let E=xJ.get(q);if(E&&E[0]===g)return E[1];let F={error:bZ("error",q,g),warn:bZ("warn",q,g),info:bZ("info",q,g),debug:bZ("debug",q,g)};return xJ.set(q,[g,F]),F}var Ag=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var DF;class rA{constructor(A,q,g){this.iterator=A,DF.set(this,void 0),this.controller=q,i(this,DF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?HA(g):console;async function*K(){if(E)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of VX(A,q)){if(Z)continue;if(j.data.startsWith("[DONE]")){Z=!0;continue}if(j.event===null||!j.event.startsWith("thread.")){let U;try{U=JSON.parse(j.data)}catch(O){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),O}if(U&&U.error)throw new VA(void 0,U.error,void 0,A.headers);yield U}else{let U;try{U=JSON.parse(j.data)}catch(O){throw console.error("Could not parse message into JSON:",j.data),console.error("From chunk:",j.raw),O}if(j.event=="error")throw new VA(void 0,U.error,U.message,void 0);yield{event:j.event,data:U}}}Z=!0}catch(j){if(NF(j))return;throw j}finally{if(!Z)q.abort()}}return new rA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new f6,j=gG(A);for await(let U of j)for(let O of Z.decode(U))yield O;for(let U of Z.flush())yield U}async function*K(){if(E)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(NF(j))return;throw j}finally{if(!Z)q.abort()}}return new rA(K,q,g)}[(DF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new rA(()=>E(A),this.controller,L(this,DF,"f")),new rA(()=>E(q),this.controller,L(this,DF,"f"))]}toReadableStream(){let A=this,q;return qG({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=m6(JSON.stringify(E)+`
134
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*VX(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new f("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new f("Attempted to iterate over a response with no body")}let g=new TJ,E=new f6,F=gG(A.body);for await(let K of WX(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*WX(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?m6(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=NJ(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class TJ{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
135
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=NX(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function NX(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function mZ(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(HA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller,A);return rA.fromSSEResponse(g,q.controller,A)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return QG(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Ag({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function QG(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("x-request-id"),enumerable:!1})}var yF;class g6 extends Promise{constructor(A,q,g=mZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,yF.set(this,void 0),i(this,yF,A,"f")}_thenUnwrap(A){return new g6(L(this,yF,"f"),this.responsePromise,async(q,g)=>QG(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(L(this,yF,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}yF=new WeakMap;var fZ;class cZ{constructor(A,q,g,E){fZ.set(this,void 0),i(this,fZ,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new f("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await L(this,fZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(fZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class dZ extends g6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await mZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class qg extends cZ{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.object=g.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class EA extends cZ{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.getPaginatedItems(),q=A[A.length-1]?.id;if(!q)return null;return{...this.options,query:{...AG(this.options.query),after:q}}}}class Vg extends cZ{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.last_id=g.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.last_id;if(!A)return null;return{...this.options,query:{...AG(this.options.query),after:A}}}}var MG=()=>{if(typeof File>"u"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function c6(A,q,g){return MG(),new File(A,q??"unknown_file",g)}function bF(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var pZ=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",_G=async(A,q)=>{if(!OG(A.body))return A;return{...A,body:await aJ(A.body,q)}},oA=async(A,q)=>{return{...A,body:await aJ(A.body,q)}},IJ=new WeakMap;function TX(A){let q=typeof A==="function"?A:A.fetch,g=IJ.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return IJ.set(q,E),E}var aJ=async(A,q)=>{if(!await TX(q))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>JG(g,E,F))),g},PJ=(A)=>A instanceof Blob&&("name"in A),IX=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||pZ(A)||PJ(A)),OG=(A)=>{if(IX(A))return!0;if(Array.isArray(A))return A.some(OG);if(A&&typeof A==="object"){for(let q in A)if(OG(A[q]))return!0}return!1},JG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response)A.append(q,c6([await g.blob()],bF(g)));else if(pZ(g))A.append(q,c6([await new Response(CZ(g)).blob()],bF(g)));else if(PJ(g))A.append(q,g,bF(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>JG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>JG(A,`${q}[${E}]`,F)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var RJ=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",aX=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&RJ(A),PX=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function uZ(A,q,g){if(MG(),A=await A,aX(A)){if(A instanceof File)return A;return c6([await A.arrayBuffer()],A.name)}if(PX(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),c6(await $G(F),q,g)}let E=await $G(A);if(q||(q=bF(A)),!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return c6(E,q,g)}async function $G(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(RJ(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(pZ(A))for await(let g of A)q.push(...await $G(g));else{let g=A?.constructor?.name;throw Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${RX(A)}`)}return q}function RX(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class S{constructor(A){this._client=A}}function hJ(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var SJ=Object.freeze(Object.create(null)),hX=(A=hJ)=>function(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,J)=>{if(/[?#]/.test(M))F=!0;let $=E[J],_=(F?encodeURIComponent:A)(""+$);if(J!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??SJ)??SJ)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(J===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,O;while((O=U.exec(j))!==null)K.push({start:O.index,length:O[0].length,error:`Value "${O[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((J,$)=>{let _=" ".repeat($.start-Y),T="^".repeat($.length);return Y=$.start+$.length,J+_+T},"");throw new f(`Path parameters result in path with invalid segments:
136
+ ${K.map((J)=>J.error).join(`
137
+ `)}
138
+ ${Z}
139
+ ${M}`)}return Z},I=hX(hJ);class d6 extends S{list(A,q={},g){return this._client.getAPIList(I`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function vF(A){return A!==void 0&&"function"in A&&A.function!==void 0}function mF(A){return A?.$brand==="auto-parseable-response-format"}function E6(A){return A?.$brand==="auto-parseable-tool"}function zJ(A,q){if(!q||!XG(q))return{...A,choices:A.choices.map((g)=>{return wJ(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return fF(A,q)}function fF(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new BF;if(E.finish_reason==="content_filter")throw new wF;return wJ(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>CX(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?wX(q,E.message.content):null}}});return{...A,choices:g}}function wX(A,q){if(A.response_format?.type!=="json_schema")return null;if(A.response_format?.type==="json_schema"){if("$parseRaw"in A.response_format)return A.response_format.$parseRaw(q);return JSON.parse(q)}return null}function CX(A,q){let g=A.tools?.find((E)=>vF(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:E6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function BJ(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>vF(E)&&E.function?.name===q.function.name);return vF(g)&&(E6(g)||g?.function.strict||!1)}function XG(A){if(mF(A.response_format))return!0;return A.tools?.some((q)=>E6(q)||q.type==="function"&&q.function.strict===!0)??!1}function wJ(A){for(let q of A||[])if(q.type!=="function")throw new f(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function CJ(A){for(let q of A??[]){if(q.type!=="function")throw new f(`Currently only \`function\` tool types support auto-parsing; Received \`${q.type}\``);if(q.function.strict!==!0)throw new f(`The \`${q.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var p6=(A)=>{return A?.role==="assistant"},HG=(A)=>{return A?.role==="tool"};var LG,lZ,iZ,cF,dF,tZ,pF,gg,uF,sZ,nZ,u6,kJ;class F6{constructor(){LG.add(this),this.controller=new AbortController,lZ.set(this,void 0),iZ.set(this,()=>{}),cF.set(this,()=>{}),dF.set(this,void 0),tZ.set(this,()=>{}),pF.set(this,()=>{}),gg.set(this,{}),uF.set(this,!1),sZ.set(this,!1),nZ.set(this,!1),u6.set(this,!1),i(this,lZ,new Promise((A,q)=>{i(this,iZ,A,"f"),i(this,cF,q,"f")}),"f"),i(this,dF,new Promise((A,q)=>{i(this,tZ,A,"f"),i(this,pF,q,"f")}),"f"),L(this,lZ,"f").catch(()=>{}),L(this,dF,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},L(this,LG,"m",kJ).bind(this))},0)}_connected(){if(this.ended)return;L(this,iZ,"f").call(this),this._emit("connect")}get ended(){return L(this,uF,"f")}get errored(){return L(this,sZ,"f")}get aborted(){return L(this,nZ,"f")}abort(){this.controller.abort()}on(A,q){return(L(this,gg,"f")[A]||(L(this,gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=L(this,gg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(L(this,gg,"f")[A]||(L(this,gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(i(this,u6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){i(this,u6,!0,"f"),await L(this,dF,"f")}_emit(A,...q){if(L(this,uF,"f"))return;if(A==="end")i(this,uF,!0,"f"),L(this,tZ,"f").call(this);let g=L(this,gg,"f")[A];if(g)L(this,gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!L(this,u6,"f")&&!g?.length)Promise.reject(E);L(this,cF,"f").call(this,E),L(this,pF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!L(this,u6,"f")&&!g?.length)Promise.reject(E);L(this,cF,"f").call(this,E),L(this,pF,"f").call(this,E),this._emit("end")}}_emitFinal(){}}lZ=new WeakMap,iZ=new WeakMap,cF=new WeakMap,dF=new WeakMap,tZ=new WeakMap,pF=new WeakMap,gg=new WeakMap,uF=new WeakMap,sZ=new WeakMap,nZ=new WeakMap,u6=new WeakMap,LG=new WeakSet,kJ=function(q){if(i(this,sZ,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new TA;if(q instanceof TA)return i(this,nZ,!0,"f"),this._emit("abort",q);if(q instanceof f)return this._emit("error",q);if(q instanceof Error){let g=new f(q.message);return g.cause=q,this._emit("error",g)}return this._emit("error",new f(String(q)))};function DJ(A){return typeof A.parse==="function"}var cA,VG,rZ,WG,NG,xG,yJ,bJ,kX=10;class lF extends F6{constructor(){super(...arguments);cA.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(A){this._chatCompletions.push(A),this._emit("chatCompletion",A);let q=A.choices[0]?.message;if(q)this._addMessage(q);return A}_addMessage(A,q=!0){if(!("content"in A))A.content=null;if(this.messages.push(A),q){if(this._emit("message",A),HG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(p6(A)&&A.tool_calls){for(let g of A.tool_calls)if(g.type==="function")this._emit("functionToolCall",g.function)}}}async finalChatCompletion(){await this.done();let A=this._chatCompletions[this._chatCompletions.length-1];if(!A)throw new f("stream ended without producing a ChatCompletion");return A}async finalContent(){return await this.done(),L(this,cA,"m",VG).call(this)}async finalMessage(){return await this.done(),L(this,cA,"m",rZ).call(this)}async finalFunctionToolCall(){return await this.done(),L(this,cA,"m",WG).call(this)}async finalFunctionToolCallResult(){return await this.done(),L(this,cA,"m",NG).call(this)}async totalUsage(){return await this.done(),L(this,cA,"m",xG).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let A=this._chatCompletions[this._chatCompletions.length-1];if(A)this._emit("finalChatCompletion",A);let q=L(this,cA,"m",rZ).call(this);if(q)this._emit("finalMessage",q);let g=L(this,cA,"m",VG).call(this);if(g)this._emit("finalContent",g);let E=L(this,cA,"m",WG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=L(this,cA,"m",NG).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",L(this,cA,"m",xG).call(this))}async _createChatCompletion(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}L(this,cA,"m",yJ).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(fF(F,q))}async _runChatCompletion(A,q,g){for(let E of q.messages)this._addMessage(E,!1);return await this._createChatCompletion(A,q,g)}async _runTools(A,q,g){let{tool_choice:F="auto",stream:K,...Z}=q,j=typeof F!=="string"&&F.type==="function"&&F?.function?.name,{maxChatCompletions:U=kX}=g||{},O=q.tools.map((J)=>{if(E6(J)){if(!J.$callback)throw new f("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:J.$callback,name:J.function.name,description:J.function.description||"",parameters:J.function.parameters,parse:J.$parseRaw,strict:!0}}}return J}),Y={};for(let J of O)if(J.type==="function")Y[J.function.name||J.function.function.name]=J.function;let M="tools"in q?O.map((J)=>J.type==="function"?{type:"function",function:{name:J.function.name||J.function.function.name,parameters:J.function.parameters,description:J.function.description,strict:J.function.strict}}:J):void 0;for(let J of q.messages)this._addMessage(J,!1);for(let J=0;J<U;++J){let _=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!_)throw new f("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let T of _.tool_calls){if(T.type!=="function")continue;let x=T.id,{name:V,arguments:a}=T.function,k=Y[V];if(!k){let R=`Invalid tool_call: ${JSON.stringify(V)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:x,content:R});continue}else if(j&&j!==V){let R=`Invalid tool_call: ${JSON.stringify(V)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:x,content:R});continue}let C;try{C=DJ(k)?await k.parse(a):a}catch(R){let z=R instanceof Error?R.message:String(R);this._addMessage({role:"tool",tool_call_id:x,content:z});continue}let u=await k.function(C,this),c=L(this,cA,"m",bJ).call(this,u);if(this._addMessage({role:"tool",tool_call_id:x,content:c}),j)return}}return}}cA=new WeakSet,VG=function(){return L(this,cA,"m",rZ).call(this).content??null},rZ=function(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(p6(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new f("stream ended without producing a ChatCompletionMessage with role=assistant")},WG=function(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(p6(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},NG=function(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(HG(g)&&g.content!=null&&typeof g.content==="string"&&this.messages.some((E)=>E.role==="assistant"&&E.tool_calls?.some((F)=>F.type==="function"&&F.id===g.tool_call_id)))return g.content}return},xG=function(){let q={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:g}of this._chatCompletions)if(g)q.completion_tokens+=g.completion_tokens,q.prompt_tokens+=g.prompt_tokens,q.total_tokens+=g.total_tokens;return q},yJ=function(q){if(q.n!=null&&q.n>1)throw new f("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},bJ=function(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class iF extends lF{static runTools(A,q,g){let E=new iF,F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}_addMessage(A,q=!0){if(super._addMessage(A,q),p6(A)&&A.content)this._emit("content",A.content)}}var hA={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class vJ extends Error{}class mJ extends Error{}function DX(A,q=hA.ALL){if(typeof A!=="string")throw TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw Error(`${A} is empty`);return yX(A.trim(),q)}var yX=(A,q)=>{let g=A.length,E=0,F=(J)=>{throw new vJ(`${J} at position ${E}`)},K=(J)=>{throw new mJ(`${J} at position ${E}`)},Z=()=>{if(M(),E>=g)F("Unexpected end of input");if(A[E]==='"')return j();if(A[E]==="{")return U();if(A[E]==="[")return O();if(A.substring(E,E+4)==="null"||hA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||hA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||hA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||hA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||hA.MINUS_INFINITY&q&&1<g-E&&g-E<9&&"-Infinity".startsWith(A.substring(E)))return E+=9,-1/0;if(A.substring(E,E+3)==="NaN"||hA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return Y()},j=()=>{let J=E,$=!1;E++;while(E<g&&(A[E]!=='"'||$&&A[E-1]==="\\"))$=A[E]==="\\"?!$:!1,E++;if(A.charAt(E)=='"')try{return JSON.parse(A.substring(J,++E-Number($)))}catch(_){K(String(_))}else if(hA.STR&q)try{return JSON.parse(A.substring(J,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(J,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let J={};try{while(A[E]!=="}"){if(M(),E>=g&&hA.OBJ&q)return J;let $=j();M(),E++;try{let _=Z();Object.defineProperty(J,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(hA.OBJ&q)return J;else throw _}if(M(),A[E]===",")E++}}catch($){if(hA.OBJ&q)return J;else F("Expected '}' at end of object")}return E++,J},O=()=>{E++;let J=[];try{while(A[E]!=="]")if(J.push(Z()),M(),A[E]===",")E++}catch($){if(hA.ARR&q)return J;F("Expected ']' at end of array")}return E++,J},Y=()=>{if(E===0){if(A==="-"&&hA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(hA.NUM&q)try{if(A[A.length-1]===".")return JSON.parse(A.substring(0,A.lastIndexOf(".")));return JSON.parse(A.substring(0,A.lastIndexOf("e")))}catch(_){}K(String($))}}let J=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(hA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(J,E))}catch($){if(A.substring(J,E)==="-"&&hA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(J,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
140
+ \r `.includes(A[E]))E++};return Z()},TG=(A)=>DX(A,hA.ALL^hA.NUM);var aA,Eg,l6,Wg,IG,oZ,aG,PG,RG,eZ,SG,fJ;class Ng extends lF{constructor(A){super();aA.add(this),Eg.set(this,void 0),l6.set(this,void 0),Wg.set(this,void 0),i(this,Eg,A,"f"),i(this,l6,[],"f")}get currentChatCompletionSnapshot(){return L(this,Wg,"f")}static fromReadableStream(A){let q=new Ng(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new Ng(q);return E._run(()=>E._runChatCompletion(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createChatCompletion(A,q,g){super._createChatCompletion;let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}L(this,aA,"m",IG).call(this);let F=await A.chat.completions.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let K of F)L(this,aA,"m",aG).call(this,K);if(F.controller.signal?.aborted)throw new TA;return this._addChatCompletion(L(this,aA,"m",eZ).call(this))}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}L(this,aA,"m",IG).call(this),this._connected();let E=rA.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(L(this,aA,"m",eZ).call(this));L(this,aA,"m",aG).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new TA;return this._addChatCompletion(L(this,aA,"m",eZ).call(this))}[(Eg=new WeakMap,l6=new WeakMap,Wg=new WeakMap,aA=new WeakSet,IG=function(){if(this.ended)return;i(this,Wg,void 0,"f")},oZ=function(q){let g=L(this,l6,"f")[q.index];if(g)return g;return g={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},L(this,l6,"f")[q.index]=g,g},aG=function(q){if(this.ended)return;let g=L(this,aA,"m",fJ).call(this,q);this._emit("chunk",q,g);for(let E of q.choices){let F=g.choices[E.index];if(E.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",E.delta.content,F.message.content),this._emit("content.delta",{delta:E.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(E.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:E.delta.refusal,snapshot:F.message.refusal});if(E.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:E.logprobs?.content,snapshot:F.logprobs?.content??[]});if(E.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:E.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let K=L(this,aA,"m",oZ).call(this,F);if(F.finish_reason){if(L(this,aA,"m",RG).call(this,F),K.current_tool_call_index!=null)L(this,aA,"m",PG).call(this,F,K.current_tool_call_index)}for(let Z of E.delta.tool_calls??[]){if(K.current_tool_call_index!==Z.index){if(L(this,aA,"m",RG).call(this,F),K.current_tool_call_index!=null)L(this,aA,"m",PG).call(this,F,K.current_tool_call_index)}K.current_tool_call_index=Z.index}for(let Z of E.delta.tool_calls??[]){let j=F.message.tool_calls?.[Z.index];if(!j?.type)continue;if(j?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:j.function?.name,index:Z.index,arguments:j.function.arguments,parsed_arguments:j.function.parsed_arguments,arguments_delta:Z.function?.arguments??""});else dJ(j?.type)}}},PG=function(q,g){if(L(this,aA,"m",oZ).call(this,q).done_tool_calls.has(g))return;let F=q.message.tool_calls?.[g];if(!F)throw Error("no tool call snapshot");if(!F.type)throw Error("tool call snapshot missing `type`");if(F.type==="function"){let K=L(this,Eg,"f")?.tools?.find((Z)=>vF(Z)&&Z.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:g,arguments:F.function.arguments,parsed_arguments:E6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else dJ(F.type)},RG=function(q){let g=L(this,aA,"m",oZ).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=L(this,aA,"m",SG).call(this);this._emit("content.done",{content:q.message.content,parsed:E?E.$parseRaw(q.message.content):null})}if(q.message.refusal&&!g.refusal_done)g.refusal_done=!0,this._emit("refusal.done",{refusal:q.message.refusal});if(q.logprobs?.content&&!g.logprobs_content_done)g.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:q.logprobs.content});if(q.logprobs?.refusal&&!g.logprobs_refusal_done)g.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:q.logprobs.refusal})},eZ=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let q=L(this,Wg,"f");if(!q)throw new f("request ended without sending any chunks");return i(this,Wg,void 0,"f"),i(this,l6,[],"f"),bX(q,L(this,Eg,"f"))},SG=function(){let q=L(this,Eg,"f")?.response_format;if(mF(q))return q;return null},fJ=function(q){var g,E,F,K;let Z=L(this,Wg,"f"),{choices:j,...U}=q;if(!Z)Z=i(this,Wg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:O,finish_reason:Y,index:M,logprobs:J=null,...$}of q.choices){let _=Z.choices[M];if(!_)_=Z.choices[M]={finish_reason:Y,index:M,message:{},logprobs:J,...$};if(J)if(!_.logprobs)_.logprobs=Object.assign({},J);else{let{content:u,refusal:c,...R}=J;if(cJ(R),Object.assign(_.logprobs,R),u)(g=_.logprobs).content??(g.content=[]),_.logprobs.content.push(...u);if(c)(E=_.logprobs).refusal??(E.refusal=[]),_.logprobs.refusal.push(...c)}if(Y){if(_.finish_reason=Y,L(this,Eg,"f")&&XG(L(this,Eg,"f"))){if(Y==="length")throw new BF;if(Y==="content_filter")throw new wF}}if(Object.assign(_,$),!O)continue;let{content:T,refusal:x,function_call:V,role:a,tool_calls:k,...C}=O;if(cJ(C),Object.assign(_.message,C),x)_.message.refusal=(_.message.refusal||"")+x;if(a)_.message.role=a;if(V)if(!_.message.function_call)_.message.function_call=V;else{if(V.name)_.message.function_call.name=V.name;if(V.arguments)(F=_.message.function_call).arguments??(F.arguments=""),_.message.function_call.arguments+=V.arguments}if(T){if(_.message.content=(_.message.content||"")+T,!_.message.refusal&&L(this,aA,"m",SG).call(this))_.message.parsed=TG(_.message.content)}if(k){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:u,id:c,type:R,function:z,...n}of k){let m=(K=_.message.tool_calls)[u]??(K[u]={});if(Object.assign(m,n),c)m.id=c;if(R)m.type=R;if(z)m.function??(m.function={name:z.name??"",arguments:""});if(z?.name)m.function.name=z.name;if(z?.arguments){if(m.function.arguments+=z.arguments,BJ(L(this,Eg,"f"),m))m.function.parsed_arguments=TG(m.function.arguments)}}}}return Z},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("chunk",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new rA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function bX(A,q){let{id:g,choices:E,created:F,model:K,system_fingerprint:Z,...j}=A,U={...j,id:g,choices:E.map(({message:O,finish_reason:Y,index:M,logprobs:J,...$})=>{if(!Y)throw new f(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:T,tool_calls:x,...V}=O,a=O.role;if(!a)throw new f(`missing role for choice ${M}`);if(T){let{arguments:k,name:C}=T;if(k==null)throw new f(`missing function_call.arguments for choice ${M}`);if(!C)throw new f(`missing function_call.name for choice ${M}`);return{...$,message:{content:_,function_call:{arguments:k,name:C},role:a,refusal:O.refusal??null},finish_reason:Y,index:M,logprobs:J}}if(x)return{...$,index:M,finish_reason:Y,logprobs:J,message:{...V,role:a,content:_,refusal:O.refusal??null,tool_calls:x.map((k,C)=>{let{function:u,type:c,id:R,...z}=k,{arguments:n,name:m,...gA}=u||{};if(R==null)throw new f(`missing choices[${M}].tool_calls[${C}].id
141
+ ${Aj(A)}`);if(c==null)throw new f(`missing choices[${M}].tool_calls[${C}].type
142
+ ${Aj(A)}`);if(m==null)throw new f(`missing choices[${M}].tool_calls[${C}].function.name
143
+ ${Aj(A)}`);if(n==null)throw new f(`missing choices[${M}].tool_calls[${C}].function.arguments
144
+ ${Aj(A)}`);return{...z,id:R,type:c,function:{...gA,name:m,arguments:n}}})}};return{...$,message:{...V,content:_,role:a,refusal:O.refusal??null},finish_reason:Y,index:M,logprobs:J}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return zJ(U,q)}function Aj(A){return JSON.stringify(A)}function cJ(A){return}function dJ(A){}class i6 extends Ng{static fromReadableStream(A){let q=new i6(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new i6(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class xg extends S{constructor(){super(...arguments);this.messages=new d6(this._client)}create(A,q){return this._client.post("/chat/completions",{body:A,...q,stream:A.stream??!1})}retrieve(A,q){return this._client.get(I`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(I`/chat/completions/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/chat/completions",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/chat/completions/${A}`,q)}parse(A,q){return CJ(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>fF(g,A))}runTools(A,q){if(A.stream)return i6.runTools(this._client,A,q);return iF.runTools(this._client,A,q)}stream(A,q){return Ng.createChatCompletion(this._client,A,q)}}xg.Messages=d6;class K6 extends S{constructor(){super(...arguments);this.completions=new xg(this._client)}}K6.Completions=xg;var pJ=Symbol("brand.privateNullableHeaders");function*mX(A){if(!A)return;if(pJ in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(eU(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw TypeError("expected header name to be a string");let K=eU(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var D=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of mX(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[pJ]:!0,values:q,nulls:g}};class tF extends S{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class sF extends S{create(A,q){return this._client.post("/audio/transcriptions",oA({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class nF extends S{create(A,q){return this._client.post("/audio/translations",oA({body:A,...q,__metadata:{model:A.model}},this._client))}}class Fg extends S{constructor(){super(...arguments);this.transcriptions=new sF(this._client),this.translations=new nF(this._client),this.speech=new tF(this._client)}}Fg.Transcriptions=sF;Fg.Translations=nF;Fg.Speech=tF;class t6 extends S{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(I`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(I`/batches/${A}/cancel`,q)}}class rF extends S{create(A,q){return this._client.post("/assistants",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/assistants/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(I`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class oF extends S{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class eF extends S{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class Z6 extends S{constructor(){super(...arguments);this.sessions=new oF(this._client),this.transcriptionSessions=new eF(this._client)}}Z6.Sessions=oF;Z6.TranscriptionSessions=eF;class AK extends S{create(A,q){return this._client.post("/chatkit/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(I`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class qK extends S{retrieve(A,q){return this._client.get(I`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",Vg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(I`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(I`/chatkit/threads/${A}/items`,Vg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class j6 extends S{constructor(){super(...arguments);this.sessions=new AK(this._client),this.threads=new qK(this._client)}}j6.Sessions=AK;j6.Threads=qK;class gK extends S{create(A,q,g){return this._client.post(I`/threads/${A}/messages`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(I`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/threads/${A}/messages`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{thread_id:E}=q;return this._client.delete(I`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class EK extends S{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(I`/threads/${E}/runs/${F}/steps/${A}`,{query:K,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q,g){let{thread_id:E,...F}=q;return this._client.getAPIList(I`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var uJ=(A)=>{if(typeof Buffer<"u"){let q=Buffer.from(A,"base64");return Array.from(new Float32Array(q.buffer,q.byteOffset,q.length/Float32Array.BYTES_PER_ELEMENT))}else{let q=atob(A),g=q.length,E=new Uint8Array(g);for(let F=0;F<g;F++)E[F]=q.charCodeAt(F);return Array.from(new Float32Array(E.buffer))}};var Tg=(A)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(A)?.trim();return};var wA,G6,hG,Rq,qj,Xq,Y6,s6,U6,Fj,eA,gj,Ej,ZK,FK,KK,lJ,iJ,tJ,sJ,nJ,rJ,oJ;class Ig extends F6{constructor(){super(...arguments);wA.add(this),hG.set(this,[]),Rq.set(this,{}),qj.set(this,{}),Xq.set(this,void 0),Y6.set(this,void 0),s6.set(this,void 0),U6.set(this,void 0),Fj.set(this,void 0),eA.set(this,void 0),gj.set(this,void 0),Ej.set(this,void 0),ZK.set(this,void 0)}[(hG=new WeakMap,Rq=new WeakMap,qj=new WeakMap,Xq=new WeakMap,Y6=new WeakMap,s6=new WeakMap,U6=new WeakMap,Fj=new WeakMap,eA=new WeakMap,gj=new WeakMap,Ej=new WeakMap,ZK=new WeakMap,wA=new WeakSet,Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(A){let q=new G6;return q._run(()=>q._fromReadableStream(A)),q}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}this._connected();let E=rA.fromReadableStream(A,this.controller);for await(let F of E)L(this,wA,"m",FK).call(this,F);if(E.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}toReadableStream(){return new rA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new G6;return F._run(()=>F._runToolAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.submitToolOutputs(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)L(this,wA,"m",FK).call(this,j);if(Z.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}static createThreadAssistantStream(A,q,g){let E=new G6;return E._run(()=>E._threadAssistantStream(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}static createAssistantStream(A,q,g,E){let F=new G6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return L(this,gj,"f")}currentRun(){return L(this,Ej,"f")}currentMessageSnapshot(){return L(this,Xq,"f")}currentRunStepSnapshot(){return L(this,ZK,"f")}async finalRunSteps(){return await this.done(),Object.values(L(this,Rq,"f"))}async finalMessages(){return await this.done(),Object.values(L(this,qj,"f"))}async finalRun(){if(await this.done(),!L(this,Y6,"f"))throw Error("Final run was not received.");return L(this,Y6,"f")}async _createThreadAssistantStream(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}let F={...q,stream:!0},K=await A.createAndRun(F,{...g,signal:this.controller.signal});this._connected();for await(let Z of K)L(this,wA,"m",FK).call(this,Z);if(K.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}async _createAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.create(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)L(this,wA,"m",FK).call(this,j);if(Z.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}static accumulateDelta(A,q){for(let[g,E]of Object.entries(q)){if(!A.hasOwnProperty(g)){A[g]=E;continue}let F=A[g];if(F===null||F===void 0){A[g]=E;continue}if(g==="index"||g==="type"){A[g]=E;continue}if(typeof F==="string"&&typeof E==="string")F+=E;else if(typeof F==="number"&&typeof E==="number")F+=E;else if(CF(F)&&CF(E))F=this.accumulateDelta(F,E);else if(Array.isArray(F)&&Array.isArray(E)){if(F.every((K)=>typeof K==="string"||typeof K==="number")){F.push(...E);continue}for(let K of E){if(!CF(K))throw Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw Error(`Expected array delta entry \`index\` property to be a number but got ${Z}`);let j=F[Z];if(j==null)F.push(K);else F[Z]=this.accumulateDelta(j,K)}continue}else throw Error(`Unhandled record type: ${g}, deltaValue: ${E}, accValue: ${F}`);A[g]=F}return A}_addRun(A){return A}async _threadAssistantStream(A,q,g){return await this._createThreadAssistantStream(q,A,g)}async _runAssistantStream(A,q,g,E){return await this._createAssistantStream(q,A,g,E)}async _runToolAssistantStream(A,q,g,E){return await this._createToolAssistantStream(q,A,g,E)}}G6=Ig,FK=function(q){if(this.ended)return;switch(i(this,gj,q,"f"),L(this,wA,"m",tJ).call(this,q),q.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":L(this,wA,"m",oJ).call(this,q);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":L(this,wA,"m",iJ).call(this,q);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":L(this,wA,"m",lJ).call(this,q);break;case"error":throw Error("Encountered an error event in event processing - errors should be processed earlier");default:eX(q)}},KK=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");if(!L(this,Y6,"f"))throw Error("Final run has not been received");return L(this,Y6,"f")},lJ=function(q){let[g,E]=L(this,wA,"m",nJ).call(this,q,L(this,Xq,"f"));i(this,Xq,g,"f"),L(this,qj,"f")[g.id]=g;for(let F of E){let K=g.content[F.index];if(K?.type=="text")this._emit("textCreated",K.text)}switch(q.event){case"thread.message.created":this._emit("messageCreated",q.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",q.data.delta,g),q.data.delta.content)for(let F of q.data.delta.content){if(F.type=="text"&&F.text){let K=F.text,Z=g.content[F.index];if(Z&&Z.type=="text")this._emit("textDelta",K,Z.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=L(this,s6,"f")){if(L(this,U6,"f"))switch(L(this,U6,"f").type){case"text":this._emit("textDone",L(this,U6,"f").text,L(this,Xq,"f"));break;case"image_file":this._emit("imageFileDone",L(this,U6,"f").image_file,L(this,Xq,"f"));break}i(this,s6,F.index,"f")}i(this,U6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(L(this,s6,"f")!==void 0){let F=q.data.content[L(this,s6,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,L(this,Xq,"f"));break;case"text":this._emit("textDone",F.text,L(this,Xq,"f"));break}}if(L(this,Xq,"f"))this._emit("messageDone",q.data);i(this,Xq,void 0,"f")}},iJ=function(q){let g=L(this,wA,"m",sJ).call(this,q);switch(i(this,ZK,g,"f"),q.event){case"thread.run.step.created":this._emit("runStepCreated",q.data);break;case"thread.run.step.delta":let E=q.data.delta;if(E.step_details&&E.step_details.type=="tool_calls"&&E.step_details.tool_calls&&g.step_details.type=="tool_calls")for(let K of E.step_details.tool_calls)if(K.index==L(this,Fj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f"));if(i(this,Fj,K.index,"f"),i(this,eA,g.step_details.tool_calls[K.index],"f"),L(this,eA,"f"))this._emit("toolCallCreated",L(this,eA,"f"))}this._emit("runStepDelta",q.data.delta,g);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(i(this,ZK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f")),i(this,eA,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},tJ=function(q){L(this,hG,"f").push(q),this._emit("event",q)},sJ=function(q){switch(q.event){case"thread.run.step.created":return L(this,Rq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=L(this,Rq,"f")[q.data.id];if(!g)throw Error("Received a RunStepDelta before creation of a snapshot");let E=q.data;if(E.delta){let F=G6.accumulateDelta(g,E.delta);L(this,Rq,"f")[q.data.id]=F}return L(this,Rq,"f")[q.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":L(this,Rq,"f")[q.data.id]=q.data;break}if(L(this,Rq,"f")[q.data.id])return L(this,Rq,"f")[q.data.id];throw Error("No snapshot available")},nJ=function(q,g){let E=[];switch(q.event){case"thread.message.created":return[q.data,E];case"thread.message.delta":if(!g)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=q.data;if(F.delta.content)for(let K of F.delta.content)if(K.index in g.content){let Z=g.content[K.index];g.content[K.index]=L(this,wA,"m",rJ).call(this,K,Z)}else g.content[K.index]=K,E.push(K);return[g,E];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(g)return[g,E];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},rJ=function(q,g){return G6.accumulateDelta(g,q)},oJ=function(q){switch(i(this,Ej,q.data,"f"),q.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":if(i(this,Y6,q.data,"f"),L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f")),i(this,eA,void 0,"f");break;case"thread.run.cancelling":break}};function eX(A){}class n6 extends S{constructor(){super(...arguments);this.steps=new EK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(I`/threads/${A}/runs`,{query:{include:E},body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(I`/threads/${E}/runs/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/threads/${A}/runs`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{thread_id:E}=q;return this._client.post(I`/threads/${E}/runs/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(E.id,{thread_id:A},g)}createAndStream(A,q,g){return Ig.createAssistantStream(A,this._client.beta.threads.runs,q,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(A,q,{...g,headers:{...g?.headers,...E}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return Ig.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/runs/${A}/submit_tool_outputs`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}async submitToolOutputsAndPoll(A,q,g){let E=await this.submitToolOutputs(A,q,g);return await this.poll(E.id,q,g)}submitToolOutputsStream(A,q,g){return Ig.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}n6.Steps=EK;class Q6 extends S{constructor(){super(...arguments);this.runs=new n6(this._client),this.messages=new gK(this._client)}create(A={},q){return this._client.post("/threads",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(I`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers]),stream:A.stream??!1})}async createAndRunPoll(A,q){let g=await this.createAndRun(A,q);return await this.runs.poll(g.id,{thread_id:g.thread_id},q)}createAndRunStream(A,q){return Ig.createThreadAssistantStream(A,this._client.beta.threads,q)}}Q6.Runs=n6;Q6.Messages=gK;class Sq extends S{constructor(){super(...arguments);this.realtime=new Z6(this._client),this.chatkit=new j6(this._client),this.assistants=new rF(this._client),this.threads=new Q6(this._client)}}Sq.Realtime=Z6;Sq.ChatKit=j6;Sq.Assistants=rF;Sq.Threads=Q6;class r6 extends S{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class jK extends S{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(I`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class o6 extends S{constructor(){super(...arguments);this.content=new jK(this._client)}create(A,q,g){return this._client.post(I`/containers/${A}/files`,oA({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(I`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(I`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(I`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}o6.Content=jK;class O6 extends S{constructor(){super(...arguments);this.files=new o6(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(I`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}O6.Files=o6;class UK extends S{create(A,q,g){let{include:E,...F}=q;return this._client.post(I`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(I`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(I`/conversations/${A}/items`,Vg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(I`/conversations/${E}/items/${A}`,g)}}class J6 extends S{constructor(){super(...arguments);this.items=new UK(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(I`/conversations/${A}`,q)}update(A,q,g){return this._client.post(I`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(I`/conversations/${A}`,q)}}J6.Items=UK;class e6 extends S{create(A,q){let g=!!A.encoding_format,E=g?A.encoding_format:"base64";if(g)HA(this._client).debug("embeddings/user defined encoding_format:",A.encoding_format);let F=this._client.post("/embeddings",{body:{...A,encoding_format:E},...q});if(g)return F;return HA(this._client).debug("embeddings/decoding base64 embeddings from base64"),F._thenUnwrap((K)=>{if(K&&K.data)K.data.forEach((Z)=>{let j=Z.embedding;Z.embedding=uJ(j)});return K})}}class GK extends S{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(I`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(I`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class AE extends S{constructor(){super(...arguments);this.outputItems=new GK(this._client)}create(A,q,g){return this._client.post(I`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(I`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(I`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(I`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(I`/evals/${E}/runs/${A}`,g)}}AE.OutputItems=GK;class M6 extends S{constructor(){super(...arguments);this.runs=new AE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(I`/evals/${A}`,q)}update(A,q,g){return this._client.post(I`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/evals/${A}`,q)}}M6.Runs=AE;class qE extends S{create(A,q){return this._client.post("/files",oA({body:A,...q},this._client))}retrieve(A,q){return this._client.get(I`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/files/${A}`,q)}content(A,q){return this._client.get(I`/files/${A}/content`,{...q,headers:D([{Accept:"application/binary"},q?.headers]),__binaryResponse:!0})}async waitForProcessing(A,{pollInterval:q=5000,maxWait:g=1800000}={}){let E=new Set(["processed","error","deleted"]),F=Date.now(),K=await this.retrieve(A);while(!K.status||!E.has(K.status))if(await aq(q),K=await this.retrieve(A),Date.now()-F>g)throw new q6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class YK extends S{}class QK extends S{run(A,q){return this._client.post("/fine_tuning/alpha/graders/run",{body:A,...q})}validate(A,q){return this._client.post("/fine_tuning/alpha/graders/validate",{body:A,...q})}}class gE extends S{constructor(){super(...arguments);this.graders=new QK(this._client)}}gE.Graders=QK;class OK extends S{create(A,q,g){return this._client.getAPIList(I`/fine_tuning/checkpoints/${A}/permissions`,qg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(I`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(I`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class EE extends S{constructor(){super(...arguments);this.permissions=new OK(this._client)}}EE.Permissions=OK;class JK extends S{list(A,q={},g){return this._client.getAPIList(I`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class FE extends S{constructor(){super(...arguments);this.checkpoints=new JK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(I`/fine_tuning/jobs/${A}`,q)}list(A={},q){return this._client.getAPIList("/fine_tuning/jobs",EA,{query:A,...q})}cancel(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(I`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/resume`,q)}}FE.Checkpoints=JK;class hq extends S{constructor(){super(...arguments);this.methods=new YK(this._client),this.jobs=new FE(this._client),this.checkpoints=new EE(this._client),this.alpha=new gE(this._client)}}hq.Methods=YK;hq.Jobs=FE;hq.Checkpoints=EE;hq.Alpha=gE;class MK extends S{}class _6 extends S{constructor(){super(...arguments);this.graderModels=new MK(this._client)}}_6.GraderModels=MK;class KE extends S{createVariation(A,q){return this._client.post("/images/variations",oA({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",oA({body:A,...q,stream:A.stream??!1},this._client))}generate(A,q){return this._client.post("/images/generations",{body:A,...q,stream:A.stream??!1})}}class ZE extends S{retrieve(A,q){return this._client.get(I`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",qg,A)}delete(A,q){return this._client.delete(I`/models/${A}`,q)}}class jE extends S{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class _K extends S{accept(A,q,g){return this._client.post(I`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(I`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(I`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(I`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class $K extends S{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class ag extends S{constructor(){super(...arguments);this.clientSecrets=new $K(this._client),this.calls=new _K(this._client)}}ag.ClientSecrets=$K;ag.Calls=_K;function eJ(A,q){if(!q||!HH(q))return{...A,output_parsed:null,output:A.output.map((g)=>{if(g.type==="function_call")return{...g,parsed_arguments:null};if(g.type==="message")return{...g,content:g.content.map((E)=>({...E,parsed:null}))};else return g})};return zG(A,q)}function zG(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:WH(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:XH(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Kj(E);return Object.defineProperty(E,"output_parsed",{enumerable:!0,get(){for(let F of E.output){if(F.type!=="message")continue;for(let K of F.content)if(K.type==="output_text"&&K.parsed!==null)return K.parsed}return null}}),E}function XH(A,q){if(A.text?.format?.type!=="json_schema")return null;if("$parseRaw"in A.text?.format)return(A.text?.format).$parseRaw(q);return JSON.parse(q)}function HH(A){if(mF(A.text?.format))return!0;return!1}function LH(A){return A?.$brand==="auto-parseable-tool"}function VH(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function WH(A,q){let g=VH(A.tools??[],q.name);return{...q,...q,parsed_arguments:LH(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Kj(A){let q=[];for(let g of A.output){if(g.type!=="message")continue;for(let E of g.content)if(E.type==="output_text")q.push(E.text)}A.output_text=q.join("")}var UE,Zj,Pg,jj,AM,qM,gM,EM;class Uj extends F6{constructor(A){super();UE.add(this),Zj.set(this,void 0),Pg.set(this,void 0),jj.set(this,void 0),i(this,Zj,A,"f")}static createResponse(A,q,g){let E=new Uj(q);return E._run(()=>E._createOrRetrieveResponse(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createOrRetrieveResponse(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}L(this,UE,"m",AM).call(this);let F,K=null;if("response_id"in q)F=await A.responses.retrieve(q.response_id,{stream:!0},{...g,signal:this.controller.signal,stream:!0}),K=q.starting_after??null;else F=await A.responses.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let Z of F)L(this,UE,"m",qM).call(this,Z,K);if(F.controller.signal?.aborted)throw new TA;return L(this,UE,"m",gM).call(this)}[(Zj=new WeakMap,Pg=new WeakMap,jj=new WeakMap,UE=new WeakSet,AM=function(){if(this.ended)return;i(this,Pg,void 0,"f")},qM=function(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=L(this,UE,"m",EM).call(this,q);switch(E("event",q),q.type){case"response.output_text.delta":{let K=F.output[q.output_index];if(!K)throw new f(`missing output at index ${q.output_index}`);if(K.type==="message"){let Z=K.content[q.content_index];if(!Z)throw new f(`missing content at index ${q.content_index}`);if(Z.type!=="output_text")throw new f(`expected content to be 'output_text', got ${Z.type}`);E("response.output_text.delta",{...q,snapshot:Z.text})}break}case"response.function_call_arguments.delta":{let K=F.output[q.output_index];if(!K)throw new f(`missing output at index ${q.output_index}`);if(K.type==="function_call")E("response.function_call_arguments.delta",{...q,snapshot:K.arguments});break}default:E(q.type,q);break}},gM=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let q=L(this,Pg,"f");if(!q)throw new f("request ended without sending any events");i(this,Pg,void 0,"f");let g=NH(q,L(this,Zj,"f"));return i(this,jj,g,"f"),g},EM=function(q){let g=L(this,Pg,"f");if(!g){if(q.type!=="response.created")throw new f(`When snapshot hasn't been set yet, expected 'response.created' event, got ${q.type}`);return g=i(this,Pg,q.response,"f"),g}switch(q.type){case"response.output_item.added":{g.output.push(q.item);break}case"response.content_part.added":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);let F=E.type,K=q.part;if(F==="message"&&K.type!=="reasoning_text")E.content.push(K);else if(F==="reasoning"&&K.type==="reasoning_text"){if(!E.content)E.content=[];E.content.push(K)}break}case"response.output_text.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="message"){let F=E.content[q.content_index];if(!F)throw new f(`missing content at index ${q.content_index}`);if(F.type!=="output_text")throw new f(`expected content to be 'output_text', got ${F.type}`);F.text+=q.delta}break}case"response.function_call_arguments.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="function_call")E.arguments+=q.delta;break}case"response.reasoning_text.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="reasoning"){let F=E.content?.[q.content_index];if(!F)throw new f(`missing content at index ${q.content_index}`);if(F.type!=="reasoning_text")throw new f(`expected content to be 'reasoning_text', got ${F.type}`);F.text+=q.delta}break}case"response.completed":{i(this,Pg,q.response,"f");break}}return g},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let A=L(this,jj,"f");if(!A)throw new f("stream ended without producing a ChatCompletion");return A}}function NH(A,q){return eJ(A,q)}class XK extends S{list(A,q={},g){return this._client.getAPIList(I`/responses/${A}/input_items`,EA,{query:q,...g})}}class HK extends S{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class Rg extends S{constructor(){super(...arguments);this.inputItems=new XK(this._client),this.inputTokens=new HK(this._client)}create(A,q){return this._client.post("/responses",{body:A,...q,stream:A.stream??!1})._thenUnwrap((g)=>{if("object"in g&&g.object==="response")Kj(g);return g})}retrieve(A,q={},g){return this._client.get(I`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Kj(E);return E})}delete(A,q){return this._client.delete(I`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>zG(g,A))}stream(A,q){return Uj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(I`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}Rg.InputItems=XK;Rg.InputTokens=HK;class LK extends S{create(A,q,g){return this._client.post(I`/uploads/${A}/parts`,oA({body:q,...g},this._client))}}class $6 extends S{constructor(){super(...arguments);this.parts=new LK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(I`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(I`/uploads/${A}/complete`,{body:q,...g})}}$6.Parts=LK;var FM=async(A)=>{let q=await Promise.allSettled(A),g=q.filter((F)=>F.status==="rejected");if(g.length){for(let F of g)console.error(F.reason);throw Error(`${g.length} promise(s) failed - see the above errors`)}let E=[];for(let F of q)if(F.status==="fulfilled")E.push(F.value);return E};class VK extends S{create(A,q,g){return this._client.post(I`/vector_stores/${A}/file_batches`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(I`/vector_stores/${E}/file_batches/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{vector_store_id:E}=q;return this._client.post(I`/vector_stores/${E}/file_batches/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q);return await this.poll(A,E.id,g)}listFiles(A,q,g){let{vector_store_id:E,...F}=q;return this._client.getAPIList(I`/vector_stores/${E}/file_batches/${A}/files`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse();switch(F.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(A,{files:q,fileIds:g=[]},E){if(q==null||q.length==0)throw Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=E?.maxConcurrency??5,K=Math.min(F,q.length),Z=this._client,j=q.values(),U=[...g];async function O(M){for(let J of M){let $=await Z.files.create({file:J,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(O);return await FM(Y),await this.createAndPoll(A,{file_ids:U})}}class WK extends S{create(A,q,g){return this._client.post(I`/vector_stores/${A}/files`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(I`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{vector_store_id:E,...F}=q;return this._client.post(I`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/vector_stores/${A}/files`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{vector_store_id:E}=q;return this._client.delete(I`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(A,E.id,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let F=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse(),K=F.data;switch(K.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=F.response.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"failed":case"completed":return K}}}async upload(A,q,g){let E=await this._client.files.create({file:q,purpose:"assistants"},g);return this.create(A,{file_id:E.id},g)}async uploadAndPoll(A,q,g){let E=await this.upload(A,q,g);return await this.poll(A,E.id,g)}content(A,q,g){let{vector_store_id:E}=q;return this._client.getAPIList(I`/vector_stores/${E}/files/${A}/content`,qg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class Sg extends S{constructor(){super(...arguments);this.files=new WK(this._client),this.fileBatches=new VK(this._client)}create(A,q){return this._client.post("/vector_stores",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/vector_stores/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(I`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(I`/vector_stores/${A}/search`,qg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}Sg.Files=WK;Sg.FileBatches=VK;class GE extends S{create(A,q){return this._client.post("/videos",_G({body:A,...q},this._client))}retrieve(A,q){return this._client.get(I`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",Vg,{query:A,...q})}delete(A,q){return this._client.delete(I`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(I`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(I`/videos/${A}/remix`,_G({body:q,...g},this._client))}}var YE,KM,Gj;class QE extends S{constructor(){super(...arguments);YE.add(this)}async unwrap(A,q,g=this._client.webhookSecret,E=300){return await this.verifySignature(A,q,g,E),JSON.parse(A)}async verifySignature(A,q,g=this._client.webhookSecret,E=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw Error("Webhook signature verification is only supported when the `crypto` global is defined");L(this,YE,"m",KM).call(this,g);let F=D([q]).values,K=L(this,YE,"m",Gj).call(this,F,"webhook-signature"),Z=L(this,YE,"m",Gj).call(this,F,"webhook-timestamp"),j=L(this,YE,"m",Gj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new eq("Invalid webhook timestamp format");let O=Math.floor(Date.now()/1000);if(O-U>E)throw new eq("Webhook timestamp is too old");if(U>O+E)throw new eq("Webhook timestamp is too new");let Y=K.split(" ").map((_)=>_.startsWith("v1,")?_.substring(3):_),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),J=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let _ of Y)try{let T=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,T,new TextEncoder().encode(J)))return}catch{continue}throw new eq("The given webhook signature does not match the expected signature")}}YE=new WeakSet,KM=function(q){if(typeof q!=="string"||q.length===0)throw Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},Gj=function(q,g){if(!q)throw Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw Error(`Missing required header: ${g}`);return E};var BG,wG,Yj,ZM;class e{constructor({baseURL:A=Tg("OPENAI_BASE_URL"),apiKey:q=Tg("OPENAI_API_KEY"),organization:g=Tg("OPENAI_ORG_ID")??null,project:E=Tg("OPENAI_PROJECT_ID")??null,webhookSecret:F=Tg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(BG.add(this),Yj.set(this,void 0),this.completions=new r6(this),this.chat=new K6(this),this.embeddings=new e6(this),this.files=new qE(this),this.images=new KE(this),this.audio=new Fg(this),this.moderations=new jE(this),this.models=new ZE(this),this.fineTuning=new hq(this),this.graders=new _6(this),this.vectorStores=new Sg(this),this.webhooks=new QE(this),this.beta=new Sq(this),this.batches=new t6(this),this.uploads=new $6(this),this.responses=new Rg(this),this.realtime=new ag(this),this.conversations=new J6(this),this.evals=new M6(this),this.containers=new O6(this),this.videos=new GE(this),q===void 0)throw new f("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let Z={apiKey:q,organization:g,project:E,webhookSecret:F,...K,baseURL:A||"https://api.openai.com/v1"};if(!Z.dangerouslyAllowBrowser&&UJ())throw new f(`It looks like you're running in a browser-like environment.
145
+
146
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
147
+ If you understand the risks and have appropriate mitigations in place,
148
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
149
+
150
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
151
+
152
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
153
+ `);this.baseURL=Z.baseURL,this.timeout=Z.timeout??wG.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=YG(Z.logLevel,"ClientOptions.logLevel",this)??YG(Tg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??YJ(),i(this,Yj,OJ,"f"),this._options=Z,this.apiKey=typeof q==="string"?q:"Missing Key",this.organization=g,this.project=E,this.webhookSecret=F}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){return}async authHeaders(A){return D([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(A){return UG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Lg}`}defaultIdempotencyKey(){return`stainless-node-retry-${oU()}`}makeStatusError(A,q,g,E){return VA.generate(A,q,g,E)}async _callApiKey(){let A=this._options.apiKey;if(typeof A!=="function")return!1;let q;try{q=await A()}catch(g){if(g instanceof f)throw g;throw new f(`Failed to get token from 'apiKey' function: ${g.message}`,{cause:g})}if(typeof q!=="string"||!q)throw new f(`Expected 'apiKey' function argument to return a string but it returned ${q}`);return this.apiKey=q,!0}buildURL(A,q,g){let E=!L(this,BG,"m",ZM).call(this)&&g||this.baseURL,F=AJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!qJ(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}async prepareOptions(A){await this._callApiKey()}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new g6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),O=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(HA(this).debug(`[${U}] sending request`,Ag({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new TA;let M=new AbortController,J=await this.fetchWithTimeout(Z,K,j,M).catch(xF),$=Date.now();if(J instanceof globalThis.Error){let x=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new TA;let V=NF(J)||/timed? ?out/i.test(String(J)+("cause"in J?String(J.cause):""));if(q)return HA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${x}`),HA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${x})`,Ag({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${V?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (error; no more retries left)`,Ag({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),V)throw new q6;throw new A6({cause:J})}let _=[...J.headers.entries()].filter(([x])=>x==="x-request-id").map(([x,V])=>", "+x+": "+JSON.stringify(V)).join(""),T=`[${U}${O}${_}] ${K.method} ${Z} ${J.ok?"succeeded":"failed"} with status ${J.status} in ${$-Y}ms`;if(!J.ok){let x=await this.shouldRetry(J);if(q&&x){let c=`retrying, ${q} attempts remaining`;return await QJ(J.body),HA(this).info(`${T} - ${c}`),HA(this).debug(`[${U}] response error (${c})`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,J.headers)}let V=x?"error; no more retries left":"error; not retryable";HA(this).info(`${T} - ${V}`);let a=await J.text().catch((c)=>xF(c).message),k=FJ(a),C=k?void 0:a;throw HA(this).debug(`[${U}] response error (${V})`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(J.status,k,C,J.headers)}return HA(this).info(T),HA(this).debug(`[${U}] response start`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),{response:J,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new dZ(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,O={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)O.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,O)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await aq(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)EJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:O}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&O instanceof globalThis.ReadableStream&&{duplex:"half"},...O&&{body:O},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=D([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...GJ(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=D([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:CZ(A)};else return L(this,Yj,"f").call(this,{body:A,headers:g})}}wG=e,Yj=new WeakMap,BG=new WeakSet,ZM=function(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=wG;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=f;e.APIError=VA;e.APIConnectionError=A6;e.APIConnectionTimeoutError=q6;e.APIUserAbortError=TA;e.NotFoundError=PF;e.ConflictError=RF;e.RateLimitError=hF;e.BadRequestError=TF;e.AuthenticationError=IF;e.InternalServerError=zF;e.PermissionDeniedError=aF;e.UnprocessableEntityError=SF;e.InvalidWebhookSignatureError=eq;e.toFile=uZ;e.Completions=r6;e.Chat=K6;e.Embeddings=e6;e.Files=qE;e.Images=KE;e.Audio=Fg;e.Moderations=jE;e.Models=ZE;e.FineTuning=hq;e.Graders=_6;e.VectorStores=Sg;e.Webhooks=QE;e.Beta=Sq;e.Batches=t6;e.Uploads=$6;e.Responses=Rg;e.Realtime=ag;e.Conversations=J6;e.Evals=M6;e.Containers=O6;e.Videos=GE;async function SH(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw Error("Failed to fetch top stories");return A.json()}function jM(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(jM).filter(Boolean)}}function UM(A,q){let g=A.comments.slice(0,12).map(jM).filter(Boolean);return{...A,comments:q?g:[]}}async function GM(A){try{let q=await fetch(`https://api.hnpwa.com/v0/item/${A}.json`);if(!q.ok)return null;let g=await q.json();return UM(g,!0)}catch{return null}}async function YM(){let q=(await SH()).sort((Y,M)=>M-Y).slice(0,200),g=await Promise.all(q.map(async(Y)=>{try{let M=await fetch(`https://api.hnpwa.com/v0/item/${Y}.json`);if(!M.ok)return null;let J=await M.json();return UM(J,!1)}catch{return null}})),E=Date.now()/1000,F=E-86400;return g.filter((Y)=>Y!==null).filter((Y)=>Y.type==="link").filter((Y)=>Y.time>F).filter((Y)=>(Y.points||0)>=50||Y.comments_count>=20).sort((Y,M)=>{let J=(E-Y.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-J/24)),T=Math.max(0,100*(1-$/24)),x=(Y.points||0)+Y.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+T-x}).slice(0,24)}import{homedir as hH}from"os";import{join as QM}from"path";import{existsSync as OM,mkdirSync as zH,readFileSync as BH,writeFileSync as wH}from"fs";var NK=[{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5"}],xK=[{id:"gpt-5-nano-2025-08-07",name:"GPT-5 Nano"},{id:"gpt-5-mini-2025-08-07",name:"GPT-5 Mini"},{id:"gpt-5.2-2025-12-11",name:"GPT-5.2"}],CH="claude-haiku-4-5-20251001",kH="gpt-5-nano-2025-08-07",CG=QM(hH(),".config","hn-cli"),kG=QM(CG,"config.json");function hg(){try{if(OM(kG)){let A=BH(kG,"utf-8");return JSON.parse(A)}}catch{}return{}}function TK(A){if(!OM(CG))zH(CG,{recursive:!0});wH(kG,JSON.stringify(A,null,2))}function zg(A){if(A==="anthropic"){if(process.env.ANTHROPIC_API_KEY)return process.env.ANTHROPIC_API_KEY}else if(A==="openai"){if(process.env.OPENAI_API_KEY)return process.env.OPENAI_API_KEY}let q=hg();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function JM(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=hg();if(A.provider&&zg(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function X6(A){let q=hg();if(A==="anthropic")return q.anthropicModel||CH;else return q.openaiModel||kH}function MM(A,q){let g=hg();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;TK(g)}function _M(){let A=hg();delete A.anthropicApiKey,delete A.openaiApiKey,delete A.provider,TK(A)}var DH={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",text:"#e0e0e0",textDim:"#888888",textMuted:"#666666",textVeryDim:"#444444",accent:"#ff6600",link:"#6699ff",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},yH={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",text:"#1a1a1a",textDim:"#666666",textMuted:"#888888",textVeryDim:"#aaaaaa",accent:"#ff6600",link:"#0066cc",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},h={...DH};function bH(A){if(!A)return!1;let q=A.replace("#",""),g=parseInt(q.substr(0,2),16),E=parseInt(q.substr(2,2),16),F=parseInt(q.substr(4,2),16);return(0.299*g+0.587*E+0.114*F)/255>0.5}var vH="https://brianlovin.com/hn";class H6{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;storyListPanel;storyListScroll;storyItems=new Map;detailPanel;detailHeader;detailScroll;detailContent;rootCommentBoxes=[];shortcutsBar;loadingIndicator=null;loadingInterval=null;loadingFrame=0;static LOADING_CHARS=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];chatMode=!1;chatMessages=[];chatPanel=null;chatScroll=null;chatContent=null;chatInput=null;chatStoryContext="";anthropic=null;openai=null;chatProvider="anthropic";isStreaming=!1;authSetupMode=!1;authSetupStep="provider";authSelectedProvider="anthropic";authKeyInput=null;settingsMode=!1;settingsSection="main";settingsSelectedIndex=0;settingsModelProvider="anthropic";suggestions=[];originalSuggestions=[];selectedSuggestionIndex=-1;suggestionsGenerated=!1;suggestionsLoading=!1;suggestionsContainer=null;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}async initialize(){await this.detectTheme(),this.setupLayout(),this.setupKeyboardHandlers(),await this.loadPosts()}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}async detectTheme(){try{let A=await this.renderer.getPalette({timeout:100});if(A.defaultBackground&&bH(A.defaultBackground))h={...yH}}catch{}}setupLayout(){let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:h.bg,paddingTop:1}),q=this.createHeader(),g=this.createContentArea();A.add(q),A.add(g),this.renderer.root.add(A)}createHeader(){let A=new s(this.ctx,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:2,paddingRight:2,backgroundColor:h.bg,borderStyle:"single",border:["bottom"],borderColor:h.border}),q=new o(this.ctx,{content:"Hacker News",fg:h.accent});A.add(q);let g=new s(this.ctx,{flexDirection:"row",gap:2,alignItems:"center"});this.loadingIndicator=new o(this.ctx,{content:"",fg:h.textDim}),g.add(this.loadingIndicator);let E=new o(this.ctx,{content:"brianlovin/hn-cli",fg:h.textDim,onMouseDown:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")},onMouseOver:()=>{E.fg=h.link},onMouseOut:()=>{E.fg=h.textDim}});return g.add(E),A.add(g),A}startLoadingAnimation(){if(this.loadingInterval)return;this.loadingFrame=0,this.loadingInterval=setInterval(()=>{if(this.loadingIndicator&&!this.renderer.isDestroyed){let A=H6.LOADING_CHARS[this.loadingFrame]??"\u280B";this.loadingIndicator.content=A,this.loadingFrame=(this.loadingFrame+1)%H6.LOADING_CHARS.length}},80)}stopLoadingAnimation(){if(this.loadingInterval)clearInterval(this.loadingInterval),this.loadingInterval=null;if(this.loadingIndicator)this.loadingIndicator.content=""}createContentArea(){this.contentArea=new s(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"});let A=this.createStoryList(),q=this.createDetailPanel();return this.contentArea.add(A),this.contentArea.add(q),this.contentArea}createStoryList(){return this.storyListPanel=new s(this.ctx,{id:"story-list-panel",width:"35%",height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:h.border,backgroundColor:h.bg,paddingLeft:1,paddingBottom:1}),this.storyListScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",backgroundColor:h.bg}}),this.storyListPanel.add(this.storyListScroll),this.storyListPanel}createDetailPanel(){return this.detailPanel=new s(this.ctx,{width:"65%",height:"100%",flexDirection:"column",backgroundColor:h.bg}),this.detailHeader=new s(this.ctx,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:h.border,backgroundColor:h.bg}),this.detailScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:h.bg}}),this.detailContent=new s(this.ctx,{width:"100%",flexDirection:"column",backgroundColor:h.bg}),this.detailScroll.add(this.detailContent),this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.shortcutsBar=this.createShortcutsBar(),this.detailPanel.add(this.shortcutsBar),this.detailPanel}createChatPanel(){this.chatScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:h.bg}}),this.chatContent=new s(this.ctx,{width:"100%",flexDirection:"column",backgroundColor:h.bg}),this.chatScroll.add(this.chatContent),this.suggestionsContainer=new s(this.ctx,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,backgroundColor:h.bg});let A=new s(this.ctx,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border}),q=new o(this.ctx,{content:"\u203A ",fg:h.accent});A.add(q),this.chatInput=new xq(this.ctx,{width:"100%",flexGrow:1,minHeight:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:h.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]}),this.chatInput.on("submit",()=>{if(this.chatInput&&this.chatInput.plainText.trim()){this.sendChatMessage();return}if(this.selectedSuggestionIndex>=0&&this.suggestions.length>0){this.selectSuggestion();return}}),A.add(this.chatInput);let g=this.createChatShortcutsBar();this.chatPanel=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:h.bg});let E=new s(this.ctx,{width:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:h.border,backgroundColor:h.bg}),F=this.selectedPost;if(F){let K=new o(this.ctx,{content:F.title,fg:h.text,wrapMode:"word",onMouseDown:()=>this.openStoryUrl(),onMouseOver:()=>{K.fg=h.link},onMouseOut:()=>{K.fg=h.text}});if(E.add(K),F.domain){let Z=new o(this.ctx,{content:F.domain,fg:h.textDim,marginTop:1,onMouseDown:()=>this.openStoryUrl()});E.add(Z)}}this.chatPanel.add(E),this.chatPanel.add(this.chatScroll),this.chatPanel.add(this.suggestionsContainer),this.chatPanel.add(A),this.chatPanel.add(g)}createChatShortcutsBar(){let A=new s(this.ctx,{width:"100%",height:3,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,paddingBottom:1,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border,gap:2});return[{key:",",desc:"settings"},{key:"esc",desc:"close"}].forEach(({key:g,desc:E})=>{let F=new s(this.ctx,{flexDirection:"row",gap:1}),K=new o(this.ctx,{content:g,fg:h.accent}),Z=new o(this.ctx,{content:E,fg:h.textDim});F.add(K),F.add(Z),A.add(F)}),A}showChatView(){if(!this.selectedPost)return;if(this.chatMode=!0,this.chatMessages=[],this.suggestions=[],this.selectedSuggestionIndex=-1,this.suggestionsGenerated=!1,this.suggestionsLoading=!0,this.contentArea.remove(this.storyListPanel.id),this.detailPanel.width="100%",this.detailPanel.remove(this.detailHeader.id),this.detailPanel.remove(this.detailScroll.id),this.detailPanel.remove(this.shortcutsBar.id),this.createChatPanel(),this.chatPanel)for(let A of this.chatPanel.getChildren())this.detailPanel.add(A);setTimeout(()=>{if(this.chatInput)this.chatInput.focus(),this.chatInput.clear()},10),this.addChatMessage("assistant",`I have the full context of "${this.selectedPost.title}" and all ${this.selectedPost.comments_count} comments. Ask me anything!`),this.renderSuggestions(),this.generateSuggestions()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.chatInput)this.chatInput.blur();this.contentArea.remove(this.detailPanel.id),this.contentArea.add(this.storyListPanel),this.contentArea.add(this.detailPanel),this.detailPanel.width="65%";for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.detailPanel.add(this.shortcutsBar),this.selectedPost)this.renderDetail(this.selectedPost)}addChatMessage(A,q){this.chatMessages.push({role:A,content:q}),this.renderChatMessages()}renderChatMessages(){if(!this.chatContent)return;for(let A of this.chatContent.getChildren())this.chatContent.remove(A.id);for(let A of this.chatMessages){let q=new s(this.ctx,{width:"100%",flexDirection:"column",marginBottom:1}),g=this.chatProvider==="anthropic"?"Claude":"GPT",E=new o(this.ctx,{content:A.role==="user"?"You":g,fg:A.role==="user"?h.accent:h.link});q.add(E);let F=new o(this.ctx,{content:A.content,fg:h.text,wrapMode:"word"});q.add(F),this.chatContent.add(q)}if(this.chatScroll)this.chatScroll.scrollTop=this.chatScroll.scrollHeight}async sendChatMessage(){if(!this.chatInput||this.isStreaming)return;let A=this.chatInput.plainText.trim();if(!A)return;if(this.chatInput.clear(),this.addChatMessage("user",A),!this.chatStoryContext&&this.selectedPost)this.chatStoryContext=this.buildStoryContext(this.selectedPost);await this.streamAIResponse(A)}buildStoryContext(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Hacker News Story
154
+
155
+ `;if(g+=`**Title:** ${A.title}
156
+ `,g+=`**URL:** ${q}
157
+ `,A.domain)g+=`**Domain:** ${A.domain}
158
+ `;if(A.points)g+=`**Points:** ${A.points}
159
+ `;if(A.user)g+=`**Posted by:** ${A.user}
160
+ `;if(g+=`**Comments:** ${A.comments_count}
161
+
162
+ `,A.content)g+=`## Story Content
163
+
164
+ ${this.stripHtml(A.content)}
165
+
166
+ `;if(A.comments&&A.comments.length>0)g+=`## Comments
167
+
168
+ `,g+=this.formatCommentsForContext(A.comments);return g}formatCommentsForContext(A,q=0){let g="",E=" ".repeat(q);for(let F of A)if(F.user&&F.content){let K=this.stripHtml(F.content);g+=`${E}**${F.user}:**
169
+ `;let Z=K.split(`
170
+ `).map((j)=>`${E}${j}`).join(`
171
+ `);if(g+=`${Z}
172
+
173
+ `,F.comments&&F.comments.length>0)g+=this.formatCommentsForContext(F.comments,q+1)}return g}async streamAIResponse(A){this.isStreaming=!0;let q=this.chatMessages.length;this.addChatMessage("assistant","...");let g=this.selectedPost?.url||"",E=`You are helping a user understand and discuss a Hacker News story and its comments. Here is the full context:
174
+
175
+ ${this.chatStoryContext}
176
+
177
+ ---
178
+
179
+ The user is reading this in a terminal app and wants to discuss it with you. Be concise but insightful. If they ask about the article content and it would help to have more context, you can suggest they share more details or you can work with what's in the comments.
180
+
181
+ ${g?`The original article URL is: ${g}`:""}`;try{if(this.chatProvider==="anthropic")await this.streamAnthropicResponse(A,E,q);else await this.streamOpenAIResponse(A,E,q)}catch(F){let K=F instanceof Error?F.message:"Unknown error",Z=this.chatProvider==="anthropic"?"Anthropic":"OpenAI";if(this.chatMessages[q])this.chatMessages[q].content=`Error: ${K}
182
+
183
+ Check your ${Z} API key in ~/.config/hn-cli/config.json`,this.renderChatMessages()}this.isStreaming=!1}async streamAnthropicResponse(A,q,g){if(!this.anthropic){let K=zg("anthropic");this.anthropic=new Iq({apiKey:K})}let E=this.anthropic.messages.stream({model:X6("anthropic"),max_tokens:4096,system:q,messages:this.chatMessages.slice(0,-1).map((K)=>({role:K.role,content:K.content})).concat([{role:"user",content:A}])}),F="";E.on("text",(K)=>{if(F+=K,this.chatMessages[g])this.chatMessages[g].content=F,this.renderChatMessages()}),await E.finalMessage()}async streamOpenAIResponse(A,q,g){if(JA("[openai-stream] Starting stream..."),!this.openai){let Z=zg("openai");JA("[openai-stream] Initializing client, API key exists:",!!Z),this.openai=new e({apiKey:Z})}let E=X6("openai");JA("[openai-stream] Model:",E),JA("[openai-stream] Message count:",this.chatMessages.length);let F=await this.openai.chat.completions.create({model:E,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:q},...this.chatMessages.slice(0,-1).map((Z)=>({role:Z.role,content:Z.content})),{role:"user",content:A}]});JA("[openai-stream] Stream created, reading chunks...");let K="";for await(let Z of F){let j=Z.choices[0]?.delta?.content;if(j){if(K+=j,this.chatMessages[g])this.chatMessages[g].content=K,this.renderChatMessages()}}JA("[openai-stream] Stream complete, response length:",K.length)}createShortcutsBar(){let A=new s(this.ctx,{width:"100%",height:3,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,paddingBottom:1,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border,gap:2});return[{key:"j/k",desc:"stories"},{key:"\u2318j/k",desc:"comments"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"q",desc:"quit"}].forEach(({key:g,desc:E})=>{let F=new s(this.ctx,{flexDirection:"row",gap:1}),K=new o(this.ctx,{content:g,fg:h.accent}),Z=new o(this.ctx,{content:E,fg:h.textDim});F.add(K),F.add(Z),A.add(F)}),A}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.name==="q"||A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(this.settingsMode){if(A.name==="escape"){if(this.settingsSection==="model")this.settingsSection="main",this.settingsSelectedIndex=0,this.renderSettings();else this.hideSettings();return}if(A.name==="j"||A.name==="down")this.navigateSettings(1);else if(A.name==="k"||A.name==="up")this.navigateSettings(-1);else if(A.name==="return"||A.name==="enter")this.selectSettingsItem();return}if(this.authSetupMode){if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupStep==="provider"){if(A.name==="j"||A.name==="down")this.authSelectedProvider="openai",this.renderAuthSetup();else if(A.name==="k"||A.name==="up")this.authSelectedProvider="anthropic",this.renderAuthSetup();else if(A.name==="return"||A.name==="enter")this.authSetupStep="key",this.renderAuthSetup()}return}if(this.chatMode){if(A.name==="escape"){this.hideChatView();return}if(A.name===","||A.sequence===","){this.showSettings();return}if(this.suggestions.length>0&&this.chatInput&&!this.chatInput.plainText.trim()){if(A.name==="up"||A.name==="k"){this.navigateSuggestion(-1);return}else if(A.name==="down"||A.name==="j"){this.navigateSuggestion(1);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatInput&&this.chatInput.plainText.trim()){this.sendChatMessage();return}if(this.selectedSuggestionIndex>=0&&this.suggestions.length>0){this.selectSuggestion();return}return}if(this.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126)this.suggestions=[],this.selectedSuggestionIndex=-1,this.renderSuggestions()}if(A.name==="backspace"&&this.chatInput&&this.originalSuggestions.length>0)setTimeout(()=>{if(this.chatInput&&!this.chatInput.plainText.trim()&&this.suggestions.length===0)this.suggestions=[...this.originalSuggestions],this.selectedSuggestionIndex=this.suggestions.length-1,this.renderSuggestions()},10);return}let q=A.meta;if(A.name==="j"&&!q)this.navigateStory(1);else if(A.name==="k"&&!q)this.navigateStory(-1);else if(A.name==="j"&&q)this.navigateToNextComment();else if(A.name==="k"&&q)this.navigateToPreviousComment();else if(A.name==="o")this.openStoryUrl();else if(A.name==="c")this.openChat();else if(A.name==="r")this.refresh()})}async loadPosts(){this.startLoadingAnimation();try{this.posts=await YM(),this.stopLoadingAnimation(),this.renderStoryList(),this.renderEmptyDetail()}catch(A){this.stopLoadingAnimation(),JA("[ERROR]","Error loading posts:",A)}}renderStoryList(){for(let A of this.storyListScroll.getChildren())this.storyListScroll.remove(A.id);this.storyItems.clear(),this.posts.forEach((A,q)=>{let g=this.createStoryItem(A,q);this.storyItems.set(q,g),this.storyListScroll.add(g)})}createStoryItem(A,q){let g=q===this.selectedIndex,E=new s(this.ctx,{id:`story-${A.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:h.bg,flexDirection:"row",onMouseDown:()=>{this.selectStory(q)}}),F=new o(this.ctx,{id:`chevron-${A.id}`,content:g?"\u203A":" ",fg:g?h.accent:h.textVeryDim,width:2,paddingLeft:1});E.add(F);let K=new s(this.ctx,{id:`content-${A.id}`,flexGrow:1,flexDirection:"column",paddingRight:1});E.add(K);let Z=80,j=new o(this.ctx,{id:`title-${A.id}`,content:this.truncateText(A.title,Z),fg:g?h.accent:h.text});if(K.add(j),A.domain){let U=new o(this.ctx,{id:`domain-${A.id}`,content:A.domain,fg:h.textDim});K.add(U)}return E}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,this.updateStoryItemStyle(q,!1),this.updateStoryItemStyle(A,!0);let g=this.posts[A];if(!g)return;try{let K=await GM(g.id);if(this.renderer.isDestroyed)return;if(K)this.selectedPost=K,this.renderDetail(K)}catch(K){JA("[ERROR]","Error loading post:",K)}if(this.renderer.isDestroyed)return;let F=Math.max(0,A*2-5);this.storyListScroll.scrollTop=F}updateStoryItemStyle(A,q){let g=this.storyItems.get(A);if(!g)return;if(!this.posts[A])return;let F=g.getChildren();if(F.length>=2){let K=F[0];if(K&&"content"in K)K.content=q?"\u203A":" ",K.fg=q?h.accent:h.textVeryDim;let j=F[1].getChildren();if(j.length>0){let U=j[0];if(U&&"content"in U)U.fg=q?h.accent:h.text}}}renderDetail(A){for(let F of this.detailHeader.getChildren())this.detailHeader.remove(F.id);for(let F of this.detailContent.getChildren())this.detailContent.remove(F.id);this.rootCommentBoxes=[];let q=new o(this.ctx,{content:A.title,fg:h.text,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>this.openStoryUrl(),onMouseOver:()=>{q.fg=h.link},onMouseOut:()=>{q.fg=h.text}});if(this.detailHeader.add(q),A.domain){let F=new o(this.ctx,{content:A.domain,fg:h.textDim,flexShrink:0,onMouseDown:()=>this.openStoryUrl()});this.detailHeader.add(F)}if(A.content){let F=new s(this.ctx,{width:"100%",marginBottom:1}),K=new o(this.ctx,{content:this.stripHtml(A.content),fg:h.text,wrapMode:"word"});F.add(K),this.detailContent.add(F)}let g=new s(this.ctx,{width:"100%",flexDirection:"column"}),E=new o(this.ctx,{content:`${A.comments_count} comments`,fg:h.textDim});if(g.add(E),A.comments&&A.comments.length>0)A.comments.forEach((F,K)=>{let Z=this.renderComment(F,K);if(g.add(Z),F.level===0)this.rootCommentBoxes.push(Z)});else{let F=new o(this.ctx,{content:"No comments yet...",fg:h.textDim});g.add(F)}this.detailContent.add(g),this.detailScroll.scrollTop=0}renderEmptyDetail(){for(let q of this.detailHeader.getChildren())this.detailHeader.remove(q.id);for(let q of this.detailContent.getChildren())this.detailContent.remove(q.id);let A=new o(this.ctx,{content:"Select a story to view details",fg:h.textDim});this.detailHeader.add(A)}renderComment(A,q){let g=A.level===0,F={0:h.accent,1:h.commentL1,2:h.commentL2,3:h.commentL3}[A.level]??h.commentL3,K=new s(this.ctx,{id:`comment-wrapper-${A.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(A.level>0){let U=new s(this.ctx,{width:A.level*2,flexShrink:0});K.add(U)}let Z=new s(this.ctx,{id:`comment-${A.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:F,flexDirection:"column"}),j=new o(this.ctx,{content:A.user||"[deleted]",fg:g?h.accent:h.textDim});if(Z.add(j),A.content){let U=new o(this.ctx,{content:this.stripHtml(A.content),fg:h.text,wrapMode:"word"});Z.add(U)}else if(A.deleted){let U=new o(this.ctx,{content:"[deleted]",fg:h.textMuted});Z.add(U)}if(K.add(Z),A.comments&&A.comments.length>0){let U=new s(this.ctx,{width:"100%",flexDirection:"column"});A.comments.forEach((Y)=>{let M=this.renderComment(Y);U.add(M)});let O=new s(this.ctx,{width:"100%",flexDirection:"column"});return O.add(K),O.add(U),O}return K}navigateStory(A){if(this.posts.length===0)return;if(this.selectedIndex===-1){if(A>0)this.selectStory(0);else this.selectStory(this.posts.length-1);return}let q=this.selectedIndex+A;if(q>=0&&q<this.posts.length)this.selectStory(q)}navigateToNextComment(){if(!this.selectedPost)return;if(this.rootCommentBoxes.length===0)return;let A=this.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,this.scrollToRootComment(this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,this.scrollToRootComment(this.rootCommentIndex)}scrollToRootComment(A){if(A<0||A>=this.rootCommentBoxes.length)return;let q=this.rootCommentBoxes[A];if(!q)return;let g=this.detailScroll.content,E=q.y-g.y;this.detailScroll.scrollTop=Math.max(0,E-1)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openOnHN(){if(!this.selectedPost)return;let A=`${vH}/${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=JM();if(A)this.chatProvider=A,this.showChatView();else this.showAuthSetup()}showAuthSetup(){this.authSetupMode=!0,this.authSetupStep="provider",this.authSelectedProvider="anthropic",this.detailPanel.remove(this.detailHeader.id),this.detailPanel.remove(this.detailScroll.id),this.detailPanel.remove(this.shortcutsBar.id),this.renderAuthSetup()}hideAuthSetup(){this.authSetupMode=!1;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.detailPanel.add(this.shortcutsBar),this.selectedPost)this.renderDetail(this.selectedPost)}renderAuthSetup(){for(let g of this.detailPanel.getChildren())this.detailPanel.remove(g.id);let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:h.bg}),q=new o(this.ctx,{content:"Set up AI Chat",fg:h.accent});if(A.add(q),A.add(new s(this.ctx,{height:1})),this.authSetupStep==="provider"){let g=new o(this.ctx,{content:"Choose your AI provider:",fg:h.text});A.add(g),A.add(new s(this.ctx,{height:1}));let E=new s(this.ctx,{flexDirection:"row",gap:1}),F=new o(this.ctx,{content:this.authSelectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:this.authSelectedProvider==="anthropic"?h.accent:h.textDim}),K=new o(this.ctx,{content:"Anthropic",fg:this.authSelectedProvider==="anthropic"?h.accent:h.text});E.add(F),E.add(K),A.add(E);let Z=new s(this.ctx,{flexDirection:"row",gap:1}),j=new o(this.ctx,{content:this.authSelectedProvider==="openai"?"\u25CF":"\u25CB",fg:this.authSelectedProvider==="openai"?h.accent:h.textDim}),U=new o(this.ctx,{content:"OpenAI",fg:this.authSelectedProvider==="openai"?h.accent:h.text});Z.add(j),Z.add(U),A.add(Z),A.add(new s(this.ctx,{height:2}));let O=new o(this.ctx,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:h.textDim});A.add(O)}else if(this.authSetupStep==="key"){let g=this.authSelectedProvider==="anthropic"?"Anthropic":"OpenAI",E=new o(this.ctx,{content:`Enter your ${g} API key:`,fg:h.text});A.add(E),A.add(new s(this.ctx,{height:1}));let F=new s(this.ctx,{width:"100%",flexDirection:"row",gap:1}),K=new o(this.ctx,{content:"\u203A",fg:h.accent});F.add(K),this.authKeyInput=new ZZ(this.ctx,{width:"100%",flexGrow:1,placeholder:this.authSelectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:h.bg}),this.authKeyInput.on("enter",()=>{this.saveApiKey()}),F.add(this.authKeyInput),A.add(F),A.add(new s(this.ctx,{height:2}));let Z=new o(this.ctx,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:h.textDim,wrapMode:"word"});A.add(Z),A.add(new s(this.ctx,{height:1}));let j=new o(this.ctx,{content:"This app is open source: github.com/brianlovin/hn-cli",fg:h.textDim,wrapMode:"word"});A.add(j),A.add(new s(this.ctx,{height:2}));let U=new o(this.ctx,{content:"Enter to save, Esc to cancel",fg:h.textDim});A.add(U),setTimeout(()=>{if(this.authKeyInput)this.authKeyInput.focus(),this.authKeyInput.value=""},50)}this.detailPanel.add(A)}saveApiKey(){if(!this.authKeyInput)return;let A=this.authKeyInput.value.trim();if(!A)return;let q=hg();if(q.provider=this.authSelectedProvider,this.authSelectedProvider==="anthropic")q.anthropicApiKey=A;else q.openaiApiKey=A;TK(q),this.hideAuthSetup(),this.chatProvider=this.authSelectedProvider,this.showChatView()}showSettings(){this.settingsMode=!0,this.settingsSection="main",this.settingsSelectedIndex=0;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);this.renderSettings()}hideSettings(){this.settingsMode=!1;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.createChatPanel(),this.chatPanel)for(let A of this.chatPanel.getChildren())this.detailPanel.add(A);if(this.chatInput)this.chatInput.focus(),this.chatInput.clear();this.renderSuggestions()}getSettingsItems(){let A=!!zg("anthropic"),q=!!zg("openai"),g=[];g.push({label:`Provider: ${this.chatProvider==="anthropic"?"Anthropic":"OpenAI"}`,action:"switch_provider",enabled:A&&q});let E=X6(this.chatProvider),K=(this.chatProvider==="anthropic"?NK:xK).find((Z)=>Z.id===E)?.name||E;if(g.push({label:`Model: ${K}`,action:"change_model",enabled:!0}),!A)g.push({label:"Add Anthropic API key",action:"add_anthropic",enabled:!0});if(!q)g.push({label:"Add OpenAI API key",action:"add_openai",enabled:!0});if(A||q)g.push({label:"Clear all API keys",action:"clear_keys",enabled:!0});return g}renderSettings(){for(let g of this.detailPanel.getChildren())this.detailPanel.remove(g.id);let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:h.bg}),q=new o(this.ctx,{content:"Settings",fg:h.accent});if(A.add(q),A.add(new s(this.ctx,{height:1})),this.settingsSection==="main"){this.getSettingsItems().forEach((F,K)=>{let Z=K===this.settingsSelectedIndex,j=new s(this.ctx,{flexDirection:"row",gap:1}),U=new o(this.ctx,{content:Z?"\u203A":" ",fg:h.accent});j.add(U);let O=new o(this.ctx,{content:F.label,fg:Z?h.accent:F.enabled?h.text:h.textDim});j.add(O),A.add(j)}),A.add(new s(this.ctx,{height:2}));let E=new o(this.ctx,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:h.textDim});A.add(E)}else if(this.settingsSection==="model"){let g=this.settingsModelProvider==="anthropic"?NK:xK,E=X6(this.settingsModelProvider),F=new o(this.ctx,{content:`Select ${this.settingsModelProvider==="anthropic"?"Anthropic":"OpenAI"} model:`,fg:h.text});A.add(F),A.add(new s(this.ctx,{height:1})),g.forEach((Z,j)=>{let U=j===this.settingsSelectedIndex,O=Z.id===E,Y=new s(this.ctx,{flexDirection:"row",gap:1}),M=new o(this.ctx,{content:U?"\u203A":" ",fg:h.accent});Y.add(M);let J=new o(this.ctx,{content:O?"\u25CF":"\u25CB",fg:O?h.accent:h.textDim});Y.add(J);let $=new o(this.ctx,{content:Z.name,fg:U?h.accent:h.text});Y.add($),A.add(Y)}),A.add(new s(this.ctx,{height:2}));let K=new o(this.ctx,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:h.textDim});A.add(K)}this.detailPanel.add(A)}navigateSettings(A){let q;if(this.settingsSection==="main")q=this.getSettingsItems().length-1;else q=(this.settingsModelProvider==="anthropic"?NK:xK).length-1;this.settingsSelectedIndex=Math.max(0,Math.min(q,this.settingsSelectedIndex+A)),this.renderSettings()}selectSettingsItem(){if(this.settingsSection==="main"){let q=this.getSettingsItems()[this.settingsSelectedIndex];if(!q||!q.enabled)return;switch(q.action){case"switch_provider":this.chatProvider=this.chatProvider==="anthropic"?"openai":"anthropic";let g=hg();g.provider=this.chatProvider,TK(g),this.anthropic=null,this.openai=null,this.renderSettings();break;case"change_model":this.settingsSection="model",this.settingsModelProvider=this.chatProvider,this.settingsSelectedIndex=0,this.renderSettings();break;case"add_anthropic":this.hideSettings(),this.authSelectedProvider="anthropic",this.authSetupStep="key",this.authSetupMode=!0,this.chatMode=!1,this.renderAuthSetup();break;case"add_openai":this.hideSettings(),this.authSelectedProvider="openai",this.authSetupStep="key",this.authSetupMode=!0,this.chatMode=!1,this.renderAuthSetup();break;case"clear_keys":_M(),this.anthropic=null,this.openai=null,this.hideSettings(),this.hideChatView();break}}else if(this.settingsSection==="model"){let q=(this.settingsModelProvider==="anthropic"?NK:xK)[this.settingsSelectedIndex];if(q){if(MM(this.settingsModelProvider,q.id),this.settingsModelProvider==="anthropic")this.anthropic=null;else this.openai=null;this.settingsSection="main",this.settingsSelectedIndex=1,this.renderSettings()}}}navigateSuggestion(A){if(this.suggestions.length===0)return;let q=this.selectedSuggestionIndex+A;this.selectedSuggestionIndex=Math.max(0,Math.min(this.suggestions.length-1,q)),this.renderSuggestions()}selectSuggestion(){if(this.selectedSuggestionIndex<0||this.selectedSuggestionIndex>=this.suggestions.length)return;let A=this.suggestions[this.selectedSuggestionIndex];if(!A)return;if(this.chatInput)this.chatInput.clear(),this.chatInput.insertText(A);this.suggestions=[],this.selectedSuggestionIndex=-1,this.renderSuggestions(),this.sendChatMessage()}renderSuggestions(){if(!this.suggestionsContainer)return;for(let A of this.suggestionsContainer.getChildren())this.suggestionsContainer.remove(A.id);if(this.suggestionsLoading){let A=new o(this.ctx,{id:"suggestions-loading",content:`${H6.LOADING_CHARS[this.loadingFrame]??"\u280B"} Generating suggestions...`,fg:h.textDim});this.suggestionsContainer.add(A);return}if(this.suggestions.length===0)return;for(let A=0;A<this.suggestions.length;A++){let q=this.suggestions[A];if(!q)continue;let g=A===this.selectedSuggestionIndex,E=new s(this.ctx,{id:`suggestion-row-${A}`,width:"100%",flexDirection:"row",backgroundColor:h.bg}),F=new o(this.ctx,{id:`suggestion-indicator-${A}`,content:g?"\u203A ":" ",fg:h.accent,width:2});E.add(F);let K=new o(this.ctx,{id:`suggestion-text-${A}`,content:q,fg:g?h.accent:h.textDim});E.add(K),this.suggestionsContainer.add(E)}}async generateSuggestions(){if(!this.selectedPost||this.suggestionsGenerated)return;JA("[suggestions] Starting generation..."),JA("[suggestions] Provider:",this.chatProvider),this.suggestionsGenerated=!0,this.suggestionsLoading=!0;let A=setInterval(()=>{if(!this.renderer.isDestroyed&&this.suggestionsLoading)this.loadingFrame=(this.loadingFrame+1)%H6.LOADING_CHARS.length,this.renderSuggestions()},80),q=this.selectedPost,g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${this.stripHtml(F.content||"").slice(0,100)}...`).join(`
184
+ `)||"No comments yet",E=`Based on this Hacker News story, generate 3 short questions (max 10 words each) a reader might want to ask. Return ONLY the 3 questions, one per line, no numbering or bullets.
185
+
186
+ Title: ${q.title}
187
+ Domain: ${q.domain||"N/A"}
188
+ Comments preview:
189
+ ${g}`;try{let F=[];if(this.chatProvider==="anthropic"){if(JA("[suggestions] Using Anthropic API"),!this.anthropic){let O=zg("anthropic");JA("[suggestions] API key exists:",!!O),this.anthropic=new Iq({apiKey:O})}let K=X6("anthropic");JA("[suggestions] Model:",K);let Z=await this.anthropic.messages.create({model:K,max_tokens:1024,messages:[{role:"user",content:E}]});JA("[suggestions] Anthropic response received");let j=Z.content[0];F=(j&&j.type==="text"?j.text:"").split(`
190
+ `).filter((O)=>O.trim()).slice(0,3)}else{if(JA("[suggestions] Using OpenAI API"),!this.openai){let U=zg("openai");JA("[suggestions] API key exists:",!!U),JA("[suggestions] API key prefix:",U?.slice(0,10)+"..."),this.openai=new e({apiKey:U})}let K=X6("openai");JA("[suggestions] Model:",K),JA("[suggestions] Making OpenAI request...");let Z=await this.openai.chat.completions.create({model:K,max_completion_tokens:1024,messages:[{role:"user",content:E}]});JA("[suggestions] OpenAI response received:",JSON.stringify(Z.choices[0],null,2)),F=(Z.choices[0]?.message?.content||"").split(`
191
+ `).filter((U)=>U.trim()).slice(0,3)}if(JA("[suggestions] Generated questions:",F),clearInterval(A),this.suggestionsLoading=!1,F.length>0)this.suggestions=F,this.originalSuggestions=[...F],this.selectedSuggestionIndex=F.length-1;this.renderSuggestions()}catch(F){if(clearInterval(A),this.suggestionsLoading=!1,this.renderSuggestions(),JA("[ERROR]","[suggestions] Error generating suggestions:"),JA("[ERROR]","[suggestions] Error type:",F?.constructor?.name),JA("[ERROR]","[suggestions] Error message:",F instanceof Error?F.message:String(F)),F instanceof Error&&F.stack)JA("[ERROR]","[suggestions] Stack trace:",F.stack);try{JA("[ERROR]","[suggestions] Full error:",JSON.stringify(F,null,2))}catch{JA("[ERROR]","[suggestions] Full error (non-JSON):",F)}}}async refresh(){await this.loadPosts()}truncateText(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}stripHtml(A){return A.replace(/<\/p>\s*<p>/g,`
192
+
193
+ `).replace(/<p>/g,"").replace(/<\/p>/g,`
194
+
195
+ `).replace(/<br\s*\/?>/g,`
196
+ `).replace(/<a[^>]*href="([^"]*)"[^>]*>([^<]*)<\/a>/g,"$2 ($1)").replace(/<code>/g,"`").replace(/<\/code>/g,"`").replace(/<pre>/g,"\n```\n").replace(/<\/pre>/g,"\n```\n").replace(/<[^>]+>/g,"").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&#x2F;/g,"/").replace(/&#39;/g,"'").replace(/&nbsp;/g," ").replace(/\n{3,}/g,`
197
+
198
+ `).trim()}get currentSelectedIndex(){return this.selectedIndex}get currentRootCommentIndex(){return this.rootCommentIndex}get currentPosts(){return this.posts}get currentSelectedPost(){return this.selectedPost}get rootCommentCount(){return this.rootCommentBoxes.length}setPostsForTesting(A){this.posts=A,this.renderStoryList()}async setSelectedPostForTesting(A){this.selectedPost=A,this.renderDetail(A)}}var fH={bg:"#1a1a1a"};async function cH(){let A=await jU({exitOnCtrlC:!0,backgroundColor:fH.bg,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}});await new H6(A,{onOpenUrl:(g)=>{mH(`open "${g}"`)},onExit:()=>{A.destroy(),process.exit(0)}}).initialize(),A.start()}cH().catch(console.error);