@brianlovin/hn-cli 0.3.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 +80 -18
  2. package/dist/cli.js +89 -82
  3. package/package.json +2 -1
package/dist/cli.js CHANGED
@@ -1,60 +1,60 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- import{Buffer as v_}from"buffer";import{EventEmitter as n_}from"events";import{EventEmitter as A$}from"events";import{EventEmitter as Y$}from"events";import{resolve as Qq,dirname as Oq}from"path";import{fileURLToPath as Jq}from"url";var vY="./highlights-ghv9g403.scm";var mY="./tree-sitter-javascript-nd0q4pe9.wasm";var fY="./highlights-eq9cgrbb.scm";var cY="./tree-sitter-typescript-zxjzwt75.wasm";var dY="./highlights-r812a2qc.scm";var pY="./tree-sitter-markdown-411r6y9b.wasm";var uY="./injections-73j83es3.scm";var lY="./highlights-x6tmsnaa.scm";var iY="./tree-sitter-markdown_inline-j5349f42.wasm";var tY="./highlights-hk7bwhj4.scm";var sY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as AQ,isAbsolute as M$,parse as _$}from"path";import{existsSync as $$}from"fs";import{basename as X$,join as H$}from"path";import qQ from"os";import Qg from"path";import{EventEmitter as T$}from"events";import{dlopen as P$,toArrayBuffer as aE,JSCallback as FQ,ptr as qA}from"bun:ffi";import{existsSync as R$}from"fs";import{EventEmitter as S$}from"events";import{toArrayBuffer as eK,ptr as KQ}from"bun:ffi";import{ptr as fg,toArrayBuffer as tj}from"bun:ffi";import{ptr as k$,toArrayBuffer as D$}from"bun:ffi";import{EventEmitter as f$}from"events";import u$ from"util";import{EventEmitter as oQ}from"events";import{Console as t$}from"console";import s$ from"fs";import n$ from"path";import WQ from"util";import{Writable as r$}from"stream";import{EventEmitter as o$}from"events";import{EventEmitter as gX}from"events";var z_=Object.defineProperty;var B_=(A,q)=>{for(var g in q)z_(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})},qL=import.meta.require,TQ={};B_(TQ,{default:()=>ZZ,Wrap:()=>uq,Unit:()=>_q,PositionType:()=>pq,Overflow:()=>dq,NodeType:()=>ej,MeasureMode:()=>lq,LogLevel:()=>pg,Justify:()=>cA,Gutter:()=>$q,FlexDirection:()=>Kq,ExperimentalFeature:()=>IQ,Errata:()=>dg,Edge:()=>n,Display:()=>_g,Direction:()=>D6,Dimension:()=>oj,BoxSizing:()=>rj,Align:()=>UA});var w_=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q!=="undefined"?q:{});var E,F;g.ready=new Promise(function(Q,J){E=Q,F=J});var K=Object.assign({},g),Z="";typeof document!="undefined"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var j=g.print||console.log.bind(console),U=g.printErr||console.warn.bind(console);Object.assign(g,K),K=null;var G;g.wasmBinary&&(G=g.wasmBinary);var Y=g.noExitRuntime||!0;typeof WebAssembly!="object"&&SA("no native wasm support detected");var M,O=!1;function $(Q,J,X){X=J+X;for(var H="";!(J>=X);){var W=Q[J++];if(!W)break;if(W&128){var S=Q[J++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|S);else{var B=Q[J++]&63;W=(W&240)==224?(W&15)<<12|S<<6|B:(W&7)<<18|S<<12|B<<6|Q[J++]&63,65536>W?H+=String.fromCharCode(W):(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023))}}else H+=String.fromCharCode(W)}return H}var _,x,N,L,P,k,C,i,p;function a(){var Q=M.buffer;_=Q,g.HEAP8=x=new Int8Array(Q),g.HEAP16=L=new Int16Array(Q),g.HEAP32=k=new Int32Array(Q),g.HEAPU8=N=new Uint8Array(Q),g.HEAPU16=P=new Uint16Array(Q),g.HEAPU32=C=new Uint32Array(Q),g.HEAPF32=i=new Float32Array(Q),g.HEAPF64=p=new Float64Array(Q)}var z,r=[],c=[],gA=[];function KA(){var Q=g.preRun.shift();r.unshift(Q)}var QA=0,RA=null,mA=null;function SA(Q){if(g.onAbort)g.onAbort(Q);throw Q="Aborted("+Q+")",U(Q),O=!0,Q=new WebAssembly.RuntimeError(Q+". Build with -sASSERTIONS for more info."),F(Q),Q}function Tq(Q){return Q.startsWith("data:application/octet-stream;base64,")}var kq="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+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(!Tq(kq)){var VY=kq;kq=g.locateFile?g.locateFile(VY,Z):Z+VY}function WY(){var Q=kq;try{if(Q==kq&&G)return new Uint8Array(G);if(Tq(Q))try{var J=H_(Q.slice(37)),X=new Uint8Array(J.length);for(Q=0;Q<J.length;++Q)X[Q]=J.charCodeAt(Q);var H=X}catch(S){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var W=H;if(W)return W;throw"both async and sync fetching of the wasm failed"}catch(S){SA(S)}}function r9(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return WY()}):fetch(kq,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+kq+"'";return Q.arrayBuffer()}).catch(function(){return WY()})}function hj(Q){for(;0<Q.length;)Q.shift()(g)}function NY(Q){if(Q===void 0)return"_unknown";Q=Q.replace(/[^a-zA-Z0-9_]/g,"$");var J=Q.charCodeAt(0);return 48<=J&&57>=J?"_"+Q:Q}function zj(Q,J){return Q=NY(Q),function(){return J.apply(this,arguments)}}var Uq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Bj=[];function vK(Q){var J=Error,X=zj(Q,function(H){this.name=Q,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
4
- `+H.replace(/^Error(:[^\n]*)?\n/,""))});return X.prototype=Object.create(J.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var S6=void 0;function ZA(Q){throw new S6(Q)}var IE=(Q)=>{return Q||ZA("Cannot use deleted val. handle = "+Q),Uq[Q].value},mK=(Q)=>{switch(Q){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var J=Bj.length?Bj.pop():Uq.length;return Uq[J]={ga:1,value:Q},J}},TY=void 0,IY=void 0;function BA(Q){for(var J="";N[Q];)J+=IY[N[Q++]];return J}var xE=[];function wj(){for(;xE.length;){var Q=xE.pop();Q.M.$=!1,Q.delete()}}var PE=void 0,Dq={};function Cj(Q,J){for(J===void 0&&ZA("ptr should not be undefined");Q.R;)J=Q.ba(J),Q=Q.R;return J}var mg={};function xY(Q){Q=kY(Q);var J=BA(Q);return vq(Q),J}function PY(Q,J){var X=mg[Q];return X===void 0&&ZA(J+" has unknown type "+xY(Q)),X}function fK(){}var kj=!1;function RY(Q){--Q.count.value,Q.count.value===0&&(Q.T?Q.U.W(Q.T):Q.P.N.W(Q.O))}function SY(Q,J,X){if(J===X)return Q;if(X.R===void 0)return null;return Q=SY(Q,J,X.R),Q===null?null:X.na(Q)}var aY={};function o9(Q,J){return J=Cj(Q,J),Dq[J]}var hY=void 0;function cK(Q){throw new hY(Q)}function dK(Q,J){return J.P&&J.O||cK("makeClassHandle requires ptr and ptrType"),!!J.U!==!!J.T&&cK("Both smartPtrType and smartPtr must be specified"),J.count={value:1},a6(Object.create(Q,{M:{value:J}}))}function a6(Q){if(typeof FinalizationRegistry==="undefined")return a6=(J)=>J,Q;return kj=new FinalizationRegistry((J)=>{RY(J.M)}),a6=(J)=>{var X=J.M;return X.T&&kj.register(J,{M:X},J),J},fK=(J)=>{kj.unregister(J)},a6(Q)}var pK={};function Dj(Q){for(;Q.length;){var J=Q.pop();Q.pop()(J)}}function RE(Q){return this.fromWireType(k[Q>>2])}var h6={},uK={};function Gg(Q,J,X){function H(w){w=X(w),w.length!==Q.length&&cK("Mismatched type converter count");for(var v=0;v<Q.length;++v)yq(Q[v],w[v])}Q.forEach(function(w){uK[w]=J});var W=Array(J.length),S=[],B=0;J.forEach((w,v)=>{mg.hasOwnProperty(w)?W[v]=mg[w]:(S.push(w),h6.hasOwnProperty(w)||(h6[w]=[]),h6[w].push(()=>{W[v]=mg[w],++B,B===S.length&&H(W)}))}),S.length===0&&H(W)}function yj(Q){switch(Q){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+Q)}}function yq(Q,J,X={}){if(!("argPackAdvance"in J))throw new TypeError("registerType registeredInstance requires argPackAdvance");var H=J.name;if(Q||ZA('type "'+H+'" must have a positive integer typeid pointer'),mg.hasOwnProperty(Q)){if(X.ua)return;ZA("Cannot register type '"+H+"' twice")}mg[Q]=J,delete uK[Q],h6.hasOwnProperty(Q)&&(J=h6[Q],delete h6[Q],J.forEach((W)=>W()))}function bj(Q){ZA(Q.M.P.N.name+" instance already deleted")}function Yg(){}function vj(Q,J,X){if(Q[J].S===void 0){var H=Q[J];Q[J]=function(){return Q[J].S.hasOwnProperty(arguments.length)||ZA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+Q[J].S+")!"),Q[J].S[arguments.length].apply(this,arguments)},Q[J].S=[],Q[J].S[H.Z]=H}}function e9(Q,J){g.hasOwnProperty(Q)?(ZA("Cannot register public name '"+Q+"' twice"),vj(g,Q,Q),g.hasOwnProperty(void 0)&&ZA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[Q].S[void 0]=J):g[Q]=J}function A_(Q,J,X,H,W,S,B,w){this.name=Q,this.constructor=J,this.X=X,this.W=H,this.R=W,this.pa=S,this.ba=B,this.na=w,this.ja=[]}function mj(Q,J,X){for(;J!==X;)J.ba||ZA("Expected null or instance of "+X.name+", got an instance of "+J.name),Q=J.ba(Q),J=J.R;return Q}function q_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function g_(Q,J){if(J===null){if(this.ea&&ZA("null is not a valid "+this.name),this.da){var X=this.fa();return Q!==null&&Q.push(this.W,X),X}return 0}if(J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&J.M.P.ca&&ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name),X=mj(J.M.O,J.M.P.N,this.N),this.da)switch(J.M.T===void 0&&ZA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:J.M.U===this?X=J.M.T:ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name);break;case 1:X=J.M.T;break;case 2:if(J.M.U===this)X=J.M.T;else{var H=J.clone();X=this.xa(X,mK(function(){H.delete()})),Q!==null&&Q.push(this.W,X)}break;default:ZA("Unsupporting sharing policy")}return X}function E_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),J.M.P.ca&&ZA("Cannot convert argument of type "+J.M.P.name+" to parameter type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function bq(Q,J,X,H){this.name=Q,this.N=J,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,J.R!==void 0?this.toWireType=g_:(this.toWireType=H?q_:E_,this.V=null)}function F_(Q,J){g.hasOwnProperty(Q)||cK("Replacing nonexistant public symbol"),g[Q]=J,g[Q].Z=void 0}function K_(Q,J){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),Q.includes("j")){var H=g["dynCall_"+Q];H=X&&X.length?H.apply(null,[J].concat(X)):H.call(null,J)}else H=z.get(J).apply(null,X);return H}}function Gq(Q,J){Q=BA(Q);var X=Q.includes("j")?K_(Q,J):z.get(J);return typeof X!="function"&&ZA("unknown function pointer with signature "+Q+": "+J),X}var zY=void 0;function lK(Q,J){function X(S){W[S]||mg[S]||(uK[S]?uK[S].forEach(X):(H.push(S),W[S]=!0))}var H=[],W={};throw J.forEach(X),new zY(Q+": "+H.map(xY).join([", "]))}function fj(Q,J,X,H,W){var S=J.length;2>S&&ZA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=J[1]!==null&&X!==null,w=!1;for(X=1;X<J.length;++X)if(J[X]!==null&&J[X].V===void 0){w=!0;break}var v=J[0].name!=="void",y=S-2,l=Array(y),o=[],jA=[];return function(){if(arguments.length!==y&&ZA("function "+Q+" called with "+arguments.length+" arguments, expected "+y+" args!"),jA.length=0,o.length=B?2:1,o[0]=W,B){var LA=J[1].toWireType(jA,this);o[1]=LA}for(var YA=0;YA<y;++YA)l[YA]=J[YA+2].toWireType(jA,arguments[YA]),o.push(l[YA]);if(YA=H.apply(null,o),w)Dj(jA);else for(var iA=B?1:2;iA<J.length;iA++){var Yq=iA===1?LA:l[iA-2];J[iA].V!==null&&J[iA].V(Yq)}return LA=v?J[0].fromWireType(YA):void 0,LA}}function cj(Q,J){for(var X=[],H=0;H<Q;H++)X.push(C[J+4*H>>2]);return X}function dj(Q){4<Q&&--Uq[Q].ga===0&&(Uq[Q]=void 0,Bj.push(Q))}function pj(Q){if(Q===null)return"null";var J=typeof Q;return J==="object"||J==="array"||J==="function"?Q.toString():""+Q}function Z_(Q,J){switch(J){case 2:return function(X){return this.fromWireType(i[X>>2])};case 3:return function(X){return this.fromWireType(p[X>>3])};default:throw new TypeError("Unknown float type: "+Q)}}function j_(Q,J,X){switch(J){case 0:return X?function(H){return x[H]}:function(H){return N[H]};case 1:return X?function(H){return L[H>>1]}:function(H){return P[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw new TypeError("Unknown integer type: "+Q)}}function U_(Q,J){for(var X="",H=0;!(H>=J/2);++H){var W=L[Q+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function G_(Q,J,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=J;X=X<2*Q.length?X/2:Q.length;for(var W=0;W<X;++W)L[J>>1]=Q.charCodeAt(W),J+=2;return L[J>>1]=0,J-H}function Y_(Q){return 2*Q.length}function Q_(Q,J){for(var X=0,H="";!(X>=J/4);){var W=k[Q+4*X>>2];if(W==0)break;++X,65536<=W?(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023)):H+=String.fromCharCode(W)}return H}function O_(Q,J,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=J;X=H+X-4;for(var W=0;W<Q.length;++W){var S=Q.charCodeAt(W);if(55296<=S&&57343>=S){var B=Q.charCodeAt(++W);S=65536+((S&1023)<<10)|B&1023}if(k[J>>2]=S,J+=4,J+4>X)break}return k[J>>2]=0,J-H}function J_(Q){for(var J=0,X=0;X<Q.length;++X){var H=Q.charCodeAt(X);55296<=H&&57343>=H&&++X,J+=4}return J}var M_={};function BY(Q){var J=M_[Q];return J===void 0?BA(Q):J}var iK=[];function __(Q){var J=iK.length;return iK.push(Q),J}function $_(Q,J){for(var X=Array(Q),H=0;H<Q;++H)X[H]=PY(C[J+4*H>>2],"parameter "+H);return X}var wY=[],X_=[null,[],[]];S6=g.BindingError=vK("BindingError"),g.count_emval_handles=function(){for(var Q=0,J=5;J<Uq.length;++J)Uq[J]!==void 0&&++Q;return Q},g.get_first_emval=function(){for(var Q=5;Q<Uq.length;++Q)if(Uq[Q]!==void 0)return Uq[Q];return null},TY=g.PureVirtualError=vK("PureVirtualError");for(var CY=Array(256),tK=0;256>tK;++tK)CY[tK]=String.fromCharCode(tK);IY=CY,g.getInheritedInstanceCount=function(){return Object.keys(Dq).length},g.getLiveInheritedInstances=function(){var Q=[],J;for(J in Dq)Dq.hasOwnProperty(J)&&Q.push(Dq[J]);return Q},g.flushPendingDeletes=wj,g.setDelayFunction=function(Q){PE=Q,xE.length&&PE&&PE(wj)},hY=g.InternalError=vK("InternalError"),Yg.prototype.isAliasOf=function(Q){if(!(this instanceof Yg&&Q instanceof Yg))return!1;var J=this.M.P.N,X=this.M.O,H=Q.M.P.N;for(Q=Q.M.O;J.R;)X=J.ba(X),J=J.R;for(;H.R;)Q=H.ba(Q),H=H.R;return J===H&&X===Q},Yg.prototype.clone=function(){if(this.M.O||bj(this),this.M.aa)return this.M.count.value+=1,this;var Q=a6,J=Object,X=J.create,H=Object.getPrototypeOf(this),W=this.M;return Q=Q(X.call(J,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),Q.M.count.value+=1,Q.M.$=!1,Q},Yg.prototype.delete=function(){this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),fK(this),RY(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Yg.prototype.isDeleted=function(){return!this.M.O},Yg.prototype.deleteLater=function(){return this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),xE.push(this),xE.length===1&&PE&&PE(wj),this.M.$=!0,this},bq.prototype.qa=function(Q){return this.ka&&(Q=this.ka(Q)),Q},bq.prototype.ha=function(Q){this.W&&this.W(Q)},bq.prototype.argPackAdvance=8,bq.prototype.readValueFromPointer=RE,bq.prototype.deleteObject=function(Q){if(Q!==null)Q.delete()},bq.prototype.fromWireType=function(Q){function J(){return this.da?dK(this.N.X,{P:this.wa,O:X,U:this,T:Q}):dK(this.N.X,{P:this,O:Q})}var X=this.qa(Q);if(!X)return this.ha(Q),null;var H=o9(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=Q,H.clone();return H=H.clone(),this.ha(Q),H}if(H=this.N.pa(X),H=aY[H],!H)return J.call(this);H=this.ca?H.la:H.pointerType;var W=SY(X,this.N,H.N);return W===null?J.call(this):this.da?dK(H.N.X,{P:H,O:W,U:this,T:Q}):dK(H.N.X,{P:H,O:W})},zY=g.UnboundTypeError=vK("UnboundTypeError");var H_=typeof atob=="function"?atob:function(Q){var J="",X=0;Q=Q.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|S>>2;var w=(S&3)<<6|B;J+=String.fromCharCode(H),S!==64&&(J+=String.fromCharCode(W)),B!==64&&(J+=String.fromCharCode(w))}while(X<Q.length);return J},L_={l:function(Q,J,X,H){SA("Assertion failed: "+(Q?$(N,Q):"")+", at: "+[J?J?$(N,J):"":"unknown filename",X,H?H?$(N,H):"":"unknown function"])},q:function(Q,J,X){Q=BA(Q),J=PY(J,"wrapper"),X=IE(X);var H=[].slice,W=J.N,S=W.X,B=W.R.X,w=W.R.constructor;Q=zj(Q,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new TY("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:S}),this.__construct.apply(this,H.call(arguments))}),S.__construct=function(){this===S&&ZA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));fK(y);var l=y.M;y.notifyOnDestruction(),l.aa=!0,Object.defineProperties(this,{M:{value:l}}),a6(this),y=l.O,y=Cj(W,y),Dq.hasOwnProperty(y)?ZA("Tried to register registered instance: "+y):Dq[y]=this},S.__destruct=function(){this===S&&ZA("Pass correct 'this' to __destruct"),fK(this);var y=this.M.O;y=Cj(W,y),Dq.hasOwnProperty(y)?delete Dq[y]:ZA("Tried to unregister unregistered instance: "+y)},Q.prototype=Object.create(S);for(var v in X)Q.prototype[v]=X[v];return mK(Q)},j:function(Q){var J=pK[Q];delete pK[Q];var{fa:X,W:H,ia:W}=J,S=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Gg([Q],S,(B)=>{var w={};return W.forEach((v,y)=>{var l=B[y],o=v.ra,jA=v.sa,LA=B[y+W.length],YA=v.ya,iA=v.Aa;w[v.oa]={read:(Yq)=>l.fromWireType(o(jA,Yq)),write:(Yq,SE)=>{var mq=[];YA(iA,Yq,LA.toWireType(mq,SE)),Dj(mq)}}}),[{name:J.name,fromWireType:function(v){var y={},l;for(l in w)y[l]=w[l].read(v);return H(v),y},toWireType:function(v,y){for(var l in w)if(!(l in y))throw new TypeError('Missing field: "'+l+'"');var o=X();for(l in w)w[l].write(o,y[l]);return v!==null&&v.push(H,o),o},argPackAdvance:8,readValueFromPointer:RE,V:H}]})},v:function(){},B:function(Q,J,X,H,W){var S=yj(X);J=BA(J),yq(Q,{name:J,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=x;else if(X===2)w=L;else if(X===4)w=k;else throw new TypeError("Unknown boolean type size: "+J);return this.fromWireType(w[B>>S])},V:null})},f:function(Q,J,X,H,W,S,B,w,v,y,l,o,jA){l=BA(l),S=Gq(W,S),w&&(w=Gq(B,w)),y&&(y=Gq(v,y)),jA=Gq(o,jA);var LA=NY(l);e9(LA,function(){lK("Cannot construct "+l+" due to unbound types",[H])}),Gg([Q,J,X],H?[H]:[],function(YA){if(YA=YA[0],H)var iA=YA.N,Yq=iA.X;else Yq=Yg.prototype;YA=zj(LA,function(){if(Object.getPrototypeOf(this)!==SE)throw new S6("Use 'new' to construct "+l);if(mq.Y===void 0)throw new S6(l+" has no accessible constructor");var bY=mq.Y[arguments.length];if(bY===void 0)throw new S6("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(mq.Y).toString()+") parameters instead!");return bY.apply(this,arguments)});var SE=Object.create(Yq,{constructor:{value:YA}});YA.prototype=SE;var mq=new A_(l,YA,SE,jA,iA,S,w,y);iA=new bq(l,mq,!0,!1),Yq=new bq(l+"*",mq,!1,!1);var yY=new bq(l+" const*",mq,!1,!0);return aY[Q]={pointerType:Yq,la:yY},F_(LA,YA),[iA,Yq,yY]})},d:function(Q,J,X,H,W,S,B){var w=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(v){function y(){lK("Cannot call "+l+" due to unbound types",w)}v=v[0];var l=v.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]);var o=v.N.constructor;return o[J]===void 0?(y.Z=X-1,o[J]=y):(vj(o,J,l),o[J].S[X-1]=y),Gg([],w,function(jA){return jA=fj(l,[jA[0],null].concat(jA.slice(1)),null,S,B),o[J].S===void 0?(jA.Z=X-1,o[J]=jA):o[J].S[X-1]=jA,[]}),[]})},p:function(Q,J,X,H,W,S){0<J||SA();var B=cj(J,X);W=Gq(H,W),Gg([],[Q],function(w){w=w[0];var v="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[J-1]!==void 0)throw new S6("Cannot register multiple constructors with identical number of parameters ("+(J-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[J-1]=()=>{lK("Cannot construct "+w.name+" due to unbound types",B)},Gg([],B,function(y){return y.splice(1,0,null),w.N.Y[J-1]=fj(v,y,null,W,S),[]}),[]})},a:function(Q,J,X,H,W,S,B,w){var v=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(y){function l(){lK("Cannot call "+o+" due to unbound types",v)}y=y[0];var o=y.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]),w&&y.N.ja.push(J);var jA=y.N.X,LA=jA[J];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(l.Z=X-2,l.className=y.name,jA[J]=l):(vj(jA,J,o),jA[J].S[X-2]=l),Gg([],v,function(YA){return YA=fj(o,YA,y,S,B),jA[J].S===void 0?(YA.Z=X-2,jA[J]=YA):jA[J].S[X-2]=YA,[]}),[]})},A:function(Q,J){J=BA(J),yq(Q,{name:J,fromWireType:function(X){var H=IE(X);return dj(X),H},toWireType:function(X,H){return mK(H)},argPackAdvance:8,readValueFromPointer:RE,V:null})},n:function(Q,J,X){X=yj(X),J=BA(J),yq(Q,{name:J,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:Z_(J,X),V:null})},e:function(Q,J,X,H,W){J=BA(J),W===-1&&(W=4294967295),W=yj(X);var S=(w)=>w;if(H===0){var B=32-8*X;S=(w)=>w<<B>>>B}X=J.includes("unsigned")?function(w,v){return v>>>0}:function(w,v){return v},yq(Q,{name:J,fromWireType:S,toWireType:X,argPackAdvance:8,readValueFromPointer:j_(J,W,H!==0),V:null})},b:function(Q,J,X){function H(S){S>>=2;var B=C;return new W(_,B[S+1],B[S])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][J];X=BA(X),yq(Q,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(Q,J){J=BA(J);var X=J==="std::string";yq(Q,{name:J,fromWireType:function(H){var W=C[H>>2],S=H+4;if(X)for(var B=S,w=0;w<=W;++w){var v=S+w;if(w==W||N[v]==0){if(B=B?$(N,B,v-B):"",y===void 0)var y=B;else y+=String.fromCharCode(0),y+=B;B=v+1}}else{y=Array(W);for(w=0;w<W;++w)y[w]=String.fromCharCode(N[S+w]);y=y.join("")}return vq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var S,B=typeof W=="string";if(B||W instanceof Uint8Array||W instanceof Uint8ClampedArray||W instanceof Int8Array||ZA("Cannot pass non-string to std::string"),X&&B){var w=0;for(S=0;S<W.length;++S){var v=W.charCodeAt(S);127>=v?w++:2047>=v?w+=2:55296<=v&&57343>=v?(w+=4,++S):w+=3}S=w}else S=W.length;if(w=uj(4+S+1),v=w+4,C[w>>2]=S,X&&B){if(B=v,v=S+1,S=N,0<v){v=B+v-1;for(var y=0;y<W.length;++y){var l=W.charCodeAt(y);if(55296<=l&&57343>=l){var o=W.charCodeAt(++y);l=65536+((l&1023)<<10)|o&1023}if(127>=l){if(B>=v)break;S[B++]=l}else{if(2047>=l){if(B+1>=v)break;S[B++]=192|l>>6}else{if(65535>=l){if(B+2>=v)break;S[B++]=224|l>>12}else{if(B+3>=v)break;S[B++]=240|l>>18,S[B++]=128|l>>12&63}S[B++]=128|l>>6&63}S[B++]=128|l&63}}S[B]=0}}else if(B)for(B=0;B<S;++B)y=W.charCodeAt(B),255<y&&(vq(v),ZA("String has UTF-16 code units that do not fit in 8 bits")),N[v+B]=y;else for(B=0;B<S;++B)N[v+B]=W[B];return H!==null&&H.push(vq,w),w},argPackAdvance:8,readValueFromPointer:RE,V:function(H){vq(H)}})},i:function(Q,J,X){if(X=BA(X),J===2)var H=U_,W=G_,S=Y_,B=()=>P,w=1;else J===4&&(H=Q_,W=O_,S=J_,B=()=>C,w=2);yq(Q,{name:X,fromWireType:function(v){for(var y=C[v>>2],l=B(),o,jA=v+4,LA=0;LA<=y;++LA){var YA=v+4+LA*J;if(LA==y||l[YA>>w]==0)jA=H(jA,YA-jA),o===void 0?o=jA:(o+=String.fromCharCode(0),o+=jA),jA=YA+J}return vq(v),o},toWireType:function(v,y){typeof y!="string"&&ZA("Cannot pass non-string to C++ string type "+X);var l=S(y),o=uj(4+l+J);return C[o>>2]=l>>w,W(y,o+4,l+J),v!==null&&v.push(vq,o),o},argPackAdvance:8,readValueFromPointer:RE,V:function(v){vq(v)}})},k:function(Q,J,X,H,W,S){pK[Q]={name:BA(J),fa:Gq(X,H),W:Gq(W,S),ia:[]}},h:function(Q,J,X,H,W,S,B,w,v,y){pK[Q].ia.push({oa:BA(J),ta:X,ra:Gq(H,W),sa:S,za:B,ya:Gq(w,v),Aa:y})},C:function(Q,J){J=BA(J),yq(Q,{va:!0,name:J,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(Q,J,X,H,W){Q=iK[Q],J=IE(J),X=BY(X);var S=[];return C[H>>2]=mK(S),Q(J,X,S,W)},t:function(Q,J,X,H){Q=iK[Q],J=IE(J),X=BY(X),Q(J,X,null,H)},g:dj,m:function(Q,J){var X=$_(Q,J),H=X[0];J=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=wY[J];if(W!==void 0)return W;var S=Array(Q-1);return W=__((B,w,v,y)=>{for(var l=0,o=0;o<Q-1;++o)S[o]=X[o+1].readValueFromPointer(y+l),l+=X[o+1].argPackAdvance;B=B[w].apply(B,S);for(o=0;o<Q-1;++o)X[o+1].ma&&X[o+1].ma(S[o]);if(!H.va)return H.toWireType(v,B)}),wY[J]=W},D:function(Q){4<Q&&(Uq[Q].ga+=1)},r:function(Q){var J=IE(Q);Dj(J),dj(Q)},c:function(){SA("")},x:function(Q,J,X){N.copyWithin(Q,J,J+X)},w:function(Q){var J=N.length;if(Q>>>=0,2147483648<Q)return!1;for(var X=1;4>=X;X*=2){var H=J*(1+0.2/X);H=Math.min(H,Q+100663296);var W=Math;H=Math.max(Q,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),a();var S=1;break A}catch(B){}S=void 0}if(S)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(Q,J,X,H){for(var W=0,S=0;S<X;S++){var B=C[J>>2],w=C[J+4>>2];J+=8;for(var v=0;v<w;v++){var y=N[B+v],l=X_[Q];y===0||y===10?((Q===1?j:U)($(l,0)),l.length=0):l.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function Q(W){g.asm=W.exports,M=g.asm.E,a(),z=g.asm.J,c.unshift(g.asm.F),QA--,g.monitorRunDependencies&&g.monitorRunDependencies(QA),QA==0&&(RA!==null&&(clearInterval(RA),RA=null),mA&&(W=mA,mA=null,W()))}function J(W){Q(W.instance)}function X(W){return r9().then(function(S){return WebAssembly.instantiate(S,H)}).then(function(S){return S}).then(W,function(S){U("failed to asynchronously prepare wasm: "+S),SA(S)})}var H={a:L_};if(QA++,g.monitorRunDependencies&&g.monitorRunDependencies(QA),g.instantiateWasm)try{return g.instantiateWasm(H,Q)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return G||typeof WebAssembly.instantiateStreaming!="function"||Tq(kq)||typeof fetch!="function"?X(J):fetch(kq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(J,function(S){return U("wasm streaming compile failed: "+S),U("falling back to ArrayBuffer instantiation"),X(J)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var kY=g.___getTypeName=function(){return(kY=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var uj=g._malloc=function(){return(uj=g._malloc=g.asm.I).apply(null,arguments)},vq=g._free=function(){return(vq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var sK;mA=function Q(){sK||DY(),sK||(mA=Q)};function DY(){function Q(){if(!sK&&(sK=!0,g.calledRun=!0,!O)){if(hj(c),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var J=g.postRun.shift();gA.unshift(J)}hj(gA)}}if(!(0<QA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)KA();hj(r),0<QA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),Q()},1)):Q())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return DY(),q.ready}})(),C_=w_,UA=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),rj=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),oj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),D6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),_g=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),n=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),dg=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),IQ=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Kq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),$q=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),cA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),pg=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),lq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),ej=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),dq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),pq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),_q=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),uq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),k_={ALIGN_AUTO:UA.Auto,ALIGN_FLEX_START:UA.FlexStart,ALIGN_CENTER:UA.Center,ALIGN_FLEX_END:UA.FlexEnd,ALIGN_STRETCH:UA.Stretch,ALIGN_BASELINE:UA.Baseline,ALIGN_SPACE_BETWEEN:UA.SpaceBetween,ALIGN_SPACE_AROUND:UA.SpaceAround,ALIGN_SPACE_EVENLY:UA.SpaceEvenly,BOX_SIZING_BORDER_BOX:rj.BorderBox,BOX_SIZING_CONTENT_BOX:rj.ContentBox,DIMENSION_WIDTH:oj.Width,DIMENSION_HEIGHT:oj.Height,DIRECTION_INHERIT:D6.Inherit,DIRECTION_LTR:D6.LTR,DIRECTION_RTL:D6.RTL,DISPLAY_FLEX:_g.Flex,DISPLAY_NONE:_g.None,DISPLAY_CONTENTS:_g.Contents,EDGE_LEFT:n.Left,EDGE_TOP:n.Top,EDGE_RIGHT:n.Right,EDGE_BOTTOM:n.Bottom,EDGE_START:n.Start,EDGE_END:n.End,EDGE_HORIZONTAL:n.Horizontal,EDGE_VERTICAL:n.Vertical,EDGE_ALL:n.All,ERRATA_NONE:dg.None,ERRATA_STRETCH_FLEX_BASIS:dg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:dg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:dg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:dg.All,ERRATA_CLASSIC:dg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:IQ.WebFlexBasis,FLEX_DIRECTION_COLUMN:Kq.Column,FLEX_DIRECTION_COLUMN_REVERSE:Kq.ColumnReverse,FLEX_DIRECTION_ROW:Kq.Row,FLEX_DIRECTION_ROW_REVERSE:Kq.RowReverse,GUTTER_COLUMN:$q.Column,GUTTER_ROW:$q.Row,GUTTER_ALL:$q.All,JUSTIFY_FLEX_START:cA.FlexStart,JUSTIFY_CENTER:cA.Center,JUSTIFY_FLEX_END:cA.FlexEnd,JUSTIFY_SPACE_BETWEEN:cA.SpaceBetween,JUSTIFY_SPACE_AROUND:cA.SpaceAround,JUSTIFY_SPACE_EVENLY:cA.SpaceEvenly,LOG_LEVEL_ERROR:pg.Error,LOG_LEVEL_WARN:pg.Warn,LOG_LEVEL_INFO:pg.Info,LOG_LEVEL_DEBUG:pg.Debug,LOG_LEVEL_VERBOSE:pg.Verbose,LOG_LEVEL_FATAL:pg.Fatal,MEASURE_MODE_UNDEFINED:lq.Undefined,MEASURE_MODE_EXACTLY:lq.Exactly,MEASURE_MODE_AT_MOST:lq.AtMost,NODE_TYPE_DEFAULT:ej.Default,NODE_TYPE_TEXT:ej.Text,OVERFLOW_VISIBLE:dq.Visible,OVERFLOW_HIDDEN:dq.Hidden,OVERFLOW_SCROLL:dq.Scroll,POSITION_TYPE_STATIC:pq.Static,POSITION_TYPE_RELATIVE:pq.Relative,POSITION_TYPE_ABSOLUTE:pq.Absolute,UNIT_UNDEFINED:_q.Undefined,UNIT_POINT:_q.Point,UNIT_PERCENT:_q.Percent,UNIT_AUTO:_q.Auto,WRAP_NO_WRAP:uq.NoWrap,WRAP_WRAP:uq.Wrap,WRAP_WRAP_REVERSE:uq.WrapReverse},D_=k_;function y_(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,G=new Array(U),Y=0;Y<U;Y++)G[Y]=arguments[Y];return Z.call(this,j,...G)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[_q.Point]:A.Node.prototype[F],[_q.Percent]:A.Node.prototype[`${F}Percent`],[_q.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=new Array(j>1?j-1:0),G=1;G<j;G++)U[G-1]=arguments[G];let Y=U.pop(),M,O;if(Y==="auto")M=_q.Auto,O=void 0;else if(typeof Y==="object")M=Y.unit,O=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?_q.Percent:_q.Point,O=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(O))throw new Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw new Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(O!==void 0)return K[M].call(this,...U,O);else return K[M].call(this,...U)})}function g(F){return A.MeasureCallback.implement({measure:function(){let{width:K,height:Z}=F(...arguments);return{width:K??NaN,height:Z??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(F,K){if(K)return F.call(this,g(K));else return this.unsetMeasureFunc()});function E(F){return A.DirtiedCallback.implement({dirtied:F})}return q(A.Node.prototype,"setDirtiedFunc",function(F,K){F.call(this,E(K))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(F,K)=>{return K?A.Node.createWithConfig(K):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let F=0,K=this.getChildCount();F<K;++F)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(F){let K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,j=arguments.length>3&&arguments[3]!==void 0?arguments[3]:D6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...D_}}var b_=y_(await C_()),ZZ=b_,xQ=["single","double","rounded","heavy"];function PQ(A){return typeof A==="string"&&xQ.includes(A)}function jZ(A,q="single"){if(PQ(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${xQ.join(", ")}`);return q}var hE={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};function UZ(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function lg(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}var RQ={single:lg(hE.single),double:lg(hE.double),rounded:lg(hE.rounded),heavy:lg(hE.heavy)},nY={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57400:"kp0",57401:"kp1",57402:"kp2",57403:"kp3",57404:"kp4",57405:"kp5",57406:"kp6",57407:"kp7",57408:"kp8",57409:"kp9",57410:"kpdecimal",57411:"kpdivide",57412:"kpmultiply",57413:"kpminus",57414:"kpplus",57415:"kpenter",57416:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};function SQ(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}var m_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},f_={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};function c_(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],F=g[2],K=g[3],Z=g[4],j;if(Z==="~")j=f_[E];else{if(E!=="1")return null;j=m_[Z]}if(!j)return null;let U={name:j,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(F){let G=parseInt(F,10);if(!isNaN(G)&&G>1){let Y=SQ(G-1);U.shift=Y.shift,U.ctrl=Y.ctrl,U.meta=Y.alt||Y.meta,U.option=Y.alt,U.super=Y.super,U.hyper=Y.hyper,U.capsLock=Y.capsLock,U.numLock=Y.numLock}}if(K==="1"||!K)U.eventType="press";else if(K==="2")U.eventType="press",U.repeated=!0;else if(K==="3")U.eventType="release";return U}function d_(A){let q=c_(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let K=E[1].split(";");if(K.length<1)return null;let Z={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},j="",U=K[0]?.split(":")||[],G=U[0];if(!G)return null;let Y=parseInt(G,10);if(isNaN(Y))return null;let M,O;if(U[1]){let _=parseInt(U[1],10);if(!isNaN(_)&&_>0&&_<=1114111)M=_}if(U[2]){let _=parseInt(U[2],10);if(!isNaN(_)&&_>0&&_<=1114111)O=_}let $=nY[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let _=String.fromCodePoint(Y);if(Z.name=_,O)Z.baseCode=O}else return null;if(K[1]){let _=K[1].split(":"),x=_[0],N=_[1];if(x){let L=parseInt(x,10);if(!isNaN(L)&&L>1){let P=SQ(L-1);Z.shift=P.shift,Z.ctrl=P.ctrl,Z.meta=P.alt||P.meta,Z.option=P.alt,Z.super=P.super,Z.hyper=P.hyper,Z.capsLock=P.capsLock,Z.numLock=P.numLock}}if(N==="1"||!N)Z.eventType="press";else if(N==="2")Z.eventType="press",Z.repeated=!0;else if(N==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let x of _){let N=parseInt(x,10);if(!isNaN(N)&&N>0&&N<=1114111)j+=String.fromCodePoint(N)}}if(j===""){if(Z.name.length>0&&!nY[Y])if(Z.shift&&M)j=String.fromCodePoint(M);else if(Z.shift&&Z.name.length===1)j=Z.name.toLocaleUpperCase();else j=Z.name}if(Z.name===" "&&Z.shift&&!Z.ctrl&&!Z.meta)j=" ";if(j)Z.sequence=j;return Z}var p_=/^(?:\x1b)([a-zA-Z0-9])$/,u_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,aQ={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},l_=[...Object.values(aQ),"backspace"],i_=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},t_=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},s_=/^\x1b\[27;(\d+);(\d+)~$/,hQ=(A="",q={})=>{let g;if(v_.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let K=d_(A);if(K)return K}let F=s_.exec(A);if(F){let K=parseInt(F[1],10)-1,Z=parseInt(F[2],10);if(E.ctrl=!!(K&4),E.meta=!!(K&2),E.shift=!!(K&1),E.option=!!(K&2),E.super=!!(K&8),E.hyper=!!(K&16),Z===13)E.name="return";else if(Z===27)E.name="escape";else if(Z===9)E.name="tab";else if(Z===32)E.name="space";else if(Z===127||Z===8)E.name="backspace";else E.name=String.fromCharCode(Z);return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
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+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!hq(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=p_.exec(A)){E.meta=!0;let K=g[1],Z=/^[A-Z]$/.test(K);if(K==="F")E.name="right";else if(K==="B")E.name="left";else if(Z)E.shift=!0,E.name=K;else E.name=K}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=u_.exec(A)){let K=[...A];if(K[0]==="\x1B"&&K[1]==="\x1B")E.option=!0,E.meta=!0;let Z=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),j=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=!!(j&4),E.meta=!!(j&2),E.shift=!!(j&1),E.option=!!(j&2),E.super=!!(j&8),E.hyper=!!(j&16),E.code=Z;let U=aQ[Z];if(U)E.name=U,E.shift=i_(Z)||E.shift,E.ctrl=t_(Z)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E};class zE{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class YU{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class QU extends n_{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=hQ(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new zE(q));break;case"release":this.emit("keyrelease",new zE(q));break;default:this.emit("keypress",new zE(q));break}}catch(g){return console.error("[KeyHandler] Error processing input:",g),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new YU(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class OU extends QU{renderableHandlers=new Map;constructor(A=!1){super(A)}emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let j of E){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in global ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let F=this.renderableHandlers.get(A),K=F&&F.size>0?[...F]:[],Z=!1;if(F&&F.size>0){if(Z=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let j=q[0];if(j.defaultPrevented)return g||Z;if(j.propagationStopped)return g||Z}for(let j of K){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in renderable ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||Z}}}return g||Z}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}}class OA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new OA(A)}static fromValues(A,q,g,E=1){return new OA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new OA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return FZ(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function FZ(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),OA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,F=A.length===8?parseInt(A.substring(6,8),16)/255:1;return OA.fromValues(q,g,E,F)}var rY={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};function u(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return OA.fromValues(0,0,0,0);if(rY[q])return FZ(rY[q]);return FZ(A)}return A}var Rq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var zQ;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(zQ||={});function wE({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:F=!1,inverse:K=!1,hidden:Z=!1,strikethrough:j=!1}={}){let U=Rq.NONE;if(A)U|=Rq.BOLD;if(q)U|=Rq.ITALIC;if(g)U|=Rq.UNDERLINE;if(E)U|=Rq.DIM;if(F)U|=Rq.BLINK;if(K)U|=Rq.INVERSE;if(Z)U|=Rq.HIDDEN;if(j)U|=Rq.STRIKETHROUGH;return U}var r_=255,o_=8,e_=16777215;function BQ(A,q){let g=A&r_,E=(q&e_)<<o_;return g|E}var wQ=Symbol.for("@opentui/core/StyledText");function CQ(A){return A&&A[wQ]}class b6{[wQ]=!0;chunks;constructor(A){this.chunks=A}}function GZ(A){return new b6([{__isChunk:!0,text:A}])}function JU(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?u(q.fg):g.fg,F=q.bg?u(q.bg):g.bg,K=wE(q),Z=g.attributes?g.attributes|K:K;return{__isChunk:!0,text:g.text,fg:E,bg:F,attributes:Z,link:g.link}}else{let g=String(A),E=q.fg?u(q.fg):void 0,F=q.bg?u(q.bg):void 0,K=wE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var Xg=(A)=>JU(A,{bold:!0});var yE=(A)=>JU(A,{underline:!0});var v6=(A)=>(q)=>JU(q,{fg:A});function Hq(A,...q){let g=[];for(let E=0;E<A.length;E++){let F=A[E];if(F)g.push({__isChunk:!0,text:F,attributes:0});let K=q[E];if(typeof K==="object"&&"__isChunk"in K)g.push(K);else if(K!==void 0){let Z=String(K);g.push({__isChunk:!0,text:Z,attributes:0})}}return new b6(g)}class MU{tick(A){return 1}reset(){}}var iq="\x1B",oY="\x1B[200~",nK="\x1B[201~";function q$(A){if(!A.startsWith(iq))return"not-escape";if(A.length===1)return"incomplete";let q=A.slice(1);if(q.startsWith("[")){if(q.startsWith("[M"))return A.length>=6?"complete":"incomplete";return g$(A)}if(q.startsWith("]"))return E$(A);if(q.startsWith("P"))return F$(A);if(q.startsWith("_"))return K$(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function g$(A){if(!A.startsWith(iq+"["))return"complete";if(A.length<3)return"incomplete";let q=A.slice(2),g=q[q.length-1],E=g.charCodeAt(0);if(E>=64&&E<=126){if(q.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(q))return"complete";if(g==="M"||g==="m"){let K=q.slice(1,-1).split(";");if(K.length===3&&K.every((Z)=>/^\d+$/.test(Z)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function E$(A){if(!A.startsWith(iq+"]"))return"complete";if(A.endsWith(iq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function F$(A){if(!A.startsWith(iq+"P"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function K$(A){if(!A.startsWith(iq+"_"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function eY(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(iq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=q$(K);if(Z==="complete"){q.push(K),g+=F;break}else if(Z==="incomplete")F++;else{q.push(K),g+=F;break}}if(F>E.length)return{sequences:q,remainder:E}}else q.push(E[0]),g++}return{sequences:q,remainder:""}}class _U extends A${buffer="";timeout=null;timeoutMs;pasteMode=!1;pasteBuffer="";constructor(A={}){super();this.timeoutMs=A.timeout??10}process(A){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;let q;if(Buffer.isBuffer(A))if(A.length===1&&A[0]>127){let F=A[0]-128;q="\x1B"+String.fromCharCode(F)}else q=A.toString();else q=A;if(q.length===0&&this.buffer.length===0){this.emit("data","");return}if(this.buffer+=q,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(oY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=eY(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+oY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=eY(this.buffer);this.buffer=E.remainder;for(let F of E.sequences)this.emit("data",F);if(this.buffer.length>0)this.timeout=setTimeout(()=>{let F=this.flush();for(let K of F)this.emit("data",K)},this.timeoutMs)}flush(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;if(this.buffer.length===0)return[];let A=[this.buffer];return this.buffer="",A}clear(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.buffer="",this.pasteMode=!1,this.pasteBuffer=""}getBuffer(){return this.buffer}destroy(){this.clear()}}function AU(A){if(A==null)return UA.Auto;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Auto}}function qU(A){if(A==null)return UA.Stretch;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Stretch}}function gU(A){if(A==null)return Kq.Column;switch(A.toLowerCase()){case"column":return Kq.Column;case"column-reverse":return Kq.ColumnReverse;case"row":return Kq.Row;case"row-reverse":return Kq.RowReverse;default:return Kq.Column}}function EU(A){if(A==null)return cA.FlexStart;switch(A.toLowerCase()){case"flex-start":return cA.FlexStart;case"center":return cA.Center;case"flex-end":return cA.FlexEnd;case"space-between":return cA.SpaceBetween;case"space-around":return cA.SpaceAround;case"space-evenly":return cA.SpaceEvenly;default:return cA.FlexStart}}function FU(A){if(A==null)return dq.Visible;switch(A.toLowerCase()){case"visible":return dq.Visible;case"hidden":return dq.Hidden;case"scroll":return dq.Scroll;default:return dq.Visible}}function KU(A){if(A==null)return pq.Relative;switch(A.toLowerCase()){case"static":return pq.Static;case"relative":return pq.Relative;case"absolute":return pq.Absolute;default:return pq.Static}}function ZU(A){if(A==null)return uq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return uq.NoWrap;case"wrap":return uq.Wrap;case"wrap-reverse":return uq.WrapReverse;default:return uq.NoWrap}}class CE{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}parseMouseEvent(A){let q=A.toString(),g=q.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);if(g){let[,E,F,K,Z]=g,j=parseInt(E),U=j&3,G=(j&64)!==0,Y=!G?void 0:CE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,O={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(G&&Z==="M")$="scroll",_={direction:Y,delta:1};else if(M){let x=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(x)$="drag";else $="move"}else if($=Z==="M"?"down":"up",$==="down"&&U!==3)this.mouseButtonsPressed.add(U);else if($==="up")this.mouseButtonsPressed.clear();return{type:$,button:U===3?0:U,x:parseInt(F)-1,y:parseInt(K)-1,modifiers:O,scroll:_}}if(q.startsWith("\x1B[M")&&q.length>=6){let E=q.charCodeAt(3)-32,F=q.charCodeAt(4)-33,K=q.charCodeAt(5)-33,Z=E&3,j=(E&64)!==0,U=!j?void 0:CE.SCROLL_DIRECTIONS[Z],G={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,O;if(j)Y="scroll",M=0,O={direction:U,delta:1};else Y=Z===3?"up":"down",M=Z===3?0:Z;return{type:Y,button:M,x:F,y:K,modifiers:G,scroll:O}}return null}}class kQ{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class $U{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new kQ(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isSelecting(){return this._isSelecting}set isSelecting(A){this._isSelecting=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),F=q-A+1,K=E-g+1;return{x:A,y:g,width:F,height:K}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,F=g.y;if(E!==F)return E-F;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
7
- `)}}function XU(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}var HU=Symbol.for("@opentui/core/singleton");function rg(A,q){let g=globalThis[HU]??={};if(!(A in g))g[A]=q();return g[A]}function Z$(A){let q=globalThis[HU];if(q&&A in q)delete q[A]}function j$(A){let q=globalThis[HU];return q&&A in q}var ig=rg("env-registry",()=>({}));function WA(A){let q=ig[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw new Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}ig[A.name]=A}function U$(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function G$(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw new Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:U$(q);case"number":let g=Number(q);if(isNaN(g))throw new Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class DQ{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in ig))throw new Error(`Environment variable ${A} is not registered.`);try{let q=G$(ig[A]);return this.parsedValues.set(A,q),q}catch(q){throw new Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in ig}clearCache(){this.parsedValues.clear()}}var rK=rg("env-store",()=>new DQ);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return rK.get(q)},has(A,q){return rK.has(q)},ownKeys(){return Object.keys(ig)},getOwnPropertyDescriptor(A,q){if(rK.has(q))return{enumerable:!0,configurable:!0,get:()=>rK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var w6=new Map;class yQ{scopeId;constructor(A){if(this.scopeId=A,!w6.has(this.scopeId))w6.set(this.scopeId,new Map)}debounce(A,q,g){let E=w6.get(this.scopeId);return new Promise((F,K)=>{if(E.has(A))clearTimeout(E.get(A));let Z=setTimeout(()=>{try{F(g())}catch(j){K(j)}E.delete(A)},q);E.set(A,Z)})}clearDebounce(A){let q=w6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=w6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function Q$(A){return new yQ(A)}function O$(A){let q=w6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class bQ{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}var lj;function J$(){if(!lj)lj=[{filetype:"javascript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),vY)]},wasm:Qq(Oq(Jq(import.meta.url)),mY)},{filetype:"typescript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),fY)]},wasm:Qq(Oq(Jq(import.meta.url)),cY)},{filetype:"markdown",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),dY)],injections:[Qq(Oq(Jq(import.meta.url)),uY)]},wasm:Qq(Oq(Jq(import.meta.url)),pY),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),lY)]},wasm:Qq(Oq(Jq(import.meta.url)),iY)},{filetype:"zig",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),tY)]},wasm:Qq(Oq(Jq(import.meta.url)),sY)}];return lj}function vQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function L$(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function V$(A){return H$(L$(),X$(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var W$=J$();var N$=(A)=>A.startsWith("http://")||A.startsWith("https://");class LU extends Y${initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=Q$("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(XA.OTUI_TREE_SITTER_WORKER_PATH)A=XA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH!=="undefined")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!$$(AQ(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(new Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let F=new Error("Worker initialization timed out");console.error("TreeSitter client:",F.message),this.initializeResolvers=void 0,q(F)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of W$)this.addFiletypeParser(A)}resolvePath(A){if(N$(A))return A;if(vQ(A))return V$(_$(A).base);if(!M$(A))return AQ(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:F,warning:K,messageId:Z,hasParser:j,performance:U,version:G}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==G){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,G,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(new Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:K,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:F,warning:K,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(K){this.emitWarning(K,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:M}=A.data,O=M.join(" ");if(this.emit("worker:log",Y,O),Y==="log")console.log("TSWorker:",...M);else if(Y==="error")console.error("TSWorker:",...M);else if(Y==="warn")console.warn("TSWorker:",...M);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,F=!0){if(!this.initialized){if(!F)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw new Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let K=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(K,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:K})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser)return;if(this.buffers.set(A,{...F,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new bQ((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,F=!1){this.worker?.postMessage({type:F?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(new Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),O$("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(F)=>{if(F.error)E(new Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw new Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(new Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function I$(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}WA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});WA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class VU extends T${_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!I$(A))throw new Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=qQ.homedir(),g=XA.XDG_CONFIG_HOME||Qg.join(A,".config");this._globalConfigPath=Qg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Qg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Qg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=qQ.homedir(),g=XA.XDG_DATA_HOME||Qg.join(A,".local/share");this._globalDataPath=Qg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function mQ(){return rg("data-paths-opentui",()=>new VU)}function fQ(){let A=mQ(),q={dataPath:A.globalDataPath};return rg("tree-sitter-client",()=>{let g=new LU(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class cQ{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,F])=>[E,{...F}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class WU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new cQ;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A<=F.start){this.editBuffer.setCursorByOffset(F.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let F=g-E.start,K=E.end-g;if(F<K)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}this.originalMoveDownVisual();let q=this.editorView.getVisualCursor().offset,g=this.findVirtualExtmarkContaining(q);if(g){let E=q-g.start,F=g.end-q;if(E<F)this.editorView.setCursorByOffset(g.start-1);else this.editorView.setCursorByOffset(g.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let F=this.findVirtualExtmarkContaining(A);if(F&&q<=F.start){this.originalSetCursorByOffset(F.end);return}}else for(let F of this.extmarks.values())if(F.virtual&&q>=F.end&&A<F.end&&A>=F.start){this.originalSetCursorByOffset(F.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let F=this.offsetToPosition(E.start),K=this.offsetToPosition(E.end),Z=E.start,j=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,F=this.findVirtualExtmarkContaining(E);if(F&&A===F.start){let K=this.offsetToPosition(F.start),Z=this.offsetToPosition(F.end),j=F.start,U=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(K.row,K.col,Z.row,Z.col),this.adjustExtmarksAfterDeletion(j,U),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let F=this.positionToOffset(A,q),Z=this.positionToOffset(g,E)-F;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(F,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let K=q-1;K>=0;K--)if(A[K]===`
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 G=Bun.stringWidth(q[U]);g+=G}break}}return A-E}create(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function dQ(A,q){return new WU(A,q)}var oK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,gQ=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function ij(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function EQ(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${ij(A)}${ij(q)}${ij(g)}`;return"#000000"}function x$(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class NU{stdin;stdout;writeFn;activeListeners=[];activeTimers=[];inLegacyTmux;constructor(A,q,g,E){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1}writeOsc(A){let q=this.inLegacyTmux?x$(A):A;return this.writeFn(q)}cleanup(){for(let{event:A,handler:q}of this.activeListeners)this.stdin.removeListener(A,q);this.activeListeners=[];for(let A of this.activeTimers)clearTimeout(A);this.activeTimers=[]}async detectOSCSupport(A=300){let q=this.stdout,g=this.stdin;if(!q.isTTY||!g.isTTY)return!1;return new Promise((E)=>{let F="",K=(G)=>{if(F+=G.toString(),oK.lastIndex=0,oK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let G=this.activeListeners.findIndex((M)=>M.handler===K);if(G!==-1)this.activeListeners.splice(G,1);let Y=this.activeTimers.indexOf(U);if(Y!==-1)this.activeTimers.splice(Y,1)},U=setTimeout(Z,A);this.activeTimers.push(U),g.on("data",K),this.activeListeners.push({event:"data",handler:K}),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=this.stdin,F=new Map;if(A.forEach((K)=>F.set(K,null)),!g.isTTY||!E.isTTY)return F;return new Promise((K)=>{let Z="",j=Date.now(),U=null,G=($)=>{Z+=$.toString(),j=Date.now();let _;oK.lastIndex=0;while(_=oK.exec(Z)){let N=parseInt(_[1],10);if(F.has(N))F.set(N,EQ(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((N)=>N!==null).length===F.size){M(),K(F);return}if(U)clearTimeout(U);if(U=setTimeout(()=>{M(),K(F)},150),U)this.activeTimers.push(U)},Y=()=>{M(),K(F)},M=()=>{if(clearTimeout(O),U)clearTimeout(U);E.removeListener("data",G);let $=this.activeListeners.findIndex((x)=>x.handler===G);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(O);if(_!==-1)this.activeTimers.splice(_,1);if(U){let x=this.activeTimers.indexOf(U);if(x!==-1)this.activeTimers.splice(x,1)}},O=setTimeout(Y,q);this.activeTimers.push(O),E.on("data",G),this.activeListeners.push({event:"data",handler:G}),this.writeOsc(A.map(($)=>`\x1B]4;${$};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g=this.stdin,E={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!g.isTTY)return E;return new Promise((F)=>{let K="",Z=null,j=(M)=>{K+=M.toString();let O;gQ.lastIndex=0;while(O=gQ.exec(K)){let _=parseInt(O[1],10);if(_ in E)E[_]=EQ(O[2],O[3],O[4],O[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){G(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{G(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{G(),F(E)},G=()=>{if(clearTimeout(Y),Z)clearTimeout(Z);g.removeListener("data",j);let M=this.activeListeners.findIndex(($)=>$.handler===j);if(M!==-1)this.activeListeners.splice(M,1);let O=this.activeTimers.indexOf(Y);if(O!==-1)this.activeTimers.splice(O,1);if(Z){let $=this.activeTimers.indexOf(Z);if($!==-1)this.activeTimers.splice($,1)}},Y=setTimeout(U,A);this.activeTimers.push(Y),g.on("data",j),this.activeListeners.push({event:"data",handler:j}),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let F=[...Array(g).keys()],[K,Z]=await Promise.all([this.queryPalette(F,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((j)=>K.get(j)??null),defaultForeground:Z[10],defaultBackground:Z[11],cursorColor:Z[12],mouseForeground:Z[13],mouseBackground:Z[14],tekForeground:Z[15],tekBackground:Z[16],highlightBackground:Z[17],highlightForeground:Z[19]}}}function pQ(A,q,g,E){return new NU(A,q,g,E)}function a$(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let K={left:0,center:1,right:2}[g];return E|=K<<5,E}class $g{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw new Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),F=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(eK(q,0,A*4)),fg:new Float32Array(eK(g,0,A*4*4)),bg:new Float32Array(eK(E,0,A*4*4)),attributes:new Uint32Array(eK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${$g.fbIdCounter++}`,this.lib=A,this.respectAlpha=F.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=F.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let F=Xq(),K=E.respectAlpha||!1,Z=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return F.createOptimizedBuffer(A,q,g,K,Z)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,F=[];for(let K=0;K<this._height;K++){let Z=[],j=null;for(let U=0;U<this._width;U++){let G=K*this._width+U,Y=A[G],M=OA.fromValues(q[G*4],q[G*4+1],q[G*4+2],q[G*4+3]),O=OA.fromValues(g[G*4],g[G*4+1],g[G*4+2],g[G*4+3]),$=E[G]&255,_=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(O)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:O,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=OA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,F,K)}setCellWithAlphaBlending(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,F,K)}drawText(A,q,g,E,F,K=0,Z){if(this.guard(),!Z){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,F,K);return}let{start:j,end:U}=Z,G,Y;if(Z.bgColor)G=Z.bgColor,Y=Z.fgColor||E;else{let M=F||OA.fromValues(0,0,0,0);Y=M.a>0?M:OA.fromValues(0,0,0,1),G=E}if(j>0){let M=A.slice(0,j);this.lib.bufferDrawText(this.bufferPtr,M,q,g,E,F,K)}if(U>j){let M=A.slice(j,U);this.lib.bufferDrawText(this.bufferPtr,M,q+j,g,Y,G,K)}if(U<A.length){let M=A.slice(U);this.lib.bufferDrawText(this.bufferPtr,M,q+U,g,E,F,K)}}fillRect(A,q,g,E,F){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,F)}drawFrameBuffer(A,q,g,E,F,K,Z){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,F,K,Z)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,F,K)}drawPackedBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,F,K)}drawGrayscaleBuffer(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,KQ(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,KQ(g),E,F,K,Z)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=jZ(A.borderStyle,"single"),g=A.customBorderChars??RQ[q],E=a$(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawChar(A,q,g,E,F,K=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,F,K)}}function C6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),new Error(q)}var wA=process.arch==="x64"||process.arch==="arm64"?8:4,ug={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:wA,i32:4},h$=Object.keys(ug);function AZ(A){return typeof A==="string"&&h$.includes(A)}var ZQ={...ug},z$={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>wA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function jQ(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function UQ(A,q){return A+(q-1)&~(q-1)}function GQ(A){throw new TypeError(`Invalid enum value: ${A}`)}function B$(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,F])=>[F,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??GQ(String(E))},from(E){return g[E]??GQ(String(E))},enum:A}}function YQ(A){return typeof A==="object"&&A.__type==="enum"}function sj(A){return typeof A==="object"&&A.__type==="struct"}function k6(A){let q,g;switch(A){case"u8":q=(E,F,K)=>E.setUint8(F,K),g=(E,F)=>E.getUint8(F);break;case"bool_u8":q=(E,F,K)=>E.setUint8(F,K?1:0),g=(E,F)=>Boolean(E.getUint8(F));break;case"bool_u32":q=(E,F,K)=>E.setUint32(F,K?1:0,!0),g=(E,F)=>Boolean(E.getUint32(F,!0));break;case"u16":q=(E,F,K)=>E.setUint16(F,K,!0),g=(E,F)=>E.getUint16(F,!0);break;case"i16":q=(E,F,K)=>E.setInt16(F,K,!0),g=(E,F)=>E.getInt16(F,!0);break;case"u32":q=(E,F,K)=>E.setUint32(F,K,!0),g=(E,F)=>E.getUint32(F,!0);break;case"i32":q=(E,F,K)=>E.setInt32(F,K,!0),g=(E,F)=>E.getInt32(F,!0);break;case"u64":q=(E,F,K)=>E.setBigUint64(F,BigInt(K),!0),g=(E,F)=>E.getBigUint64(F,!0);break;case"f32":q=(E,F,K)=>E.setFloat32(F,K,!0),g=(E,F)=>E.getFloat32(F,!0);break;case"f64":q=(E,F,K)=>E.setFloat64(F,K,!0),g=(E,F)=>E.getFloat64(F,!0);break;case"pointer":q=(E,F,K)=>{wA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=wA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:C6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:fA,unpack:z6}=k6("pointer");function w$(A){let q=new ArrayBuffer(A.length*wA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;fA(g,E*wA,K)}return g}var QQ=new TextEncoder,C$=new TextDecoder;function tq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[O,$,_={}]of A){if(_.condition&&!_.condition())continue;let x=0,N=0,L,P,k=!1,C=null;if(AZ($))x=ug[$],N=ZQ[$],{pack:L,unpack:P}=k6($);else if(typeof $==="string"&&$==="cstring")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r+"\x00")):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(typeof $==="string"&&$==="char*")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r)):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)},k=!0;else if(YQ($)){let a=$.type;x=ug[a],N=ZQ[a];let{pack:z}=k6(a);L=(r,c,gA)=>{let KA=$.to(gA);z(r,c,KA)},P=(r,c)=>{let gA=z$[a](r,c);return $.from(gA)}}else if(sj($))if(_.asPointer===!0)x=wA,N=wA,L=(a,z,r,c,gA)=>{if(!r){fA(a,z,null);return}let KA=$.pack(r,gA);fA(a,z,fg(KA))},P=(a,z)=>{throw new Error("Not implemented yet")};else x=$.size,N=$.align,L=(a,z,r,c,gA)=>{let KA=$.pack(r,gA),QA=new Uint8Array(KA);new Uint8Array(a.buffer).set(QA,z)},P=(a,z)=>{let r=a.buffer.slice(z,z+x);return $.unpack(r)};else if(jQ($))x=wA,N=wA,L=(a,z,r)=>{let c=r?.ptr??null;if(c===void 0)console.warn(`Field '${O}' expected object with '.ptr' property, but got undefined pointer value from:`,r),fA(a,z,null);else fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[a]=$;x=wA,N=wA;let z;if(YQ(a))z=ug[a.type],L=(c,gA,KA,QA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let RA=new ArrayBuffer(KA.length*z),mA=new DataView(RA);for(let SA=0;SA<KA.length;SA++){let Tq=a.to(KA[SA]);mA.setUint32(SA*z,Tq,!0)}fA(c,gA,fg(RA))},P=null,k=!0,C=a;else if(sj(a))z=a.size,L=(c,gA,KA,QA,RA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let mA=new ArrayBuffer(KA.length*z),SA=new DataView(mA);for(let Tq=0;Tq<KA.length;Tq++)a.packInto(KA[Tq],SA,Tq*z,RA);fA(c,gA,fg(mA))},P=(c,gA)=>{throw new Error("Not implemented yet")};else if(AZ(a)){z=ug[a];let{pack:c}=k6(a);L=(gA,KA,QA)=>{if(!QA||QA.length===0){fA(gA,KA,null);return}let RA=new ArrayBuffer(QA.length*z),mA=new DataView(RA);for(let SA=0;SA<QA.length;SA++)c(mA,SA*z,QA[SA]);fA(gA,KA,fg(RA))},P=null,k=!0,C=a}else if(jQ(a))z=wA,L=(c,gA,KA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let QA=w$(KA);fA(c,gA,fg(QA.buffer))},P=()=>{throw new Error("not implemented yet")};else throw new Error(`Unsupported array element type for ${O}: ${JSON.stringify(a)}`);let r=Object.values(K).find((c)=>c.lengthOf===O);if(r&&AZ(r.type)){let{pack:c}=k6(r.type);j[O]={elementSize:z,arrayOffset:g,lengthOffset:r.offset,lengthPack:c}}}else throw new Error(`Unsupported field type for ${O}: ${JSON.stringify($)}`);if(g=UQ(g,N),_.unpackTransform){let a=P;P=(z,r)=>_.unpackTransform(a(z,r))}if(_.packTransform){let a=L;L=(z,r,c,gA,KA)=>a(z,r,_.packTransform(c),gA,KA)}if(_.optional){let a=L;if(sj($)&&!_.asPointer)L=(z,r,c,gA,KA)=>{if(c||_.mapOptionalInline)a(z,r,c,gA,KA)};else L=(z,r,c,gA,KA)=>a(z,r,c??0,gA,KA)}if(_.lengthOf){let a=L;L=(z,r,c,gA,KA)=>{let QA=gA[_.lengthOf],RA=0;if(QA)if(typeof QA==="string")RA=Buffer.byteLength(QA);else RA=QA.length;return a(z,r,RA,gA,KA)}}let i;if(_.validate)i=Array.isArray(_.validate)?_.validate:[_.validate];let p={name:O,offset:g,size:x,align:N,validate:i,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:L,unpack:P,type:$,lengthOf:_.lengthOf};if(F.push(p),_.lengthOf)K[_.lengthOf]=p;if(k){let a=typeof $==="string"&&$==="char*"?"char*":C;if(!a)C6(`Internal error: needsLengthOf=true but def is null for ${O}`);Z.push({requester:p,def:a})}g+=x,E=Math.max(E,N)}for(let{requester:O,def:$}of Z){let _=K[O.name];if(!_){if($==="char*")continue;throw new Error(`lengthOf field not found for array field ${O.name}`)}if($==="char*")O.unpack=(x,N)=>{let L=z6(x,N),P=_.unpack(x,_.offset);if(L===0)return null;let k=typeof P==="bigint"?Number(P):P;if(k===0)return"";let C=tj(L,0,k);return C$.decode(C)};else if(AZ($)){let x=ug[$],{unpack:N}=k6($);O.unpack=(L,P)=>{let k=[],C=_.unpack(L,_.offset),i=z6(L,P);if(i===0n&&C>0)throw new Error(`Array field ${O.name} has null pointer but length ${C}.`);if(i===0n||C===0)return[];let p=tj(i,0,C*x),a=new DataView(p);for(let z=0;z<C;z++)k.push(N(a,z*x));return k}}else{let x=$.type==="u32"?4:8;O.unpack=(N,L)=>{let P=[],k=_.unpack(N,_.offset),C=z6(N,L);if(C===0n&&k>0)throw new Error(`Array field ${O.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let i=tj(C,0,k*x),p=new DataView(i);for(let a=0;a<k;a++)P.push($.from(p.getUint32(a*x,!0)));return P}}}let U=UQ(g,E),G=F.map((O)=>({name:O.name,offset:O.offset,size:O.size,align:O.align,optional:O.optional,type:O.type,lengthOf:O.lengthOf})),Y=new Map(G.map((O)=>[O.name,O])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(O,$){let _=new ArrayBuffer(U),x=new DataView(_),N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)C6(`Packing non-optional field '${L.name}' but value is undefined (and no default provided)`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:$?.validationHints,input:N});L.pack(x,L.offset,P,N,$)}return x.buffer},packInto(O,$,_,x){let N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)console.warn(`packInto missing value for non-optional field '${L.name}' at offset ${_+L.offset}. Writing default or zero.`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:x?.validationHints,input:N});L.pack($,_+L.offset,P,N,x)}},unpack(O){if(O.byteLength<U)C6(`Buffer size (${O.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(O),_=q?.default?{...q.default}:{};for(let x of F){if(!x.unpack)continue;try{_[x.name]=x.unpack($,x.offset)}catch(N){throw console.error(`Error unpacking field '${x.name}' at offset ${x.offset}:`,N),N}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(O,$){if(O.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*O.length),x=new DataView(_);for(let N=0;N<O.length;N++){let L=O[N];if(q?.mapValue)L=q.mapValue(O[N]);for(let P of F){let k=L[P.name]??P.default;if(!P.optional&&k===void 0)C6(`Packing non-optional field '${P.name}' at index ${N} but value is undefined (and no default provided)`);if(P.validate)for(let C of P.validate)C(k,P.name,{hints:$?.validationHints,input:L});P.pack(x,N*U+P.offset,k,L,$)}}return _},unpackList(O,$){if($===0)return[];let _=U*$;if(O.byteLength<_)C6(`Buffer size (${O.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let x=new DataView(O),N=[];for(let L=0;L<$;L++){let P=L*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(x,P+C.offset)}catch(i){throw console.error(`Error unpacking field '${C.name}' at index ${L}, offset ${P+C.offset}:`,i),i}}if(q?.reduceValue)N.push(q.reduceValue(k));else N.push(k)}return N},describe(){return G}}}var OQ=(A)=>A?k$(A.buffer):null,JQ=(A)=>A?OA.fromArray(new Float32Array(D$(A))):void 0,MQ=tq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["bg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["attributes","u32",{optional:!0}]]),qZ=tq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Iq=tq([["row","u32"],["col","u32"],["offset","u32"]]),Fq=tq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),y$=B$({wcwidth:0,unicode:1},"u8"),_Q=tq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",y$],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),$Q=tq([["width","u8"],["char","u32"]]),Og=tq([["starts",["u32"]],["startsLen","u32",{lengthOf:"starts"}],["widths",["u32"]],["widthsLen","u32",{lengthOf:"widths"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["maxWidth","u32"]]),XQ=tq([["lineCount","u32"],["maxWidth","u32"]]),HQ=tq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),b$=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),BE=b$.default;if(vQ(BE))BE=BE.replace("../","");if(!R$(BE))throw new Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);WA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});WA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});WA({name:"OPENTUI_NO_GRAPHICS",description:"Disable Kitty graphics protocol detection",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var cg=null,B6=null,LQ=!1;function v$(A){let g=P$(A||BE,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool"],returns:"ptr"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorStyle:{args:["ptr","ptr","u32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"}});if(XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)return{symbols:m$(g.symbols)};return g}function m$(A){if(!cg)cg={};if(XA.OTUI_DEBUG_FFI&&!B6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;B6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&B6){let E=B6,F=(K)=>{let Z=new TextEncoder().encode(K+`
12
- `);E.write(Z),E.flush()};Object.entries(A).forEach(([K,Z])=>{if(typeof Z==="function")q[K]=(...j)=>{F(`${K}(${j.map((G)=>String(G)).join(", ")})`);let U=Z(...j);return F(`${K} returned: ${String(U)}`),U}})}if(XA.OTUI_TRACE_FFI)g=!0,Object.entries(A).forEach(([E,F])=>{if(typeof F==="function"){if(!cg[E])cg[E]=[];let K=q[E];q[E]=(...Z)=>{let j=performance.now(),U=K(...Z),G=performance.now();return cg[E].push(G-j),U}}});if((XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)&&!LQ)LQ=!0,process.on("exit",()=>{try{if(B6)B6.end()}catch(E){}if(cg){let E=[];for(let[Z,j]of Object.entries(cg)){if(!Array.isArray(j)||j.length===0)continue;let U=[...j].sort((C,i)=>C-i),G=U.length,Y=U.reduce((C,i)=>C+i,0),M=Y/G,O=U[0],$=U[G-1],_=Math.floor(G/2),x=Math.floor(G*0.9),N=Math.floor(G*0.99),L=U[_],P=U[Math.min(x,G-1)],k=U[Math.min(N,G-1)];E.push({name:Z,count:G,total:Y,average:M,min:O,max:$,median:L,p90:P,p99:k})}E.sort((Z,j)=>j.total-Z.total);let F=[];if(F.push(`
13
- --- OpenTUI FFI Call Performance ---`),F.push("Sorted by total time spent (descending)"),F.push("-------------------------------------------------------------------------------------------------------------------------"),E.length===0)F.push("No trace data collected or all symbols had zero calls.");else{let x=Math.max(6,...E.map((z)=>z.name.length)),N=Math.max(5,...E.map((z)=>String(z.count).length)),L=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),P=Math.max(8,...E.map((z)=>z.average.toFixed(2).length)),k=Math.max(8,...E.map((z)=>z.min.toFixed(2).length)),C=Math.max(8,...E.map((z)=>z.max.toFixed(2).length)),i=Math.max(8,...E.map((z)=>z.median.toFixed(2).length)),p=Math.max(8,...E.map((z)=>z.p90.toFixed(2).length)),a=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(x)} | ${"Calls".padStart(N)} | ${"Total (ms)".padStart(L)} | ${"Avg (ms)".padStart(P)} | ${"Min (ms)".padStart(k)} | ${"Max (ms)".padStart(C)} | ${"Med (ms)".padStart(i)} | ${"P90 (ms)".padStart(p)} | ${"P99 (ms)".padStart(a)}`),F.push(`${"-".repeat(x)}-+-${"-".repeat(N)}-+-${"-".repeat(L)}-+-${"-".repeat(P)}-+-${"-".repeat(k)}-+-${"-".repeat(C)}-+-${"-".repeat(i)}-+-${"-".repeat(p)}-+-${"-".repeat(a)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(x)} | ${String(z.count).padStart(N)} | ${z.total.toFixed(2).padStart(L)} | ${z.average.toFixed(2).padStart(P)} | ${z.min.toFixed(2).padStart(k)} | ${z.max.toFixed(2).padStart(C)} | ${z.median.toFixed(2).padStart(i)} | ${z.p90.toFixed(2).padStart(p)} | ${z.p99.toFixed(2).padStart(a)}`)})}F.push("-------------------------------------------------------------------------------------------------------------------------");let K=F.join(`
14
- `);console.log(K);try{let U=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(U,K)}catch(Z){console.error("Failed to write FFI trace file:",Z)}}});return q}var uQ;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(uQ||={});class TU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new S$;_anyEventHandlers=[];constructor(A){this.opentui=v$(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new FQ((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=aE(g,0,F),Z=new Uint8Array(K),j=this.decoder.decode(Z);switch(q){case 0:console.error(j);break;case 1:console.warn(j);break;case 2:console.info(j);break;case 3:console.debug(j);break;default:console.log(j)}}catch(F){console.error("Error in Zig log callback:",F)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw new Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new FQ((q,g,E,F)=>{try{let K=typeof g==="bigint"?Number(g):g,Z=typeof F==="bigint"?Number(F):F;if(K===0||!q)return;let j=aE(q,0,K),U=new Uint8Array(j),G=this.decoder.decode(U),Y;if(Z>0&&E)Y=aE(E,0,Z).slice();else Y=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(G,Y);for(let M of this._anyEventHandlers)M(G,Y)})}catch(K){console.error("Error in native event callback:",K)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw new Error("Failed to create event callback");this.setEventCallback(A.ptr)}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={testing:!1}){return this.opentui.symbols.createRenderer(A,q,g.testing)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw new Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw new Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw new Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw new Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw new Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw new Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),F=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,F))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,F,K,Z){let j=this.encoder.encode(q),U=j.byteLength,G=K?K.buffer:null,Y=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,Y,G,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,G,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,G,U,Z??0)}bufferFillRect(A,q,g,E,F,K){let Z=K.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,F,Z)}bufferDrawSuperSampleBuffer(A,q,g,E,F,K,Z){let j=K==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,F,j,Z)}bufferDrawPackedBuffer(A,q,g,E,F,K,Z){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,F,K,Z)}bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawBox(A,q,g,E,F,K,Z,j,U,G){let Y=G?this.encoder.encode(G):null,M=G?Y.length:0,O=G?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,O,M)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorStyle(A,q,g){let E=this.encoder.encode(q);this.opentui.symbols.setCursorStyle(A,E,q.length,g)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(HQ.size);this.opentui.symbols.getCursorState(A,qA(q));let g=HQ.unpack(q),E={0:"block",1:"line",2:"underline"};return{x:g.x,y:g.y,visible:g.visible,style:E[g.style]||"block",blinking:g.blinking,color:OA.fromValues(g.r,g.g,g.b,g.a)}}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,F){if(Number.isNaN(A)||Number.isNaN(q))console.error(new Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let K=g==="wcwidth"?0:1,Z=F||"unnamed buffer",j=this.encoder.encode(Z),U=this.opentui.symbols.createOptimizedBuffer(A,q,E,K,j,j.length);if(!U)throw new Error(`Failed to create optimized buffer: ${A}x${q}`);return new $g(this,U,A,q,{respectAlpha:E,id:F,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,F,K,Z,j){let U=F??0,G=K??0,Y=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,G,Y,M)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}addToHitGrid(A,q,g,E,F,K){this.opentui.symbols.addToHitGrid(A,q,g,E,F,K)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,F){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,F)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,F,K){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,F,K)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,qA(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw new Error("Failed to create TextBuffer");return new YZ(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw new Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){let g=q.filter((K)=>K.text.length>0);if(g.length===0){this.textBufferClear(A);return}let E=g.map((K)=>{if(K.link){let Z=this.linkAlloc(K.link.url);return{...K,attributes:BQ(K.attributes??0,Z)}}return K}),F=MQ.packList(E);this.opentui.symbols.textBufferSetStyledText(A,qA(F),E.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.textBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}textBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw new Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,K,Z)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,F,j,U)}textBufferViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,F,K)}textBufferViewUpdateLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,F,j,U)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,F){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,F)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer(Og.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(XQ.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return XQ.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=qZ.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=qZ.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,qA(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,qA(g));if(!E)return[];let F=Number(g[0]),K=F*qZ.size,Z=aE(E,0,K),j=qZ.unpackList(Z,F);return this.opentui.symbols.textBufferFreeLineHighlights(E,F),j}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw new Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,F,K){this.opentui.symbols.editorViewSetViewport(A,q,g,E,F,K)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),F=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,qA(q),qA(g),qA(E),qA(F)),{offsetX:q[0],offsetY:g[0],width:E[0],height:F[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw new Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw new Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,F){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,F)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Iq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw new Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Iq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Iq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Iq.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.editBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}editBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}editorViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,K,Z)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,F,K,Z,j,U){let G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,G,Y,j,U)}editorViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,F,K)}editorViewUpdateLocalSelection(A,q,g,E,F,K,Z,j,U){let G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,G,Y,j,U)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,qA(q),qA(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),Fq.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),Fq.unpack(q)}bufferPushScissorRect(A,q,g,E,F){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,F)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(_Q.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=_Q.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,F=new ArrayBuffer(8),K=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,qA(F),qA(K),E))return null;let j=new BigUint64Array(F),U=new BigUint64Array(K),G=Number(j[0]),Y=Number(U[0]);if(Y===0)return{ptr:G,data:[]};let M=Y*$Q.size,O=aE(G,0,M),$=$Q.unpackList(O,Y);return{ptr:G,data:$}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,F,K,Z=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,F.buffer,K.buffer,Z)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw new Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,F){let K=this.encoder.encode(q),Z=g?g.buffer:null,j=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,K,K.length,Z,j,F)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((F)=>F.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=MQ.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,qA(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}var lQ,EZ;function Xq(){if(!EZ)try{EZ=new TU(lQ)}catch(A){throw new Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return EZ}try{EZ=new TU(lQ)}catch(A){}class YZ{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return Xq().createTextBuffer(A)}guard(){if(this._destroyed)throw new Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw new Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard();let q=A.chunks.map((g)=>({text:g.text,fg:g.fg||null,bg:g.bg||null,attributes:g.attributes??0,link:g.link}));this.lib.textBufferSetStyledText(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function c$(A,q){if(typeof q.width==="number"){if(q.width<0)throw new TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw new TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function m6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function xq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function Pq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}function cq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function d$(A){return A==="relative"||A==="absolute"}function p$(A){return A==="visible"||A==="hidden"||A==="scroll"}function gZ(A){return cq(A)}function VQ(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Jg(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}var iQ=Symbol.for("@opentui/core/Renderable"),tQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(tQ||={});var sQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(sQ||={});function y6(A){return!!A?.[iQ]}class bE extends f${[iQ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=bE.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}}var QZ=ZZ.Config.create();QZ.setUseWebDefaults(!1);QZ.setPointScaleFactor(1);class DA extends bE{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,DA.renderablesByNumber.set(this.num,this),c$(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=ZZ.Node.create(QZ),this.yogaNode.setDisplay(this._visible?_g.Flex:_g.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?_g.Flex:_g.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(y6(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(cq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(cq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(cq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(cq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(gZ(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(gZ(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,F)=>{let K=q==="y"?E.y:E.x,Z=q==="y"?F.y:F.x;return K-Z}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(VQ(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Jg(A.minWidth))q.setMinWidth(A.minWidth);if(Jg(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",F=typeof A.height==="number";this._flexShrink=E||F?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(gU(A.flexDirection)),q.setFlexWrap(ZU(A.flexWrap)),q.setAlignItems(qU(A.alignItems)),q.setJustifyContent(EU(A.justifyContent)),q.setAlignSelf(AU(A.alignSelf)),gZ(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(gZ(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(KU(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(FU(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Jg(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Jg(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(xq(A.margin))q.setMargin(n.Top,A.margin),q.setMargin(n.Right,A.margin),q.setMargin(n.Bottom,A.margin),q.setMargin(n.Left,A.margin);if(xq(A.marginTop))q.setMargin(n.Top,A.marginTop);if(xq(A.marginRight))q.setMargin(n.Right,A.marginRight);if(xq(A.marginBottom))q.setMargin(n.Bottom,A.marginBottom);if(xq(A.marginLeft))q.setMargin(n.Left,A.marginLeft);if(Pq(A.padding))q.setPadding(n.Top,A.padding),q.setPadding(n.Right,A.padding),q.setPadding(n.Bottom,A.padding),q.setPadding(n.Left,A.padding);if(Pq(A.paddingTop))q.setPadding(n.Top,A.paddingTop);if(Pq(A.paddingRight))q.setPadding(n.Right,A.paddingRight);if(Pq(A.paddingBottom))q.setPadding(n.Bottom,A.paddingBottom);if(Pq(A.paddingLeft))q.setPadding(n.Left,A.paddingLeft)}set position(A){if(!d$(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(KU(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!p$(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(FU(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:F,left:K}=A;if(cq(g))if(g==="auto")q.setPositionAuto(n.Top);else q.setPosition(n.Top,g);if(cq(E))if(E==="auto")q.setPositionAuto(n.Right);else q.setPosition(n.Right,E);if(cq(F))if(F==="auto")q.setPositionAuto(n.Bottom);else q.setPosition(n.Bottom,F);if(cq(K))if(K==="auto")q.setPositionAuto(n.Left);else q.setPosition(n.Left,K);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(gU(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(ZU(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(qU(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(EU(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(AU(A)),this.requestRender()}set flexBasis(A){if(VQ(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Jg(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Jg(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Jg(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Jg(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(xq(A)){let q=this.yogaNode;q.setMargin(n.Top,A),q.setMargin(n.Right,A),q.setMargin(n.Bottom,A),q.setMargin(n.Left,A),this.requestRender()}}set marginTop(A){if(xq(A))this.yogaNode.setMargin(n.Top,A),this.requestRender()}set marginRight(A){if(xq(A))this.yogaNode.setMargin(n.Right,A),this.requestRender()}set marginBottom(A){if(xq(A))this.yogaNode.setMargin(n.Bottom,A),this.requestRender()}set marginLeft(A){if(xq(A))this.yogaNode.setMargin(n.Left,A),this.requestRender()}set padding(A){if(Pq(A)){let q=this.yogaNode;q.setPadding(n.Top,A),q.setPadding(n.Right,A),q.setPadding(n.Bottom,A),q.setPadding(n.Left,A),this.requestRender()}}set paddingTop(A){if(Pq(A))this.yogaNode.setPadding(n.Top,A),this.requestRender()}set paddingRight(A){if(Pq(A))this.yogaNode.setPadding(n.Right,A),this.requestRender()}set paddingBottom(A){if(Pq(A))this.yogaNode.setPadding(n.Bottom,A),this.requestRender()}set paddingLeft(A){if(Pq(A))this.yogaNode.setPadding(n.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,F=this._heightValue;this._x=A.left,this._y=A.top;let K=Math.max(A.width,1),Z=Math.max(A.height,1),j=E!==K||F!==Z;if(this._widthValue=K,this._heightValue=Z,j)this.onLayoutResize(K,Z);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=$g.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=jU(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let F=g.getLayoutNode(),K=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(F,K),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),K}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=jU(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!y6(q))throw new Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),F=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(F,0,g),this.yogaNode.insertChild(g.getLayoutNode(),F),this._shouldUpdateBefore.add(g),this.requestRender(),F}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((K)=>K.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let F=this._childrenInZIndexOrder.findIndex((K)=>K.id===A);if(F!==-1)this._childrenInZIndexOrder.splice(F,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let K of this._shouldUpdateBefore)if(!K.isDestroyed)K.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let K=this.getScissorRect();q.push({action:"pushScissorRect",x:K.x,y:K.y,width:K.width,height:K.height,screenX:this.x,screenY:this.y})}let F=this._getVisibleChildren();for(let K of this._childrenInZIndexOrder){if(!F.includes(K.num)){K.updateFromLayout();continue}K.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),DA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}}class IU extends DA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=ZZ.Node.create(QZ),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(Kq.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,D6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var l$=Symbol.for("@opentui/core/VNode");function i$(A){return typeof A==="function"&&A.prototype&&DA.prototype.isPrototypeOf(A.prototype)}function nQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...nQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function rQ(A){return A&&A[l$]}function jU(A,q){if(y6(q))return q;if(rQ(q))return KZ(A,q);return console.warn("maybeMakeRenderable received an invalid node",u$.inspect(q,{depth:2})),null}function UU(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(K)=>{if(g.has(K)){let j=g.get(K);if(j!==void 0)return j}let Z=A.findDescendantById(K);if(Z)g.set(K,Z);return Z};return new Proxy(A,{get(K,Z,j){if(typeof Z==="string"&&q[Z]){let U=E(q[Z]);if(U){let G=U[Z];if(typeof G==="function")return G.bind(U);return G}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let G=E(q[Z]);if(G)return Reflect.set(G,Z,j)}return Reflect.set(K,Z,j,U)}})}function KZ(A,q){if(y6(q))return q;if(!q||typeof q!=="object")throw new TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=nQ(g.children||[]),Z=g.__delegateMap;if(i$(E)){let G=new E(A,F||{});for(let O of K)if(y6(O))G.add(O);else{let $=KZ(A,O);G.add($)}let Y=UU(G,Z),M=g.__pendingCalls;if(M)for(let O of M)if(O.isProperty)Y[O.method]=O.args[0];else Y[O.method].apply(Y,O.args);return Y}let j=E(F||{},K),U=KZ(A,j);return UU(U,Z)}class eQ extends o${output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}}class GU extends r${stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}}var kE={enter:"return",esc:"escape"};function DE(A,q){return{...A,...q}}function tg(A,q){let g=new Map;for(let E of A){let F=ng(E);g.set(F,E)}for(let E of q){let F=ng(E);g.set(F,E)}return Array.from(g.values())}function ng(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function sg(A,q){let g=new Map,E=q||{};for(let F of A){let K=ng(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=ng({...F,name:K});g.set(Z,F.action)}}return g}function e$(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function AX(){let q=new Error().stack?.split(`
15
- `).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,F=g.match(E);if(!F)return null;let K=F[1]||"<anonymous>",Z=F[2],j=Z.split(/[\\/]/).pop()||"<unknown>",U=parseInt(F[3],10)||0,G=parseInt(F[4],10)||0;return{functionName:K,fullPath:Z,fileName:j,lineNumber:U,columnNumber:G}}var Mq=rg("ConsoleCapture",()=>new eQ);WA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});class AO extends oQ{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!XA.OTUI_USE_CONSOLE)return;let A=new GU("stdout",Mq),q=new GU("stderr",Mq);global.console=new t$({stdout:A,stderr:q,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){console.log=(...A)=>{this.appendToConsole("LOG",...A)},console.info=(...A)=>{this.appendToConsole("INFO",...A)},console.warn=(...A)=>{this.appendToConsole("WARN",...A)},console.error=(...A)=>{this.appendToConsole("ERROR",...A)},console.debug=(...A)=>{this.appendToConsole("DEBUG",...A)}}setCollectCallerInfo(A){this._collectCallerInfo=A}clearConsole(){this._cachedLogs=[]}setCachingEnabled(A){this._cachingEnabled=A}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole;this.setupConsoleCapture()}addLogEntry(A,...q){let g=this._collectCallerInfo?AX():null,E=[new Date,A,q,g];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(E)}return E}appendToConsole(A,...q){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let g=this.addLogEntry(A,...q);this.emit("entry",g)}destroy(){this.deactivate()}}var uA=rg("TerminalConsoleCache",()=>{let A=new AO;return process.on("exit",()=>{A.destroy()}),A}),qO;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(qO||={});var nj=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],qX={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:OA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:OA.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:OA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Mg=2;class xU extends oQ{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isSelecting=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let A=this._mergedKeyBindings.filter((g)=>g.action==="copy-selection"),q=A[A.length-1];if(q)return`[Copy (${e$(q)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(A,q={}){super();if(this.renderer=A,this.options={...qX,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,uA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=u(this.options.colorInfo),this._rgbaWarn=u(this.options.colorWarn),this._rgbaError=u(this.options.colorError),this._rgbaDebug=u(this.options.colorDebug),this._rgbaDefault=u(this.options.colorDefault),this.backgroundColor=u(this.options.backgroundColor),this._rgbaTitleBar=u(this.options.titleBarColor),this._rgbaTitleBarText=u(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=u(this.options.cursorColor),this._rgbaSelection=u(this.options.selectionColor),this._rgbaCopyButton=u(this.options.copyButtonColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},uA.on("entry",this._entryListener),XA.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){uA.activate()}deactivate(){uA.deactivate()}_handleNewLog(A){if(!this.isVisible)return;if(this._allLogEntries.push(A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let q=this._processLogEntry(A);if(this._displayLines.push(...q),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let g=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-g)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(A,q){let g=A??this.renderer.width,E=q??this.renderer.height,F=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=g,this.consoleHeight=Math.max(1,Math.floor(E*F));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(E*F)),this.consoleWidth=g,this.consoleX=0,this.consoleY=E-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleY=0,this.consoleX=g-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(A){if(A.name==="escape"){this.blur();return}let q=ng({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"scroll-up"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E){E();return}}}scrollUp(){let A=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let A=this._displayLines.length,q=Math.max(1,this.consoleHeight-1),g=Math.max(0,A-q);if(this.currentLineIndex<q-1&&this.scrollTopIndex+this.currentLineIndex<A-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<g)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===g,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let A=Math.max(1,this.consoleHeight-1),q=Math.max(0,this._displayLines.length-A);if(this.scrollTopIndex<q||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let q=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let q=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(A){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(A)}formatArguments(A){return A.map((q)=>{if(q instanceof Error){let g=q;return`Error: ${g.message}
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 WQ.inspect(q,{depth:2})}catch(g){return String(q)}try{return WQ.inspect(q,{depth:2})}catch(g){return String(q)}}).join(" ")}resize(A,q){if(this._updateConsoleDimensions(A,q),this.frameBuffer){this.frameBuffer.resize(this.consoleWidth,this.consoleHeight);let g=this._displayLines.length,E=Math.max(1,this.consoleHeight-1),F=Math.max(0,g-E);this.scrollTopIndex=Math.min(this.scrollTopIndex,F),this.isScrolledToBottom=this.scrollTopIndex===F;let K=Math.min(E,g-this.scrollTopIndex);if(this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,K-1)),this.isVisible)this.markNeedsRerender()}}clear(){uA.clearConsole(),this._allLogEntries=[],this._displayLines=[],this.markNeedsRerender()}toggle(){if(this.isVisible)if(this.isFocused)this.hide();else this.focus();else this.show();if(!this.renderer.isRunning)this.renderer.requestRender()}focus(){this.attachStdin(),this._scrollToBottom(!0),this.markNeedsRerender()}blur(){this.detachStdin(),this.markNeedsRerender()}show(){if(!this.isVisible){if(this.isVisible=!0,this._processCachedLogs(),uA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=$g.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=uA.cachedLogs.length,q=Math.min(this.consoleHeight,A);this.currentLineIndex=Math.max(0,q-1),this.scrollTopIndex=0,this._scrollToBottom(!0),this.focus(),this.markNeedsRerender()}}hide(){if(this.isVisible)this.isVisible=!1,this.blur(),uA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),uA.off("entry",this._entryListener)}getCachedLogs(){return uA.cachedLogs.map((A)=>A[0].toISOString()+" "+A.slice(1).join(" ")).join(`
18
- `)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let A=this._displayLines,q=A.length,g=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let E=`${this._title}${this.isFocused?" (Focused)":""}`,F=Math.max(0,Math.floor((this.consoleWidth-E.length)/2));this.frameBuffer.drawText(E,F,0,this._rgbaTitleBarText,this._rgbaTitleBar);let K=this.getCopyButtonLabel(),Z=this.consoleWidth-K.length-1;if(Z>=0){let M=this.hasSelection(),O=OA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:O;this.frameBuffer.drawText(K,Z,0,$,this._rgbaTitleBar),this._copyButtonBounds={x:Z,y:0,width:K.length,height:1}}else this._copyButtonBounds={x:-1,y:-1,width:0,height:0};let j=this.scrollTopIndex,U=Math.min(j+g,q),G=A.slice(j,U),Y=1;for(let M=0;M<G.length;M++){if(Y>=this.consoleHeight)break;let O=G[M],$=j+M,_=this._rgbaDefault;switch(O.level){case"INFO":_=this._rgbaInfo;break;case"WARN":_=this._rgbaWarn;break;case"ERROR":_=this._rgbaError;break;case"DEBUG":_=this._rgbaDebug;break}let x=O.indent?" ".repeat(Mg):"",N=O.text,L=this.consoleWidth-1-(O.indent?Mg:0);if(this.isFocused&&Y-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,Y,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,Y,this._rgbaDefault,this.backgroundColor);let k=`${x}${N.substring(0,L)}`,C=this.getLineSelectionRange($);if(C){let i=Math.max(0,C.start),p=Math.min(k.length,C.end);if(i>0)this.frameBuffer.drawText(k.substring(0,i),1,Y,_);if(i<p)this.frameBuffer.fillRect(1+i,Y,p-i,1,this._rgbaSelection),this.frameBuffer.drawText(k.substring(i,p),1+i,Y,_,this._rgbaSelection);if(p<k.length)this.frameBuffer.drawText(k.substring(p),1+p,Y,_)}else this.frameBuffer.drawText(k,1,Y,_);Y++}}renderToBuffer(A){if(!this.isVisible||!this.frameBuffer)return;if(this._needsFrameBufferUpdate)this.updateFrameBuffer(),this._needsFrameBufferUpdate=!1;A.drawFrameBuffer(this.consoleX,this.consoleY,this.frameBuffer)}setDebugMode(A){if(this._debugModeEnabled=A,uA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=tg(nj,A),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=DE(kE,A),this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set onCopySelection(A){this.options.onCopySelection=A}get onCopySelection(){return this.options.onCopySelection}_scrollToBottom(A=!1){let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);this.scrollTopIndex=E,this.isScrolledToBottom=!0;let F=Math.min(g,q-this.scrollTopIndex);if(A||this.currentLineIndex>=F)this.currentLineIndex=Math.max(0,F-1)}_processLogEntry(A){let[q,g,E,F]=A,K=[],Z=this.formatTimestamp(q),j=F?`${F.fileName}:${F.lineNumber}`:"unknown",U=`[${Z}] [${g}]`+(this._debugModeEnabled?` [${j}]`:"")+" ",Y=this.formatArguments(E).split(`
19
- `);for(let M=0;M<Y.length;M++){let O=Y[M],$=M===0,_=this.consoleWidth-1-($?0:Mg),x=$?U:" ".repeat(Mg),N=$?x+O:O,L=0;while(L<N.length||$&&L===0&&N.length===0){let P=N.substring(L,L+_),k=L===0;if(K.push({text:k&&!$?x+P:P,level:g,indent:!$||!k}),L+=_,$&&L===0&&N.length===0)break}}return K}_processCachedLogs(){let A=[...uA.cachedLogs];if(uA.clearConsole(),this._allLogEntries.push(...A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);for(let q of A){let g=this._processLogEntry(q);this._displayLines.push(...g)}if(this._displayLines.length>this.options.maxDisplayLines)this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines)}hasSelection(){if(this._selectionStart===null||this._selectionEnd===null)return!1;return this._selectionStart.line!==this._selectionEnd.line||this._selectionStart.col!==this._selectionEnd.col}normalizeSelection(){if(!this._selectionStart||!this._selectionEnd)return null;let A=this._selectionStart,q=this._selectionEnd;if(A.line<q.line||A.line===q.line&&A.col<=q.col)return{startLine:A.line,startCol:A.col,endLine:q.line,endCol:q.col};else return{startLine:q.line,startCol:q.col,endLine:A.line,endCol:A.col}}getSelectedText(){let A=this.normalizeSelection();if(!A)return"";let q=[];for(let g=A.startLine;g<=A.endLine;g++){if(g<0||g>=this._displayLines.length)continue;let E=this._displayLines[g],F=E.indent?" ".repeat(Mg):"",K=this.consoleWidth-1-(E.indent?Mg:0),Z=F+E.text.substring(0,K),j=Z;if(g===A.startLine&&g===A.endLine)j=Z.substring(A.startCol,A.endCol);else if(g===A.startLine)j=Z.substring(A.startCol);else if(g===A.endLine)j=Z.substring(0,A.endCol);q.push(j)}return q.join(`
20
- `)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isSelecting=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let F=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(F,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(Mg):"",F=this.consoleWidth-1-(g.indent?Mg:0),K=E.length+Math.min(g.text.length,F),Z=0,j=K;if(A===q.startLine)Z=Math.max(0,q.startCol);if(A===q.endLine)j=Math.min(K,q.endCol);if(Z>=j)return null;return{start:Z,end:j}}handleMouse(A){if(!this.isVisible)return!1;let q=A.x-this.consoleX,g=A.y-this.consoleY;if(q<0||q>=this.consoleWidth||g<0||g>=this.consoleHeight)return!1;if(A.type==="scroll"&&A.scroll){if(A.scroll.direction==="up")this.scrollUp();else if(A.scroll.direction==="down")this.scrollDown();return!0}if(g===0){if(A.type==="down"&&A.button===0&&q>=this._copyButtonBounds.x&&q<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let E=this.scrollTopIndex+(g-1),F=Math.max(0,q-1);if(A.type==="down"&&A.button===0)return this.clearSelection(),this._selectionStart={line:E,col:F},this._selectionEnd={line:E,col:F},this._isSelecting=!0,this.markNeedsRerender(),!0;if(A.type==="drag"&&this._isSelecting){this._selectionEnd={line:E,col:F};let K=Math.max(1,this.consoleHeight-1),Z=g-1;if(Z<=0)this.startAutoScroll("up");else if(Z>=K-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(A.type==="up"){if(this._isSelecting)this._selectionEnd={line:E,col:F},this._isSelecting=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let q=`_console_${Date.now()}.log`,g=n$.join(process.cwd(),q),E=[...this._allLogEntries,...uA.cachedLogs],F=[];for(let[Z,j,U,G]of E){let Y=this.formatTimestamp(Z),M=G?`${G.fileName}:${G.lineNumber}`:"unknown",O=`[${Y}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(O+$)}let K=F.join(`
21
- `);s$.writeFileSync(g,K,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}}var fq={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(A)=>`\x1B[${A}T`,scrollUp:(A)=>`\x1B[${A}S`,moveCursor:(A,q)=>`\x1B[${A};${q}H`,moveCursorAndClear:(A,q)=>`\x1B[${A};${q}H\x1B[J`,setRgbBackground:(A,q,g)=>`\x1B[48;2;${A};${q};${g}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};function PU(A,q,g="column",E=10,F=16){if(A.width<=0||A.height<=0)return[];if(q.length===0)return[];if(q.length<F)return q;let K=A.y-E,Z=A.y+A.height+E,j=A.x-E,U=A.x+A.width+E,G=g==="row",Y=q,M=Y.length;if(M===0)return[];let O=G?j:K,$=G?U:Z,_=0,x=M-1,N=-1;while(_<=x){let p=_+x>>1,a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<O)_=p+1;else if(z>$)x=p-1;else{N=p;break}}let L=[];if(N===-1)N=_>0?_-1:0;let P=50,k=N,C=0;while(k-1>=0){let p=Y[k-1];if((G?p.x+p.width:p.y+p.height)<=O){if(C++,C>=P)break}else C=0;k--}let i=N+1;while(i<M){let p=Y[i];if((G?p.x:p.y)>=$)break;i++}for(let p=k;p<i;p++){let a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<=O)continue;if(z>=$)break;if(G){if(a.y+a.height<K)continue;if(a.y>Z)continue}else{if(a.x+a.width<j)continue;if(a.x>U)continue}L.push(a)}if(L.length>1)L.sort((p,a)=>p.zIndex>a.zIndex?1:p.zIndex<a.zIndex?-1:0);return L}function EX(A){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(A))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(A))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(A))return!0;if(/\x1b\[\?[0-9;]*c/.test(A))return!0;return!1}function FX(A){return/\x1b\[4;\d+;\d+t/.test(A)}function KX(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}WA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});WA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});WA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});WA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});WA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});var gO=1,ZX=2,EO=4,jX=8,UX=16;function FO(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=gO;if(A.alternateKeys!==!1)q|=EO;if(A.events===!0)q|=ZX;if(A.allKeysAsEscapes===!0)q|=jX;if(A.reportText===!0)q|=UX;return q}class kA{type;button;x;y;source;modifiers;scroll;target;isSelecting;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isSelecting=q.isSelecting}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}var KO;((A)=>{A[A.LEFT=0]="LEFT",A[A.MIDDLE=1]="MIDDLE",A[A.RIGHT=2]="RIGHT",A[A.WHEEL_UP=4]="WHEEL_UP",A[A.WHEEL_DOWN=5]="WHEEL_DOWN"})(KO||={});var NQ=rg("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),j$("tree-sitter-client"))fQ().destroy(),Z$("tree-sitter-client")}}}});async function RU(A={}){if(process.argv.includes("--delay-start"))await new Promise((M)=>setTimeout(M,5000));let q=A.stdin||process.stdin,g=A.stdout||process.stdout,E=g.columns||80,F=g.rows||24,K=A.experimental_splitHeight&&A.experimental_splitHeight>0?A.experimental_splitHeight:F,Z=Xq(),j=Z.createRenderer(E,K);if(!j)throw new Error("Failed to create renderer");if(A.useThread===void 0)A.useThread=!0;if(process.platform==="linux")A.useThread=!1;Z.setUseThread(j,A.useThread);let U=A.useKittyKeyboard??{},G=FO(U);Z.setKittyKeyboardFlags(j,G);let Y=new OZ(Z,j,q,g,E,F,A);return await Y.setupTerminal(),Y}var ZO;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(ZO||={});var jO;((A)=>{A.IDLE="idle",A.AUTO_STARTED="auto_started",A.EXPLICIT_STARTED="explicit_started",A.EXPLICIT_PAUSED="explicit_paused",A.EXPLICIT_SUSPENDED="explicit_suspended",A.EXPLICIT_STOPPED="explicit_stopped"})(jO||={});class OZ extends gX{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;targetFps=30;maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=OA.fromInts(0,0,0,0);waitingForPixelResolution=!1;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this.targetFps;minTargetFrameTime=1000/this.maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:XA.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;_stdinBuffer;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;_useAlternateScreen=XA.OTUI_USE_ALTERNATE_SCREEN;_suspendedMouseEnabled=!1;_previousControlState="idle";capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];_splitHeight=0;renderOffset=0;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;realStdoutWrite;captureCallback=()=>{if(this._splitHeight>0)this.requestRender()};_useConsole=!0;mouseParser=new CE;sigwinchHandler=(()=>{let A=this.stdout.columns||80,q=this.stdout.rows||24;this.handleResize(A,q)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_cachedPalette=null;_paletteDetectionPromise=null;_onDestroy;inputHandlers=[];prependedInputHandlers=[];idleResolvers=[];_debugInputs=[];_debugModeEnabled=XA.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=Mq.claimOutput();if(g.length>0||q.length>0)this.realStdoutWrite.call(this.stdout,A);if(q.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
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,fq.reset)}exitHandler=(()=>{if(this.destroy(),XA.OTUI_DUMP_CAPTURES)Bun.sleep(100).then(()=>{this.dumpOutputCache(`=== CAPTURED OUTPUT ===
26
- `)})}).bind(this);warningHandler=((A)=>{console.warn(JSON.stringify(A.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(A,q,g,E,F,K,Z={}){super();if(NQ.addRenderer(this),this.stdin=g,this.stdout=E,this.realStdoutWrite=E.write,this.lib=A,this._terminalWidth=E.columns??F,this._terminalHeight=E.rows??K,this.width=F,this.height=K,this._useThread=Z.useThread===void 0?!1:Z.useThread,this._splitHeight=Z.experimental_splitHeight||0,this._splitHeight>0)Mq.on("write",this.captureCallback),this.renderOffset=K-this._splitHeight,this.height=this._splitHeight,A.setRenderOffset(q,this.renderOffset);if(this.rendererPtr=q,this.exitOnCtrlC=Z.exitOnCtrlC===void 0?!0:Z.exitOnCtrlC,this.exitSignals=Z.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS","SIGFPE"],this.resizeDebounceDelay=Z.debounceDelay||100,this.targetFps=Z.targetFps||30,this.maxFps=Z.maxFps||60,this.targetFrameTime=1000/this.targetFps,this.minTargetFrameTime=1000/this.maxFps,this.memorySnapshotInterval=Z.memorySnapshotInterval??0,this.gatherStats=Z.gatherStats||!1,this.maxStatSamples=Z.maxStatSamples||300,this.enableMouseMovement=Z.enableMouseMovement??!0,this._useMouse=Z.useMouse??!0,this._useAlternateScreen=Z.useAlternateScreen??XA.OTUI_USE_ALTERNATE_SCREEN,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=Z.postProcessFns||[],this.prependedInputHandlers=Z.prependInputHandlers||[],this.root=new IU(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(XA.OTUI_OVERRIDE_STDOUT)this.stdout.write=this.interceptStdoutWrite.bind(this);process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(Z.useKittyKeyboard??{})!==null;if(this._keyHandler=new OU(U),this._keyHandler.on("keypress",(Y)=>{if(this.exitOnCtrlC&&Y.name==="c"&&Y.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new _U({timeout:5}),this._console=new xU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(Y)=>{let M=OZ.animationFrameId++;return this.animationRequest.set(M,Y),this.requestLive(),M},global.cancelAnimationFrame=(Y)=>{this.animationRequest.delete(Y)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,XA.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.addListener(A,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.removeListener(A,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(A){this.lifecyclePasses.add(A)}unregisterLifecyclePass(A){this.lifecyclePasses.delete(A)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}focusRenderable(A){if(this._currentFocusedRenderable===A)return;if(this._currentFocusedRenderable)this._currentFocusedRenderable.blur();this._currentFocusedRenderable=A}setCapturedRenderable(A){if(this.capturedRenderable===A)return;this.capturedRenderable=A}addToHitGrid(A,q,g,E,F){if(F!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,A,q,g,E,F)}pushHitGridScissorRect(A,q,g,E){this.lib.hitGridPushScissorRect(this.rendererPtr,A,q,g,E)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}writeOut(A,q,g){if(this.rendererPtr&&this._useThread){let E=typeof A==="string"?A:A?.toString()??"";if(this.lib.writeOut(this.rendererPtr,E),typeof g==="function")process.nextTick(g);return!0}return this.realStdoutWrite.call(this.stdout,A,q,g)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let q=Date.now()-this.lastTime,g=Math.max(this.minTargetFrameTime-q,0);if(g===0){process.nextTick(()=>this.activateFrame());return}setTimeout(()=>this.activateFrame(),g)}}async activateFrame(){await this.loop(),this.updateScheduled=!1,this.resolveIdleIfNeeded()}get useConsole(){return this._useConsole}set useConsole(A){if(this._useConsole=A,A)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let A=this.idleResolvers.splice(0);for(let q of A)q()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((A)=>{this.idleResolvers.push(A)})}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get useMouse(){return this._useMouse}set useMouse(A){if(this._useMouse===A)return;if(this._useMouse=A,A)this.enableMouse();else this.disableMouse()}get experimental_splitHeight(){return this._splitHeight}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(A){let q=A?gO|EO:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,q)}set experimental_splitHeight(A){if(A<0)A=0;let q=this._splitHeight;if(A>0){if(this._splitHeight=A,this.renderOffset=this._terminalHeight-this._splitHeight,this.height=this._splitHeight,q===0){this.useConsole=!1,Mq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=fq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Mq.off("write",this.captureCallback),this.useConsole=!0;this._splitHeight=0,this.renderOffset=0,this.height=this._terminalHeight}this.width=this._terminalWidth,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset),this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}interceptStdoutWrite=(A,q,g)=>{let E=A.toString();if(Mq.write("stdout",E),this._splitHeight>0)this.requestRender();if(typeof g==="function")process.nextTick(g);return!0};disableStdoutInterception(){this.stdout.write=this.realStdoutWrite}flushStdoutCache(A,q=!1){if(Mq.size===0&&!q)return!1;let g=Mq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=fq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=fq.moveCursor(K,1),j="";if(A>0){let U=this.backgroundColor.toInts(),G=" ".repeat(this.width)+`
27
- `.repeat(A);if(U[3]===0)j=G;else j=fq.setRgbBackground(U[0],U[1],U[2])+G+fq.resetBackground}return this.writeOut(F+Z+g+j),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.mouseParser.reset(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{if(this._useMouse&&this.handleMouseData(A))return;this._stdinBuffer.process(A)}).bind(this);addInputHandler(A){this.inputHandlers.push(A)}prependInputHandler(A){this.inputHandlers.unshift(A)}removeInputHandler(A){this.inputHandlers=this.inputHandlers.filter((q)=>q!==A)}capabilityHandler=((A)=>{if(EX(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I")return this.emit("focus"),!0;if(A==="\x1B[O")return this.emit("blur"),!0;return!1}).bind(this);setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(FX(A)&&this.waitingForPixelResolution){let q=KX(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler((A)=>{return this._keyHandler.processInput(A)}),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.setEncoding("utf8"),this.stdin.on("data",this.stdinListener),this._stdinBuffer.on("data",(A)=>{if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.inputHandlers)if(q(A))return}),this._stdinBuffer.on("paste",(A)=>{this._keyHandler.processPaste(A)})}handleMouseData(A){let q=this.mouseParser.parseMouseEvent(A);if(q){if(this._splitHeight>0){if(q.y<this.renderOffset)return!1;q.y-=this.renderOffset}if(this._latestPointer.x=q.x,this._latestPointer.y=q.y,this._hasPointer=!0,this._lastPointerModifiers=q.modifiers,this._console.visible){let Z=this._console.bounds;if(q.x>=Z.x&&q.x<Z.x+Z.width&&q.y>=Z.y&&q.y<Z.y+Z.height){let j=new kA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=DA.renderablesByNumber.get(Z);if(j){let U=new kA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=DA.renderablesByNumber.get(g);if(q.type==="down"&&q.button===0&&!this.currentSelection?.isSelecting&&!q.modifiers.ctrl){if(F&&F.selectable&&!F.isDestroyed&&F.shouldStartSelection(q.x,q.y)){this.startSelection(F,q.x,q.y);let Z=new kA(F,q);return F.processMouseEvent(Z),!0}}if(q.type==="drag"&&this.currentSelection?.isSelecting){if(this.updateSelection(F,q.x,q.y),F){let Z=new kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return this.finishSelection(),!0}if(q.type==="down"&&q.button===0&&this.currentSelection){if(q.modifiers.ctrl)return this.currentSelection.isSelecting=!0,this.updateSelection(F,q.x,q.y),!0}if(!E&&(q.type==="drag"||q.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable){let Z=new kA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new kA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new kA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new kA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new kA(this.capturedRenderable,q)),F){let j=new kA(F,{...q,type:"drop",source:this.capturedRenderable});F.processMouseEvent(j)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let K=void 0;if(F){if(q.type==="drag"&&q.button===0)this.setCapturedRenderable(F);else this.setCapturedRenderable(void 0);K=new kA(F,q),F.processMouseEvent(K)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!K?.defaultPrevented&&q.type==="down"&&this.currentSelection)this.clearSelection();return!0}return!1}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=DA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g){let F=new kA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new kA(q,{...E,type:"over"});q.processMouseEvent(F)}}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.mouseParser.reset(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,F=fq.moveCursorAndClear(E,1);this.writeOut(F)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=u(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){Xq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Xq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Xq().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A,q=!1,g){if(this.lib.setCursorStyle(this.rendererPtr,A,q),g)this.lib.setCursorColor(this.rendererPtr,g)}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this._stdinBuffer.clear(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){this._isRunning=!1}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),Mq.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this._stdinBuffer.destroy(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdin.removeListener("data",this.stdinListener),this.lib.destroyRenderer(this.rendererPtr),NQ.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),F=Array.from(this.animationRequest.values());this.animationRequest.clear();let K=performance.now();for(let Y of F)Y(g),this.dropLive();let j=performance.now()-K,U=performance.now();for(let Y of this.frameCallbacks)try{await Y(g)}catch(M){console.error("Error in frame callback:",M)}let G=performance.now();this.renderStats.frameCallbackTime=G-U,this.root.render(this.nextRenderBuffer,g);for(let Y of this.postProcessFns)Y(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let Y=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,Y,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(Y);if(this._isRunning||this.immediateRerenderRequested){let M=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,O=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},O)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),new Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((K,Z)=>K+Z,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,F=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:F}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new $U(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},this.selectionContainers.length>0){let E=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,E)){let F=E.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isSelecting){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=DA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isSelecting=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let F=PU(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let K of F){if(K.selectable){if(K.onSelectionChanged(this.currentSelection))g.push(K);E.push(K)}if(K.getChildrenCount()>0)this.walkSelectableRenderables(K,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw new Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=pQ(this.stdin,this.stdout,this.writeOut.bind(this),g)}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}import{EventEmitter as GX}from"events";class kU{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Xq(),g=q.createTextBufferView(A.ptr);return new kU(q,g,A)}guard(){if(this._destroyed)throw new Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}updateLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class nq extends GX{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),nq.registry.set(this.id,this),nq.subscribeToNativeEvents(A)}static create(A){let q=Xq(),g=q.createEditBuffer(A);return new nq(q,g)}static subscribeToNativeEvents(A){if(nq.nativeEventsSubscribed)return;nq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=nq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw new Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let F=1048576,K=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,F);if(!K)return"";return this.lib.decoder.decode(K)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,nq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class DU{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=Xq(),F=E.createEditorView(A.ptr,q,g);return new DU(E,F,A)}guard(){if(this._destroyed)throw new Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,F=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,F)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}updateLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=dQ(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function YX(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=u(g.style.foreground);if(g.style.background)E.bg=u(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let F of g.scope)q[F]=E}return q}class pE{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=Xq(),q=A.createSyntaxStyle();return new pE(A,q)}static fromTheme(A){let q=pE.create(),g=YX(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=pE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw new Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=wE({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let Z of A){let j=this.getStyle(Z);if(!j)continue;if(j.fg)E.fg=j.fg;if(j.bg)E.bg=j.bg;if(j.bold!==void 0)E.bold=j.bold;if(j.italic!==void 0)E.italic=j.italic;if(j.underline!==void 0)E.underline=j.underline;if(j.dim!==void 0)E.dim=j.dim}let F=wE({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),K={fg:E.fg,bg:E.bg,attributes:F};return this.mergedCache.set(q,K),K}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class LO{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}var FW=new LO;function f6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}class b extends DA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(this._backgroundColor=u(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=jZ(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=u(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=u(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?lg(this._customBorderCharsObj):void 0,this.borderSides=UZ(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=UZ(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?lg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=u(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=UZ(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=jZ(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=u(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=u(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,F=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-F)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(n.Left,this.borderSides.left?1:0),A.setBorder(n.Right,this.borderSides.right?1:0),A.setBorder(n.Top,this.borderSides.top?1:0),A.setBorder(n.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(f6(A.gap))q.setGap($q.All,A.gap);if(f6(A.rowGap))q.setGap($q.Row,A.rowGap);if(f6(A.columnGap))q.setGap($q.Column,A.columnGap)}set gap(A){if(f6(A))this.yogaNode.setGap($q.All,A),this.requestRender()}set rowGap(A){if(f6(A))this.yogaNode.setGap($q.Row,A),this.requestRender()}set columnGap(A){if(f6(A))this.yogaNode.setGap($q.Column,A),this.requestRender()}}class VO extends DA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:OA.fromValues(1,1,1,1),bg:OA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);this._defaultFg=u(q.fg??this._defaultOptions.fg),this._defaultBg=u(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=YZ.create(this._ctx.widthMethod),this.textBufferView=kU.create(this.textBuffer);let g=pE.create();if(this.textBuffer.setSyntaxStyle(g),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.maxLineWidth}get scrollHeight(){return this.lineInfo.lineStarts.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=u(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?u(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?u(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=u(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?u(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===lq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.textBufferView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=XU(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}}var WO=Symbol.for("@opentui/core/TextNodeRenderable");function JZ(A){return!!A?.[WO]}function UO(A){return A.chunks.map((q)=>{let g=new lE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class lE extends bE{[WO]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?u(A.fg):void 0,this._bg=A.bg?u(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(JZ(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(CQ(A)){let g=UO(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((F)=>F.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((F)=>F.parent=this),this.requestRender(),E}throw new Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!JZ(q))throw new Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw new Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(JZ(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof b6){let E=UO(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw new Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw new Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let F=E.gatherWithInheritedStyle(q);g.push(...F)}return this.markClean(),g}static fromString(A,q={}){let g=new lE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new lE(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>JZ(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=u(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=u(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}}class NO extends lE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class rq{diff(A,q,g={}){let E;if(typeof g==="function")E=g,g={};else if("callback"in g)E=g.callback;let F=this.castInput(A,g),K=this.castInput(q,g),Z=this.removeEmpty(this.tokenize(F,g)),j=this.removeEmpty(this.tokenize(K,g));return this.diffWithOptionsObj(Z,j,g,E)}diffWithOptionsObj(A,q,g,E){var F;let K=(L)=>{if(L=this.postProcess(L,g),E){setTimeout(function(){E(L)},0);return}else return L},Z=q.length,j=A.length,U=1,G=Z+j;if(g.maxEditLength!=null)G=Math.min(G,g.maxEditLength);let Y=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+Y,O=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(O[0],q,A,0,g);if(O[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(O[0].lastComponent,q,A));let _=-1/0,x=1/0,N=()=>{for(let L=Math.max(_,-U);L<=Math.min(x,U);L+=2){let P,k=O[L-1],C=O[L+1];if(k)O[L-1]=void 0;let i=!1;if(C){let a=C.oldPos-L;i=C&&0<=a&&a<Z}let p=k&&k.oldPos+1<j;if(!i&&!p){O[L]=void 0;continue}if(!p||i&&k.oldPos<C.oldPos)P=this.addToPath(C,!0,!1,0,g);else P=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(P,q,A,L,g),P.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(P.lastComponent,q,A))||!0;else{if(O[L]=P,P.oldPos+1>=j)x=Math.min(x,L-1);if($+1>=Z)_=Math.max(_,L+1)}}U++};if(E)(function L(){setTimeout(function(){if(U>G||Date.now()>M)return E(void 0);if(!N())L()},0)})();else while(U<=G&&Date.now()<=M){let L=N();if(L)return L}}addToPath(A,q,g,E,F){let K=A.lastComponent;if(K&&!F.oneChangePerToken&&K.added===q&&K.removed===g)return{oldPos:A.oldPos+E,lastComponent:{count:K.count+1,added:q,removed:g,previousComponent:K.previousComponent}};else return{oldPos:A.oldPos+E,lastComponent:{count:1,added:q,removed:g,previousComponent:K}}}extractCommon(A,q,g,E,F){let K=q.length,Z=g.length,j=A.oldPos,U=j-E,G=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,G++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(G&&!F.oneChangePerToken)A.lastComponent={count:G,previousComponent:A.lastComponent,added:!1,removed:!1};return A.oldPos=j,U}equals(A,q,g){if(g.comparator)return g.comparator(A,q);else return A===q||!!g.ignoreCase&&A.toLowerCase()===q.toLowerCase()}removeEmpty(A){let q=[];for(let g=0;g<A.length;g++)if(A[g])q.push(A[g]);return q}castInput(A,q){return A}tokenize(A,q){return Array.from(A)}join(A){return A.join("")}postProcess(A,q){return A}get useLongestToken(){return!1}buildValues(A,q,g){let E=[],F;while(A)E.push(A),F=A.previousComponent,delete A.previousComponent,A=F;E.reverse();let K=E.length,Z=0,j=0,U=0;for(;Z<K;Z++){let G=E[Z];if(!G.removed){if(!G.added&&this.useLongestToken){let Y=q.slice(j,j+G.count);Y=Y.map(function(M,O){let $=g[U+O];return $.length>M.length?$:M}),G.value=this.join(Y)}else G.value=this.join(q.slice(j,j+G.count));if(j+=G.count,!G.added)U+=G.count}else G.value=this.join(g.slice(U,U+G.count)),U+=G.count}return E}}class TO extends rq{}var KW=new TO;function GO(A,q){let g;for(g=0;g<A.length&&g<q.length;g++)if(A[g]!=q[g])return A.slice(0,g);return A.slice(0,g)}function YO(A,q){let g;if(!A||!q||A[A.length-1]!=q[q.length-1])return"";for(g=0;g<A.length&&g<q.length;g++)if(A[A.length-(g+1)]!=q[q.length-(g+1)])return A.slice(-g);return A.slice(-g)}function aU(A,q,g){if(A.slice(0,q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't start with prefix ${JSON.stringify(q)}; this is a bug`);return g+A.slice(q.length)}function hU(A,q,g){if(!q)return A+g;if(A.slice(-q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't end with suffix ${JSON.stringify(q)}; this is a bug`);return A.slice(0,-q.length)+g}function vE(A,q){return aU(A,q,"")}function MZ(A,q){return hU(A,q,"")}function QO(A,q){return q.slice(0,QX(A,q))}function QX(A,q){let g=0;if(A.length>q.length)g=A.length-q.length;let E=q.length;if(A.length<q.length)E=A.length;let F=Array(E),K=0;F[0]=0;for(let Z=1;Z<E;Z++){if(q[Z]==q[K])F[Z]=F[K];else F[Z]=K;while(K>0&&q[Z]!=q[K])K=F[K];if(q[Z]==q[K])K++}K=0;for(let Z=g;Z<A.length;Z++){while(K>0&&A[Z]!=q[K])K=F[K];if(A[Z]==q[K])K++}return K}function mE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function Hg(A){let q=A.match(/^\s*/);return q?q[0]:""}var $Z="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",OX=new RegExp(`[${$Z}]+|\\s+|[^${$Z}]`,"ug");class IO extends rq{equals(A,q,g){if(g.ignoreCase)A=A.toLowerCase(),q=q.toLowerCase();return A.trim()===q.trim()}tokenize(A,q={}){let g;if(q.intlSegmenter){let K=q.intlSegmenter;if(K.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(OX)||[];let E=[],F=null;return g.forEach((K)=>{if(/\s/.test(K))if(F==null)E.push(K);else E.push(E.pop()+K);else if(F!=null&&/\s/.test(F))if(E[E.length-1]==F)E.push(E.pop()+K);else E.push(F+K);else E.push(K);F=K}),E}join(A){return A.map((q,g)=>{if(g==0)return q;else return q.replace(/^\s+/,"")}).join("")}postProcess(A,q){if(!A||q.oneChangePerToken)return A;let g=null,E=null,F=null;if(A.forEach((K)=>{if(K.added)E=K;else if(K.removed)F=K;else{if(E||F)OO(g,F,E,K);g=K,E=null,F=null}}),E||F)OO(g,F,E,null);return A}}var ZW=new IO;function OO(A,q,g,E){if(q&&g){let F=Hg(q.value),K=mE(q.value),Z=Hg(g.value),j=mE(g.value);if(A){let U=GO(F,Z);A.value=hU(A.value,Z,U),q.value=vE(q.value,U),g.value=vE(g.value,U)}if(E){let U=YO(K,j);E.value=aU(E.value,j,U),q.value=MZ(q.value,U),g.value=MZ(g.value,U)}}else if(g){if(A){let F=Hg(g.value);g.value=g.value.substring(F.length)}if(E){let F=Hg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=Hg(E.value),K=Hg(q.value),Z=mE(q.value),j=GO(F,K);q.value=vE(q.value,j);let U=YO(vE(F,j),Z);q.value=MZ(q.value,U),E.value=aU(E.value,F,U),A.value=hU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=Hg(E.value),K=mE(q.value),Z=QO(K,F);q.value=MZ(q.value,Z)}else if(A){let F=mE(A.value),K=Hg(q.value),Z=QO(F,K);q.value=vE(q.value,Z)}}class xO extends rq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${$Z}]+|[^\\S\\n\\r]+|[^${$Z}]`,"ug");return A.match(q)||[]}}var jW=new xO;class PO extends rq{constructor(){super(...arguments);this.tokenize=RO}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
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 UW=new PO;function RO(A,q){if(q.stripTrailingCr)A=A.replace(/\r\n/g,`
32
- `);let g=[],E=A.split(/(\n|\r\n)/);if(!E[E.length-1])E.pop();for(let F=0;F<E.length;F++){let K=E[F];if(F%2&&!q.newlineIsToken)g[g.length-1]+=K;else g.push(K)}return g}function JX(A){return A=="."||A=="!"||A=="?"}class SO extends rq{tokenize(A){var q;let g=[],E=0;for(let F=0;F<A.length;F++){if(F==A.length-1){g.push(A.slice(E));break}if(JX(A[F])&&A[F+1].match(/\s/)){g.push(A.slice(E,F+1)),F=E=F+1;while((q=A[F+1])===null||q===void 0?void 0:q.match(/\s/))F++;g.push(A.slice(E,F+1)),E=F+1}}return g}}var GW=new SO;class aO extends rq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var YW=new aO;class hO extends rq{constructor(){super(...arguments);this.tokenize=RO}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K==="undefined"?g:K}=q;return typeof A==="string"?A:JSON.stringify(zU(A,null,null,E),null," ")}equals(A,q,g){return super.equals(A.replace(/,([\r\n])/g,"$1"),q.replace(/,([\r\n])/g,"$1"),g)}}var QW=new hO;function zU(A,q,g,E,F){if(q=q||[],g=g||[],E)A=E(F===void 0?"":F,A);let K;for(K=0;K<q.length;K+=1)if(q[K]===A)return g[K];let Z;if(Object.prototype.toString.call(A)==="[object Array]"){q.push(A),Z=new Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=zU(A[K],q,g,E,String(K));return q.pop(),g.pop(),Z}if(A&&A.toJSON)A=A.toJSON();if(typeof A==="object"&&A!==null){q.push(A),Z={},g.push(Z);let j=[],U;for(U in A)if(Object.prototype.hasOwnProperty.call(A,U))j.push(U);j.sort();for(K=0;K<j.length;K+=1)U=j[K],Z[U]=zU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class zO extends rq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var OW=new zO;class m extends VO{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?GZ(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new NO(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?GZ(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new b6(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=GZ("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}}class BO extends DA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:OA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:OA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=u(q.textColor??this._defaultOptions.textColor),this._backgroundColor=u(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=u(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=nq.create(this._ctx.widthMethod),this.editorView=DU.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=u(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?u(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?u(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=u(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=u(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?u(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let F=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,F,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-E.height),Z=Math.min(E.offsetY+g,K);this.editorView.setViewport(E.offsetX,Z,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let F=Math.max(0,E.offsetX-g);this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let F=E.offsetX+g;this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=XU(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,F;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),F=!0;else if(A?.isStart)F=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else F=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(F&&q?.isActive&&A?.isSelecting){let K=this.editorView.getViewport(),Z=q.focusY,j=Math.max(1,Math.floor(K.height*this._scrollMargin));if(Z<j)this._autoScrollVelocity=-this._scrollSpeed;else if(Z>=K.height-j)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(F)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,F=this.editorView.getViewport(),K=this.editorView.getTotalVirtualLineCount(),Z=Math.max(0,K-F.height),j=Math.max(0,Math.min(F.offsetY+E*g,Z));if(j!==F.offsetY)this.editorView.setViewport(F.offsetX,j,F.width,F.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===lq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.editorView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorColor(this._cursorColor),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking)}focus(){super.focus(),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking),this._ctx.setCursorColor(this._cursorColor),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,F=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,F);return}this._ctx.updateSelection(this,E,F)}}var SU=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"}];class Sq extends BO{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=Sq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=u(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=u(q.textColor||g.textColor),this._focusedBackgroundColor=u(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=u(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=u(q.placeholderColor??g.placeholderColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=tg(SU,this._keyBindings);if(this._keyBindingsMap=sg(F,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[v6(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=ng({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),F=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<F-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){if(this._placeholder!==A)this._placeholder=A,this.applyPlaceholder(A),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=u(A??Sq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=u(A??Sq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=u(A??Sq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=u(A??Sq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=u(A??Sq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=tg(SU,A);this._keyBindingsMap=sg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=DE(kE,A);let q=tg(SU,this._keyBindings);this._keyBindingsMap=sg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var MX;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(MX||={});class VZ extends Sq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=VZ.defaultOptions,E=q.maxLength??g.maxLength,K=(q.value??g.value).replace(/[\n\r]/g,"").substring(0,E);super(A,{...q,placeholder:q.placeholder??g.placeholder,initialValue:K,height:1,wrapMode:"none",keyBindings:[{name:"return",action:"submit"},{name:"linefeed",action:"submit"},...q.keyBindings||[]]});if(this._maxLength=E,this._lastCommittedValue=this.plainText,K)this.cursorOffset=K.length}newLine(){return!1}handlePaste(A){let q=A.text.replace(/[\n\r]/g,"");if(q)this.insertText(q)}insertText(A){let q=A.replace(/[\n\r]/g,"");if(!q)return;let g=this.plainText.length,E=this._maxLength-g;if(E<=0)return;let F=q.substring(0,E);super.insertText(F),this.emit("input",this.plainText)}get value(){return this.plainText}set value(A){let q=A.substring(0,this._maxLength).replace(/[\n\r]/g,"");if(this.plainText!==q)this.setText(q),this.cursorOffset=q.length,this.emit("input",q)}focus(){super.focus(),this._lastCommittedValue=this.plainText}blur(){if(!this.isDestroyed){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A)}super.blur()}submit(){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A);return this.emit("enter",A),!0}deleteCharBackward(){let A=super.deleteCharBackward();return this.emit("input",this.plainText),A}deleteChar(){let A=super.deleteChar();return this.emit("input",this.plainText),A}deleteCharacter(A){if(A==="backward")this.deleteCharBackward();else this.deleteChar()}set maxLength(A){this._maxLength=A;let q=this.plainText;if(q.length>A)this.setText(q.substring(0,A))}get maxLength(){return this._maxLength}set placeholder(A){super.placeholder=A}get placeholder(){let A=super.placeholder;return typeof A==="string"?A:""}set initialValue(A){}}function yU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var eg=yU();function wO(A){eg=A}var uE={exec:()=>null};function GA(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(F,K)=>{let Z=typeof K=="string"?K:K.source;return Z=Z.replace(dA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var _X=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),dA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},$X=/^(?:[ \t]*(?:\n|$))+/,XX=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,HX=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,iE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,LX=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,bU=/(?:[*+-]|\d{1,9}[.)])/,CO=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,kO=GA(CO).replace(/bull/g,bU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),VX=GA(CO).replace(/bull/g,bU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),vU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,WX=/^[^\n]+/,mU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,NX=GA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",mU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),TX=GA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,bU).getRegex(),WZ="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",fU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,IX=GA("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",fU).replace("tag",WZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),DO=GA(vU).replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex(),xX=GA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",DO).getRegex(),cU={blockquote:xX,code:XX,def:NX,fences:HX,heading:LX,hr:iE,html:IX,lheading:kO,list:TX,newline:$X,paragraph:DO,table:uE,text:WX},JO=GA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex(),PX={...cU,lheading:VX,table:JO,paragraph:GA(vU).replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",JO).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex()},RX={...cU,html:GA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",fU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:uE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:GA(vU).replace("hr",iE).replace("heading",` *#{1,6} *[^
33
- ]`).replace("lheading",kO).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},SX=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,aX=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yO=/^( {2,}|\\)\n(?!\s*$)/,hX=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,NZ=/[\p{P}\p{S}]/u,dU=/[\s\p{P}\p{S}]/u,bO=/[^\s\p{P}\p{S}]/u,zX=GA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,dU).getRegex(),vO=/(?!~)[\p{P}\p{S}]/u,BX=/(?!~)[\s\p{P}\p{S}]/u,wX=/(?:[^\s\p{P}\p{S}]|~)/u,CX=GA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",_X?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),mO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,kX=GA(mO,"u").replace(/punct/g,NZ).getRegex(),DX=GA(mO,"u").replace(/punct/g,vO).getRegex(),fO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",yX=GA(fO,"gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),bX=GA(fO,"gu").replace(/notPunctSpace/g,wX).replace(/punctSpace/g,BX).replace(/punct/g,vO).getRegex(),vX=GA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),mX=GA(/\\(punct)/,"gu").replace(/punct/g,NZ).getRegex(),fX=GA(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cX=GA(fU).replace("(?:-->|$)","-->").getRegex(),dX=GA("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cX).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),XZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,pX=GA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",XZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),cO=GA(/^!?\[(label)\]\[(ref)\]/).replace("label",XZ).replace("ref",mU).getRegex(),dO=GA(/^!?\[(ref)\](?:\[\])?/).replace("ref",mU).getRegex(),uX=GA("reflink|nolink(?!\\()","g").replace("reflink",cO).replace("nolink",dO).getRegex(),MO=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,pU={_backpedal:uE,anyPunctuation:mX,autolink:fX,blockSkip:CX,br:yO,code:aX,del:uE,emStrongLDelim:kX,emStrongRDelimAst:yX,emStrongRDelimUnd:vX,escape:SX,link:pX,nolink:dO,punctuation:zX,reflink:cO,reflinkSearch:uX,tag:dX,text:hX,url:uE},lX={...pU,link:GA(/^!?\[(label)\]\((.*?)\)/).replace("label",XZ).getRegex(),reflink:GA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",XZ).getRegex()},BU={...pU,emStrongRDelimAst:bX,emStrongLDelim:DX,url:GA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",MO).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:GA(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",MO).getRegex()},iX={...BU,br:GA(yO).replace("{2,}","*").getRegex(),text:GA(BU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},_Z={normal:cU,gfm:PX,pedantic:RX},fE={normal:pU,gfm:BU,breaks:iX,pedantic:lX},tX={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},_O=(A)=>tX[A];function sq(A,q){if(q){if(dA.escapeTest.test(A))return A.replace(dA.escapeReplace,_O)}else if(dA.escapeTestNoEncode.test(A))return A.replace(dA.escapeReplaceNoEncode,_O);return A}function $O(A){try{A=encodeURI(A).replace(dA.percentDecode,"%")}catch{return null}return A}function XO(A,q){let g=A.replace(dA.findPipe,(K,Z,j)=>{let U=!1,G=Z;for(;--G>=0&&j[G]==="\\";)U=!U;return U?"|":" |"}),E=g.split(dA.splitPipe),F=0;if(E[0].trim()||E.shift(),E.length>0&&!E.at(-1)?.trim()&&E.pop(),q)if(E.length>q)E.splice(q);else for(;E.length<q;)E.push("");for(;F<E.length;F++)E[F]=E[F].trim().replace(dA.slashPipe,"|");return E}function cE(A,q,g){let E=A.length;if(E===0)return"";let F=0;for(;F<E;){let K=A.charAt(E-F-1);if(K===q&&!g)F++;else if(K!==q&&g)F++;else break}return A.slice(0,E-F)}function sX(A,q){if(A.indexOf(q[1])===-1)return-1;let g=0;for(let E=0;E<A.length;E++)if(A[E]==="\\")E++;else if(A[E]===q[0])g++;else if(A[E]===q[1]&&(g--,g<0))return E;return g>0?-2:-1}function HO(A,q,g,E,F){let K=q.href,Z=q.title||null,j=A[1].replace(F.other.outputLinkReplace,"$1");E.state.inLink=!0;let U={type:A[0].charAt(0)==="!"?"image":"link",raw:g,href:K,title:Z,text:j,tokens:E.inlineTokens(j)};return E.state.inLink=!1,U}function nX(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let F=E[1];return q.split(`
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 HZ=class{options;rules;lexer;constructor(A){this.options=A||eg}space(A){let q=this.rules.block.newline.exec(A);if(q&&q[0].length>0)return{type:"space",raw:q[0]}}code(A){let q=this.rules.block.code.exec(A);if(q){let g=q[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:q[0],codeBlockStyle:"indented",text:this.options.pedantic?g:cE(g,`
36
- `)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=nX(g,q[3]||"",this.rules);return{type:"code",raw:g,lang:q[2]?q[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):q[2],text:E}}}heading(A){let q=this.rules.block.heading.exec(A);if(q){let g=q[2].trim();if(this.rules.other.endingHash.test(g)){let E=cE(g,"#");(this.options.pedantic||!E||this.rules.other.endingSpaceChar.test(E))&&(g=E.trim())}return{type:"heading",raw:q[0],depth:q[1].length,text:g,tokens:this.lexer.inline(g)}}}hr(A){let q=this.rules.block.hr.exec(A);if(q)return{type:"hr",raw:cE(q[0],`
37
- `)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=cE(q[0],`
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
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
40
  `),Y=G.replace(this.rules.other.blockquoteSetextReplace,`
41
41
  $1`).replace(this.rules.other.blockquoteSetextReplace2,"");E=E?`${E}
42
42
  ${G}`:G,F=F?`${F}
43
- ${Y}`:Y;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(Y,K,!0),this.lexer.state.top=M,g.length===0)break;let O=K.at(-1);if(O?.type==="code")break;if(O?.type==="blockquote"){let $=O,_=$.raw+`
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(`
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
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,(x)=>" ".repeat(3*x.length)),O=A.split(`
50
- `,1)[0],$=!M.trim(),_=0;if(this.options.pedantic?(_=2,Y=M.trimStart()):$?_=q[1].length+1:(_=q[2].search(this.rules.other.nonSpaceChar),_=_>4?1:_,Y=M.slice(_),_+=q[1].length),$&&this.rules.other.blankLine.test(O)&&(G+=O+`
51
- `,A=A.substring(O.length+1),U=!0),!U){let x=this.rules.other.nextBulletRegex(_),N=this.rules.other.hrRegex(_),L=this.rules.other.fencesBeginRegex(_),P=this.rules.other.headingBeginRegex(_),k=this.rules.other.htmlBeginRegex(_);for(;A;){let C=A.split(`
52
- `,1)[0],i;if(O=C,this.options.pedantic?(O=O.replace(this.rules.other.listReplaceNesting," "),i=O):i=O.replace(this.rules.other.tabCharGlobal," "),L.test(O)||P.test(O)||k.test(O)||x.test(O)||N.test(O))break;if(i.search(this.rules.other.nonSpaceChar)>=_||!O.trim())Y+=`
53
- `+i.slice(_);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||L.test(M)||P.test(M)||N.test(M))break;Y+=`
54
- `+O}!$&&!O.trim()&&($=!0),G+=C+`
55
- `,A=A.substring(C.length+1),M=i.slice(_)}}F.loose||(Z?F.loose=!0:this.rules.other.doubleBlankLine.test(G)&&(Z=!0)),F.items.push({type:"list_item",raw:G,task:!!this.options.gfm&&this.rules.other.listIsTask.test(Y),loose:!1,text:Y,tokens:[]}),F.raw+=G}let j=F.items.at(-1);if(j)j.raw=j.raw.trimEnd(),j.text=j.text.trimEnd();else return;F.raw=F.raw.trimEnd();for(let U of F.items){if(this.lexer.state.top=!1,U.tokens=this.lexer.blockTokens(U.text,[]),U.task){if(U.text=U.text.replace(this.rules.other.listReplaceTask,""),U.tokens[0]?.type==="text"||U.tokens[0]?.type==="paragraph"){U.tokens[0].raw=U.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),U.tokens[0].text=U.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let Y=this.lexer.inlineQueue.length-1;Y>=0;Y--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[Y].src)){this.lexer.inlineQueue[Y].src=this.lexer.inlineQueue[Y].src.replace(this.rules.other.listReplaceTask,"");break}}let G=this.rules.other.listTaskCheckbox.exec(U.raw);if(G){let Y={type:"checkbox",raw:G[0]+" ",checked:G[0]!=="[ ]"};U.checked=Y.checked,F.loose?U.tokens[0]&&["paragraph","text"].includes(U.tokens[0].type)&&"tokens"in U.tokens[0]&&U.tokens[0].tokens?(U.tokens[0].raw=Y.raw+U.tokens[0].raw,U.tokens[0].text=Y.raw+U.tokens[0].text,U.tokens[0].tokens.unshift(Y)):U.tokens.unshift({type:"paragraph",raw:Y.raw,text:Y.raw,tokens:[Y]}):U.tokens.unshift(Y)}}if(!F.loose){let G=U.tokens.filter((M)=>M.type==="space"),Y=G.length>0&&G.some((M)=>this.rules.other.anyLine.test(M.raw));F.loose=Y}}if(F.loose)for(let U of F.items){U.loose=!0;for(let G of U.tokens)G.type==="text"&&(G.type="paragraph")}return F}}html(A){let q=this.rules.block.html.exec(A);if(q)return{type:"html",block:!0,raw:q[0],pre:q[1]==="pre"||q[1]==="script"||q[1]==="style",text:q[0]}}def(A){let q=this.rules.block.def.exec(A);if(q){let g=q[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),E=q[2]?q[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",F=q[3]?q[3].substring(1,q[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):q[3];return{type:"def",tag:g,raw:q[0],href:E,title:F}}}table(A){let q=this.rules.block.table.exec(A);if(!q||!this.rules.other.tableDelimiter.test(q[2]))return;let g=XO(q[1]),E=q[2].replace(this.rules.other.tableAlignChars,"").split("|"),F=q[3]?.trim()?q[3].replace(this.rules.other.tableRowBlankLine,"").split(`
56
- `):[],K={type:"table",raw:q[0],header:[],align:[],rows:[]};if(g.length===E.length){for(let Z of E)this.rules.other.tableAlignRight.test(Z)?K.align.push("right"):this.rules.other.tableAlignCenter.test(Z)?K.align.push("center"):this.rules.other.tableAlignLeft.test(Z)?K.align.push("left"):K.align.push(null);for(let Z=0;Z<g.length;Z++)K.header.push({text:g[Z],tokens:this.lexer.inline(g[Z]),header:!0,align:K.align[Z]});for(let Z of F)K.rows.push(XO(Z,K.header.length).map((j,U)=>({text:j,tokens:this.lexer.inline(j),header:!1,align:K.align[U]})));return K}}lheading(A){let q=this.rules.block.lheading.exec(A);if(q)return{type:"heading",raw:q[0],depth:q[2].charAt(0)==="="?1:2,text:q[1],tokens:this.lexer.inline(q[1])}}paragraph(A){let q=this.rules.block.paragraph.exec(A);if(q){let g=q[1].charAt(q[1].length-1)===`
57
- `?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let K=cE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=sX(q[2],"()");if(K===-2)return;if(K>-1){let Z=(q[0].indexOf("!")===0?5:4)+q[1].length+K;q[2]=q[2].substring(0,K),q[0]=q[0].substring(0,Z).trim(),q[3]=""}}let E=q[2],F="";if(this.options.pedantic){let K=this.rules.other.pedanticHrefTitle.exec(E);K&&(E=K[1],F=K[3])}else F=q[3]?q[3].slice(1,-1):"";return E=E.trim(),this.rules.other.startAngleBracket.test(E)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(g)?E=E.slice(1):E=E.slice(1,-1)),HO(q,{href:E&&E.replace(this.rules.inline.anyPunctuation,"$1"),title:F&&F.replace(this.rules.inline.anyPunctuation,"$1")},q[0],this.lexer,this.rules)}}reflink(A,q){let g;if((g=this.rules.inline.reflink.exec(A))||(g=this.rules.inline.nolink.exec(A))){let E=(g[2]||g[1]).replace(this.rules.other.multipleSpaceGlobal," "),F=q[E.toLowerCase()];if(!F){let K=g[0].charAt(0);return{type:"text",raw:K,text:K}}return HO(g,F,g[0],this.lexer,this.rules)}}emStrong(A,q,g=""){let E=this.rules.inline.emStrongLDelim.exec(A);if(!E||E[3]&&g.match(this.rules.other.unicodeAlphaNumeric))return;if(!(E[1]||E[2])||!g||this.rules.inline.punctuation.exec(g)){let F=[...E[0]].length-1,K,Z,j=F,U=0,G=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(G.lastIndex=0,q=q.slice(-1*A.length+F);(E=G.exec(q))!=null;){if(K=E[1]||E[2]||E[3]||E[4]||E[5]||E[6],!K)continue;if(Z=[...K].length,E[3]||E[4]){j+=Z;continue}else if((E[5]||E[6])&&F%3&&!((F+Z)%3)){U+=Z;continue}if(j-=Z,j>0)continue;Z=Math.min(Z,Z+j+U);let Y=[...E[0]][0].length,M=A.slice(0,F+E.index+Y+Z);if(Math.min(F,Z)%2){let $=M.slice(1,-1);return{type:"em",raw:M,text:$,tokens:this.lexer.inlineTokens($)}}let O=M.slice(2,-2);return{type:"strong",raw:M,text:O,tokens:this.lexer.inlineTokens(O)}}}}codespan(A){let q=this.rules.inline.code.exec(A);if(q){let g=q[2].replace(this.rules.other.newLineCharGlobal," "),E=this.rules.other.nonSpaceChar.test(g),F=this.rules.other.startingSpaceChar.test(g)&&this.rules.other.endingSpaceChar.test(g);return E&&F&&(g=g.substring(1,g.length-1)),{type:"codespan",raw:q[0],text:g}}}br(A){let q=this.rules.inline.br.exec(A);if(q)return{type:"br",raw:q[0]}}del(A){let q=this.rules.inline.del.exec(A);if(q)return{type:"del",raw:q[0],text:q[2],tokens:this.lexer.inlineTokens(q[2])}}autolink(A){let q=this.rules.inline.autolink.exec(A);if(q){let g,E;return q[2]==="@"?(g=q[1],E="mailto:"+g):(g=q[1],E=g),{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}url(A){let q;if(q=this.rules.inline.url.exec(A)){let g,E;if(q[2]==="@")g=q[0],E="mailto:"+g;else{let F;do F=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])?.[0]??"";while(F!==q[0]);g=q[0],q[1]==="www."?E="http://"+q[0]:E=q[0]}return{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}inlineText(A){let q=this.rules.inline.text.exec(A);if(q){let g=this.lexer.state.inRawBlock;return{type:"text",raw:q[0],text:q[0],escaped:g}}}},Lq=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||eg,this.options.tokenizer=this.options.tokenizer||new HZ,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let g={other:dA,block:_Z.normal,inline:fE.normal};this.options.pedantic?(g.block=_Z.pedantic,g.inline=fE.pedantic):this.options.gfm&&(g.block=_Z.gfm,this.options.breaks?g.inline=fE.breaks:g.inline=fE.gfm),this.tokenizer.rules=g}static get rules(){return{block:_Z,inline:fE}}static lex(q,g){return new A(g).lex(q)}static lexInline(q,g){return new A(g).inlineTokens(q)}lex(q){q=q.replace(dA.carriageReturn,`
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
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
  `)?"":`
@@ -68,9 +68,9 @@ ${Y}`:Y;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
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((Y)=>(U=Y.call({lexer:this},q,g))?(q=q.substring(U.raw.length),g.push(U),!0):!1))continue;if(U=this.tokenizer.escape(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.tag(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.link(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring(U.raw.length);let Y=g.at(-1);U.type==="text"&&Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(U=this.tokenizer.emStrong(q,E,j)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.codespan(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.br(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.del(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.autolink(q)){q=q.substring(U.raw.length),g.push(U);continue}if(!this.state.inLink&&(U=this.tokenizer.url(q))){q=q.substring(U.raw.length),g.push(U);continue}let G=q;if(this.options.extensions?.startInline){let Y=1/0,M=q.slice(1),O;this.options.extensions.startInline.forEach(($)=>{O=$.call({lexer:this},M),typeof O=="number"&&O>=0&&(Y=Math.min(Y,O))}),Y<1/0&&Y>=0&&(G=q.substring(0,Y+1))}if(U=this.tokenizer.inlineText(G)){q=q.substring(U.raw.length),U.raw.slice(-1)!=="_"&&(j=U.raw.slice(-1)),Z=!0;let Y=g.at(-1);Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(q){let Y="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Y);break}else throw new Error(Y)}}return g}},LZ=class{options;parser;constructor(A){this.options=A||eg}space(A){return""}code({text:A,lang:q,escaped:g}){let E=(q||"").match(dA.notSpaceStart)?.[0],F=A.replace(dA.endingNewline,"")+`
72
- `;return E?'<pre><code class="language-'+sq(E)+'">'+(g?F:sq(F,!0))+`</code></pre>
73
- `:"<pre><code>"+(g?F:sq(F,!0))+`</code></pre>
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>${sq(A,!0)}</code>`}br(A){return"<br>"}del({tokens:A}){return`<del>${this.parser.parseInline(A)}</del>`}link({href:A,title:q,tokens:g}){let E=this.parser.parseInline(g),F=$O(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+sq(q)+'"'),K+=">"+E+"</a>",K}image({href:A,title:q,text:g,tokens:E}){E&&(g=this.parser.parseInline(E,this.parser.textRenderer));let F=$O(A);if(F===null)return sq(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${sq(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:sq(A.text)}},uU=class{strong({text:A}){return A}em({text:A}){return A}codespan({text:A}){return A}del({text:A}){return A}html({text:A}){return A}text({text:A}){return A}link({text:A}){return""+A}image({text:A}){return""+A}br(){return""}checkbox({raw:A}){return A}},Vq=class A{options;renderer;textRenderer;constructor(q){this.options=q||eg,this.options.renderer=this.options.renderer||new LZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new uU}static parse(q,g){return new A(g).parse(q)}static parseInline(q,g){return new A(g).parseInline(q)}parse(q){let g="";for(let E=0;E<q.length;E++){let F=q[E];if(this.options.extensions?.renderers?.[F.type]){let Z=F,j=this.options.extensions.renderers[Z.type].call({parser:this},Z);if(j!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(Z.type)){g+=j||"";continue}}let K=F;switch(K.type){case"space":{g+=this.renderer.space(K);break}case"hr":{g+=this.renderer.hr(K);break}case"heading":{g+=this.renderer.heading(K);break}case"code":{g+=this.renderer.code(K);break}case"table":{g+=this.renderer.table(K);break}case"blockquote":{g+=this.renderer.blockquote(K);break}case"list":{g+=this.renderer.list(K);break}case"checkbox":{g+=this.renderer.checkbox(K);break}case"html":{g+=this.renderer.html(K);break}case"def":{g+=this.renderer.def(K);break}case"paragraph":{g+=this.renderer.paragraph(K);break}case"text":{g+=this.renderer.text(K);break}default:{let Z='Token with "'+K.type+'" type was not found.';if(this.options.silent)return console.error(Z),"";throw new Error(Z)}}}return g}parseInline(q,g=this.renderer){let E="";for(let F=0;F<q.length;F++){let K=q[F];if(this.options.extensions?.renderers?.[K.type]){let j=this.options.extensions.renderers[K.type].call({parser:this},K);if(j!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){E+=j||"";continue}}let Z=K;switch(Z.type){case"escape":{E+=g.text(Z);break}case"html":{E+=g.html(Z);break}case"link":{E+=g.link(Z);break}case"image":{E+=g.image(Z);break}case"checkbox":{E+=g.checkbox(Z);break}case"strong":{E+=g.strong(Z);break}case"em":{E+=g.em(Z);break}case"codespan":{E+=g.codespan(Z);break}case"br":{E+=g.br(Z);break}case"del":{E+=g.del(Z);break}case"text":{E+=g.text(Z);break}default:{let j='Token with "'+Z.type+'" type was not found.';if(this.options.silent)return console.error(j),"";throw new Error(j)}}}return E}},dE=class{options;block;constructor(A){this.options=A||eg}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(A){return A}postprocess(A){return A}processAllTokens(A){return A}emStrongMask(A){return A}provideLexer(){return this.block?Lq.lex:Lq.lexInline}provideParser(){return this.block?Vq.parse:Vq.parseInline}},rX=class{defaults=yU();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vq;Renderer=LZ;TextRenderer=uU;Lexer=Lq;Tokenizer=HZ;Hooks=dE;constructor(...A){this.use(...A)}walkTokens(A,q){let g=[];for(let E of A)switch(g=g.concat(q.call(this,E)),E.type){case"table":{let F=E;for(let K of F.header)g=g.concat(this.walkTokens(K.tokens,q));for(let K of F.rows)for(let Z of K)g=g.concat(this.walkTokens(Z.tokens,q));break}case"list":{let F=E;g=g.concat(this.walkTokens(F.items,q));break}default:{let F=E;this.defaults.extensions?.childTokens?.[F.type]?this.defaults.extensions.childTokens[F.type].forEach((K)=>{let Z=F[K].flat(1/0);g=g.concat(this.walkTokens(Z,q))}):F.tokens&&(g=g.concat(this.walkTokens(F.tokens,q)))}}return g}use(...A){let q=this.defaults.extensions||{renderers:{},childTokens:{}};return A.forEach((g)=>{let E={...g};if(E.async=this.defaults.async||E.async||!1,g.extensions&&(g.extensions.forEach((F)=>{if(!F.name)throw new Error("extension name required");if("renderer"in F){let K=q.renderers[F.name];K?q.renderers[F.name]=function(...Z){let j=F.renderer.apply(this,Z);return j===!1&&(j=K.apply(this,Z)),j}:q.renderers[F.name]=F.renderer}if("tokenizer"in F){if(!F.level||F.level!=="block"&&F.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let K=q[F.level];K?K.unshift(F.tokenizer):q[F.level]=[F.tokenizer],F.start&&(F.level==="block"?q.startBlock?q.startBlock.push(F.start):q.startBlock=[F.start]:F.level==="inline"&&(q.startInline?q.startInline.push(F.start):q.startInline=[F.start]))}"childTokens"in F&&F.childTokens&&(q.childTokens[F.name]=F.childTokens)}),E.extensions=q),g.renderer){let F=this.defaults.renderer||new LZ(this.defaults);for(let K in g.renderer){if(!(K in F))throw new Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Z=K,j=g.renderer[Z],U=F[Z];F[Z]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y||""}}E.renderer=F}if(g.tokenizer){let F=this.defaults.tokenizer||new HZ(this.defaults);for(let K in g.tokenizer){if(!(K in F))throw new Error(`tokenizer '${K}' does not exist`);if(["options","rules","lexer"].includes(K))continue;let Z=K,j=g.tokenizer[Z],U=F[Z];F[Z]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y}}E.tokenizer=F}if(g.hooks){let F=this.defaults.hooks||new dE;for(let K in g.hooks){if(!(K in F))throw new Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Z=K,j=g.hooks[Z],U=F[Z];dE.passThroughHooks.has(K)?F[Z]=(G)=>{if(this.defaults.async&&dE.passThroughHooksRespectAsync.has(K))return(async()=>{let M=await j.call(F,G);return U.call(F,M)})();let Y=j.call(F,G);return U.call(F,Y)}:F[Z]=(...G)=>{if(this.defaults.async)return(async()=>{let M=await j.apply(F,G);return M===!1&&(M=await U.apply(F,G)),M})();let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y}}E.hooks=F}if(g.walkTokens){let F=this.defaults.walkTokens,K=g.walkTokens;E.walkTokens=function(Z){let j=[];return j.push(K.call(this,Z)),F&&(j=j.concat(F.call(this,Z))),j}}this.defaults={...this.defaults,...E}}),this}setOptions(A){return this.defaults={...this.defaults,...A},this}lexer(A,q){return Lq.lex(A,q??this.defaults)}parser(A,q){return Vq.parse(A,q??this.defaults)}parseMarkdown(A){return(q,g)=>{let E={...g},F={...this.defaults,...E},K=this.onError(!!F.silent,!!F.async);if(this.defaults.async===!0&&E.async===!1)return K(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof q>"u"||q===null)return K(new Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return K(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(q)+", string expected"));if(F.hooks&&(F.hooks.options=F,F.hooks.block=A),F.async)return(async()=>{let Z=F.hooks?await F.hooks.preprocess(q):q,j=await(F.hooks?await F.hooks.provideLexer():A?Lq.lex:Lq.lexInline)(Z,F),U=F.hooks?await F.hooks.processAllTokens(j):j;F.walkTokens&&await Promise.all(this.walkTokens(U,F.walkTokens));let G=await(F.hooks?await F.hooks.provideParser():A?Vq.parse:Vq.parseInline)(U,F);return F.hooks?await F.hooks.postprocess(G):G})().catch(K);try{F.hooks&&(q=F.hooks.preprocess(q));let Z=(F.hooks?F.hooks.provideLexer():A?Lq.lex:Lq.lexInline)(q,F);F.hooks&&(Z=F.hooks.processAllTokens(Z)),F.walkTokens&&this.walkTokens(Z,F.walkTokens);let j=(F.hooks?F.hooks.provideParser():A?Vq.parse:Vq.parseInline)(Z,F);return F.hooks&&(j=F.hooks.postprocess(j)),j}catch(Z){return K(Z)}}}onError(A,q){return(g)=>{if(g.message+=`
90
- Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+sq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},og=new rX;function JA(A,q){return og.parse(A,q)}JA.options=JA.setOptions=function(A){return og.setOptions(A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.getDefaults=yU;JA.defaults=eg;JA.use=function(...A){return og.use(...A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.walkTokens=function(A,q){return og.walkTokens(A,q)};JA.parseInline=og.parseInline;JA.Parser=Vq;JA.parser=Vq.parse;JA.Renderer=LZ;JA.TextRenderer=uU;JA.Lexer=Lq;JA.lexer=Lq.lex;JA.Tokenizer=HZ;JA.Hooks=dE;JA.parse=JA;var{options:JW,setOptions:MW,use:_W,walkTokens:$W,parseInline:XW}=JA,HW=Vq.parse,LW=Lq.lex;var oX=OA.fromHex("#9a9ea3"),eX=OA.fromHex("#252527");class pO extends DA{orientation;_value;_min;_max;_viewPortSize;_backgroundColor;_foregroundColor;_onChange;constructor(A,q){super(A,{flexShrink:0,...q});this.orientation=q.orientation,this._min=q.min??0,this._max=q.max??100,this._value=q.value??this._min,this._viewPortSize=q.viewPortSize??Math.max(1,(this._max-this._min)*0.1),this._onChange=q.onChange,this._backgroundColor=q.backgroundColor?u(q.backgroundColor):eX,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):oX,this.setupMouseHandling()}get value(){return this._value}set value(A){let q=Math.max(this._min,Math.min(this._max,A));if(q!==this._value)this._value=q,this._onChange?.(q),this.emit("change",{value:q}),this.requestRender()}get min(){return this._min}set min(A){if(A!==this._min){if(this._min=A,this._value<A)this.value=A;this.requestRender()}}get max(){return this._max}set max(A){if(A!==this._max){if(this._max=A,this._value>A)this.value=A;this.requestRender()}}set viewPortSize(A){let q=Math.max(0.01,Math.min(A,this._max-this._min));if(q!==this._viewPortSize)this._viewPortSize=q,this.requestRender()}get viewPortSize(){return this._viewPortSize}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=u(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=u(A),this.requestRender()}calculateDragOffsetVirtual(A){let q=this.orientation==="vertical"?this.y:this.x,g=(this.orientation==="vertical"?A.y:A.x)-q,E=Math.max(0,Math.min((this.orientation==="vertical"?this.height:this.width)*2,g*2)),F=this.getVirtualThumbStart(),K=this.getVirtualThumbSize();return Math.max(0,Math.min(K,E-F))}setupMouseHandling(){let A=!1,q=0;this.onMouseDown=(g)=>{g.stopPropagation(),g.preventDefault();let E=this.getThumbRect();if(g.x>=E.x&&g.x<E.x+E.width&&g.y>=E.y&&g.y<E.y+E.height)A=!0,q=this.calculateDragOffsetVirtual(g);else this.updateValueFromMouseDirect(g),A=!0,q=this.calculateDragOffsetVirtual(g)},this.onMouseDrag=(g)=>{if(!A)return;g.stopPropagation(),this.updateValueFromMouseWithOffset(g,q)},this.onMouseUp=(g)=>{if(A)this.updateValueFromMouseWithOffset(g,q);A=!1}}updateValueFromMouseDirect(A){let q=this.orientation==="vertical"?this.y:this.x,g=this.orientation==="vertical"?this.height:this.width,F=(this.orientation==="vertical"?A.y:A.x)-q,K=Math.max(0,Math.min(g,F)),Z=g===0?0:K/g,j=this._max-this._min,U=this._min+Z*j;this.value=U}updateValueFromMouseWithOffset(A,q){let g=this.orientation==="vertical"?this.y:this.x,E=this.orientation==="vertical"?this.height:this.width,F=this.orientation==="vertical"?A.y:A.x,K=E*2,Z=F-g,U=Math.max(0,Math.min(E,Z))*2,G=this.getVirtualThumbSize(),Y=Math.max(0,K-G),M=U-q;M=Math.max(0,Math.min(Y,M));let O=Y===0?0:M/Y,$=this._max-this._min,_=this._min+O*$;this.value=_}getThumbRect(){let A=this.getVirtualThumbSize(),q=this.getVirtualThumbStart(),g=Math.floor(q/2),E=Math.ceil((q+A)/2)-g;if(this.orientation==="vertical")return{x:this.x,y:this.y+g,width:this.width,height:Math.max(1,E)};else return{x:this.x+g,y:this.y,width:Math.max(1,E),height:this.height}}renderSelf(A){if(this.orientation==="horizontal")this.renderHorizontal(A);else this.renderVertical(A)}renderHorizontal(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.width-1,K);for(let U=Z;U<=j;U++){let G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if(M===G)_="\u258C";else _="\u2590";for(let x=0;x<this.height;x++)A.setCellWithAlphaBlending(this.x+U,this.y+x,_,this._foregroundColor,this._backgroundColor)}}renderVertical(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.height-1,K);for(let U=Z;U<=j;U++){let G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-G===0)_="\u2580";else _="\u2584";for(let x=0;x<this.width;x++)A.setCellWithAlphaBlending(this.x+x,this.y+U,_,this._foregroundColor,this._backgroundColor)}}getVirtualThumbSize(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return A;let g=Math.max(1,this._viewPortSize),E=q+g;if(E<=g)return A;let F=g/E,K=Math.floor(A*F);return Math.max(1,Math.min(K,A))}getVirtualThumbStart(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return 0;let g=(this._value-this._min)/q,E=this.getVirtualThumbSize();return Math.round(g*(A-E))}}class wU extends DA{slider;startArrow;endArrow;orientation;_focusable=!0;_scrollSize=0;_scrollPosition=0;_viewportSize=0;_showArrows=!1;_manualVisibility=!1;_onChange;scrollStep=null;get visible(){return super.visible}set visible(A){this._manualVisibility=!0,super.visible=A}resetVisibilityControl(){this._manualVisibility=!1,this.recalculateVisibility()}get scrollSize(){return this._scrollSize}get scrollPosition(){return this._scrollPosition}get viewportSize(){return this._viewportSize}set scrollSize(A){if(A===this.scrollSize)return;this._scrollSize=A,this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}set scrollPosition(A){let q=Math.round(Math.min(Math.max(0,A),this.scrollSize-this.viewportSize));if(q!==this._scrollPosition)this._scrollPosition=q,this.updateSliderFromScrollState()}set viewportSize(A){if(A===this.viewportSize)return;this._viewportSize=A,this.slider.viewPortSize=Math.max(1,this._viewportSize),this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}get showArrows(){return this._showArrows}set showArrows(A){if(A===this._showArrows)return;this._showArrows=A,this.startArrow.visible=A,this.endArrow.visible=A}constructor(A,{trackOptions:q,arrowOptions:g,orientation:E,showArrows:F=!1,...K}){super(A,{flexDirection:E==="vertical"?"column":"row",alignSelf:"stretch",alignItems:"stretch",...K});this._onChange=K.onChange,this.orientation=E,this._showArrows=F;let Z=Math.max(0,this._scrollSize-this._viewportSize),j=Math.max(1,this._viewportSize),U=q?.viewPortSize??j;this.slider=new pO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(O)=>{this._scrollPosition=Math.round(O),this._onChange?.(this._scrollPosition),this.emit("change",{position:this._scrollPosition})},...E==="vertical"?{width:Math.max(1,Math.min(2,this.width)),height:"100%",marginLeft:"auto"}:{width:"100%",height:1,marginTop:"auto"},flexGrow:1,flexShrink:1,...q}),this.updateSliderFromScrollState();let G=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...G}),this.endArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...G}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let Y=void 0,M=void 0;this.startArrow.onMouseDown=(O)=>{O.stopPropagation(),O.preventDefault(),this.scrollBy(-0.5,"viewport"),Y=setTimeout(()=>{this.scrollBy(-0.5,"viewport"),Y=setInterval(()=>{this.scrollBy(-0.2,"viewport")},200)},500)},this.startArrow.onMouseUp=(O)=>{O.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(O)=>{O.stopPropagation(),O.preventDefault(),this.scrollBy(0.5,"viewport"),M=setTimeout(()=>{this.scrollBy(0.5,"viewport"),M=setInterval(()=>{this.scrollBy(0.2,"viewport")},200)},500)},this.endArrow.onMouseUp=(O)=>{O.stopPropagation(),clearInterval(M)}}set arrowOptions(A){Object.assign(this.startArrow,A),Object.assign(this.endArrow,A),this.requestRender()}set trackOptions(A){Object.assign(this.slider,A),this.requestRender()}updateSliderFromScrollState(){let A=Math.max(0,this._scrollSize-this._viewportSize);this.slider.min=0,this.slider.max=A,this.slider.value=Math.min(this._scrollPosition,A)}scrollBy(A,q="absolute"){let E=(q==="viewport"?this.viewportSize:q==="content"?this.scrollSize:q==="step"?this.scrollStep??1:1)*A;this.scrollPosition+=E}recalculateVisibility(){if(!this._manualVisibility){let A=this.scrollSize<=this.viewportSize?1:this.viewportSize/this.scrollSize;super.visible=A<1}}handleKeyPress(A){switch(A.name){case"left":case"h":if(this.orientation!=="horizontal")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"right":case"l":if(this.orientation!=="horizontal")return!1;return this.scrollBy(0.2,"viewport"),!0;case"up":case"k":if(this.orientation!=="vertical")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"down":case"j":if(this.orientation!=="vertical")return!1;return this.scrollBy(0.2,"viewport"),!0;case"pageup":return this.scrollBy(-0.5,"viewport"),!0;case"pagedown":return this.scrollBy(0.5,"viewport"),!0;case"home":return this.scrollBy(-1,"content"),!0;case"end":return this.scrollBy(1,"content"),!0}return!1}}class CU extends DA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):OA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?u(q.backgroundColor):OA.fromValues(0,0,0,0),this._attributes=q.attributes??0,this._arrowChars={up:"\u25B2",down:"\u25BC",left:"\u25C0",right:"\u25B6",...q.arrowChars},!q.width)this.width=Bun.stringWidth(this.getArrowChar())}get direction(){return this._direction}set direction(A){if(this._direction!==A)this._direction=A,this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){if(this._foregroundColor!==A)this._foregroundColor=u(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=u(A),this.requestRender()}get attributes(){return this._attributes}set attributes(A){if(this._attributes!==A)this._attributes=A,this.requestRender()}set arrowChars(A){this._arrowChars={...this._arrowChars,...A},this.requestRender()}renderSelf(A){let q=this.getArrowChar();A.drawText(q,this.x,this.y,this._foregroundColor,this._backgroundColor,this._attributes)}getArrowChar(){switch(this._direction){case"up":return this._arrowChars.up;case"down":return this._arrowChars.down;case"left":return this._arrowChars.left;case"right":return this._arrowChars.right;default:return"?"}}}class uO extends b{viewport;_viewportCulling;constructor(A,q,g,E){super(A,E);this.viewport=q,this._viewportCulling=g}get viewportCulling(){return this._viewportCulling}set viewportCulling(A){this._viewportCulling=A}_getVisibleChildren(){if(this._viewportCulling)return PU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class Lg extends b{static idCounter=0;internalId=0;wrapper;viewport;content;horizontalScrollBar;verticalScrollBar;_focusable=!0;selectionListener;autoScrollMouseX=0;autoScrollMouseY=0;autoScrollThresholdVertical=3;autoScrollThresholdHorizontal=3;autoScrollSpeedSlow=6;autoScrollSpeedMedium=36;autoScrollSpeedFast=72;isAutoScrolling=!1;cachedAutoScrollSpeed=3;autoScrollAccumulatorX=0;autoScrollAccumulatorY=0;scrollAccumulatorX=0;scrollAccumulatorY=0;_stickyScroll;_stickyScrollTop=!1;_stickyScrollBottom=!1;_stickyScrollLeft=!1;_stickyScrollRight=!1;_stickyStart;_hasManualScroll=!1;_isApplyingStickyScroll=!1;scrollAccel;get stickyScroll(){return this._stickyScroll}set stickyScroll(A){this._stickyScroll=A,this.updateStickyState()}get stickyStart(){return this._stickyStart}set stickyStart(A){this._stickyStart=A,this.updateStickyState()}get scrollTop(){return this.verticalScrollBar.scrollPosition}set scrollTop(A){if(this.verticalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollLeft(){return this.horizontalScrollBar.scrollPosition}set scrollLeft(A){if(this.horizontalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollWidth(){return this.horizontalScrollBar.scrollSize}get scrollHeight(){return this.verticalScrollBar.scrollSize}updateStickyState(){if(!this._stickyScroll)return;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);if(this.scrollTop<=0){if(this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this._stickyStart==="top"||this._stickyStart==="bottom"&&A===0)this._hasManualScroll=!1}else if(this.scrollTop>=A){if(this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this._stickyStart==="bottom")this._hasManualScroll=!1}else this._stickyScrollTop=!1,this._stickyScrollBottom=!1;if(this.scrollLeft<=0){if(this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this._stickyStart==="left"||this._stickyStart==="right"&&q===0)this._hasManualScroll=!1}else if(this.scrollLeft>=q){if(this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this._stickyStart==="right")this._hasManualScroll=!1}else this._stickyScrollLeft=!1,this._stickyScrollRight=!1}applyStickyStart(A){switch(this._isApplyingStickyScroll=!0,A){case"top":this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this.verticalScrollBar.scrollPosition=0;break;case"bottom":this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this.verticalScrollBar.scrollPosition=Math.max(0,this.scrollHeight-this.viewport.height);break;case"left":this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this.horizontalScrollBar.scrollPosition=0;break;case"right":this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this.horizontalScrollBar.scrollPosition=Math.max(0,this.scrollWidth-this.viewport.width);break}this._isApplyingStickyScroll=!1}constructor(A,{wrapperOptions:q,viewportOptions:g,contentOptions:E,rootOptions:F,scrollbarOptions:K,verticalScrollbarOptions:Z,horizontalScrollbarOptions:j,stickyScroll:U=!1,stickyStart:G,scrollX:Y=!1,scrollY:M=!0,scrollAcceleration:O,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=Lg.idCounter++,this._stickyScroll=U,this._stickyStart=G,this.scrollAccel=O??new MU,this.wrapper=new b(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new b(A,{flexDirection:"column",flexGrow:1,overflow:"hidden",onSizeChange:()=>{this.recalculateBarProps()},...g,id:`scroll-box-viewport-${this.internalId}`}),this.wrapper.add(this.viewport),this.content=new uO(A,this.viewport,$,{alignSelf:"flex-start",flexShrink:0,...Y?{minWidth:"100%"}:{minWidth:"100%",maxWidth:"100%"},...M?{minHeight:"100%"}:{minHeight:"100%",maxHeight:"100%"},onSizeChange:()=>{this.recalculateBarProps()},...E,id:`scroll-box-content-${this.internalId}`}),this.viewport.add(this.content),this.verticalScrollBar=new wU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(x)=>{if(this.content.translateY=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new wU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(x)=>{if(this.content.translateX=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),G&&U)this.applyStickyStart(G);this.selectionListener=()=>{let x=this._ctx.getSelection();if(!x||!x.isSelecting)this.stopAutoScroll()},this._ctx.on("selection",this.selectionListener)}onUpdate(A){this.handleAutoScroll(A)}scrollBy(A,q="absolute"){if(typeof A==="number")this.verticalScrollBar.scrollBy(A,q);else this.verticalScrollBar.scrollBy(A.y,q),this.horizontalScrollBar.scrollBy(A.x,q)}scrollTo(A){if(typeof A==="number")this.scrollTop=A;else this.scrollTop=A.y,this.scrollLeft=A.x}isAtStickyPosition(){if(!this._stickyScroll||!this._stickyStart)return!1;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);switch(this._stickyStart){case"top":return this.scrollTop===0;case"bottom":return this.scrollTop>=A;case"left":return this.scrollLeft===0;case"right":return this.scrollLeft>=q;default:return!1}}add(A,q){return this.content.add(A,q)}insertBefore(A,q){return this.content.insertBefore(A,q)}remove(A){this.content.remove(A)}getChildren(){return this.content.getChildren()}onMouseEvent(A){if(A.type==="scroll"){let q=A.scroll?.direction;if(A.modifiers.shift)q=q==="up"?"left":q==="down"?"right":q==="right"?"down":"up";let g=A.scroll?.delta??0,E=Date.now(),F=this.scrollAccel.tick(E),K=g*F;if(q==="up"){this.scrollAccumulatorY-=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="down"){this.scrollAccumulatorY+=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="left"){this.scrollAccumulatorX-=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}else if(q==="right"){this.scrollAccumulatorX+=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}let Z=Math.max(0,this.scrollHeight-this.viewport.height),j=Math.max(0,this.scrollWidth-this.viewport.width);if(Z>1||j>1)this._hasManualScroll=!0}if(A.type==="drag"&&A.isSelecting)this.updateAutoScroll(A.x,A.y);else if(A.type==="up")this.stopAutoScroll()}handleKeyPress(A){if(this.verticalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;if(this.horizontalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;return!1}resetScrollAccumulators(){this.scrollAccumulatorX=0,this.scrollAccumulatorY=0}startAutoScroll(A,q){if(this.stopAutoScroll(),this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q),this.isAutoScrolling=!0,!this.live)this.live=!0}updateAutoScroll(A,q){this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q);let g=this.getAutoScrollDirectionX(A),E=this.getAutoScrollDirectionY(q);if(g===0&&E===0)this.stopAutoScroll();else if(!this.isAutoScrolling)this.startAutoScroll(A,q)}stopAutoScroll(){let A=this.isAutoScrolling;if(this.isAutoScrolling=!1,this.autoScrollAccumulatorX=0,this.autoScrollAccumulatorY=0,A&&!this.hasOtherLiveReasons())this.live=!1}hasOtherLiveReasons(){return!1}handleAutoScroll(A){if(!this.isAutoScrolling)return;let q=this.getAutoScrollDirectionX(this.autoScrollMouseX),g=this.getAutoScrollDirectionY(this.autoScrollMouseY),E=this.cachedAutoScrollSpeed*(A/1000),F=!1;if(q!==0){this.autoScrollAccumulatorX+=q*E;let K=Math.trunc(this.autoScrollAccumulatorX);if(K!==0)this.scrollLeft+=K,this.autoScrollAccumulatorX-=K,F=!0}if(g!==0){this.autoScrollAccumulatorY+=g*E;let K=Math.trunc(this.autoScrollAccumulatorY);if(K!==0)this.scrollTop+=K,this.autoScrollAccumulatorY-=K,F=!0}if(F)this._ctx.requestSelectionUpdate();if(q===0&&g===0)this.stopAutoScroll()}getAutoScrollDirectionX(A){let q=A-this.x,g=q,E=this.width-q;if(g<=this.autoScrollThresholdHorizontal)return this.scrollLeft>0?-1:0;else if(E<=this.autoScrollThresholdHorizontal){let F=this.scrollWidth-this.viewport.width;return this.scrollLeft<F?1:0}return 0}getAutoScrollDirectionY(A){let q=A-this.y,g=q,E=this.height-q;if(g<=this.autoScrollThresholdVertical)return this.scrollTop>0?-1:0;else if(E<=this.autoScrollThresholdVertical){let F=this.scrollHeight-this.viewport.height;return this.scrollTop<F?1:0}return 0}getAutoScrollSpeed(A,q){let g=A-this.x,E=q-this.y,F=g,K=this.width-g,Z=E,j=this.height-E,U=Math.min(F,K,Z,j);if(U<=1)return this.autoScrollSpeedFast;else if(U<=2)return this.autoScrollSpeedMedium;else return this.autoScrollSpeedSlow}recalculateBarProps(){let A=this._isApplyingStickyScroll;if(this._isApplyingStickyScroll=!0,this.verticalScrollBar.scrollSize=this.content.height,this.verticalScrollBar.viewportSize=this.viewport.height,this.horizontalScrollBar.scrollSize=this.content.width,this.horizontalScrollBar.viewportSize=this.viewport.width,this._stickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height),g=Math.max(0,this.scrollWidth-this.viewport.width);if(this._stickyStart&&!this._hasManualScroll)this.applyStickyStart(this._stickyStart);else{if(this._stickyScrollTop)this.scrollTop=0;else if(this._stickyScrollBottom&&q>0)this.scrollTop=q;if(this._stickyScrollLeft)this.scrollLeft=0;else if(this._stickyScrollRight&&g>0)this.scrollLeft=g}}this._isApplyingStickyScroll=A,process.nextTick(()=>{this.requestRender()})}set rootOptions(A){Object.assign(this,A),this.requestRender()}set wrapperOptions(A){Object.assign(this.wrapper,A),this.requestRender()}set viewportOptions(A){Object.assign(this.viewport,A),this.requestRender()}set contentOptions(A){Object.assign(this.content,A),this.requestRender()}set scrollbarOptions(A){Object.assign(this.verticalScrollBar,A),Object.assign(this.horizontalScrollBar,A),this.requestRender()}set verticalScrollbarOptions(A){Object.assign(this.verticalScrollBar,A),this.requestRender()}set horizontalScrollbarOptions(A){Object.assign(this.horizontalScrollBar,A),this.requestRender()}get scrollAcceleration(){return this.scrollAccel}set scrollAcceleration(A){this.scrollAccel=A}get viewportCulling(){return this.content.viewportCulling}set viewportCulling(A){this.content.viewportCulling=A,this.requestRender()}destroySelf(){if(this.selectionListener)this._ctx.off("selection",this.selectionListener),this.selectionListener=void 0;super.destroySelf()}}var A4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(A4||={});var q4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(q4||={});import{exec as f1}from"child_process";import{appendFileSync as g4,writeFileSync as E4}from"fs";import{join as F4}from"path";import{homedir as K4}from"os";var iO=F4(K4(),".config","hn-cli","debug.log"),lO=!1;function Z4(){if(!lO)try{E4(iO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
91
- `),lO=!0}catch{}}function FA(...A){Z4();let q=new Date().toISOString(),g=A.map((E)=>{if(typeof E==="object")try{return JSON.stringify(E,null,2)}catch{return String(E)}return String(E)}).join(" ");try{g4(iO,`[${q}] ${g}
92
- `)}catch{}}async function j4(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw new Error("Failed to fetch top stories");return A.json()}function tO(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(tO).filter(Boolean)}}function sO(A,q){let g=A.comments.slice(0,12).map(tO).filter(Boolean);return{...A,comments:q?g:[]}}async function nO(A){try{let q=await fetch(`https://api.hnpwa.com/v0/item/${A}.json`);if(!q.ok)return null;let g=await q.json();return sO(g,!0)}catch{return null}}async function rO(){let q=(await j4()).sort((Y,M)=>M-Y).slice(0,200),g=await Promise.all(q.map(async(Y)=>{try{let M=await fetch(`https://api.hnpwa.com/v0/item/${Y}.json`);if(!M.ok)return null;let O=await M.json();return sO(O,!1)}catch{return null}})),E=Date.now()/1000,F=E-86400;return g.filter((Y)=>Y!==null).filter((Y)=>Y.type==="link").filter((Y)=>Y.time>F).filter((Y)=>(Y.points||0)>=50||Y.comments_count>=20).sort((Y,M)=>{let O=(E-Y.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-O/24)),x=Math.max(0,100*(1-$/24)),N=(Y.points||0)+Y.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+x-N}).slice(0,24)}import{homedir as U4}from"os";import{join as oO}from"path";import{existsSync as eO,mkdirSync as G4,readFileSync as Y4,writeFileSync as Q4}from"fs";var AJ=[{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5"}],qJ=[{id:"gpt-5-nano-2025-08-07",name:"GPT-5 Nano"},{id:"gpt-5-mini-2025-08-07",name:"GPT-5 Mini"},{id:"gpt-5.2-2025-12-11",name:"GPT-5.2"}],O4="claude-haiku-4-5-20251001",J4="gpt-5-nano-2025-08-07",A6="claude-haiku-4-5-20251001",Vg="gpt-5-nano-2025-08-07",lU=oO(U4(),".config","hn-cli"),iU=oO(lU,"config.json");function gJ(A){if(!A.anthropicApiKey)delete A.anthropicModel;if(!A.openaiApiKey)delete A.openaiModel;if(A.provider){if(!(A.provider==="anthropic"?!!A.anthropicApiKey:!!A.openaiApiKey))delete A.provider}return A}function q6(){try{if(eO(iU)){let A=Y4(iU,"utf-8"),q=JSON.parse(A);return gJ(q)}}catch{}return{}}function tE(A){if(!eO(lU))G4(lU,{recursive:!0});let q=gJ(A);Q4(iU,JSON.stringify(q,null,2))}function lA(A){if(A==="anthropic"){if(process.env.ANTHROPIC_API_KEY)return process.env.ANTHROPIC_API_KEY}else if(A==="openai"){if(process.env.OPENAI_API_KEY)return process.env.OPENAI_API_KEY}let q=q6();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function Wg(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=q6();if(A.provider&&lA(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function EJ(){return Wg()!==void 0}function sE(A){let q=q6();if(A==="anthropic")return q.anthropicModel||O4;else return q.openaiModel||J4}function FJ(A,q){let g=q6();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;tE(g)}function KJ(){tE({})}var M4={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",textPrimary:"#e0e0e0",textSecondary:"#888888",textTertiary:"#666666",accent:"#ff6600",link:"#6699ff",success:"#4ade80",error:"#ef4444",hint:"#a855f7",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},_4={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",textPrimary:"#1a1a1a",textSecondary:"#666666",textTertiary:"#888888",accent:"#ff6600",link:"#0066cc",success:"#22c55e",error:"#dc2626",hint:"#9333ea",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},I={...M4};function $4(A){if(!A)return!1;let q=A.replace("#",""),g=parseInt(q.substr(0,2),16),E=parseInt(q.substr(2,2),16),F=parseInt(q.substr(4,2),16);return(0.299*g+0.587*E+0.114*F)/255>0.5}async function ZJ(A){try{let q=await A.getPalette({timeout:100});if(q.defaultBackground&&$4(q.defaultBackground))Object.assign(I,_4)}catch{}}function jJ(A){return{0:I.accent,1:I.commentL1,2:I.commentL2,3:I.commentL3}[A]??I.commentL3}var yA=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function UJ(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}function Ng(A){return A.replace(/<\/p>\s*<p>/g,`
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 tU="0.3.0";var H4="https://registry.npmjs.org/@brianlovin/hn-cli/latest",GJ="@brianlovin/hn-cli";function L4(A,q){let g=A.split(".").map(Number),E=q.split(".").map(Number);for(let F=0;F<3;F++){let K=g[F]??0,Z=E[F]??0;if(Z>K)return!0;if(Z<K)return!1}return!1}async function YJ(){try{let A=new AbortController,q=setTimeout(()=>A.abort(),3000),g=await fetch(H4,{signal:A.signal,headers:{Accept:"application/json"}});if(clearTimeout(q),!g.ok)return null;let F=(await g.json()).version;if(!F)return null;return{hasUpdate:L4(tU,F),currentVersion:tU,latestVersion:F}}catch{return null}}function sU(){if(process.versions.bun!==void 0)return`bun install -g ${GJ}`;return`npm install -g ${GJ}`}function QJ(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:1,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["bottom"],borderColor:I.border}),E=new b(A,{flexDirection:"row",alignItems:"center"}),F=new m(A,{content:"\u25A0",fg:I.accent,width:2,paddingLeft:1});E.add(F);let K=new m(A,{content:"Hacker News",fg:I.accent});E.add(K),g.add(E);let Z=new b(A,{flexDirection:"row",gap:2,alignItems:"center"}),j=new m(A,{content:"",fg:I.textSecondary});Z.add(j);let U=new m(A,{content:"brianlovin/hn-cli",fg:I.textSecondary,onMouseDown:()=>{q.onOpenGitHub?.()},onMouseOver:()=>{U.fg=I.accent},onMouseOut:()=>{U.fg=I.textSecondary}});Z.add(U);let G=new b(A,{flexDirection:"row",alignItems:"center",gap:1}),Y=new m(A,{content:"update available",fg:I.success}),M=new m(A,{content:"",fg:I.textSecondary});return G.add(Y),G.add(M),g.add(Z),{header:g,state:{loadingIndicator:j,loadingInterval:null,loadingFrame:0,rightContainer:Z,githubLink:U,updateContainer:G,updateLabel:Y,updateCommand:M}}}function OJ(A,q){if(q?.hasUpdate){if(A.rightContainer.remove(A.githubLink.id),A.updateCommand.content=sU(),!A.rightContainer.getChildren().some((F)=>F.id===A.updateContainer.id))A.rightContainer.add(A.updateContainer)}else if(A.rightContainer.remove(A.updateContainer.id),!A.rightContainer.getChildren().some((F)=>F.id===A.githubLink.id))A.rightContainer.add(A.githubLink)}function JJ(A,q){if(A.loadingInterval)return;A.loadingFrame=0,A.loadingInterval=setInterval(()=>{if(A.loadingIndicator&&!q()){let g=yA[A.loadingFrame]??"\u280B";A.loadingIndicator.content=g,A.loadingFrame=(A.loadingFrame+1)%yA.length}},80)}function MJ(A){if(A.loadingInterval)clearInterval(A.loadingInterval),A.loadingInterval=null;if(A.loadingIndicator)A.loadingIndicator.content=""}var V4=80;function _J(A,q,g,E,F){let K=new b(A,{id:`story-${q.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:I.bg,flexDirection:"row",onMouseDown:()=>{F.onSelect(g)}}),Z=new m(A,{id:`chevron-${q.id}`,content:E?"\u203A":"\u2022",fg:E?I.accent:I.textTertiary,width:2,paddingLeft:1});K.add(Z);let j=new b(A,{id:`content-${q.id}`,flexGrow:1,flexDirection:"column",paddingRight:2});K.add(j);let U=new m(A,{id:`title-${q.id}`,content:UJ(q.title,V4),fg:E?I.accent:I.textPrimary,maxHeight:2});if(j.add(U),q.domain){let G=new m(A,{id:`domain-${q.id}`,content:q.domain,fg:I.textSecondary});j.add(G)}return K}function nU(A,q,g){let E=A.getChildren();if(E.length>=2){let F=E[0];if(F&&"content"in F)F.content=g?"\u203A":"\u2022",F.fg=g?I.accent:I.textTertiary;let Z=E[1].getChildren();if(Z.length>0){let j=Z[0];if(j&&"content"in j)j.fg=g?I.accent:I.textPrimary}}}function $J(A,q){let g=A.getChildren();if(g.length>=1){let E=g[0];if(E&&"content"in E)E.content=q}}function W4(A,q){return A.length===1&&q.length>0&&q.toLowerCase().startsWith(A.toLowerCase())}function c6(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border,gap:2}),E=q.filter((Z)=>!Z.rightAlign),F=q.filter((Z)=>Z.rightAlign),K=(Z)=>{let{key:j,desc:U}=Z;if(W4(j,U)){let G=U[0]??"",Y=new m(A,{content:Hq`${yE(v6(I.textPrimary)(G))}${U.slice(1)}`,fg:I.textSecondary});g.add(Y)}else{let G=new b(A,{flexDirection:"row",gap:1}),Y=new m(A,{content:j,fg:I.textPrimary}),M=new m(A,{content:U,fg:I.textSecondary});G.add(Y),G.add(M),g.add(G)}};for(let Z of E)K(Z);if(F.length>0){let Z=new b(A,{flexGrow:1});g.add(Z);for(let j of F)K(j)}return g}var XJ=[{key:"\u2423",desc:"next"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"s",desc:"settings",rightAlign:!0}],HJ=[{key:"j/k",desc:"navigate"}],LJ=[{key:"esc",desc:"close"}];function VJ(A){let q=new b(A,{id:"story-list-panel",width:"35%",maxWidth:60,flexShrink:0,height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:I.border,backgroundColor:I.bg,paddingLeft:1}),g=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",backgroundColor:I.bg,gap:1}}),E=c6(A,HJ);return q.add(g),q.add(E),{panel:q,scroll:g,shortcutsBar:E,items:new Map}}function TZ(A,q,g,E,F){for(let K of q.scroll.getChildren())q.scroll.remove(K.id);q.items.clear(),g.forEach((K,Z)=>{let U=_J(A,K,Z,Z===E,F);q.items.set(Z,U),q.scroll.add(U)})}function WJ(A,q,g,E){let F=A.items.get(g),K=q[g];if(F&&K)nU(F,K,!1);let Z=A.items.get(E),j=q[E];if(Z&&j)nU(Z,j,!0)}function NJ(A,q){let F=q*3,K=F+2,Z=A.scroll.height,j=A.scroll.scrollTop;if(F<j)A.scroll.scrollTop=F;else if(K>j+Z)A.scroll.scrollTop=K-Z}function rU(A,q,g){let E=A.items.get(q);if(E)$J(E,g)}function oU(A,q){let g=q.level===0,E=jJ(q.level),F=new b(A,{id:`comment-wrapper-${q.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(q.level>0){let j=new b(A,{width:q.level*2,flexShrink:0});F.add(j)}let K=new b(A,{id:`comment-${q.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:E,flexDirection:"column"}),Z=new m(A,{content:q.user||"[deleted]",fg:g?I.accent:I.textSecondary});if(K.add(Z),q.content){let j=new m(A,{content:Ng(q.content),fg:I.textPrimary,wrapMode:"word"});K.add(j)}else if(q.deleted){let j=new m(A,{content:"[deleted]",fg:I.textTertiary});K.add(j)}if(F.add(K),q.comments&&q.comments.length>0){let j=new b(A,{width:"100%",flexDirection:"column"});for(let G of q.comments){let Y=oU(A,G);j.add(Y)}let U=new b(A,{width:"100%",flexDirection:"column"});return U.add(F),U.add(j),U}return F}function TJ(A,q,g){let E=new b(A,{width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new m(A,{content:q.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>g.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(E.add(F),q.domain){let K=new m(A,{content:q.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>g.onOpenStoryUrl()});E.add(K)}return{container:E}}function IJ(A,q,g,E){for(let K of q.getChildren())q.remove(K.id);let F=new m(A,{content:g.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>E.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(q.add(F),g.domain){let K=new m(A,{content:g.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>E.onOpenStoryUrl()});q.add(K)}}function xJ(A,q){let g=new b(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:I.bg}),E=new b(A,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),K=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});F.add(K);let Z=c6(A,XJ);return{panel:g,header:E,scroll:F,content:K,shortcutsBar:Z,rootCommentBoxes:[]}}function IZ(A){if(!A.panel.getChildren().some((E)=>E.id===A.header.id))A.panel.add(A.header),A.panel.add(A.scroll),A.panel.add(A.shortcutsBar)}function g6(A,q,g,E,F){for(let G of q.content.getChildren())q.content.remove(G.id);if(q.rootCommentBoxes=[],IJ(A,q.header,g,E),g.content){let G=new b(A,{width:"100%",marginBottom:2}),Y=new m(A,{content:Ng(g.content),fg:I.textPrimary,wrapMode:"word"});G.add(Y),q.content.add(G)}if(F?.isLoading){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=F.loadingFrame??0,M=yA[Y%yA.length],O=new m(A,{content:`${M} Generating TLDR...`,fg:I.textTertiary});G.add(O),q.content.add(G)}else if(F?.hasError){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:"Failed to generate TLDR. Press t to retry.",fg:I.error});G.add(Y),q.content.add(G)}else if(F?.tldr){let G=new b(A,{width:"100%",flexDirection:"column",flexShrink:1,marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:Hq`${Xg("TL;DR")}`,fg:I.accent});G.add(Y);let M=new b(A,{height:1});G.add(M);let O=new m(A,{content:Hq`${Xg("Article summary")}`,fg:I.textSecondary});G.add(O);let $=new b(A,{flexGrow:1,flexShrink:1}),_=new m(A,{content:F.tldr.articleSummary,fg:I.textPrimary,wrapMode:"word"});$.add(_),G.add($);let x=new b(A,{height:1});G.add(x);let N=new m(A,{content:Hq`${Xg("Discussion summary")}`,fg:I.textSecondary});G.add(N);let L=new b(A,{flexGrow:1,flexShrink:1}),P=new m(A,{content:F.tldr.discussionSummary,fg:I.textPrimary,wrapMode:"word"});L.add(P),G.add(L);let k=new b(A,{height:1});G.add(k);let C=new m(A,{content:"c to continue chatting",fg:I.textTertiary});G.add(C),q.content.add(G)}let K=new b(A,{width:"100%",flexDirection:"column"}),Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:`${g.comments_count} comments`,fg:I.textSecondary});Z.add(j);let U=new m(A,{content:Hq` \u00B7 ${yE(v6(I.textPrimary)("t"))}ldr`,fg:I.textTertiary});if(Z.add(U),K.add(Z),g.comments&&g.comments.length>0)for(let G=0;G<g.comments.length;G++){let Y=g.comments[G];if(!Y)continue;let M=oU(A,Y);if(K.add(M),Y.level===0)q.rootCommentBoxes.push(M)}else{let G=new m(A,{content:"No comments yet...",fg:I.textSecondary});K.add(G)}q.content.add(K),q.scroll.scrollTop=0}function eU(A,q){if(q<0||q>=A.rootCommentBoxes.length)return;let g=A.rootCommentBoxes[q];if(!g)return;let E=A.scroll.content,F=g.y-E.y;A.scroll.scrollTop=Math.max(0,F-1)}var xZ=30,N4="\u2588",T4="\u2591",PJ=6;function RJ(A){let q=(xZ-1)*2,g=A%q,E=g<xZ?g:q-g,F=Math.floor(PJ/2),K=E-F,Z=E+F+PJ%2;K=Math.max(0,K),Z=Math.min(xZ,Z);let j="";for(let U=0;U<xZ;U++)j+=U>=K&&U<Z?N4:T4;return j}function SJ(A){let q=new b(A,{width:"100%",height:"100%",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:I.bg}),g=new m(A,{content:"",fg:I.textSecondary}),E=new m(A,{content:"",fg:I.textSecondary,marginTop:2});return q.add(g),q.add(E),{container:q,progressBar:g,statusText:E,mode:"loading",frame:0,animationInterval:null}}function aJ(A,q,g){if(nE(A),A.mode=q,A.frame=0,q==="loading")A.progressBar.content=RJ(0),A.statusText.content="",A.animationInterval=setInterval(()=>{if(g()){nE(A);return}A.frame++,A.progressBar.content=RJ(A.frame)},40);else A.progressBar.content="",A.statusText.content="Press j/k to browse stories"}function nE(A){if(A.animationInterval)clearInterval(A.animationInterval),A.animationInterval=null}function hJ(A){return new b(A,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border})}function aA(A,q){if(!q.container)return;for(let Z of q.container.getChildren())q.container.remove(Z.id);let g=q.loading||q.suggestions.length>0,E=q.container;if(g)E.paddingTop=1,E.paddingBottom=1,E.border=["top"];else E.paddingTop=0,E.paddingBottom=0,E.border=[];if(q.loading){let Z=new m(A,{id:"suggestions-loading",content:`${yA[q.loadingFrame]??"\u280B"} Generating suggestions...`,fg:I.textSecondary});q.container.add(Z);return}if(q.suggestions.length===0)return;let F=new m(A,{id:"suggestions-header",content:"\u2726 Suggested questions",fg:I.textTertiary});q.container.add(F);let K=new b(A,{id:"suggestions-spacer",height:1});q.container.add(K);for(let Z=0;Z<q.suggestions.length;Z++){let j=q.suggestions[Z];if(!j)continue;let U=Z===q.selectedIndex,G=new b(A,{id:`suggestion-row-${Z}`,width:"100%",flexDirection:"row",backgroundColor:I.bg}),Y=new m(A,{id:`suggestion-indicator-${Z}`,content:U?"\u203A ":"\u2022 ",fg:U?I.accent:I.textSecondary,width:2,flexShrink:0});G.add(Y);let M=new b(A,{id:`suggestion-text-container-${Z}`,flexGrow:1,flexDirection:"row",flexWrap:"wrap"}),O=new m(A,{id:`suggestion-text-${Z}`,content:j,fg:U?I.accent:I.textSecondary,wrapMode:"word"});if(M.add(O),U){let $=new m(A,{id:`suggestion-hint-${Z}`,content:" tab to type",fg:I.textTertiary});M.add($)}G.add(M),q.container.add(G)}}function zJ(A){return{container:A,suggestions:[],originalSuggestions:[],selectedIndex:-1,loading:!1,loadingFrame:0}}function BJ(A,q){let g=new b(A,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border}),E=new m(A,{content:"\u203A ",fg:I.accent});g.add(E);let F=new Sq(A,{width:"100%",flexGrow:1,height:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:I.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]});return F.on("submit",()=>{q.onSubmit()}),g.add(F),{container:g,input:F}}function PZ(A,q,g){let E=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),F=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});E.add(F);let K=hJ(A),Z=zJ(K),j=BJ(A,{onSubmit:g.onSubmit}),U=c6(A,LJ),G=new b(A,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg}),{container:Y}=TJ(A,q,{onOpenStoryUrl:g.onOpenStoryUrl});return G.add(Y),G.add(E),G.add(K),G.add(j.container),G.add(U),{panel:G,scroll:E,content:F,input:j.input,suggestions:Z,messages:[],isActive:!0,isTyping:!1,typingFrame:0,typingInterval:null}}function Tg(A,q,g){if(!q.content)return;for(let F of q.content.getChildren())q.content.remove(F.id);let E=-1;for(let F=q.messages.length-1;F>=0;F--)if(q.messages[F]?.role==="user"){E=F;break}for(let F=0;F<q.messages.length;F++){let K=q.messages[F];if(!K)continue;let Z=F>=E&&E!==-1,j=new b(A,{width:"100%",flexDirection:"column",marginBottom:1}),U=new b(A,{flexDirection:"row",gap:1}),G=K.role==="user"?I.accent:I.link,Y=new m(A,{content:"\u2022",fg:G});U.add(Y);let M=g==="anthropic"?"Claude":"GPT",O=new m(A,{content:K.role==="user"?"You":M,fg:G});U.add(O),j.add(U);let $=new b(A,{width:"100%",paddingLeft:2}),_=new m(A,{content:K.content,fg:Z?I.textPrimary:I.textSecondary,wrapMode:"word"});$.add(_),j.add($),q.content.add(j)}AG(q)}function AG(A){if(!A.scroll||!A.isActive)return;A.scroll.scrollTop=A.scroll.scrollHeight,setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},50),setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},150)}function rE(A,q,g,E,F){q.messages.push({role:g,content:E}),Tg(A,q,F)}function wJ(A,q,g){if(q.typingInterval)return;q.isTyping=!0,q.typingFrame=0,q.typingInterval=setInterval(()=>{if(!q.isActive||!q.isTyping){d6(q);return}q.typingFrame=(q.typingFrame+1)%yA.length;let E=q.messages[q.messages.length-1];if(E&&E.role==="assistant"&&E.content==="..."){let F=yA[q.typingFrame]??"\u280B";E.content=F,Tg(A,q,g),E.content="..."}},80)}function d6(A){if(A.isTyping=!1,A.typingInterval)clearInterval(A.typingInterval),A.typingInterval=null}function RZ(){return{step:"provider",selectedProvider:"anthropic",keyInput:null}}function CJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=new m(A,{content:"Set up AI Chat",fg:I.accent});if(E.add(F),E.add(new b(A,{height:1})),q.step==="provider")I4(A,E,q);else if(q.step==="key")x4(A,E,q,g);return E}function I4(A,q,g){let E=new m(A,{content:"Choose your AI provider:",fg:I.textPrimary});q.add(E),q.add(new b(A,{height:1}));let F=new b(A,{flexDirection:"row",gap:1}),K=new m(A,{content:g.selectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:g.selectedProvider==="anthropic"?I.accent:I.textSecondary}),Z=new m(A,{content:"Anthropic",fg:g.selectedProvider==="anthropic"?I.accent:I.textPrimary});F.add(K),F.add(Z),q.add(F);let j=new b(A,{flexDirection:"row",gap:1}),U=new m(A,{content:g.selectedProvider==="openai"?"\u25CF":"\u25CB",fg:g.selectedProvider==="openai"?I.accent:I.textSecondary}),G=new m(A,{content:"OpenAI",fg:g.selectedProvider==="openai"?I.accent:I.textPrimary});j.add(U),j.add(G),q.add(j),q.add(new b(A,{height:2}));let Y=new m(A,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:I.textSecondary});q.add(Y)}function x4(A,q,g,E){let F=g.selectedProvider==="anthropic"?"Anthropic":"OpenAI",K=new m(A,{content:`Enter your ${F} API key:`,fg:I.textPrimary});q.add(K),q.add(new b(A,{height:1}));let Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:"\u203A",fg:I.accent});Z.add(j);let U=new b(A,{width:1});Z.add(U),g.keyInput=new VZ(A,{flexGrow:1,placeholder:g.selectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:I.bg}),g.keyInput.on("enter",()=>{let M=g.keyInput?.value.trim();if(M)E.onSaveKey(g.selectedProvider,M)}),Z.add(g.keyInput),q.add(Z),q.add(new b(A,{height:2}));let G=new m(A,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:I.textSecondary,wrapMode:"word"});q.add(G),q.add(new b(A,{height:2}));let Y=new m(A,{content:"Enter to save, Esc to cancel",fg:I.textSecondary});q.add(Y),setTimeout(()=>{if(g.keyInput)g.keyInput.focus(),g.keyInput.value=""},50)}function qG(A,q){if(A.step!=="provider")return;A.selectedProvider=q>0?"openai":"anthropic"}function kJ(A){if(A.step==="provider")A.step="key"}function DJ(){return{selectedIndex:0}}function gG(A){let q=!!lA("anthropic"),g=!!lA("openai"),E=q||g,F=A==="anthropic"?AJ:qJ,K=[];if(K.push({item:{type:"provider",provider:"anthropic",hasKey:q},enabled:!0}),K.push({item:{type:"provider",provider:"openai",hasKey:g},enabled:!0}),E)for(let Z of F)K.push({item:{type:"model",modelId:Z.id,modelName:Z.name},enabled:!0});if(K.push({item:{type:"action",action:"done"},enabled:!0}),E)K.push({item:{type:"action",action:"clear_keys"},enabled:!0});return K}function yJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=gG(g),K=sE(g),Z=new m(A,{content:"Settings",fg:I.accent});E.add(Z),E.add(new b(A,{height:1}));let j=new m(A,{content:Hq`${Xg("Provider")}`,fg:I.textSecondary});E.add(j);for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="provider")continue;let O=Y===q.selectedIndex,$=M.item.provider===g,_=M.item.hasKey,x=M.item.provider==="anthropic"?"Anthropic":"OpenAI",N=new b(A,{flexDirection:"row",gap:1}),L=new m(A,{content:O?"\u203A":" ",fg:I.accent});N.add(L);let P=new m(A,{content:$?"\u25CF":"\u25CB",fg:$?I.accent:I.textSecondary});N.add(P);let k=new m(A,{content:x,fg:O?I.accent:I.textPrimary});if(N.add(k),!_){let C=new m(A,{content:"Add API Key",fg:I.textSecondary});N.add(C)}E.add(N)}if(F.some((Y)=>Y.item.type==="model")){E.add(new b(A,{height:1}));let Y=new m(A,{content:Hq`${Xg("Model")}`,fg:I.textSecondary});E.add(Y);for(let M=0;M<F.length;M++){let O=F[M];if(!O||O.item.type!=="model")continue;let $=M===q.selectedIndex,_=O.item.modelId===K,x=new b(A,{flexDirection:"row",gap:1}),N=new m(A,{content:$?"\u203A":" ",fg:I.accent});x.add(N);let L=new m(A,{content:_?"\u25CF":"\u25CB",fg:_?I.accent:I.textSecondary});x.add(L);let P=new m(A,{content:O.item.modelName,fg:$?I.accent:I.textPrimary});x.add(P),E.add(x)}}E.add(new b(A,{height:1}));for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="action")continue;let O=Y===q.selectedIndex,$="";switch(M.item.action){case"done":$="Done";break;case"clear_keys":$="Clear All API Keys";break}let _=new b(A,{flexDirection:"row",gap:1}),x=new m(A,{content:O?"\u203A":" ",fg:I.accent});_.add(x);let N=new m(A,{content:`[${$}]`,fg:O?I.accent:I.textPrimary});_.add(N),E.add(_)}E.add(new b(A,{height:2}));let G=new m(A,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:I.textSecondary});return E.add(G),E}function EG(A,q,g){let F=gG(g).length-1;A.selectedIndex=Math.max(0,Math.min(F,A.selectedIndex+q))}function bJ(A,q){let E=gG(q)[A.selectedIndex];if(!E||!E.enabled)return null;switch(E.item.type){case"provider":if(!E.item.hasKey)return E.item.provider==="anthropic"?{type:"add_anthropic"}:{type:"add_openai"};if(E.item.provider!==q)return{type:"switch_provider",provider:E.item.provider};return null;case"model":return{type:"select_model",modelId:E.item.modelId,provider:q};case"action":switch(E.item.action){case"done":return{type:"done"};case"clear_keys":return{type:"clear_keys"}}}return null}function vJ(A){return!1}function f(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function T(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var FG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return FG=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function oq(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var oE=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};class t extends Error{}class NA extends t{constructor(A,q,g,E){super(`${NA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("request-id"),this.error=q}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new E6({message:g,cause:oE(q)});let F=q;if(A===400)return new AF(A,F,g,E);if(A===401)return new qF(A,F,g,E);if(A===403)return new gF(A,F,g,E);if(A===404)return new EF(A,F,g,E);if(A===409)return new FF(A,F,g,E);if(A===422)return new KF(A,F,g,E);if(A===429)return new ZF(A,F,g,E);if(A>=500)return new jF(A,F,g,E);return new NA(A,F,g,E)}}class bA extends NA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class E6 extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class eE extends E6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class AF extends NA{}class qF extends NA{}class gF extends NA{}class EF extends NA{}class FF extends NA{}class KF extends NA{}class ZF extends NA{}class jF extends NA{}var R4=/^[a-z][a-z0-9+.-]*:/i,mJ=(A)=>{return R4.test(A)},KG=(A)=>(KG=Array.isArray,KG(A)),ZG=KG;function SZ(A){if(typeof A!=="object")return{};return A??{}}function fJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function cJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var dJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new t(`${A} must be an integer`);if(q<0)throw new t(`${A} must be a positive integer`);return q};var aZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var pJ=(A)=>new Promise((q)=>setTimeout(q,A));var Ig="0.71.2";var tJ=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function S4(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var a4=()=>{let A=S4();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":lJ(Deno.build.os),"X-Stainless-Arch":uJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":lJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":uJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=h4();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function h4(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var uJ=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},lJ=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},iJ,sJ=()=>{return iJ??(iJ=a4())};function nJ(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function jG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function hZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return jG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function UF(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function rJ(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var oJ=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};function qM(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var eJ;function GF(A){let q;return(eJ??(q=new globalThis.TextEncoder,eJ=q.encode.bind(q)))(A)}var AM;function UG(A){let q;return(AM??(q=new globalThis.TextDecoder,AM=q.decode.bind(q)))(A)}var tA,sA;class xg{constructor(){tA.set(this,void 0),sA.set(this,void 0),f(this,tA,new Uint8Array,"f"),f(this,sA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?GF(A):A;f(this,tA,qM([T(this,tA,"f"),q]),"f");let g=[],E;while((E=w4(T(this,tA,"f"),T(this,sA,"f")))!=null){if(E.carriage&&T(this,sA,"f")==null){f(this,sA,E.index,"f");continue}if(T(this,sA,"f")!=null&&(E.index!==T(this,sA,"f")+1||E.carriage)){g.push(UG(T(this,tA,"f").subarray(0,T(this,sA,"f")-1))),f(this,tA,T(this,tA,"f").subarray(T(this,sA,"f")),"f"),f(this,sA,null,"f");continue}let F=T(this,sA,"f")!==null?E.preceding-1:E.preceding,K=UG(T(this,tA,"f").subarray(0,F));g.push(K),f(this,tA,T(this,tA,"f").subarray(E.index),"f"),f(this,sA,null,"f")}return g}flush(){if(!T(this,tA,"f").length)return[];return this.decode(`
102
- `)}}tA=new WeakMap,sA=new WeakMap;xg.NEWLINE_CHARS=new Set([`
103
- `,"\r"]);xg.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function w4(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function gM(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var BZ={off:0,error:200,warn:300,info:400,debug:500},GG=(A,q,g)=>{if(!A)return;if(cJ(BZ,A))return A;hA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(BZ))}`);return};function YF(){}function zZ(A,q,g){if(!q||BZ[A]>BZ[g])return YF;else return q[A].bind(q)}var C4={error:YF,warn:YF,info:YF,debug:YF},EM=new WeakMap;function hA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return C4;let E=EM.get(q);if(E&&E[0]===g)return E[1];let F={error:zZ("error",q,g),warn:zZ("warn",q,g),info:zZ("info",q,g),debug:zZ("debug",q,g)};return EM.set(q,[g,F]),F}var eq=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="x-api-key"||q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var QF;class nA{constructor(A,q,g){this.iterator=A,QF.set(this,void 0),this.controller=q,f(this,QF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?hA(g):console;async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of k4(A,q)){if(j.event==="completion")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="message_start"||j.event==="message_delta"||j.event==="message_stop"||j.event==="content_block_start"||j.event==="content_block_delta"||j.event==="content_block_stop")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="ping")continue;if(j.event==="error")throw new NA(void 0,aZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new xg,j=UF(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}[(QF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new nA(()=>E(A),this.controller,T(this,QF,"f")),new nA(()=>E(q),this.controller,T(this,QF,"f"))]}toReadableStream(){let A=this,q;return jG({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=GF(JSON.stringify(E)+`
104
- `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*k4(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new t("Attempted to iterate over a response with no body")}let g=new FM,E=new xg,F=UF(A.body);for await(let K of D4(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*D4(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?GF(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=gM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class FM{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
105
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=y4(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function y4(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function wZ(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(hA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller);return nA.fromSSEResponse(g,q.controller)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return YG(M,g)}return await g.text()})();return hA(A).debug(`[${E}] response parsed`,eq({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function YG(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("request-id"),enumerable:!1})}var OF;class F6 extends Promise{constructor(A,q,g=wZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,OF.set(this,void 0),f(this,OF,A,"f")}_thenUnwrap(A){return new F6(T(this,OF,"f"),this.responsePromise,async(q,g)=>YG(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(T(this,OF,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}OF=new WeakMap;var CZ;class QG{constructor(A,q,g,E){CZ.set(this,void 0),f(this,CZ,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await T(this,CZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(CZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class kZ extends F6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await wZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Wq extends QG{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.first_id=g.first_id||null,this.last_id=g.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let q=this.first_id;if(!q)return null;return{...this.options,query:{...SZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...SZ(this.options.query),after_id:A}}}}class JF extends QG{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.next_page=g.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.next_page;if(!A)return null;return{...this.options,query:{...SZ(this.options.query),page:A}}}}var JG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function K6(A,q,g){return JG(),new File(A,q??"unknown_file",g)}function MF(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var MG=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var p6=async(A,q)=>{return{...A,body:await m4(A.body,q)}},KM=new WeakMap;function v4(A){let q=typeof A==="function"?A:A.fetch,g=KM.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return KM.set(q,E),E}var m4=async(A,q)=>{if(!await v4(q))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>OG(g,E,F))),g},f4=(A)=>A instanceof Blob&&("name"in A);var OG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response){let E={},F=g.headers.get("Content-Type");if(F)E={type:F};A.append(q,K6([await g.blob()],MF(g),E))}else if(MG(g))A.append(q,K6([await new Response(hZ(g)).blob()],MF(g)));else if(f4(g))A.append(q,K6([g],MF(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>OG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>OG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var ZM=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",c4=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&ZM(A),d4=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function DZ(A,q,g){if(JG(),A=await A,q||(q=MF(A)),c4(A)){if(A instanceof File&&q==null&&g==null)return A;return K6([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(d4(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),K6(await _G(F),q,g)}let E=await _G(A);if(!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return K6(E,q,g)}async function _G(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(ZM(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(MG(A))for await(let g of A)q.push(...await _G(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${p4(A)}`)}return q}function p4(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class _A{constructor(A){this._client=A}}var jM=Symbol.for("brand.privateNullableHeaders");function*l4(A){if(!A)return;if(jM in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(ZG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=ZG(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var AA=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of l4(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[jM]:!0,values:q,nulls:g}};function GM(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var UM=Object.freeze(Object.create(null)),i4=(A=GM)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??UM)??UM)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new t(`Path parameters result in path with invalid segments:
106
- ${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=i4(GM);class _F extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",Wq,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}download(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}/content`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}retrieveMetadata(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}upload(A,q){let{betas:g,...E}=A;return this._client.post("/v1/files",p6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class $F extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}?beta=true`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models?beta=true",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yZ={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function $G(A,q,g){if(!q||!("parse"in(q.output_format??{})))return{...A,content:A.content.map((E)=>{if(E.type==="text"){let F=Object.defineProperty({...E},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(F,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return E}),parsed_output:null};return XG(A,q,g)}function XG(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=n4(q,K.text);if(E===null)E=Z;let j=Object.defineProperty({...K},"parsed_output",{value:Z,enumerable:!1});return Object.defineProperty(j,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),Z},enumerable:!1})}return K});return{...A,content:F,parsed_output:E}}function n4(A,q){if(A.output_format?.type!=="json_schema")return null;try{if("parse"in A.output_format)return A.output_format.parse(q);return JSON.parse(q)}catch(g){throw new t(`Failed to parse structured output: ${g}`)}}var r4=(A)=>{let q=0,g=[];while(q<A.length){let E=A[q];if(E==="\\"){q++;continue}if(E==="{"){g.push({type:"brace",value:"{"}),q++;continue}if(E==="}"){g.push({type:"brace",value:"}"}),q++;continue}if(E==="["){g.push({type:"paren",value:"["}),q++;continue}if(E==="]"){g.push({type:"paren",value:"]"}),q++;continue}if(E===":"){g.push({type:"separator",value:":"}),q++;continue}if(E===","){g.push({type:"delimiter",value:","}),q++;continue}if(E==='"'){let j="",U=!1;E=A[++q];while(E!=='"'){if(q===A.length){U=!0;break}if(E==="\\"){if(q++,q===A.length){U=!0;break}j+=E+A[q],E=A[++q]}else j+=E,E=A[++q]}if(E=A[++q],!U)g.push({type:"string",value:j});continue}if(E&&/\s/.test(E)){q++;continue}let K=/[0-9]/;if(E&&K.test(E)||E==="-"||E==="."){let j="";if(E==="-")j+=E,E=A[++q];while(E&&K.test(E)||E===".")j+=E,E=A[++q];g.push({type:"number",value:j});continue}let Z=/[a-z]/i;if(E&&Z.test(E)){let j="";while(E&&Z.test(E)){if(q===A.length)break;j+=E,E=A[++q]}if(j=="true"||j=="false"||j==="null")g.push({type:"name",value:j});else{q++;continue}continue}q++}return g},u6=(A)=>{if(A.length===0)return A;let q=A[A.length-1];switch(q.type){case"separator":return A=A.slice(0,A.length-1),u6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),u6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),u6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),u6(A);break;case"delimiter":return A=A.slice(0,A.length-1),u6(A);break}return A},o4=(A)=>{let q=[];if(A.map((g)=>{if(g.type==="brace")if(g.value==="{")q.push("}");else q.splice(q.lastIndexOf("}"),1);if(g.type==="paren")if(g.value==="[")q.push("]");else q.splice(q.lastIndexOf("]"),1)}),q.length>0)q.reverse().map((g)=>{if(g==="}")A.push({type:"brace",value:"}"});else if(g==="]")A.push({type:"paren",value:"]"})});return A},e4=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},bZ=(A)=>JSON.parse(e4(o4(u6(r4(A)))));var Zq,Pg,l6,XF,vZ,HF,LF,mZ,VF,Ag,WF,fZ,cZ,Z6,dZ,pZ,NF,HG,YM,uZ,LG,VG,WG,QM,OM="__json_buf";function JM(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class TF{constructor(A,q){Zq.add(this),this.messages=[],this.receivedMessages=[],Pg.set(this,void 0),l6.set(this,null),this.controller=new AbortController,XF.set(this,void 0),vZ.set(this,()=>{}),HF.set(this,()=>{}),LF.set(this,void 0),mZ.set(this,()=>{}),VF.set(this,()=>{}),Ag.set(this,{}),WF.set(this,!1),fZ.set(this,!1),cZ.set(this,!1),Z6.set(this,!1),dZ.set(this,void 0),pZ.set(this,void 0),NF.set(this,void 0),uZ.set(this,(g)=>{if(f(this,fZ,!0,"f"),oq(g))g=new bA;if(g instanceof bA)return f(this,cZ,!0,"f"),this._emit("abort",g);if(g instanceof t)return this._emit("error",g);if(g instanceof Error){let E=new t(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new t(String(g)))}),f(this,XF,new Promise((g,E)=>{f(this,vZ,g,"f"),f(this,HF,E,"f")}),"f"),f(this,LF,new Promise((g,E)=>{f(this,mZ,g,"f"),f(this,VF,E,"f")}),"f"),T(this,XF,"f").catch(()=>{}),T(this,LF,"f").catch(()=>{}),f(this,l6,A,"f"),f(this,NF,q?.logger??console,"f")}get response(){return T(this,dZ,"f")}get request_id(){return T(this,pZ,"f")}async withResponse(){f(this,Z6,!0,"f");let A=await T(this,XF,"f");if(!A)throw new Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new TF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new TF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return f(F,l6,{...q,stream:!0},"f"),F._run(()=>F._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),F}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},T(this,uZ,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{T(this,Zq,"m",LG).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)T(this,Zq,"m",VG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,dZ,A,"f"),f(this,pZ,A?.headers.get("request-id"),"f"),T(this,vZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,WF,"f")}get errored(){return T(this,fZ,"f")}get aborted(){return T(this,cZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(this,Ag,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,Z6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,Z6,!0,"f"),await T(this,LF,"f")}get currentMessage(){return T(this,Pg,"f")}async finalMessage(){return await this.done(),T(this,Zq,"m",HG).call(this)}async finalText(){return await this.done(),T(this,Zq,"m",YM).call(this)}_emit(A,...q){if(T(this,WF,"f"))return;if(A==="end")f(this,WF,!0,"f"),T(this,mZ,"f").call(this);let g=T(this,Ag,"f")[A];if(g)T(this,Ag,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,Zq,"m",HG).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{T(this,Zq,"m",LG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,Zq,"m",VG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Pg=new WeakMap,l6=new WeakMap,XF=new WeakMap,vZ=new WeakMap,HF=new WeakMap,LF=new WeakMap,mZ=new WeakMap,VF=new WeakMap,Ag=new WeakMap,WF=new WeakMap,fZ=new WeakMap,cZ=new WeakMap,Z6=new WeakMap,dZ=new WeakMap,pZ=new WeakMap,NF=new WeakMap,uZ=new WeakMap,Zq=new WeakSet,HG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},YM=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new t("stream ended without producing a content block with type=text");return q.join(" ")},LG=function A(){if(this.ended)return;f(this,Pg,void 0,"f")},VG=function A(q){if(this.ended)return;let g=T(this,Zq,"m",QM).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(JM(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:MM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage($G(g,T(this,l6,"f"),{logger:T(this,NF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,Pg,g,"f");break}case"content_block_start":case"message_delta":break}},WG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Pg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Pg,void 0,"f"),$G(q,T(this,l6,"f"),{logger:T(this,NF,"f")})},QM=function A(q){let g=T(this,Pg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.container=q.delta.container,g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,g.context_management=q.context_management,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push(q.content_block),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&JM(E)){let F=E[OM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,OM,{value:F,enumerable:!1,writable:!0}),F)try{K.input=bZ(F)}catch(Z){let j=new t(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);T(this,uZ,"f").call(this,j)}g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:MM(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function MM(A){}var _M=1e5,$M=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
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 IF,i6,j6,TA,xF,rA,qg,Rg,PF,XM,NG;function HM(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class RF{constructor(A,q,g){IF.add(this),this.client=A,i6.set(this,!1),j6.set(this,!1),TA.set(this,void 0),xF.set(this,void 0),rA.set(this,void 0),qg.set(this,void 0),Rg.set(this,void 0),PF.set(this,0),f(this,TA,{params:{...q,messages:structuredClone(q.messages)}},"f"),f(this,xF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),f(this,Rg,HM(),"f")}async*[(i6=new WeakMap,j6=new WeakMap,TA=new WeakMap,xF=new WeakMap,rA=new WeakMap,qg=new WeakMap,Rg=new WeakMap,PF=new WeakMap,IF=new WeakSet,XM=async function A(){let q=T(this,TA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(T(this,rA,"f")!==void 0)try{let U=await T(this,rA,"f");g=U.usage.input_tokens+(U.usage.cache_creation_input_tokens??0)+(U.usage.cache_read_input_tokens??0)+U.usage.output_tokens}catch{return!1}let E=q.contextTokenThreshold??_M;if(g<E)return!1;let F=q.model??T(this,TA,"f").params.model,K=q.summaryPrompt??$M,Z=T(this,TA,"f").params.messages;if(Z[Z.length-1].role==="assistant"){let U=Z[Z.length-1];if(Array.isArray(U.content)){let G=U.content.filter((Y)=>Y.type!=="tool_use");if(G.length===0)Z.pop();else U.content=G}}let j=await this.client.beta.messages.create({model:F,messages:[...Z,{role:"user",content:[{type:"text",text:K}]}],max_tokens:T(this,TA,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(j.content[0]?.type!=="text")throw new t("Expected text response for compaction");return T(this,TA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(T(this,i6,"f"))throw new t("Cannot iterate over a consumed stream");f(this,i6,!0,"f"),f(this,j6,!0,"f"),f(this,qg,void 0,"f");try{while(!0){let q;try{if(T(this,TA,"f").params.max_iterations&&T(this,PF,"f")>=T(this,TA,"f").params.max_iterations)break;f(this,j6,!1,"f"),f(this,qg,void 0,"f"),f(this,PF,(A=T(this,PF,"f"),A++,A),"f"),f(this,rA,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=T(this,TA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},T(this,xF,"f")),f(this,rA,q.finalMessage(),"f"),T(this,rA,"f").catch(()=>{}),yield q;else f(this,rA,this.client.beta.messages.create({...F,stream:!1},T(this,xF,"f")),"f"),yield T(this,rA,"f");if(!await T(this,IF,"m",XM).call(this)){if(!T(this,j6,"f")){let{role:j,content:U}=await T(this,rA,"f");T(this,TA,"f").params.messages.push({role:j,content:U})}let Z=await T(this,IF,"m",NG).call(this,T(this,TA,"f").params.messages.at(-1));if(Z)T(this,TA,"f").params.messages.push(Z);else if(!T(this,j6,"f"))break}}finally{if(q)q.abort()}}if(!T(this,rA,"f"))throw new t("ToolRunner concluded without a message from the server");T(this,Rg,"f").resolve(await T(this,rA,"f"))}catch(q){throw f(this,i6,!1,"f"),T(this,Rg,"f").promise.catch(()=>{}),T(this,Rg,"f").reject(q),f(this,Rg,HM(),"f"),q}}setMessagesParams(A){if(typeof A==="function")T(this,TA,"f").params=A(T(this,TA,"f").params);else T(this,TA,"f").params=A;f(this,j6,!0,"f"),f(this,qg,void 0,"f")}async generateToolResponse(){let A=await T(this,rA,"f")??this.params.messages.at(-1);if(!A)return null;return T(this,IF,"m",NG).call(this,A)}done(){return T(this,Rg,"f").promise}async runUntilDone(){if(!T(this,i6,"f"))for await(let A of this);return this.done()}get params(){return T(this,TA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}NG=async function A(q){if(T(this,qg,"f")!==void 0)return T(this,qg,"f");return f(this,qg,AH(T(this,TA,"f").params,q),"f"),T(this,qg,"f")};async function AH(A,q=A.messages.at(-1)){if(!q||q.role!=="assistant"||!q.content||typeof q.content==="string")return null;let g=q.content.filter((F)=>F.type==="tool_use");if(g.length===0)return null;return{role:"user",content:await Promise.all(g.map(async(F)=>{let K=A.tools.find((Z)=>("name"in Z?Z.name:Z.mcp_server_name)===F.name);if(!K||!("run"in K))return{type:"tool_result",tool_use_id:F.id,content:`Error: Tool '${F.name}' not found`,is_error:!0};try{let Z=F.input;if("parse"in K&&K.parse)Z=K.parse(Z);let j=await K.run(Z);return{type:"tool_result",tool_use_id:F.id,content:j}}catch(Z){return{type:"tool_result",tool_use_id:F.id,content:`Error: ${Z instanceof Error?Z.message:String(Z)}`,is_error:!0}}}))}}class t6{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new xg;for await(let q of this.iterator)for(let g of A.decode(q))yield JSON.parse(g);for(let q of A.flush())yield JSON.parse(q)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new t("Attempted to iterate over a response with no body")}return new t6(UF(A.body),q)}}class SF extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/batches?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/messages/batches?beta=true",Wq,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}cancel(A,q={},g){let{betas:E}=q??{};return this._client.post(MA`/v1/messages/batches/${A}/cancel?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}async results(A,q={},g){let E=await this.retrieve(A);if(!E.results_url)throw new t(`No batch \`results_url\`; Has it finished processing? ${E.processing_status} - ${E.id}`);let{betas:F}=q??{};return this._client.get(E.results_url,{...g,headers:AA([{"anthropic-beta":[...F??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},g?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((K,Z)=>t6.fromResponse(Z.response,Z.controller))}}var LM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};class U6 extends _A{constructor(){super(...arguments);this.batches=new SF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in LM)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${LM[E.model]}
132
- Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let F=this._client._options.timeout;if(!E.stream&&F==null){let K=yZ[E.model]??void 0;F=this._client.calculateNonstreamingTimeout(E.max_tokens,K)}return this._client.post("/v1/messages?beta=true",{body:E,timeout:F??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}parse(A,q){return q={...q,headers:AA([{"anthropic-beta":[...A.betas??[],"structured-outputs-2025-11-13"].toString()},q?.headers])},this.create(A,q).then((g)=>XG(g,A,{logger:this._client.logger??console}))}stream(A,q){return TF.createMessage(this,A,q)}countTokens(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/count_tokens?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"token-counting-2024-11-01"].toString()},q?.headers])})}toolRunner(A,q){return new RF(this._client,A,q)}}U6.Batches=SF;U6.BetaToolRunner=RF;class aF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,p6({body:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])},this._client))}retrieve(A,q,g){let{skill_id:E,betas:F}=q;return this._client.get(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A,q={},g){let{betas:E,...F}=q??{};return this._client.getAPIList(MA`/v1/skills/${A}/versions?beta=true`,JF,{query:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}delete(A,q,g){let{skill_id:E,betas:F}=q;return this._client.delete(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}}class s6 extends _A{constructor(){super(...arguments);this.versions=new aF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",p6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])},this._client))}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/skills?beta=true",JF,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}}s6.Versions=aF;class aq extends _A{constructor(){super(...arguments);this.models=new $F(this._client),this.messages=new U6(this._client),this.files=new _F(this._client),this.skills=new s6(this._client)}}aq.Models=$F;aq.Messages=U6;aq.Files=_F;aq.Skills=s6;class n6 extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/complete",{body:E,timeout:this._client._options.timeout??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}}var jq,Sg,hF,lZ,zF,BF,iZ,wF,gg,CF,tZ,sZ,G6,nZ,rZ,TG,VM,IG,xG,PG,RG,WM,NM="__json_buf";function TM(A){return A.type==="tool_use"||A.type==="server_tool_use"}class kF{constructor(){jq.add(this),this.messages=[],this.receivedMessages=[],Sg.set(this,void 0),this.controller=new AbortController,hF.set(this,void 0),lZ.set(this,()=>{}),zF.set(this,()=>{}),BF.set(this,void 0),iZ.set(this,()=>{}),wF.set(this,()=>{}),gg.set(this,{}),CF.set(this,!1),tZ.set(this,!1),sZ.set(this,!1),G6.set(this,!1),nZ.set(this,void 0),rZ.set(this,void 0),IG.set(this,(A)=>{if(f(this,tZ,!0,"f"),oq(A))A=new bA;if(A instanceof bA)return f(this,sZ,!0,"f"),this._emit("abort",A);if(A instanceof t)return this._emit("error",A);if(A instanceof Error){let q=new t(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new t(String(A)))}),f(this,hF,new Promise((A,q)=>{f(this,lZ,A,"f"),f(this,zF,q,"f")}),"f"),f(this,BF,new Promise((A,q)=>{f(this,iZ,A,"f"),f(this,wF,q,"f")}),"f"),T(this,hF,"f").catch(()=>{}),T(this,BF,"f").catch(()=>{})}get response(){return T(this,nZ,"f")}get request_id(){return T(this,rZ,"f")}async withResponse(){f(this,G6,!0,"f");let A=await T(this,hF,"f");if(!A)throw new Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new kF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new kF;for(let F of q.messages)E._addMessageParam(F);return E._run(()=>E._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},T(this,IG,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{T(this,jq,"m",xG).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)T(this,jq,"m",PG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,nZ,A,"f"),f(this,rZ,A?.headers.get("request-id"),"f"),T(this,lZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,CF,"f")}get errored(){return T(this,tZ,"f")}get aborted(){return T(this,sZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(this,gg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,G6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,G6,!0,"f"),await T(this,BF,"f")}get currentMessage(){return T(this,Sg,"f")}async finalMessage(){return await this.done(),T(this,jq,"m",TG).call(this)}async finalText(){return await this.done(),T(this,jq,"m",VM).call(this)}_emit(A,...q){if(T(this,CF,"f"))return;if(A==="end")f(this,CF,!0,"f"),T(this,iZ,"f").call(this);let g=T(this,gg,"f")[A];if(g)T(this,gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,jq,"m",TG).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{T(this,jq,"m",xG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,jq,"m",PG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Sg=new WeakMap,hF=new WeakMap,lZ=new WeakMap,zF=new WeakMap,BF=new WeakMap,iZ=new WeakMap,wF=new WeakMap,gg=new WeakMap,CF=new WeakMap,tZ=new WeakMap,sZ=new WeakMap,G6=new WeakMap,nZ=new WeakMap,rZ=new WeakMap,IG=new WeakMap,jq=new WeakSet,TG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},VM=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new t("stream ended without producing a content block with type=text");return q.join(" ")},xG=function A(){if(this.ended)return;f(this,Sg,void 0,"f")},PG=function A(q){if(this.ended)return;let g=T(this,jq,"m",WM).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(TM(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:IM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(g,!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,Sg,g,"f");break}case"content_block_start":case"message_delta":break}},RG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Sg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Sg,void 0,"f"),q},WM=function A(q){let g=T(this,Sg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push({...q.content_block}),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&TM(E)){let F=E[NM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,NM,{value:F,enumerable:!1,writable:!0}),F)K.input=bZ(F);g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:IM(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function IM(A){}class DF extends _A{create(A,q){return this._client.post("/v1/messages/batches",{body:A,...q})}retrieve(A,q){return this._client.get(MA`/v1/messages/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/v1/messages/batches",Wq,{query:A,...q})}delete(A,q){return this._client.delete(MA`/v1/messages/batches/${A}`,q)}cancel(A,q){return this._client.post(MA`/v1/messages/batches/${A}/cancel`,q)}async results(A,q){let g=await this.retrieve(A);if(!g.results_url)throw new t(`No batch \`results_url\`; Has it finished processing? ${g.processing_status} - ${g.id}`);return this._client.get(g.results_url,{...q,headers:AA([{Accept:"application/binary"},q?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((E,F)=>t6.fromResponse(F.response,F.controller))}}class Y6 extends _A{constructor(){super(...arguments);this.batches=new DF(this._client)}create(A,q){if(A.model in xM)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${xM[A.model]}
133
- Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let g=this._client._options.timeout;if(!A.stream&&g==null){let E=yZ[A.model]??void 0;g=this._client.calculateNonstreamingTimeout(A.max_tokens,E)}return this._client.post("/v1/messages",{body:A,timeout:g??600000,...q,stream:A.stream??!1})}stream(A,q){return kF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var xM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};Y6.Batches=DF;class r6 extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yF=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var SG,aG,oZ,PM,RM="\\n\\nHuman:",SM="\\n\\nAssistant:";class $A{constructor({baseURL:A=yF("ANTHROPIC_BASE_URL"),apiKey:q=yF("ANTHROPIC_API_KEY")??null,authToken:g=yF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){SG.add(this),oZ.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&tJ())throw new t(`It looks like you're running in a browser-like environment.
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??aG.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=GG(F.logLevel,"ClientOptions.logLevel",this)??GG(yF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??nJ(),f(this,oZ,oJ,"f"),this._options=F,this.apiKey=typeof q==="string"?q:null,this.authToken=g}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){if(A.get("x-api-key")||A.get("authorization"))return;if(this.apiKey&&A.get("x-api-key"))return;if(q.has("x-api-key"))return;if(this.authToken&&A.get("authorization"))return;if(q.has("authorization"))return;throw new Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(A){return AA([await this.apiKeyAuth(A),await this.bearerAuth(A)])}async apiKeyAuth(A){if(this.apiKey==null)return;return AA([{"X-Api-Key":this.apiKey}])}async bearerAuth(A){if(this.authToken==null)return;return AA([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(A){return Object.entries(A).filter(([q,g])=>typeof g!=="undefined").map(([q,g])=>{if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")return`${encodeURIComponent(q)}=${encodeURIComponent(g)}`;if(g===null)return`${encodeURIComponent(q)}=`;throw new t(`Cannot stringify type ${typeof g}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Ig}`}defaultIdempotencyKey(){return`stainless-node-retry-${FG()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!T(this,SG,"m",PM).call(this)&&g||this.baseURL,F=mJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!fJ(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}_calculateNonstreamingTimeout(A){if(3600*A/128000>600)throw new t("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(A){}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new F6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(hA(this).debug(`[${U}] sending request`,eq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new bA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(oE),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new bA;let L=oq(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new eE;throw new E6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await rJ(O.body),hA(this).info(`${x} - ${p}`),hA(this).debug(`[${U}] response error (${p})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";hA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>oE(p).message),k=aZ(P),C=k?void 0:P;throw hA(this).debug(`[${U}] response error (${L})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return hA(this).info(x),hA(this).debug(`[${U}] response start`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new kZ(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await pJ(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}calculateNonstreamingTimeout(A,q){if(3600000*A/128000>600000||q!=null&&A>q)throw new t("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)dJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=AA([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...sJ(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=AA([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:hZ(A)};else return T(this,oZ,"f").call(this,{body:A,headers:g})}}aG=$A,oZ=new WeakMap,SG=new WeakSet,PM=function A(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=aG;$A.HUMAN_PROMPT=RM;$A.AI_PROMPT=SM;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=t;$A.APIError=NA;$A.APIConnectionError=E6;$A.APIConnectionTimeoutError=eE;$A.APIUserAbortError=bA;$A.NotFoundError=EF;$A.ConflictError=FF;$A.RateLimitError=ZF;$A.BadRequestError=AF;$A.AuthenticationError=qF;$A.InternalServerError=jF;$A.PermissionDeniedError=gF;$A.UnprocessableEntityError=KF;$A.toFile=DZ;class oA extends $A{constructor(){super(...arguments);this.completions=new n6(this),this.messages=new Y6(this),this.models=new r6(this),this.beta=new aq(this)}}oA.Completions=n6;oA.Messages=Y6;oA.Models=r6;oA.Beta=aq;function s(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function V(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var hG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return hG=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function bF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var vF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};class d extends Error{}class VA extends d{constructor(A,q,g,E){super(`${VA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("x-request-id"),this.error=q;let F=q;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new Q6({message:g,cause:vF(q)});let F=q?.error;if(A===400)return new mF(A,F,g,E);if(A===401)return new fF(A,F,g,E);if(A===403)return new cF(A,F,g,E);if(A===404)return new dF(A,F,g,E);if(A===409)return new pF(A,F,g,E);if(A===422)return new uF(A,F,g,E);if(A===429)return new lF(A,F,g,E);if(A>=500)return new iF(A,F,g,E);return new VA(A,F,g,E)}}class IA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class Q6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class O6 extends Q6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class mF extends VA{}class fF extends VA{}class cF extends VA{}class dF extends VA{}class pF extends VA{}class uF extends VA{}class lF extends VA{}class iF extends VA{}class tF extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class sF extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Eg extends Error{constructor(A){super(A)}}var UH=/^[a-z][a-z0-9+.-]*:/i,aM=(A)=>{return UH.test(A)},vA=(A)=>(vA=Array.isArray,vA(A)),zG=vA;function BG(A){if(typeof A!=="object")return{};return A??{}}function hM(A){if(!A)return!0;for(let q in A)return!1;return!0}function zM(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function nF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var BM=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new d(`${A} must be an integer`);if(q<0)throw new d(`${A} must be a positive integer`);return q};var wM=(A)=>{try{return JSON.parse(A)}catch(q){return}};var hq=(A)=>new Promise((q)=>setTimeout(q,A));var ag="6.16.0";var yM=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function GH(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var YH=()=>{let A=GH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":kM(Deno.build.os),"X-Stainless-Arch":CM(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":kM(globalThis.process.platform??"unknown"),"X-Stainless-Arch":CM(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=QH();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function QH(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var CM=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},kM=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},DM,bM=()=>{return DM??(DM=YH())};function vM(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function wG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function eZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return wG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function CG(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function mM(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var fM=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var Aj="RFC3986",kG=(A)=>String(A),qj={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:kG},DG="RFC1738";var gj=(A,q)=>(gj=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),gj(A,q)),zq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var yG=1024,cM=(A,q,g,E,F)=>{if(A.length===0)return A;let K=A;if(typeof A==="symbol")K=Symbol.prototype.toString.call(A);else if(typeof A!=="string")K=String(A);if(g==="iso-8859-1")return escape(K).replace(/%u[0-9a-f]{4}/gi,function(j){return"%26%23"+parseInt(j.slice(2),16)+"%3B"});let Z="";for(let j=0;j<K.length;j+=yG){let U=K.length>=yG?K.slice(j,j+yG):K,G=[];for(let Y=0;Y<U.length;++Y){let M=U.charCodeAt(Y);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===DG&&(M===40||M===41)){G[G.length]=U.charAt(Y);continue}if(M<128){G[G.length]=zq[M];continue}if(M<2048){G[G.length]=zq[192|M>>6]+zq[128|M&63];continue}if(M<55296||M>=57344){G[G.length]=zq[224|M>>12]+zq[128|M>>6&63]+zq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),G[G.length]=zq[240|M>>18]+zq[128|M>>12&63]+zq[128|M>>6&63]+zq[128|M&63]}Z+=G.join("")}return Z};function dM(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function bG(A,q){if(vA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var uM={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},lM=function(A,q){Array.prototype.push.apply(A,vA(q)?q:[q])},pM,xA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:cM,encodeValuesOnly:!1,format:Aj,formatter:kG,indices:!1,serializeDate(A){return(pM??(pM=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function MH(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var vG={};function iM(A,q,g,E,F,K,Z,j,U,G,Y,M,O,$,_,x,N,L){let P=A,k=L,C=0,i=!1;while((k=k.get(vG))!==void 0&&!i){let c=k.get(A);if(C+=1,typeof c!=="undefined")if(c===C)throw new RangeError("Cyclic object value");else i=!0;if(typeof k.get(vG)==="undefined")C=0}if(typeof G==="function")P=G(q,P);else if(P instanceof Date)P=O?.(P);else if(g==="comma"&&vA(P))P=bG(P,function(c){if(c instanceof Date)return O?.(c);return c});if(P===null){if(K)return U&&!x?U(q,xA.encoder,N,"key",$):q;P=""}if(MH(P)||dM(P)){if(U){let c=x?q:U(q,xA.encoder,N,"key",$);return[_?.(c)+"="+_?.(U(P,xA.encoder,N,"value",$))]}return[_?.(q)+"="+_?.(String(P))]}let p=[];if(typeof P==="undefined")return p;let a;if(g==="comma"&&vA(P)){if(x&&U)P=bG(P,U);a=[{value:P.length>0?P.join(",")||null:void 0}]}else if(vA(G))a=G;else{let c=Object.keys(P);a=Y?c.sort(Y):c}let z=j?String(q).replace(/\./g,"%2E"):String(q),r=E&&vA(P)&&P.length===1?z+"[]":z;if(F&&vA(P)&&P.length===0)return r+"[]";for(let c=0;c<a.length;++c){let gA=a[c],KA=typeof gA==="object"&&typeof gA.value!=="undefined"?gA.value:P[gA];if(Z&&KA===null)continue;let QA=M&&j?gA.replace(/\./g,"%2E"):gA,RA=vA(P)?typeof g==="function"?g(r,QA):r:r+(M?"."+QA:"["+QA+"]");L.set(A,C);let mA=new WeakMap;mA.set(vG,L),lM(p,iM(KA,RA,g,E,F,K,Z,j,g==="comma"&&x&&vA(P)?null:U,G,Y,M,O,$,_,x,N,mA))}return p}function _H(A=xA){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let q=A.charset||xA.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=Aj;if(typeof A.format!=="undefined"){if(!gj(qj,A.format))throw new TypeError("Unknown format option provided.");g=A.format}let E=qj[g],F=xA.filter;if(typeof A.filter==="function"||vA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in uM)K=A.arrayFormat;else if("indices"in A)K=A.indices?"indices":"repeat";else K=xA.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!A.encodeDotInKeys===!0?!0:xA.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:xA.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:xA.allowEmptyArrays,arrayFormat:K,charset:q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:xA.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter==="undefined"?xA.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:xA.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:xA.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:xA.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:xA.encodeValuesOnly,filter:F,format:g,formatter:E,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:xA.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:xA.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:xA.strictNullHandling}}function mG(A,q={}){let g=A,E=_H(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(vA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=uM[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let G=new WeakMap;for(let O=0;O<F.length;++O){let $=F[O];if(E.skipNulls&&g[$]===null)continue;lM(Z,iM(g[$],$,j,U,E.allowEmptyArrays,E.strictNullHandling,E.skipNulls,E.encodeDotInKeys,E.encode?E.encoder:null,E.filter,E.sort,E.allowDots,E.serializeDate,E.format,E.formatter,E.encodeValuesOnly,E.charset,G))}let Y=Z.join(E.delimiter),M=E.addQueryPrefix===!0?"?":"";if(E.charsetSentinel)if(E.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return Y.length>0?M+Y:""}function nM(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var tM;function o6(A){let q;return(tM??(q=new globalThis.TextEncoder,tM=q.encode.bind(q)))(A)}var sM;function fG(A){let q;return(sM??(q=new globalThis.TextDecoder,sM=q.decode.bind(q)))(A)}var eA,Aq;class e6{constructor(){eA.set(this,void 0),Aq.set(this,void 0),s(this,eA,new Uint8Array,"f"),s(this,Aq,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?o6(A):A;s(this,eA,nM([V(this,eA,"f"),q]),"f");let g=[],E;while((E=XH(V(this,eA,"f"),V(this,Aq,"f")))!=null){if(E.carriage&&V(this,Aq,"f")==null){s(this,Aq,E.index,"f");continue}if(V(this,Aq,"f")!=null&&(E.index!==V(this,Aq,"f")+1||E.carriage)){g.push(fG(V(this,eA,"f").subarray(0,V(this,Aq,"f")-1))),s(this,eA,V(this,eA,"f").subarray(V(this,Aq,"f")),"f"),s(this,Aq,null,"f");continue}let F=V(this,Aq,"f")!==null?E.preceding-1:E.preceding,K=fG(V(this,eA,"f").subarray(0,F));g.push(K),s(this,eA,V(this,eA,"f").subarray(E.index),"f"),s(this,Aq,null,"f")}return g}flush(){if(!V(this,eA,"f").length)return[];return this.decode(`
141
- `)}}eA=new WeakMap,Aq=new WeakMap;e6.NEWLINE_CHARS=new Set([`
142
- `,"\r"]);e6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function XH(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function rM(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var Fj={off:0,error:200,warn:300,info:400,debug:500},cG=(A,q,g)=>{if(!A)return;if(zM(Fj,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(Fj))}`);return};function rF(){}function Ej(A,q,g){if(!q||Fj[A]>Fj[g])return rF;else return q[A].bind(q)}var HH={error:rF,warn:rF,info:rF,debug:rF},oM=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return HH;let E=oM.get(q);if(E&&E[0]===g)return E[1];let F={error:Ej("error",q,g),warn:Ej("warn",q,g),info:Ej("info",q,g),debug:Ej("debug",q,g)};return oM.set(q,[g,F]),F}var Fg=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var oF;class qq{constructor(A,q,g){this.iterator=A,oF.set(this,void 0),this.controller=q,s(this,oF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?HA(g):console;async function*K(){if(E)throw new d("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of LH(A,q)){if(Z)continue;if(j.data.startsWith("[DONE]")){Z=!0;continue}if(j.event===null||!j.event.startsWith("thread.")){let U;try{U=JSON.parse(j.data)}catch(G){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),G}if(U&&U.error)throw new VA(void 0,U.error,void 0,A.headers);yield U}else{let U;try{U=JSON.parse(j.data)}catch(G){throw console.error("Could not parse message into JSON:",j.data),console.error("From chunk:",j.raw),G}if(j.event=="error")throw new VA(void 0,U.error,U.message,void 0);yield{event:j.event,data:U}}}Z=!0}catch(j){if(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new e6,j=CG(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new d("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}[(oF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new qq(()=>E(A),this.controller,V(this,oF,"f")),new qq(()=>E(q),this.controller,V(this,oF,"f"))]}toReadableStream(){let A=this,q;return wG({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=o6(JSON.stringify(E)+`
143
- `);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*LH(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new d("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new d("Attempted to iterate over a response with no body")}let g=new eM,E=new e6,F=CG(A.body);for await(let K of VH(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*VH(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?o6(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=rM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class eM{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
144
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=WH(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function WH(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function Kj(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(HA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller,A);return qq.fromSSEResponse(g,q.controller,A)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return dG(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Fg({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function dG(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("x-request-id"),enumerable:!1})}var eF;class J6 extends Promise{constructor(A,q,g=Kj){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,eF.set(this,void 0),s(this,eF,A,"f")}_thenUnwrap(A){return new J6(V(this,eF,"f"),this.responsePromise,async(q,g)=>dG(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(V(this,eF,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}eF=new WeakMap;var Zj;class jj{constructor(A,q,g,E){Zj.set(this,void 0),s(this,Zj,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new d("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await V(this,Zj,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(Zj=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class Uj extends J6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await Kj(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Kg extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.object=g.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class EA extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.getPaginatedItems(),q=A[A.length-1]?.id;if(!q)return null;return{...this.options,query:{...BG(this.options.query),after:q}}}}class hg extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.last_id=g.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.last_id;if(!A)return null;return{...this.options,query:{...BG(this.options.query),after:A}}}}var lG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function AE(A,q,g){return lG(),new File(A,q??"unknown_file",g)}function AK(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var Gj=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",iG=async(A,q)=>{if(!pG(A.body))return A;return{...A,body:await q9(A.body,q)}},gq=async(A,q)=>{return{...A,body:await q9(A.body,q)}},A9=new WeakMap;function TH(A){let q=typeof A==="function"?A:A.fetch,g=A9.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return A9.set(q,E),E}var q9=async(A,q)=>{if(!await TH(q))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>uG(g,E,F))),g},g9=(A)=>A instanceof Blob&&("name"in A),IH=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Gj(A)||g9(A)),pG=(A)=>{if(IH(A))return!0;if(Array.isArray(A))return A.some(pG);if(A&&typeof A==="object"){for(let q in A)if(pG(A[q]))return!0}return!1},uG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response)A.append(q,AE([await g.blob()],AK(g)));else if(Gj(g))A.append(q,AE([await new Response(eZ(g)).blob()],AK(g)));else if(g9(g))A.append(q,g,AK(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>uG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>uG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var E9=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",xH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&E9(A),PH=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function Yj(A,q,g){if(lG(),A=await A,xH(A)){if(A instanceof File)return A;return AE([await A.arrayBuffer()],A.name)}if(PH(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),AE(await tG(F),q,g)}let E=await tG(A);if(q||(q=AK(A)),!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return AE(E,q,g)}async function tG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(E9(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(Gj(A))for await(let g of A)q.push(...await tG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${RH(A)}`)}return q}function RH(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class h{constructor(A){this._client=A}}function K9(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var F9=Object.freeze(Object.create(null)),aH=(A=K9)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??F9)??F9)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new d(`Path parameters result in path with invalid segments:
145
- ${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=aH(K9);class qE extends h{list(A,q={},g){return this._client.getAPIList(R`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function qK(A){return A!==void 0&&"function"in A&&A.function!==void 0}function gK(A){return A?.$brand==="auto-parseable-response-format"}function M6(A){return A?.$brand==="auto-parseable-tool"}function Z9(A,q){if(!q||!sG(q))return{...A,choices:A.choices.map((g)=>{return U9(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return EK(A,q)}function EK(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new tF;if(E.finish_reason==="content_filter")throw new sF;return U9(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>wH(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?BH(q,E.message.content):null}}});return{...A,choices:g}}function BH(A,q){if(A.response_format?.type!=="json_schema")return null;if(A.response_format?.type==="json_schema"){if("$parseRaw"in A.response_format)return A.response_format.$parseRaw(q);return JSON.parse(q)}return null}function wH(A,q){let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:M6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function j9(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return qK(g)&&(M6(g)||g?.function.strict||!1)}function sG(A){if(gK(A.response_format))return!0;return A.tools?.some((q)=>M6(q)||q.type==="function"&&q.function.strict===!0)??!1}function U9(A){for(let q of A||[])if(q.type!=="function")throw new d(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function G9(A){for(let q of A??[]){if(q.type!=="function")throw new d(`Currently only \`function\` tool types support auto-parsing; Received \`${q.type}\``);if(q.function.strict!==!0)throw new d(`The \`${q.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var gE=(A)=>{return A?.role==="assistant"},nG=(A)=>{return A?.role==="tool"};var rG,Qj,Oj,FK,KK,Jj,ZK,Zg,jK,Mj,_j,EE,Y9;class _6{constructor(){rG.add(this),this.controller=new AbortController,Qj.set(this,void 0),Oj.set(this,()=>{}),FK.set(this,()=>{}),KK.set(this,void 0),Jj.set(this,()=>{}),ZK.set(this,()=>{}),Zg.set(this,{}),jK.set(this,!1),Mj.set(this,!1),_j.set(this,!1),EE.set(this,!1),s(this,Qj,new Promise((A,q)=>{s(this,Oj,A,"f"),s(this,FK,q,"f")}),"f"),s(this,KK,new Promise((A,q)=>{s(this,Jj,A,"f"),s(this,ZK,q,"f")}),"f"),V(this,Qj,"f").catch(()=>{}),V(this,KK,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},V(this,rG,"m",Y9).bind(this))},0)}_connected(){if(this.ended)return;V(this,Oj,"f").call(this),this._emit("connect")}get ended(){return V(this,jK,"f")}get errored(){return V(this,Mj,"f")}get aborted(){return V(this,_j,"f")}abort(){this.controller.abort()}on(A,q){return(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=V(this,Zg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(s(this,EE,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){s(this,EE,!0,"f"),await V(this,KK,"f")}_emit(A,...q){if(V(this,jK,"f"))return;if(A==="end")s(this,jK,!0,"f"),V(this,Jj,"f").call(this);let g=V(this,Zg,"f")[A];if(g)V(this,Zg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end")}}_emitFinal(){}}Qj=new WeakMap,Oj=new WeakMap,FK=new WeakMap,KK=new WeakMap,Jj=new WeakMap,ZK=new WeakMap,Zg=new WeakMap,jK=new WeakMap,Mj=new WeakMap,_j=new WeakMap,EE=new WeakMap,rG=new WeakSet,Y9=function A(q){if(s(this,Mj,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new IA;if(q instanceof IA)return s(this,_j,!0,"f"),this._emit("abort",q);if(q instanceof d)return this._emit("error",q);if(q instanceof Error){let g=new d(q.message);return g.cause=q,this._emit("error",g)}return this._emit("error",new d(String(q)))};function Q9(A){return typeof A.parse==="function"}var pA,oG,$j,eG,AY,qY,O9,J9,CH=10;class UK extends _6{constructor(){super(...arguments);pA.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(A){this._chatCompletions.push(A),this._emit("chatCompletion",A);let q=A.choices[0]?.message;if(q)this._addMessage(q);return A}_addMessage(A,q=!0){if(!("content"in A))A.content=null;if(this.messages.push(A),q){if(this._emit("message",A),nG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(gE(A)&&A.tool_calls){for(let g of A.tool_calls)if(g.type==="function")this._emit("functionToolCall",g.function)}}}async finalChatCompletion(){await this.done();let A=this._chatCompletions[this._chatCompletions.length-1];if(!A)throw new d("stream ended without producing a ChatCompletion");return A}async finalContent(){return await this.done(),V(this,pA,"m",oG).call(this)}async finalMessage(){return await this.done(),V(this,pA,"m",$j).call(this)}async finalFunctionToolCall(){return await this.done(),V(this,pA,"m",eG).call(this)}async finalFunctionToolCallResult(){return await this.done(),V(this,pA,"m",AY).call(this)}async totalUsage(){return await this.done(),V(this,pA,"m",qY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let A=this._chatCompletions[this._chatCompletions.length-1];if(A)this._emit("finalChatCompletion",A);let q=V(this,pA,"m",$j).call(this);if(q)this._emit("finalMessage",q);let g=V(this,pA,"m",oG).call(this);if(g)this._emit("finalContent",g);let E=V(this,pA,"m",eG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=V(this,pA,"m",AY).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",V(this,pA,"m",qY).call(this))}async _createChatCompletion(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,pA,"m",O9).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(EK(F,q))}async _runChatCompletion(A,q,g){for(let E of q.messages)this._addMessage(E,!1);return await this._createChatCompletion(A,q,g)}async _runTools(A,q,g){let{tool_choice:F="auto",stream:K,...Z}=q,j=typeof F!=="string"&&F.type==="function"&&F?.function?.name,{maxChatCompletions:U=CH}=g||{},G=q.tools.map((O)=>{if(M6(O)){if(!O.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:O.$callback,name:O.function.name,description:O.function.description||"",parameters:O.function.parameters,parse:O.$parseRaw,strict:!0}}}return O}),Y={};for(let O of G)if(O.type==="function")Y[O.function.name||O.function.function.name]=O.function;let M="tools"in q?G.map((O)=>O.type==="function"?{type:"function",function:{name:O.function.name||O.function.function.name,parameters:O.function.parameters,description:O.function.description,strict:O.function.strict}}:O):void 0;for(let O of q.messages)this._addMessage(O,!1);for(let O=0;O<U;++O){let _=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!_)throw new d("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let x of _.tool_calls){if(x.type!=="function")continue;let N=x.id,{name:L,arguments:P}=x.function,k=Y[L];if(!k){let a=`Invalid tool_call: ${JSON.stringify(L)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}else if(j&&j!==L){let a=`Invalid tool_call: ${JSON.stringify(L)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}let C;try{C=Q9(k)?await k.parse(P):P}catch(a){let z=a instanceof Error?a.message:String(a);this._addMessage({role:"tool",tool_call_id:N,content:z});continue}let i=await k.function(C,this),p=V(this,pA,"m",J9).call(this,i);if(this._addMessage({role:"tool",tool_call_id:N,content:p}),j)return}}return}}pA=new WeakSet,oG=function A(){return V(this,pA,"m",$j).call(this).content??null},$j=function A(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(gE(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},eG=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(gE(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},AY=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(nG(g)&&g.content!=null&&typeof g.content==="string"&&this.messages.some((E)=>E.role==="assistant"&&E.tool_calls?.some((F)=>F.type==="function"&&F.id===g.tool_call_id)))return g.content}return},qY=function A(){let q={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:g}of this._chatCompletions)if(g)q.completion_tokens+=g.completion_tokens,q.prompt_tokens+=g.prompt_tokens,q.total_tokens+=g.total_tokens;return q},O9=function A(q){if(q.n!=null&&q.n>1)throw new d("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},J9=function A(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class GK extends UK{static runTools(A,q,g){let E=new GK,F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}_addMessage(A,q=!0){if(super._addMessage(A,q),gE(A)&&A.content)this._emit("content",A.content)}}var zA={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class M9 extends Error{}class _9 extends Error{}function kH(A,q=zA.ALL){if(typeof A!=="string")throw new TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw new Error(`${A} is empty`);return DH(A.trim(),q)}var DH=(A,q)=>{let g=A.length,E=0,F=(O)=>{throw new M9(`${O} at position ${E}`)},K=(O)=>{throw new _9(`${O} at position ${E}`)},Z=()=>{if(M(),E>=g)F("Unexpected end of input");if(A[E]==='"')return j();if(A[E]==="{")return U();if(A[E]==="[")return G();if(A.substring(E,E+4)==="null"||zA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||zA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||zA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||zA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||zA.MINUS_INFINITY&q&&1<g-E&&g-E<9&&"-Infinity".startsWith(A.substring(E)))return E+=9,-1/0;if(A.substring(E,E+3)==="NaN"||zA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return Y()},j=()=>{let O=E,$=!1;E++;while(E<g&&(A[E]!=='"'||$&&A[E-1]==="\\"))$=A[E]==="\\"?!$:!1,E++;if(A.charAt(E)=='"')try{return JSON.parse(A.substring(O,++E-Number($)))}catch(_){K(String(_))}else if(zA.STR&q)try{return JSON.parse(A.substring(O,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(O,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let O={};try{while(A[E]!=="}"){if(M(),E>=g&&zA.OBJ&q)return O;let $=j();M(),E++;try{let _=Z();Object.defineProperty(O,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(zA.OBJ&q)return O;else throw _}if(M(),A[E]===",")E++}}catch($){if(zA.OBJ&q)return O;else F("Expected '}' at end of object")}return E++,O},G=()=>{E++;let O=[];try{while(A[E]!=="]")if(O.push(Z()),M(),A[E]===",")E++}catch($){if(zA.ARR&q)return O;F("Expected ']' at end of array")}return E++,O},Y=()=>{if(E===0){if(A==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(zA.NUM&q)try{if(A[A.length-1]===".")return JSON.parse(A.substring(0,A.lastIndexOf(".")));return JSON.parse(A.substring(0,A.lastIndexOf("e")))}catch(_){}K(String($))}}let O=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(zA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(O,E))}catch($){if(A.substring(O,E)==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(O,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
149
- \r\t`.includes(A[E]))E++};return Z()},gY=(A)=>kH(A,zA.ALL^zA.NUM);var PA,jg,FE,zg,EY,Xj,FY,KY,ZY,Hj,jY,$9;class Bg extends UK{constructor(A){super();PA.add(this),jg.set(this,void 0),FE.set(this,void 0),zg.set(this,void 0),s(this,jg,A,"f"),s(this,FE,[],"f")}get currentChatCompletionSnapshot(){return V(this,zg,"f")}static fromReadableStream(A){let q=new Bg(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new Bg(q);return E._run(()=>E._runChatCompletion(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createChatCompletion(A,q,g){super._createChatCompletion;let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,PA,"m",EY).call(this);let F=await A.chat.completions.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let K of F)V(this,PA,"m",FY).call(this,K);if(F.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}V(this,PA,"m",EY).call(this),this._connected();let E=qq.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(V(this,PA,"m",Hj).call(this));V(this,PA,"m",FY).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}[(jg=new WeakMap,FE=new WeakMap,zg=new WeakMap,PA=new WeakSet,EY=function A(){if(this.ended)return;s(this,zg,void 0,"f")},Xj=function A(q){let g=V(this,FE,"f")[q.index];if(g)return g;return g={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},V(this,FE,"f")[q.index]=g,g},FY=function A(q){if(this.ended)return;let g=V(this,PA,"m",$9).call(this,q);this._emit("chunk",q,g);for(let E of q.choices){let F=g.choices[E.index];if(E.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",E.delta.content,F.message.content),this._emit("content.delta",{delta:E.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(E.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:E.delta.refusal,snapshot:F.message.refusal});if(E.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:E.logprobs?.content,snapshot:F.logprobs?.content??[]});if(E.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:E.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let K=V(this,PA,"m",Xj).call(this,F);if(F.finish_reason){if(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).call(this,F,K.current_tool_call_index)}for(let Z of E.delta.tool_calls??[]){if(K.current_tool_call_index!==Z.index){if(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).call(this,F,K.current_tool_call_index)}K.current_tool_call_index=Z.index}for(let Z of E.delta.tool_calls??[]){let j=F.message.tool_calls?.[Z.index];if(!j?.type)continue;if(j?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:j.function?.name,index:Z.index,arguments:j.function.arguments,parsed_arguments:j.function.parsed_arguments,arguments_delta:Z.function?.arguments??""});else H9(j?.type)}}},KY=function A(q,g){if(V(this,PA,"m",Xj).call(this,q).done_tool_calls.has(g))return;let F=q.message.tool_calls?.[g];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let K=V(this,jg,"f")?.tools?.find((Z)=>qK(Z)&&Z.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:g,arguments:F.function.arguments,parsed_arguments:M6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else H9(F.type)},ZY=function A(q){let g=V(this,PA,"m",Xj).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=V(this,PA,"m",jY).call(this);this._emit("content.done",{content:q.message.content,parsed:E?E.$parseRaw(q.message.content):null})}if(q.message.refusal&&!g.refusal_done)g.refusal_done=!0,this._emit("refusal.done",{refusal:q.message.refusal});if(q.logprobs?.content&&!g.logprobs_content_done)g.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:q.logprobs.content});if(q.logprobs?.refusal&&!g.logprobs_refusal_done)g.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:q.logprobs.refusal})},Hj=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,zg,"f");if(!q)throw new d("request ended without sending any chunks");return s(this,zg,void 0,"f"),s(this,FE,[],"f"),yH(q,V(this,jg,"f"))},jY=function A(){let q=V(this,jg,"f")?.response_format;if(gK(q))return q;return null},$9=function A(q){var g,E,F,K;let Z=V(this,zg,"f"),{choices:j,...U}=q;if(!Z)Z=s(this,zg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:G,finish_reason:Y,index:M,logprobs:O=null,...$}of q.choices){let _=Z.choices[M];if(!_)_=Z.choices[M]={finish_reason:Y,index:M,message:{},logprobs:O,...$};if(O)if(!_.logprobs)_.logprobs=Object.assign({},O);else{let{content:i,refusal:p,...a}=O;if(X9(a),Object.assign(_.logprobs,a),i)(g=_.logprobs).content??(g.content=[]),_.logprobs.content.push(...i);if(p)(E=_.logprobs).refusal??(E.refusal=[]),_.logprobs.refusal.push(...p)}if(Y){if(_.finish_reason=Y,V(this,jg,"f")&&sG(V(this,jg,"f"))){if(Y==="length")throw new tF;if(Y==="content_filter")throw new sF}}if(Object.assign(_,$),!G)continue;let{content:x,refusal:N,function_call:L,role:P,tool_calls:k,...C}=G;if(X9(C),Object.assign(_.message,C),N)_.message.refusal=(_.message.refusal||"")+N;if(P)_.message.role=P;if(L)if(!_.message.function_call)_.message.function_call=L;else{if(L.name)_.message.function_call.name=L.name;if(L.arguments)(F=_.message.function_call).arguments??(F.arguments=""),_.message.function_call.arguments+=L.arguments}if(x){if(_.message.content=(_.message.content||"")+x,!_.message.refusal&&V(this,PA,"m",jY).call(this))_.message.parsed=gY(_.message.content)}if(k){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:i,id:p,type:a,function:z,...r}of k){let c=(K=_.message.tool_calls)[i]??(K[i]={});if(Object.assign(c,r),p)c.id=p;if(a)c.type=a;if(z)c.function??(c.function={name:z.name??"",arguments:""});if(z?.name)c.function.name=z.name;if(z?.arguments){if(c.function.arguments+=z.arguments,j9(V(this,jg,"f"),c))c.function.parsed_arguments=gY(c.function.arguments)}}}}return Z},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("chunk",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function yH(A,q){let{id:g,choices:E,created:F,model:K,system_fingerprint:Z,...j}=A,U={...j,id:g,choices:E.map(({message:G,finish_reason:Y,index:M,logprobs:O,...$})=>{if(!Y)throw new d(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:x,tool_calls:N,...L}=G,P=G.role;if(!P)throw new d(`missing role for choice ${M}`);if(x){let{arguments:k,name:C}=x;if(k==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!C)throw new d(`missing function_call.name for choice ${M}`);return{...$,message:{content:_,function_call:{arguments:k,name:C},role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}if(N)return{...$,index:M,finish_reason:Y,logprobs:O,message:{...L,role:P,content:_,refusal:G.refusal??null,tool_calls:N.map((k,C)=>{let{function:i,type:p,id:a,...z}=k,{arguments:r,name:c,...gA}=i||{};if(a==null)throw new d(`missing choices[${M}].tool_calls[${C}].id
150
- ${Lj(A)}`);if(p==null)throw new d(`missing choices[${M}].tool_calls[${C}].type
151
- ${Lj(A)}`);if(c==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.name
152
- ${Lj(A)}`);if(r==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.arguments
153
- ${Lj(A)}`);return{...z,id:a,type:p,function:{...gA,name:c,arguments:r}}})}};return{...$,message:{...L,content:_,role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return Z9(U,q)}function Lj(A){return JSON.stringify(A)}function X9(A){return}function H9(A){}class KE extends Bg{static fromReadableStream(A){let q=new KE(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new KE(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class wg extends h{constructor(){super(...arguments);this.messages=new qE(this._client)}create(A,q){return this._client.post("/chat/completions",{body:A,...q,stream:A.stream??!1})}retrieve(A,q){return this._client.get(R`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(R`/chat/completions/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/chat/completions",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/chat/completions/${A}`,q)}parse(A,q){return G9(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>EK(g,A))}runTools(A,q){if(A.stream)return KE.runTools(this._client,A,q);return GK.runTools(this._client,A,q)}stream(A,q){return Bg.createChatCompletion(this._client,A,q)}}wg.Messages=qE;class $6 extends h{constructor(){super(...arguments);this.completions=new wg(this._client)}}$6.Completions=wg;var L9=Symbol("brand.privateNullableHeaders");function*vH(A){if(!A)return;if(L9 in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(zG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=zG(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var D=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of vH(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[L9]:!0,values:q,nulls:g}};class YK extends h{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class QK extends h{create(A,q){return this._client.post("/audio/transcriptions",gq({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class OK extends h{create(A,q){return this._client.post("/audio/translations",gq({body:A,...q,__metadata:{model:A.model}},this._client))}}class Ug extends h{constructor(){super(...arguments);this.transcriptions=new QK(this._client),this.translations=new OK(this._client),this.speech=new YK(this._client)}}Ug.Transcriptions=QK;Ug.Translations=OK;Ug.Speech=YK;class ZE extends h{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(R`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/batches/${A}/cancel`,q)}}class JK extends h{create(A,q){return this._client.post("/assistants",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/assistants/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class MK extends h{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class _K extends h{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class X6 extends h{constructor(){super(...arguments);this.sessions=new MK(this._client),this.transcriptionSessions=new _K(this._client)}}X6.Sessions=MK;X6.TranscriptionSessions=_K;class $K extends h{create(A,q){return this._client.post("/chatkit/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(R`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class XK extends h{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",hg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(R`/chatkit/threads/${A}/items`,hg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class H6 extends h{constructor(){super(...arguments);this.sessions=new $K(this._client),this.threads=new XK(this._client)}}H6.Sessions=$K;H6.Threads=XK;class HK extends h{create(A,q,g){return this._client.post(R`/threads/${A}/messages`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/messages`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{thread_id:E}=q;return this._client.delete(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class LK extends h{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(R`/threads/${E}/runs/${F}/steps/${A}`,{query:K,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q,g){let{thread_id:E,...F}=q;return this._client.getAPIList(R`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var V9=(A)=>{if(typeof Buffer!=="undefined"){let q=Buffer.from(A,"base64");return Array.from(new Float32Array(q.buffer,q.byteOffset,q.length/Float32Array.BYTES_PER_ELEMENT))}else{let q=atob(A),g=q.length,E=new Uint8Array(g);for(let F=0;F<g;F++)E[F]=q.charCodeAt(F);return Array.from(new Float32Array(E.buffer))}};var Cg=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var CA,V6,UY,Bq,Vj,Nq,W6,jE,L6,Tj,Eq,Wj,Nj,NK,VK,WK,W9,N9,T9,I9,x9,P9,R9;class kg extends _6{constructor(){super(...arguments);CA.add(this),UY.set(this,[]),Bq.set(this,{}),Vj.set(this,{}),Nq.set(this,void 0),W6.set(this,void 0),jE.set(this,void 0),L6.set(this,void 0),Tj.set(this,void 0),Eq.set(this,void 0),Wj.set(this,void 0),Nj.set(this,void 0),NK.set(this,void 0)}[(UY=new WeakMap,Bq=new WeakMap,Vj=new WeakMap,Nq=new WeakMap,W6=new WeakMap,jE=new WeakMap,L6=new WeakMap,Tj=new WeakMap,Eq=new WeakMap,Wj=new WeakMap,Nj=new WeakMap,NK=new WeakMap,CA=new WeakSet,Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(A){let q=new V6;return q._run(()=>q._fromReadableStream(A)),q}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}this._connected();let E=qq.fromReadableStream(A,this.controller);for await(let F of E)V(this,CA,"m",VK).call(this,F);if(E.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}toReadableStream(){return new qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new V6;return F._run(()=>F._runToolAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.submitToolOutputs(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}static createThreadAssistantStream(A,q,g){let E=new V6;return E._run(()=>E._threadAssistantStream(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}static createAssistantStream(A,q,g,E){let F=new V6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return V(this,Wj,"f")}currentRun(){return V(this,Nj,"f")}currentMessageSnapshot(){return V(this,Nq,"f")}currentRunStepSnapshot(){return V(this,NK,"f")}async finalRunSteps(){return await this.done(),Object.values(V(this,Bq,"f"))}async finalMessages(){return await this.done(),Object.values(V(this,Vj,"f"))}async finalRun(){if(await this.done(),!V(this,W6,"f"))throw Error("Final run was not received.");return V(this,W6,"f")}async _createThreadAssistantStream(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}let F={...q,stream:!0},K=await A.createAndRun(F,{...g,signal:this.controller.signal});this._connected();for await(let Z of K)V(this,CA,"m",VK).call(this,Z);if(K.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}async _createAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.create(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}static accumulateDelta(A,q){for(let[g,E]of Object.entries(q)){if(!A.hasOwnProperty(g)){A[g]=E;continue}let F=A[g];if(F===null||F===void 0){A[g]=E;continue}if(g==="index"||g==="type"){A[g]=E;continue}if(typeof F==="string"&&typeof E==="string")F+=E;else if(typeof F==="number"&&typeof E==="number")F+=E;else if(nF(F)&&nF(E))F=this.accumulateDelta(F,E);else if(Array.isArray(F)&&Array.isArray(E)){if(F.every((K)=>typeof K==="string"||typeof K==="number")){F.push(...E);continue}for(let K of E){if(!nF(K))throw new Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),new Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${Z}`);let j=F[Z];if(j==null)F.push(K);else F[Z]=this.accumulateDelta(j,K)}continue}else throw Error(`Unhandled record type: ${g}, deltaValue: ${E}, accValue: ${F}`);A[g]=F}return A}_addRun(A){return A}async _threadAssistantStream(A,q,g){return await this._createThreadAssistantStream(q,A,g)}async _runAssistantStream(A,q,g,E){return await this._createAssistantStream(q,A,g,E)}async _runToolAssistantStream(A,q,g,E){return await this._createToolAssistantStream(q,A,g,E)}}V6=kg,VK=function A(q){if(this.ended)return;switch(s(this,Wj,q,"f"),V(this,CA,"m",T9).call(this,q),q.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":V(this,CA,"m",R9).call(this,q);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":V(this,CA,"m",N9).call(this,q);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":V(this,CA,"m",W9).call(this,q);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:oH(q)}},WK=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!V(this,W6,"f"))throw Error("Final run has not been received");return V(this,W6,"f")},W9=function A(q){let[g,E]=V(this,CA,"m",x9).call(this,q,V(this,Nq,"f"));s(this,Nq,g,"f"),V(this,Vj,"f")[g.id]=g;for(let F of E){let K=g.content[F.index];if(K?.type=="text")this._emit("textCreated",K.text)}switch(q.event){case"thread.message.created":this._emit("messageCreated",q.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",q.data.delta,g),q.data.delta.content)for(let F of q.data.delta.content){if(F.type=="text"&&F.text){let K=F.text,Z=g.content[F.index];if(Z&&Z.type=="text")this._emit("textDelta",K,Z.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=V(this,jE,"f")){if(V(this,L6,"f"))switch(V(this,L6,"f").type){case"text":this._emit("textDone",V(this,L6,"f").text,V(this,Nq,"f"));break;case"image_file":this._emit("imageFileDone",V(this,L6,"f").image_file,V(this,Nq,"f"));break}s(this,jE,F.index,"f")}s(this,L6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(V(this,jE,"f")!==void 0){let F=q.data.content[V(this,jE,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,V(this,Nq,"f"));break;case"text":this._emit("textDone",F.text,V(this,Nq,"f"));break}}if(V(this,Nq,"f"))this._emit("messageDone",q.data);s(this,Nq,void 0,"f")}},N9=function A(q){let g=V(this,CA,"m",I9).call(this,q);switch(s(this,NK,g,"f"),q.event){case"thread.run.step.created":this._emit("runStepCreated",q.data);break;case"thread.run.step.delta":let E=q.data.delta;if(E.step_details&&E.step_details.type=="tool_calls"&&E.step_details.tool_calls&&g.step_details.type=="tool_calls")for(let K of E.step_details.tool_calls)if(K.index==V(this,Tj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f"));if(s(this,Tj,K.index,"f"),s(this,Eq,g.step_details.tool_calls[K.index],"f"),V(this,Eq,"f"))this._emit("toolCallCreated",V(this,Eq,"f"))}this._emit("runStepDelta",q.data.delta,g);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(s(this,NK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},T9=function A(q){V(this,UY,"f").push(q),this._emit("event",q)},I9=function A(q){switch(q.event){case"thread.run.step.created":return V(this,Bq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=V(this,Bq,"f")[q.data.id];if(!g)throw Error("Received a RunStepDelta before creation of a snapshot");let E=q.data;if(E.delta){let F=V6.accumulateDelta(g,E.delta);V(this,Bq,"f")[q.data.id]=F}return V(this,Bq,"f")[q.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":V(this,Bq,"f")[q.data.id]=q.data;break}if(V(this,Bq,"f")[q.data.id])return V(this,Bq,"f")[q.data.id];throw new Error("No snapshot available")},x9=function A(q,g){let E=[];switch(q.event){case"thread.message.created":return[q.data,E];case"thread.message.delta":if(!g)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=q.data;if(F.delta.content)for(let K of F.delta.content)if(K.index in g.content){let Z=g.content[K.index];g.content[K.index]=V(this,CA,"m",P9).call(this,K,Z)}else g.content[K.index]=K,E.push(K);return[g,E];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(g)return[g,E];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},P9=function A(q,g){return V6.accumulateDelta(g,q)},R9=function A(q){switch(s(this,Nj,q.data,"f"),q.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":if(s(this,W6,q.data,"f"),V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f");break;case"thread.run.cancelling":break}};function oH(A){}class UE extends h{constructor(){super(...arguments);this.steps=new LK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/threads/${A}/runs`,{query:{include:E},body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(R`/threads/${E}/runs/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/runs`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{thread_id:E}=q;return this._client.post(R`/threads/${E}/runs/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(E.id,{thread_id:A},g)}createAndStream(A,q,g){return kg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(A,q,{...g,headers:{...g?.headers,...E}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return kg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/runs/${A}/submit_tool_outputs`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}async submitToolOutputsAndPoll(A,q,g){let E=await this.submitToolOutputs(A,q,g);return await this.poll(E.id,q,g)}submitToolOutputsStream(A,q,g){return kg.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}UE.Steps=LK;class N6 extends h{constructor(){super(...arguments);this.runs=new UE(this._client),this.messages=new HK(this._client)}create(A={},q){return this._client.post("/threads",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers]),stream:A.stream??!1})}async createAndRunPoll(A,q){let g=await this.createAndRun(A,q);return await this.runs.poll(g.id,{thread_id:g.thread_id},q)}createAndRunStream(A,q){return kg.createThreadAssistantStream(A,this._client.beta.threads,q)}}N6.Runs=UE;N6.Messages=HK;class wq extends h{constructor(){super(...arguments);this.realtime=new X6(this._client),this.chatkit=new H6(this._client),this.assistants=new JK(this._client),this.threads=new N6(this._client)}}wq.Realtime=X6;wq.ChatKit=H6;wq.Assistants=JK;wq.Threads=N6;class GE extends h{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class TK extends h{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class YE extends h{constructor(){super(...arguments);this.content=new TK(this._client)}create(A,q,g){return this._client.post(R`/containers/${A}/files`,gq({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(R`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}YE.Content=TK;class T6 extends h{constructor(){super(...arguments);this.files=new YE(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(R`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}T6.Files=YE;class IK extends h{create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(R`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(R`/conversations/${A}/items`,hg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(R`/conversations/${E}/items/${A}`,g)}}class I6 extends h{constructor(){super(...arguments);this.items=new IK(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(R`/conversations/${A}`,q)}update(A,q,g){return this._client.post(R`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(R`/conversations/${A}`,q)}}I6.Items=IK;class QE extends h{create(A,q){let g=!!A.encoding_format,E=g?A.encoding_format:"base64";if(g)HA(this._client).debug("embeddings/user defined encoding_format:",A.encoding_format);let F=this._client.post("/embeddings",{body:{...A,encoding_format:E},...q});if(g)return F;return HA(this._client).debug("embeddings/decoding base64 embeddings from base64"),F._thenUnwrap((K)=>{if(K&&K.data)K.data.forEach((Z)=>{let j=Z.embedding;Z.embedding=V9(j)});return K})}}class xK extends h{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(R`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(R`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class OE extends h{constructor(){super(...arguments);this.outputItems=new xK(this._client)}create(A,q,g){return this._client.post(R`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(R`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(R`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(R`/evals/${E}/runs/${A}`,g)}}OE.OutputItems=xK;class x6 extends h{constructor(){super(...arguments);this.runs=new OE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(R`/evals/${A}`,q)}update(A,q,g){return this._client.post(R`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/evals/${A}`,q)}}x6.Runs=OE;class JE extends h{create(A,q){return this._client.post("/files",gq({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/files/${A}`,q)}content(A,q){return this._client.get(R`/files/${A}/content`,{...q,headers:D([{Accept:"application/binary"},q?.headers]),__binaryResponse:!0})}async waitForProcessing(A,{pollInterval:q=5000,maxWait:g=1800000}={}){let E=new Set(["processed","error","deleted"]),F=Date.now(),K=await this.retrieve(A);while(!K.status||!E.has(K.status))if(await hq(q),K=await this.retrieve(A),Date.now()-F>g)throw new O6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class PK extends h{}class RK extends h{run(A,q){return this._client.post("/fine_tuning/alpha/graders/run",{body:A,...q})}validate(A,q){return this._client.post("/fine_tuning/alpha/graders/validate",{body:A,...q})}}class ME extends h{constructor(){super(...arguments);this.graders=new RK(this._client)}}ME.Graders=RK;class SK extends h{create(A,q,g){return this._client.getAPIList(R`/fine_tuning/checkpoints/${A}/permissions`,Kg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(R`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(R`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class _E extends h{constructor(){super(...arguments);this.permissions=new SK(this._client)}}_E.Permissions=SK;class aK extends h{list(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class $E extends h{constructor(){super(...arguments);this.checkpoints=new aK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(R`/fine_tuning/jobs/${A}`,q)}list(A={},q){return this._client.getAPIList("/fine_tuning/jobs",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/resume`,q)}}$E.Checkpoints=aK;class Cq extends h{constructor(){super(...arguments);this.methods=new PK(this._client),this.jobs=new $E(this._client),this.checkpoints=new _E(this._client),this.alpha=new ME(this._client)}}Cq.Methods=PK;Cq.Jobs=$E;Cq.Checkpoints=_E;Cq.Alpha=ME;class hK extends h{}class P6 extends h{constructor(){super(...arguments);this.graderModels=new hK(this._client)}}P6.GraderModels=hK;class XE extends h{createVariation(A,q){return this._client.post("/images/variations",gq({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",gq({body:A,...q,stream:A.stream??!1},this._client))}generate(A,q){return this._client.post("/images/generations",{body:A,...q,stream:A.stream??!1})}}class HE extends h{retrieve(A,q){return this._client.get(R`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",Kg,A)}delete(A,q){return this._client.delete(R`/models/${A}`,q)}}class LE extends h{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class zK extends h{accept(A,q,g){return this._client.post(R`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class BK extends h{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class Dg extends h{constructor(){super(...arguments);this.clientSecrets=new BK(this._client),this.calls=new zK(this._client)}}Dg.ClientSecrets=BK;Dg.Calls=zK;function S9(A,q){if(!q||!X1(q))return{...A,output_parsed:null,output:A.output.map((g)=>{if(g.type==="function_call")return{...g,parsed_arguments:null};if(g.type==="message")return{...g,content:g.content.map((E)=>({...E,parsed:null}))};else return g})};return GY(A,q)}function GY(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:V1(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:$1(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Ij(E);return Object.defineProperty(E,"output_parsed",{enumerable:!0,get(){for(let F of E.output){if(F.type!=="message")continue;for(let K of F.content)if(K.type==="output_text"&&K.parsed!==null)return K.parsed}return null}}),E}function $1(A,q){if(A.text?.format?.type!=="json_schema")return null;if("$parseRaw"in A.text?.format)return(A.text?.format).$parseRaw(q);return JSON.parse(q)}function X1(A){if(gK(A.text?.format))return!0;return!1}function H1(A){return A?.$brand==="auto-parseable-tool"}function L1(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function V1(A,q){let g=L1(A.tools??[],q.name);return{...q,...q,parsed_arguments:H1(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Ij(A){let q=[];for(let g of A.output){if(g.type!=="message")continue;for(let E of g.content)if(E.type==="output_text")q.push(E.text)}A.output_text=q.join("")}var VE,xj,yg,Pj,a9,h9,z9,B9;class Rj extends _6{constructor(A){super();VE.add(this),xj.set(this,void 0),yg.set(this,void 0),Pj.set(this,void 0),s(this,xj,A,"f")}static createResponse(A,q,g){let E=new Rj(q);return E._run(()=>E._createOrRetrieveResponse(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createOrRetrieveResponse(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,VE,"m",a9).call(this);let F,K=null;if("response_id"in q)F=await A.responses.retrieve(q.response_id,{stream:!0},{...g,signal:this.controller.signal,stream:!0}),K=q.starting_after??null;else F=await A.responses.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let Z of F)V(this,VE,"m",h9).call(this,Z,K);if(F.controller.signal?.aborted)throw new IA;return V(this,VE,"m",z9).call(this)}[(xj=new WeakMap,yg=new WeakMap,Pj=new WeakMap,VE=new WeakSet,a9=function A(){if(this.ended)return;s(this,yg,void 0,"f")},h9=function A(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=V(this,VE,"m",B9).call(this,q);switch(E("event",q),q.type){case"response.output_text.delta":{let K=F.output[q.output_index];if(!K)throw new d(`missing output at index ${q.output_index}`);if(K.type==="message"){let Z=K.content[q.content_index];if(!Z)throw new d(`missing content at index ${q.content_index}`);if(Z.type!=="output_text")throw new d(`expected content to be 'output_text', got ${Z.type}`);E("response.output_text.delta",{...q,snapshot:Z.text})}break}case"response.function_call_arguments.delta":{let K=F.output[q.output_index];if(!K)throw new d(`missing output at index ${q.output_index}`);if(K.type==="function_call")E("response.function_call_arguments.delta",{...q,snapshot:K.arguments});break}default:E(q.type,q);break}},z9=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,yg,"f");if(!q)throw new d("request ended without sending any events");s(this,yg,void 0,"f");let g=W1(q,V(this,xj,"f"));return s(this,Pj,g,"f"),g},B9=function A(q){let g=V(this,yg,"f");if(!g){if(q.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${q.type}`);return g=s(this,yg,q.response,"f"),g}switch(q.type){case"response.output_item.added":{g.output.push(q.item);break}case"response.content_part.added":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);let F=E.type,K=q.part;if(F==="message"&&K.type!=="reasoning_text")E.content.push(K);else if(F==="reasoning"&&K.type==="reasoning_text"){if(!E.content)E.content=[];E.content.push(K)}break}case"response.output_text.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="message"){let F=E.content[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);F.text+=q.delta}break}case"response.function_call_arguments.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="function_call")E.arguments+=q.delta;break}case"response.reasoning_text.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="reasoning"){let F=E.content?.[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="reasoning_text")throw new d(`expected content to be 'reasoning_text', got ${F.type}`);F.text+=q.delta}break}case"response.completed":{s(this,yg,q.response,"f");break}}return g},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let A=V(this,Pj,"f");if(!A)throw new d("stream ended without producing a ChatCompletion");return A}}function W1(A,q){return S9(A,q)}class wK extends h{list(A,q={},g){return this._client.getAPIList(R`/responses/${A}/input_items`,EA,{query:q,...g})}}class CK extends h{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class bg extends h{constructor(){super(...arguments);this.inputItems=new wK(this._client),this.inputTokens=new CK(this._client)}create(A,q){return this._client.post("/responses",{body:A,...q,stream:A.stream??!1})._thenUnwrap((g)=>{if("object"in g&&g.object==="response")Ij(g);return g})}retrieve(A,q={},g){return this._client.get(R`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Ij(E);return E})}delete(A,q){return this._client.delete(R`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>GY(g,A))}stream(A,q){return Rj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(R`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}bg.InputItems=wK;bg.InputTokens=CK;class kK extends h{create(A,q,g){return this._client.post(R`/uploads/${A}/parts`,gq({body:q,...g},this._client))}}class R6 extends h{constructor(){super(...arguments);this.parts=new kK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(R`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(R`/uploads/${A}/complete`,{body:q,...g})}}R6.Parts=kK;var w9=async(A)=>{let q=await Promise.allSettled(A),g=q.filter((F)=>F.status==="rejected");if(g.length){for(let F of g)console.error(F.reason);throw new Error(`${g.length} promise(s) failed - see the above errors`)}let E=[];for(let F of q)if(F.status==="fulfilled")E.push(F.value);return E};class DK extends h{create(A,q,g){return this._client.post(R`/vector_stores/${A}/file_batches`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(R`/vector_stores/${E}/file_batches/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{vector_store_id:E}=q;return this._client.post(R`/vector_stores/${E}/file_batches/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q);return await this.poll(A,E.id,g)}listFiles(A,q,g){let{vector_store_id:E,...F}=q;return this._client.getAPIList(R`/vector_stores/${E}/file_batches/${A}/files`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse();switch(F.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(A,{files:q,fileIds:g=[]},E){if(q==null||q.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=E?.maxConcurrency??5,K=Math.min(F,q.length),Z=this._client,j=q.values(),U=[...g];async function G(M){for(let O of M){let $=await Z.files.create({file:O,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(G);return await w9(Y),await this.createAndPoll(A,{file_ids:U})}}class yK extends h{create(A,q,g){return this._client.post(R`/vector_stores/${A}/files`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(R`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{vector_store_id:E,...F}=q;return this._client.post(R`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/vector_stores/${A}/files`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{vector_store_id:E}=q;return this._client.delete(R`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(A,E.id,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let F=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse(),K=F.data;switch(K.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=F.response.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"failed":case"completed":return K}}}async upload(A,q,g){let E=await this._client.files.create({file:q,purpose:"assistants"},g);return this.create(A,{file_id:E.id},g)}async uploadAndPoll(A,q,g){let E=await this.upload(A,q,g);return await this.poll(A,E.id,g)}content(A,q,g){let{vector_store_id:E}=q;return this._client.getAPIList(R`/vector_stores/${E}/files/${A}/content`,Kg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class vg extends h{constructor(){super(...arguments);this.files=new yK(this._client),this.fileBatches=new DK(this._client)}create(A,q){return this._client.post("/vector_stores",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/vector_stores/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(R`/vector_stores/${A}/search`,Kg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}vg.Files=yK;vg.FileBatches=DK;class WE extends h{create(A,q){return this._client.post("/videos",iG({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",hg,{query:A,...q})}delete(A,q){return this._client.delete(R`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(R`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(R`/videos/${A}/remix`,iG({body:q,...g},this._client))}}var NE,C9,Sj;class TE extends h{constructor(){super(...arguments);NE.add(this)}async unwrap(A,q,g=this._client.webhookSecret,E=300){return await this.verifySignature(A,q,g,E),JSON.parse(A)}async verifySignature(A,q,g=this._client.webhookSecret,E=300){if(typeof crypto==="undefined"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");V(this,NE,"m",C9).call(this,g);let F=D([q]).values,K=V(this,NE,"m",Sj).call(this,F,"webhook-signature"),Z=V(this,NE,"m",Sj).call(this,F,"webhook-timestamp"),j=V(this,NE,"m",Sj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new Eg("Invalid webhook timestamp format");let G=Math.floor(Date.now()/1000);if(G-U>E)throw new Eg("Webhook timestamp is too old");if(U>G+E)throw new Eg("Webhook timestamp is too new");let Y=K.split(" ").map((_)=>_.startsWith("v1,")?_.substring(3):_),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),O=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let _ of Y)try{let x=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,x,new TextEncoder().encode(O)))return}catch{continue}throw new Eg("The given webhook signature does not match the expected signature")}}NE=new WeakSet,C9=function A(q){if(typeof q!=="string"||q.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},Sj=function A(q,g){if(!q)throw new Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw new Error(`Missing required header: ${g}`);return E};var YY,QY,aj,k9;class e{constructor({baseURL:A=Cg("OPENAI_BASE_URL"),apiKey:q=Cg("OPENAI_API_KEY"),organization:g=Cg("OPENAI_ORG_ID")??null,project:E=Cg("OPENAI_PROJECT_ID")??null,webhookSecret:F=Cg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(YY.add(this),aj.set(this,void 0),this.completions=new GE(this),this.chat=new $6(this),this.embeddings=new QE(this),this.files=new JE(this),this.images=new XE(this),this.audio=new Ug(this),this.moderations=new LE(this),this.models=new HE(this),this.fineTuning=new Cq(this),this.graders=new P6(this),this.vectorStores=new vg(this),this.webhooks=new TE(this),this.beta=new wq(this),this.batches=new ZE(this),this.uploads=new R6(this),this.responses=new bg(this),this.realtime=new Dg(this),this.conversations=new I6(this),this.evals=new x6(this),this.containers=new T6(this),this.videos=new WE(this),q===void 0)throw new d("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let Z={apiKey:q,organization:g,project:E,webhookSecret:F,...K,baseURL:A||"https://api.openai.com/v1"};if(!Z.dangerouslyAllowBrowser&&yM())throw new d(`It looks like you're running in a browser-like environment.
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??QY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=cG(Z.logLevel,"ClientOptions.logLevel",this)??cG(Cg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??vM(),s(this,aj,fM,"f"),this._options=Z,this.apiKey=typeof q==="string"?q:"Missing Key",this.organization=g,this.project=E,this.webhookSecret=F}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){return}async authHeaders(A){return D([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(A){return mG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ag}`}defaultIdempotencyKey(){return`stainless-node-retry-${hG()}`}makeStatusError(A,q,g,E){return VA.generate(A,q,g,E)}async _callApiKey(){let A=this._options.apiKey;if(typeof A!=="function")return!1;let q;try{q=await A()}catch(g){if(g instanceof d)throw g;throw new d(`Failed to get token from 'apiKey' function: ${g.message}`,{cause:g})}if(typeof q!=="string"||!q)throw new d(`Expected 'apiKey' function argument to return a string but it returned ${q}`);return this.apiKey=q,!0}buildURL(A,q,g){let E=!V(this,YY,"m",k9).call(this)&&g||this.baseURL,F=aM(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!hM(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}async prepareOptions(A){await this._callApiKey()}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new J6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(HA(this).debug(`[${U}] sending request`,Fg({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new IA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(vF),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new IA;let L=bF(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new O6;throw new Q6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="x-request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await mM(O.body),HA(this).info(`${x} - ${p}`),HA(this).debug(`[${U}] response error (${p})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";HA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>vF(p).message),k=wM(P),C=k?void 0:P;throw HA(this).debug(`[${U}] response error (${L})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return HA(this).info(x),HA(this).debug(`[${U}] response start`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new Uj(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await hq(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)BM("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=D([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...bM(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=D([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:eZ(A)};else return V(this,aj,"f").call(this,{body:A,headers:g})}}QY=e,aj=new WeakMap,YY=new WeakSet,k9=function A(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=QY;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=d;e.APIError=VA;e.APIConnectionError=Q6;e.APIConnectionTimeoutError=O6;e.APIUserAbortError=IA;e.NotFoundError=dF;e.ConflictError=pF;e.RateLimitError=lF;e.BadRequestError=mF;e.AuthenticationError=fF;e.InternalServerError=iF;e.PermissionDeniedError=cF;e.UnprocessableEntityError=uF;e.InvalidWebhookSignatureError=Eg;e.toFile=Yj;e.Completions=GE;e.Chat=$6;e.Embeddings=QE;e.Files=JE;e.Images=XE;e.Audio=Ug;e.Moderations=LE;e.Models=HE;e.FineTuning=Cq;e.Graders=P6;e.VectorStores=vg;e.Webhooks=TE;e.Beta=wq;e.Batches=ZE;e.Uploads=R6;e.Responses=bg;e.Realtime=Dg;e.Conversations=I6;e.Evals=x6;e.Containers=T6;e.Videos=WE;function OY(A){return{anthropic:null,openai:null,provider:A,storyContext:"",isStreaming:!1}}function JY(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Story Being Discussed
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
- ${Ng(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+=D9(A.comments);return g}function D9(A,q=0){let g="",E=" ".repeat(q);for(let F of A)if(F.user&&F.content){let K=Ng(F.content);g+=`${E}**${F.user}:**
180
- `;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+=D9(F.comments,q+1)}return g}async function y9(A,q,g,E,F){if(A.isStreaming=!0,!A.storyContext)A.storyContext=JY(E);let K=E.url||"",Z=`You are helping a user understand and discuss a Hacker News story.
185
+ `,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 S1(A,q,g,Z,K,F);else await a1(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function S1(A,q,g,E,F,K){if(!A.anthropic){let G=lA("anthropic");A.anthropic=new oA({apiKey:G})}let Z=F?[{type:"web_search_20250305",name:"web_search",max_uses:3}]:[],j=A.anthropic.messages.stream({model:sE("anthropic"),max_tokens:4096,system:E,tools:Z.length>0?Z:void 0,messages:q.slice(0,-1).map((G)=>({role:G.role,content:G.content})).concat([{role:"user",content:g}])}),U="";j.on("text",(G)=>{U+=G,K.onText(U)}),await j.finalMessage(),K.onComplete()}async function a1(A,q,g,E,F,K){if(FA("[openai-stream] Starting stream..."),!A.openai){let G=lA("openai");FA("[openai-stream] Initializing client, API key exists:",!!G),A.openai=new e({apiKey:G})}let Z=sE("openai");if(FA("[openai-stream] Model:",Z),FA("[openai-stream] Message count:",q.length),F)try{FA("[openai-stream] Using Responses API stream with web_search tool");let G=A.openai.responses.stream({model:Z,tools:[{type:"web_search"}],input:[{role:"developer",content:E},...q.slice(0,-1).map((Y)=>({role:Y.role,content:Y.content})),{role:"user",content:g}]});G.on("response.output_text.delta",(Y)=>{K.onText(Y.snapshot)}),await G.finalResponse(),FA("[openai-stream] Responses API stream complete"),K.onComplete();return}catch(G){let Y=G instanceof Error?G.message:String(G);FA("[openai-stream] Responses API failed, falling back to chat completions without web search. Error:",Y)}let j=await A.openai.chat.completions.create({model:Z,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:E},...q.slice(0,-1).map((G)=>({role:G.role,content:G.content})),{role:"user",content:g}]});FA("[openai-stream] Stream created, reading chunks...");let U="";for await(let G of j){let Y=G.choices[0]?.delta?.content;if(Y)U+=Y,K.onText(U)}FA("[openai-stream] Stream complete, response length:",U.length),K.onComplete()}async function b9(A,q){let g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${Ng(F.content||"").slice(0,100)}...`).join(`
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(FA("[suggestions] Using Anthropic API with cheap model"),!A.anthropic){let U=lA("anthropic");FA("[suggestions] API key exists:",!!U),A.anthropic=new oA({apiKey:U})}FA("[suggestions] Model:",A6);let K=await A.anthropic.messages.create({model:A6,max_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] Anthropic response received");let Z=K.content[0];F=(Z&&Z.type==="text"?Z.text:"").split(`
202
- `).filter((U)=>U.trim()).slice(0,3)}else{if(FA("[suggestions] Using OpenAI API with cheap model"),!A.openai){let j=lA("openai");FA("[suggestions] API key exists:",!!j),A.openai=new e({apiKey:j})}FA("[suggestions] Model:",Vg),FA("[suggestions] Making OpenAI request...");let K=await A.openai.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] OpenAI response received:",JSON.stringify(K.choices[0],null,2)),F=(K.choices[0]?.message?.content||"").split(`
203
- `).filter((j)=>j.trim()).slice(0,3)}return FA("[suggestions] Generated questions:",F),F}catch(F){return FA("[ERROR]","[suggestions] Error generating suggestions:"),FA("[ERROR]","[suggestions] Error type:",F?.constructor?.name),FA("[ERROR]","[suggestions] Error message:",F instanceof Error?F.message:String(F)),[]}}async function v9(A,q,g){let E=g.slice(-4).filter((K)=>K.content.length<500).map((K)=>`${K.role==="user"?"User":"Assistant"}: ${K.content}`).join(`
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,9 +217,9 @@ 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=lA("anthropic");A.anthropic=new oA({apiKey:U})}let Z=(await A.anthropic.messages.create({model:A6,max_tokens:256,messages:[{role:"user",content:F}]})).content[0];return(Z&&Z.type==="text"?Z.text:"").split(`
214
- `).filter((U)=>U.trim()).slice(0,3)}else{if(!A.openai){let j=lA("openai");A.openai=new e({apiKey:j})}return((await A.openai.chat.completions.create({model:Vg,max_completion_tokens:256,messages:[{role:"user",content:F}]})).choices[0]?.message?.content||"").split(`
215
- `).filter((j)=>j.trim()).slice(0,3)}}catch(K){return FA("[ERROR]","[follow-up] Error:",K),[]}}function MY(A){A.anthropic=null,A.openai=null}function m9(A,q){A.provider=q}var _Y=`You are summarizing a Hacker News story for a terminal app. Be extremely concise.
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.
216
223
 
217
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.
218
225
 
@@ -227,8 +234,8 @@ Rules:
227
234
  - Keep each section to 2-3 sentences maximum
228
235
  - Be direct and dense with information
229
236
  - Use exactly "---DISCUSSION---" as the separator between sections
230
- - Start immediately with the article summary content`,h1=[/^I need to .+?\./i,/^I('ll| will) .+?\./i,/^Let me .+?\./i,/^First,? I .+?\./i,/^To .+?, I .+?\./i,/^I should .+?\./i,/^I'm going to .+?\./i,/^Now I .+?\./i,/^Based on .+?, I .+?\./i];function f9(A){let q=A.trim(),g=!0;while(g){g=!1;for(let E of h1){let F=q.match(E);if(F&&q.indexOf(F[0])===0){q=q.slice(F[0].length).trim(),g=!0;break}}}return q}function $Y(A){let q=A.split("---DISCUSSION---"),g=f9(q[0]||""),E=f9(q[1]||"");if(q.length===1&&g.length>0){let F=[/\n\n(?:The discussion|Discussion|Comments|HN comments|The HN discussion)/i,/\n\n(?:Commenters|Users|Readers)/i];for(let K of F){let Z=g.match(K);if(Z&&Z.index!==void 0){E=g.slice(Z.index).trim(),g=g.slice(0,Z.index).trim();break}}if(!E)FA("[tldr] Warning: No discussion separator found in response")}return{articleSummary:g,discussionSummary:E}}async function c9(A,q,g){let E=JY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
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.
231
238
 
232
- ${E}`;try{if(q==="anthropic")await z1(F,K,g);else await B1(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function z1(A,q,g){let E=lA("anthropic");if(!E)throw new Error("Anthropic API key not configured");let F=new oA({apiKey:E}),Z=A?[{type:"web_search_20250305",name:"web_search",max_uses:2}]:[];FA("[tldr] Generating TLDR with Anthropic, model:",A6);let j=await F.messages.create({model:A6,max_tokens:1024,system:_Y,tools:Z.length>0?Z:void 0,messages:[{role:"user",content:q}]}),U="";for(let G of j.content)if(G.type==="text")U+=G.text;FA("[tldr] TLDR generated, length:",U.length),g.onComplete($Y(U))}async function B1(A,q,g){let E=lA("openai");if(!E)throw new Error("OpenAI API key not configured");let F=new e({apiKey:E});if(FA("[tldr] Generating TLDR with OpenAI, model:",Vg),A)try{let j=await F.responses.create({model:Vg,tools:[{type:"web_search"}],input:[{role:"developer",content:_Y},{role:"user",content:q}]}),U="";for(let G of j.output)if(G.type==="message"&&G.content){for(let Y of G.content)if(Y.type==="output_text")U+=Y.text}FA("[tldr] TLDR generated via Responses API, length:",U.length),g.onComplete($Y(U));return}catch(j){if(!(j instanceof Error&&(j.message.includes("not found")||j.message.includes("does not exist")||j.message.includes("unsupported"))))throw j;FA("[tldr] Responses API not available, falling back to chat completions:",j)}let Z=(await F.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"system",content:_Y},{role:"user",content:q}]})).choices[0]?.message?.content||"";FA("[tldr] TLDR generated via Chat Completions, length:",Z.length),g.onComplete($Y(Z))}import{existsSync as HY,mkdirSync as w1,readFileSync as C1,writeFileSync as k1,unlinkSync as D1}from"fs";import{join as d9}from"path";import{tmpdir as y1}from"os";var XY=d9(y1(),"hn-cli-cache"),bK=d9(XY,"state.json"),b1=300000;function v1(){if(!HY(XY))w1(XY,{recursive:!0})}function p9(){try{if(!HY(bK))return null;let A=C1(bK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>b1)return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function u9(A){try{v1(),A.savedAt=Date.now(),k1(bK,JSON.stringify(A,null,2))}catch{}}function l9(){try{if(HY(bK))D1(bK)}catch{}}function i9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function t9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function s9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function n9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}var m1=3;class LY{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;headerState;storyListState;storyDetailState;emptyStateState;chatPanelState=null;authSetupState=null;settingsState=null;chatServiceState=null;savedChatSessions=new Map;storyViewModes=new Map;chatMode=!1;authSetupMode=!1;settingsMode=!1;authSetupFromSettings=!1;settingsFromChatMode=!1;settingsIntent="settings";updateInfo=null;followUpCount=0;pendingGenerationStoryIds=new Set;suggestionLoadingInterval=null;storiesFetchedAt=0;tldrCache=new Map;tldrErrorIds=new Set;tldrLoading=!1;tldrLoadingStoryId=null;tldrLoadingFrame=0;tldrLoadingInterval=null;aiActiveIndices=new Set;aiIndicatorFrame=0;aiIndicatorInterval=null;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}saveToCache(){let A={posts:this.posts,selectedIndex:this.selectedIndex,selectedPost:this.selectedPost,rootCommentIndex:this.rootCommentIndex,chatMode:this.chatMode,settingsMode:this.settingsMode,chatSessions:i9(this.savedChatSessions),storyViewModes:s9(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};u9(A)}async initialize(){await ZJ(this.renderer),this.setupLayout(),this.setupKeyboardHandlers();let A=p9();if(A&&A.posts.length>0)await this.restoreFromCache(A);else await this.loadPosts()}async restoreFromCache(A){if(this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt,this.savedChatSessions=t9(A.chatSessions),this.storyViewModes=A.storyViewModes?n9(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(q)=>this.selectStory(q)}),A.selectedIndex>=0&&A.selectedIndex<this.posts.length){if(await this.selectStory(A.selectedIndex),A.chatMode&&this.selectedPost)this.showChatView();else if(A.settingsMode)this.showSettings()}else if(this.posts.length>0)await this.selectStory(0)}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}setUpdateInfo(A){this.updateInfo=A,OJ(this.headerState,this.updateInfo)}startHeaderLoading(){JJ(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){MJ(this.headerState)}setupLayout(){let A=new b(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg,paddingTop:1}),{header:q,state:g}=QJ(this.ctx,{onOpenGitHub:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")}});this.headerState=g,this.contentArea=new b(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=VJ(this.ctx),this.storyDetailState=xJ(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=SJ(this.ctx),this.contentArea.add(this.emptyStateState.container),A.add(q),A.add(this.contentArea),this.renderer.root.add(A)}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(A.super&&A.name==="c"){this.copySelectionToClipboard();return}if(this.settingsMode&&this.settingsState){this.handleSettingsKey(A);return}if(this.authSetupMode&&this.authSetupState){this.handleAuthSetupKey(A);return}if(this.chatMode&&this.chatPanelState){this.handleChatKey(A);return}this.handleMainKey(A)})}handleSettingsKey(A){if(!this.settingsState)return;if(A.name==="escape"){if(!vJ(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")EG(this.settingsState,1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")EG(this.settingsState,-1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="return"||A.name==="enter"){let q=bJ(this.settingsState,Wg()||"anthropic");if(q)this.handleSettingsAction(q)}}handleSettingsAction(A){switch(A.type){case"switch_provider":let q=q6();if(q.provider=A.provider,tE(q),this.chatServiceState)m9(this.chatServiceState,A.provider),MY(this.chatServiceState);this.rerenderSettings();break;case"done":this.hideSettings();break;case"add_anthropic":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="anthropic",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"add_openai":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":KJ(),this.chatServiceState=null,this.chatMode=!1,this.settingsFromChatMode=!1,this.savedChatSessions.clear(),this.storyViewModes.clear(),this.hideSettings();break;case"select_model":if(FJ(A.provider,A.modelId),this.chatServiceState)MY(this.chatServiceState);this.rerenderSettings();break}}handleAuthSetupKey(A){if(!this.authSetupState)return;if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupState.step==="provider"){if(A.name==="j"||A.name==="down")qG(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")qG(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")kJ(this.authSetupState),this.showAuthSetupUI()}}handleChatKey(A){if(!this.chatPanelState)return;if(A.name==="escape"){this.hideChatView();return}if(A.super&&(A.name==="j"||A.name==="k")){let g=A.name==="j"?1:-1;this.navigateStory(g);return}let q=this.chatPanelState.suggestions;if(q.suggestions.length>0&&this.chatPanelState.input&&!this.chatPanelState.input.plainText.trim()){if(A.name==="up"||A.name==="k"){if(q.selectedIndex===-1)q.selectedIndex=q.suggestions.length-1;else if(q.selectedIndex>0)q.selectedIndex--;this.chatPanelState.input.blur(),aA(this.ctx,q);return}else if(A.name==="down"||A.name==="j"){if(q.selectedIndex===q.suggestions.length-1)q.selectedIndex=-1,this.chatPanelState.input.focus();else if(q.selectedIndex>=0)q.selectedIndex++,this.chatPanelState.input.blur();aA(this.ctx,q);return}}if(A.name==="tab"&&q.selectedIndex>=0&&q.suggestions.length>0){let g=q.suggestions[q.selectedIndex];if(g&&this.chatPanelState.input){this.chatPanelState.input.focus(),this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(g+" "),q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatPanelState.input&&this.chatPanelState.input.plainText.trim()){this.sendChatMessage();return}if(q.selectedIndex>=0&&q.suggestions.length>0){this.selectSuggestion();return}return}if(q.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126){if(this.chatPanelState.input)this.chatPanelState.input.focus();q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q)}}if(A.name==="backspace"&&this.chatPanelState.input&&q.originalSuggestions.length>0)setTimeout(()=>{if(this.chatPanelState?.input&&!this.chatPanelState.input.plainText.trim()&&this.chatPanelState.suggestions.suggestions.length===0)this.chatPanelState.suggestions.suggestions=[...this.chatPanelState.suggestions.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=this.chatPanelState.suggestions.suggestions.length-1,aA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){if(A.name==="s"){this.settingsIntent="settings",this.showSettings();return}if(A.name==="j")this.navigateStory(1);else if(A.name==="k")this.navigateStory(-1);else if(A.name==="space"||A.name===" ")this.navigateToNextComment();else if(A.name==="o")this.openStoryUrl();else if(A.name==="c")this.openChat();else if(A.name==="r")this.refresh();else if(A.name==="t")this.handleTldrRequest()}async loadPosts(){aJ(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{if(this.posts=await rO(),this.storiesFetchedAt=Date.now(),nE(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(A)=>this.selectStory(A)}),this.posts.length>0)await this.selectStory(0);this.saveToCache()}catch(A){nE(this.emptyStateState),FA("[ERROR]","Error loading posts:",A)}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(this.tldrLoading)this.stopTldrLoadingAnimation();if(this.chatMode&&this.selectedPost&&this.chatPanelState){if(this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount}),this.cancelSuggestionLoadingInterval(),this.chatPanelState.input)this.chatPanelState.input.blur();if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null}let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,WJ(this.storyListState,this.posts,q,A);let g=this.posts[A];if(!g)return;for(let E of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(E.id);try{let E=await nO(g.id);if(this.renderer.isDestroyed)return;if(E)if(this.selectedPost=E,(this.storyViewModes.get(g.id)||"comments")==="chat"&&this.chatServiceState)this.chatMode=!0,this.showChatViewForCurrentStory();else{this.chatMode=!1,this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar);let K=this.tldrLoading&&this.tldrLoadingStoryId===E.id,Z=this.tldrCache.get(E.id)||null,j=this.tldrErrorIds.has(E.id);if(g6(this.ctx,this.storyDetailState,E,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:Z,isLoading:K,loadingFrame:this.tldrLoadingFrame,hasError:j}),K)this.startTldrLoadingAnimation()}}catch(E){FA("[ERROR]","Error loading post:",E)}if(this.renderer.isDestroyed)return;NJ(this.storyListState,A),this.saveToCache()}navigateStory(A){if(this.posts.length===0)return;if(this.selectedIndex===-1){if(A>0)this.selectStory(0);else this.selectStory(this.posts.length-1);return}let q=this.selectedIndex+A;if(q>=0&&q<this.posts.length)this.selectStory(q)}handleTldrRequest(){if(!this.selectedPost)return;if(!EJ()){this.settingsIntent="tldr",this.showSettings();return}if(this.tldrLoading)return;let A=this.selectedPost.id;this.tldrCache.delete(A),this.tldrErrorIds.delete(A);let q=Wg();if(!q)return;this.tldrLoading=!0,this.tldrLoadingStoryId=A,this.tldrLoadingFrame=0,this.rerenderCurrentStory(),this.startAiIndicator(this.selectedIndex),this.startTldrLoadingAnimation();let g=this.selectedIndex;c9(this.selectedPost,q,{onComplete:(E)=>{if(this.renderer.isDestroyed)return;if(this.tldrCache.set(A,E),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()},onError:(E)=>{if(FA("[ERROR]","TLDR generation failed:",E),this.tldrErrorIds.add(A),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()}})}startTldrLoadingAnimation(){this.stopTldrLoadingAnimation(),this.tldrLoadingInterval=setInterval(()=>{if(this.renderer.isDestroyed||!this.tldrLoading){this.stopTldrLoadingAnimation();return}if(this.selectedPost?.id===this.tldrLoadingStoryId)this.tldrLoadingFrame=(this.tldrLoadingFrame+1)%10,this.rerenderCurrentStory()},80)}stopTldrLoadingAnimation(){if(this.tldrLoadingInterval)clearInterval(this.tldrLoadingInterval),this.tldrLoadingInterval=null}startAiIndicator(A){if(this.aiActiveIndices.add(A),!this.aiIndicatorInterval)this.aiIndicatorInterval=setInterval(()=>{if(this.renderer.isDestroyed||this.aiActiveIndices.size===0){this.stopAiIndicatorAnimation();return}this.aiIndicatorFrame=(this.aiIndicatorFrame+1)%yA.length;let q=yA[this.aiIndicatorFrame];for(let g of this.aiActiveIndices)rU(this.storyListState,g,q)},80)}stopAiIndicator(A){this.aiActiveIndices.delete(A);let q=A===this.selectedIndex;if(rU(this.storyListState,A,q?"\u203A":"\u2022"),this.aiActiveIndices.size===0)this.stopAiIndicatorAnimation()}stopAiIndicatorAnimation(){if(this.aiIndicatorInterval)clearInterval(this.aiIndicatorInterval),this.aiIndicatorInterval=null}rerenderCurrentStory(){if(!this.selectedPost||this.chatMode)return;let A=this.selectedPost.id,q=this.tldrCache.get(A)||null,g=this.tldrLoading&&this.tldrLoadingStoryId===A,E=this.tldrErrorIds.has(A);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:g,loadingFrame:this.tldrLoadingFrame,hasError:E})}showChatViewForCurrentStory(){if(!this.selectedPost||!this.chatServiceState)return;this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A)}navigateToNextComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;let A=this.storyDetailState.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,eU(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,eU(this.storyDetailState,this.rootCommentIndex)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=Wg();if(A)this.chatServiceState=OY(A),this.showChatView();else this.settingsIntent="chat",this.showSettings()}showChatView(){if(!this.selectedPost||!this.chatServiceState)return;this.chatMode=!0,this.storyViewModes.set(this.selectedPost.id,"chat"),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A),this.saveToCache()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.selectedPost)this.storyViewModes.set(this.selectedPost.id,"comments");if(this.cancelSuggestionLoadingInterval(),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});if(this.chatPanelState?.input)this.chatPanelState.input.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null,this.saveToCache()}async sendChatMessage(){if(!this.chatPanelState||!this.chatServiceState||this.chatServiceState.isStreaming)return;let A=this.chatPanelState.input.plainText.trim();if(!A)return;this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,aA(this.ctx,this.chatPanelState.suggestions),rE(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(rE(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;wJ(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=this.selectedIndex;this.startAiIndicator(g);let E=!1;await y9(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(F)=>{if(!E&&this.chatPanelState)E=!0,d6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=F,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g),this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(F)=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g);let K=this.chatServiceState?.provider==="anthropic"?"Anthropic":"OpenAI";if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=`Error: ${F.message}
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}
233
240
 
234
- Check your ${K} API key in ~/.config/hn-cli/config.json`,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)}})}selectSuggestion(){if(!this.chatPanelState)return;let A=this.chatPanelState.suggestions;if(A.selectedIndex<0||A.selectedIndex>=A.suggestions.length)return;let q=A.suggestions[A.selectedIndex];if(!q)return;if(this.chatPanelState.input)this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(q);A.suggestions=[],A.selectedIndex=-1,aA(this.ctx,A),this.sendChatMessage()}cancelSuggestionLoadingInterval(){if(this.suggestionLoadingInterval)clearInterval(this.suggestionLoadingInterval),this.suggestionLoadingInterval=null}restoreSuggestionsFromSession(A){if(!this.chatPanelState)return;if(A&&A.suggestions.length>0)this.chatPanelState.suggestions.suggestions=[...A.suggestions],this.chatPanelState.suggestions.originalSuggestions=[...A.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=A.suggestions.length-1,this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);else if(A&&A.messages.length>0)this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateFollowUpQuestionsIfNeeded();else this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateInitialSuggestions()}async generateInitialSuggestions(){if(!this.selectedPost||!this.chatPanelState||!this.chatServiceState)return;let A=this.selectedPost.id,q=this.chatPanelState.suggestions;this.pendingGenerationStoryIds.add(A),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await b9(this.chatServiceState,this.selectedPost);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1;aA(this.ctx,this.chatPanelState.suggestions)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[suggestions] Error:",g)}}async generateFollowUpQuestionsIfNeeded(){if(this.followUpCount>=m1)return;if(!this.chatPanelState||!this.chatServiceState||!this.selectedPost)return;let A=this.selectedPost.id;if(this.pendingGenerationStoryIds.has(A))return;if(!this.chatPanelState.messages.some((g)=>g.role==="assistant"))return;this.pendingGenerationStoryIds.add(A),this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await v9(this.chatServiceState,this.selectedPost,this.chatPanelState.messages);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1,this.followUpCount++;aA(this.ctx,this.chatPanelState.suggestions),AG(this.chatPanelState)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[follow-up] Error:",g)}finally{this.saveToCache()}}showAuthSetup(){this.authSetupMode=!0,this.authSetupState=RZ(),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.showAuthSetupUI()}showAuthSetupUI(){if(!this.authSetupState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=CJ(this.ctx,this.authSetupState,{onSaveKey:(q,g)=>this.saveApiKey(q,g)});this.storyDetailState.panel.add(A)}hideAuthSetup(){if(this.authSetupMode=!1,this.authSetupState?.keyInput)this.authSetupState.keyInput.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.authSetupFromSettings){this.authSetupFromSettings=!1,this.authSetupState=null,this.showSettings();return}if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.authSetupState=null}saveApiKey(A,q){let g=q6();if(g.provider=A,A==="anthropic")g.anthropicApiKey=q;else g.openaiApiKey=q;if(tE(g),this.authSetupFromSettings=!1,this.hideAuthSetup(),this.chatServiceState=OY(A),this.settingsIntent==="chat")this.showChatView();else if(this.settingsIntent==="tldr")this.handleTldrRequest();else this.showSettings();this.settingsIntent="settings"}showSettings(){if(this.settingsMode=!0,this.settingsFromChatMode=this.chatMode,this.settingsState=DJ(),this.cancelSuggestionLoadingInterval(),this.chatPanelState?.input)this.chatPanelState.input.blur();if(this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);this.rerenderSettings(),this.saveToCache()}rerenderSettings(){if(!this.settingsState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=yJ(this.ctx,this.settingsState,Wg()||"anthropic");this.storyDetailState.panel.add(A)}hideSettings(){this.settingsMode=!1;for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.settingsFromChatMode&&this.selectedPost&&this.chatServiceState){this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages];Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider),this.restoreSuggestionsFromSession(A)}else if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.settingsState=null,this.saveToCache()}async refresh(){l9(),await this.loadPosts()}async copySelectionToClipboard(){let A=this.renderer.getSelection();if(!A)return;let q=A.getSelectedText();if(!q)return;let g=process.platform,E;if(g==="darwin")E=["pbcopy"];else if(g==="linux")E=["xclip","-selection","clipboard"];else if(g==="win32")E=["clip"];else return;try{let F=Bun.spawn(E,{stdin:"pipe"});F.stdin.write(q),F.stdin.end(),await F.exited}catch{}}get currentSelectedIndex(){return this.selectedIndex}get currentRootCommentIndex(){return this.rootCommentIndex}get currentPosts(){return this.posts}get currentSelectedPost(){return this.selectedPost}get rootCommentCount(){return this.storyDetailState.rootCommentBoxes.length}ensureLayoutReadyForTesting(){if(!this.contentArea.getChildren().some((F)=>F.id===this.storyListState.panel.id))this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel);if(!this.storyDetailState.panel.getChildren().some((F)=>F.id===this.storyDetailState.header.id))IZ(this.storyDetailState)}setPostsForTesting(A){this.ensureLayoutReadyForTesting(),this.posts=A,TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(q)=>this.selectStory(q)})}async setSelectedPostForTesting(A){if(this.ensureLayoutReadyForTesting(),this.selectedIndex===-1)this.selectedIndex=0;this.selectedPost=A;let q=this.tldrCache.get(A.id)||null,g=this.tldrErrorIds.has(A.id);g6(this.ctx,this.storyDetailState,A,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:!1,hasError:g})}cleanup(){if(this.chatPanelState)d6(this.chatPanelState);this.stopTldrLoadingAnimation(),this.stopAiIndicatorAnimation()}}var c1={bg:"#1a1a1a"};async function d1(){let A=await RU({exitOnCtrlC:!0,backgroundColor:c1.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),q=new LY(A,{onOpenUrl:(g)=>{f1(`open "${g}"`)},onExit:()=>{A.destroy(),process.exit(0)}});await q.initialize(),q.startHeaderLoading(),YJ().then((g)=>{if(q.stopHeaderLoading(),g?.hasUpdate)q.setUpdateInfo(g)}),A.start()}d1().catch(console.error);
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);