@brianlovin/hn-cli 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +57 -40
  2. package/dist/cli.js +24 -24
  3. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
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()+`
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})},qW=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
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
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(`
@@ -24,12 +24,12 @@ Captured output:
24
24
  `),this.realStdoutWrite.call(this.stdout,g+`
25
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
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(`
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 FN=new dJ;function n6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return s6(A)}class y 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 KN=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 ZN=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 jN=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 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} *[^
31
+ `))q=q.slice(0,-1)}return super.equals(A,q,g)}}var UN=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 GN=new oJ;class eJ extends Fg{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var YN=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 QN=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 JN=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
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
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,`
@@ -87,9 +87,9 @@ ${this.parser.parse(A)}</blockquote>
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
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()} ---
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:ON,setOptions:MN,use:$N,walkTokens:XN,parseInline:_N}=OA,HN=Iq.parse,VN=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 y{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 y{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 y(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new y(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 mV}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
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.1";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,`
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.3";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 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,flexShrink:0,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(`
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 y(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 y(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 y(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 y(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 y(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 y(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 y(A,{width:"100%",height:2,flexShrink:0,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 y(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 y(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 y(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 y(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 y(A,{id:`comment-wrapper-${q.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(q.level>0){let j=new y(A,{width:q.level*2,flexShrink:0});F.add(j)}let K=new y(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 y(A,{width:"100%",flexDirection:"column"});for(let G of q.comments){let Y=WG(A,G);j.add(Y)}let U=new y(A,{width:"100%",flexDirection:"column"});return U.add(F),U.add(j),U}return F}function JM(A,q,g){let E=new y(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 y(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:V.bg}),E=new y(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 y(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 y(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 y(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 y(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 y(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 y(A,{height:1});G.add(M);let Q=new w(A,{content:lA`${Tq("Article summary")}`,fg:V.textSecondary});G.add(Q);let $=new y(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 y(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 y(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 y(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 y(A,{width:"100%",flexDirection:"column"}),Z=new y(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 y(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 y(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 y(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 y(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 y(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 y(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 y(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 y(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 y(A,{width:"100%",flexDirection:"column",marginBottom:1}),U=new y(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 y(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 y(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 y(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 y(A,{height:1}));let F=new y(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 y(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 y(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 y(A,{height:1}));let Z=new y(A,{width:"100%",flexDirection:"row"}),j=new w(A,{content:"\u203A",fg:V.accent});Z.add(j);let U=new y(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 y(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 y(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 y(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 y(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 y(A,{id:`settings-item-${U}`,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 y(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 y(A,{id:`settings-item-${G}`,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 y(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 y(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 y(A,{id:`settings-item-${U}`,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 y(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 y(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 y(A,{id:`settings-item-${U}`,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 y(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 y(A,{id:`settings-item-${U}`,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,xH(A)}function xH(A){let q=`settings-item-${A.selectedIndex}`,g=A.scroll.getChildren()[0];if(!g)return;let E=(G)=>{for(let Y of G.getChildren()){if(Y.id===q)return Y;if(Y instanceof y){let M=E(Y);if(M)return M}}return null},F=E(g);if(!F)return;let K=F.y-g.y,Z=F.height||1,j=A.scroll.height,U=A.scroll.scrollTop;if(K<U)A.scroll.scrollTop=Math.max(0,K-1);else if(K+Z>U+j)A.scroll.scrollTop=K+Z-j+1}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 SH=/^[a-z][a-z0-9+.-]*:/i,aM=(A)=>{return SH.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 hH(){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 aH=()=>{let A=hH();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=zH();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 zH(){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=aH())};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=kH(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
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:
103
+ `,"\r"]);Bg.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function kH(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 CH={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 CH;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 DH(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*DH(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 yH(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*yH(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]=bH(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 bH(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 fH(A.body,q)}},sM=new WeakMap;function mH(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 fH=async(A,q)=>{if(!await mH(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},cH=(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(cH(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",dH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&nM(A),pH=(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)),dH(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(pH(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}`:""}${uH(A)}`)}return q}function uH(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*iH(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 iH(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)),tH=(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
106
  ${K.map((Q)=>Q.error).join(`
107
107
  `)}
108
108
  ${Z}
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:
109
+ ${M}`)}return Z},MA=tH(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=rH(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 rH(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 oH=(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},eH=(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},A1=(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(A1(eH(qE(oH(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,7 +128,7 @@ 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 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]}
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,q1(P(this,TA,"f").params,q),"f"),P(this,Yg,"f")};async function q1(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
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
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
 
@@ -137,20 +137,20 @@ 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??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(`
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 G1=/^[a-z][a-z0-9+.-]*:/i,V9=(A)=>{return G1.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 Y1(){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 Q1=()=>{let A=Y1();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=J1();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 J1(){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=Q1())};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 $1(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($1(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 X1(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=X1(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=H1(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
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:
142
+ `,"\r"]);GE.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function H1(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 V1={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 V1;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 W1(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*W1(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 L1(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*L1(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]=N1(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 N1(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 P1(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 P1(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),I1=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Ij(A)||l9(A)),OY=(A)=>{if(I1(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",x1=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&i9(A),R1=(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,x1(A)){if(A instanceof File)return A;return YE([await A.arrayBuffer()],A.name)}if(R1(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}`:""}${S1(A)}`)}return q}function S1(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)),a1=(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
145
  ${K.map((Q)=>Q.error).join(`
146
146
  `)}
147
147
  ${Z}
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
148
+ ${M}`)}return Z},R=a1(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)=>k1(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?w1(q,E.message.content):null}}});return{...A,choices:g}}function w1(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 k1(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$,C1=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=C1}=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 D1(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 y1(A.trim(),q)}var y1=(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)=>D1(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"),b1(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 b1(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
150
  ${Cj(A)}`);if(p==null)throw new d(`missing choices[${M}].tool_calls[${D}].type
151
151
  ${Cj(A)}`);if(c==null)throw new d(`missing choices[${M}].tool_calls[${D}].function.name
152
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.
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*m1(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 b=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of m1(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:b([{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:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/assistants/${A}`,{...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/assistants/${A}`,{body:q,...g,headers:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/assistants/${A}`,{...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class PK extends a{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class IK extends a{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:b([{"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:b([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(R`/chatkit/sessions/${A}/cancel`,{...q,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class RK extends a{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",yg,{query:A,...q,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:b([{"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:b([{"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:b([{"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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/messages`,EA,{query:q,...g,headers:b([{"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:b([{"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:b([{"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:b([{"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:e1(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 e1(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:b([{"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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/runs`,EA,{query:q,...g,headers:b([{"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:b([{"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=b([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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/threads/${A}`,{...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/threads/${A}`,{...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:b([{"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:b([{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:b([{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:b([{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:b([{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:b([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:b([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:b([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:b([{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||!HV(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:LV(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:_V(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 _V(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 HV(A){if(JK(A.text?.format))return!0;return!1}function VV(A){return A?.$brand==="auto-parseable-tool"}function WV(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function LV(A,q){let g=WV(A.tools??[],q.name);return{...q,...q,parsed_arguments:VV(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=NV(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 NV(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:b([{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:b([{"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:b([{"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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=b([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:b([{"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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/vector_stores/${A}/files`,EA,{query:q,...g,headers:b([{"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:b([{"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=b([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:b([{"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:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/vector_stores/${A}`,{...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/vector_stores/${A}`,{body:q,...g,headers:b([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:b([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/vector_stores/${A}`,{...q,headers:b([{"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:b([{"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:b([{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=b([q]).values,K=L(this,BE,"m",pj).call(this,F,"webhook-signature"),Z=L(this,BE,"m",pj).call(this,F,"webhook-timestamp"),j=L(this,BE,"m",pj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new Jg("Invalid webhook timestamp format");let G=Math.floor(Date.now()/1000);if(G-U>E)throw new Jg("Webhook timestamp is too old");if(U>G+E)throw new Jg("Webhook timestamp is too new");let Y=K.split(" ").map((X)=>X.startsWith("v1,")?X.substring(3):X),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),Q=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let X of Y)try{let I=Buffer.from(X,"base64");if(await crypto.subtle.verify("HMAC",$,I,new TextEncoder().encode(Q)))return}catch{continue}throw new Jg("The given webhook signature does not match the expected signature")}}BE=new WeakSet,P$=function A(q){if(typeof q!=="string"||q.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},pj=function A(q,g){if(!q)throw new Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw new Error(`Missing required header: ${g}`);return E};var wY,kY,uj,I$;class e{constructor({baseURL:A=fg("OPENAI_BASE_URL"),apiKey:q=fg("OPENAI_API_KEY"),organization:g=fg("OPENAI_ORG_ID")??null,project:E=fg("OPENAI_PROJECT_ID")??null,webhookSecret:F=fg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(wY.add(this),uj.set(this,void 0),this.completions=new VE(this),this.chat=new I6(this),this.embeddings=new LE(this),this.files=new TE(this),this.images=new RE(this),this.audio=new _g(this),this.moderations=new hE(this),this.models=new SE(this),this.fineTuning=new fq(this),this.graders=new C6(this),this.vectorStores=new lg(this),this.webhooks=new wE(this),this.beta=new mq(this),this.batches=new XE(this),this.uploads=new D6(this),this.responses=new ug(this),this.realtime=new dg(this),this.conversations=new w6(this),this.evals=new k6(this),this.containers=new B6(this),this.videos=new zE(this),q===void 0)throw new d("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let Z={apiKey:q,organization:g,project:E,webhookSecret:F,...K,baseURL:A||"https://api.openai.com/v1"};if(!Z.dangerouslyAllowBrowser&&R9())throw new d(`It looks like you're running in a browser-like environment.
154
154
 
155
155
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
156
156
  If you understand the risks and have appropriate mitigations in place,
@@ -159,7 +159,7 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
159
159
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
160
160
 
161
161
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
162
- `);this.baseURL=Z.baseURL,this.timeout=Z.timeout??kY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=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
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 b([{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=b([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=b([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}
@@ -199,7 +199,7 @@ IMPORTANT CONTEXT DISTINCTION:
199
199
  - The "Hacker News Discussion" section contains community comments ABOUT that story
200
200
  - If the user asks about the original article/video content, use web search to fetch and read the URL: ${K}
201
201
 
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(`
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 hV(A,q,g,Z,K,F);else await aV(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function hV(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 aV(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(`
203
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.
204
204
 
205
205
  Title: ${q.title}
@@ -234,8 +234,8 @@ Rules:
234
234
  - Keep each section to 2-3 sentences maximum
235
235
  - Be direct and dense with information
236
236
  - Use exactly "---DISCUSSION---" as the separator between sections
237
- - Start immediately with the article summary content`,aV=[/^I need to .+?\./i,/^I('ll| will) .+?\./i,/^Let me .+?\./i,/^First,? I .+?\./i,/^To .+?, I .+?\./i,/^I should .+?\./i,/^I'm going to .+?\./i,/^Now I .+?\./i,/^Based on .+?, I .+?\./i];function z$(A){let q=A.trim(),g=!0;while(g){g=!1;for(let E of aV){let F=q.match(E);if(F&&q.indexOf(F[0])===0){q=q.slice(F[0].length).trim(),g=!0;break}}}return q}function vY(A){let q=A.split("---DISCUSSION---"),g=z$(q[0]||""),E=z$(q[1]||"");if(q.length===1&&g.length>0){let F=[/\n\n(?:The discussion|Discussion|Comments|HN comments|The HN discussion)/i,/\n\n(?:Commenters|Users|Readers)/i];for(let K of F){let Z=g.match(K);if(Z&&Z.index!==void 0){E=g.slice(Z.index).trim(),g=g.slice(0,Z.index).trim();break}}if(!E)FA("[tldr] Warning: No discussion separator found in response")}return{articleSummary:g,discussionSummary:E}}async function B$(A,q,g){let E=DY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
237
+ - Start immediately with the article summary content`,zV=[/^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 zV){let F=q.match(E);if(F&&q.indexOf(F[0])===0){q=q.slice(F[0].length).trim(),g=!0;break}}}return q}function vY(A){let q=A.split("---DISCUSSION---"),g=z$(q[0]||""),E=z$(q[1]||"");if(q.length===1&&g.length>0){let F=[/\n\n(?:The discussion|Discussion|Comments|HN comments|The HN discussion)/i,/\n\n(?:Commenters|Users|Readers)/i];for(let K of F){let Z=g.match(K);if(Z&&Z.index!==void 0){E=g.slice(Z.index).trim(),g=g.slice(0,Z.index).trim();break}}if(!E)FA("[tldr] Warning: No discussion separator found in response")}return{articleSummary:g,discussionSummary:E}}async function B$(A,q,g){let E=DY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
238
238
 
239
- ${E}`;try{if(q==="anthropic")await zV(F,K,g);else await BV(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function zV(A,q,g){let E=tA("anthropic");if(!E)throw new Error("Anthropic API key not configured");let F=new qq({apiKey:E}),Z=A?[{type:"web_search_20250305",name:"web_search",max_uses:2}]:[];FA("[tldr] Generating TLDR with Anthropic, model:",U6);let j=await F.messages.create({model:U6,max_tokens:1024,system:bY,tools:Z.length>0?Z:void 0,messages:[{role:"user",content:q}]}),U="";for(let G of j.content)if(G.type==="text")U+=G.text;FA("[tldr] TLDR generated, length:",U.length),g.onComplete(vY(U))}async function BV(A,q,g){let E=tA("openai");if(!E)throw new Error("OpenAI API key not configured");let F=new e({apiKey:E});if(FA("[tldr] Generating TLDR with OpenAI, model:",Rg),A)try{let j=await F.responses.create({model:Rg,tools:[{type:"web_search"}],input:[{role:"developer",content:bY},{role:"user",content:q}]}),U="";for(let G of j.output)if(G.type==="message"&&G.content){for(let Y of G.content)if(Y.type==="output_text")U+=Y.text}FA("[tldr] TLDR generated via Responses API, length:",U.length),g.onComplete(vY(U));return}catch(j){if(!(j instanceof Error&&(j.message.includes("not found")||j.message.includes("does not exist")||j.message.includes("unsupported"))))throw j;FA("[tldr] Responses API not available, falling back to chat completions:",j)}let Z=(await F.chat.completions.create({model:Rg,max_completion_tokens:1024,messages:[{role:"system",content:bY},{role:"user",content:q}]})).choices[0]?.message?.content||"";FA("[tldr] TLDR generated via Chat Completions, length:",Z.length),g.onComplete(vY(Z))}import{existsSync as ig,mkdirSync as w$,readFileSync as rK,writeFileSync as fY,unlinkSync as wV}from"fs";import{join as oK}from"path";import{tmpdir as kV,homedir as CV}from"os";var mY=oK(kV(),"hn-cli-cache"),nK=oK(mY,"state.json"),lj=oK(CV(),".cache","hn-cli"),tK=oK(lj,"tldr-cache.json"),sK=oK(lj,"chat-cache.json");function DV(){return Yq().storiesTtlMinutes*60*1000}var ij=604800000;function yV(){if(!ig(mY))w$(mY,{recursive:!0})}function k$(){try{if(!ig(nK))return null;let A=rK(nK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>DV())return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function C$(A){try{yV(),A.savedAt=Date.now(),fY(nK,JSON.stringify(A,null,2))}catch{}}function D$(){try{if(ig(nK))wV(nK)}catch{}}function y$(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function b$(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function v$(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function m$(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function f$(){if(!ig(lj))w$(lj,{recursive:!0})}function c$(){let A=new Map;try{if(!ig(tK))return A;let q=rK(tK,"utf-8"),g=JSON.parse(q),E=Date.now();for(let[F,K]of Object.entries(g.entries))if(E-K.cachedAt<=ij)A.set(Number(F),K.result)}catch{}return A}function cY(A){try{f$();let q={};if(ig(tK))try{let K=rK(tK,"utf-8");q=JSON.parse(K).entries}catch{}let g=Date.now(),E={};for(let[K,Z]of A){let j=String(K),U=q[j]?.cachedAt??g;if(g-U<=ij)E[j]={result:Z,cachedAt:U}}let F={entries:E};fY(tK,JSON.stringify(F,null,2))}catch{}}function d$(){let A=new Map;try{if(!ig(sK))return A;let q=rK(sK,"utf-8"),g=JSON.parse(q),E=Date.now();for(let[F,K]of Object.entries(g.sessions))if(E-K.cachedAt<=ij){let j={messages:K.messages,suggestions:K.suggestions,originalSuggestions:K.originalSuggestions,followUpCount:K.followUpCount};A.set(Number(F),j)}}catch{}return A}function p$(A){try{f$();let q={};if(ig(sK))try{let K=rK(sK,"utf-8");q=JSON.parse(K).sessions}catch{}let g=Date.now(),E={};for(let[K,Z]of A){let j=String(K),U=q[j]?.cachedAt??g;if(g-U<=ij)E[j]={...Z,cachedAt:U}}let F={sessions:E};fY(sK,JSON.stringify(F,null,2))}catch{}}var bV=3;class dY{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;headerState;storyListState;storyDetailState;emptyStateState;chatPanelState=null;authSetupState=null;settingsState=null;chatServiceState=null;savedChatSessions=new Map;storyViewModes=new Map;chatMode=!1;authSetupMode=!1;settingsMode=!1;authSetupFromSettings=!1;settingsFromChatMode=!1;settingsIntent="settings";initialFilterSettings=null;updateInfo=null;followUpCount=0;pendingGenerationStoryIds=new Set;suggestionLoadingInterval=null;storiesFetchedAt=0;tldrCache=new Map;tldrErrorIds=new Set;tldrLoading=!1;tldrLoadingStoryId=null;tldrLoadingFrame=0;tldrLoadingInterval=null;aiActiveIndices=new Set;aiIndicatorFrame=0;aiIndicatorInterval=null;requestedStoryId;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}saveToCache(){let A={posts:this.posts,selectedIndex:this.selectedIndex,selectedPost:this.selectedPost,rootCommentIndex:this.rootCommentIndex,chatMode:this.chatMode,settingsMode:this.settingsMode,chatSessions:y$(this.savedChatSessions),storyViewModes:v$(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};C$(A),cY(this.tldrCache),p$(this.savedChatSessions)}async initialize(A={}){this.requestedStoryId=A.requestedStoryId,await lO(this.renderer),this.setupLayout(),this.setupKeyboardHandlers(),this.tldrCache=c$();let q=d$();if(this.requestedStoryId){this.savedChatSessions=q,await this.loadPosts();return}let g=k$();if(g&&g.posts.length>0)await this.restoreFromCache(g,q);else this.savedChatSessions=q,await this.loadPosts()}async restoreFromCache(A,q){this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt;let g=b$(A.chatSessions);if(this.savedChatSessions=q?new Map([...g,...q]):g,this.storyViewModes=A.storyViewModes?m$(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),mZ(this.storyDetailState),vZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(E)=>this.selectStory(E)}),A.selectedIndex>=0&&A.selectedIndex<this.posts.length){if(await this.selectStory(A.selectedIndex),A.chatMode&&this.selectedPost)this.showChatView();else if(A.settingsMode)this.showSettings()}else if(this.posts.length>0)await this.selectStory(0)}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}setUpdateInfo(A){this.updateInfo=A,eO(this.headerState,this.updateInfo)}startHeaderLoading(){AM(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){qM(this.headerState)}setupLayout(){let A=new b(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:V.bg,paddingTop:1}),{header:q,state:g}=oO(this.ctx,{});this.headerState=g,this.contentArea=new b(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=UM(this.ctx),this.storyDetailState=MM(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=_M(this.ctx),this.contentArea.add(this.emptyStateState.container),A.add(q),A.add(this.contentArea),this.renderer.root.add(A)}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(A.super&&A.name==="c"){this.copySelectionToClipboard();return}if(this.settingsMode&&this.settingsState){this.handleSettingsKey(A);return}if(this.authSetupMode&&this.authSetupState){this.handleAuthSetupKey(A);return}if(this.chatMode&&this.chatPanelState){this.handleChatKey(A);return}this.handleMainKey(A)})}handleSettingsKey(A){if(!this.settingsState)return;if(A.name==="escape"){if(!SM(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")IG(this.settingsState,1,Gq()||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")IG(this.settingsState,-1,Gq()||"anthropic"),this.rerenderSettings();else if(A.name==="tab"){let q=hM(this.settingsState,Gq()||"anthropic");if(q)this.callbacks.onOpenUrl?.(q)}else if(A.name==="left"||A.name==="h"){let q=xG(this.settingsState,Gq()||"anthropic",-1);if(q)this.handleSettingsAction(q)}else if(A.name==="right"||A.name==="l"){let q=xG(this.settingsState,Gq()||"anthropic",1);if(q)this.handleSettingsAction(q)}else if(A.name==="return"||A.name==="enter"){let q=RM(this.settingsState,Gq()||"anthropic");if(q)this.handleSettingsAction(q)}else if(A.name==="r")mO(),this.rerenderSettings()}handleSettingsAction(A){switch(A.type){case"switch_provider":let q=iA();if(q.provider=A.provider,Kg(q),this.chatServiceState)a$(this.chatServiceState,A.provider),yY(this.chatServiceState);this.rerenderSettings();break;case"add_anthropic":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=dZ(),this.authSetupState.selectedProvider="anthropic",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"add_openai":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=dZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":IO(),this.chatServiceState=null,this.chatMode=!1,this.settingsFromChatMode=!1,this.savedChatSessions.clear(),this.storyViewModes.clear(),this.hideSettings();break;case"select_model":if(PO(A.provider,A.modelId),this.chatServiceState)yY(this.chatServiceState);this.rerenderSettings();break;case"toggle_telemetry":yZ(!G6()),this.rerenderSettings();break;case"adjust_setting":vO(A.key,Yq()[A.key]+A.delta),this.rerenderSettings();break}}handleAuthSetupKey(A){if(!this.authSetupState)return;if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupState.step==="provider"){if(A.name==="j"||A.name==="down")TG(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")TG(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")PM(this.authSetupState),this.showAuthSetupUI()}}handleChatKey(A){if(!this.chatPanelState)return;if(A.name==="escape"){this.hideChatView();return}if(A.super&&(A.name==="j"||A.name==="k")){let g=A.name==="j"?1:-1;this.navigateStory(g);return}let q=this.chatPanelState.suggestions;if(q.suggestions.length>0&&this.chatPanelState.input&&!this.chatPanelState.input.plainText.trim()){if(A.name==="up"||A.name==="k"){if(q.selectedIndex===-1)q.selectedIndex=q.suggestions.length-1;else if(q.selectedIndex>0)q.selectedIndex--;this.chatPanelState.input.blur(),hA(this.ctx,q);return}else if(A.name==="down"||A.name==="j"){if(q.selectedIndex===q.suggestions.length-1)q.selectedIndex=-1,this.chatPanelState.input.focus();else if(q.selectedIndex>=0)q.selectedIndex++,this.chatPanelState.input.blur();hA(this.ctx,q);return}}if(A.name==="tab"&&q.selectedIndex>=0&&q.suggestions.length>0){let g=q.suggestions[q.selectedIndex];if(g&&this.chatPanelState.input){this.chatPanelState.input.focus(),this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(g+" "),q.suggestions=[],q.selectedIndex=-1,hA(this.ctx,q);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatPanelState.input&&this.chatPanelState.input.plainText.trim()){this.sendChatMessage();return}if(q.selectedIndex>=0&&q.suggestions.length>0){this.selectSuggestion();return}return}if(q.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126){if(this.chatPanelState.input)this.chatPanelState.input.focus();q.suggestions=[],q.selectedIndex=-1,hA(this.ctx,q)}}if(A.name==="backspace"&&this.chatPanelState.input&&q.originalSuggestions.length>0)setTimeout(()=>{if(this.chatPanelState?.input&&!this.chatPanelState.input.plainText.trim()&&this.chatPanelState.suggestions.suggestions.length===0)this.chatPanelState.suggestions.suggestions=[...this.chatPanelState.suggestions.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=this.chatPanelState.suggestions.suggestions.length-1,hA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){if(A.name==="s"){nA("settings_opened"),this.settingsIntent="settings",this.showSettings();return}if(A.name==="j")this.navigateStory(1);else if(A.name==="k")this.navigateStory(-1);else if(A.name==="space"||A.name===" ")nA("comment_nav"),this.navigateToNextComment();else if(A.name==="o")nA("url_opened",{type:"url"}),this.openStoryUrl();else if(A.name==="c")nA("chat_opened"),this.openChat();else if(A.name==="r")nA("refresh"),this.refresh();else if(A.name==="t")nA("tldr_requested"),this.handleTldrRequest()}async loadPosts(){HM(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{this.posts=await uO(),this.storiesFetchedAt=Date.now();let A=0,q=!1;if(this.requestedStoryId){let g=await this.handleRequestedStory();A=g.index,q=!g.found}if(KF(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),mZ(this.storyDetailState),vZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(g)=>this.selectStory(g)}),q)GM(this.storyListState,`Story ${this.requestedStoryId} not found`);if(this.posts.length>0)await this.selectStory(A);this.saveToCache()}catch(A){KF(this.emptyStateState),FA("[ERROR]","Error loading posts:",A)}}async handleRequestedStory(){if(!this.requestedStoryId)return{index:0,found:!0};let A=this.posts.findIndex((q)=>q.id===this.requestedStoryId);if(A!==-1)return{index:A,found:!0};else{let q=await XG(this.requestedStoryId);if(q)return this.posts.unshift(q),{index:0,found:!0};return{index:0,found:!1}}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(nA("story_selected"),this.tldrLoading)this.stopTldrLoadingAnimation();if(this.chatMode&&this.selectedPost&&this.chatPanelState){if(this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount}),this.cancelSuggestionLoadingInterval(),this.chatPanelState.input)this.chatPanelState.input.blur();if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null}let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,YM(this.storyListState,this.posts,q,A);let g=this.posts[A];if(!g)return;for(let E of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(E.id);try{let E=await XG(g.id);if(this.renderer.isDestroyed)return;if(E)if(this.selectedPost=E,(this.storyViewModes.get(g.id)||"comments")==="chat"&&this.chatServiceState)this.chatMode=!0,this.showChatViewForCurrentStory();else{this.chatMode=!1,this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar);let K=this.tldrLoading&&this.tldrLoadingStoryId===E.id,Z=this.tldrCache.get(E.id)||null,j=this.tldrErrorIds.has(E.id);if(Q6(this.ctx,this.storyDetailState,E,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:Z,isLoading:K,loadingFrame:this.tldrLoadingFrame,hasError:j}),K)this.startTldrLoadingAnimation()}}catch(E){FA("[ERROR]","Error loading post:",E)}if(this.renderer.isDestroyed)return;QM(this.storyListState,A),this.saveToCache()}navigateStory(A){if(this.posts.length===0)return;if(this.selectedIndex===-1){if(A>0)this.selectStory(0);else this.selectStory(this.posts.length-1);return}let q=this.selectedIndex+A;if(q>=0&&q<this.posts.length)this.selectStory(q)}handleTldrRequest(){if(!this.selectedPost)return;if(!TO()){this.settingsIntent="tldr",this.showSettings();return}if(this.tldrLoading)return;let A=this.selectedPost.id;this.tldrCache.delete(A),this.tldrErrorIds.delete(A);let q=Gq();if(!q)return;this.tldrLoading=!0,this.tldrLoadingStoryId=A,this.tldrLoadingFrame=0,this.rerenderCurrentStory(),this.startAiIndicator(this.selectedIndex),this.startTldrLoadingAnimation();let g=this.selectedIndex;B$(this.selectedPost,q,{onComplete:(E)=>{if(this.renderer.isDestroyed)return;if(nA("tldr_completed",{success:!0}),this.tldrCache.set(A,E),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),cY(this.tldrCache),this.selectedPost?.id===A)this.rerenderCurrentStory()},onError:(E)=>{if(nA("tldr_completed",{success:!1}),FA("[ERROR]","TLDR generation failed:",E),this.tldrErrorIds.add(A),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()}})}startTldrLoadingAnimation(){this.stopTldrLoadingAnimation(),this.tldrLoadingInterval=setInterval(()=>{if(this.renderer.isDestroyed||!this.tldrLoading){this.stopTldrLoadingAnimation();return}if(this.selectedPost?.id===this.tldrLoadingStoryId)this.tldrLoadingFrame=(this.tldrLoadingFrame+1)%10,this.rerenderCurrentStory()},80)}stopTldrLoadingAnimation(){if(this.tldrLoadingInterval)clearInterval(this.tldrLoadingInterval),this.tldrLoadingInterval=null}startAiIndicator(A){if(this.aiActiveIndices.add(A),!this.aiIndicatorInterval)this.aiIndicatorInterval=setInterval(()=>{if(this.renderer.isDestroyed||this.aiActiveIndices.size===0){this.stopAiIndicatorAnimation();return}this.aiIndicatorFrame=(this.aiIndicatorFrame+1)%yA.length;let q=yA[this.aiIndicatorFrame];for(let g of this.aiActiveIndices)VG(this.storyListState,g,q)},80)}stopAiIndicator(A){this.aiActiveIndices.delete(A);let q=A===this.selectedIndex;if(VG(this.storyListState,A,q?"\u203A":"\u2022"),this.aiActiveIndices.size===0)this.stopAiIndicatorAnimation()}stopAiIndicatorAnimation(){if(this.aiIndicatorInterval)clearInterval(this.aiIndicatorInterval),this.aiIndicatorInterval=null}rerenderCurrentStory(){if(!this.selectedPost||this.chatMode)return;let A=this.selectedPost.id,q=this.tldrCache.get(A)||null,g=this.tldrLoading&&this.tldrLoadingStoryId===A,E=this.tldrErrorIds.has(A);Q6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:g,loadingFrame:this.tldrLoadingFrame,hasError:E})}showChatViewForCurrentStory(){if(!this.selectedPost||!this.chatServiceState)return;this.chatPanelState=cZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],ag(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,ZF(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A)}navigateToNextComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;let A=this.storyDetailState.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,LG(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,LG(this.storyDetailState,this.rootCommentIndex)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=Gq();if(A)this.chatServiceState=CY(A),this.showChatView();else this.settingsIntent="chat",this.showSettings()}showChatView(){if(!this.selectedPost||!this.chatServiceState)return;this.chatMode=!0,this.storyViewModes.set(this.selectedPost.id,"chat"),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.chatPanelState=cZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],ag(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,ZF(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A),this.saveToCache()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.selectedPost)this.storyViewModes.set(this.selectedPost.id,"comments");if(this.cancelSuggestionLoadingInterval(),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});if(this.chatPanelState?.input)this.chatPanelState.input.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);Q6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null,this.saveToCache()}async sendChatMessage(){if(!this.chatPanelState||!this.chatServiceState||this.chatServiceState.isStreaming)return;let A=this.chatPanelState.input.plainText.trim();if(!A)return;nA("chat_message"),this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,hA(this.ctx,this.chatPanelState.suggestions),ZF(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(ZF(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;NM(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=this.selectedIndex;this.startAiIndicator(g);let E=!1;await R$(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(F)=>{if(!E&&this.chatPanelState)E=!0,e6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=F,ag(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)e6(this.chatPanelState);if(this.stopAiIndicator(g),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(F)=>{if(this.chatPanelState)e6(this.chatPanelState);this.stopAiIndicator(g);let K=this.chatServiceState?.provider==="anthropic"?"Anthropic":"OpenAI";if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=`Error: ${F.message}
239
+ ${E}`;try{if(q==="anthropic")await BV(F,K,g);else await wV(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function BV(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 wV(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 kV}from"fs";import{join as oK}from"path";import{tmpdir as CV,homedir as DV}from"os";var mY=oK(CV(),"hn-cli-cache"),nK=oK(mY,"state.json"),lj=oK(DV(),".cache","hn-cli"),tK=oK(lj,"tldr-cache.json"),sK=oK(lj,"chat-cache.json");function yV(){return Yq().storiesTtlMinutes*60*1000}var ij=604800000;function bV(){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>yV())return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function C$(A){try{bV(),A.savedAt=Date.now(),fY(nK,JSON.stringify(A,null,2))}catch{}}function D$(){try{if(ig(nK))kV(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 vV=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 y(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 y(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}
240
240
 
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);
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>=vV)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 fV={bg:"#1a1a1a"};function cV(){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 dV(){let{storyId:A}=cV();if(process.argv.includes("--disable-telemetry"))yZ(!1);zO(),nA("app_launch",{version:Zg});let q=await uU({exitOnCtrlC:!0,backgroundColor:fV.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),g=new dY(q,{onOpenUrl:(E)=>{mV(`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()}dV().catch(console.error);