@brianlovin/hn-cli 0.2.0 → 0.3.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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +94 -77
  3. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,76 +1,76 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- import{Buffer as I9}from"buffer";import{EventEmitter as D9}from"events";import{EventEmitter as f9}from"events";import{EventEmitter as r9}from"events";import{resolve as Uq,dirname as Gq}from"path";import{fileURLToPath as Yq}from"url";var aY="./highlights-ghv9g403.scm";var hY="./tree-sitter-javascript-nd0q4pe9.wasm";var zY="./highlights-eq9cgrbb.scm";var BY="./tree-sitter-typescript-zxjzwt75.wasm";var wY="./highlights-r812a2qc.scm";var CY="./tree-sitter-markdown-411r6y9b.wasm";var kY="./injections-73j83es3.scm";var DY="./highlights-x6tmsnaa.scm";var yY="./tree-sitter-markdown_inline-j5349f42.wasm";var bY="./highlights-hk7bwhj4.scm";var vY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as pY,isAbsolute as q$,parse as g$}from"path";import{existsSync as E$}from"fs";import{basename as F$,join as K$}from"path";import uY from"os";import Yg from"path";import{EventEmitter as Y$}from"events";import{dlopen as J$,toArrayBuffer as VE,JSCallback as tY,ptr as qA}from"bun:ffi";import{existsSync as M$}from"fs";import{EventEmitter as _$}from"events";import{toArrayBuffer as uK,ptr as sY}from"bun:ffi";import{ptr as bg,toArrayBuffer as pj}from"bun:ffi";import{ptr as N$,toArrayBuffer as T$}from"bun:ffi";import{EventEmitter as S$}from"events";import B$ from"util";import{EventEmitter as dQ}from"events";import{Console as k$}from"console";import D$ from"fs";import y$ from"path";import QQ from"util";import{Writable as b$}from"stream";import{EventEmitter as v$}from"events";import{EventEmitter as d$}from"events";var X9=Object.defineProperty;var H9=(A,q)=>{for(var g in q)X9(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})},v1=import.meta.require,JQ={};H9(JQ,{default:()=>oK,Wrap:()=>pq,Unit:()=>Oq,PositionType:()=>dq,Overflow:()=>cq,NodeType:()=>sj,MeasureMode:()=>uq,LogLevel:()=>fg,Justify:()=>fA,Gutter:()=>Jq,FlexDirection:()=>gq,ExperimentalFeature:()=>MQ,Errata:()=>mg,Edge:()=>n,Display:()=>Mg,Direction:()=>h6,Dimension:()=>tj,BoxSizing:()=>ij,Align:()=>jA});var L9=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q!=="undefined"?q:{});var E,F;g.ready=new Promise(function(Q,J){E=Q,F=J});var K=Object.assign({},g),Z="";typeof document!="undefined"&&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 Y;g.wasmBinary&&(Y=g.wasmBinary);var G=g.noExitRuntime||!0;typeof WebAssembly!="object"&&SA("no native wasm support detected");var M,O=!1;function $(Q,J,X){X=J+X;for(var H="";!(J>=X);){var W=Q[J++];if(!W)break;if(W&128){var S=Q[J++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|S);else{var B=Q[J++]&63;W=(W&240)==224?(W&15)<<12|S<<6|B:(W&7)<<18|S<<12|B<<6|Q[J++]&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 _,x,T,V,P,k,C,i,d;function a(){var Q=M.buffer;_=Q,g.HEAP8=x=new Int8Array(Q),g.HEAP16=V=new Int16Array(Q),g.HEAP32=k=new Int32Array(Q),g.HEAPU8=T=new Uint8Array(Q),g.HEAPU16=P=new Uint16Array(Q),g.HEAPU32=C=new Uint32Array(Q),g.HEAPF32=i=new Float32Array(Q),g.HEAPF64=d=new Float64Array(Q)}var z,r=[],m=[],gA=[];function FA(){var Q=g.preRun.shift();r.unshift(Q)}var QA=0,RA=null,vA=null;function SA(Q){if(g.onAbort)g.onAbort(Q);throw Q="Aborted("+Q+")",U(Q),O=!0,Q=new WebAssembly.RuntimeError(Q+". Build with -sASSERTIONS for more info."),F(Q),Q}function Nq(Q){return Q.startsWith("data:application/octet-stream;base64,")}var Cq="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(!Nq(Cq)){var YY=Cq;Cq=g.locateFile?g.locateFile(YY,Z):Z+YY}function QY(){var Q=Cq;try{if(Q==Cq&&Y)return new Uint8Array(Y);if(Nq(Q))try{var J=F9(Q.slice(37)),X=new Uint8Array(J.length);for(Q=0;Q<J.length;++Q)X[Q]=J.charCodeAt(Q);var H=X}catch(S){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(S){SA(S)}}function y_(){return Y||typeof fetch!="function"?Promise.resolve().then(function(){return QY()}):fetch(Cq,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+Cq+"'";return Q.arrayBuffer()}).catch(function(){return QY()})}function Pj(Q){for(;0<Q.length;)Q.shift()(g)}function OY(Q){if(Q===void 0)return"_unknown";Q=Q.replace(/[^a-zA-Z0-9_]/g,"$");var J=Q.charCodeAt(0);return 48<=J&&57>=J?"_"+Q:Q}function Rj(Q,J){return Q=OY(Q),function(){return J.apply(this,arguments)}}var Kq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Sj=[];function zK(Q){var J=Error,X=Rj(Q,function(H){this.name=Q,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(J.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var N6=void 0;function KA(Q){throw new N6(Q)}var _E=(Q)=>{return Q||KA("Cannot use deleted val. handle = "+Q),Kq[Q].value},BK=(Q)=>{switch(Q){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var J=Sj.length?Sj.pop():Kq.length;return Kq[J]={ga:1,value:Q},J}},JY=void 0,MY=void 0;function BA(Q){for(var J="";T[Q];)J+=MY[T[Q++]];return J}var $E=[];function aj(){for(;$E.length;){var Q=$E.pop();Q.M.$=!1,Q.delete()}}var XE=void 0,kq={};function hj(Q,J){for(J===void 0&&KA("ptr should not be undefined");Q.R;)J=Q.ba(J),Q=Q.R;return J}var yg={};function _Y(Q){Q=IY(Q);var J=BA(Q);return bq(Q),J}function $Y(Q,J){var X=yg[Q];return X===void 0&&KA(J+" has unknown type "+_Y(Q)),X}function wK(){}var zj=!1;function XY(Q){--Q.count.value,Q.count.value===0&&(Q.T?Q.U.W(Q.T):Q.P.N.W(Q.O))}function HY(Q,J,X){if(J===X)return Q;if(X.R===void 0)return null;return Q=HY(Q,J,X.R),Q===null?null:X.na(Q)}var LY={};function b_(Q,J){return J=hj(Q,J),kq[J]}var VY=void 0;function CK(Q){throw new VY(Q)}function kK(Q,J){return J.P&&J.O||CK("makeClassHandle requires ptr and ptrType"),!!J.U!==!!J.T&&CK("Both smartPtrType and smartPtr must be specified"),J.count={value:1},T6(Object.create(Q,{M:{value:J}}))}function T6(Q){if(typeof FinalizationRegistry==="undefined")return T6=(J)=>J,Q;return zj=new FinalizationRegistry((J)=>{XY(J.M)}),T6=(J)=>{var X=J.M;return X.T&&zj.register(J,{M:X},J),J},wK=(J)=>{zj.unregister(J)},T6(Q)}var DK={};function Bj(Q){for(;Q.length;){var J=Q.pop();Q.pop()(J)}}function HE(Q){return this.fromWireType(k[Q>>2])}var x6={},yK={};function Ug(Q,J,X){function H(w){w=X(w),w.length!==Q.length&&CK("Mismatched type converter count");for(var b=0;b<Q.length;++b)Dq(Q[b],w[b])}Q.forEach(function(w){yK[w]=J});var W=Array(J.length),S=[],B=0;J.forEach((w,b)=>{yg.hasOwnProperty(w)?W[b]=yg[w]:(S.push(w),x6.hasOwnProperty(w)||(x6[w]=[]),x6[w].push(()=>{W[b]=yg[w],++B,B===S.length&&H(W)}))}),S.length===0&&H(W)}function wj(Q){switch(Q){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+Q)}}function Dq(Q,J,X={}){if(!("argPackAdvance"in J))throw new TypeError("registerType registeredInstance requires argPackAdvance");var H=J.name;if(Q||KA('type "'+H+'" must have a positive integer typeid pointer'),yg.hasOwnProperty(Q)){if(X.ua)return;KA("Cannot register type '"+H+"' twice")}yg[Q]=J,delete yK[Q],x6.hasOwnProperty(Q)&&(J=x6[Q],delete x6[Q],J.forEach((W)=>W()))}function Cj(Q){KA(Q.M.P.N.name+" instance already deleted")}function Gg(){}function kj(Q,J,X){if(Q[J].S===void 0){var H=Q[J];Q[J]=function(){return Q[J].S.hasOwnProperty(arguments.length)||KA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+Q[J].S+")!"),Q[J].S[arguments.length].apply(this,arguments)},Q[J].S=[],Q[J].S[H.Z]=H}}function v_(Q,J){g.hasOwnProperty(Q)?(KA("Cannot register public name '"+Q+"' twice"),kj(g,Q,Q),g.hasOwnProperty(void 0)&&KA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[Q].S[void 0]=J):g[Q]=J}function m_(Q,J,X,H,W,S,B,w){this.name=Q,this.constructor=J,this.X=X,this.W=H,this.R=W,this.pa=S,this.ba=B,this.na=w,this.ja=[]}function Dj(Q,J,X){for(;J!==X;)J.ba||KA("Expected null or instance of "+X.name+", got an instance of "+J.name),Q=J.ba(Q),J=J.R;return Q}function f_(Q,J){if(J===null)return this.ea&&KA("null is not a valid "+this.name),0;return J.M||KA('Cannot pass "'+mj(J)+'" as a '+this.name),J.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),Dj(J.M.O,J.M.P.N,this.N)}function c_(Q,J){if(J===null){if(this.ea&&KA("null is not a valid "+this.name),this.da){var X=this.fa();return Q!==null&&Q.push(this.W,X),X}return 0}if(J.M||KA('Cannot pass "'+mj(J)+'" as a '+this.name),J.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&J.M.P.ca&&KA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name),X=Dj(J.M.O,J.M.P.N,this.N),this.da)switch(J.M.T===void 0&&KA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:J.M.U===this?X=J.M.T:KA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name);break;case 1:X=J.M.T;break;case 2:if(J.M.U===this)X=J.M.T;else{var H=J.clone();X=this.xa(X,BK(function(){H.delete()})),Q!==null&&Q.push(this.W,X)}break;default:KA("Unsupporting sharing policy")}return X}function d_(Q,J){if(J===null)return this.ea&&KA("null is not a valid "+this.name),0;return J.M||KA('Cannot pass "'+mj(J)+'" as a '+this.name),J.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),J.M.P.ca&&KA("Cannot convert argument of type "+J.M.P.name+" to parameter type "+this.name),Dj(J.M.O,J.M.P.N,this.N)}function yq(Q,J,X,H){this.name=Q,this.N=J,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,J.R!==void 0?this.toWireType=c_:(this.toWireType=H?f_:d_,this.V=null)}function p_(Q,J){g.hasOwnProperty(Q)||CK("Replacing nonexistant public symbol"),g[Q]=J,g[Q].Z=void 0}function u_(Q,J){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),Q.includes("j")){var H=g["dynCall_"+Q];H=X&&X.length?H.apply(null,[J].concat(X)):H.call(null,J)}else H=z.get(J).apply(null,X);return H}}function Zq(Q,J){Q=BA(Q);var X=Q.includes("j")?u_(Q,J):z.get(J);return typeof X!="function"&&KA("unknown function pointer with signature "+Q+": "+J),X}var WY=void 0;function bK(Q,J){function X(S){W[S]||yg[S]||(yK[S]?yK[S].forEach(X):(H.push(S),W[S]=!0))}var H=[],W={};throw J.forEach(X),new WY(Q+": "+H.map(_Y).join([", "]))}function yj(Q,J,X,H,W){var S=J.length;2>S&&KA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=J[1]!==null&&X!==null,w=!1;for(X=1;X<J.length;++X)if(J[X]!==null&&J[X].V===void 0){w=!0;break}var b=J[0].name!=="void",y=S-2,l=Array(y),o=[],ZA=[];return function(){if(arguments.length!==y&&KA("function "+Q+" called with "+arguments.length+" arguments, expected "+y+" args!"),ZA.length=0,o.length=B?2:1,o[0]=W,B){var LA=J[1].toWireType(ZA,this);o[1]=LA}for(var GA=0;GA<y;++GA)l[GA]=J[GA+2].toWireType(ZA,arguments[GA]),o.push(l[GA]);if(GA=H.apply(null,o),w)Bj(ZA);else for(var uA=B?1:2;uA<J.length;uA++){var jq=uA===1?LA:l[uA-2];J[uA].V!==null&&J[uA].V(jq)}return LA=b?J[0].fromWireType(GA):void 0,LA}}function bj(Q,J){for(var X=[],H=0;H<Q;H++)X.push(C[J+4*H>>2]);return X}function vj(Q){4<Q&&--Kq[Q].ga===0&&(Kq[Q]=void 0,Sj.push(Q))}function mj(Q){if(Q===null)return"null";var J=typeof Q;return J==="object"||J==="array"||J==="function"?Q.toString():""+Q}function l_(Q,J){switch(J){case 2:return function(X){return this.fromWireType(i[X>>2])};case 3:return function(X){return this.fromWireType(d[X>>3])};default:throw new TypeError("Unknown float type: "+Q)}}function i_(Q,J,X){switch(J){case 0:return X?function(H){return x[H]}:function(H){return T[H]};case 1:return X?function(H){return V[H>>1]}:function(H){return P[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw new TypeError("Unknown integer type: "+Q)}}function t_(Q,J){for(var X="",H=0;!(H>=J/2);++H){var W=V[Q+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function s_(Q,J,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=J;X=X<2*Q.length?X/2:Q.length;for(var W=0;W<X;++W)V[J>>1]=Q.charCodeAt(W),J+=2;return V[J>>1]=0,J-H}function n_(Q){return 2*Q.length}function r_(Q,J){for(var X=0,H="";!(X>=J/4);){var W=k[Q+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 o_(Q,J,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=J;X=H+X-4;for(var W=0;W<Q.length;++W){var S=Q.charCodeAt(W);if(55296<=S&&57343>=S){var B=Q.charCodeAt(++W);S=65536+((S&1023)<<10)|B&1023}if(k[J>>2]=S,J+=4,J+4>X)break}return k[J>>2]=0,J-H}function e_(Q){for(var J=0,X=0;X<Q.length;++X){var H=Q.charCodeAt(X);55296<=H&&57343>=H&&++X,J+=4}return J}var A9={};function NY(Q){var J=A9[Q];return J===void 0?BA(Q):J}var vK=[];function q9(Q){var J=vK.length;return vK.push(Q),J}function g9(Q,J){for(var X=Array(Q),H=0;H<Q;++H)X[H]=$Y(C[J+4*H>>2],"parameter "+H);return X}var TY=[],E9=[null,[],[]];N6=g.BindingError=zK("BindingError"),g.count_emval_handles=function(){for(var Q=0,J=5;J<Kq.length;++J)Kq[J]!==void 0&&++Q;return Q},g.get_first_emval=function(){for(var Q=5;Q<Kq.length;++Q)if(Kq[Q]!==void 0)return Kq[Q];return null},JY=g.PureVirtualError=zK("PureVirtualError");for(var xY=Array(256),mK=0;256>mK;++mK)xY[mK]=String.fromCharCode(mK);MY=xY,g.getInheritedInstanceCount=function(){return Object.keys(kq).length},g.getLiveInheritedInstances=function(){var Q=[],J;for(J in kq)kq.hasOwnProperty(J)&&Q.push(kq[J]);return Q},g.flushPendingDeletes=aj,g.setDelayFunction=function(Q){XE=Q,$E.length&&XE&&XE(aj)},VY=g.InternalError=zK("InternalError"),Gg.prototype.isAliasOf=function(Q){if(!(this instanceof Gg&&Q instanceof Gg))return!1;var J=this.M.P.N,X=this.M.O,H=Q.M.P.N;for(Q=Q.M.O;J.R;)X=J.ba(X),J=J.R;for(;H.R;)Q=H.ba(Q),H=H.R;return J===H&&X===Q},Gg.prototype.clone=function(){if(this.M.O||Cj(this),this.M.aa)return this.M.count.value+=1,this;var Q=T6,J=Object,X=J.create,H=Object.getPrototypeOf(this),W=this.M;return Q=Q(X.call(J,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),Q.M.count.value+=1,Q.M.$=!1,Q},Gg.prototype.delete=function(){this.M.O||Cj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),wK(this),XY(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Gg.prototype.isDeleted=function(){return!this.M.O},Gg.prototype.deleteLater=function(){return this.M.O||Cj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),$E.push(this),$E.length===1&&XE&&XE(aj),this.M.$=!0,this},yq.prototype.qa=function(Q){return this.ka&&(Q=this.ka(Q)),Q},yq.prototype.ha=function(Q){this.W&&this.W(Q)},yq.prototype.argPackAdvance=8,yq.prototype.readValueFromPointer=HE,yq.prototype.deleteObject=function(Q){if(Q!==null)Q.delete()},yq.prototype.fromWireType=function(Q){function J(){return this.da?kK(this.N.X,{P:this.wa,O:X,U:this,T:Q}):kK(this.N.X,{P:this,O:Q})}var X=this.qa(Q);if(!X)return this.ha(Q),null;var H=b_(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=Q,H.clone();return H=H.clone(),this.ha(Q),H}if(H=this.N.pa(X),H=LY[H],!H)return J.call(this);H=this.ca?H.la:H.pointerType;var W=HY(X,this.N,H.N);return W===null?J.call(this):this.da?kK(H.N.X,{P:H,O:W,U:this,T:Q}):kK(H.N.X,{P:H,O:W})},WY=g.UnboundTypeError=zK("UnboundTypeError");var F9=typeof atob=="function"?atob:function(Q){var J="",X=0;Q=Q.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|S>>2;var w=(S&3)<<6|B;J+=String.fromCharCode(H),S!==64&&(J+=String.fromCharCode(W)),B!==64&&(J+=String.fromCharCode(w))}while(X<Q.length);return J},K9={l:function(Q,J,X,H){SA("Assertion failed: "+(Q?$(T,Q):"")+", at: "+[J?J?$(T,J):"":"unknown filename",X,H?H?$(T,H):"":"unknown function"])},q:function(Q,J,X){Q=BA(Q),J=$Y(J,"wrapper"),X=_E(X);var H=[].slice,W=J.N,S=W.X,B=W.R.X,w=W.R.constructor;Q=Rj(Q,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new JY("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:S}),this.__construct.apply(this,H.call(arguments))}),S.__construct=function(){this===S&&KA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));wK(y);var l=y.M;y.notifyOnDestruction(),l.aa=!0,Object.defineProperties(this,{M:{value:l}}),T6(this),y=l.O,y=hj(W,y),kq.hasOwnProperty(y)?KA("Tried to register registered instance: "+y):kq[y]=this},S.__destruct=function(){this===S&&KA("Pass correct 'this' to __destruct"),wK(this);var y=this.M.O;y=hj(W,y),kq.hasOwnProperty(y)?delete kq[y]:KA("Tried to unregister unregistered instance: "+y)},Q.prototype=Object.create(S);for(var b in X)Q.prototype[b]=X[b];return BK(Q)},j:function(Q){var J=DK[Q];delete DK[Q];var{fa:X,W:H,ia:W}=J,S=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Ug([Q],S,(B)=>{var w={};return W.forEach((b,y)=>{var l=B[y],o=b.ra,ZA=b.sa,LA=B[y+W.length],GA=b.ya,uA=b.Aa;w[b.oa]={read:(jq)=>l.fromWireType(o(ZA,jq)),write:(jq,LE)=>{var vq=[];GA(uA,jq,LA.toWireType(vq,LE)),Bj(vq)}}}),[{name:J.name,fromWireType:function(b){var y={},l;for(l in w)y[l]=w[l].read(b);return H(b),y},toWireType:function(b,y){for(var l in w)if(!(l in y))throw new TypeError('Missing field: "'+l+'"');var o=X();for(l in w)w[l].write(o,y[l]);return b!==null&&b.push(H,o),o},argPackAdvance:8,readValueFromPointer:HE,V:H}]})},v:function(){},B:function(Q,J,X,H,W){var S=wj(X);J=BA(J),Dq(Q,{name:J,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=x;else if(X===2)w=V;else if(X===4)w=k;else throw new TypeError("Unknown boolean type size: "+J);return this.fromWireType(w[B>>S])},V:null})},f:function(Q,J,X,H,W,S,B,w,b,y,l,o,ZA){l=BA(l),S=Zq(W,S),w&&(w=Zq(B,w)),y&&(y=Zq(b,y)),ZA=Zq(o,ZA);var LA=OY(l);v_(LA,function(){bK("Cannot construct "+l+" due to unbound types",[H])}),Ug([Q,J,X],H?[H]:[],function(GA){if(GA=GA[0],H)var uA=GA.N,jq=uA.X;else jq=Gg.prototype;GA=Rj(LA,function(){if(Object.getPrototypeOf(this)!==LE)throw new N6("Use 'new' to construct "+l);if(vq.Y===void 0)throw new N6(l+" has no accessible constructor");var SY=vq.Y[arguments.length];if(SY===void 0)throw new N6("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(vq.Y).toString()+") parameters instead!");return SY.apply(this,arguments)});var LE=Object.create(jq,{constructor:{value:GA}});GA.prototype=LE;var vq=new m_(l,GA,LE,ZA,uA,S,w,y);uA=new yq(l,vq,!0,!1),jq=new yq(l+"*",vq,!1,!1);var RY=new yq(l+" const*",vq,!1,!0);return LY[Q]={pointerType:jq,la:RY},p_(LA,GA),[uA,jq,RY]})},d:function(Q,J,X,H,W,S,B){var w=bj(X,H);J=BA(J),S=Zq(W,S),Ug([],[Q],function(b){function y(){bK("Cannot call "+l+" due to unbound types",w)}b=b[0];var l=b.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]);var o=b.N.constructor;return o[J]===void 0?(y.Z=X-1,o[J]=y):(kj(o,J,l),o[J].S[X-1]=y),Ug([],w,function(ZA){return ZA=yj(l,[ZA[0],null].concat(ZA.slice(1)),null,S,B),o[J].S===void 0?(ZA.Z=X-1,o[J]=ZA):o[J].S[X-1]=ZA,[]}),[]})},p:function(Q,J,X,H,W,S){0<J||SA();var B=bj(J,X);W=Zq(H,W),Ug([],[Q],function(w){w=w[0];var b="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[J-1]!==void 0)throw new N6("Cannot register multiple constructors with identical number of parameters ("+(J-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[J-1]=()=>{bK("Cannot construct "+w.name+" due to unbound types",B)},Ug([],B,function(y){return y.splice(1,0,null),w.N.Y[J-1]=yj(b,y,null,W,S),[]}),[]})},a:function(Q,J,X,H,W,S,B,w){var b=bj(X,H);J=BA(J),S=Zq(W,S),Ug([],[Q],function(y){function l(){bK("Cannot call "+o+" due to unbound types",b)}y=y[0];var o=y.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]),w&&y.N.ja.push(J);var ZA=y.N.X,LA=ZA[J];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(l.Z=X-2,l.className=y.name,ZA[J]=l):(kj(ZA,J,o),ZA[J].S[X-2]=l),Ug([],b,function(GA){return GA=yj(o,GA,y,S,B),ZA[J].S===void 0?(GA.Z=X-2,ZA[J]=GA):ZA[J].S[X-2]=GA,[]}),[]})},A:function(Q,J){J=BA(J),Dq(Q,{name:J,fromWireType:function(X){var H=_E(X);return vj(X),H},toWireType:function(X,H){return BK(H)},argPackAdvance:8,readValueFromPointer:HE,V:null})},n:function(Q,J,X){X=wj(X),J=BA(J),Dq(Q,{name:J,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:l_(J,X),V:null})},e:function(Q,J,X,H,W){J=BA(J),W===-1&&(W=4294967295),W=wj(X);var S=(w)=>w;if(H===0){var B=32-8*X;S=(w)=>w<<B>>>B}X=J.includes("unsigned")?function(w,b){return b>>>0}:function(w,b){return b},Dq(Q,{name:J,fromWireType:S,toWireType:X,argPackAdvance:8,readValueFromPointer:i_(J,W,H!==0),V:null})},b:function(Q,J,X){function H(S){S>>=2;var B=C;return new W(_,B[S+1],B[S])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][J];X=BA(X),Dq(Q,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(Q,J){J=BA(J);var X=J==="std::string";Dq(Q,{name:J,fromWireType:function(H){var W=C[H>>2],S=H+4;if(X)for(var B=S,w=0;w<=W;++w){var b=S+w;if(w==W||T[b]==0){if(B=B?$(T,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(T[S+w]);y=y.join("")}return bq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var S,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(S=0;S<W.length;++S){var b=W.charCodeAt(S);127>=b?w++:2047>=b?w+=2:55296<=b&&57343>=b?(w+=4,++S):w+=3}S=w}else S=W.length;if(w=fj(4+S+1),b=w+4,C[w>>2]=S,X&&B){if(B=b,b=S+1,S=T,0<b){b=B+b-1;for(var y=0;y<W.length;++y){var l=W.charCodeAt(y);if(55296<=l&&57343>=l){var o=W.charCodeAt(++y);l=65536+((l&1023)<<10)|o&1023}if(127>=l){if(B>=b)break;S[B++]=l}else{if(2047>=l){if(B+1>=b)break;S[B++]=192|l>>6}else{if(65535>=l){if(B+2>=b)break;S[B++]=224|l>>12}else{if(B+3>=b)break;S[B++]=240|l>>18,S[B++]=128|l>>12&63}S[B++]=128|l>>6&63}S[B++]=128|l&63}}S[B]=0}}else if(B)for(B=0;B<S;++B)y=W.charCodeAt(B),255<y&&(bq(b),KA("String has UTF-16 code units that do not fit in 8 bits")),T[b+B]=y;else for(B=0;B<S;++B)T[b+B]=W[B];return H!==null&&H.push(bq,w),w},argPackAdvance:8,readValueFromPointer:HE,V:function(H){bq(H)}})},i:function(Q,J,X){if(X=BA(X),J===2)var H=t_,W=s_,S=n_,B=()=>P,w=1;else J===4&&(H=r_,W=o_,S=e_,B=()=>C,w=2);Dq(Q,{name:X,fromWireType:function(b){for(var y=C[b>>2],l=B(),o,ZA=b+4,LA=0;LA<=y;++LA){var GA=b+4+LA*J;if(LA==y||l[GA>>w]==0)ZA=H(ZA,GA-ZA),o===void 0?o=ZA:(o+=String.fromCharCode(0),o+=ZA),ZA=GA+J}return bq(b),o},toWireType:function(b,y){typeof y!="string"&&KA("Cannot pass non-string to C++ string type "+X);var l=S(y),o=fj(4+l+J);return C[o>>2]=l>>w,W(y,o+4,l+J),b!==null&&b.push(bq,o),o},argPackAdvance:8,readValueFromPointer:HE,V:function(b){bq(b)}})},k:function(Q,J,X,H,W,S){DK[Q]={name:BA(J),fa:Zq(X,H),W:Zq(W,S),ia:[]}},h:function(Q,J,X,H,W,S,B,w,b,y){DK[Q].ia.push({oa:BA(J),ta:X,ra:Zq(H,W),sa:S,za:B,ya:Zq(w,b),Aa:y})},C:function(Q,J){J=BA(J),Dq(Q,{va:!0,name:J,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(Q,J,X,H,W){Q=vK[Q],J=_E(J),X=NY(X);var S=[];return C[H>>2]=BK(S),Q(J,X,S,W)},t:function(Q,J,X,H){Q=vK[Q],J=_E(J),X=NY(X),Q(J,X,null,H)},g:vj,m:function(Q,J){var X=g9(Q,J),H=X[0];J=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=TY[J];if(W!==void 0)return W;var S=Array(Q-1);return W=q9((B,w,b,y)=>{for(var l=0,o=0;o<Q-1;++o)S[o]=X[o+1].readValueFromPointer(y+l),l+=X[o+1].argPackAdvance;B=B[w].apply(B,S);for(o=0;o<Q-1;++o)X[o+1].ma&&X[o+1].ma(S[o]);if(!H.va)return H.toWireType(b,B)}),TY[J]=W},D:function(Q){4<Q&&(Kq[Q].ga+=1)},r:function(Q){var J=_E(Q);Bj(J),vj(Q)},c:function(){SA("")},x:function(Q,J,X){T.copyWithin(Q,J,J+X)},w:function(Q){var J=T.length;if(Q>>>=0,2147483648<Q)return!1;for(var X=1;4>=X;X*=2){var H=J*(1+0.2/X);H=Math.min(H,Q+100663296);var W=Math;H=Math.max(Q,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),a();var S=1;break A}catch(B){}S=void 0}if(S)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(Q,J,X,H){for(var W=0,S=0;S<X;S++){var B=C[J>>2],w=C[J+4>>2];J+=8;for(var b=0;b<w;b++){var y=T[B+b],l=E9[Q];y===0||y===10?((Q===1?j:U)($(l,0)),l.length=0):l.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function Q(W){g.asm=W.exports,M=g.asm.E,a(),z=g.asm.J,m.unshift(g.asm.F),QA--,g.monitorRunDependencies&&g.monitorRunDependencies(QA),QA==0&&(RA!==null&&(clearInterval(RA),RA=null),vA&&(W=vA,vA=null,W()))}function J(W){Q(W.instance)}function X(W){return y_().then(function(S){return WebAssembly.instantiate(S,H)}).then(function(S){return S}).then(W,function(S){U("failed to asynchronously prepare wasm: "+S),SA(S)})}var H={a:K9};if(QA++,g.monitorRunDependencies&&g.monitorRunDependencies(QA),g.instantiateWasm)try{return g.instantiateWasm(H,Q)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return Y||typeof WebAssembly.instantiateStreaming!="function"||Nq(Cq)||typeof fetch!="function"?X(J):fetch(Cq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(J,function(S){return U("wasm streaming compile failed: "+S),U("falling back to ArrayBuffer instantiation"),X(J)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var IY=g.___getTypeName=function(){return(IY=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 fj=g._malloc=function(){return(fj=g._malloc=g.asm.I).apply(null,arguments)},bq=g._free=function(){return(bq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var fK;vA=function Q(){fK||PY(),fK||(vA=Q)};function PY(){function Q(){if(!fK&&(fK=!0,g.calledRun=!0,!O)){if(Pj(m),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var J=g.postRun.shift();gA.unshift(J)}Pj(gA)}}if(!(0<QA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)FA();Pj(r),0<QA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),Q()},1)):Q())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return PY(),q.ready}})(),V9=L9,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}({}),ij=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),tj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),h6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Mg=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),n=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}({}),mg=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}({}),MQ=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),gq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),Jq=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),fA=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}({}),fg=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}({}),uq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),sj=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),cq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),dq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),Oq=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),pq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),W9={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:ij.BorderBox,BOX_SIZING_CONTENT_BOX:ij.ContentBox,DIMENSION_WIDTH:tj.Width,DIMENSION_HEIGHT:tj.Height,DIRECTION_INHERIT:h6.Inherit,DIRECTION_LTR:h6.LTR,DIRECTION_RTL:h6.RTL,DISPLAY_FLEX:Mg.Flex,DISPLAY_NONE:Mg.None,DISPLAY_CONTENTS:Mg.Contents,EDGE_LEFT:n.Left,EDGE_TOP:n.Top,EDGE_RIGHT:n.Right,EDGE_BOTTOM:n.Bottom,EDGE_START:n.Start,EDGE_END:n.End,EDGE_HORIZONTAL:n.Horizontal,EDGE_VERTICAL:n.Vertical,EDGE_ALL:n.All,ERRATA_NONE:mg.None,ERRATA_STRETCH_FLEX_BASIS:mg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:mg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:mg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:mg.All,ERRATA_CLASSIC:mg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:MQ.WebFlexBasis,FLEX_DIRECTION_COLUMN:gq.Column,FLEX_DIRECTION_COLUMN_REVERSE:gq.ColumnReverse,FLEX_DIRECTION_ROW:gq.Row,FLEX_DIRECTION_ROW_REVERSE:gq.RowReverse,GUTTER_COLUMN:Jq.Column,GUTTER_ROW:Jq.Row,GUTTER_ALL:Jq.All,JUSTIFY_FLEX_START:fA.FlexStart,JUSTIFY_CENTER:fA.Center,JUSTIFY_FLEX_END:fA.FlexEnd,JUSTIFY_SPACE_BETWEEN:fA.SpaceBetween,JUSTIFY_SPACE_AROUND:fA.SpaceAround,JUSTIFY_SPACE_EVENLY:fA.SpaceEvenly,LOG_LEVEL_ERROR:fg.Error,LOG_LEVEL_WARN:fg.Warn,LOG_LEVEL_INFO:fg.Info,LOG_LEVEL_DEBUG:fg.Debug,LOG_LEVEL_VERBOSE:fg.Verbose,LOG_LEVEL_FATAL:fg.Fatal,MEASURE_MODE_UNDEFINED:uq.Undefined,MEASURE_MODE_EXACTLY:uq.Exactly,MEASURE_MODE_AT_MOST:uq.AtMost,NODE_TYPE_DEFAULT:sj.Default,NODE_TYPE_TEXT:sj.Text,OVERFLOW_VISIBLE:cq.Visible,OVERFLOW_HIDDEN:cq.Hidden,OVERFLOW_SCROLL:cq.Scroll,POSITION_TYPE_STATIC:dq.Static,POSITION_TYPE_RELATIVE:dq.Relative,POSITION_TYPE_ABSOLUTE:dq.Absolute,UNIT_UNDEFINED:Oq.Undefined,UNIT_POINT:Oq.Point,UNIT_PERCENT:Oq.Percent,UNIT_AUTO:Oq.Auto,WRAP_NO_WRAP:pq.NoWrap,WRAP_WRAP:pq.Wrap,WRAP_WRAP_REVERSE:pq.WrapReverse},N9=W9;function T9(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,Y=new Array(U),G=0;G<U;G++)Y[G]=arguments[G];return Z.call(this,j,...Y)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[Oq.Point]:A.Node.prototype[F],[Oq.Percent]:A.Node.prototype[`${F}Percent`],[Oq.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=new Array(j>1?j-1:0),Y=1;Y<j;Y++)U[Y-1]=arguments[Y];let G=U.pop(),M,O;if(G==="auto")M=Oq.Auto,O=void 0;else if(typeof G==="object")M=G.unit,O=G.valueOf();else if(M=typeof G==="string"&&G.endsWith("%")?Oq.Percent:Oq.Point,O=parseFloat(G),G!==void 0&&!Number.isNaN(G)&&Number.isNaN(O))throw new Error(`Invalid value ${G} for ${F}`);if(!K[M])throw new Error(`Failed to execute "${F}": Unsupported unit '${G}'`);if(O!==void 0)return K[M].call(this,...U,O);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]:h6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...N9}}var x9=T9(await V9()),oK=x9,_Q=["single","double","rounded","heavy"];function $Q(A){return typeof A==="string"&&_Q.includes(A)}function eK(A,q="single"){if($Q(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${_Q.join(", ")}`);return q}var WE={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 AZ(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 dg(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 XQ={single:dg(WE.single),double:dg(WE.double),rounded:dg(WE.rounded),heavy:dg(WE.heavy)},mY={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 HQ(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 P9={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},R9={"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 S9(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=R9[E];else{if(E!=="1")return null;j=P9[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 Y=parseInt(F,10);if(!isNaN(Y)&&Y>1){let G=HQ(Y-1);U.shift=G.shift,U.ctrl=G.ctrl,U.meta=G.alt||G.meta,U.option=G.alt,U.super=G.super,U.hyper=G.hyper,U.capsLock=G.capsLock,U.numLock=G.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 a9(A){let q=S9(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(":")||[],Y=U[0];if(!Y)return null;let G=parseInt(Y,10);if(isNaN(G))return null;let M,O;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)O=_}let $=mY[G];if($)Z.name=$,Z.code=`[${G}u`;else if(G>0&&G<=1114111){let _=String.fromCodePoint(G);if(Z.name=_,O)Z.baseCode=O}else return null;if(K[1]){let _=K[1].split(":"),x=_[0],T=_[1];if(x){let V=parseInt(x,10);if(!isNaN(V)&&V>1){let P=HQ(V-1);Z.shift=P.shift,Z.ctrl=P.ctrl,Z.meta=P.alt||P.meta,Z.option=P.alt,Z.super=P.super,Z.hyper=P.hyper,Z.capsLock=P.capsLock,Z.numLock=P.numLock}}if(T==="1"||!T)Z.eventType="press";else if(T==="2")Z.eventType="press",Z.repeated=!0;else if(T==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let x of _){let T=parseInt(x,10);if(!isNaN(T)&&T>0&&T<=1114111)j+=String.fromCodePoint(T)}}if(j===""){if(Z.name.length>0&&!mY[G])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 h9=/^(?:\x1b)([a-zA-Z0-9])$/,z9=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,LQ={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"},B9=[...Object.values(LQ),"backspace"],w9=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},C9=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},k9=/^\x1b\[27;(\d+);(\d+)~$/,VQ=(A="",q={})=>{let g;if(I9.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=a9(A);if(K)return K}let F=k9.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===`
3
+ import{Buffer as v_}from"buffer";import{EventEmitter as n_}from"events";import{EventEmitter as A$}from"events";import{EventEmitter as Y$}from"events";import{resolve as Qq,dirname as Oq}from"path";import{fileURLToPath as Jq}from"url";var vY="./highlights-ghv9g403.scm";var mY="./tree-sitter-javascript-nd0q4pe9.wasm";var fY="./highlights-eq9cgrbb.scm";var cY="./tree-sitter-typescript-zxjzwt75.wasm";var dY="./highlights-r812a2qc.scm";var pY="./tree-sitter-markdown-411r6y9b.wasm";var uY="./injections-73j83es3.scm";var lY="./highlights-x6tmsnaa.scm";var iY="./tree-sitter-markdown_inline-j5349f42.wasm";var tY="./highlights-hk7bwhj4.scm";var sY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as AQ,isAbsolute as M$,parse as _$}from"path";import{existsSync as $$}from"fs";import{basename as X$,join as H$}from"path";import qQ from"os";import Qg from"path";import{EventEmitter as T$}from"events";import{dlopen as P$,toArrayBuffer as aE,JSCallback as FQ,ptr as qA}from"bun:ffi";import{existsSync as R$}from"fs";import{EventEmitter as S$}from"events";import{toArrayBuffer as eK,ptr as KQ}from"bun:ffi";import{ptr as fg,toArrayBuffer as tj}from"bun:ffi";import{ptr as k$,toArrayBuffer as D$}from"bun:ffi";import{EventEmitter as f$}from"events";import u$ from"util";import{EventEmitter as oQ}from"events";import{Console as t$}from"console";import s$ from"fs";import n$ from"path";import WQ from"util";import{Writable as r$}from"stream";import{EventEmitter as o$}from"events";import{EventEmitter as gX}from"events";var z_=Object.defineProperty;var B_=(A,q)=>{for(var g in q)z_(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})},qL=import.meta.require,TQ={};B_(TQ,{default:()=>ZZ,Wrap:()=>uq,Unit:()=>_q,PositionType:()=>pq,Overflow:()=>dq,NodeType:()=>ej,MeasureMode:()=>lq,LogLevel:()=>pg,Justify:()=>cA,Gutter:()=>$q,FlexDirection:()=>Kq,ExperimentalFeature:()=>IQ,Errata:()=>dg,Edge:()=>n,Display:()=>_g,Direction:()=>D6,Dimension:()=>oj,BoxSizing:()=>rj,Align:()=>UA});var w_=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q!=="undefined"?q:{});var E,F;g.ready=new Promise(function(Q,J){E=Q,F=J});var K=Object.assign({},g),Z="";typeof document!="undefined"&&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 G;g.wasmBinary&&(G=g.wasmBinary);var Y=g.noExitRuntime||!0;typeof WebAssembly!="object"&&SA("no native wasm support detected");var M,O=!1;function $(Q,J,X){X=J+X;for(var H="";!(J>=X);){var W=Q[J++];if(!W)break;if(W&128){var S=Q[J++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|S);else{var B=Q[J++]&63;W=(W&240)==224?(W&15)<<12|S<<6|B:(W&7)<<18|S<<12|B<<6|Q[J++]&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 _,x,N,L,P,k,C,i,p;function a(){var Q=M.buffer;_=Q,g.HEAP8=x=new Int8Array(Q),g.HEAP16=L=new Int16Array(Q),g.HEAP32=k=new Int32Array(Q),g.HEAPU8=N=new Uint8Array(Q),g.HEAPU16=P=new Uint16Array(Q),g.HEAPU32=C=new Uint32Array(Q),g.HEAPF32=i=new Float32Array(Q),g.HEAPF64=p=new Float64Array(Q)}var z,r=[],c=[],gA=[];function KA(){var Q=g.preRun.shift();r.unshift(Q)}var QA=0,RA=null,mA=null;function SA(Q){if(g.onAbort)g.onAbort(Q);throw Q="Aborted("+Q+")",U(Q),O=!0,Q=new WebAssembly.RuntimeError(Q+". Build with -sASSERTIONS for more info."),F(Q),Q}function Tq(Q){return Q.startsWith("data:application/octet-stream;base64,")}var kq="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+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAFNwMIIAgpAwhCBIYgCCkDACIDQjyIhCECIAgpAxAgCCkDGIRCAFKtIANC//////////8Pg4QiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgCEEgaiQAIAkgAiAGQoCAgICAgICAgH+DhL85AwALmRgDEn8BfAN+IwBBsARrIgwkACAMQQA2AiwCQCABvSIZQgBTBEBBASERQZkJIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEUGcCSETDAELQZ8JQZoJIARBAXEiERshEyARRSEVCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiARQQNqIgMgBEH//3txECkgACATIBEQJiAAQe0VQdweIAVBIHEiBRtB4RpB4B4gBRsgASABYhtBAxAmIABBICACIAMgBEGAwABzECkgAyACIAIgA0gbIQoMAQsgDEEQaiESAkACfwJAIAEgDEEsahCMASIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQlBBiADIANBAEgbDAELIAwgBkEdayIJNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAJQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIAlBAEwEQCAJIQMgByEGIA0hCAwBCyANIQggCSEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEaQgAhGQNAIAYgGUL/////D4MgBjUCACAahnwiG0KAlOvcA4AiGUKA7JSjDH4gG3w+AgAgBkEEayIGIAhPDQALIBmnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIQ8gDkHmAEYhEANAQQlBACADayIDIANBCU4bIQoCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAp2IRRBfyAKdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAp2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAKaiIDNgIsIA0gCCAHRUECdGoiCCAQGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIgpBCkkNAANAIANBAWohAyAKIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQEEEQaQCIAlBAEgbIAxqIAdBgMgAaiIKQQltIg9BAnRqQdAfayEJQQohByAPQXdsIApqIgpBB0wEQANAIAdBCmwhByAKQQFqIgpBCEcNAAsLAkAgCSgCACIQIBAgB24iDyAHbCIKRiAJQQRqIhQgBkZxDQAgECAKayEQAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHIAggCU9yDQEgCUEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAURhtEAAAAAAAA+D8gECAHQQF2IhRGGyAQIBRJGyEYAkAgFQ0AIBMtAABBLUcNACAYmiEYIAGaIQELIAkgCjYCACABIBigIAFhDQAgCSAHIApqIgM2AgAgA0GAlOvcA08EQANAIAlBADYCACAIIAlBBGsiCUsEQCAIQQRrIghBADYCAAsgCSAJKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIKQQpJDQADQCADQQFqIQMgCiAHQQpsIgdPDQALCyAJQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIKRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQkMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgkbIAZqIQtBf0F+IAkbIAVqIQUgBEEIcSIJDQBBdyEGAkAgCg0AIAdBBGsoAgAiDkUNAEEKIQpBACEGIA5BCnANAANAIAYiCUEBaiEGIA4gCkEKbCIKcEUNAAsgCUF/cyEGCyAHIA1rQQJ1QQlsIQogBUFfcUHGAEYEQEEAIQkgCyAGIApqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEJIAsgAyAKaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQogC0H9////B0H+////ByAJIAtyIhAbSg0BIAsgEEEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBIgAyADQR91IgZzIAZrrSASEEciBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgD2siBiAOQf////8Hc0oNAgsgBiAOaiIDIBFB/////wdzSg0BIABBICACIAMgEWoiBSAEECkgACATIBEQJiAAQTAgAiAFIARBgIAEcxApAkACQAJAIBVBxgBGBEAgDEEQaiIGQQhyIQMgBkEJciEJIA0gCCAIIA1LGyIKIQgDQCAINQIAIAkQRyEGAkAgCCAKRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgBiAJRw0AIAxBMDoAGCADIQYLIAAgBiAJIAZrECYgCEEEaiIIIA1NDQALIBAEQCAAQYwlQQEQJgsgC0EATCAHIAhNcg0BA0AgCDUCACAJEEciBiAMQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwsgACAGQQkgCyALQQlOGxAmIAtBCWshBiAIQQRqIgggB08NAyALQQlKIQMgBiELIAMNAAsMAgsCQCALQQBIDQAgByAIQQRqIAcgCEsbIQogDEEQaiIGQQhyIQMgBkEJciENIAghBwNAIA0gBzUCACANEEciBkYEQCAMQTA6ABggAyEGCwJAIAcgCEcEQCAGIAxBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAxBEGpLDQALDAELIAAgBkEBECYgBkEBaiEGIAkgC3JFDQAgAEGMJUEBECYLIAAgBiALIA0gBmsiBiAGIAtKGxAmIAsgBmshCyAHQQRqIgcgCk8NASALQQBODQALCyAAQTAgC0ESakESQQAQKSAAIA8gEiAPaxAmDAILIAshBgsgAEEwIAZBCWpBCUEAECkLIABBICACIAUgBEGAwABzECkgBSACIAIgBUgbIQoMAQsgEyAFQRp0QR91QQlxaiELAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEYA0AgGEQAAAAAAAAwQKIhGCAGQQFrIgYNAAsgCy0AAEEtRgRAIBggAZogGKGgmiEBDAELIAEgGKAgGKEhAQsgEUECciEJIAVBIHEhCCASIAwoAiwiByAHQR91IgZzIAZrrSASEEciBkYEQCAMQTA6AA8gDEEPaiEGCyAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQYgDEEQaiEHA0AgByIFAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdBkC9qLQAAIAhyOgAAIAYgA0EASnJFIAEgB7ehRAAAAAAAADBAoiIBRAAAAAAAAAAAYXEgBUEBaiIHIAxBEGprQQFHckUEQCAFQS46AAEgBUECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQpB/f///wcgCSASIA1rIgVqIgZrIANIDQAgAEEgIAIgBgJ/AkAgA0UNACAHIAxBEGprIghBAmsgA04NACADQQJqDAELIAcgDEEQamsiCAsiB2oiAyAEECkgACALIAkQJiAAQTAgAiADIARBgIAEcxApIAAgDEEQaiAIECYgAEEwIAcgCGtBAEEAECkgACANIAUQJiAAQSAgAiADIARBgMAAcxApIAMgAiACIANIGyEKCyAMQbAEaiQAIAoLRgEBfyAAKAI8IQMjAEEQayIAJAAgAyABpyABQiCIpyACQf8BcSAAQQhqEBQQjQEhAiAAKQMIIQEgAEEQaiQAQn8gASACGwu+AgEHfyMAQSBrIgMkACADIAAoAhwiBDYCECAAKAIUIQUgAyACNgIcIAMgATYCGCADIAUgBGsiATYCFCABIAJqIQVBAiEGIANBEGohAQJ/A0ACQAJAAkAgACgCPCABIAYgA0EMahAYEI0BRQRAIAUgAygCDCIHRg0BIAdBAE4NAgwDCyAFQX9HDQILIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwDCyABIAcgASgCBCIISyIJQQN0aiIEIAcgCEEAIAkbayIIIAQoAgBqNgIAIAFBDEEEIAkbaiIBIAEoAgAgCGs2AgAgBSAHayEFIAYgCWshBiAEIQEMAQsLIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgBkECRg0AGiACIAEoAgRrCyEEIANBIGokACAECwkAIAAoAjwQGQsjAQF/Qcg7KAIAIgAEQANAIAAoAgARCQAgACgCBCIADQALCwu/AgEFfyMAQeAAayICJAAgAiAANgIAIwBBEGsiAyQAIAMgAjYCDCMAQZABayIAJAAgAEGgL0GQARArIgAgAkEQaiIFIgE2AiwgACABNgIUIABB/////wdBfiABayIEIARB/////wdPGyIENgIwIAAgASAEaiIBNgIcIAAgATYCECAAQbsTIAJBAEEAEIsBGiAEBEAgACgCFCIBIAEgACgCEEZrQQA6AAALIABBkAFqJAAgA0EQaiQAAkAgBSIAQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgNBf3MgA0GBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAAgBWtBAWoiABBhIgEEfyABIAUgABArBUEACyEAIAJB4ABqJAAgAAvFAQICfwF8IwBBMGsiBiQAIAEoAgghBwJAQbQ7LQAAQQFxBEBBsDsoAgAhAQwBC0EFQZAnEAwhAUG0O0EBOgAAQbA7IAE2AgALIAYgBTYCKCAGIAQ4AiAgBiADNgIYIAYgAjgCEAJ/IAEgB0GXGyAGQQxqIAZBEGoQEiIIRAAAAAAAAPBBYyAIRAAAAAAAAAAAZnEEQCAIqwwBC0EACyEBIAYoAgwhAyAAIAEpAwA3AwAgACABKQMINwMIIAMQESAGQTBqJAALCQAgABCQARAjCwwAIAAoAghB6BwQZgsJACAAEJIBECMLVQECfyMAQTBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEwEB4gAkEwECshACACQTBqJAAgAAs7AQF/IAEgACgCBCIFQQF1aiEBIAAoAgAhACABIAIgAyAEIAVBAXEEfyABKAIAIABqKAIABSAACxEdAAs3AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhACABIAIgA0EBcQR/IAEoAgAgAGooAgAFIAALERIACzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRDAALNQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!Tq(kq)){var VY=kq;kq=g.locateFile?g.locateFile(VY,Z):Z+VY}function WY(){var Q=kq;try{if(Q==kq&&G)return new Uint8Array(G);if(Tq(Q))try{var J=H_(Q.slice(37)),X=new Uint8Array(J.length);for(Q=0;Q<J.length;++Q)X[Q]=J.charCodeAt(Q);var H=X}catch(S){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(S){SA(S)}}function r9(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return WY()}):fetch(kq,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+kq+"'";return Q.arrayBuffer()}).catch(function(){return WY()})}function hj(Q){for(;0<Q.length;)Q.shift()(g)}function NY(Q){if(Q===void 0)return"_unknown";Q=Q.replace(/[^a-zA-Z0-9_]/g,"$");var J=Q.charCodeAt(0);return 48<=J&&57>=J?"_"+Q:Q}function zj(Q,J){return Q=NY(Q),function(){return J.apply(this,arguments)}}var Uq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Bj=[];function vK(Q){var J=Error,X=zj(Q,function(H){this.name=Q,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(J.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var S6=void 0;function ZA(Q){throw new S6(Q)}var IE=(Q)=>{return Q||ZA("Cannot use deleted val. handle = "+Q),Uq[Q].value},mK=(Q)=>{switch(Q){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var J=Bj.length?Bj.pop():Uq.length;return Uq[J]={ga:1,value:Q},J}},TY=void 0,IY=void 0;function BA(Q){for(var J="";N[Q];)J+=IY[N[Q++]];return J}var xE=[];function wj(){for(;xE.length;){var Q=xE.pop();Q.M.$=!1,Q.delete()}}var PE=void 0,Dq={};function Cj(Q,J){for(J===void 0&&ZA("ptr should not be undefined");Q.R;)J=Q.ba(J),Q=Q.R;return J}var mg={};function xY(Q){Q=kY(Q);var J=BA(Q);return vq(Q),J}function PY(Q,J){var X=mg[Q];return X===void 0&&ZA(J+" has unknown type "+xY(Q)),X}function fK(){}var kj=!1;function RY(Q){--Q.count.value,Q.count.value===0&&(Q.T?Q.U.W(Q.T):Q.P.N.W(Q.O))}function SY(Q,J,X){if(J===X)return Q;if(X.R===void 0)return null;return Q=SY(Q,J,X.R),Q===null?null:X.na(Q)}var aY={};function o9(Q,J){return J=Cj(Q,J),Dq[J]}var hY=void 0;function cK(Q){throw new hY(Q)}function dK(Q,J){return J.P&&J.O||cK("makeClassHandle requires ptr and ptrType"),!!J.U!==!!J.T&&cK("Both smartPtrType and smartPtr must be specified"),J.count={value:1},a6(Object.create(Q,{M:{value:J}}))}function a6(Q){if(typeof FinalizationRegistry==="undefined")return a6=(J)=>J,Q;return kj=new FinalizationRegistry((J)=>{RY(J.M)}),a6=(J)=>{var X=J.M;return X.T&&kj.register(J,{M:X},J),J},fK=(J)=>{kj.unregister(J)},a6(Q)}var pK={};function Dj(Q){for(;Q.length;){var J=Q.pop();Q.pop()(J)}}function RE(Q){return this.fromWireType(k[Q>>2])}var h6={},uK={};function Gg(Q,J,X){function H(w){w=X(w),w.length!==Q.length&&cK("Mismatched type converter count");for(var v=0;v<Q.length;++v)yq(Q[v],w[v])}Q.forEach(function(w){uK[w]=J});var W=Array(J.length),S=[],B=0;J.forEach((w,v)=>{mg.hasOwnProperty(w)?W[v]=mg[w]:(S.push(w),h6.hasOwnProperty(w)||(h6[w]=[]),h6[w].push(()=>{W[v]=mg[w],++B,B===S.length&&H(W)}))}),S.length===0&&H(W)}function yj(Q){switch(Q){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+Q)}}function yq(Q,J,X={}){if(!("argPackAdvance"in J))throw new TypeError("registerType registeredInstance requires argPackAdvance");var H=J.name;if(Q||ZA('type "'+H+'" must have a positive integer typeid pointer'),mg.hasOwnProperty(Q)){if(X.ua)return;ZA("Cannot register type '"+H+"' twice")}mg[Q]=J,delete uK[Q],h6.hasOwnProperty(Q)&&(J=h6[Q],delete h6[Q],J.forEach((W)=>W()))}function bj(Q){ZA(Q.M.P.N.name+" instance already deleted")}function Yg(){}function vj(Q,J,X){if(Q[J].S===void 0){var H=Q[J];Q[J]=function(){return Q[J].S.hasOwnProperty(arguments.length)||ZA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+Q[J].S+")!"),Q[J].S[arguments.length].apply(this,arguments)},Q[J].S=[],Q[J].S[H.Z]=H}}function e9(Q,J){g.hasOwnProperty(Q)?(ZA("Cannot register public name '"+Q+"' twice"),vj(g,Q,Q),g.hasOwnProperty(void 0)&&ZA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[Q].S[void 0]=J):g[Q]=J}function A_(Q,J,X,H,W,S,B,w){this.name=Q,this.constructor=J,this.X=X,this.W=H,this.R=W,this.pa=S,this.ba=B,this.na=w,this.ja=[]}function mj(Q,J,X){for(;J!==X;)J.ba||ZA("Expected null or instance of "+X.name+", got an instance of "+J.name),Q=J.ba(Q),J=J.R;return Q}function q_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function g_(Q,J){if(J===null){if(this.ea&&ZA("null is not a valid "+this.name),this.da){var X=this.fa();return Q!==null&&Q.push(this.W,X),X}return 0}if(J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&J.M.P.ca&&ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name),X=mj(J.M.O,J.M.P.N,this.N),this.da)switch(J.M.T===void 0&&ZA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:J.M.U===this?X=J.M.T:ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name);break;case 1:X=J.M.T;break;case 2:if(J.M.U===this)X=J.M.T;else{var H=J.clone();X=this.xa(X,mK(function(){H.delete()})),Q!==null&&Q.push(this.W,X)}break;default:ZA("Unsupporting sharing policy")}return X}function E_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),J.M.P.ca&&ZA("Cannot convert argument of type "+J.M.P.name+" to parameter type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function bq(Q,J,X,H){this.name=Q,this.N=J,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,J.R!==void 0?this.toWireType=g_:(this.toWireType=H?q_:E_,this.V=null)}function F_(Q,J){g.hasOwnProperty(Q)||cK("Replacing nonexistant public symbol"),g[Q]=J,g[Q].Z=void 0}function K_(Q,J){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),Q.includes("j")){var H=g["dynCall_"+Q];H=X&&X.length?H.apply(null,[J].concat(X)):H.call(null,J)}else H=z.get(J).apply(null,X);return H}}function Gq(Q,J){Q=BA(Q);var X=Q.includes("j")?K_(Q,J):z.get(J);return typeof X!="function"&&ZA("unknown function pointer with signature "+Q+": "+J),X}var zY=void 0;function lK(Q,J){function X(S){W[S]||mg[S]||(uK[S]?uK[S].forEach(X):(H.push(S),W[S]=!0))}var H=[],W={};throw J.forEach(X),new zY(Q+": "+H.map(xY).join([", "]))}function fj(Q,J,X,H,W){var S=J.length;2>S&&ZA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=J[1]!==null&&X!==null,w=!1;for(X=1;X<J.length;++X)if(J[X]!==null&&J[X].V===void 0){w=!0;break}var v=J[0].name!=="void",y=S-2,l=Array(y),o=[],jA=[];return function(){if(arguments.length!==y&&ZA("function "+Q+" called with "+arguments.length+" arguments, expected "+y+" args!"),jA.length=0,o.length=B?2:1,o[0]=W,B){var LA=J[1].toWireType(jA,this);o[1]=LA}for(var YA=0;YA<y;++YA)l[YA]=J[YA+2].toWireType(jA,arguments[YA]),o.push(l[YA]);if(YA=H.apply(null,o),w)Dj(jA);else for(var iA=B?1:2;iA<J.length;iA++){var Yq=iA===1?LA:l[iA-2];J[iA].V!==null&&J[iA].V(Yq)}return LA=v?J[0].fromWireType(YA):void 0,LA}}function cj(Q,J){for(var X=[],H=0;H<Q;H++)X.push(C[J+4*H>>2]);return X}function dj(Q){4<Q&&--Uq[Q].ga===0&&(Uq[Q]=void 0,Bj.push(Q))}function pj(Q){if(Q===null)return"null";var J=typeof Q;return J==="object"||J==="array"||J==="function"?Q.toString():""+Q}function Z_(Q,J){switch(J){case 2:return function(X){return this.fromWireType(i[X>>2])};case 3:return function(X){return this.fromWireType(p[X>>3])};default:throw new TypeError("Unknown float type: "+Q)}}function j_(Q,J,X){switch(J){case 0:return X?function(H){return x[H]}:function(H){return N[H]};case 1:return X?function(H){return L[H>>1]}:function(H){return P[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw new TypeError("Unknown integer type: "+Q)}}function U_(Q,J){for(var X="",H=0;!(H>=J/2);++H){var W=L[Q+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function G_(Q,J,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=J;X=X<2*Q.length?X/2:Q.length;for(var W=0;W<X;++W)L[J>>1]=Q.charCodeAt(W),J+=2;return L[J>>1]=0,J-H}function Y_(Q){return 2*Q.length}function Q_(Q,J){for(var X=0,H="";!(X>=J/4);){var W=k[Q+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 O_(Q,J,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=J;X=H+X-4;for(var W=0;W<Q.length;++W){var S=Q.charCodeAt(W);if(55296<=S&&57343>=S){var B=Q.charCodeAt(++W);S=65536+((S&1023)<<10)|B&1023}if(k[J>>2]=S,J+=4,J+4>X)break}return k[J>>2]=0,J-H}function J_(Q){for(var J=0,X=0;X<Q.length;++X){var H=Q.charCodeAt(X);55296<=H&&57343>=H&&++X,J+=4}return J}var M_={};function BY(Q){var J=M_[Q];return J===void 0?BA(Q):J}var iK=[];function __(Q){var J=iK.length;return iK.push(Q),J}function $_(Q,J){for(var X=Array(Q),H=0;H<Q;++H)X[H]=PY(C[J+4*H>>2],"parameter "+H);return X}var wY=[],X_=[null,[],[]];S6=g.BindingError=vK("BindingError"),g.count_emval_handles=function(){for(var Q=0,J=5;J<Uq.length;++J)Uq[J]!==void 0&&++Q;return Q},g.get_first_emval=function(){for(var Q=5;Q<Uq.length;++Q)if(Uq[Q]!==void 0)return Uq[Q];return null},TY=g.PureVirtualError=vK("PureVirtualError");for(var CY=Array(256),tK=0;256>tK;++tK)CY[tK]=String.fromCharCode(tK);IY=CY,g.getInheritedInstanceCount=function(){return Object.keys(Dq).length},g.getLiveInheritedInstances=function(){var Q=[],J;for(J in Dq)Dq.hasOwnProperty(J)&&Q.push(Dq[J]);return Q},g.flushPendingDeletes=wj,g.setDelayFunction=function(Q){PE=Q,xE.length&&PE&&PE(wj)},hY=g.InternalError=vK("InternalError"),Yg.prototype.isAliasOf=function(Q){if(!(this instanceof Yg&&Q instanceof Yg))return!1;var J=this.M.P.N,X=this.M.O,H=Q.M.P.N;for(Q=Q.M.O;J.R;)X=J.ba(X),J=J.R;for(;H.R;)Q=H.ba(Q),H=H.R;return J===H&&X===Q},Yg.prototype.clone=function(){if(this.M.O||bj(this),this.M.aa)return this.M.count.value+=1,this;var Q=a6,J=Object,X=J.create,H=Object.getPrototypeOf(this),W=this.M;return Q=Q(X.call(J,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),Q.M.count.value+=1,Q.M.$=!1,Q},Yg.prototype.delete=function(){this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),fK(this),RY(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Yg.prototype.isDeleted=function(){return!this.M.O},Yg.prototype.deleteLater=function(){return this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),xE.push(this),xE.length===1&&PE&&PE(wj),this.M.$=!0,this},bq.prototype.qa=function(Q){return this.ka&&(Q=this.ka(Q)),Q},bq.prototype.ha=function(Q){this.W&&this.W(Q)},bq.prototype.argPackAdvance=8,bq.prototype.readValueFromPointer=RE,bq.prototype.deleteObject=function(Q){if(Q!==null)Q.delete()},bq.prototype.fromWireType=function(Q){function J(){return this.da?dK(this.N.X,{P:this.wa,O:X,U:this,T:Q}):dK(this.N.X,{P:this,O:Q})}var X=this.qa(Q);if(!X)return this.ha(Q),null;var H=o9(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=Q,H.clone();return H=H.clone(),this.ha(Q),H}if(H=this.N.pa(X),H=aY[H],!H)return J.call(this);H=this.ca?H.la:H.pointerType;var W=SY(X,this.N,H.N);return W===null?J.call(this):this.da?dK(H.N.X,{P:H,O:W,U:this,T:Q}):dK(H.N.X,{P:H,O:W})},zY=g.UnboundTypeError=vK("UnboundTypeError");var H_=typeof atob=="function"?atob:function(Q){var J="",X=0;Q=Q.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|S>>2;var w=(S&3)<<6|B;J+=String.fromCharCode(H),S!==64&&(J+=String.fromCharCode(W)),B!==64&&(J+=String.fromCharCode(w))}while(X<Q.length);return J},L_={l:function(Q,J,X,H){SA("Assertion failed: "+(Q?$(N,Q):"")+", at: "+[J?J?$(N,J):"":"unknown filename",X,H?H?$(N,H):"":"unknown function"])},q:function(Q,J,X){Q=BA(Q),J=PY(J,"wrapper"),X=IE(X);var H=[].slice,W=J.N,S=W.X,B=W.R.X,w=W.R.constructor;Q=zj(Q,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new TY("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:S}),this.__construct.apply(this,H.call(arguments))}),S.__construct=function(){this===S&&ZA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));fK(y);var l=y.M;y.notifyOnDestruction(),l.aa=!0,Object.defineProperties(this,{M:{value:l}}),a6(this),y=l.O,y=Cj(W,y),Dq.hasOwnProperty(y)?ZA("Tried to register registered instance: "+y):Dq[y]=this},S.__destruct=function(){this===S&&ZA("Pass correct 'this' to __destruct"),fK(this);var y=this.M.O;y=Cj(W,y),Dq.hasOwnProperty(y)?delete Dq[y]:ZA("Tried to unregister unregistered instance: "+y)},Q.prototype=Object.create(S);for(var v in X)Q.prototype[v]=X[v];return mK(Q)},j:function(Q){var J=pK[Q];delete pK[Q];var{fa:X,W:H,ia:W}=J,S=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Gg([Q],S,(B)=>{var w={};return W.forEach((v,y)=>{var l=B[y],o=v.ra,jA=v.sa,LA=B[y+W.length],YA=v.ya,iA=v.Aa;w[v.oa]={read:(Yq)=>l.fromWireType(o(jA,Yq)),write:(Yq,SE)=>{var mq=[];YA(iA,Yq,LA.toWireType(mq,SE)),Dj(mq)}}}),[{name:J.name,fromWireType:function(v){var y={},l;for(l in w)y[l]=w[l].read(v);return H(v),y},toWireType:function(v,y){for(var l in w)if(!(l in y))throw new TypeError('Missing field: "'+l+'"');var o=X();for(l in w)w[l].write(o,y[l]);return v!==null&&v.push(H,o),o},argPackAdvance:8,readValueFromPointer:RE,V:H}]})},v:function(){},B:function(Q,J,X,H,W){var S=yj(X);J=BA(J),yq(Q,{name:J,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=x;else if(X===2)w=L;else if(X===4)w=k;else throw new TypeError("Unknown boolean type size: "+J);return this.fromWireType(w[B>>S])},V:null})},f:function(Q,J,X,H,W,S,B,w,v,y,l,o,jA){l=BA(l),S=Gq(W,S),w&&(w=Gq(B,w)),y&&(y=Gq(v,y)),jA=Gq(o,jA);var LA=NY(l);e9(LA,function(){lK("Cannot construct "+l+" due to unbound types",[H])}),Gg([Q,J,X],H?[H]:[],function(YA){if(YA=YA[0],H)var iA=YA.N,Yq=iA.X;else Yq=Yg.prototype;YA=zj(LA,function(){if(Object.getPrototypeOf(this)!==SE)throw new S6("Use 'new' to construct "+l);if(mq.Y===void 0)throw new S6(l+" has no accessible constructor");var bY=mq.Y[arguments.length];if(bY===void 0)throw new S6("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(mq.Y).toString()+") parameters instead!");return bY.apply(this,arguments)});var SE=Object.create(Yq,{constructor:{value:YA}});YA.prototype=SE;var mq=new A_(l,YA,SE,jA,iA,S,w,y);iA=new bq(l,mq,!0,!1),Yq=new bq(l+"*",mq,!1,!1);var yY=new bq(l+" const*",mq,!1,!0);return aY[Q]={pointerType:Yq,la:yY},F_(LA,YA),[iA,Yq,yY]})},d:function(Q,J,X,H,W,S,B){var w=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(v){function y(){lK("Cannot call "+l+" due to unbound types",w)}v=v[0];var l=v.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]);var o=v.N.constructor;return o[J]===void 0?(y.Z=X-1,o[J]=y):(vj(o,J,l),o[J].S[X-1]=y),Gg([],w,function(jA){return jA=fj(l,[jA[0],null].concat(jA.slice(1)),null,S,B),o[J].S===void 0?(jA.Z=X-1,o[J]=jA):o[J].S[X-1]=jA,[]}),[]})},p:function(Q,J,X,H,W,S){0<J||SA();var B=cj(J,X);W=Gq(H,W),Gg([],[Q],function(w){w=w[0];var v="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[J-1]!==void 0)throw new S6("Cannot register multiple constructors with identical number of parameters ("+(J-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[J-1]=()=>{lK("Cannot construct "+w.name+" due to unbound types",B)},Gg([],B,function(y){return y.splice(1,0,null),w.N.Y[J-1]=fj(v,y,null,W,S),[]}),[]})},a:function(Q,J,X,H,W,S,B,w){var v=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(y){function l(){lK("Cannot call "+o+" due to unbound types",v)}y=y[0];var o=y.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]),w&&y.N.ja.push(J);var jA=y.N.X,LA=jA[J];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(l.Z=X-2,l.className=y.name,jA[J]=l):(vj(jA,J,o),jA[J].S[X-2]=l),Gg([],v,function(YA){return YA=fj(o,YA,y,S,B),jA[J].S===void 0?(YA.Z=X-2,jA[J]=YA):jA[J].S[X-2]=YA,[]}),[]})},A:function(Q,J){J=BA(J),yq(Q,{name:J,fromWireType:function(X){var H=IE(X);return dj(X),H},toWireType:function(X,H){return mK(H)},argPackAdvance:8,readValueFromPointer:RE,V:null})},n:function(Q,J,X){X=yj(X),J=BA(J),yq(Q,{name:J,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:Z_(J,X),V:null})},e:function(Q,J,X,H,W){J=BA(J),W===-1&&(W=4294967295),W=yj(X);var S=(w)=>w;if(H===0){var B=32-8*X;S=(w)=>w<<B>>>B}X=J.includes("unsigned")?function(w,v){return v>>>0}:function(w,v){return v},yq(Q,{name:J,fromWireType:S,toWireType:X,argPackAdvance:8,readValueFromPointer:j_(J,W,H!==0),V:null})},b:function(Q,J,X){function H(S){S>>=2;var B=C;return new W(_,B[S+1],B[S])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][J];X=BA(X),yq(Q,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(Q,J){J=BA(J);var X=J==="std::string";yq(Q,{name:J,fromWireType:function(H){var W=C[H>>2],S=H+4;if(X)for(var B=S,w=0;w<=W;++w){var v=S+w;if(w==W||N[v]==0){if(B=B?$(N,B,v-B):"",y===void 0)var y=B;else y+=String.fromCharCode(0),y+=B;B=v+1}}else{y=Array(W);for(w=0;w<W;++w)y[w]=String.fromCharCode(N[S+w]);y=y.join("")}return vq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var S,B=typeof W=="string";if(B||W instanceof Uint8Array||W instanceof Uint8ClampedArray||W instanceof Int8Array||ZA("Cannot pass non-string to std::string"),X&&B){var w=0;for(S=0;S<W.length;++S){var v=W.charCodeAt(S);127>=v?w++:2047>=v?w+=2:55296<=v&&57343>=v?(w+=4,++S):w+=3}S=w}else S=W.length;if(w=uj(4+S+1),v=w+4,C[w>>2]=S,X&&B){if(B=v,v=S+1,S=N,0<v){v=B+v-1;for(var y=0;y<W.length;++y){var l=W.charCodeAt(y);if(55296<=l&&57343>=l){var o=W.charCodeAt(++y);l=65536+((l&1023)<<10)|o&1023}if(127>=l){if(B>=v)break;S[B++]=l}else{if(2047>=l){if(B+1>=v)break;S[B++]=192|l>>6}else{if(65535>=l){if(B+2>=v)break;S[B++]=224|l>>12}else{if(B+3>=v)break;S[B++]=240|l>>18,S[B++]=128|l>>12&63}S[B++]=128|l>>6&63}S[B++]=128|l&63}}S[B]=0}}else if(B)for(B=0;B<S;++B)y=W.charCodeAt(B),255<y&&(vq(v),ZA("String has UTF-16 code units that do not fit in 8 bits")),N[v+B]=y;else for(B=0;B<S;++B)N[v+B]=W[B];return H!==null&&H.push(vq,w),w},argPackAdvance:8,readValueFromPointer:RE,V:function(H){vq(H)}})},i:function(Q,J,X){if(X=BA(X),J===2)var H=U_,W=G_,S=Y_,B=()=>P,w=1;else J===4&&(H=Q_,W=O_,S=J_,B=()=>C,w=2);yq(Q,{name:X,fromWireType:function(v){for(var y=C[v>>2],l=B(),o,jA=v+4,LA=0;LA<=y;++LA){var YA=v+4+LA*J;if(LA==y||l[YA>>w]==0)jA=H(jA,YA-jA),o===void 0?o=jA:(o+=String.fromCharCode(0),o+=jA),jA=YA+J}return vq(v),o},toWireType:function(v,y){typeof y!="string"&&ZA("Cannot pass non-string to C++ string type "+X);var l=S(y),o=uj(4+l+J);return C[o>>2]=l>>w,W(y,o+4,l+J),v!==null&&v.push(vq,o),o},argPackAdvance:8,readValueFromPointer:RE,V:function(v){vq(v)}})},k:function(Q,J,X,H,W,S){pK[Q]={name:BA(J),fa:Gq(X,H),W:Gq(W,S),ia:[]}},h:function(Q,J,X,H,W,S,B,w,v,y){pK[Q].ia.push({oa:BA(J),ta:X,ra:Gq(H,W),sa:S,za:B,ya:Gq(w,v),Aa:y})},C:function(Q,J){J=BA(J),yq(Q,{va:!0,name:J,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(Q,J,X,H,W){Q=iK[Q],J=IE(J),X=BY(X);var S=[];return C[H>>2]=mK(S),Q(J,X,S,W)},t:function(Q,J,X,H){Q=iK[Q],J=IE(J),X=BY(X),Q(J,X,null,H)},g:dj,m:function(Q,J){var X=$_(Q,J),H=X[0];J=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=wY[J];if(W!==void 0)return W;var S=Array(Q-1);return W=__((B,w,v,y)=>{for(var l=0,o=0;o<Q-1;++o)S[o]=X[o+1].readValueFromPointer(y+l),l+=X[o+1].argPackAdvance;B=B[w].apply(B,S);for(o=0;o<Q-1;++o)X[o+1].ma&&X[o+1].ma(S[o]);if(!H.va)return H.toWireType(v,B)}),wY[J]=W},D:function(Q){4<Q&&(Uq[Q].ga+=1)},r:function(Q){var J=IE(Q);Dj(J),dj(Q)},c:function(){SA("")},x:function(Q,J,X){N.copyWithin(Q,J,J+X)},w:function(Q){var J=N.length;if(Q>>>=0,2147483648<Q)return!1;for(var X=1;4>=X;X*=2){var H=J*(1+0.2/X);H=Math.min(H,Q+100663296);var W=Math;H=Math.max(Q,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),a();var S=1;break A}catch(B){}S=void 0}if(S)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(Q,J,X,H){for(var W=0,S=0;S<X;S++){var B=C[J>>2],w=C[J+4>>2];J+=8;for(var v=0;v<w;v++){var y=N[B+v],l=X_[Q];y===0||y===10?((Q===1?j:U)($(l,0)),l.length=0):l.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function Q(W){g.asm=W.exports,M=g.asm.E,a(),z=g.asm.J,c.unshift(g.asm.F),QA--,g.monitorRunDependencies&&g.monitorRunDependencies(QA),QA==0&&(RA!==null&&(clearInterval(RA),RA=null),mA&&(W=mA,mA=null,W()))}function J(W){Q(W.instance)}function X(W){return r9().then(function(S){return WebAssembly.instantiate(S,H)}).then(function(S){return S}).then(W,function(S){U("failed to asynchronously prepare wasm: "+S),SA(S)})}var H={a:L_};if(QA++,g.monitorRunDependencies&&g.monitorRunDependencies(QA),g.instantiateWasm)try{return g.instantiateWasm(H,Q)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return G||typeof WebAssembly.instantiateStreaming!="function"||Tq(kq)||typeof fetch!="function"?X(J):fetch(kq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(J,function(S){return U("wasm streaming compile failed: "+S),U("falling back to ArrayBuffer instantiation"),X(J)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var kY=g.___getTypeName=function(){return(kY=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 uj=g._malloc=function(){return(uj=g._malloc=g.asm.I).apply(null,arguments)},vq=g._free=function(){return(vq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var sK;mA=function Q(){sK||DY(),sK||(mA=Q)};function DY(){function Q(){if(!sK&&(sK=!0,g.calledRun=!0,!O)){if(hj(c),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var J=g.postRun.shift();gA.unshift(J)}hj(gA)}}if(!(0<QA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)KA();hj(r),0<QA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),Q()},1)):Q())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return DY(),q.ready}})(),C_=w_,UA=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}({}),rj=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),oj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),D6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),_g=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),n=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}({}),dg=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}({}),IQ=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Kq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),$q=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),cA=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}({}),pg=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}({}),lq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),ej=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),dq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),pq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),_q=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),uq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),k_={ALIGN_AUTO:UA.Auto,ALIGN_FLEX_START:UA.FlexStart,ALIGN_CENTER:UA.Center,ALIGN_FLEX_END:UA.FlexEnd,ALIGN_STRETCH:UA.Stretch,ALIGN_BASELINE:UA.Baseline,ALIGN_SPACE_BETWEEN:UA.SpaceBetween,ALIGN_SPACE_AROUND:UA.SpaceAround,ALIGN_SPACE_EVENLY:UA.SpaceEvenly,BOX_SIZING_BORDER_BOX:rj.BorderBox,BOX_SIZING_CONTENT_BOX:rj.ContentBox,DIMENSION_WIDTH:oj.Width,DIMENSION_HEIGHT:oj.Height,DIRECTION_INHERIT:D6.Inherit,DIRECTION_LTR:D6.LTR,DIRECTION_RTL:D6.RTL,DISPLAY_FLEX:_g.Flex,DISPLAY_NONE:_g.None,DISPLAY_CONTENTS:_g.Contents,EDGE_LEFT:n.Left,EDGE_TOP:n.Top,EDGE_RIGHT:n.Right,EDGE_BOTTOM:n.Bottom,EDGE_START:n.Start,EDGE_END:n.End,EDGE_HORIZONTAL:n.Horizontal,EDGE_VERTICAL:n.Vertical,EDGE_ALL:n.All,ERRATA_NONE:dg.None,ERRATA_STRETCH_FLEX_BASIS:dg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:dg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:dg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:dg.All,ERRATA_CLASSIC:dg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:IQ.WebFlexBasis,FLEX_DIRECTION_COLUMN:Kq.Column,FLEX_DIRECTION_COLUMN_REVERSE:Kq.ColumnReverse,FLEX_DIRECTION_ROW:Kq.Row,FLEX_DIRECTION_ROW_REVERSE:Kq.RowReverse,GUTTER_COLUMN:$q.Column,GUTTER_ROW:$q.Row,GUTTER_ALL:$q.All,JUSTIFY_FLEX_START:cA.FlexStart,JUSTIFY_CENTER:cA.Center,JUSTIFY_FLEX_END:cA.FlexEnd,JUSTIFY_SPACE_BETWEEN:cA.SpaceBetween,JUSTIFY_SPACE_AROUND:cA.SpaceAround,JUSTIFY_SPACE_EVENLY:cA.SpaceEvenly,LOG_LEVEL_ERROR:pg.Error,LOG_LEVEL_WARN:pg.Warn,LOG_LEVEL_INFO:pg.Info,LOG_LEVEL_DEBUG:pg.Debug,LOG_LEVEL_VERBOSE:pg.Verbose,LOG_LEVEL_FATAL:pg.Fatal,MEASURE_MODE_UNDEFINED:lq.Undefined,MEASURE_MODE_EXACTLY:lq.Exactly,MEASURE_MODE_AT_MOST:lq.AtMost,NODE_TYPE_DEFAULT:ej.Default,NODE_TYPE_TEXT:ej.Text,OVERFLOW_VISIBLE:dq.Visible,OVERFLOW_HIDDEN:dq.Hidden,OVERFLOW_SCROLL:dq.Scroll,POSITION_TYPE_STATIC:pq.Static,POSITION_TYPE_RELATIVE:pq.Relative,POSITION_TYPE_ABSOLUTE:pq.Absolute,UNIT_UNDEFINED:_q.Undefined,UNIT_POINT:_q.Point,UNIT_PERCENT:_q.Percent,UNIT_AUTO:_q.Auto,WRAP_NO_WRAP:uq.NoWrap,WRAP_WRAP:uq.Wrap,WRAP_WRAP_REVERSE:uq.WrapReverse},D_=k_;function y_(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,G=new Array(U),Y=0;Y<U;Y++)G[Y]=arguments[Y];return Z.call(this,j,...G)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[_q.Point]:A.Node.prototype[F],[_q.Percent]:A.Node.prototype[`${F}Percent`],[_q.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=new Array(j>1?j-1:0),G=1;G<j;G++)U[G-1]=arguments[G];let Y=U.pop(),M,O;if(Y==="auto")M=_q.Auto,O=void 0;else if(typeof Y==="object")M=Y.unit,O=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?_q.Percent:_q.Point,O=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(O))throw new Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw new Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(O!==void 0)return K[M].call(this,...U,O);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]:D6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...D_}}var b_=y_(await C_()),ZZ=b_,xQ=["single","double","rounded","heavy"];function PQ(A){return typeof A==="string"&&xQ.includes(A)}function jZ(A,q="single"){if(PQ(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${xQ.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 UZ(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 lg(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 RQ={single:lg(hE.single),double:lg(hE.double),rounded:lg(hE.rounded),heavy:lg(hE.heavy)},nY={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 SQ(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 m_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},f_={"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 c_(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=f_[E];else{if(E!=="1")return null;j=m_[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 G=parseInt(F,10);if(!isNaN(G)&&G>1){let Y=SQ(G-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 d_(A){let q=c_(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(":")||[],G=U[0];if(!G)return null;let Y=parseInt(G,10);if(isNaN(Y))return null;let M,O;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)O=_}let $=nY[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let _=String.fromCodePoint(Y);if(Z.name=_,O)Z.baseCode=O}else return null;if(K[1]){let _=K[1].split(":"),x=_[0],N=_[1];if(x){let L=parseInt(x,10);if(!isNaN(L)&&L>1){let P=SQ(L-1);Z.shift=P.shift,Z.ctrl=P.ctrl,Z.meta=P.alt||P.meta,Z.option=P.alt,Z.super=P.super,Z.hyper=P.hyper,Z.capsLock=P.capsLock,Z.numLock=P.numLock}}if(N==="1"||!N)Z.eventType="press";else if(N==="2")Z.eventType="press",Z.repeated=!0;else if(N==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let x of _){let N=parseInt(x,10);if(!isNaN(N)&&N>0&&N<=1114111)j+=String.fromCodePoint(N)}}if(j===""){if(Z.name.length>0&&!nY[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 p_=/^(?:\x1b)([a-zA-Z0-9])$/,u_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,aQ={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"},l_=[...Object.values(aQ),"backspace"],i_=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},t_=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},s_=/^\x1b\[27;(\d+);(\d+)~$/,hQ=(A="",q={})=>{let g;if(v_.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=d_(A);if(K)return K}let F=s_.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
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=h9.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=z9.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=LQ[Z];if(U)E.name=U,E.shift=w9(Z)||E.shift,E.ctrl=C9(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 NE{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 ZU{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 jU extends D9{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=VQ(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new NE(q));break;case"release":this.emit("keyrelease",new NE(q));break;default:this.emit("keypress",new NE(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 ZU(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class UU extends jU{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 OA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new OA(A)}static fromValues(A,q,g,E=1){return new OA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new OA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return nK(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 nK(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`),OA.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 OA.fromValues(q,g,E,F)}var fY={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 p(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return OA.fromValues(0,0,0,0);if(fY[q])return nK(fY[q]);return nK(A)}return A}var Pq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var WQ;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(WQ||={});function xE({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=Pq.NONE;if(A)U|=Pq.BOLD;if(q)U|=Pq.ITALIC;if(g)U|=Pq.UNDERLINE;if(E)U|=Pq.DIM;if(F)U|=Pq.BLINK;if(K)U|=Pq.INVERSE;if(Z)U|=Pq.HIDDEN;if(j)U|=Pq.STRIKETHROUGH;return U}var y9=255,b9=8,v9=16777215;function NQ(A,q){let g=A&y9,E=(q&v9)<<b9;return g|E}var TQ=Symbol.for("@opentui/core/StyledText");function xQ(A){return A&&A[TQ]}class SE{[TQ]=!0;chunks;constructor(A){this.chunks=A}}function qZ(A){return new SE([{__isChunk:!0,text:A}])}function m9(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?p(q.fg):g.fg,F=q.bg?p(q.bg):g.bg,K=xE(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?p(q.fg):void 0,F=q.bg?p(q.bg):void 0,K=xE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var IQ=(A)=>(q)=>m9(q,{fg:A});class GU{tick(A){return 1}reset(){}}var lq="\x1B",cY="\x1B[200~",cK="\x1B[201~";function c9(A){if(!A.startsWith(lq))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 d9(A)}if(q.startsWith("]"))return p9(A);if(q.startsWith("P"))return u9(A);if(q.startsWith("_"))return l9(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function d9(A){if(!A.startsWith(lq+"["))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 p9(A){if(!A.startsWith(lq+"]"))return"complete";if(A.endsWith(lq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function u9(A){if(!A.startsWith(lq+"P"))return"complete";if(A.endsWith(lq+"\\"))return"complete";return"incomplete"}function l9(A){if(!A.startsWith(lq+"_"))return"complete";if(A.endsWith(lq+"\\"))return"complete";return"incomplete"}function dY(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(lq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=c9(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 YU extends f9{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(cK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+cK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(cY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=dY(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+cY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(cK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+cK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=dY(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 nj(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 rj(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 oj(A){if(A==null)return gq.Column;switch(A.toLowerCase()){case"column":return gq.Column;case"column-reverse":return gq.ColumnReverse;case"row":return gq.Row;case"row-reverse":return gq.RowReverse;default:return gq.Column}}function ej(A){if(A==null)return fA.FlexStart;switch(A.toLowerCase()){case"flex-start":return fA.FlexStart;case"center":return fA.Center;case"flex-end":return fA.FlexEnd;case"space-between":return fA.SpaceBetween;case"space-around":return fA.SpaceAround;case"space-evenly":return fA.SpaceEvenly;default:return fA.FlexStart}}function AU(A){if(A==null)return cq.Visible;switch(A.toLowerCase()){case"visible":return cq.Visible;case"hidden":return cq.Hidden;case"scroll":return cq.Scroll;default:return cq.Visible}}function qU(A){if(A==null)return dq.Relative;switch(A.toLowerCase()){case"static":return dq.Static;case"relative":return dq.Relative;case"absolute":return dq.Absolute;default:return dq.Static}}function gU(A){if(A==null)return pq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return pq.NoWrap;case"wrap":return pq.Wrap;case"wrap-reverse":return pq.WrapReverse;default:return pq.NoWrap}}class IE{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,Y=(j&64)!==0,G=!Y?void 0:IE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,O={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(Y&&Z==="M")$="scroll",_={direction:G,delta:1};else if(M){let x=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(x)$="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:O,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:IE.SCROLL_DIRECTIONS[Z],Y={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},G,M,O;if(j)G="scroll",M=0,O={direction:U,delta:1};else G=Z===3?"up":"down",M=Z===3?0:Z;return{type:G,button:M,x:F,y:K,modifiers:Y,scroll:O}}return null}}class PQ{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 QU{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new PQ(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 OU(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 JU=Symbol.for("@opentui/core/singleton");function tg(A,q){let g=globalThis[JU]??={};if(!(A in g))g[A]=q();return g[A]}function i9(A){let q=globalThis[JU];if(q&&A in q)delete q[A]}function t9(A){let q=globalThis[JU];return q&&A in q}var pg=tg("env-registry",()=>({}));function WA(A){let q=pg[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw new Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}pg[A.name]=A}function s9(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function n9(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw new Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:s9(q);case"number":let g=Number(q);if(isNaN(g))throw new Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class RQ{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in pg))throw new Error(`Environment variable ${A} is not registered.`);try{let q=n9(pg[A]);return this.parsedValues.set(A,q),q}catch(q){throw new Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in pg}clearCache(){this.parsedValues.clear()}}var dK=tg("env-store",()=>new RQ);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return dK.get(q)},has(A,q){return dK.has(q)},ownKeys(){return Object.keys(pg)},getOwnPropertyDescriptor(A,q){if(dK.has(q))return{enumerable:!0,configurable:!0,get:()=>dK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var R6=new Map;class SQ{scopeId;constructor(A){if(this.scopeId=A,!R6.has(this.scopeId))R6.set(this.scopeId,new Map)}debounce(A,q,g){let E=R6.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=R6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=R6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function o9(A){return new SQ(A)}function e9(A){let q=R6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class aQ{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 cj;function A$(){if(!cj)cj=[{filetype:"javascript",queries:{highlights:[Uq(Gq(Yq(import.meta.url)),aY)]},wasm:Uq(Gq(Yq(import.meta.url)),hY)},{filetype:"typescript",queries:{highlights:[Uq(Gq(Yq(import.meta.url)),zY)]},wasm:Uq(Gq(Yq(import.meta.url)),BY)},{filetype:"markdown",queries:{highlights:[Uq(Gq(Yq(import.meta.url)),wY)],injections:[Uq(Gq(Yq(import.meta.url)),kY)]},wasm:Uq(Gq(Yq(import.meta.url)),CY),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:[Uq(Gq(Yq(import.meta.url)),DY)]},wasm:Uq(Gq(Yq(import.meta.url)),yY)},{filetype:"zig",queries:{highlights:[Uq(Gq(Yq(import.meta.url)),bY)]},wasm:Uq(Gq(Yq(import.meta.url)),vY)}];return cj}function hQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function Z$(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function j$(A){return K$(Z$(),F$(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var U$=A$();var G$=(A)=>A.startsWith("http://")||A.startsWith("https://");class MU extends r9{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=o9("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!=="undefined")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,!E$(pY(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(new 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=new 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 U$)this.addFiletypeParser(A)}resolvePath(A){if(G$(A))return A;if(hQ(A))return j$(g$(A).base);if(!q$(A))return pY(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:Y}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let G=this.buffers.get(g);if(!G||!G.hasParser)return;if(G.version!==Y){this.resetBuffer(g,G.version,G.content);return}this.emit("highlights:response",g,Y,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(new Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G({hasParser:j,warning:K,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let G=this.messageCallbacks.get(`dispose_${g}`);if(G)this.messageCallbacks.delete(`dispose_${g}`),G(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G({highlights:F,warning:K,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let G=this.messageCallbacks.get(Z);if(G)this.messageCallbacks.delete(Z),G({error:E});return}if(K){this.emitWarning(K,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:G,data:M}=A.data,O=M.join(" ");if(this.emit("worker:log",G,O),G==="log")console.log("TSWorker:",...M);else if(G==="error")console.error("TSWorker:",...M);else if(G==="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 new 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 aQ((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(new 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(),e9("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(new Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw new 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(new Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function Q$(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 _U extends Y${_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!Q$(A))throw new 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=uY.homedir(),g=XA.XDG_CONFIG_HOME||Yg.join(A,".config");this._globalConfigPath=Yg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Yg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Yg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=uY.homedir(),g=XA.XDG_DATA_HOME||Yg.join(A,".local/share");this._globalDataPath=Yg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function zQ(){return tg("data-paths-opentui",()=>new _U)}function BQ(){let A=zQ(),q={dataPath:A.globalDataPath};return tg("tree-sitter-client",()=>{let g=new MU(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class wQ{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 $U{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new wQ;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]===`
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=p_.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=u_.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=aQ[Z];if(U)E.name=U,E.shift=i_(Z)||E.shift,E.ctrl=t_(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 zE{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 YU{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 QU extends n_{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=hQ(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new zE(q));break;case"release":this.emit("keyrelease",new zE(q));break;default:this.emit("keypress",new zE(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 YU(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class OU extends QU{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 OA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new OA(A)}static fromValues(A,q,g,E=1){return new OA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new OA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return FZ(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 FZ(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`),OA.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 OA.fromValues(q,g,E,F)}var rY={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 u(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return OA.fromValues(0,0,0,0);if(rY[q])return FZ(rY[q]);return FZ(A)}return A}var Rq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var zQ;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(zQ||={});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=Rq.NONE;if(A)U|=Rq.BOLD;if(q)U|=Rq.ITALIC;if(g)U|=Rq.UNDERLINE;if(E)U|=Rq.DIM;if(F)U|=Rq.BLINK;if(K)U|=Rq.INVERSE;if(Z)U|=Rq.HIDDEN;if(j)U|=Rq.STRIKETHROUGH;return U}var r_=255,o_=8,e_=16777215;function BQ(A,q){let g=A&r_,E=(q&e_)<<o_;return g|E}var wQ=Symbol.for("@opentui/core/StyledText");function CQ(A){return A&&A[wQ]}class b6{[wQ]=!0;chunks;constructor(A){this.chunks=A}}function GZ(A){return new b6([{__isChunk:!0,text:A}])}function JU(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?u(q.fg):g.fg,F=q.bg?u(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?u(q.fg):void 0,F=q.bg?u(q.bg):void 0,K=wE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var Xg=(A)=>JU(A,{bold:!0});var yE=(A)=>JU(A,{underline:!0});var v6=(A)=>(q)=>JU(q,{fg:A});function Hq(A,...q){let g=[];for(let E=0;E<A.length;E++){let F=A[E];if(F)g.push({__isChunk:!0,text:F,attributes:0});let K=q[E];if(typeof K==="object"&&"__isChunk"in K)g.push(K);else if(K!==void 0){let Z=String(K);g.push({__isChunk:!0,text:Z,attributes:0})}}return new b6(g)}class MU{tick(A){return 1}reset(){}}var iq="\x1B",oY="\x1B[200~",nK="\x1B[201~";function q$(A){if(!A.startsWith(iq))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 g$(A)}if(q.startsWith("]"))return E$(A);if(q.startsWith("P"))return F$(A);if(q.startsWith("_"))return K$(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function g$(A){if(!A.startsWith(iq+"["))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 E$(A){if(!A.startsWith(iq+"]"))return"complete";if(A.endsWith(iq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function F$(A){if(!A.startsWith(iq+"P"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function K$(A){if(!A.startsWith(iq+"_"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function eY(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(iq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=q$(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 _U extends A${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(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(oY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=eY(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+oY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=eY(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 AU(A){if(A==null)return UA.Auto;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Auto}}function qU(A){if(A==null)return UA.Stretch;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Stretch}}function gU(A){if(A==null)return Kq.Column;switch(A.toLowerCase()){case"column":return Kq.Column;case"column-reverse":return Kq.ColumnReverse;case"row":return Kq.Row;case"row-reverse":return Kq.RowReverse;default:return Kq.Column}}function EU(A){if(A==null)return cA.FlexStart;switch(A.toLowerCase()){case"flex-start":return cA.FlexStart;case"center":return cA.Center;case"flex-end":return cA.FlexEnd;case"space-between":return cA.SpaceBetween;case"space-around":return cA.SpaceAround;case"space-evenly":return cA.SpaceEvenly;default:return cA.FlexStart}}function FU(A){if(A==null)return dq.Visible;switch(A.toLowerCase()){case"visible":return dq.Visible;case"hidden":return dq.Hidden;case"scroll":return dq.Scroll;default:return dq.Visible}}function KU(A){if(A==null)return pq.Relative;switch(A.toLowerCase()){case"static":return pq.Static;case"relative":return pq.Relative;case"absolute":return pq.Absolute;default:return pq.Static}}function ZU(A){if(A==null)return uq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return uq.NoWrap;case"wrap":return uq.Wrap;case"wrap-reverse":return uq.WrapReverse;default:return uq.NoWrap}}class CE{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,G=(j&64)!==0,Y=!G?void 0:CE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,O={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(G&&Z==="M")$="scroll",_={direction:Y,delta:1};else if(M){let x=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(x)$="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:O,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:CE.SCROLL_DIRECTIONS[Z],G={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,O;if(j)Y="scroll",M=0,O={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:G,scroll:O}}return null}}class kQ{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 $U{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new kQ(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 XU(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 HU=Symbol.for("@opentui/core/singleton");function rg(A,q){let g=globalThis[HU]??={};if(!(A in g))g[A]=q();return g[A]}function Z$(A){let q=globalThis[HU];if(q&&A in q)delete q[A]}function j$(A){let q=globalThis[HU];return q&&A in q}var ig=rg("env-registry",()=>({}));function WA(A){let q=ig[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw new Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}ig[A.name]=A}function U$(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function G$(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw new Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:U$(q);case"number":let g=Number(q);if(isNaN(g))throw new Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class DQ{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in ig))throw new Error(`Environment variable ${A} is not registered.`);try{let q=G$(ig[A]);return this.parsedValues.set(A,q),q}catch(q){throw new Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in ig}clearCache(){this.parsedValues.clear()}}var rK=rg("env-store",()=>new DQ);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return rK.get(q)},has(A,q){return rK.has(q)},ownKeys(){return Object.keys(ig)},getOwnPropertyDescriptor(A,q){if(rK.has(q))return{enumerable:!0,configurable:!0,get:()=>rK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var w6=new Map;class yQ{scopeId;constructor(A){if(this.scopeId=A,!w6.has(this.scopeId))w6.set(this.scopeId,new Map)}debounce(A,q,g){let E=w6.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=w6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=w6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function Q$(A){return new yQ(A)}function O$(A){let q=w6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class bQ{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 lj;function J$(){if(!lj)lj=[{filetype:"javascript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),vY)]},wasm:Qq(Oq(Jq(import.meta.url)),mY)},{filetype:"typescript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),fY)]},wasm:Qq(Oq(Jq(import.meta.url)),cY)},{filetype:"markdown",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),dY)],injections:[Qq(Oq(Jq(import.meta.url)),uY)]},wasm:Qq(Oq(Jq(import.meta.url)),pY),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:[Qq(Oq(Jq(import.meta.url)),lY)]},wasm:Qq(Oq(Jq(import.meta.url)),iY)},{filetype:"zig",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),tY)]},wasm:Qq(Oq(Jq(import.meta.url)),sY)}];return lj}function vQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function L$(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function V$(A){return H$(L$(),X$(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var W$=J$();var N$=(A)=>A.startsWith("http://")||A.startsWith("https://");class LU extends Y${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=Q$("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!=="undefined")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,!$$(AQ(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(new 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=new 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 W$)this.addFiletypeParser(A)}resolvePath(A){if(N$(A))return A;if(vQ(A))return V$(_$(A).base);if(!M$(A))return AQ(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:G}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==G){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,G,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(new 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,O=M.join(" ");if(this.emit("worker:log",Y,O),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 new 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 bQ((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(new 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(),O$("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(new Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw new 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(new Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function I$(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 VU extends T${_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!I$(A))throw new 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=qQ.homedir(),g=XA.XDG_CONFIG_HOME||Qg.join(A,".config");this._globalConfigPath=Qg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Qg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Qg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=qQ.homedir(),g=XA.XDG_DATA_HOME||Qg.join(A,".local/share");this._globalDataPath=Qg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function mQ(){return rg("data-paths-opentui",()=>new VU)}function fQ(){let A=mQ(),q={dataPath:A.globalDataPath};return rg("tree-sitter-client",()=>{let g=new LU(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class cQ{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 WU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new cQ;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
8
  `){g=K+1;break}let E=A.length;for(let K=q;K<A.length;K++)if(A[K]===`
9
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
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 Y=Bun.stringWidth(q[U]);g+=Y}break}}return A-E}create(A){if(this.destroyed)throw new 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 new 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 new 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 CQ(A,q){return new $U(A,q)}var pK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,lY=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function dj(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function iY(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${dj(A)}${dj(q)}${dj(g)}`;return"#000000"}function O$(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class XU{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?O$(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=(Y)=>{if(F+=Y.toString(),pK.lastIndex=0,pK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let Y=this.activeListeners.findIndex((M)=>M.handler===K);if(Y!==-1)this.activeListeners.splice(Y,1);let G=this.activeTimers.indexOf(U);if(G!==-1)this.activeTimers.splice(G,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,Y=($)=>{Z+=$.toString(),j=Date.now();let _;pK.lastIndex=0;while(_=pK.exec(Z)){let T=parseInt(_[1],10);if(F.has(T))F.set(T,iY(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((T)=>T!==null).length===F.size){M(),K(F);return}if(U)clearTimeout(U);if(U=setTimeout(()=>{M(),K(F)},150),U)this.activeTimers.push(U)},G=()=>{M(),K(F)},M=()=>{if(clearTimeout(O),U)clearTimeout(U);E.removeListener("data",Y);let $=this.activeListeners.findIndex((x)=>x.handler===Y);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(O);if(_!==-1)this.activeTimers.splice(_,1);if(U){let x=this.activeTimers.indexOf(U);if(x!==-1)this.activeTimers.splice(x,1)}},O=setTimeout(G,q);this.activeTimers.push(O),E.on("data",Y),this.activeListeners.push({event:"data",handler:Y}),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 O;lY.lastIndex=0;while(O=lY.exec(K)){let _=parseInt(O[1],10);if(_ in E)E[_]=iY(O[2],O[3],O[4],O[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){Y(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{Y(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{Y(),F(E)},Y=()=>{if(clearTimeout(G),Z)clearTimeout(Z);g.removeListener("data",j);let M=this.activeListeners.findIndex(($)=>$.handler===j);if(M!==-1)this.activeListeners.splice(M,1);let O=this.activeTimers.indexOf(G);if(O!==-1)this.activeTimers.splice(O,1);if(Z){let $=this.activeTimers.indexOf(Z);if($!==-1)this.activeTimers.splice($,1)}},G=setTimeout(U,A);this.activeTimers.push(G),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 kQ(A,q,g,E){return new XU(A,q,g,E)}function $$(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 _g{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 new 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(uK(q,0,A*4)),fg:new Float32Array(uK(g,0,A*4*4)),bg:new Float32Array(uK(E,0,A*4*4)),attributes:new Uint32Array(uK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${_g.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=Mq(),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 Y=K*this._width+U,G=A[Y],M=OA.fromValues(q[Y*4],q[Y*4+1],q[Y*4+2],q[Y*4+3]),O=OA.fromValues(g[Y*4],g[Y*4+1],g[Y*4+2],g[Y*4+3]),$=E[Y]&255,_=G>0?String.fromCodePoint(G):" ";if(j&&j.fg.equals(M)&&j.bg.equals(O)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:O,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=OA.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,Y,G;if(Z.bgColor)Y=Z.bgColor,G=Z.fgColor||E;else{let M=F||OA.fromValues(0,0,0,0);G=M.a>0?M:OA.fromValues(0,0,0,1),Y=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,G,Y,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,sY(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,sY(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=eK(A.borderStyle,"single"),g=A.customBorderChars??XQ[q],E=$$(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 S6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),new Error(q)}var wA=process.arch==="x64"||process.arch==="arm64"?8:4,cg={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:wA,i32:4},X$=Object.keys(cg);function lK(A){return typeof A==="string"&&X$.includes(A)}var nY={...cg},H$={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)=>wA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function rY(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function oY(A,q){return A+(q-1)&~(q-1)}function eY(A){throw new TypeError(`Invalid enum value: ${A}`)}function L$(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]??eY(String(E))},from(E){return g[E]??eY(String(E))},enum:A}}function AQ(A){return typeof A==="object"&&A.__type==="enum"}function uj(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)=>{wA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=wA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:S6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:mA,unpack:I6}=a6("pointer");function V$(A){let q=new ArrayBuffer(A.length*wA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;mA(g,E*wA,K)}return g}var qQ=new TextEncoder,W$=new TextDecoder;function iq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[O,$,_={}]of A){if(_.condition&&!_.condition())continue;let x=0,T=0,V,P,k=!1,C=null;if(lK($))x=cg[$],T=nY[$],{pack:V,unpack:P}=a6($);else if(typeof $==="string"&&$==="cstring")x=wA,T=wA,V=(a,z,r)=>{let m=r?bg(qQ.encode(r+"\x00")):null;mA(a,z,m)},P=(a,z)=>{return I6(a,z)};else if(typeof $==="string"&&$==="char*")x=wA,T=wA,V=(a,z,r)=>{let m=r?bg(qQ.encode(r)):null;mA(a,z,m)},P=(a,z)=>{return I6(a,z)},k=!0;else if(AQ($)){let a=$.type;x=cg[a],T=nY[a];let{pack:z}=a6(a);V=(r,m,gA)=>{let FA=$.to(gA);z(r,m,FA)},P=(r,m)=>{let gA=H$[a](r,m);return $.from(gA)}}else if(uj($))if(_.asPointer===!0)x=wA,T=wA,V=(a,z,r,m,gA)=>{if(!r){mA(a,z,null);return}let FA=$.pack(r,gA);mA(a,z,bg(FA))},P=(a,z)=>{throw new Error("Not implemented yet")};else x=$.size,T=$.align,V=(a,z,r,m,gA)=>{let FA=$.pack(r,gA),QA=new Uint8Array(FA);new Uint8Array(a.buffer).set(QA,z)},P=(a,z)=>{let r=a.buffer.slice(z,z+x);return $.unpack(r)};else if(rY($))x=wA,T=wA,V=(a,z,r)=>{let m=r?.ptr??null;if(m===void 0)console.warn(`Field '${O}' expected object with '.ptr' property, but got undefined pointer value from:`,r),mA(a,z,null);else mA(a,z,m)},P=(a,z)=>{return I6(a,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[a]=$;x=wA,T=wA;let z;if(AQ(a))z=cg[a.type],V=(m,gA,FA,QA)=>{if(!FA||FA.length===0){mA(m,gA,null);return}let RA=new ArrayBuffer(FA.length*z),vA=new DataView(RA);for(let SA=0;SA<FA.length;SA++){let Nq=a.to(FA[SA]);vA.setUint32(SA*z,Nq,!0)}mA(m,gA,bg(RA))},P=null,k=!0,C=a;else if(uj(a))z=a.size,V=(m,gA,FA,QA,RA)=>{if(!FA||FA.length===0){mA(m,gA,null);return}let vA=new ArrayBuffer(FA.length*z),SA=new DataView(vA);for(let Nq=0;Nq<FA.length;Nq++)a.packInto(FA[Nq],SA,Nq*z,RA);mA(m,gA,bg(vA))},P=(m,gA)=>{throw new Error("Not implemented yet")};else if(lK(a)){z=cg[a];let{pack:m}=a6(a);V=(gA,FA,QA)=>{if(!QA||QA.length===0){mA(gA,FA,null);return}let RA=new ArrayBuffer(QA.length*z),vA=new DataView(RA);for(let SA=0;SA<QA.length;SA++)m(vA,SA*z,QA[SA]);mA(gA,FA,bg(RA))},P=null,k=!0,C=a}else if(rY(a))z=wA,V=(m,gA,FA)=>{if(!FA||FA.length===0){mA(m,gA,null);return}let QA=V$(FA);mA(m,gA,bg(QA.buffer))},P=()=>{throw new Error("not implemented yet")};else throw new Error(`Unsupported array element type for ${O}: ${JSON.stringify(a)}`);let r=Object.values(K).find((m)=>m.lengthOf===O);if(r&&lK(r.type)){let{pack:m}=a6(r.type);j[O]={elementSize:z,arrayOffset:g,lengthOffset:r.offset,lengthPack:m}}}else throw new Error(`Unsupported field type for ${O}: ${JSON.stringify($)}`);if(g=oY(g,T),_.unpackTransform){let a=P;P=(z,r)=>_.unpackTransform(a(z,r))}if(_.packTransform){let a=V;V=(z,r,m,gA,FA)=>a(z,r,_.packTransform(m),gA,FA)}if(_.optional){let a=V;if(uj($)&&!_.asPointer)V=(z,r,m,gA,FA)=>{if(m||_.mapOptionalInline)a(z,r,m,gA,FA)};else V=(z,r,m,gA,FA)=>a(z,r,m??0,gA,FA)}if(_.lengthOf){let a=V;V=(z,r,m,gA,FA)=>{let QA=gA[_.lengthOf],RA=0;if(QA)if(typeof QA==="string")RA=Buffer.byteLength(QA);else RA=QA.length;return a(z,r,RA,gA,FA)}}let i;if(_.validate)i=Array.isArray(_.validate)?_.validate:[_.validate];let d={name:O,offset:g,size:x,align:T,validate:i,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:V,unpack:P,type:$,lengthOf:_.lengthOf};if(F.push(d),_.lengthOf)K[_.lengthOf]=d;if(k){let a=typeof $==="string"&&$==="char*"?"char*":C;if(!a)S6(`Internal error: needsLengthOf=true but def is null for ${O}`);Z.push({requester:d,def:a})}g+=x,E=Math.max(E,T)}for(let{requester:O,def:$}of Z){let _=K[O.name];if(!_){if($==="char*")continue;throw new Error(`lengthOf field not found for array field ${O.name}`)}if($==="char*")O.unpack=(x,T)=>{let V=I6(x,T),P=_.unpack(x,_.offset);if(V===0)return null;let k=typeof P==="bigint"?Number(P):P;if(k===0)return"";let C=pj(V,0,k);return W$.decode(C)};else if(lK($)){let x=cg[$],{unpack:T}=a6($);O.unpack=(V,P)=>{let k=[],C=_.unpack(V,_.offset),i=I6(V,P);if(i===0n&&C>0)throw new Error(`Array field ${O.name} has null pointer but length ${C}.`);if(i===0n||C===0)return[];let d=pj(i,0,C*x),a=new DataView(d);for(let z=0;z<C;z++)k.push(T(a,z*x));return k}}else{let x=$.type==="u32"?4:8;O.unpack=(T,V)=>{let P=[],k=_.unpack(T,_.offset),C=I6(T,V);if(C===0n&&k>0)throw new Error(`Array field ${O.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let i=pj(C,0,k*x),d=new DataView(i);for(let a=0;a<k;a++)P.push($.from(d.getUint32(a*x,!0)));return P}}}let U=oY(g,E),Y=F.map((O)=>({name:O.name,offset:O.offset,size:O.size,align:O.align,optional:O.optional,type:O.type,lengthOf:O.lengthOf})),G=new Map(Y.map((O)=>[O.name,O])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:G,arrayFields:M,pack(O,$){let _=new ArrayBuffer(U),x=new DataView(_),T=O;if(q?.mapValue)T=q.mapValue(O);for(let V of F){let P=T[V.name]??V.default;if(!V.optional&&P===void 0)S6(`Packing non-optional field '${V.name}' but value is undefined (and no default provided)`);if(V.validate)for(let k of V.validate)k(P,V.name,{hints:$?.validationHints,input:T});V.pack(x,V.offset,P,T,$)}return x.buffer},packInto(O,$,_,x){let T=O;if(q?.mapValue)T=q.mapValue(O);for(let V of F){let P=T[V.name]??V.default;if(!V.optional&&P===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(P,V.name,{hints:x?.validationHints,input:T});V.pack($,_+V.offset,P,T,x)}},unpack(O){if(O.byteLength<U)S6(`Buffer size (${O.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(O),_=q?.default?{...q.default}:{};for(let x of F){if(!x.unpack)continue;try{_[x.name]=x.unpack($,x.offset)}catch(T){throw console.error(`Error unpacking field '${x.name}' at offset ${x.offset}:`,T),T}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(O,$){if(O.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*O.length),x=new DataView(_);for(let T=0;T<O.length;T++){let V=O[T];if(q?.mapValue)V=q.mapValue(O[T]);for(let P of F){let k=V[P.name]??P.default;if(!P.optional&&k===void 0)S6(`Packing non-optional field '${P.name}' at index ${T} but value is undefined (and no default provided)`);if(P.validate)for(let C of P.validate)C(k,P.name,{hints:$?.validationHints,input:V});P.pack(x,T*U+P.offset,k,V,$)}}return _},unpackList(O,$){if($===0)return[];let _=U*$;if(O.byteLength<_)S6(`Buffer size (${O.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let x=new DataView(O),T=[];for(let V=0;V<$;V++){let P=V*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(x,P+C.offset)}catch(i){throw console.error(`Error unpacking field '${C.name}' at index ${V}, offset ${P+C.offset}:`,i),i}}if(q?.reduceValue)T.push(q.reduceValue(k));else T.push(k)}return T},describe(){return Y}}}var gQ=(A)=>A?N$(A.buffer):null,EQ=(A)=>A?OA.fromArray(new Float32Array(T$(A))):void 0,FQ=iq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:gQ,unpackTransform:EQ}],["bg","pointer",{optional:!0,packTransform:gQ,unpackTransform:EQ}],["attributes","u32",{optional:!0}]]),iK=iq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Tq=iq([["row","u32"],["col","u32"],["offset","u32"]]),qq=iq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),x$=L$({wcwidth:0,unicode:1},"u8"),KQ=iq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",x$],["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"]]),ZQ=iq([["width","u8"],["char","u32"]]),Qg=iq([["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"]]),jQ=iq([["lineCount","u32"],["maxWidth","u32"]]),UQ=iq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),I$=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),TE=I$.default;if(hQ(TE))TE=TE.replace("../","");if(!M$(TE))throw new 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 vg=null,P6=null,GQ=!1;function P$(A){let g=J$(A||TE,{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:R$(g.symbols)};return g}function R$(A){if(!vg)vg={};if(XA.OTUI_DEBUG_FFI&&!P6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;P6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&P6){let E=P6,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((Y)=>String(Y)).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(!vg[E])vg[E]=[];let K=q[E];q[E]=(...Z)=>{let j=performance.now(),U=K(...Z),Y=performance.now();return vg[E].push(Y-j),U}}});if((XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)&&!GQ)GQ=!0,process.on("exit",()=>{try{if(P6)P6.end()}catch(E){}if(vg){let E=[];for(let[Z,j]of Object.entries(vg)){if(!Array.isArray(j)||j.length===0)continue;let U=[...j].sort((C,i)=>C-i),Y=U.length,G=U.reduce((C,i)=>C+i,0),M=G/Y,O=U[0],$=U[Y-1],_=Math.floor(Y/2),x=Math.floor(Y*0.9),T=Math.floor(Y*0.99),V=U[_],P=U[Math.min(x,Y-1)],k=U[Math.min(T,Y-1)];E.push({name:Z,count:Y,total:G,average:M,min:O,max:$,median:V,p90:P,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 x=Math.max(6,...E.map((z)=>z.name.length)),T=Math.max(5,...E.map((z)=>String(z.count).length)),V=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),P=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)),i=Math.max(8,...E.map((z)=>z.median.toFixed(2).length)),d=Math.max(8,...E.map((z)=>z.p90.toFixed(2).length)),a=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(x)} | ${"Calls".padStart(T)} | ${"Total (ms)".padStart(V)} | ${"Avg (ms)".padStart(P)} | ${"Min (ms)".padStart(k)} | ${"Max (ms)".padStart(C)} | ${"Med (ms)".padStart(i)} | ${"P90 (ms)".padStart(d)} | ${"P99 (ms)".padStart(a)}`),F.push(`${"-".repeat(x)}-+-${"-".repeat(T)}-+-${"-".repeat(V)}-+-${"-".repeat(P)}-+-${"-".repeat(k)}-+-${"-".repeat(C)}-+-${"-".repeat(i)}-+-${"-".repeat(d)}-+-${"-".repeat(a)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(x)} | ${String(z.count).padStart(T)} | ${z.total.toFixed(2).padStart(V)} | ${z.average.toFixed(2).padStart(P)} | ${z.min.toFixed(2).padStart(k)} | ${z.max.toFixed(2).padStart(C)} | ${z.median.toFixed(2).padStart(i)} | ${z.p90.toFixed(2).padStart(d)} | ${z.p99.toFixed(2).padStart(a)}`)})}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 DQ;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(DQ||={});class HU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new _$;_anyEventHandlers=[];constructor(A){this.opentui=P$(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new tY((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=VE(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 new 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 tY((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=VE(q,0,K),U=new Uint8Array(j),Y=this.decoder.decode(U),G;if(Z>0&&E)G=VE(E,0,Z).slice();else G=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(Y,G);for(let M of this._anyEventHandlers)M(Y,G)})}catch(K){console.error("Error in native event callback:",K)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw new 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 new Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new _g(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw new Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new _g(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw new Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw new Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw new Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw new 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,Y=K?K.buffer:null,G=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,G,Y,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,Y=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,Y,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,Y=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,Y,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,Y){let G=Y?this.encoder.encode(Y):null,M=Y?G.length:0,O=Y?G:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,O,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(UQ.size);this.opentui.symbols.getCursorState(A,qA(q));let g=UQ.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:OA.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(new 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 new Error(`Failed to create optimized buffer: ${A}x${q}`);return new _g(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,Y=K??0,G=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,Y,G,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 new Error("Failed to create TextBuffer");return new gZ(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 new 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:NQ(K.attributes??0,Z)}}return K}),F=FQ.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 new 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(Qg.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Qg.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Qg.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Qg.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(jQ.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return jQ.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=iK.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=iK.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*iK.size,Z=VE(E,0,K),j=iK.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 new 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 new Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Qg.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Qg.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Qg.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Qg.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 new 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(Tq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Tq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw new 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(Tq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Tq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Tq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Tq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Tq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Tq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Tq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Tq.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 Y=K?K.buffer:null,G=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,Y,G,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 Y=K?K.buffer:null,G=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,Y,G,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(qq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),qq.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(qq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),qq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(qq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),qq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(qq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),qq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(qq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),qq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(qq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),qq.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(KQ.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=KQ.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),Y=Number(j[0]),G=Number(U[0]);if(G===0)return{ptr:Y,data:[]};let M=G*ZQ.size,O=VE(Y,0,M),$=ZQ.unpackList(O,G);return{ptr:Y,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 new 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=FQ.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 yQ,sK;function Mq(){if(!sK)try{sK=new HU(yQ)}catch(A){throw new Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return sK}try{sK=new HU(yQ)}catch(A){}class gZ{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 Mq().createTextBuffer(A)}guard(){if(this._destroyed)throw new 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 new 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 a$(A,q){if(typeof q.width==="number"){if(q.width<0)throw new TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw new TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function B6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function xq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return B6(A)}function Iq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return B6(A)}function fq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return B6(A)}function h$(A){return A==="relative"||A==="absolute"}function z$(A){return A==="visible"||A==="hidden"||A==="scroll"}function tK(A){return fq(A)}function YQ(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Og(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return B6(A)}var bQ=Symbol.for("@opentui/core/Renderable"),vQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(vQ||={});var mQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(mQ||={});function z6(A){return!!A?.[bQ]}class aE extends S${[bQ]=!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 EZ=oK.Config.create();EZ.setUseWebDefaults(!1);EZ.setPointScaleFactor(1);class DA 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,DA.renderablesByNumber.set(this.num,this),a$(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=oK.Node.create(EZ),this.yogaNode.setDisplay(this._visible?Mg.Flex:Mg.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?Mg.Flex:Mg.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(z6(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(fq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(fq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(fq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(fq(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(tK(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(tK(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(YQ(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Og(A.minWidth))q.setMinWidth(A.minWidth);if(Og(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(oj(A.flexDirection)),q.setFlexWrap(gU(A.flexWrap)),q.setAlignItems(rj(A.alignItems)),q.setJustifyContent(ej(A.justifyContent)),q.setAlignSelf(nj(A.alignSelf)),tK(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(tK(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(qU(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(AU(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(Og(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Og(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(xq(A.margin))q.setMargin(n.Top,A.margin),q.setMargin(n.Right,A.margin),q.setMargin(n.Bottom,A.margin),q.setMargin(n.Left,A.margin);if(xq(A.marginTop))q.setMargin(n.Top,A.marginTop);if(xq(A.marginRight))q.setMargin(n.Right,A.marginRight);if(xq(A.marginBottom))q.setMargin(n.Bottom,A.marginBottom);if(xq(A.marginLeft))q.setMargin(n.Left,A.marginLeft);if(Iq(A.padding))q.setPadding(n.Top,A.padding),q.setPadding(n.Right,A.padding),q.setPadding(n.Bottom,A.padding),q.setPadding(n.Left,A.padding);if(Iq(A.paddingTop))q.setPadding(n.Top,A.paddingTop);if(Iq(A.paddingRight))q.setPadding(n.Right,A.paddingRight);if(Iq(A.paddingBottom))q.setPadding(n.Bottom,A.paddingBottom);if(Iq(A.paddingLeft))q.setPadding(n.Left,A.paddingLeft)}set position(A){if(!h$(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(qU(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!z$(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(AU(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(fq(g))if(g==="auto")q.setPositionAuto(n.Top);else q.setPosition(n.Top,g);if(fq(E))if(E==="auto")q.setPositionAuto(n.Right);else q.setPosition(n.Right,E);if(fq(F))if(F==="auto")q.setPositionAuto(n.Bottom);else q.setPosition(n.Bottom,F);if(fq(K))if(K==="auto")q.setPositionAuto(n.Left);else q.setPosition(n.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(oj(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(gU(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(rj(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(ej(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(nj(A)),this.requestRender()}set flexBasis(A){if(YQ(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Og(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Og(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Og(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Og(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(xq(A)){let q=this.yogaNode;q.setMargin(n.Top,A),q.setMargin(n.Right,A),q.setMargin(n.Bottom,A),q.setMargin(n.Left,A),this.requestRender()}}set marginTop(A){if(xq(A))this.yogaNode.setMargin(n.Top,A),this.requestRender()}set marginRight(A){if(xq(A))this.yogaNode.setMargin(n.Right,A),this.requestRender()}set marginBottom(A){if(xq(A))this.yogaNode.setMargin(n.Bottom,A),this.requestRender()}set marginLeft(A){if(xq(A))this.yogaNode.setMargin(n.Left,A),this.requestRender()}set padding(A){if(Iq(A)){let q=this.yogaNode;q.setPadding(n.Top,A),q.setPadding(n.Right,A),q.setPadding(n.Bottom,A),q.setPadding(n.Left,A),this.requestRender()}}set paddingTop(A){if(Iq(A))this.yogaNode.setPadding(n.Top,A),this.requestRender()}set paddingRight(A){if(Iq(A))this.yogaNode.setPadding(n.Right,A),this.requestRender()}set paddingBottom(A){if(Iq(A))this.yogaNode.setPadding(n.Bottom,A),this.requestRender()}set paddingLeft(A){if(Iq(A))this.yogaNode.setPadding(n.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=_g.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=EU(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=EU(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(!z6(q))throw new 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(),DA.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 LU extends DA{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=oK.Node.create(EZ),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(gq.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,h6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var w$=Symbol.for("@opentui/core/VNode");function C$(A){return typeof A==="function"&&A.prototype&&DA.prototype.isPrototypeOf(A.prototype)}function fQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...fQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function cQ(A){return A&&A[w$]}function EU(A,q){if(z6(q))return q;if(cQ(q))return rK(A,q);return console.warn("maybeMakeRenderable received an invalid node",B$.inspect(q,{depth:2})),null}function FU(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 Y=U[Z];if(typeof Y==="function")return Y.bind(U);return Y}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let Y=E(q[Z]);if(Y)return Reflect.set(Y,Z,j)}return Reflect.set(K,Z,j,U)}})}function rK(A,q){if(z6(q))return q;if(!q||typeof q!=="object")throw new TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=fQ(g.children||[]),Z=g.__delegateMap;if(C$(E)){let Y=new E(A,F||{});for(let O of K)if(z6(O))Y.add(O);else{let $=rK(A,O);Y.add($)}let G=FU(Y,Z),M=g.__pendingCalls;if(M)for(let O of M)if(O.isProperty)G[O.method]=O.args[0];else G[O.method].apply(G,O.args);return G}let j=E(F||{},K),U=rK(A,j);return FU(U,Z)}class pQ extends v${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 KU extends b${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 PE={enter:"return",esc:"escape"};function RE(A,q){return{...A,...q}}function ug(A,q){let g=new Map;for(let E of A){let F=ig(E);g.set(F,E)}for(let E of q){let F=ig(E);g.set(F,E)}return Array.from(g.values())}function ig(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function lg(A,q){let g=new Map,E=q||{};for(let F of A){let K=ig(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=ig({...F,name:K});g.set(Z,F.action)}}return g}function m$(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 f$(){let q=new 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,Y=parseInt(F[4],10)||0;return{functionName:K,fullPath:Z,fileName:j,lineNumber:U,columnNumber:Y}}var Qq=tg("ConsoleCapture",()=>new pQ);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 uQ extends dQ{_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 KU("stdout",Qq),q=new KU("stderr",Qq);global.console=new k$({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?f$():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 pA=tg("TerminalConsoleCache",()=>{let A=new uQ;return process.on("exit",()=>{A.destroy()}),A}),lQ;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(lQ||={});var lj=[{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"}],c$={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:OA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:OA.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:OA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Jg=2;class VU extends dQ{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 (${m$(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={...c$,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,pA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=p(this.options.colorInfo),this._rgbaWarn=p(this.options.colorWarn),this._rgbaError=p(this.options.colorError),this._rgbaDebug=p(this.options.colorDebug),this._rgbaDefault=p(this.options.colorDefault),this.backgroundColor=p(this.options.backgroundColor),this._rgbaTitleBar=p(this.options.titleBarColor),this._rgbaTitleBarText=p(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=p(this.options.cursorColor),this._rgbaSelection=p(this.options.selectionColor),this._rgbaCopyButton=p(this.options.copyButtonColor),this._keyAliasMap=RE(PE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=ug(lj,this._keyBindings),this._keyBindingsMap=lg(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},pA.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(){pA.activate()}deactivate(){pA.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=ig({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}
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 G=Bun.stringWidth(q[U]);g+=G}break}}return A-E}create(A){if(this.destroyed)throw new 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 new 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 new 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 dQ(A,q){return new WU(A,q)}var oK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,gQ=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function ij(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function EQ(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${ij(A)}${ij(q)}${ij(g)}`;return"#000000"}function x$(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class NU{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?x$(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=(G)=>{if(F+=G.toString(),oK.lastIndex=0,oK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let G=this.activeListeners.findIndex((M)=>M.handler===K);if(G!==-1)this.activeListeners.splice(G,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,G=($)=>{Z+=$.toString(),j=Date.now();let _;oK.lastIndex=0;while(_=oK.exec(Z)){let N=parseInt(_[1],10);if(F.has(N))F.set(N,EQ(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((N)=>N!==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(O),U)clearTimeout(U);E.removeListener("data",G);let $=this.activeListeners.findIndex((x)=>x.handler===G);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(O);if(_!==-1)this.activeTimers.splice(_,1);if(U){let x=this.activeTimers.indexOf(U);if(x!==-1)this.activeTimers.splice(x,1)}},O=setTimeout(Y,q);this.activeTimers.push(O),E.on("data",G),this.activeListeners.push({event:"data",handler:G}),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 O;gQ.lastIndex=0;while(O=gQ.exec(K)){let _=parseInt(O[1],10);if(_ in E)E[_]=EQ(O[2],O[3],O[4],O[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){G(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{G(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{G(),F(E)},G=()=>{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 O=this.activeTimers.indexOf(Y);if(O!==-1)this.activeTimers.splice(O,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 pQ(A,q,g,E){return new NU(A,q,g,E)}function a$(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 $g{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 new 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(eK(q,0,A*4)),fg:new Float32Array(eK(g,0,A*4*4)),bg:new Float32Array(eK(E,0,A*4*4)),attributes:new Uint32Array(eK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${$g.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=Xq(),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 G=K*this._width+U,Y=A[G],M=OA.fromValues(q[G*4],q[G*4+1],q[G*4+2],q[G*4+3]),O=OA.fromValues(g[G*4],g[G*4+1],g[G*4+2],g[G*4+3]),$=E[G]&255,_=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(O)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:O,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=OA.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,G,Y;if(Z.bgColor)G=Z.bgColor,Y=Z.fgColor||E;else{let M=F||OA.fromValues(0,0,0,0);Y=M.a>0?M:OA.fromValues(0,0,0,1),G=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,G,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,KQ(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,KQ(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=jZ(A.borderStyle,"single"),g=A.customBorderChars??RQ[q],E=a$(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 C6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),new Error(q)}var wA=process.arch==="x64"||process.arch==="arm64"?8:4,ug={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:wA,i32:4},h$=Object.keys(ug);function AZ(A){return typeof A==="string"&&h$.includes(A)}var ZQ={...ug},z$={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)=>wA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function jQ(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function UQ(A,q){return A+(q-1)&~(q-1)}function GQ(A){throw new TypeError(`Invalid enum value: ${A}`)}function B$(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]??GQ(String(E))},from(E){return g[E]??GQ(String(E))},enum:A}}function YQ(A){return typeof A==="object"&&A.__type==="enum"}function sj(A){return typeof A==="object"&&A.__type==="struct"}function k6(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)=>{wA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=wA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:C6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:fA,unpack:z6}=k6("pointer");function w$(A){let q=new ArrayBuffer(A.length*wA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;fA(g,E*wA,K)}return g}var QQ=new TextEncoder,C$=new TextDecoder;function tq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[O,$,_={}]of A){if(_.condition&&!_.condition())continue;let x=0,N=0,L,P,k=!1,C=null;if(AZ($))x=ug[$],N=ZQ[$],{pack:L,unpack:P}=k6($);else if(typeof $==="string"&&$==="cstring")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r+"\x00")):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(typeof $==="string"&&$==="char*")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r)):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)},k=!0;else if(YQ($)){let a=$.type;x=ug[a],N=ZQ[a];let{pack:z}=k6(a);L=(r,c,gA)=>{let KA=$.to(gA);z(r,c,KA)},P=(r,c)=>{let gA=z$[a](r,c);return $.from(gA)}}else if(sj($))if(_.asPointer===!0)x=wA,N=wA,L=(a,z,r,c,gA)=>{if(!r){fA(a,z,null);return}let KA=$.pack(r,gA);fA(a,z,fg(KA))},P=(a,z)=>{throw new Error("Not implemented yet")};else x=$.size,N=$.align,L=(a,z,r,c,gA)=>{let KA=$.pack(r,gA),QA=new Uint8Array(KA);new Uint8Array(a.buffer).set(QA,z)},P=(a,z)=>{let r=a.buffer.slice(z,z+x);return $.unpack(r)};else if(jQ($))x=wA,N=wA,L=(a,z,r)=>{let c=r?.ptr??null;if(c===void 0)console.warn(`Field '${O}' expected object with '.ptr' property, but got undefined pointer value from:`,r),fA(a,z,null);else fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[a]=$;x=wA,N=wA;let z;if(YQ(a))z=ug[a.type],L=(c,gA,KA,QA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let RA=new ArrayBuffer(KA.length*z),mA=new DataView(RA);for(let SA=0;SA<KA.length;SA++){let Tq=a.to(KA[SA]);mA.setUint32(SA*z,Tq,!0)}fA(c,gA,fg(RA))},P=null,k=!0,C=a;else if(sj(a))z=a.size,L=(c,gA,KA,QA,RA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let mA=new ArrayBuffer(KA.length*z),SA=new DataView(mA);for(let Tq=0;Tq<KA.length;Tq++)a.packInto(KA[Tq],SA,Tq*z,RA);fA(c,gA,fg(mA))},P=(c,gA)=>{throw new Error("Not implemented yet")};else if(AZ(a)){z=ug[a];let{pack:c}=k6(a);L=(gA,KA,QA)=>{if(!QA||QA.length===0){fA(gA,KA,null);return}let RA=new ArrayBuffer(QA.length*z),mA=new DataView(RA);for(let SA=0;SA<QA.length;SA++)c(mA,SA*z,QA[SA]);fA(gA,KA,fg(RA))},P=null,k=!0,C=a}else if(jQ(a))z=wA,L=(c,gA,KA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let QA=w$(KA);fA(c,gA,fg(QA.buffer))},P=()=>{throw new Error("not implemented yet")};else throw new Error(`Unsupported array element type for ${O}: ${JSON.stringify(a)}`);let r=Object.values(K).find((c)=>c.lengthOf===O);if(r&&AZ(r.type)){let{pack:c}=k6(r.type);j[O]={elementSize:z,arrayOffset:g,lengthOffset:r.offset,lengthPack:c}}}else throw new Error(`Unsupported field type for ${O}: ${JSON.stringify($)}`);if(g=UQ(g,N),_.unpackTransform){let a=P;P=(z,r)=>_.unpackTransform(a(z,r))}if(_.packTransform){let a=L;L=(z,r,c,gA,KA)=>a(z,r,_.packTransform(c),gA,KA)}if(_.optional){let a=L;if(sj($)&&!_.asPointer)L=(z,r,c,gA,KA)=>{if(c||_.mapOptionalInline)a(z,r,c,gA,KA)};else L=(z,r,c,gA,KA)=>a(z,r,c??0,gA,KA)}if(_.lengthOf){let a=L;L=(z,r,c,gA,KA)=>{let QA=gA[_.lengthOf],RA=0;if(QA)if(typeof QA==="string")RA=Buffer.byteLength(QA);else RA=QA.length;return a(z,r,RA,gA,KA)}}let i;if(_.validate)i=Array.isArray(_.validate)?_.validate:[_.validate];let p={name:O,offset:g,size:x,align:N,validate:i,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:L,unpack:P,type:$,lengthOf:_.lengthOf};if(F.push(p),_.lengthOf)K[_.lengthOf]=p;if(k){let a=typeof $==="string"&&$==="char*"?"char*":C;if(!a)C6(`Internal error: needsLengthOf=true but def is null for ${O}`);Z.push({requester:p,def:a})}g+=x,E=Math.max(E,N)}for(let{requester:O,def:$}of Z){let _=K[O.name];if(!_){if($==="char*")continue;throw new Error(`lengthOf field not found for array field ${O.name}`)}if($==="char*")O.unpack=(x,N)=>{let L=z6(x,N),P=_.unpack(x,_.offset);if(L===0)return null;let k=typeof P==="bigint"?Number(P):P;if(k===0)return"";let C=tj(L,0,k);return C$.decode(C)};else if(AZ($)){let x=ug[$],{unpack:N}=k6($);O.unpack=(L,P)=>{let k=[],C=_.unpack(L,_.offset),i=z6(L,P);if(i===0n&&C>0)throw new Error(`Array field ${O.name} has null pointer but length ${C}.`);if(i===0n||C===0)return[];let p=tj(i,0,C*x),a=new DataView(p);for(let z=0;z<C;z++)k.push(N(a,z*x));return k}}else{let x=$.type==="u32"?4:8;O.unpack=(N,L)=>{let P=[],k=_.unpack(N,_.offset),C=z6(N,L);if(C===0n&&k>0)throw new Error(`Array field ${O.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let i=tj(C,0,k*x),p=new DataView(i);for(let a=0;a<k;a++)P.push($.from(p.getUint32(a*x,!0)));return P}}}let U=UQ(g,E),G=F.map((O)=>({name:O.name,offset:O.offset,size:O.size,align:O.align,optional:O.optional,type:O.type,lengthOf:O.lengthOf})),Y=new Map(G.map((O)=>[O.name,O])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(O,$){let _=new ArrayBuffer(U),x=new DataView(_),N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)C6(`Packing non-optional field '${L.name}' but value is undefined (and no default provided)`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:$?.validationHints,input:N});L.pack(x,L.offset,P,N,$)}return x.buffer},packInto(O,$,_,x){let N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)console.warn(`packInto missing value for non-optional field '${L.name}' at offset ${_+L.offset}. Writing default or zero.`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:x?.validationHints,input:N});L.pack($,_+L.offset,P,N,x)}},unpack(O){if(O.byteLength<U)C6(`Buffer size (${O.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(O),_=q?.default?{...q.default}:{};for(let x of F){if(!x.unpack)continue;try{_[x.name]=x.unpack($,x.offset)}catch(N){throw console.error(`Error unpacking field '${x.name}' at offset ${x.offset}:`,N),N}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(O,$){if(O.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*O.length),x=new DataView(_);for(let N=0;N<O.length;N++){let L=O[N];if(q?.mapValue)L=q.mapValue(O[N]);for(let P of F){let k=L[P.name]??P.default;if(!P.optional&&k===void 0)C6(`Packing non-optional field '${P.name}' at index ${N} but value is undefined (and no default provided)`);if(P.validate)for(let C of P.validate)C(k,P.name,{hints:$?.validationHints,input:L});P.pack(x,N*U+P.offset,k,L,$)}}return _},unpackList(O,$){if($===0)return[];let _=U*$;if(O.byteLength<_)C6(`Buffer size (${O.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let x=new DataView(O),N=[];for(let L=0;L<$;L++){let P=L*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(x,P+C.offset)}catch(i){throw console.error(`Error unpacking field '${C.name}' at index ${L}, offset ${P+C.offset}:`,i),i}}if(q?.reduceValue)N.push(q.reduceValue(k));else N.push(k)}return N},describe(){return G}}}var OQ=(A)=>A?k$(A.buffer):null,JQ=(A)=>A?OA.fromArray(new Float32Array(D$(A))):void 0,MQ=tq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["bg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["attributes","u32",{optional:!0}]]),qZ=tq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Iq=tq([["row","u32"],["col","u32"],["offset","u32"]]),Fq=tq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),y$=B$({wcwidth:0,unicode:1},"u8"),_Q=tq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",y$],["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"]]),$Q=tq([["width","u8"],["char","u32"]]),Og=tq([["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"]]),XQ=tq([["lineCount","u32"],["maxWidth","u32"]]),HQ=tq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),b$=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),BE=b$.default;if(vQ(BE))BE=BE.replace("../","");if(!R$(BE))throw new 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,B6=null,LQ=!1;function v$(A){let g=P$(A||BE,{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:m$(g.symbols)};return g}function m$(A){if(!cg)cg={};if(XA.OTUI_DEBUG_FFI&&!B6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;B6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&B6){let E=B6,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((G)=>String(G)).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),G=performance.now();return cg[E].push(G-j),U}}});if((XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)&&!LQ)LQ=!0,process.on("exit",()=>{try{if(B6)B6.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,i)=>C-i),G=U.length,Y=U.reduce((C,i)=>C+i,0),M=Y/G,O=U[0],$=U[G-1],_=Math.floor(G/2),x=Math.floor(G*0.9),N=Math.floor(G*0.99),L=U[_],P=U[Math.min(x,G-1)],k=U[Math.min(N,G-1)];E.push({name:Z,count:G,total:Y,average:M,min:O,max:$,median:L,p90:P,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 x=Math.max(6,...E.map((z)=>z.name.length)),N=Math.max(5,...E.map((z)=>String(z.count).length)),L=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),P=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)),i=Math.max(8,...E.map((z)=>z.median.toFixed(2).length)),p=Math.max(8,...E.map((z)=>z.p90.toFixed(2).length)),a=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(x)} | ${"Calls".padStart(N)} | ${"Total (ms)".padStart(L)} | ${"Avg (ms)".padStart(P)} | ${"Min (ms)".padStart(k)} | ${"Max (ms)".padStart(C)} | ${"Med (ms)".padStart(i)} | ${"P90 (ms)".padStart(p)} | ${"P99 (ms)".padStart(a)}`),F.push(`${"-".repeat(x)}-+-${"-".repeat(N)}-+-${"-".repeat(L)}-+-${"-".repeat(P)}-+-${"-".repeat(k)}-+-${"-".repeat(C)}-+-${"-".repeat(i)}-+-${"-".repeat(p)}-+-${"-".repeat(a)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(x)} | ${String(z.count).padStart(N)} | ${z.total.toFixed(2).padStart(L)} | ${z.average.toFixed(2).padStart(P)} | ${z.min.toFixed(2).padStart(k)} | ${z.max.toFixed(2).padStart(C)} | ${z.median.toFixed(2).padStart(i)} | ${z.p90.toFixed(2).padStart(p)} | ${z.p99.toFixed(2).padStart(a)}`)})}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 TU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new S$;_anyEventHandlers=[];constructor(A){this.opentui=v$(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new FQ((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=aE(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 new 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 FQ((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=aE(q,0,K),U=new Uint8Array(j),G=this.decoder.decode(U),Y;if(Z>0&&E)Y=aE(E,0,Z).slice();else Y=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(G,Y);for(let M of this._anyEventHandlers)M(G,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 new 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 new Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw new Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw new Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw new Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw new Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw new 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,G=K?K.buffer:null,Y=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,Y,G,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,G,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,G,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,G){let Y=G?this.encoder.encode(G):null,M=G?Y.length:0,O=G?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,O,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(HQ.size);this.opentui.symbols.getCursorState(A,qA(q));let g=HQ.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:OA.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(new 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 new Error(`Failed to create optimized buffer: ${A}x${q}`);return new $g(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,G=K??0,Y=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,G,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 new Error("Failed to create TextBuffer");return new YZ(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 new 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:BQ(K.attributes??0,Z)}}return K}),F=MQ.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 new 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(Og.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.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(XQ.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return XQ.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=qZ.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=qZ.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*qZ.size,Z=aE(E,0,K),j=qZ.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 new 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 new Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.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 new 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(Iq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Iq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw new 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(Iq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Iq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Iq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Iq.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 G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,G,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 G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,G,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(Fq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),Fq.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(Fq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),Fq.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(_Q.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=_Q.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),G=Number(j[0]),Y=Number(U[0]);if(Y===0)return{ptr:G,data:[]};let M=Y*$Q.size,O=aE(G,0,M),$=$Q.unpackList(O,Y);return{ptr:G,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 new 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=MQ.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 lQ,EZ;function Xq(){if(!EZ)try{EZ=new TU(lQ)}catch(A){throw new Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return EZ}try{EZ=new TU(lQ)}catch(A){}class YZ{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 Xq().createTextBuffer(A)}guard(){if(this._destroyed)throw new 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 new 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 c$(A,q){if(typeof q.width==="number"){if(q.width<0)throw new TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw new TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function m6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function xq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function Pq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}function cq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function d$(A){return A==="relative"||A==="absolute"}function p$(A){return A==="visible"||A==="hidden"||A==="scroll"}function gZ(A){return cq(A)}function VQ(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Jg(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}var iQ=Symbol.for("@opentui/core/Renderable"),tQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(tQ||={});var sQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(sQ||={});function y6(A){return!!A?.[iQ]}class bE extends f${[iQ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=bE.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 QZ=ZZ.Config.create();QZ.setUseWebDefaults(!1);QZ.setPointScaleFactor(1);class DA extends bE{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,DA.renderablesByNumber.set(this.num,this),c$(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=ZZ.Node.create(QZ),this.yogaNode.setDisplay(this._visible?_g.Flex:_g.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?_g.Flex:_g.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(y6(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(cq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(cq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(cq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(cq(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(gZ(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(gZ(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(VQ(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Jg(A.minWidth))q.setMinWidth(A.minWidth);if(Jg(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(gU(A.flexDirection)),q.setFlexWrap(ZU(A.flexWrap)),q.setAlignItems(qU(A.alignItems)),q.setJustifyContent(EU(A.justifyContent)),q.setAlignSelf(AU(A.alignSelf)),gZ(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(gZ(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(KU(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(FU(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(Jg(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Jg(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(xq(A.margin))q.setMargin(n.Top,A.margin),q.setMargin(n.Right,A.margin),q.setMargin(n.Bottom,A.margin),q.setMargin(n.Left,A.margin);if(xq(A.marginTop))q.setMargin(n.Top,A.marginTop);if(xq(A.marginRight))q.setMargin(n.Right,A.marginRight);if(xq(A.marginBottom))q.setMargin(n.Bottom,A.marginBottom);if(xq(A.marginLeft))q.setMargin(n.Left,A.marginLeft);if(Pq(A.padding))q.setPadding(n.Top,A.padding),q.setPadding(n.Right,A.padding),q.setPadding(n.Bottom,A.padding),q.setPadding(n.Left,A.padding);if(Pq(A.paddingTop))q.setPadding(n.Top,A.paddingTop);if(Pq(A.paddingRight))q.setPadding(n.Right,A.paddingRight);if(Pq(A.paddingBottom))q.setPadding(n.Bottom,A.paddingBottom);if(Pq(A.paddingLeft))q.setPadding(n.Left,A.paddingLeft)}set position(A){if(!d$(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(KU(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!p$(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(FU(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(cq(g))if(g==="auto")q.setPositionAuto(n.Top);else q.setPosition(n.Top,g);if(cq(E))if(E==="auto")q.setPositionAuto(n.Right);else q.setPosition(n.Right,E);if(cq(F))if(F==="auto")q.setPositionAuto(n.Bottom);else q.setPosition(n.Bottom,F);if(cq(K))if(K==="auto")q.setPositionAuto(n.Left);else q.setPosition(n.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(gU(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(ZU(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(qU(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(EU(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(AU(A)),this.requestRender()}set flexBasis(A){if(VQ(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Jg(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Jg(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Jg(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Jg(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(xq(A)){let q=this.yogaNode;q.setMargin(n.Top,A),q.setMargin(n.Right,A),q.setMargin(n.Bottom,A),q.setMargin(n.Left,A),this.requestRender()}}set marginTop(A){if(xq(A))this.yogaNode.setMargin(n.Top,A),this.requestRender()}set marginRight(A){if(xq(A))this.yogaNode.setMargin(n.Right,A),this.requestRender()}set marginBottom(A){if(xq(A))this.yogaNode.setMargin(n.Bottom,A),this.requestRender()}set marginLeft(A){if(xq(A))this.yogaNode.setMargin(n.Left,A),this.requestRender()}set padding(A){if(Pq(A)){let q=this.yogaNode;q.setPadding(n.Top,A),q.setPadding(n.Right,A),q.setPadding(n.Bottom,A),q.setPadding(n.Left,A),this.requestRender()}}set paddingTop(A){if(Pq(A))this.yogaNode.setPadding(n.Top,A),this.requestRender()}set paddingRight(A){if(Pq(A))this.yogaNode.setPadding(n.Right,A),this.requestRender()}set paddingBottom(A){if(Pq(A))this.yogaNode.setPadding(n.Bottom,A),this.requestRender()}set paddingLeft(A){if(Pq(A))this.yogaNode.setPadding(n.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=$g.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=jU(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=jU(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(!y6(q))throw new 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(),DA.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 IU extends DA{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=ZZ.Node.create(QZ),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(Kq.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,D6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var l$=Symbol.for("@opentui/core/VNode");function i$(A){return typeof A==="function"&&A.prototype&&DA.prototype.isPrototypeOf(A.prototype)}function nQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...nQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function rQ(A){return A&&A[l$]}function jU(A,q){if(y6(q))return q;if(rQ(q))return KZ(A,q);return console.warn("maybeMakeRenderable received an invalid node",u$.inspect(q,{depth:2})),null}function UU(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 G=U[Z];if(typeof G==="function")return G.bind(U);return G}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let G=E(q[Z]);if(G)return Reflect.set(G,Z,j)}return Reflect.set(K,Z,j,U)}})}function KZ(A,q){if(y6(q))return q;if(!q||typeof q!=="object")throw new TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=nQ(g.children||[]),Z=g.__delegateMap;if(i$(E)){let G=new E(A,F||{});for(let O of K)if(y6(O))G.add(O);else{let $=KZ(A,O);G.add($)}let Y=UU(G,Z),M=g.__pendingCalls;if(M)for(let O of M)if(O.isProperty)Y[O.method]=O.args[0];else Y[O.method].apply(Y,O.args);return Y}let j=E(F||{},K),U=KZ(A,j);return UU(U,Z)}class eQ extends o${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 GU extends r${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 kE={enter:"return",esc:"escape"};function DE(A,q){return{...A,...q}}function tg(A,q){let g=new Map;for(let E of A){let F=ng(E);g.set(F,E)}for(let E of q){let F=ng(E);g.set(F,E)}return Array.from(g.values())}function ng(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function sg(A,q){let g=new Map,E=q||{};for(let F of A){let K=ng(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=ng({...F,name:K});g.set(Z,F.action)}}return g}function e$(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 AX(){let q=new 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,G=parseInt(F[4],10)||0;return{functionName:K,fullPath:Z,fileName:j,lineNumber:U,columnNumber:G}}var Mq=rg("ConsoleCapture",()=>new eQ);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 AO extends oQ{_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 GU("stdout",Mq),q=new GU("stderr",Mq);global.console=new t$({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?AX():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 uA=rg("TerminalConsoleCache",()=>{let A=new AO;return process.on("exit",()=>{A.destroy()}),A}),qO;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(qO||={});var nj=[{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"}],qX={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:OA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:OA.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:OA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Mg=2;class xU extends oQ{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 (${e$(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={...qX,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,uA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=u(this.options.colorInfo),this._rgbaWarn=u(this.options.colorWarn),this._rgbaError=u(this.options.colorError),this._rgbaDebug=u(this.options.colorDebug),this._rgbaDefault=u(this.options.colorDefault),this.backgroundColor=u(this.options.backgroundColor),this._rgbaTitleBar=u(this.options.titleBarColor),this._rgbaTitleBarText=u(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=u(this.options.cursorColor),this._rgbaSelection=u(this.options.selectionColor),this._rgbaCopyButton=u(this.options.copyButtonColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},uA.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(){uA.activate()}deactivate(){uA.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=ng({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
16
  `+(g.stack?`${g.stack}
17
- `:"")}if(typeof q==="object"&&q!==null)try{return QQ.inspect(q,{depth:2})}catch(g){return String(q)}try{return QQ.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(){pA.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(),pA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=_g.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=pA.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(),pA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),pA.off("entry",this._entryListener)}getCachedLogs(){return pA.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(),O=OA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:O;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),Y=A.slice(j,U),G=1;for(let M=0;M<Y.length;M++){if(G>=this.consoleHeight)break;let O=Y[M],$=j+M,_=this._rgbaDefault;switch(O.level){case"INFO":_=this._rgbaInfo;break;case"WARN":_=this._rgbaWarn;break;case"ERROR":_=this._rgbaError;break;case"DEBUG":_=this._rgbaDebug;break}let x=O.indent?" ".repeat(Jg):"",T=O.text,V=this.consoleWidth-1-(O.indent?Jg:0);if(this.isFocused&&G-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,G,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,G,this._rgbaDefault,this.backgroundColor);let k=`${x}${T.substring(0,V)}`,C=this.getLineSelectionRange($);if(C){let i=Math.max(0,C.start),d=Math.min(k.length,C.end);if(i>0)this.frameBuffer.drawText(k.substring(0,i),1,G,_);if(i<d)this.frameBuffer.fillRect(1+i,G,d-i,1,this._rgbaSelection),this.frameBuffer.drawText(k.substring(i,d),1+i,G,_,this._rgbaSelection);if(d<k.length)this.frameBuffer.drawText(k.substring(d),1+d,G,_)}else this.frameBuffer.drawText(k,1,G,_);G++}}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,pA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=ug(lj,A),this._keyBindingsMap=lg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=RE(PE,A),this._mergedKeyBindings=ug(lj,this._keyBindings),this._keyBindingsMap=lg(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}]`:"")+" ",G=this.formatArguments(E).split(`
19
- `);for(let M=0;M<G.length;M++){let O=G[M],$=M===0,_=this.consoleWidth-1-($?0:Jg),x=$?U:" ".repeat(Jg),T=$?x+O:O,V=0;while(V<T.length||$&&V===0&&T.length===0){let P=T.substring(V,V+_),k=V===0;if(K.push({text:k&&!$?x+P:P,level:g,indent:!$||!k}),V+=_,$&&V===0&&T.length===0)break}}return K}_processCachedLogs(){let A=[...pA.cachedLogs];if(pA.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(Jg):"",K=this.consoleWidth-1-(E.indent?Jg: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(Jg):"",F=this.consoleWidth-1-(g.indent?Jg: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=y$.join(process.cwd(),q),E=[...this._allLogEntries,...pA.cachedLogs],F=[];for(let[Z,j,U,Y]of E){let G=this.formatTimestamp(Z),M=Y?`${Y.fileName}:${Y.lineNumber}`:"unknown",O=`[${G}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(O+$)}let K=F.join(`
21
- `);D$.writeFileSync(g,K,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}}var mq={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 WU(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,Y=g==="row",G=q,M=G.length;if(M===0)return[];let O=Y?j:K,$=Y?U:Z,_=0,x=M-1,T=-1;while(_<=x){let d=_+x>>1,a=G[d],z=Y?a.x:a.y;if((Y?a.x+a.width:a.y+a.height)<O)_=d+1;else if(z>$)x=d-1;else{T=d;break}}let V=[];if(T===-1)T=_>0?_-1:0;let P=50,k=T,C=0;while(k-1>=0){let d=G[k-1];if((Y?d.x+d.width:d.y+d.height)<=O){if(C++,C>=P)break}else C=0;k--}let i=T+1;while(i<M){let d=G[i];if((Y?d.x:d.y)>=$)break;i++}for(let d=k;d<i;d++){let a=G[d],z=Y?a.x:a.y;if((Y?a.x+a.width:a.y+a.height)<=O)continue;if(z>=$)break;if(Y){if(a.y+a.height<K)continue;if(a.y>Z)continue}else{if(a.x+a.width<j)continue;if(a.x>U)continue}V.push(a)}if(V.length>1)V.sort((d,a)=>d.zIndex>a.zIndex?1:d.zIndex<a.zIndex?-1:0);return V}function p$(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 u$(A){return/\x1b\[4;\d+;\d+t/.test(A)}function l$(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 iQ=1,i$=2,tQ=4,t$=8,s$=16;function sQ(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=iQ;if(A.alternateKeys!==!1)q|=tQ;if(A.events===!0)q|=i$;if(A.allKeysAsEscapes===!0)q|=t$;if(A.reportText===!0)q|=s$;return q}class kA{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 OQ=tg("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),t9("tree-sitter-client"))BQ().destroy(),i9("tree-sitter-client")}}}});async function NU(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=Mq(),j=Z.createRenderer(E,K);if(!j)throw new 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??{},Y=sQ(U);Z.setKittyKeyboardFlags(j,Y);let G=new FZ(Z,j,q,g,E,F,A);return await G.setupTerminal(),G}var rQ;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(rQ||={});var oQ;((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"})(oQ||={});class FZ extends d${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=OA.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 IE;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=Qq.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:
17
+ `:"")}if(typeof q==="object"&&q!==null)try{return WQ.inspect(q,{depth:2})}catch(g){return String(q)}try{return WQ.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(){uA.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(),uA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=$g.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=uA.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(),uA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),uA.off("entry",this._entryListener)}getCachedLogs(){return uA.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(),O=OA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:O;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),G=A.slice(j,U),Y=1;for(let M=0;M<G.length;M++){if(Y>=this.consoleHeight)break;let O=G[M],$=j+M,_=this._rgbaDefault;switch(O.level){case"INFO":_=this._rgbaInfo;break;case"WARN":_=this._rgbaWarn;break;case"ERROR":_=this._rgbaError;break;case"DEBUG":_=this._rgbaDebug;break}let x=O.indent?" ".repeat(Mg):"",N=O.text,L=this.consoleWidth-1-(O.indent?Mg: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=`${x}${N.substring(0,L)}`,C=this.getLineSelectionRange($);if(C){let i=Math.max(0,C.start),p=Math.min(k.length,C.end);if(i>0)this.frameBuffer.drawText(k.substring(0,i),1,Y,_);if(i<p)this.frameBuffer.fillRect(1+i,Y,p-i,1,this._rgbaSelection),this.frameBuffer.drawText(k.substring(i,p),1+i,Y,_,this._rgbaSelection);if(p<k.length)this.frameBuffer.drawText(k.substring(p),1+p,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,uA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=tg(nj,A),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=DE(kE,A),this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(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 O=Y[M],$=M===0,_=this.consoleWidth-1-($?0:Mg),x=$?U:" ".repeat(Mg),N=$?x+O:O,L=0;while(L<N.length||$&&L===0&&N.length===0){let P=N.substring(L,L+_),k=L===0;if(K.push({text:k&&!$?x+P:P,level:g,indent:!$||!k}),L+=_,$&&L===0&&N.length===0)break}}return K}_processCachedLogs(){let A=[...uA.cachedLogs];if(uA.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(Mg):"",K=this.consoleWidth-1-(E.indent?Mg: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(Mg):"",F=this.consoleWidth-1-(g.indent?Mg: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=n$.join(process.cwd(),q),E=[...this._allLogEntries,...uA.cachedLogs],F=[];for(let[Z,j,U,G]of E){let Y=this.formatTimestamp(Z),M=G?`${G.fileName}:${G.lineNumber}`:"unknown",O=`[${Y}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(O+$)}let K=F.join(`
21
+ `);s$.writeFileSync(g,K,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}}var fq={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 PU(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,G=g==="row",Y=q,M=Y.length;if(M===0)return[];let O=G?j:K,$=G?U:Z,_=0,x=M-1,N=-1;while(_<=x){let p=_+x>>1,a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<O)_=p+1;else if(z>$)x=p-1;else{N=p;break}}let L=[];if(N===-1)N=_>0?_-1:0;let P=50,k=N,C=0;while(k-1>=0){let p=Y[k-1];if((G?p.x+p.width:p.y+p.height)<=O){if(C++,C>=P)break}else C=0;k--}let i=N+1;while(i<M){let p=Y[i];if((G?p.x:p.y)>=$)break;i++}for(let p=k;p<i;p++){let a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<=O)continue;if(z>=$)break;if(G){if(a.y+a.height<K)continue;if(a.y>Z)continue}else{if(a.x+a.width<j)continue;if(a.x>U)continue}L.push(a)}if(L.length>1)L.sort((p,a)=>p.zIndex>a.zIndex?1:p.zIndex<a.zIndex?-1:0);return L}function EX(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 FX(A){return/\x1b\[4;\d+;\d+t/.test(A)}function KX(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 gO=1,ZX=2,EO=4,jX=8,UX=16;function FO(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=gO;if(A.alternateKeys!==!1)q|=EO;if(A.events===!0)q|=ZX;if(A.allKeysAsEscapes===!0)q|=jX;if(A.reportText===!0)q|=UX;return q}class kA{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 KO;((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"})(KO||={});var NQ=rg("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),j$("tree-sitter-client"))fQ().destroy(),Z$("tree-sitter-client")}}}});async function RU(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=Xq(),j=Z.createRenderer(E,K);if(!j)throw new 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??{},G=FO(U);Z.setKittyKeyboardFlags(j,G);let Y=new OZ(Z,j,q,g,E,F,A);return await Y.setupTerminal(),Y}var ZO;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(ZO||={});var jO;((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"})(jO||={});class OZ extends gX{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=OA.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 CE;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=Mq.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
22
  `),this.realStdoutWrite.call(this.stdout,q);if(g.length>0)this.realStdoutWrite.call(this.stdout,`
23
23
  Captured output:
24
24
  `),this.realStdoutWrite.call(this.stdout,g+`
25
- `);this.realStdoutWrite.call(this.stdout,mq.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(OQ.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)Qq.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 LU(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 UU(U),this._keyHandler.on("keypress",(G)=>{if(this.exitOnCtrlC&&G.name==="c"&&G.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new YU({timeout:5}),this._console=new VU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(G)=>{let M=FZ.animationFrameId++;return this.animationRequest.set(M,G),this.requestLive(),M},global.cancelAnimationFrame=(G)=>{this.animationRequest.delete(G)},!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?iQ|tQ: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,Qq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=mq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=mq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=mq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Qq.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(Qq.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(Qq.size===0&&!q)return!1;let g=Qq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=mq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=mq.moveCursor(K,1),j="";if(A>0){let U=this.backgroundColor.toInts(),Y=" ".repeat(this.width)+`
27
- `.repeat(A);if(U[3]===0)j=Y;else j=mq.setRgbBackground(U[0],U[1],U[2])+Y+mq.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(p$(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(u$(A)&&this.waitingForPixelResolution){let q=l$(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 kA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=DA.renderablesByNumber.get(Z);if(j){let U=new kA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=DA.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 kA(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 kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new kA(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 kA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new kA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new kA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new kA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new kA(this.capturedRenderable,q)),F){let j=new kA(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 kA(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=DA.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 kA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new kA(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=mq.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=p(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){Mq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Mq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Mq().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),Qq.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),OQ.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 G of F)G(g),this.dropLive();let j=performance.now()-K,U=performance.now();for(let G of this.frameCallbacks)try{await G(g)}catch(M){console.error("Error in frame callback:",M)}let Y=performance.now();this.renderStats.frameCallbackTime=Y-U,this.root.render(this.nextRenderBuffer,g);for(let G of this.postProcessFns)G(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let G=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,G,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(G);if(this._isRunning||this.immediateRerenderRequested){let M=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,O=Math.max(1,M-Math.floor(G));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},O)}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"),new 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 QU(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=DA.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=WU(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 new 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=kQ(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 n$}from"events";class hU{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Mq(),g=q.createTextBufferView(A.ptr);return new hU(q,g,A)}guard(){if(this._destroyed)throw new 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 sq extends n${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),sq.registry.set(this.id,this),sq.subscribeToNativeEvents(A)}static create(A){let q=Mq(),g=q.createEditBuffer(A);return new sq(q,g)}static subscribeToNativeEvents(A){if(sq.nativeEventsSubscribed)return;sq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=sq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw new 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,sq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class zU{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=Mq(),F=E.createEditorView(A.ptr,q,g);return new zU(E,F,A)}guard(){if(this._destroyed)throw new 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=CQ(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 r$(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=p(g.style.foreground);if(g.style.background)E.bg=p(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 kE{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=Mq(),q=A.createSyntaxStyle();return new kE(A,q)}static fromTheme(A){let q=kE.create(),g=r$(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=kE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw new Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=xE({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=xE({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 YO{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 uV=new YO;function w6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return B6(A)}class c extends DA{_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=p(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=eK(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=p(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=p(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?dg(this._customBorderCharsObj):void 0,this.borderSides=AZ(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=AZ(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?dg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=p(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=AZ(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=eK(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=p(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=p(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(n.Left,this.borderSides.left?1:0),A.setBorder(n.Right,this.borderSides.right?1:0),A.setBorder(n.Top,this.borderSides.top?1:0),A.setBorder(n.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(w6(A.gap))q.setGap(Jq.All,A.gap);if(w6(A.rowGap))q.setGap(Jq.Row,A.rowGap);if(w6(A.columnGap))q.setGap(Jq.Column,A.columnGap)}set gap(A){if(w6(A))this.yogaNode.setGap(Jq.All,A),this.requestRender()}set rowGap(A){if(w6(A))this.yogaNode.setGap(Jq.Row,A),this.requestRender()}set columnGap(A){if(w6(A))this.yogaNode.setGap(Jq.Column,A),this.requestRender()}}class QO extends DA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:OA.fromValues(1,1,1,1),bg:OA.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=p(q.fg??this._defaultOptions.fg),this._defaultBg=p(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?p(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?p(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?p(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=gZ.create(this._ctx.widthMethod),this.textBufferView=hU.create(this.textBuffer);let g=kE.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=p(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?p(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?p(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=p(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?p(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===uq.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,Y=j?Math.max(1,j.lineCount):1;if(g===uq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,Y)};return{width:U,height:Y}};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=OU(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 OO=Symbol.for("@opentui/core/TextNodeRenderable");function KZ(A){return!!A?.[OO]}function eQ(A){return A.chunks.map((q)=>{let g=new yE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class yE extends aE{[OO]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?p(A.fg):void 0,this._bg=A.bg?p(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(KZ(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(xQ(A)){let g=eQ(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 new 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||!KZ(q))throw new Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw new Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(KZ(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof SE){let E=eQ(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw new 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 new 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 yE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new yE(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)=>KZ(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=p(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=p(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 JO extends yE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class nq{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,Y=Z+j;if(g.maxEditLength!=null)Y=Math.min(Y,g.maxEditLength);let G=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+G,O=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(O[0],q,A,0,g);if(O[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(O[0].lastComponent,q,A));let _=-1/0,x=1/0,T=()=>{for(let V=Math.max(_,-U);V<=Math.min(x,U);V+=2){let P,k=O[V-1],C=O[V+1];if(k)O[V-1]=void 0;let i=!1;if(C){let a=C.oldPos-V;i=C&&0<=a&&a<Z}let d=k&&k.oldPos+1<j;if(!i&&!d){O[V]=void 0;continue}if(!d||i&&k.oldPos<C.oldPos)P=this.addToPath(C,!0,!1,0,g);else P=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(P,q,A,V,g),P.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(P.lastComponent,q,A))||!0;else{if(O[V]=P,P.oldPos+1>=j)x=Math.min(x,V-1);if($+1>=Z)_=Math.max(_,V+1)}}U++};if(E)(function V(){setTimeout(function(){if(U>Y||Date.now()>M)return E(void 0);if(!T())V()},0)})();else while(U<=Y&&Date.now()<=M){let V=T();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,Y=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,Y++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(Y&&!F.oneChangePerToken)A.lastComponent={count:Y,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 Y=E[Z];if(!Y.removed){if(!Y.added&&this.useLongestToken){let G=q.slice(j,j+Y.count);G=G.map(function(M,O){let $=g[U+O];return $.length>M.length?$:M}),Y.value=this.join(G)}else Y.value=this.join(q.slice(j,j+Y.count));if(j+=Y.count,!Y.added)U+=Y.count}else Y.value=this.join(g.slice(U,U+Y.count)),U+=Y.count}return E}}class MO extends nq{}var lV=new MO;function AO(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 qO(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 xU(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 IU(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 hE(A,q){return xU(A,q,"")}function ZZ(A,q){return IU(A,q,"")}function gO(A,q){return q.slice(0,o$(A,q))}function o$(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 zE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function $g(A){let q=A.match(/^\s*/);return q?q[0]:""}var UZ="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}",e$=new RegExp(`[${UZ}]+|\\s+|[^${UZ}]`,"ug");class _O extends nq{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 new Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(e$)||[];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)EO(g,F,E,K);g=K,E=null,F=null}}),E||F)EO(g,F,E,null);return A}}var iV=new _O;function EO(A,q,g,E){if(q&&g){let F=$g(q.value),K=zE(q.value),Z=$g(g.value),j=zE(g.value);if(A){let U=AO(F,Z);A.value=IU(A.value,Z,U),q.value=hE(q.value,U),g.value=hE(g.value,U)}if(E){let U=qO(K,j);E.value=xU(E.value,j,U),q.value=ZZ(q.value,U),g.value=ZZ(g.value,U)}}else if(g){if(A){let F=$g(g.value);g.value=g.value.substring(F.length)}if(E){let F=$g(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=$g(E.value),K=$g(q.value),Z=zE(q.value),j=AO(F,K);q.value=hE(q.value,j);let U=qO(hE(F,j),Z);q.value=ZZ(q.value,U),E.value=xU(E.value,F,U),A.value=IU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=$g(E.value),K=zE(q.value),Z=gO(K,F);q.value=ZZ(q.value,Z)}else if(A){let F=zE(A.value),K=$g(q.value),Z=gO(F,K);q.value=hE(q.value,Z)}}class $O extends nq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${UZ}]+|[^\\S\\n\\r]+|[^${UZ}]`,"ug");return A.match(q)||[]}}var tV=new $O;class XO extends nq{constructor(){super(...arguments);this.tokenize=HO}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
25
+ `);this.realStdoutWrite.call(this.stdout,fq.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(NQ.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)Mq.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 IU(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 OU(U),this._keyHandler.on("keypress",(Y)=>{if(this.exitOnCtrlC&&Y.name==="c"&&Y.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new _U({timeout:5}),this._console=new xU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(Y)=>{let M=OZ.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?gO|EO: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,Mq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=fq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Mq.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(Mq.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(Mq.size===0&&!q)return!1;let g=Mq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=fq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=fq.moveCursor(K,1),j="";if(A>0){let U=this.backgroundColor.toInts(),G=" ".repeat(this.width)+`
27
+ `.repeat(A);if(U[3]===0)j=G;else j=fq.setRgbBackground(U[0],U[1],U[2])+G+fq.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(EX(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(FX(A)&&this.waitingForPixelResolution){let q=KX(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 kA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=DA.renderablesByNumber.get(Z);if(j){let U=new kA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=DA.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 kA(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 kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new kA(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 kA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new kA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new kA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new kA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new kA(this.capturedRenderable,q)),F){let j=new kA(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 kA(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=DA.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 kA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new kA(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=fq.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=u(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){Xq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Xq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Xq().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),Mq.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),NQ.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 G=performance.now();this.renderStats.frameCallbackTime=G-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,O=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},O)}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"),new 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 $U(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=DA.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=PU(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 new 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=pQ(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 GX}from"events";class kU{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Xq(),g=q.createTextBufferView(A.ptr);return new kU(q,g,A)}guard(){if(this._destroyed)throw new 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 nq extends GX{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),nq.registry.set(this.id,this),nq.subscribeToNativeEvents(A)}static create(A){let q=Xq(),g=q.createEditBuffer(A);return new nq(q,g)}static subscribeToNativeEvents(A){if(nq.nativeEventsSubscribed)return;nq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=nq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw new 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,nq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class DU{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=Xq(),F=E.createEditorView(A.ptr,q,g);return new DU(E,F,A)}guard(){if(this._destroyed)throw new 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=dQ(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 YX(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=u(g.style.foreground);if(g.style.background)E.bg=u(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 pE{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=Xq(),q=A.createSyntaxStyle();return new pE(A,q)}static fromTheme(A){let q=pE.create(),g=YX(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=pE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw new 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 LO{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 FW=new LO;function f6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}class b extends DA{_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=u(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=jZ(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=u(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=u(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?lg(this._customBorderCharsObj):void 0,this.borderSides=UZ(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=UZ(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?lg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=u(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=UZ(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=jZ(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=u(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=u(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(n.Left,this.borderSides.left?1:0),A.setBorder(n.Right,this.borderSides.right?1:0),A.setBorder(n.Top,this.borderSides.top?1:0),A.setBorder(n.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(f6(A.gap))q.setGap($q.All,A.gap);if(f6(A.rowGap))q.setGap($q.Row,A.rowGap);if(f6(A.columnGap))q.setGap($q.Column,A.columnGap)}set gap(A){if(f6(A))this.yogaNode.setGap($q.All,A),this.requestRender()}set rowGap(A){if(f6(A))this.yogaNode.setGap($q.Row,A),this.requestRender()}set columnGap(A){if(f6(A))this.yogaNode.setGap($q.Column,A),this.requestRender()}}class VO extends DA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:OA.fromValues(1,1,1,1),bg:OA.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=u(q.fg??this._defaultOptions.fg),this._defaultBg=u(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(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?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=YZ.create(this._ctx.widthMethod),this.textBufferView=kU.create(this.textBuffer);let g=pE.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=u(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?u(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?u(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=u(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?u(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===lq.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,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};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=XU(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 WO=Symbol.for("@opentui/core/TextNodeRenderable");function JZ(A){return!!A?.[WO]}function UO(A){return A.chunks.map((q)=>{let g=new lE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class lE extends bE{[WO]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?u(A.fg):void 0,this._bg=A.bg?u(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(JZ(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(CQ(A)){let g=UO(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 new 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||!JZ(q))throw new Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw new Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(JZ(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof b6){let E=UO(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw new 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 new 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 lE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new lE(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)=>JZ(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=u(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=u(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 NO extends lE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class rq{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=(L)=>{if(L=this.postProcess(L,g),E){setTimeout(function(){E(L)},0);return}else return L},Z=q.length,j=A.length,U=1,G=Z+j;if(g.maxEditLength!=null)G=Math.min(G,g.maxEditLength);let Y=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+Y,O=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(O[0],q,A,0,g);if(O[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(O[0].lastComponent,q,A));let _=-1/0,x=1/0,N=()=>{for(let L=Math.max(_,-U);L<=Math.min(x,U);L+=2){let P,k=O[L-1],C=O[L+1];if(k)O[L-1]=void 0;let i=!1;if(C){let a=C.oldPos-L;i=C&&0<=a&&a<Z}let p=k&&k.oldPos+1<j;if(!i&&!p){O[L]=void 0;continue}if(!p||i&&k.oldPos<C.oldPos)P=this.addToPath(C,!0,!1,0,g);else P=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(P,q,A,L,g),P.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(P.lastComponent,q,A))||!0;else{if(O[L]=P,P.oldPos+1>=j)x=Math.min(x,L-1);if($+1>=Z)_=Math.max(_,L+1)}}U++};if(E)(function L(){setTimeout(function(){if(U>G||Date.now()>M)return E(void 0);if(!N())L()},0)})();else while(U<=G&&Date.now()<=M){let L=N();if(L)return L}}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,G=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,G++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(G&&!F.oneChangePerToken)A.lastComponent={count:G,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 G=E[Z];if(!G.removed){if(!G.added&&this.useLongestToken){let Y=q.slice(j,j+G.count);Y=Y.map(function(M,O){let $=g[U+O];return $.length>M.length?$:M}),G.value=this.join(Y)}else G.value=this.join(q.slice(j,j+G.count));if(j+=G.count,!G.added)U+=G.count}else G.value=this.join(g.slice(U,U+G.count)),U+=G.count}return E}}class TO extends rq{}var KW=new TO;function GO(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 YO(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 aU(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 hU(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 vE(A,q){return aU(A,q,"")}function MZ(A,q){return hU(A,q,"")}function QO(A,q){return q.slice(0,QX(A,q))}function QX(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 mE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function Hg(A){let q=A.match(/^\s*/);return q?q[0]:""}var $Z="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}",OX=new RegExp(`[${$Z}]+|\\s+|[^${$Z}]`,"ug");class IO extends rq{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 new Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(OX)||[];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)OO(g,F,E,K);g=K,E=null,F=null}}),E||F)OO(g,F,E,null);return A}}var ZW=new IO;function OO(A,q,g,E){if(q&&g){let F=Hg(q.value),K=mE(q.value),Z=Hg(g.value),j=mE(g.value);if(A){let U=GO(F,Z);A.value=hU(A.value,Z,U),q.value=vE(q.value,U),g.value=vE(g.value,U)}if(E){let U=YO(K,j);E.value=aU(E.value,j,U),q.value=MZ(q.value,U),g.value=MZ(g.value,U)}}else if(g){if(A){let F=Hg(g.value);g.value=g.value.substring(F.length)}if(E){let F=Hg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=Hg(E.value),K=Hg(q.value),Z=mE(q.value),j=GO(F,K);q.value=vE(q.value,j);let U=YO(vE(F,j),Z);q.value=MZ(q.value,U),E.value=aU(E.value,F,U),A.value=hU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=Hg(E.value),K=mE(q.value),Z=QO(K,F);q.value=MZ(q.value,Z)}else if(A){let F=mE(A.value),K=Hg(q.value),Z=QO(F,K);q.value=vE(q.value,Z)}}class xO extends rq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${$Z}]+|[^\\S\\n\\r]+|[^${$Z}]`,"ug");return A.match(q)||[]}}var jW=new xO;class PO extends rq{constructor(){super(...arguments);this.tokenize=RO}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
28
28
  `))A=A.trim();if(!g.newlineIsToken||!q.includes(`
29
29
  `))q=q.trim()}else if(g.ignoreNewlineAtEof&&!g.newlineIsToken){if(A.endsWith(`
30
30
  `))A=A.slice(0,-1);if(q.endsWith(`
31
- `))q=q.slice(0,-1)}return super.equals(A,q,g)}}var sV=new XO;function HO(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 AX(A){return A=="."||A=="!"||A=="?"}class LO extends nq{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(AX(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 nV=new LO;class VO extends nq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var rV=new VO;class WO extends nq{constructor(){super(...arguments);this.tokenize=HO}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K==="undefined"?g:K}=q;return typeof A==="string"?A:JSON.stringify(PU(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 oV=new WO;function PU(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=new Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=PU(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]=PU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class NO extends nq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var eV=new NO;class u extends QO{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?qZ(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new JO(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"?qZ(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 SE(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=qZ("");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 TO extends DA{_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:OA.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:OA.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=p(q.textColor??this._defaultOptions.textColor),this._backgroundColor=p(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?p(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?p(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=p(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?p(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=sq.create(this._ctx.widthMethod),this.editorView=zU.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=p(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?p(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?p(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=p(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=p(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?p(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=OU(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===uq.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,Y=j?Math.max(1,j.lineCount):1;if(g===uq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,Y)};return{width:U,height:Y}};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 TU=[{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 Rq extends TO{_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=Rq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=p(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=p(q.textColor||g.textColor),this._focusedBackgroundColor=p(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=p(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=p(q.placeholderColor??g.placeholderColor),this._keyAliasMap=RE(PE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=ug(TU,this._keyBindings);if(this._keyBindingsMap=lg(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=[IQ(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=ig({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=p(A??Rq.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=p(A??Rq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=p(A??Rq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=p(A??Rq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=p(A??Rq.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=ug(TU,A);this._keyBindingsMap=lg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=RE(PE,A);let q=ug(TU,this._keyBindings);this._keyBindingsMap=lg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var qX;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(qX||={});class OZ extends Rq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=OZ.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 BU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ng=BU();function xO(A){ng=A}var DE={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(cA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var gX=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),cA={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})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\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")},EX=/^(?:[ \t]*(?:\n|$))+/,FX=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,KX=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,bE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ZX=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,wU=/(?:[*+-]|\d{1,9}[.)])/,IO=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,PO=UA(IO).replace(/bull/g,wU).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(),jX=UA(IO).replace(/bull/g,wU).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(),CU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,UX=/^[^\n]+/,kU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,GX=UA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",kU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),YX=UA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,wU).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",DU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,QX=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",DU).replace("tag",JZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),RO=UA(CU).replace("hr",bE).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(),OX=UA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",RO).getRegex(),yU={blockquote:OX,code:FX,def:GX,fences:KX,heading:ZX,hr:bE,html:QX,lheading:PO,list:YX,newline:EX,paragraph:RO,table:DE,text:UX},FO=UA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",bE).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(),JX={...yU,lheading:jX,table:FO,paragraph:UA(CU).replace("hr",bE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",FO).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()},MX={...yU,html:UA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",DU).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:DE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:UA(CU).replace("hr",bE).replace("heading",` *#{1,6} *[^
33
- ]`).replace("lheading",PO).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_X=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,$X=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,SO=/^( {2,}|\\)\n(?!\s*$)/,XX=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,MZ=/[\p{P}\p{S}]/u,bU=/[\s\p{P}\p{S}]/u,aO=/[^\s\p{P}\p{S}]/u,HX=UA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,bU).getRegex(),hO=/(?!~)[\p{P}\p{S}]/u,LX=/(?!~)[\s\p{P}\p{S}]/u,VX=/(?:[^\s\p{P}\p{S}]|~)/u,WX=UA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",gX?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),zO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,NX=UA(zO,"u").replace(/punct/g,MZ).getRegex(),TX=UA(zO,"u").replace(/punct/g,hO).getRegex(),BO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",xX=UA(BO,"gu").replace(/notPunctSpace/g,aO).replace(/punctSpace/g,bU).replace(/punct/g,MZ).getRegex(),IX=UA(BO,"gu").replace(/notPunctSpace/g,VX).replace(/punctSpace/g,LX).replace(/punct/g,hO).getRegex(),PX=UA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,aO).replace(/punctSpace/g,bU).replace(/punct/g,MZ).getRegex(),RX=UA(/\\(punct)/,"gu").replace(/punct/g,MZ).getRegex(),SX=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(),aX=UA(DU).replace("(?:-->|$)","-->").getRegex(),hX=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",aX).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),GZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,zX=UA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",GZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),wO=UA(/^!?\[(label)\]\[(ref)\]/).replace("label",GZ).replace("ref",kU).getRegex(),CO=UA(/^!?\[(ref)\](?:\[\])?/).replace("ref",kU).getRegex(),BX=UA("reflink|nolink(?!\\()","g").replace("reflink",wO).replace("nolink",CO).getRegex(),KO=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,vU={_backpedal:DE,anyPunctuation:RX,autolink:SX,blockSkip:WX,br:SO,code:$X,del:DE,emStrongLDelim:NX,emStrongRDelimAst:xX,emStrongRDelimUnd:PX,escape:_X,link:zX,nolink:CO,punctuation:HX,reflink:wO,reflinkSearch:BX,tag:hX,text:XX,url:DE},wX={...vU,link:UA(/^!?\[(label)\]\((.*?)\)/).replace("label",GZ).getRegex(),reflink:UA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",GZ).getRegex()},RU={...vU,emStrongRDelimAst:IX,emStrongLDelim:TX,url:UA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",KO).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",KO).getRegex()},CX={...RU,br:UA(SO).replace("{2,}","*").getRegex(),text:UA(RU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},jZ={normal:yU,gfm:JX,pedantic:MX},BE={normal:vU,gfm:RU,breaks:CX,pedantic:wX},kX={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ZO=(A)=>kX[A];function tq(A,q){if(q){if(cA.escapeTest.test(A))return A.replace(cA.escapeReplace,ZO)}else if(cA.escapeTestNoEncode.test(A))return A.replace(cA.escapeReplaceNoEncode,ZO);return A}function jO(A){try{A=encodeURI(A).replace(cA.percentDecode,"%")}catch{return null}return A}function UO(A,q){let g=A.replace(cA.findPipe,(K,Z,j)=>{let U=!1,Y=Z;for(;--Y>=0&&j[Y]==="\\";)U=!U;return U?"|":" |"}),E=g.split(cA.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(cA.slashPipe,"|");return E}function wE(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 DX(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 GO(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 yX(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let F=E[1];return q.split(`
31
+ `))q=q.slice(0,-1)}return super.equals(A,q,g)}}var UW=new PO;function RO(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 JX(A){return A=="."||A=="!"||A=="?"}class SO extends rq{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(JX(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 GW=new SO;class aO extends rq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var YW=new aO;class hO extends rq{constructor(){super(...arguments);this.tokenize=RO}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K==="undefined"?g:K}=q;return typeof A==="string"?A:JSON.stringify(zU(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 QW=new hO;function zU(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=new Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=zU(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]=zU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class zO extends rq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var OW=new zO;class m extends VO{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?GZ(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new NO(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"?GZ(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 b6(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=GZ("");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 BO extends DA{_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:OA.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:OA.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=u(q.textColor??this._defaultOptions.textColor),this._backgroundColor=u(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(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=u(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=nq.create(this._ctx.widthMethod),this.editorView=DU.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=u(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?u(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?u(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=u(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=u(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?u(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=XU(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===lq.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,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};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 SU=[{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 Sq extends BO{_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=Sq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=u(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=u(q.textColor||g.textColor),this._focusedBackgroundColor=u(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=u(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=u(q.placeholderColor??g.placeholderColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=tg(SU,this._keyBindings);if(this._keyBindingsMap=sg(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=[v6(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=ng({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=u(A??Sq.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=u(A??Sq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=u(A??Sq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=u(A??Sq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=u(A??Sq.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=tg(SU,A);this._keyBindingsMap=sg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=DE(kE,A);let q=tg(SU,this._keyBindings);this._keyBindingsMap=sg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var MX;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(MX||={});class VZ extends Sq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=VZ.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 yU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var eg=yU();function wO(A){eg=A}var uE={exec:()=>null};function GA(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(dA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var _X=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),dA={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})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\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")},$X=/^(?:[ \t]*(?:\n|$))+/,XX=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,HX=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,iE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,LX=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,bU=/(?:[*+-]|\d{1,9}[.)])/,CO=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,kO=GA(CO).replace(/bull/g,bU).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(),VX=GA(CO).replace(/bull/g,bU).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(),vU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,WX=/^[^\n]+/,mU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,NX=GA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",mU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),TX=GA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,bU).getRegex(),WZ="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",fU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,IX=GA("^ {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",fU).replace("tag",WZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),DO=GA(vU).replace("hr",iE).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",WZ).getRegex(),xX=GA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",DO).getRegex(),cU={blockquote:xX,code:XX,def:NX,fences:HX,heading:LX,hr:iE,html:IX,lheading:kO,list:TX,newline:$X,paragraph:DO,table:uE,text:WX},JO=GA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",iE).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",WZ).getRegex(),PX={...cU,lheading:VX,table:JO,paragraph:GA(vU).replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",JO).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",WZ).getRegex()},RX={...cU,html:GA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",fU).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:uE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:GA(vU).replace("hr",iE).replace("heading",` *#{1,6} *[^
33
+ ]`).replace("lheading",kO).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},SX=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,aX=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yO=/^( {2,}|\\)\n(?!\s*$)/,hX=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,NZ=/[\p{P}\p{S}]/u,dU=/[\s\p{P}\p{S}]/u,bO=/[^\s\p{P}\p{S}]/u,zX=GA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,dU).getRegex(),vO=/(?!~)[\p{P}\p{S}]/u,BX=/(?!~)[\s\p{P}\p{S}]/u,wX=/(?:[^\s\p{P}\p{S}]|~)/u,CX=GA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",_X?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),mO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,kX=GA(mO,"u").replace(/punct/g,NZ).getRegex(),DX=GA(mO,"u").replace(/punct/g,vO).getRegex(),fO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",yX=GA(fO,"gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),bX=GA(fO,"gu").replace(/notPunctSpace/g,wX).replace(/punctSpace/g,BX).replace(/punct/g,vO).getRegex(),vX=GA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),mX=GA(/\\(punct)/,"gu").replace(/punct/g,NZ).getRegex(),fX=GA(/^<(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(),cX=GA(fU).replace("(?:-->|$)","-->").getRegex(),dX=GA("^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",cX).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),XZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,pX=GA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",XZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),cO=GA(/^!?\[(label)\]\[(ref)\]/).replace("label",XZ).replace("ref",mU).getRegex(),dO=GA(/^!?\[(ref)\](?:\[\])?/).replace("ref",mU).getRegex(),uX=GA("reflink|nolink(?!\\()","g").replace("reflink",cO).replace("nolink",dO).getRegex(),MO=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,pU={_backpedal:uE,anyPunctuation:mX,autolink:fX,blockSkip:CX,br:yO,code:aX,del:uE,emStrongLDelim:kX,emStrongRDelimAst:yX,emStrongRDelimUnd:vX,escape:SX,link:pX,nolink:dO,punctuation:zX,reflink:cO,reflinkSearch:uX,tag:dX,text:hX,url:uE},lX={...pU,link:GA(/^!?\[(label)\]\((.*?)\)/).replace("label",XZ).getRegex(),reflink:GA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",XZ).getRegex()},BU={...pU,emStrongRDelimAst:bX,emStrongLDelim:DX,url:GA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",MO).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:GA(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",MO).getRegex()},iX={...BU,br:GA(yO).replace("{2,}","*").getRegex(),text:GA(BU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},_Z={normal:cU,gfm:PX,pedantic:RX},fE={normal:pU,gfm:BU,breaks:iX,pedantic:lX},tX={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},_O=(A)=>tX[A];function sq(A,q){if(q){if(dA.escapeTest.test(A))return A.replace(dA.escapeReplace,_O)}else if(dA.escapeTestNoEncode.test(A))return A.replace(dA.escapeReplaceNoEncode,_O);return A}function $O(A){try{A=encodeURI(A).replace(dA.percentDecode,"%")}catch{return null}return A}function XO(A,q){let g=A.replace(dA.findPipe,(K,Z,j)=>{let U=!1,G=Z;for(;--G>=0&&j[G]==="\\";)U=!U;return U?"|":" |"}),E=g.split(dA.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(dA.slashPipe,"|");return E}function cE(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 sX(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 HO(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 nX(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let F=E[1];return q.split(`
34
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 YZ=class{options;rules;lexer;constructor(A){this.options=A||ng}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:wE(g,`
36
- `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=yX(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=wE(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:wE(q[0],`
37
- `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=wE(q[0],`
35
+ `)}var HZ=class{options;rules;lexer;constructor(A){this.options=A||eg}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:cE(g,`
36
+ `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=nX(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=cE(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:cE(q[0],`
37
+ `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=cE(q[0],`
38
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 Y=j.join(`
40
- `),G=Y.replace(this.rules.other.blockquoteSetextReplace,`
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 G=j.join(`
40
+ `),Y=G.replace(this.rules.other.blockquoteSetextReplace,`
41
41
  $1`).replace(this.rules.other.blockquoteSetextReplace2,"");E=E?`${E}
42
- ${Y}`:Y,F=F?`${F}
43
- ${G}`:G;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(G,K,!0),this.lexer.state.top=M,g.length===0)break;let O=K.at(-1);if(O?.type==="code")break;if(O?.type==="blockquote"){let $=O,_=$.raw+`
42
+ ${G}`:G,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 O=K.at(-1);if(O?.type==="code")break;if(O?.type==="blockquote"){let $=O,_=$.raw+`
44
44
  `+g.join(`
45
45
  `),x=this.blockquote(_);K[K.length-1]=x,E=E.substring(0,E.length-$.raw.length)+x.raw,F=F.substring(0,F.length-$.text.length)+x.text;break}else if(O?.type==="list"){let $=O,_=$.raw+`
46
46
  `+g.join(`
47
47
  `),x=this.list(_);K[K.length-1]=x,E=E.substring(0,E.length-O.raw.length)+x.raw,F=F.substring(0,F.length-$.raw.length)+x.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,Y="",G="";if(!(q=K.exec(A))||this.rules.block.hr.test(A))break;Y=q[0],A=A.substring(Y.length);let M=q[2].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,G="",Y="";if(!(q=K.exec(A))||this.rules.block.hr.test(A))break;G=q[0],A=A.substring(G.length);let M=q[2].split(`
49
49
  `,1)[0].replace(this.rules.other.listReplaceTabs,(x)=>" ".repeat(3*x.length)),O=A.split(`
50
- `,1)[0],$=!M.trim(),_=0;if(this.options.pedantic?(_=2,G=M.trimStart()):$?_=q[1].length+1:(_=q[2].search(this.rules.other.nonSpaceChar),_=_>4?1:_,G=M.slice(_),_+=q[1].length),$&&this.rules.other.blankLine.test(O)&&(Y+=O+`
51
- `,A=A.substring(O.length+1),U=!0),!U){let x=this.rules.other.nextBulletRegex(_),T=this.rules.other.hrRegex(_),V=this.rules.other.fencesBeginRegex(_),P=this.rules.other.headingBeginRegex(_),k=this.rules.other.htmlBeginRegex(_);for(;A;){let C=A.split(`
52
- `,1)[0],i;if(O=C,this.options.pedantic?(O=O.replace(this.rules.other.listReplaceNesting," "),i=O):i=O.replace(this.rules.other.tabCharGlobal," "),V.test(O)||P.test(O)||k.test(O)||x.test(O)||T.test(O))break;if(i.search(this.rules.other.nonSpaceChar)>=_||!O.trim())G+=`
53
- `+i.slice(_);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||V.test(M)||P.test(M)||T.test(M))break;G+=`
54
- `+O}!$&&!O.trim()&&($=!0),Y+=C+`
55
- `,A=A.substring(C.length+1),M=i.slice(_)}}F.loose||(Z?F.loose=!0:this.rules.other.doubleBlankLine.test(Y)&&(Z=!0)),F.items.push({type:"list_item",raw:Y,task:!!this.options.gfm&&this.rules.other.listIsTask.test(G),loose:!1,text:G,tokens:[]}),F.raw+=Y}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 G=this.lexer.inlineQueue.length-1;G>=0;G--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[G].src)){this.lexer.inlineQueue[G].src=this.lexer.inlineQueue[G].src.replace(this.rules.other.listReplaceTask,"");break}}let Y=this.rules.other.listTaskCheckbox.exec(U.raw);if(Y){let G={type:"checkbox",raw:Y[0]+" ",checked:Y[0]!=="[ ]"};U.checked=G.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=G.raw+U.tokens[0].raw,U.tokens[0].text=G.raw+U.tokens[0].text,U.tokens[0].tokens.unshift(G)):U.tokens.unshift({type:"paragraph",raw:G.raw,text:G.raw,tokens:[G]}):U.tokens.unshift(G)}}if(!F.loose){let Y=U.tokens.filter((M)=>M.type==="space"),G=Y.length>0&&Y.some((M)=>this.rules.other.anyLine.test(M.raw));F.loose=G}}if(F.loose)for(let U of F.items){U.loose=!0;for(let Y of U.tokens)Y.type==="text"&&(Y.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=UO(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(UO(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=wE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=DX(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)),GO(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 GO(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,Y=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(Y.lastIndex=0,q=q.slice(-1*A.length+F);(E=Y.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 G=[...E[0]][0].length,M=A.slice(0,F+E.index+G+Z);if(Math.min(F,Z)%2){let $=M.slice(1,-1);return{type:"em",raw:M,text:$,tokens:this.lexer.inlineTokens($)}}let O=M.slice(2,-2);return{type:"strong",raw:M,text:O,tokens:this.lexer.inlineTokens(O)}}}}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}}}},_q=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||ng,this.options.tokenizer=this.options.tokenizer||new YZ,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:cA,block:jZ.normal,inline:BE.normal};this.options.pedantic?(g.block=jZ.pedantic,g.inline=BE.pedantic):this.options.gfm&&(g.block=jZ.gfm,this.options.breaks?g.inline=BE.breaks:g.inline=BE.gfm),this.tokenizer.rules=g}static get rules(){return{block:jZ,inline:BE}}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(cA.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(cA.tabCharGlobal," ").replace(cA.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+=`
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(O)&&(G+=O+`
51
+ `,A=A.substring(O.length+1),U=!0),!U){let x=this.rules.other.nextBulletRegex(_),N=this.rules.other.hrRegex(_),L=this.rules.other.fencesBeginRegex(_),P=this.rules.other.headingBeginRegex(_),k=this.rules.other.htmlBeginRegex(_);for(;A;){let C=A.split(`
52
+ `,1)[0],i;if(O=C,this.options.pedantic?(O=O.replace(this.rules.other.listReplaceNesting," "),i=O):i=O.replace(this.rules.other.tabCharGlobal," "),L.test(O)||P.test(O)||k.test(O)||x.test(O)||N.test(O))break;if(i.search(this.rules.other.nonSpaceChar)>=_||!O.trim())Y+=`
53
+ `+i.slice(_);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||L.test(M)||P.test(M)||N.test(M))break;Y+=`
54
+ `+O}!$&&!O.trim()&&($=!0),G+=C+`
55
+ `,A=A.substring(C.length+1),M=i.slice(_)}}F.loose||(Z?F.loose=!0:this.rules.other.doubleBlankLine.test(G)&&(Z=!0)),F.items.push({type:"list_item",raw:G,task:!!this.options.gfm&&this.rules.other.listIsTask.test(Y),loose:!1,text:Y,tokens:[]}),F.raw+=G}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 G=this.rules.other.listTaskCheckbox.exec(U.raw);if(G){let Y={type:"checkbox",raw:G[0]+" ",checked:G[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 G=U.tokens.filter((M)=>M.type==="space"),Y=G.length>0&&G.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 G of U.tokens)G.type==="text"&&(G.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=XO(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(XO(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=cE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=sX(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)),HO(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 HO(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,G=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(G.lastIndex=0,q=q.slice(-1*A.length+F);(E=G.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 O=M.slice(2,-2);return{type:"strong",raw:M,text:O,tokens:this.lexer.inlineTokens(O)}}}}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}}}},Lq=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||eg,this.options.tokenizer=this.options.tokenizer||new HZ,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:dA,block:_Z.normal,inline:fE.normal};this.options.pedantic?(g.block=_Z.pedantic,g.inline=fE.pedantic):this.options.gfm&&(g.block=_Z.gfm,this.options.breaks?g.inline=fE.breaks:g.inline=fE.gfm),this.tokenizer.rules=g}static get rules(){return{block:_Z,inline:fE}}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(dA.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(dA.tabCharGlobal," ").replace(dA.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
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
60
  `)?"":`
61
61
  `)+F.raw,Z.text+=`
62
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
63
  `)?"":`
64
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((Y)=>{U=Y.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(`
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((G)=>{U=G.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
66
  `)?"":`
67
67
  `)+F.raw,Z.text+=`
68
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
69
  `)?"":`
70
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 new 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((G)=>(U=G.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 G=g.at(-1);U.type==="text"&&G?.type==="text"?(G.raw+=U.raw,G.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 Y=q;if(this.options.extensions?.startInline){let G=1/0,M=q.slice(1),O;this.options.extensions.startInline.forEach(($)=>{O=$.call({lexer:this},M),typeof O=="number"&&O>=0&&(G=Math.min(G,O))}),G<1/0&&G>=0&&(Y=q.substring(0,G+1))}if(U=this.tokenizer.inlineText(Y)){q=q.substring(U.raw.length),U.raw.slice(-1)!=="_"&&(j=U.raw.slice(-1)),Z=!0;let G=g.at(-1);G?.type==="text"?(G.raw+=U.raw,G.text+=U.text):g.push(U);continue}if(q){let G="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(G);break}else throw new Error(G)}}return g}},QZ=class{options;parser;constructor(A){this.options=A||ng}space(A){return""}code({text:A,lang:q,escaped:g}){let E=(q||"").match(cA.notSpaceStart)?.[0],F=A.replace(cA.endingNewline,"")+`
72
- `;return E?'<pre><code class="language-'+tq(E)+'">'+(g?F:tq(F,!0))+`</code></pre>
73
- `:"<pre><code>"+(g?F:tq(F,!0))+`</code></pre>
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 new 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 G=q;if(this.options.extensions?.startInline){let Y=1/0,M=q.slice(1),O;this.options.extensions.startInline.forEach(($)=>{O=$.call({lexer:this},M),typeof O=="number"&&O>=0&&(Y=Math.min(Y,O))}),Y<1/0&&Y>=0&&(G=q.substring(0,Y+1))}if(U=this.tokenizer.inlineText(G)){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 new Error(Y)}}return g}},LZ=class{options;parser;constructor(A){this.options=A||eg}space(A){return""}code({text:A,lang:q,escaped:g}){let E=(q||"").match(dA.notSpaceStart)?.[0],F=A.replace(dA.endingNewline,"")+`
72
+ `;return E?'<pre><code class="language-'+sq(E)+'">'+(g?F:sq(F,!0))+`</code></pre>
73
+ `:"<pre><code>"+(g?F:sq(F,!0))+`</code></pre>
74
74
  `}blockquote({tokens:A}){return`<blockquote>
75
75
  ${this.parser.parse(A)}</blockquote>
76
76
  `}html({text:A}){return A}def(A){return""}heading({tokens:A,depth:q}){return`<h${q}>${this.parser.parseInline(A)}</h${q}>
@@ -86,10 +86,10 @@ ${this.parser.parse(A)}</blockquote>
86
86
  `}tablerow({text:A}){return`<tr>
87
87
  ${A}</tr>
88
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>${tq(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=jO(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+tq(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=jO(A);if(F===null)return tq(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${tq(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:tq(A.text)}},mU=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||ng,this.options.renderer=this.options.renderer||new QZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new mU}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 new 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 new Error(j)}}}return E}},CE=class{options;block;constructor(A){this.options=A||ng}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?_q.lex:_q.lexInline}provideParser(){return this.block?$q.parse:$q.parseInline}},bX=class{defaults=BU();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=$q;Renderer=QZ;TextRenderer=mU;Lexer=_q;Tokenizer=YZ;Hooks=CE;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 new 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 new 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 QZ(this.defaults);for(let K in g.renderer){if(!(K in F))throw new Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Z=K,j=g.renderer[Z],U=F[Z];F[Z]=(...Y)=>{let G=j.apply(F,Y);return G===!1&&(G=U.apply(F,Y)),G||""}}E.renderer=F}if(g.tokenizer){let F=this.defaults.tokenizer||new YZ(this.defaults);for(let K in g.tokenizer){if(!(K in F))throw new 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]=(...Y)=>{let G=j.apply(F,Y);return G===!1&&(G=U.apply(F,Y)),G}}E.tokenizer=F}if(g.hooks){let F=this.defaults.hooks||new CE;for(let K in g.hooks){if(!(K in F))throw new Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Z=K,j=g.hooks[Z],U=F[Z];CE.passThroughHooks.has(K)?F[Z]=(Y)=>{if(this.defaults.async&&CE.passThroughHooksRespectAsync.has(K))return(async()=>{let M=await j.call(F,Y);return U.call(F,M)})();let G=j.call(F,Y);return U.call(F,G)}:F[Z]=(...Y)=>{if(this.defaults.async)return(async()=>{let M=await j.apply(F,Y);return M===!1&&(M=await U.apply(F,Y)),M})();let G=j.apply(F,Y);return G===!1&&(G=U.apply(F,Y)),G}}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 _q.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(new 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(new Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return K(new 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?_q.lex:_q.lexInline)(Z,F),U=F.hooks?await F.hooks.processAllTokens(j):j;F.walkTokens&&await Promise.all(this.walkTokens(U,F.walkTokens));let Y=await(F.hooks?await F.hooks.provideParser():A?$q.parse:$q.parseInline)(U,F);return F.hooks?await F.hooks.postprocess(Y):Y})().catch(K);try{F.hooks&&(q=F.hooks.preprocess(q));let Z=(F.hooks?F.hooks.provideLexer():A?_q.lex:_q.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>"+tq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},sg=new bX;function JA(A,q){return sg.parse(A,q)}JA.options=JA.setOptions=function(A){return sg.setOptions(A),JA.defaults=sg.defaults,xO(JA.defaults),JA};JA.getDefaults=BU;JA.defaults=ng;JA.use=function(...A){return sg.use(...A),JA.defaults=sg.defaults,xO(JA.defaults),JA};JA.walkTokens=function(A,q){return sg.walkTokens(A,q)};JA.parseInline=sg.parseInline;JA.Parser=$q;JA.parser=$q.parse;JA.Renderer=QZ;JA.TextRenderer=mU;JA.Lexer=_q;JA.lexer=_q.lex;JA.Tokenizer=YZ;JA.Hooks=CE;JA.parse=JA;var{options:AW,setOptions:qW,use:gW,walkTokens:EW,parseInline:FW}=JA,KW=$q.parse,ZW=_q.lex;var vX=OA.fromHex("#9a9ea3"),mX=OA.fromHex("#252527");class kO extends DA{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?p(q.backgroundColor):mX,this._foregroundColor=q.foregroundColor?p(q.foregroundColor):vX,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=p(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=p(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,Y=this.getVirtualThumbSize(),G=Math.max(0,K-Y),M=U-q;M=Math.max(0,Math.min(G,M));let O=G===0?0:M/G,$=this._max-this._min,_=this._min+O*$;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 Y=U*2,G=Y+2,M=Math.max(g,Y),$=Math.min(E,G)-M,_=" ";if($>=2)_="\u2588";else if(M===Y)_="\u258C";else _="\u2590";for(let x=0;x<this.height;x++)A.setCellWithAlphaBlending(this.x+U,this.y+x,_,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 Y=U*2,G=Y+2,M=Math.max(g,Y),$=Math.min(E,G)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-Y===0)_="\u2580";else _="\u2584";for(let x=0;x<this.width;x++)A.setCellWithAlphaBlending(this.x+x,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 SU extends DA{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 kO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(O)=>{this._scrollPosition=Math.round(O),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 Y=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new aU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...Y}),this.endArrow=new aU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...Y}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let G=void 0,M=void 0;this.startArrow.onMouseDown=(O)=>{O.stopPropagation(),O.preventDefault(),this.scrollBy(-0.5,"viewport"),G=setTimeout(()=>{this.scrollBy(-0.5,"viewport"),G=setInterval(()=>{this.scrollBy(-0.2,"viewport")},200)},500)},this.startArrow.onMouseUp=(O)=>{O.stopPropagation(),clearInterval(G)},this.endArrow.onMouseDown=(O)=>{O.stopPropagation(),O.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=(O)=>{O.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 aU extends DA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?p(q.foregroundColor):OA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?p(q.backgroundColor):OA.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=p(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=p(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 DO extends c{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 WU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class Xg extends c{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:Y,scrollX:G=!1,scrollY:M=!0,scrollAcceleration:O,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=Xg.idCounter++,this._stickyScroll=U,this._stickyStart=Y,this.scrollAccel=O??new GU,this.wrapper=new c(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new c(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 DO(A,this.viewport,$,{alignSelf:"flex-start",flexShrink:0,...G?{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 SU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(x)=>{if(this.content.translateY=-x,!this._isApplyingStickyScroll){let T=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&T>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new SU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(x)=>{if(this.content.translateX=-x,!this._isApplyingStickyScroll){let T=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&T>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),Y&&U)this.applyStickyStart(Y);this.selectionListener=()=>{let x=this._ctx.getSelection();if(!x||!x.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 fX;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(fX||={});var cX;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(cX||={});import{exec as I1}from"child_process";import{appendFileSync as dX,writeFileSync as pX}from"fs";import{join as uX}from"path";import{homedir as lX}from"os";var bO=uX(lX(),".config","hn-cli","debug.log"),yO=!1;function iX(){if(!yO)try{pX(bO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
91
- `),yO=!0}catch{}}function YA(...A){iX();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{dX(bO,`[${q}] ${g}
92
- `)}catch{}}async function tX(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw new Error("Failed to fetch top stories");return A.json()}function vO(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(vO).filter(Boolean)}}function mO(A,q){let g=A.comments.slice(0,12).map(vO).filter(Boolean);return{...A,comments:q?g:[]}}async function fO(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 mO(g,!0)}catch{return null}}async function cO(){let q=(await tX()).sort((G,M)=>M-G).slice(0,200),g=await Promise.all(q.map(async(G)=>{try{let M=await fetch(`https://api.hnpwa.com/v0/item/${G}.json`);if(!M.ok)return null;let O=await M.json();return mO(O,!1)}catch{return null}})),E=Date.now()/1000,F=E-86400;return g.filter((G)=>G!==null).filter((G)=>G.type==="link").filter((G)=>G.time>F).filter((G)=>(G.points||0)>=50||G.comments_count>=20).sort((G,M)=>{let O=(E-G.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-O/24)),x=Math.max(0,100*(1-$/24)),T=(G.points||0)+G.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+x-T}).slice(0,24)}import{homedir as sX}from"os";import{join as dO}from"path";import{existsSync as pO,mkdirSync as nX,readFileSync as rX,writeFileSync as oX}from"fs";var uO=[{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"}],lO=[{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"}],eX="claude-haiku-4-5-20251001",AH="gpt-5-nano-2025-08-07",_Z="claude-haiku-4-5-20251001",$Z="gpt-5-nano-2025-08-07",fU=dO(sX(),".config","hn-cli"),cU=dO(fU,"config.json");function Hg(){try{if(pO(cU)){let A=rX(cU,"utf-8");return JSON.parse(A)}}catch{}return{}}function vE(A){if(!pO(fU))nX(fU,{recursive:!0});oX(cU,JSON.stringify(A,null,2))}function Xq(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 iO(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=Hg();if(A.provider&&Xq(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function mE(A){let q=Hg();if(A==="anthropic")return q.anthropicModel||eX;else return q.openaiModel||AH}function tO(A,q){let g=Hg();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;vE(g)}function sO(){let A=Hg();delete A.anthropicApiKey,delete A.openaiApiKey,delete A.provider,vE(A)}var qH={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",textPrimary:"#e0e0e0",textSecondary:"#888888",textTertiary:"#666666",accent:"#ff6600",link:"#6699ff",success:"#4ade80",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},gH={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",textPrimary:"#1a1a1a",textSecondary:"#666666",textTertiary:"#888888",accent:"#ff6600",link:"#0066cc",success:"#22c55e",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},I={...qH};function EH(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}async function nO(A){try{let q=await A.getPalette({timeout:100});if(q.defaultBackground&&EH(q.defaultBackground))Object.assign(I,gH)}catch{}}function rO(A){return{0:I.accent,1:I.commentL1,2:I.commentL2,3:I.commentL3}[A]??I.commentL3}var Hq=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function oO(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}function Lg(A){return A.replace(/<\/p>\s*<p>/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>${sq(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=$O(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+sq(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=$O(A);if(F===null)return sq(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${sq(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:sq(A.text)}},uU=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}},Vq=class A{options;renderer;textRenderer;constructor(q){this.options=q||eg,this.options.renderer=this.options.renderer||new LZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new uU}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 new 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 new Error(j)}}}return E}},dE=class{options;block;constructor(A){this.options=A||eg}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?Lq.lex:Lq.lexInline}provideParser(){return this.block?Vq.parse:Vq.parseInline}},rX=class{defaults=yU();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vq;Renderer=LZ;TextRenderer=uU;Lexer=Lq;Tokenizer=HZ;Hooks=dE;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 new 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 new 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 LZ(this.defaults);for(let K in g.renderer){if(!(K in F))throw new Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Z=K,j=g.renderer[Z],U=F[Z];F[Z]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y||""}}E.renderer=F}if(g.tokenizer){let F=this.defaults.tokenizer||new HZ(this.defaults);for(let K in g.tokenizer){if(!(K in F))throw new 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]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y}}E.tokenizer=F}if(g.hooks){let F=this.defaults.hooks||new dE;for(let K in g.hooks){if(!(K in F))throw new Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Z=K,j=g.hooks[Z],U=F[Z];dE.passThroughHooks.has(K)?F[Z]=(G)=>{if(this.defaults.async&&dE.passThroughHooksRespectAsync.has(K))return(async()=>{let M=await j.call(F,G);return U.call(F,M)})();let Y=j.call(F,G);return U.call(F,Y)}:F[Z]=(...G)=>{if(this.defaults.async)return(async()=>{let M=await j.apply(F,G);return M===!1&&(M=await U.apply(F,G)),M})();let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),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 Lq.lex(A,q??this.defaults)}parser(A,q){return Vq.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(new 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(new Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return K(new 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?Lq.lex:Lq.lexInline)(Z,F),U=F.hooks?await F.hooks.processAllTokens(j):j;F.walkTokens&&await Promise.all(this.walkTokens(U,F.walkTokens));let G=await(F.hooks?await F.hooks.provideParser():A?Vq.parse:Vq.parseInline)(U,F);return F.hooks?await F.hooks.postprocess(G):G})().catch(K);try{F.hooks&&(q=F.hooks.preprocess(q));let Z=(F.hooks?F.hooks.provideLexer():A?Lq.lex:Lq.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?Vq.parse:Vq.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>"+sq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},og=new rX;function JA(A,q){return og.parse(A,q)}JA.options=JA.setOptions=function(A){return og.setOptions(A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.getDefaults=yU;JA.defaults=eg;JA.use=function(...A){return og.use(...A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.walkTokens=function(A,q){return og.walkTokens(A,q)};JA.parseInline=og.parseInline;JA.Parser=Vq;JA.parser=Vq.parse;JA.Renderer=LZ;JA.TextRenderer=uU;JA.Lexer=Lq;JA.lexer=Lq.lex;JA.Tokenizer=HZ;JA.Hooks=dE;JA.parse=JA;var{options:JW,setOptions:MW,use:_W,walkTokens:$W,parseInline:XW}=JA,HW=Vq.parse,LW=Lq.lex;var oX=OA.fromHex("#9a9ea3"),eX=OA.fromHex("#252527");class pO extends DA{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?u(q.backgroundColor):eX,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):oX,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=u(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=u(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,G=this.getVirtualThumbSize(),Y=Math.max(0,K-G),M=U-q;M=Math.max(0,Math.min(Y,M));let O=Y===0?0:M/Y,$=this._max-this._min,_=this._min+O*$;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 G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if(M===G)_="\u258C";else _="\u2590";for(let x=0;x<this.height;x++)A.setCellWithAlphaBlending(this.x+U,this.y+x,_,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 G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-G===0)_="\u2580";else _="\u2584";for(let x=0;x<this.width;x++)A.setCellWithAlphaBlending(this.x+x,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 wU extends DA{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 pO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(O)=>{this._scrollPosition=Math.round(O),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 G=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...G}),this.endArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...G}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let Y=void 0,M=void 0;this.startArrow.onMouseDown=(O)=>{O.stopPropagation(),O.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=(O)=>{O.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(O)=>{O.stopPropagation(),O.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=(O)=>{O.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 CU extends DA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):OA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?u(q.backgroundColor):OA.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=u(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=u(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 b{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 PU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class Lg extends b{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:G,scrollX:Y=!1,scrollY:M=!0,scrollAcceleration:O,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=Lg.idCounter++,this._stickyScroll=U,this._stickyStart=G,this.scrollAccel=O??new MU,this.wrapper=new b(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new b(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 wU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(x)=>{if(this.content.translateY=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new wU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(x)=>{if(this.content.translateX=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),G&&U)this.applyStickyStart(G);this.selectionListener=()=>{let x=this._ctx.getSelection();if(!x||!x.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 A4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(A4||={});var q4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(q4||={});import{exec as f1}from"child_process";import{appendFileSync as g4,writeFileSync as E4}from"fs";import{join as F4}from"path";import{homedir as K4}from"os";var iO=F4(K4(),".config","hn-cli","debug.log"),lO=!1;function Z4(){if(!lO)try{E4(iO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
91
+ `),lO=!0}catch{}}function FA(...A){Z4();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{g4(iO,`[${q}] ${g}
92
+ `)}catch{}}async function j4(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw new Error("Failed to fetch top stories");return A.json()}function tO(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(tO).filter(Boolean)}}function sO(A,q){let g=A.comments.slice(0,12).map(tO).filter(Boolean);return{...A,comments:q?g:[]}}async function nO(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 sO(g,!0)}catch{return null}}async function rO(){let q=(await j4()).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 O=await M.json();return sO(O,!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 O=(E-Y.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-O/24)),x=Math.max(0,100*(1-$/24)),N=(Y.points||0)+Y.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+x-N}).slice(0,24)}import{homedir as U4}from"os";import{join as oO}from"path";import{existsSync as eO,mkdirSync as G4,readFileSync as Y4,writeFileSync as Q4}from"fs";var AJ=[{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"}],qJ=[{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"}],O4="claude-haiku-4-5-20251001",J4="gpt-5-nano-2025-08-07",A6="claude-haiku-4-5-20251001",Vg="gpt-5-nano-2025-08-07",lU=oO(U4(),".config","hn-cli"),iU=oO(lU,"config.json");function gJ(A){if(!A.anthropicApiKey)delete A.anthropicModel;if(!A.openaiApiKey)delete A.openaiModel;if(A.provider){if(!(A.provider==="anthropic"?!!A.anthropicApiKey:!!A.openaiApiKey))delete A.provider}return A}function q6(){try{if(eO(iU)){let A=Y4(iU,"utf-8"),q=JSON.parse(A);return gJ(q)}}catch{}return{}}function tE(A){if(!eO(lU))G4(lU,{recursive:!0});let q=gJ(A);Q4(iU,JSON.stringify(q,null,2))}function lA(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=q6();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function Wg(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=q6();if(A.provider&&lA(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function EJ(){return Wg()!==void 0}function sE(A){let q=q6();if(A==="anthropic")return q.anthropicModel||O4;else return q.openaiModel||J4}function FJ(A,q){let g=q6();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;tE(g)}function KJ(){tE({})}var M4={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",textPrimary:"#e0e0e0",textSecondary:"#888888",textTertiary:"#666666",accent:"#ff6600",link:"#6699ff",success:"#4ade80",error:"#ef4444",hint:"#a855f7",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},_4={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",textPrimary:"#1a1a1a",textSecondary:"#666666",textTertiary:"#888888",accent:"#ff6600",link:"#0066cc",success:"#22c55e",error:"#dc2626",hint:"#9333ea",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},I={...M4};function $4(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}async function ZJ(A){try{let q=await A.getPalette({timeout:100});if(q.defaultBackground&&$4(q.defaultBackground))Object.assign(I,_4)}catch{}}function jJ(A){return{0:I.accent,1:I.commentL1,2:I.commentL2,3:I.commentL3}[A]??I.commentL3}var yA=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function UJ(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}function Ng(A){return A.replace(/<\/p>\s*<p>/g,`
93
93
 
94
94
  `).replace(/<p>/g,`
95
95
 
@@ -98,15 +98,15 @@ Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error
98
98
  `).replace(/<br\s*\/?>/g,`
99
99
  `).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,`
100
100
 
101
- `).trim()}var dU="0.2.0";var KH="https://registry.npmjs.org/@brianlovin/hn-cli/latest",eO="@brianlovin/hn-cli";function ZH(A,q){let g=A.split(".").map(Number),E=q.split(".").map(Number);for(let F=0;F<3;F++){let K=g[F]??0,Z=E[F]??0;if(Z>K)return!0;if(Z<K)return!1}return!1}async function AJ(){try{let A=new AbortController,q=setTimeout(()=>A.abort(),3000),g=await fetch(KH,{signal:A.signal,headers:{Accept:"application/json"}});if(clearTimeout(q),!g.ok)return null;let F=(await g.json()).version;if(!F)return null;return{hasUpdate:ZH(dU,F),currentVersion:dU,latestVersion:F}}catch{return null}}function pU(){if(process.versions.bun!==void 0)return`bun install -g ${eO}`;return`npm install -g ${eO}`}function qJ(A,q){let g=new c(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:1,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["bottom"],borderColor:I.border}),E=new c(A,{flexDirection:"row",alignItems:"center"}),F=new u(A,{content:"\u2206",fg:I.accent,width:2,paddingLeft:1});E.add(F);let K=new u(A,{content:"Hacker News",fg:I.accent});E.add(K),g.add(E);let Z=new c(A,{flexDirection:"row",gap:2,alignItems:"center"}),j=new u(A,{content:"",fg:I.textSecondary});Z.add(j);let U=new u(A,{content:"brianlovin/hn-cli",fg:I.textSecondary,onMouseDown:()=>{q.onOpenGitHub?.()},onMouseOver:()=>{U.fg=I.link},onMouseOut:()=>{U.fg=I.textSecondary}});Z.add(U);let Y=new c(A,{flexDirection:"row",alignItems:"center",gap:1}),G=new u(A,{content:"update available",fg:I.success}),M=new u(A,{content:"",fg:I.textSecondary});return Y.add(G),Y.add(M),g.add(Z),{header:g,state:{loadingIndicator:j,loadingInterval:null,loadingFrame:0,rightContainer:Z,githubLink:U,updateContainer:Y,updateLabel:G,updateCommand:M}}}function gJ(A,q){if(q?.hasUpdate){if(A.rightContainer.remove(A.githubLink.id),A.updateCommand.content=pU(),!A.rightContainer.getChildren().some((F)=>F.id===A.updateContainer.id))A.rightContainer.add(A.updateContainer)}else if(A.rightContainer.remove(A.updateContainer.id),!A.rightContainer.getChildren().some((F)=>F.id===A.githubLink.id))A.rightContainer.add(A.githubLink)}function EJ(A,q){if(A.loadingInterval)return;A.loadingFrame=0,A.loadingInterval=setInterval(()=>{if(A.loadingIndicator&&!q()){let g=Hq[A.loadingFrame]??"\u280B";A.loadingIndicator.content=g,A.loadingFrame=(A.loadingFrame+1)%Hq.length}},80)}function FJ(A){if(A.loadingInterval)clearInterval(A.loadingInterval),A.loadingInterval=null;if(A.loadingIndicator)A.loadingIndicator.content=""}var jH=80;function KJ(A,q,g,E,F){let K=new c(A,{id:`story-${q.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:I.bg,flexDirection:"row",onMouseDown:()=>{F.onSelect(g)}}),Z=new u(A,{id:`chevron-${q.id}`,content:E?"\u203A":"\u2022",fg:E?I.accent:I.textTertiary,width:2,paddingLeft:1});K.add(Z);let j=new c(A,{id:`content-${q.id}`,flexGrow:1,flexDirection:"column",paddingRight:2});K.add(j);let U=new u(A,{id:`title-${q.id}`,content:oO(q.title,jH),fg:E?I.accent:I.textPrimary,maxHeight:2});if(j.add(U),q.domain){let Y=new u(A,{id:`domain-${q.id}`,content:q.domain,fg:I.textSecondary});j.add(Y)}return K}function uU(A,q,g){let E=A.getChildren();if(E.length>=2){let F=E[0];if(F&&"content"in F)F.content=g?"\u203A":"\u2022",F.fg=g?I.accent:I.textTertiary;let Z=E[1].getChildren();if(Z.length>0){let j=Z[0];if(j&&"content"in j)j.fg=g?I.accent:I.textPrimary}}}function ZJ(A){let q=new c(A,{id:"story-list-panel",width:"35%",maxWidth:60,flexShrink:0,height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:I.border,backgroundColor:I.bg,paddingLeft:1}),g=new Xg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",backgroundColor:I.bg,gap:1}});return q.add(g),{panel:q,scroll:g,items:new Map}}function XZ(A,q,g,E,F){for(let K of q.scroll.getChildren())q.scroll.remove(K.id);q.items.clear(),g.forEach((K,Z)=>{let U=KJ(A,K,Z,Z===E,F);q.items.set(Z,U),q.scroll.add(U)})}function jJ(A,q,g,E){let F=A.items.get(g),K=q[g];if(F&&K)uU(F,K,!1);let Z=A.items.get(E),j=q[E];if(Z&&j)uU(Z,j,!0)}function UJ(A,q){let F=q*3,K=F+2,Z=A.scroll.height,j=A.scroll.scrollTop;if(F<j)A.scroll.scrollTop=F;else if(K>j+Z)A.scroll.scrollTop=K-Z}function lU(A,q){let g=q.level===0,E=rO(q.level),F=new c(A,{id:`comment-wrapper-${q.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(q.level>0){let j=new c(A,{width:q.level*2,flexShrink:0});F.add(j)}let K=new c(A,{id:`comment-${q.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:E,flexDirection:"column"}),Z=new u(A,{content:q.user||"[deleted]",fg:g?I.accent:I.textSecondary});if(K.add(Z),q.content){let j=new u(A,{content:Lg(q.content),fg:I.textPrimary,wrapMode:"word"});K.add(j)}else if(q.deleted){let j=new u(A,{content:"[deleted]",fg:I.textTertiary});K.add(j)}if(F.add(K),q.comments&&q.comments.length>0){let j=new c(A,{width:"100%",flexDirection:"column"});for(let Y of q.comments){let G=lU(A,Y);j.add(G)}let U=new c(A,{width:"100%",flexDirection:"column"});return U.add(F),U.add(j),U}return F}function HZ(A,q){let g=new c(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border,gap:2});for(let{key:E,desc:F}of q){let K=new c(A,{flexDirection:"row",gap:1}),Z=new u(A,{content:E,fg:I.accent}),j=new u(A,{content:F,fg:I.textSecondary});K.add(Z),K.add(j),g.add(K)}return g}var GJ=[{key:"j/k",desc:"stories"},{key:"\u2318j/k",desc:"comments"},{key:"o",desc:"open"},{key:"c",desc:"chat"}],YJ=[{key:"\u2318.",desc:"settings"},{key:"esc",desc:"close"}];function QJ(A,q,g){let E=new c(A,{width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new u(A,{content:q.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>g.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.link},onMouseOut:()=>{F.fg=I.textPrimary}});if(E.add(F),q.domain){let K=new u(A,{content:q.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>g.onOpenStoryUrl()});E.add(K)}return{container:E}}function OJ(A,q,g,E){for(let K of q.getChildren())q.remove(K.id);let F=new u(A,{content:g.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>E.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.link},onMouseOut:()=>{F.fg=I.textPrimary}});if(q.add(F),g.domain){let K=new u(A,{content:g.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>E.onOpenStoryUrl()});q.add(K)}}function JJ(A,q){let g=new c(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:I.bg}),E=new c(A,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new Xg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),K=new c(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});F.add(K);let Z=HZ(A,GJ);return{panel:g,header:E,scroll:F,content:K,shortcutsBar:Z,rootCommentBoxes:[]}}function LZ(A){if(!A.panel.getChildren().some((E)=>E.id===A.header.id))A.panel.add(A.header),A.panel.add(A.scroll),A.panel.add(A.shortcutsBar)}function fE(A,q,g,E){for(let Z of q.content.getChildren())q.content.remove(Z.id);if(q.rootCommentBoxes=[],OJ(A,q.header,g,E),g.content){let Z=new c(A,{width:"100%",marginBottom:1}),j=new u(A,{content:Lg(g.content),fg:I.textPrimary,wrapMode:"word"});Z.add(j),q.content.add(Z)}let F=new c(A,{width:"100%",flexDirection:"column"}),K=new u(A,{content:`${g.comments_count} comments`,fg:I.textSecondary});if(F.add(K),g.comments&&g.comments.length>0)for(let Z=0;Z<g.comments.length;Z++){let j=g.comments[Z];if(!j)continue;let U=lU(A,j);if(F.add(U),j.level===0)q.rootCommentBoxes.push(U)}else{let Z=new u(A,{content:"No comments yet...",fg:I.textSecondary});F.add(Z)}q.content.add(F),q.scroll.scrollTop=0}function iU(A,q){if(q<0||q>=A.rootCommentBoxes.length)return;let g=A.rootCommentBoxes[q];if(!g)return;let E=A.scroll.content,F=g.y-E.y;A.scroll.scrollTop=Math.max(0,F-1)}var VZ=30,UH="\u2588",GH="\u2591",MJ=6;function _J(A){let q=(VZ-1)*2,g=A%q,E=g<VZ?g:q-g,F=Math.floor(MJ/2),K=E-F,Z=E+F+MJ%2;K=Math.max(0,K),Z=Math.min(VZ,Z);let j="";for(let U=0;U<VZ;U++)j+=U>=K&&U<Z?UH:GH;return j}function $J(A){let q=new c(A,{width:"100%",height:"100%",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:I.bg}),g=new u(A,{content:"",fg:I.textSecondary}),E=new u(A,{content:"",fg:I.textSecondary,marginTop:2});return q.add(g),q.add(E),{container:q,progressBar:g,statusText:E,mode:"loading",frame:0,animationInterval:null}}function XJ(A,q,g){if(cE(A),A.mode=q,A.frame=0,q==="loading")A.progressBar.content=_J(0),A.statusText.content="",A.animationInterval=setInterval(()=>{if(g()){cE(A);return}A.frame++,A.progressBar.content=_J(A.frame)},40);else A.progressBar.content="",A.statusText.content="Press j/k to browse stories"}function cE(A){if(A.animationInterval)clearInterval(A.animationInterval),A.animationInterval=null}function HJ(A){return new c(A,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border})}function aA(A,q){if(!q.container)return;for(let Z of q.container.getChildren())q.container.remove(Z.id);let g=q.loading||q.suggestions.length>0,E=q.container;if(g)E.paddingTop=1,E.paddingBottom=1,E.border=["top"];else E.paddingTop=0,E.paddingBottom=0,E.border=[];if(q.loading){let Z=new u(A,{id:"suggestions-loading",content:`${Hq[q.loadingFrame]??"\u280B"} Generating suggestions...`,fg:I.textSecondary});q.container.add(Z);return}if(q.suggestions.length===0)return;let F=new u(A,{id:"suggestions-header",content:"\u2726 Suggested questions",fg:I.textTertiary});q.container.add(F);let K=new c(A,{id:"suggestions-spacer",height:1});q.container.add(K);for(let Z=0;Z<q.suggestions.length;Z++){let j=q.suggestions[Z];if(!j)continue;let U=Z===q.selectedIndex,Y=new c(A,{id:`suggestion-row-${Z}`,width:"100%",flexDirection:"row",backgroundColor:I.bg}),G=new u(A,{id:`suggestion-indicator-${Z}`,content:U?"\u203A ":"\u2022 ",fg:U?I.accent:I.textSecondary,width:2,flexShrink:0});Y.add(G);let M=new c(A,{id:`suggestion-text-container-${Z}`,flexGrow:1,flexDirection:"row",flexWrap:"wrap"}),O=new u(A,{id:`suggestion-text-${Z}`,content:j,fg:U?I.accent:I.textSecondary,wrapMode:"word"});if(M.add(O),U){let $=new u(A,{id:`suggestion-hint-${Z}`,content:" tab to type",fg:I.textTertiary});M.add($)}Y.add(M),q.container.add(Y)}}function LJ(A){return{container:A,suggestions:[],originalSuggestions:[],selectedIndex:-1,loading:!1,loadingFrame:0}}function VJ(A,q){let g=new c(A,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border}),E=new u(A,{content:"\u203A ",fg:I.accent});g.add(E);let F=new Rq(A,{width:"100%",flexGrow:1,height:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:I.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]});return F.on("submit",()=>{q.onSubmit()}),g.add(F),{container:g,input:F}}function WZ(A,q,g){let E=new Xg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),F=new c(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});E.add(F);let K=HJ(A),Z=LJ(K),j=VJ(A,{onSubmit:g.onSubmit}),U=HZ(A,YJ),Y=new c(A,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg}),{container:G}=QJ(A,q,{onOpenStoryUrl:g.onOpenStoryUrl});return Y.add(G),Y.add(E),Y.add(K),Y.add(j.container),Y.add(U),{panel:Y,scroll:E,content:F,input:j.input,suggestions:Z,messages:[],isActive:!0,isTyping:!1,typingFrame:0,typingInterval:null}}function Vg(A,q,g){if(!q.content)return;for(let F of q.content.getChildren())q.content.remove(F.id);let E=-1;for(let F=q.messages.length-1;F>=0;F--)if(q.messages[F]?.role==="user"){E=F;break}for(let F=0;F<q.messages.length;F++){let K=q.messages[F];if(!K)continue;let Z=F>=E&&E!==-1,j=new c(A,{width:"100%",flexDirection:"column",marginBottom:1}),U=new c(A,{flexDirection:"row",gap:1}),Y=K.role==="user"?I.accent:I.link,G=new u(A,{content:"\u2022",fg:Y});U.add(G);let M=g==="anthropic"?"Claude":"GPT",O=new u(A,{content:K.role==="user"?"You":M,fg:Y});U.add(O),j.add(U);let $=new c(A,{width:"100%",paddingLeft:2}),_=new u(A,{content:K.content,fg:Z?I.textPrimary:I.textSecondary,wrapMode:"word"});$.add(_),j.add($),q.content.add(j)}tU(q)}function tU(A){if(!A.scroll||!A.isActive)return;A.scroll.scrollTop=A.scroll.scrollHeight,setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},50),setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},150)}function dE(A,q,g,E,F){q.messages.push({role:g,content:E}),Vg(A,q,F)}function WJ(A,q,g){if(q.typingInterval)return;q.isTyping=!0,q.typingFrame=0,q.typingInterval=setInterval(()=>{if(!q.isActive||!q.isTyping){C6(q);return}q.typingFrame=(q.typingFrame+1)%Hq.length;let E=q.messages[q.messages.length-1];if(E&&E.role==="assistant"&&E.content==="..."){let F=Hq[q.typingFrame]??"\u280B";E.content=F,Vg(A,q,g),E.content="..."}},80)}function C6(A){if(A.isTyping=!1,A.typingInterval)clearInterval(A.typingInterval),A.typingInterval=null}function NZ(){return{step:"provider",selectedProvider:"anthropic",keyInput:null}}function NJ(A,q,g){let E=new c(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=new u(A,{content:"Set up AI Chat",fg:I.accent});if(E.add(F),E.add(new c(A,{height:1})),q.step==="provider")YH(A,E,q);else if(q.step==="key")QH(A,E,q,g);return E}function YH(A,q,g){let E=new u(A,{content:"Choose your AI provider:",fg:I.textPrimary});q.add(E),q.add(new c(A,{height:1}));let F=new c(A,{flexDirection:"row",gap:1}),K=new u(A,{content:g.selectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:g.selectedProvider==="anthropic"?I.accent:I.textSecondary}),Z=new u(A,{content:"Anthropic",fg:g.selectedProvider==="anthropic"?I.accent:I.textPrimary});F.add(K),F.add(Z),q.add(F);let j=new c(A,{flexDirection:"row",gap:1}),U=new u(A,{content:g.selectedProvider==="openai"?"\u25CF":"\u25CB",fg:g.selectedProvider==="openai"?I.accent:I.textSecondary}),Y=new u(A,{content:"OpenAI",fg:g.selectedProvider==="openai"?I.accent:I.textPrimary});j.add(U),j.add(Y),q.add(j),q.add(new c(A,{height:2}));let G=new u(A,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:I.textSecondary});q.add(G)}function QH(A,q,g,E){let F=g.selectedProvider==="anthropic"?"Anthropic":"OpenAI",K=new u(A,{content:`Enter your ${F} API key:`,fg:I.textPrimary});q.add(K),q.add(new c(A,{height:1}));let Z=new c(A,{width:"100%",flexDirection:"row",gap:1}),j=new u(A,{content:"\u203A",fg:I.accent});Z.add(j),g.keyInput=new OZ(A,{width:"100%",flexGrow:1,placeholder:g.selectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:I.bg}),g.keyInput.on("enter",()=>{let G=g.keyInput?.value.trim();if(G)E.onSaveKey(g.selectedProvider,G)}),Z.add(g.keyInput),q.add(Z),q.add(new c(A,{height:2}));let U=new u(A,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:I.textSecondary,wrapMode:"word"});q.add(U),q.add(new c(A,{height:2}));let Y=new u(A,{content:"Enter to save, Esc to cancel",fg:I.textSecondary});q.add(Y),setTimeout(()=>{if(g.keyInput)g.keyInput.focus(),g.keyInput.value=""},50)}function sU(A,q){if(A.step!=="provider")return;A.selectedProvider=q>0?"openai":"anthropic"}function TJ(A){if(A.step==="provider")A.step="key"}function xJ(){return{selectedIndex:0}}function nU(A){let q=!!Xq("anthropic"),g=!!Xq("openai"),E=A==="anthropic"?uO:lO,F=[];F.push({item:{type:"provider",provider:"anthropic",hasKey:q},enabled:!0}),F.push({item:{type:"provider",provider:"openai",hasKey:g},enabled:!0});for(let K of E)F.push({item:{type:"model",modelId:K.id,modelName:K.name},enabled:!0});if(F.push({item:{type:"action",action:"done"},enabled:!0}),q||g)F.push({item:{type:"action",action:"clear_keys"},enabled:!0});return F}function IJ(A,q,g){let E=new c(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=nU(g),K=mE(g),Z=new u(A,{content:"Settings",fg:I.accent});E.add(Z),E.add(new c(A,{height:1}));let j=new u(A,{content:"Provider",fg:I.textPrimary});E.add(j);for(let G=0;G<F.length;G++){let M=F[G];if(!M||M.item.type!=="provider")continue;let O=G===q.selectedIndex,$=M.item.provider===g,_=M.item.hasKey,x=M.item.provider==="anthropic"?"Anthropic":"OpenAI",T=new c(A,{flexDirection:"row",gap:1,paddingLeft:2}),V=new u(A,{content:O?"\u203A":" ",fg:I.accent});T.add(V);let P=new u(A,{content:$?"\u25CF":"\u25CB",fg:$?I.accent:I.textSecondary});T.add(P);let k=new u(A,{content:x,fg:O?I.accent:I.textPrimary});if(T.add(k),!_){let C=new u(A,{content:"Add API Key",fg:I.textSecondary});T.add(C)}E.add(T)}E.add(new c(A,{height:1}));let U=new u(A,{content:"Model",fg:I.textPrimary});E.add(U);for(let G=0;G<F.length;G++){let M=F[G];if(!M||M.item.type!=="model")continue;let O=G===q.selectedIndex,$=M.item.modelId===K,_=new c(A,{flexDirection:"row",gap:1,paddingLeft:2}),x=new u(A,{content:O?"\u203A":" ",fg:I.accent});_.add(x);let T=new u(A,{content:$?"\u25CF":"\u25CB",fg:$?I.accent:I.textSecondary});_.add(T);let V=new u(A,{content:M.item.modelName,fg:O?I.accent:I.textPrimary});_.add(V),E.add(_)}E.add(new c(A,{height:1}));for(let G=0;G<F.length;G++){let M=F[G];if(!M||M.item.type!=="action")continue;let O=G===q.selectedIndex,$="";switch(M.item.action){case"done":$="Done";break;case"clear_keys":$="Clear All API Keys";break}let _=new c(A,{flexDirection:"row",gap:1,paddingLeft:2}),x=new u(A,{content:O?"\u203A":" ",fg:I.accent});_.add(x);let T=new u(A,{content:`[${$}]`,fg:O?I.accent:I.textPrimary});_.add(T),E.add(_)}E.add(new c(A,{height:2}));let Y=new u(A,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:I.textSecondary});return E.add(Y),E}function rU(A,q,g){let F=nU(g).length-1;A.selectedIndex=Math.max(0,Math.min(F,A.selectedIndex+q))}function PJ(A,q){let E=nU(q)[A.selectedIndex];if(!E||!E.enabled)return null;switch(E.item.type){case"provider":if(!E.item.hasKey)return E.item.provider==="anthropic"?{type:"add_anthropic"}:{type:"add_openai"};if(E.item.provider!==q)return{type:"switch_provider",provider:E.item.provider};return null;case"model":return{type:"select_model",modelId:E.item.modelId,provider:q};case"action":switch(E.item.action){case"done":return{type:"done"};case"clear_keys":return{type:"clear_keys"}}}return null}function RJ(A){return!1}function v(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new 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 new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new 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 rq(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var pE=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new 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 new Error(JSON.stringify(A))}catch{}}return new Error(A)};class t extends Error{}class NA extends t{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 rg({message:g,cause:pE(q)});let F=q;if(A===400)return new lE(A,F,g,E);if(A===401)return new iE(A,F,g,E);if(A===403)return new tE(A,F,g,E);if(A===404)return new sE(A,F,g,E);if(A===409)return new nE(A,F,g,E);if(A===422)return new rE(A,F,g,E);if(A===429)return new oE(A,F,g,E);if(A>=500)return new eE(A,F,g,E);return new NA(A,F,g,E)}}class yA extends NA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class rg extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class uE extends rg{constructor({message:A}={}){super({message:A??"Request timed out."})}}class lE extends NA{}class iE extends NA{}class tE extends NA{}class sE extends NA{}class nE extends NA{}class rE extends NA{}class oE extends NA{}class eE extends NA{}var JH=/^[a-z][a-z0-9+.-]*:/i,SJ=(A)=>{return JH.test(A)},eU=(A)=>(eU=Array.isArray,eU(A)),AG=eU;function TZ(A){if(typeof A!=="object")return{};return A??{}}function aJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function hJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var zJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new t(`${A} must be an integer`);if(q<0)throw new t(`${A} must be a positive integer`);return q};var xZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var BJ=(A)=>new Promise((q)=>setTimeout(q,A));var Wg="0.71.2";var DJ=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function MH(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var _H=()=>{let A=MH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Wg,"X-Stainless-OS":CJ(Deno.build.os),"X-Stainless-Arch":wJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Wg,"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":Wg,"X-Stainless-OS":CJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":wJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=$H();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Wg,"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":Wg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function $H(){if(typeof navigator==="undefined"||!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 wJ=(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"},CJ=(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"},kJ,yJ=()=>{return kJ??(kJ=_H())};function bJ(){if(typeof fetch!=="undefined")return fetch;throw new 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 qG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function IZ(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 AF(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 vJ(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 mJ=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};function dJ(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 fJ;function qF(A){let q;return(fJ??(q=new globalThis.TextEncoder,fJ=q.encode.bind(q)))(A)}var cJ;function gG(A){let q;return(cJ??(q=new globalThis.TextDecoder,cJ=q.decode.bind(q)))(A)}var lA,iA;class Ng{constructor(){lA.set(this,void 0),iA.set(this,void 0),v(this,lA,new Uint8Array,"f"),v(this,iA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?qF(A):A;v(this,lA,dJ([N(this,lA,"f"),q]),"f");let g=[],E;while((E=LH(N(this,lA,"f"),N(this,iA,"f")))!=null){if(E.carriage&&N(this,iA,"f")==null){v(this,iA,E.index,"f");continue}if(N(this,iA,"f")!=null&&(E.index!==N(this,iA,"f")+1||E.carriage)){g.push(gG(N(this,lA,"f").subarray(0,N(this,iA,"f")-1))),v(this,lA,N(this,lA,"f").subarray(N(this,iA,"f")),"f"),v(this,iA,null,"f");continue}let F=N(this,iA,"f")!==null?E.preceding-1:E.preceding,K=gG(N(this,lA,"f").subarray(0,F));g.push(K),v(this,lA,N(this,lA,"f").subarray(E.index),"f"),v(this,iA,null,"f")}return g}flush(){if(!N(this,lA,"f").length)return[];return this.decode(`
102
- `)}}lA=new WeakMap,iA=new WeakMap;Ng.NEWLINE_CHARS=new Set([`
103
- `,"\r"]);Ng.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function LH(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 pJ(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 RZ={off:0,error:200,warn:300,info:400,debug:500},EG=(A,q,g)=>{if(!A)return;if(hJ(RZ,A))return A;hA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(RZ))}`);return};function gF(){}function PZ(A,q,g){if(!q||RZ[A]>RZ[g])return gF;else return q[A].bind(q)}var VH={error:gF,warn:gF,info:gF,debug:gF},uJ=new WeakMap;function hA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return VH;let E=uJ.get(q);if(E&&E[0]===g)return E[1];let F={error:PZ("error",q,g),warn:PZ("warn",q,g),info:PZ("info",q,g),debug:PZ("debug",q,g)};return uJ.set(q,[g,F]),F}var oq=(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 EF;class tA{constructor(A,q,g){this.iterator=A,EF.set(this,void 0),this.controller=q,v(this,EF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?hA(g):console;async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of WH(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,xZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(rq(j))return;throw j}finally{if(!Z)q.abort()}}return new tA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new Ng,j=AF(A);for await(let U of j)for(let Y of Z.decode(U))yield Y;for(let U of Z.flush())yield U}async function*K(){if(E)throw new t("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(rq(j))return;throw j}finally{if(!Z)q.abort()}}return new tA(K,q,g)}[(EF=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 tA(()=>E(A),this.controller,N(this,EF,"f")),new tA(()=>E(q),this.controller,N(this,EF,"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=qF(JSON.stringify(E)+`
104
- `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*WH(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("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 t("Attempted to iterate over a response with no body")}let g=new lJ,E=new Ng,F=AF(A.body);for await(let K of NH(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*NH(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"?qF(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=pJ(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class lJ{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(`
105
- `),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]=TH(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 TH(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 SZ(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);return tA.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 FG(M,g)}return await g.text()})();return hA(A).debug(`[${E}] response parsed`,oq({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function FG(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 FF;class og extends Promise{constructor(A,q,g=SZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,FF.set(this,void 0),v(this,FF,A,"f")}_thenUnwrap(A){return new og(N(this,FF,"f"),this.responsePromise,async(q,g)=>FG(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,FF,"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)}}FF=new WeakMap;var aZ;class KG{constructor(A,q,g,E){aZ.set(this,void 0),v(this,aZ,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 t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await N(this,aZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(aZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class hZ extends og{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await SZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Lq extends KG{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:{...TZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...TZ(this.options.query),after_id:A}}}}class KF extends KG{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:{...TZ(this.options.query),page:A}}}}var jG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new 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 eg(A,q,g){return jG(),new File(A,q??"unknown_file",g)}function ZF(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 UG=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var k6=async(A,q)=>{return{...A,body:await PH(A.body,q)}},iJ=new WeakMap;function IH(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 PH=async(A,q)=>{if(!await IH(q))throw new 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])=>ZG(g,E,F))),g},RH=(A)=>A instanceof Blob&&("name"in A);var ZG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new 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,eg([await g.blob()],ZF(g),E))}else if(UG(g))A.append(q,eg([await new Response(IZ(g)).blob()],ZF(g)));else if(RH(g))A.append(q,eg([g],ZF(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>ZG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>ZG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var tJ=(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",SH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&tJ(A),aH=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function zZ(A,q,g){if(jG(),A=await A,q||(q=ZF(A)),SH(A)){if(A instanceof File&&q==null&&g==null)return A;return eg([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(aH(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),eg(await GG(F),q,g)}let E=await GG(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 eg(E,q,g)}async function GG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(tJ(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(UG(A))for await(let g of A)q.push(...await GG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${hH(A)}`)}return q}function hH(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 sJ=Symbol.for("brand.privateNullableHeaders");function*BH(A){if(!A)return;if(sJ 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(AG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=AG(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 BH(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{[sJ]:!0,values:q,nulls:g}};function rJ(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var nJ=Object.freeze(Object.create(null)),wH=(A=rJ)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((G,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??nJ)??nJ)?.toString))_=$+"",K.push({start:G.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return G+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,Y;while((Y=U.exec(j))!==null)K.push({start:Y.index,length:Y[0].length,error:`Value "${Y[0]}" can't be safely passed as a path parameter`});if(K.sort((G,M)=>G.start-M.start),K.length>0){let G=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-G),x="^".repeat($.length);return G=$.start+$.length,O+_+x},"");throw new t(`Path parameters result in path with invalid segments:
101
+ `).trim()}var tU="0.3.0";var H4="https://registry.npmjs.org/@brianlovin/hn-cli/latest",GJ="@brianlovin/hn-cli";function L4(A,q){let g=A.split(".").map(Number),E=q.split(".").map(Number);for(let F=0;F<3;F++){let K=g[F]??0,Z=E[F]??0;if(Z>K)return!0;if(Z<K)return!1}return!1}async function YJ(){try{let A=new AbortController,q=setTimeout(()=>A.abort(),3000),g=await fetch(H4,{signal:A.signal,headers:{Accept:"application/json"}});if(clearTimeout(q),!g.ok)return null;let F=(await g.json()).version;if(!F)return null;return{hasUpdate:L4(tU,F),currentVersion:tU,latestVersion:F}}catch{return null}}function sU(){if(process.versions.bun!==void 0)return`bun install -g ${GJ}`;return`npm install -g ${GJ}`}function QJ(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:1,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["bottom"],borderColor:I.border}),E=new b(A,{flexDirection:"row",alignItems:"center"}),F=new m(A,{content:"\u25A0",fg:I.accent,width:2,paddingLeft:1});E.add(F);let K=new m(A,{content:"Hacker News",fg:I.accent});E.add(K),g.add(E);let Z=new b(A,{flexDirection:"row",gap:2,alignItems:"center"}),j=new m(A,{content:"",fg:I.textSecondary});Z.add(j);let U=new m(A,{content:"brianlovin/hn-cli",fg:I.textSecondary,onMouseDown:()=>{q.onOpenGitHub?.()},onMouseOver:()=>{U.fg=I.accent},onMouseOut:()=>{U.fg=I.textSecondary}});Z.add(U);let G=new b(A,{flexDirection:"row",alignItems:"center",gap:1}),Y=new m(A,{content:"update available",fg:I.success}),M=new m(A,{content:"",fg:I.textSecondary});return G.add(Y),G.add(M),g.add(Z),{header:g,state:{loadingIndicator:j,loadingInterval:null,loadingFrame:0,rightContainer:Z,githubLink:U,updateContainer:G,updateLabel:Y,updateCommand:M}}}function OJ(A,q){if(q?.hasUpdate){if(A.rightContainer.remove(A.githubLink.id),A.updateCommand.content=sU(),!A.rightContainer.getChildren().some((F)=>F.id===A.updateContainer.id))A.rightContainer.add(A.updateContainer)}else if(A.rightContainer.remove(A.updateContainer.id),!A.rightContainer.getChildren().some((F)=>F.id===A.githubLink.id))A.rightContainer.add(A.githubLink)}function JJ(A,q){if(A.loadingInterval)return;A.loadingFrame=0,A.loadingInterval=setInterval(()=>{if(A.loadingIndicator&&!q()){let g=yA[A.loadingFrame]??"\u280B";A.loadingIndicator.content=g,A.loadingFrame=(A.loadingFrame+1)%yA.length}},80)}function MJ(A){if(A.loadingInterval)clearInterval(A.loadingInterval),A.loadingInterval=null;if(A.loadingIndicator)A.loadingIndicator.content=""}var V4=80;function _J(A,q,g,E,F){let K=new b(A,{id:`story-${q.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:I.bg,flexDirection:"row",onMouseDown:()=>{F.onSelect(g)}}),Z=new m(A,{id:`chevron-${q.id}`,content:E?"\u203A":"\u2022",fg:E?I.accent:I.textTertiary,width:2,paddingLeft:1});K.add(Z);let j=new b(A,{id:`content-${q.id}`,flexGrow:1,flexDirection:"column",paddingRight:2});K.add(j);let U=new m(A,{id:`title-${q.id}`,content:UJ(q.title,V4),fg:E?I.accent:I.textPrimary,maxHeight:2});if(j.add(U),q.domain){let G=new m(A,{id:`domain-${q.id}`,content:q.domain,fg:I.textSecondary});j.add(G)}return K}function nU(A,q,g){let E=A.getChildren();if(E.length>=2){let F=E[0];if(F&&"content"in F)F.content=g?"\u203A":"\u2022",F.fg=g?I.accent:I.textTertiary;let Z=E[1].getChildren();if(Z.length>0){let j=Z[0];if(j&&"content"in j)j.fg=g?I.accent:I.textPrimary}}}function $J(A,q){let g=A.getChildren();if(g.length>=1){let E=g[0];if(E&&"content"in E)E.content=q}}function W4(A,q){return A.length===1&&q.length>0&&q.toLowerCase().startsWith(A.toLowerCase())}function c6(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border,gap:2}),E=q.filter((Z)=>!Z.rightAlign),F=q.filter((Z)=>Z.rightAlign),K=(Z)=>{let{key:j,desc:U}=Z;if(W4(j,U)){let G=U[0]??"",Y=new m(A,{content:Hq`${yE(v6(I.textPrimary)(G))}${U.slice(1)}`,fg:I.textSecondary});g.add(Y)}else{let G=new b(A,{flexDirection:"row",gap:1}),Y=new m(A,{content:j,fg:I.textPrimary}),M=new m(A,{content:U,fg:I.textSecondary});G.add(Y),G.add(M),g.add(G)}};for(let Z of E)K(Z);if(F.length>0){let Z=new b(A,{flexGrow:1});g.add(Z);for(let j of F)K(j)}return g}var XJ=[{key:"\u2423",desc:"next"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"s",desc:"settings",rightAlign:!0}],HJ=[{key:"j/k",desc:"navigate"}],LJ=[{key:"esc",desc:"close"}];function VJ(A){let q=new b(A,{id:"story-list-panel",width:"35%",maxWidth:60,flexShrink:0,height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:I.border,backgroundColor:I.bg,paddingLeft:1}),g=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",backgroundColor:I.bg,gap:1}}),E=c6(A,HJ);return q.add(g),q.add(E),{panel:q,scroll:g,shortcutsBar:E,items:new Map}}function TZ(A,q,g,E,F){for(let K of q.scroll.getChildren())q.scroll.remove(K.id);q.items.clear(),g.forEach((K,Z)=>{let U=_J(A,K,Z,Z===E,F);q.items.set(Z,U),q.scroll.add(U)})}function WJ(A,q,g,E){let F=A.items.get(g),K=q[g];if(F&&K)nU(F,K,!1);let Z=A.items.get(E),j=q[E];if(Z&&j)nU(Z,j,!0)}function NJ(A,q){let F=q*3,K=F+2,Z=A.scroll.height,j=A.scroll.scrollTop;if(F<j)A.scroll.scrollTop=F;else if(K>j+Z)A.scroll.scrollTop=K-Z}function rU(A,q,g){let E=A.items.get(q);if(E)$J(E,g)}function oU(A,q){let g=q.level===0,E=jJ(q.level),F=new b(A,{id:`comment-wrapper-${q.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(q.level>0){let j=new b(A,{width:q.level*2,flexShrink:0});F.add(j)}let K=new b(A,{id:`comment-${q.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:E,flexDirection:"column"}),Z=new m(A,{content:q.user||"[deleted]",fg:g?I.accent:I.textSecondary});if(K.add(Z),q.content){let j=new m(A,{content:Ng(q.content),fg:I.textPrimary,wrapMode:"word"});K.add(j)}else if(q.deleted){let j=new m(A,{content:"[deleted]",fg:I.textTertiary});K.add(j)}if(F.add(K),q.comments&&q.comments.length>0){let j=new b(A,{width:"100%",flexDirection:"column"});for(let G of q.comments){let Y=oU(A,G);j.add(Y)}let U=new b(A,{width:"100%",flexDirection:"column"});return U.add(F),U.add(j),U}return F}function TJ(A,q,g){let E=new b(A,{width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new m(A,{content:q.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>g.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(E.add(F),q.domain){let K=new m(A,{content:q.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>g.onOpenStoryUrl()});E.add(K)}return{container:E}}function IJ(A,q,g,E){for(let K of q.getChildren())q.remove(K.id);let F=new m(A,{content:g.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>E.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(q.add(F),g.domain){let K=new m(A,{content:g.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>E.onOpenStoryUrl()});q.add(K)}}function xJ(A,q){let g=new b(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:I.bg}),E=new b(A,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),K=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});F.add(K);let Z=c6(A,XJ);return{panel:g,header:E,scroll:F,content:K,shortcutsBar:Z,rootCommentBoxes:[]}}function IZ(A){if(!A.panel.getChildren().some((E)=>E.id===A.header.id))A.panel.add(A.header),A.panel.add(A.scroll),A.panel.add(A.shortcutsBar)}function g6(A,q,g,E,F){for(let G of q.content.getChildren())q.content.remove(G.id);if(q.rootCommentBoxes=[],IJ(A,q.header,g,E),g.content){let G=new b(A,{width:"100%",marginBottom:2}),Y=new m(A,{content:Ng(g.content),fg:I.textPrimary,wrapMode:"word"});G.add(Y),q.content.add(G)}if(F?.isLoading){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=F.loadingFrame??0,M=yA[Y%yA.length],O=new m(A,{content:`${M} Generating TLDR...`,fg:I.textTertiary});G.add(O),q.content.add(G)}else if(F?.hasError){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:"Failed to generate TLDR. Press t to retry.",fg:I.error});G.add(Y),q.content.add(G)}else if(F?.tldr){let G=new b(A,{width:"100%",flexDirection:"column",flexShrink:1,marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:Hq`${Xg("TL;DR")}`,fg:I.accent});G.add(Y);let M=new b(A,{height:1});G.add(M);let O=new m(A,{content:Hq`${Xg("Article summary")}`,fg:I.textSecondary});G.add(O);let $=new b(A,{flexGrow:1,flexShrink:1}),_=new m(A,{content:F.tldr.articleSummary,fg:I.textPrimary,wrapMode:"word"});$.add(_),G.add($);let x=new b(A,{height:1});G.add(x);let N=new m(A,{content:Hq`${Xg("Discussion summary")}`,fg:I.textSecondary});G.add(N);let L=new b(A,{flexGrow:1,flexShrink:1}),P=new m(A,{content:F.tldr.discussionSummary,fg:I.textPrimary,wrapMode:"word"});L.add(P),G.add(L);let k=new b(A,{height:1});G.add(k);let C=new m(A,{content:"c to continue chatting",fg:I.textTertiary});G.add(C),q.content.add(G)}let K=new b(A,{width:"100%",flexDirection:"column"}),Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:`${g.comments_count} comments`,fg:I.textSecondary});Z.add(j);let U=new m(A,{content:Hq` \u00B7 ${yE(v6(I.textPrimary)("t"))}ldr`,fg:I.textTertiary});if(Z.add(U),K.add(Z),g.comments&&g.comments.length>0)for(let G=0;G<g.comments.length;G++){let Y=g.comments[G];if(!Y)continue;let M=oU(A,Y);if(K.add(M),Y.level===0)q.rootCommentBoxes.push(M)}else{let G=new m(A,{content:"No comments yet...",fg:I.textSecondary});K.add(G)}q.content.add(K),q.scroll.scrollTop=0}function eU(A,q){if(q<0||q>=A.rootCommentBoxes.length)return;let g=A.rootCommentBoxes[q];if(!g)return;let E=A.scroll.content,F=g.y-E.y;A.scroll.scrollTop=Math.max(0,F-1)}var xZ=30,N4="\u2588",T4="\u2591",PJ=6;function RJ(A){let q=(xZ-1)*2,g=A%q,E=g<xZ?g:q-g,F=Math.floor(PJ/2),K=E-F,Z=E+F+PJ%2;K=Math.max(0,K),Z=Math.min(xZ,Z);let j="";for(let U=0;U<xZ;U++)j+=U>=K&&U<Z?N4:T4;return j}function SJ(A){let q=new b(A,{width:"100%",height:"100%",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:I.bg}),g=new m(A,{content:"",fg:I.textSecondary}),E=new m(A,{content:"",fg:I.textSecondary,marginTop:2});return q.add(g),q.add(E),{container:q,progressBar:g,statusText:E,mode:"loading",frame:0,animationInterval:null}}function aJ(A,q,g){if(nE(A),A.mode=q,A.frame=0,q==="loading")A.progressBar.content=RJ(0),A.statusText.content="",A.animationInterval=setInterval(()=>{if(g()){nE(A);return}A.frame++,A.progressBar.content=RJ(A.frame)},40);else A.progressBar.content="",A.statusText.content="Press j/k to browse stories"}function nE(A){if(A.animationInterval)clearInterval(A.animationInterval),A.animationInterval=null}function hJ(A){return new b(A,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border})}function aA(A,q){if(!q.container)return;for(let Z of q.container.getChildren())q.container.remove(Z.id);let g=q.loading||q.suggestions.length>0,E=q.container;if(g)E.paddingTop=1,E.paddingBottom=1,E.border=["top"];else E.paddingTop=0,E.paddingBottom=0,E.border=[];if(q.loading){let Z=new m(A,{id:"suggestions-loading",content:`${yA[q.loadingFrame]??"\u280B"} Generating suggestions...`,fg:I.textSecondary});q.container.add(Z);return}if(q.suggestions.length===0)return;let F=new m(A,{id:"suggestions-header",content:"\u2726 Suggested questions",fg:I.textTertiary});q.container.add(F);let K=new b(A,{id:"suggestions-spacer",height:1});q.container.add(K);for(let Z=0;Z<q.suggestions.length;Z++){let j=q.suggestions[Z];if(!j)continue;let U=Z===q.selectedIndex,G=new b(A,{id:`suggestion-row-${Z}`,width:"100%",flexDirection:"row",backgroundColor:I.bg}),Y=new m(A,{id:`suggestion-indicator-${Z}`,content:U?"\u203A ":"\u2022 ",fg:U?I.accent:I.textSecondary,width:2,flexShrink:0});G.add(Y);let M=new b(A,{id:`suggestion-text-container-${Z}`,flexGrow:1,flexDirection:"row",flexWrap:"wrap"}),O=new m(A,{id:`suggestion-text-${Z}`,content:j,fg:U?I.accent:I.textSecondary,wrapMode:"word"});if(M.add(O),U){let $=new m(A,{id:`suggestion-hint-${Z}`,content:" tab to type",fg:I.textTertiary});M.add($)}G.add(M),q.container.add(G)}}function zJ(A){return{container:A,suggestions:[],originalSuggestions:[],selectedIndex:-1,loading:!1,loadingFrame:0}}function BJ(A,q){let g=new b(A,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border}),E=new m(A,{content:"\u203A ",fg:I.accent});g.add(E);let F=new Sq(A,{width:"100%",flexGrow:1,height:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:I.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]});return F.on("submit",()=>{q.onSubmit()}),g.add(F),{container:g,input:F}}function PZ(A,q,g){let E=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),F=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});E.add(F);let K=hJ(A),Z=zJ(K),j=BJ(A,{onSubmit:g.onSubmit}),U=c6(A,LJ),G=new b(A,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg}),{container:Y}=TJ(A,q,{onOpenStoryUrl:g.onOpenStoryUrl});return G.add(Y),G.add(E),G.add(K),G.add(j.container),G.add(U),{panel:G,scroll:E,content:F,input:j.input,suggestions:Z,messages:[],isActive:!0,isTyping:!1,typingFrame:0,typingInterval:null}}function Tg(A,q,g){if(!q.content)return;for(let F of q.content.getChildren())q.content.remove(F.id);let E=-1;for(let F=q.messages.length-1;F>=0;F--)if(q.messages[F]?.role==="user"){E=F;break}for(let F=0;F<q.messages.length;F++){let K=q.messages[F];if(!K)continue;let Z=F>=E&&E!==-1,j=new b(A,{width:"100%",flexDirection:"column",marginBottom:1}),U=new b(A,{flexDirection:"row",gap:1}),G=K.role==="user"?I.accent:I.link,Y=new m(A,{content:"\u2022",fg:G});U.add(Y);let M=g==="anthropic"?"Claude":"GPT",O=new m(A,{content:K.role==="user"?"You":M,fg:G});U.add(O),j.add(U);let $=new b(A,{width:"100%",paddingLeft:2}),_=new m(A,{content:K.content,fg:Z?I.textPrimary:I.textSecondary,wrapMode:"word"});$.add(_),j.add($),q.content.add(j)}AG(q)}function AG(A){if(!A.scroll||!A.isActive)return;A.scroll.scrollTop=A.scroll.scrollHeight,setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},50),setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},150)}function rE(A,q,g,E,F){q.messages.push({role:g,content:E}),Tg(A,q,F)}function wJ(A,q,g){if(q.typingInterval)return;q.isTyping=!0,q.typingFrame=0,q.typingInterval=setInterval(()=>{if(!q.isActive||!q.isTyping){d6(q);return}q.typingFrame=(q.typingFrame+1)%yA.length;let E=q.messages[q.messages.length-1];if(E&&E.role==="assistant"&&E.content==="..."){let F=yA[q.typingFrame]??"\u280B";E.content=F,Tg(A,q,g),E.content="..."}},80)}function d6(A){if(A.isTyping=!1,A.typingInterval)clearInterval(A.typingInterval),A.typingInterval=null}function RZ(){return{step:"provider",selectedProvider:"anthropic",keyInput:null}}function CJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=new m(A,{content:"Set up AI Chat",fg:I.accent});if(E.add(F),E.add(new b(A,{height:1})),q.step==="provider")I4(A,E,q);else if(q.step==="key")x4(A,E,q,g);return E}function I4(A,q,g){let E=new m(A,{content:"Choose your AI provider:",fg:I.textPrimary});q.add(E),q.add(new b(A,{height:1}));let F=new b(A,{flexDirection:"row",gap:1}),K=new m(A,{content:g.selectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:g.selectedProvider==="anthropic"?I.accent:I.textSecondary}),Z=new m(A,{content:"Anthropic",fg:g.selectedProvider==="anthropic"?I.accent:I.textPrimary});F.add(K),F.add(Z),q.add(F);let j=new b(A,{flexDirection:"row",gap:1}),U=new m(A,{content:g.selectedProvider==="openai"?"\u25CF":"\u25CB",fg:g.selectedProvider==="openai"?I.accent:I.textSecondary}),G=new m(A,{content:"OpenAI",fg:g.selectedProvider==="openai"?I.accent:I.textPrimary});j.add(U),j.add(G),q.add(j),q.add(new b(A,{height:2}));let Y=new m(A,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:I.textSecondary});q.add(Y)}function x4(A,q,g,E){let F=g.selectedProvider==="anthropic"?"Anthropic":"OpenAI",K=new m(A,{content:`Enter your ${F} API key:`,fg:I.textPrimary});q.add(K),q.add(new b(A,{height:1}));let Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:"\u203A",fg:I.accent});Z.add(j);let U=new b(A,{width:1});Z.add(U),g.keyInput=new VZ(A,{flexGrow:1,placeholder:g.selectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:I.bg}),g.keyInput.on("enter",()=>{let M=g.keyInput?.value.trim();if(M)E.onSaveKey(g.selectedProvider,M)}),Z.add(g.keyInput),q.add(Z),q.add(new b(A,{height:2}));let G=new m(A,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:I.textSecondary,wrapMode:"word"});q.add(G),q.add(new b(A,{height:2}));let Y=new m(A,{content:"Enter to save, Esc to cancel",fg:I.textSecondary});q.add(Y),setTimeout(()=>{if(g.keyInput)g.keyInput.focus(),g.keyInput.value=""},50)}function qG(A,q){if(A.step!=="provider")return;A.selectedProvider=q>0?"openai":"anthropic"}function kJ(A){if(A.step==="provider")A.step="key"}function DJ(){return{selectedIndex:0}}function gG(A){let q=!!lA("anthropic"),g=!!lA("openai"),E=q||g,F=A==="anthropic"?AJ:qJ,K=[];if(K.push({item:{type:"provider",provider:"anthropic",hasKey:q},enabled:!0}),K.push({item:{type:"provider",provider:"openai",hasKey:g},enabled:!0}),E)for(let Z of F)K.push({item:{type:"model",modelId:Z.id,modelName:Z.name},enabled:!0});if(K.push({item:{type:"action",action:"done"},enabled:!0}),E)K.push({item:{type:"action",action:"clear_keys"},enabled:!0});return K}function yJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=gG(g),K=sE(g),Z=new m(A,{content:"Settings",fg:I.accent});E.add(Z),E.add(new b(A,{height:1}));let j=new m(A,{content:Hq`${Xg("Provider")}`,fg:I.textSecondary});E.add(j);for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="provider")continue;let O=Y===q.selectedIndex,$=M.item.provider===g,_=M.item.hasKey,x=M.item.provider==="anthropic"?"Anthropic":"OpenAI",N=new b(A,{flexDirection:"row",gap:1}),L=new m(A,{content:O?"\u203A":" ",fg:I.accent});N.add(L);let P=new m(A,{content:$?"\u25CF":"\u25CB",fg:$?I.accent:I.textSecondary});N.add(P);let k=new m(A,{content:x,fg:O?I.accent:I.textPrimary});if(N.add(k),!_){let C=new m(A,{content:"Add API Key",fg:I.textSecondary});N.add(C)}E.add(N)}if(F.some((Y)=>Y.item.type==="model")){E.add(new b(A,{height:1}));let Y=new m(A,{content:Hq`${Xg("Model")}`,fg:I.textSecondary});E.add(Y);for(let M=0;M<F.length;M++){let O=F[M];if(!O||O.item.type!=="model")continue;let $=M===q.selectedIndex,_=O.item.modelId===K,x=new b(A,{flexDirection:"row",gap:1}),N=new m(A,{content:$?"\u203A":" ",fg:I.accent});x.add(N);let L=new m(A,{content:_?"\u25CF":"\u25CB",fg:_?I.accent:I.textSecondary});x.add(L);let P=new m(A,{content:O.item.modelName,fg:$?I.accent:I.textPrimary});x.add(P),E.add(x)}}E.add(new b(A,{height:1}));for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="action")continue;let O=Y===q.selectedIndex,$="";switch(M.item.action){case"done":$="Done";break;case"clear_keys":$="Clear All API Keys";break}let _=new b(A,{flexDirection:"row",gap:1}),x=new m(A,{content:O?"\u203A":" ",fg:I.accent});_.add(x);let N=new m(A,{content:`[${$}]`,fg:O?I.accent:I.textPrimary});_.add(N),E.add(_)}E.add(new b(A,{height:2}));let G=new m(A,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:I.textSecondary});return E.add(G),E}function EG(A,q,g){let F=gG(g).length-1;A.selectedIndex=Math.max(0,Math.min(F,A.selectedIndex+q))}function bJ(A,q){let E=gG(q)[A.selectedIndex];if(!E||!E.enabled)return null;switch(E.item.type){case"provider":if(!E.item.hasKey)return E.item.provider==="anthropic"?{type:"add_anthropic"}:{type:"add_openai"};if(E.item.provider!==q)return{type:"switch_provider",provider:E.item.provider};return null;case"model":return{type:"select_model",modelId:E.item.modelId,provider:q};case"action":switch(E.item.action){case"done":return{type:"done"};case"clear_keys":return{type:"clear_keys"}}}return null}function vJ(A){return!1}function f(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new 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 T(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new 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 FG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return FG=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 oq(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var oE=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new 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 new Error(JSON.stringify(A))}catch{}}return new Error(A)};class t extends Error{}class NA extends t{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 E6({message:g,cause:oE(q)});let F=q;if(A===400)return new AF(A,F,g,E);if(A===401)return new qF(A,F,g,E);if(A===403)return new gF(A,F,g,E);if(A===404)return new EF(A,F,g,E);if(A===409)return new FF(A,F,g,E);if(A===422)return new KF(A,F,g,E);if(A===429)return new ZF(A,F,g,E);if(A>=500)return new jF(A,F,g,E);return new NA(A,F,g,E)}}class bA extends NA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class E6 extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class eE extends E6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class AF extends NA{}class qF extends NA{}class gF extends NA{}class EF extends NA{}class FF extends NA{}class KF extends NA{}class ZF extends NA{}class jF extends NA{}var R4=/^[a-z][a-z0-9+.-]*:/i,mJ=(A)=>{return R4.test(A)},KG=(A)=>(KG=Array.isArray,KG(A)),ZG=KG;function SZ(A){if(typeof A!=="object")return{};return A??{}}function fJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function cJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var dJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new t(`${A} must be an integer`);if(q<0)throw new t(`${A} must be a positive integer`);return q};var aZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var pJ=(A)=>new Promise((q)=>setTimeout(q,A));var Ig="0.71.2";var tJ=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function S4(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var a4=()=>{let A=S4();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":lJ(Deno.build.os),"X-Stainless-Arch":uJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"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":Ig,"X-Stainless-OS":lJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":uJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=h4();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"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":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function h4(){if(typeof navigator==="undefined"||!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 uJ=(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"},lJ=(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"},iJ,sJ=()=>{return iJ??(iJ=a4())};function nJ(){if(typeof fetch!=="undefined")return fetch;throw new 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 jG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function hZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return jG({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 UF(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 rJ(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)}};function qM(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 eJ;function GF(A){let q;return(eJ??(q=new globalThis.TextEncoder,eJ=q.encode.bind(q)))(A)}var AM;function UG(A){let q;return(AM??(q=new globalThis.TextDecoder,AM=q.decode.bind(q)))(A)}var tA,sA;class xg{constructor(){tA.set(this,void 0),sA.set(this,void 0),f(this,tA,new Uint8Array,"f"),f(this,sA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?GF(A):A;f(this,tA,qM([T(this,tA,"f"),q]),"f");let g=[],E;while((E=w4(T(this,tA,"f"),T(this,sA,"f")))!=null){if(E.carriage&&T(this,sA,"f")==null){f(this,sA,E.index,"f");continue}if(T(this,sA,"f")!=null&&(E.index!==T(this,sA,"f")+1||E.carriage)){g.push(UG(T(this,tA,"f").subarray(0,T(this,sA,"f")-1))),f(this,tA,T(this,tA,"f").subarray(T(this,sA,"f")),"f"),f(this,sA,null,"f");continue}let F=T(this,sA,"f")!==null?E.preceding-1:E.preceding,K=UG(T(this,tA,"f").subarray(0,F));g.push(K),f(this,tA,T(this,tA,"f").subarray(E.index),"f"),f(this,sA,null,"f")}return g}flush(){if(!T(this,tA,"f").length)return[];return this.decode(`
102
+ `)}}tA=new WeakMap,sA=new WeakMap;xg.NEWLINE_CHARS=new Set([`
103
+ `,"\r"]);xg.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function w4(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 gM(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 BZ={off:0,error:200,warn:300,info:400,debug:500},GG=(A,q,g)=>{if(!A)return;if(cJ(BZ,A))return A;hA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(BZ))}`);return};function YF(){}function zZ(A,q,g){if(!q||BZ[A]>BZ[g])return YF;else return q[A].bind(q)}var C4={error:YF,warn:YF,info:YF,debug:YF},EM=new WeakMap;function hA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return C4;let E=EM.get(q);if(E&&E[0]===g)return E[1];let F={error:zZ("error",q,g),warn:zZ("warn",q,g),info:zZ("info",q,g),debug:zZ("debug",q,g)};return EM.set(q,[g,F]),F}var eq=(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 QF;class nA{constructor(A,q,g){this.iterator=A,QF.set(this,void 0),this.controller=q,f(this,QF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?hA(g):console;async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of k4(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,aZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new xg,j=UF(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new t("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(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}[(QF=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 nA(()=>E(A),this.controller,T(this,QF,"f")),new nA(()=>E(q),this.controller,T(this,QF,"f"))]}toReadableStream(){let A=this,q;return jG({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=GF(JSON.stringify(E)+`
104
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*k4(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("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 t("Attempted to iterate over a response with no body")}let g=new FM,E=new xg,F=UF(A.body);for await(let K of D4(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*D4(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"?GF(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=gM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class FM{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(`
105
+ `),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]=y4(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 y4(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 wZ(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);return nA.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 YG(M,g)}return await g.text()})();return hA(A).debug(`[${E}] response parsed`,eq({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function YG(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 OF;class F6 extends Promise{constructor(A,q,g=wZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,OF.set(this,void 0),f(this,OF,A,"f")}_thenUnwrap(A){return new F6(T(this,OF,"f"),this.responsePromise,async(q,g)=>YG(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(T(this,OF,"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)}}OF=new WeakMap;var CZ;class QG{constructor(A,q,g,E){CZ.set(this,void 0),f(this,CZ,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 t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await T(this,CZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(CZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class kZ extends F6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await wZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Wq extends QG{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:{...SZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...SZ(this.options.query),after_id:A}}}}class JF extends QG{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:{...SZ(this.options.query),page:A}}}}var JG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new 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 K6(A,q,g){return JG(),new File(A,q??"unknown_file",g)}function MF(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 MG=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var p6=async(A,q)=>{return{...A,body:await m4(A.body,q)}},KM=new WeakMap;function v4(A){let q=typeof A==="function"?A:A.fetch,g=KM.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 KM.set(q,E),E}var m4=async(A,q)=>{if(!await v4(q))throw new 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])=>OG(g,E,F))),g},f4=(A)=>A instanceof Blob&&("name"in A);var OG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new 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,K6([await g.blob()],MF(g),E))}else if(MG(g))A.append(q,K6([await new Response(hZ(g)).blob()],MF(g)));else if(f4(g))A.append(q,K6([g],MF(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>OG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>OG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var ZM=(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",c4=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&ZM(A),d4=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function DZ(A,q,g){if(JG(),A=await A,q||(q=MF(A)),c4(A)){if(A instanceof File&&q==null&&g==null)return A;return K6([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(d4(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),K6(await _G(F),q,g)}let E=await _G(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 K6(E,q,g)}async function _G(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(ZM(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(MG(A))for await(let g of A)q.push(...await _G(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${p4(A)}`)}return q}function p4(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 jM=Symbol.for("brand.privateNullableHeaders");function*l4(A){if(!A)return;if(jM 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(ZG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=ZG(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 l4(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{[jM]:!0,values:q,nulls:g}};function GM(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var UM=Object.freeze(Object.create(null)),i4=(A=GM)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??UM)??UM)?.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+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[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((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new t(`Path parameters result in path with invalid segments:
106
106
  ${K.map((O)=>O.error).join(`
107
107
  `)}
108
108
  ${Z}
109
- ${M}`)}return Z},MA=wH(rJ);class jF extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",Lq,{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",k6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class UF 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",Lq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var BZ={"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 YG(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 QG(A,q,g)}function QG(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=DH(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 DH(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 t(`Failed to parse structured output: ${g}`)}}var yH=(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},D6=(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),D6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),D6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),D6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),D6(A);break;case"delimiter":return A=A.slice(0,A.length-1),D6(A);break}return A},bH=(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},vH=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},wZ=(A)=>JSON.parse(vH(bH(D6(yH(A)))));var Eq,Tg,y6,GF,CZ,YF,QF,kZ,OF,eq,JF,DZ,yZ,A6,bZ,vZ,MF,OG,oJ,mZ,JG,MG,_G,eJ,AM="__json_buf";function qM(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class _F{constructor(A,q){Eq.add(this),this.messages=[],this.receivedMessages=[],Tg.set(this,void 0),y6.set(this,null),this.controller=new AbortController,GF.set(this,void 0),CZ.set(this,()=>{}),YF.set(this,()=>{}),QF.set(this,void 0),kZ.set(this,()=>{}),OF.set(this,()=>{}),eq.set(this,{}),JF.set(this,!1),DZ.set(this,!1),yZ.set(this,!1),A6.set(this,!1),bZ.set(this,void 0),vZ.set(this,void 0),MF.set(this,void 0),mZ.set(this,(g)=>{if(v(this,DZ,!0,"f"),rq(g))g=new yA;if(g instanceof yA)return v(this,yZ,!0,"f"),this._emit("abort",g);if(g instanceof t)return this._emit("error",g);if(g instanceof Error){let E=new t(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new t(String(g)))}),v(this,GF,new Promise((g,E)=>{v(this,CZ,g,"f"),v(this,YF,E,"f")}),"f"),v(this,QF,new Promise((g,E)=>{v(this,kZ,g,"f"),v(this,OF,E,"f")}),"f"),N(this,GF,"f").catch(()=>{}),N(this,QF,"f").catch(()=>{}),v(this,y6,A,"f"),v(this,MF,q?.logger??console,"f")}get response(){return N(this,bZ,"f")}get request_id(){return N(this,vZ,"f")}async withResponse(){v(this,A6,!0,"f");let A=await N(this,GF,"f");if(!A)throw new 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 _F(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new _F(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return v(F,y6,{...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,mZ,"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",JG).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",MG).call(this,j);if(Z.controller.signal?.aborted)throw new yA;N(this,Eq,"m",_G).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,bZ,A,"f"),v(this,vZ,A?.headers.get("request-id"),"f"),N(this,CZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,JF,"f")}get errored(){return N(this,DZ,"f")}get aborted(){return N(this,yZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,eq,"f")[A]||(N(this,eq,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,eq,"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,eq,"f")[A]||(N(this,eq,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,A6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,A6,!0,"f"),await N(this,QF,"f")}get currentMessage(){return N(this,Tg,"f")}async finalMessage(){return await this.done(),N(this,Eq,"m",OG).call(this)}async finalText(){return await this.done(),N(this,Eq,"m",oJ).call(this)}_emit(A,...q){if(N(this,JF,"f"))return;if(A==="end")v(this,JF,!0,"f"),N(this,kZ,"f").call(this);let g=N(this,eq,"f")[A];if(g)N(this,eq,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,A6,"f")&&!g?.length)Promise.reject(E);N(this,YF,"f").call(this,E),N(this,OF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,A6,"f")&&!g?.length)Promise.reject(E);N(this,YF,"f").call(this,E),N(this,OF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,Eq,"m",OG).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",JG).call(this),this._connected(null);let F=tA.fromReadableStream(A,this.controller);for await(let K of F)N(this,Eq,"m",MG).call(this,K);if(F.controller.signal?.aborted)throw new yA;N(this,Eq,"m",_G).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Tg=new WeakMap,y6=new WeakMap,GF=new WeakMap,CZ=new WeakMap,YF=new WeakMap,QF=new WeakMap,kZ=new WeakMap,OF=new WeakMap,eq=new WeakMap,JF=new WeakMap,DZ=new WeakMap,yZ=new WeakMap,A6=new WeakMap,bZ=new WeakMap,vZ=new WeakMap,MF=new WeakMap,mZ=new WeakMap,Eq=new WeakSet,OG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},oJ=function A(){if(this.receivedMessages.length===0)throw new t("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 t("stream ended without producing a content block with type=text");return q.join(" ")},JG=function A(){if(this.ended)return;v(this,Tg,void 0,"f")},MG=function A(q){if(this.ended)return;let g=N(this,Eq,"m",eJ).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(qM(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:gM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(YG(g,N(this,y6,"f"),{logger:N(this,MF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{v(this,Tg,g,"f");break}case"content_block_start":case"message_delta":break}},_G=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=N(this,Tg,"f");if(!q)throw new t("request ended without sending any chunks");return v(this,Tg,void 0,"f"),YG(q,N(this,y6,"f"),{logger:N(this,MF,"f")})},eJ=function A(q){let g=N(this,Tg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`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&&qM(E)){let F=E[AM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,AM,{value:F,enumerable:!1,writable:!0}),F)try{K.input=wZ(F)}catch(Z){let j=new t(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);N(this,mZ,"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:gM(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 tA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function gM(A){}var EM=1e5,FM=`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:
109
+ ${M}`)}return Z},MA=i4(GM);class _F extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",Wq,{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",p6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class $F 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",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yZ={"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 $G(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 XG(A,q,g)}function XG(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=n4(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 n4(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 t(`Failed to parse structured output: ${g}`)}}var r4=(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},u6=(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),u6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),u6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),u6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),u6(A);break;case"delimiter":return A=A.slice(0,A.length-1),u6(A);break}return A},o4=(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},e4=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},bZ=(A)=>JSON.parse(e4(o4(u6(r4(A)))));var Zq,Pg,l6,XF,vZ,HF,LF,mZ,VF,Ag,WF,fZ,cZ,Z6,dZ,pZ,NF,HG,YM,uZ,LG,VG,WG,QM,OM="__json_buf";function JM(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class TF{constructor(A,q){Zq.add(this),this.messages=[],this.receivedMessages=[],Pg.set(this,void 0),l6.set(this,null),this.controller=new AbortController,XF.set(this,void 0),vZ.set(this,()=>{}),HF.set(this,()=>{}),LF.set(this,void 0),mZ.set(this,()=>{}),VF.set(this,()=>{}),Ag.set(this,{}),WF.set(this,!1),fZ.set(this,!1),cZ.set(this,!1),Z6.set(this,!1),dZ.set(this,void 0),pZ.set(this,void 0),NF.set(this,void 0),uZ.set(this,(g)=>{if(f(this,fZ,!0,"f"),oq(g))g=new bA;if(g instanceof bA)return f(this,cZ,!0,"f"),this._emit("abort",g);if(g instanceof t)return this._emit("error",g);if(g instanceof Error){let E=new t(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new t(String(g)))}),f(this,XF,new Promise((g,E)=>{f(this,vZ,g,"f"),f(this,HF,E,"f")}),"f"),f(this,LF,new Promise((g,E)=>{f(this,mZ,g,"f"),f(this,VF,E,"f")}),"f"),T(this,XF,"f").catch(()=>{}),T(this,LF,"f").catch(()=>{}),f(this,l6,A,"f"),f(this,NF,q?.logger??console,"f")}get response(){return T(this,dZ,"f")}get request_id(){return T(this,pZ,"f")}async withResponse(){f(this,Z6,!0,"f");let A=await T(this,XF,"f");if(!A)throw new 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 TF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new TF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return f(F,l6,{...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")},T(this,uZ,"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{T(this,Zq,"m",LG).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)T(this,Zq,"m",VG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,dZ,A,"f"),f(this,pZ,A?.headers.get("request-id"),"f"),T(this,vZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,WF,"f")}get errored(){return T(this,fZ,"f")}get aborted(){return T(this,cZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(this,Ag,"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(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,Z6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,Z6,!0,"f"),await T(this,LF,"f")}get currentMessage(){return T(this,Pg,"f")}async finalMessage(){return await this.done(),T(this,Zq,"m",HG).call(this)}async finalText(){return await this.done(),T(this,Zq,"m",YM).call(this)}_emit(A,...q){if(T(this,WF,"f"))return;if(A==="end")f(this,WF,!0,"f"),T(this,mZ,"f").call(this);let g=T(this,Ag,"f")[A];if(g)T(this,Ag,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,Zq,"m",HG).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{T(this,Zq,"m",LG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,Zq,"m",VG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Pg=new WeakMap,l6=new WeakMap,XF=new WeakMap,vZ=new WeakMap,HF=new WeakMap,LF=new WeakMap,mZ=new WeakMap,VF=new WeakMap,Ag=new WeakMap,WF=new WeakMap,fZ=new WeakMap,cZ=new WeakMap,Z6=new WeakMap,dZ=new WeakMap,pZ=new WeakMap,NF=new WeakMap,uZ=new WeakMap,Zq=new WeakSet,HG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},YM=function A(){if(this.receivedMessages.length===0)throw new t("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 t("stream ended without producing a content block with type=text");return q.join(" ")},LG=function A(){if(this.ended)return;f(this,Pg,void 0,"f")},VG=function A(q){if(this.ended)return;let g=T(this,Zq,"m",QM).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(JM(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:MM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage($G(g,T(this,l6,"f"),{logger:T(this,NF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,Pg,g,"f");break}case"content_block_start":case"message_delta":break}},WG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Pg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Pg,void 0,"f"),$G(q,T(this,l6,"f"),{logger:T(this,NF,"f")})},QM=function A(q){let g=T(this,Pg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`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&&JM(E)){let F=E[OM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,OM,{value:F,enumerable:!1,writable:!0}),F)try{K.input=bZ(F)}catch(Z){let j=new t(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);T(this,uZ,"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:MM(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 nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function MM(A){}var _M=1e5,$M=`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:
110
110
  1. Task Overview
111
111
  The user's core request and success criteria
112
112
  Any clarifications or constraints they specified
@@ -128,29 +128,29 @@ User preferences or style requirements
128
128
  Domain-specific details that aren't obvious
129
129
  Any promises made to the user
130
130
  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.
131
- Wrap your summary in <summary></summary> tags.`;var $F,b6,q6,TA,XF,sA,Ag,xg,HF,KM,$G;function ZM(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class LF{constructor(A,q,g){$F.add(this),this.client=A,b6.set(this,!1),q6.set(this,!1),TA.set(this,void 0),XF.set(this,void 0),sA.set(this,void 0),Ag.set(this,void 0),xg.set(this,void 0),HF.set(this,0),v(this,TA,{params:{...q,messages:structuredClone(q.messages)}},"f"),v(this,XF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),v(this,xg,ZM(),"f")}async*[(b6=new WeakMap,q6=new WeakMap,TA=new WeakMap,XF=new WeakMap,sA=new WeakMap,Ag=new WeakMap,xg=new WeakMap,HF=new WeakMap,$F=new WeakSet,KM=async function A(){let q=N(this,TA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(N(this,sA,"f")!==void 0)try{let U=await N(this,sA,"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??EM;if(g<E)return!1;let F=q.model??N(this,TA,"f").params.model,K=q.summaryPrompt??FM,Z=N(this,TA,"f").params.messages;if(Z[Z.length-1].role==="assistant"){let U=Z[Z.length-1];if(Array.isArray(U.content)){let Y=U.content.filter((G)=>G.type!=="tool_use");if(Y.length===0)Z.pop();else U.content=Y}}let j=await this.client.beta.messages.create({model:F,messages:[...Z,{role:"user",content:[{type:"text",text:K}]}],max_tokens:N(this,TA,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(j.content[0]?.type!=="text")throw new t("Expected text response for compaction");return N(this,TA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(N(this,b6,"f"))throw new t("Cannot iterate over a consumed stream");v(this,b6,!0,"f"),v(this,q6,!0,"f"),v(this,Ag,void 0,"f");try{while(!0){let q;try{if(N(this,TA,"f").params.max_iterations&&N(this,HF,"f")>=N(this,TA,"f").params.max_iterations)break;v(this,q6,!1,"f"),v(this,Ag,void 0,"f"),v(this,HF,(A=N(this,HF,"f"),A++,A),"f"),v(this,sA,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=N(this,TA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},N(this,XF,"f")),v(this,sA,q.finalMessage(),"f"),N(this,sA,"f").catch(()=>{}),yield q;else v(this,sA,this.client.beta.messages.create({...F,stream:!1},N(this,XF,"f")),"f"),yield N(this,sA,"f");if(!await N(this,$F,"m",KM).call(this)){if(!N(this,q6,"f")){let{role:j,content:U}=await N(this,sA,"f");N(this,TA,"f").params.messages.push({role:j,content:U})}let Z=await N(this,$F,"m",$G).call(this,N(this,TA,"f").params.messages.at(-1));if(Z)N(this,TA,"f").params.messages.push(Z);else if(!N(this,q6,"f"))break}}finally{if(q)q.abort()}}if(!N(this,sA,"f"))throw new t("ToolRunner concluded without a message from the server");N(this,xg,"f").resolve(await N(this,sA,"f"))}catch(q){throw v(this,b6,!1,"f"),N(this,xg,"f").promise.catch(()=>{}),N(this,xg,"f").reject(q),v(this,xg,ZM(),"f"),q}}setMessagesParams(A){if(typeof A==="function")N(this,TA,"f").params=A(N(this,TA,"f").params);else N(this,TA,"f").params=A;v(this,q6,!0,"f"),v(this,Ag,void 0,"f")}async generateToolResponse(){let A=await N(this,sA,"f")??this.params.messages.at(-1);if(!A)return null;return N(this,$F,"m",$G).call(this,A)}done(){return N(this,xg,"f").promise}async runUntilDone(){if(!N(this,b6,"f"))for await(let A of this);return this.done()}get params(){return N(this,TA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}$G=async function A(q){if(N(this,Ag,"f")!==void 0)return N(this,Ag,"f");return v(this,Ag,mH(N(this,TA,"f").params,q),"f"),N(this,Ag,"f")};async function mH(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 v6{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new Ng;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!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("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 t("Attempted to iterate over a response with no body")}return new v6(AF(A.body),q)}}class VF 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",Lq,{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 t(`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)=>v6.fromResponse(Z.response,Z.controller))}}var jM={"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 g6 extends _A{constructor(){super(...arguments);this.batches=new VF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in jM)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${jM[E.model]}
132
- 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=BZ[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)=>QG(g,A,{logger:this._client.logger??console}))}stream(A,q){return _F.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 LF(this._client,A,q)}}g6.Batches=VF;g6.BetaToolRunner=LF;class WF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,k6({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`,KF,{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 m6 extends _A{constructor(){super(...arguments);this.versions=new WF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",k6({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",KF,{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])})}}m6.Versions=WF;class Sq extends _A{constructor(){super(...arguments);this.models=new UF(this._client),this.messages=new g6(this._client),this.files=new jF(this._client),this.skills=new m6(this._client)}}Sq.Models=UF;Sq.Messages=g6;Sq.Files=jF;Sq.Skills=m6;class f6 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 Fq,Ig,NF,fZ,TF,xF,cZ,IF,qg,PF,dZ,pZ,E6,uZ,lZ,XG,UM,HG,LG,VG,WG,GM,YM="__json_buf";function QM(A){return A.type==="tool_use"||A.type==="server_tool_use"}class RF{constructor(){Fq.add(this),this.messages=[],this.receivedMessages=[],Ig.set(this,void 0),this.controller=new AbortController,NF.set(this,void 0),fZ.set(this,()=>{}),TF.set(this,()=>{}),xF.set(this,void 0),cZ.set(this,()=>{}),IF.set(this,()=>{}),qg.set(this,{}),PF.set(this,!1),dZ.set(this,!1),pZ.set(this,!1),E6.set(this,!1),uZ.set(this,void 0),lZ.set(this,void 0),HG.set(this,(A)=>{if(v(this,dZ,!0,"f"),rq(A))A=new yA;if(A instanceof yA)return v(this,pZ,!0,"f"),this._emit("abort",A);if(A instanceof t)return this._emit("error",A);if(A instanceof Error){let q=new t(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new t(String(A)))}),v(this,NF,new Promise((A,q)=>{v(this,fZ,A,"f"),v(this,TF,q,"f")}),"f"),v(this,xF,new Promise((A,q)=>{v(this,cZ,A,"f"),v(this,IF,q,"f")}),"f"),N(this,NF,"f").catch(()=>{}),N(this,xF,"f").catch(()=>{})}get response(){return N(this,uZ,"f")}get request_id(){return N(this,lZ,"f")}async withResponse(){v(this,E6,!0,"f");let A=await N(this,NF,"f");if(!A)throw new 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 RF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new RF;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,HG,"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,Fq,"m",LG).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,Fq,"m",VG).call(this,j);if(Z.controller.signal?.aborted)throw new yA;N(this,Fq,"m",WG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,uZ,A,"f"),v(this,lZ,A?.headers.get("request-id"),"f"),N(this,fZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,PF,"f")}get errored(){return N(this,dZ,"f")}get aborted(){return N(this,pZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,qg,"f")[A]||(N(this,qg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,qg,"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,qg,"f")[A]||(N(this,qg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,E6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,E6,!0,"f"),await N(this,xF,"f")}get currentMessage(){return N(this,Ig,"f")}async finalMessage(){return await this.done(),N(this,Fq,"m",XG).call(this)}async finalText(){return await this.done(),N(this,Fq,"m",UM).call(this)}_emit(A,...q){if(N(this,PF,"f"))return;if(A==="end")v(this,PF,!0,"f"),N(this,cZ,"f").call(this);let g=N(this,qg,"f")[A];if(g)N(this,qg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,E6,"f")&&!g?.length)Promise.reject(E);N(this,TF,"f").call(this,E),N(this,IF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,E6,"f")&&!g?.length)Promise.reject(E);N(this,TF,"f").call(this,E),N(this,IF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,Fq,"m",XG).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,Fq,"m",LG).call(this),this._connected(null);let F=tA.fromReadableStream(A,this.controller);for await(let K of F)N(this,Fq,"m",VG).call(this,K);if(F.controller.signal?.aborted)throw new yA;N(this,Fq,"m",WG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Ig=new WeakMap,NF=new WeakMap,fZ=new WeakMap,TF=new WeakMap,xF=new WeakMap,cZ=new WeakMap,IF=new WeakMap,qg=new WeakMap,PF=new WeakMap,dZ=new WeakMap,pZ=new WeakMap,E6=new WeakMap,uZ=new WeakMap,lZ=new WeakMap,HG=new WeakMap,Fq=new WeakSet,XG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},UM=function A(){if(this.receivedMessages.length===0)throw new t("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 t("stream ended without producing a content block with type=text");return q.join(" ")},LG=function A(){if(this.ended)return;v(this,Ig,void 0,"f")},VG=function A(q){if(this.ended)return;let g=N(this,Fq,"m",GM).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(QM(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:OM(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,Ig,g,"f");break}case"content_block_start":case"message_delta":break}},WG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=N(this,Ig,"f");if(!q)throw new t("request ended without sending any chunks");return v(this,Ig,void 0,"f"),q},GM=function A(q){let g=N(this,Ig,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`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&&QM(E)){let F=E[YM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,YM,{value:F,enumerable:!1,writable:!0}),F)K.input=wZ(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:OM(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 tA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function OM(A){}class SF 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",Lq,{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 t(`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)=>v6.fromResponse(F.response,F.controller))}}class F6 extends _A{constructor(){super(...arguments);this.batches=new SF(this._client)}create(A,q){if(A.model in JM)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${JM[A.model]}
133
- 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=BZ[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 RF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var JM={"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"};F6.Batches=SF;class c6 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",Lq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var aF=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var NG,TG,iZ,MM,_M="\\n\\nHuman:",$M="\\n\\nAssistant:";class $A{constructor({baseURL:A=aF("ANTHROPIC_BASE_URL"),apiKey:q=aF("ANTHROPIC_API_KEY")??null,authToken:g=aF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){NG.add(this),iZ.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&DJ())throw new t(`It looks like you're running in a browser-like environment.
131
+ Wrap your summary in <summary></summary> tags.`;var IF,i6,j6,TA,xF,rA,qg,Rg,PF,XM,NG;function HM(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class RF{constructor(A,q,g){IF.add(this),this.client=A,i6.set(this,!1),j6.set(this,!1),TA.set(this,void 0),xF.set(this,void 0),rA.set(this,void 0),qg.set(this,void 0),Rg.set(this,void 0),PF.set(this,0),f(this,TA,{params:{...q,messages:structuredClone(q.messages)}},"f"),f(this,xF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),f(this,Rg,HM(),"f")}async*[(i6=new WeakMap,j6=new WeakMap,TA=new WeakMap,xF=new WeakMap,rA=new WeakMap,qg=new WeakMap,Rg=new WeakMap,PF=new WeakMap,IF=new WeakSet,XM=async function A(){let q=T(this,TA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(T(this,rA,"f")!==void 0)try{let U=await T(this,rA,"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??_M;if(g<E)return!1;let F=q.model??T(this,TA,"f").params.model,K=q.summaryPrompt??$M,Z=T(this,TA,"f").params.messages;if(Z[Z.length-1].role==="assistant"){let U=Z[Z.length-1];if(Array.isArray(U.content)){let G=U.content.filter((Y)=>Y.type!=="tool_use");if(G.length===0)Z.pop();else U.content=G}}let j=await this.client.beta.messages.create({model:F,messages:[...Z,{role:"user",content:[{type:"text",text:K}]}],max_tokens:T(this,TA,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(j.content[0]?.type!=="text")throw new t("Expected text response for compaction");return T(this,TA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(T(this,i6,"f"))throw new t("Cannot iterate over a consumed stream");f(this,i6,!0,"f"),f(this,j6,!0,"f"),f(this,qg,void 0,"f");try{while(!0){let q;try{if(T(this,TA,"f").params.max_iterations&&T(this,PF,"f")>=T(this,TA,"f").params.max_iterations)break;f(this,j6,!1,"f"),f(this,qg,void 0,"f"),f(this,PF,(A=T(this,PF,"f"),A++,A),"f"),f(this,rA,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=T(this,TA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},T(this,xF,"f")),f(this,rA,q.finalMessage(),"f"),T(this,rA,"f").catch(()=>{}),yield q;else f(this,rA,this.client.beta.messages.create({...F,stream:!1},T(this,xF,"f")),"f"),yield T(this,rA,"f");if(!await T(this,IF,"m",XM).call(this)){if(!T(this,j6,"f")){let{role:j,content:U}=await T(this,rA,"f");T(this,TA,"f").params.messages.push({role:j,content:U})}let Z=await T(this,IF,"m",NG).call(this,T(this,TA,"f").params.messages.at(-1));if(Z)T(this,TA,"f").params.messages.push(Z);else if(!T(this,j6,"f"))break}}finally{if(q)q.abort()}}if(!T(this,rA,"f"))throw new t("ToolRunner concluded without a message from the server");T(this,Rg,"f").resolve(await T(this,rA,"f"))}catch(q){throw f(this,i6,!1,"f"),T(this,Rg,"f").promise.catch(()=>{}),T(this,Rg,"f").reject(q),f(this,Rg,HM(),"f"),q}}setMessagesParams(A){if(typeof A==="function")T(this,TA,"f").params=A(T(this,TA,"f").params);else T(this,TA,"f").params=A;f(this,j6,!0,"f"),f(this,qg,void 0,"f")}async generateToolResponse(){let A=await T(this,rA,"f")??this.params.messages.at(-1);if(!A)return null;return T(this,IF,"m",NG).call(this,A)}done(){return T(this,Rg,"f").promise}async runUntilDone(){if(!T(this,i6,"f"))for await(let A of this);return this.done()}get params(){return T(this,TA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}NG=async function A(q){if(T(this,qg,"f")!==void 0)return T(this,qg,"f");return f(this,qg,AH(T(this,TA,"f").params,q),"f"),T(this,qg,"f")};async function AH(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 t6{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new xg;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!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("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 t("Attempted to iterate over a response with no body")}return new t6(UF(A.body),q)}}class SF 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",Wq,{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 t(`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)=>t6.fromResponse(Z.response,Z.controller))}}var LM={"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 U6 extends _A{constructor(){super(...arguments);this.batches=new SF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in LM)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${LM[E.model]}
132
+ 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=yZ[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)=>XG(g,A,{logger:this._client.logger??console}))}stream(A,q){return TF.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 RF(this._client,A,q)}}U6.Batches=SF;U6.BetaToolRunner=RF;class aF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,p6({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`,JF,{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 s6 extends _A{constructor(){super(...arguments);this.versions=new aF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",p6({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",JF,{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])})}}s6.Versions=aF;class aq extends _A{constructor(){super(...arguments);this.models=new $F(this._client),this.messages=new U6(this._client),this.files=new _F(this._client),this.skills=new s6(this._client)}}aq.Models=$F;aq.Messages=U6;aq.Files=_F;aq.Skills=s6;class n6 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 jq,Sg,hF,lZ,zF,BF,iZ,wF,gg,CF,tZ,sZ,G6,nZ,rZ,TG,VM,IG,xG,PG,RG,WM,NM="__json_buf";function TM(A){return A.type==="tool_use"||A.type==="server_tool_use"}class kF{constructor(){jq.add(this),this.messages=[],this.receivedMessages=[],Sg.set(this,void 0),this.controller=new AbortController,hF.set(this,void 0),lZ.set(this,()=>{}),zF.set(this,()=>{}),BF.set(this,void 0),iZ.set(this,()=>{}),wF.set(this,()=>{}),gg.set(this,{}),CF.set(this,!1),tZ.set(this,!1),sZ.set(this,!1),G6.set(this,!1),nZ.set(this,void 0),rZ.set(this,void 0),IG.set(this,(A)=>{if(f(this,tZ,!0,"f"),oq(A))A=new bA;if(A instanceof bA)return f(this,sZ,!0,"f"),this._emit("abort",A);if(A instanceof t)return this._emit("error",A);if(A instanceof Error){let q=new t(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new t(String(A)))}),f(this,hF,new Promise((A,q)=>{f(this,lZ,A,"f"),f(this,zF,q,"f")}),"f"),f(this,BF,new Promise((A,q)=>{f(this,iZ,A,"f"),f(this,wF,q,"f")}),"f"),T(this,hF,"f").catch(()=>{}),T(this,BF,"f").catch(()=>{})}get response(){return T(this,nZ,"f")}get request_id(){return T(this,rZ,"f")}async withResponse(){f(this,G6,!0,"f");let A=await T(this,hF,"f");if(!A)throw new 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 kF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new kF;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")},T(this,IG,"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{T(this,jq,"m",xG).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)T(this,jq,"m",PG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,nZ,A,"f"),f(this,rZ,A?.headers.get("request-id"),"f"),T(this,lZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,CF,"f")}get errored(){return T(this,tZ,"f")}get aborted(){return T(this,sZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(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(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,G6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,G6,!0,"f"),await T(this,BF,"f")}get currentMessage(){return T(this,Sg,"f")}async finalMessage(){return await this.done(),T(this,jq,"m",TG).call(this)}async finalText(){return await this.done(),T(this,jq,"m",VM).call(this)}_emit(A,...q){if(T(this,CF,"f"))return;if(A==="end")f(this,CF,!0,"f"),T(this,iZ,"f").call(this);let g=T(this,gg,"f")[A];if(g)T(this,gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,jq,"m",TG).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{T(this,jq,"m",xG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,jq,"m",PG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Sg=new WeakMap,hF=new WeakMap,lZ=new WeakMap,zF=new WeakMap,BF=new WeakMap,iZ=new WeakMap,wF=new WeakMap,gg=new WeakMap,CF=new WeakMap,tZ=new WeakMap,sZ=new WeakMap,G6=new WeakMap,nZ=new WeakMap,rZ=new WeakMap,IG=new WeakMap,jq=new WeakSet,TG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},VM=function A(){if(this.receivedMessages.length===0)throw new t("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 t("stream ended without producing a content block with type=text");return q.join(" ")},xG=function A(){if(this.ended)return;f(this,Sg,void 0,"f")},PG=function A(q){if(this.ended)return;let g=T(this,jq,"m",WM).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(TM(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:IM(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":{f(this,Sg,g,"f");break}case"content_block_start":case"message_delta":break}},RG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Sg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Sg,void 0,"f"),q},WM=function A(q){let g=T(this,Sg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`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&&TM(E)){let F=E[NM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,NM,{value:F,enumerable:!1,writable:!0}),F)K.input=bZ(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:IM(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 nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function IM(A){}class DF 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",Wq,{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 t(`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)=>t6.fromResponse(F.response,F.controller))}}class Y6 extends _A{constructor(){super(...arguments);this.batches=new DF(this._client)}create(A,q){if(A.model in xM)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${xM[A.model]}
133
+ 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=yZ[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 kF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var xM={"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"};Y6.Batches=DF;class r6 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",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yF=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var SG,aG,oZ,PM,RM="\\n\\nHuman:",SM="\\n\\nAssistant:";class $A{constructor({baseURL:A=yF("ANTHROPIC_BASE_URL"),apiKey:q=yF("ANTHROPIC_API_KEY")??null,authToken:g=yF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){SG.add(this),oZ.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&tJ())throw new t(`It looks like you're running in a browser-like environment.
134
134
 
135
135
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
136
136
  If you understand the risks and have appropriate mitigations in place,
137
137
  you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
138
138
 
139
139
  new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
140
- `);this.baseURL=F.baseURL,this.timeout=F.timeout??TG.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=EG(F.logLevel,"ClientOptions.logLevel",this)??EG(aF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??bJ(),v(this,iZ,mJ,"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 new 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!=="undefined").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 t(`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 ${Wg}`}defaultIdempotencyKey(){return`stainless-node-retry-${oU()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!N(this,NG,"m",MM).call(this)&&g||this.baseURL,F=SJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!aJ(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 t("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 og(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"),Y=g===void 0?"":`, retryOf: ${g}`,G=Date.now();if(hA(this).debug(`[${U}] sending request`,oq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new yA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(pE),$=Date.now();if(O instanceof globalThis.Error){let T=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new yA;let V=rq(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return hA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${T}`),hA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${T})`,oq({retryOfRequestLogID:g,url:Z,durationMs:$-G,message:O.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)`,oq({retryOfRequestLogID:g,url:Z,durationMs:$-G,message:O.message})),V)throw new uE;throw new rg({cause:O})}let _=[...O.headers.entries()].filter(([T])=>T==="request-id").map(([T,V])=>", "+T+": "+JSON.stringify(V)).join(""),x=`[${U}${Y}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-G}ms`;if(!O.ok){let T=await this.shouldRetry(O);if(q&&T){let d=`retrying, ${q} attempts remaining`;return await vJ(O.body),hA(this).info(`${x} - ${d}`),hA(this).debug(`[${U}] response error (${d})`,oq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-G})),this.retryRequest(E,q,g??U,O.headers)}let V=T?"error; no more retries left":"error; not retryable";hA(this).info(`${x} - ${V}`);let P=await O.text().catch((d)=>pE(d).message),k=xZ(P),C=k?void 0:P;throw hA(this).debug(`[${U}] response error (${V})`,oq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-G})),this.makeStatusError(O.status,k,C,O.headers)}return hA(this).info(x),hA(this).debug(`[${U}] response start`,oq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-G})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:G}}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 hZ(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,Y={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)Y.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,Y)}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 BJ(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 t("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)zJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:Y}=this.buildBody({options:g}),G=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:G,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&Y instanceof globalThis.ReadableStream&&{duplex:"half"},...Y&&{body:Y},...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))}:{},...yJ(),...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:IZ(A)};else return N(this,iZ,"f").call(this,{body:A,headers:g})}}TG=$A,iZ=new WeakMap,NG=new WeakSet,MM=function A(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=TG;$A.HUMAN_PROMPT=_M;$A.AI_PROMPT=$M;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=t;$A.APIError=NA;$A.APIConnectionError=rg;$A.APIConnectionTimeoutError=uE;$A.APIUserAbortError=yA;$A.NotFoundError=sE;$A.ConflictError=nE;$A.RateLimitError=oE;$A.BadRequestError=lE;$A.AuthenticationError=iE;$A.InternalServerError=eE;$A.PermissionDeniedError=tE;$A.UnprocessableEntityError=rE;$A.toFile=zZ;class Vq extends $A{constructor(){super(...arguments);this.completions=new f6(this),this.messages=new F6(this),this.models=new c6(this),this.beta=new Sq(this)}}Vq.Completions=f6;Vq.Messages=F6;Vq.Models=c6;Vq.Beta=Sq;function s(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new 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 new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new 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 xG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return xG=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 hF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var zF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new 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 new Error(JSON.stringify(A))}catch{}}return new 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 K6({message:g,cause:zF(q)});let F=q?.error;if(A===400)return new BF(A,F,g,E);if(A===401)return new wF(A,F,g,E);if(A===403)return new CF(A,F,g,E);if(A===404)return new kF(A,F,g,E);if(A===409)return new DF(A,F,g,E);if(A===422)return new yF(A,F,g,E);if(A===429)return new bF(A,F,g,E);if(A>=500)return new vF(A,F,g,E);return new VA(A,F,g,E)}}class xA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class K6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class Z6 extends K6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class BF extends VA{}class wF extends VA{}class CF extends VA{}class kF extends VA{}class DF extends VA{}class yF extends VA{}class bF extends VA{}class vF extends VA{}class mF extends f{constructor(){super("Could not parse response content as the length limit was reached")}}class fF extends f{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class gg extends Error{constructor(A){super(A)}}var tH=/^[a-z][a-z0-9+.-]*:/i,XM=(A)=>{return tH.test(A)},bA=(A)=>(bA=Array.isArray,bA(A)),IG=bA;function PG(A){if(typeof A!=="object")return{};return A??{}}function HM(A){if(!A)return!0;for(let q in A)return!1;return!0}function LM(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function cF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var VM=(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 WM=(A)=>{try{return JSON.parse(A)}catch(q){return}};var aq=(A)=>new Promise((q)=>setTimeout(q,A));var Pg="6.16.0";var IM=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function sH(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var nH=()=>{let A=sH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Pg,"X-Stainless-OS":TM(Deno.build.os),"X-Stainless-Arch":NM(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Pg,"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":Pg,"X-Stainless-OS":TM(globalThis.process.platform??"unknown"),"X-Stainless-Arch":NM(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=rH();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Pg,"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":Pg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function rH(){if(typeof navigator==="undefined"||!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 NM=(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"},TM=(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"},xM,PM=()=>{return xM??(xM=nH())};function RM(){if(typeof fetch!=="undefined")return fetch;throw new 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 RG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function tZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return RG({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 SG(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 SM(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 aM=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var sZ="RFC3986",aG=(A)=>String(A),nZ={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:aG},hG="RFC1738";var rZ=(A,q)=>(rZ=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),rZ(A,q)),hq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var zG=1024,hM=(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+=zG){let U=K.length>=zG?K.slice(j,j+zG):K,Y=[];for(let G=0;G<U.length;++G){let M=U.charCodeAt(G);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===hG&&(M===40||M===41)){Y[Y.length]=U.charAt(G);continue}if(M<128){Y[Y.length]=hq[M];continue}if(M<2048){Y[Y.length]=hq[192|M>>6]+hq[128|M&63];continue}if(M<55296||M>=57344){Y[Y.length]=hq[224|M>>12]+hq[128|M>>6&63]+hq[128|M&63];continue}G+=1,M=65536+((M&1023)<<10|U.charCodeAt(G)&1023),Y[Y.length]=hq[240|M>>18]+hq[128|M>>12&63]+hq[128|M>>6&63]+hq[128|M&63]}Z+=Y.join("")}return Z};function zM(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function BG(A,q){if(bA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var wM={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},CM=function(A,q){Array.prototype.push.apply(A,bA(q)?q:[q])},BM,IA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:hM,encodeValuesOnly:!1,format:sZ,formatter:aG,indices:!1,serializeDate(A){return(BM??(BM=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function A4(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var wG={};function kM(A,q,g,E,F,K,Z,j,U,Y,G,M,O,$,_,x,T,V){let P=A,k=V,C=0,i=!1;while((k=k.get(wG))!==void 0&&!i){let m=k.get(A);if(C+=1,typeof m!=="undefined")if(m===C)throw new RangeError("Cyclic object value");else i=!0;if(typeof k.get(wG)==="undefined")C=0}if(typeof Y==="function")P=Y(q,P);else if(P instanceof Date)P=O?.(P);else if(g==="comma"&&bA(P))P=BG(P,function(m){if(m instanceof Date)return O?.(m);return m});if(P===null){if(K)return U&&!x?U(q,IA.encoder,T,"key",$):q;P=""}if(A4(P)||zM(P)){if(U){let m=x?q:U(q,IA.encoder,T,"key",$);return[_?.(m)+"="+_?.(U(P,IA.encoder,T,"value",$))]}return[_?.(q)+"="+_?.(String(P))]}let d=[];if(typeof P==="undefined")return d;let a;if(g==="comma"&&bA(P)){if(x&&U)P=BG(P,U);a=[{value:P.length>0?P.join(",")||null:void 0}]}else if(bA(Y))a=Y;else{let m=Object.keys(P);a=G?m.sort(G):m}let z=j?String(q).replace(/\./g,"%2E"):String(q),r=E&&bA(P)&&P.length===1?z+"[]":z;if(F&&bA(P)&&P.length===0)return r+"[]";for(let m=0;m<a.length;++m){let gA=a[m],FA=typeof gA==="object"&&typeof gA.value!=="undefined"?gA.value:P[gA];if(Z&&FA===null)continue;let QA=M&&j?gA.replace(/\./g,"%2E"):gA,RA=bA(P)?typeof g==="function"?g(r,QA):r:r+(M?"."+QA:"["+QA+"]");V.set(A,C);let vA=new WeakMap;vA.set(wG,V),CM(d,kM(FA,RA,g,E,F,K,Z,j,g==="comma"&&x&&bA(P)?null:U,Y,G,M,O,$,_,x,T,vA))}return d}function q4(A=IA){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let q=A.charset||IA.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=sZ;if(typeof A.format!=="undefined"){if(!rZ(nZ,A.format))throw new TypeError("Unknown format option provided.");g=A.format}let E=nZ[g],F=IA.filter;if(typeof A.filter==="function"||bA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in wM)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 new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!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==="undefined"?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 CG(A,q={}){let g=A,E=q4(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(bA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=wM[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let Y=new WeakMap;for(let O=0;O<F.length;++O){let $=F[O];if(E.skipNulls&&g[$]===null)continue;CM(Z,kM(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,Y))}let G=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 G.length>0?M+G:""}function bM(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 DM;function d6(A){let q;return(DM??(q=new globalThis.TextEncoder,DM=q.encode.bind(q)))(A)}var yM;function kG(A){let q;return(yM??(q=new globalThis.TextDecoder,yM=q.decode.bind(q)))(A)}var nA,rA;class p6{constructor(){nA.set(this,void 0),rA.set(this,void 0),s(this,nA,new Uint8Array,"f"),s(this,rA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?d6(A):A;s(this,nA,bM([L(this,nA,"f"),q]),"f");let g=[],E;while((E=E4(L(this,nA,"f"),L(this,rA,"f")))!=null){if(E.carriage&&L(this,rA,"f")==null){s(this,rA,E.index,"f");continue}if(L(this,rA,"f")!=null&&(E.index!==L(this,rA,"f")+1||E.carriage)){g.push(kG(L(this,nA,"f").subarray(0,L(this,rA,"f")-1))),s(this,nA,L(this,nA,"f").subarray(L(this,rA,"f")),"f"),s(this,rA,null,"f");continue}let F=L(this,rA,"f")!==null?E.preceding-1:E.preceding,K=kG(L(this,nA,"f").subarray(0,F));g.push(K),s(this,nA,L(this,nA,"f").subarray(E.index),"f"),s(this,rA,null,"f")}return g}flush(){if(!L(this,nA,"f").length)return[];return this.decode(`
141
- `)}}nA=new WeakMap,rA=new WeakMap;p6.NEWLINE_CHARS=new Set([`
142
- `,"\r"]);p6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function E4(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 vM(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 eZ={off:0,error:200,warn:300,info:400,debug:500},DG=(A,q,g)=>{if(!A)return;if(LM(eZ,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(eZ))}`);return};function dF(){}function oZ(A,q,g){if(!q||eZ[A]>eZ[g])return dF;else return q[A].bind(q)}var F4={error:dF,warn:dF,info:dF,debug:dF},mM=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return F4;let E=mM.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 mM.set(q,[g,F]),F}var Eg=(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 pF;class oA{constructor(A,q,g){this.iterator=A,pF.set(this,void 0),this.controller=q,s(this,pF,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 K4(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(Y){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),Y}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(Y){throw console.error("Could not parse message into JSON:",j.data),console.error("From chunk:",j.raw),Y}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(hF(j))return;throw j}finally{if(!Z)q.abort()}}return new oA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new p6,j=SG(A);for await(let U of j)for(let Y of Z.decode(U))yield Y;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(hF(j))return;throw j}finally{if(!Z)q.abort()}}return new oA(K,q,g)}[(pF=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 oA(()=>E(A),this.controller,L(this,pF,"f")),new oA(()=>E(q),this.controller,L(this,pF,"f"))]}toReadableStream(){let A=this,q;return RG({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=d6(JSON.stringify(E)+`
143
- `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*K4(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&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 fM,E=new p6,F=SG(A.body);for await(let K of Z4(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*Z4(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"?d6(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=vM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class fM{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(`
144
- `),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]=j4(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 j4(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 Aj(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 oA.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 yG(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Eg({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function yG(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 uF;class j6 extends Promise{constructor(A,q,g=Aj){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,uF.set(this,void 0),s(this,uF,A,"f")}_thenUnwrap(A){return new j6(L(this,uF,"f"),this.responsePromise,async(q,g)=>yG(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,uF,"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)}}uF=new WeakMap;var qj;class gj{constructor(A,q,g,E){qj.set(this,void 0),s(this,qj,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,qj,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(qj=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class Ej extends j6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await Aj(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Fg extends gj{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 gj{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:{...PG(this.options.query),after:q}}}}class Rg extends gj{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:{...PG(this.options.query),after:A}}}}var mG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new 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 u6(A,q,g){return mG(),new File(A,q??"unknown_file",g)}function lF(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 Fj=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",fG=async(A,q)=>{if(!bG(A.body))return A;return{...A,body:await dM(A.body,q)}},eA=async(A,q)=>{return{...A,body:await dM(A.body,q)}},cM=new WeakMap;function G4(A){let q=typeof A==="function"?A:A.fetch,g=cM.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 cM.set(q,E),E}var dM=async(A,q)=>{if(!await G4(q))throw new 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])=>vG(g,E,F))),g},pM=(A)=>A instanceof Blob&&("name"in A),Y4=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Fj(A)||pM(A)),bG=(A)=>{if(Y4(A))return!0;if(Array.isArray(A))return A.some(bG);if(A&&typeof A==="object"){for(let q in A)if(bG(A[q]))return!0}return!1},vG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new 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,u6([await g.blob()],lF(g)));else if(Fj(g))A.append(q,u6([await new Response(tZ(g)).blob()],lF(g)));else if(pM(g))A.append(q,g,lF(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>vG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>vG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var uM=(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",Q4=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&uM(A),O4=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function Kj(A,q,g){if(mG(),A=await A,Q4(A)){if(A instanceof File)return A;return u6([await A.arrayBuffer()],A.name)}if(O4(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),u6(await cG(F),q,g)}let E=await cG(A);if(q||(q=lF(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 u6(E,q,g)}async function cG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(uM(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(Fj(A))for await(let g of A)q.push(...await cG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${J4(A)}`)}return q}function J4(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class h{constructor(A){this._client=A}}function iM(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var lM=Object.freeze(Object.create(null)),_4=(A=iM)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((G,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??lM)??lM)?.toString))_=$+"",K.push({start:G.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return G+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,Y;while((Y=U.exec(j))!==null)K.push({start:Y.index,length:Y[0].length,error:`Value "${Y[0]}" can't be safely passed as a path parameter`});if(K.sort((G,M)=>G.start-M.start),K.length>0){let G=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-G),x="^".repeat($.length);return G=$.start+$.length,O+_+x},"");throw new f(`Path parameters result in path with invalid segments:
140
+ `);this.baseURL=F.baseURL,this.timeout=F.timeout??aG.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=GG(F.logLevel,"ClientOptions.logLevel",this)??GG(yF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??nJ(),f(this,oZ,oJ,"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 new 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!=="undefined").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 t(`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 ${Ig}`}defaultIdempotencyKey(){return`stainless-node-retry-${FG()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!T(this,SG,"m",PM).call(this)&&g||this.baseURL,F=mJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!fJ(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 t("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 F6(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"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(hA(this).debug(`[${U}] sending request`,eq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new bA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(oE),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new bA;let L=oq(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new eE;throw new E6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await rJ(O.body),hA(this).info(`${x} - ${p}`),hA(this).debug(`[${U}] response error (${p})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";hA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>oE(p).message),k=aZ(P),C=k?void 0:P;throw hA(this).debug(`[${U}] response error (${L})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return hA(this).info(x),hA(this).debug(`[${U}] response start`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,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 kZ(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,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}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 pJ(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 t("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)dJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=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&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...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))}:{},...sJ(),...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:hZ(A)};else return T(this,oZ,"f").call(this,{body:A,headers:g})}}aG=$A,oZ=new WeakMap,SG=new WeakSet,PM=function A(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=aG;$A.HUMAN_PROMPT=RM;$A.AI_PROMPT=SM;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=t;$A.APIError=NA;$A.APIConnectionError=E6;$A.APIConnectionTimeoutError=eE;$A.APIUserAbortError=bA;$A.NotFoundError=EF;$A.ConflictError=FF;$A.RateLimitError=ZF;$A.BadRequestError=AF;$A.AuthenticationError=qF;$A.InternalServerError=jF;$A.PermissionDeniedError=gF;$A.UnprocessableEntityError=KF;$A.toFile=DZ;class oA extends $A{constructor(){super(...arguments);this.completions=new n6(this),this.messages=new Y6(this),this.models=new r6(this),this.beta=new aq(this)}}oA.Completions=n6;oA.Messages=Y6;oA.Models=r6;oA.Beta=aq;function s(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new 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 V(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new 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 hG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return hG=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 bF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var vF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new 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 new Error(JSON.stringify(A))}catch{}}return new Error(A)};class d extends Error{}class VA extends d{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 Q6({message:g,cause:vF(q)});let F=q?.error;if(A===400)return new mF(A,F,g,E);if(A===401)return new fF(A,F,g,E);if(A===403)return new cF(A,F,g,E);if(A===404)return new dF(A,F,g,E);if(A===409)return new pF(A,F,g,E);if(A===422)return new uF(A,F,g,E);if(A===429)return new lF(A,F,g,E);if(A>=500)return new iF(A,F,g,E);return new VA(A,F,g,E)}}class IA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class Q6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class O6 extends Q6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class mF extends VA{}class fF extends VA{}class cF extends VA{}class dF extends VA{}class pF extends VA{}class uF extends VA{}class lF extends VA{}class iF extends VA{}class tF extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class sF extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Eg extends Error{constructor(A){super(A)}}var UH=/^[a-z][a-z0-9+.-]*:/i,aM=(A)=>{return UH.test(A)},vA=(A)=>(vA=Array.isArray,vA(A)),zG=vA;function BG(A){if(typeof A!=="object")return{};return A??{}}function hM(A){if(!A)return!0;for(let q in A)return!1;return!0}function zM(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function nF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var BM=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new d(`${A} must be an integer`);if(q<0)throw new d(`${A} must be a positive integer`);return q};var wM=(A)=>{try{return JSON.parse(A)}catch(q){return}};var hq=(A)=>new Promise((q)=>setTimeout(q,A));var ag="6.16.0";var yM=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function GH(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var YH=()=>{let A=GH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":kM(Deno.build.os),"X-Stainless-Arch":CM(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"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":ag,"X-Stainless-OS":kM(globalThis.process.platform??"unknown"),"X-Stainless-Arch":CM(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=QH();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"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":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function QH(){if(typeof navigator==="undefined"||!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 CM=(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"},kM=(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"},DM,bM=()=>{return DM??(DM=YH())};function vM(){if(typeof fetch!=="undefined")return fetch;throw new 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 wG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function eZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return wG({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 CG(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 mM(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 fM=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var Aj="RFC3986",kG=(A)=>String(A),qj={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:kG},DG="RFC1738";var gj=(A,q)=>(gj=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),gj(A,q)),zq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var yG=1024,cM=(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+=yG){let U=K.length>=yG?K.slice(j,j+yG):K,G=[];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===DG&&(M===40||M===41)){G[G.length]=U.charAt(Y);continue}if(M<128){G[G.length]=zq[M];continue}if(M<2048){G[G.length]=zq[192|M>>6]+zq[128|M&63];continue}if(M<55296||M>=57344){G[G.length]=zq[224|M>>12]+zq[128|M>>6&63]+zq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),G[G.length]=zq[240|M>>18]+zq[128|M>>12&63]+zq[128|M>>6&63]+zq[128|M&63]}Z+=G.join("")}return Z};function dM(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function bG(A,q){if(vA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var uM={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},lM=function(A,q){Array.prototype.push.apply(A,vA(q)?q:[q])},pM,xA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:cM,encodeValuesOnly:!1,format:Aj,formatter:kG,indices:!1,serializeDate(A){return(pM??(pM=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function MH(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var vG={};function iM(A,q,g,E,F,K,Z,j,U,G,Y,M,O,$,_,x,N,L){let P=A,k=L,C=0,i=!1;while((k=k.get(vG))!==void 0&&!i){let c=k.get(A);if(C+=1,typeof c!=="undefined")if(c===C)throw new RangeError("Cyclic object value");else i=!0;if(typeof k.get(vG)==="undefined")C=0}if(typeof G==="function")P=G(q,P);else if(P instanceof Date)P=O?.(P);else if(g==="comma"&&vA(P))P=bG(P,function(c){if(c instanceof Date)return O?.(c);return c});if(P===null){if(K)return U&&!x?U(q,xA.encoder,N,"key",$):q;P=""}if(MH(P)||dM(P)){if(U){let c=x?q:U(q,xA.encoder,N,"key",$);return[_?.(c)+"="+_?.(U(P,xA.encoder,N,"value",$))]}return[_?.(q)+"="+_?.(String(P))]}let p=[];if(typeof P==="undefined")return p;let a;if(g==="comma"&&vA(P)){if(x&&U)P=bG(P,U);a=[{value:P.length>0?P.join(",")||null:void 0}]}else if(vA(G))a=G;else{let c=Object.keys(P);a=Y?c.sort(Y):c}let z=j?String(q).replace(/\./g,"%2E"):String(q),r=E&&vA(P)&&P.length===1?z+"[]":z;if(F&&vA(P)&&P.length===0)return r+"[]";for(let c=0;c<a.length;++c){let gA=a[c],KA=typeof gA==="object"&&typeof gA.value!=="undefined"?gA.value:P[gA];if(Z&&KA===null)continue;let QA=M&&j?gA.replace(/\./g,"%2E"):gA,RA=vA(P)?typeof g==="function"?g(r,QA):r:r+(M?"."+QA:"["+QA+"]");L.set(A,C);let mA=new WeakMap;mA.set(vG,L),lM(p,iM(KA,RA,g,E,F,K,Z,j,g==="comma"&&x&&vA(P)?null:U,G,Y,M,O,$,_,x,N,mA))}return p}function _H(A=xA){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let q=A.charset||xA.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=Aj;if(typeof A.format!=="undefined"){if(!gj(qj,A.format))throw new TypeError("Unknown format option provided.");g=A.format}let E=qj[g],F=xA.filter;if(typeof A.filter==="function"||vA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in uM)K=A.arrayFormat;else if("indices"in A)K=A.indices?"indices":"repeat";else K=xA.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!A.encodeDotInKeys===!0?!0:xA.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:xA.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:xA.allowEmptyArrays,arrayFormat:K,charset:q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:xA.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter==="undefined"?xA.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:xA.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:xA.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:xA.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:xA.encodeValuesOnly,filter:F,format:g,formatter:E,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:xA.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:xA.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:xA.strictNullHandling}}function mG(A,q={}){let g=A,E=_H(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(vA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=uM[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let G=new WeakMap;for(let O=0;O<F.length;++O){let $=F[O];if(E.skipNulls&&g[$]===null)continue;lM(Z,iM(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,G))}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 nM(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 tM;function o6(A){let q;return(tM??(q=new globalThis.TextEncoder,tM=q.encode.bind(q)))(A)}var sM;function fG(A){let q;return(sM??(q=new globalThis.TextDecoder,sM=q.decode.bind(q)))(A)}var eA,Aq;class e6{constructor(){eA.set(this,void 0),Aq.set(this,void 0),s(this,eA,new Uint8Array,"f"),s(this,Aq,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?o6(A):A;s(this,eA,nM([V(this,eA,"f"),q]),"f");let g=[],E;while((E=XH(V(this,eA,"f"),V(this,Aq,"f")))!=null){if(E.carriage&&V(this,Aq,"f")==null){s(this,Aq,E.index,"f");continue}if(V(this,Aq,"f")!=null&&(E.index!==V(this,Aq,"f")+1||E.carriage)){g.push(fG(V(this,eA,"f").subarray(0,V(this,Aq,"f")-1))),s(this,eA,V(this,eA,"f").subarray(V(this,Aq,"f")),"f"),s(this,Aq,null,"f");continue}let F=V(this,Aq,"f")!==null?E.preceding-1:E.preceding,K=fG(V(this,eA,"f").subarray(0,F));g.push(K),s(this,eA,V(this,eA,"f").subarray(E.index),"f"),s(this,Aq,null,"f")}return g}flush(){if(!V(this,eA,"f").length)return[];return this.decode(`
141
+ `)}}eA=new WeakMap,Aq=new WeakMap;e6.NEWLINE_CHARS=new Set([`
142
+ `,"\r"]);e6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function XH(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 rM(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 Fj={off:0,error:200,warn:300,info:400,debug:500},cG=(A,q,g)=>{if(!A)return;if(zM(Fj,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(Fj))}`);return};function rF(){}function Ej(A,q,g){if(!q||Fj[A]>Fj[g])return rF;else return q[A].bind(q)}var HH={error:rF,warn:rF,info:rF,debug:rF},oM=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return HH;let E=oM.get(q);if(E&&E[0]===g)return E[1];let F={error:Ej("error",q,g),warn:Ej("warn",q,g),info:Ej("info",q,g),debug:Ej("debug",q,g)};return oM.set(q,[g,F]),F}var Fg=(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 oF;class qq{constructor(A,q,g){this.iterator=A,oF.set(this,void 0),this.controller=q,s(this,oF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?HA(g):console;async function*K(){if(E)throw new d("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of LH(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(G){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),G}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(G){throw console.error("Could not parse message into JSON:",j.data),console.error("From chunk:",j.raw),G}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(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new e6,j=CG(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new d("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(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}[(oF=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 qq(()=>E(A),this.controller,V(this,oF,"f")),new qq(()=>E(q),this.controller,V(this,oF,"f"))]}toReadableStream(){let A=this,q;return wG({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=o6(JSON.stringify(E)+`
143
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*LH(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new d("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 d("Attempted to iterate over a response with no body")}let g=new eM,E=new e6,F=CG(A.body);for await(let K of VH(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*VH(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"?o6(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=rM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class eM{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(`
144
+ `),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]=WH(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 WH(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 Kj(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 qq.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 dG(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Fg({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function dG(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 eF;class J6 extends Promise{constructor(A,q,g=Kj){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,eF.set(this,void 0),s(this,eF,A,"f")}_thenUnwrap(A){return new J6(V(this,eF,"f"),this.responsePromise,async(q,g)=>dG(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(V(this,eF,"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)}}eF=new WeakMap;var Zj;class jj{constructor(A,q,g,E){Zj.set(this,void 0),s(this,Zj,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 d("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await V(this,Zj,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(Zj=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class Uj extends J6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await Kj(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Kg extends jj{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 jj{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:{...BG(this.options.query),after:q}}}}class hg extends jj{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:{...BG(this.options.query),after:A}}}}var lG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new 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 AE(A,q,g){return lG(),new File(A,q??"unknown_file",g)}function AK(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 Gj=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",iG=async(A,q)=>{if(!pG(A.body))return A;return{...A,body:await q9(A.body,q)}},gq=async(A,q)=>{return{...A,body:await q9(A.body,q)}},A9=new WeakMap;function TH(A){let q=typeof A==="function"?A:A.fetch,g=A9.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 A9.set(q,E),E}var q9=async(A,q)=>{if(!await TH(q))throw new 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])=>uG(g,E,F))),g},g9=(A)=>A instanceof Blob&&("name"in A),IH=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Gj(A)||g9(A)),pG=(A)=>{if(IH(A))return!0;if(Array.isArray(A))return A.some(pG);if(A&&typeof A==="object"){for(let q in A)if(pG(A[q]))return!0}return!1},uG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new 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,AE([await g.blob()],AK(g)));else if(Gj(g))A.append(q,AE([await new Response(eZ(g)).blob()],AK(g)));else if(g9(g))A.append(q,g,AK(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>uG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>uG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var E9=(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",xH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&E9(A),PH=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function Yj(A,q,g){if(lG(),A=await A,xH(A)){if(A instanceof File)return A;return AE([await A.arrayBuffer()],A.name)}if(PH(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),AE(await tG(F),q,g)}let E=await tG(A);if(q||(q=AK(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 AE(E,q,g)}async function tG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(E9(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(Gj(A))for await(let g of A)q.push(...await tG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${RH(A)}`)}return q}function RH(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class h{constructor(A){this._client=A}}function K9(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var F9=Object.freeze(Object.create(null)),aH=(A=K9)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??F9)??F9)?.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+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[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((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new d(`Path parameters result in path with invalid segments:
145
145
  ${K.map((O)=>O.error).join(`
146
146
  `)}
147
147
  ${Z}
148
- ${M}`)}return Z},R=_4(iM);class l6 extends h{list(A,q={},g){return this._client.getAPIList(R`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function iF(A){return A!==void 0&&"function"in A&&A.function!==void 0}function tF(A){return A?.$brand==="auto-parseable-response-format"}function U6(A){return A?.$brand==="auto-parseable-tool"}function tM(A,q){if(!q||!dG(q))return{...A,choices:A.choices.map((g)=>{return nM(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return sF(A,q)}function sF(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new mF;if(E.finish_reason==="content_filter")throw new fF;return nM(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>L4(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?H4(q,E.message.content):null}}});return{...A,choices:g}}function H4(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 L4(A,q){let g=A.tools?.find((E)=>iF(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:U6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function sM(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>iF(E)&&E.function?.name===q.function.name);return iF(g)&&(U6(g)||g?.function.strict||!1)}function dG(A){if(tF(A.response_format))return!0;return A.tools?.some((q)=>U6(q)||q.type==="function"&&q.function.strict===!0)??!1}function nM(A){for(let q of A||[])if(q.type!=="function")throw new f(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function rM(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 i6=(A)=>{return A?.role==="assistant"},pG=(A)=>{return A?.role==="tool"};var uG,Zj,jj,nF,rF,Uj,oF,Kg,eF,Gj,Yj,t6,oM;class G6{constructor(){uG.add(this),this.controller=new AbortController,Zj.set(this,void 0),jj.set(this,()=>{}),nF.set(this,()=>{}),rF.set(this,void 0),Uj.set(this,()=>{}),oF.set(this,()=>{}),Kg.set(this,{}),eF.set(this,!1),Gj.set(this,!1),Yj.set(this,!1),t6.set(this,!1),s(this,Zj,new Promise((A,q)=>{s(this,jj,A,"f"),s(this,nF,q,"f")}),"f"),s(this,rF,new Promise((A,q)=>{s(this,Uj,A,"f"),s(this,oF,q,"f")}),"f"),L(this,Zj,"f").catch(()=>{}),L(this,rF,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},L(this,uG,"m",oM).bind(this))},0)}_connected(){if(this.ended)return;L(this,jj,"f").call(this),this._emit("connect")}get ended(){return L(this,eF,"f")}get errored(){return L(this,Gj,"f")}get aborted(){return L(this,Yj,"f")}abort(){this.controller.abort()}on(A,q){return(L(this,Kg,"f")[A]||(L(this,Kg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=L(this,Kg,"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,Kg,"f")[A]||(L(this,Kg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(s(this,t6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){s(this,t6,!0,"f"),await L(this,rF,"f")}_emit(A,...q){if(L(this,eF,"f"))return;if(A==="end")s(this,eF,!0,"f"),L(this,Uj,"f").call(this);let g=L(this,Kg,"f")[A];if(g)L(this,Kg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!L(this,t6,"f")&&!g?.length)Promise.reject(E);L(this,nF,"f").call(this,E),L(this,oF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!L(this,t6,"f")&&!g?.length)Promise.reject(E);L(this,nF,"f").call(this,E),L(this,oF,"f").call(this,E),this._emit("end")}}_emitFinal(){}}Zj=new WeakMap,jj=new WeakMap,nF=new WeakMap,rF=new WeakMap,Uj=new WeakMap,oF=new WeakMap,Kg=new WeakMap,eF=new WeakMap,Gj=new WeakMap,Yj=new WeakMap,t6=new WeakMap,uG=new WeakSet,oM=function A(q){if(s(this,Gj,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new xA;if(q instanceof xA)return s(this,Yj,!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 eM(A){return typeof A.parse==="function"}var dA,lG,Qj,iG,tG,sG,A_,q_,V4=10;class AK extends G6{constructor(){super(...arguments);dA.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),pG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(i6(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,dA,"m",lG).call(this)}async finalMessage(){return await this.done(),L(this,dA,"m",Qj).call(this)}async finalFunctionToolCall(){return await this.done(),L(this,dA,"m",iG).call(this)}async finalFunctionToolCallResult(){return await this.done(),L(this,dA,"m",tG).call(this)}async totalUsage(){return await this.done(),L(this,dA,"m",sG).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,dA,"m",Qj).call(this);if(q)this._emit("finalMessage",q);let g=L(this,dA,"m",lG).call(this);if(g)this._emit("finalContent",g);let E=L(this,dA,"m",iG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=L(this,dA,"m",tG).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",L(this,dA,"m",sG).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,dA,"m",A_).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(sF(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=V4}=g||{},Y=q.tools.map((O)=>{if(U6(O)){if(!O.$callback)throw new f("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:O.$callback,name:O.function.name,description:O.function.description||"",parameters:O.function.parameters,parse:O.$parseRaw,strict:!0}}}return O}),G={};for(let O of Y)if(O.type==="function")G[O.function.name||O.function.function.name]=O.function;let M="tools"in q?Y.map((O)=>O.type==="function"?{type:"function",function:{name:O.function.name||O.function.function.name,parameters:O.function.parameters,description:O.function.description,strict:O.function.strict}}:O):void 0;for(let O of q.messages)this._addMessage(O,!1);for(let O=0;O<U;++O){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 x of _.tool_calls){if(x.type!=="function")continue;let T=x.id,{name:V,arguments:P}=x.function,k=G[V];if(!k){let a=`Invalid tool_call: ${JSON.stringify(V)}. Available options are: ${Object.keys(G).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:T,content:a});continue}else if(j&&j!==V){let a=`Invalid tool_call: ${JSON.stringify(V)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:T,content:a});continue}let C;try{C=eM(k)?await k.parse(P):P}catch(a){let z=a instanceof Error?a.message:String(a);this._addMessage({role:"tool",tool_call_id:T,content:z});continue}let i=await k.function(C,this),d=L(this,dA,"m",q_).call(this,i);if(this._addMessage({role:"tool",tool_call_id:T,content:d}),j)return}}return}}dA=new WeakSet,lG=function A(){return L(this,dA,"m",Qj).call(this).content??null},Qj=function A(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(i6(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new f("stream ended without producing a ChatCompletionMessage with role=assistant")},iG=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(i6(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},tG=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(pG(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},sG=function A(){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},A_=function A(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.")},q_=function A(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class qK extends AK{static runTools(A,q,g){let E=new qK,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),i6(A)&&A.content)this._emit("content",A.content)}}var zA={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 g_ extends Error{}class E_ extends Error{}function W4(A,q=zA.ALL){if(typeof A!=="string")throw new TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw new Error(`${A} is empty`);return N4(A.trim(),q)}var N4=(A,q)=>{let g=A.length,E=0,F=(O)=>{throw new g_(`${O} at position ${E}`)},K=(O)=>{throw new E_(`${O} 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 Y();if(A.substring(E,E+4)==="null"||zA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||zA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||zA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||zA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||zA.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"||zA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return G()},j=()=>{let O=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(O,++E-Number($)))}catch(_){K(String(_))}else if(zA.STR&q)try{return JSON.parse(A.substring(O,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(O,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let O={};try{while(A[E]!=="}"){if(M(),E>=g&&zA.OBJ&q)return O;let $=j();M(),E++;try{let _=Z();Object.defineProperty(O,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(zA.OBJ&q)return O;else throw _}if(M(),A[E]===",")E++}}catch($){if(zA.OBJ&q)return O;else F("Expected '}' at end of object")}return E++,O},Y=()=>{E++;let O=[];try{while(A[E]!=="]")if(O.push(Z()),M(),A[E]===",")E++}catch($){if(zA.ARR&q)return O;F("Expected ']' at end of array")}return E++,O},G=()=>{if(E===0){if(A==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(zA.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 O=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(zA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(O,E))}catch($){if(A.substring(O,E)==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(O,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
149
- \r\t`.includes(A[E]))E++};return Z()},nG=(A)=>W4(A,zA.ALL^zA.NUM);var PA,Zg,s6,Sg,rG,Oj,oG,eG,AY,Jj,qY,F_;class ag extends AK{constructor(A){super();PA.add(this),Zg.set(this,void 0),s6.set(this,void 0),Sg.set(this,void 0),s(this,Zg,A,"f"),s(this,s6,[],"f")}get currentChatCompletionSnapshot(){return L(this,Sg,"f")}static fromReadableStream(A){let q=new ag(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new ag(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,PA,"m",rG).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,PA,"m",oG).call(this,K);if(F.controller.signal?.aborted)throw new xA;return this._addChatCompletion(L(this,PA,"m",Jj).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,PA,"m",rG).call(this),this._connected();let E=oA.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(L(this,PA,"m",Jj).call(this));L(this,PA,"m",oG).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new xA;return this._addChatCompletion(L(this,PA,"m",Jj).call(this))}[(Zg=new WeakMap,s6=new WeakMap,Sg=new WeakMap,PA=new WeakSet,rG=function A(){if(this.ended)return;s(this,Sg,void 0,"f")},Oj=function A(q){let g=L(this,s6,"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,s6,"f")[q.index]=g,g},oG=function A(q){if(this.ended)return;let g=L(this,PA,"m",F_).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,PA,"m",Oj).call(this,F);if(F.finish_reason){if(L(this,PA,"m",AY).call(this,F),K.current_tool_call_index!=null)L(this,PA,"m",eG).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,PA,"m",AY).call(this,F),K.current_tool_call_index!=null)L(this,PA,"m",eG).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 Z_(j?.type)}}},eG=function A(q,g){if(L(this,PA,"m",Oj).call(this,q).done_tool_calls.has(g))return;let F=q.message.tool_calls?.[g];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let K=L(this,Zg,"f")?.tools?.find((Z)=>iF(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:U6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else Z_(F.type)},AY=function A(q){let g=L(this,PA,"m",Oj).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=L(this,PA,"m",qY).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})},Jj=function A(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let q=L(this,Sg,"f");if(!q)throw new f("request ended without sending any chunks");return s(this,Sg,void 0,"f"),s(this,s6,[],"f"),T4(q,L(this,Zg,"f"))},qY=function A(){let q=L(this,Zg,"f")?.response_format;if(tF(q))return q;return null},F_=function A(q){var g,E,F,K;let Z=L(this,Sg,"f"),{choices:j,...U}=q;if(!Z)Z=s(this,Sg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:Y,finish_reason:G,index:M,logprobs:O=null,...$}of q.choices){let _=Z.choices[M];if(!_)_=Z.choices[M]={finish_reason:G,index:M,message:{},logprobs:O,...$};if(O)if(!_.logprobs)_.logprobs=Object.assign({},O);else{let{content:i,refusal:d,...a}=O;if(K_(a),Object.assign(_.logprobs,a),i)(g=_.logprobs).content??(g.content=[]),_.logprobs.content.push(...i);if(d)(E=_.logprobs).refusal??(E.refusal=[]),_.logprobs.refusal.push(...d)}if(G){if(_.finish_reason=G,L(this,Zg,"f")&&dG(L(this,Zg,"f"))){if(G==="length")throw new mF;if(G==="content_filter")throw new fF}}if(Object.assign(_,$),!Y)continue;let{content:x,refusal:T,function_call:V,role:P,tool_calls:k,...C}=Y;if(K_(C),Object.assign(_.message,C),T)_.message.refusal=(_.message.refusal||"")+T;if(P)_.message.role=P;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(x){if(_.message.content=(_.message.content||"")+x,!_.message.refusal&&L(this,PA,"m",qY).call(this))_.message.parsed=nG(_.message.content)}if(k){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:i,id:d,type:a,function:z,...r}of k){let m=(K=_.message.tool_calls)[i]??(K[i]={});if(Object.assign(m,r),d)m.id=d;if(a)m.type=a;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,sM(L(this,Zg,"f"),m))m.function.parsed_arguments=nG(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 oA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function T4(A,q){let{id:g,choices:E,created:F,model:K,system_fingerprint:Z,...j}=A,U={...j,id:g,choices:E.map(({message:Y,finish_reason:G,index:M,logprobs:O,...$})=>{if(!G)throw new f(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:x,tool_calls:T,...V}=Y,P=Y.role;if(!P)throw new f(`missing role for choice ${M}`);if(x){let{arguments:k,name:C}=x;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:P,refusal:Y.refusal??null},finish_reason:G,index:M,logprobs:O}}if(T)return{...$,index:M,finish_reason:G,logprobs:O,message:{...V,role:P,content:_,refusal:Y.refusal??null,tool_calls:T.map((k,C)=>{let{function:i,type:d,id:a,...z}=k,{arguments:r,name:m,...gA}=i||{};if(a==null)throw new f(`missing choices[${M}].tool_calls[${C}].id
150
- ${Mj(A)}`);if(d==null)throw new f(`missing choices[${M}].tool_calls[${C}].type
151
- ${Mj(A)}`);if(m==null)throw new f(`missing choices[${M}].tool_calls[${C}].function.name
152
- ${Mj(A)}`);if(r==null)throw new f(`missing choices[${M}].tool_calls[${C}].function.arguments
153
- ${Mj(A)}`);return{...z,id:a,type:d,function:{...gA,name:m,arguments:r}}})}};return{...$,message:{...V,content:_,role:P,refusal:Y.refusal??null},finish_reason:G,index:M,logprobs:O}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return tM(U,q)}function Mj(A){return JSON.stringify(A)}function K_(A){return}function Z_(A){}class n6 extends ag{static fromReadableStream(A){let q=new n6(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new n6(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class hg extends h{constructor(){super(...arguments);this.messages=new l6(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(R`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(R`/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(R`/chat/completions/${A}`,q)}parse(A,q){return rM(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>sF(g,A))}runTools(A,q){if(A.stream)return n6.runTools(this._client,A,q);return qK.runTools(this._client,A,q)}stream(A,q){return ag.createChatCompletion(this._client,A,q)}}hg.Messages=l6;class Y6 extends h{constructor(){super(...arguments);this.completions=new hg(this._client)}}Y6.Completions=hg;var j_=Symbol("brand.privateNullableHeaders");function*I4(A){if(!A)return;if(j_ 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(IG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=IG(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 I4(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{[j_]:!0,values:q,nulls:g}};class gK extends h{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class EK extends h{create(A,q){return this._client.post("/audio/transcriptions",eA({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class FK extends h{create(A,q){return this._client.post("/audio/translations",eA({body:A,...q,__metadata:{model:A.model}},this._client))}}class jg extends h{constructor(){super(...arguments);this.transcriptions=new EK(this._client),this.translations=new FK(this._client),this.speech=new gK(this._client)}}jg.Transcriptions=EK;jg.Translations=FK;jg.Speech=gK;class r6 extends h{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(R`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/batches/${A}/cancel`,q)}}class KK extends h{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(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/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(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class ZK extends h{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class jK extends h{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class Q6 extends h{constructor(){super(...arguments);this.sessions=new ZK(this._client),this.transcriptionSessions=new jK(this._client)}}Q6.Sessions=ZK;Q6.TranscriptionSessions=jK;class UK extends h{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(R`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class GK extends h{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",Rg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(R`/chatkit/threads/${A}/items`,Rg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class O6 extends h{constructor(){super(...arguments);this.sessions=new UK(this._client),this.threads=new GK(this._client)}}O6.Sessions=UK;O6.Threads=GK;class YK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class QK extends h{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(R`/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(R`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var U_=(A)=>{if(typeof Buffer!=="undefined"){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 zg=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var CA,M6,gY,zq,_j,Wq,_6,o6,J6,Hj,Aq,$j,Xj,MK,OK,JK,G_,Y_,Q_,O_,J_,M_,__;class Bg extends G6{constructor(){super(...arguments);CA.add(this),gY.set(this,[]),zq.set(this,{}),_j.set(this,{}),Wq.set(this,void 0),_6.set(this,void 0),o6.set(this,void 0),J6.set(this,void 0),Hj.set(this,void 0),Aq.set(this,void 0),$j.set(this,void 0),Xj.set(this,void 0),MK.set(this,void 0)}[(gY=new WeakMap,zq=new WeakMap,_j=new WeakMap,Wq=new WeakMap,_6=new WeakMap,o6=new WeakMap,J6=new WeakMap,Hj=new WeakMap,Aq=new WeakMap,$j=new WeakMap,Xj=new WeakMap,MK=new WeakMap,CA=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 M6;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=oA.fromReadableStream(A,this.controller);for await(let F of E)L(this,CA,"m",OK).call(this,F);if(E.controller.signal?.aborted)throw new xA;return this._addRun(L(this,CA,"m",JK).call(this))}toReadableStream(){return new oA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new M6;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,CA,"m",OK).call(this,j);if(Z.controller.signal?.aborted)throw new xA;return this._addRun(L(this,CA,"m",JK).call(this))}static createThreadAssistantStream(A,q,g){let E=new M6;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 M6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return L(this,$j,"f")}currentRun(){return L(this,Xj,"f")}currentMessageSnapshot(){return L(this,Wq,"f")}currentRunStepSnapshot(){return L(this,MK,"f")}async finalRunSteps(){return await this.done(),Object.values(L(this,zq,"f"))}async finalMessages(){return await this.done(),Object.values(L(this,_j,"f"))}async finalRun(){if(await this.done(),!L(this,_6,"f"))throw Error("Final run was not received.");return L(this,_6,"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,CA,"m",OK).call(this,Z);if(K.controller.signal?.aborted)throw new xA;return this._addRun(L(this,CA,"m",JK).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,CA,"m",OK).call(this,j);if(Z.controller.signal?.aborted)throw new xA;return this._addRun(L(this,CA,"m",JK).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 new Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),new Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw new 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)}}M6=Bg,OK=function A(q){if(this.ended)return;switch(s(this,$j,q,"f"),L(this,CA,"m",Q_).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,CA,"m",__).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,CA,"m",Y_).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,CA,"m",G_).call(this,q);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:b4(q)}},JK=function A(){if(this.ended)throw new f("stream has ended, this shouldn't happen");if(!L(this,_6,"f"))throw Error("Final run has not been received");return L(this,_6,"f")},G_=function A(q){let[g,E]=L(this,CA,"m",J_).call(this,q,L(this,Wq,"f"));s(this,Wq,g,"f"),L(this,_j,"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,o6,"f")){if(L(this,J6,"f"))switch(L(this,J6,"f").type){case"text":this._emit("textDone",L(this,J6,"f").text,L(this,Wq,"f"));break;case"image_file":this._emit("imageFileDone",L(this,J6,"f").image_file,L(this,Wq,"f"));break}s(this,o6,F.index,"f")}s(this,J6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(L(this,o6,"f")!==void 0){let F=q.data.content[L(this,o6,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,L(this,Wq,"f"));break;case"text":this._emit("textDone",F.text,L(this,Wq,"f"));break}}if(L(this,Wq,"f"))this._emit("messageDone",q.data);s(this,Wq,void 0,"f")}},Y_=function A(q){let g=L(this,CA,"m",O_).call(this,q);switch(s(this,MK,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,Hj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(L(this,Aq,"f"))this._emit("toolCallDone",L(this,Aq,"f"));if(s(this,Hj,K.index,"f"),s(this,Aq,g.step_details.tool_calls[K.index],"f"),L(this,Aq,"f"))this._emit("toolCallCreated",L(this,Aq,"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(s(this,MK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(L(this,Aq,"f"))this._emit("toolCallDone",L(this,Aq,"f")),s(this,Aq,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},Q_=function A(q){L(this,gY,"f").push(q),this._emit("event",q)},O_=function A(q){switch(q.event){case"thread.run.step.created":return L(this,zq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=L(this,zq,"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=M6.accumulateDelta(g,E.delta);L(this,zq,"f")[q.data.id]=F}return L(this,zq,"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,zq,"f")[q.data.id]=q.data;break}if(L(this,zq,"f")[q.data.id])return L(this,zq,"f")[q.data.id];throw new Error("No snapshot available")},J_=function A(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,CA,"m",M_).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")},M_=function A(q,g){return M6.accumulateDelta(g,q)},__=function A(q){switch(s(this,Xj,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(s(this,_6,q.data,"f"),L(this,Aq,"f"))this._emit("toolCallDone",L(this,Aq,"f")),s(this,Aq,void 0,"f");break;case"thread.run.cancelling":break}};function b4(A){}class e6 extends h{constructor(){super(...arguments);this.steps=new QK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/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(R`/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(R`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/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 Bg.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 Bg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/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 Bg.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}e6.Steps=QK;class $6 extends h{constructor(){super(...arguments);this.runs=new e6(this._client),this.messages=new YK(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(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/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 Bg.createThreadAssistantStream(A,this._client.beta.threads,q)}}$6.Runs=e6;$6.Messages=YK;class Bq extends h{constructor(){super(...arguments);this.realtime=new Q6(this._client),this.chatkit=new O6(this._client),this.assistants=new KK(this._client),this.threads=new $6(this._client)}}Bq.Realtime=Q6;Bq.ChatKit=O6;Bq.Assistants=KK;Bq.Threads=$6;class AE extends h{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class _K extends h{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class qE extends h{constructor(){super(...arguments);this.content=new _K(this._client)}create(A,q,g){return this._client.post(R`/containers/${A}/files`,eA({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(R`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}qE.Content=_K;class X6 extends h{constructor(){super(...arguments);this.files=new qE(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(R`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}X6.Files=qE;class $K extends h{create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(R`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(R`/conversations/${A}/items`,Rg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(R`/conversations/${E}/items/${A}`,g)}}class H6 extends h{constructor(){super(...arguments);this.items=new $K(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(R`/conversations/${A}`,q)}update(A,q,g){return this._client.post(R`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(R`/conversations/${A}`,q)}}H6.Items=$K;class gE extends h{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=U_(j)});return K})}}class XK extends h{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(R`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(R`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class EE extends h{constructor(){super(...arguments);this.outputItems=new XK(this._client)}create(A,q,g){return this._client.post(R`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(R`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(R`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(R`/evals/${E}/runs/${A}`,g)}}EE.OutputItems=XK;class L6 extends h{constructor(){super(...arguments);this.runs=new EE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(R`/evals/${A}`,q)}update(A,q,g){return this._client.post(R`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/evals/${A}`,q)}}L6.Runs=EE;class FE extends h{create(A,q){return this._client.post("/files",eA({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/files/${A}`,q)}content(A,q){return this._client.get(R`/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 Z6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class HK extends h{}class LK extends h{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 KE extends h{constructor(){super(...arguments);this.graders=new LK(this._client)}}KE.Graders=LK;class VK extends h{create(A,q,g){return this._client.getAPIList(R`/fine_tuning/checkpoints/${A}/permissions`,Fg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(R`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(R`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class ZE extends h{constructor(){super(...arguments);this.permissions=new VK(this._client)}}ZE.Permissions=VK;class WK extends h{list(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class jE extends h{constructor(){super(...arguments);this.checkpoints=new WK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(R`/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(R`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/resume`,q)}}jE.Checkpoints=WK;class wq extends h{constructor(){super(...arguments);this.methods=new HK(this._client),this.jobs=new jE(this._client),this.checkpoints=new ZE(this._client),this.alpha=new KE(this._client)}}wq.Methods=HK;wq.Jobs=jE;wq.Checkpoints=ZE;wq.Alpha=KE;class NK extends h{}class V6 extends h{constructor(){super(...arguments);this.graderModels=new NK(this._client)}}V6.GraderModels=NK;class UE extends h{createVariation(A,q){return this._client.post("/images/variations",eA({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",eA({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 GE extends h{retrieve(A,q){return this._client.get(R`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",Fg,A)}delete(A,q){return this._client.delete(R`/models/${A}`,q)}}class YE extends h{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class TK extends h{accept(A,q,g){return this._client.post(R`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class xK extends h{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class wg extends h{constructor(){super(...arguments);this.clientSecrets=new xK(this._client),this.calls=new TK(this._client)}}wg.ClientSecrets=xK;wg.Calls=TK;function $_(A,q){if(!q||!E1(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 EY(A,q)}function EY(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:Z1(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:g1(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Lj(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 g1(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 E1(A){if(tF(A.text?.format))return!0;return!1}function F1(A){return A?.$brand==="auto-parseable-tool"}function K1(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function Z1(A,q){let g=K1(A.tools??[],q.name);return{...q,...q,parsed_arguments:F1(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Lj(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 QE,Vj,Cg,Wj,X_,H_,L_,V_;class Nj extends G6{constructor(A){super();QE.add(this),Vj.set(this,void 0),Cg.set(this,void 0),Wj.set(this,void 0),s(this,Vj,A,"f")}static createResponse(A,q,g){let E=new Nj(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,QE,"m",X_).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,QE,"m",H_).call(this,Z,K);if(F.controller.signal?.aborted)throw new xA;return L(this,QE,"m",L_).call(this)}[(Vj=new WeakMap,Cg=new WeakMap,Wj=new WeakMap,QE=new WeakSet,X_=function A(){if(this.ended)return;s(this,Cg,void 0,"f")},H_=function A(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=L(this,QE,"m",V_).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}},L_=function A(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let q=L(this,Cg,"f");if(!q)throw new f("request ended without sending any events");s(this,Cg,void 0,"f");let g=j1(q,L(this,Vj,"f"));return s(this,Wj,g,"f"),g},V_=function A(q){let g=L(this,Cg,"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=s(this,Cg,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":{s(this,Cg,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,Wj,"f");if(!A)throw new f("stream ended without producing a ChatCompletion");return A}}function j1(A,q){return $_(A,q)}class IK extends h{list(A,q={},g){return this._client.getAPIList(R`/responses/${A}/input_items`,EA,{query:q,...g})}}class PK extends h{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class kg extends h{constructor(){super(...arguments);this.inputItems=new IK(this._client),this.inputTokens=new PK(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")Lj(g);return g})}retrieve(A,q={},g){return this._client.get(R`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Lj(E);return E})}delete(A,q){return this._client.delete(R`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>EY(g,A))}stream(A,q){return Nj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(R`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}kg.InputItems=IK;kg.InputTokens=PK;class RK extends h{create(A,q,g){return this._client.post(R`/uploads/${A}/parts`,eA({body:q,...g},this._client))}}class W6 extends h{constructor(){super(...arguments);this.parts=new RK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(R`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(R`/uploads/${A}/complete`,{body:q,...g})}}W6.Parts=RK;var W_=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 new 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 SK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/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(R`/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 new 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 Y(M){for(let O of M){let $=await Z.files.create({file:O,purpose:"assistants"},E);U.push($.id)}}let G=Array(K).fill(j).map(Y);return await W_(G),await this.createAndPoll(A,{file_ids:U})}}class aK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/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(R`/vector_stores/${E}/files/${A}/content`,Fg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class Dg extends h{constructor(){super(...arguments);this.files=new aK(this._client),this.fileBatches=new SK(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(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/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(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(R`/vector_stores/${A}/search`,Fg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}Dg.Files=aK;Dg.FileBatches=SK;class OE extends h{create(A,q){return this._client.post("/videos",fG({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",Rg,{query:A,...q})}delete(A,q){return this._client.delete(R`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(R`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(R`/videos/${A}/remix`,fG({body:q,...g},this._client))}}var JE,N_,Tj;class ME extends h{constructor(){super(...arguments);JE.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==="undefined"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");L(this,JE,"m",N_).call(this,g);let F=D([q]).values,K=L(this,JE,"m",Tj).call(this,F,"webhook-signature"),Z=L(this,JE,"m",Tj).call(this,F,"webhook-timestamp"),j=L(this,JE,"m",Tj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new gg("Invalid webhook timestamp format");let Y=Math.floor(Date.now()/1000);if(Y-U>E)throw new gg("Webhook timestamp is too old");if(U>Y+E)throw new gg("Webhook timestamp is too new");let G=K.split(" ").map((_)=>_.startsWith("v1,")?_.substring(3):_),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),O=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let _ of G)try{let x=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,x,new TextEncoder().encode(O)))return}catch{continue}throw new gg("The given webhook signature does not match the expected signature")}}JE=new WeakSet,N_=function A(q){if(typeof q!=="string"||q.length===0)throw new 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")},Tj=function A(q,g){if(!q)throw new Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw new Error(`Missing required header: ${g}`);return E};var FY,KY,xj,T_;class e{constructor({baseURL:A=zg("OPENAI_BASE_URL"),apiKey:q=zg("OPENAI_API_KEY"),organization:g=zg("OPENAI_ORG_ID")??null,project:E=zg("OPENAI_PROJECT_ID")??null,webhookSecret:F=zg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(FY.add(this),xj.set(this,void 0),this.completions=new AE(this),this.chat=new Y6(this),this.embeddings=new gE(this),this.files=new FE(this),this.images=new UE(this),this.audio=new jg(this),this.moderations=new YE(this),this.models=new GE(this),this.fineTuning=new wq(this),this.graders=new V6(this),this.vectorStores=new Dg(this),this.webhooks=new ME(this),this.beta=new Bq(this),this.batches=new r6(this),this.uploads=new W6(this),this.responses=new kg(this),this.realtime=new wg(this),this.conversations=new H6(this),this.evals=new L6(this),this.containers=new X6(this),this.videos=new OE(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&&IM())throw new f(`It looks like you're running in a browser-like environment.
148
+ ${M}`)}return Z},R=aH(K9);class qE extends h{list(A,q={},g){return this._client.getAPIList(R`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function qK(A){return A!==void 0&&"function"in A&&A.function!==void 0}function gK(A){return A?.$brand==="auto-parseable-response-format"}function M6(A){return A?.$brand==="auto-parseable-tool"}function Z9(A,q){if(!q||!sG(q))return{...A,choices:A.choices.map((g)=>{return U9(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return EK(A,q)}function EK(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new tF;if(E.finish_reason==="content_filter")throw new sF;return U9(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>wH(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?BH(q,E.message.content):null}}});return{...A,choices:g}}function BH(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 wH(A,q){let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:M6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function j9(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return qK(g)&&(M6(g)||g?.function.strict||!1)}function sG(A){if(gK(A.response_format))return!0;return A.tools?.some((q)=>M6(q)||q.type==="function"&&q.function.strict===!0)??!1}function U9(A){for(let q of A||[])if(q.type!=="function")throw new d(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function G9(A){for(let q of A??[]){if(q.type!=="function")throw new d(`Currently only \`function\` tool types support auto-parsing; Received \`${q.type}\``);if(q.function.strict!==!0)throw new d(`The \`${q.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var gE=(A)=>{return A?.role==="assistant"},nG=(A)=>{return A?.role==="tool"};var rG,Qj,Oj,FK,KK,Jj,ZK,Zg,jK,Mj,_j,EE,Y9;class _6{constructor(){rG.add(this),this.controller=new AbortController,Qj.set(this,void 0),Oj.set(this,()=>{}),FK.set(this,()=>{}),KK.set(this,void 0),Jj.set(this,()=>{}),ZK.set(this,()=>{}),Zg.set(this,{}),jK.set(this,!1),Mj.set(this,!1),_j.set(this,!1),EE.set(this,!1),s(this,Qj,new Promise((A,q)=>{s(this,Oj,A,"f"),s(this,FK,q,"f")}),"f"),s(this,KK,new Promise((A,q)=>{s(this,Jj,A,"f"),s(this,ZK,q,"f")}),"f"),V(this,Qj,"f").catch(()=>{}),V(this,KK,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},V(this,rG,"m",Y9).bind(this))},0)}_connected(){if(this.ended)return;V(this,Oj,"f").call(this),this._emit("connect")}get ended(){return V(this,jK,"f")}get errored(){return V(this,Mj,"f")}get aborted(){return V(this,_j,"f")}abort(){this.controller.abort()}on(A,q){return(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=V(this,Zg,"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(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(s(this,EE,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){s(this,EE,!0,"f"),await V(this,KK,"f")}_emit(A,...q){if(V(this,jK,"f"))return;if(A==="end")s(this,jK,!0,"f"),V(this,Jj,"f").call(this);let g=V(this,Zg,"f")[A];if(g)V(this,Zg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end")}}_emitFinal(){}}Qj=new WeakMap,Oj=new WeakMap,FK=new WeakMap,KK=new WeakMap,Jj=new WeakMap,ZK=new WeakMap,Zg=new WeakMap,jK=new WeakMap,Mj=new WeakMap,_j=new WeakMap,EE=new WeakMap,rG=new WeakSet,Y9=function A(q){if(s(this,Mj,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new IA;if(q instanceof IA)return s(this,_j,!0,"f"),this._emit("abort",q);if(q instanceof d)return this._emit("error",q);if(q instanceof Error){let g=new d(q.message);return g.cause=q,this._emit("error",g)}return this._emit("error",new d(String(q)))};function Q9(A){return typeof A.parse==="function"}var pA,oG,$j,eG,AY,qY,O9,J9,CH=10;class UK extends _6{constructor(){super(...arguments);pA.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),nG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(gE(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 d("stream ended without producing a ChatCompletion");return A}async finalContent(){return await this.done(),V(this,pA,"m",oG).call(this)}async finalMessage(){return await this.done(),V(this,pA,"m",$j).call(this)}async finalFunctionToolCall(){return await this.done(),V(this,pA,"m",eG).call(this)}async finalFunctionToolCallResult(){return await this.done(),V(this,pA,"m",AY).call(this)}async totalUsage(){return await this.done(),V(this,pA,"m",qY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let A=this._chatCompletions[this._chatCompletions.length-1];if(A)this._emit("finalChatCompletion",A);let q=V(this,pA,"m",$j).call(this);if(q)this._emit("finalMessage",q);let g=V(this,pA,"m",oG).call(this);if(g)this._emit("finalContent",g);let E=V(this,pA,"m",eG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=V(this,pA,"m",AY).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",V(this,pA,"m",qY).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())}V(this,pA,"m",O9).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(EK(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=CH}=g||{},G=q.tools.map((O)=>{if(M6(O)){if(!O.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:O.$callback,name:O.function.name,description:O.function.description||"",parameters:O.function.parameters,parse:O.$parseRaw,strict:!0}}}return O}),Y={};for(let O of G)if(O.type==="function")Y[O.function.name||O.function.function.name]=O.function;let M="tools"in q?G.map((O)=>O.type==="function"?{type:"function",function:{name:O.function.name||O.function.function.name,parameters:O.function.parameters,description:O.function.description,strict:O.function.strict}}:O):void 0;for(let O of q.messages)this._addMessage(O,!1);for(let O=0;O<U;++O){let _=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!_)throw new d("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let x of _.tool_calls){if(x.type!=="function")continue;let N=x.id,{name:L,arguments:P}=x.function,k=Y[L];if(!k){let a=`Invalid tool_call: ${JSON.stringify(L)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}else if(j&&j!==L){let a=`Invalid tool_call: ${JSON.stringify(L)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}let C;try{C=Q9(k)?await k.parse(P):P}catch(a){let z=a instanceof Error?a.message:String(a);this._addMessage({role:"tool",tool_call_id:N,content:z});continue}let i=await k.function(C,this),p=V(this,pA,"m",J9).call(this,i);if(this._addMessage({role:"tool",tool_call_id:N,content:p}),j)return}}return}}pA=new WeakSet,oG=function A(){return V(this,pA,"m",$j).call(this).content??null},$j=function A(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(gE(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},eG=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(gE(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},AY=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(nG(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},qY=function A(){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},O9=function A(q){if(q.n!=null&&q.n>1)throw new d("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},J9=function A(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class GK extends UK{static runTools(A,q,g){let E=new GK,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),gE(A)&&A.content)this._emit("content",A.content)}}var zA={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 M9 extends Error{}class _9 extends Error{}function kH(A,q=zA.ALL){if(typeof A!=="string")throw new TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw new Error(`${A} is empty`);return DH(A.trim(),q)}var DH=(A,q)=>{let g=A.length,E=0,F=(O)=>{throw new M9(`${O} at position ${E}`)},K=(O)=>{throw new _9(`${O} 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 G();if(A.substring(E,E+4)==="null"||zA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||zA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||zA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||zA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||zA.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"||zA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return Y()},j=()=>{let O=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(O,++E-Number($)))}catch(_){K(String(_))}else if(zA.STR&q)try{return JSON.parse(A.substring(O,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(O,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let O={};try{while(A[E]!=="}"){if(M(),E>=g&&zA.OBJ&q)return O;let $=j();M(),E++;try{let _=Z();Object.defineProperty(O,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(zA.OBJ&q)return O;else throw _}if(M(),A[E]===",")E++}}catch($){if(zA.OBJ&q)return O;else F("Expected '}' at end of object")}return E++,O},G=()=>{E++;let O=[];try{while(A[E]!=="]")if(O.push(Z()),M(),A[E]===",")E++}catch($){if(zA.ARR&q)return O;F("Expected ']' at end of array")}return E++,O},Y=()=>{if(E===0){if(A==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(zA.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 O=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(zA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(O,E))}catch($){if(A.substring(O,E)==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(O,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
149
+ \r\t`.includes(A[E]))E++};return Z()},gY=(A)=>kH(A,zA.ALL^zA.NUM);var PA,jg,FE,zg,EY,Xj,FY,KY,ZY,Hj,jY,$9;class Bg extends UK{constructor(A){super();PA.add(this),jg.set(this,void 0),FE.set(this,void 0),zg.set(this,void 0),s(this,jg,A,"f"),s(this,FE,[],"f")}get currentChatCompletionSnapshot(){return V(this,zg,"f")}static fromReadableStream(A){let q=new Bg(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new Bg(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())}V(this,PA,"m",EY).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)V(this,PA,"m",FY).call(this,K);if(F.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}V(this,PA,"m",EY).call(this),this._connected();let E=qq.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(V(this,PA,"m",Hj).call(this));V(this,PA,"m",FY).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}[(jg=new WeakMap,FE=new WeakMap,zg=new WeakMap,PA=new WeakSet,EY=function A(){if(this.ended)return;s(this,zg,void 0,"f")},Xj=function A(q){let g=V(this,FE,"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},V(this,FE,"f")[q.index]=g,g},FY=function A(q){if(this.ended)return;let g=V(this,PA,"m",$9).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=V(this,PA,"m",Xj).call(this,F);if(F.finish_reason){if(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).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(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).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 H9(j?.type)}}},KY=function A(q,g){if(V(this,PA,"m",Xj).call(this,q).done_tool_calls.has(g))return;let F=q.message.tool_calls?.[g];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let K=V(this,jg,"f")?.tools?.find((Z)=>qK(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:M6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else H9(F.type)},ZY=function A(q){let g=V(this,PA,"m",Xj).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=V(this,PA,"m",jY).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})},Hj=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,zg,"f");if(!q)throw new d("request ended without sending any chunks");return s(this,zg,void 0,"f"),s(this,FE,[],"f"),yH(q,V(this,jg,"f"))},jY=function A(){let q=V(this,jg,"f")?.response_format;if(gK(q))return q;return null},$9=function A(q){var g,E,F,K;let Z=V(this,zg,"f"),{choices:j,...U}=q;if(!Z)Z=s(this,zg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:G,finish_reason:Y,index:M,logprobs:O=null,...$}of q.choices){let _=Z.choices[M];if(!_)_=Z.choices[M]={finish_reason:Y,index:M,message:{},logprobs:O,...$};if(O)if(!_.logprobs)_.logprobs=Object.assign({},O);else{let{content:i,refusal:p,...a}=O;if(X9(a),Object.assign(_.logprobs,a),i)(g=_.logprobs).content??(g.content=[]),_.logprobs.content.push(...i);if(p)(E=_.logprobs).refusal??(E.refusal=[]),_.logprobs.refusal.push(...p)}if(Y){if(_.finish_reason=Y,V(this,jg,"f")&&sG(V(this,jg,"f"))){if(Y==="length")throw new tF;if(Y==="content_filter")throw new sF}}if(Object.assign(_,$),!G)continue;let{content:x,refusal:N,function_call:L,role:P,tool_calls:k,...C}=G;if(X9(C),Object.assign(_.message,C),N)_.message.refusal=(_.message.refusal||"")+N;if(P)_.message.role=P;if(L)if(!_.message.function_call)_.message.function_call=L;else{if(L.name)_.message.function_call.name=L.name;if(L.arguments)(F=_.message.function_call).arguments??(F.arguments=""),_.message.function_call.arguments+=L.arguments}if(x){if(_.message.content=(_.message.content||"")+x,!_.message.refusal&&V(this,PA,"m",jY).call(this))_.message.parsed=gY(_.message.content)}if(k){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:i,id:p,type:a,function:z,...r}of k){let c=(K=_.message.tool_calls)[i]??(K[i]={});if(Object.assign(c,r),p)c.id=p;if(a)c.type=a;if(z)c.function??(c.function={name:z.name??"",arguments:""});if(z?.name)c.function.name=z.name;if(z?.arguments){if(c.function.arguments+=z.arguments,j9(V(this,jg,"f"),c))c.function.parsed_arguments=gY(c.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 qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function yH(A,q){let{id:g,choices:E,created:F,model:K,system_fingerprint:Z,...j}=A,U={...j,id:g,choices:E.map(({message:G,finish_reason:Y,index:M,logprobs:O,...$})=>{if(!Y)throw new d(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:x,tool_calls:N,...L}=G,P=G.role;if(!P)throw new d(`missing role for choice ${M}`);if(x){let{arguments:k,name:C}=x;if(k==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!C)throw new d(`missing function_call.name for choice ${M}`);return{...$,message:{content:_,function_call:{arguments:k,name:C},role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}if(N)return{...$,index:M,finish_reason:Y,logprobs:O,message:{...L,role:P,content:_,refusal:G.refusal??null,tool_calls:N.map((k,C)=>{let{function:i,type:p,id:a,...z}=k,{arguments:r,name:c,...gA}=i||{};if(a==null)throw new d(`missing choices[${M}].tool_calls[${C}].id
150
+ ${Lj(A)}`);if(p==null)throw new d(`missing choices[${M}].tool_calls[${C}].type
151
+ ${Lj(A)}`);if(c==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.name
152
+ ${Lj(A)}`);if(r==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.arguments
153
+ ${Lj(A)}`);return{...z,id:a,type:p,function:{...gA,name:c,arguments:r}}})}};return{...$,message:{...L,content:_,role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return Z9(U,q)}function Lj(A){return JSON.stringify(A)}function X9(A){return}function H9(A){}class KE extends Bg{static fromReadableStream(A){let q=new KE(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new KE(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class wg extends h{constructor(){super(...arguments);this.messages=new qE(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(R`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(R`/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(R`/chat/completions/${A}`,q)}parse(A,q){return G9(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>EK(g,A))}runTools(A,q){if(A.stream)return KE.runTools(this._client,A,q);return GK.runTools(this._client,A,q)}stream(A,q){return Bg.createChatCompletion(this._client,A,q)}}wg.Messages=qE;class $6 extends h{constructor(){super(...arguments);this.completions=new wg(this._client)}}$6.Completions=wg;var L9=Symbol("brand.privateNullableHeaders");function*vH(A){if(!A)return;if(L9 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(zG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=zG(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 vH(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{[L9]:!0,values:q,nulls:g}};class YK extends h{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class QK extends h{create(A,q){return this._client.post("/audio/transcriptions",gq({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class OK extends h{create(A,q){return this._client.post("/audio/translations",gq({body:A,...q,__metadata:{model:A.model}},this._client))}}class Ug extends h{constructor(){super(...arguments);this.transcriptions=new QK(this._client),this.translations=new OK(this._client),this.speech=new YK(this._client)}}Ug.Transcriptions=QK;Ug.Translations=OK;Ug.Speech=YK;class ZE extends h{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(R`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/batches/${A}/cancel`,q)}}class JK extends h{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(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/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(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class MK extends h{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class _K extends h{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class X6 extends h{constructor(){super(...arguments);this.sessions=new MK(this._client),this.transcriptionSessions=new _K(this._client)}}X6.Sessions=MK;X6.TranscriptionSessions=_K;class $K extends h{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(R`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class XK extends h{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",hg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(R`/chatkit/threads/${A}/items`,hg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class H6 extends h{constructor(){super(...arguments);this.sessions=new $K(this._client),this.threads=new XK(this._client)}}H6.Sessions=$K;H6.Threads=XK;class HK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class LK extends h{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(R`/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(R`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var V9=(A)=>{if(typeof Buffer!=="undefined"){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 Cg=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var CA,V6,UY,Bq,Vj,Nq,W6,jE,L6,Tj,Eq,Wj,Nj,NK,VK,WK,W9,N9,T9,I9,x9,P9,R9;class kg extends _6{constructor(){super(...arguments);CA.add(this),UY.set(this,[]),Bq.set(this,{}),Vj.set(this,{}),Nq.set(this,void 0),W6.set(this,void 0),jE.set(this,void 0),L6.set(this,void 0),Tj.set(this,void 0),Eq.set(this,void 0),Wj.set(this,void 0),Nj.set(this,void 0),NK.set(this,void 0)}[(UY=new WeakMap,Bq=new WeakMap,Vj=new WeakMap,Nq=new WeakMap,W6=new WeakMap,jE=new WeakMap,L6=new WeakMap,Tj=new WeakMap,Eq=new WeakMap,Wj=new WeakMap,Nj=new WeakMap,NK=new WeakMap,CA=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 V6;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=qq.fromReadableStream(A,this.controller);for await(let F of E)V(this,CA,"m",VK).call(this,F);if(E.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}toReadableStream(){return new qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new V6;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)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}static createThreadAssistantStream(A,q,g){let E=new V6;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 V6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return V(this,Wj,"f")}currentRun(){return V(this,Nj,"f")}currentMessageSnapshot(){return V(this,Nq,"f")}currentRunStepSnapshot(){return V(this,NK,"f")}async finalRunSteps(){return await this.done(),Object.values(V(this,Bq,"f"))}async finalMessages(){return await this.done(),Object.values(V(this,Vj,"f"))}async finalRun(){if(await this.done(),!V(this,W6,"f"))throw Error("Final run was not received.");return V(this,W6,"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)V(this,CA,"m",VK).call(this,Z);if(K.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).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)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).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(nF(F)&&nF(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(!nF(K))throw new Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),new Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw new 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)}}V6=kg,VK=function A(q){if(this.ended)return;switch(s(this,Wj,q,"f"),V(this,CA,"m",T9).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":V(this,CA,"m",R9).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":V(this,CA,"m",N9).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":V(this,CA,"m",W9).call(this,q);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:oH(q)}},WK=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!V(this,W6,"f"))throw Error("Final run has not been received");return V(this,W6,"f")},W9=function A(q){let[g,E]=V(this,CA,"m",x9).call(this,q,V(this,Nq,"f"));s(this,Nq,g,"f"),V(this,Vj,"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!=V(this,jE,"f")){if(V(this,L6,"f"))switch(V(this,L6,"f").type){case"text":this._emit("textDone",V(this,L6,"f").text,V(this,Nq,"f"));break;case"image_file":this._emit("imageFileDone",V(this,L6,"f").image_file,V(this,Nq,"f"));break}s(this,jE,F.index,"f")}s(this,L6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(V(this,jE,"f")!==void 0){let F=q.data.content[V(this,jE,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,V(this,Nq,"f"));break;case"text":this._emit("textDone",F.text,V(this,Nq,"f"));break}}if(V(this,Nq,"f"))this._emit("messageDone",q.data);s(this,Nq,void 0,"f")}},N9=function A(q){let g=V(this,CA,"m",I9).call(this,q);switch(s(this,NK,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==V(this,Tj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f"));if(s(this,Tj,K.index,"f"),s(this,Eq,g.step_details.tool_calls[K.index],"f"),V(this,Eq,"f"))this._emit("toolCallCreated",V(this,Eq,"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(s(this,NK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},T9=function A(q){V(this,UY,"f").push(q),this._emit("event",q)},I9=function A(q){switch(q.event){case"thread.run.step.created":return V(this,Bq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=V(this,Bq,"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=V6.accumulateDelta(g,E.delta);V(this,Bq,"f")[q.data.id]=F}return V(this,Bq,"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":V(this,Bq,"f")[q.data.id]=q.data;break}if(V(this,Bq,"f")[q.data.id])return V(this,Bq,"f")[q.data.id];throw new Error("No snapshot available")},x9=function A(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]=V(this,CA,"m",P9).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")},P9=function A(q,g){return V6.accumulateDelta(g,q)},R9=function A(q){switch(s(this,Nj,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(s(this,W6,q.data,"f"),V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f");break;case"thread.run.cancelling":break}};function oH(A){}class UE extends h{constructor(){super(...arguments);this.steps=new LK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/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(R`/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(R`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/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 kg.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 hq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return kg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/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 kg.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}UE.Steps=LK;class N6 extends h{constructor(){super(...arguments);this.runs=new UE(this._client),this.messages=new HK(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(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/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 kg.createThreadAssistantStream(A,this._client.beta.threads,q)}}N6.Runs=UE;N6.Messages=HK;class wq extends h{constructor(){super(...arguments);this.realtime=new X6(this._client),this.chatkit=new H6(this._client),this.assistants=new JK(this._client),this.threads=new N6(this._client)}}wq.Realtime=X6;wq.ChatKit=H6;wq.Assistants=JK;wq.Threads=N6;class GE extends h{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class TK extends h{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class YE extends h{constructor(){super(...arguments);this.content=new TK(this._client)}create(A,q,g){return this._client.post(R`/containers/${A}/files`,gq({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(R`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}YE.Content=TK;class T6 extends h{constructor(){super(...arguments);this.files=new YE(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(R`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}T6.Files=YE;class IK extends h{create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(R`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(R`/conversations/${A}/items`,hg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(R`/conversations/${E}/items/${A}`,g)}}class I6 extends h{constructor(){super(...arguments);this.items=new IK(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(R`/conversations/${A}`,q)}update(A,q,g){return this._client.post(R`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(R`/conversations/${A}`,q)}}I6.Items=IK;class QE extends h{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=V9(j)});return K})}}class xK extends h{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(R`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(R`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class OE extends h{constructor(){super(...arguments);this.outputItems=new xK(this._client)}create(A,q,g){return this._client.post(R`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(R`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(R`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(R`/evals/${E}/runs/${A}`,g)}}OE.OutputItems=xK;class x6 extends h{constructor(){super(...arguments);this.runs=new OE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(R`/evals/${A}`,q)}update(A,q,g){return this._client.post(R`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/evals/${A}`,q)}}x6.Runs=OE;class JE extends h{create(A,q){return this._client.post("/files",gq({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/files/${A}`,q)}content(A,q){return this._client.get(R`/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 hq(q),K=await this.retrieve(A),Date.now()-F>g)throw new O6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class PK extends h{}class RK extends h{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 ME extends h{constructor(){super(...arguments);this.graders=new RK(this._client)}}ME.Graders=RK;class SK extends h{create(A,q,g){return this._client.getAPIList(R`/fine_tuning/checkpoints/${A}/permissions`,Kg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(R`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(R`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class _E extends h{constructor(){super(...arguments);this.permissions=new SK(this._client)}}_E.Permissions=SK;class aK extends h{list(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class $E extends h{constructor(){super(...arguments);this.checkpoints=new aK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(R`/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(R`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/resume`,q)}}$E.Checkpoints=aK;class Cq extends h{constructor(){super(...arguments);this.methods=new PK(this._client),this.jobs=new $E(this._client),this.checkpoints=new _E(this._client),this.alpha=new ME(this._client)}}Cq.Methods=PK;Cq.Jobs=$E;Cq.Checkpoints=_E;Cq.Alpha=ME;class hK extends h{}class P6 extends h{constructor(){super(...arguments);this.graderModels=new hK(this._client)}}P6.GraderModels=hK;class XE extends h{createVariation(A,q){return this._client.post("/images/variations",gq({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",gq({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 HE extends h{retrieve(A,q){return this._client.get(R`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",Kg,A)}delete(A,q){return this._client.delete(R`/models/${A}`,q)}}class LE extends h{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class zK extends h{accept(A,q,g){return this._client.post(R`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class BK extends h{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class Dg extends h{constructor(){super(...arguments);this.clientSecrets=new BK(this._client),this.calls=new zK(this._client)}}Dg.ClientSecrets=BK;Dg.Calls=zK;function S9(A,q){if(!q||!X1(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 GY(A,q)}function GY(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:V1(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:$1(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Ij(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 $1(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 X1(A){if(gK(A.text?.format))return!0;return!1}function H1(A){return A?.$brand==="auto-parseable-tool"}function L1(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function V1(A,q){let g=L1(A.tools??[],q.name);return{...q,...q,parsed_arguments:H1(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Ij(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 VE,xj,yg,Pj,a9,h9,z9,B9;class Rj extends _6{constructor(A){super();VE.add(this),xj.set(this,void 0),yg.set(this,void 0),Pj.set(this,void 0),s(this,xj,A,"f")}static createResponse(A,q,g){let E=new Rj(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())}V(this,VE,"m",a9).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)V(this,VE,"m",h9).call(this,Z,K);if(F.controller.signal?.aborted)throw new IA;return V(this,VE,"m",z9).call(this)}[(xj=new WeakMap,yg=new WeakMap,Pj=new WeakMap,VE=new WeakSet,a9=function A(){if(this.ended)return;s(this,yg,void 0,"f")},h9=function A(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=V(this,VE,"m",B9).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 d(`missing output at index ${q.output_index}`);if(K.type==="message"){let Z=K.content[q.content_index];if(!Z)throw new d(`missing content at index ${q.content_index}`);if(Z.type!=="output_text")throw new d(`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 d(`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}},z9=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,yg,"f");if(!q)throw new d("request ended without sending any events");s(this,yg,void 0,"f");let g=W1(q,V(this,xj,"f"));return s(this,Pj,g,"f"),g},B9=function A(q){let g=V(this,yg,"f");if(!g){if(q.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${q.type}`);return g=s(this,yg,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 d(`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 d(`missing output at index ${q.output_index}`);if(E.type==="message"){let F=E.content[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="output_text")throw new d(`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 d(`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 d(`missing output at index ${q.output_index}`);if(E.type==="reasoning"){let F=E.content?.[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="reasoning_text")throw new d(`expected content to be 'reasoning_text', got ${F.type}`);F.text+=q.delta}break}case"response.completed":{s(this,yg,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=V(this,Pj,"f");if(!A)throw new d("stream ended without producing a ChatCompletion");return A}}function W1(A,q){return S9(A,q)}class wK extends h{list(A,q={},g){return this._client.getAPIList(R`/responses/${A}/input_items`,EA,{query:q,...g})}}class CK extends h{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class bg extends h{constructor(){super(...arguments);this.inputItems=new wK(this._client),this.inputTokens=new CK(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")Ij(g);return g})}retrieve(A,q={},g){return this._client.get(R`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Ij(E);return E})}delete(A,q){return this._client.delete(R`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>GY(g,A))}stream(A,q){return Rj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(R`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}bg.InputItems=wK;bg.InputTokens=CK;class kK extends h{create(A,q,g){return this._client.post(R`/uploads/${A}/parts`,gq({body:q,...g},this._client))}}class R6 extends h{constructor(){super(...arguments);this.parts=new kK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(R`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(R`/uploads/${A}/complete`,{body:q,...g})}}R6.Parts=kK;var w9=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 new 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 DK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/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(R`/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 hq(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 new 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 G(M){for(let O of M){let $=await Z.files.create({file:O,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(G);return await w9(Y),await this.createAndPoll(A,{file_ids:U})}}class yK extends h{create(A,q,g){return this._client.post(R`/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(R`/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(R`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/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(R`/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 hq(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(R`/vector_stores/${E}/files/${A}/content`,Kg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class vg extends h{constructor(){super(...arguments);this.files=new yK(this._client),this.fileBatches=new DK(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(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/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(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(R`/vector_stores/${A}/search`,Kg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}vg.Files=yK;vg.FileBatches=DK;class WE extends h{create(A,q){return this._client.post("/videos",iG({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",hg,{query:A,...q})}delete(A,q){return this._client.delete(R`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(R`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(R`/videos/${A}/remix`,iG({body:q,...g},this._client))}}var NE,C9,Sj;class TE extends h{constructor(){super(...arguments);NE.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==="undefined"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");V(this,NE,"m",C9).call(this,g);let F=D([q]).values,K=V(this,NE,"m",Sj).call(this,F,"webhook-signature"),Z=V(this,NE,"m",Sj).call(this,F,"webhook-timestamp"),j=V(this,NE,"m",Sj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new Eg("Invalid webhook timestamp format");let G=Math.floor(Date.now()/1000);if(G-U>E)throw new Eg("Webhook timestamp is too old");if(U>G+E)throw new Eg("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"),O=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 x=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,x,new TextEncoder().encode(O)))return}catch{continue}throw new Eg("The given webhook signature does not match the expected signature")}}NE=new WeakSet,C9=function A(q){if(typeof q!=="string"||q.length===0)throw new 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")},Sj=function A(q,g){if(!q)throw new Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw new Error(`Missing required header: ${g}`);return E};var YY,QY,aj,k9;class e{constructor({baseURL:A=Cg("OPENAI_BASE_URL"),apiKey:q=Cg("OPENAI_API_KEY"),organization:g=Cg("OPENAI_ORG_ID")??null,project:E=Cg("OPENAI_PROJECT_ID")??null,webhookSecret:F=Cg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(YY.add(this),aj.set(this,void 0),this.completions=new GE(this),this.chat=new $6(this),this.embeddings=new QE(this),this.files=new JE(this),this.images=new XE(this),this.audio=new Ug(this),this.moderations=new LE(this),this.models=new HE(this),this.fineTuning=new Cq(this),this.graders=new P6(this),this.vectorStores=new vg(this),this.webhooks=new TE(this),this.beta=new wq(this),this.batches=new ZE(this),this.uploads=new R6(this),this.responses=new bg(this),this.realtime=new Dg(this),this.conversations=new I6(this),this.evals=new x6(this),this.containers=new T6(this),this.videos=new WE(this),q===void 0)throw new d("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&&yM())throw new d(`It looks like you're running in a browser-like environment.
154
154
 
155
155
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
156
156
  If you understand the risks and have appropriate mitigations in place,
@@ -159,7 +159,7 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
159
159
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
160
160
 
161
161
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
162
- `);this.baseURL=Z.baseURL,this.timeout=Z.timeout??KY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=DG(Z.logLevel,"ClientOptions.logLevel",this)??DG(zg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??RM(),s(this,xj,aM,"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 CG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Pg}`}defaultIdempotencyKey(){return`stainless-node-retry-${xG()}`}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,FY,"m",T_).call(this)&&g||this.baseURL,F=XM(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!HM(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 j6(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"),Y=g===void 0?"":`, retryOf: ${g}`,G=Date.now();if(HA(this).debug(`[${U}] sending request`,Eg({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new xA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(zF),$=Date.now();if(O instanceof globalThis.Error){let T=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new xA;let V=hF(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return HA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${T}`),HA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${T})`,Eg({retryOfRequestLogID:g,url:Z,durationMs:$-G,message:O.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)`,Eg({retryOfRequestLogID:g,url:Z,durationMs:$-G,message:O.message})),V)throw new Z6;throw new K6({cause:O})}let _=[...O.headers.entries()].filter(([T])=>T==="x-request-id").map(([T,V])=>", "+T+": "+JSON.stringify(V)).join(""),x=`[${U}${Y}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-G}ms`;if(!O.ok){let T=await this.shouldRetry(O);if(q&&T){let d=`retrying, ${q} attempts remaining`;return await SM(O.body),HA(this).info(`${x} - ${d}`),HA(this).debug(`[${U}] response error (${d})`,Eg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-G})),this.retryRequest(E,q,g??U,O.headers)}let V=T?"error; no more retries left":"error; not retryable";HA(this).info(`${x} - ${V}`);let P=await O.text().catch((d)=>zF(d).message),k=WM(P),C=k?void 0:P;throw HA(this).debug(`[${U}] response error (${V})`,Eg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-G})),this.makeStatusError(O.status,k,C,O.headers)}return HA(this).info(x),HA(this).debug(`[${U}] response start`,Eg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-G})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:G}}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 Ej(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,Y={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)Y.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,Y)}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)VM("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:Y}=this.buildBody({options:g}),G=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:G,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&Y instanceof globalThis.ReadableStream&&{duplex:"half"},...Y&&{body:Y},...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))}:{},...PM(),"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:tZ(A)};else return L(this,xj,"f").call(this,{body:A,headers:g})}}KY=e,xj=new WeakMap,FY=new WeakSet,T_=function A(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=KY;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=f;e.APIError=VA;e.APIConnectionError=K6;e.APIConnectionTimeoutError=Z6;e.APIUserAbortError=xA;e.NotFoundError=kF;e.ConflictError=DF;e.RateLimitError=bF;e.BadRequestError=BF;e.AuthenticationError=wF;e.InternalServerError=vF;e.PermissionDeniedError=CF;e.UnprocessableEntityError=yF;e.InvalidWebhookSignatureError=gg;e.toFile=Kj;e.Completions=AE;e.Chat=Y6;e.Embeddings=gE;e.Files=FE;e.Images=UE;e.Audio=jg;e.Moderations=YE;e.Models=GE;e.FineTuning=wq;e.Graders=V6;e.VectorStores=Dg;e.Webhooks=ME;e.Beta=Bq;e.Batches=r6;e.Uploads=W6;e.Responses=kg;e.Realtime=wg;e.Conversations=H6;e.Evals=L6;e.Containers=X6;e.Videos=OE;function ZY(A){return{anthropic:null,openai:null,provider:A,storyContext:"",isStreaming:!1}}function M1(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Story Being Discussed
162
+ `);this.baseURL=Z.baseURL,this.timeout=Z.timeout??QY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=cG(Z.logLevel,"ClientOptions.logLevel",this)??cG(Cg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??vM(),s(this,aj,fM,"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 mG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ag}`}defaultIdempotencyKey(){return`stainless-node-retry-${hG()}`}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 d)throw g;throw new d(`Failed to get token from 'apiKey' function: ${g.message}`,{cause:g})}if(typeof q!=="string"||!q)throw new d(`Expected 'apiKey' function argument to return a string but it returned ${q}`);return this.apiKey=q,!0}buildURL(A,q,g){let E=!V(this,YY,"m",k9).call(this)&&g||this.baseURL,F=aM(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!hM(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 J6(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"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(HA(this).debug(`[${U}] sending request`,Fg({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new IA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(vF),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new IA;let L=bF(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new O6;throw new Q6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="x-request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await mM(O.body),HA(this).info(`${x} - ${p}`),HA(this).debug(`[${U}] response error (${p})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";HA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>vF(p).message),k=wM(P),C=k?void 0:P;throw HA(this).debug(`[${U}] response error (${L})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return HA(this).info(x),HA(this).debug(`[${U}] response start`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,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 Uj(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,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}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 hq(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)BM("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=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&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...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))}:{},...bM(),"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:eZ(A)};else return V(this,aj,"f").call(this,{body:A,headers:g})}}QY=e,aj=new WeakMap,YY=new WeakSet,k9=function A(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=QY;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=d;e.APIError=VA;e.APIConnectionError=Q6;e.APIConnectionTimeoutError=O6;e.APIUserAbortError=IA;e.NotFoundError=dF;e.ConflictError=pF;e.RateLimitError=lF;e.BadRequestError=mF;e.AuthenticationError=fF;e.InternalServerError=iF;e.PermissionDeniedError=cF;e.UnprocessableEntityError=uF;e.InvalidWebhookSignatureError=Eg;e.toFile=Yj;e.Completions=GE;e.Chat=$6;e.Embeddings=QE;e.Files=JE;e.Images=XE;e.Audio=Ug;e.Moderations=LE;e.Models=HE;e.FineTuning=Cq;e.Graders=P6;e.VectorStores=vg;e.Webhooks=TE;e.Beta=wq;e.Batches=ZE;e.Uploads=R6;e.Responses=bg;e.Realtime=Dg;e.Conversations=I6;e.Evals=x6;e.Containers=T6;e.Videos=WE;function OY(A){return{anthropic:null,openai:null,provider:A,storyContext:"",isStreaming:!1}}function JY(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Story Being Discussed
163
163
 
164
164
  `;if(g+=`**Title:** ${A.title}
165
165
  `,g+=`**URL:** ${q}
@@ -170,18 +170,18 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
170
170
 
171
171
  `,A.content)g+=`## Story Text
172
172
 
173
- ${Lg(A.content)}
173
+ ${Ng(A.content)}
174
174
 
175
175
  `;if(A.comments&&A.comments.length>0)g+=`# Hacker News Discussion
176
176
 
177
177
  `,g+=`The following are comments from the Hacker News community discussing this story:
178
178
 
179
- `,g+=x_(A.comments);return g}function x_(A,q=0){let g="",E=" ".repeat(q);for(let F of A)if(F.user&&F.content){let K=Lg(F.content);g+=`${E}**${F.user}:**
179
+ `,g+=D9(A.comments);return g}function D9(A,q=0){let g="",E=" ".repeat(q);for(let F of A)if(F.user&&F.content){let K=Ng(F.content);g+=`${E}**${F.user}:**
180
180
  `;let Z=K.split(`
181
181
  `).map((j)=>`${E}${j}`).join(`
182
182
  `);if(g+=`${Z}
183
183
 
184
- `,F.comments&&F.comments.length>0)g+=x_(F.comments,q+1)}return g}async function I_(A,q,g,E,F){if(A.isStreaming=!0,!A.storyContext)A.storyContext=M1(E);let K=E.url||"",Z=`You are helping a user understand and discuss a Hacker News story.
184
+ `,F.comments&&F.comments.length>0)g+=D9(F.comments,q+1)}return g}async function y9(A,q,g,E,F){if(A.isStreaming=!0,!A.storyContext)A.storyContext=JY(E);let K=E.url||"",Z=`You are helping a user understand and discuss a Hacker News story.
185
185
 
186
186
  ${A.storyContext}
187
187
 
@@ -192,15 +192,15 @@ IMPORTANT CONTEXT DISTINCTION:
192
192
  - The "Hacker News Discussion" section contains community comments ABOUT that story
193
193
  - If the user asks about the original article/video content, use web search to fetch and read the URL: ${K}
194
194
 
195
- The user is reading this in a terminal app. Be concise but insightful. When you search the web for article content, clearly distinguish between what's in the article versus what's being discussed in the HN comments.`;try{if(A.provider==="anthropic")await _1(A,q,g,Z,K,F);else await $1(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function _1(A,q,g,E,F,K){if(!A.anthropic){let Y=Xq("anthropic");A.anthropic=new Vq({apiKey:Y})}let Z=F?[{type:"web_search_20250305",name:"web_search",max_uses:3}]:[],j=A.anthropic.messages.stream({model:mE("anthropic"),max_tokens:4096,system:E,tools:Z.length>0?Z:void 0,messages:q.slice(0,-1).map((Y)=>({role:Y.role,content:Y.content})).concat([{role:"user",content:g}])}),U="";j.on("text",(Y)=>{U+=Y,K.onText(U)}),await j.finalMessage(),K.onComplete()}async function $1(A,q,g,E,F,K){if(YA("[openai-stream] Starting stream..."),!A.openai){let Y=Xq("openai");YA("[openai-stream] Initializing client, API key exists:",!!Y),A.openai=new e({apiKey:Y})}let Z=mE("openai");if(YA("[openai-stream] Model:",Z),YA("[openai-stream] Message count:",q.length),F)try{YA("[openai-stream] Using Responses API stream with web_search tool");let Y=A.openai.responses.stream({model:Z,tools:[{type:"web_search"}],input:[{role:"developer",content:E},...q.slice(0,-1).map((G)=>({role:G.role,content:G.content})),{role:"user",content:g}]});Y.on("response.output_text.delta",(G)=>{K.onText(G.snapshot)}),await Y.finalResponse(),YA("[openai-stream] Responses API stream complete"),K.onComplete();return}catch(Y){let G=Y instanceof Error?Y.message:String(Y);YA("[openai-stream] Responses API failed, falling back to chat completions without web search. Error:",G)}let j=await A.openai.chat.completions.create({model:Z,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:E},...q.slice(0,-1).map((Y)=>({role:Y.role,content:Y.content})),{role:"user",content:g}]});YA("[openai-stream] Stream created, reading chunks...");let U="";for await(let Y of j){let G=Y.choices[0]?.delta?.content;if(G)U+=G,K.onText(U)}YA("[openai-stream] Stream complete, response length:",U.length),K.onComplete()}async function P_(A,q){let g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${Lg(F.content||"").slice(0,100)}...`).join(`
195
+ The user is reading this in a terminal app. Be concise but insightful. When you search the web for article content, clearly distinguish between what's in the article versus what's being discussed in the HN comments.`;try{if(A.provider==="anthropic")await S1(A,q,g,Z,K,F);else await a1(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function S1(A,q,g,E,F,K){if(!A.anthropic){let G=lA("anthropic");A.anthropic=new oA({apiKey:G})}let Z=F?[{type:"web_search_20250305",name:"web_search",max_uses:3}]:[],j=A.anthropic.messages.stream({model:sE("anthropic"),max_tokens:4096,system:E,tools:Z.length>0?Z:void 0,messages:q.slice(0,-1).map((G)=>({role:G.role,content:G.content})).concat([{role:"user",content:g}])}),U="";j.on("text",(G)=>{U+=G,K.onText(U)}),await j.finalMessage(),K.onComplete()}async function a1(A,q,g,E,F,K){if(FA("[openai-stream] Starting stream..."),!A.openai){let G=lA("openai");FA("[openai-stream] Initializing client, API key exists:",!!G),A.openai=new e({apiKey:G})}let Z=sE("openai");if(FA("[openai-stream] Model:",Z),FA("[openai-stream] Message count:",q.length),F)try{FA("[openai-stream] Using Responses API stream with web_search tool");let G=A.openai.responses.stream({model:Z,tools:[{type:"web_search"}],input:[{role:"developer",content:E},...q.slice(0,-1).map((Y)=>({role:Y.role,content:Y.content})),{role:"user",content:g}]});G.on("response.output_text.delta",(Y)=>{K.onText(Y.snapshot)}),await G.finalResponse(),FA("[openai-stream] Responses API stream complete"),K.onComplete();return}catch(G){let Y=G instanceof Error?G.message:String(G);FA("[openai-stream] Responses API failed, falling back to chat completions without web search. Error:",Y)}let j=await A.openai.chat.completions.create({model:Z,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:E},...q.slice(0,-1).map((G)=>({role:G.role,content:G.content})),{role:"user",content:g}]});FA("[openai-stream] Stream created, reading chunks...");let U="";for await(let G of j){let Y=G.choices[0]?.delta?.content;if(Y)U+=Y,K.onText(U)}FA("[openai-stream] Stream complete, response length:",U.length),K.onComplete()}async function b9(A,q){let g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${Ng(F.content||"").slice(0,100)}...`).join(`
196
196
  `)||"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.
197
197
 
198
198
  Title: ${q.title}
199
199
  Domain: ${q.domain||"N/A"}
200
200
  Comments preview:
201
- ${g}`;try{let F=[];if(A.provider==="anthropic"){if(YA("[suggestions] Using Anthropic API with cheap model"),!A.anthropic){let U=Xq("anthropic");YA("[suggestions] API key exists:",!!U),A.anthropic=new Vq({apiKey:U})}YA("[suggestions] Model:",_Z);let K=await A.anthropic.messages.create({model:_Z,max_tokens:1024,messages:[{role:"user",content:E}]});YA("[suggestions] Anthropic response received");let Z=K.content[0];F=(Z&&Z.type==="text"?Z.text:"").split(`
202
- `).filter((U)=>U.trim()).slice(0,3)}else{if(YA("[suggestions] Using OpenAI API with cheap model"),!A.openai){let j=Xq("openai");YA("[suggestions] API key exists:",!!j),A.openai=new e({apiKey:j})}YA("[suggestions] Model:",$Z),YA("[suggestions] Making OpenAI request...");let K=await A.openai.chat.completions.create({model:$Z,max_completion_tokens:1024,messages:[{role:"user",content:E}]});YA("[suggestions] OpenAI response received:",JSON.stringify(K.choices[0],null,2)),F=(K.choices[0]?.message?.content||"").split(`
203
- `).filter((j)=>j.trim()).slice(0,3)}return YA("[suggestions] Generated questions:",F),F}catch(F){return YA("[ERROR]","[suggestions] Error generating suggestions:"),YA("[ERROR]","[suggestions] Error type:",F?.constructor?.name),YA("[ERROR]","[suggestions] Error message:",F instanceof Error?F.message:String(F)),[]}}async function R_(A,q,g){let E=g.slice(-4).filter((K)=>K.content.length<500).map((K)=>`${K.role==="user"?"User":"Assistant"}: ${K.content}`).join(`
201
+ ${g}`;try{let F=[];if(A.provider==="anthropic"){if(FA("[suggestions] Using Anthropic API with cheap model"),!A.anthropic){let U=lA("anthropic");FA("[suggestions] API key exists:",!!U),A.anthropic=new oA({apiKey:U})}FA("[suggestions] Model:",A6);let K=await A.anthropic.messages.create({model:A6,max_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] Anthropic response received");let Z=K.content[0];F=(Z&&Z.type==="text"?Z.text:"").split(`
202
+ `).filter((U)=>U.trim()).slice(0,3)}else{if(FA("[suggestions] Using OpenAI API with cheap model"),!A.openai){let j=lA("openai");FA("[suggestions] API key exists:",!!j),A.openai=new e({apiKey:j})}FA("[suggestions] Model:",Vg),FA("[suggestions] Making OpenAI request...");let K=await A.openai.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] OpenAI response received:",JSON.stringify(K.choices[0],null,2)),F=(K.choices[0]?.message?.content||"").split(`
203
+ `).filter((j)=>j.trim()).slice(0,3)}return FA("[suggestions] Generated questions:",F),F}catch(F){return FA("[ERROR]","[suggestions] Error generating suggestions:"),FA("[ERROR]","[suggestions] Error type:",F?.constructor?.name),FA("[ERROR]","[suggestions] Error message:",F instanceof Error?F.message:String(F)),[]}}async function v9(A,q,g){let E=g.slice(-4).filter((K)=>K.content.length<500).map((K)=>`${K.role==="user"?"User":"Assistant"}: ${K.content}`).join(`
204
204
  `),F=`Based on this conversation about a Hacker News story, suggest 3 natural follow-up questions the user might want to ask next. The questions should:
205
205
  - Build on what was just discussed
206
206
  - Explore related angles or deeper aspects
@@ -210,8 +210,25 @@ Story: "${q.title}"
210
210
  Recent conversation:
211
211
  ${E}
212
212
 
213
- Return ONLY the 3 questions, one per line, no numbering or bullets.`;try{if(A.provider==="anthropic"){if(!A.anthropic){let U=Xq("anthropic");A.anthropic=new Vq({apiKey:U})}let Z=(await A.anthropic.messages.create({model:_Z,max_tokens:256,messages:[{role:"user",content:F}]})).content[0];return(Z&&Z.type==="text"?Z.text:"").split(`
214
- `).filter((U)=>U.trim()).slice(0,3)}else{if(!A.openai){let j=Xq("openai");A.openai=new e({apiKey:j})}return((await A.openai.chat.completions.create({model:$Z,max_completion_tokens:256,messages:[{role:"user",content:F}]})).choices[0]?.message?.content||"").split(`
215
- `).filter((j)=>j.trim()).slice(0,3)}}catch(K){return YA("[ERROR]","[follow-up] Error:",K),[]}}function Ij(A){A.anthropic=null,A.openai=null}function S_(A,q){A.provider=q}import{existsSync as UY,mkdirSync as X1,readFileSync as H1,writeFileSync as L1,unlinkSync as V1}from"fs";import{join as a_}from"path";import{tmpdir as W1}from"os";var jY=a_(W1(),"hn-cli-cache"),hK=a_(jY,"state.json"),N1=300000;function T1(){if(!UY(jY))X1(jY,{recursive:!0})}function h_(){try{if(!UY(hK))return null;let A=H1(hK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>N1)return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function z_(A){try{T1(),A.savedAt=Date.now(),L1(hK,JSON.stringify(A,null,2))}catch{}}function B_(){try{if(UY(hK))V1(hK)}catch{}}function w_(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function C_(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function k_(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function D_(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}var x1=3;class GY{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;headerState;storyListState;storyDetailState;emptyStateState;chatPanelState=null;authSetupState=null;settingsState=null;chatServiceState=null;savedChatSessions=new Map;storyViewModes=new Map;chatMode=!1;authSetupMode=!1;settingsMode=!1;authSetupFromSettings=!1;updateInfo=null;followUpCount=0;pendingGenerationStoryIds=new Set;suggestionLoadingInterval=null;storiesFetchedAt=0;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}saveToCache(){let A={posts:this.posts,selectedIndex:this.selectedIndex,selectedPost:this.selectedPost,rootCommentIndex:this.rootCommentIndex,chatMode:this.chatMode,settingsMode:this.settingsMode,chatSessions:w_(this.savedChatSessions),storyViewModes:k_(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};z_(A)}async initialize(){await nO(this.renderer),this.setupLayout(),this.setupKeyboardHandlers();let A=h_();if(A&&A.posts.length>0)await this.restoreFromCache(A);else await this.loadPosts()}async restoreFromCache(A){if(this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt,this.savedChatSessions=C_(A.chatSessions),this.storyViewModes=A.storyViewModes?D_(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),LZ(this.storyDetailState),XZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(q)=>this.selectStory(q)}),A.selectedIndex>=0&&A.selectedIndex<this.posts.length){if(await this.selectStory(A.selectedIndex),A.chatMode&&this.selectedPost)this.showChatView();else if(A.settingsMode)this.showSettings()}else if(this.posts.length>0)await this.selectStory(0)}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}setUpdateInfo(A){this.updateInfo=A,gJ(this.headerState,this.updateInfo)}startHeaderLoading(){EJ(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){FJ(this.headerState)}setupLayout(){let A=new c(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg,paddingTop:1}),{header:q,state:g}=qJ(this.ctx,{onOpenGitHub:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")}});this.headerState=g,this.contentArea=new c(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=ZJ(this.ctx),this.storyDetailState=JJ(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=$J(this.ctx),this.contentArea.add(this.emptyStateState.container),A.add(q),A.add(this.contentArea),this.renderer.root.add(A)}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(A.super&&A.name==="c"){this.copySelectionToClipboard();return}if(this.settingsMode&&this.settingsState){this.handleSettingsKey(A);return}if(this.authSetupMode&&this.authSetupState){this.handleAuthSetupKey(A);return}if(this.chatMode&&this.chatPanelState){this.handleChatKey(A);return}this.handleMainKey(A)})}handleSettingsKey(A){if(!this.settingsState)return;if(A.name==="escape"){if(!RJ(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")rU(this.settingsState,1,this.chatServiceState?.provider||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")rU(this.settingsState,-1,this.chatServiceState?.provider||"anthropic"),this.rerenderSettings();else if(A.name==="return"||A.name==="enter"){let q=PJ(this.settingsState,this.chatServiceState?.provider||"anthropic");if(q)this.handleSettingsAction(q)}}handleSettingsAction(A){if(!this.chatServiceState)return;switch(A.type){case"switch_provider":S_(this.chatServiceState,A.provider);let q=Hg();q.provider=A.provider,vE(q),Ij(this.chatServiceState),this.rerenderSettings();break;case"done":this.hideSettings();break;case"add_anthropic":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=NZ(),this.authSetupState.selectedProvider="anthropic",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"add_openai":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=NZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":sO(),Ij(this.chatServiceState),this.hideSettings(),this.hideChatView();break;case"select_model":tO(A.provider,A.modelId),Ij(this.chatServiceState),this.rerenderSettings();break}}handleAuthSetupKey(A){if(!this.authSetupState)return;if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupState.step==="provider"){if(A.name==="j"||A.name==="down")sU(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")sU(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")TJ(this.authSetupState),this.showAuthSetupUI()}}handleChatKey(A){if(!this.chatPanelState)return;if(A.name==="escape"){this.hideChatView();return}if(A.name==="."&&A.super){this.showSettings();return}if(A.super&&(A.name==="j"||A.name==="k")){let g=A.name==="j"?1:-1;this.navigateStory(g);return}let q=this.chatPanelState.suggestions;if(q.suggestions.length>0&&this.chatPanelState.input&&!this.chatPanelState.input.plainText.trim()){if(A.name==="up"||A.name==="k"){if(q.selectedIndex===-1)q.selectedIndex=q.suggestions.length-1;else if(q.selectedIndex>0)q.selectedIndex--;this.chatPanelState.input.blur(),aA(this.ctx,q);return}else if(A.name==="down"||A.name==="j"){if(q.selectedIndex===q.suggestions.length-1)q.selectedIndex=-1,this.chatPanelState.input.focus();else if(q.selectedIndex>=0)q.selectedIndex++,this.chatPanelState.input.blur();aA(this.ctx,q);return}}if(A.name==="tab"&&q.selectedIndex>=0&&q.suggestions.length>0){let g=q.suggestions[q.selectedIndex];if(g&&this.chatPanelState.input){this.chatPanelState.input.focus(),this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(g+" "),q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatPanelState.input&&this.chatPanelState.input.plainText.trim()){this.sendChatMessage();return}if(q.selectedIndex>=0&&q.suggestions.length>0){this.selectSuggestion();return}return}if(q.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126){if(this.chatPanelState.input)this.chatPanelState.input.focus();q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q)}}if(A.name==="backspace"&&this.chatPanelState.input&&q.originalSuggestions.length>0)setTimeout(()=>{if(this.chatPanelState?.input&&!this.chatPanelState.input.plainText.trim()&&this.chatPanelState.suggestions.suggestions.length===0)this.chatPanelState.suggestions.suggestions=[...this.chatPanelState.suggestions.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=this.chatPanelState.suggestions.suggestions.length-1,aA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){let q=A.super;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(){XJ(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{if(this.posts=await cO(),this.storiesFetchedAt=Date.now(),cE(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),LZ(this.storyDetailState),XZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(A)=>this.selectStory(A)}),this.posts.length>0)await this.selectStory(0);this.saveToCache()}catch(A){cE(this.emptyStateState),YA("[ERROR]","Error loading posts:",A)}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(this.chatMode&&this.selectedPost&&this.chatPanelState){if(this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount}),this.cancelSuggestionLoadingInterval(),this.chatPanelState.input)this.chatPanelState.input.blur();if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null}let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,jJ(this.storyListState,this.posts,q,A);let g=this.posts[A];if(!g)return;for(let E of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(E.id);try{let E=await fO(g.id);if(this.renderer.isDestroyed)return;if(E)if(this.selectedPost=E,(this.storyViewModes.get(g.id)||"comments")==="chat"&&this.chatServiceState)this.chatMode=!0,this.showChatViewForCurrentStory();else this.chatMode=!1,this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),fE(this.ctx,this.storyDetailState,E,{onOpenStoryUrl:()=>this.openStoryUrl()})}catch(E){YA("[ERROR]","Error loading post:",E)}if(this.renderer.isDestroyed)return;UJ(this.storyListState,A),this.saveToCache()}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)}showChatViewForCurrentStory(){if(!this.selectedPost||!this.chatServiceState)return;this.chatPanelState=WZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Vg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,dE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A)}navigateToNextComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;let A=this.storyDetailState.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,iU(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,iU(this.storyDetailState,this.rootCommentIndex)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=iO();if(A)this.chatServiceState=ZY(A),this.showChatView();else this.showAuthSetup()}showChatView(){if(!this.selectedPost||!this.chatServiceState)return;this.chatMode=!0,this.storyViewModes.set(this.selectedPost.id,"chat"),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.chatPanelState=WZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Vg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,dE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A),this.saveToCache()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.selectedPost)this.storyViewModes.set(this.selectedPost.id,"comments");if(this.cancelSuggestionLoadingInterval(),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});if(this.chatPanelState?.input)this.chatPanelState.input.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost)fE(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()});if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null,this.saveToCache()}async sendChatMessage(){if(!this.chatPanelState||!this.chatServiceState||this.chatServiceState.isStreaming)return;let A=this.chatPanelState.input.plainText.trim();if(!A)return;this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,aA(this.ctx,this.chatPanelState.suggestions),dE(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(dE(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;WJ(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=!1;await I_(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(E)=>{if(!g&&this.chatPanelState)g=!0,C6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=E,Vg(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)C6(this.chatPanelState);this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(E)=>{if(this.chatPanelState)C6(this.chatPanelState);let F=this.chatServiceState?.provider==="anthropic"?"Anthropic":"OpenAI";if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=`Error: ${E.message}
213
+ Return ONLY the 3 questions, one per line, no numbering or bullets.`;try{if(A.provider==="anthropic"){if(!A.anthropic){let U=lA("anthropic");A.anthropic=new oA({apiKey:U})}let Z=(await A.anthropic.messages.create({model:A6,max_tokens:256,messages:[{role:"user",content:F}]})).content[0];return(Z&&Z.type==="text"?Z.text:"").split(`
214
+ `).filter((U)=>U.trim()).slice(0,3)}else{if(!A.openai){let j=lA("openai");A.openai=new e({apiKey:j})}return((await A.openai.chat.completions.create({model:Vg,max_completion_tokens:256,messages:[{role:"user",content:F}]})).choices[0]?.message?.content||"").split(`
215
+ `).filter((j)=>j.trim()).slice(0,3)}}catch(K){return FA("[ERROR]","[follow-up] Error:",K),[]}}function MY(A){A.anthropic=null,A.openai=null}function m9(A,q){A.provider=q}var _Y=`You are summarizing a Hacker News story for a terminal app. Be extremely concise.
216
216
 
217
- Check your ${F} API key in ~/.config/hn-cli/config.json`,Vg(this.ctx,this.chatPanelState,this.chatServiceState.provider)}})}selectSuggestion(){if(!this.chatPanelState)return;let A=this.chatPanelState.suggestions;if(A.selectedIndex<0||A.selectedIndex>=A.suggestions.length)return;let q=A.suggestions[A.selectedIndex];if(!q)return;if(this.chatPanelState.input)this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(q);A.suggestions=[],A.selectedIndex=-1,aA(this.ctx,A),this.sendChatMessage()}cancelSuggestionLoadingInterval(){if(this.suggestionLoadingInterval)clearInterval(this.suggestionLoadingInterval),this.suggestionLoadingInterval=null}restoreSuggestionsFromSession(A){if(!this.chatPanelState)return;if(A&&A.suggestions.length>0)this.chatPanelState.suggestions.suggestions=[...A.suggestions],this.chatPanelState.suggestions.originalSuggestions=[...A.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=A.suggestions.length-1,this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);else if(A&&A.messages.length>0)this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateFollowUpQuestionsIfNeeded();else this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateInitialSuggestions()}async generateInitialSuggestions(){if(!this.selectedPost||!this.chatPanelState||!this.chatServiceState)return;let A=this.selectedPost.id,q=this.chatPanelState.suggestions;this.pendingGenerationStoryIds.add(A),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%Hq.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await P_(this.chatServiceState,this.selectedPost);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1;aA(this.ctx,this.chatPanelState.suggestions)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);YA("[ERROR]","[suggestions] Error:",g)}}async generateFollowUpQuestionsIfNeeded(){if(this.followUpCount>=x1)return;if(!this.chatPanelState||!this.chatServiceState||!this.selectedPost)return;let A=this.selectedPost.id;if(this.pendingGenerationStoryIds.has(A))return;if(!this.chatPanelState.messages.some((g)=>g.role==="assistant"))return;this.pendingGenerationStoryIds.add(A),this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%Hq.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await R_(this.chatServiceState,this.selectedPost,this.chatPanelState.messages);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1,this.followUpCount++;aA(this.ctx,this.chatPanelState.suggestions),tU(this.chatPanelState)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);YA("[ERROR]","[follow-up] Error:",g)}finally{this.saveToCache()}}showAuthSetup(){this.authSetupMode=!0,this.authSetupState=NZ(),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.showAuthSetupUI()}showAuthSetupUI(){if(!this.authSetupState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=NJ(this.ctx,this.authSetupState,{onSaveKey:(q,g)=>this.saveApiKey(q,g)});this.storyDetailState.panel.add(A)}hideAuthSetup(){this.authSetupMode=!1;for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.authSetupFromSettings){this.authSetupFromSettings=!1,this.authSetupState=null,this.showSettings();return}if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost)fE(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()});this.authSetupState=null}saveApiKey(A,q){let g=Hg();if(g.provider=A,A==="anthropic")g.anthropicApiKey=q;else g.openaiApiKey=q;vE(g),this.authSetupFromSettings=!1,this.hideAuthSetup(),this.chatServiceState=ZY(A),this.showChatView()}showSettings(){if(this.settingsMode=!0,this.settingsState=xJ(),this.cancelSuggestionLoadingInterval(),this.chatPanelState?.input)this.chatPanelState.input.blur();if(this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);this.rerenderSettings(),this.saveToCache()}rerenderSettings(){if(!this.settingsState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=IJ(this.ctx,this.settingsState,this.chatServiceState?.provider||"anthropic");this.storyDetailState.panel.add(A)}hideSettings(){this.settingsMode=!1;for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.selectedPost&&this.chatServiceState){this.chatPanelState=WZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages];Vg(this.ctx,this.chatPanelState,this.chatServiceState.provider),this.restoreSuggestionsFromSession(A)}this.settingsState=null,this.saveToCache()}async refresh(){B_(),await this.loadPosts()}async copySelectionToClipboard(){let A=this.renderer.getSelection();if(!A)return;let q=A.getSelectedText();if(!q)return;let g=process.platform,E;if(g==="darwin")E=["pbcopy"];else if(g==="linux")E=["xclip","-selection","clipboard"];else if(g==="win32")E=["clip"];else return;try{let F=Bun.spawn(E,{stdin:"pipe"});F.stdin.write(q),F.stdin.end(),await F.exited}catch{}}get currentSelectedIndex(){return this.selectedIndex}get currentRootCommentIndex(){return this.rootCommentIndex}get currentPosts(){return this.posts}get currentSelectedPost(){return this.selectedPost}get rootCommentCount(){return this.storyDetailState.rootCommentBoxes.length}ensureLayoutReadyForTesting(){if(!this.contentArea.getChildren().some((F)=>F.id===this.storyListState.panel.id))this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel);if(!this.storyDetailState.panel.getChildren().some((F)=>F.id===this.storyDetailState.header.id))LZ(this.storyDetailState)}setPostsForTesting(A){this.ensureLayoutReadyForTesting(),this.posts=A,XZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(q)=>this.selectStory(q)})}async setSelectedPostForTesting(A){if(this.ensureLayoutReadyForTesting(),this.selectedIndex===-1)this.selectedIndex=0;this.selectedPost=A,fE(this.ctx,this.storyDetailState,A,{onOpenStoryUrl:()=>this.openStoryUrl()})}cleanup(){if(this.chatPanelState)C6(this.chatPanelState)}}var P1={bg:"#1a1a1a"};async function R1(){let A=await NU({exitOnCtrlC:!0,backgroundColor:P1.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),q=new GY(A,{onOpenUrl:(g)=>{I1(`open "${g}"`)},onExit:()=>{A.destroy(),process.exit(0)}});await q.initialize(),q.startHeaderLoading(),AJ().then((g)=>{if(q.stopHeaderLoading(),g?.hasUpdate)q.setUpdateInfo(g)}),A.start()}R1().catch(console.error);
217
+ IMPORTANT: Output ONLY the summary. Do not include any thinking, planning, or meta-commentary like "I need to search for...", "Let me...", "I'll...", etc.
218
+
219
+ Format your response exactly like this (use the exact separator):
220
+ [2-3 sentences summarizing the article. Key points only.]
221
+ ---DISCUSSION---
222
+ [2-3 sentences summarizing the HN discussion. Main themes and notable opinions only.]
223
+
224
+ Rules:
225
+ - No headers, labels, or markdown formatting
226
+ - No preamble, intro text, or thinking out loud
227
+ - Keep each section to 2-3 sentences maximum
228
+ - Be direct and dense with information
229
+ - Use exactly "---DISCUSSION---" as the separator between sections
230
+ - Start immediately with the article summary content`,h1=[/^I need to .+?\./i,/^I('ll| will) .+?\./i,/^Let me .+?\./i,/^First,? I .+?\./i,/^To .+?, I .+?\./i,/^I should .+?\./i,/^I'm going to .+?\./i,/^Now I .+?\./i,/^Based on .+?, I .+?\./i];function f9(A){let q=A.trim(),g=!0;while(g){g=!1;for(let E of h1){let F=q.match(E);if(F&&q.indexOf(F[0])===0){q=q.slice(F[0].length).trim(),g=!0;break}}}return q}function $Y(A){let q=A.split("---DISCUSSION---"),g=f9(q[0]||""),E=f9(q[1]||"");if(q.length===1&&g.length>0){let F=[/\n\n(?:The discussion|Discussion|Comments|HN comments|The HN discussion)/i,/\n\n(?:Commenters|Users|Readers)/i];for(let K of F){let Z=g.match(K);if(Z&&Z.index!==void 0){E=g.slice(Z.index).trim(),g=g.slice(0,Z.index).trim();break}}if(!E)FA("[tldr] Warning: No discussion separator found in response")}return{articleSummary:g,discussionSummary:E}}async function c9(A,q,g){let E=JY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
231
+
232
+ ${E}`;try{if(q==="anthropic")await z1(F,K,g);else await B1(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function z1(A,q,g){let E=lA("anthropic");if(!E)throw new Error("Anthropic API key not configured");let F=new oA({apiKey:E}),Z=A?[{type:"web_search_20250305",name:"web_search",max_uses:2}]:[];FA("[tldr] Generating TLDR with Anthropic, model:",A6);let j=await F.messages.create({model:A6,max_tokens:1024,system:_Y,tools:Z.length>0?Z:void 0,messages:[{role:"user",content:q}]}),U="";for(let G of j.content)if(G.type==="text")U+=G.text;FA("[tldr] TLDR generated, length:",U.length),g.onComplete($Y(U))}async function B1(A,q,g){let E=lA("openai");if(!E)throw new Error("OpenAI API key not configured");let F=new e({apiKey:E});if(FA("[tldr] Generating TLDR with OpenAI, model:",Vg),A)try{let j=await F.responses.create({model:Vg,tools:[{type:"web_search"}],input:[{role:"developer",content:_Y},{role:"user",content:q}]}),U="";for(let G of j.output)if(G.type==="message"&&G.content){for(let Y of G.content)if(Y.type==="output_text")U+=Y.text}FA("[tldr] TLDR generated via Responses API, length:",U.length),g.onComplete($Y(U));return}catch(j){if(!(j instanceof Error&&(j.message.includes("not found")||j.message.includes("does not exist")||j.message.includes("unsupported"))))throw j;FA("[tldr] Responses API not available, falling back to chat completions:",j)}let Z=(await F.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"system",content:_Y},{role:"user",content:q}]})).choices[0]?.message?.content||"";FA("[tldr] TLDR generated via Chat Completions, length:",Z.length),g.onComplete($Y(Z))}import{existsSync as HY,mkdirSync as w1,readFileSync as C1,writeFileSync as k1,unlinkSync as D1}from"fs";import{join as d9}from"path";import{tmpdir as y1}from"os";var XY=d9(y1(),"hn-cli-cache"),bK=d9(XY,"state.json"),b1=300000;function v1(){if(!HY(XY))w1(XY,{recursive:!0})}function p9(){try{if(!HY(bK))return null;let A=C1(bK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>b1)return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function u9(A){try{v1(),A.savedAt=Date.now(),k1(bK,JSON.stringify(A,null,2))}catch{}}function l9(){try{if(HY(bK))D1(bK)}catch{}}function i9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function t9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function s9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function n9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}var m1=3;class LY{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;headerState;storyListState;storyDetailState;emptyStateState;chatPanelState=null;authSetupState=null;settingsState=null;chatServiceState=null;savedChatSessions=new Map;storyViewModes=new Map;chatMode=!1;authSetupMode=!1;settingsMode=!1;authSetupFromSettings=!1;settingsFromChatMode=!1;settingsIntent="settings";updateInfo=null;followUpCount=0;pendingGenerationStoryIds=new Set;suggestionLoadingInterval=null;storiesFetchedAt=0;tldrCache=new Map;tldrErrorIds=new Set;tldrLoading=!1;tldrLoadingStoryId=null;tldrLoadingFrame=0;tldrLoadingInterval=null;aiActiveIndices=new Set;aiIndicatorFrame=0;aiIndicatorInterval=null;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}saveToCache(){let A={posts:this.posts,selectedIndex:this.selectedIndex,selectedPost:this.selectedPost,rootCommentIndex:this.rootCommentIndex,chatMode:this.chatMode,settingsMode:this.settingsMode,chatSessions:i9(this.savedChatSessions),storyViewModes:s9(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};u9(A)}async initialize(){await ZJ(this.renderer),this.setupLayout(),this.setupKeyboardHandlers();let A=p9();if(A&&A.posts.length>0)await this.restoreFromCache(A);else await this.loadPosts()}async restoreFromCache(A){if(this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt,this.savedChatSessions=t9(A.chatSessions),this.storyViewModes=A.storyViewModes?n9(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(q)=>this.selectStory(q)}),A.selectedIndex>=0&&A.selectedIndex<this.posts.length){if(await this.selectStory(A.selectedIndex),A.chatMode&&this.selectedPost)this.showChatView();else if(A.settingsMode)this.showSettings()}else if(this.posts.length>0)await this.selectStory(0)}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}setUpdateInfo(A){this.updateInfo=A,OJ(this.headerState,this.updateInfo)}startHeaderLoading(){JJ(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){MJ(this.headerState)}setupLayout(){let A=new b(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg,paddingTop:1}),{header:q,state:g}=QJ(this.ctx,{onOpenGitHub:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")}});this.headerState=g,this.contentArea=new b(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=VJ(this.ctx),this.storyDetailState=xJ(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=SJ(this.ctx),this.contentArea.add(this.emptyStateState.container),A.add(q),A.add(this.contentArea),this.renderer.root.add(A)}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(A.super&&A.name==="c"){this.copySelectionToClipboard();return}if(this.settingsMode&&this.settingsState){this.handleSettingsKey(A);return}if(this.authSetupMode&&this.authSetupState){this.handleAuthSetupKey(A);return}if(this.chatMode&&this.chatPanelState){this.handleChatKey(A);return}this.handleMainKey(A)})}handleSettingsKey(A){if(!this.settingsState)return;if(A.name==="escape"){if(!vJ(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")EG(this.settingsState,1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")EG(this.settingsState,-1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="return"||A.name==="enter"){let q=bJ(this.settingsState,Wg()||"anthropic");if(q)this.handleSettingsAction(q)}}handleSettingsAction(A){switch(A.type){case"switch_provider":let q=q6();if(q.provider=A.provider,tE(q),this.chatServiceState)m9(this.chatServiceState,A.provider),MY(this.chatServiceState);this.rerenderSettings();break;case"done":this.hideSettings();break;case"add_anthropic":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="anthropic",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"add_openai":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":KJ(),this.chatServiceState=null,this.chatMode=!1,this.settingsFromChatMode=!1,this.savedChatSessions.clear(),this.storyViewModes.clear(),this.hideSettings();break;case"select_model":if(FJ(A.provider,A.modelId),this.chatServiceState)MY(this.chatServiceState);this.rerenderSettings();break}}handleAuthSetupKey(A){if(!this.authSetupState)return;if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupState.step==="provider"){if(A.name==="j"||A.name==="down")qG(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")qG(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")kJ(this.authSetupState),this.showAuthSetupUI()}}handleChatKey(A){if(!this.chatPanelState)return;if(A.name==="escape"){this.hideChatView();return}if(A.super&&(A.name==="j"||A.name==="k")){let g=A.name==="j"?1:-1;this.navigateStory(g);return}let q=this.chatPanelState.suggestions;if(q.suggestions.length>0&&this.chatPanelState.input&&!this.chatPanelState.input.plainText.trim()){if(A.name==="up"||A.name==="k"){if(q.selectedIndex===-1)q.selectedIndex=q.suggestions.length-1;else if(q.selectedIndex>0)q.selectedIndex--;this.chatPanelState.input.blur(),aA(this.ctx,q);return}else if(A.name==="down"||A.name==="j"){if(q.selectedIndex===q.suggestions.length-1)q.selectedIndex=-1,this.chatPanelState.input.focus();else if(q.selectedIndex>=0)q.selectedIndex++,this.chatPanelState.input.blur();aA(this.ctx,q);return}}if(A.name==="tab"&&q.selectedIndex>=0&&q.suggestions.length>0){let g=q.suggestions[q.selectedIndex];if(g&&this.chatPanelState.input){this.chatPanelState.input.focus(),this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(g+" "),q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatPanelState.input&&this.chatPanelState.input.plainText.trim()){this.sendChatMessage();return}if(q.selectedIndex>=0&&q.suggestions.length>0){this.selectSuggestion();return}return}if(q.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126){if(this.chatPanelState.input)this.chatPanelState.input.focus();q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q)}}if(A.name==="backspace"&&this.chatPanelState.input&&q.originalSuggestions.length>0)setTimeout(()=>{if(this.chatPanelState?.input&&!this.chatPanelState.input.plainText.trim()&&this.chatPanelState.suggestions.suggestions.length===0)this.chatPanelState.suggestions.suggestions=[...this.chatPanelState.suggestions.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=this.chatPanelState.suggestions.suggestions.length-1,aA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){if(A.name==="s"){this.settingsIntent="settings",this.showSettings();return}if(A.name==="j")this.navigateStory(1);else if(A.name==="k")this.navigateStory(-1);else if(A.name==="space"||A.name===" ")this.navigateToNextComment();else if(A.name==="o")this.openStoryUrl();else if(A.name==="c")this.openChat();else if(A.name==="r")this.refresh();else if(A.name==="t")this.handleTldrRequest()}async loadPosts(){aJ(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{if(this.posts=await rO(),this.storiesFetchedAt=Date.now(),nE(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(A)=>this.selectStory(A)}),this.posts.length>0)await this.selectStory(0);this.saveToCache()}catch(A){nE(this.emptyStateState),FA("[ERROR]","Error loading posts:",A)}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(this.tldrLoading)this.stopTldrLoadingAnimation();if(this.chatMode&&this.selectedPost&&this.chatPanelState){if(this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount}),this.cancelSuggestionLoadingInterval(),this.chatPanelState.input)this.chatPanelState.input.blur();if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null}let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,WJ(this.storyListState,this.posts,q,A);let g=this.posts[A];if(!g)return;for(let E of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(E.id);try{let E=await nO(g.id);if(this.renderer.isDestroyed)return;if(E)if(this.selectedPost=E,(this.storyViewModes.get(g.id)||"comments")==="chat"&&this.chatServiceState)this.chatMode=!0,this.showChatViewForCurrentStory();else{this.chatMode=!1,this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar);let K=this.tldrLoading&&this.tldrLoadingStoryId===E.id,Z=this.tldrCache.get(E.id)||null,j=this.tldrErrorIds.has(E.id);if(g6(this.ctx,this.storyDetailState,E,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:Z,isLoading:K,loadingFrame:this.tldrLoadingFrame,hasError:j}),K)this.startTldrLoadingAnimation()}}catch(E){FA("[ERROR]","Error loading post:",E)}if(this.renderer.isDestroyed)return;NJ(this.storyListState,A),this.saveToCache()}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)}handleTldrRequest(){if(!this.selectedPost)return;if(!EJ()){this.settingsIntent="tldr",this.showSettings();return}if(this.tldrLoading)return;let A=this.selectedPost.id;this.tldrCache.delete(A),this.tldrErrorIds.delete(A);let q=Wg();if(!q)return;this.tldrLoading=!0,this.tldrLoadingStoryId=A,this.tldrLoadingFrame=0,this.rerenderCurrentStory(),this.startAiIndicator(this.selectedIndex),this.startTldrLoadingAnimation();let g=this.selectedIndex;c9(this.selectedPost,q,{onComplete:(E)=>{if(this.renderer.isDestroyed)return;if(this.tldrCache.set(A,E),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()},onError:(E)=>{if(FA("[ERROR]","TLDR generation failed:",E),this.tldrErrorIds.add(A),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()}})}startTldrLoadingAnimation(){this.stopTldrLoadingAnimation(),this.tldrLoadingInterval=setInterval(()=>{if(this.renderer.isDestroyed||!this.tldrLoading){this.stopTldrLoadingAnimation();return}if(this.selectedPost?.id===this.tldrLoadingStoryId)this.tldrLoadingFrame=(this.tldrLoadingFrame+1)%10,this.rerenderCurrentStory()},80)}stopTldrLoadingAnimation(){if(this.tldrLoadingInterval)clearInterval(this.tldrLoadingInterval),this.tldrLoadingInterval=null}startAiIndicator(A){if(this.aiActiveIndices.add(A),!this.aiIndicatorInterval)this.aiIndicatorInterval=setInterval(()=>{if(this.renderer.isDestroyed||this.aiActiveIndices.size===0){this.stopAiIndicatorAnimation();return}this.aiIndicatorFrame=(this.aiIndicatorFrame+1)%yA.length;let q=yA[this.aiIndicatorFrame];for(let g of this.aiActiveIndices)rU(this.storyListState,g,q)},80)}stopAiIndicator(A){this.aiActiveIndices.delete(A);let q=A===this.selectedIndex;if(rU(this.storyListState,A,q?"\u203A":"\u2022"),this.aiActiveIndices.size===0)this.stopAiIndicatorAnimation()}stopAiIndicatorAnimation(){if(this.aiIndicatorInterval)clearInterval(this.aiIndicatorInterval),this.aiIndicatorInterval=null}rerenderCurrentStory(){if(!this.selectedPost||this.chatMode)return;let A=this.selectedPost.id,q=this.tldrCache.get(A)||null,g=this.tldrLoading&&this.tldrLoadingStoryId===A,E=this.tldrErrorIds.has(A);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:g,loadingFrame:this.tldrLoadingFrame,hasError:E})}showChatViewForCurrentStory(){if(!this.selectedPost||!this.chatServiceState)return;this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A)}navigateToNextComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;let A=this.storyDetailState.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,eU(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,eU(this.storyDetailState,this.rootCommentIndex)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=Wg();if(A)this.chatServiceState=OY(A),this.showChatView();else this.settingsIntent="chat",this.showSettings()}showChatView(){if(!this.selectedPost||!this.chatServiceState)return;this.chatMode=!0,this.storyViewModes.set(this.selectedPost.id,"chat"),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A),this.saveToCache()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.selectedPost)this.storyViewModes.set(this.selectedPost.id,"comments");if(this.cancelSuggestionLoadingInterval(),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});if(this.chatPanelState?.input)this.chatPanelState.input.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null,this.saveToCache()}async sendChatMessage(){if(!this.chatPanelState||!this.chatServiceState||this.chatServiceState.isStreaming)return;let A=this.chatPanelState.input.plainText.trim();if(!A)return;this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,aA(this.ctx,this.chatPanelState.suggestions),rE(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(rE(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;wJ(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=this.selectedIndex;this.startAiIndicator(g);let E=!1;await y9(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(F)=>{if(!E&&this.chatPanelState)E=!0,d6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=F,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g),this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(F)=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g);let K=this.chatServiceState?.provider==="anthropic"?"Anthropic":"OpenAI";if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=`Error: ${F.message}
233
+
234
+ Check your ${K} API key in ~/.config/hn-cli/config.json`,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)}})}selectSuggestion(){if(!this.chatPanelState)return;let A=this.chatPanelState.suggestions;if(A.selectedIndex<0||A.selectedIndex>=A.suggestions.length)return;let q=A.suggestions[A.selectedIndex];if(!q)return;if(this.chatPanelState.input)this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(q);A.suggestions=[],A.selectedIndex=-1,aA(this.ctx,A),this.sendChatMessage()}cancelSuggestionLoadingInterval(){if(this.suggestionLoadingInterval)clearInterval(this.suggestionLoadingInterval),this.suggestionLoadingInterval=null}restoreSuggestionsFromSession(A){if(!this.chatPanelState)return;if(A&&A.suggestions.length>0)this.chatPanelState.suggestions.suggestions=[...A.suggestions],this.chatPanelState.suggestions.originalSuggestions=[...A.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=A.suggestions.length-1,this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);else if(A&&A.messages.length>0)this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateFollowUpQuestionsIfNeeded();else this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateInitialSuggestions()}async generateInitialSuggestions(){if(!this.selectedPost||!this.chatPanelState||!this.chatServiceState)return;let A=this.selectedPost.id,q=this.chatPanelState.suggestions;this.pendingGenerationStoryIds.add(A),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await b9(this.chatServiceState,this.selectedPost);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1;aA(this.ctx,this.chatPanelState.suggestions)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[suggestions] Error:",g)}}async generateFollowUpQuestionsIfNeeded(){if(this.followUpCount>=m1)return;if(!this.chatPanelState||!this.chatServiceState||!this.selectedPost)return;let A=this.selectedPost.id;if(this.pendingGenerationStoryIds.has(A))return;if(!this.chatPanelState.messages.some((g)=>g.role==="assistant"))return;this.pendingGenerationStoryIds.add(A),this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await v9(this.chatServiceState,this.selectedPost,this.chatPanelState.messages);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1,this.followUpCount++;aA(this.ctx,this.chatPanelState.suggestions),AG(this.chatPanelState)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[follow-up] Error:",g)}finally{this.saveToCache()}}showAuthSetup(){this.authSetupMode=!0,this.authSetupState=RZ(),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.showAuthSetupUI()}showAuthSetupUI(){if(!this.authSetupState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=CJ(this.ctx,this.authSetupState,{onSaveKey:(q,g)=>this.saveApiKey(q,g)});this.storyDetailState.panel.add(A)}hideAuthSetup(){if(this.authSetupMode=!1,this.authSetupState?.keyInput)this.authSetupState.keyInput.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.authSetupFromSettings){this.authSetupFromSettings=!1,this.authSetupState=null,this.showSettings();return}if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.authSetupState=null}saveApiKey(A,q){let g=q6();if(g.provider=A,A==="anthropic")g.anthropicApiKey=q;else g.openaiApiKey=q;if(tE(g),this.authSetupFromSettings=!1,this.hideAuthSetup(),this.chatServiceState=OY(A),this.settingsIntent==="chat")this.showChatView();else if(this.settingsIntent==="tldr")this.handleTldrRequest();else this.showSettings();this.settingsIntent="settings"}showSettings(){if(this.settingsMode=!0,this.settingsFromChatMode=this.chatMode,this.settingsState=DJ(),this.cancelSuggestionLoadingInterval(),this.chatPanelState?.input)this.chatPanelState.input.blur();if(this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);this.rerenderSettings(),this.saveToCache()}rerenderSettings(){if(!this.settingsState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=yJ(this.ctx,this.settingsState,Wg()||"anthropic");this.storyDetailState.panel.add(A)}hideSettings(){this.settingsMode=!1;for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.settingsFromChatMode&&this.selectedPost&&this.chatServiceState){this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages];Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider),this.restoreSuggestionsFromSession(A)}else if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.settingsState=null,this.saveToCache()}async refresh(){l9(),await this.loadPosts()}async copySelectionToClipboard(){let A=this.renderer.getSelection();if(!A)return;let q=A.getSelectedText();if(!q)return;let g=process.platform,E;if(g==="darwin")E=["pbcopy"];else if(g==="linux")E=["xclip","-selection","clipboard"];else if(g==="win32")E=["clip"];else return;try{let F=Bun.spawn(E,{stdin:"pipe"});F.stdin.write(q),F.stdin.end(),await F.exited}catch{}}get currentSelectedIndex(){return this.selectedIndex}get currentRootCommentIndex(){return this.rootCommentIndex}get currentPosts(){return this.posts}get currentSelectedPost(){return this.selectedPost}get rootCommentCount(){return this.storyDetailState.rootCommentBoxes.length}ensureLayoutReadyForTesting(){if(!this.contentArea.getChildren().some((F)=>F.id===this.storyListState.panel.id))this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel);if(!this.storyDetailState.panel.getChildren().some((F)=>F.id===this.storyDetailState.header.id))IZ(this.storyDetailState)}setPostsForTesting(A){this.ensureLayoutReadyForTesting(),this.posts=A,TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(q)=>this.selectStory(q)})}async setSelectedPostForTesting(A){if(this.ensureLayoutReadyForTesting(),this.selectedIndex===-1)this.selectedIndex=0;this.selectedPost=A;let q=this.tldrCache.get(A.id)||null,g=this.tldrErrorIds.has(A.id);g6(this.ctx,this.storyDetailState,A,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:!1,hasError:g})}cleanup(){if(this.chatPanelState)d6(this.chatPanelState);this.stopTldrLoadingAnimation(),this.stopAiIndicatorAnimation()}}var c1={bg:"#1a1a1a"};async function d1(){let A=await RU({exitOnCtrlC:!0,backgroundColor:c1.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),q=new LY(A,{onOpenUrl:(g)=>{f1(`open "${g}"`)},onExit:()=>{A.destroy(),process.exit(0)}});await q.initialize(),q.startHeaderLoading(),YJ().then((g)=>{if(q.stopHeaderLoading(),g?.hasUpdate)q.setUpdateInfo(g)}),A.start()}d1().catch(console.error);