@brianlovin/hn-cli 0.2.0 → 0.4.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 +81 -19
  2. package/dist/cli.js +110 -86
  3. package/package.json +2 -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 wX}from"buffer";import{EventEmitter as pX}from"events";import{EventEmitter as tX}from"events";import{EventEmitter as F_}from"events";import{resolve as Xq,dirname as _q}from"path";import{fileURLToPath as Hq}from"url";var GQ="./highlights-ghv9g403.scm";var YQ="./tree-sitter-javascript-nd0q4pe9.wasm";var QQ="./highlights-eq9cgrbb.scm";var JQ="./tree-sitter-typescript-zxjzwt75.wasm";var OQ="./highlights-r812a2qc.scm";var MQ="./tree-sitter-markdown-411r6y9b.wasm";var $Q="./injections-73j83es3.scm";var XQ="./highlights-x6tmsnaa.scm";var _Q="./tree-sitter-markdown_inline-j5349f42.wasm";var HQ="./highlights-hk7bwhj4.scm";var VQ="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as PQ,isAbsolute as U_,parse as G_}from"path";import{existsSync as Y_}from"fs";import{basename as Q_,join as J_}from"path";import IQ from"os";import Wg from"path";import{EventEmitter as __}from"events";import{dlopen as W_,toArrayBuffer as vE,JSCallback as SQ,ptr as qA}from"bun:ffi";import{existsSync as L_}from"fs";import{EventEmitter as N_}from"events";import{toArrayBuffer as OZ,ptr as hQ}from"bun:ffi";import{ptr as sg,toArrayBuffer as JU}from"bun:ffi";import{ptr as h_,toArrayBuffer as a_}from"bun:ffi";import{EventEmitter as C_}from"events";import v_ from"util";import{EventEmitter as NJ}from"events";import{Console as c_}from"console";import d_ from"fs";import p_ from"path";import uQ from"util";import{Writable as u_}from"stream";import{EventEmitter as l_}from"events";import{EventEmitter as n_}from"events";var IX=Object.defineProperty;var xX=(A,q)=>{for(var g in q)IX(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})},AW=import.meta.require,iQ={};xX(iQ,{default:()=>WZ,Wrap:()=>oq,Unit:()=>Wq,PositionType:()=>rq,Overflow:()=>nq,NodeType:()=>_U,MeasureMode:()=>eq,LogLevel:()=>og,Justify:()=>cA,Gutter:()=>Lq,FlexDirection:()=>Uq,ExperimentalFeature:()=>tQ,Errata:()=>rg,Edge:()=>n,Display:()=>Pg,Direction:()=>u6,Dimension:()=>XU,BoxSizing:()=>$U,Align:()=>UA});var RX=(()=>{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(J,O){E=J,F=O});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,Q=!1;function $(J,O,_){_=O+_;for(var H="";!(O>=_);){var T=J[O++];if(!T)break;if(T&128){var S=J[O++]&63;if((T&224)==192)H+=String.fromCharCode((T&31)<<6|S);else{var B=J[O++]&63;T=(T&240)==224?(T&15)<<12|S<<6|B:(T&7)<<18|S<<12|B<<6|J[O++]&63,65536>T?H+=String.fromCharCode(T):(T-=65536,H+=String.fromCharCode(55296|T>>10,56320|T&1023))}}else H+=String.fromCharCode(T)}return H}var X,I,N,W,x,C,D,i,p;function h(){var J=M.buffer;X=J,g.HEAP8=I=new Int8Array(J),g.HEAP16=W=new Int16Array(J),g.HEAP32=C=new Int32Array(J),g.HEAPU8=N=new Uint8Array(J),g.HEAPU16=x=new Uint16Array(J),g.HEAPU32=D=new Uint32Array(J),g.HEAPF32=i=new Float32Array(J),g.HEAPF64=p=new Float64Array(J)}var z,r=[],c=[],gA=[];function KA(){var J=g.preRun.shift();r.unshift(J)}var QA=0,RA=null,mA=null;function SA(J){if(g.onAbort)g.onAbort(J);throw J="Aborted("+J+")",U(J),Q=!0,J=new WebAssembly.RuntimeError(J+". Build with -sASSERTIONS for more info."),F(J),J}function hq(J){return J.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+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(!hq(cq)){var pY=cq;cq=g.locateFile?g.locateFile(pY,Z):Z+pY}function uY(){var J=cq;try{if(J==cq&&G)return new Uint8Array(G);if(hq(J))try{var O=JX(J.slice(37)),_=new Uint8Array(O.length);for(J=0;J<O.length;++J)_[J]=O.charCodeAt(J);var H=_}catch(S){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var T=H;if(T)return T;throw"both async and sync fetching of the wasm failed"}catch(S){SA(S)}}function u$(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return uY()}):fetch(cq,{credentials:"same-origin"}).then(function(J){if(!J.ok)throw"failed to load wasm binary file at '"+cq+"'";return J.arrayBuffer()}).catch(function(){return uY()})}function tj(J){for(;0<J.length;)J.shift()(g)}function lY(J){if(J===void 0)return"_unknown";J=J.replace(/[^a-zA-Z0-9_]/g,"$");var O=J.charCodeAt(0);return 48<=O&&57>=O?"_"+J:J}function sj(J,O){return J=lY(J),function(){return O.apply(this,arguments)}}var Oq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],nj=[];function eK(J){var O=Error,_=sj(J,function(H){this.name=J,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
4
+ `+H.replace(/^Error(:[^\n]*)?\n/,""))});return _.prototype=Object.create(O.prototype),_.prototype.constructor=_,_.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},_}var y6=void 0;function ZA(J){throw new y6(J)}var kE=(J)=>{return J||ZA("Cannot use deleted val. handle = "+J),Oq[J].value},AZ=(J)=>{switch(J){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var O=nj.length?nj.pop():Oq.length;return Oq[O]={ga:1,value:J},O}},iY=void 0,tY=void 0;function BA(J){for(var O="";N[J];)O+=tY[N[J++]];return O}var CE=[];function rj(){for(;CE.length;){var J=CE.pop();J.M.$=!1,J.delete()}}var DE=void 0,dq={};function oj(J,O){for(O===void 0&&ZA("ptr should not be undefined");J.R;)O=J.ba(O),J=J.R;return O}var tg={};function sY(J){J=KQ(J);var O=BA(J);return lq(J),O}function nY(J,O){var _=tg[J];return _===void 0&&ZA(O+" has unknown type "+sY(J)),_}function qZ(){}var ej=!1;function rY(J){--J.count.value,J.count.value===0&&(J.T?J.U.W(J.T):J.P.N.W(J.O))}function oY(J,O,_){if(O===_)return J;if(_.R===void 0)return null;return J=oY(J,O,_.R),J===null?null:_.na(J)}var eY={};function l$(J,O){return O=oj(J,O),dq[O]}var AQ=void 0;function gZ(J){throw new AQ(J)}function EZ(J,O){return O.P&&O.O||gZ("makeClassHandle requires ptr and ptrType"),!!O.U!==!!O.T&&gZ("Both smartPtrType and smartPtr must be specified"),O.count={value:1},b6(Object.create(J,{M:{value:O}}))}function b6(J){if(typeof FinalizationRegistry==="undefined")return b6=(O)=>O,J;return ej=new FinalizationRegistry((O)=>{rY(O.M)}),b6=(O)=>{var _=O.M;return _.T&&ej.register(O,{M:_},O),O},qZ=(O)=>{ej.unregister(O)},b6(J)}var FZ={};function AU(J){for(;J.length;){var O=J.pop();J.pop()(O)}}function yE(J){return this.fromWireType(C[J>>2])}var v6={},KZ={};function Hg(J,O,_){function H(k){k=_(k),k.length!==J.length&&gZ("Mismatched type converter count");for(var m=0;m<J.length;++m)pq(J[m],k[m])}J.forEach(function(k){KZ[k]=O});var T=Array(O.length),S=[],B=0;O.forEach((k,m)=>{tg.hasOwnProperty(k)?T[m]=tg[k]:(S.push(k),v6.hasOwnProperty(k)||(v6[k]=[]),v6[k].push(()=>{T[m]=tg[k],++B,B===S.length&&H(T)}))}),S.length===0&&H(T)}function qU(J){switch(J){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+J)}}function pq(J,O,_={}){if(!("argPackAdvance"in O))throw new TypeError("registerType registeredInstance requires argPackAdvance");var H=O.name;if(J||ZA('type "'+H+'" must have a positive integer typeid pointer'),tg.hasOwnProperty(J)){if(_.ua)return;ZA("Cannot register type '"+H+"' twice")}tg[J]=O,delete KZ[J],v6.hasOwnProperty(J)&&(O=v6[J],delete v6[J],O.forEach((T)=>T()))}function gU(J){ZA(J.M.P.N.name+" instance already deleted")}function Vg(){}function EU(J,O,_){if(J[O].S===void 0){var H=J[O];J[O]=function(){return J[O].S.hasOwnProperty(arguments.length)||ZA("Function '"+_+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+J[O].S+")!"),J[O].S[arguments.length].apply(this,arguments)},J[O].S=[],J[O].S[H.Z]=H}}function i$(J,O){g.hasOwnProperty(J)?(ZA("Cannot register public name '"+J+"' twice"),EU(g,J,J),g.hasOwnProperty(void 0)&&ZA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[J].S[void 0]=O):g[J]=O}function t$(J,O,_,H,T,S,B,k){this.name=J,this.constructor=O,this.X=_,this.W=H,this.R=T,this.pa=S,this.ba=B,this.na=k,this.ja=[]}function FU(J,O,_){for(;O!==_;)O.ba||ZA("Expected null or instance of "+_.name+", got an instance of "+O.name),J=O.ba(J),O=O.R;return J}function s$(J,O){if(O===null)return this.ea&&ZA("null is not a valid "+this.name),0;return O.M||ZA('Cannot pass "'+UU(O)+'" as a '+this.name),O.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),FU(O.M.O,O.M.P.N,this.N)}function n$(J,O){if(O===null){if(this.ea&&ZA("null is not a valid "+this.name),this.da){var _=this.fa();return J!==null&&J.push(this.W,_),_}return 0}if(O.M||ZA('Cannot pass "'+UU(O)+'" as a '+this.name),O.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&O.M.P.ca&&ZA("Cannot convert argument of type "+(O.M.U?O.M.U.name:O.M.P.name)+" to parameter type "+this.name),_=FU(O.M.O,O.M.P.N,this.N),this.da)switch(O.M.T===void 0&&ZA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:O.M.U===this?_=O.M.T:ZA("Cannot convert argument of type "+(O.M.U?O.M.U.name:O.M.P.name)+" to parameter type "+this.name);break;case 1:_=O.M.T;break;case 2:if(O.M.U===this)_=O.M.T;else{var H=O.clone();_=this.xa(_,AZ(function(){H.delete()})),J!==null&&J.push(this.W,_)}break;default:ZA("Unsupporting sharing policy")}return _}function r$(J,O){if(O===null)return this.ea&&ZA("null is not a valid "+this.name),0;return O.M||ZA('Cannot pass "'+UU(O)+'" as a '+this.name),O.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),O.M.P.ca&&ZA("Cannot convert argument of type "+O.M.P.name+" to parameter type "+this.name),FU(O.M.O,O.M.P.N,this.N)}function uq(J,O,_,H){this.name=J,this.N=O,this.ea=_,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,O.R!==void 0?this.toWireType=n$:(this.toWireType=H?s$:r$,this.V=null)}function o$(J,O){g.hasOwnProperty(J)||gZ("Replacing nonexistant public symbol"),g[J]=O,g[J].Z=void 0}function e$(J,O){var _=[];return function(){if(_.length=0,Object.assign(_,arguments),J.includes("j")){var H=g["dynCall_"+J];H=_&&_.length?H.apply(null,[O].concat(_)):H.call(null,O)}else H=z.get(O).apply(null,_);return H}}function Mq(J,O){J=BA(J);var _=J.includes("j")?e$(J,O):z.get(O);return typeof _!="function"&&ZA("unknown function pointer with signature "+J+": "+O),_}var qQ=void 0;function ZZ(J,O){function _(S){T[S]||tg[S]||(KZ[S]?KZ[S].forEach(_):(H.push(S),T[S]=!0))}var H=[],T={};throw O.forEach(_),new qQ(J+": "+H.map(sY).join([", "]))}function KU(J,O,_,H,T){var S=O.length;2>S&&ZA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=O[1]!==null&&_!==null,k=!1;for(_=1;_<O.length;++_)if(O[_]!==null&&O[_].V===void 0){k=!0;break}var m=O[0].name!=="void",v=S-2,l=Array(v),o=[],jA=[];return function(){if(arguments.length!==v&&ZA("function "+J+" called with "+arguments.length+" arguments, expected "+v+" args!"),jA.length=0,o.length=B?2:1,o[0]=T,B){var VA=O[1].toWireType(jA,this);o[1]=VA}for(var YA=0;YA<v;++YA)l[YA]=O[YA+2].toWireType(jA,arguments[YA]),o.push(l[YA]);if(YA=H.apply(null,o),k)AU(jA);else for(var sA=B?1:2;sA<O.length;sA++){var $q=sA===1?VA:l[sA-2];O[sA].V!==null&&O[sA].V($q)}return VA=m?O[0].fromWireType(YA):void 0,VA}}function ZU(J,O){for(var _=[],H=0;H<J;H++)_.push(D[O+4*H>>2]);return _}function jU(J){4<J&&--Oq[J].ga===0&&(Oq[J]=void 0,nj.push(J))}function UU(J){if(J===null)return"null";var O=typeof J;return O==="object"||O==="array"||O==="function"?J.toString():""+J}function AX(J,O){switch(O){case 2:return function(_){return this.fromWireType(i[_>>2])};case 3:return function(_){return this.fromWireType(p[_>>3])};default:throw new TypeError("Unknown float type: "+J)}}function qX(J,O,_){switch(O){case 0:return _?function(H){return I[H]}:function(H){return N[H]};case 1:return _?function(H){return W[H>>1]}:function(H){return x[H>>1]};case 2:return _?function(H){return C[H>>2]}:function(H){return D[H>>2]};default:throw new TypeError("Unknown integer type: "+J)}}function gX(J,O){for(var _="",H=0;!(H>=O/2);++H){var T=W[J+2*H>>1];if(T==0)break;_+=String.fromCharCode(T)}return _}function EX(J,O,_){if(_===void 0&&(_=2147483647),2>_)return 0;_-=2;var H=O;_=_<2*J.length?_/2:J.length;for(var T=0;T<_;++T)W[O>>1]=J.charCodeAt(T),O+=2;return W[O>>1]=0,O-H}function FX(J){return 2*J.length}function KX(J,O){for(var _=0,H="";!(_>=O/4);){var T=C[J+4*_>>2];if(T==0)break;++_,65536<=T?(T-=65536,H+=String.fromCharCode(55296|T>>10,56320|T&1023)):H+=String.fromCharCode(T)}return H}function ZX(J,O,_){if(_===void 0&&(_=2147483647),4>_)return 0;var H=O;_=H+_-4;for(var T=0;T<J.length;++T){var S=J.charCodeAt(T);if(55296<=S&&57343>=S){var B=J.charCodeAt(++T);S=65536+((S&1023)<<10)|B&1023}if(C[O>>2]=S,O+=4,O+4>_)break}return C[O>>2]=0,O-H}function jX(J){for(var O=0,_=0;_<J.length;++_){var H=J.charCodeAt(_);55296<=H&&57343>=H&&++_,O+=4}return O}var UX={};function gQ(J){var O=UX[J];return O===void 0?BA(J):O}var jZ=[];function GX(J){var O=jZ.length;return jZ.push(J),O}function YX(J,O){for(var _=Array(J),H=0;H<J;++H)_[H]=nY(D[O+4*H>>2],"parameter "+H);return _}var EQ=[],QX=[null,[],[]];y6=g.BindingError=eK("BindingError"),g.count_emval_handles=function(){for(var J=0,O=5;O<Oq.length;++O)Oq[O]!==void 0&&++J;return J},g.get_first_emval=function(){for(var J=5;J<Oq.length;++J)if(Oq[J]!==void 0)return Oq[J];return null},iY=g.PureVirtualError=eK("PureVirtualError");for(var FQ=Array(256),UZ=0;256>UZ;++UZ)FQ[UZ]=String.fromCharCode(UZ);tY=FQ,g.getInheritedInstanceCount=function(){return Object.keys(dq).length},g.getLiveInheritedInstances=function(){var J=[],O;for(O in dq)dq.hasOwnProperty(O)&&J.push(dq[O]);return J},g.flushPendingDeletes=rj,g.setDelayFunction=function(J){DE=J,CE.length&&DE&&DE(rj)},AQ=g.InternalError=eK("InternalError"),Vg.prototype.isAliasOf=function(J){if(!(this instanceof Vg&&J instanceof Vg))return!1;var O=this.M.P.N,_=this.M.O,H=J.M.P.N;for(J=J.M.O;O.R;)_=O.ba(_),O=O.R;for(;H.R;)J=H.ba(J),H=H.R;return O===H&&_===J},Vg.prototype.clone=function(){if(this.M.O||gU(this),this.M.aa)return this.M.count.value+=1,this;var J=b6,O=Object,_=O.create,H=Object.getPrototypeOf(this),T=this.M;return J=J(_.call(O,H,{M:{value:{count:T.count,$:T.$,aa:T.aa,O:T.O,P:T.P,T:T.T,U:T.U}}})),J.M.count.value+=1,J.M.$=!1,J},Vg.prototype.delete=function(){this.M.O||gU(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),qZ(this),rY(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Vg.prototype.isDeleted=function(){return!this.M.O},Vg.prototype.deleteLater=function(){return this.M.O||gU(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),CE.push(this),CE.length===1&&DE&&DE(rj),this.M.$=!0,this},uq.prototype.qa=function(J){return this.ka&&(J=this.ka(J)),J},uq.prototype.ha=function(J){this.W&&this.W(J)},uq.prototype.argPackAdvance=8,uq.prototype.readValueFromPointer=yE,uq.prototype.deleteObject=function(J){if(J!==null)J.delete()},uq.prototype.fromWireType=function(J){function O(){return this.da?EZ(this.N.X,{P:this.wa,O:_,U:this,T:J}):EZ(this.N.X,{P:this,O:J})}var _=this.qa(J);if(!_)return this.ha(J),null;var H=l$(this.N,_);if(H!==void 0){if(H.M.count.value===0)return H.M.O=_,H.M.T=J,H.clone();return H=H.clone(),this.ha(J),H}if(H=this.N.pa(_),H=eY[H],!H)return O.call(this);H=this.ca?H.la:H.pointerType;var T=oY(_,this.N,H.N);return T===null?O.call(this):this.da?EZ(H.N.X,{P:H,O:T,U:this,T:J}):EZ(H.N.X,{P:H,O:T})},qQ=g.UnboundTypeError=eK("UnboundTypeError");var JX=typeof atob=="function"?atob:function(J){var O="",_=0;J=J.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(J.charAt(_++)),T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(J.charAt(_++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(J.charAt(_++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(J.charAt(_++));H=H<<2|T>>4,T=(T&15)<<4|S>>2;var k=(S&3)<<6|B;O+=String.fromCharCode(H),S!==64&&(O+=String.fromCharCode(T)),B!==64&&(O+=String.fromCharCode(k))}while(_<J.length);return O},OX={l:function(J,O,_,H){SA("Assertion failed: "+(J?$(N,J):"")+", at: "+[O?O?$(N,O):"":"unknown filename",_,H?H?$(N,H):"":"unknown function"])},q:function(J,O,_){J=BA(J),O=nY(O,"wrapper"),_=kE(_);var H=[].slice,T=O.N,S=T.X,B=T.R.X,k=T.R.constructor;J=sj(J,function(){T.R.ja.forEach(function(v){if(this[v]===B[v])throw new iY("Pure virtual function "+v+" 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 v=k.implement.apply(void 0,[this].concat(H.call(arguments)));qZ(v);var l=v.M;v.notifyOnDestruction(),l.aa=!0,Object.defineProperties(this,{M:{value:l}}),b6(this),v=l.O,v=oj(T,v),dq.hasOwnProperty(v)?ZA("Tried to register registered instance: "+v):dq[v]=this},S.__destruct=function(){this===S&&ZA("Pass correct 'this' to __destruct"),qZ(this);var v=this.M.O;v=oj(T,v),dq.hasOwnProperty(v)?delete dq[v]:ZA("Tried to unregister unregistered instance: "+v)},J.prototype=Object.create(S);for(var m in _)J.prototype[m]=_[m];return AZ(J)},j:function(J){var O=FZ[J];delete FZ[J];var{fa:_,W:H,ia:T}=O,S=T.map((B)=>B.ta).concat(T.map((B)=>B.za));Hg([J],S,(B)=>{var k={};return T.forEach((m,v)=>{var l=B[v],o=m.ra,jA=m.sa,VA=B[v+T.length],YA=m.ya,sA=m.Aa;k[m.oa]={read:($q)=>l.fromWireType(o(jA,$q)),write:($q,bE)=>{var iq=[];YA(sA,$q,VA.toWireType(iq,bE)),AU(iq)}}}),[{name:O.name,fromWireType:function(m){var v={},l;for(l in k)v[l]=k[l].read(m);return H(m),v},toWireType:function(m,v){for(var l in k)if(!(l in v))throw new TypeError('Missing field: "'+l+'"');var o=_();for(l in k)k[l].write(o,v[l]);return m!==null&&m.push(H,o),o},argPackAdvance:8,readValueFromPointer:yE,V:H}]})},v:function(){},B:function(J,O,_,H,T){var S=qU(_);O=BA(O),pq(J,{name:O,fromWireType:function(B){return!!B},toWireType:function(B,k){return k?H:T},argPackAdvance:8,readValueFromPointer:function(B){if(_===1)var k=I;else if(_===2)k=W;else if(_===4)k=C;else throw new TypeError("Unknown boolean type size: "+O);return this.fromWireType(k[B>>S])},V:null})},f:function(J,O,_,H,T,S,B,k,m,v,l,o,jA){l=BA(l),S=Mq(T,S),k&&(k=Mq(B,k)),v&&(v=Mq(m,v)),jA=Mq(o,jA);var VA=lY(l);i$(VA,function(){ZZ("Cannot construct "+l+" due to unbound types",[H])}),Hg([J,O,_],H?[H]:[],function(YA){if(YA=YA[0],H)var sA=YA.N,$q=sA.X;else $q=Vg.prototype;YA=sj(VA,function(){if(Object.getPrototypeOf(this)!==bE)throw new y6("Use 'new' to construct "+l);if(iq.Y===void 0)throw new y6(l+" has no accessible constructor");var UQ=iq.Y[arguments.length];if(UQ===void 0)throw new y6("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(iq.Y).toString()+") parameters instead!");return UQ.apply(this,arguments)});var bE=Object.create($q,{constructor:{value:YA}});YA.prototype=bE;var iq=new t$(l,YA,bE,jA,sA,S,k,v);sA=new uq(l,iq,!0,!1),$q=new uq(l+"*",iq,!1,!1);var jQ=new uq(l+" const*",iq,!1,!0);return eY[J]={pointerType:$q,la:jQ},o$(VA,YA),[sA,$q,jQ]})},d:function(J,O,_,H,T,S,B){var k=ZU(_,H);O=BA(O),S=Mq(T,S),Hg([],[J],function(m){function v(){ZZ("Cannot call "+l+" due to unbound types",k)}m=m[0];var l=m.name+"."+O;O.startsWith("@@")&&(O=Symbol[O.substring(2)]);var o=m.N.constructor;return o[O]===void 0?(v.Z=_-1,o[O]=v):(EU(o,O,l),o[O].S[_-1]=v),Hg([],k,function(jA){return jA=KU(l,[jA[0],null].concat(jA.slice(1)),null,S,B),o[O].S===void 0?(jA.Z=_-1,o[O]=jA):o[O].S[_-1]=jA,[]}),[]})},p:function(J,O,_,H,T,S){0<O||SA();var B=ZU(O,_);T=Mq(H,T),Hg([],[J],function(k){k=k[0];var m="constructor "+k.name;if(k.N.Y===void 0&&(k.N.Y=[]),k.N.Y[O-1]!==void 0)throw new y6("Cannot register multiple constructors with identical number of parameters ("+(O-1)+") for class '"+k.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return k.N.Y[O-1]=()=>{ZZ("Cannot construct "+k.name+" due to unbound types",B)},Hg([],B,function(v){return v.splice(1,0,null),k.N.Y[O-1]=KU(m,v,null,T,S),[]}),[]})},a:function(J,O,_,H,T,S,B,k){var m=ZU(_,H);O=BA(O),S=Mq(T,S),Hg([],[J],function(v){function l(){ZZ("Cannot call "+o+" due to unbound types",m)}v=v[0];var o=v.name+"."+O;O.startsWith("@@")&&(O=Symbol[O.substring(2)]),k&&v.N.ja.push(O);var jA=v.N.X,VA=jA[O];return VA===void 0||VA.S===void 0&&VA.className!==v.name&&VA.Z===_-2?(l.Z=_-2,l.className=v.name,jA[O]=l):(EU(jA,O,o),jA[O].S[_-2]=l),Hg([],m,function(YA){return YA=KU(o,YA,v,S,B),jA[O].S===void 0?(YA.Z=_-2,jA[O]=YA):jA[O].S[_-2]=YA,[]}),[]})},A:function(J,O){O=BA(O),pq(J,{name:O,fromWireType:function(_){var H=kE(_);return jU(_),H},toWireType:function(_,H){return AZ(H)},argPackAdvance:8,readValueFromPointer:yE,V:null})},n:function(J,O,_){_=qU(_),O=BA(O),pq(J,{name:O,fromWireType:function(H){return H},toWireType:function(H,T){return T},argPackAdvance:8,readValueFromPointer:AX(O,_),V:null})},e:function(J,O,_,H,T){O=BA(O),T===-1&&(T=4294967295),T=qU(_);var S=(k)=>k;if(H===0){var B=32-8*_;S=(k)=>k<<B>>>B}_=O.includes("unsigned")?function(k,m){return m>>>0}:function(k,m){return m},pq(J,{name:O,fromWireType:S,toWireType:_,argPackAdvance:8,readValueFromPointer:qX(O,T,H!==0),V:null})},b:function(J,O,_){function H(S){S>>=2;var B=D;return new T(X,B[S+1],B[S])}var T=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][O];_=BA(_),pq(J,{name:_,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(J,O){O=BA(O);var _=O==="std::string";pq(J,{name:O,fromWireType:function(H){var T=D[H>>2],S=H+4;if(_)for(var B=S,k=0;k<=T;++k){var m=S+k;if(k==T||N[m]==0){if(B=B?$(N,B,m-B):"",v===void 0)var v=B;else v+=String.fromCharCode(0),v+=B;B=m+1}}else{v=Array(T);for(k=0;k<T;++k)v[k]=String.fromCharCode(N[S+k]);v=v.join("")}return lq(H),v},toWireType:function(H,T){T instanceof ArrayBuffer&&(T=new Uint8Array(T));var S,B=typeof T=="string";if(B||T instanceof Uint8Array||T instanceof Uint8ClampedArray||T instanceof Int8Array||ZA("Cannot pass non-string to std::string"),_&&B){var k=0;for(S=0;S<T.length;++S){var m=T.charCodeAt(S);127>=m?k++:2047>=m?k+=2:55296<=m&&57343>=m?(k+=4,++S):k+=3}S=k}else S=T.length;if(k=GU(4+S+1),m=k+4,D[k>>2]=S,_&&B){if(B=m,m=S+1,S=N,0<m){m=B+m-1;for(var v=0;v<T.length;++v){var l=T.charCodeAt(v);if(55296<=l&&57343>=l){var o=T.charCodeAt(++v);l=65536+((l&1023)<<10)|o&1023}if(127>=l){if(B>=m)break;S[B++]=l}else{if(2047>=l){if(B+1>=m)break;S[B++]=192|l>>6}else{if(65535>=l){if(B+2>=m)break;S[B++]=224|l>>12}else{if(B+3>=m)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)v=T.charCodeAt(B),255<v&&(lq(m),ZA("String has UTF-16 code units that do not fit in 8 bits")),N[m+B]=v;else for(B=0;B<S;++B)N[m+B]=T[B];return H!==null&&H.push(lq,k),k},argPackAdvance:8,readValueFromPointer:yE,V:function(H){lq(H)}})},i:function(J,O,_){if(_=BA(_),O===2)var H=gX,T=EX,S=FX,B=()=>x,k=1;else O===4&&(H=KX,T=ZX,S=jX,B=()=>D,k=2);pq(J,{name:_,fromWireType:function(m){for(var v=D[m>>2],l=B(),o,jA=m+4,VA=0;VA<=v;++VA){var YA=m+4+VA*O;if(VA==v||l[YA>>k]==0)jA=H(jA,YA-jA),o===void 0?o=jA:(o+=String.fromCharCode(0),o+=jA),jA=YA+O}return lq(m),o},toWireType:function(m,v){typeof v!="string"&&ZA("Cannot pass non-string to C++ string type "+_);var l=S(v),o=GU(4+l+O);return D[o>>2]=l>>k,T(v,o+4,l+O),m!==null&&m.push(lq,o),o},argPackAdvance:8,readValueFromPointer:yE,V:function(m){lq(m)}})},k:function(J,O,_,H,T,S){FZ[J]={name:BA(O),fa:Mq(_,H),W:Mq(T,S),ia:[]}},h:function(J,O,_,H,T,S,B,k,m,v){FZ[J].ia.push({oa:BA(O),ta:_,ra:Mq(H,T),sa:S,za:B,ya:Mq(k,m),Aa:v})},C:function(J,O){O=BA(O),pq(J,{va:!0,name:O,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(J,O,_,H,T){J=jZ[J],O=kE(O),_=gQ(_);var S=[];return D[H>>2]=AZ(S),J(O,_,S,T)},t:function(J,O,_,H){J=jZ[J],O=kE(O),_=gQ(_),J(O,_,null,H)},g:jU,m:function(J,O){var _=YX(J,O),H=_[0];O=H.name+"_$"+_.slice(1).map(function(B){return B.name}).join("_")+"$";var T=EQ[O];if(T!==void 0)return T;var S=Array(J-1);return T=GX((B,k,m,v)=>{for(var l=0,o=0;o<J-1;++o)S[o]=_[o+1].readValueFromPointer(v+l),l+=_[o+1].argPackAdvance;B=B[k].apply(B,S);for(o=0;o<J-1;++o)_[o+1].ma&&_[o+1].ma(S[o]);if(!H.va)return H.toWireType(m,B)}),EQ[O]=T},D:function(J){4<J&&(Oq[J].ga+=1)},r:function(J){var O=kE(J);AU(O),jU(J)},c:function(){SA("")},x:function(J,O,_){N.copyWithin(J,O,O+_)},w:function(J){var O=N.length;if(J>>>=0,2147483648<J)return!1;for(var _=1;4>=_;_*=2){var H=O*(1+0.2/_);H=Math.min(H,J+100663296);var T=Math;H=Math.max(J,H),T=T.min.call(T,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(T-X.byteLength+65535>>>16),h();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(J,O,_,H){for(var T=0,S=0;S<_;S++){var B=D[O>>2],k=D[O+4>>2];O+=8;for(var m=0;m<k;m++){var v=N[B+m],l=QX[J];v===0||v===10?((J===1?j:U)($(l,0)),l.length=0):l.push(v)}T+=k}return D[H>>2]=T,0}};(function(){function J(T){g.asm=T.exports,M=g.asm.E,h(),z=g.asm.J,c.unshift(g.asm.F),QA--,g.monitorRunDependencies&&g.monitorRunDependencies(QA),QA==0&&(RA!==null&&(clearInterval(RA),RA=null),mA&&(T=mA,mA=null,T()))}function O(T){J(T.instance)}function _(T){return u$().then(function(S){return WebAssembly.instantiate(S,H)}).then(function(S){return S}).then(T,function(S){U("failed to asynchronously prepare wasm: "+S),SA(S)})}var H={a:OX};if(QA++,g.monitorRunDependencies&&g.monitorRunDependencies(QA),g.instantiateWasm)try{return g.instantiateWasm(H,J)}catch(T){U("Module.instantiateWasm callback failed with error: "+T),F(T)}return function(){return G||typeof WebAssembly.instantiateStreaming!="function"||hq(cq)||typeof fetch!="function"?_(O):fetch(cq,{credentials:"same-origin"}).then(function(T){return WebAssembly.instantiateStreaming(T,H).then(O,function(S){return U("wasm streaming compile failed: "+S),U("falling back to ArrayBuffer instantiation"),_(O)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var KQ=g.___getTypeName=function(){return(KQ=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 GU=g._malloc=function(){return(GU=g._malloc=g.asm.I).apply(null,arguments)},lq=g._free=function(){return(lq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var GZ;mA=function J(){GZ||ZQ(),GZ||(mA=J)};function ZQ(){function J(){if(!GZ&&(GZ=!0,g.calledRun=!0,!Q)){if(tj(c),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var O=g.postRun.shift();gA.unshift(O)}tj(gA)}}if(!(0<QA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)KA();tj(r),0<QA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),J()},1)):J())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return ZQ(),q.ready}})(),SX=RX,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}({}),$U=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),XU=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),u6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Pg=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}({}),rg=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}({}),tQ=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Uq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),Lq=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}({}),og=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}({}),eq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),_U=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),nq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),rq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),Wq=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),oq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),hX={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:$U.BorderBox,BOX_SIZING_CONTENT_BOX:$U.ContentBox,DIMENSION_WIDTH:XU.Width,DIMENSION_HEIGHT:XU.Height,DIRECTION_INHERIT:u6.Inherit,DIRECTION_LTR:u6.LTR,DIRECTION_RTL:u6.RTL,DISPLAY_FLEX:Pg.Flex,DISPLAY_NONE:Pg.None,DISPLAY_CONTENTS:Pg.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:rg.None,ERRATA_STRETCH_FLEX_BASIS:rg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:rg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:rg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:rg.All,ERRATA_CLASSIC:rg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:tQ.WebFlexBasis,FLEX_DIRECTION_COLUMN:Uq.Column,FLEX_DIRECTION_COLUMN_REVERSE:Uq.ColumnReverse,FLEX_DIRECTION_ROW:Uq.Row,FLEX_DIRECTION_ROW_REVERSE:Uq.RowReverse,GUTTER_COLUMN:Lq.Column,GUTTER_ROW:Lq.Row,GUTTER_ALL:Lq.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:og.Error,LOG_LEVEL_WARN:og.Warn,LOG_LEVEL_INFO:og.Info,LOG_LEVEL_DEBUG:og.Debug,LOG_LEVEL_VERBOSE:og.Verbose,LOG_LEVEL_FATAL:og.Fatal,MEASURE_MODE_UNDEFINED:eq.Undefined,MEASURE_MODE_EXACTLY:eq.Exactly,MEASURE_MODE_AT_MOST:eq.AtMost,NODE_TYPE_DEFAULT:_U.Default,NODE_TYPE_TEXT:_U.Text,OVERFLOW_VISIBLE:nq.Visible,OVERFLOW_HIDDEN:nq.Hidden,OVERFLOW_SCROLL:nq.Scroll,POSITION_TYPE_STATIC:rq.Static,POSITION_TYPE_RELATIVE:rq.Relative,POSITION_TYPE_ABSOLUTE:rq.Absolute,UNIT_UNDEFINED:Wq.Undefined,UNIT_POINT:Wq.Point,UNIT_PERCENT:Wq.Percent,UNIT_AUTO:Wq.Auto,WRAP_NO_WRAP:oq.NoWrap,WRAP_WRAP:oq.Wrap,WRAP_WRAP_REVERSE:oq.WrapReverse},aX=hX;function zX(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={[Wq.Point]:A.Node.prototype[F],[Wq.Percent]:A.Node.prototype[`${F}Percent`],[Wq.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,Q;if(Y==="auto")M=Wq.Auto,Q=void 0;else if(typeof Y==="object")M=Y.unit,Q=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?Wq.Percent:Wq.Point,Q=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(Q))throw new Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw new Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(Q!==void 0)return K[M].call(this,...U,Q);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]:u6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...aX}}var BX=zX(await SX()),WZ=BX,sQ=["single","double","rounded","heavy"];function nQ(A){return typeof A==="string"&&sQ.includes(A)}function LZ(A,q="single"){if(nQ(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${sQ.join(", ")}`);return q}var mE={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 NZ(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 A6(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:A6(mE.single),double:A6(mE.double),rounded:A6(mE.rounded),heavy:A6(mE.heavy)},WQ={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 oQ(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 kX={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},CX={"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 DX(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=CX[E];else{if(E!=="1")return null;j=kX[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=oQ(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 yX(A){let q=DX(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,Q;if(U[1]){let X=parseInt(U[1],10);if(!isNaN(X)&&X>0&&X<=1114111)M=X}if(U[2]){let X=parseInt(U[2],10);if(!isNaN(X)&&X>0&&X<=1114111)Q=X}let $=WQ[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let X=String.fromCodePoint(Y);if(Z.name=X,Q)Z.baseCode=Q}else return null;if(K[1]){let X=K[1].split(":"),I=X[0],N=X[1];if(I){let W=parseInt(I,10);if(!isNaN(W)&&W>1){let x=oQ(W-1);Z.shift=x.shift,Z.ctrl=x.ctrl,Z.meta=x.alt||x.meta,Z.option=x.alt,Z.super=x.super,Z.hyper=x.hyper,Z.capsLock=x.capsLock,Z.numLock=x.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 X=K[2].split(":");for(let I of X){let N=parseInt(I,10);if(!isNaN(N)&&N>0&&N<=1114111)j+=String.fromCodePoint(N)}}if(j===""){if(Z.name.length>0&&!WQ[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 bX=/^(?:\x1b)([a-zA-Z0-9])$/,vX=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,eQ={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"},mX=[...Object.values(eQ),"backspace"],fX=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},cX=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},dX=/^\x1b\[27;(\d+);(\d+)~$/,AJ=(A="",q={})=>{let g;if(wX.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=yX(A);if(K)return K}let F=dX.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=bX.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=vX.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=eQ[Z];if(U)E.name=U,E.shift=fX(Z)||E.shift,E.ctrl=cX(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 fE{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 SU{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 hU extends pX{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=AJ(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new fE(q));break;case"release":this.emit("keyrelease",new fE(q));break;default:this.emit("keypress",new fE(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 SU(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class aU extends hU{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 JA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new JA(A)}static fromValues(A,q,g,E=1){return new JA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new JA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return HZ(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 HZ(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`),JA.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 JA.fromValues(q,g,E,F)}var LQ={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 JA.fromValues(0,0,0,0);if(LQ[q])return HZ(LQ[q]);return HZ(A)}return A}var wq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var qJ;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(qJ||={});function dE({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=wq.NONE;if(A)U|=wq.BOLD;if(q)U|=wq.ITALIC;if(g)U|=wq.UNDERLINE;if(E)U|=wq.DIM;if(F)U|=wq.BLINK;if(K)U|=wq.INVERSE;if(Z)U|=wq.HIDDEN;if(j)U|=wq.STRIKETHROUGH;return U}var uX=255,lX=8,iX=16777215;function gJ(A,q){let g=A&uX,E=(q&iX)<<lX;return g|E}var EJ=Symbol.for("@opentui/core/StyledText");function FJ(A){return A&&A[EJ]}class i6{[EJ]=!0;chunks;constructor(A){this.chunks=A}}function TZ(A){return new i6([{__isChunk:!0,text:A}])}function zU(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=dE(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=dE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var Tq=(A)=>zU(A,{bold:!0});var iE=(A)=>zU(A,{underline:!0});var t6=(A)=>(q)=>zU(q,{fg:A});function lA(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 i6(g)}class BU{tick(A){return 1}reset(){}}var Ag="\x1B",NQ="\x1B[200~",YZ="\x1B[201~";function sX(A){if(!A.startsWith(Ag))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 nX(A)}if(q.startsWith("]"))return rX(A);if(q.startsWith("P"))return oX(A);if(q.startsWith("_"))return eX(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function nX(A){if(!A.startsWith(Ag+"["))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 rX(A){if(!A.startsWith(Ag+"]"))return"complete";if(A.endsWith(Ag+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function oX(A){if(!A.startsWith(Ag+"P"))return"complete";if(A.endsWith(Ag+"\\"))return"complete";return"incomplete"}function eX(A){if(!A.startsWith(Ag+"_"))return"complete";if(A.endsWith(Ag+"\\"))return"complete";return"incomplete"}function TQ(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(Ag)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=sX(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 wU extends tX{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(YZ);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+YZ.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(NQ);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=TQ(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+NQ.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(YZ);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+YZ.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=TQ(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 HU(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 VU(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 WU(A){if(A==null)return Uq.Column;switch(A.toLowerCase()){case"column":return Uq.Column;case"column-reverse":return Uq.ColumnReverse;case"row":return Uq.Row;case"row-reverse":return Uq.RowReverse;default:return Uq.Column}}function LU(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 NU(A){if(A==null)return nq.Visible;switch(A.toLowerCase()){case"visible":return nq.Visible;case"hidden":return nq.Hidden;case"scroll":return nq.Scroll;default:return nq.Visible}}function TU(A){if(A==null)return rq.Relative;switch(A.toLowerCase()){case"static":return rq.Static;case"relative":return rq.Relative;case"absolute":return rq.Absolute;default:return rq.Static}}function PU(A){if(A==null)return oq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return oq.NoWrap;case"wrap":return oq.Wrap;case"wrap-reverse":return oq.WrapReverse;default:return oq.NoWrap}}class pE{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:pE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,Q={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,X;if(G&&Z==="M")$="scroll",X={direction:Y,delta:1};else if(M){let I=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(I)$="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:Q,scroll:X}}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:pE.SCROLL_DIRECTIONS[Z],G={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,Q;if(j)Y="scroll",M=0,Q={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:Q}}return null}}class KJ{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 kU{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new KJ(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 CU(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 DU=Symbol.for("@opentui/core/singleton");function K6(A,q){let g=globalThis[DU]??={};if(!(A in g))g[A]=q();return g[A]}function A_(A){let q=globalThis[DU];if(q&&A in q)delete q[A]}function q_(A){let q=globalThis[DU];return q&&A in q}var q6=K6("env-registry",()=>({}));function LA(A){let q=q6[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}q6[A.name]=A}function g_(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function E_(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:g_(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 ZJ{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in q6))throw new Error(`Environment variable ${A} is not registered.`);try{let q=E_(q6[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 q6}clearCache(){this.parsedValues.clear()}}var QZ=K6("env-store",()=>new ZJ);var _A=new Proxy({},{get(A,q){if(typeof q!=="string")return;return QZ.get(q)},has(A,q){return QZ.has(q)},ownKeys(){return Object.keys(q6)},getOwnPropertyDescriptor(A,q){if(QZ.has(q))return{enumerable:!0,configurable:!0,get:()=>QZ.get(q)};return}});LA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var c6=new Map;class jJ{scopeId;constructor(A){if(this.scopeId=A,!c6.has(this.scopeId))c6.set(this.scopeId,new Map)}debounce(A,q,g){let E=c6.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=c6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=c6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function K_(A){return new jJ(A)}function Z_(A){let q=c6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class UJ{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 YU;function j_(){if(!YU)YU=[{filetype:"javascript",queries:{highlights:[Xq(_q(Hq(import.meta.url)),GQ)]},wasm:Xq(_q(Hq(import.meta.url)),YQ)},{filetype:"typescript",queries:{highlights:[Xq(_q(Hq(import.meta.url)),QQ)]},wasm:Xq(_q(Hq(import.meta.url)),JQ)},{filetype:"markdown",queries:{highlights:[Xq(_q(Hq(import.meta.url)),OQ)],injections:[Xq(_q(Hq(import.meta.url)),$Q)]},wasm:Xq(_q(Hq(import.meta.url)),MQ),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:[Xq(_q(Hq(import.meta.url)),XQ)]},wasm:Xq(_q(Hq(import.meta.url)),_Q)},{filetype:"zig",queries:{highlights:[Xq(_q(Hq(import.meta.url)),HQ)]},wasm:Xq(_q(Hq(import.meta.url)),VQ)}];return YU}function GJ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function O_(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function M_(A){return J_(O_(),Q_(A))}LA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var $_=j_();var X_=(A)=>A.startsWith("http://")||A.startsWith("https://");class yU extends F_{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=K_("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(_A.OTUI_TREE_SITTER_WORKER_PATH)A=_A.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,!Y_(PQ(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 $_)this.addFiletypeParser(A)}resolvePath(A){if(X_(A))return A;if(GJ(A))return M_(G_(A).base);if(!U_(A))return PQ(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,Q=M.join(" ");if(this.emit("worker:log",Y,Q),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 UJ((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(),Z_("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 H_(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}LA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});LA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class bU extends __{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!H_(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=IQ.homedir(),g=_A.XDG_CONFIG_HOME||Wg.join(A,".config");this._globalConfigPath=Wg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Wg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Wg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=IQ.homedir(),g=_A.XDG_DATA_HOME||Wg.join(A,".local/share");this._globalDataPath=Wg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function YJ(){return K6("data-paths-opentui",()=>new bU)}function QJ(){let A=YJ(),q={dataPath:A.globalDataPath};return K6("tree-sitter-client",()=>{let g=new yU(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class JJ{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 vU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new JJ;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 OJ(A,q){return new vU(A,q)}var JZ=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,xQ=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function QU(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function RQ(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${QU(A)}${QU(q)}${QU(g)}`;return"#000000"}function V_(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class mU{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?V_(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(),JZ.lastIndex=0,JZ.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 X;JZ.lastIndex=0;while(X=JZ.exec(Z)){let N=parseInt(X[1],10);if(F.has(N))F.set(N,RQ(X[2],X[3],X[4],X[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(Q),U)clearTimeout(U);E.removeListener("data",G);let $=this.activeListeners.findIndex((I)=>I.handler===G);if($!==-1)this.activeListeners.splice($,1);let X=this.activeTimers.indexOf(Q);if(X!==-1)this.activeTimers.splice(X,1);if(U){let I=this.activeTimers.indexOf(U);if(I!==-1)this.activeTimers.splice(I,1)}},Q=setTimeout(Y,q);this.activeTimers.push(Q),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 Q;xQ.lastIndex=0;while(Q=xQ.exec(K)){let X=parseInt(Q[1],10);if(X in E)E[X]=RQ(Q[2],Q[3],Q[4],Q[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((X)=>X!==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 Q=this.activeTimers.indexOf(Y);if(Q!==-1)this.activeTimers.splice(Q,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 MJ(A,q,g,E){return new mU(A,q,g,E)}function T_(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 Ig{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(OZ(q,0,A*4)),fg:new Float32Array(OZ(g,0,A*4*4)),bg:new Float32Array(OZ(E,0,A*4*4)),attributes:new Uint32Array(OZ(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${Ig.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=Nq(),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=JA.fromValues(q[G*4],q[G*4+1],q[G*4+2],q[G*4+3]),Q=JA.fromValues(g[G*4],g[G*4+1],g[G*4+2],g[G*4+3]),$=E[G]&255,X=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(Q)&&j.attributes===$)j.text+=X,j.width+=1;else{if(j)Z.push(j);j={text:X,fg:M,bg:Q,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=JA.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||JA.fromValues(0,0,0,0);Y=M.a>0?M:JA.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,hQ(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,hQ(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=LZ(A.borderStyle,"single"),g=A.customBorderChars??rQ[q],E=T_(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 d6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),new Error(q)}var wA=process.arch==="x64"||process.arch==="arm64"?8:4,eg={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:wA,i32:4},P_=Object.keys(eg);function MZ(A){return typeof A==="string"&&P_.includes(A)}var aQ={...eg},I_={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 zQ(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function BQ(A,q){return A+(q-1)&~(q-1)}function wQ(A){throw new TypeError(`Invalid enum value: ${A}`)}function x_(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]??wQ(String(E))},from(E){return g[E]??wQ(String(E))},enum:A}}function kQ(A){return typeof A==="object"&&A.__type==="enum"}function OU(A){return typeof A==="object"&&A.__type==="struct"}function p6(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:d6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:fA,unpack:m6}=p6("pointer");function R_(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 CQ=new TextEncoder,S_=new TextDecoder;function qg(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[Q,$,X={}]of A){if(X.condition&&!X.condition())continue;let I=0,N=0,W,x,C=!1,D=null;if(MZ($))I=eg[$],N=aQ[$],{pack:W,unpack:x}=p6($);else if(typeof $==="string"&&$==="cstring")I=wA,N=wA,W=(h,z,r)=>{let c=r?sg(CQ.encode(r+"\x00")):null;fA(h,z,c)},x=(h,z)=>{return m6(h,z)};else if(typeof $==="string"&&$==="char*")I=wA,N=wA,W=(h,z,r)=>{let c=r?sg(CQ.encode(r)):null;fA(h,z,c)},x=(h,z)=>{return m6(h,z)},C=!0;else if(kQ($)){let h=$.type;I=eg[h],N=aQ[h];let{pack:z}=p6(h);W=(r,c,gA)=>{let KA=$.to(gA);z(r,c,KA)},x=(r,c)=>{let gA=I_[h](r,c);return $.from(gA)}}else if(OU($))if(X.asPointer===!0)I=wA,N=wA,W=(h,z,r,c,gA)=>{if(!r){fA(h,z,null);return}let KA=$.pack(r,gA);fA(h,z,sg(KA))},x=(h,z)=>{throw new Error("Not implemented yet")};else I=$.size,N=$.align,W=(h,z,r,c,gA)=>{let KA=$.pack(r,gA),QA=new Uint8Array(KA);new Uint8Array(h.buffer).set(QA,z)},x=(h,z)=>{let r=h.buffer.slice(z,z+I);return $.unpack(r)};else if(zQ($))I=wA,N=wA,W=(h,z,r)=>{let c=r?.ptr??null;if(c===void 0)console.warn(`Field '${Q}' expected object with '.ptr' property, but got undefined pointer value from:`,r),fA(h,z,null);else fA(h,z,c)},x=(h,z)=>{return m6(h,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[h]=$;I=wA,N=wA;let z;if(kQ(h))z=eg[h.type],W=(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 hq=h.to(KA[SA]);mA.setUint32(SA*z,hq,!0)}fA(c,gA,sg(RA))},x=null,C=!0,D=h;else if(OU(h))z=h.size,W=(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 hq=0;hq<KA.length;hq++)h.packInto(KA[hq],SA,hq*z,RA);fA(c,gA,sg(mA))},x=(c,gA)=>{throw new Error("Not implemented yet")};else if(MZ(h)){z=eg[h];let{pack:c}=p6(h);W=(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,sg(RA))},x=null,C=!0,D=h}else if(zQ(h))z=wA,W=(c,gA,KA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let QA=R_(KA);fA(c,gA,sg(QA.buffer))},x=()=>{throw new Error("not implemented yet")};else throw new Error(`Unsupported array element type for ${Q}: ${JSON.stringify(h)}`);let r=Object.values(K).find((c)=>c.lengthOf===Q);if(r&&MZ(r.type)){let{pack:c}=p6(r.type);j[Q]={elementSize:z,arrayOffset:g,lengthOffset:r.offset,lengthPack:c}}}else throw new Error(`Unsupported field type for ${Q}: ${JSON.stringify($)}`);if(g=BQ(g,N),X.unpackTransform){let h=x;x=(z,r)=>X.unpackTransform(h(z,r))}if(X.packTransform){let h=W;W=(z,r,c,gA,KA)=>h(z,r,X.packTransform(c),gA,KA)}if(X.optional){let h=W;if(OU($)&&!X.asPointer)W=(z,r,c,gA,KA)=>{if(c||X.mapOptionalInline)h(z,r,c,gA,KA)};else W=(z,r,c,gA,KA)=>h(z,r,c??0,gA,KA)}if(X.lengthOf){let h=W;W=(z,r,c,gA,KA)=>{let QA=gA[X.lengthOf],RA=0;if(QA)if(typeof QA==="string")RA=Buffer.byteLength(QA);else RA=QA.length;return h(z,r,RA,gA,KA)}}let i;if(X.validate)i=Array.isArray(X.validate)?X.validate:[X.validate];let p={name:Q,offset:g,size:I,align:N,validate:i,optional:!!X.optional||!!X.lengthOf||X.default!==void 0,default:X.default,pack:W,unpack:x,type:$,lengthOf:X.lengthOf};if(F.push(p),X.lengthOf)K[X.lengthOf]=p;if(C){let h=typeof $==="string"&&$==="char*"?"char*":D;if(!h)d6(`Internal error: needsLengthOf=true but def is null for ${Q}`);Z.push({requester:p,def:h})}g+=I,E=Math.max(E,N)}for(let{requester:Q,def:$}of Z){let X=K[Q.name];if(!X){if($==="char*")continue;throw new Error(`lengthOf field not found for array field ${Q.name}`)}if($==="char*")Q.unpack=(I,N)=>{let W=m6(I,N),x=X.unpack(I,X.offset);if(W===0)return null;let C=typeof x==="bigint"?Number(x):x;if(C===0)return"";let D=JU(W,0,C);return S_.decode(D)};else if(MZ($)){let I=eg[$],{unpack:N}=p6($);Q.unpack=(W,x)=>{let C=[],D=X.unpack(W,X.offset),i=m6(W,x);if(i===0n&&D>0)throw new Error(`Array field ${Q.name} has null pointer but length ${D}.`);if(i===0n||D===0)return[];let p=JU(i,0,D*I),h=new DataView(p);for(let z=0;z<D;z++)C.push(N(h,z*I));return C}}else{let I=$.type==="u32"?4:8;Q.unpack=(N,W)=>{let x=[],C=X.unpack(N,X.offset),D=m6(N,W);if(D===0n&&C>0)throw new Error(`Array field ${Q.name} has null pointer but length ${C}.`);if(D===0n||C===0)return[];let i=JU(D,0,C*I),p=new DataView(i);for(let h=0;h<C;h++)x.push($.from(p.getUint32(h*I,!0)));return x}}}let U=BQ(g,E),G=F.map((Q)=>({name:Q.name,offset:Q.offset,size:Q.size,align:Q.align,optional:Q.optional,type:Q.type,lengthOf:Q.lengthOf})),Y=new Map(G.map((Q)=>[Q.name,Q])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(Q,$){let X=new ArrayBuffer(U),I=new DataView(X),N=Q;if(q?.mapValue)N=q.mapValue(Q);for(let W of F){let x=N[W.name]??W.default;if(!W.optional&&x===void 0)d6(`Packing non-optional field '${W.name}' but value is undefined (and no default provided)`);if(W.validate)for(let C of W.validate)C(x,W.name,{hints:$?.validationHints,input:N});W.pack(I,W.offset,x,N,$)}return I.buffer},packInto(Q,$,X,I){let N=Q;if(q?.mapValue)N=q.mapValue(Q);for(let W of F){let x=N[W.name]??W.default;if(!W.optional&&x===void 0)console.warn(`packInto missing value for non-optional field '${W.name}' at offset ${X+W.offset}. Writing default or zero.`);if(W.validate)for(let C of W.validate)C(x,W.name,{hints:I?.validationHints,input:N});W.pack($,X+W.offset,x,N,I)}},unpack(Q){if(Q.byteLength<U)d6(`Buffer size (${Q.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(Q),X=q?.default?{...q.default}:{};for(let I of F){if(!I.unpack)continue;try{X[I.name]=I.unpack($,I.offset)}catch(N){throw console.error(`Error unpacking field '${I.name}' at offset ${I.offset}:`,N),N}}if(q?.reduceValue)return q.reduceValue(X);return X},packList(Q,$){if(Q.length===0)return new ArrayBuffer(0);let X=new ArrayBuffer(U*Q.length),I=new DataView(X);for(let N=0;N<Q.length;N++){let W=Q[N];if(q?.mapValue)W=q.mapValue(Q[N]);for(let x of F){let C=W[x.name]??x.default;if(!x.optional&&C===void 0)d6(`Packing non-optional field '${x.name}' at index ${N} but value is undefined (and no default provided)`);if(x.validate)for(let D of x.validate)D(C,x.name,{hints:$?.validationHints,input:W});x.pack(I,N*U+x.offset,C,W,$)}}return X},unpackList(Q,$){if($===0)return[];let X=U*$;if(Q.byteLength<X)d6(`Buffer size (${Q.byteLength}) is smaller than expected size (${X}) for unpacking ${$} structs.`);let I=new DataView(Q),N=[];for(let W=0;W<$;W++){let x=W*U,C=q?.default?{...q.default}:{};for(let D of F){if(!D.unpack)continue;try{C[D.name]=D.unpack(I,x+D.offset)}catch(i){throw console.error(`Error unpacking field '${D.name}' at index ${W}, offset ${x+D.offset}:`,i),i}}if(q?.reduceValue)N.push(q.reduceValue(C));else N.push(C)}return N},describe(){return G}}}var DQ=(A)=>A?h_(A.buffer):null,yQ=(A)=>A?JA.fromArray(new Float32Array(a_(A))):void 0,bQ=qg([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:DQ,unpackTransform:yQ}],["bg","pointer",{optional:!0,packTransform:DQ,unpackTransform:yQ}],["attributes","u32",{optional:!0}]]),$Z=qg([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),aq=qg([["row","u32"],["col","u32"],["offset","u32"]]),jq=qg([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),z_=x_({wcwidth:0,unicode:1},"u8"),vQ=qg([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",z_],["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"]]),mQ=qg([["width","u8"],["char","u32"]]),Lg=qg([["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"]]),fQ=qg([["lineCount","u32"],["maxWidth","u32"]]),cQ=qg([["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`),cE=B_.default;if(GJ(cE))cE=cE.replace("../","");if(!L_(cE))throw new Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);LA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});LA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});LA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});LA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});LA({name:"OPENTUI_NO_GRAPHICS",description:"Disable Kitty graphics protocol detection",type:"boolean",default:!1});LA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var ng=null,f6=null,dQ=!1;function w_(A){let g=W_(A||cE,{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(_A.OTUI_DEBUG_FFI||_A.OTUI_TRACE_FFI)return{symbols:k_(g.symbols)};return g}function k_(A){if(!ng)ng={};if(_A.OTUI_DEBUG_FFI&&!f6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;f6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),_A.OTUI_DEBUG_FFI&&f6){let E=f6,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(_A.OTUI_TRACE_FFI)g=!0,Object.entries(A).forEach(([E,F])=>{if(typeof F==="function"){if(!ng[E])ng[E]=[];let K=q[E];q[E]=(...Z)=>{let j=performance.now(),U=K(...Z),G=performance.now();return ng[E].push(G-j),U}}});if((_A.OTUI_DEBUG_FFI||_A.OTUI_TRACE_FFI)&&!dQ)dQ=!0,process.on("exit",()=>{try{if(f6)f6.end()}catch(E){}if(ng){let E=[];for(let[Z,j]of Object.entries(ng)){if(!Array.isArray(j)||j.length===0)continue;let U=[...j].sort((D,i)=>D-i),G=U.length,Y=U.reduce((D,i)=>D+i,0),M=Y/G,Q=U[0],$=U[G-1],X=Math.floor(G/2),I=Math.floor(G*0.9),N=Math.floor(G*0.99),W=U[X],x=U[Math.min(I,G-1)],C=U[Math.min(N,G-1)];E.push({name:Z,count:G,total:Y,average:M,min:Q,max:$,median:W,p90:x,p99:C})}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 I=Math.max(6,...E.map((z)=>z.name.length)),N=Math.max(5,...E.map((z)=>String(z.count).length)),W=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),x=Math.max(8,...E.map((z)=>z.average.toFixed(2).length)),C=Math.max(8,...E.map((z)=>z.min.toFixed(2).length)),D=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)),h=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(I)} | ${"Calls".padStart(N)} | ${"Total (ms)".padStart(W)} | ${"Avg (ms)".padStart(x)} | ${"Min (ms)".padStart(C)} | ${"Max (ms)".padStart(D)} | ${"Med (ms)".padStart(i)} | ${"P90 (ms)".padStart(p)} | ${"P99 (ms)".padStart(h)}`),F.push(`${"-".repeat(I)}-+-${"-".repeat(N)}-+-${"-".repeat(W)}-+-${"-".repeat(x)}-+-${"-".repeat(C)}-+-${"-".repeat(D)}-+-${"-".repeat(i)}-+-${"-".repeat(p)}-+-${"-".repeat(h)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(I)} | ${String(z.count).padStart(N)} | ${z.total.toFixed(2).padStart(W)} | ${z.average.toFixed(2).padStart(x)} | ${z.min.toFixed(2).padStart(C)} | ${z.max.toFixed(2).padStart(D)} | ${z.median.toFixed(2).padStart(i)} | ${z.p90.toFixed(2).padStart(p)} | ${z.p99.toFixed(2).padStart(h)}`)})}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 $J;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})($J||={});class fU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new N_;_anyEventHandlers=[];constructor(A){this.opentui=w_(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new SQ((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 SQ((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),G=this.decoder.decode(U),Y;if(Z>0&&E)Y=vE(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 Ig(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 Ig(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,Q=G?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,Q,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(cQ.size);this.opentui.symbols.getCursorState(A,qA(q));let g=cQ.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:JA.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 Ig(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 PZ(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:gJ(K.attributes??0,Z)}}return K}),F=bQ.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(Lg.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Lg.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Lg.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Lg.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(fQ.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return fQ.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=$Z.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=$Z.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*$Z.size,Z=vE(E,0,K),j=$Z.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(Lg.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Lg.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Lg.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Lg.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(aq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),aq.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(aq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),aq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(aq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),aq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(aq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),aq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(aq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return aq.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(jq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),jq.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(jq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),jq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(jq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),jq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(jq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),jq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(jq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),jq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(jq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),jq.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(vQ.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=vQ.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*mQ.size,Q=vE(G,0,M),$=mQ.unpackList(Q,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=bQ.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 XJ,_Z;function Nq(){if(!_Z)try{_Z=new fU(XJ)}catch(A){throw new Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return _Z}try{_Z=new fU(XJ)}catch(A){}class PZ{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 Nq().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 D_(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 s6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function zq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return s6(A)}function Bq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return s6(A)}function sq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return s6(A)}function y_(A){return A==="relative"||A==="absolute"}function b_(A){return A==="visible"||A==="hidden"||A==="scroll"}function XZ(A){return sq(A)}function pQ(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Ng(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return s6(A)}var _J=Symbol.for("@opentui/core/Renderable"),HJ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(HJ||={});var VJ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(VJ||={});function l6(A){return!!A?.[_J]}class tE extends C_{[_J]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=tE.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 IZ=WZ.Config.create();IZ.setUseWebDefaults(!1);IZ.setPointScaleFactor(1);class DA extends tE{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),D_(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=WZ.Node.create(IZ),this.yogaNode.setDisplay(this._visible?Pg.Flex:Pg.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?Pg.Flex:Pg.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(l6(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(sq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(sq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(sq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(sq(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(XZ(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(XZ(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(pQ(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Ng(A.minWidth))q.setMinWidth(A.minWidth);if(Ng(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(WU(A.flexDirection)),q.setFlexWrap(PU(A.flexWrap)),q.setAlignItems(VU(A.alignItems)),q.setJustifyContent(LU(A.justifyContent)),q.setAlignSelf(HU(A.alignSelf)),XZ(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(XZ(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(TU(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(NU(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(Ng(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Ng(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(zq(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(zq(A.marginTop))q.setMargin(n.Top,A.marginTop);if(zq(A.marginRight))q.setMargin(n.Right,A.marginRight);if(zq(A.marginBottom))q.setMargin(n.Bottom,A.marginBottom);if(zq(A.marginLeft))q.setMargin(n.Left,A.marginLeft);if(Bq(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(Bq(A.paddingTop))q.setPadding(n.Top,A.paddingTop);if(Bq(A.paddingRight))q.setPadding(n.Right,A.paddingRight);if(Bq(A.paddingBottom))q.setPadding(n.Bottom,A.paddingBottom);if(Bq(A.paddingLeft))q.setPadding(n.Left,A.paddingLeft)}set position(A){if(!y_(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(TU(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!b_(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(NU(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(sq(g))if(g==="auto")q.setPositionAuto(n.Top);else q.setPosition(n.Top,g);if(sq(E))if(E==="auto")q.setPositionAuto(n.Right);else q.setPosition(n.Right,E);if(sq(F))if(F==="auto")q.setPositionAuto(n.Bottom);else q.setPosition(n.Bottom,F);if(sq(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(WU(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(PU(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(VU(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(LU(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(HU(A)),this.requestRender()}set flexBasis(A){if(pQ(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Ng(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Ng(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Ng(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Ng(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(zq(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(zq(A))this.yogaNode.setMargin(n.Top,A),this.requestRender()}set marginRight(A){if(zq(A))this.yogaNode.setMargin(n.Right,A),this.requestRender()}set marginBottom(A){if(zq(A))this.yogaNode.setMargin(n.Bottom,A),this.requestRender()}set marginLeft(A){if(zq(A))this.yogaNode.setMargin(n.Left,A),this.requestRender()}set padding(A){if(Bq(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(Bq(A))this.yogaNode.setPadding(n.Top,A),this.requestRender()}set paddingRight(A){if(Bq(A))this.yogaNode.setPadding(n.Right,A),this.requestRender()}set paddingBottom(A){if(Bq(A))this.yogaNode.setPadding(n.Bottom,A),this.requestRender()}set paddingLeft(A){if(Bq(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=Ig.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=IU(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=IU(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(!l6(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 cU 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=WZ.Node.create(IZ),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(Uq.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,u6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var m_=Symbol.for("@opentui/core/VNode");function f_(A){return typeof A==="function"&&A.prototype&&DA.prototype.isPrototypeOf(A.prototype)}function WJ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...WJ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function LJ(A){return A&&A[m_]}function IU(A,q){if(l6(q))return q;if(LJ(q))return VZ(A,q);return console.warn("maybeMakeRenderable received an invalid node",v_.inspect(q,{depth:2})),null}function xU(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 VZ(A,q){if(l6(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=WJ(g.children||[]),Z=g.__delegateMap;if(f_(E)){let G=new E(A,F||{});for(let Q of K)if(l6(Q))G.add(Q);else{let $=VZ(A,Q);G.add($)}let Y=xU(G,Z),M=g.__pendingCalls;if(M)for(let Q of M)if(Q.isProperty)Y[Q.method]=Q.args[0];else Y[Q.method].apply(Y,Q.args);return Y}let j=E(F||{},K),U=VZ(A,j);return xU(U,Z)}class TJ extends l_{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 RU extends u_{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 uE={enter:"return",esc:"escape"};function lE(A,q){return{...A,...q}}function g6(A,q){let g=new Map;for(let E of A){let F=F6(E);g.set(F,E)}for(let E of q){let F=F6(E);g.set(F,E)}return Array.from(g.values())}function F6(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function E6(A,q){let g=new Map,E=q||{};for(let F of A){let K=F6(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=F6({...F,name:K});g.set(Z,F.action)}}return g}function i_(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 t_(){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 Vq=K6("ConsoleCapture",()=>new TJ);LA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});LA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});class PJ extends NJ{_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(!_A.OTUI_USE_CONSOLE)return;let A=new RU("stdout",Vq),q=new RU("stderr",Vq);global.console=new c_({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?t_():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=K6("TerminalConsoleCache",()=>{let A=new PJ;return process.on("exit",()=>{A.destroy()}),A}),IJ;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(IJ||={});var MU=[{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"}],s_={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:JA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:JA.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:JA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Tg=2;class dU extends NJ{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 (${i_(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={...s_,...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=lE(uE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=g6(MU,this._keyBindings),this._keyBindingsMap=E6(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},uA.on("entry",this._entryListener),_A.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=F6({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 uQ.inspect(q,{depth:2})}catch(g){return String(q)}try{return uQ.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=Ig.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(),Q=JA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:Q;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 Q=G[M],$=j+M,X=this._rgbaDefault;switch(Q.level){case"INFO":X=this._rgbaInfo;break;case"WARN":X=this._rgbaWarn;break;case"ERROR":X=this._rgbaError;break;case"DEBUG":X=this._rgbaDebug;break}let I=Q.indent?" ".repeat(Tg):"",N=Q.text,W=this.consoleWidth-1-(Q.indent?Tg: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 C=`${I}${N.substring(0,W)}`,D=this.getLineSelectionRange($);if(D){let i=Math.max(0,D.start),p=Math.min(C.length,D.end);if(i>0)this.frameBuffer.drawText(C.substring(0,i),1,Y,X);if(i<p)this.frameBuffer.fillRect(1+i,Y,p-i,1,this._rgbaSelection),this.frameBuffer.drawText(C.substring(i,p),1+i,Y,X,this._rgbaSelection);if(p<C.length)this.frameBuffer.drawText(C.substring(p),1+p,Y,X)}else this.frameBuffer.drawText(C,1,Y,X);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=g6(MU,A),this._keyBindingsMap=E6(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=lE(uE,A),this._mergedKeyBindings=g6(MU,this._keyBindings),this._keyBindingsMap=E6(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 Q=Y[M],$=M===0,X=this.consoleWidth-1-($?0:Tg),I=$?U:" ".repeat(Tg),N=$?I+Q:Q,W=0;while(W<N.length||$&&W===0&&N.length===0){let x=N.substring(W,W+X),C=W===0;if(K.push({text:C&&!$?I+x:x,level:g,indent:!$||!C}),W+=X,$&&W===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(Tg):"",K=this.consoleWidth-1-(E.indent?Tg: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(Tg):"",F=this.consoleWidth-1-(g.indent?Tg: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=p_.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",Q=`[${Y}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(Q+$)}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 tq={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 Q=G?j:K,$=G?U:Z,X=0,I=M-1,N=-1;while(X<=I){let p=X+I>>1,h=Y[p],z=G?h.x:h.y;if((G?h.x+h.width:h.y+h.height)<Q)X=p+1;else if(z>$)I=p-1;else{N=p;break}}let W=[];if(N===-1)N=X>0?X-1:0;let x=50,C=N,D=0;while(C-1>=0){let p=Y[C-1];if((G?p.x+p.width:p.y+p.height)<=Q){if(D++,D>=x)break}else D=0;C--}let i=N+1;while(i<M){let p=Y[i];if((G?p.x:p.y)>=$)break;i++}for(let p=C;p<i;p++){let h=Y[p],z=G?h.x:h.y;if((G?h.x+h.width:h.y+h.height)<=Q)continue;if(z>=$)break;if(G){if(h.y+h.height<K)continue;if(h.y>Z)continue}else{if(h.x+h.width<j)continue;if(h.x>U)continue}W.push(h)}if(W.length>1)W.sort((p,h)=>p.zIndex>h.zIndex?1:p.zIndex<h.zIndex?-1:0);return W}function r_(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 o_(A){return/\x1b\[4;\d+;\d+t/.test(A)}function e_(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}LA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});LA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});LA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});LA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});LA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});LA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});var xJ=1,A4=2,RJ=4,q4=8,g4=16;function SJ(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=xJ;if(A.alternateKeys!==!1)q|=RJ;if(A.events===!0)q|=A4;if(A.allKeysAsEscapes===!0)q|=q4;if(A.reportText===!0)q|=g4;return q}class CA{type;button;x;y;source;modifiers;scroll;target;isSelecting;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isSelecting=q.isSelecting}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}var hJ;((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"})(hJ||={});var lQ=K6("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),q_("tree-sitter-client"))QJ().destroy(),A_("tree-sitter-client")}}}});async function uU(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=Nq(),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=SJ(U);Z.setKittyKeyboardFlags(j,G);let Y=new xZ(Z,j,q,g,E,F,A);return await Y.setupTerminal(),Y}var aJ;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(aJ||={});var zJ;((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"})(zJ||={});class xZ extends n_{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=JA.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:_A.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;_stdinBuffer;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;_useAlternateScreen=_A.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 pE;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=_A.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=Vq.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,tq.reset)}exitHandler=(()=>{if(this.destroy(),_A.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(lQ.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)Vq.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??_A.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 cU(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(_A.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 aU(U),this._keyHandler.on("keypress",(Y)=>{if(this.exitOnCtrlC&&Y.name==="c"&&Y.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new wU({timeout:5}),this._console=new dU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(Y)=>{let M=xZ.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,_A.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?xJ|RJ: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,Vq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=tq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=tq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=tq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Vq.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(Vq.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(Vq.size===0&&!q)return!1;let g=Vq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=tq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=tq.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=tq.setRgbBackground(U[0],U[1],U[2])+G+tq.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(r_(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(o_(A)&&this.waitingForPixelResolution){let q=e_(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler((A)=>{return this._keyHandler.processInput(A)}),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.setEncoding("utf8"),this.stdin.on("data",this.stdinListener),this._stdinBuffer.on("data",(A)=>{if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.inputHandlers)if(q(A))return}),this._stdinBuffer.on("paste",(A)=>{this._keyHandler.processPaste(A)})}handleMouseData(A){let q=this.mouseParser.parseMouseEvent(A);if(q){if(this._splitHeight>0){if(q.y<this.renderOffset)return!1;q.y-=this.renderOffset}if(this._latestPointer.x=q.x,this._latestPointer.y=q.y,this._hasPointer=!0,this._lastPointerModifiers=q.modifiers,this._console.visible){let Z=this._console.bounds;if(q.x>=Z.x&&q.x<Z.x+Z.width&&q.y>=Z.y&&q.y<Z.y+Z.height){let j=new CA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=DA.renderablesByNumber.get(Z);if(j){let U=new CA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=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 CA(F,q);return F.processMouseEvent(Z),!0}}if(q.type==="drag"&&this.currentSelection?.isSelecting){if(this.updateSelection(F,q.x,q.y),F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return this.finishSelection(),!0}if(q.type==="down"&&q.button===0&&this.currentSelection){if(q.modifiers.ctrl)return this.currentSelection.isSelecting=!0,this.updateSelection(F,q.x,q.y),!0}if(!E&&(q.type==="drag"||q.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable){let Z=new CA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new CA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new CA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new CA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new CA(this.capturedRenderable,q)),F){let j=new CA(F,{...q,type:"drop",source:this.capturedRenderable});F.processMouseEvent(j)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let K=void 0;if(F){if(q.type==="drag"&&q.button===0)this.setCapturedRenderable(F);else this.setCapturedRenderable(void 0);K=new CA(F,q),F.processMouseEvent(K)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!K?.defaultPrevented&&q.type==="down"&&this.currentSelection)this.clearSelection();return!0}return!1}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=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 CA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new CA(q,{...E,type:"over"});q.processMouseEvent(F)}}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.mouseParser.reset(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,F=tq.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){Nq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Nq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Nq().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),Vq.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),lQ.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,Q=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},Q)}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 kU(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=MJ(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 E4}from"events";class eU{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Nq(),g=q.createTextBufferView(A.ptr);return new eU(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 Eg extends E4{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),Eg.registry.set(this.id,this),Eg.subscribeToNativeEvents(A)}static create(A){let q=Nq(),g=q.createEditBuffer(A);return new Eg(q,g)}static subscribeToNativeEvents(A){if(Eg.nativeEventsSubscribed)return;Eg.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=Eg.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,Eg.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class AG{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=Nq(),F=E.createEditorView(A.ptr,q,g);return new AG(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=OJ(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 F4(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 AF{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=Nq(),q=A.createSyntaxStyle();return new AF(A,q)}static fromTheme(A){let q=AF.create(),g=F4(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=AF.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=dE({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=dE({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 dJ{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 EN=new dJ;function n6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return s6(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=LZ(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?A6(this._customBorderCharsObj):void 0,this.borderSides=NZ(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=NZ(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?A6(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=NZ(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=LZ(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(n6(A.gap))q.setGap(Lq.All,A.gap);if(n6(A.rowGap))q.setGap(Lq.Row,A.rowGap);if(n6(A.columnGap))q.setGap(Lq.Column,A.columnGap)}set gap(A){if(n6(A))this.yogaNode.setGap(Lq.All,A),this.requestRender()}set rowGap(A){if(n6(A))this.yogaNode.setGap(Lq.Row,A),this.requestRender()}set columnGap(A){if(n6(A))this.yogaNode.setGap(Lq.Column,A),this.requestRender()}}class pJ 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:JA.fromValues(1,1,1,1),bg:JA.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=PZ.create(this._ctx.widthMethod),this.textBufferView=eU.create(this.textBuffer);let g=AF.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===eq.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===eq.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=CU(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 uJ=Symbol.for("@opentui/core/TextNodeRenderable");function RZ(A){return!!A?.[uJ]}function BJ(A){return A.chunks.map((q)=>{let g=new gF({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class gF extends tE{[uJ]=!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(RZ(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(FJ(A)){let g=BJ(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||!RZ(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(RZ(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof i6){let E=BJ(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 gF(q);return g.add(A),g}static fromNodes(A,q={}){let g=new gF(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)=>RZ(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 lJ extends gF{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class Fg{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=(W)=>{if(W=this.postProcess(W,g),E){setTimeout(function(){E(W)},0);return}else return W},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,Q=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(Q[0],q,A,0,g);if(Q[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(Q[0].lastComponent,q,A));let X=-1/0,I=1/0,N=()=>{for(let W=Math.max(X,-U);W<=Math.min(I,U);W+=2){let x,C=Q[W-1],D=Q[W+1];if(C)Q[W-1]=void 0;let i=!1;if(D){let h=D.oldPos-W;i=D&&0<=h&&h<Z}let p=C&&C.oldPos+1<j;if(!i&&!p){Q[W]=void 0;continue}if(!p||i&&C.oldPos<D.oldPos)x=this.addToPath(D,!0,!1,0,g);else x=this.addToPath(C,!1,!0,1,g);if($=this.extractCommon(x,q,A,W,g),x.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(x.lastComponent,q,A))||!0;else{if(Q[W]=x,x.oldPos+1>=j)I=Math.min(I,W-1);if($+1>=Z)X=Math.max(X,W+1)}}U++};if(E)(function W(){setTimeout(function(){if(U>G||Date.now()>M)return E(void 0);if(!N())W()},0)})();else while(U<=G&&Date.now()<=M){let W=N();if(W)return W}}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,Q){let $=g[U+Q];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 iJ extends Fg{}var FN=new iJ;function wJ(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 kJ(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 iU(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 tU(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 sE(A,q){return iU(A,q,"")}function SZ(A,q){return tU(A,q,"")}function CJ(A,q){return q.slice(0,K4(A,q))}function K4(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 nE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function xg(A){let q=A.match(/^\s*/);return q?q[0]:""}var aZ="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}",Z4=new RegExp(`[${aZ}]+|\\s+|[^${aZ}]`,"ug");class tJ extends Fg{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(Z4)||[];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)DJ(g,F,E,K);g=K,E=null,F=null}}),E||F)DJ(g,F,E,null);return A}}var KN=new tJ;function DJ(A,q,g,E){if(q&&g){let F=xg(q.value),K=nE(q.value),Z=xg(g.value),j=nE(g.value);if(A){let U=wJ(F,Z);A.value=tU(A.value,Z,U),q.value=sE(q.value,U),g.value=sE(g.value,U)}if(E){let U=kJ(K,j);E.value=iU(E.value,j,U),q.value=SZ(q.value,U),g.value=SZ(g.value,U)}}else if(g){if(A){let F=xg(g.value);g.value=g.value.substring(F.length)}if(E){let F=xg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=xg(E.value),K=xg(q.value),Z=nE(q.value),j=wJ(F,K);q.value=sE(q.value,j);let U=kJ(sE(F,j),Z);q.value=SZ(q.value,U),E.value=iU(E.value,F,U),A.value=tU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=xg(E.value),K=nE(q.value),Z=CJ(K,F);q.value=SZ(q.value,Z)}else if(A){let F=nE(A.value),K=xg(q.value),Z=CJ(F,K);q.value=sE(q.value,Z)}}class sJ extends Fg{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${aZ}]+|[^\\S\\n\\r]+|[^${aZ}]`,"ug");return A.match(q)||[]}}var ZN=new sJ;class nJ extends Fg{constructor(){super(...arguments);this.tokenize=rJ}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 jN=new nJ;function rJ(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 j4(A){return A=="."||A=="!"||A=="?"}class oJ extends Fg{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(j4(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 UN=new oJ;class eJ extends Fg{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var GN=new eJ;class AO extends Fg{constructor(){super(...arguments);this.tokenize=rJ}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(sU(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 YN=new AO;function sU(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]=sU(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]=sU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class qO extends Fg{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var QN=new qO;class w extends pJ{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?TZ(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new lJ(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"?TZ(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 i6(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=TZ("");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 gO 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:JA.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:JA.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=Eg.create(this._ctx.widthMethod),this.editorView=AG.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=CU(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===eq.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===eq.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 lU=[{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 kq extends gO{_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=kq.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=lE(uE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=g6(lU,this._keyBindings);if(this._keyBindingsMap=E6(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=[t6(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=F6({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??kq.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??kq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=u(A??kq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=u(A??kq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=u(A??kq.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=g6(lU,A);this._keyBindingsMap=E6(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=lE(uE,A);let q=g6(lU,this._keyBindings);this._keyBindingsMap=E6(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var U4;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(U4||={});class kZ extends kq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=kZ.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 qG(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var j6=qG();function EO(A){j6=A}var qF={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 G4=(()=>{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")},Y4=/^(?:[ \t]*(?:\n|$))+/,Q4=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,J4=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,EF=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,O4=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,gG=/(?:[*+-]|\d{1,9}[.)])/,FO=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,KO=GA(FO).replace(/bull/g,gG).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(),M4=GA(FO).replace(/bull/g,gG).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(),EG=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,$4=/^[^\n]+/,FG=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,X4=GA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",FG).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),_4=GA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,gG).getRegex(),CZ="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",KG=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,H4=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",KG).replace("tag",CZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ZO=GA(EG).replace("hr",EF).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",CZ).getRegex(),V4=GA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ZO).getRegex(),ZG={blockquote:V4,code:Q4,def:X4,fences:J4,heading:O4,hr:EF,html:H4,lheading:KO,list:_4,newline:Y4,paragraph:ZO,table:qF,text:$4},yJ=GA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",EF).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",CZ).getRegex(),W4={...ZG,lheading:M4,table:yJ,paragraph:GA(EG).replace("hr",EF).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",yJ).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",CZ).getRegex()},L4={...ZG,html:GA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",KG).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:qF,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:GA(EG).replace("hr",EF).replace("heading",` *#{1,6} *[^
33
+ ]`).replace("lheading",KO).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},N4=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,T4=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,jO=/^( {2,}|\\)\n(?!\s*$)/,P4=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,DZ=/[\p{P}\p{S}]/u,jG=/[\s\p{P}\p{S}]/u,UO=/[^\s\p{P}\p{S}]/u,I4=GA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,jG).getRegex(),GO=/(?!~)[\p{P}\p{S}]/u,x4=/(?!~)[\s\p{P}\p{S}]/u,R4=/(?:[^\s\p{P}\p{S}]|~)/u,S4=GA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",G4?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),YO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,h4=GA(YO,"u").replace(/punct/g,DZ).getRegex(),a4=GA(YO,"u").replace(/punct/g,GO).getRegex(),QO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",z4=GA(QO,"gu").replace(/notPunctSpace/g,UO).replace(/punctSpace/g,jG).replace(/punct/g,DZ).getRegex(),B4=GA(QO,"gu").replace(/notPunctSpace/g,R4).replace(/punctSpace/g,x4).replace(/punct/g,GO).getRegex(),w4=GA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,UO).replace(/punctSpace/g,jG).replace(/punct/g,DZ).getRegex(),k4=GA(/\\(punct)/,"gu").replace(/punct/g,DZ).getRegex(),C4=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(),D4=GA(KG).replace("(?:-->|$)","-->").getRegex(),y4=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",D4).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),zZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,b4=GA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",zZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),JO=GA(/^!?\[(label)\]\[(ref)\]/).replace("label",zZ).replace("ref",FG).getRegex(),OO=GA(/^!?\[(ref)\](?:\[\])?/).replace("ref",FG).getRegex(),v4=GA("reflink|nolink(?!\\()","g").replace("reflink",JO).replace("nolink",OO).getRegex(),bJ=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,UG={_backpedal:qF,anyPunctuation:k4,autolink:C4,blockSkip:S4,br:jO,code:T4,del:qF,emStrongLDelim:h4,emStrongRDelimAst:z4,emStrongRDelimUnd:w4,escape:N4,link:b4,nolink:OO,punctuation:I4,reflink:JO,reflinkSearch:v4,tag:y4,text:P4,url:qF},m4={...UG,link:GA(/^!?\[(label)\]\((.*?)\)/).replace("label",zZ).getRegex(),reflink:GA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",zZ).getRegex()},nU={...UG,emStrongRDelimAst:B4,emStrongLDelim:a4,url:GA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",bJ).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",bJ).getRegex()},f4={...nU,br:GA(jO).replace("{2,}","*").getRegex(),text:GA(nU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},hZ={normal:ZG,gfm:W4,pedantic:L4},rE={normal:UG,gfm:nU,breaks:f4,pedantic:m4},c4={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},vJ=(A)=>c4[A];function gg(A,q){if(q){if(dA.escapeTest.test(A))return A.replace(dA.escapeReplace,vJ)}else if(dA.escapeTestNoEncode.test(A))return A.replace(dA.escapeReplaceNoEncode,vJ);return A}function mJ(A){try{A=encodeURI(A).replace(dA.percentDecode,"%")}catch{return null}return A}function fJ(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 oE(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 d4(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 cJ(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 p4(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 BZ=class{options;rules;lexer;constructor(A){this.options=A||j6}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:oE(g,`
36
+ `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=p4(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=oE(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:oE(q[0],`
37
+ `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=oE(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 Q=K.at(-1);if(Q?.type==="code")break;if(Q?.type==="blockquote"){let $=Q,X=$.raw+`
44
44
  `+g.join(`
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+`
45
+ `),I=this.blockquote(X);K[K.length-1]=I,E=E.substring(0,E.length-$.raw.length)+I.raw,F=F.substring(0,F.length-$.text.length)+I.text;break}else if(Q?.type==="list"){let $=Q,X=$.raw+`
46
46
  `+g.join(`
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(`
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+=`
47
+ `),I=this.list(X);K[K.length-1]=I,E=E.substring(0,E.length-Q.raw.length)+I.raw,F=F.substring(0,F.length-$.raw.length)+I.raw,g=X.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,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
+ `,1)[0].replace(this.rules.other.listReplaceTabs,(I)=>" ".repeat(3*I.length)),Q=A.split(`
50
+ `,1)[0],$=!M.trim(),X=0;if(this.options.pedantic?(X=2,Y=M.trimStart()):$?X=q[1].length+1:(X=q[2].search(this.rules.other.nonSpaceChar),X=X>4?1:X,Y=M.slice(X),X+=q[1].length),$&&this.rules.other.blankLine.test(Q)&&(G+=Q+`
51
+ `,A=A.substring(Q.length+1),U=!0),!U){let I=this.rules.other.nextBulletRegex(X),N=this.rules.other.hrRegex(X),W=this.rules.other.fencesBeginRegex(X),x=this.rules.other.headingBeginRegex(X),C=this.rules.other.htmlBeginRegex(X);for(;A;){let D=A.split(`
52
+ `,1)[0],i;if(Q=D,this.options.pedantic?(Q=Q.replace(this.rules.other.listReplaceNesting," "),i=Q):i=Q.replace(this.rules.other.tabCharGlobal," "),W.test(Q)||x.test(Q)||C.test(Q)||I.test(Q)||N.test(Q))break;if(i.search(this.rules.other.nonSpaceChar)>=X||!Q.trim())Y+=`
53
+ `+i.slice(X);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||W.test(M)||x.test(M)||N.test(M))break;Y+=`
54
+ `+Q}!$&&!Q.trim()&&($=!0),G+=D+`
55
+ `,A=A.substring(D.length+1),M=i.slice(X)}}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=fJ(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(fJ(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=oE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=d4(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)),cJ(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 cJ(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 Q=M.slice(2,-2);return{type:"strong",raw:M,text:Q,tokens:this.lexer.inlineTokens(Q)}}}}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}}}},Pq=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||j6,this.options.tokenizer=this.options.tokenizer||new BZ,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:hZ.normal,inline:rE.normal};this.options.pedantic?(g.block=hZ.pedantic,g.inline=rE.pedantic):this.options.gfm&&(g.block=hZ.gfm,this.options.breaks?g.inline=rE.breaks:g.inline=rE.gfm),this.tokenizer.rules=g}static get rules(){return{block:hZ,inline:rE}}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),Q;this.options.extensions.startInline.forEach(($)=>{Q=$.call({lexer:this},M),typeof Q=="number"&&Q>=0&&(Y=Math.min(Y,Q))}),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}},wZ=class{options;parser;constructor(A){this.options=A||j6}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-'+gg(E)+'">'+(g?F:gg(F,!0))+`</code></pre>
73
+ `:"<pre><code>"+(g?F:gg(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>${gg(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=mJ(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+gg(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=mJ(A);if(F===null)return gg(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${gg(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:gg(A.text)}},GG=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}},Iq=class A{options;renderer;textRenderer;constructor(q){this.options=q||j6,this.options.renderer=this.options.renderer||new wZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new GG}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}},eE=class{options;block;constructor(A){this.options=A||j6}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?Pq.lex:Pq.lexInline}provideParser(){return this.block?Iq.parse:Iq.parseInline}},u4=class{defaults=qG();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Iq;Renderer=wZ;TextRenderer=GG;Lexer=Pq;Tokenizer=BZ;Hooks=eE;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 wZ(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 BZ(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 eE;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];eE.passThroughHooks.has(K)?F[Z]=(G)=>{if(this.defaults.async&&eE.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 Pq.lex(A,q??this.defaults)}parser(A,q){return Iq.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?Pq.lex:Pq.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?Iq.parse:Iq.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?Pq.lex:Pq.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?Iq.parse:Iq.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>"+gg(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},Z6=new u4;function OA(A,q){return Z6.parse(A,q)}OA.options=OA.setOptions=function(A){return Z6.setOptions(A),OA.defaults=Z6.defaults,EO(OA.defaults),OA};OA.getDefaults=qG;OA.defaults=j6;OA.use=function(...A){return Z6.use(...A),OA.defaults=Z6.defaults,EO(OA.defaults),OA};OA.walkTokens=function(A,q){return Z6.walkTokens(A,q)};OA.parseInline=Z6.parseInline;OA.Parser=Iq;OA.parser=Iq.parse;OA.Renderer=wZ;OA.TextRenderer=GG;OA.Lexer=Pq;OA.lexer=Pq.lex;OA.Tokenizer=BZ;OA.Hooks=eE;OA.parse=OA;var{options:JN,setOptions:ON,use:MN,walkTokens:$N,parseInline:XN}=OA,_N=Iq.parse,HN=Pq.lex;var l4=JA.fromHex("#9a9ea3"),i4=JA.fromHex("#252527");class MO 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):i4,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):l4,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 Q=Y===0?0:M/Y,$=this._max-this._min,X=this._min+Q*$;this.value=X}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,X=" ";if($>=2)X="\u2588";else if(M===G)X="\u258C";else X="\u2590";for(let I=0;I<this.height;I++)A.setCellWithAlphaBlending(this.x+U,this.y+I,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,X=" ";if($>=2)X="\u2588";else if($>0)if(M-G===0)X="\u2580";else X="\u2584";for(let I=0;I<this.width;I++)A.setCellWithAlphaBlending(this.x+I,this.y+U,X,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 rU 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 MO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(Q)=>{this._scrollPosition=Math.round(Q),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 oU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...G}),this.endArrow=new oU(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=(Q)=>{Q.stopPropagation(),Q.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=(Q)=>{Q.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(Q)=>{Q.stopPropagation(),Q.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=(Q)=>{Q.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 oU 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):JA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?u(q.backgroundColor):JA.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 $O 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 Cq 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:Q,viewportCulling:$=!0,...X}){super(A,{flexDirection:"row",alignItems:"stretch",...X,...F});if(this.internalId=Cq.idCounter++,this._stickyScroll=U,this._stickyStart=G,this.scrollAccel=Q??new BU,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 $O(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 rU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(I)=>{if(this.content.translateY=-I,!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 rU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(I)=>{if(this.content.translateX=-I,!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 I=this._ctx.getSelection();if(!I||!I.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 t4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(t4||={});var s4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(s4||={});import{exec as vV}from"child_process";import{appendFileSync as n4,writeFileSync as r4}from"fs";import{join as o4}from"path";import{homedir as e4}from"os";var _O=o4(e4(),".config","hn-cli","debug.log"),XO=!1;function AH(){if(!XO)try{r4(_O,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
91
+ `),XO=!0}catch{}}function FA(...A){AH();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{n4(_O,`[${q}] ${g}
92
+ `)}catch{}}import{homedir as qH}from"os";import{join as HO}from"path";import{existsSync as VO,mkdirSync as gH,readFileSync as EH,writeFileSync as FH}from"fs";var WO=[{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"}],KH="claude-haiku-4-5-20251001",ZH="gpt-5-nano-2025-08-07",U6="claude-haiku-4-5-20251001",Rg="gpt-5-nano-2025-08-07",YG=HO(qH(),".config","hn-cli"),QG=HO(YG,"config.json");function NO(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 iA(){try{if(VO(QG)){let A=EH(QG,"utf-8"),q=JSON.parse(A);return NO(q)}}catch{}return{}}function Kg(A){if(!VO(YG))gH(YG,{recursive:!0});let q=NO(A);FH(QG,JSON.stringify(q,null,2))}function tA(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=iA();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function Gq(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=iA();if(A.provider&&tA(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function TO(){return Gq()!==void 0}function FF(A){let q=iA();if(A==="anthropic")return q.anthropicModel||KH;else return q.openaiModel||ZH}function PO(A,q){let g=iA();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;Kg(g)}function IO(){let A=iA();Kg({telemetryEnabled:A.telemetryEnabled,userId:A.userId,filterSettings:A.filterSettings})}function G6(){return iA().telemetryEnabled!==!1}function yZ(A){let q=iA();q.telemetryEnabled=A,Kg(q)}function xO(){let A=iA();if(A.userId)return A.userId;let q=crypto.randomUUID();return A.userId=q,Kg(A),q}var SO="0.4.0";var hO={name:"@brianlovin/hn-cli",version:SO,description:"Interactive terminal UI for browsing Hacker News",module:"src/index.ts",type:"module",bin:{hn:"./dist/cli.js"},files:["dist"],scripts:{start:"bun run src/index.ts",dev:"bun run --watch src/index.ts","dev:update":"HN_SIMULATE_VERSION=0.1.0 HN_SIMULATE_LATEST=0.3.0 bun run --watch src/index.ts",build:"bun build src/index.ts --outdir dist --target bun --minify --entry-naming cli.js",prepublishOnly:"bun run build && bun run typecheck",test:"bun test",typecheck:"bun tsc --noEmit",debug:"bun run src/debug.ts"},repository:{type:"git",url:"git+https://github.com/brianlovin/hn-cli.git"},homepage:"https://github.com/brianlovin/hn-cli",bugs:"https://github.com/brianlovin/hn-cli/issues",author:"Brian Lovin",license:"MIT",keywords:["hacker-news","cli","terminal","tui","hn"],engines:{bun:">=1.0.0"},publishConfig:{access:"public",provenance:!0},devDependencies:{"@types/bun":"latest"},peerDependencies:{typescript:"^5"},dependencies:{"@anthropic-ai/sdk":"^0.71.2","@opentui/core":"^0.1.75",openai:"^6.16.0"}};var jH=hO.version;function aO(){if(QH)return!1;if(process.argv.includes("--telemetry-test"))return!1;if(process.argv.includes("--watch"))return!0;let A=process.argv[1]||"";if(A.includes("/src/")||A.endsWith("/src/index.ts"))return!0;return!1}var UH="https://brianlovin.com/api/hn-cli/telemetry",MG=10,GH=5000,YH=1500,JG=3,xq=[],$G=!1,QH=!1,OG=!1,r6=0;function zO(){$G=!0}function nA(A,q){if(!$G||!G6()||aO())return;if(xq.push({event:A,timestamp:Date.now(),properties:q}),xq.length>=MG)JH().catch(()=>{})}async function JH(){await wO(GH)}async function BO(){await wO(YH)}async function wO(A){if(!$G||!G6()||aO()||xq.length===0)return;if(OG)return;if(r6>=JG)return;OG=!0;let q=[...xq];xq=[];try{let g=xO(),E=new AbortController,F=setTimeout(()=>E.abort(),A),K=await fetch(UH,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:g,version:jH,events:q}),signal:E.signal});if(clearTimeout(F),!K.ok){if(r6++,xq.length<MG*2&&r6<JG)xq=[...q,...xq]}else r6=0}catch{if(r6++,xq.length<MG*2&&r6<JG)xq=[...q,...xq]}finally{OG=!1}}var Y6={maxPosts:24,fetchLimit:200,hoursWindow:24,minPoints:50,minComments:20,commentWeight:0.75,recencyBonusMax:100,maxRootComments:12,maxChildComments:8,maxCommentLevel:3,storiesTtlMinutes:5},o6={maxPosts:{min:1,max:50,step:1,label:"Max Stories",description:"Maximum number of stories to display"},fetchLimit:{min:50,max:500,step:50,label:"Fetch Limit",description:"Number of posts to fetch from HN API"},hoursWindow:{min:1,max:168,step:1,label:"Time Window (hours)",description:"Only show stories that are trending in this window"},minPoints:{min:0,max:500,step:10,label:"Min Points",description:"The minimum number of votes required"},minComments:{min:0,max:100,step:5,label:"Min Comments",description:"The minimum number of comments required"},commentWeight:{min:0,max:2,step:0.25,label:"Comment Weight",description:"Weight of comments in ranking (0-2)"},recencyBonusMax:{min:0,max:200,step:10,label:"Recency Bonus",description:"Maximum bonus points for new posts"},maxRootComments:{min:1,max:50,step:1,label:"Root Comments",description:"How many root comments to display per story"},maxChildComments:{min:1,max:20,step:1,label:"Child Comments",description:"The maximum number of child comments to display per root comment"},maxCommentLevel:{min:1,max:10,step:1,label:"Nesting Depth",description:"The maximum depth of nested replies to display"},storiesTtlMinutes:{min:1,max:60,step:1,label:"Cache TTL (min)",description:"How long to cache stories before refresh"}},CO=[{key:"filtering",label:"Story Filtering",settings:["maxPosts","hoursWindow","minPoints","minComments"]},{key:"comments",label:"Comments",settings:["maxRootComments","maxChildComments","maxCommentLevel"]}];function DO(A,q){let g=o6[A],E=Math.max(g.min,Math.min(g.max,q)),F=Math.round((E-g.min)/g.step);return g.min+F*g.step}function yO(A){let q={...Y6};for(let g of Object.keys(Y6))if(A[g]!==void 0)q[g]=DO(g,A[g]);return q}function Yq(){let A=iA();if(!A.filterSettings)return{...Y6};return yO(A.filterSettings)}function bO(A){let q=iA();q.filterSettings=yO(A),Kg(q)}function vO(A,q){let g=Yq();return g[A]=DO(A,q),bO(g),g}function mO(){return bO(Y6),{...Y6}}function fO(A,q){if(A==="commentWeight")return q.toFixed(2);return String(q)}var OH="https://hacker-news.firebaseio.com/v0",cO="https://api.hnpwa.com/v0";async function MH(){let A=await fetch(`${OH}/topstories.json`);if(!A.ok)throw new Error("Failed to fetch top stories");return A.json()}function dO(A,q){if(!A)return null;if(A.level>q.maxCommentLevel)return null;return{...A,comments:A.comments.slice(0,q.maxChildComments).map((g)=>dO(g,q)).filter(Boolean)}}function pO(A,q,g){let E=A.comments.slice(0,g.maxRootComments).map((F)=>dO(F,g)).filter(Boolean);return{...A,comments:q?E:[]}}async function XG(A,q){let g=q??Yq();try{let E=await fetch(`${cO}/item/${A}.json`);if(!E.ok)return null;let F=await E.json();return pO(F,!0,g)}catch{return null}}async function uO(A){let q=A??Yq(),E=(await MH()).sort((Q,$)=>$-Q).slice(0,q.fetchLimit),F=await Promise.all(E.map(async(Q)=>{try{let $=await fetch(`${cO}/item/${Q}.json`);if(!$.ok)return null;let X=await $.json();return pO(X,!1,q)}catch{return null}})),K=Date.now()/1000,Z=K-3600*q.hoursWindow;return F.filter((Q)=>Q!==null).filter((Q)=>Q.type==="link").filter((Q)=>Q.time>Z).filter((Q)=>(Q.points||0)>=q.minPoints||Q.comments_count>=q.minComments).sort((Q,$)=>{let X=(K-Q.time)/3600,I=(K-$.time)/3600,N=Math.max(0,q.recencyBonusMax*(1-X/q.hoursWindow)),W=Math.max(0,q.recencyBonusMax*(1-I/q.hoursWindow)),x=(Q.points||0)+Q.comments_count*q.commentWeight+N;return($.points||0)+$.comments_count*q.commentWeight+W-x}).slice(0,q.maxPosts)}var $H={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"},XH={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"},V={...$H};function _H(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 lO(A){try{let q=await A.getPalette({timeout:100});if(q.defaultBackground&&_H(q.defaultBackground))Object.assign(V,XH)}catch{}}function iO(A){return{0:V.accent,1:V.commentL1,2:V.commentL2,3:V.commentL3}[A]??V.commentL3}var yA=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function tO(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}function Sg(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:
106
- ${K.map((O)=>O.error).join(`
101
+ `).trim()}var HH="https://registry.npmjs.org/@brianlovin/hn-cli/latest",sO="@brianlovin/hn-cli",Zg=process.env.HN_SIMULATE_VERSION??SO,_G=process.env.HN_SIMULATE_LATEST;function nO(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 rO(){if(_G)return{hasUpdate:nO(Zg,_G),currentVersion:Zg,latestVersion:_G};try{let A=new AbortController,q=setTimeout(()=>A.abort(),3000),g=await fetch(HH,{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:nO(Zg,F),currentVersion:Zg,latestVersion:F}}catch{return null}}function bZ(){if(process.versions.bun!==void 0)return`bun install -g ${sO}@latest`;return`npm install -g ${sO}@latest`}async function VH(A){let q=process.platform,g;if(q==="darwin")g=["pbcopy"];else if(q==="linux")g=["xclip","-selection","clipboard"];else if(q==="win32")g=["clip"];else return!1;try{let E=Bun.spawn(g,{stdin:"pipe"});return E.stdin.write(A),E.stdin.end(),await E.exited,!0}catch{return!1}}function oO(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:1,paddingRight:2,backgroundColor:V.bg,borderStyle:"single",border:["bottom"],borderColor:V.border}),E=new b(A,{flexDirection:"row",alignItems:"center"}),F=new w(A,{content:"\u25A0",fg:V.accent,width:2,paddingLeft:1});E.add(F);let K=new w(A,{content:"Hacker News",fg:V.accent});E.add(K),g.add(E);let Z=new b(A,{flexDirection:"row",gap:2,alignItems:"center"}),j=new w(A,{content:"",fg:V.textSecondary});Z.add(j);let U=new w(A,{content:`v${Zg}`,fg:V.textSecondary});Z.add(U);let G=new b(A,{flexDirection:"row",alignItems:"center",gap:1}),Y=new w(A,{content:"",fg:V.textSecondary}),M=new w(A,{content:"->",fg:V.textSecondary}),Q=new w(A,{content:"",fg:V.success}),$=new w(A,{content:"\xB7",fg:V.textSecondary}),X=null,I=new w(A,{content:" ",fg:V.success,width:2}),N=new w(A,{content:"",fg:V.textSecondary,onMouseOver:()=>{N.fg=V.textPrimary},onMouseOut:()=>{N.fg=V.textSecondary},onMouseDown:()=>{let x=bZ();if(VH(x),I.content="\u2713",X)clearTimeout(X);X=setTimeout(()=>{I.content=" ",X=null},3000)}});return G.add(Y),G.add(M),G.add(Q),G.add($),G.add(N),G.add(I),g.add(Z),{header:g,state:{loadingIndicator:j,loadingInterval:null,loadingFrame:0,rightContainer:Z,versionLabel:U,updateContainer:G,currentVersionLabel:Y,updateArrow:M,latestVersionLabel:Q,updateCommand:N,copiedIndicator:I}}}function eO(A,q){if(q?.hasUpdate){if(A.currentVersionLabel.content=`v${q.currentVersion}`,A.latestVersionLabel.content=`v${q.latestVersion}`,A.updateCommand.content=bZ(),A.versionLabel.content="",!A.rightContainer.getChildren().some((F)=>F.id===A.updateContainer.id))A.rightContainer.add(A.updateContainer)}else A.versionLabel.content=`v${Zg}`,A.rightContainer.remove(A.updateContainer.id)}function AM(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 qM(A){if(A.loadingInterval)clearInterval(A.loadingInterval),A.loadingInterval=null;if(A.loadingIndicator)A.loadingIndicator.content=""}var WH=80;function gM(A,q,g,E,F){let K=new b(A,{id:`story-${q.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:V.bg,flexDirection:"row",onMouseDown:()=>{F.onSelect(g)}}),Z=new w(A,{id:`chevron-${q.id}`,content:E?"\u203A":"\u2022",fg:E?V.accent:V.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 w(A,{id:`title-${q.id}`,content:tO(q.title,WH),fg:E?V.accent:V.textPrimary,maxHeight:2});if(j.add(U),q.domain){let G=new w(A,{id:`domain-${q.id}`,content:q.domain,fg:V.textSecondary});j.add(G)}return K}function HG(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?V.accent:V.textTertiary;let Z=E[1].getChildren();if(Z.length>0){let j=Z[0];if(j&&"content"in j)j.fg=g?V.accent:V.textPrimary}}}function EM(A,q){let g=A.getChildren();if(g.length>=1){let E=g[0];if(E&&"content"in E)E.content=q}}function LH(A,q){return A.length===1&&q.length>0&&q.toLowerCase().startsWith(A.toLowerCase())}function hg(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,backgroundColor:V.bg,borderStyle:"single",border:["top"],borderColor:V.border,gap:2}),E=q.filter((Z)=>!Z.rightAlign),F=q.filter((Z)=>Z.rightAlign),K=(Z)=>{let{key:j,desc:U}=Z;if(LH(j,U)){let G=U[0]??"",Y=new w(A,{content:lA`${iE(t6(V.textPrimary)(G))}${U.slice(1)}`,fg:V.textSecondary});g.add(Y)}else{let G=new b(A,{flexDirection:"row",gap:1}),Y=new w(A,{content:j,fg:V.textPrimary}),M=new w(A,{content:U,fg:V.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 FM=[{key:"\u2423",desc:"next"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"s",desc:"settings",rightAlign:!0}],KM=[{key:"j/k",desc:"navigate"}],ZM=[{key:"esc",desc:"close"}],jM=[{key:"j/k",desc:"navigate"},{key:"\u2190/\u2192",desc:"adjust"},{key:"\u21B5",desc:"select"},{key:"r",desc:"reset"},{key:"esc",desc:"close",rightAlign:!0}];function UM(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:V.border,backgroundColor:V.bg,paddingLeft:1}),g=new Cq(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:V.bg,contentOptions:{flexDirection:"column",backgroundColor:V.bg,gap:1}}),E=hg(A,KM),F=new b(A,{id:"story-list-notification-box",width:"100%",flexDirection:"row"}),K=new w(A,{id:"story-list-notification-icon",content:"?",fg:V.textTertiary,width:2,paddingLeft:1}),Z=new w(A,{id:"story-list-notification-text",content:"",fg:V.textSecondary});return F.add(K),F.add(Z),q.add(g),q.add(E),{panel:q,scroll:g,shortcutsBar:E,items:new Map,notificationBox:F}}function GM(A,q){let g=A.notificationBox.getChildren()[1];if(g)g.content=q;let E=A.scroll.getChildren();if(!E.some((K)=>K.id===A.notificationBox.id)){let K=E.filter((Z)=>Z.id!==A.notificationBox.id);for(let Z of K)A.scroll.remove(Z.id);A.scroll.add(A.notificationBox);for(let Z of K)A.scroll.add(Z)}}function vZ(A,q,g,E,F){for(let K of q.scroll.getChildren())if(K.id!==q.notificationBox.id)q.scroll.remove(K.id);q.items.clear(),g.forEach((K,Z)=>{let U=gM(A,K,Z,Z===E,F);q.items.set(Z,U),q.scroll.add(U)})}function YM(A,q,g,E){let F=A.items.get(g),K=q[g];if(F&&K)HG(F,K,!1);let Z=A.items.get(E),j=q[E];if(Z&&j)HG(Z,j,!0)}function QM(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 VG(A,q,g){let E=A.items.get(q);if(E)EM(E,g)}function WG(A,q){let g=q.level===0,E=iO(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 w(A,{content:q.user||"[deleted]",fg:g?V.accent:V.textSecondary});if(K.add(Z),q.content){let j=new w(A,{content:Sg(q.content),fg:V.textPrimary,wrapMode:"word"});K.add(j)}else if(q.deleted){let j=new w(A,{content:"[deleted]",fg:V.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=WG(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 JM(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:V.border,backgroundColor:V.bg}),F=new w(A,{content:q.title,fg:V.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>g.onOpenStoryUrl(),onMouseOver:()=>{F.fg=V.accent},onMouseOut:()=>{F.fg=V.textPrimary}});if(E.add(F),q.domain){let K=new w(A,{content:q.domain,fg:V.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>g.onOpenStoryUrl()});E.add(K)}return{container:E}}function OM(A,q,g,E){for(let K of q.getChildren())q.remove(K.id);let F=new w(A,{content:g.title,fg:V.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>E.onOpenStoryUrl(),onMouseOver:()=>{F.fg=V.accent},onMouseOut:()=>{F.fg=V.textPrimary}});if(q.add(F),g.domain){let K=new w(A,{content:g.domain,fg:V.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>E.onOpenStoryUrl()});q.add(K)}}function MM(A,q){let g=new b(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:V.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:V.border,backgroundColor:V.bg}),F=new Cq(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:V.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:V.bg}}),K=new b(A,{width:"100%",flexDirection:"column",backgroundColor:V.bg});F.add(K);let Z=hg(A,FM);return{panel:g,header:E,scroll:F,content:K,shortcutsBar:Z,rootCommentBoxes:[]}}function mZ(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 Q6(A,q,g,E,F){for(let G of q.content.getChildren())q.content.remove(G.id);if(q.rootCommentBoxes=[],OM(A,q.header,g,E),g.content){let G=new b(A,{width:"100%",marginBottom:2}),Y=new w(A,{content:Sg(g.content),fg:V.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:V.border}),Y=F.loadingFrame??0,M=yA[Y%yA.length],Q=new w(A,{content:`${M} Generating TLDR...`,fg:V.textTertiary});G.add(Q),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:V.border}),Y=new w(A,{content:"Failed to generate TLDR. Press t to retry.",fg:V.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:V.border}),Y=new w(A,{content:lA`${Tq("TL;DR")}`,fg:V.accent});G.add(Y);let M=new b(A,{height:1});G.add(M);let Q=new w(A,{content:lA`${Tq("Article summary")}`,fg:V.textSecondary});G.add(Q);let $=new b(A,{flexGrow:1,flexShrink:1}),X=new w(A,{content:F.tldr.articleSummary,fg:V.textPrimary,wrapMode:"word"});$.add(X),G.add($);let I=new b(A,{height:1});G.add(I);let N=new w(A,{content:lA`${Tq("Discussion summary")}`,fg:V.textSecondary});G.add(N);let W=new b(A,{flexGrow:1,flexShrink:1}),x=new w(A,{content:F.tldr.discussionSummary,fg:V.textPrimary,wrapMode:"word"});W.add(x),G.add(W);let C=new b(A,{height:1});G.add(C);let D=new w(A,{content:"c to continue chatting",fg:V.textTertiary});G.add(D),q.content.add(G)}let K=new b(A,{width:"100%",flexDirection:"column"}),Z=new b(A,{width:"100%",flexDirection:"row"}),j=new w(A,{content:`${g.comments_count} comments`,fg:V.textSecondary});Z.add(j);let U=new w(A,{content:lA` \u00B7 ${iE(t6(V.textPrimary)("t"))}ldr`,fg:V.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=WG(A,Y);if(K.add(M),Y.level===0)q.rootCommentBoxes.push(M)}else{let G=new w(A,{content:"No comments yet...",fg:V.textSecondary});K.add(G)}q.content.add(K),q.scroll.scrollTop=0}function LG(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 fZ=30,NH="\u2588",TH="\u2591",$M=6;function XM(A){let q=(fZ-1)*2,g=A%q,E=g<fZ?g:q-g,F=Math.floor($M/2),K=E-F,Z=E+F+$M%2;K=Math.max(0,K),Z=Math.min(fZ,Z);let j="";for(let U=0;U<fZ;U++)j+=U>=K&&U<Z?NH:TH;return j}function _M(A){let q=new b(A,{width:"100%",height:"100%",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:V.bg}),g=new w(A,{content:"",fg:V.textSecondary}),E=new w(A,{content:"",fg:V.textSecondary,marginTop:2});return q.add(g),q.add(E),{container:q,progressBar:g,statusText:E,mode:"loading",frame:0,animationInterval:null}}function HM(A,q,g){if(KF(A),A.mode=q,A.frame=0,q==="loading")A.progressBar.content=XM(0),A.statusText.content="",A.animationInterval=setInterval(()=>{if(g()){KF(A);return}A.frame++,A.progressBar.content=XM(A.frame)},40);else A.progressBar.content="",A.statusText.content="Press j/k to browse stories"}function KF(A){if(A.animationInterval)clearInterval(A.animationInterval),A.animationInterval=null}function VM(A){return new b(A,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:V.bg,borderStyle:"single",border:["top"],borderColor:V.border})}function hA(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 w(A,{id:"suggestions-loading",content:`${yA[q.loadingFrame]??"\u280B"} Generating suggestions...`,fg:V.textSecondary});q.container.add(Z);return}if(q.suggestions.length===0)return;let F=new w(A,{id:"suggestions-header",content:"\u2726 Suggested questions",fg:V.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:V.bg}),Y=new w(A,{id:`suggestion-indicator-${Z}`,content:U?"\u203A ":"\u2022 ",fg:U?V.accent:V.textSecondary,width:2,flexShrink:0});G.add(Y);let M=new b(A,{id:`suggestion-text-container-${Z}`,flexGrow:1,flexDirection:"row",flexWrap:"wrap"}),Q=new w(A,{id:`suggestion-text-${Z}`,content:j,fg:U?V.accent:V.textSecondary,wrapMode:"word"});if(M.add(Q),U){let $=new w(A,{id:`suggestion-hint-${Z}`,content:" tab to type",fg:V.textTertiary});M.add($)}G.add(M),q.container.add(G)}}function WM(A){return{container:A,suggestions:[],originalSuggestions:[],selectedIndex:-1,loading:!1,loadingFrame:0}}function LM(A,q){let g=new b(A,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:V.bg,borderStyle:"single",border:["top"],borderColor:V.border}),E=new w(A,{content:"\u203A ",fg:V.accent});g.add(E);let F=new kq(A,{width:"100%",flexGrow:1,height:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:V.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 cZ(A,q,g){let E=new Cq(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:V.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:V.bg}}),F=new b(A,{width:"100%",flexDirection:"column",backgroundColor:V.bg});E.add(F);let K=VM(A),Z=WM(K),j=LM(A,{onSubmit:g.onSubmit}),U=hg(A,ZM),G=new b(A,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:V.bg}),{container:Y}=JM(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 ag(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"?V.accent:V.link,Y=new w(A,{content:"\u2022",fg:G});U.add(Y);let M=g==="anthropic"?"Claude":"GPT",Q=new w(A,{content:K.role==="user"?"You":M,fg:G});U.add(Q),j.add(U);let $=new b(A,{width:"100%",paddingLeft:2}),X=new w(A,{content:K.content,fg:Z?V.textPrimary:V.textSecondary,wrapMode:"word"});$.add(X),j.add($),q.content.add(j)}NG(q)}function NG(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 ZF(A,q,g,E,F){q.messages.push({role:g,content:E}),ag(A,q,F)}function NM(A,q,g){if(q.typingInterval)return;q.isTyping=!0,q.typingFrame=0,q.typingInterval=setInterval(()=>{if(!q.isActive||!q.isTyping){e6(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,ag(A,q,g),E.content="..."}},80)}function e6(A){if(A.isTyping=!1,A.typingInterval)clearInterval(A.typingInterval),A.typingInterval=null}function dZ(){return{step:"provider",selectedProvider:"anthropic",keyInput:null}}function TM(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:V.bg}),F=new w(A,{content:"Set up AI Chat",fg:V.accent});if(E.add(F),E.add(new b(A,{height:1})),q.step==="provider")PH(A,E,q);else if(q.step==="key")IH(A,E,q,g);return E}function PH(A,q,g){let E=new w(A,{content:"Choose your AI provider:",fg:V.textPrimary});q.add(E),q.add(new b(A,{height:1}));let F=new b(A,{flexDirection:"row",gap:1}),K=new w(A,{content:g.selectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:g.selectedProvider==="anthropic"?V.accent:V.textSecondary}),Z=new w(A,{content:"Anthropic",fg:g.selectedProvider==="anthropic"?V.accent:V.textPrimary});F.add(K),F.add(Z),q.add(F);let j=new b(A,{flexDirection:"row",gap:1}),U=new w(A,{content:g.selectedProvider==="openai"?"\u25CF":"\u25CB",fg:g.selectedProvider==="openai"?V.accent:V.textSecondary}),G=new w(A,{content:"OpenAI",fg:g.selectedProvider==="openai"?V.accent:V.textPrimary});j.add(U),j.add(G),q.add(j),q.add(new b(A,{height:2}));let Y=new w(A,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:V.textSecondary});q.add(Y)}function IH(A,q,g,E){let F=g.selectedProvider==="anthropic"?"Anthropic":"OpenAI",K=new w(A,{content:`Enter your ${F} API key:`,fg:V.textPrimary});q.add(K),q.add(new b(A,{height:1}));let Z=new b(A,{width:"100%",flexDirection:"row"}),j=new w(A,{content:"\u203A",fg:V.accent});Z.add(j);let U=new b(A,{width:1});Z.add(U),g.keyInput=new kZ(A,{flexGrow:1,placeholder:g.selectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:V.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 w(A,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:V.textSecondary,wrapMode:"word"});q.add(G),q.add(new b(A,{height:2}));let Y=new w(A,{content:"Enter to save, Esc to cancel",fg:V.textSecondary});q.add(Y),setTimeout(()=>{if(g.keyInput)g.keyInput.focus(),g.keyInput.value=""},50)}function TG(A,q){if(A.step!=="provider")return;A.selectedProvider=q>0?"openai":"anthropic"}function PM(A){if(A.step==="provider")A.step="key"}var IM={anthropic:{display:"platform.claude.com",full:"https://platform.claude.com/settings/keys"},openai:{display:"platform.openai.com",full:"https://platform.openai.com/api-keys"}};function xM(A){let q=new b(A,{id:"settings-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:V.border,backgroundColor:V.bg}),g=new w(A,{content:lA`${Tq("Settings")}`,fg:V.textSecondary});q.add(g);let E=new Cq(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:V.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:V.bg}}),F=new b(A,{width:"100%",flexDirection:"column",backgroundColor:V.bg});E.add(F);let K=hg(A,jM);return{selectedIndex:0,header:q,scroll:E,content:F,shortcutsBar:K}}function jF(A){let q=!!tA("anthropic"),g=!!tA("openai"),E=q||g,F=A==="anthropic"?WO:LO,K=Yq(),Z=[];if(Z.push({item:{type:"provider",provider:"anthropic",hasKey:q},enabled:!0}),Z.push({item:{type:"provider",provider:"openai",hasKey:g},enabled:!0}),E)for(let j of F)Z.push({item:{type:"model",modelId:j.id,modelName:j.name},enabled:!0});for(let j of CO){Z.push({item:{type:"category_header",label:j.label},enabled:!1});for(let U of j.settings){let G=K[U],Y=G!==Y6[U],M=o6[U];Z.push({item:{type:"filter_setting",key:U,value:G,isModified:Y},enabled:!0}),Z.push({item:{type:"setting_subtitle",text:M.description},enabled:!1})}}if(Z.push({item:{type:"telemetry",enabled:G6()},enabled:!0}),E)Z.push({item:{type:"action",action:"clear_keys"},enabled:!0});return Z}function PG(A,q,g){for(let U of q.content.getChildren())q.content.remove(U.id);let E=jF(g),F=FF(g),K=new w(A,{content:lA`${Tq("AI Features")}`,fg:V.textSecondary});q.content.add(K);for(let U=0;U<E.length;U++){let G=E[U];if(!G||G.item.type!=="provider")continue;let Y=U===q.selectedIndex,M=G.item.provider===g,Q=G.item.hasKey,$=G.item.provider==="anthropic"?"Anthropic":"OpenAI",X=new b(A,{flexDirection:"row",gap:1}),I=new w(A,{content:Y?"\u203A":" ",fg:V.accent});X.add(I);let N=new w(A,{content:M?"\u25CF":"\u25CB",fg:M?V.accent:V.textSecondary});X.add(N);let W=new w(A,{content:$,fg:Y?V.accent:V.textPrimary});if(X.add(W),!Q){let x=IM[G.item.provider].display,C=new w(A,{content:Y?`${x} (tab)`:x,fg:V.textTertiary});X.add(C)}q.content.add(X)}if(E.some((U)=>U.item.type==="model")){q.content.add(new b(A,{height:1}));let U=new w(A,{content:lA`${Tq("Model")}`,fg:V.textSecondary});q.content.add(U);for(let G=0;G<E.length;G++){let Y=E[G];if(!Y||Y.item.type!=="model")continue;let M=G===q.selectedIndex,Q=Y.item.modelId===F,$=new b(A,{flexDirection:"row",gap:1}),X=new w(A,{content:M?"\u203A":" ",fg:V.accent});$.add(X);let I=new w(A,{content:Q?"\u25CF":"\u25CB",fg:Q?V.accent:V.textSecondary});$.add(I);let N=new w(A,{content:Y.item.modelName,fg:M?V.accent:V.textPrimary});$.add(N),q.content.add($)}}q.content.add(new b(A,{height:1}));for(let U=0;U<E.length;U++){let G=E[U];if(!G)continue;if(G.item.type==="category_header"){q.content.add(new b(A,{height:1}));let Y=new w(A,{content:lA`${Tq(G.item.label)}`,fg:V.textSecondary});q.content.add(Y);continue}if(G.item.type==="filter_setting"){let Y=U===q.selectedIndex,M=o6[G.item.key],Q=fO(G.item.key,G.item.value),$=new b(A,{flexDirection:"row",gap:1}),X=new w(A,{content:Y?"\u203A":" ",fg:V.accent});$.add(X);let I=new w(A,{content:M.label,fg:Y?V.accent:V.textPrimary});$.add(I);let N=new w(A,{content:`[${Q}]`,fg:G.item.isModified?V.accent:V.textSecondary});if($.add(N),Y){let W=new w(A,{content:"\u2190 \u2192",fg:V.textTertiary});$.add(W)}q.content.add($)}if(G.item.type==="setting_subtitle"){let Y=new b(A,{flexDirection:"row",marginBottom:1}),M=new w(A,{content:" ",fg:V.textSecondary});Y.add(M);let Q=new w(A,{content:G.item.text,fg:V.textSecondary});Y.add(Q),q.content.add(Y)}}q.content.add(new b(A,{height:1}));let j=new w(A,{content:lA`${Tq("Telemetry")}`,fg:V.textSecondary});q.content.add(j);for(let U=0;U<E.length;U++){let G=E[U];if(!G||G.item.type!=="telemetry")continue;let Y=U===q.selectedIndex,M=G.item.enabled,Q=new b(A,{flexDirection:"row",gap:1}),$=new w(A,{content:Y?"\u203A":" ",fg:V.accent});Q.add($);let X=new w(A,{content:M?"\u25CF":"\u25CB",fg:M?V.accent:V.textSecondary});Q.add(X);let I=new w(A,{content:M?"Enabled":"Disabled",fg:Y?V.accent:V.textPrimary});Q.add(I);let N=new w(A,{content:"(private and anonymous)",fg:V.textTertiary});Q.add(N),q.content.add(Q)}q.content.add(new b(A,{height:1}));for(let U=0;U<E.length;U++){let G=E[U];if(!G||G.item.type!=="action")continue;let Y=U===q.selectedIndex,M="";switch(G.item.action){case"clear_keys":M="Clear All API Keys";break}let Q=new b(A,{flexDirection:"row",gap:1}),$=new w(A,{content:Y?"\u203A":" ",fg:V.accent});Q.add($);let X=new w(A,{content:`[${M}]`,fg:Y?V.accent:V.textPrimary});Q.add(X),q.content.add(Q)}}function IG(A,q,g){let E=jF(g),F=E.length-1,K=A.selectedIndex,Z=0,j=E.length;do if(K=Math.max(0,Math.min(F,K+q)),Z++,K===0||K===F||E[K]?.enabled)break;while(Z<j);if(E[K]?.enabled)A.selectedIndex=K}function RM(A,q){let E=jF(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"telemetry":return{type:"toggle_telemetry"};case"filter_setting":return{type:"adjust_setting",key:E.item.key,delta:o6[E.item.key].step};case"action":switch(E.item.action){case"clear_keys":return{type:"clear_keys"}}}return null}function xG(A,q,g){let F=jF(q)[A.selectedIndex];if(!F||!F.enabled)return null;if(F.item.type==="filter_setting"){let K=o6[F.item.key].step;return{type:"adjust_setting",key:F.item.key,delta:g>0?K:-K}}return null}function SM(A){return!1}function hM(A,q){let E=jF(q)[A.selectedIndex];if(!E)return null;if(E.item.type==="provider"&&!E.item.hasKey)return IM[E.item.provider].full;return null}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 P(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 RG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return RG=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 jg(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var UF=(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 J6({message:g,cause:UF(q)});let F=q;if(A===400)return new YF(A,F,g,E);if(A===401)return new QF(A,F,g,E);if(A===403)return new JF(A,F,g,E);if(A===404)return new OF(A,F,g,E);if(A===409)return new MF(A,F,g,E);if(A===422)return new $F(A,F,g,E);if(A===429)return new XF(A,F,g,E);if(A>=500)return new _F(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 J6 extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class GF extends J6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class YF extends NA{}class QF extends NA{}class JF extends NA{}class OF extends NA{}class MF extends NA{}class $F extends NA{}class XF extends NA{}class _F extends NA{}var RH=/^[a-z][a-z0-9+.-]*:/i,aM=(A)=>{return RH.test(A)},SG=(A)=>(SG=Array.isArray,SG(A)),hG=SG;function pZ(A){if(typeof A!=="object")return{};return A??{}}function zM(A){if(!A)return!0;for(let q in A)return!1;return!0}function BM(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var wM=(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 uZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var kM=(A)=>new Promise((q)=>setTimeout(q,A));var zg="0.71.2";var bM=()=>{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 hH=()=>{let A=SH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":zg,"X-Stainless-OS":DM(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":zg,"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":zg,"X-Stainless-OS":DM(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=aH();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":zg,"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":zg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function aH(){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"},DM=(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"},yM,vM=()=>{return yM??(yM=hH())};function mM(){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 aG(...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 lZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return aG({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 HF(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 fM(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 cM=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};function uM(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 VF(A){let q;return(dM??(q=new globalThis.TextEncoder,dM=q.encode.bind(q)))(A)}var pM;function zG(A){let q;return(pM??(q=new globalThis.TextDecoder,pM=q.decode.bind(q)))(A)}var rA,oA;class Bg{constructor(){rA.set(this,void 0),oA.set(this,void 0),f(this,rA,new Uint8Array,"f"),f(this,oA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?VF(A):A;f(this,rA,uM([P(this,rA,"f"),q]),"f");let g=[],E;while((E=wH(P(this,rA,"f"),P(this,oA,"f")))!=null){if(E.carriage&&P(this,oA,"f")==null){f(this,oA,E.index,"f");continue}if(P(this,oA,"f")!=null&&(E.index!==P(this,oA,"f")+1||E.carriage)){g.push(zG(P(this,rA,"f").subarray(0,P(this,oA,"f")-1))),f(this,rA,P(this,rA,"f").subarray(P(this,oA,"f")),"f"),f(this,oA,null,"f");continue}let F=P(this,oA,"f")!==null?E.preceding-1:E.preceding,K=zG(P(this,rA,"f").subarray(0,F));g.push(K),f(this,rA,P(this,rA,"f").subarray(E.index),"f"),f(this,oA,null,"f")}return g}flush(){if(!P(this,rA,"f").length)return[];return this.decode(`
102
+ `)}}rA=new WeakMap,oA=new WeakMap;Bg.NEWLINE_CHARS=new Set([`
103
+ `,"\r"]);Bg.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wH(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 lM(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 tZ={off:0,error:200,warn:300,info:400,debug:500},BG=(A,q,g)=>{if(!A)return;if(BM(tZ,A))return A;aA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(tZ))}`);return};function WF(){}function iZ(A,q,g){if(!q||tZ[A]>tZ[g])return WF;else return q[A].bind(q)}var kH={error:WF,warn:WF,info:WF,debug:WF},iM=new WeakMap;function aA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return kH;let E=iM.get(q);if(E&&E[0]===g)return E[1];let F={error:iZ("error",q,g),warn:iZ("warn",q,g),info:iZ("info",q,g),debug:iZ("debug",q,g)};return iM.set(q,[g,F]),F}var Ug=(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 LF;class eA{constructor(A,q,g){this.iterator=A,LF.set(this,void 0),this.controller=q,f(this,LF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?aA(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 CH(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,uZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(jg(j))return;throw j}finally{if(!Z)q.abort()}}return new eA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new Bg,j=HF(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(jg(j))return;throw j}finally{if(!Z)q.abort()}}return new eA(K,q,g)}[(LF=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 eA(()=>E(A),this.controller,P(this,LF,"f")),new eA(()=>E(q),this.controller,P(this,LF,"f"))]}toReadableStream(){let A=this,q;return aG({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=VF(JSON.stringify(E)+`
104
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*CH(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 tM,E=new Bg,F=HF(A.body);for await(let K of DH(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*DH(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"?VF(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=lM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class tM{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]=yH(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 yH(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(aA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller);return eA.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 wG(M,g)}return await g.text()})();return aA(A).debug(`[${E}] response parsed`,Ug({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function wG(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 NF;class O6 extends Promise{constructor(A,q,g=sZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,NF.set(this,void 0),f(this,NF,A,"f")}_thenUnwrap(A){return new O6(P(this,NF,"f"),this.responsePromise,async(q,g)=>wG(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(P(this,NF,"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)}}NF=new WeakMap;var nZ;class kG{constructor(A,q,g,E){nZ.set(this,void 0),f(this,nZ,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 P(this,nZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(nZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class rZ extends O6{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 Rq 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:{...pZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...pZ(this.options.query),after_id:A}}}}class TF 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:{...pZ(this.options.query),page:A}}}}var DG=()=>{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 M6(A,q,g){return DG(),new File(A,q??"unknown_file",g)}function PF(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 yG=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var AE=async(A,q)=>{return{...A,body:await mH(A.body,q)}},sM=new WeakMap;function vH(A){let q=typeof A==="function"?A:A.fetch,g=sM.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 sM.set(q,E),E}var mH=async(A,q)=>{if(!await vH(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])=>CG(g,E,F))),g},fH=(A)=>A instanceof Blob&&("name"in A);var CG=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,M6([await g.blob()],PF(g),E))}else if(yG(g))A.append(q,M6([await new Response(lZ(g)).blob()],PF(g)));else if(fH(g))A.append(q,M6([g],PF(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>CG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>CG(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 nM=(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",cH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&nM(A),dH=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function oZ(A,q,g){if(DG(),A=await A,q||(q=PF(A)),cH(A)){if(A instanceof File&&q==null&&g==null)return A;return M6([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(dH(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),M6(await bG(F),q,g)}let E=await bG(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 M6(E,q,g)}async function bG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(nM(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(yG(A))for await(let g of A)q.push(...await bG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${pH(A)}`)}return q}function pH(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 rM=Symbol.for("brand.privateNullableHeaders");function*lH(A){if(!A)return;if(rM 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(hG(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=hG(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 lH(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{[rM]:!0,values:q,nulls:g}};function eM(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var oM=Object.freeze(Object.create(null)),iH=(A=eM)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,Q)=>{if(/[?#]/.test(M))F=!0;let $=E[Q],X=(F?encodeURIComponent:A)(""+$);if(Q!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??oM)??oM)?.toString))X=$+"",K.push({start:Y.length+M.length,length:X.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(Q===E.length?"":X)},""),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((Q,$)=>{let X=" ".repeat($.start-Y),I="^".repeat($.length);return Y=$.start+$.length,Q+X+I},"");throw new t(`Path parameters result in path with invalid segments:
106
+ ${K.map((Q)=>Q.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=iH(eM);class IF extends $A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",Rq,{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",AE({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class xF 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",Rq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var eZ={"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 vG(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 mG(A,q,g)}function mG(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=nH(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 nH(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 rH=(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},qE=(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),qE(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),qE(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),qE(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),qE(A);break;case"delimiter":return A=A.slice(0,A.length-1),qE(A);break}return A},oH=(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},eH=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},Aj=(A)=>JSON.parse(eH(oH(qE(rH(A)))));var Qq,wg,gE,RF,qj,SF,hF,gj,aF,Gg,zF,Ej,Fj,$6,Kj,Zj,BF,fG,A9,jj,cG,dG,pG,q9,g9="__json_buf";function E9(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class wF{constructor(A,q){Qq.add(this),this.messages=[],this.receivedMessages=[],wg.set(this,void 0),gE.set(this,null),this.controller=new AbortController,RF.set(this,void 0),qj.set(this,()=>{}),SF.set(this,()=>{}),hF.set(this,void 0),gj.set(this,()=>{}),aF.set(this,()=>{}),Gg.set(this,{}),zF.set(this,!1),Ej.set(this,!1),Fj.set(this,!1),$6.set(this,!1),Kj.set(this,void 0),Zj.set(this,void 0),BF.set(this,void 0),jj.set(this,(g)=>{if(f(this,Ej,!0,"f"),jg(g))g=new bA;if(g instanceof bA)return f(this,Fj,!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,RF,new Promise((g,E)=>{f(this,qj,g,"f"),f(this,SF,E,"f")}),"f"),f(this,hF,new Promise((g,E)=>{f(this,gj,g,"f"),f(this,aF,E,"f")}),"f"),P(this,RF,"f").catch(()=>{}),P(this,hF,"f").catch(()=>{}),f(this,gE,A,"f"),f(this,BF,q?.logger??console,"f")}get response(){return P(this,Kj,"f")}get request_id(){return P(this,Zj,"f")}async withResponse(){f(this,$6,!0,"f");let A=await P(this,RF,"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 wF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new wF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return f(F,gE,{...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")},P(this,jj,"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{P(this,Qq,"m",cG).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)P(this,Qq,"m",dG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;P(this,Qq,"m",pG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,Kj,A,"f"),f(this,Zj,A?.headers.get("request-id"),"f"),P(this,qj,"f").call(this,A),this._emit("connect")}get ended(){return P(this,zF,"f")}get errored(){return P(this,Ej,"f")}get aborted(){return P(this,Fj,"f")}abort(){this.controller.abort()}on(A,q){return(P(this,Gg,"f")[A]||(P(this,Gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=P(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(P(this,Gg,"f")[A]||(P(this,Gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,$6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,$6,!0,"f"),await P(this,hF,"f")}get currentMessage(){return P(this,wg,"f")}async finalMessage(){return await this.done(),P(this,Qq,"m",fG).call(this)}async finalText(){return await this.done(),P(this,Qq,"m",A9).call(this)}_emit(A,...q){if(P(this,zF,"f"))return;if(A==="end")f(this,zF,!0,"f"),P(this,gj,"f").call(this);let g=P(this,Gg,"f")[A];if(g)P(this,Gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!P(this,$6,"f")&&!g?.length)Promise.reject(E);P(this,SF,"f").call(this,E),P(this,aF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!P(this,$6,"f")&&!g?.length)Promise.reject(E);P(this,SF,"f").call(this,E),P(this,aF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",P(this,Qq,"m",fG).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{P(this,Qq,"m",cG).call(this),this._connected(null);let F=eA.fromReadableStream(A,this.controller);for await(let K of F)P(this,Qq,"m",dG).call(this,K);if(F.controller.signal?.aborted)throw new bA;P(this,Qq,"m",pG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(wg=new WeakMap,gE=new WeakMap,RF=new WeakMap,qj=new WeakMap,SF=new WeakMap,hF=new WeakMap,gj=new WeakMap,aF=new WeakMap,Gg=new WeakMap,zF=new WeakMap,Ej=new WeakMap,Fj=new WeakMap,$6=new WeakMap,Kj=new WeakMap,Zj=new WeakMap,BF=new WeakMap,jj=new WeakMap,Qq=new WeakSet,fG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},A9=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(" ")},cG=function A(){if(this.ended)return;f(this,wg,void 0,"f")},dG=function A(q){if(this.ended)return;let g=P(this,Qq,"m",q9).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(E9(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:F9(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(vG(g,P(this,gE,"f"),{logger:P(this,BF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,wg,g,"f");break}case"content_block_start":case"message_delta":break}},pG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=P(this,wg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,wg,void 0,"f"),vG(q,P(this,gE,"f"),{logger:P(this,BF,"f")})},q9=function A(q){let g=P(this,wg,"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&&E9(E)){let F=E[g9]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,g9,{value:F,enumerable:!1,writable:!0}),F)try{K.input=Aj(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}`);P(this,jj,"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:F9(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 eA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function F9(A){}var K9=1e5,Z9=`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 kF,EE,X6,TA,CF,Aq,Yg,kg,DF,j9,uG;function U9(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class yF{constructor(A,q,g){kF.add(this),this.client=A,EE.set(this,!1),X6.set(this,!1),TA.set(this,void 0),CF.set(this,void 0),Aq.set(this,void 0),Yg.set(this,void 0),kg.set(this,void 0),DF.set(this,0),f(this,TA,{params:{...q,messages:structuredClone(q.messages)}},"f"),f(this,CF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),f(this,kg,U9(),"f")}async*[(EE=new WeakMap,X6=new WeakMap,TA=new WeakMap,CF=new WeakMap,Aq=new WeakMap,Yg=new WeakMap,kg=new WeakMap,DF=new WeakMap,kF=new WeakSet,j9=async function A(){let q=P(this,TA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(P(this,Aq,"f")!==void 0)try{let U=await P(this,Aq,"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??K9;if(g<E)return!1;let F=q.model??P(this,TA,"f").params.model,K=q.summaryPrompt??Z9,Z=P(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:P(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 P(this,TA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(P(this,EE,"f"))throw new t("Cannot iterate over a consumed stream");f(this,EE,!0,"f"),f(this,X6,!0,"f"),f(this,Yg,void 0,"f");try{while(!0){let q;try{if(P(this,TA,"f").params.max_iterations&&P(this,DF,"f")>=P(this,TA,"f").params.max_iterations)break;f(this,X6,!1,"f"),f(this,Yg,void 0,"f"),f(this,DF,(A=P(this,DF,"f"),A++,A),"f"),f(this,Aq,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=P(this,TA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},P(this,CF,"f")),f(this,Aq,q.finalMessage(),"f"),P(this,Aq,"f").catch(()=>{}),yield q;else f(this,Aq,this.client.beta.messages.create({...F,stream:!1},P(this,CF,"f")),"f"),yield P(this,Aq,"f");if(!await P(this,kF,"m",j9).call(this)){if(!P(this,X6,"f")){let{role:j,content:U}=await P(this,Aq,"f");P(this,TA,"f").params.messages.push({role:j,content:U})}let Z=await P(this,kF,"m",uG).call(this,P(this,TA,"f").params.messages.at(-1));if(Z)P(this,TA,"f").params.messages.push(Z);else if(!P(this,X6,"f"))break}}finally{if(q)q.abort()}}if(!P(this,Aq,"f"))throw new t("ToolRunner concluded without a message from the server");P(this,kg,"f").resolve(await P(this,Aq,"f"))}catch(q){throw f(this,EE,!1,"f"),P(this,kg,"f").promise.catch(()=>{}),P(this,kg,"f").reject(q),f(this,kg,U9(),"f"),q}}setMessagesParams(A){if(typeof A==="function")P(this,TA,"f").params=A(P(this,TA,"f").params);else P(this,TA,"f").params=A;f(this,X6,!0,"f"),f(this,Yg,void 0,"f")}async generateToolResponse(){let A=await P(this,Aq,"f")??this.params.messages.at(-1);if(!A)return null;return P(this,kF,"m",uG).call(this,A)}done(){return P(this,kg,"f").promise}async runUntilDone(){if(!P(this,EE,"f"))for await(let A of this);return this.done()}get params(){return P(this,TA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}uG=async function A(q){if(P(this,Yg,"f")!==void 0)return P(this,Yg,"f");return f(this,Yg,A1(P(this,TA,"f").params,q),"f"),P(this,Yg,"f")};async function A1(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 FE{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new Bg;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 FE(HF(A.body),q)}}class bF 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",Rq,{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)=>FE.fromResponse(Z.response,Z.controller))}}var G9={"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 _6 extends $A{constructor(){super(...arguments);this.batches=new bF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in G9)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${G9[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=eZ[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)=>mG(g,A,{logger:this._client.logger??console}))}stream(A,q){return wF.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 yF(this._client,A,q)}}_6.Batches=bF;_6.BetaToolRunner=yF;class vF extends $A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,AE({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`,TF,{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 KE extends $A{constructor(){super(...arguments);this.versions=new vF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",AE({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",TF,{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])})}}KE.Versions=vF;class Dq extends $A{constructor(){super(...arguments);this.models=new xF(this._client),this.messages=new _6(this._client),this.files=new IF(this._client),this.skills=new KE(this._client)}}Dq.Models=xF;Dq.Messages=_6;Dq.Files=IF;Dq.Skills=KE;class ZE 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,Cg,mF,Uj,fF,cF,Gj,dF,Qg,pF,Yj,Qj,H6,Jj,Oj,lG,Y9,iG,tG,sG,nG,Q9,J9="__json_buf";function O9(A){return A.type==="tool_use"||A.type==="server_tool_use"}class uF{constructor(){Jq.add(this),this.messages=[],this.receivedMessages=[],Cg.set(this,void 0),this.controller=new AbortController,mF.set(this,void 0),Uj.set(this,()=>{}),fF.set(this,()=>{}),cF.set(this,void 0),Gj.set(this,()=>{}),dF.set(this,()=>{}),Qg.set(this,{}),pF.set(this,!1),Yj.set(this,!1),Qj.set(this,!1),H6.set(this,!1),Jj.set(this,void 0),Oj.set(this,void 0),iG.set(this,(A)=>{if(f(this,Yj,!0,"f"),jg(A))A=new bA;if(A instanceof bA)return f(this,Qj,!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,mF,new Promise((A,q)=>{f(this,Uj,A,"f"),f(this,fF,q,"f")}),"f"),f(this,cF,new Promise((A,q)=>{f(this,Gj,A,"f"),f(this,dF,q,"f")}),"f"),P(this,mF,"f").catch(()=>{}),P(this,cF,"f").catch(()=>{})}get response(){return P(this,Jj,"f")}get request_id(){return P(this,Oj,"f")}async withResponse(){f(this,H6,!0,"f");let A=await P(this,mF,"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 uF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new uF;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")},P(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{P(this,Jq,"m",tG).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)P(this,Jq,"m",sG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;P(this,Jq,"m",nG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,Jj,A,"f"),f(this,Oj,A?.headers.get("request-id"),"f"),P(this,Uj,"f").call(this,A),this._emit("connect")}get ended(){return P(this,pF,"f")}get errored(){return P(this,Yj,"f")}get aborted(){return P(this,Qj,"f")}abort(){this.controller.abort()}on(A,q){return(P(this,Qg,"f")[A]||(P(this,Qg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=P(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(P(this,Qg,"f")[A]||(P(this,Qg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,H6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,H6,!0,"f"),await P(this,cF,"f")}get currentMessage(){return P(this,Cg,"f")}async finalMessage(){return await this.done(),P(this,Jq,"m",lG).call(this)}async finalText(){return await this.done(),P(this,Jq,"m",Y9).call(this)}_emit(A,...q){if(P(this,pF,"f"))return;if(A==="end")f(this,pF,!0,"f"),P(this,Gj,"f").call(this);let g=P(this,Qg,"f")[A];if(g)P(this,Qg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!P(this,H6,"f")&&!g?.length)Promise.reject(E);P(this,fF,"f").call(this,E),P(this,dF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!P(this,H6,"f")&&!g?.length)Promise.reject(E);P(this,fF,"f").call(this,E),P(this,dF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",P(this,Jq,"m",lG).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{P(this,Jq,"m",tG).call(this),this._connected(null);let F=eA.fromReadableStream(A,this.controller);for await(let K of F)P(this,Jq,"m",sG).call(this,K);if(F.controller.signal?.aborted)throw new bA;P(this,Jq,"m",nG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Cg=new WeakMap,mF=new WeakMap,Uj=new WeakMap,fF=new WeakMap,cF=new WeakMap,Gj=new WeakMap,dF=new WeakMap,Qg=new WeakMap,pF=new WeakMap,Yj=new WeakMap,Qj=new WeakMap,H6=new WeakMap,Jj=new WeakMap,Oj=new WeakMap,iG=new WeakMap,Jq=new WeakSet,lG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},Y9=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(" ")},tG=function A(){if(this.ended)return;f(this,Cg,void 0,"f")},sG=function A(q){if(this.ended)return;let g=P(this,Jq,"m",Q9).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(O9(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:M9(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,Cg,g,"f");break}case"content_block_start":case"message_delta":break}},nG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=P(this,Cg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Cg,void 0,"f"),q},Q9=function A(q){let g=P(this,Cg,"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&&O9(E)){let F=E[J9]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,J9,{value:F,enumerable:!1,writable:!0}),F)K.input=Aj(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:M9(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 eA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function M9(A){}class lF 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",Rq,{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)=>FE.fromResponse(F.response,F.controller))}}class V6 extends $A{constructor(){super(...arguments);this.batches=new lF(this._client)}create(A,q){if(A.model in $9)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${$9[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=eZ[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 uF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var $9={"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"};V6.Batches=lF;class jE 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",Rq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var iF=(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 rG,oG,Mj,X9,_9="\\n\\nHuman:",H9="\\n\\nAssistant:";class XA{constructor({baseURL:A=iF("ANTHROPIC_BASE_URL"),apiKey:q=iF("ANTHROPIC_API_KEY")??null,authToken:g=iF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){rG.add(this),Mj.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&bM())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:
145
- ${K.map((O)=>O.error).join(`
140
+ `);this.baseURL=F.baseURL,this.timeout=F.timeout??oG.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=BG(F.logLevel,"ClientOptions.logLevel",this)??BG(iF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??mM(),f(this,Mj,cM,"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 ${zg}`}defaultIdempotencyKey(){return`stainless-node-retry-${RG()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!P(this,rG,"m",X9).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(!zM(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 O6(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(aA(this).debug(`[${U}] sending request`,Ug({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new bA;let M=new AbortController,Q=await this.fetchWithTimeout(Z,K,j,M).catch(UF),$=Date.now();if(Q instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new bA;let W=jg(Q)||/timed? ?out/i.test(String(Q)+("cause"in Q?String(Q.cause):""));if(q)return aA(this).info(`[${U}] connection ${W?"timed out":"failed"} - ${N}`),aA(this).debug(`[${U}] connection ${W?"timed out":"failed"} (${N})`,Ug({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:Q.message})),this.retryRequest(E,q,g??U);if(aA(this).info(`[${U}] connection ${W?"timed out":"failed"} - error; no more retries left`),aA(this).debug(`[${U}] connection ${W?"timed out":"failed"} (error; no more retries left)`,Ug({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:Q.message})),W)throw new GF;throw new J6({cause:Q})}let X=[...Q.headers.entries()].filter(([N])=>N==="request-id").map(([N,W])=>", "+N+": "+JSON.stringify(W)).join(""),I=`[${U}${G}${X}] ${K.method} ${Z} ${Q.ok?"succeeded":"failed"} with status ${Q.status} in ${$-Y}ms`;if(!Q.ok){let N=await this.shouldRetry(Q);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await fM(Q.body),aA(this).info(`${I} - ${p}`),aA(this).debug(`[${U}] response error (${p})`,Ug({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,Q.headers)}let W=N?"error; no more retries left":"error; not retryable";aA(this).info(`${I} - ${W}`);let x=await Q.text().catch((p)=>UF(p).message),C=uZ(x),D=C?void 0:x;throw aA(this).debug(`[${U}] response error (${W})`,Ug({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,message:D,durationMs:Date.now()-Y})),this.makeStatusError(Q.status,C,D,Q.headers)}return aA(this).info(I),aA(this).debug(`[${U}] response start`,Ug({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,durationMs:$-Y})),{response:Q,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 rZ(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 kM(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)wM("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))}:{},...vM(),...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:lZ(A)};else return P(this,Mj,"f").call(this,{body:A,headers:g})}}oG=XA,Mj=new WeakMap,rG=new WeakSet,X9=function A(){return this.baseURL!=="https://api.anthropic.com"};XA.Anthropic=oG;XA.HUMAN_PROMPT=_9;XA.AI_PROMPT=H9;XA.DEFAULT_TIMEOUT=600000;XA.AnthropicError=t;XA.APIError=NA;XA.APIConnectionError=J6;XA.APIConnectionTimeoutError=GF;XA.APIUserAbortError=bA;XA.NotFoundError=OF;XA.ConflictError=MF;XA.RateLimitError=XF;XA.BadRequestError=YF;XA.AuthenticationError=QF;XA.InternalServerError=_F;XA.PermissionDeniedError=JF;XA.UnprocessableEntityError=$F;XA.toFile=oZ;class qq extends XA{constructor(){super(...arguments);this.completions=new ZE(this),this.messages=new V6(this),this.models=new jE(this),this.beta=new Dq(this)}}qq.Completions=ZE;qq.Messages=V6;qq.Models=jE;qq.Beta=Dq;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 eG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return eG=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 tF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var sF=(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 WA extends d{constructor(A,q,g,E){super(`${WA.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 W6({message:g,cause:sF(q)});let F=q?.error;if(A===400)return new nF(A,F,g,E);if(A===401)return new rF(A,F,g,E);if(A===403)return new oF(A,F,g,E);if(A===404)return new eF(A,F,g,E);if(A===409)return new AK(A,F,g,E);if(A===422)return new qK(A,F,g,E);if(A===429)return new gK(A,F,g,E);if(A>=500)return new EK(A,F,g,E);return new WA(A,F,g,E)}}class PA extends WA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class W6 extends WA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class L6 extends W6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class nF extends WA{}class rF extends WA{}class oF extends WA{}class eF extends WA{}class AK extends WA{}class qK extends WA{}class gK extends WA{}class EK extends WA{}class FK extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class KK extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Jg extends Error{constructor(A){super(A)}}var U1=/^[a-z][a-z0-9+.-]*:/i,V9=(A)=>{return U1.test(A)},vA=(A)=>(vA=Array.isArray,vA(A)),AY=vA;function qY(A){if(typeof A!=="object")return{};return A??{}}function W9(A){if(!A)return!0;for(let q in A)return!1;return!0}function L9(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function ZK(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var N9=(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 T9=(A)=>{try{return JSON.parse(A)}catch(q){return}};var yq=(A)=>new Promise((q)=>setTimeout(q,A));var Dg="6.16.0";var R9=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function G1(){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 Y1=()=>{let A=G1();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dg,"X-Stainless-OS":I9(Deno.build.os),"X-Stainless-Arch":P9(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":Dg,"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":Dg,"X-Stainless-OS":I9(globalThis.process.platform??"unknown"),"X-Stainless-Arch":P9(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=Q1();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Dg,"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":Dg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function Q1(){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 P9=(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"},I9=(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"},x9,S9=()=>{return x9??(x9=Y1())};function h9(){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 gY(...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 $j(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return gY({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 EY(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 a9(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 z9=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var Xj="RFC3986",FY=(A)=>String(A),_j={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:FY},KY="RFC1738";var Hj=(A,q)=>(Hj=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),Hj(A,q)),bq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var ZY=1024,B9=(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+=ZY){let U=K.length>=ZY?K.slice(j,j+ZY):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===KY&&(M===40||M===41)){G[G.length]=U.charAt(Y);continue}if(M<128){G[G.length]=bq[M];continue}if(M<2048){G[G.length]=bq[192|M>>6]+bq[128|M&63];continue}if(M<55296||M>=57344){G[G.length]=bq[224|M>>12]+bq[128|M>>6&63]+bq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),G[G.length]=bq[240|M>>18]+bq[128|M>>12&63]+bq[128|M>>6&63]+bq[128|M&63]}Z+=G.join("")}return Z};function w9(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function jY(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 C9={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},D9=function(A,q){Array.prototype.push.apply(A,vA(q)?q:[q])},k9,IA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:B9,encodeValuesOnly:!1,format:Xj,formatter:FY,indices:!1,serializeDate(A){return(k9??(k9=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function M1(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var UY={};function y9(A,q,g,E,F,K,Z,j,U,G,Y,M,Q,$,X,I,N,W){let x=A,C=W,D=0,i=!1;while((C=C.get(UY))!==void 0&&!i){let c=C.get(A);if(D+=1,typeof c!=="undefined")if(c===D)throw new RangeError("Cyclic object value");else i=!0;if(typeof C.get(UY)==="undefined")D=0}if(typeof G==="function")x=G(q,x);else if(x instanceof Date)x=Q?.(x);else if(g==="comma"&&vA(x))x=jY(x,function(c){if(c instanceof Date)return Q?.(c);return c});if(x===null){if(K)return U&&!I?U(q,IA.encoder,N,"key",$):q;x=""}if(M1(x)||w9(x)){if(U){let c=I?q:U(q,IA.encoder,N,"key",$);return[X?.(c)+"="+X?.(U(x,IA.encoder,N,"value",$))]}return[X?.(q)+"="+X?.(String(x))]}let p=[];if(typeof x==="undefined")return p;let h;if(g==="comma"&&vA(x)){if(I&&U)x=jY(x,U);h=[{value:x.length>0?x.join(",")||null:void 0}]}else if(vA(G))h=G;else{let c=Object.keys(x);h=Y?c.sort(Y):c}let z=j?String(q).replace(/\./g,"%2E"):String(q),r=E&&vA(x)&&x.length===1?z+"[]":z;if(F&&vA(x)&&x.length===0)return r+"[]";for(let c=0;c<h.length;++c){let gA=h[c],KA=typeof gA==="object"&&typeof gA.value!=="undefined"?gA.value:x[gA];if(Z&&KA===null)continue;let QA=M&&j?gA.replace(/\./g,"%2E"):gA,RA=vA(x)?typeof g==="function"?g(r,QA):r:r+(M?"."+QA:"["+QA+"]");W.set(A,D);let mA=new WeakMap;mA.set(UY,W),D9(p,y9(KA,RA,g,E,F,K,Z,j,g==="comma"&&I&&vA(x)?null:U,G,Y,M,Q,$,X,I,N,mA))}return p}function $1(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=Xj;if(typeof A.format!=="undefined"){if(!Hj(_j,A.format))throw new TypeError("Unknown format option provided.");g=A.format}let E=_j[g],F=IA.filter;if(typeof A.filter==="function"||vA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in C9)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 GY(A,q={}){let g=A,E=$1(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=C9[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 Q=0;Q<F.length;++Q){let $=F[Q];if(E.skipNulls&&g[$]===null)continue;D9(Z,y9(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 m9(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 b9;function UE(A){let q;return(b9??(q=new globalThis.TextEncoder,b9=q.encode.bind(q)))(A)}var v9;function YY(A){let q;return(v9??(q=new globalThis.TextDecoder,v9=q.decode.bind(q)))(A)}var gq,Eq;class GE{constructor(){gq.set(this,void 0),Eq.set(this,void 0),s(this,gq,new Uint8Array,"f"),s(this,Eq,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?UE(A):A;s(this,gq,m9([L(this,gq,"f"),q]),"f");let g=[],E;while((E=_1(L(this,gq,"f"),L(this,Eq,"f")))!=null){if(E.carriage&&L(this,Eq,"f")==null){s(this,Eq,E.index,"f");continue}if(L(this,Eq,"f")!=null&&(E.index!==L(this,Eq,"f")+1||E.carriage)){g.push(YY(L(this,gq,"f").subarray(0,L(this,Eq,"f")-1))),s(this,gq,L(this,gq,"f").subarray(L(this,Eq,"f")),"f"),s(this,Eq,null,"f");continue}let F=L(this,Eq,"f")!==null?E.preceding-1:E.preceding,K=YY(L(this,gq,"f").subarray(0,F));g.push(K),s(this,gq,L(this,gq,"f").subarray(E.index),"f"),s(this,Eq,null,"f")}return g}flush(){if(!L(this,gq,"f").length)return[];return this.decode(`
141
+ `)}}gq=new WeakMap,Eq=new WeakMap;GE.NEWLINE_CHARS=new Set([`
142
+ `,"\r"]);GE.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function _1(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 f9(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 Wj={off:0,error:200,warn:300,info:400,debug:500},QY=(A,q,g)=>{if(!A)return;if(L9(Wj,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(Wj))}`);return};function jK(){}function Vj(A,q,g){if(!q||Wj[A]>Wj[g])return jK;else return q[A].bind(q)}var H1={error:jK,warn:jK,info:jK,debug:jK},c9=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return H1;let E=c9.get(q);if(E&&E[0]===g)return E[1];let F={error:Vj("error",q,g),warn:Vj("warn",q,g),info:Vj("info",q,g),debug:Vj("debug",q,g)};return c9.set(q,[g,F]),F}var Og=(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 UK;class Fq{constructor(A,q,g){this.iterator=A,UK.set(this,void 0),this.controller=q,s(this,UK,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 V1(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 WA(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 WA(void 0,U.error,U.message,void 0);yield{event:j.event,data:U}}}Z=!0}catch(j){if(tF(j))return;throw j}finally{if(!Z)q.abort()}}return new Fq(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new GE,j=EY(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(tF(j))return;throw j}finally{if(!Z)q.abort()}}return new Fq(K,q,g)}[(UK=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 Fq(()=>E(A),this.controller,L(this,UK,"f")),new Fq(()=>E(q),this.controller,L(this,UK,"f"))]}toReadableStream(){let A=this,q;return gY({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=UE(JSON.stringify(E)+`
143
+ `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*V1(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 d9,E=new GE,F=EY(A.body);for await(let K of W1(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*W1(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"?UE(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=f9(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class d9{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]=L1(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 L1(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 Lj(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 Fq.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 JY(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Og({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function JY(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 GK;class N6 extends Promise{constructor(A,q,g=Lj){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,GK.set(this,void 0),s(this,GK,A,"f")}_thenUnwrap(A){return new N6(L(this,GK,"f"),this.responsePromise,async(q,g)=>JY(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,GK,"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)}}GK=new WeakMap;var Nj;class Tj{constructor(A,q,g,E){Nj.set(this,void 0),s(this,Nj,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 L(this,Nj,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(Nj=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class Pj extends N6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await Lj(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Mg extends Tj{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 Tj{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:{...qY(this.options.query),after:q}}}}class yg extends Tj{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:{...qY(this.options.query),after:A}}}}var $Y=()=>{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 YE(A,q,g){return $Y(),new File(A,q??"unknown_file",g)}function YK(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 Ij=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",XY=async(A,q)=>{if(!OY(A.body))return A;return{...A,body:await u9(A.body,q)}},Kq=async(A,q)=>{return{...A,body:await u9(A.body,q)}},p9=new WeakMap;function T1(A){let q=typeof A==="function"?A:A.fetch,g=p9.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 p9.set(q,E),E}var u9=async(A,q)=>{if(!await T1(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])=>MY(g,E,F))),g},l9=(A)=>A instanceof Blob&&("name"in A),P1=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Ij(A)||l9(A)),OY=(A)=>{if(P1(A))return!0;if(Array.isArray(A))return A.some(OY);if(A&&typeof A==="object"){for(let q in A)if(OY(A[q]))return!0}return!1},MY=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,YE([await g.blob()],YK(g)));else if(Ij(g))A.append(q,YE([await new Response($j(g)).blob()],YK(g)));else if(l9(g))A.append(q,g,YK(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>MY(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>MY(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 i9=(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",I1=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&i9(A),x1=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function xj(A,q,g){if($Y(),A=await A,I1(A)){if(A instanceof File)return A;return YE([await A.arrayBuffer()],A.name)}if(x1(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),YE(await _Y(F),q,g)}let E=await _Y(A);if(q||(q=YK(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 YE(E,q,g)}async function _Y(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(i9(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(Ij(A))for await(let g of A)q.push(...await _Y(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${R1(A)}`)}return q}function R1(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class a{constructor(A){this._client=A}}function s9(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var t9=Object.freeze(Object.create(null)),h1=(A=s9)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,Q)=>{if(/[?#]/.test(M))F=!0;let $=E[Q],X=(F?encodeURIComponent:A)(""+$);if(Q!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??t9)??t9)?.toString))X=$+"",K.push({start:Y.length+M.length,length:X.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(Q===E.length?"":X)},""),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((Q,$)=>{let X=" ".repeat($.start-Y),I="^".repeat($.length);return Y=$.start+$.length,Q+X+I},"");throw new d(`Path parameters result in path with invalid segments:
145
+ ${K.map((Q)=>Q.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=h1(s9);class QE extends a{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 JK(A){return A?.$brand==="auto-parseable-response-format"}function T6(A){return A?.$brand==="auto-parseable-tool"}function n9(A,q){if(!q||!HY(q))return{...A,choices:A.choices.map((g)=>{return o9(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return OK(A,q)}function OK(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new FK;if(E.finish_reason==="content_filter")throw new KK;return o9(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>w1(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?B1(q,E.message.content):null}}});return{...A,choices:g}}function B1(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 w1(A,q){let g=A.tools?.find((E)=>QK(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:T6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function r9(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)&&(T6(g)||g?.function.strict||!1)}function HY(A){if(JK(A.response_format))return!0;return A.tools?.some((q)=>T6(q)||q.type==="function"&&q.function.strict===!0)??!1}function o9(A){for(let q of A||[])if(q.type!=="function")throw new d(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function e9(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 JE=(A)=>{return A?.role==="assistant"},VY=(A)=>{return A?.role==="tool"};var WY,Rj,Sj,MK,$K,hj,XK,$g,_K,aj,zj,OE,A$;class P6{constructor(){WY.add(this),this.controller=new AbortController,Rj.set(this,void 0),Sj.set(this,()=>{}),MK.set(this,()=>{}),$K.set(this,void 0),hj.set(this,()=>{}),XK.set(this,()=>{}),$g.set(this,{}),_K.set(this,!1),aj.set(this,!1),zj.set(this,!1),OE.set(this,!1),s(this,Rj,new Promise((A,q)=>{s(this,Sj,A,"f"),s(this,MK,q,"f")}),"f"),s(this,$K,new Promise((A,q)=>{s(this,hj,A,"f"),s(this,XK,q,"f")}),"f"),L(this,Rj,"f").catch(()=>{}),L(this,$K,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},L(this,WY,"m",A$).bind(this))},0)}_connected(){if(this.ended)return;L(this,Sj,"f").call(this),this._emit("connect")}get ended(){return L(this,_K,"f")}get errored(){return L(this,aj,"f")}get aborted(){return L(this,zj,"f")}abort(){this.controller.abort()}on(A,q){return(L(this,$g,"f")[A]||(L(this,$g,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=L(this,$g,"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,$g,"f")[A]||(L(this,$g,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(s(this,OE,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){s(this,OE,!0,"f"),await L(this,$K,"f")}_emit(A,...q){if(L(this,_K,"f"))return;if(A==="end")s(this,_K,!0,"f"),L(this,hj,"f").call(this);let g=L(this,$g,"f")[A];if(g)L(this,$g,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!L(this,OE,"f")&&!g?.length)Promise.reject(E);L(this,MK,"f").call(this,E),L(this,XK,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!L(this,OE,"f")&&!g?.length)Promise.reject(E);L(this,MK,"f").call(this,E),L(this,XK,"f").call(this,E),this._emit("end")}}_emitFinal(){}}Rj=new WeakMap,Sj=new WeakMap,MK=new WeakMap,$K=new WeakMap,hj=new WeakMap,XK=new WeakMap,$g=new WeakMap,_K=new WeakMap,aj=new WeakMap,zj=new WeakMap,OE=new WeakMap,WY=new WeakSet,A$=function A(q){if(s(this,aj,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new PA;if(q instanceof PA)return s(this,zj,!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 q$(A){return typeof A.parse==="function"}var pA,LY,Bj,NY,TY,PY,g$,E$,k1=10;class HK extends P6{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),VY(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(JE(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(),L(this,pA,"m",LY).call(this)}async finalMessage(){return await this.done(),L(this,pA,"m",Bj).call(this)}async finalFunctionToolCall(){return await this.done(),L(this,pA,"m",NY).call(this)}async finalFunctionToolCallResult(){return await this.done(),L(this,pA,"m",TY).call(this)}async totalUsage(){return await this.done(),L(this,pA,"m",PY).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,pA,"m",Bj).call(this);if(q)this._emit("finalMessage",q);let g=L(this,pA,"m",LY).call(this);if(g)this._emit("finalContent",g);let E=L(this,pA,"m",NY).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=L(this,pA,"m",TY).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",L(this,pA,"m",PY).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,pA,"m",g$).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(OK(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=k1}=g||{},G=q.tools.map((Q)=>{if(T6(Q)){if(!Q.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:Q.$callback,name:Q.function.name,description:Q.function.description||"",parameters:Q.function.parameters,parse:Q.$parseRaw,strict:!0}}}return Q}),Y={};for(let Q of G)if(Q.type==="function")Y[Q.function.name||Q.function.function.name]=Q.function;let M="tools"in q?G.map((Q)=>Q.type==="function"?{type:"function",function:{name:Q.function.name||Q.function.function.name,parameters:Q.function.parameters,description:Q.function.description,strict:Q.function.strict}}:Q):void 0;for(let Q of q.messages)this._addMessage(Q,!1);for(let Q=0;Q<U;++Q){let X=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!X)throw new d("missing message in ChatCompletion response");if(!X.tool_calls?.length)return;for(let I of X.tool_calls){if(I.type!=="function")continue;let N=I.id,{name:W,arguments:x}=I.function,C=Y[W];if(!C){let h=`Invalid tool_call: ${JSON.stringify(W)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:h});continue}else if(j&&j!==W){let h=`Invalid tool_call: ${JSON.stringify(W)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:h});continue}let D;try{D=q$(C)?await C.parse(x):x}catch(h){let z=h instanceof Error?h.message:String(h);this._addMessage({role:"tool",tool_call_id:N,content:z});continue}let i=await C.function(D,this),p=L(this,pA,"m",E$).call(this,i);if(this._addMessage({role:"tool",tool_call_id:N,content:p}),j)return}}return}}pA=new WeakSet,LY=function A(){return L(this,pA,"m",Bj).call(this).content??null},Bj=function A(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(JE(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},NY=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(JE(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},TY=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(VY(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},PY=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},g$=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.")},E$=function A(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class VK extends HK{static runTools(A,q,g){let E=new VK,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),JE(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 F$ extends Error{}class K$ extends Error{}function C1(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 D1(A.trim(),q)}var D1=(A,q)=>{let g=A.length,E=0,F=(Q)=>{throw new F$(`${Q} at position ${E}`)},K=(Q)=>{throw new K$(`${Q} 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 Q=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(Q,++E-Number($)))}catch(X){K(String(X))}else if(zA.STR&q)try{return JSON.parse(A.substring(Q,E-Number($))+'"')}catch(X){return JSON.parse(A.substring(Q,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let Q={};try{while(A[E]!=="}"){if(M(),E>=g&&zA.OBJ&q)return Q;let $=j();M(),E++;try{let X=Z();Object.defineProperty(Q,$,{value:X,writable:!0,enumerable:!0,configurable:!0})}catch(X){if(zA.OBJ&q)return Q;else throw X}if(M(),A[E]===",")E++}}catch($){if(zA.OBJ&q)return Q;else F("Expected '}' at end of object")}return E++,Q},G=()=>{E++;let Q=[];try{while(A[E]!=="]")if(Q.push(Z()),M(),A[E]===",")E++}catch($){if(zA.ARR&q)return Q;F("Expected ']' at end of array")}return E++,Q},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(X){}K(String($))}}let Q=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(Q,E))}catch($){if(A.substring(Q,E)==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(Q,A.lastIndexOf("e")))}catch(X){K(String(X))}}},M=()=>{while(E<g&&`
149
+ \r\t`.includes(A[E]))E++};return Z()},IY=(A)=>C1(A,zA.ALL^zA.NUM);var xA,Xg,ME,bg,xY,wj,RY,SY,hY,kj,aY,Z$;class vg extends HK{constructor(A){super();xA.add(this),Xg.set(this,void 0),ME.set(this,void 0),bg.set(this,void 0),s(this,Xg,A,"f"),s(this,ME,[],"f")}get currentChatCompletionSnapshot(){return L(this,bg,"f")}static fromReadableStream(A){let q=new vg(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new vg(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,xA,"m",xY).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,xA,"m",RY).call(this,K);if(F.controller.signal?.aborted)throw new PA;return this._addChatCompletion(L(this,xA,"m",kj).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,xA,"m",xY).call(this),this._connected();let E=Fq.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(L(this,xA,"m",kj).call(this));L(this,xA,"m",RY).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new PA;return this._addChatCompletion(L(this,xA,"m",kj).call(this))}[(Xg=new WeakMap,ME=new WeakMap,bg=new WeakMap,xA=new WeakSet,xY=function A(){if(this.ended)return;s(this,bg,void 0,"f")},wj=function A(q){let g=L(this,ME,"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,ME,"f")[q.index]=g,g},RY=function A(q){if(this.ended)return;let g=L(this,xA,"m",Z$).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,xA,"m",wj).call(this,F);if(F.finish_reason){if(L(this,xA,"m",hY).call(this,F),K.current_tool_call_index!=null)L(this,xA,"m",SY).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,xA,"m",hY).call(this,F),K.current_tool_call_index!=null)L(this,xA,"m",SY).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 U$(j?.type)}}},SY=function A(q,g){if(L(this,xA,"m",wj).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,Xg,"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:T6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else U$(F.type)},hY=function A(q){let g=L(this,xA,"m",wj).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=L(this,xA,"m",aY).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})},kj=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=L(this,bg,"f");if(!q)throw new d("request ended without sending any chunks");return s(this,bg,void 0,"f"),s(this,ME,[],"f"),y1(q,L(this,Xg,"f"))},aY=function A(){let q=L(this,Xg,"f")?.response_format;if(JK(q))return q;return null},Z$=function A(q){var g,E,F,K;let Z=L(this,bg,"f"),{choices:j,...U}=q;if(!Z)Z=s(this,bg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:G,finish_reason:Y,index:M,logprobs:Q=null,...$}of q.choices){let X=Z.choices[M];if(!X)X=Z.choices[M]={finish_reason:Y,index:M,message:{},logprobs:Q,...$};if(Q)if(!X.logprobs)X.logprobs=Object.assign({},Q);else{let{content:i,refusal:p,...h}=Q;if(j$(h),Object.assign(X.logprobs,h),i)(g=X.logprobs).content??(g.content=[]),X.logprobs.content.push(...i);if(p)(E=X.logprobs).refusal??(E.refusal=[]),X.logprobs.refusal.push(...p)}if(Y){if(X.finish_reason=Y,L(this,Xg,"f")&&HY(L(this,Xg,"f"))){if(Y==="length")throw new FK;if(Y==="content_filter")throw new KK}}if(Object.assign(X,$),!G)continue;let{content:I,refusal:N,function_call:W,role:x,tool_calls:C,...D}=G;if(j$(D),Object.assign(X.message,D),N)X.message.refusal=(X.message.refusal||"")+N;if(x)X.message.role=x;if(W)if(!X.message.function_call)X.message.function_call=W;else{if(W.name)X.message.function_call.name=W.name;if(W.arguments)(F=X.message.function_call).arguments??(F.arguments=""),X.message.function_call.arguments+=W.arguments}if(I){if(X.message.content=(X.message.content||"")+I,!X.message.refusal&&L(this,xA,"m",aY).call(this))X.message.parsed=IY(X.message.content)}if(C){if(!X.message.tool_calls)X.message.tool_calls=[];for(let{index:i,id:p,type:h,function:z,...r}of C){let c=(K=X.message.tool_calls)[i]??(K[i]={});if(Object.assign(c,r),p)c.id=p;if(h)c.type=h;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,r9(L(this,Xg,"f"),c))c.function.parsed_arguments=IY(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 Fq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function y1(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:Q,...$})=>{if(!Y)throw new d(`missing finish_reason for choice ${M}`);let{content:X=null,function_call:I,tool_calls:N,...W}=G,x=G.role;if(!x)throw new d(`missing role for choice ${M}`);if(I){let{arguments:C,name:D}=I;if(C==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!D)throw new d(`missing function_call.name for choice ${M}`);return{...$,message:{content:X,function_call:{arguments:C,name:D},role:x,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:Q}}if(N)return{...$,index:M,finish_reason:Y,logprobs:Q,message:{...W,role:x,content:X,refusal:G.refusal??null,tool_calls:N.map((C,D)=>{let{function:i,type:p,id:h,...z}=C,{arguments:r,name:c,...gA}=i||{};if(h==null)throw new d(`missing choices[${M}].tool_calls[${D}].id
150
+ ${Cj(A)}`);if(p==null)throw new d(`missing choices[${M}].tool_calls[${D}].type
151
+ ${Cj(A)}`);if(c==null)throw new d(`missing choices[${M}].tool_calls[${D}].function.name
152
+ ${Cj(A)}`);if(r==null)throw new d(`missing choices[${M}].tool_calls[${D}].function.arguments
153
+ ${Cj(A)}`);return{...z,id:h,type:p,function:{...gA,name:c,arguments:r}}})}};return{...$,message:{...W,content:X,role:x,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:Q}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return n9(U,q)}function Cj(A){return JSON.stringify(A)}function j$(A){return}function U$(A){}class $E extends vg{static fromReadableStream(A){let q=new $E(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new $E(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class mg extends a{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 e9(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>OK(g,A))}runTools(A,q){if(A.stream)return $E.runTools(this._client,A,q);return VK.runTools(this._client,A,q)}stream(A,q){return vg.createChatCompletion(this._client,A,q)}}mg.Messages=QE;class I6 extends a{constructor(){super(...arguments);this.completions=new mg(this._client)}}I6.Completions=mg;var G$=Symbol("brand.privateNullableHeaders");function*v1(A){if(!A)return;if(G$ 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(AY(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=AY(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 y=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of v1(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{[G$]:!0,values:q,nulls:g}};class WK extends a{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:y([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class LK extends a{create(A,q){return this._client.post("/audio/transcriptions",Kq({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class NK extends a{create(A,q){return this._client.post("/audio/translations",Kq({body:A,...q,__metadata:{model:A.model}},this._client))}}class _g extends a{constructor(){super(...arguments);this.transcriptions=new LK(this._client),this.translations=new NK(this._client),this.speech=new WK(this._client)}}_g.Transcriptions=LK;_g.Translations=NK;_g.Speech=WK;class XE extends a{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 TK extends a{create(A,q){return this._client.post("/assistants",{body:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/assistants/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/assistants/${A}`,{body:q,...g,headers:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/assistants/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class PK extends a{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class IK extends a{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class x6 extends a{constructor(){super(...arguments);this.sessions=new PK(this._client),this.transcriptionSessions=new IK(this._client)}}x6.Sessions=PK;x6.TranscriptionSessions=IK;class xK extends a{create(A,q){return this._client.post("/chatkit/sessions",{body:A,...q,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(R`/chatkit/sessions/${A}/cancel`,{...q,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class RK extends a{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",yg,{query:A,...q,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(R`/chatkit/threads/${A}/items`,yg,{query:q,...g,headers:y([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class R6 extends a{constructor(){super(...arguments);this.sessions=new xK(this._client),this.threads=new RK(this._client)}}R6.Sessions=xK;R6.Threads=RK;class SK extends a{create(A,q,g){return this._client.post(R`/threads/${A}/messages`,{body:q,...g,headers:y([{"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:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/messages`,EA,{query:q,...g,headers:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class hK extends a{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:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var Y$=(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 fg=(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 kA,h6,zY,vq,Dj,Sq,a6,_E,S6,vj,Zq,yj,bj,BK,aK,zK,Q$,J$,O$,M$,$$,X$,_$;class cg extends P6{constructor(){super(...arguments);kA.add(this),zY.set(this,[]),vq.set(this,{}),Dj.set(this,{}),Sq.set(this,void 0),a6.set(this,void 0),_E.set(this,void 0),S6.set(this,void 0),vj.set(this,void 0),Zq.set(this,void 0),yj.set(this,void 0),bj.set(this,void 0),BK.set(this,void 0)}[(zY=new WeakMap,vq=new WeakMap,Dj=new WeakMap,Sq=new WeakMap,a6=new WeakMap,_E=new WeakMap,S6=new WeakMap,vj=new WeakMap,Zq=new WeakMap,yj=new WeakMap,bj=new WeakMap,BK=new WeakMap,kA=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 h6;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=Fq.fromReadableStream(A,this.controller);for await(let F of E)L(this,kA,"m",aK).call(this,F);if(E.controller.signal?.aborted)throw new PA;return this._addRun(L(this,kA,"m",zK).call(this))}toReadableStream(){return new Fq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new h6;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,kA,"m",aK).call(this,j);if(Z.controller.signal?.aborted)throw new PA;return this._addRun(L(this,kA,"m",zK).call(this))}static createThreadAssistantStream(A,q,g){let E=new h6;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 h6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return L(this,yj,"f")}currentRun(){return L(this,bj,"f")}currentMessageSnapshot(){return L(this,Sq,"f")}currentRunStepSnapshot(){return L(this,BK,"f")}async finalRunSteps(){return await this.done(),Object.values(L(this,vq,"f"))}async finalMessages(){return await this.done(),Object.values(L(this,Dj,"f"))}async finalRun(){if(await this.done(),!L(this,a6,"f"))throw Error("Final run was not received.");return L(this,a6,"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,kA,"m",aK).call(this,Z);if(K.controller.signal?.aborted)throw new PA;return this._addRun(L(this,kA,"m",zK).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,kA,"m",aK).call(this,j);if(Z.controller.signal?.aborted)throw new PA;return this._addRun(L(this,kA,"m",zK).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(ZK(F)&&ZK(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(!ZK(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)}}h6=cg,aK=function A(q){if(this.ended)return;switch(s(this,yj,q,"f"),L(this,kA,"m",O$).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,kA,"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,kA,"m",J$).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,kA,"m",Q$).call(this,q);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:o1(q)}},zK=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!L(this,a6,"f"))throw Error("Final run has not been received");return L(this,a6,"f")},Q$=function A(q){let[g,E]=L(this,kA,"m",$$).call(this,q,L(this,Sq,"f"));s(this,Sq,g,"f"),L(this,Dj,"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,_E,"f")){if(L(this,S6,"f"))switch(L(this,S6,"f").type){case"text":this._emit("textDone",L(this,S6,"f").text,L(this,Sq,"f"));break;case"image_file":this._emit("imageFileDone",L(this,S6,"f").image_file,L(this,Sq,"f"));break}s(this,_E,F.index,"f")}s(this,S6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(L(this,_E,"f")!==void 0){let F=q.data.content[L(this,_E,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,L(this,Sq,"f"));break;case"text":this._emit("textDone",F.text,L(this,Sq,"f"));break}}if(L(this,Sq,"f"))this._emit("messageDone",q.data);s(this,Sq,void 0,"f")}},J$=function A(q){let g=L(this,kA,"m",M$).call(this,q);switch(s(this,BK,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,vj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(L(this,Zq,"f"))this._emit("toolCallDone",L(this,Zq,"f"));if(s(this,vj,K.index,"f"),s(this,Zq,g.step_details.tool_calls[K.index],"f"),L(this,Zq,"f"))this._emit("toolCallCreated",L(this,Zq,"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,BK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(L(this,Zq,"f"))this._emit("toolCallDone",L(this,Zq,"f")),s(this,Zq,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},O$=function A(q){L(this,zY,"f").push(q),this._emit("event",q)},M$=function A(q){switch(q.event){case"thread.run.step.created":return L(this,vq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=L(this,vq,"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=h6.accumulateDelta(g,E.delta);L(this,vq,"f")[q.data.id]=F}return L(this,vq,"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,vq,"f")[q.data.id]=q.data;break}if(L(this,vq,"f")[q.data.id])return L(this,vq,"f")[q.data.id];throw new Error("No snapshot available")},$$=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,kA,"m",X$).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")},X$=function A(q,g){return h6.accumulateDelta(g,q)},_$=function A(q){switch(s(this,bj,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,a6,q.data,"f"),L(this,Zq,"f"))this._emit("toolCallDone",L(this,Zq,"f")),s(this,Zq,void 0,"f");break;case"thread.run.cancelling":break}};function o1(A){}class HE extends a{constructor(){super(...arguments);this.steps=new hK(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:y([{"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:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/runs`,EA,{query:q,...g,headers:y([{"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:y([{"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 cg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}async poll(A,q,g){let E=y([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 yq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return cg.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:y([{"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 cg.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}HE.Steps=hK;class z6 extends a{constructor(){super(...arguments);this.runs=new HE(this._client),this.messages=new SK(this._client)}create(A={},q){return this._client.post("/threads",{body:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/threads/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/threads/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:y([{"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 cg.createThreadAssistantStream(A,this._client.beta.threads,q)}}z6.Runs=HE;z6.Messages=SK;class mq extends a{constructor(){super(...arguments);this.realtime=new x6(this._client),this.chatkit=new R6(this._client),this.assistants=new TK(this._client),this.threads=new z6(this._client)}}mq.Realtime=x6;mq.ChatKit=R6;mq.Assistants=TK;mq.Threads=z6;class VE extends a{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class wK extends a{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}/content`,{...g,headers:y([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class WE extends a{constructor(){super(...arguments);this.content=new wK(this._client)}create(A,q,g){return this._client.post(R`/containers/${A}/files`,Kq({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:y([{Accept:"*/*"},g?.headers])})}}WE.Content=wK;class B6 extends a{constructor(){super(...arguments);this.files=new WE(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:y([{Accept:"*/*"},q?.headers])})}}B6.Files=WE;class kK extends a{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`,yg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(R`/conversations/${E}/items/${A}`,g)}}class w6 extends a{constructor(){super(...arguments);this.items=new kK(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)}}w6.Items=kK;class LE extends a{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=Y$(j)});return K})}}class CK extends a{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 NE extends a{constructor(){super(...arguments);this.outputItems=new CK(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)}}NE.OutputItems=CK;class k6 extends a{constructor(){super(...arguments);this.runs=new NE(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)}}k6.Runs=NE;class TE extends a{create(A,q){return this._client.post("/files",Kq({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:y([{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 yq(q),K=await this.retrieve(A),Date.now()-F>g)throw new L6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class DK extends a{}class yK extends a{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 PE extends a{constructor(){super(...arguments);this.graders=new yK(this._client)}}PE.Graders=yK;class bK extends a{create(A,q,g){return this._client.getAPIList(R`/fine_tuning/checkpoints/${A}/permissions`,Mg,{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 IE extends a{constructor(){super(...arguments);this.permissions=new bK(this._client)}}IE.Permissions=bK;class vK extends a{list(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class xE extends a{constructor(){super(...arguments);this.checkpoints=new vK(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)}}xE.Checkpoints=vK;class fq extends a{constructor(){super(...arguments);this.methods=new DK(this._client),this.jobs=new xE(this._client),this.checkpoints=new IE(this._client),this.alpha=new PE(this._client)}}fq.Methods=DK;fq.Jobs=xE;fq.Checkpoints=IE;fq.Alpha=PE;class mK extends a{}class C6 extends a{constructor(){super(...arguments);this.graderModels=new mK(this._client)}}C6.GraderModels=mK;class RE extends a{createVariation(A,q){return this._client.post("/images/variations",Kq({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",Kq({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 SE extends a{retrieve(A,q){return this._client.get(R`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",Mg,A)}delete(A,q){return this._client.delete(R`/models/${A}`,q)}}class hE extends a{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class fK extends a{accept(A,q,g){return this._client.post(R`/realtime/calls/${A}/accept`,{body:q,...g,headers:y([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:y([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:y([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:y([{Accept:"*/*"},g?.headers])})}}class cK extends a{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class dg extends a{constructor(){super(...arguments);this.clientSecrets=new cK(this._client),this.calls=new fK(this._client)}}dg.ClientSecrets=cK;dg.Calls=fK;function H$(A,q){if(!q||!_V(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 BY(A,q)}function BY(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:WV(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:XV(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))mj(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 XV(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 _V(A){if(JK(A.text?.format))return!0;return!1}function HV(A){return A?.$brand==="auto-parseable-tool"}function VV(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function WV(A,q){let g=VV(A.tools??[],q.name);return{...q,...q,parsed_arguments:HV(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function mj(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 aE,fj,pg,cj,V$,W$,L$,N$;class dj extends P6{constructor(A){super();aE.add(this),fj.set(this,void 0),pg.set(this,void 0),cj.set(this,void 0),s(this,fj,A,"f")}static createResponse(A,q,g){let E=new dj(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,aE,"m",V$).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,aE,"m",W$).call(this,Z,K);if(F.controller.signal?.aborted)throw new PA;return L(this,aE,"m",L$).call(this)}[(fj=new WeakMap,pg=new WeakMap,cj=new WeakMap,aE=new WeakSet,V$=function A(){if(this.ended)return;s(this,pg,void 0,"f")},W$=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,aE,"m",N$).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}},L$=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=L(this,pg,"f");if(!q)throw new d("request ended without sending any events");s(this,pg,void 0,"f");let g=LV(q,L(this,fj,"f"));return s(this,cj,g,"f"),g},N$=function A(q){let g=L(this,pg,"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,pg,q.response,"f"),g}switch(q.type){case"response.output_item.added":{g.output.push(q.item);break}case"response.content_part.added":{let E=g.output[q.output_index];if(!E)throw new 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,pg,q.response,"f");break}}return g},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let A=L(this,cj,"f");if(!A)throw new d("stream ended without producing a ChatCompletion");return A}}function LV(A,q){return H$(A,q)}class dK extends a{list(A,q={},g){return this._client.getAPIList(R`/responses/${A}/input_items`,EA,{query:q,...g})}}class pK extends a{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class ug extends a{constructor(){super(...arguments);this.inputItems=new dK(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")mj(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")mj(E);return E})}delete(A,q){return this._client.delete(R`/responses/${A}`,{...q,headers:y([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>BY(g,A))}stream(A,q){return dj.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})}}ug.InputItems=dK;ug.InputTokens=pK;class uK extends a{create(A,q,g){return this._client.post(R`/uploads/${A}/parts`,Kq({body:q,...g},this._client))}}class D6 extends a{constructor(){super(...arguments);this.parts=new uK(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})}}D6.Parts=uK;var T$=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 lK extends a{create(A,q,g){return this._client.post(R`/vector_stores/${A}/file_batches`,{body:q,...g,headers:y([{"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:y([{"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:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=y([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 yq(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 Q of M){let $=await Z.files.create({file:Q,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(G);return await T$(Y),await this.createAndPoll(A,{file_ids:U})}}class iK extends a{create(A,q,g){return this._client.post(R`/vector_stores/${A}/files`,{body:q,...g,headers:y([{"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:y([{"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:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/vector_stores/${A}/files`,EA,{query:q,...g,headers:y([{"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:y([{"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=y([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 yq(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`,Mg,{...g,headers:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class lg extends a{constructor(){super(...arguments);this.files=new iK(this._client),this.fileBatches=new lK(this._client)}create(A,q){return this._client.post("/vector_stores",{body:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/vector_stores/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/vector_stores/${A}`,{body:q,...g,headers:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/vector_stores/${A}`,{...q,headers:y([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(R`/vector_stores/${A}/search`,Mg,{body:q,method:"post",...g,headers:y([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}lg.Files=iK;lg.FileBatches=lK;class zE extends a{create(A,q){return this._client.post("/videos",XY({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",yg,{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:y([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(R`/videos/${A}/remix`,XY({body:q,...g},this._client))}}var BE,P$,pj;class wE extends a{constructor(){super(...arguments);BE.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,BE,"m",P$).call(this,g);let F=y([q]).values,K=L(this,BE,"m",pj).call(this,F,"webhook-signature"),Z=L(this,BE,"m",pj).call(this,F,"webhook-timestamp"),j=L(this,BE,"m",pj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new Jg("Invalid webhook timestamp format");let G=Math.floor(Date.now()/1000);if(G-U>E)throw new Jg("Webhook timestamp is too old");if(U>G+E)throw new Jg("Webhook timestamp is too new");let Y=K.split(" ").map((X)=>X.startsWith("v1,")?X.substring(3):X),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),Q=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let X of Y)try{let I=Buffer.from(X,"base64");if(await crypto.subtle.verify("HMAC",$,I,new TextEncoder().encode(Q)))return}catch{continue}throw new Jg("The given webhook signature does not match the expected signature")}}BE=new WeakSet,P$=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")},pj=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 wY,kY,uj,I$;class e{constructor({baseURL:A=fg("OPENAI_BASE_URL"),apiKey:q=fg("OPENAI_API_KEY"),organization:g=fg("OPENAI_ORG_ID")??null,project:E=fg("OPENAI_PROJECT_ID")??null,webhookSecret:F=fg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(wY.add(this),uj.set(this,void 0),this.completions=new VE(this),this.chat=new I6(this),this.embeddings=new LE(this),this.files=new TE(this),this.images=new RE(this),this.audio=new _g(this),this.moderations=new hE(this),this.models=new SE(this),this.fineTuning=new fq(this),this.graders=new C6(this),this.vectorStores=new lg(this),this.webhooks=new wE(this),this.beta=new mq(this),this.batches=new XE(this),this.uploads=new D6(this),this.responses=new ug(this),this.realtime=new dg(this),this.conversations=new w6(this),this.evals=new k6(this),this.containers=new B6(this),this.videos=new zE(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&&R9())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??kY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=QY(Z.logLevel,"ClientOptions.logLevel",this)??QY(fg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??h9(),s(this,uj,z9,"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 y([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(A){return GY(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Dg}`}defaultIdempotencyKey(){return`stainless-node-retry-${eG()}`}makeStatusError(A,q,g,E){return WA.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=!L(this,wY,"m",I$).call(this)&&g||this.baseURL,F=V9(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!W9(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 N6(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`,Og({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new PA;let M=new AbortController,Q=await this.fetchWithTimeout(Z,K,j,M).catch(sF),$=Date.now();if(Q instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new PA;let W=tF(Q)||/timed? ?out/i.test(String(Q)+("cause"in Q?String(Q.cause):""));if(q)return HA(this).info(`[${U}] connection ${W?"timed out":"failed"} - ${N}`),HA(this).debug(`[${U}] connection ${W?"timed out":"failed"} (${N})`,Og({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:Q.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${W?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${W?"timed out":"failed"} (error; no more retries left)`,Og({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:Q.message})),W)throw new L6;throw new W6({cause:Q})}let X=[...Q.headers.entries()].filter(([N])=>N==="x-request-id").map(([N,W])=>", "+N+": "+JSON.stringify(W)).join(""),I=`[${U}${G}${X}] ${K.method} ${Z} ${Q.ok?"succeeded":"failed"} with status ${Q.status} in ${$-Y}ms`;if(!Q.ok){let N=await this.shouldRetry(Q);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await a9(Q.body),HA(this).info(`${I} - ${p}`),HA(this).debug(`[${U}] response error (${p})`,Og({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,Q.headers)}let W=N?"error; no more retries left":"error; not retryable";HA(this).info(`${I} - ${W}`);let x=await Q.text().catch((p)=>sF(p).message),C=T9(x),D=C?void 0:x;throw HA(this).debug(`[${U}] response error (${W})`,Og({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,message:D,durationMs:Date.now()-Y})),this.makeStatusError(Q.status,C,D,Q.headers)}return HA(this).info(I),HA(this).debug(`[${U}] response start`,Og({retryOfRequestLogID:g,url:Q.url,status:Q.status,headers:Q.headers,durationMs:$-Y})),{response:Q,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 Pj(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 yq(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)N9("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=y([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))}:{},...S9(),"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=y([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:$j(A)};else return L(this,uj,"f").call(this,{body:A,headers:g})}}kY=e,uj=new WeakMap,wY=new WeakSet,I$=function A(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=kY;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=d;e.APIError=WA;e.APIConnectionError=W6;e.APIConnectionTimeoutError=L6;e.APIUserAbortError=PA;e.NotFoundError=eF;e.ConflictError=AK;e.RateLimitError=gK;e.BadRequestError=nF;e.AuthenticationError=rF;e.InternalServerError=EK;e.PermissionDeniedError=oF;e.UnprocessableEntityError=qK;e.InvalidWebhookSignatureError=Jg;e.toFile=xj;e.Completions=VE;e.Chat=I6;e.Embeddings=LE;e.Files=TE;e.Images=RE;e.Audio=_g;e.Moderations=hE;e.Models=SE;e.FineTuning=fq;e.Graders=C6;e.VectorStores=lg;e.Webhooks=wE;e.Beta=mq;e.Batches=XE;e.Uploads=D6;e.Responses=ug;e.Realtime=dg;e.Conversations=w6;e.Evals=k6;e.Containers=B6;e.Videos=zE;function CY(A){return{anthropic:null,openai:null,provider:A,storyContext:"",isStreaming:!1}}function DY(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,25 @@ 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
+ ${Sg(A.content)}
174
174
 
175
175
  `;if(A.comments&&A.comments.length>0)g+=`# Hacker News Discussion
176
176
 
177
- `,g+=`The following are comments from the Hacker News community discussing this story:
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}:**
180
- `;let Z=K.split(`
181
- `).map((j)=>`${E}${j}`).join(`
182
- `);if(g+=`${Z}
179
+ `,g+=`**Comment Structure Guide:**
180
+ `,g+=`- [ROOT COMMENT #N] marks top-level comments - these represent the main conversation pillars and key themes in the discussion
181
+ `,g+=`- [Reply to username] marks nested replies - these branch off from the comment by that user
182
+ `,g+=`- Indentation shows nesting depth: replies are indented under their parent comments
183
+ `,g+=`- Root comments are numbered (#1, #2, etc.) to help reference specific discussion threads
183
184
 
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.
185
+ `,g+=x$(A.comments);return g}function x$(A,q=0,g=null,E={value:0}){let F="",K=" ".repeat(q);for(let Z of A)if(Z.user&&Z.content){let j=Sg(Z.content);if(q===0)E.value++,F+=`${K}[ROOT COMMENT #${E.value}] **${Z.user}:**
186
+ `;else{let G=g?`Reply to ${g}`:"Reply";F+=`${K}[${G}] **${Z.user}:**
187
+ `}let U=j.split(`
188
+ `).map((G)=>`${K}${G}`).join(`
189
+ `);if(F+=`${U}
190
+
191
+ `,Z.comments&&Z.comments.length>0)F+=x$(Z.comments,q+1,Z.user,E)}return F}async function R$(A,q,g,E,F){if(A.isStreaming=!0,!A.storyContext)A.storyContext=DY(E);let K=E.url||"",Z=`You are helping a user understand and discuss a Hacker News story.
185
192
 
186
193
  ${A.storyContext}
187
194
 
@@ -192,15 +199,15 @@ IMPORTANT CONTEXT DISTINCTION:
192
199
  - The "Hacker News Discussion" section contains community comments ABOUT that story
193
200
  - If the user asks about the original article/video content, use web search to fetch and read the URL: ${K}
194
201
 
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(`
202
+ 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 SV(A,q,g,Z,K,F);else await hV(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function SV(A,q,g,E,F,K){if(!A.anthropic){let G=tA("anthropic");A.anthropic=new qq({apiKey:G})}let Z=F?[{type:"web_search_20250305",name:"web_search",max_uses:3}]:[],j=A.anthropic.messages.stream({model:FF("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 hV(A,q,g,E,F,K){if(FA("[openai-stream] Starting stream..."),!A.openai){let G=tA("openai");FA("[openai-stream] Initializing client, API key exists:",!!G),A.openai=new e({apiKey:G})}let Z=FF("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 S$(A,q){let g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${Sg(F.content||"").slice(0,100)}...`).join(`
196
203
  `)||"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
204
 
198
205
  Title: ${q.title}
199
206
  Domain: ${q.domain||"N/A"}
200
207
  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(`
208
+ ${g}`;try{let F=[];if(A.provider==="anthropic"){if(FA("[suggestions] Using Anthropic API with cheap model"),!A.anthropic){let U=tA("anthropic");FA("[suggestions] API key exists:",!!U),A.anthropic=new qq({apiKey:U})}FA("[suggestions] Model:",U6);let K=await A.anthropic.messages.create({model:U6,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(`
209
+ `).filter((U)=>U.trim()).slice(0,3)}else{if(FA("[suggestions] Using OpenAI API with cheap model"),!A.openai){let j=tA("openai");FA("[suggestions] API key exists:",!!j),A.openai=new e({apiKey:j})}FA("[suggestions] Model:",Rg),FA("[suggestions] Making OpenAI request...");let K=await A.openai.chat.completions.create({model:Rg,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(`
210
+ `).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 h$(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
211
  `),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
212
  - Build on what was just discussed
206
213
  - Explore related angles or deeper aspects
@@ -210,8 +217,25 @@ Story: "${q.title}"
210
217
  Recent conversation:
211
218
  ${E}
212
219
 
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}
220
+ Return ONLY the 3 questions, one per line, no numbering or bullets.`;try{if(A.provider==="anthropic"){if(!A.anthropic){let U=tA("anthropic");A.anthropic=new qq({apiKey:U})}let Z=(await A.anthropic.messages.create({model:U6,max_tokens:256,messages:[{role:"user",content:F}]})).content[0];return(Z&&Z.type==="text"?Z.text:"").split(`
221
+ `).filter((U)=>U.trim()).slice(0,3)}else{if(!A.openai){let j=tA("openai");A.openai=new e({apiKey:j})}return((await A.openai.chat.completions.create({model:Rg,max_completion_tokens:256,messages:[{role:"user",content:F}]})).choices[0]?.message?.content||"").split(`
222
+ `).filter((j)=>j.trim()).slice(0,3)}}catch(K){return FA("[ERROR]","[follow-up] Error:",K),[]}}function yY(A){A.anthropic=null,A.openai=null}function a$(A,q){A.provider=q}var bY=`You are summarizing a Hacker News story for a terminal app. Be extremely concise.
223
+
224
+ 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.
225
+
226
+ Format your response exactly like this (use the exact separator):
227
+ [2-3 sentences summarizing the article. Key points only.]
228
+ ---DISCUSSION---
229
+ [2-3 sentences summarizing the HN discussion. Main themes and notable opinions only.]
230
+
231
+ Rules:
232
+ - No headers, labels, or markdown formatting
233
+ - No preamble, intro text, or thinking out loud
234
+ - Keep each section to 2-3 sentences maximum
235
+ - Be direct and dense with information
236
+ - Use exactly "---DISCUSSION---" as the separator between sections
237
+ - Start immediately with the article summary content`,aV=[/^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 z$(A){let q=A.trim(),g=!0;while(g){g=!1;for(let E of aV){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 vY(A){let q=A.split("---DISCUSSION---"),g=z$(q[0]||""),E=z$(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 B$(A,q,g){let E=DY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
238
+
239
+ ${E}`;try{if(q==="anthropic")await zV(F,K,g);else await BV(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function zV(A,q,g){let E=tA("anthropic");if(!E)throw new Error("Anthropic API key not configured");let F=new qq({apiKey:E}),Z=A?[{type:"web_search_20250305",name:"web_search",max_uses:2}]:[];FA("[tldr] Generating TLDR with Anthropic, model:",U6);let j=await F.messages.create({model:U6,max_tokens:1024,system:bY,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(vY(U))}async function BV(A,q,g){let E=tA("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:",Rg),A)try{let j=await F.responses.create({model:Rg,tools:[{type:"web_search"}],input:[{role:"developer",content:bY},{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(vY(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:Rg,max_completion_tokens:1024,messages:[{role:"system",content:bY},{role:"user",content:q}]})).choices[0]?.message?.content||"";FA("[tldr] TLDR generated via Chat Completions, length:",Z.length),g.onComplete(vY(Z))}import{existsSync as ig,mkdirSync as w$,readFileSync as rK,writeFileSync as fY,unlinkSync as wV}from"fs";import{join as oK}from"path";import{tmpdir as kV,homedir as CV}from"os";var mY=oK(kV(),"hn-cli-cache"),nK=oK(mY,"state.json"),lj=oK(CV(),".cache","hn-cli"),tK=oK(lj,"tldr-cache.json"),sK=oK(lj,"chat-cache.json");function DV(){return Yq().storiesTtlMinutes*60*1000}var ij=604800000;function yV(){if(!ig(mY))w$(mY,{recursive:!0})}function k$(){try{if(!ig(nK))return null;let A=rK(nK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>DV())return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function C$(A){try{yV(),A.savedAt=Date.now(),fY(nK,JSON.stringify(A,null,2))}catch{}}function D$(){try{if(ig(nK))wV(nK)}catch{}}function y$(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function b$(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function v$(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function m$(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function f$(){if(!ig(lj))w$(lj,{recursive:!0})}function c$(){let A=new Map;try{if(!ig(tK))return A;let q=rK(tK,"utf-8"),g=JSON.parse(q),E=Date.now();for(let[F,K]of Object.entries(g.entries))if(E-K.cachedAt<=ij)A.set(Number(F),K.result)}catch{}return A}function cY(A){try{f$();let q={};if(ig(tK))try{let K=rK(tK,"utf-8");q=JSON.parse(K).entries}catch{}let g=Date.now(),E={};for(let[K,Z]of A){let j=String(K),U=q[j]?.cachedAt??g;if(g-U<=ij)E[j]={result:Z,cachedAt:U}}let F={entries:E};fY(tK,JSON.stringify(F,null,2))}catch{}}function d$(){let A=new Map;try{if(!ig(sK))return A;let q=rK(sK,"utf-8"),g=JSON.parse(q),E=Date.now();for(let[F,K]of Object.entries(g.sessions))if(E-K.cachedAt<=ij){let j={messages:K.messages,suggestions:K.suggestions,originalSuggestions:K.originalSuggestions,followUpCount:K.followUpCount};A.set(Number(F),j)}}catch{}return A}function p$(A){try{f$();let q={};if(ig(sK))try{let K=rK(sK,"utf-8");q=JSON.parse(K).sessions}catch{}let g=Date.now(),E={};for(let[K,Z]of A){let j=String(K),U=q[j]?.cachedAt??g;if(g-U<=ij)E[j]={...Z,cachedAt:U}}let F={sessions:E};fY(sK,JSON.stringify(F,null,2))}catch{}}var bV=3;class dY{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";initialFilterSettings=null;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;requestedStoryId;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:y$(this.savedChatSessions),storyViewModes:v$(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};C$(A),cY(this.tldrCache),p$(this.savedChatSessions)}async initialize(A={}){this.requestedStoryId=A.requestedStoryId,await lO(this.renderer),this.setupLayout(),this.setupKeyboardHandlers(),this.tldrCache=c$();let q=d$();if(this.requestedStoryId){this.savedChatSessions=q,await this.loadPosts();return}let g=k$();if(g&&g.posts.length>0)await this.restoreFromCache(g,q);else this.savedChatSessions=q,await this.loadPosts()}async restoreFromCache(A,q){this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt;let g=b$(A.chatSessions);if(this.savedChatSessions=q?new Map([...g,...q]):g,this.storyViewModes=A.storyViewModes?m$(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),mZ(this.storyDetailState),vZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(E)=>this.selectStory(E)}),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,eO(this.headerState,this.updateInfo)}startHeaderLoading(){AM(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){qM(this.headerState)}setupLayout(){let A=new b(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:V.bg,paddingTop:1}),{header:q,state:g}=oO(this.ctx,{});this.headerState=g,this.contentArea=new b(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=UM(this.ctx),this.storyDetailState=MM(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=_M(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(!SM(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")IG(this.settingsState,1,Gq()||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")IG(this.settingsState,-1,Gq()||"anthropic"),this.rerenderSettings();else if(A.name==="tab"){let q=hM(this.settingsState,Gq()||"anthropic");if(q)this.callbacks.onOpenUrl?.(q)}else if(A.name==="left"||A.name==="h"){let q=xG(this.settingsState,Gq()||"anthropic",-1);if(q)this.handleSettingsAction(q)}else if(A.name==="right"||A.name==="l"){let q=xG(this.settingsState,Gq()||"anthropic",1);if(q)this.handleSettingsAction(q)}else if(A.name==="return"||A.name==="enter"){let q=RM(this.settingsState,Gq()||"anthropic");if(q)this.handleSettingsAction(q)}else if(A.name==="r")mO(),this.rerenderSettings()}handleSettingsAction(A){switch(A.type){case"switch_provider":let q=iA();if(q.provider=A.provider,Kg(q),this.chatServiceState)a$(this.chatServiceState,A.provider),yY(this.chatServiceState);this.rerenderSettings();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=dZ(),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=dZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":IO(),this.chatServiceState=null,this.chatMode=!1,this.settingsFromChatMode=!1,this.savedChatSessions.clear(),this.storyViewModes.clear(),this.hideSettings();break;case"select_model":if(PO(A.provider,A.modelId),this.chatServiceState)yY(this.chatServiceState);this.rerenderSettings();break;case"toggle_telemetry":yZ(!G6()),this.rerenderSettings();break;case"adjust_setting":vO(A.key,Yq()[A.key]+A.delta),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")TG(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")TG(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")PM(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(),hA(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();hA(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,hA(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,hA(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,hA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){if(A.name==="s"){nA("settings_opened"),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===" ")nA("comment_nav"),this.navigateToNextComment();else if(A.name==="o")nA("url_opened",{type:"url"}),this.openStoryUrl();else if(A.name==="c")nA("chat_opened"),this.openChat();else if(A.name==="r")nA("refresh"),this.refresh();else if(A.name==="t")nA("tldr_requested"),this.handleTldrRequest()}async loadPosts(){HM(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{this.posts=await uO(),this.storiesFetchedAt=Date.now();let A=0,q=!1;if(this.requestedStoryId){let g=await this.handleRequestedStory();A=g.index,q=!g.found}if(KF(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),mZ(this.storyDetailState),vZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(g)=>this.selectStory(g)}),q)GM(this.storyListState,`Story ${this.requestedStoryId} not found`);if(this.posts.length>0)await this.selectStory(A);this.saveToCache()}catch(A){KF(this.emptyStateState),FA("[ERROR]","Error loading posts:",A)}}async handleRequestedStory(){if(!this.requestedStoryId)return{index:0,found:!0};let A=this.posts.findIndex((q)=>q.id===this.requestedStoryId);if(A!==-1)return{index:A,found:!0};else{let q=await XG(this.requestedStoryId);if(q)return this.posts.unshift(q),{index:0,found:!0};return{index:0,found:!1}}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(nA("story_selected"),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,YM(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 XG(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(Q6(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;QM(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(!TO()){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=Gq();if(!q)return;this.tldrLoading=!0,this.tldrLoadingStoryId=A,this.tldrLoadingFrame=0,this.rerenderCurrentStory(),this.startAiIndicator(this.selectedIndex),this.startTldrLoadingAnimation();let g=this.selectedIndex;B$(this.selectedPost,q,{onComplete:(E)=>{if(this.renderer.isDestroyed)return;if(nA("tldr_completed",{success:!0}),this.tldrCache.set(A,E),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),cY(this.tldrCache),this.selectedPost?.id===A)this.rerenderCurrentStory()},onError:(E)=>{if(nA("tldr_completed",{success:!1}),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)VG(this.storyListState,g,q)},80)}stopAiIndicator(A){this.aiActiveIndices.delete(A);let q=A===this.selectedIndex;if(VG(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);Q6(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=cZ(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],ag(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,ZF(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++,LG(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,LG(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=Gq();if(A)this.chatServiceState=CY(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=cZ(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],ag(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,ZF(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);Q6(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;nA("chat_message"),this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,hA(this.ctx,this.chatPanelState.suggestions),ZF(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(ZF(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;NM(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=this.selectedIndex;this.startAiIndicator(g);let E=!1;await R$(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(F)=>{if(!E&&this.chatPanelState)E=!0,e6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=F,ag(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)e6(this.chatPanelState);if(this.stopAiIndicator(g),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});this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(F)=>{if(this.chatPanelState)e6(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}
216
240
 
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);
241
+ Check your ${K} API key in ~/.config/hn-cli/config.json`,ag(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,hA(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,hA(this.ctx,this.chatPanelState.suggestions);else if(A&&A.messages.length>0)this.chatPanelState.suggestions.loading=!0,hA(this.ctx,this.chatPanelState.suggestions),this.generateFollowUpQuestionsIfNeeded();else this.chatPanelState.suggestions.loading=!0,hA(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,hA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await S$(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;hA(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,hA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[suggestions] Error:",g)}}async generateFollowUpQuestionsIfNeeded(){if(this.followUpCount>=bV)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,hA(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,hA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await h$(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++;hA(this.ctx,this.chatPanelState.suggestions),NG(this.chatPanelState)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,hA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[follow-up] Error:",g)}finally{this.saveToCache()}}showAuthSetup(){this.authSetupMode=!0,this.authSetupState=dZ(),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=TM(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);Q6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.authSetupState=null}saveApiKey(A,q){let g=iA();if(g.provider=A,A==="anthropic")g.anthropicApiKey=q;else g.openaiApiKey=q;if(Kg(g),this.authSetupFromSettings=!1,this.hideAuthSetup(),this.chatServiceState=CY(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=xM(this.ctx),this.initialFilterSettings={...Yq()},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.storyDetailState.panel.add(this.settingsState.header),this.storyDetailState.panel.add(this.settingsState.scroll),this.storyDetailState.panel.add(this.settingsState.shortcutsBar),PG(this.ctx,this.settingsState,Gq()||"anthropic"),this.saveToCache()}rerenderSettings(){if(!this.settingsState)return;PG(this.ctx,this.settingsState,Gq()||"anthropic")}hideSettings(){this.settingsMode=!1;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);if(this.settingsFromChatMode&&this.selectedPost&&this.chatServiceState){this.chatPanelState=cZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let g of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(g);let q=this.savedChatSessions.get(this.selectedPost.id);if(q)this.followUpCount=q.followUpCount,this.chatPanelState.messages=[...q.messages];ag(this.ctx,this.chatPanelState,this.chatServiceState.provider),this.restoreSuggestionsFromSession(q)}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 q=this.tldrCache.get(this.selectedPost.id)||null,g=this.tldrErrorIds.has(this.selectedPost.id);Q6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:!1,hasError:g})}let A=this.checkIfSettingsRequireRefresh();if(this.settingsState=null,this.initialFilterSettings=null,this.saveToCache(),A)this.refresh()}checkIfSettingsRequireRefresh(){if(!this.initialFilterSettings)return!1;let A=Yq(),q=this.initialFilterSettings,g=["maxPosts","fetchLimit","hoursWindow","minPoints","minComments","commentWeight","recencyBonusMax"];for(let E of g)if(A[E]!==q[E])return!0;return!1}async refresh(){D$(),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))mZ(this.storyDetailState)}setPostsForTesting(A){this.ensureLayoutReadyForTesting(),this.posts=A,vZ(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);Q6(this.ctx,this.storyDetailState,A,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:!1,hasError:g})}cleanup(){if(this.chatPanelState)e6(this.chatPanelState);this.stopTldrLoadingAnimation(),this.stopAiIndicatorAnimation()}}var mV={bg:"#1a1a1a"};function fV(){let A=process.argv.slice(2),q;for(let g=0;g<A.length;g++){let E=A[g];if(E?.startsWith("--story=")||E?.startsWith("-s=")){let F=E.split("=")[1];if(F){let K=parseInt(F,10);if(!isNaN(K)&&K>0)q=K}}else if(E==="--story"||E==="-s"){let F=A[g+1];if(F&&!F.startsWith("-")){let K=parseInt(F,10);if(!isNaN(K)&&K>0)q=K;g++}}}return{storyId:q}}async function cV(){let{storyId:A}=fV();if(process.argv.includes("--disable-telemetry"))yZ(!1);zO(),nA("app_launch",{version:Zg});let q=await uU({exitOnCtrlC:!0,backgroundColor:mV.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),g=new dY(q,{onOpenUrl:(E)=>{vV(`open "${E}"`)},onExit:async()=>{await BO(),q.destroy(),process.exit(0)}});await g.initialize({requestedStoryId:A}),g.startHeaderLoading(),rO().then((E)=>{if(g.stopHeaderLoading(),E?.hasUpdate)g.setUpdateInfo(E)}),q.start()}cV().catch(console.error);